push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
zlib,
sqlite,
gmp,
libffi,
cairo,
ncurses,
freetype,
libGLU,
libGL,
libpng,
libtiff,
libjpeg,
readline,
libsndfile,
libxml2,
libglut,
libsamplerate,
pcre,
libevent,
libedit,
yajl,
python3,
openssl,
glfw,
pkg-config,
libpthreadstubs,
libXdmcp,
libmemcached,
}:
stdenv.mkDerivation {
pname = "io";
version = "2019.05.22-alpha";
src = fetchFromGitHub {
owner = "stevedekorte";
repo = "io";
tag = "2019.05.22-alpha";
fetchSubmodules = true;
hash = "sha256-6w0JZE9H30X5j83YgSn7hG2l0LdhdRZfe/kWpx1/aoM=";
};
patches = [
(fetchpatch {
name = "check-for-sysctl-h.patch";
url = "https://github.com/IoLanguage/io/pull/446/commits/9f3e4d87b6d4c1bf583134d55d1cf92d3464c49f.patch";
sha256 = "9f06073ac17f26c2ef6298143bdd1babe7783c228f9667622aa6c91bb7ec7fa0";
})
];
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
zlib
sqlite
gmp
libffi
cairo
ncurses
freetype
libGLU
libGL
libpng
libtiff
libjpeg
readline
libsndfile
libxml2
libglut
libsamplerate
pcre
libevent
libedit
yajl
glfw
openssl
libpthreadstubs
libXdmcp
libmemcached
python3
];
preConfigure = ''
# The Addon generation (AsyncRequest and a others checked) seems to have
# trouble with building on Virtual machines. Disabling them until it
# can be fully investigated.
sed -i -e \
"s/add_subdirectory(addons)/#add_subdirectory(addons)/g" \
CMakeLists.txt
# Bind Libs STATIC to avoid a segfault when relinking
sed -i 's/basekit SHARED/basekit STATIC/' libs/basekit/CMakeLists.txt
sed -i 's/garbagecollector SHARED/garbagecollector STATIC/' libs/garbagecollector/CMakeLists.txt
sed -i 's/coroutine SHARED/coroutine STATIC/' libs/coroutine/CMakeLists.txt
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/io
$out/bin/io_static
'';
meta = {
description = "Io programming language";
homepage = "https://iolanguage.org/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [
raskin
maggesi
];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "ioc-scan";
version = "3.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "cisagov";
repo = "ioc-scanner";
tag = "v${version}";
hash = "sha256-p1cx6MwAPmPIsOHNWSU9AyYcQaddFugBkm6a+kUjzvg=";
};
build-system = with python3.pkgs; [ setuptools ];
propagatedBuildInputs = with python3.pkgs; [ docopt ];
nativeCheckInputs = with python3.pkgs; [
pyfakefs
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "ioc_scan" ];
meta = with lib; {
description = "Tool to search a filesystem for indicators of compromise (IoC)";
homepage = "https://github.com/cisagov/ioc-scanner";
changelog = "https://github.com/cisagov/ioc-scanner/releases/tag/${src.tag}";
license = with licenses; [ cc0 ];
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,44 @@
From 89c7c160f897f64e17fb74efffccfd1fc16f8b7d Mon Sep 17 00:00:00 2001
From: Jappie Klooster <jappieklooster@hotmail.com>
Date: Fri, 2 Apr 2021 14:22:02 -0400
Subject: [PATCH] Add cmake install directives.
To make nix builds work, it expect a `make install` command to
be available.
Adding these directives seems to fix the build.
If it's no trouble to you, please add them.
Maybe don't need endian
---
CMakeLists.txt | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 06e416f..8d6f489 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,8 @@ set(CMAKE_CXX_STANDARD 17)
add_library(IODash INTERFACE)
target_include_directories(IODash INTERFACE .)
+include(GNUInstallDirs)
+
add_executable(IODash_Test test.cpp)
target_link_libraries(IODash_Test IODash)
@@ -20,3 +22,11 @@ if (DEFINED BUILD_BENCHMARKS AND (${BUILD_BENCHMARKS}))
target_link_libraries(boost_Benchmark_HTTP boost_system pthread)
endif()
+install(TARGETS IODash
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+install(FILES IODash.hpp
+ DESTINATION include/)
+
+install(FILES
+ IODash/Buffer.hpp IODash/SocketAddress.hpp IODash/File.hpp IODash/Socket.hpp IODash/EventLoop.hpp IODash/Serial.hpp IODash/Timer.hpp
+ DESTINATION include/IODash)
--
2.29.2

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
}:
stdenv.mkDerivation {
pname = "iodash";
version = "0.1.7";
src = fetchFromGitHub {
owner = "YukiWorkshop";
repo = "IODash";
rev = "9dcb26621a9c17dbab704b5bab0c3a5fc72624cb";
sha256 = "0db5y2206fwh3h1pzjm9hy3m76inm0xpm1c5gvrladz6hiqfp7bx";
fetchSubmodules = true;
};
# adds missing cmake install directives
# https://github.com/YukiWorkshop/IODash/pull/2
patches = [ ./0001-Add-cmake-install-directives.patch ];
nativeBuildInputs = [
cmake
pkg-config
];
meta = with lib; {
homepage = "https://github.com/YukiWorkshop/IODash";
description = "Lightweight C++ I/O library for POSIX operation systems";
license = licenses.mit;
maintainers = with maintainers; [ jappie ];
platforms = with platforms; linux;
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
zlib,
net-tools,
nixosTests,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "iodine";
version = "0.8.0";
src = fetchFromGitHub {
owner = "yarrick";
repo = "iodine";
rev = "v${finalAttrs.version}";
hash = "sha256-0vDl/F/57puugrEdOtdlpNPMF9ugO7TP3KLWo/7bP2k=";
};
buildInputs = [ zlib ];
env.NIX_CFLAGS_COMPILE = ''-DIFCONFIGPATH="${net-tools}/bin/" -DROUTEPATH="${net-tools}/bin/"'';
installFlags = [ "prefix=\${out}" ];
passthru.tests = {
inherit (nixosTests) iodine;
};
meta = {
homepage = "https://code.kryo.se/iodine/";
description = "Tool to tunnel IPv4 data through a DNS server";
license = lib.licenses.isc;
platforms = lib.platforms.unix;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,32 @@
{
fetchurl,
lib,
stdenv,
}:
let
version = "0.7";
in
stdenv.mkDerivation {
inherit version;
pname = "iomelt";
src = fetchurl {
url = "https://web.archive.org/web/20180816072405if_/http://iomelt.com/s/iomelt-${version}.tar.gz";
sha256 = "1jhrdm5b7f1bcbrdwcc4yzg26790jxl4d2ndqiwd9brl2g5537im";
};
preBuild = ''
install -d $out/{bin,share/man/man1}
substituteInPlace Makefile \
--replace /usr $out
'';
meta = with lib; {
description = "Simple yet effective way to benchmark disk IO in Linux systems";
homepage = "https://github.com/camposr/iomelt";
maintainers = with maintainers; [ raspher ];
license = licenses.artistic2;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,17 @@
diff --git a/build.rs b/build.rs
index 9a32b7a2..77bc41bc 100644
--- a/build.rs
+++ b/build.rs
@@ -25,10 +25,9 @@ fn write_version_file() -> io::Result<()> {
let mut version_file = File::create(&version_fname)?;
write!(
&mut version_file,
- "r#\"ion {} ({})\nrev {}\"#",
+ "r#\"ion {} ({})\nrev \"#",
version,
- target,
- get_git_rev()?.trim()
+ target
)?;
Ok(())
}

View File

@@ -0,0 +1,41 @@
{
lib,
rustPlatform,
fetchFromGitLab,
}:
rustPlatform.buildRustPackage {
pname = "ion";
version = "unstable-2024-09-20";
src = fetchFromGitLab {
domain = "gitlab.redox-os.org";
owner = "redox-os";
repo = "ion";
rev = "8acd140eeec76cd5efbd36f9ea8425763200a76b";
hash = "sha256-jiJ5XW7S6/pVEOPYJKurolLI3UrOyuaEP/cqm1a0rIU=";
};
cargoHash = "sha256-Gqa2aA8jr6SZexa6EejYHv/aEYcm51qvEJSUm4m1AVc=";
patches = [
# remove git revision from the build script to fix build
./build-script.patch
];
passthru = {
shellPath = "/bin/ion";
};
meta = with lib; {
description = "Modern system shell with simple (and powerful) syntax";
homepage = "https://gitlab.redox-os.org/redox-os/ion";
license = licenses.mit;
maintainers = with maintainers; [
dywedir
arthsmn
];
mainProgram = "ion";
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
}:
stdenv.mkDerivation rec {
pname = "ioping";
version = "1.2";
src = fetchFromGitHub {
owner = "koct9i";
repo = "ioping";
rev = "v${version}";
sha256 = "10bv36bqga8sdifxzywzzpjil7vmy62psirz7jbvlsq1bw71aiid";
};
patches = [
# add netdata support: https://github.com/koct9i/ioping/pull/41
(fetchpatch {
url = "https://github.com/koct9i/ioping/commit/e7b818457ddb952cbcc13ae732ba0328f6eb73b3.patch";
sha256 = "122ivp4rqsnjszjfn33z8li6glcjhy7689bgipi8cgs5q55j99gf";
})
];
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Disk I/O latency measuring tool";
maintainers = with maintainers; [ raskin ];
platforms = platforms.unix;
license = licenses.gpl3Plus;
homepage = "https://github.com/koct9i/ioping";
mainProgram = "ioping";
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
perl,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "ioport";
version = "1.2";
src = fetchurl {
url = "https://people.redhat.com/rjones/ioport/files/ioport-${version}.tar.gz";
sha256 = "1h4d5g78y7kla0zl25jgyrk43wy3m3bygqg0blki357bc55irb3z";
};
buildInputs = [ perl ];
meta = with lib; {
description = "Direct access to I/O ports from the command line";
homepage = "https://people.redhat.com/rjones/ioport/";
license = licenses.gpl2Plus;
platforms = [
"x86_64-linux"
"i686-linux"
];
maintainers = [ maintainers.cleverca22 ];
};
}

View File

@@ -0,0 +1,25 @@
{
ioquake3,
fetchFromGitHub,
pan-bindings,
libsodium,
lib,
}:
ioquake3.overrideAttrs (old: {
pname = "ioq3-scion";
version = "unstable-2024-12-14";
buildInputs = old.buildInputs ++ [
pan-bindings
libsodium
];
src = fetchFromGitHub {
owner = "lschulz";
repo = "ioq3-scion";
rev = "a21c257b9ad1d897f6c31883511c3f422317aa0a";
hash = "sha256-CBy3Av/mkFojXr0tAXPRWKwLeQJPebazXQ4wzKEmx0I=";
};
meta = {
description = "ioquake3 with support for path aware networking";
maintainers = with lib.maintainers; [ matthewcroughan ];
};
})

View File

@@ -0,0 +1,6 @@
USE_CURL = 1
USE_CURL_DLOPEN = 0
USE_FREETYPE = 1
USE_INTERNAL_LIBS = 0
USE_OPENAL = 1
USE_OPENAL_DLOPEN = 0

View File

@@ -0,0 +1,134 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
which,
copyDesktopItems,
makeBinaryWrapper,
SDL2,
libGL,
openal,
curl,
speex,
opusfile,
libogg,
libvorbis,
libjpeg,
makeDesktopItem,
freetype,
mumble,
unstableGitUpdater,
bc,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ioquake3";
version = "0-unstable-2025-05-15";
src = fetchFromGitHub {
owner = "ioquake";
repo = "ioq3";
rev = "8d2c2b42a55598d99873203194d13161ec2789c6";
hash = "sha256-OszPRlS5NTvajDZhtGw2wa275O8YodkIgiBz3POouYs=";
};
nativeBuildInputs = [
copyDesktopItems
makeBinaryWrapper
pkg-config
which
bc
];
buildInputs = [
SDL2
libGL
openal
curl
speex
opusfile
libogg
libvorbis
libjpeg
freetype
mumble
];
enableParallelBuilding = true;
preConfigure = ''
cp ${./Makefile.local} ./Makefile.local
'';
preBuild = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace Makefile \
--replace-fail \
"-I/Library/Frameworks/SDL2.framework/Headers" \
"-I${lib.getDev SDL2}/include/SDL2" \
--replace-fail \
"CLIENT_LIBS += -framework SDL2" \
"CLIENT_LIBS += -L${lib.getLib SDL2}/lib -lSDL2" \
--replace-fail \
"RENDERER_LIBS += -framework SDL2" \
"RENDERER_LIBS += -L${lib.getLib SDL2}/lib -lSDL2" \
--replace-fail \
"-I/System/Library/Frameworks/OpenAL.framework/Headers" \
"-I${lib.getDev openal}/include/AL" \
--replace-fail \
"CLIENT_LIBS += -framework OpenAL" \
"CLIENT_LIBS += -L${lib.getLib openal}/lib -lopenal" \
--replace-fail \
"TOOLS_CC = gcc" \
"TOOLS_CC = clang"
'';
postBuild = lib.optionalString stdenv.hostPlatform.isDarwin ''
echo "Building Application Bundle for Darwin / macOS"
# The following script works without extensive patching (see preBuild), as the regular buil already
# built all the c code and libraries.
./make-macosx.sh ${stdenv.hostPlatform.darwinArch}
'';
installTargets = [ "copyfiles" ];
installFlags = [ "COPYDIR=$(out)/share/ioquake3" ];
postInstall = ''
install -Dm644 misc/quake3.svg $out/share/icons/hicolor/scalable/apps/ioquake3.svg
makeWrapper $out/share/ioquake3/ioquake3.* $out/bin/ioquake3
makeWrapper $out/share/ioquake3/ioq3ded.* $out/bin/ioq3ded
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv build/release-darwin-${stdenv.hostPlatform.darwinArch}/ioquake3.app $out/Applications/
'';
desktopItems = [
(makeDesktopItem {
name = "IOQuake3";
exec = "ioquake3";
icon = "ioquake3";
comment = finalAttrs.meta.description;
desktopName = "ioquake3";
categories = [
"Game"
"ActionGame"
];
})
];
passthru.updateScript = unstableGitUpdater { };
meta = {
homepage = "https://ioquake3.org/";
description = "Fast-paced 3D first-person shooter, a community effort to continue supporting/developing id's Quake III Arena";
license = lib.licenses.gpl2Plus;
mainProgram = "ioquake3";
maintainers = with lib.maintainers; [
rvolosatovs
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchFromGitHub,
mpi,
perl,
autoreconfHook,
pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ior";
version = "4.0.0";
src = fetchFromGitHub {
owner = "hpc";
repo = "ior";
tag = finalAttrs.version;
hash = "sha256-WsfJWHHfkiHZ+rPk6ck6mDErTXwt6Dhgm+yqOtw4Fvo=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
mpi
perl
];
enableParallelBuilding = true;
meta = {
homepage = "https://ior.readthedocs.io/en/latest/";
description = "Parallel file system I/O performance test";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ bzizou ];
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
testers,
}:
let
privateFrameworks = "/Library/Apple/System/Library/PrivateFrameworks";
in
stdenv.mkDerivation (finalAttrs: {
pname = "ios-deploy";
version = "1.12.2";
src = fetchFromGitHub {
owner = "ios-control";
repo = "ios-deploy";
rev = finalAttrs.version;
hash = "sha256-TVGC+f+1ow3b93CK3PhIL70le5SZxxb2ug5OkIg8XCA=";
};
buildPhase = ''
runHook preBuild
awk '{ print "\""$0"\\n\""}' src/scripts/lldb.py >> src/ios-deploy/lldb.py.h
clang src/ios-deploy/ios-deploy.m \
-framework Foundation \
-F${privateFrameworks} -framework MobileDevice \
-o ios-deploy
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm755 ios-deploy $out/bin/ios-deploy
runHook postInstall
'';
__impureHostDeps = [
privateFrameworks
];
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
};
meta = {
description = "Install and debug iPhone apps from the command line, without using Xcode";
homepage = "https://github.com/ios-control/ios-deploy";
license = lib.licenses.gpl3Plus;
mainProgram = "ios-deploy";
maintainers = with lib.maintainers; [ wegank ];
platforms = lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,25 @@
From 16ea1a197c4b154fcd481728fbea24a4722ba5d3 Mon Sep 17 00:00:00 2001
From: Pavel Sobolev <contact@paveloom.dev>
Date: Sat, 13 Jul 2024 18:44:36 +0300
Subject: [PATCH] Add permissions to the output directory.
---
build/build.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/build.go b/build/build.go
index 3ee59ab..97932ed 100644
--- a/build/build.go
+++ b/build/build.go
@@ -67,7 +67,7 @@ func Build(cloneDir string, outputDir string) error {
log.Debug().TimeDiff("getRelevantFiles", time.Now(), getRelevantFilesTime).Send()
bundleTime := time.Now()
- cp.Copy("views", outputDir)
+ cp.Copy("views", outputDir, cp.Options{PermissionControl: cp.AddPermission(0200)})
os.Mkdir(fmt.Sprintf("%s/debug", outputDir), os.ModePerm)
os.Mkdir(fmt.Sprintf("%s/debug/Lib", outputDir), os.ModePerm)
os.Mkdir(fmt.Sprintf("%s/debug/Protocols", outputDir), os.ModePerm)
--
2.45.2

View File

@@ -0,0 +1,40 @@
{
lib,
buildGoModule,
fetchFromGitea,
}:
buildGoModule rec {
pname = "ios-safari-remote-debug";
version = "unstable-2024-09-09";
src = fetchFromGitea {
domain = "git.gay";
owner = "besties";
repo = "ios-safari-remote-debug";
rev = "b3c69873997c08fce83c48a5ab42f5a2354efdf2";
hash = "sha256-Hh/CeH0ba4uPMlEo+OZ3w36pTpsW6OLtYIE5v6dkUjo=";
};
vendorHash = "sha256-O8Dr4UAISZmCUGao0cBnAx4dUJm6+u4Swiw0H5NVeeA=";
patches = [ ./add-permissions-to-the-output-directory.patch ];
postPatch = ''
substituteInPlace build/build.go \
--replace-fail 'cp.Copy("' 'cp.Copy("${placeholder "out"}/share/${pname}/'
'';
postBuild = ''
mkdir -p $out/share/${pname}
cp -r injectedCode views $out/share/${pname}
'';
meta = {
description = "Remote debugger for iOS Safari";
homepage = "https://git.gay/besties/ios-safari-remote-debug";
license = lib.licenses.agpl3Plus;
mainProgram = "ios-safari-remote-debug";
maintainers = [ ];
};
}

View File

@@ -0,0 +1,23 @@
diff --git a/Makefile.am b/Makefile.am
index 52dc7a8..407c056 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,4 +2,4 @@
# Copyright 2012 Google Inc. wrightt@google.com
AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src include examples
+SUBDIRS = src include
diff --git a/configure.ac b/configure.ac
index ac2a278..a4104b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,7 +82,7 @@ fi
AC_CHECK_FUNCS([memmove memset regcomp select socket strcasecmp strncasecmp strchr strdup strndup strrchr strstr strtol strcasestr getline])
-AC_CONFIG_FILES([Makefile src/Makefile include/Makefile examples/Makefile])
+AC_CONFIG_FILES([Makefile src/Makefile include/Makefile])
CFLAGS="${CFLAGS} -Wall -Werror"

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
autoconf,
automake,
libtool,
pkg-config,
libimobiledevice,
libplist,
libusb1,
openssl,
nix-update-script,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ios-webkit-debug-proxy";
version = "1.9.2";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "google";
repo = "ios-webkit-debug-proxy";
rev = "v${finalAttrs.version}";
hash = "sha256-42hNAMokjfo7Vi1xclFcjUmioMFQW64HYTMvvTVk5hY=";
};
patches = [
# Examples compilation breaks with --disable-static, see https://github.com/google/ios-webkit-debug-proxy/issues/399
./0001-Don-t-compile-examples.patch
];
nativeBuildInputs = [
autoconf
automake
libtool
pkg-config
];
buildInputs = [
libimobiledevice
libplist
libusb1
openssl
];
preConfigure = ''
NOCONFIGURE=1 ./autogen.sh
'';
enableParallelBuilding = true;
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
};
meta = with lib; {
description = "DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector)";
longDescription = ''
The ios_webkit_debug_proxy (aka iwdp) proxies requests from usbmuxd
daemon over a websocket connection, allowing developers to send commands
to MobileSafari and UIWebViews on real and simulated iOS devices.
'';
homepage = "https://github.com/google/ios-webkit-debug-proxy";
changelog = "https://github.com/google/ios-webkit-debug-proxy/releases/tag/${finalAttrs.src.rev}";
license = licenses.bsd3;
mainProgram = "ios_webkit_debug_proxy";
maintainers = with maintainers; [ abustany ];
};
})

View File

@@ -0,0 +1,54 @@
{
stdenv,
lib,
fetchurl,
iosevka,
unzip,
variant ? "",
}:
let
name = if lib.hasPrefix "SGr-" variant then variant else "Iosevka" + variant;
variantHashes = import ./variants.nix;
validVariants = map (lib.removePrefix "Iosevka") (
builtins.attrNames (removeAttrs variantHashes [ "Iosevka" ])
);
in
stdenv.mkDerivation rec {
pname = "${name}-bin";
version = "33.3.1";
src = fetchurl {
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";
sha256 =
variantHashes.${name} or (throw ''
No such variant "${variant}" for package iosevka-bin.
Valid variants are: ${lib.concatStringsSep ", " validVariants}.
'');
};
nativeBuildInputs = [ unzip ];
dontInstall = true;
unpackPhase = ''
mkdir -p $out/share/fonts
unzip -d $out/share/fonts/truetype $src
'';
meta = {
inherit (iosevka.meta)
homepage
downloadPage
description
license
platforms
;
maintainers = with lib.maintainers; [
montchr
];
};
passthru.updateScript = ./update-bin.sh;
}

View File

@@ -0,0 +1,28 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl jq
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
release=$(curl -s https://api.github.com/repos/be5invis/Iosevka/releases/latest)
oldVersion=$(nix-instantiate --eval -E 'with import ../../../.. {}; lib.getVersion iosevka-bin' | tr -d '"')
version=$(echo "$release" | jq -r .tag_name | tr -d v)
if test "$oldVersion" = "$version"; then
echo "New version same as old version, nothing to do." >&2
exit 0
fi
sed -i "s/$oldVersion/$version/" package.nix
{
echo '# This file was autogenerated. DO NOT EDIT!'
echo '{'
for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("PkgTTC"))'); do
printf ' %s = "%s";\n' \
$(echo "$asset" | sed -r "s/^PkgTTC-(.*)-$version.zip$/\1/") \
$(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
done
echo '}'
} >variants.nix

View File

@@ -0,0 +1,93 @@
# This file was autogenerated. DO NOT EDIT!
{
Iosevka = "0p8f9z9ribn9zvbr0klg9q37w7z4v6r6gwz9kqc3cml6q0x4lv2n";
IosevkaAile = "1f18pnbp8vnsjzax43gijc95z1nx54l0vc2lqiqm9xvddhpam7ww";
IosevkaCurly = "01gzyqlg6n0fzi5kvwrz1slcr8pkdlg6yd61i059kzmw9sw8g7m5";
IosevkaCurlySlab = "0vxc3mb7ncvm4x7flrvlfkw1lw2pcv50344ias97j96gzaafr0mr";
IosevkaEtoile = "1qalf37fm3lxbg3y8ias92vyz19rhf20rjyn7zq9prmrx412sglv";
IosevkaSlab = "1kggrmkga333jknycbr27bziwaa6maw83wrkh60w7a78mp32a2fc";
IosevkaSS01 = "0yaly4pkilrrd7knqvv43976rnjvp2s2wd4c8zczc4fhmjw2b7j6";
IosevkaSS02 = "0h1hdynqfqmw6v49qnvspqw6y2ihqysrkcivjc9fvx4w876clr86";
IosevkaSS03 = "1mvn6ix5944kxmr1byx200ydzm9ny9qafv14nmssfqx7rhn71r29";
IosevkaSS04 = "0x0sfbd4g6rb5vndddxvqvjjhr43dnbywybb8n67sh40x22jcf5b";
IosevkaSS05 = "0fsscv5z9dn7934547cgq5082v25n94kcx8zdk5n99n7mnbc7gfy";
IosevkaSS06 = "1yyhvnxqbdmry6knd8jakz0jqhnphfip2a4rgb5l07vq1nrcb566";
IosevkaSS07 = "1w50ma10fzw4gy6im009i20dgvxlj3m4iasmj074k5mxfmazjcyv";
IosevkaSS08 = "1mh7h8dlk02rijlxbml5zpha2hvkhvir7j8hk6fd0pihzj3ybn0i";
IosevkaSS09 = "08mxsa67gpdzygj9vr0m6a6pz397ffbg77rfik5c46gqknd2y7mf";
IosevkaSS10 = "1k6xks2q7szmz3zsy9dd6bn7j6g60hf1whvp3c6j65m5rhi87z6v";
IosevkaSS11 = "1r8fk9m32kakclxxxingy6k1dwgvfizr0c68miqp2g6189mkz1lw";
IosevkaSS12 = "0amgwwq0yik9xhh7d12fmn7inimqzpmsmcjwnw1dsghrvf0mwdsa";
IosevkaSS13 = "1agaihxccj0k5wg7bd1lm5ix0mwdhj387i2wypc76q6az116a4ln";
IosevkaSS14 = "106fw5d3kqc389cnvcv00zfcfbzvavfym8mjhqrn0h23fpfy5na2";
IosevkaSS15 = "15rjgg8bi2ichisg5ri9hqr5rikfcvwdx2smw93vazn3shzzkn45";
IosevkaSS16 = "0ipdh5avia6gj1pb78ihhfydg9dn334kv0pir9h136f0bwxibjp0";
IosevkaSS17 = "08grkzyd4ssjzkkyljzc2mlnhrchxbw7y9425sgz8cq026f5cvd5";
IosevkaSS18 = "1052s4ijqhvb4h81nvx6m9sdlk3d51n7zqr0cr78ydl13g1qvdh9";
SGr-Iosevka = "0p7nd7x4zq4bfhdrvjhn0j5y6w217w8nlai9nc0flrwjh4qf14ih";
SGr-IosevkaCurly = "1qjv7zrr7113v2qq0fnkrxcslv2wy0x5nv8mjal5b710q9gppxfr";
SGr-IosevkaCurlySlab = "0bavl9z4j9n7hxch8acw89j8f070vwir1f15af1xb76q09ihi5r2";
SGr-IosevkaFixed = "0kgyn4da6a58fa6k9aqm1ndzlzjpbwip13pyb60jasrqf7wqm66z";
SGr-IosevkaFixedCurly = "1mzszgwp3xbkjvhqlsmwrr6mhv3czmsiz4vgxr615sfhyl24cjb7";
SGr-IosevkaFixedCurlySlab = "1dzww7084clp8ivsd74r638rh41zw6b5la0fif4xz01kvsz67wc6";
SGr-IosevkaFixedSlab = "11cc5gm7a69693b9j0lckbvwn0pnfhklrdvqa719m43d39wqhgas";
SGr-IosevkaFixedSS01 = "0bh62hlxc05wd33mf0ql3f8dxc6xriv4jzr8qcz6a64qiy12j6c0";
SGr-IosevkaFixedSS02 = "1z3yy7zv1iml3d2dj418aias4wgh4sk07gk6fsk068mxg2mlcpys";
SGr-IosevkaFixedSS03 = "1fdp7897m039r6qj40jq17gn602cfx5l9jkgfh29ghk7l6kh0za5";
SGr-IosevkaFixedSS04 = "0gamh519mrw4qvzs28r4gpsyfqwibbvwckfcsmm4i7g9idnwmmwn";
SGr-IosevkaFixedSS05 = "09bp6nxcc54s2g0s4icd1zlcjar87hqdyp2chys5agk69l1j9p2a";
SGr-IosevkaFixedSS06 = "160di7qxp8blyzjnakdqvkxy2dpiy7fxc5518hnk0jswg2d90ydp";
SGr-IosevkaFixedSS07 = "004hk72g086xhkb0rrpmk5kxf032j24is2r2lbp9hizrmw9x3dl0";
SGr-IosevkaFixedSS08 = "0i7k3bissz76idgwf5cpbk3s0ynhlgza07v3lwyvyxhgvyj9hp56";
SGr-IosevkaFixedSS09 = "1lih2kq9gnigchidibpdd2ym12hjpjlb42fbfzdc1s9fs7700d8i";
SGr-IosevkaFixedSS10 = "04paymx35g3dii4cgnsljdxi8778vn60jkqjx28bx5lvd9hkzc9k";
SGr-IosevkaFixedSS11 = "023mkvqvajpm59q5807snwyc9mqqvsmrzxa33mrgr0v2qs6zxsnm";
SGr-IosevkaFixedSS12 = "01d55hi9y5y1szd39ij7hiswkyzazb9k97wsh09sdx0442d1aydc";
SGr-IosevkaFixedSS13 = "1dxyj0pqxs4795ksmaw56dndj8s6s9isv6kmj8520cl6wmrgm5k7";
SGr-IosevkaFixedSS14 = "0hl6lmndcf13jm16n0hxn3w0qf4abddrmhq7im9l2zsplm241dz0";
SGr-IosevkaFixedSS15 = "1sz33rnxx288hasd0g3y2cid6v8vck8yrwallhpbs81sraj50nn9";
SGr-IosevkaFixedSS16 = "0fx6fwzmcx48ndfly0a7kks2ml6v0hfkvqm5qijwaxysz5cbzk4z";
SGr-IosevkaFixedSS17 = "03vyl438fx8zqdslhxsy2q86rkgl0dccvvy2hk7jniaswnxj5p69";
SGr-IosevkaFixedSS18 = "02z2m7qn9qkrkk9c9nk14d56j4kl8advpkgajmxn5nzlp35a4pc8";
SGr-IosevkaSlab = "1m06ylahl5ql2918cn44nr541lfaipyry4ihm059xx0skmm2qk6p";
SGr-IosevkaSS01 = "1z3ba34q3m8p6yp1qvsrh1hqvk263gg2dd0vz39nz6slm2h6qb9r";
SGr-IosevkaSS02 = "1wxflbh1b03q4dqqf0snr7w39vmnm26bpnpmx99ms7lj5p3390c1";
SGr-IosevkaSS03 = "128lj2kbc0kskq8ylr8713bh49rd3ms63vpgbgp82dnhfza5ql76";
SGr-IosevkaSS04 = "1gr8y0p1sqg87v2g6wk6ysbj88m3jmqbx2bczl1piwbl32mccci0";
SGr-IosevkaSS05 = "1g36pzz30jd1zihrwvkpm77cql34xk2bv4xangf19imnibp753dl";
SGr-IosevkaSS06 = "1aacbijz06rgphbxlv68ds3i8qkw32y9sa4a4fg2fni0naq0c05w";
SGr-IosevkaSS07 = "0kyg9cp95rw7c4wlpssf0y71c9nbg9nm5y3bzjh48mn5hgpzp762";
SGr-IosevkaSS08 = "0k6siq14r5gka50x99cily3v39slj9by2cxlsjd8nnvax3ar59ys";
SGr-IosevkaSS09 = "1gsxbi28jw21915aqn6qfydxh8f0xkxgnh6fmwk8qxb73bqwh9nf";
SGr-IosevkaSS10 = "0jm5mr0mf30qkfwqff7lgzfa25scafgfkg7w697qb6qz3bvka09n";
SGr-IosevkaSS11 = "0n7xmxgg4sg7japz8ajxdprqwx6shrh0y2vmp205aqw5lm6lc4g3";
SGr-IosevkaSS12 = "0mwcxg2ls8d8463ykc4byvk938ygaca0wc65gllr5jkccwfk5lxs";
SGr-IosevkaSS13 = "12gjkrvy1850dxmbhibgp49rdxj7bb8b8vliydxk4a0k48zn6bqc";
SGr-IosevkaSS14 = "090i5rhhqcc65k6b9sgbj2w5vs9jrd6qnmm99lp18akpsspm2w3r";
SGr-IosevkaSS15 = "1c96pckim333bmfqpj0v9jcklsi8az81m6jhzvy3b153p2di29r9";
SGr-IosevkaSS16 = "0xvv55zmjyly00ykaycndac3lyn2w7y2gvr908kql17lpnw3x0ya";
SGr-IosevkaSS17 = "1kilxf5f51fzxwpy4xjrb5jcrmdb70h3z04j9f1cpaccc8h654wk";
SGr-IosevkaSS18 = "0vyqa0b935js0i0fhaj071yjlgkxkdr2pybn8z2g4pv3ixyk6msh";
SGr-IosevkaTerm = "0pxa3zcnhfl1gpynx5mn3h21r6cr45lmax09vk8x6z23adxcgkrd";
SGr-IosevkaTermCurly = "1nv1xqsf9zf2j9xrrqlcjzy764mnfhmjp4xwsq391fl8vy7pwdbl";
SGr-IosevkaTermCurlySlab = "0nblg2ql79wi7vnn3akz7pm26mwjvqg3wgh6kwqbr1rvs4n7krwp";
SGr-IosevkaTermSlab = "12cav088hsml2x81ihpbnr0pcwargkh1kn7ijacqv3mgirdhfp52";
SGr-IosevkaTermSS01 = "056bs4r7ry7k2h7iwrldfkrani79bxkb2y38ibn15hdvmbw5k7xg";
SGr-IosevkaTermSS02 = "1f2ywnqz97i6pjg4na5344k4p4d0mvc9s30ylc6a2nwq64wl48wf";
SGr-IosevkaTermSS03 = "08l939ar4z1yw1pwsdfjkfymi476ms7738yvkgz7ycf5nifpp1w1";
SGr-IosevkaTermSS04 = "0jgkbdv9kjg7028f3lk4h4ph6i5icv80dmhkxi7r430khfdgq0h9";
SGr-IosevkaTermSS05 = "0n6zf2s8can1sknc5gnr2fhs86dnswrhjx6fk2n06grkf97srmzx";
SGr-IosevkaTermSS06 = "0krq3kp3ydxv2y5yi15gy517w8kwarxw3lkw0vwjlf5qplpl4s7b";
SGr-IosevkaTermSS07 = "1pm5ckgyr18mj13ih548n1awipbsaiqcvzgjgyg8jhydpvv25f1d";
SGr-IosevkaTermSS08 = "1qq19fz9ybk6wwj80vb2pcpaklr0nk3a9brc5iqzli4v42bvqqar";
SGr-IosevkaTermSS09 = "13ki9125qz5fszcg4mdmkcgz2w9p6w06n6d6aa96m4cvxf9b38g7";
SGr-IosevkaTermSS10 = "161cxv8my2g0yg5amawy0mp8hsdf3zwcvf4pb2w9wdm19k7pdgsy";
SGr-IosevkaTermSS11 = "0c2rrcnbp4wh2xwqzrvj2fxzz7ph2hz0j89p72a46lp939wjqllm";
SGr-IosevkaTermSS12 = "1wyih90ilpvms0w6s1hyqwvclhli1gwxbhc61qgnvkz4lf57j1aw";
SGr-IosevkaTermSS13 = "1jk7z6cbfkm4ljslvxysq1w95xv9573lgcb1lznzkd41p3vss9hy";
SGr-IosevkaTermSS14 = "1nv18klmp3npl70q5ffc1p59hqa2d60w677jqjvjl51q8cksms8y";
SGr-IosevkaTermSS15 = "1gjydq5zvcbjp55kgc19shjy5v8427m7kdv5wxf808kdm0cyl9cf";
SGr-IosevkaTermSS16 = "1v4cyci25bdpid1cag84yif38mkqz1d6bssdvw62y9p9xb4x1g4b";
SGr-IosevkaTermSS17 = "0nr9hrjgy3dhlacbdr8j5gxh6qbiy9l1m1c25dl9dqym7h9i2a2z";
SGr-IosevkaTermSS18 = "1k66xsw3c5izc334v24wf8xvpbxh3dikawghrgfqbkdd7ilp6y7a";
}

View File

@@ -0,0 +1,155 @@
{
stdenv,
lib,
buildNpmPackage,
fetchFromGitHub,
cctools,
remarshal,
ttfautohint-nox,
# Custom font set options.
# See https://typeof.net/Iosevka/customizer
# Can be a raw TOML string, or a Nix attrset.
# Ex:
# privateBuildPlan = ''
# [buildPlans.iosevka-custom]
# family = "Iosevka Custom"
# spacing = "normal"
# serifs = "sans"
#
# [buildPlans.iosevka-custom.variants.design]
# capital-j = "serifless"
#
# [buildPlans.iosevka-custom.variants.italic]
# i = "tailed"
# '';
# Or:
# privateBuildPlan = {
# family = "Iosevka Custom";
# spacing = "normal";
# serifs = "sans";
#
# variants = {
# design.capital-j = "serifless";
# italic.i = "tailed";
# };
# }
privateBuildPlan ? null,
# Extra parameters. Can be used for ligature mapping.
# It must be a raw TOML string.
# Ex:
# extraParameters = ''
# [[iosevka.compLig]]
# unicode = 57808 # 0xe1d0
# featureTag = 'XHS0'
# sequence = "+>"
# '';
extraParameters ? null,
# Custom font set name. Required if any custom settings above.
set ? null,
}:
assert (privateBuildPlan != null) -> set != null;
assert (extraParameters != null) -> set != null;
buildNpmPackage rec {
pname = "Iosevka${toString set}";
version = "33.3.1";
src = fetchFromGitHub {
owner = "be5invis";
repo = "iosevka";
rev = "v${version}";
hash = "sha256-qbC1FVhnkVlsT+lOSeM6wDbKV2c5iTHgBxZENGEBnUI=";
};
npmDepsHash = "sha256-/HxMh5v3CfCpPCF8cf8Z2NXDBovJFvMaQfYFZvuyNX0=";
nativeBuildInputs = [
remarshal
ttfautohint-nox
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# libtool
cctools
];
buildPlan =
if builtins.isAttrs privateBuildPlan then
builtins.toJSON { buildPlans.${pname} = privateBuildPlan; }
else
privateBuildPlan;
inherit extraParameters;
passAsFile = [
"extraParameters"
]
++ lib.optionals (
!(builtins.isString privateBuildPlan && lib.hasPrefix builtins.storeDir privateBuildPlan)
) [ "buildPlan" ];
configurePhase = ''
runHook preConfigure
${lib.optionalString (builtins.isAttrs privateBuildPlan) ''
remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml
''}
${lib.optionalString
(builtins.isString privateBuildPlan && (!lib.hasPrefix builtins.storeDir privateBuildPlan))
''
cp "$buildPlanPath" private-build-plans.toml
''
}
${lib.optionalString
(builtins.isString privateBuildPlan && (lib.hasPrefix builtins.storeDir privateBuildPlan))
''
cp "$buildPlan" private-build-plans.toml
''
}
${lib.optionalString (extraParameters != null) ''
echo -e "\n" >> params/parameters.toml
cat "$extraParametersPath" >> params/parameters.toml
''}
runHook postConfigure
'';
buildPhase = ''
export HOME=$TMPDIR
runHook preBuild
# pipe to cat to disable progress bar
npm run build --no-update-notifier --targets ttf::$pname -- --jCmd=$NIX_BUILD_CORES --verbosity=9 | cat
runHook postBuild
'';
installPhase = ''
runHook preInstall
fontdir="$out/share/fonts/truetype"
install -d "$fontdir"
install "dist/$pname/TTF"/* "$fontdir"
runHook postInstall
'';
enableParallelBuilding = true;
requiredSystemFeatures = [ "big-parallel" ];
meta = with lib; {
homepage = "https://typeof.net/Iosevka/";
downloadPage = "https://github.com/be5invis/Iosevka/releases";
description = "Versatile typeface for code, from code";
longDescription = ''
Iosevka is an open-source, sans-serif + slab-serif, monospace +
quasiproportional typeface family, designed for writing code, using in
terminals, and preparing technical documents.
'';
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [
ttuegel
rileyinman
lunik1
];
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
python3,
fetchFromGitLab,
meson,
ninja,
pkg-config,
gobject-introspection,
wrapGAppsHook4,
appstream-glib,
desktop-file-utils,
glib,
gtk4,
librsvg,
libsecret,
libadwaita,
gtksourceview5,
webkitgtk_6_0,
}:
python3.pkgs.buildPythonApplication rec {
pname = "iotas";
version = "0.11.2";
pyproject = false;
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "iotas";
tag = version;
hash = "sha256-nDmofssoaB3BKh6X3Lpi5xftyo9Zw3IUoD3wte0wPM4=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
gobject-introspection
wrapGAppsHook4
appstream-glib
desktop-file-utils
];
buildInputs = [
glib
gtk4
librsvg
libsecret
libadwaita
gtksourceview5
webkitgtk_6_0
];
dependencies = with python3.pkgs; [
pygobject3
pygtkspellcheck
requests
markdown-it-py
linkify-it-py
mdit-py-plugins
pypandoc
strenum
packaging
];
# prevent double wrapping
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
meta = {
description = "Simple note taking with mobile-first design and Nextcloud sync";
homepage = "https://gitlab.gnome.org/World/iotas";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
mainProgram = "iotas";
maintainers = with lib.maintainers; [ zendo ];
teams = [ lib.teams.gnome-circle ];
};
}

View File

@@ -0,0 +1,27 @@
diff --git a/commands.c b/commands.c
index a28e6da..0f76ac7 100644
--- a/commands.c
+++ b/commands.c
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <limits.h>
#include <errno.h>
#include "commands.h"
#include "platform.h"
@@ -150,7 +151,13 @@ build_symlink_name(const char *path_to_bin, const struct cmd_info *cmd)
{
static char link_name[FILENAME_MAX];
- snprintf(link_name, FILENAME_MAX, "%s/%s", path_to_bin, cmd->name);
+ int result = snprintf(link_name, PATH_MAX, "%s/%s", path_to_bin, cmd->name);
+
+ if (result >= PATH_MAX) {
+ link_name[PATH_MAX - 1] = '\0';
+ } else if (result < 0) {
+ link_name[0] = '\0';
+ }
return link_name;
}

View File

@@ -0,0 +1,48 @@
{
stdenv,
lib,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "iotools";
version = "unstable-2017-12-11";
src = fetchFromGitHub {
owner = "adurbin";
repo = "iotools";
rev = "18949fdc4dedb1da3f51ee83a582b112fb9f2c71";
hash = "sha256-tlGXJn3n27mQDupMIVYDd86YaWazVwel/qs0QqCy1W8=";
};
patches = [ ./001-fix-werror-in-sprintf.patch ];
makeFlags = [
"DEBUG=0"
"STATIC=0"
];
installPhase = ''
install -Dm755 iotools -t $out/bin
'';
meta = {
description = "Set of simple command line tools which allow access to
hardware device registers";
longDescription = ''
Provides a set of simple command line tools which allow access to
hardware device registers. Supported register interfaces include PCI,
IO, memory mapped IO, SMBus, CPUID, and MSR. Also included are some
utilities which allow for simple arithmetic, logical, and other
operations.
'';
homepage = "https://github.com/adurbin/iotools";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ felixsinger ];
platforms = [
"x86_64-linux"
"i686-linux"
];
mainProgram = "iotools";
};
})

View File

@@ -0,0 +1,42 @@
{
stdenv,
fetchFromGitHub,
lib,
ncurses,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "iotop-c";
version = "1.30";
src = fetchFromGitHub {
owner = "Tomas-M";
repo = "iotop";
rev = "v${version}";
sha256 = "sha256-L0zChYDtlEi9tdHdNNWO0KugTorFIbYK0zDPNcLUMuo=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ ncurses ];
makeFlags = [
"TARGET=iotop-c"
"PREFIX=${placeholder "out"}"
"BINDIR=${placeholder "out"}/bin"
];
postInstall = ''
mv $out/share/man/man8/{iotop,iotop-c}.8
'';
meta = with lib; {
description = "Iotop identifies processes that use high amount of input/output requests on your machine";
homepage = "https://github.com/Tomas-M/iotop";
maintainers = [ maintainers.arezvov ];
mainProgram = "iotop-c";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchurl,
python3Packages,
fetchpatch,
}:
python3Packages.buildPythonApplication rec {
pname = "iotop";
version = "0.6";
format = "pyproject";
src = fetchurl {
url = "http://guichaz.free.fr/iotop/files/iotop-${version}.tar.bz2";
sha256 = "0nzprs6zqax0cwq8h7hnszdl3d2m4c2d4vjfxfxbnjfs9sia5pis";
};
patches = [
(fetchpatch {
url = "https://repo.or.cz/iotop.git/patch/99c8d7cedce81f17b851954d94bfa73787300599";
sha256 = "0rdgz6xpmbx77lkr1ixklliy1aavdsjmfdqvzwrjylbv0xh5wc8z";
})
];
build-system = [ python3Packages.setuptools ];
doCheck = false;
pythonImportsCheck = [ "iotop" ];
meta = with lib; {
description = "Tool to find out the processes doing the most IO";
homepage = "http://guichaz.free.fr/iotop";
license = licenses.gpl2Plus;
mainProgram = "iotop";
maintainers = [ maintainers.raskin ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,80 @@
{
stdenv,
lib,
fetchurl,
gnuplot,
}:
let
target =
if stdenv.hostPlatform.system == "i686-linux" then
"linux"
else if stdenv.hostPlatform.system == "x86_64-linux" then
"linux-AMD64"
else if stdenv.hostPlatform.system == "x86_64-darwin" then
"macosx"
else if stdenv.hostPlatform.system == "aarch64-linux" then
"linux-arm"
else
throw "Platform ${stdenv.hostPlatform.system} not yet supported.";
in
stdenv.mkDerivation rec {
pname = "iozone";
version = "3.507";
src = fetchurl {
url = "http://www.iozone.org/src/current/iozone${lib.replaceStrings [ "." ] [ "_" ] version}.tar";
hash = "sha256-HoCHraBW9dgBjuC8dmhtQW/CJR7QMDgFXb0K940eXOM=";
};
license = fetchurl {
url = "http://www.iozone.org/docs/Iozone_License.txt";
hash = "sha256-O/8yztxKBI/UKs6vwv9mq16Rn3cf/UHpSxdVnAPVCYw=";
};
preBuild = "pushd src/current";
postBuild = "popd";
buildFlags = target;
# The makefile doesn't define a rule for e.g. libbif.o
# Make will try to evaluate implicit built-in rules for these outputs if building in parallel
# Build in serial so that the main rule builds everything before the implicit ones are attempted
enableParallelBuilding = false;
installPhase = ''
mkdir -p $out/{bin,share/doc,libexec,share/man/man1}
install docs/iozone.1 $out/share/man/man1/
install docs/Iozone_ps.gz $out/share/doc/
install -s src/current/{iozone,fileop,pit_server} $out/bin/
install src/current/{gnu3d.dem,Generate_Graphs,gengnuplot.sh} $out/libexec/
ln -s $out/libexec/Generate_Graphs $out/bin/iozone_generate_graphs
# License copy is mandated by the license, but it's not in the tarball.
install ${license} $out/share/doc/Iozone_License.txt
'';
preFixup = ''
sed -i "1i#! $shell" $out/libexec/Generate_Graphs
substituteInPlace $out/libexec/Generate_Graphs \
--replace ./gengnuplot.sh $out/libexec/gengnuplot.sh \
--replace 'gnuplot ' "${gnuplot}/bin/gnuplot " \
--replace gnu3d.dem $out/libexec/gnu3d.dem
'';
meta = {
description = "Filesystem benchmark tool";
homepage = "http://www.iozone.org/";
license = lib.licenses.unfreeRedistributable;
platforms = [
"i686-linux"
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
];
maintainers = with lib.maintainers; [
Baughn
makefu
];
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
python3,
}:
stdenv.mkDerivation rec {
pname = "ioztat";
version = "2.0.1";
src = fetchFromGitHub {
owner = "jimsalterjrs";
repo = "ioztat";
rev = "v${version}";
sha256 = "sha256-8svMijgVxSuquPFO2Q2HeqGLdMkwhiujS1DSxC/LRRk=";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ python3 ];
prePatch = ''
patchShebangs .
'';
installPhase = ''
runHook preInstall
install -vDt $out/bin -m 0555 ioztat
if [ -f ioztat.8 ]; then
installManPage ioztat.8
fi
runHook postInstall
'';
meta = with lib; {
inherit version;
inherit (src.meta) homepage;
description = "Storage load analysis tool for OpenZFS";
longDescription = ''
ioztat is a storage load analysis tool for OpenZFS. It provides
iostat-like statistics at an individual dataset/zvol level.
The statistics offered are read and write operations per second, read and
write throughput per second, and the average size of read and write
operations issued in the current reporting interval. Viewing these
statistics at the individual dataset level allows system administrators
to identify storage "hot spots" in larger multi-tenant
systems -- particularly those with many VMs or containers operating
essentially independent workloads.
'';
license = licenses.bsd2;
platforms = with platforms; linux ++ freebsd;
maintainers = with maintainers; [ numinit ];
mainProgram = "ioztat";
};
}