diff --git a/internal/rosa/rsync.go b/internal/rosa/rsync.go new file mode 100644 index 0000000..6f5f34b --- /dev/null +++ b/internal/rosa/rsync.go @@ -0,0 +1,29 @@ +package rosa + +import "hakurei.app/internal/pkg" + +// NewRsync returns a [pkg.Artifact] containing an installation of rsync. +func (t Toolchain) NewRsync() pkg.Artifact { + const ( + version = "3.4.1" + checksum = "VBlTsBWd9z3r2-ex7GkWeWxkUc5OrlgDzikAC0pK7ufTjAJ0MbmC_N04oSVTGPiv" + ) + return t.New("rsync-"+version, []pkg.Artifact{ + t.NewMake(), + }, nil, nil, ` +cd "$(mktemp -d)" +/usr/src/rsync/configure --prefix=/system \ + --build="${ROSA_TRIPLE}" \ + --disable-openssl \ + --disable-xxhash \ + --disable-zstd \ + --disable-lz4 +make "-j${nproc}" +make DESTDIR=/work install +`, pkg.Path(AbsUsrSrc.Append("rsync"), false, pkg.NewHTTPGetTar( + nil, + "https://download.samba.org/pub/rsync/src/rsync-"+version+".tar.gz", + mustDecode(checksum), + pkg.TarGzip, + ))) +}