2024-09-22 22:08:56 +00:00

211 lines
6.1 KiB
Plaintext

# Contributor: Eivind Uggedal <eu@eju.no>
# Contributor: Jake Buchholz Göktürk <tomalok@gmail.com>
# Maintainer: Jake Buchholz Göktürk <tomalok@gmail.com>
pkgname=docker
pkgver=27.3.1
_cli_commit=ce1223035ac3ab8922717092e63a184cf67b493d # https://github.com/docker/cli/commits/v$pkgver
_moby_commit=41ca978a0a5400cc24b274137efa9f25517fcc0b # https://github.com/moby/moby/commits/v$pkgver
pkgrel=0
pkgdesc="Pack, ship and run any application as a lightweight container"
url="https://www.docker.io/"
arch="all"
license="Apache-2.0"
_engine_deps="ca-certificates containerd iptables tini-static"
makedepends="go btrfs-progs-dev bash linux-headers coreutils lvm2-dev libtool libseccomp-dev
$_engine_deps"
options="net chmod-clean"
install="$pkgname-engine.pre-install"
# secfixes:
# 27.1.1-r0:
# - CVE-2024-41110
# 26.0.2-r0:
# - CVE-2024-32473
# 26.0.0-r0:
# - CVE-2024-29018
# 25.0.2-r0:
# - CVE-2024-23651
# - CVE-2024-23652
# - CVE-2024-23653
# - CVE-2024-23650
# - CVE-2024-24557
# 23.0.3-r0:
# - CVE-2023-28840
# - CVE-2023-28841
# - CVE-2023-28842
# 23.0.2-r0:
# - CVE-2023-26054
# 20.10.20-r0:
# - CVE-2022-39253
# 20.10.18-r0:
# - CVE-2022-36109
# 20.10.16-r0:
# - CVE-2022-29526
# 20.10.14-r0:
# - CVE-2022-24769
# 20.10.11-r0:
# - CVE-2021-41190
# 20.10.9-r0:
# - CVE-2021-41089
# - CVE-2021-41091
# - CVE-2021-41092
# 20.10.3-r0:
# - CVE-2021-21285
# - CVE-2021-21284
# 19.03.14-r0:
# - CVE-2020-15257
# 19.03.11-r0:
# - CVE-2020-13401
# 19.03.1-r0:
# - CVE-2019-14271
# 18.09.8-r0:
# - CVE-2019-13509
# 18.09.7-r0:
# - CVE-2018-15664
subpackages="
$pkgname-engine:engine
$pkgname-openrc:engine_openrc:noarch
$pkgname-cli:cli
$pkgname-doc:cli_doc:noarch
$pkgname-bash-completion
$pkgname-fish-completion
$pkgname-zsh-completion
$pkgname-rootless-extras:rootless
"
source="
cli-$pkgver.tar.gz::https://github.com/docker/cli/archive/v$pkgver.tar.gz
moby-$pkgver.tar.gz::https://github.com/moby/moby/archive/v$pkgver.tar.gz
docker.initd
docker.confd
docker-rootless-extras.conf
"
builddir="$srcdir"
_cli_builddir="$srcdir/cli-$pkgver"
_moby_builddir="$srcdir/moby-$pkgver"
_buildtags="seccomp"
export GO111MODULE=off # go1.16 defaults to on
export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
export CGO_ENABLED=1 # go1.22 needs this
build() {
export AUTO_GOPATH=1
export GITCOMMIT=$_cli_commit # for cli
export DOCKER_GITCOMMIT=$_moby_commit # for moby
export DOCKER_BUILDTAGS=$_buildtags
export DISABLE_WARN_OUTSIDE_CONTAINER=1
unset CC # prevent possible ccache issues
case "$CARCH" in
armv7) export GOARM=7;;
esac
# engine (moby)
msg "building engine"
cd "$_moby_builddir"
mkdir -p src/github.com/docker/
ln -sf "$_moby_builddir" src/github.com/docker/docker
GOPATH="$PWD" VERSION="$pkgver" hack/make.sh dynbinary
# Required for building man-pages
export GOPATH="$_cli_builddir"
export GOBIN="$GOPATH/bin"
export PATH="$GOBIN:$PATH"
# cli
msg "building cli"
cd "$_cli_builddir"
mkdir -p "$GOPATH"/src/github.com/docker/
ln -sf "$_cli_builddir" "$GOPATH"/src/github.com/docker/cli
LDFLAGS="" make VERSION="$pkgver" dynbinary
# docker man
msg "building docker man pages"
make manpages
}
package() {
# docker itself is a meta package
# note that cli-buildx is circular to have with this toplevel
depends="docker-engine=$pkgver-r$pkgrel docker-cli=$pkgver-r$pkgrel docker-cli-buildx"
install -Dm644 "$_cli_builddir"/contrib/completion/fish/$pkgname.fish \
"$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
install -Dm644 "$_cli_builddir"/contrib/completion/zsh/_$pkgname \
"$pkgdir"/usr/share/zsh/site-functions/_$pkgname
install -Dm644 "$_cli_builddir"/contrib/completion/bash/$pkgname \
"$pkgdir"/usr/share/bash-completion/completions/$pkgname
install -Dm644 "$_cli_builddir"/man/man1/* \
-t "$pkgdir"/usr/share/man/man1/
# 'build/docker' is a symlink to 'docker-linux-$arch' e.g. 'docker-linux-amd64'
install -Dm755 "$_cli_builddir"/build/docker \
"$pkgdir"/usr/bin/docker
install -Dm755 -t "$pkgdir"/usr/bin \
"$_moby_builddir"/bundles/dynbinary-daemon/dockerd \
"$_moby_builddir"/bundles/dynbinary-daemon/docker-proxy
# symlink externally provided tini-static binary
ln -sf /sbin/tini-static "$pkgdir"/usr/bin/docker-init
install -Dm755 "$srcdir"/docker.initd "$pkgdir"/etc/init.d/docker
install -Dm644 "$srcdir"/docker.confd "$pkgdir"/etc/conf.d/docker
}
engine() {
pkgdesc="Docker Engine (dockerd)"
depends="$_engine_deps"
amove \
usr/bin/dockerd \
usr/bin/docker-init \
usr/bin/docker-proxy
}
engine_openrc() {
default_openrc
depends="log_proxy"
install_if="openrc $pkgname-engine=$pkgver-r$pkgrel"
}
cli() {
pkgdesc="Docker CLI"
depends="ca-certificates"
amove usr/bin/docker
}
cli_doc() {
default_doc
pkgdesc="Documentation for Docker"
install_if="docs $pkgname-cli=$pkgver-r$pkgrel"
}
rootless() {
pkgdesc="Extras to run docker as in rootless mode"
url="https://docs.docker.com/engine/security/rootless/"
arch="noarch"
depends="$pkgname rootlesskit slirp4netns fuse-overlayfs"
install -Dm755 "$srcdir/moby-$pkgver/contrib/dockerd-rootless.sh" "$subpkgdir/usr/bin/dockerd-rootless"
install -Dm644 "$srcdir/docker-rootless-extras.conf" "$subpkgdir/etc/modules-load.d/docker-rootless-extras.conf"
}
sha512sums="
6e80e94a0e9e16aaf2b19bc97c99ead39184745f601aea94e47c066a19b6436850d5269962e0802e9f7fa9f7dcb357ec0756c9466afa2c0a6ae239d61ef15961 cli-27.3.1.tar.gz
0fddcc8314eed2e7b131af78f1fa01292cfc4fcb7fd0af94b79d5435349ab54a21b0a78cffbf29dd4c58747d8bcd1f47473cc5f5ab2596e133828b2e6540d172 moby-27.3.1.tar.gz
dd499b92058fc4d7d19e0c9030b1f390f58ac40be423442732cb7d02067ed2e43c464511772a21d4f347ec34f037ddd00cc1243dc41c8ce85151ac6142611d61 docker.initd
43432a05e5776910d45364aee9070932aa89f70eb9e69d3b7ed8e17d9a70eaed4c8c29b3524888214c7ddba592399e781a72255f7eb8fafd80c9f532a9481fac docker.confd
45499bbd9d607cb782b014a2d5697d7279f327ac630accf249a13785d91e15fb0ba1ae2edc10b6b42fcf40b7ce23ef160a40d8cda17b3084d68fe8c54a84b8f4 docker-rootless-extras.conf
"