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,53 @@
{
lib,
rustPlatform,
fetchFromGitHub,
stdenv,
pkg-config,
oniguruma,
writableTmpDirAsHomeHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "is-fast";
version = "0.17.2";
src = fetchFromGitHub {
owner = "Magic-JD";
repo = "is-fast";
tag = "v${finalAttrs.version}";
hash = "sha256-Wy5twHlCAlf/W12Y9a/IVFbsLuc8hkhH+5pBoL6Av0Y=";
};
cargoHash = "sha256-EsB/Z8HwhYBQ8HDia0IJU3U0k9ZnR558Yrv1sYLUAZ0=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ oniguruma ];
env = {
OPENSSL_NO_VENDOR = true;
RUSTONIG_SYSTEM_LIBONIG = true;
};
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
# Error creating config directory: Operation not permitted (os error 1)
# Using writableTmpDirAsHomeHomeHook is not working
"--skip=generate_config::tests::test_run_creates_config_file"
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Check the internet as fast as possible";
homepage = "https://github.com/Magic-JD/is-fast";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ pwnwriter ];
mainProgram = "is-fast";
};
})

View File

@@ -0,0 +1,105 @@
{
lib,
stdenv,
fetchFromGitHub,
# nativeBuildInputs
nasm,
autoreconfHook,
versionCheckHook,
# passthru
runCommand,
nix,
pkgs,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "isa-l";
version = "2.31.1";
src = fetchFromGitHub {
owner = "intel";
repo = "isa-l";
tag = "v${finalAttrs.version}";
hash = "sha256-pv0Aq1Yp/NkGN7KXJ4oQMSG36k5v9YnsELuATl86Zp4=";
};
nativeBuildInputs = [
nasm
autoreconfHook
];
preConfigure = ''
export AS=nasm
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/igzip";
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
tests = {
igzip =
runCommand "test-isa-l-igzip"
{
nativeBuildInputs = [
finalAttrs.finalPackage
];
sample =
runCommand "nixpkgs-lib.nar"
{
nativeBuildInputs = [ nix ];
}
''
nix nar --extra-experimental-features nix-command pack ${pkgs.path + "/lib"} > "$out"
'';
meta = {
description = "Cross validation of igzip provided by isa-l with gzip";
};
}
''
HASH_ORIGINAL="$(cat "$sample" | sha256sum | cut -d" " -f1)"
HASH_COMPRESSION_TEST="$(igzip -c "$sample" | gzip -d -c | sha256sum | cut -d" " -f1)"
HASH_DECOMPRESSION_TEST="$(gzip -c "$sample" | igzip -d -c | sha256sum | cut -d" " -f1)"
if [[ "$HASH_COMPRESSION_TEST" != "$HASH_ORIGINAL" ]] || [[ "$HASH_DECOMPRESSION_TEST" != "$HASH_ORIGINAL" ]]; then
if [[ "HASH_COMPRESSION_TEST" != "$HASH_ORIGINAL" ]]; then
echo "The igzip-compressed file does not decompress to the original file." 1>&2
fi
if [[ "HASH_DECOMPRESSION_TEST" != "$HASH_ORIGINAL" ]]; then
echo "igzip does not decompress the gzip-compressed archive to the original file." 1>&2
fi
echo "SHA256 checksums:" 1>&2
printf ' original file:\t%s\n' "$HASH_ORIGINAL" 1>&2
printf ' compression test:\t%s\n' "$HASH_COMPRESSION_TEST" 1>&2
printf ' decompression test:\t%s\n' "$HASH_DECOMPRESSION_TEST" 1>&2
exit 1
fi
touch "$out"
'';
};
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = {
description = "Collection of optimised low-level functions targeting storage applications";
mainProgram = "igzip";
license = lib.licenses.bsd3;
homepage = "https://github.com/intel/isa-l";
changelog = "https://github.com/intel/isa-l/releases/tag/v${finalAttrs.version}";
maintainers = with lib.maintainers; [ jbedo ];
platforms = lib.platforms.all;
badPlatforms = [
# <instantiation>:4:26: error: unexpected token in argument list
# movk x7, p4_low_b1, lsl 16
"aarch64-darwin"
# https://github.com/intel/isa-l/issues/188
"i686-linux"
];
};
})

View File

@@ -0,0 +1,5 @@
{ callPackage }:
{
isabelle-linter = callPackage ./isabelle-linter.nix { };
}

View File

