<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/344fb99500b93daf4890f7031f95601c23506a06">https://github.com/macports/macports-ports/commit/344fb99500b93daf4890f7031f95601c23506a06</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 344fb99500b93daf4890f7031f95601c23506a06
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Wed Oct 6 22:14:47 2021 -0400

<span style='display:block; white-space:pre;color:#404040;'>    apple-pki-bundle: Submission
</span>---
 net/apple-pki-bundle/Portfile | 234 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 234 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/apple-pki-bundle/Portfile b/net/apple-pki-bundle/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..19175f3e747
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/apple-pki-bundle/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,234 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                apple-pki-bundle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             2018-09-27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          net www security
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             OpenSSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {ieee.org:s.t.smith @essandess} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs     noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Apple PKI certificate bundle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    Installs a bundle of certification authority certificates \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    (CA certs) used on Apple devices.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://www.apple.com/certificateauthority/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        https://www.apple.com/appleca:appleca \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    https://www.apple.com/certificateauthority:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    https://developer.apple.com/certificationauthority:certificationauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    https://geotrust.tbs-certificats.com:geotrust \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    https://cacerts.digicert.com:digicert
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles           AppleIncRootCertificate.cer:appleca \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleComputerRootCertificate.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleRootCA-G2.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleRootCA-G3.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleISTCA2G1.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleISTCA8G1.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleAAICA.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleAAI2CA.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleAAICAG3.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleApplicationIntegrationCA5G1.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DevAuthCA.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DeveloperIDCA.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleSoftwareUpdateCertificationAuthority.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleTimestampCA.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCA.cer:certificationauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG2.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG3.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG5.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG6.cer:certificateauthority \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    GeoTrust_Global_CA.crt:geotrust \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    GeoTrustPCA-G2.crt:digicert
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           AppleIncRootCertificate.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  f86e77359a6a61f20fd8eb0deb854ad5a510412a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  b0b1730ecbc7ff4505142c49f1295e6eda6bcaed7e2c68c5be91b5a11001f024 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1215 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleComputerRootCertificate.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  fb3672c5e3c74df263e193b8e3df845dd6d33c51 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  0d83b611b648a1a75eb8558400795375cad92e264ed8e9d7a757c1f5ee2bb22d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1470 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleRootCA-G2.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  300b620e7c4f611e907ae48aebfa8c1858e55a1c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  c2b9b042dd57830e7d117dac55ac8ae19407d38e41d88f3215bc3a890444a050 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1430 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleRootCA-G3.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  4b9f77626fc3b924f105f58c99af71e157c6c2d6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  63343abfb89a6a03ebb57e9b3f5fa7be7c4f5c756f3017b3a8c488c3653e9179 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    583 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleISTCA2G1.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  7c71ab76630c91228ebc153a20ddb48f74301035 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  ac2b922ecfd5e01711772fea8ed372de9d1e2245fce3f57a9cdbec77296a424b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1092 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleISTCA8G1.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  49d458253b7801341f6280efb5d46338c4688875 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  63ed1030fe1001060589f4e8ac955768fc0880bcc42be7d906d590e327a57142 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1216 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleAAICA.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  b4ccf1798244801aa784b7ff0c049c963a20ca29 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  2528ba7d9348d6cbc83b169b24860ae7a87a6359c0e5274626edfe8f6c04e2b8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1489 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleAAI2CA.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  d623a06611224ea258af9aba8e7f90f5a3dc5b50 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  d3496f4b73cd67aab9f2fcb1d5aa41f8dc457769c455c792b70ddb19e92023d6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1052 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleAAICAG3.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  5cf343caf0c2836cb7c374f4489af1925da544cb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  a64b099dbd73ebb036b4204e1675e8aa821637d09b84980899104ad59d664a3b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    754 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleApplicationIntegrationCA5G1.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  acea444545ee49c6f7bb852e87aa9cee44cc3546 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  c0d8efbea821079d1b8a98e1198bfcc669331fa7a9c14f09b969f0af08ce4a43 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    765 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DevAuthCA.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  130856ebc4cc8503fd3bc253b115f1ad50aafd32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  341ff0b1753889eb5f36921a7386129f302ce4ff603fabaebf06e01fdb236860 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1051 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DeveloperIDCA.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  829a7ac0b3daab8b8ab7c5252599b1491aa9d987 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  7afc9d01a62f03a2de9637936d4afe68090d2de18d03f29c88cfb0b1ba63587f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1032 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleSoftwareUpdateCertificationAuthority.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  969679b4511ae94133497c0014e9a95154336ff0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  1299e9bfe776a29ff452f8c4f5e55f3b4dfd2934349dd1850b8274f35c71745c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1136 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleTimestampCA.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  414a1dc61e313c238adc47f1d8380aa5bb400173 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  5eb2b6f76a173e6876ccaca696817bf1a0575e8d5f2a81653e1ddf8dafb751fc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1456 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCA.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  56edfda4fc5664a5431c4fef431d60ac43c5e872 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  ce057691d730f89ca25e916f7335f4c8a15713dcd273a658c024023f8eb809c2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1062 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG2.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  0d4330029e28cb238e264d3bc238d4b1798e9385 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  9ed4b3b88c6a339cf1387895bda9ca6ea31a6b5ce9edf7511845923b0c8ac94c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    763 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG3.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  17665bab909900697ee8a9c558b56d986dd8e3e4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  dcf21878c77f4198e4b4614f03d696d89c66c66008d4244e1b99161aac91601f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1109 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG5.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  b20a437bdd39e2d960a51164badb7124094e083e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  53fd008278e5a595fe1e908ae9c5e5675f26243264a5a6438c023e3ce2870760 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1113 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    AppleWWDRCAG6.cer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  505ae3637933095ddf6cb40aa12bf0b1ded0ab09 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  bdd4ed6e74691f0c2bfd01be0296197af1379e0418e2d300efa9c3bef642ca30 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    794 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    GeoTrust_Global_CA.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  b481fa4b7532b3d6b353463267df2eafeea8a043 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  9bde21d1c3414421fc6ff9ae79f1688c0193bc1cd0f1417f9adf0cdbed3b6250 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1236 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    GeoTrustPCA-G2.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  fc4e5fc888b926cd12871ac9b650cf68b028736e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  5edb7ac43b82a06a8761e8d7be4979ebf2611f7dd79bf91c1c6b566a219ed766 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    690
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# non-Apple CAs in the bundle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# for f in ${worksrcpath}/*.pem; do openssl x509 -inform pem -text -noout -in ${f}; done | grep 'CN = ' | grep -v Apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant additional_pki_bundle \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {Add PKI bundle used by GitHub assets, possibly others.} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # openssl s_client -showcerts github.githubassets.com:443 | sed -E '1,/^---$/d' | sed '/^---$/,$d' 1> cert.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # openssl x509 -text -noout -in cert.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # openssl verify -CAfile trustedCAs.pem cert.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    distfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertHighAssuranceEVRootCA.crt:digicert \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertSHA2HighAssuranceServerCA.crt:digicert \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertTLSHybridECCSHA3842020CA1-1.crt:digicert \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertTLSRSASHA2562020CA1-1.crt:digicert
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertHighAssuranceEVRootCA.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  96b6f2d9f8e1ad3fa1868b3b9053160ef8b282c8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  7431e5f4c3c1ce4690774f0b61e05440883ba9a01ed00ba6abd7806ed3b118cf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    969 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertSHA2HighAssuranceServerCA.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  a2f7fc7707f0ff19f19c85070e1ab1e29793793d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  19400be5b7a31fb733917700789d2f0a2471c0c9d506c0e504c06c16d7cb17c0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1205 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertTLSHybridECCSHA3842020CA1-1.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  1343b2ded7573c390e5f1405e1044ff5774b5afd \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  f7a9a1b2fd964a3f2670bd668d561fb7c55d3aa9ab8391e7e169702db8a3dbcf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1051 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    DigiCertTLSRSASHA2562020CA1-1.crt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  68d5f2b0e1dd6cf8a96d0b4d23a9de5aba203265 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  52274c57ce4dee3b49db7a7ff708c040f771898b3be88725a86fb4430182fe14 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1218
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants    +additional_pki_bundle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pki_dir         ${prefix}/share/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pki_bundle      ${name}.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc url_to_pem {url pem} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global worksrcpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "curl -L ${url} 2>&1 | uu-tac | sed '/^-----BEGIN CERTIFICATE-----$/q' | uu-tac | sed '/^-----END CERTIFICATE-----$/q' > ${pem}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:coreutils-uutils \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:file \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:bin/openssl:openssl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+extract.only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+extract.mkdir       yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://www.apple.com/certificateauthority/public/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach {url pem} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        https://valid-aaa-rsa.apple.com/ apsrsa12g1.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        https://valid-aaa-ecc.apple.com/ apsecc12g1.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        https://valid-gr2-rsa.apple.com/ apevsrsa1g1.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        https://valid-har-rsa.apple.com/ apevsrsa2g1.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        https://valid-gr3-ecc.apple.com/ apevsecc1g1.pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        url_to_pem ${url} ${pem}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f [glob ${distpath}/*.{cer,crt,der,pem}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { [file isfile ${f}] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            regsub {\.(cer|crt|der|pem)$} [file tail ${f}] .pem pem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set file_type [exec /bin/sh -c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "file ${f} | sed -E 's|^.+: ||' 2>/dev/null || true"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[regexp {^(PEM certificate|ASCII text)$} ${file_type}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                file copy ${f} ${worksrcpath}/${pem}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                system -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "openssl x509 -inform der -outform pem -text -in ${f} -out ${pem}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${pki_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # cat all pem files to a single file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set outfile [open ${destroot}${pki_dir}/${pki_bundle} w]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f [glob ${worksrcpath}/*.pem] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set file_type [exec /bin/sh -c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           "file ${f} | sed -E 's|^.+: ||' 2>/dev/null || true"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[regexp {^(PEM certificate|ASCII text)$} ${file_type}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set sourcefile [open ${f} r]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            chan copy ${sourcefile} ${outfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            close ${sourcefile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_warn "Not installing ${f} because it is not a PEM file."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    close ${outfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>