summaryrefslogtreecommitdiff
path: root/app-containers
diff options
context:
space:
mode:
Diffstat (limited to 'app-containers')
-rw-r--r--app-containers/Manifest.gzbin7531 -> 7537 bytes
-rw-r--r--app-containers/docker-cli/Manifest2
-rw-r--r--app-containers/docker-cli/docker-cli-23.0.1.ebuild67
-rw-r--r--app-containers/docker-compose/Manifest3
-rw-r--r--app-containers/docker-compose/docker-compose-2.16.0.ebuild49
-rw-r--r--app-containers/docker-proxy/Manifest2
-rw-r--r--app-containers/docker-proxy/docker-proxy-0.8.0_p20230118.ebuild30
-rw-r--r--app-containers/docker/Manifest2
-rw-r--r--app-containers/docker/docker-23.0.1.ebuild348
9 files changed, 503 insertions, 0 deletions
diff --git a/app-containers/Manifest.gz b/app-containers/Manifest.gz
index de4788b7f84d..271cb6f9c79f 100644
--- a/app-containers/Manifest.gz
+++ b/app-containers/Manifest.gz
Binary files differ
diff --git a/app-containers/docker-cli/Manifest b/app-containers/docker-cli/Manifest
index 8de16fa11acb..ffe71c46e3c1 100644
--- a/app-containers/docker-cli/Manifest
+++ b/app-containers/docker-cli/Manifest
@@ -1,3 +1,5 @@
DIST docker-cli-20.10.22.tar.gz 7590020 BLAKE2B ab003a9af2b441a9bad9c27345dea2e82087cfc8a8ac865adeb2e47e91be4bd9b27f499ae95b0ddcddb66d27c3498938682dcd10d5e3bef41fc18ce1f034a476 SHA512 550346904d172725f48c4de0e34fa95123c7022b14980d30cd01df0c9e154ac817f19e24b61538f8cbc23db090de56977c8b885b96f99583e8a5f773691280a6
+DIST docker-cli-23.0.1.tar.gz 6215114 BLAKE2B 4449de9fdc64f45daf6dbbe762bf6e2320aa32bed1aba90a3c1c81df343f3c3a667e62e950896f5d2b12e33d758507b4cec7d6ed3b06c3815ad528be2c47510a SHA512 77d30945160dc4d9c50354c57d2efed49b99c872c8782f6ad121e6dc1489899d8967ba95cca36499c1b59bc5ef71f4a6b516c635b0cf41b50722bb71597aa496
EBUILD docker-cli-20.10.22.ebuild 1892 BLAKE2B 4ebcbda14444d8789d84fa81c395cf49148ed44ea70f269016ff6cd60da2b959f36c222b34ab914ccd8ea2d20f22bb063c1718231e89da969c0f0da6ebd1b3ac SHA512 5ec21ada14efe0bb6506dba41e7b6401f4a31d18b42c4d05623de939a9156ee16fc4adef8d076ec50b11b10a3c7dcb39bc51be83650114a00cc5750bdeda2414
+EBUILD docker-cli-23.0.1.ebuild 1897 BLAKE2B c81ea23ce2c3d1a36f184e500c6f6ad1e248b025a88f7f8a7092f601209f4e80c3fd15844a3496ec99ddbad2683b2520adda3f102ac6360ddf7fea15f94db452 SHA512 cf97e8f4d928ebd882787b4294702eafd264b109cfd077b5ea384612024bd4b58afb3ab38e61fd128ea5a0bad68c631160d571db6ee7d83a2122d38d31f1c663
MISC metadata.xml 689 BLAKE2B 45f4a07f9d949ad4e0175908af936140573bd257f7b11f9b9cc25cdd52bb821a294036635fd81662bcd348aa21e69b5582ab2dc8efaf94dbbdc9608b131414f4 SHA512 efe37f3ae8bc6b26433b7bacfda203ea3b480f419b343921214f19a4ad4e25b2cca5f0426a27348902f51ef15f558e81599ccdadcab6504f9d22314bb472d80c
diff --git a/app-containers/docker-cli/docker-cli-23.0.1.ebuild b/app-containers/docker-cli/docker-cli-23.0.1.ebuild
new file mode 100644
index 000000000000..78a598ba9c32
--- /dev/null
+++ b/app-containers/docker-cli/docker-cli-23.0.1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+GIT_COMMIT=a5ee5b1dfc
+EGO_PN="github.com/docker/cli"
+MY_PV=${PV/_/-}
+inherit bash-completion-r1 golang-vcs-snapshot
+
+DESCRIPTION="the command line binary for docker"
+HOMEPAGE="https://www.docker.com/"
+SRC_URI="https://github.com/docker/cli/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+# KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="hardened selinux"
+
+RDEPEND="!<app-containers/docker-20.10.1
+ selinux? ( sec-policy/selinux-docker )"
+BDEPEND="
+ >=dev-lang/go-1.16.6
+ dev-go/go-md2man"
+
+RESTRICT="installsources strip test"
+
+S="${WORKDIR}/${P}/src/${EGO_PN}"
+
+src_prepare() {
+ default
+ sed -i 's@dockerd\?\.exe@@g' contrib/completion/bash/docker || die
+}
+
+src_compile() {
+ export DISABLE_WARN_OUTSIDE_CONTAINER=1
+ export GOPATH="${WORKDIR}/${P}"
+ # setup CFLAGS and LDFLAGS for separate build target
+ # see https://github.com/tianon/docker-overlay/pull/10
+ export CGO_CFLAGS="-I${ESYSROOT}/usr/include"
+ export CGO_LDFLAGS="-L${ESYSROOT}/usr/$(get_libdir)"
+ emake \
+ LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \
+ VERSION="${PV}" \
+ GITCOMMIT="${GIT_COMMIT}" \
+ dynbinary
+
+ # build man pages
+ # see "cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man)
+ mkdir -p ./man/man1 || die "mkdir failed"
+ go build -o "${T}"/gen-manpages ./man ||
+ die 'build gen-manpages failed'
+ "${T}"/gen-manpages --root "$(pwd)" --target "$(pwd)"/man/man1 ||
+ die 'gen-manpages failed'
+ ./man/md2man-all.sh -q ||
+ die 'md2man-all.sh failed'
+}
+
+src_install() {
+ dobin build/docker
+ doman man/man*/*
+ dobashcomp contrib/completion/bash/*
+ bashcomp_alias docker dockerd
+ insinto /usr/share/fish/vendor_completions.d/
+ doins contrib/completion/fish/docker.fish
+ insinto /usr/share/zsh/site-functions
+ doins contrib/completion/zsh/_*
+}
diff --git a/app-containers/docker-compose/Manifest b/app-containers/docker-compose/Manifest
index fa173b6befb9..902122fea0ce 100644
--- a/app-containers/docker-compose/Manifest
+++ b/app-containers/docker-compose/Manifest
@@ -3,8 +3,11 @@ AUX docker-compose-1.29.2-tests-unit-cli-test-py.patch 900 BLAKE2B 400b1fac44687
DIST docker-compose-1.29.2.gh.tar.gz 320320 BLAKE2B 2d1a6375127fa09661822f7148665161b45bbd234c93444ae31c1d926513fcbc9fb845f8af01d8f11788f24b7517bff5f6cea2a5da9ade897891f2dd728f26bd SHA512 09f2ae2ae7a17ab5fb3e22580f7a80f1a8253f7ad9fc8f29aca432911bcde46ed22030ff3073cdd7eff3d55aaba17f56e628a178ec05c3a9b4f28495d6045111
DIST docker-compose-2.12.2-deps.tar.xz 139592724 BLAKE2B fd0e375e9cefe802d6d557763838959712f31391c2ac4e5e41d37ce2b6df209c35e86f255197ccb39ca04dc9ea9b04de29347570d0d1b0ed5a0b2d094c5e24a7 SHA512 af4e431dbb4735fa1a2aff2271e052479b4e4dac83f2d7a733aac9aab0ac33e00499d81b6c8a6a36aa330618a89c44993c5b27349752678ce1ac41921f12dfbe
DIST docker-compose-2.12.2.tar.gz 305198 BLAKE2B a39a0c2266abc442f1c65ac00da9dd380df85d2aaa9429898461f12138fe64a7a6c74a45b3bb734419b7093ec69a44b49dfc57ff264a2d3cb576a78a0720db03 SHA512 dfb82ecc5a984d7193da164924c1e430d07b6378028dac7264b8084da2e315e5c5091803a5db79fe27ed06b002c62b295d873b9371bd19d4550a37a28f8ec952
+DIST docker-compose-2.16.0-deps.tar.xz 194381032 BLAKE2B 69f06124ac0b2e520b9948e4aab48c0ee9a9c5bef62ca70d70695dfe2ea3c51f69ec2b45f3e1b180b314d520a5d7028d81d5b2d760a747cb2c935c9621be374b SHA512 fd552426ac6befc55efd7dd505dc70a512dd736f12395cf7f107bdd508f95d4bf37d78ebf05e9daa4ac25fce0139c988ffd90cf2822fea8d7cf6666b6b834f8e
+DIST docker-compose-2.16.0.tar.gz 302946 BLAKE2B 3f2e03151be62982749c884af574f13798c2a85ffdf2736641a1df165fcd80c29fa611ad55a0655de6c5cf911783cd3b98392ddc4375b09da0179d774eea4959 SHA512 2158c829de298529e3192cb8e201c554f89fa7554a81eae858470db30b41d03925aa4dce9ef6d22c295625abf67ab181f851f05818dc76e2a5d6c46554d5ca3f
EBUILD docker-compose-1.29.2-r1.ebuild 1918 BLAKE2B bf3402c6139087a39c13b23710b981f36d7e6f8802ae40d9fabc7360109b2332c8b6d9042c46248c75655aded07ad6ea6a9a69a25c1fcf43a0f53999adf54c25 SHA512 86b1860c5414c7ae77f41e8b4d379332762f10bf5000d944d04ea4384b1baa1d4e9653c98bef32aa8baae4d0c520b5fe23b54fe44286a14c4210e447399a6186
EBUILD docker-compose-1.29.2-r2.ebuild 1969 BLAKE2B 1b64296bae273bb6ff90991988d94b6470fafe365915183d52e8d56106702fc30d856dc6e23eb7c094bbc4f12bee70ead77d03a31512dd89fed6824ae3151c43 SHA512 43f0a4ab7009a6a4516f30a7432a9a11c60b33a8e845eb9ad0d64f1e9f091cb2fbb32baa04cbdc034d9fa23709ec79cfe2dba12d19588b5b33326c4696d595bc
EBUILD docker-compose-1.29.2-r3.ebuild 2003 BLAKE2B d1e7de7c5a30ba4bf7d0de36de4da1778e66f20c761cd4edc8801d093dec2c5f882d9997ad60ab039ac048c1692af628a0c3bda94c0989e04f6c269c5caa73cb SHA512 acae66015644f268d94778edc88565016e6a171cc8e4185a9c9607375efc775dc866b8354296db03e2bdfc0dd11691c09ea76f2244618c075e7777dd664ad55e
EBUILD docker-compose-2.12.2.ebuild 1143 BLAKE2B 65406f19f5454c903ac34ce63653083ec4533707c5e507e56c767f8529b1fdf397573cac69efef2981c77314feced2b5a7723cd6ded71ecd422787b5ad0347ed SHA512 5ba4e727da997ecc072a8ee09b60d5986f7313c8b6c097680c07b67c156cc59f912256b99075de1c0b91f66e81ded4a0411099f89585a7f3c4f26bd0a2a6aa4f
+EBUILD docker-compose-2.16.0.ebuild 1142 BLAKE2B b1889ef6e4657930147d8541a0c6a53eb013f9a81b756d0898617cfe4cb74c2bdb493c34a2707ccef44da87f37273d9cde3e6aacc33d61575155d2acdb7d238e SHA512 921964225e698658fbc716cbde486d3a8e9f062fe11a220aadc7e14a535a0e8a39820af50c228b4ed7b18bcc064a76c270c20f5db0e56d14190538551062383b
MISC metadata.xml 544 BLAKE2B d515d07ee7d2045db1d4a2a0e8f0e797e23b01dea7ab164d9bffc85bc00ddc18a050f296db0a80df8a65c9c554d6e189218a1939b07b29ea823e5eea65d803e6 SHA512 17c3b4e7be1318a36aa744e185d7f7d5571107cecc98eed8fce07b4d905273409b95a202129440082f29be57d6a44eabda43730e8f47cc7c63c04d6d0ed05645
diff --git a/app-containers/docker-compose/docker-compose-2.16.0.ebuild b/app-containers/docker-compose/docker-compose-2.16.0.ebuild
new file mode 100644
index 000000000000..a8e67ae22e10
--- /dev/null
+++ b/app-containers/docker-compose/docker-compose-2.16.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2018-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit bash-completion-r1 go-module
+MY_PV=${PV/_/-}
+
+DESCRIPTION="Multi-container orchestration for Docker"
+HOMEPAGE="https://github.com/docker/compose"
+SRC_URI="https://github.com/docker/compose/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
+
+LICENSE="Apache-2.0"
+SLOT="2"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND=">=app-containers/docker-cli-23.0.0"
+
+S="${WORKDIR}/compose-${MY_PV}"
+
+src_prepare() {
+ default
+ # do not strip
+ sed -i -e 's/-s -w//' Makefile || die
+}
+
+src_compile() {
+ emake VERSION=v${PV}
+}
+
+src_test() {
+ emake test
+}
+
+src_install() {
+ exeinto /usr/libexec/docker/cli-plugins
+ doexe bin/build/docker-compose
+ dodoc README.md
+}
+
+pkg_postinst() {
+ ewarn
+ ewarn "docker-compose 2.x is a sub command of docker"
+ ewarn "Use 'docker compose' from the command line instead of"
+ ewarn "'docker-compose'"
+ ewarn "If you need to keep 1.x around, please run the following"
+ ewarn "command before your next --depclean"
+ ewarn "# emerge --noreplace docker-compose:0"
+}
diff --git a/app-containers/docker-proxy/Manifest b/app-containers/docker-proxy/Manifest
index 367935364dbc..8702043a3803 100644
--- a/app-containers/docker-proxy/Manifest
+++ b/app-containers/docker-proxy/Manifest
@@ -1,3 +1,5 @@
DIST docker-proxy-0.8.0_p20220601.tar.gz 3154283 BLAKE2B 7651e1862acf60988f6a8bdf3c0befc9b01a388aebda2b86610109bb6affe0d9c64d2750a911f0d1856be0dba970e9e92de2a0d393cc5c3a581d4253c574a623 SHA512 d3d9888f39a9247b6e773b0bfe63e6d248c5c155e7032cdbdd5cfacf995cb6b4cf2f0fb51e09c4554a4b994e3c3d7fc9cd2fde6cf8dda34fba6aa07218ac959c
+DIST docker-proxy-0.8.0_p20230118.tar.gz 3154267 BLAKE2B 307799d9dab73ed3ed3e537a247d70a65d9b4a51db69ae09518eb9daee949f78478ec104751d088717ca17171f604ff5c450198cc24e79cca266a1c7f61800ad SHA512 079eee720a4e755639e39fd8764f380549e715cbd6be0b46a102771a09f6cce5f085f7e568429c8c35a46f09948aea3e60de5ba2e32e22f0ee1fd9559c2d58f6
EBUILD docker-proxy-0.8.0_p20220601.ebuild 744 BLAKE2B 60b8dcbffc382a0b5ab309c0366bb473ed73289ae4a61a630d1c34bb9d1ee742de9b9f0e417d3911a1a835e9b46f7172122f299efbebaa4e7e18b6ed727b0862 SHA512 17d37c77dcbdffe631ca713b50d16d35ae83ec214f26d5dc7da800cfb002a7b3be70746400966a118f1cc1622a99a3cbf4c40a7b892e2533b0d73355588b3fab
+EBUILD docker-proxy-0.8.0_p20230118.ebuild 747 BLAKE2B 814deffab401f5ae20f9b78b4b6bf1fe7c9669cf1cc67f5ad3e31e7fd174230b3b22955bb69563e755bc7fa6338e7866a8ecbac6d2973fc11b1edea6d8602bba SHA512 255dec35a503569bc0572c55444b4668b09fa32a6d29ebd5c7127769471000769886167c7700dc7af70f2f4689b9c6194ea42b8db2c19c4bdcef4324a36f0afa
MISC metadata.xml 443 BLAKE2B b641498e7f0a6670f6c902d1432dd7ae97dcce870b2d43d5ed7b1a96b483f2f1b70a1b625d27cd786c25cf4b86c80200f3668d94b5852985d366194fc1dbc77f SHA512 bb2ffc7c2d8ea17a8dcb28554fb505885596589b9bc886dfd30ec889d8b46926a9141aea354b929793b55cfbe0f28cc31a6d656943d865e1552187f4fa9f9f5b
diff --git a/app-containers/docker-proxy/docker-proxy-0.8.0_p20230118.ebuild b/app-containers/docker-proxy/docker-proxy-0.8.0_p20230118.ebuild
new file mode 100644
index 000000000000..eb6dafa255b2
--- /dev/null
+++ b/app-containers/docker-proxy/docker-proxy-0.8.0_p20230118.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+EGO_PN=github.com/moby/libnetwork
+GIT_COMMIT=05b93e0d3a95952f70c113b0bc5bdb538d7afdd7
+inherit golang-vcs-snapshot
+
+DESCRIPTION="Docker container networking"
+HOMEPAGE="https://github.com/docker/libnetwork"
+SRC_URI="https://github.com/moby/libnetwork/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+S=${WORKDIR}/${P}/src/${EGO_PN}
+
+# needs dockerd
+RESTRICT="strip test"
+
+src_compile() {
+ GO111MODULE=auto GOPATH="${WORKDIR}/${P}" \
+ go build -o "bin/docker-proxy" ./cmd/proxy || die
+}
+
+src_install() {
+ dobin bin/docker-proxy
+ dodoc README.md CHANGELOG.md
+}
diff --git a/app-containers/docker/Manifest b/app-containers/docker/Manifest
index 360225604c79..34a5cb5337c3 100644
--- a/app-containers/docker/Manifest
+++ b/app-containers/docker/Manifest
@@ -1,5 +1,7 @@
AUX 0001-Openrc-Depend-on-containerd-init-script.patch 774 BLAKE2B a7ac6f6a1e9ee88751e8e0471cd33429b8141cbea07a3a56c61eccd63c796c9135edafaf5977571a4413e5d71931aac44b5313110af94c3206e286b15394f637 SHA512 bc709b6f0dd8685fbf2404be589743f32a5f4deb24dec8ed6aeec18f0fcd1db4c5d59587209c28f62d964d78ec9ab3a3fdbb795dc4b7e3fabd00a06a002af34e
AUX ppc64-buildmode.patch 916 BLAKE2B c28a2fcfed4812f44b664dc9b24e87f3999fcb9b79b7f47c6fd5a6b024529c49ef71817d4c379c7a95832a44b9c2f45c9f7707cb580b31be18dff4ee9a110e44 SHA512 bc87464d9f3351b2791e6f86bc7f2101e652c25b99cdcc02e46e4ff18f4bfb7ffc35d338370656bde6ad09ed98805e045065012dc6a264967d26272f7de099ff
DIST docker-20.10.22.tar.gz 11232083 BLAKE2B 89dea21be77beb00a5c7fde382f1621558c676c63a85cac9664ec04130b875db649b84433ef2d9a0ca9ee221bf38a46b3af85ad6bfe920cf22a15d0cac450b99 SHA512 81aec7faedced07718e3e228e999c4774fd293cedfacd272798a0057177ddca5322a701d0f644777a69b87140cd7a7194aa93a524507f202d050eb30b1a4142c
+DIST docker-23.0.1.tar.gz 13612828 BLAKE2B ad5ff3a3c722b21e7cb0f6bab52fd66f4c0df185699b057d081cd49ee56cec3eda18d94f4236f45e57c2190831945f67c81b90a136231d6dc067ddad69a01625 SHA512 135e312b76fbd61c425713c51b1b9622491d1d03264cd5100296fec6c00778bf7d9c2c7cb0522d0474753b797a6e87552b47dad7e05e44400561a833bc8616f0
EBUILD docker-20.10.22.ebuild 8058 BLAKE2B caa8ba3cabfe38c69273ce970c420d69561b73b5b3608a4c576cc151572f901c6a192131be12b1eb8a5bbd8ea114fc37d220eef1a78b68d783b93bed2f2de66c SHA512 966ff3f88054f4717548c88411cfd1415d4d6355a2ea3a4332a909e0b15b0dcb05074fd6d6b31ba8abeb0807b28561b26441d544801e0c4e00f4773184a80c79
+EBUILD docker-23.0.1.ebuild 8824 BLAKE2B 3dd09127743e2edc2be223ca53516d8a773afed55981f352e1cf09e07e165344348832643dc3d5a13ea8abbcb83c36f818140fdbafbaf599468ea596c62919d9 SHA512 18784c81cd79e1200a66cbaafd655a22427b295e2733fe643b166b2e3d319ed50b3102d1dd6f246accfe4d7ac5e74cede20d388bd2e1b826624ddcf4842d6737
MISC metadata.xml 1680 BLAKE2B 6c128f9ea99f1634e260b2f944b6560636d8501f93c3e208aff7ca8ee10199f520b187a063f9a8869130305bef8749ee1af10971658e04515e80907bc8a48be0 SHA512 913bed94f44d2093868999e8a1064c8443e4d1298b53ac065b0df0857809e93194f7650dfa1e49933022461f0adec956effff61f627838e1d0104e9d9004bf14
diff --git a/app-containers/docker/docker-23.0.1.ebuild b/app-containers/docker/docker-23.0.1.ebuild
new file mode 100644
index 000000000000..e8c53f5f178b
--- /dev/null
+++ b/app-containers/docker/docker-23.0.1.ebuild
@@ -0,0 +1,348 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+EGO_PN=github.com/docker/docker
+MY_PV=${PV/_/-}
+GIT_COMMIT=6051f14291
+inherit linux-info systemd udev golang-vcs-snapshot
+
+DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
+HOMEPAGE="https://www.docker.com/"
+SRC_URI="https://github.com/moby/moby/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="apparmor aufs btrfs +container-init device-mapper hardened
+overlay seccomp selinux"
+
+DEPEND="
+ acct-group/docker
+ >=dev-db/sqlite-3.7.9:3
+ apparmor? ( sys-libs/libapparmor )
+ btrfs? ( >=sys-fs/btrfs-progs-3.16.1 )
+ device-mapper? ( >=sys-fs/lvm2-2.02.89[thin] )
+ seccomp? ( >=sys-libs/libseccomp-2.2.1 )
+"
+
+# https://github.com/moby/moby/blob/master/project/PACKAGERS.md#runtime-dependencies
+# https://github.com/moby/moby/blob/master/project/PACKAGERS.md#optional-dependencies
+# https://github.com/moby/moby/tree/master//hack/dockerfile/install
+# make sure docker-proxy is pinned to exact version from ^,
+# for appropriate branchch/version of course
+RDEPEND="
+ ${DEPEND}
+ >=net-firewall/iptables-1.4
+ sys-process/procps
+ >=dev-vcs/git-1.7
+ >=app-arch/xz-utils-4.9
+ dev-libs/libltdl
+ >=app-containers/containerd-1.6.15[apparmor?,btrfs?,device-mapper?,seccomp?]
+ ~app-containers/docker-proxy-0.8.0_p20230118
+ container-init? ( >=sys-process/tini-0.19.0[static] )
+ selinux? ( sec-policy/selinux-docker )
+"
+
+# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
+BDEPEND="
+ >=dev-lang/go-1.16.12
+ dev-go/go-md2man
+ virtual/pkgconfig
+"
+# tests require running dockerd as root and downloading containers
+RESTRICT="installsources strip test"
+
+S="${WORKDIR}/${P}/src/${EGO_PN}"
+
+# https://bugs.gentoo.org/748984 https://github.com/etcd-io/etcd/pull/12552
+PATCHES=(
+ "${FILESDIR}/0001-Openrc-Depend-on-containerd-init-script.patch"
+)
+
+pkg_setup() {
+ # this is based on "contrib/check-config.sh" from upstream's sources
+ # required features.
+ CONFIG_CHECK="
+ ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
+ ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
+ ~KEYS
+ ~VETH ~BRIDGE ~BRIDGE_NETFILTER
+ ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE
+ ~NETFILTER_XT_MATCH_ADDRTYPE
+ ~NETFILTER_XT_MATCH_CONNTRACK
+ ~NETFILTER_XT_MATCH_IPVS
+ ~NETFILTER_XT_MARK
+ ~IP_NF_NAT ~NF_NAT
+ ~POSIX_MQUEUE
+ "
+ WARNING_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: is required for bind-mounting /dev/mqueue into containers"
+
+ if kernel_is lt 4 8; then
+ CONFIG_CHECK+="
+ ~DEVPTS_MULTIPLE_INSTANCES
+ "
+ fi
+
+ if kernel_is le 5 1; then
+ CONFIG_CHECK+="
+ ~NF_NAT_IPV4
+ "
+ fi
+
+ if kernel_is le 5 2; then
+ CONFIG_CHECK+="
+ ~NF_NAT_NEEDED
+ "
+ fi
+
+ if kernel_is ge 4 15; then
+ CONFIG_CHECK+="
+ ~CGROUP_BPF
+ "
+ fi
+
+ # optional features
+ CONFIG_CHECK+="
+ ~USER_NS
+ "
+
+ if use seccomp; then
+ CONFIG_CHECK+="
+ ~SECCOMP ~SECCOMP_FILTER
+ "
+ fi
+
+ CONFIG_CHECK+="
+ ~CGROUP_PIDS
+ ~MEMCG_SWAP
+ "
+
+ if kernel_is le 5 8; then
+ CONFIG_CHECK+="
+ ~MEMCG_SWAP_ENABLED
+ "
+ fi
+
+ CONFIG_CHECK+="
+ ~!LEGASY_SYSCALL_NATIVE
+ ~LEGASY_SYSCALL_emulate
+ ~!LEGASY_SYSCALL_none
+ "
+ WARNING_LEGASY_SYSCALL_NONE="CONFIG_LEGASY_SYSCALL_NONE enabled: \
+ Containers with <=glibc 2.13 will not work"
+
+ if kernel_is le 4 5; then
+ CONFIG_CHECK+="
+ ~MEMCG_KMEM
+ "
+ fi
+
+ if kernel_is lt 5; then
+ CONFIG_CHECK+="
+ ~IOSCHED_CFQ ~CFQ_GROUP_IOSCHED
+ "
+ fi
+
+ CONFIG_CHECK+="
+ ~BLK_CGROUP ~BLK_DEV_THROTTLING
+ ~CGROUP_PERF
+ ~CGROUP_HUGETLB
+ ~NET_CLS_CGROUP ~CGROUP_NET_PRIO
+ ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
+ ~IP_NF_TARGET_REDIRECT
+ ~IP_VS
+ ~IP_VS_NFCT
+ ~IP_VS_PROTO_TCP
+ ~IP_VS_PROTO_UDP
+ ~IP_VS_RR
+ ~SECURITY_SELINUX
+ ~SECURITY_APPARMOR
+ "
+
+ # if ! is_set EXT4_USE_FOR_EXT2; then
+ # check_flags EXT3_FS EXT3_FS_XATTR EXT3_FS_POSIX_ACL EXT3_FS_SECURITY
+ # if ! is_set EXT3_FS || ! is_set EXT3_FS_XATTR || ! is_set EXT3_FS_POSIX_ACL || ! is_set EXT3_FS_SECURITY; then
+ # echo " $(wrap_color '(enable these ext3 configs if you are using ext3 as backing filesystem)' bold black)"
+ # fi
+ # fi
+
+ CONFIG_CHECK+="
+ ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
+ "
+
+ # if ! is_set EXT4_FS || ! is_set EXT4_FS_POSIX_ACL || ! is_set EXT4_FS_SECURITY; then
+ # if is_set EXT4_USE_FOR_EXT2; then
+ # echo " $(wrap_color 'enable these ext4 configs if you are using ext3 or ext4 as backing filesystem' bold black)"
+ # else
+ # echo " $(wrap_color 'enable these ext4 configs if you are using ext4 as backing filesystem' bold black)"
+ # fi
+ # fi
+
+ # network drivers
+ CONFIG_CHECK+="
+ ~VXLAN ~BRIDGE_VLAN_FILTERING
+ ~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH
+ ~XFRM ~XFRM_USER ~XFRM_ALGO ~INET_ESP
+ "
+ if kernel_is le 5 3; then
+ CONFIG_CHECK+="
+ ~INET_XFRM_MODE_TRANSPORT
+ "
+ fi
+
+ CONFIG_CHECK+="
+ ~IPVLAN
+ "
+ CONFIG_CHECK+="
+ ~MACVLAN ~DUMMY
+ "
+ CONFIG_CHECK+="
+ ~NF_NAT_FTP ~NF_CONNTRACK_FTP ~NF_NAT_TFTP ~NF_CONNTRACK_TFTP
+ "
+
+ # storage drivers
+ if use aufs; then
+ CONFIG_CHECK+="
+ ~AUFS_FS
+ "
+ ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs is patched to kernel instead of using standalone"
+ fi
+
+ if use btrfs; then
+ CONFIG_CHECK+="
+ ~BTRFS_FS
+ ~BTRFS_FS_POSIX_ACL
+ "
+ fi
+
+ if use device-mapper; then
+ CONFIG_CHECK+="
+ ~BLK_DEV_DM ~DM_THIN_PROVISIONING
+ "
+ fi
+
+ CONFIG_CHECK+="
+ ~OVERLAY_FS
+ "
+
+ linux-info_pkg_setup
+}
+
+src_compile() {
+ export DOCKER_GITCOMMIT="${GIT_COMMIT}"
+ export GOPATH="${WORKDIR}/${P}"
+ export VERSION=${PV}
+
+ # setup CFLAGS and LDFLAGS for separate build target
+ # see https://github.com/tianon/docker-overlay/pull/10
+ export CGO_CFLAGS="-I${ESYSROOT}/usr/include"
+ export CGO_LDFLAGS="-L${ESYSROOT}/usr/$(get_libdir)"
+
+ # let's set up some optional features :)
+ export DOCKER_BUILDTAGS=''
+ for gd in aufs btrfs device-mapper overlay; do
+ if ! use $gd; then
+ DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}"
+ fi
+ done
+
+ for tag in apparmor seccomp; do
+ if use $tag; then
+ DOCKER_BUILDTAGS+=" $tag"
+ fi
+ done
+
+ if use hardened; then
+ sed -i "s/EXTLDFLAGS_STATIC='/&-fno-PIC /" hack/make.sh || die
+ grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
+ sed "s/LDFLAGS_STATIC_DOCKER='/&-extldflags -fno-PIC /" \
+ -i hack/make/dynbinary-daemon || die
+ grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed'
+ fi
+
+ # build daemon
+ ./hack/make.sh dynbinary || die 'dynbinary failed'
+}
+
+src_install() {
+ dosym containerd /usr/bin/docker-containerd
+ dosym containerd-shim /usr/bin/docker-containerd-shim
+ dosym runc /usr/bin/docker-runc
+ use container-init && dosym tini /usr/bin/docker-init
+ newbin bundles/dynbinary-daemon/dockerd dockerd
+
+ newinitd contrib/init/openrc/docker.initd docker
+ newconfd contrib/init/openrc/docker.confd docker
+
+ systemd_dounit contrib/init/systemd/docker.{service,socket}
+
+ udev_dorules contrib/udev/*.rules
+
+ dodoc AUTHORS CONTRIBUTING.md NOTICE README.md
+ dodoc -r docs/*
+
+ # note: intentionally not using "doins" so that we preserve +x bits
+ dodir /usr/share/${PN}/contrib
+ cp -R contrib/* "${ED}/usr/share/${PN}/contrib"
+}
+
+pkg_postinst() {
+ udev_reload
+
+ elog
+ elog "To use Docker, the Docker daemon must be running as root. To automatically"
+ elog "start the Docker daemon at boot:"
+ if systemd_is_booted || has_version sys-apps/systemd; then
+ elog " systemctl enable docker.service"
+ else
+ elog " rc-update add docker default"
+ fi
+ elog
+ elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
+ elog ' usermod -aG docker <youruser>'
+ elog
+
+ if use device-mapper; then
+ elog " Devicemapper storage driver has been deprecated"
+ elog " It will be removed in a future release"
+ elog
+ fi
+
+ if use overlay; then
+ elog " Overlay storage driver/USEflag has been deprecated"
+ elog " in favor of overlay2 (enabled unconditionally)"
+ elog
+ fi
+
+ if has_version sys-fs/zfs; then
+ elog " ZFS storage driver is available"
+ elog " Check https://docs.docker.com/storage/storagedriver/zfs-driver for more info"
+ elog
+ fi
+
+ if use cli; then
+ ewarn "Starting with docker 20.10.2, docker has been split into"
+ ewarn "two packages upstream, so Gentoo has followed suit."
+ ewarn
+ ewarn "app-containers/docker contains the daemon and"
+ ewarn "app-containers/docker-cli contains the docker command."
+ ewarn
+ ewarn "docker currently installs docker-cli using the cli use flag."
+ ewarn
+ ewarn "This use flag is temporary, so you need to take the"
+ ewarn "following actions:"
+ ewarn
+ ewarn "First, disable the cli use flag for app-containers/docker"
+ ewarn
+ ewarn "Then, if you need docker-cli and docker on the same machine,"
+ ewarn "run the following command:"
+ ewarn
+ ewarn "# emerge --noreplace docker-cli"
+ ewarn
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}