diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /app-misc/ca-certificates |
reinit the tree, so we can have metadata
Diffstat (limited to 'app-misc/ca-certificates')
7 files changed, 833 insertions, 0 deletions
diff --git a/app-misc/ca-certificates/Manifest b/app-misc/ca-certificates/Manifest new file mode 100644 index 000000000000..a539f7bc6184 --- /dev/null +++ b/app-misc/ca-certificates/Manifest @@ -0,0 +1,15 @@ +AUX ca-certificates-20150426-root.patch 1336 SHA256 0200f41d2c68b5fb0c19783ddd80d806540e136d10f9d4ee4ff3a79b48d70e73 SHA512 4e68e6068921e9ed54bda68af422a491cb530b60ffbb85fe1986a403cd9023522c179b5afcf65e22c223a665163d1c2d1993322d652053b72e3fe07efe692d59 WHIRLPOOL 8647dd9f392f12400a6bb328b72832e225e40438ef75123c13e98e747a4c8d90dcd4567969bab36d2347e29f374fd0db452ad7fb7a9db79877fba127116a7efc +DIST ca-certificates_20161130.tar.xz 298656 SHA256 04bca9e142a90a834aca0311f7ced237368d71fee7bd5c9f68ef7f4611aee471 SHA512 8395f27d2369d694b069e1bb250b06df05f732bd9f4a4dc8652091e9c96ad1a84003e28f59cb9e13fdfd22ca5818f495d80149692e74b2d63e34db4f6a95ee9f WHIRLPOOL 6903848f030a0da80e18e5d6a075c9a4ef390d67d748ff27cbadef4b1bf5866b9d7d96960f780f6bbff3f7b9720c31ee4d7a089238041bcb4d5de52fe0e46224 +DIST ca-certificates_20170717.tar.xz 293028 SHA256 e487639b641fa75445174734dd6e9d600373e3248b3d86a7e3c6d0f6977decd2 SHA512 dfeb5a19bb33bcb127a159b73fcc63b41c99827d77eb4a6069def0cffc7ae8dd10dab97c1ddfdd5b70d0c93e650a51ed5dcd03908516e7ca8b3022bf46eeb7e6 WHIRLPOOL 3b0877a7e85efccef67f92e0f6eb066e98b42982fd68ba92da131d2f96d4c235685ac913d038e2af621cb9cada5cf1409a871b8557d49539d722e10171e2aa7a +DIST nss-3.30.2.tar.gz 9499119 SHA256 0d4a77ff26bcee79fa8afe0125e0df6ae9e798b6b36782fa29e28febf7cfce24 SHA512 02f14bc000cbde42268c4b6f42df80680b010d1491643ef9b11e0bac31a286a2e7fa251c40cb4ac70b64883a1b90efc64440ef9d797357f8a47cd37195fc5500 WHIRLPOOL b1039f227a55ed9ab592b7e1ea0856c8cf91b8d298ef07d9d0f56d1956319b15c12224f023a100d106101c49dafb16e8231680667d2c7d0b8f8b2bbf6ad3ec8e +DIST nss-3.30.tar.gz 9500552 SHA256 a8c0000dae5e992f6563972e26dbfefc50d006dd845c43b8ca24ea50169ff3a9 SHA512 c21e9b5e4b689ea8cbc6f4d7913df43e2a78c4435e0ce092f2ce00e46079ce2268e17ec8527b283ac69eff3d96ff0165a5b42b6579bfe0a720115ff2938260d3 WHIRLPOOL bc0a59484010a5771b515dde1440ccca8a63b167d3d8839b3606460fdf9d2dc3ab7d889173c88edb7d685d39ad3614c4cbc66284d0faced47cdcc01a69997d9a +DIST nss-3.32.1.tar.gz 9494609 SHA256 4de59ca7f5bf4a56fbcfdbb4a054f254ba9f408f56476957404a091048624652 SHA512 b377aba822c2955d801022eba1636b71943a64f6e74d5611c2625910d230059383c4dbdedd65e70b356eaea33aeefdd24de3b31d7a4823d921ea475af3dd9da8 WHIRLPOOL 4c15b4ba85ce10787b9ee541d20a829a99aed5628b59f7e7e3045ec694d6d8a0a83bc730ae4d74148cf7c425f59debfd1574cb1b036c1407d1f9d4896647d9cf +DIST nss-3.33.tar.gz 9578033 SHA256 98f0dabd36408e83dd3a11727336cc3cdfee4cbdd9aede2b2831eb2389c284e4 SHA512 82adc0b73805ba5e73b9bf350fffa383a8b4396c05f49edb360a53319b4ad26d928a135bee245f9da009d162129db4441a96ef05346dadac20922b21284468b0 WHIRLPOOL c11129bce97990a41a3118e62d79481fbd38cad51356a6b6c1b0af7efe2f27b3d5d51a8e987287c1cdff77ccee14a3e96d5bbb76e92f9a81b2f50988de250dea +DIST nss-cacert-class1-class3.patch 22950 SHA256 6bba29cee34276e2ca6436dabedfeba2b61fb46668c5d5ceabf0c871574649bf SHA512 a5aa740bf110a3f0262e3f1ef2fc739ac2b44f042e220039d48aee8e97cd764d5c10718220364f4098aba955882bd02cadb5481512388971a8290312f88a7df0 WHIRLPOOL 1246223b01292604e5609bb9c580f092dc5937bf8c98f6891b099e8bab960e03612b6617e30a55d6ff8817d88f190e03812fe8f89f84f25c20970493dc2f7700 +EBUILD ca-certificates-20161130.3.30-r1.ebuild 5957 SHA256 1170f2cf15ebeb6246fb8e8306ec3a2f30dc395473814ba29f486b8f10237523 SHA512 9daed98f9c1b864f6fb5aaa9172820ca660f0c794b9a68a82dd90979630c7f0d66682fd27896d679fcdfcd0048fbac77ce25b133db65f0e03c73628276649477 WHIRLPOOL ed4cbd382c9f91db90ab72856d954b929032bcea350c856083b3682239a8d33a2815bb164004137f33fa86786593b471707cca53fee913854156fe57e096942e +EBUILD ca-certificates-20161130.3.30.2.ebuild 6252 SHA256 c913c9bc87dedd440bcf5ec81a813a9be6cab4e600487ddee44bff2a717b5ac7 SHA512 103c83cbd4275f17581a8d85c53c907373d737ba5c86b389ae986b3692d8559f6da1cea9c47678164a0fed7ba20970c15c91db6c2277f5903066d29ed2aa9aca WHIRLPOOL 3fc151f5dbf795f2eb9c8b0d62a16aac11f04d57c011646aaa3deba8f532d771e42306098e53df1a2b1da7f5da14333b68b7ca2c9054c588bb01e2cfdd519f26 +EBUILD ca-certificates-20170717.3.32.1.ebuild 6278 SHA256 6a119d901acd84ee15e09f3331f0179fc59abaf134479346babab2ea4a8b43ce SHA512 394207e7ac8970d6b0724ec1bb3d7c233724d4c2f9a05a8c7a475b2d40e08483e940ad185ca6eea023c5d6bff6868b0aa10c4f642eccb6238ffa71ef9505df94 WHIRLPOOL e706d2d9404b81c1b193e3a7c0a61a3465e9d2b3912713196773362b08106aa1fb29f0e5d7138c1bb349fe90390f4a597c93a43291dff8d00b2bcdb63dbbfe9a +EBUILD ca-certificates-20170717.3.33.ebuild 6278 SHA256 6a119d901acd84ee15e09f3331f0179fc59abaf134479346babab2ea4a8b43ce SHA512 394207e7ac8970d6b0724ec1bb3d7c233724d4c2f9a05a8c7a475b2d40e08483e940ad185ca6eea023c5d6bff6868b0aa10c4f642eccb6238ffa71ef9505df94 WHIRLPOOL e706d2d9404b81c1b193e3a7c0a61a3465e9d2b3912713196773362b08106aa1fb29f0e5d7138c1bb349fe90390f4a597c93a43291dff8d00b2bcdb63dbbfe9a +MISC ChangeLog 13827 SHA256 03be314bd258d19e70f073f6041d41e923f368948cd6972a2d2974a8626cba81 SHA512 45905a654eb2f3927c7146a616938fec5345fe5e8dd5d21c02598731870caeb210f89f099d2f130e1d98f4c2b1c7c82a78841172ba0e930e208a944064ded770 WHIRLPOOL 2c89a74ef968ba4d445414547dec2dd152cdcbef4a29fe128d4e197d1ac7b82cd99f83853b0d0bae0165dd7f6c7239e5664847d84e2dd4a18a503f64e04caa6c +MISC ChangeLog-2015 18522 SHA256 79448844b1ba037ee3e6776a0fb72f52f4183900673949aeb28c7b2922f7b739 SHA512 9878595d40dfe3e6eb2acaf5d63eaaf8ed626abd7c2a57621feb26b1bd470ff45457b0abae297fe5fcf335bd968a73a4b051b72471cb671f81539d17f1919bf7 WHIRLPOOL b9d6560a5791537e4a18a9d66463fecdd2f631c3f73dbda40596438b4e4dbcac40a36a321b149d704b883ecf96039275ec2df7104a69b9234c971cba801b7347 +MISC metadata.xml 530 SHA256 dbed1b656a18288075b648dcb24e50fe2d13aaae7c73c87195693d0ed5b53b39 SHA512 3ceccbf31537b511152ebf9f00a4d862de8f0839b2aed48c5d64887a424e5df450113d4547dca46639ea9e1fe038fd765aae1ac1d7fb1fea1c7c7fffcfefc5e7 WHIRLPOOL 8c263af062ff38a797444ae7333e6c5f8f80f905fdb3e11060b3c4ae2f4a16699a58e8096d59cf2bf22bf3f3c9e0de87c8c42ef307278ca4352c1118a8e88cb5 diff --git a/app-misc/ca-certificates/ca-certificates-20161130.3.30-r1.ebuild b/app-misc/ca-certificates/ca-certificates-20161130.3.30-r1.ebuild new file mode 100644 index 000000000000..7d330280280a --- /dev/null +++ b/app-misc/ca-certificates/ca-certificates-20161130.3.30-r1.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# The Debian ca-certificates package merely takes the CA database as it exists +# in the nss package and repackages it for use by openssl. +# +# The issue with using the compiled debs directly is two fold: +# - they do not update frequently enough for us to rely on them +# - they pull the CA database from nss tip of tree rather than the release +# +# So we take the Debian source tools and combine them with the latest nss +# release to produce (largely) the same end result. The difference is that +# now we know our cert database is kept in sync with nss and, if need be, +# can be sync with nss tip of tree more frequently to respond to bugs. + +# When triaging bugs from users, here's some handy tips: +# - To see what cert is hitting errors, use openssl: +# openssl s_client -port 443 -CApath /etc/ssl/certs/ -host $HOSTNAME +# Focus on the errors written to stderr. +# +# - Look at the upstream log as to why certs were added/removed: +# https://hg.mozilla.org/projects/nss/log/tip/lib/ckfw/builtins/certdata.txt +# +# - If people want to add/remove certs, tell them to file w/mozilla: +# https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS&component=CA%20Certificates&version=trunk + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit eutils python-any-r1 + +if [[ ${PV} == *.* ]] ; then + # Compile from source ourselves. + PRECOMPILED=false + inherit versionator + + DEB_VER=$(get_version_component_range 1) + NSS_VER=$(get_version_component_range 2-) + RTM_NAME="NSS_${NSS_VER//./_}_RTM" +else + # Debian precompiled version. + PRECOMPILED=true + inherit unpacker +fi + +DESCRIPTION="Common CA Certificates PEM files" +HOMEPAGE="http://packages.debian.org/sid/ca-certificates" +NMU_PR="" +if ${PRECOMPILED} ; then + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}${NMU_PR:++nmu}${NMU_PR}_all.deb" +else + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${DEB_VER}${NMU_PR:++nmu}${NMU_PR}.tar.xz + https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-${NSS_VER}.tar.gz + cacert? ( + https://dev.gentoo.org/~axs/distfiles/nss-cacert-class1-class3.patch + )" +fi + +LICENSE="MPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="insecure_certs" +${PRECOMPILED} || IUSE+=" cacert" + +DEPEND="" +if ${PRECOMPILED} ; then + DEPEND+=" !<sys-apps/portage-2.1.10.41" +fi +# c_rehash: we run `c_rehash` +# debianutils: we run `run-parts` +RDEPEND="${DEPEND} + app-misc/c_rehash + sys-apps/debianutils" + +if ! ${PRECOMPILED}; then + DEPEND+=" ${PYTHON_DEPS}" +fi + +S=${WORKDIR} + +pkg_setup() { + # For the conversion to having it in CONFIG_PROTECT_MASK, + # we need to tell users about it once manually first. + [[ -f "${EPREFIX}"/etc/env.d/98ca-certificates ]] \ + || ewarn "You should run update-ca-certificates manually after etc-update" +} + +src_unpack() { + ${PRECOMPILED} || default + + # Do all the work in the image subdir to avoid conflicting with source + # dirs in $WORKDIR. Need to perform everything in the offset #381937 + mkdir -p "image/${EPREFIX}" + cd "image/${EPREFIX}" || die + + ${PRECOMPILED} && unpacker_src_unpack +} + +src_prepare() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + mkdir -p usr/sbin + cp -p "${S}"/${PN}/sbin/update-ca-certificates usr/sbin/ || die + + if use cacert ; then + pushd "${S}"/nss-${NSS_VER} >/dev/null + epatch "${DISTDIR}"/nss-cacert-class1-class3.patch + popd >/dev/null + fi + fi + + epatch "${FILESDIR}"/${PN}-20150426-root.patch + local relp=$(echo "${EPREFIX}" | sed -e 's:[^/]\+:..:g') + sed -i \ + -e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \ + -e '/RELPATH="\.\./s:"$:'"${relp}"'":' \ + usr/sbin/update-ca-certificates || die +} + +src_compile() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + python_setup + local d="${S}/${PN}/mozilla" c="usr/share/${PN}" + # Grab the database from the nss sources. + cp "${S}"/nss-${NSS_VER}/nss/lib/ckfw/builtins/{certdata.txt,nssckbi.h} "${d}" || die + emake -C "${d}" + + # Now move the files to the same places that the precompiled would. + mkdir -p etc/ssl/certs etc/ca-certificates/update.d "${c}"/mozilla + if use cacert ; then + mkdir -p "${c}"/cacert.org + mv "${d}"/CAcert_Inc..crt "${c}"/cacert.org/cacert.org_root.crt || die + fi + mv "${d}"/*.crt "${c}"/mozilla/ || die + else + mv usr/share/doc/{ca-certificates,${PF}} || die + fi + + if ! use insecure_certs ; then + # Remove untrusted certs from StartCom and WoSign (bug #598072) + rm "${c}"/mozilla/StartCom* || die + rm "${c}"/mozilla/WoSign* || die + # and from Symantec (bug #613714) + rm "${c}"/mozilla/Symantec* || die + fi + + ( + echo "# Automatically generated by ${CATEGORY}/${PF}" + echo "# $(date -u)" + echo "# Do not edit." + cd "${c}" + find * -name '*.crt' | LC_ALL=C sort + ) > etc/ca-certificates.conf + + sh usr/sbin/update-ca-certificates --root "${S}/image" || die +} + +src_install() { + cp -pPR image/* "${D}"/ || die + if ! ${PRECOMPILED} ; then + cd ca-certificates + doman sbin/*.8 + dodoc debian/README.* examples/ca-certificates-local/README + fi + + echo 'CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"' > 98ca-certificates + doenvd 98ca-certificates +} + +pkg_postinst() { + if [ -d "${EROOT}/usr/local/share/ca-certificates" ] ; then + # if the user has local certs, we need to rebuild again + # to include their stuff in the db. + # However it's too overzealous when the user has custom certs in place. + # --fresh is to clean up dangling symlinks + "${EROOT}"/usr/sbin/update-ca-certificates --root "${ROOT}" + fi + + if [ -n "$(find -L "${EROOT}"etc/ssl/certs/ -type l)" ] ; then + ewarn "Removing the following broken symlinks:" + ewarn "$(find -L "${EROOT}"/etc/ssl/certs/ -type l -printf '%p -> %l\n' -delete)" + fi +} diff --git a/app-misc/ca-certificates/ca-certificates-20161130.3.30.2.ebuild b/app-misc/ca-certificates/ca-certificates-20161130.3.30.2.ebuild new file mode 100644 index 000000000000..2fac1bf79439 --- /dev/null +++ b/app-misc/ca-certificates/ca-certificates-20161130.3.30.2.ebuild @@ -0,0 +1,188 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# The Debian ca-certificates package merely takes the CA database as it exists +# in the nss package and repackages it for use by openssl. +# +# The issue with using the compiled debs directly is two fold: +# - they do not update frequently enough for us to rely on them +# - they pull the CA database from nss tip of tree rather than the release +# +# So we take the Debian source tools and combine them with the latest nss +# release to produce (largely) the same end result. The difference is that +# now we know our cert database is kept in sync with nss and, if need be, +# can be sync with nss tip of tree more frequently to respond to bugs. + +# When triaging bugs from users, here's some handy tips: +# - To see what cert is hitting errors, use openssl: +# openssl s_client -port 443 -CApath /etc/ssl/certs/ -host $HOSTNAME +# Focus on the errors written to stderr. +# +# - Look at the upstream log as to why certs were added/removed: +# https://hg.mozilla.org/projects/nss/log/tip/lib/ckfw/builtins/certdata.txt +# +# - If people want to add/remove certs, tell them to file w/mozilla: +# https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS&component=CA%20Certificates&version=trunk + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit eutils python-any-r1 + +if [[ ${PV} == *.* ]] ; then + # Compile from source ourselves. + PRECOMPILED=false + inherit versionator + + DEB_VER=$(get_version_component_range 1) + NSS_VER=$(get_version_component_range 2-) + RTM_NAME="NSS_${NSS_VER//./_}_RTM" +else + # Debian precompiled version. + PRECOMPILED=true + inherit unpacker +fi + +DESCRIPTION="Common CA Certificates PEM files" +HOMEPAGE="http://packages.debian.org/sid/ca-certificates" +NMU_PR="" +if ${PRECOMPILED} ; then + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}${NMU_PR:++nmu}${NMU_PR}_all.deb" +else + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${DEB_VER}${NMU_PR:++nmu}${NMU_PR}.tar.xz + https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-${NSS_VER}.tar.gz + cacert? ( + https://dev.gentoo.org/~axs/distfiles/nss-cacert-class1-class3.patch + )" +fi + +LICENSE="MPL-1.1" +SLOT="0" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="insecure_certs" +${PRECOMPILED} || IUSE+=" cacert" + +DEPEND="" +if ${PRECOMPILED} ; then + DEPEND+=" !<sys-apps/portage-2.1.10.41" +fi +# c_rehash: we run `c_rehash` +# debianutils: we run `run-parts` +RDEPEND="${DEPEND} + app-misc/c_rehash + sys-apps/debianutils" + +if ! ${PRECOMPILED}; then + DEPEND+=" ${PYTHON_DEPS}" +fi + +S=${WORKDIR} + +pkg_setup() { + # For the conversion to having it in CONFIG_PROTECT_MASK, + # we need to tell users about it once manually first. + [[ -f "${EPREFIX}"/etc/env.d/98ca-certificates ]] \ + || ewarn "You should run update-ca-certificates manually after etc-update" +} + +src_unpack() { + ${PRECOMPILED} || default + + # Do all the work in the image subdir to avoid conflicting with source + # dirs in $WORKDIR. Need to perform everything in the offset #381937 + mkdir -p "image/${EPREFIX}" + cd "image/${EPREFIX}" || die + + ${PRECOMPILED} && unpacker_src_unpack +} + +src_prepare() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + mkdir -p usr/sbin + cp -p "${S}"/${PN}/sbin/update-ca-certificates usr/sbin/ || die + + if use cacert ; then + pushd "${S}"/nss-${NSS_VER} >/dev/null + epatch "${DISTDIR}"/nss-cacert-class1-class3.patch + popd >/dev/null + fi + fi + + epatch "${FILESDIR}"/${PN}-20150426-root.patch + local relp=$(echo "${EPREFIX}" | sed -e 's:[^/]\+:..:g') + sed -i \ + -e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \ + -e '/RELPATH="\.\./s:"$:'"${relp}"'":' \ + usr/sbin/update-ca-certificates || die +} + +src_compile() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + python_setup + local d="${S}/${PN}/mozilla" c="usr/share/${PN}" + # Grab the database from the nss sources. + cp "${S}"/nss-${NSS_VER}/nss/lib/ckfw/builtins/{certdata.txt,nssckbi.h} "${d}" || die + emake -C "${d}" + + # Now move the files to the same places that the precompiled would. + mkdir -p etc/ssl/certs etc/ca-certificates/update.d "${c}"/mozilla + if use cacert ; then + mkdir -p "${c}"/cacert.org + mv "${d}"/CAcert_Inc..crt "${c}"/cacert.org/cacert.org_root.crt || die + fi + mv "${d}"/*.crt "${c}"/mozilla/ || die + else + mv usr/share/doc/{ca-certificates,${PF}} || die + fi + + if ! use insecure_certs ; then + elog "To prevent applications relying on system's trusted root certificate store" + elog "from using CAs where at least one major browser vendor Gentoo is following" + elog "has decided to apply trust level restrictions, the following" + elog "certificate(s) were removed:" + # Remove untrusted certs from StartCom and WoSign (bug #598072) + elog "$(find "${c}" -type f \( \ + -iname '*startcom*' \ + -o -iname '*wosign*' \ + \) -printf '%P removed; see https://bugs.gentoo.org/598072 for details\n' -delete)" + fi + + ( + echo "# Automatically generated by ${CATEGORY}/${PF}" + echo "# $(date -u)" + echo "# Do not edit." + cd "${c}" + find * -name '*.crt' | LC_ALL=C sort + ) > etc/ca-certificates.conf + + sh usr/sbin/update-ca-certificates --root "${S}/image" || die +} + +src_install() { + cp -pPR image/* "${D}"/ || die + if ! ${PRECOMPILED} ; then + cd ca-certificates + doman sbin/*.8 + dodoc debian/README.* examples/ca-certificates-local/README + fi + + echo 'CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"' > 98ca-certificates + doenvd 98ca-certificates +} + +pkg_postinst() { + if [ -d "${EROOT}/usr/local/share/ca-certificates" ] ; then + # if the user has local certs, we need to rebuild again + # to include their stuff in the db. + # However it's too overzealous when the user has custom certs in place. + # --fresh is to clean up dangling symlinks + "${EROOT}"/usr/sbin/update-ca-certificates --root "${ROOT}" + fi + + if [ -n "$(find -L "${EROOT}"etc/ssl/certs/ -type l)" ] ; then + ewarn "Removing the following broken symlinks:" + ewarn "$(find -L "${EROOT}"/etc/ssl/certs/ -type l -printf '%p -> %l\n' -delete)" + fi +} diff --git a/app-misc/ca-certificates/ca-certificates-20170717.3.32.1.ebuild b/app-misc/ca-certificates/ca-certificates-20170717.3.32.1.ebuild new file mode 100644 index 000000000000..7778372001e5 --- /dev/null +++ b/app-misc/ca-certificates/ca-certificates-20170717.3.32.1.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# The Debian ca-certificates package merely takes the CA database as it exists +# in the nss package and repackages it for use by openssl. +# +# The issue with using the compiled debs directly is two fold: +# - they do not update frequently enough for us to rely on them +# - they pull the CA database from nss tip of tree rather than the release +# +# So we take the Debian source tools and combine them with the latest nss +# release to produce (largely) the same end result. The difference is that +# now we know our cert database is kept in sync with nss and, if need be, +# can be sync with nss tip of tree more frequently to respond to bugs. + +# When triaging bugs from users, here's some handy tips: +# - To see what cert is hitting errors, use openssl: +# openssl s_client -port 443 -CApath /etc/ssl/certs/ -host $HOSTNAME +# Focus on the errors written to stderr. +# +# - Look at the upstream log as to why certs were added/removed: +# https://hg.mozilla.org/projects/nss/log/tip/lib/ckfw/builtins/certdata.txt +# +# - If people want to add/remove certs, tell them to file w/mozilla: +# https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS&component=CA%20Certificates&version=trunk + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) + +inherit eutils python-any-r1 + +if [[ ${PV} == *.* ]] ; then + # Compile from source ourselves. + PRECOMPILED=false + inherit versionator + + DEB_VER=$(get_version_component_range 1) + NSS_VER=$(get_version_component_range 2-) + RTM_NAME="NSS_${NSS_VER//./_}_RTM" +else + # Debian precompiled version. + PRECOMPILED=true + inherit unpacker +fi + +DESCRIPTION="Common CA Certificates PEM files" +HOMEPAGE="https://packages.debian.org/sid/ca-certificates" +NMU_PR="" +if ${PRECOMPILED} ; then + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}${NMU_PR:++nmu}${NMU_PR}_all.deb" +else + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${DEB_VER}${NMU_PR:++nmu}${NMU_PR}.tar.xz + https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-${NSS_VER}.tar.gz + cacert? ( + https://dev.gentoo.org/~axs/distfiles/nss-cacert-class1-class3.patch + )" +fi + +LICENSE="MPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="insecure_certs" +${PRECOMPILED} || IUSE+=" cacert" + +DEPEND="" +if ${PRECOMPILED} ; then + DEPEND+=" !<sys-apps/portage-2.1.10.41" +fi +# c_rehash: we run `c_rehash` +# debianutils: we run `run-parts` +RDEPEND="${DEPEND} + app-misc/c_rehash + sys-apps/debianutils" + +if ! ${PRECOMPILED}; then + DEPEND+=" ${PYTHON_DEPS}" +fi + +S=${WORKDIR} + +pkg_setup() { + # For the conversion to having it in CONFIG_PROTECT_MASK, + # we need to tell users about it once manually first. + [[ -f "${EPREFIX}"/etc/env.d/98ca-certificates ]] \ + || ewarn "You should run update-ca-certificates manually after etc-update" +} + +src_unpack() { + ${PRECOMPILED} || default + + # Do all the work in the image subdir to avoid conflicting with source + # dirs in $WORKDIR. Need to perform everything in the offset #381937 + mkdir -p "image/${EPREFIX}" + cd "image/${EPREFIX}" || die + + ${PRECOMPILED} && unpacker_src_unpack +} + +src_prepare() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + mkdir -p usr/sbin + cp -p "${S}"/${PN}/sbin/update-ca-certificates usr/sbin/ || die + + if use cacert ; then + pushd "${S}"/nss-${NSS_VER} >/dev/null + epatch "${DISTDIR}"/nss-cacert-class1-class3.patch + popd >/dev/null + fi + fi + + default + eapply -p2 "${FILESDIR}"/${PN}-20150426-root.patch + local relp=$(echo "${EPREFIX}" | sed -e 's:[^/]\+:..:g') + sed -i \ + -e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \ + -e '/RELPATH="\.\./s:"$:'"${relp}"'":' \ + usr/sbin/update-ca-certificates || die +} + +src_compile() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + python_setup + local d="${S}/${PN}/mozilla" c="usr/share/${PN}" + # Grab the database from the nss sources. + cp "${S}"/nss-${NSS_VER}/nss/lib/ckfw/builtins/{certdata.txt,nssckbi.h} "${d}" || die + emake -C "${d}" + + # Now move the files to the same places that the precompiled would. + mkdir -p etc/ssl/certs etc/ca-certificates/update.d "${c}"/mozilla + if use cacert ; then + mkdir -p "${c}"/cacert.org + mv "${d}"/CAcert_Inc..crt "${c}"/cacert.org/cacert.org_root.crt || die + fi + mv "${d}"/*.crt "${c}"/mozilla/ || die + else + mv usr/share/doc/{ca-certificates,${PF}} || die + fi + + if ! use insecure_certs ; then + elog "To prevent applications relying on system's trusted root certificate store" + elog "from using CAs where at least one major browser vendor Gentoo is following" + elog "has decided to apply trust level restrictions, the following" + elog "certificate(s) were removed:" + # Remove untrusted certs from StartCom and WoSign (bug #598072) + elog "$(find "${c}" -type f \( \ + -iname '*startcom*' \ + -o -iname '*wosign*' \ + \) -printf '%P removed; see https://bugs.gentoo.org/598072 for details\n' -delete)" + fi + + ( + echo "# Automatically generated by ${CATEGORY}/${PF}" + echo "# $(date -u)" + echo "# Do not edit." + cd "${c}" + find * -name '*.crt' | LC_ALL=C sort + ) > etc/ca-certificates.conf + + sh usr/sbin/update-ca-certificates --root "${S}/image" || die +} + +src_install() { + cp -pPR image/* "${D}"/ || die + if ! ${PRECOMPILED} ; then + cd ca-certificates + doman sbin/*.8 + dodoc debian/README.* examples/ca-certificates-local/README + fi + + echo 'CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"' > 98ca-certificates + doenvd 98ca-certificates +} + +pkg_postinst() { + if [ -d "${EROOT}/usr/local/share/ca-certificates" ] ; then + # if the user has local certs, we need to rebuild again + # to include their stuff in the db. + # However it's too overzealous when the user has custom certs in place. + # --fresh is to clean up dangling symlinks + "${EROOT}"/usr/sbin/update-ca-certificates --root "${ROOT}" + fi + + if [ -n "$(find -L "${EROOT}"etc/ssl/certs/ -type l)" ] ; then + ewarn "Removing the following broken symlinks:" + ewarn "$(find -L "${EROOT}"/etc/ssl/certs/ -type l -printf '%p -> %l\n' -delete)" + fi +} diff --git a/app-misc/ca-certificates/ca-certificates-20170717.3.33.ebuild b/app-misc/ca-certificates/ca-certificates-20170717.3.33.ebuild new file mode 100644 index 000000000000..7778372001e5 --- /dev/null +++ b/app-misc/ca-certificates/ca-certificates-20170717.3.33.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# The Debian ca-certificates package merely takes the CA database as it exists +# in the nss package and repackages it for use by openssl. +# +# The issue with using the compiled debs directly is two fold: +# - they do not update frequently enough for us to rely on them +# - they pull the CA database from nss tip of tree rather than the release +# +# So we take the Debian source tools and combine them with the latest nss +# release to produce (largely) the same end result. The difference is that +# now we know our cert database is kept in sync with nss and, if need be, +# can be sync with nss tip of tree more frequently to respond to bugs. + +# When triaging bugs from users, here's some handy tips: +# - To see what cert is hitting errors, use openssl: +# openssl s_client -port 443 -CApath /etc/ssl/certs/ -host $HOSTNAME +# Focus on the errors written to stderr. +# +# - Look at the upstream log as to why certs were added/removed: +# https://hg.mozilla.org/projects/nss/log/tip/lib/ckfw/builtins/certdata.txt +# +# - If people want to add/remove certs, tell them to file w/mozilla: +# https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS&component=CA%20Certificates&version=trunk + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) + +inherit eutils python-any-r1 + +if [[ ${PV} == *.* ]] ; then + # Compile from source ourselves. + PRECOMPILED=false + inherit versionator + + DEB_VER=$(get_version_component_range 1) + NSS_VER=$(get_version_component_range 2-) + RTM_NAME="NSS_${NSS_VER//./_}_RTM" +else + # Debian precompiled version. + PRECOMPILED=true + inherit unpacker +fi + +DESCRIPTION="Common CA Certificates PEM files" +HOMEPAGE="https://packages.debian.org/sid/ca-certificates" +NMU_PR="" +if ${PRECOMPILED} ; then + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}${NMU_PR:++nmu}${NMU_PR}_all.deb" +else + SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${DEB_VER}${NMU_PR:++nmu}${NMU_PR}.tar.xz + https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-${NSS_VER}.tar.gz + cacert? ( + https://dev.gentoo.org/~axs/distfiles/nss-cacert-class1-class3.patch + )" +fi + +LICENSE="MPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="insecure_certs" +${PRECOMPILED} || IUSE+=" cacert" + +DEPEND="" +if ${PRECOMPILED} ; then + DEPEND+=" !<sys-apps/portage-2.1.10.41" +fi +# c_rehash: we run `c_rehash` +# debianutils: we run `run-parts` +RDEPEND="${DEPEND} + app-misc/c_rehash + sys-apps/debianutils" + +if ! ${PRECOMPILED}; then + DEPEND+=" ${PYTHON_DEPS}" +fi + +S=${WORKDIR} + +pkg_setup() { + # For the conversion to having it in CONFIG_PROTECT_MASK, + # we need to tell users about it once manually first. + [[ -f "${EPREFIX}"/etc/env.d/98ca-certificates ]] \ + || ewarn "You should run update-ca-certificates manually after etc-update" +} + +src_unpack() { + ${PRECOMPILED} || default + + # Do all the work in the image subdir to avoid conflicting with source + # dirs in $WORKDIR. Need to perform everything in the offset #381937 + mkdir -p "image/${EPREFIX}" + cd "image/${EPREFIX}" || die + + ${PRECOMPILED} && unpacker_src_unpack +} + +src_prepare() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + mkdir -p usr/sbin + cp -p "${S}"/${PN}/sbin/update-ca-certificates usr/sbin/ || die + + if use cacert ; then + pushd "${S}"/nss-${NSS_VER} >/dev/null + epatch "${DISTDIR}"/nss-cacert-class1-class3.patch + popd >/dev/null + fi + fi + + default + eapply -p2 "${FILESDIR}"/${PN}-20150426-root.patch + local relp=$(echo "${EPREFIX}" | sed -e 's:[^/]\+:..:g') + sed -i \ + -e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \ + -e '/RELPATH="\.\./s:"$:'"${relp}"'":' \ + usr/sbin/update-ca-certificates || die +} + +src_compile() { + cd "image/${EPREFIX}" || die + if ! ${PRECOMPILED} ; then + python_setup + local d="${S}/${PN}/mozilla" c="usr/share/${PN}" + # Grab the database from the nss sources. + cp "${S}"/nss-${NSS_VER}/nss/lib/ckfw/builtins/{certdata.txt,nssckbi.h} "${d}" || die + emake -C "${d}" + + # Now move the files to the same places that the precompiled would. + mkdir -p etc/ssl/certs etc/ca-certificates/update.d "${c}"/mozilla + if use cacert ; then + mkdir -p "${c}"/cacert.org + mv "${d}"/CAcert_Inc..crt "${c}"/cacert.org/cacert.org_root.crt || die + fi + mv "${d}"/*.crt "${c}"/mozilla/ || die + else + mv usr/share/doc/{ca-certificates,${PF}} || die + fi + + if ! use insecure_certs ; then + elog "To prevent applications relying on system's trusted root certificate store" + elog "from using CAs where at least one major browser vendor Gentoo is following" + elog "has decided to apply trust level restrictions, the following" + elog "certificate(s) were removed:" + # Remove untrusted certs from StartCom and WoSign (bug #598072) + elog "$(find "${c}" -type f \( \ + -iname '*startcom*' \ + -o -iname '*wosign*' \ + \) -printf '%P removed; see https://bugs.gentoo.org/598072 for details\n' -delete)" + fi + + ( + echo "# Automatically generated by ${CATEGORY}/${PF}" + echo "# $(date -u)" + echo "# Do not edit." + cd "${c}" + find * -name '*.crt' | LC_ALL=C sort + ) > etc/ca-certificates.conf + + sh usr/sbin/update-ca-certificates --root "${S}/image" || die +} + +src_install() { + cp -pPR image/* "${D}"/ || die + if ! ${PRECOMPILED} ; then + cd ca-certificates + doman sbin/*.8 + dodoc debian/README.* examples/ca-certificates-local/README + fi + + echo 'CONFIG_PROTECT_MASK="/etc/ca-certificates.conf"' > 98ca-certificates + doenvd 98ca-certificates +} + +pkg_postinst() { + if [ -d "${EROOT}/usr/local/share/ca-certificates" ] ; then + # if the user has local certs, we need to rebuild again + # to include their stuff in the db. + # However it's too overzealous when the user has custom certs in place. + # --fresh is to clean up dangling symlinks + "${EROOT}"/usr/sbin/update-ca-certificates --root "${ROOT}" + fi + + if [ -n "$(find -L "${EROOT}"etc/ssl/certs/ -type l)" ] ; then + ewarn "Removing the following broken symlinks:" + ewarn "$(find -L "${EROOT}"/etc/ssl/certs/ -type l -printf '%p -> %l\n' -delete)" + fi +} diff --git a/app-misc/ca-certificates/files/ca-certificates-20150426-root.patch b/app-misc/ca-certificates/files/ca-certificates-20150426-root.patch new file mode 100644 index 000000000000..6e41ac39e874 --- /dev/null +++ b/app-misc/ca-certificates/files/ca-certificates-20150426-root.patch @@ -0,0 +1,49 @@ +add a --root option so we can generate with DESTDIR installs + +--- a/image/usr/sbin/update-ca-certificates ++++ b/image/usr/sbin/update-ca-certificates +@@ -30,6 +30,8 @@ LOCALCERTSDIR=/usr/local/share/ca-certificates + CERTBUNDLE=ca-certificates.crt + ETCCERTSDIR=/etc/ssl/certs + HOOKSDIR=/etc/ca-certificates/update.d ++ROOT="" ++RELPATH="" + + while [ $# -gt 0 ]; + do +@@ -59,13 +61,25 @@ do + --hooksdir) + shift + HOOKSDIR="$1";; ++ --root|-r) ++ shift ++ # Needed as c_rehash wants to read the files directly. ++ # This gets us from $CERTSCONF to $CERTSDIR. ++ RELPATH="../../.." ++ ROOT=$(readlink -f "$1");; + --help|-h|*) +- echo "$0: [--verbose] [--fresh]" ++ echo "$0: [--verbose] [--fresh] [--root <dir>]" + exit;; + esac + shift + done + ++CERTSCONF="$ROOT$CERTSCONF" ++CERTSDIR="$ROOT$CERTSDIR" ++LOCALCERTSDIR="$ROOT$LOCALCERTSDIR" ++ETCCERTSDIR="$ROOT$ETCCERTSDIR" ++HOOKSDIR="$ROOT$HOOKSDIR" ++ + if [ ! -s "$CERTSCONF" ] + then + fresh=1 +@@ -94,7 +107,7 @@ add() { + -e 's/,/_/g').pem" + if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "$CERT" ] + then +- ln -sf "$CERT" "$PEM" ++ ln -sf "${RELPATH}${CERT#$ROOT}" "$PEM" + echo "+$PEM" >> "$ADDED" + fi + # Add trailing newline to certificate, if it is missing (#635570) diff --git a/app-misc/ca-certificates/metadata.xml b/app-misc/ca-certificates/metadata.xml new file mode 100644 index 000000000000..f516f0769776 --- /dev/null +++ b/app-misc/ca-certificates/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>base-system@gentoo.org</email> + <name>Gentoo Base System</name> +</maintainer> +<use> + <flag name="cacert"> + Include root certs from CAcert (http://www.cacert.org/) and + Software in the Public Interest (http://www.spi-inc.org/) + </flag> + <flag name="insecure_certs"> + Install certs which are known to *not* being trustworthy. + </flag> +</use> +</pkgmetadata> |