diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..29914cef54de --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,80 @@ +# Maintainer: Joan Bruguera Micó <joanbrugueram@gmail.com> +pkgname=sysbox-ce-git +pkgver=r1500.4c3c20b +miscfiles_pkgver=0.4.1 +pkgrel=1 +pkgdesc="Container runtime with VM-like isolation (run Systemd, Docker, K8s in containers)" +url="https://github.com/nestybox/sysbox" +arch=('x86_64') +license=('Apache') +source=("https://downloads.nestybox.com/sysbox/releases/v${miscfiles_pkgver}/sysbox-ce_${miscfiles_pkgver}-0.debian-buster_amd64.deb" + "git+https://github.com/nestybox/sysbox.git" + "git+https://github.com/nestybox/dockerfiles.git" + "git+https://github.com/nestybox/sysbox-fs.git" + "git+https://github.com/nestybox/fuse.git" + "git+https://github.com/nestybox/sysbox-ipc.git" + "git+https://github.com/nestybox/sysbox-libs.git" + "git+https://github.com/nestybox/libseccomp.git" + "git+https://github.com/nestybox/libseccomp-golang.git" + "git+https://github.com/nestybox/sysbox-mgr.git" + "git+https://github.com/nestybox/sysbox-runc.git") +sha256sums=('bd96866b52821338a859586f5e5bbf6954d56181e9ef77ab0fb9d05127e9bf97' + 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP') +install=install.sh +provides=('sysbox-ce') +conflicts=('sysbox-ce') +depends=('rsync' 'fuse2') +makedepends=('git' 'go' 'protobuf' 'protobuf-go') +# Those next makedepends are not *actually* needed but the build process tries to launch them anyway +makedepends+=('lsb-release' 'inetutils') +optdepends=('shiftfs: Operation without userns-remap') + +pkgver() { + cd sysbox + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + # Hook up submodules + git -C sysbox submodule init + git -C sysbox config submodule.sysbox-dockerfiles.url "$srcdir/dockerfiles" + git -C sysbox config submodule.sysbox-fs.url "$srcdir/sysbox-fs" + git -C sysbox config submodule.sysbox-ipc.url "$srcdir/sysbox-ipc" + git -C sysbox config submodule.sysbox-libs.url "$srcdir/sysbox-libs" + git -C sysbox config submodule.sysbox-mgr.url "$srcdir/sysbox-mgr" + git -C sysbox config submodule.sysbox-runc.url "$srcdir/sysbox-runc" + git -C sysbox submodule update + + git -C sysbox/sysbox-fs submodule init + git -C sysbox/sysbox-fs config submodule.bazil.url "$srcdir/fuse" + git -C sysbox/sysbox-fs submodule update + + git -C sysbox/sysbox-libs submodule init + git -C sysbox/sysbox-libs config submodule.libseccomp.url "$srcdir/libseccomp" + git -C sysbox/sysbox-libs config submodule.libseccomp-golang.url "$srcdir/libseccomp-golang" + git -C sysbox/sysbox-libs submodule update + + # Get some non-binary files from the Debian package as they don't seem to be uploaded anywhere else + mkdir -p data + tar xf data.tar.xz -C data +} + +build() { + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" + + make -C sysbox sysbox-local +} + +package() { + make -C sysbox DESTDIR="${pkgdir}/usr/bin" install + + cd "data" + (cd usr/lib/modules-load.d && find . -type f -exec install -Dm644 "{}" "${pkgdir}/usr/lib/modules-load.d/{}" \; ) + (cd lib/sysctl.d && find . -type f -exec install -Dm644 "{}" "${pkgdir}/usr/lib/sysctl.d/{}" \; ) + (cd lib/systemd && find . -type f -exec install -Dm644 "{}" "${pkgdir}/usr/lib/systemd/{}" \; ) + (cd usr/share/doc && find . -type f -exec install -Dm644 "{}" "${pkgdir}/usr/share/doc/{}" \; ) +} |