aboutsummaryrefslogtreecommitdiffstats
path: root/main/lxc/APKBUILD
blob: bd4a49accf3c8d5ecec9afa09aeb9a536557a039 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
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"