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,84 @@
{
stdenv,
lib,
fetchFromGitHub,
makeWrapper,
gettext,
python3,
rsync,
cron,
openssh,
sshfs-fuse,
encfs,
}:
let
python' = python3.withPackages (
ps: with ps; [
dbus-python
keyring
packaging
]
);
apps = lib.makeBinPath [
openssh
python'
cron
rsync
sshfs-fuse
encfs
];
in
stdenv.mkDerivation rec {
pname = "backintime-common";
version = "1.5.6";
src = fetchFromGitHub {
owner = "bit-team";
repo = "backintime";
rev = "v${version}";
sha256 = "sha256-y9uo/6R9OXK9hqUD0pCLJXF2B80lr2gXf6v8+Ca6u5M=";
};
nativeBuildInputs = [
makeWrapper
gettext
];
buildInputs = [ python' ];
installFlags = [ "DEST=$(out)" ];
configureFlags = [ "--python=${lib.getExe python'}" ];
preConfigure = ''
patchShebangs --build updateversion.sh
cd common
substituteInPlace configure \
--replace-fail "/.." "" \
--replace-fail "share/backintime" "${python'.sitePackages}/backintime"
substituteInPlace "backintime" "backintime-askpass" \
--replace-fail "share" "${python'.sitePackages}"
'';
dontAddPrefix = true;
preFixup = ''
wrapProgram "$out/bin/backintime" \
--prefix PATH : ${apps}
'';
meta = {
homepage = "https://github.com/bit-team/backintime";
description = "Simple backup tool for Linux";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ stephen-huan ];
platforms = lib.platforms.linux;
mainProgram = "backintime";
longDescription = ''
Back In Time is a simple backup tool (on top of rsync) for Linux
inspired from "flyback project" and "TimeVault". The backup is
done by taking snapshots of a specified set of directories.
'';
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
backintime-common,
python3,
polkit,
which,
su,
coreutils,
util-linux,
wrapQtAppsHook,
qtbase,
qtwayland,
}:
let
python' = python3.withPackages (
ps: with ps; [
pyqt6
backintime-common
packaging
]
);
in
stdenv.mkDerivation {
inherit (backintime-common)
version
src
installFlags
meta
dontAddPrefix
;
pname = "backintime-qt";
buildInputs = [
python'
backintime-common
qtbase
qtwayland
];
nativeBuildInputs = backintime-common.nativeBuildInputs or [ ] ++ [
wrapQtAppsHook
];
configureFlags = [ "--python=${lib.getExe python'}" ];
preConfigure = ''
patchShebangs --build updateversion.sh
cd qt
substituteInPlace qttools_path.py \
--replace "__file__, os.pardir, os.pardir" '"${backintime-common}/${python'.sitePackages}/backintime"'
'';
preFixup = ''
wrapQtApp "$out/bin/backintime-qt" \
--prefix PATH : "${lib.getBin backintime-common}/bin:$PATH"
substituteInPlace "$out/share/polkit-1/actions/net.launchpad.backintime.policy" \
--replace-fail "/usr/bin/backintime-qt" "$out/bin/backintime-qt"
substituteInPlace "$out/share/applications/backintime-qt-root.desktop" \
--replace-fail "/usr/bin/backintime-qt" "backintime-qt"
substituteInPlace "$out/share/backintime/qt/serviceHelper.py" \
--replace-fail "'which'" "'${lib.getExe which}'" \
--replace-fail "/bin/su" "${lib.getBin su}/bin/su" \
--replace-fail "/usr/bin/backintime" "${lib.getExe backintime-common}" \
--replace-fail "/usr/bin/nice" "${lib.getBin coreutils}/bin/nice" \
--replace-fail "/usr/bin/ionice" "${lib.getBin util-linux}/bin/ionice"
substituteInPlace "$out/share/dbus-1/system-services/net.launchpad.backintime.serviceHelper.service" \
--replace-fail "/usr/share/backintime" "$out/share/backintime"
substituteInPlace "$out/bin/backintime-qt_polkit" \
--replace-fail "/usr/bin/backintime-qt" "$out/bin/backintime-qt"
wrapProgram "$out/bin/backintime-qt_polkit" \
--prefix PATH : "${lib.getBin polkit}/bin:$PATH"
'';
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
lua,
pkg-config,
rsync,
asciidoc,
libxml2,
docbook_xml_dtd_45,
docbook_xsl,
libxslt,
apple-sdk,
}:
let
xnu = apple-sdk.sourceRelease "xnu";
in
stdenv.mkDerivation rec {
pname = "lsyncd";
version = "2.3.1";
src = fetchFromGitHub {
owner = "axkibe";
repo = "lsyncd";
rev = "release-${version}";
hash = "sha256-QBmvS1HGF3VWS+5aLgDr9AmUfEsuSz+DTFIeql2XHH4=";
};
postPatch = ''
substituteInPlace default-rsync.lua \
--replace "/usr/bin/rsync" "${rsync}/bin/rsync"
'';
# Special flags needed on Darwin:
# https://github.com/axkibe/lsyncd/blob/42413cabbedca429d55a5378f6e830f191f3cc86/INSTALL#L51
cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
"-DWITH_INOTIFY=OFF"
"-DWITH_FSEVENTS=ON"
"-DXNU_DIR=${xnu}"
];
dontUseCmakeBuildDir = true;
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
rsync
lua
asciidoc
libxml2
docbook_xml_dtd_45
docbook_xsl
libxslt
];
meta = with lib; {
homepage = "https://github.com/axkibe/lsyncd";
description = "Utility that synchronizes local directories with remote targets";
mainProgram = "lsyncd";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ bobvanderlinden ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
wrapQtAppsHook,
qtbase,
}:
stdenv.mkDerivation rec {
pname = "rclone-browser";
version = "1.8.0";
src = fetchFromGitHub {
owner = "kapitainsky";
repo = "RcloneBrowser";
rev = version;
sha256 = "14ckkdypkfyiqpnz0y2b73wh1py554iyc3gnymj4smy0kg70ai33";
};
patches = [
# patch for Qt 5.15, https://github.com/kapitainsky/RcloneBrowser/pull/126
(fetchpatch {
url = "https://github.com/kapitainsky/RcloneBrowser/commit/ce9cf52e9c584a2cc85a5fa814b0fd7fa9cf0152.patch";
sha256 = "0nm42flmaq7mva9j4dpp18i1xcv8gr08zfyb9apz1zwn79h1w0c8";
})
];
nativeBuildInputs = [
cmake
wrapQtAppsHook
];
buildInputs = [ qtbase ];
meta = with lib; {
inherit (src.meta) homepage;
description = "Graphical Frontend to Rclone written in Qt";
mainProgram = "rclone-browser";
license = licenses.unlicense;
platforms = platforms.linux;
maintainers = with maintainers; [ dotlambda ];
};
}