@@ -0,0 +1,40 @@
{
stdenv,
lib,
fetchFromGitHub,
isabelle,
}:
stdenv.mkDerivation rec {
pname = "isabelle-linter";
version = "2025-1.0.0";
src = fetchFromGitHub {
owner = "isabelle-prover";
repo = "isabelle-linter";
rev = "Isabelle2025-v1.0.0";
hash = "sha256-cH9EoIbKa6cqLjw83gnYvCy+Dq0d5fFmJCabdPrRJeI=";
};
nativeBuildInputs = [ isabelle ];
buildPhase = ''
export HOME=$TMP
isabelle components -u $(pwd)
isabelle scala_build
'';
installPhase = ''
dir=$out/Isabelle${isabelle.version}/contrib/${pname}-${version}
mkdir -p $dir
cp -r * $dir/
'';
meta = with lib; {
description = "Linter component for Isabelle";
homepage = "https://github.com/isabelle-prover/isabelle-linter";
maintainers = with maintainers; [ jvanbruegge ];
license = licenses.mit;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,280 @@
{
lib,
stdenv,
fetchurl,
fetchFromGitHub,
coreutils,
net-tools,
java,
scala_3,
polyml,
verit,
vampire,
eprover-ho,
rlwrap,
perl,
procps,
makeDesktopItem,
isabelle-components,
symlinkJoin,
fetchhg,
}:
let
vampire' = vampire.overrideAttrs (_: {
src = fetchFromGitHub {
owner = "vprover";
repo = "vampire";
tag = "v4.8HO4Sledgahammer";
hash = "sha256-CmppaGa4M9tkE1b25cY1LSPFygJy5yV4kpHKbPqvcVE=";
};
});
sha1 = stdenv.mkDerivation {
pname = "isabelle-sha1";
version = "2024";
src = fetchhg {
url = "https://isabelle.sketis.net/repos/sha1";
rev = "0ce12663fe76";
hash = "sha256-DB/ETVZhbT82IMZA97TmHG6gJcGpFavxDKDTwPzIF80=";
};
buildPhase = ''
CFLAGS="-fPIC -I."
LDFLAGS="-fPIC -shared"
$CC $CFLAGS -c sha1.c -o sha1.o
$CC $LDFLAGS sha1.o -o libsha1.so
'';
installPhase = ''
mkdir -p $out/lib
cp libsha1.so $out/lib/
'';
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "isabelle";
version = "2025";
dirname = "Isabelle${finalAttrs.version}";
src =
if stdenv.hostPlatform.isDarwin then
fetchurl {
url = "https://isabelle.in.tum.de/website-${finalAttrs.dirname}/dist/${finalAttrs.dirname}_macos.tar.gz";
hash = "sha256-6ldUwiiFf12dOuJU7JgUeX8kU+opDfILL23LLvDi5/g=";
}
else if stdenv.hostPlatform.isx86 then
fetchurl {
url = "https://isabelle.in.tum.de/website-${finalAttrs.dirname}/dist/${finalAttrs.dirname}_linux.tar.gz";
hash = "sha256-PR1m3jcYI/4xqormZjj3NXW6wkTwCzGu4dy2LzgUfFY=";
}
else
fetchurl {
url = "https://isabelle.in.tum.de/website-${finalAttrs.dirname}/dist/${finalAttrs.dirname}_linux_arm.tar.gz";
hash = "sha256-p/Hp+7J5gJy5s6BVD5Ma1Mu2OS53I8BS7gKSOYYB0PE=";
};
nativeBuildInputs = [ java ];
buildInputs = [
polyml
verit
vampire'
eprover-ho
net-tools
];
propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ procps ];
sourceRoot = "${finalAttrs.dirname}${lib.optionalString stdenv.hostPlatform.isDarwin ".app"}";
doCheck = stdenv.hostPlatform.system != "aarch64-linux";
checkPhase = "bin/isabelle build -v HOL-SMT_Examples";
postUnpack = lib.optionalString stdenv.hostPlatform.isDarwin ''
mv $sourceRoot ${finalAttrs.dirname}
sourceRoot=${finalAttrs.dirname}
'';
postPatch = ''
patchShebangs lib/Tools/ bin/
cat >contrib/verit-*/etc/settings <<EOF
ISABELLE_VERIT=${verit}/bin/veriT
EOF
cat >contrib/e-*/etc/settings <<EOF
E_HOME=${eprover-ho}/bin
E_VERSION=${eprover-ho.version}
EOF
cat >contrib/vampire-*/etc/settings <<EOF
VAMPIRE_HOME=${vampire'}/bin
VAMPIRE_VERSION=${vampire'.version}
VAMPIRE_EXTRA_OPTIONS="--mode casc"
EOF
cat >contrib/polyml-*/etc/settings <<EOF
ML_SYSTEM_64=true
ML_SYSTEM=${polyml.name}
ML_PLATFORM=${stdenv.system}
ML_HOME=${polyml}/bin
ML_OPTIONS="--minheap 1000"
POLYML_HOME="\$COMPONENT"
ML_SOURCES="\$POLYML_HOME/src"
EOF
cat >contrib/jdk*/etc/settings <<EOF
ISABELLE_JAVA_PLATFORM=${stdenv.system}
ISABELLE_JDK_HOME=${java}
EOF
echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings
for comp in contrib/jdk* contrib/polyml-* contrib/verit-* contrib/vampire-* contrib/e-*; do
rm -rf $comp/${if stdenv.hostPlatform.isx86 then "x86" else "arm"}*
done
rm -rf contrib/*/src
substituteInPlace lib/Tools/env \
--replace-fail /usr/bin/env ${coreutils}/bin/env
substituteInPlace src/Tools/Setup/src/Environment.java \
--replace-fail 'cmd.add("/usr/bin/env");' "" \
--replace-fail 'cmd.add("bash");' "cmd.add(\"$SHELL\");"
substituteInPlace src/Pure/General/sha1.ML \
--replace-fail '"$ML_HOME/" ^ (if ML_System.platform_is_windows then "sha1.dll" else "libsha1.so")' '"${sha1}/lib/libsha1.so"'
rm -r heaps
''
+ lib.optionalString (stdenv.hostPlatform.system == "x86_64-darwin") ''
substituteInPlace lib/scripts/isabelle-platform \
--replace-fail 'ISABELLE_APPLE_PLATFORM64=arm64-darwin' ""
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
arch=${
if stdenv.hostPlatform.system == "aarch64-linux" then "arm64-linux" else stdenv.hostPlatform.system
}
for f in contrib/*/$arch/{z3,nunchaku,spass,zipperposition}; do
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f"${lib.optionalString stdenv.hostPlatform.isAarch64 " || true"}
done
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) contrib/bash_process-*/$arch/bash_process
for d in contrib/kodkodi-*/jni/$arch; do
patchelf --set-rpath "${
lib.concatStringsSep ":" [
"${java}/lib/openjdk/lib/server"
"${lib.getLib stdenv.cc.cc}/lib"
]
}" $d/*.so
done
''
+ lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") ''
patchelf --set-rpath "${lib.getLib stdenv.cc.cc}/lib" contrib/z3-*/$arch/z3
'';
buildPhase = ''
export HOME=$TMP # The build fails if home is not set
setup_name=$(basename contrib/isabelle_setup*)
#The following is adapted from https://isabelle.sketis.net/repos/isabelle/file/Isabelle2021-1/Admin/lib/Tools/build_setup
TARGET_DIR="contrib/$setup_name/lib"
rm -rf "$TARGET_DIR"
mkdir -p "$TARGET_DIR/isabelle/setup"
declare -a ARGS=("-Xlint:unchecked")
SOURCES="$(${perl}/bin/perl -e 'while (<>) { if (m/(\S+\.java)/) { print "$1 "; } }' "src/Tools/Setup/etc/build.props")"
for SRC in $SOURCES
do
ARGS["''${#ARGS[@]}"]="src/Tools/Setup/$SRC"
done
echo "Building isabelle setup"
javac -d "$TARGET_DIR" -classpath "${scala_3.bare}/lib/scala3-interfaces-${scala_3.version}.jar:${scala_3.bare}/lib/scala3-compiler_3-${scala_3.version}.jar" "''${ARGS[@]}"
jar -c -f "$TARGET_DIR/isabelle_setup.jar" -e "isabelle.setup.Setup" -C "$TARGET_DIR" isabelle
rm -rf "$TARGET_DIR/isabelle"
echo "Building HOL heap"
bin/isabelle build -v -o system_heaps -b HOL
'';
installPhase = ''
mkdir -p $out/bin
mv $TMP/$dirname $out
cd $out/$dirname
bin/isabelle install $out/bin
# icon
mkdir -p "$out/share/icons/hicolor/isabelle/apps"
cp "$out/Isabelle${finalAttrs.version}/lib/icons/isabelle.xpm" "$out/share/icons/hicolor/isabelle/apps/"
# desktop item
mkdir -p "$out/share"
cp -r "${finalAttrs.desktopItem}/share/applications" "$out/share/applications"
'';
desktopItem = makeDesktopItem {
name = "isabelle";
exec = "isabelle jedit";
icon = "isabelle";
desktopName = "Isabelle";
comment = finalAttrs.meta.description;
categories = [
"Education"
"Science"
"Math"
];
};
meta = with lib; {
description = "Generic proof assistant";
longDescription = ''
Isabelle is a generic proof assistant. It allows mathematical formulas
to be expressed in a formal language and provides tools for proving those
formulas in a logical calculus.
'';
homepage = "https://isabelle.in.tum.de/";
sourceProvenance = with sourceTypes; [
fromSource
binaryNativeCode # source bundles binary dependencies
];
license = licenses.bsd3;
maintainers = [
maintainers.jwiegley
maintainers.jvanbruegge
];
platforms = platforms.unix;
};
passthru.withComponents =
f:
let
isabelle = finalAttrs.finalPackage;
base = "$out/${isabelle.dirname}";
components = f isabelle-components;
in
symlinkJoin {
name = "isabelle-with-components-${isabelle.version}";
paths = [ isabelle ] ++ (map (c: c.override { inherit isabelle; }) components);
postBuild = ''
rm $out/bin/*
cd ${base}
rm bin/*
cp ${isabelle}/${isabelle.dirname}/bin/* bin/
rm etc/components
cat ${isabelle}/${isabelle.dirname}/etc/components > etc/components
export HOME=$TMP
bin/isabelle install $out/bin
patchShebangs $out/bin
''
+ lib.concatMapStringsSep "\n" (c: ''
echo contrib/${c.pname}-${c.version} >> ${base}/etc/components
'') components;
};
})

View File

@@ -0,0 +1,45 @@
diff -Naur cron-old/externs.h cron-new/externs.h
--- cron-old/externs.h 2024-08-23 09:04:25.525752797 -0300
+++ cron-new/externs.h 2024-08-23 10:12:05.304311078 -0300
@@ -121,3 +121,14 @@
#ifndef WCOREDUMP
# define WCOREDUMP(st) (((st) & 0200) != 0)
#endif
+
+/* Nixpkgs-specific patch begin */
+
+/*
+ Implicit saved UIDs do not work here due to way NixOS uses setuid wrappers
+ See https://github.com/NixOS/nixpkgs/issues/16518
+ */
+
+#undef HAVE_SAVED_UIDS
+
+/* Nixpkgs-specific patch end */
diff -Naur cron-old/pathnames.h cron-new/pathnames.h
--- cron-old/pathnames.h 2024-08-23 09:04:25.524752791 -0300
+++ cron-new/pathnames.h 2024-08-23 10:11:33.186749198 -0300
@@ -105,4 +105,23 @@
# define _PATH_DEVNULL "/dev/null"
#endif
+/* Nixpkgs-specific patch begin */
+
+/*
+ We want to ignore the $glibc/include/paths.h definition of sendmail path.
+ Further, set a usable default PATH
+ See https://github.com/NixOS/nixpkgs/issues/16518
+ */
+
+#undef _PATH_SENDMAIL
+#define _PATH_SENDMAIL "@sendmailPath@"
+
+#undef _PATH_VI
+#define _PATH_VI "@viPath@"
+
+#undef _PATH_DEFPATH
+#define _PATH_DEFPATH "@defPath@"
+
+/* Nixpkgs-specific patch end */
+
#endif /* _PATHNAMES_H_ */

View File

@@ -0,0 +1,70 @@
{
lib,
fetchurl,
stdenv,
replaceVars,
vim,
sendmailPath ? "/usr/sbin/sendmail",
}:
stdenv.mkDerivation (finalAttrs: {
pname = "cron";
version = "4.1";
src = fetchurl {
url = "ftp://ftp.isc.org/isc/cron/cron_${finalAttrs.version}.shar";
hash = "sha256-xEWDd1b7mI8slduNxV15N9FLygzfopLegTIsolVuw5o=";
};
patches = [
(replaceVars ./0000-nixpkgs-specific.diff {
inherit sendmailPath;
viPath = lib.getExe' vim "vim";
defPath = lib.concatStringsSep ":" [
"/run/wrappers/bin"
"/nix/var/nix/profiles/default/bin"
"/run/current-system/sw/bin"
"/usr/bin"
"/bin"
];
})
];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
"DESTROOT=$(out)"
];
hardeningEnable = [ "pie" ];
unpackCmd = ''
mkdir cron
pushd cron
sh $curSrc
popd
'';
# do not set sticky bit in /nix/store
# further, do not strip during install since it breaks on cross-compilation
# and we will do this ourselves as needed
postPatch = ''
substituteInPlace Makefile \
--replace ' -o root' ' ' \
--replace 111 755 \
--replace 4755 0755 \
--replace ' -s cron' ' cron'
'';
preInstall = ''
mkdir -p $out/{{,s}bin,share/man/man{1,5,8}}
'';
meta = {
homepage = "https://ftp.isc.org/isc/cron/";
description = "Daemon for running commands at specific times";
license = lib.licenses.bsd0;
mainProgram = "cron";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,68 @@
{
stdenv,
fetchurl,
innoextract,
runtimeShell,
wineWow64Packages,
lib,
}:
let
version = "6.2.2";
majorVersion = builtins.substring 0 1 version;
in
stdenv.mkDerivation rec {
pname = "iscc";
inherit version;
src = fetchurl {
url = "https://files.jrsoftware.org/is/${majorVersion}/innosetup-${version}.exe";
hash = "sha256-gRfRDQCirTOhOQl46jhyhhwzDgh5FEEKY3eyLExbhWM=";
};
nativeBuildInputs = [
innoextract
wineWow64Packages.stable
];
unpackPhase = ''
runHook preUnpack
innoextract $src
runHook postUnpack
'';
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p "$out/bin"
cp -r ./app/* "$out/bin"
cat << 'EOF' > "$out/bin/iscc"
#!${runtimeShell}
export PATH=${wineWow64Packages.stable}/bin:$PATH
export WINEDLLOVERRIDES="mscoree=" # disable mono
# Solves PermissionError: [Errno 13] Permission denied: '/homeless-shelter/.wine'
export HOME=$(mktemp -d)
wineInputFile=$(${wineWow64Packages.stable}/bin/wine winepath -w $1)
${wineWow64Packages.stable}/bin/wine "$out/bin/ISCC.exe" "$wineInputFile"
EOF
substituteInPlace $out/bin/iscc \
--replace "\$out" "$out"
chmod +x "$out/bin/iscc"
runHook postInstall
'';
# Stripping causes `$out/bin/Setup.e32` to lose something important and causes the built windows installers to not run on windows "This app can't run on your PC".
# They worked in wine but not on real windows.
dontStrip = 1;
meta = with lib; {
description = "Compiler for Inno Setup, a tool for creating Windows installers";
homepage = "https://jrsoftware.org/isinfo.php";
changelog = "https://jrsoftware.org/files/is6-whatsnew.htm";
license = licenses.unfreeRedistributable;
maintainers = [ ];
platforms = wineWow64Packages.stable.meta.platforms;
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
python3Packages,
fetchFromGitHub,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "isd";
version = "0.6.0";
pyproject = true;
src = fetchFromGitHub {
owner = "kainctl";
repo = "isd";
tag = "v${version}";
hash = "sha256-0RBalvqa2EM7FsgR4CamqkbKrD5QCrz9stk4ijqZi1Q=";
};
build-system = with python3Packages; [
hatchling
setuptools
];
dependencies = with python3Packages; [
pfzy
pydantic
pydantic-settings
pyyaml
textual
types-pyyaml
xdg-base-dirs
];
pythonRelaxDeps = [
"pydantic"
"pydantic-settings"
"types-pyyaml"
];
pythonImportsCheck = [
"isd_tui"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "TUI to interactively work with systemd units";
longDescription = ''
isd (interactive systemd) is a TUI offering fuzzy search for systemd
units, auto-refreshing previews, smart `sudo` handling, and a fully
customizable interface for power-users and newcomers alike.
'';
homepage = "https://github.com/kainctl/isd";
changelog = "https://github.com/kainctl/isd/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
mainProgram = "isd";
maintainers = with lib.maintainers; [
gepbird
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,22 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "ised";
version = "2.7.1";
src = fetchurl {
url = "mirror://sourceforge/project/ised/ised-${version}.tar.bz2";
sha256 = "0fhha61whkkqranqdxg792g0f5kgp5m3m6z1iqcvjh2c34rczbmb";
};
meta = {
description = "Numeric sequence editor";
maintainers = with lib.maintainers; [ raskin ];
platforms = with lib.platforms; linux;
license = lib.licenses.gpl3Plus;
mainProgram = "ised";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
fetchPypi,
python3Packages,
util-linux,
}:
python3Packages.buildPythonApplication rec {
pname = "isisdl";
version = "1.3.21";
src = fetchPypi {
inherit pname version;
hash = "sha256-YyR0A7NqmUcR+hQnQlIgBdU6CxfHtDOjR3q5I21ROCI=";
};
pyproject = true;
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
cryptography
requests
pyyaml
packaging
colorama
pyinotify
distro
psutil
];
pythonRelaxDeps = [
"cryptography"
"requests"
"packaging"
"distro"
"psutil"
];
buildInputs = [
util-linux # for runtime dependency `lsblk`
];
# disable tests since they require valid login credentials
doCheck = false;
meta = {
homepage = "https://github.com/Emily3403/isisdl";
description = "Downloader for ISIS of TU-Berlin";
longDescription = ''
A downloading utility for ISIS of TU-Berlin.
Download all your files and videos from ISIS.
'';
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ bchmnn ];
mainProgram = "isisdl";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,105 @@
{
lib,
fetchFromGitHub,
stdenv,
unstableGitUpdater,
# Native Build Inputs
cmake,
python3,
pkg-config,
# Build Inputs
xorg,
wayland,
libxkbcommon,
wayland-protocols,
glew,
qt6,
mesa,
alsa-lib,
sdl3,
iniparser,
# Options
imguiDebug ? false,
addrSan ? false,
emscriptenHost ? "",
}:
stdenv.mkDerivation (finalAttrs: {
strictDeps = true;
name = "isle-portable";
version = "0-unstable-2025-09-24";
src = fetchFromGitHub {
owner = "isledecomp";
repo = "isle-portable";
rev = "d890e3db58a898dbcea9ae801f5346308b4b62ea";
hash = "sha256-LRpyO7XoIJuMf6KzCNWBRkRxxUu5+kru0ufYLl0zDcM=";
fetchSubmodules = true;
};
postPatch = lib.optionalString stdenv.isDarwin ''
substituteInPlace packaging/macos/CMakeLists.txt \
--replace-fail "fixup_bundle" "#fixup_bundle"
'';
outputs = [
"out"
"lib"
];
nativeBuildInputs = [
cmake
qt6.wrapQtAppsHook
python3
pkg-config
];
buildInputs = [
qt6.qtbase
sdl3
iniparser
]
++ lib.optionals stdenv.hostPlatform.isLinux [
xorg.libX11
xorg.libXext
xorg.libXrandr
xorg.libXrender
xorg.libXfixes
xorg.libXi
xorg.libXinerama
xorg.libXcursor
wayland
libxkbcommon
wayland-protocols
glew
mesa
alsa-lib
];
cmakeFlags = [
(lib.cmakeBool "DOWNLOAD_DEPENDENCIES" false)
(lib.cmakeBool "ISLE_DEBUG" imguiDebug)
(lib.cmakeFeature "ISLE_EMSCRIPTEN_HOST" emscriptenHost)
];
passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
meta = {
description = "Portable decompilation of Lego Island";
homepage = "https://github.com/isledecomp/isle-portable";
license = with lib.licenses; [
# The original code for the portable project
lgpl3Plus
# The decompilation code
mit
unfree
];
platforms = with lib.platforms; windows ++ linux ++ darwin;
mainProgram = "isle";
maintainers = with lib.maintainers; [
RossSmyth
];
};
})

View File

@@ -0,0 +1,52 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
perl,
inkscape,
librsvg,
targets ? [ "all" ],
}:
stdenvNoCC.mkDerivation {
pname = "iso-flags";
version = "0-unstable-2020-01-18";
src = fetchFromGitHub {
owner = "joielechong";
repo = "iso-country-flags-svg-collection";
rev = "9ebbd577b9a70fbfd9a1931be80c66e0d2f31a9d";
sha256 = "17bm7w4md56xywixfvp7vr3d6ihvxk3383i9i4rpmgm6qa9dyxdl";
};
nativeBuildInputs = [
perl
inkscape
librsvg
(perl.withPackages (
pp: with pp; [
JSON
XMLLibXML
]
))
];
postPatch = ''
patchShebangs .
'';
buildFlags = targets;
installPhase = ''
mkdir -p $out/share
mv build $out/share/iso-flags
'';
meta = with lib; {
homepage = "https://github.com/joielechong/iso-country-flags-svg-collection";
description = "248 country flag SVG & PNG icons with different icon styles";
license = [ licenses.publicDomain ];
platforms = platforms.linux; # the output assets should work anywhere, but unsure about the tools to build them...
maintainers = [ maintainers.mkg20001 ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchurl,
gettext,
python3,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "iso-codes";
version = "4.18.0";
src = fetchurl {
url =
with finalAttrs;
"https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v${version}/${pname}-v${version}.tar.gz";
hash = "sha256-UR9nv0tRqnfxfEWtv/UzJCtQ8eNw/kmlcGtjQZAvrIc=";
};
nativeBuildInputs = [
gettext
python3
];
enableParallelBuilding = true;
passthru.tests = {
pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
meta = with lib; {
homepage = "https://salsa.debian.org/iso-codes-team/iso-codes";
description = "Various ISO codes packaged as XML files";
license = licenses.lgpl21;
platforms = platforms.all;
pkgConfigModules = [ "iso-codes" ];
};
})

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
asciidoc,
libcap,
pkg-config,
systemdLibs,
installShellFiles,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "isolate";
version = "2.2";
src = fetchFromGitHub {
owner = "ioi";
repo = "isolate";
rev = "v${version}";
hash = "sha256-AacKIRS/Ah1KoE+bz+lK2GPbS3F3ifBGXvvCFWMd7hs=";
};
nativeBuildInputs = [
asciidoc
installShellFiles
pkg-config
];
buildInputs = [
libcap.dev
systemdLibs.dev
];
patches = [
./take-config-file-from-env.patch
];
installPhase = ''
runHook preInstall
install -Dm755 ./isolate $out/bin/isolate
install -Dm755 ./isolate-cg-keeper $out/bin/isolate-cg-keeper
install -Dm755 ./isolate-check-environment $out/bin/isolate-check-environment
installManPage isolate.1
runHook postInstall
'';
passthru.tests = {
isolate = nixosTests.isolate;
};
meta = {
description = "Sandbox for securely executing untrusted programs";
mainProgram = "isolate";
homepage = "https://github.com/ioi/isolate";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ virchau13 ];
};
}

View File

@@ -0,0 +1,19 @@
diff --git a/config.c b/config.c
index 6477259..c462ed3 100644
--- a/config.c
+++ b/config.c
@@ -114,9 +114,12 @@ cf_check(void)
void
cf_parse(void)
{
- FILE *f = fopen(CONFIG_FILE, "r");
+ char *config_file = getenv("ISOLATE_CONFIG_FILE");
+ if(!config_file)
+ die("ISOLATE_CONFIG_FILE environment variable not set");
+ FILE *f = fopen(config_file, "r");
if (!f)
- die("Cannot open %s: %m", CONFIG_FILE);
+ die("Cannot open %s: %m", config_file);
char line[MAX_LINE_LEN];
while (fgets(line, sizeof(line), f))

View File

@@ -0,0 +1,36 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "isolyzer";
version = "1.4.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "KBNLresearch";
repo = "isolyzer";
tag = version;
sha256 = "sha256-NqkjnEwpaoyguG5GLscKS9UQGtF9N4jUL5JhrMtKCFE=";
};
build-system = with python3.pkgs; [
setuptools
];
dependencies = with python3.pkgs; [
six
];
pythonImportsCheck = [ "isolyzer" ];
meta = with lib; {
homepage = "https://github.com/KBNLresearch/isolyzer";
description = "Verify size of ISO 9660 image against Volume Descriptor fields";
license = licenses.asl20;
maintainers = with maintainers; [ mkg20001 ];
mainProgram = "isolyzer";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
popt,
}:
stdenv.mkDerivation rec {
pname = "isomd5sum";
version = "1.2.5";
src = fetchFromGitHub {
owner = "rhinstaller";
repo = "isomd5sum";
rev = version;
sha256 = "sha256-c/4CQtAzatfG1Z3SfyB2OZmfJRMnyrZZTqSApsK7R+Q=";
};
strictDeps = true;
nativeBuildInputs = [ python3 ];
buildInputs = [ popt ];
postPatch = ''
substituteInPlace Makefile --replace "#/usr/" "#"
substituteInPlace Makefile --replace "/usr/" "/"
'';
dontConfigure = true;
makeFlags = [ "DESTDIR=${placeholder "out"}" ];
# we don't install python stuff as it borks up directories
installTargets = [
"install-bin"
"install-devel"
];
meta = with lib; {
homepage = "https://github.com/rhinstaller/isomd5sum";
description = "Utilities for working with md5sum implanted in ISO images";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ knl ];
};
}

View File

@@ -0,0 +1 @@
{ python3Packages }: with python3Packages; toPythonApplication isort

View File

@@ -0,0 +1,117 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
which,
m4,
python3,
bison,
flex,
llvmPackages,
ncurses,
onetbb,
# the default test target is sse4, but that is not supported by all Hydra agents
testedTargets ?
if stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32 then
[ "neon-i32x4" ]
else
[ "sse2-i32x4" ],
}:
stdenv.mkDerivation rec {
pname = "ispc";
version = "1.28.2";
src = fetchFromGitHub {
owner = "ispc";
repo = "ispc";
rev = "v${version}";
sha256 = "sha256-dmpOvJ5dVhjGKpJ9xw/lXbvk2FgLv2vjzmUExUfLRmo=";
};
nativeBuildInputs = [
cmake
which
m4
bison
flex
python3
llvmPackages.libllvm.dev
onetbb
];
buildInputs = with llvmPackages; [
libllvm
libclang
openmp
ncurses
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace CURSES_CURSES_LIBRARY CURSES_NCURSES_LIBRARY
substituteInPlace cmake/GenerateBuiltins.cmake \
--replace 'bit 32 64' 'bit 64'
'';
inherit testedTargets;
doCheck = true;
# the compiler enforces -Werror, and -fno-strict-overflow makes it mad.
# hilariously this is something of a double negative: 'disable' the
# 'strictoverflow' hardening protection actually means we *allow* the compiler
# to do strict overflow optimization. somewhat misleading...
hardeningDisable = [ "strictoverflow" ];
checkPhase = ''
export ISPC_HOME=$PWD/bin
for target in $testedTargets
do
echo "Testing target $target"
echo "================================"
echo
(cd ../
PATH=${llvmPackages.clang}/bin:$PATH python scripts/run_tests.py -t $target --non-interactive --verbose --file=test_output.log
fgrep -q "No new fails" test_output.log || exit 1)
done
'';
cmakeFlags = [
"-DFILE_CHECK_EXECUTABLE=${llvmPackages.llvm}/bin/FileCheck"
"-DLLVM_AS_EXECUTABLE=${llvmPackages.llvm}/bin/llvm-as"
"-DLLVM_CONFIG_EXECUTABLE=${llvmPackages.llvm.dev}/bin/llvm-config"
"-DCLANG_EXECUTABLE=${llvmPackages.clang}/bin/clang"
"-DCLANGPP_EXECUTABLE=${llvmPackages.clang}/bin/clang++"
"-DISPC_INCLUDE_EXAMPLES=OFF"
"-DISPC_INCLUDE_UTILS=OFF"
(
"-DARM_ENABLED="
+ (if stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32 then "TRUE" else "FALSE")
)
(
"-DX86_ENABLED="
+ (if stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isx86_32 then "TRUE" else "FALSE")
)
];
meta = with lib; {
homepage = "https://ispc.github.io/";
description = "Intel 'Single Program, Multiple Data' Compiler, a vectorised language";
mainProgram = "ispc";
license = licenses.bsd3;
platforms = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
]; # TODO: buildable on more platforms?
maintainers = with maintainers; [
aristid
thoughtpolice
athas
alexfmpe
];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchurl,
bison,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "ispell";
version = "3.4.06";
src = fetchurl {
url = "https://www.cs.hmc.edu/~geoff/tars/${pname}-${version}.tar.gz";
sha256 = "sha256-F8kWM9TIB1rMUDFjoWRj/FSrHHRTKArTnNPbdceD66Y=";
};
buildInputs = [
bison
ncurses
];
postPatch = ''
cat >> local.h <<EOF
${lib.optionalString (!stdenv.hostPlatform.isDarwin) "#define USG"}
#define TERMLIB "-lncurses"
#define LANGUAGES "{american,MASTERDICTS=american.med,HASHFILES=americanmed.hash}"
#define MASTERHASH "americanmed.hash"
#define BINDIR "$out/bin"
#define LIBDIR "$out/lib"
#define ELISPDIR "{$out}/share/emacs/site-lisp"
#define TEXINFODIR "$out/share/info"
#define MAN1DIR "$out/share/man/man1"
#define MAN4DIR "$out/share/man/man4"
#define MAN45DIR "$out/share/man/man5"
#define MINIMENU
#define HAS_RENAME
EOF
'';
meta = with lib; {
description = "Interactive spell-checking program for Unix";
homepage = "https://www.cs.hmc.edu/~geoff/ispell.html";
license = licenses.free;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchurl,
cmake,
boost,
}:
stdenv.mkDerivation rec {
pname = "ispike";
version = "2.1.1";
src = fetchurl {
url = "mirror://sourceforge/ispike/${pname}-${version}.tar.gz";
sha256 = "0khrxp43bi5kisr8j4lp9fl4r5marzf7b4inys62ac108sfb28lp";
};
postPatch = ''
sed -i "1i #include <map>" include/iSpike/YarpConnection.hpp
'';
nativeBuildInputs = [ cmake ];
buildInputs = [ boost ];
meta = {
description = "Spiking neural interface between iCub and a spiking neural simulator";
homepage = "https://sourceforge.net/projects/ispike/";
license = lib.licenses.lgpl3;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.nico202 ];
};
}

View File

@@ -0,0 +1,64 @@
{
fetchFromGitHub,
fetchpatch,
lib,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "isponsorblocktv";
version = "2.5.3";
pyproject = true;
src = fetchFromGitHub {
owner = "dmunozv04";
repo = "iSponsorBlockTV";
tag = "v${version}";
hash = "sha256-vxTEec5SMq5zcX70PiRD61aDPJUySuBG0TBQH5Qw8ow=";
};
patches = [
# Port iSponsorBlockTV to pyytlounge v3
(fetchpatch {
url = "https://github.com/lukegb/iSponsorBlockTV/commit/3b50819fffbea23ef02f24726982a1b3313fa952.patch";
hash = "sha256-2adgGE3rBnp+/z+2iblWCxO+6qV9RHx0dqTxv/kjDJU=";
})
# Update setup_wizard for Textual v3
(fetchpatch {
url = "https://github.com/lukegb/iSponsorBlockTV/commit/4a3874b781f796ad32e40fc871fee7c080716171.patch";
hash = "sha256-kdfAaIuvQovst55sOmKv+zH/7JxN1JHI9aTF0c9fYAY=";
})
];
build-system = with python3Packages; [
hatchling
hatch-requirements-txt
];
dependencies = with python3Packages; [
aiohttp
appdirs
async-cache
pyytlounge
rich-click
rich
ssdp
textual-slider
textual
xmltodict
];
# all dependencies are pinned to exact version numbers
pythonRelaxDeps = true;
meta = {
homepage = "https://github.com/dmunozv04/iSponsorBlockTV";
changelog = "https://github.com/dmunozv04/iSponsorBlockTV/releases/tag/${src.tag}";
description = "SponsorBlock client for all YouTube TV clients";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ lukegb ];
mainProgram = "iSponsorBlockTV";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
fetchFromGitHub,
python3Packages,
nix-update-script,
withKeyring ? true,
}:
python3Packages.buildPythonApplication {
pname = "isrcsubmit";
version = "2.1.0-unstable-2023-08-10";
format = "pyproject";
src = fetchFromGitHub {
owner = "JonnyJD";
repo = "musicbrainz-isrcsubmit";
rev = "8f4c3b9f9b8f983443d58fba381baaa3a74edad7";
hash = "sha256-6SJt0wtXC49Eh6g7DBy73MeCueF7CRuCvYC27es1qAM=";
};
postPatch = ''
# Change binary name to isrcsubmit so that `import isrcsubmit` in the wrapper doesn't fail
substituteInPlace setup.py --replace-fail "'isrcsubmit.py=isrcsubmit:main'," "'isrcsubmit=isrcsubmit:main',"
# Set default argument for main, which is set `if __name__ == '__main__'` upstream
substituteInPlace isrcsubmit.py --replace-fail "main(argv):" "main(argv=sys.argv):"
'';
build-system = with python3Packages; [
setuptools
];
dependencies =
with python3Packages;
[
musicbrainzngs
discid
]
++ lib.optional withKeyring [
keyring
];
pythonImportsCheck = [ "isrcsubmit" ];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Script to submit ISRCs from disc to MusicBrainz";
license = lib.licenses.gpl3Plus;
homepage = "http://jonnyjd.github.io/musicbrainz-isrcsubmit/";
maintainers = [ ];
mainProgram = "isrcsubmit";
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "issue2md";
version = "1.3.1";
src = fetchFromGitHub {
owner = "bigwhite";
repo = "issue2md";
tag = "v${finalAttrs.version}";
hash = "sha256-IwjG6APsl3iZXlb3+SA0wzxE0um/T1oEe5JROJYlfRk=";
};
vendorHash = null;
meta = {
description = "CLI tool to convert GitHub issue into Markdown file";
homepage = "https://github.com/bigwhite/issue2md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ drupol ];
mainProgram = "issue2md";
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenvNoCC,
fetchurl,
writeShellApplication,
curl,
common-updater-scripts,
unzip,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "istat-menus";
version = "7.10.4";
src = fetchurl {
url = "https://cdn.istatmenus.app/files/istatmenus${lib.versions.major finalAttrs.version}/versions/iStatMenus${finalAttrs.version}.zip";
hash = "sha256-9fw0J492ywzuKXGR47WAjL6IROCRByCn7KsbQecUU+w=";
};
sourceRoot = ".";
nativeBuildInputs = [ unzip ];
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
cp -r *.app "$out/Applications"
runHook postInstall
'';
passthru.updateScript = lib.getExe (writeShellApplication {
name = "istatmenus-update-script";
runtimeInputs = [
curl
common-updater-scripts
];
text = ''
redirect_url="$(curl -s -L -f "https://download.bjango.com/istatmenus${lib.versions.major finalAttrs.version}/" -o /dev/null -w '%{url_effective}')"
version="''${redirect_url##*/}"; version="''${version#iStatMenus}"; version="''${version%.zip}"
update-source-version istat-menus "$version"
'';
});
meta = {
changelog = "https://bjango.com/mac/istatmenus/versionhistory/";
description = "Set of nine separate and highly configurable menu items that let you know exactly what's going on inside your Mac";
homepage = "https://bjango.com/mac/istatmenus/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
FlameFlag
iedame
];
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,63 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "istioctl";
version = "1.27.1";
src = fetchFromGitHub {
owner = "istio";
repo = "istio";
rev = version;
hash = "sha256-APUhW1PoNmfnbScoeVbsFY1R9jJT4wABpOjxtY5fFVc=";
};
vendorHash = "sha256-+dlZAO6odRCbsqm5Q172g4OMs9S4ovekajAoseHYZ94=";
nativeBuildInputs = [ installShellFiles ];
# Bundle release metadata
ldflags =
let
attrs = [
"istio.io/istio/pkg/version.buildVersion=${version}"
"istio.io/istio/pkg/version.buildStatus=Nix"
"istio.io/istio/pkg/version.buildTag=${version}"
"istio.io/istio/pkg/version.buildHub=docker.io/istio"
];
in
[
"-s"
"-w"
"${lib.concatMapStringsSep " " (attr: "-X ${attr}") attrs}"
];
subPackages = [ "istioctl/cmd/istioctl" ];
doInstallCheck = true;
installCheckPhase = ''
$out/bin/istioctl version --remote=false | grep ${version} > /dev/null
'';
postInstall = ''
$out/bin/istioctl collateral --man --bash --zsh
installManPage *.1
installShellCompletion istioctl.bash
installShellCompletion --zsh _istioctl
'';
meta = with lib; {
description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
mainProgram = "istioctl";
homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
license = licenses.asl20;
maintainers = with maintainers; [
bryanasdev000
veehaitch
ryan4yin
];
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchgit,
pkg-config,
perl,
openssl,
db,
cyrus_sasl,
zlib,
perl538Packages,
autoreconfHook,
# Disabled by default as XOAUTH2 is an "OBSOLETE" SASL mechanism and this relies
# on a package that isn't really maintained anymore:
withCyrusSaslXoauth2 ? false,
cyrus-sasl-xoauth2,
makeWrapper,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "isync";
version = "1.5.1";
src = fetchgit {
url = "https://git.code.sf.net/p/isync/isync";
tag = "v${finalAttrs.version}";
hash = "sha256-l0jL4CzAdFtQGekbywic1Kuihy3ZQi4ozhSEcbJI0t0=";
};
# Fixes "Fatal: buffer too small" error
# see https://sourceforge.net/p/isync/mailman/isync-devel/thread/87fsevvebj.fsf%40steelpick.2x.cz/
env.NIX_CFLAGS_COMPILE = "-DQPRINTF_BUFF=4000";
autoreconfPhase = ''
echo "${finalAttrs.version}" > VERSION
./autogen.sh
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
perl
]
++ lib.optionals withCyrusSaslXoauth2 [ makeWrapper ];
buildInputs = [
perl538Packages.TimeDate
openssl
db
cyrus_sasl
zlib
];
postInstall = lib.optionalString withCyrusSaslXoauth2 ''
wrapProgram "$out/bin/mbsync" \
--prefix SASL_PATH : "${
lib.makeSearchPath "lib/sasl2" [
cyrus-sasl-xoauth2
cyrus_sasl.out
]
}"
'';
meta = {
homepage = "http://isync.sourceforge.net/";
# https://sourceforge.net/projects/isync/
changelog = "https://sourceforge.net/p/isync/isync/ci/v${finalAttrs.version}/tree/NEWS";
description = "Free IMAP and MailDir mailbox synchronizer";
longDescription = ''
mbsync (formerly isync) is a command line application which synchronizes
mailboxes. Currently Maildir and IMAP4 mailboxes are supported. New
messages, message deletions and flag changes can be propagated both ways.
'';
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = [ ];
mainProgram = "mbsync";
};
})