package/ca-certificates: create the bundle as target-finalize hook

Other packages, or rootfs overlays, may install certificates, so only
create the certificate bundle as a target-finalize hook.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Yann E. MORIN 2023-08-20 18:50:24 +02:00 committed by Thomas Petazzoni
parent 4fcbeb391a
commit 2bc8e72baf

View File

@ -20,7 +20,9 @@ define CA_CERTIFICATES_INSTALL_TARGET_CMDS
$(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/ssl/certs
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install DESTDIR=$(TARGET_DIR)
rm -f $(TARGET_DIR)/usr/sbin/update-ca-certificates
endef
define CA_CERTIFICATES_GEN_BUNDLE
# Remove any existing certificates under /etc/ssl/certs
rm -f $(TARGET_DIR)/etc/ssl/certs/*
@ -30,14 +32,15 @@ define CA_CERTIFICATES_INSTALL_TARGET_CMDS
for i in `find usr/share/ca-certificates -name "*.crt" | LC_COLLATE=C sort` ; do \
ln -sf ../../../$$i etc/ssl/certs/`basename $${i} .crt`.pem ;\
cat $$i ;\
done >$(@D)/ca-certificates.crt
done >$(BUILD_DIR)/ca-certificates.crt
# Create symlinks to the certificates by their hash values
$(HOST_DIR)/bin/c_rehash $(TARGET_DIR)/etc/ssl/certs
# Install the certificates bundle
$(INSTALL) -D -m 644 $(@D)/ca-certificates.crt \
$(INSTALL) -D -m 644 $(BUILD_DIR)/ca-certificates.crt \
$(TARGET_DIR)/etc/ssl/certs/ca-certificates.crt
endef
CA_CERTIFICATES_TARGET_FINALIZE_HOOKS += CA_CERTIFICATES_GEN_BUNDLE
$(eval $(generic-package))