View File

@@ -0,0 +1,112 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
buildPackages,
installShellFiles,
versionCheckHook,
makeWrapper,
enableCmount ? true,
fuse,
fuse3,
macfuse-stubs,
librclone,
nix-update-script,
}:
buildGoModule rec {
pname = "rclone";
version = "1.71.1";
outputs = [
"out"
"man"
];
src = fetchFromGitHub {
owner = "rclone";
repo = "rclone";
tag = "v${version}";
hash = "sha256-CvU07yzqBtQVjNtwnOLnSwULNkDMSmNTNyLFpDYy/w4=";
};
vendorHash = "sha256-Hapwa+WYz6a22HauRjRUl7q0ZlwR/j/zwex0VebgC+g=";
subPackages = [ "." ];
nativeBuildInputs = [
installShellFiles
makeWrapper
];
buildInputs = lib.optional enableCmount (
if stdenv.hostPlatform.isDarwin then macfuse-stubs else fuse
);
tags = lib.optionals enableCmount [ "cmount" ];
ldflags = [
"-s"
"-w"
"-X github.com/rclone/rclone/fs.Version=${src.tag}"
];
postConfigure = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
substituteInPlace vendor/github.com/winfsp/cgofuse/fuse/host_cgo.go \
--replace-fail '"libfuse.so.2"' '"${lib.getLib fuse}/lib/libfuse.so.2"'
'';
postInstall =
let
rcloneBin =
if stdenv.buildPlatform.canExecute stdenv.hostPlatform then
"$out"
else
lib.getBin buildPackages.rclone;
in
''
installManPage rclone.1
for shell in bash zsh fish; do
${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
installShellCompletion rclone.$shell
done
# filesystem helpers
ln -s $out/bin/rclone $out/bin/rclonefs
ln -s $out/bin/rclone $out/bin/mount.rclone
''
+
lib.optionalString (enableCmount && !stdenv.hostPlatform.isDarwin)
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount3,
# as the setuid wrapper is required as non-root on NixOS.
''
wrapProgram $out/bin/rclone \
--suffix PATH : "${lib.makeBinPath [ fuse3 ]}"
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/${meta.mainProgram}";
versionCheckProgramArg = "version";
passthru = {
tests = {
inherit librclone;
};
updateScript = nix-update-script { };
};
meta = {
description = "Command line program to sync files and directories to and from major cloud storage";
homepage = "https://rclone.org";
changelog = "https://github.com/rclone/rclone/blob/v${version}/docs/content/changelog.md";
license = lib.licenses.mit;
mainProgram = "rclone";
maintainers = with lib.maintainers; [
SuperSandro2000
];
};
}

View File

@@ -0,0 +1,107 @@
{
lib,
stdenv,
fetchpatch,
fetchurl,
updateAutotoolsGnuConfigScriptsHook,
perl,
libiconv,
zlib,
popt,
enableACLs ? lib.meta.availableOn stdenv.hostPlatform acl,
acl,
enableLZ4 ? true,
lz4,
enableOpenSSL ? true,
openssl,
enableXXHash ? true,
xxHash,
enableZstd ? true,
zstd,
nixosTests,
fakeroot,
}:
stdenv.mkDerivation rec {
pname = "rsync";
version = "3.4.1";
src = fetchurl {
# signed with key 9FEF 112D CE19 A0DC 7E88 2CB8 1BB2 4997 A853 5F6F
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
hash = "sha256-KSS8s6Hti1UfwQH3QLnw/gogKxFQJ2R89phQ1l/YjFI=";
};
patches = [
# See: <https://github.com/RsyncProject/rsync/pull/790>
./fix-tests-in-darwin-sandbox.patch
# fix compilation with gcc15
(fetchpatch {
url = "https://github.com/RsyncProject/rsync/commit/a4b926dcdce96b0f2cc0dc7744e95747b233500a.patch";
hash = "sha256-UiEQJ+p2gtIDYNJqnxx4qKgItKIZzCpkHnvsgoxBmSE=";
})
];
nativeBuildInputs = [
updateAutotoolsGnuConfigScriptsHook
perl
];
buildInputs = [
libiconv
zlib
popt
]
++ lib.optional enableACLs acl
++ lib.optional enableZstd zstd
++ lib.optional enableLZ4 lz4
++ lib.optional enableOpenSSL openssl
++ lib.optional enableXXHash xxHash;
# fakeroot doesn't work well on darwin anymore, apparently
checkInputs = lib.optionals (!stdenv.isDarwin) [ fakeroot ];
configureFlags = [
(lib.enableFeature enableLZ4 "lz4")
(lib.enableFeature enableOpenSSL "openssl")
(lib.enableFeature enableXXHash "xxhash")
(lib.enableFeature enableZstd "zstd")
# Feature detection does a runtime check which varies according to ipv6
# availability, so force it on to make reproducible, see #360152.
(lib.enableFeature true "ipv6")
"--with-nobody-group=nogroup"
# disable the included zlib explicitly as it otherwise still compiles and
# links them even.
"--with-included-zlib=no"
]
++ lib.optionals (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_64) [
# fix `multiversioning needs 'ifunc' which is not supported on this target` error
"--disable-roll-simd"
];
enableParallelBuilding = true;
passthru.tests = { inherit (nixosTests) rsyncd; };
doCheck = true;
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Fast incremental file transfer utility";
homepage = "https://rsync.samba.org/";
license = licenses.gpl3Plus;
mainProgram = "rsync";
maintainers = with lib.maintainers; [
kampfschlaefer
ivan
];
platforms = platforms.unix;
identifiers.cpeParts = {
vendor = "samba";
inherit version;
update = "-";
};
};
}

