From 90a07c90e6e4acef9e70ff194c0c393de2b02d95 Mon Sep 17 00:00:00 2001 From: Christian Tosta <7252968+christiantosta@users.noreply.github.com> Date: Mon, 4 Aug 2025 11:39:52 -0300 Subject: [PATCH] Split -extras subpackage --- .gitignore | 1 + CPackLists.txt | 17 ++++++++++++----- changelog.txt | 2 ++ packaging/pkg.spec.in | 35 ++++++++++++++++++++++++++++------- 4 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 changelog.txt diff --git a/.gitignore b/.gitignore index b977579..be23175 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ build/ CMakeCache.txt dist/ +temp/ diff --git a/CPackLists.txt b/CPackLists.txt index 9d52f74..1fbfe51 100644 --- a/CPackLists.txt +++ b/CPackLists.txt @@ -25,6 +25,7 @@ set(SourceIgnoreFiles "cmake-build*" "cmake_install.cmake" "dist/" + "temp/" ) # Escape any '.' and '/' characters @@ -62,13 +63,19 @@ configure_file( if(BUILD_RPMS) execute_process( - COMMAND bash -c - "LANG=C DATE=$(date +'%a %b %d %Y'); \ - echo \"* $DATE %{packager} - ${PROJECT_VERSION}-1%{?dist}\"; \ - echo \"- This is an automatically built package (See our Git URL for more info).\"; \ - " + COMMAND cat "${CMAKE_CURRENT_SOURCE_DIR}/changelog.txt" OUTPUT_VARIABLE CPACK_RPM_CHANGELOG ) + +execute_process( + COMMAND bash -c + "head -1 \"${CMAKE_CURRENT_SOURCE_DIR}/changelog.txt\" \ + | grep -iPo '.*${CPACK_PACKAGE_VERSION}-\\K[\\d]' \ + | tr -d '\\n' \ + " + OUTPUT_VARIABLE CPACK_RPM_PACKAGE_RELEASE +) + CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/packaging/pkg.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.spec" @ONLY diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..9883f40 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,2 @@ +* Fri Jul 04 2025 Christian Tosta <7252968+christiantosta@users.noreply.github.com> 2025.07.04-1 +- This is an automatically built package (See our Git URL for more info). diff --git a/packaging/pkg.spec.in b/packaging/pkg.spec.in index dd0bf97..3d5b5eb 100644 --- a/packaging/pkg.spec.in +++ b/packaging/pkg.spec.in @@ -6,10 +6,10 @@ Name: ca-certificates-brazil Version: @CPACK_PACKAGE_VERSION@ -Release: %{autorelease} +Release: @CPACK_RPM_PACKAGE_RELEASE@%{?dist} Summary: The ICP-Brasil root certificate bundle -License: Public Domain +License: MIT AND Public Domain URL: https://www.gov.br/iti/pt-br/assuntos/certificado-digital Source0: %{name}-%{version}.tar.gz @@ -20,6 +20,9 @@ BuildRequires: %{_bindir}/mktemp BuildRequires: %{_bindir}/unzip BuildRequires: gcc BuildRequires: gcc-c++ +Provides: ca-certificates(ICP-Brasil) = %{version}-%{release} +Provides: config(ICP-Brasil) = %{version}-%{release} +Requires: %{name}-extras %description The Brazilian Public Key Infrastructure - ICP-Brasil is a hierarchical chain @@ -36,24 +39,42 @@ chain, supervise and audit the processes. %{cmake} %build +BUILD_SHARED_LIBS= \ +CMAKE_CXX_FLAGS_RELEASE= \ +CMAKE_C_FLAGS_RELEASE= \ +CMAKE_Fortran_FLAGS_RELEASE= \ +CMAKE_INSTALL_DO_STRIP= \ +CMAKE_INSTALL_FULL_SBINDIR= \ +CMAKE_INSTALL_SBINDIR= \ +INCLUDE_INSTALL_DIR= \ +LIB_INSTALL_DIR= \ +SHARE_INSTALL_PREFIX= \ +SYSCONF_INSTALL_DIR= \ %{cmake_build} %install %{__rm} -rf %{buildroot} %{cmake_install} - %files %doc %{_datadir}/doc/%{name}/*.pdf %doc %{_datadir}/doc/%{name}/README.md %license %{_datadir}/doc/%{name}/LICENSE -%{_datadir}/pki/ca-trust-source/anchors/isrg-root-x2.crt -%{_datadir}/pki/ca-trust-source/anchors/lets-encrypt-ca-bundle.crt %{_datadir}/pki/ca-trust-source/anchors/icp-brasil-ca-bundle.crt - - %post -p %{_bindir}/update-ca-trust %postun -p %{_bindir}/update-ca-trust +%package extras +Summary: Extra Root and Intermediate certificates used by ICP-Brasil +%description extras +%{summary} + +%files extras +%license %{_datadir}/doc/%{name}/LICENSE +%{_datadir}/pki/ca-trust-source/anchors/*.crt +%exclude %{_datadir}/pki/ca-trust-source/anchors/icp-brasil-ca-bundle.crt +%post extras -p %{_bindir}/update-ca-trust +%postun extras -p %{_bindir}/update-ca-trust + %changelog @CPACK_RPM_CHANGELOG@