| 1 | # Contributor: Eivind Uggedal <[email protected]> |
| 2 | # Contributor: Jake Buchholz Göktürk <[email protected]> |
| 3 | # Maintainer: Jake Buchholz Göktürk <[email protected]> |
| 4 | pkgname=docker |
| 5 | pkgver=29.9.1 |
| 6 | _cli_commit=dfc520dcc28994c4c699b9b219fd2f5a6bcec0ff # https://github.com/docker/cli/releases/tag/v$pkgver |
| 7 | _moby_commit=b26fb77d3e7b01f9d21b89539c1ab428f5ca431f # https://github.com/moby/moby/releases/tag/v$pkgver |
| 8 | pkgrel=0 |
| 9 | pkgdesc="Pack, ship and run any application as a lightweight container" |
| 10 | url="https://www.docker.io/" |
| 11 | arch="all" |
| 12 | license="Apache-2.0" |
| 13 | _engine_deps="ca-certificates containerd iptables tini-static" |
| 14 | depends="docker-engine=$pkgver-r$pkgrel docker-cli=$pkgver-r$pkgrel docker-cli-buildx" |
| 15 | makedepends="go btrfs-progs-dev bash linux-headers coreutils lvm2-dev libtool libseccomp-dev |
| 16 | $_engine_deps log_proxy nftables-dev" |
| 17 | options="net chmod-clean" |
| 18 | install="$pkgname-engine.pre-install" |
| 19 | |
| 20 | # secfixes: |
| 21 | # 29.9.0-r0: |
| 22 | # - CVE-2026-97032 |
| 23 | # - CVE-2026-78659 |
| 24 | # - CVE-2026-78663 |
| 25 | # - CVE-2026-78669 |
| 26 | # - CVE-2026-56857 |
| 27 | # 29.8.2-r0: |
| 28 | # - CVE-2026-53493 |
| 29 | # - CVE-2026-92543 |
| 30 | # - CVE-2026-92542 |
| 31 | # 29.6.2-r0: |
| 32 | # - GHSA-hw3h-2gp9-cxpv |
| 33 | # - GHSA-qx3x-mv6r-52p6 |
| 34 | # - GHSA-32pv-7hq5-qhwq |
| 35 | # - GHSA-g2h8-426c-7976 |
| 36 | # - GHSA-388v-wmr2-g2v2 |
| 37 | # 29.6.1-r0: |
| 38 | # - GHSA-mjcv-p78q-w5fw |
| 39 | # - GHSA-jpcc-p29g-p8mq |
| 40 | # - GHSA-72x6-4j93-7w86 |
| 41 | # - GHSA-7236-3392-c5c6 |
| 42 | # 29.5.1-r0: |
| 43 | # - CVE-2026-41567 |
| 44 | # - CVE-2026-41568 |
| 45 | # - CVE-2026-43206 |
| 46 | # 29.4.3-r0: |
| 47 | # - CVE-2026-31431 |
| 48 | # 29.4.2-r0: |
| 49 | # - CVE-2026-31431 |
| 50 | # 29.3.1-r0: |
| 51 | # - CVE-2026-34040 |
| 52 | # - CVE-2026-33997 |
| 53 | # - CVE-2026-33748 |
| 54 | # - CVE-2026-33747 |
| 55 | # 29.1.2-r0: |
| 56 | # - CVE-2025-61727 |
| 57 | # - CVE-2025-61729 |
| 58 | # 28.3.3-r0: |
| 59 | # - CVE-2025-54388 |
| 60 | # 27.1.1-r0: |
| 61 | # - CVE-2024-41110 |
| 62 | # 26.0.2-r0: |
| 63 | # - CVE-2024-32473 |
| 64 | # 26.0.0-r0: |
| 65 | # - CVE-2024-29018 |
| 66 | # 25.0.2-r0: |
| 67 | # - CVE-2024-23651 |
| 68 | # - CVE-2024-23652 |
| 69 | # - CVE-2024-23653 |
| 70 | # - CVE-2024-23650 |
| 71 | # - CVE-2024-24557 |
| 72 | # 23.0.3-r0: |
| 73 | # - CVE-2023-28840 |
| 74 | # - CVE-2023-28841 |
| 75 | # - CVE-2023-28842 |
| 76 | # 23.0.2-r0: |
| 77 | # - CVE-2023-26054 |
| 78 | # 20.10.20-r0: |
| 79 | # - CVE-2022-39253 |
| 80 | # 20.10.18-r0: |
| 81 | # - CVE-2022-36109 |
| 82 | # 20.10.16-r0: |
| 83 | # - CVE-2022-29526 |
| 84 | # 20.10.14-r0: |
| 85 | # - CVE-2022-24769 |
| 86 | # 20.10.11-r0: |
| 87 | # - CVE-2021-41190 |
| 88 | # 20.10.9-r0: |
| 89 | # - CVE-2021-41089 |
| 90 | # - CVE-2021-41091 |
| 91 | # - CVE-2021-41092 |
| 92 | # 20.10.3-r0: |
| 93 | # - CVE-2021-21285 |
| 94 | # - CVE-2021-21284 |
| 95 | # 19.03.14-r0: |
| 96 | # - CVE-2020-15257 |
| 97 | # 19.03.11-r0: |
| 98 | # - CVE-2020-13401 |
| 99 | # 19.03.1-r0: |
| 100 | # - CVE-2019-14271 |
| 101 | # 18.09.8-r0: |
| 102 | # - CVE-2019-13509 |
| 103 | # 18.09.7-r0: |
| 104 | # - CVE-2018-15664 |
| 105 | |
| 106 | # NOTE: rootless-extras-openrc must be before openrc |
| 107 | subpackages=" |
| 108 | $pkgname-engine:engine |
| 109 | $pkgname-rootless-extras-openrc:rootless_openrc:noarch |
| 110 | $pkgname-openrc:engine_openrc:noarch |
| 111 | $pkgname-cli:cli |
| 112 | $pkgname-doc:cli_doc:noarch |
| 113 | $pkgname-bash-completion |
| 114 | $pkgname-fish-completion |
| 115 | $pkgname-zsh-completion |
| 116 | $pkgname-rootless-extras:rootless:noarch |
| 117 | $pkgname-systemd |
| 118 | " |
| 119 | |
| 120 | source=" |
| 121 | cli-$pkgver.tar.gz::https://github.com/docker/cli/archive/v$pkgver.tar.gz |
| 122 | moby-$pkgver.tar.gz::https://github.com/moby/moby/archive/refs/tags/docker-v$pkgver.tar.gz |
| 123 | docker.initd |
| 124 | docker.confd |
| 125 | docker-rootless-extras.conf |
| 126 | docker-user.initd |
| 127 | " |
| 128 | |
| 129 | builddir="$srcdir" |
| 130 | _cli_builddir="$srcdir/cli-$pkgver" |
| 131 | _moby_builddir="$srcdir/moby-docker-v$pkgver" |
| 132 | |
| 133 | _buildtags="seccomp" |
| 134 | |
| 135 | export CGO_ENABLED=1 # go1.22 needs this |
| 136 | |
| 137 | build() { |
| 138 | export AUTO_GOPATH=1 |
| 139 | export GITCOMMIT=$_cli_commit # for cli |
| 140 | export DOCKER_GITCOMMIT=$_moby_commit # for moby |
| 141 | export DOCKER_BUILDTAGS=$_buildtags |
| 142 | export DISABLE_WARN_OUTSIDE_CONTAINER=1 |
| 143 | unset CC # prevent possible ccache issues |
| 144 | |
| 145 | case "$CARCH" in |
| 146 | armv7) export GOARM=7;; |
| 147 | esac |
| 148 | |
| 149 | # engine (moby) |
| 150 | msg "building engine" |
| 151 | cd "$_moby_builddir" |
| 152 | GOPATH="$PWD/src" VERSION="$pkgver" hack/make.sh dynbinary |
| 153 | |
| 154 | # Required for building man-pages |
| 155 | export GOPATH="$_cli_builddir" |
| 156 | export GOBIN="$GOPATH/bin" |
| 157 | export PATH="$GOBIN:$PATH" |
| 158 | |
| 159 | # cli |
| 160 | msg "building cli" |
| 161 | cd "$_cli_builddir" |
| 162 | mkdir -p "$GOPATH"/src/github.com/docker/ |
| 163 | ln -sf "$_cli_builddir" "$GOPATH"/src/github.com/docker/cli |
| 164 | LDFLAGS="" make VERSION="$pkgver" dynbinary |
| 165 | |
| 166 | # docker man |
| 167 | msg "building docker man pages" |
| 168 | make manpages |
| 169 | } |
| 170 | |
| 171 | package() { |
| 172 | install -Dm644 "$_cli_builddir"/contrib/completion/fish/$pkgname.fish \ |
| 173 | "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish |
| 174 | |
| 175 | install -Dm644 "$_cli_builddir"/contrib/completion/zsh/_$pkgname \ |
| 176 | "$pkgdir"/usr/share/zsh/site-functions/_$pkgname |
| 177 | |
| 178 | install -Dm644 "$_cli_builddir"/contrib/completion/bash/$pkgname \ |
| 179 | "$pkgdir"/usr/share/bash-completion/completions/$pkgname |
| 180 | |
| 181 | install -Dm644 "$_cli_builddir"/man/man1/* \ |
| 182 | -t "$pkgdir"/usr/share/man/man1/ |
| 183 | |
| 184 | # 'build/docker' is a symlink to 'docker-linux-$arch' e.g. 'docker-linux-amd64' |
| 185 | install -Dm755 "$_cli_builddir"/build/docker \ |
| 186 | "$pkgdir"/usr/bin/docker |
| 187 | |
| 188 | install -Dm755 -t "$pkgdir"/usr/bin \ |
| 189 | "$_moby_builddir"/bundles/dynbinary-daemon/dockerd \ |
| 190 | "$_moby_builddir"/bundles/dynbinary-daemon/docker-proxy |
| 191 | |
| 192 | # symlink externally provided tini-static binary |
| 193 | ln -sf /sbin/tini-static "$pkgdir"/usr/bin/docker-init |
| 194 | |
| 195 | install -Dm755 "$srcdir"/docker.initd "$pkgdir"/etc/init.d/docker |
| 196 | install -Dm644 "$srcdir"/docker.confd "$pkgdir"/etc/conf.d/docker |
| 197 | install -Dm644 "$_moby_builddir"/contrib/init/systemd/docker.service \ |
| 198 | "$_moby_builddir"/contrib/init/systemd/docker.socket \ |
| 199 | -t "$pkgdir"/usr/lib/systemd/system/ |
| 200 | |
| 201 | install -Dm755 "$srcdir"/docker-user.initd "$pkgdir"/etc/user/init.d/docker |
| 202 | } |
| 203 | |
| 204 | engine() { |
| 205 | pkgdesc="Docker Engine (dockerd)" |
| 206 | depends="$_engine_deps" |
| 207 | |
| 208 | amove \ |
| 209 | usr/bin/dockerd \ |
| 210 | usr/bin/docker-init \ |
| 211 | usr/bin/docker-proxy |
| 212 | } |
| 213 | |
| 214 | engine_openrc() { |
| 215 | default_openrc |
| 216 | depends="log_proxy" |
| 217 | install_if="openrc $pkgname-engine=$pkgver-r$pkgrel" |
| 218 | } |
| 219 | |
| 220 | cli() { |
| 221 | pkgdesc="Docker CLI" |
| 222 | depends="ca-certificates" |
| 223 | |
| 224 | amove usr/bin/docker |
| 225 | } |
| 226 | |
| 227 | cli_doc() { |
| 228 | default_doc |
| 229 | pkgdesc="Documentation for Docker" |
| 230 | install_if="docs $pkgname-cli=$pkgver-r$pkgrel" |
| 231 | } |
| 232 | |
| 233 | rootless() { |
| 234 | pkgdesc="Extras to run docker as in rootless mode" |
| 235 | url="https://docs.docker.com/engine/security/rootless/" |
| 236 | depends="$pkgname rootlesskit slirp4netns fuse-overlayfs" |
| 237 | |
| 238 | install -Dm755 "$_moby_builddir/contrib/dockerd-rootless.sh" "$subpkgdir/usr/bin/dockerd-rootless" |
| 239 | install -Dm644 "$srcdir/docker-rootless-extras.conf" "$subpkgdir/usr/lib/modules-load.d/docker-rootless-extras.conf" |
| 240 | } |
| 241 | |
| 242 | rootless_openrc() { |
| 243 | pkgdesc="OpenRC scripts for running docker in rootless mode" |
| 244 | depends="$pkgname-rootless-extras" |
| 245 | install_if="openrc $pkgname-rootless-extras=$pkgver-r$pkgrel" |
| 246 | amove etc/user/init.d/docker |
| 247 | } |
| 248 | |
| 249 | sha512sums=" |
| 250 | af77cac61b5f61aa9057429eeb76725fdd2ae94237dd801986490779913cf44c4c75c86f2478f5d15a3e58e5cf59a6e8864509b9e05a2fdc6d8d440cba329c73 cli-29.9.1.tar.gz |
| 251 | 6f52e078d0917e3e13ec1ebeb4c8e31e10ca37436290da3a4b4d520e7837fa7317989beed2ed401c7ddd701f44ed4977b01fa47e222b47257a0292d6a25672ca moby-29.9.1.tar.gz |
| 252 | d74bd831291c0dca6d95436c42d426ef318b551b9dc1b0d0cc74476dec349828d19376200c779e30bcdb3707a4880ab3bc3cc754d1d5e64bb7cf8d7be62eb763 docker.initd |
| 253 | 43432a05e5776910d45364aee9070932aa89f70eb9e69d3b7ed8e17d9a70eaed4c8c29b3524888214c7ddba592399e781a72255f7eb8fafd80c9f532a9481fac docker.confd |
| 254 | 45499bbd9d607cb782b014a2d5697d7279f327ac630accf249a13785d91e15fb0ba1ae2edc10b6b42fcf40b7ce23ef160a40d8cda17b3084d68fe8c54a84b8f4 docker-rootless-extras.conf |
| 255 | 800126e171f7bb0831deef1bae100d78d2d71c7e9ebceaded009d69284a3f18fdc1316f3e9b947d04427d85c18be6ab11e23d3be4625283a0bd8ced6fbfe6f92 docker-user.initd |
| 256 | " |