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,23 @@
(echo "#!$SHELL"; \
echo 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "$@"') > ssh
chmod +x ssh
export CVS_RSH=$PWD/ssh
# creating the export drictory and checking out there only to be able to
# move the content without the root directory into $out ...
# cvs -f -d "$url" export $tag -d "$out" "$module"
# should work (but didn't - got no response on #cvs)
# See als man Page for those options
mkdir -p export
if [ -n "$tag" ]; then
tag="-r $tag"
else
if [ -n "$date" ]; then
tag="-D $date"
else
tag="-D NOW"
fi
fi
(cd export && cvs -f -z0 -d "$cvsRoot" export $tag "$module")
mv export/* $out

View File

@@ -0,0 +1,43 @@
# example tags:
# date="2007-20-10"; (get the last version before given date)
# tag="<tagname>" (get version by tag name)
# If you don't specify neither one date="NOW" will be used (get latest)
{
stdenvNoCC,
cvs,
openssh,
lib,
}:
lib.makeOverridable (
lib.fetchers.withNormalizedHash { } (
{
cvsRoot,
module,
tag ? null,
date ? null,
outputHash,
outputHashAlgo,
}:
stdenvNoCC.mkDerivation {
name = "cvs-export";
builder = ./builder.sh;
nativeBuildInputs = [
cvs
openssh
];
inherit outputHash outputHashAlgo;
outputHashMode = "recursive";
inherit
cvsRoot
module
tag
date
;
}
)
)

View File

@@ -0,0 +1,82 @@
#! /bin/sh -e
cvsRoot=$1
module=$2
tag=$3
expHash=$4
hashType=$NIX_HASH_ALGO
if test -z "$hashType"; then
hashType=sha256
fi
if test -z "$cvsRoot"; then
echo "syntax: nix-prefetch-cvs CVSROOT MODULE [TAG [HASH]]" >&2
exit 1
elif test -z "$module"; then
echo "syntax: nix-prefetch-cvs CVSROOT MODULE [TAG [HASH]]" >&2
exit 1
fi
mkTempDir() {
# nix>=2.20 rejects adding symlinked paths to the store, so use realpath
# to resolve to a physical path. https://github.com/NixOS/nix/issues/11941
tmpPath="$(realpath "$(mktemp -d --tmpdir nix-prefetch-csv-XXXXXXXX)")"
trap removeTempDir EXIT
}
removeTempDir() {
rm -rf "$tmpPath"
}
# If the hash was given, a file with that hash may already be in the
# store.
if test -n "$expHash"; then
finalPath=$(nix-store --print-fixed-path --recursive "$hashType" "$expHash" cvs-export)
if ! nix-store --check-validity "$finalPath" 2> /dev/null; then
finalPath=
fi
hash=$expHash
fi
# If we don't know the hash or a path with that hash doesn't exist,
# download the file and add it to the store.
if test -z "$finalPath"; then
mkTempDir
tmpFile=$tmpPath/cvs-export
#mkdir $tmpPath
# Perform the checkout.
if test -z "$tag"; then
args=(-D "now")
elif test "$USE_DATE" = "1"; then
args=(-D "$tag")
else
args=(-r "$tag")
fi
(cd "$tmpPath" && cvs -f -z0 -d $cvsRoot export "${args[*]}" -d cvs-export $module >&2)
# Compute the hash.
hash=$(nix-hash --type $hashType ${hashFormat:-"--sri"} $tmpFile)
if ! test -n "$QUIET"; then echo "hash is $hash" >&2; fi
# Add the downloaded file to the Nix store.
finalPath=$(nix-store --add-fixed --recursive "$hashType" $tmpFile)
if test -n "$expHash" -a "$expHash" != "$hash"; then
echo "hash mismatch for CVS root \`$cvsRoot'"
exit 1
fi
fi
if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
echo $hash
if test -n "$PRINT_PATH"; then
echo $finalPath
fi