diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-03-11 00:05:57 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-03-11 00:05:57 +0000 |
commit | 2e027f251732a168e55984da9d843155dca675c6 (patch) | |
tree | 36007a76d602b39328ad771ab22f7a3945518773 /app-containers | |
parent | 17dcfeba22240edb3c54d96e319edf6c4bc008c3 (diff) |
gentoo auto-resync : 11:03:2023 - 00:05:57
Diffstat (limited to 'app-containers')
-rw-r--r-- | app-containers/Manifest.gz | bin | 7531 -> 7537 bytes | |||
-rw-r--r-- | app-containers/docker-cli/Manifest | 2 | ||||
-rw-r--r-- | app-containers/docker-cli/docker-cli-23.0.1.ebuild | 67 | ||||
-rw-r--r-- | app-containers/docker-compose/Manifest | 3 | ||||
-rw-r--r-- | app-containers/docker-compose/docker-compose-2.16.0.ebuild | 49 | ||||
-rw-r--r-- | app-containers/docker-proxy/Manifest | 2 | ||||
-rw-r--r-- | app-containers/docker-proxy/docker-proxy-0.8.0_p20230118.ebuild | 30 | ||||
-rw-r--r-- | app-containers/docker/Manifest | 2 | ||||
-rw-r--r-- | app-containers/docker/docker-23.0.1.ebuild | 348 |
9 files changed, 503 insertions, 0 deletions
diff --git a/app-containers/Manifest.gz b/app-containers/Manifest.gz Binary files differindex de4788b7f84d..271cb6f9c79f 100644 --- a/app-containers/Manifest.gz +++ b/app-containers/Manifest.gz 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 +} |