View File

@@ -0,0 +1,56 @@
From 9b104ed9859f17b6ed4c4ad01806c75a0c197dd7 Mon Sep 17 00:00:00 2001
From: Emily <hello@emily.moe>
Date: Tue, 5 Aug 2025 15:55:24 +0100
Subject: [PATCH] Allow `ls(1)` to fail in test setup
This can happen when the tests are unable to `stat(2)` some files in
`/etc`, `/bin`, or `/`, due to Unix permissions or other sandboxing. We
still guard against serious errors, which use exit code 2.
---
testsuite/longdir.test | 4 ++--
testsuite/rsync.fns | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/testsuite/longdir.test b/testsuite/longdir.test
index 8d66bb5f..26747292 100644
--- a/testsuite/longdir.test
+++ b/testsuite/longdir.test
@@ -16,9 +16,9 @@ makepath "$longdir" || test_skipped "unable to create long directory"
touch "$longdir/1" || test_skipped "unable to create files in long directory"
date > "$longdir/1"
if [ -r /etc ]; then
- ls -la /etc >"$longdir/2"
+ ls -la /etc >"$longdir/2" || [ $? -eq 1 ]
else
- ls -la / >"$longdir/2"
+ ls -la / >"$longdir/2" || [ $? -eq 1 ]
fi
checkit "$RSYNC --delete -avH '$fromdir/' '$todir'" "$fromdir/" "$todir"
diff --git a/testsuite/rsync.fns b/testsuite/rsync.fns
index 2ab97b69..f7da363f 100644
--- a/testsuite/rsync.fns
+++ b/testsuite/rsync.fns
@@ -195,15 +195,15 @@ hands_setup() {
echo some data > "$fromdir/dir/subdir/foobar.baz"
mkdir "$fromdir/dir/subdir/subsubdir"
if [ -r /etc ]; then
- ls -ltr /etc > "$fromdir/dir/subdir/subsubdir/etc-ltr-list"
+ ls -ltr /etc > "$fromdir/dir/subdir/subsubdir/etc-ltr-list" || [ $? -eq 1 ]
else
- ls -ltr / > "$fromdir/dir/subdir/subsubdir/etc-ltr-list"
+ ls -ltr / > "$fromdir/dir/subdir/subsubdir/etc-ltr-list" || [ $? -eq 1 ]
fi
mkdir "$fromdir/dir/subdir/subsubdir2"
if [ -r /bin ]; then
- ls -lt /bin > "$fromdir/dir/subdir/subsubdir2/bin-lt-list"
+ ls -lt /bin > "$fromdir/dir/subdir/subsubdir2/bin-lt-list" || [ $? -eq 1 ]
else
- ls -lt / > "$fromdir/dir/subdir/subsubdir2/bin-lt-list"
+ ls -lt / > "$fromdir/dir/subdir/subsubdir2/bin-lt-list" || [ $? -eq 1 ]
fi
# echo testing head:
--
2.50.1

View File

@@ -0,0 +1,36 @@
{
stdenv,
python3,
rsync,
}:
stdenv.mkDerivation {
pname = "rrsync";
inherit (rsync) version src;
buildInputs = [
rsync
(python3.withPackages (pythonPackages: with pythonPackages; [ braceexpand ]))
];
# Skip configure and build phases.
# We just want something from the support directory
dontConfigure = true;
dontBuild = true;
inherit (rsync) patches;
postPatch = ''
substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync
'';
installPhase = ''
mkdir -p $out/bin
cp support/rrsync $out/bin
chmod a+x $out/bin/rrsync
'';
meta = rsync.meta // {
description = "Helper to run rsync-only environments from ssh-logins";
mainProgram = "rrsync";
};
}