diff --git a/.gitignore b/.gitignore index 3f2f450..a2a6059 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,23 @@ /pkgconf-1.3.9.tar.xz /pkgconf-1.3.10.tar.xz /pkgconf-1.3.12.tar.xz +/pkgconf-1.3.90.tar.xz +/pkgconf-1.4.0.tar.xz +/pkgconf-1.4.1.tar.xz +/pkgconf-1.4.2.tar.xz +/pkgconf-1.5.1.tar.xz +/pkgconf-1.5.3.tar.xz +/pkgconf-1.5.4.tar.xz +/pkgconf-1.6.0.tar.xz +/pkgconf-1.6.1.tar.xz +/pkgconf-1.6.2.tar.xz +/pkgconf-1.6.3.tar.xz +/pkgconf-1.7.0.tar.xz +/pkgconf-1.7.3.tar.xz +/pkgconf-1.7.4.tar.xz +/pkgconf-1.8.0.tar.xz +/pkgconf-1.9.4.tar.xz +/pkgconf-1.9.5.tar.xz +/pkgconf-2.1.0.tar.xz +/pkgconf-2.1.1.tar.xz +/pkgconf-2.3.0.tar.xz diff --git a/pkg-config.in b/pkg-config.in new file mode 100644 index 0000000..0d12767 --- /dev/null +++ b/pkg-config.in @@ -0,0 +1,8 @@ +#!/bin/sh + +# Multilib safe wrapper for pkg-config to call correct platform-specific version of pkg-config + +## Vendored definition of %_target_platform from redhat-rpm-config to avoid depending on it +TARGET_PLATFORM=$(rpm --eval '%{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu}') + +exec "@PKGCONF_BINDIR@/${TARGET_PLATFORM}-pkg-config" "$@" diff --git a/pkgconf.spec b/pkgconf.spec index aa533be..d837cf3 100644 --- a/pkgconf.spec +++ b/pkgconf.spec @@ -1,9 +1,5 @@ -# pkgconf acts as pkgconfig for F26+ -%if (0%{?fedora} && 0%{?fedora} < 26) || (0%{?rhel} && 0%{?rhel} <= 7) -%bcond_with pkgconfig_compat -%else -%bcond_without pkgconfig_compat -%endif +# pkgconf acts as pkgconfig +%bcond pkgconfig_compat 1 %if %{with pkgconfig_compat} %global pkgconfig_ver 0.29.1 @@ -12,20 +8,36 @@ %global pkgconfig_evr 1:%{pkgconfig_verrel} %endif +# Tests are disabled on RHEL 9 because of the extensive dependencies +%bcond tests %[%{undefined rhel} || 0%{?rhel} < 9] + # Search path for pc files for pkgconf +%if 0%{?flatpak_runtime} +%global pkgconf_libdirs /app/%{_lib}/pkgconfig:/app/share/pkgconfig:/usr/%{_lib}/pkgconfig:/usr/share/pkgconfig +%else %global pkgconf_libdirs %{_libdir}/pkgconfig:%{_datadir}/pkgconfig +%endif + +# libpkgconf soversion major version +%global libsomajor 5 Name: pkgconf -Version: 1.3.12 -Release: 2%{?dist} +Version: 2.3.0 +Release: 3%{?dist} Summary: Package compiler and linker metadata toolkit -License: ISC +# cli/getopt_long.c, libpkgconf/bsdstubs.c, libpkgconf/pkg.c and tests/* are ISC +# cli/getopt_long.c is BSD-4-Clause +# cli/getopt_long.h is BSD-2-Clause +# bunch of files are under pkgconf +# libpkgconf/win-dirent.h is MIT +License: ISC AND BSD-4-Clause AND BSD-2-Clause AND pkgconf AND MIT URL: http://pkgconf.org/ Source0: https://distfiles.dereferenced.org/%{name}/%{name}-%{version}.tar.xz -# Simple wrapper script to offer platform versions of pkgconfig +# Simple wrapper scripts to offer platform versions of pkgconfig Source1: platform-pkg-config.in +Source2: pkg-config.in BuildRequires: gcc BuildRequires: make @@ -35,9 +47,11 @@ BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool +%if %{with tests} # For unit tests -BuildRequires: %{_bindir}/kyua +BuildRequires: kyua BuildRequires: atf-tests +%endif # pkgconf uses libpkgconf internally Requires: lib%{name}%{?_isa} = %{version}-%{release} @@ -68,7 +82,7 @@ to use functionality provided by %{name}. %if %{with pkgconfig_compat} %package m4 Summary: m4 macros for pkgconf -License: GPLv2+ with exceptions +License: GPL-2.0-or-later WITH Autoconf-exception-generic BuildArch: noarch # Ensure that it Conflicts and Obsoletes pkgconfig since it contains content formerly from it Conflicts: pkgconfig < %{pkgconfig_evr} @@ -100,6 +114,14 @@ the system provider of pkg-config. %endif +%package -n bomtool +Summary: Simple SBOM generator using pc(5) files +Requires: lib%{name}%{?_isa} = %{version}-%{release} + +%description -n bomtool +bomtool is a program which helps generate a Software Bill of Materials +manifest using data from installed .pc files. + %prep %autosetup -p1 @@ -115,7 +137,9 @@ autoreconf -fiv %check -make check +%if %{with tests} +make check || : +%endif %install @@ -123,19 +147,33 @@ make check find %{buildroot} -name '*.la' -print -delete +mkdir -p %{buildroot}%{_sysconfdir}/pkgconfig/personality.d +mkdir -p %{buildroot}%{_datadir}/pkgconfig/personality.d + +# pkgconf rpm macros +mkdir -p %{buildroot}%{_rpmmacrodir}/ + +cat > %{buildroot}%{_rpmmacrodir}/macros.pkgconf < %{buildroot}%{_mandir}/man1/pkg-config.1 mkdir -p %{buildroot}%{_libdir}/pkgconfig mkdir -p %{buildroot}%{_datadir}/pkgconfig @@ -147,19 +185,23 @@ mkdir -p %{buildroot}%{_datadir}/pkgconfig rm -rf %{buildroot}%{_datadir}/aclocal %endif -%post -n lib%{name} -p /sbin/ldconfig - -%postun -n lib%{name} -p /sbin/ldconfig +%ldconfig_scriptlets -n lib%{name} %files %license COPYING %doc README.md AUTHORS NEWS %{_bindir}/%{name} %{_mandir}/man1/%{name}.1* +%{_mandir}/man5/pc.5* +%{_mandir}/man5/%{name}-personality.5* +%{_rpmmacrodir}/macros.pkgconf +%dir %{_sysconfdir}/pkgconfig +%dir %{_sysconfdir}/pkgconfig/personality.d +%dir %{_datadir}/pkgconfig/personality.d %files -n lib%{name} %license COPYING -%{_libdir}/lib%{name}*.so.* +%{_libdir}/lib%{name}*.so.%{libsomajor}{,.*} %files -n lib%{name}-devel %{_libdir}/lib%{name}*.so @@ -169,6 +211,7 @@ rm -rf %{buildroot}%{_datadir}/aclocal %if %{with pkgconfig_compat} %files m4 %{_datadir}/aclocal/pkg.m4 +%{_mandir}/man7/pkg.m4.7* %files pkg-config %{_bindir}/pkg-config @@ -178,10 +221,174 @@ rm -rf %{buildroot}%{_datadir}/aclocal %dir %{_datadir}/pkgconfig %endif +%files -n bomtool +%{_bindir}/bomtool + + %changelog -* Fri Jan 05 2018 Neal Gompa - 1.3.12-2 +* Fri Jul 25 2025 Fedora Release Engineering - 2.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jan 20 2025 Fedora Release Engineering - 2.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Aug 07 2024 Neal Gompa - 2.3.0-1 +- Update to 2.3.0 + + https://github.com/pkgconf/pkgconf/blob/pkgconf-2.3.0/NEWS + +* Fri Jul 19 2024 Fedora Release Engineering - 2.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue May 14 2024 Jens Petersen - 2.1.1-1 +- https://github.com/pkgconf/pkgconf/blob/pkgconf-2.1.1/NEWS + +* Mon Feb 12 2024 Jens Petersen - 2.1.0-1 +- update to 2.1.0 +- https://github.com/pkgconf/pkgconf/blob/pkgconf-2.1.0/NEWS + +* Thu Jan 25 2024 Fedora Release Engineering - 1.9.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.9.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 1.9.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue May 16 2023 Sérgio Basto - 1.9.5-1 +- Update pkgconf to 1.9.5 (#2192963) + +* Mon May 15 2023 Sérgio Basto - 1.9.4-2 +- Rebuild for ATF soname bump + +* Wed Feb 22 2023 Neal Gompa - 1.9.4-1 +- Rebase to 1.9.4 + +* Wed Feb 22 2023 Neal Gompa - 1.8.0-6 +- Drop dependency on system-rpm-config (#2172406) + +* Fri Jan 20 2023 Fedora Release Engineering - 1.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Nov 01 2022 Amit Shah - 1.8.0-4 +- Depend on system-rpm-config + +* Fri Jul 22 2022 Fedora Release Engineering - 1.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jan 21 2022 Fedora Release Engineering - 1.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sun Jul 25 2021 Neal Gompa - 1.8.0-1 +- Update to 1.8.0 + +* Fri Jul 23 2021 Fedora Release Engineering - 1.7.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jun 23 2021 Sandro Mani - 1.7.4-2 +- Don't prepend sysroot_dir if pkg-config file lies outside of sysroot_dir (#1974883) + +* Wed Apr 28 2021 Neal Gompa - 1.7.4-1 +- Update to 1.7.4 +- Don't add /usr/local to syspaths (#1953348) + +* Mon Feb 22 2021 Tomas Popela - 1.7.3-7 +- Conditionalize the unit tests, disable them on RHEL 9 + +* Wed Jan 27 2021 Fedora Release Engineering - 1.7.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Oct 19 2020 Neal Gompa - 1.7.3-5 +- Use internal target platform definition for pkg-config wrapper + +* Thu Oct 15 2020 Neal Gompa - 1.7.3-4 +- Fix pkg-config wrapper for armv7hl + +* Thu Oct 15 2020 Neal Gompa - 1.7.3-3 +- Make /usr/bin/pkg-config multilib safe + +* Mon Aug 10 2020 Neal Gompa - 1.7.3-2 +- Add /usr/local paths to pkg-config(1) search path for non RPM builds + +* Mon Aug 03 2020 Neal Gompa - 1.7.3-1 +- Update to 1.7.3 + +* Sat Aug 01 2020 Fedora Release Engineering - 1.7.0-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon May 25 2020 Igor Raits - 1.7.0-1 +- Update to 1.7.0 + +* Thu Jan 30 2020 Fedora Release Engineering - 1.6.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 1.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jul 14 13:23:30 CEST 2019 Igor Gnatenko - 1.6.3-1 +- Update to 1.6.3 + +* Fri Jul 12 09:36:57 CEST 2019 Igor Gnatenko - 1.6.2-1 +- Update to 1.6.2 + +* Mon Mar 25 2019 Igor Gnatenko - 1.6.1-1 +- Update to 1.6.1 + +* Sat Feb 09 2019 Neal Gompa - 1.6.0-1 +- Update to 1.6.0 +- Add personality.d directories for cross-targets +- Add pkgconf rpm macros for pkgconf directories + +* Sat Feb 02 2019 Fedora Release Engineering - 1.5.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Nov 27 2018 Igor Gnatenko - 1.5.4-1 +- Update to 1.5.4 + +* Tue Jul 31 2018 Florian Weimer - 1.5.3-2 +- Rebuild with fixed binutils + +* Sun Jul 29 2018 Igor Gnatenko - 1.5.3-1 +- Update to 1.5.3 + +* Fri Jul 13 2018 Fedora Release Engineering - 1.5.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Neal Gompa - 1.5.1-2 +- Add patch to fix system path override issue + +* Wed Jun 27 2018 Neal Gompa - 1.5.1-1 +- Upgrade to 1.5.1 + +* Sat Mar 31 2018 Neal Gompa - 1.4.2-1 +- Update to 1.4.2 +- Drop conditionals for old Fedora releases + +* Fri Feb 09 2018 Fedora Release Engineering - 1.4.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 31 2018 Igor Gnatenko - 1.4.1-2 +- Switch to %%ldconfig_scriptlets + +* Tue Jan 23 2018 Igor Gnatenko - 1.4.1-1 +- Update to 1.4.1 + +* Sun Jan 07 2018 Neal Gompa - 1.4.0-2 +- Move pc(5) manpage to main pkgconf package + +* Fri Jan 05 2018 Neal Gompa - 1.4.0-1 +- Update to 1.4.0 + +* Fri Jan 05 2018 Neal Gompa - 1.3.90-2 - Add simple wrapper to support platform-specific pkg-config paths (#1513810) +* Tue Dec 19 2017 Igor Gnatenko - 1.3.90-1 +- Update to 1.3.90 + * Sun Dec 10 2017 Igor Gnatenko - 1.3.12-1 - Update to 1.3.12 diff --git a/platform-pkg-config.in b/platform-pkg-config.in index f200eb3..e5148e7 100644 --- a/platform-pkg-config.in +++ b/platform-pkg-config.in @@ -1,12 +1,14 @@ -#!/bin/bash +#!/bin/sh # Simple wrapper to tell pkgconf to behave as a platform-specific version of pkg-config # Platform: @TARGET_PLATFORM@ -export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR:-@PKGCONF_LIBDIRS@}" +if [ -z "${RPM_BUILD_ROOT}" ]; then + export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR:-@PKGCONF_LIBDIRS_LOCAL@}" +else + export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR:-@PKGCONF_LIBDIRS@}" +fi export PKG_CONFIG_SYSTEM_LIBRARY_PATH="${PKG_CONFIG_SYSTEM_LIBRARY_PATH:-@PKGCONF_SYSLIBDIR@}" export PKG_CONFIG_SYSTEM_INCLUDE_PATH="${PKG_CONFIG_SYSTEM_INCLUDE_PATH:-@PKGCONF_SYSINCDIR@}" -pkgconf $@ - -exit $? +exec pkgconf "$@" diff --git a/sources b/sources index 333c504..ede70b3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pkgconf-1.3.12.tar.xz) = 48e571e6633e5757eb3521407e7ca70de46f738939ce1b790abaa27158ca174bdac3b624e7366452388616e4307ee29cd5c39ed30b12078439e28efa35d0955f +SHA512 (pkgconf-2.3.0.tar.xz) = 869fe0a7a2e06e9da37ff672b991dad60a9a7c9df2c65b78b2aa70dba10920650fb946d5a9c8019ea54a510835acc2eb4244092fa36d0339bd6764ff84e8542c