diff --git a/packages/rsync/build.ncl b/packages/rsync/build.ncl new file mode 100644 index 00000000..6a1e2bd5 --- /dev/null +++ b/packages/rsync/build.ncl @@ -0,0 +1,60 @@ +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 +let acl = import "../acl/build.ncl" in +let coreutils = import "../coreutils/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, + acl, + openssl, + coreutils + ], + + cmd = "./build.sh", + build_args = { + include version, + }, + + outputs = { + rsync = { glob = "usr/bin/rsync" } | OutputBin, + "rsync-ssl" = { glob = "usr/bin/rsync-ssl" } | OutputBin, + mans = { 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 diff --git a/packages/xxhash/build.ncl b/packages/xxhash/build.ncl new file mode 100644 index 00000000..e97d5997 --- /dev/null +++ b/packages/xxhash/build.ncl @@ -0,0 +1,57 @@ +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 = { + 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, + mans = { 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