# Contributor: Ɓukasz Jendrysik # Contributor: Jakub Jirutka # Maintainer: Natanael Copa pkgname=lxc pkgver=3.2.1 _pkgver=${pkgver/_rc/.rc} pkgrel=0 pkgdesc="Userspace interface for the Linux kernel containment features" url="https://linuxcontainers.org/lxc/" arch="all" license="GPL" makedepends=" libcap-dev libseccomp-dev linux-pam-dev linux-headers bsd-compat-headers docbook2x automake autoconf libtool " options="suid" subpackages=" $pkgname-dev $pkgname-doc $pkgname-openrc $pkgname-lvm::noarch $pkgname-libs $pkgname-bridge::noarch $pkgname-bash-completion:bashcomp:noarch $pkgname-pam $pkgname-download:_download:noarch $pkgname-templates-oci:templates_oci:noarch $pkgname-templates::noarch " source="https://linuxcontainers.org/downloads/lxc/lxc-$_pkgver.tar.gz cgroups-initialize-cpuset-properly.patch network-restore-ability-to-move-nl80211-devices.patch lxc.initd lxc.confd " builddir="$srcdir/lxc-$_pkgver" # secfixes: # 3.1.0-r1: # - CVE-2019-5736 # 2.1.1-r9: # - CVE-2018-6556 # _tmpldir="usr/share/lxc/templates" build() { cd "$builddir" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-apparmor \ --enable-pam \ --with-distro=alpine \ --disable-werror \ --enable-doc make } check() { cd "$builddir" make check } package() { cd "$builddir" make DESTDIR="$pkgdir" install install -Dm755 "$srcdir"/lxc.initd "$pkgdir"/etc/init.d/lxc install -Dm644 "$srcdir"/lxc.confd "$pkgdir"/etc/conf.d/lxc install -d "$pkgdir"/var/lib/lxc # Remove useless config for SysVinit. rm -r "$pkgdir"/etc/default } lvm() { pkgdesc="LVM support for LXC" depends="$pkgname=$pkgver-r$pkgrel lvm2 util-linux" install_if="$pkgname=$pkgver-r$pkgrel lvm2" mkdir "$subpkgdir" } _py3() { pkgdesc="Python3 module for LXC" depends="python3" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/python3.* "$subpkgdir"/usr/lib } _download() { pkgdesc="LXC container image downloader template" depends="$pkgname gnupg1 tar xz wget" mkdir -p "$subpkgdir"/$_tmpldir mv "$pkgdir"/$_tmpldir/lxc-download "$subpkgdir"/$_tmpldir/ } templates() { pkgdesc="Templates for LXC (except alpine and download)" depends="tar" mkdir -p "$subpkgdir"/$_tmpldir mv "$pkgdir"/$_tmpldir/* "$subpkgdir"/$_tmpldir/ } templates_oci() { pkgdesc="OCI Template for LXC" depends="bash jq" mkdir -p "$subpkgdir"/usr/share/lxc/templates mv "$pkgdir"/usr/share/lxc/templates/lxc-oci \ "$subpkgdir"/usr/share/lxc/templates/ } pam() { pkgdesc="PAM module for LXC" mkdir -p "$subpkgdir"/lib/security mv "$pkgdir"/lib/security/pam_cgfs.so "$subpkgdir"/lib/security/ } dev() { default_dev # fix abuild smartness mv "$subpkgdir"/usr/bin/lxc-config "$pkgdir"/usr/bin/ mv "$subpkgdir"/usr/bin/lxc-update-config "$pkgdir"/usr/bin/ } bridge() { depends="dnsmasq" pkgdesc="Bridge interface for LXC with dhcp" mkdir -p "$subpkgdir"/etc/conf.d \ "$subpkgdir"/etc/init.d \ "$subpkgdir"/etc/lxc ln -s dnsmasq "$subpkgdir"/etc/init.d/dnsmasq.lxcbr0 cat >>"$subpkgdir"/etc/conf.d/dnsmasq.lxcbr0 <<- EOF rc_before="lxc" BRIDGE_ADDR="10.0.3.1" BRIDGE_NETMASK="255.255.255.0" BRIDGE_NETWORK="10.0.3.0/24" BRIDGE_DHCP_RANGE="10.0.3.2,10.0.3.254" BRIDGE_DHCP_MAX="253" BRIDGE_MAC="00:16:3e:00:00:00" DNSMASQ_CONFFILE="/etc/lxc/dnsmasq.conf" EOF cat >>"$subpkgdir"/etc/lxc/dnsmasq.conf <<- EOF #dhcp-host=somehost,10.0.3.3 #dhcp-host=otherhost,10.0.3.4 EOF } bashcomp() { depends="" pkgdesc="Bash completions for $pkgname" install_if="$pkgname=$pkgver-r$pkgrel bash-completion" mkdir -p "$subpkgdir"/usr/share/bash-completion/completions mv "$pkgdir"/etc/bash_completion.d/$pkgname "$subpkgdir"/usr/share/bash-completion/completions rmdir "$pkgdir"/etc/bash_completion.d } sha512sums="4b3046fc6c4aa497fb26bd45839e60de503184af86d3966e796d14e619203536b9a9ed67bdcd8a108cf1a548f8d095fb46dff53094a08abd8d268c866db685c0 lxc-3.2.1.tar.gz 2bebe6cc24987354b6e7dc9003c3a4df450ca10263e6dc0e9313977fdfc2eb57c0d68560da4d1071c8de2f8e3e394ed3ca17af445bea524daa5f8ae8955b3ba6 cgroups-initialize-cpuset-properly.patch d302b7296918680901d034dc12ae0687dbbc65766800a9f7256e661f638d3dcad66bcc737aec2c6de8c27d3b9c08833e00420c2064f356d6d73efda9ae9bd707 network-restore-ability-to-move-nl80211-devices.patch b74ffe7c3e8f193265a90ffeb6e5743b1212bc1416b898e5a7e59ddd7f06fc77dc34e2dcbb3614038ac6222a95e2b9beb9f03ab734c991837203ab626b1b091f lxc.initd 91de43db5369a9e10102933514d674e9c875218a1ff2910dd882e5b9c308f9e430deacb13d1d7e0b2ed1ef682d0bb035aa6f8a6738f54fa2ca3a05acce04e467 lxc.confd"