# Contributor: Ɓukasz Jendrysik # Contributor: William Pitcock # Contributor: Jakub Jirutka # Maintainer: Natanael Copa pkgname=lxc pkgver=2.1.1 _pkgver=${pkgver/_rc/.rc} pkgrel=10 pkgdesc="Userspace interface for the Linux kernel containment features" url="https://linuxcontainers.org/lxc/" arch="all" license="GPL" depends="gzip" depends_dev="libcap-dev" makedepends="$depends_dev lvm2 util-linux automake autoconf libtool lua5.3-dev linux-headers bash tar docbook2x libseccomp-dev python3-dev dnsmasq py3-setuptools" options="suid" subpackages="$pkgname-dev $pkgname-doc $pkgname-lvm::noarch lua5.3-lxc:_lua53 $pkgname-download:_download:noarch $pkgname-templates::noarch $pkgname-libs py3-$pkgname:_py3 $pkgname-bridge::noarch $pkgname-bash-completion:bashcomp:noarch" source="https://github.com/lxc/lxc/archive/lxc-$_pkgver.tar.gz 0001-do_lxcapi_create-set-umask.patch make-dropping-setpcap-optional.patch add-support-for-s390x-in-template.patch version.patch lxc.initd lxc.confd lxc.conf download-template-tmpfs.patch CVE-2018-6556.patch " builddir="$srcdir/lxc-lxc-$_pkgver" # secfixes: # 2.1.1-r9: # - CVE-2018-6556 # _tmpldir="usr/share/lxc/templates" prepare() { default_prepare ./autogen.sh } build() { cd "$builddir" LUA_VERSION=5.3 \ ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --disable-apparmor \ --enable-lua \ --enable-python \ --with-lua-pc=lua5.3 \ --with-distro=alpine \ --disable-werror make VERSION=$pkgver } 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 # XXX: workaround for https://github.com/lxc/lxc/issues/1095. install -Dm644 "$srcdir"/lxc.conf "$pkgdir"/etc/lxc/lxc.conf # Remove useless config for SysVinit. rm -r "$pkgdir"/etc/default } lvm() { pkgdesc="LVM support for LXC" depends="lvm2 util-linux lxc" mkdir "$subpkgdir" } _lua53() { pkgdesc="Lua 5.3 module for LXC" local dir; for dir in lib share; do mkdir -p "$subpkgdir"/usr/$dir mv "$pkgdir"/usr/$dir/lua "$subpkgdir"/usr/$dir/ done } _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 gnupg tar xz wget" mkdir -p "$subpkgdir"/$_tmpldir mv "$pkgdir"/$_tmpldir/lxc-download "$subpkgdir"/$_tmpldir/ } templates() { pkgdesc="Templates for LXC (except alpine and download)" depends="bash tar" mkdir -p "$subpkgdir"/$_tmpldir mv "$pkgdir"/$_tmpldir/* "$subpkgdir"/$_tmpldir/ # Keep alpine template in the base package (doesn't need bash or GNU tar). mv "$subpkgdir"/$_tmpldir/lxc-alpine "$pkgdir"/$_tmpldir/ } 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="205d30a8914013f3d31bdcae9786a13b6728ae0d3630f51c644f06e1e96d03631630569a0ce55764ff7b8ee1d1d4d723926fdb2b916396aea212d9c3040b45ab lxc-2.1.1.tar.gz 029473d929e74c53f27982e713eae151e4b6c61635c4b38c16510b2fa996ea6ed96f29df131e9c58ab155631fc71eeb9cd5b46bcc051a99256c1dce4b0d4d7a5 0001-do_lxcapi_create-set-umask.patch 9000f5dc0614dfbd840c3c5e0f6a6555bd8adbc63d4ec7d70448e354d2e7f6dd13ab09d88a36fbd66181cf3cb6db2f820c43d1f2ce8fce58d19e0bc379be1d9a make-dropping-setpcap-optional.patch ba540402a7d9411f1ff43e6d7e713a02ecdfc7a387d844dc972466ba6c5ca524e67b1db0e88beb9a2e388f074d0cf5395a7fdb543395f808c15ec64e15ff3c0b add-support-for-s390x-in-template.patch e2ffcbf55447291a8434a4f37255c3a6a119bc4116c75d205006aa2b070bf6be28535cf6107bead14bbf64bf9fa415346ab544bd1c15e1add7d1c6380e6b2def version.patch b74ffe7c3e8f193265a90ffeb6e5743b1212bc1416b898e5a7e59ddd7f06fc77dc34e2dcbb3614038ac6222a95e2b9beb9f03ab734c991837203ab626b1b091f lxc.initd 91de43db5369a9e10102933514d674e9c875218a1ff2910dd882e5b9c308f9e430deacb13d1d7e0b2ed1ef682d0bb035aa6f8a6738f54fa2ca3a05acce04e467 lxc.confd 5b83b0323e58bf00bd1e124c265729499cee97559b6fe18482962e3bed50d121b4c7a09f25cbce7b1e18d4234627bc4b4581ba2060e33cd022f105b4429cef01 lxc.conf 02fd192d137cbb5b6db6959275387d05653f41dad5a5e46ae9b53cacead8cef937733927284658d3f0b910de81f9364c7f0248db990efd88806cf3029264c214 download-template-tmpfs.patch 3e45f78358fab1ff730853c26fef8694cb90d521077e5234affb960b4b89306c7592708da9aecf462074c54fdc631457e174303db175678552d558f864d9668d CVE-2018-6556.patch"