From 00c2bf08de7348bebd67f6b16f2fe7e860b4f845 Mon Sep 17 00:00:00 2001 From: Lovel Rishi Date: Tue, 4 Aug 2026 15:29:33 +0000 Subject: [PATCH 1/4] Add xxhash --- packages/xxhash/build.ncl | 53 +++++++++++++++++++++++++++++++++++++++ packages/xxhash/build.sh | 11 ++++++++ 2 files changed, 64 insertions(+) create mode 100644 packages/xxhash/build.ncl create mode 100755 packages/xxhash/build.sh diff --git a/packages/xxhash/build.ncl b/packages/xxhash/build.ncl new file mode 100644 index 00000000..6848e478 --- /dev/null +++ b/packages/xxhash/build.ncl @@ -0,0 +1,53 @@ +let { BuildSpec, Local, OutputBin, OutputData, OutputLib, Source, .. } = import "minimal.ncl" in + +let version = "0.8.3" in + +let base = import "../base/build.ncl" in +let gcc = import "../gcc/build.ncl" in +let make = import "../make/build.ncl" in +let toolchain = import "../toolchain/build.ncl" in +let glibc = import "../glibc/build.ncl" in + +{ + name = "xxhash", + + build_deps = [ + { file = "build.sh" } | Local, + { + url = "https://github.com/Cyan4973/xxHash/archive/refs/tags/v%{version}.tar.gz", + sha256 = "aae608dfe8213dfd05d909a57718ef82f30722c392344583d3f39050c7f29a80", + extract = true, + strip_prefix = "xxHash-%{version}", + } | Source, + base, + toolchain, + make, + gcc + ], + + runtime_deps = [ + glibc + ], + + cmd = "./build.sh", + build_args = { + include version, + }, + + outputs = { + bins = { glob = "usr/bin/*" } | OutputBin, + libs = { glob = "usr/lib/{*.so*,*.a*}" } | OutputLib, + headers = { glob = "usr/include/**" } | OutputData, + pkgconfig = { glob = "usr/lib/pkgconfig/**" } | OutputData, + man = { glob = "usr/share/man/**" } | OutputData, + }, + + attrs = { + upstream_version = version, + source_provenance = { + category = 'GithubRepo, + owner = "Cyan4973", + repo = "xxHash", + }, + }, +} | BuildSpec diff --git a/packages/xxhash/build.sh b/packages/xxhash/build.sh new file mode 100755 index 00000000..0509d229 --- /dev/null +++ b/packages/xxhash/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -euo pipefail + + +export CC=gcc +export CFLAGS="-O3 -pipe -ffile-prefix-map=$(pwd)=/builddir -gno-record-gcc-switches" +export CXXFLAGS="$CFLAGS" +export LDFLAGS="-Wl,--build-id=none" +export ARFLAGS=Drc + +make -j$(nproc) DESTDIR=$OUTPUT_DIR PREFIX=/usr install From 4287633cb0edadbffe95ddd2a6ff6f35f2b4dceb Mon Sep 17 00:00:00 2001 From: Lovel Rishi Date: Tue, 4 Aug 2026 15:47:25 +0000 Subject: [PATCH 2/4] Add rsync --- packages/rsync/build.ncl | 54 ++++++++++++++++++++++++++++++++++++++++ packages/rsync/build.sh | 19 ++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 packages/rsync/build.ncl create mode 100755 packages/rsync/build.sh diff --git a/packages/rsync/build.ncl b/packages/rsync/build.ncl new file mode 100644 index 00000000..ba2b2736 --- /dev/null +++ b/packages/rsync/build.ncl @@ -0,0 +1,54 @@ +let { BuildSpec, Local, OutputBin, OutputData, Source, .. } = import "minimal.ncl" in + +let version = "3.4.4" in + +let base = import "../base/build.ncl" in +let gcc = import "../gcc/build.ncl" in +let make = import "../make/build.ncl" in +let toolchain = import "../toolchain/build.ncl" in +let glibc = import "../glibc/build.ncl" in +let xxhash = import "../xxhash/build.ncl" in +let openssl = import "../openssl/build.ncl" in + +{ + name = "rsync", + + build_deps = [ + { file = "build.sh" } | Local, + { + url = "https://github.com/RsyncProject/rsync/releases/download/v%{version}/rsync-%{version}.tar.gz", + sha256 = "bd88cf82fa653da32314fb229136407c5c90f80d1758d8f4b091767877d8fa96", + extract = true, + strip_prefix = "rsync-%{version}", + } | Source, + base, + toolchain, + make, + gcc, + xxhash, + openssl + ], + + runtime_deps = [ + glibc + ], + + cmd = "./build.sh", + build_args = { + include version, + }, + + outputs = { + bins = { glob = "usr/bin/*" } | OutputBin, + man = { glob = "usr/share/man/**" } | OutputData, + }, + + attrs = { + upstream_version = version, + source_provenance = { + category = 'GithubRepo, + owner = "RsyncProject", + repo = "rsync", + }, + }, +} | BuildSpec diff --git a/packages/rsync/build.sh b/packages/rsync/build.sh new file mode 100755 index 00000000..d0308aa8 --- /dev/null +++ b/packages/rsync/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -euo pipefail + + +export CC=gcc +export CFLAGS="-O3 -pipe -ffile-prefix-map=$(pwd)=/builddir -gno-record-gcc-switches" +export CXXFLAGS="$CFLAGS" +export LDFLAGS="-Wl,--build-id=none" +export ARFLAGS=Drc + +# Patch configure.sh to remove the broken expanding here-doc block +sed -i '/^cat >>\$CONFIG_STATUS <<_ACEOF || ac_write_fail=1$/{ + N + /\n_ACEOF$/d +}' configure.sh + +./configure + +make -j$(nproc) DESTDIR=$OUTPUT_DIR prefix=/usr install From 4ce37051674c8d14e0f03683e3e6b82546c338cc Mon Sep 17 00:00:00 2001 From: Lovel Rishi Date: Wed, 5 Aug 2026 05:00:04 +0000 Subject: [PATCH 3/4] add libacl and libcrypto, enumerate binaries, pluralize pkgconfig/man --- packages/rsync/build.ncl | 12 +++++++++--- packages/xxhash/build.ncl | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/rsync/build.ncl b/packages/rsync/build.ncl index ba2b2736..6a1e2bd5 100644 --- a/packages/rsync/build.ncl +++ b/packages/rsync/build.ncl @@ -9,6 +9,8 @@ let toolchain = import "../toolchain/build.ncl" in let glibc = import "../glibc/build.ncl" in let xxhash = import "../xxhash/build.ncl" in let openssl = import "../openssl/build.ncl" in +let acl = import "../acl/build.ncl" in +let coreutils = import "../coreutils/build.ncl" in { name = "rsync", @@ -30,7 +32,10 @@ let openssl = import "../openssl/build.ncl" in ], runtime_deps = [ - glibc + glibc, + acl, + openssl, + coreutils ], cmd = "./build.sh", @@ -39,8 +44,9 @@ let openssl = import "../openssl/build.ncl" in }, outputs = { - bins = { glob = "usr/bin/*" } | OutputBin, - man = { glob = "usr/share/man/**" } | OutputData, + rsync = { glob = "usr/bin/rsync" } | OutputBin, + "rsync-ssl" = { glob = "usr/bin/rsync-ssl" } | OutputBin, + mans = { glob = "usr/share/man/**" } | OutputData, }, attrs = { diff --git a/packages/xxhash/build.ncl b/packages/xxhash/build.ncl index 6848e478..461d30b0 100644 --- a/packages/xxhash/build.ncl +++ b/packages/xxhash/build.ncl @@ -38,8 +38,8 @@ let glibc = import "../glibc/build.ncl" in bins = { glob = "usr/bin/*" } | OutputBin, libs = { glob = "usr/lib/{*.so*,*.a*}" } | OutputLib, headers = { glob = "usr/include/**" } | OutputData, - pkgconfig = { glob = "usr/lib/pkgconfig/**" } | OutputData, - man = { glob = "usr/share/man/**" } | OutputData, + pkgconfigs = { glob = "usr/lib/pkgconfig/**" } | OutputData, + mans = { glob = "usr/share/man/**" } | OutputData, }, attrs = { From 29ac230f26767ec6a85d0b6d4440abf4fe52e8a7 Mon Sep 17 00:00:00 2001 From: Lovel Rishi Date: Wed, 5 Aug 2026 12:28:49 +0000 Subject: [PATCH 4/4] Enumerate bins in xxhash --- packages/xxhash/build.ncl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/xxhash/build.ncl b/packages/xxhash/build.ncl index 461d30b0..e97d5997 100644 --- a/packages/xxhash/build.ncl +++ b/packages/xxhash/build.ncl @@ -35,7 +35,11 @@ let glibc = import "../glibc/build.ncl" in }, outputs = { - bins = { glob = "usr/bin/*" } | OutputBin, + xxhsum = { glob = "usr/bin/xxhsum" } | OutputBin, + xxh3sum = { glob = "usr/bin/xxh3sum" } | OutputBin, + xxh64sum = { glob = "usr/bin/xxh64sum" } | OutputBin, + xxh32sum = { glob = "usr/bin/xxh32sum" } | OutputBin, + xxh128sum = { glob = "usr/bin/xxh128sum" } | OutputBin, libs = { glob = "usr/lib/{*.so*,*.a*}" } | OutputLib, headers = { glob = "usr/include/**" } | OutputData, pkgconfigs = { glob = "usr/lib/pkgconfig/**" } | OutputData,