Compare commits
30 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ed4c38d951 | ||
|
e141d0b791 | ||
|
3cc5e5d592 | ||
|
70dc43b7d5 | ||
|
428314392a | ||
|
3a85c6a774 | ||
|
ba419684f9 | ||
|
779ab22bbe | ||
|
63960cf2d6 | ||
|
d0306af31e | ||
|
7845cc50a6 | ||
|
f5f45b4565 | ||
|
e31f7b483e | ||
|
6d2e303d2a | ||
|
13bb829bd1 | ||
|
dc012380b7 | ||
|
37d5af34ee | ||
|
625f05328c | ||
|
48b6915f60 | ||
|
a726935a0f | ||
|
d5818a6ab2 | ||
|
467f79c9de | ||
|
491368d6f2 | ||
|
570ac31018 | ||
|
3200fcf831 | ||
|
dec8f97b08 | ||
|
0c402926e7 | ||
|
423ffe722d | ||
|
a7f94f1930 | ||
|
fc55cb52b5 |
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
/PkgConfig-LibPkgConf-0.08.tar.gz
|
||||
/PkgConfig-LibPkgConf-0.09.tar.gz
|
||||
/PkgConfig-LibPkgConf-0.10.tar.gz
|
||||
/PkgConfig-LibPkgConf-0.11.tar.gz
|
||||
|
@ -0,0 +1,99 @@
|
||||
From 39b8a0e8f664dc103a552dbab1cdccdab8ce3062 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 7 Mar 2023 09:16:10 +0100
|
||||
Subject: [PATCH] Fix resolving flags for packages with a name different from
|
||||
its identifier
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Alien-Build-2.77 tests revealed a bug in constructing a query for
|
||||
pkgconf-1.9 solver: If a package file had file name different from
|
||||
a Name value inside the file, the package was able to be found, but
|
||||
the flags solver searched for the Name and found nothing.
|
||||
|
||||
Studying pre-pkgconf documentation shows that Name value is only
|
||||
a human-oriented display name and a base of the package file name
|
||||
should be used instead as a package identifier. This base name is
|
||||
stored into an id field of the package structure of pkgconf.
|
||||
|
||||
This patch fixes it by using the id field instead. It also adds a test
|
||||
to prevent from future regressions.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
LibPkgConf.xs | 2 +-
|
||||
MANIFEST | 1 +
|
||||
corpus/lib4/bar.pc | 4 ++++
|
||||
t/client.t | 14 +++++++++++++-
|
||||
4 files changed, 19 insertions(+), 2 deletions(-)
|
||||
create mode 100644 corpus/lib4/bar.pc
|
||||
|
||||
diff --git a/LibPkgConf.xs b/LibPkgConf.xs
|
||||
index 63c78fb..57e6892 100644
|
||||
--- a/LibPkgConf.xs
|
||||
+++ b/LibPkgConf.xs
|
||||
@@ -117,7 +117,7 @@ solve_flags(pkgconf_pkg_t *package, my_client_t *client, int type,
|
||||
#if LIBPKGCONF_VERSION >= 10900
|
||||
if (sizeof(query_string) <=
|
||||
snprintf(query_string, sizeof(query_string), "%s = %s",
|
||||
- package->realname, package->version))
|
||||
+ package->id, package->version))
|
||||
false;
|
||||
pkgconf_queue_push(&query, query_string);
|
||||
if (loaded_from_file)
|
||||
diff --git a/MANIFEST b/MANIFEST
|
||||
index 77378df..1eb4491 100644
|
||||
--- a/MANIFEST
|
||||
+++ b/MANIFEST
|
||||
@@ -6,6 +6,7 @@ corpus/lib1/foo1a.pc
|
||||
corpus/lib2/bar.pc
|
||||
corpus/lib2/foo.pc
|
||||
corpus/lib3/foo.pc
|
||||
+corpus/lib4/bar.pc
|
||||
INSTALL
|
||||
lib/PkgConfig/LibPkgConf.pm
|
||||
lib/PkgConfig/LibPkgConf/Client.pm
|
||||
diff --git a/corpus/lib4/bar.pc b/corpus/lib4/bar.pc
|
||||
new file mode 100644
|
||||
index 0000000..47e52dd
|
||||
--- /dev/null
|
||||
+++ b/corpus/lib4/bar.pc
|
||||
@@ -0,0 +1,4 @@
|
||||
+Name: foo
|
||||
+Description: A pkg-config file whose identifier does not match its name
|
||||
+Version: 1.2.3
|
||||
+Cflags: -fPIC
|
||||
diff --git a/t/client.t b/t/client.t
|
||||
index 6c80f83..db115fe 100644
|
||||
--- a/t/client.t
|
||||
+++ b/t/client.t
|
||||
@@ -206,7 +206,7 @@ subtest 'path attributes' => sub {
|
||||
|
||||
mkpath "$root/$_", 0, 0700 for qw(
|
||||
foo bar baz ralph trans formers foo/lib bar/lib trans/lib formers/lib
|
||||
- foo/include bar/include trans/include formers/include
|
||||
+ /foo/include bar/include trans/include formers/include
|
||||
);
|
||||
|
||||
subtest 'search path' => sub {
|
||||
@@ -295,4 +295,16 @@ subtest 'global' => sub {
|
||||
|
||||
};
|
||||
|
||||
+subtest 'a package with a different name' => sub {
|
||||
+
|
||||
+ my $client = PkgConfig::LibPkgConf::Client->new( path => 'corpus/lib4' );
|
||||
+
|
||||
+ is( $client->find('foo'), undef, 'A human-readable name foo is ignored');
|
||||
+
|
||||
+ my $pkg = $client->find('bar');
|
||||
+ isnt( $pkg, undef, 'An identifier bar is found' );
|
||||
+ is( $pkg->cflags, '-fPIC ', 'Cflags are retrieved' );
|
||||
+
|
||||
+};
|
||||
+
|
||||
done_testing;
|
||||
--
|
||||
2.39.2
|
||||
|
1107
PkgConfig-LibPkgConf-0.11-adapt_to_pkgconf_1.9.4.patch
Normal file
1107
PkgConfig-LibPkgConf-0.11-adapt_to_pkgconf_1.9.4.patch
Normal file
File diff suppressed because it is too large
Load Diff
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
@ -1,2 +1,3 @@
|
||||
from Config import *
|
||||
addFilter("spelling-error .* (config|pc)");
|
||||
addFilter('spelling-error .* (config|pc)')
|
||||
addFilter('-tests\.noarch: W: no-documentation')
|
||||
addFilter('-tests\.noarch: W: devel-file-in-non-devel-package .*/corpus/')
|
||||
|
@ -1,10 +1,24 @@
|
||||
# Locate pkgconfig using Alien::pkgconf.
|
||||
# Disabled by default because it creates a build cycle (perl-Alien-pkgconf →
|
||||
# perl-Alien-Build → perl-PkgConfig-LibPkgConf).
|
||||
%bcond_with perl_PkgConfig_LibPkgConf_enables_Alien_pkgconf
|
||||
# Perform optional tests
|
||||
%bcond_without perl_PkgConfig_LibPkgConf_enables_optional_test
|
||||
|
||||
Name: perl-PkgConfig-LibPkgConf
|
||||
Version: 0.10
|
||||
Release: 2%{?dist}
|
||||
Version: 0.11
|
||||
Release: 21%{?dist}
|
||||
Summary: Interface to pkg-config files via libpkgconf
|
||||
License: GPL+ or Artistic
|
||||
License: GPL-1.0-or-later OR Artistic-1.0-Perl
|
||||
URL: https://metacpan.org/release/PkgConfig-LibPkgConf
|
||||
Source0: https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/PkgConfig-LibPkgConf-%{version}.tar.gz
|
||||
# Adapt to pkgconf-1.9.4, proposed to an upstream, bug #2172714,
|
||||
# <https://github.com/PerlAlien/PkgConfig-LibPkgConf/issues/15>
|
||||
Patch0: PkgConfig-LibPkgConf-0.11-adapt_to_pkgconf_1.9.4.patch
|
||||
# Fix retrieving flags from package files whose Name value differs from its
|
||||
# file name, proposed to an upstream, bug #2172714,
|
||||
# <https://github.com/PerlAlien/PkgConfig-LibPkgConf/issues/15>
|
||||
Patch1: PkgConfig-LibPkgConf-0.11-Fix-resolving-flags-for-packages-with-a-name-differe.patch
|
||||
BuildRequires: findutils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: make
|
||||
@ -12,9 +26,14 @@ BuildRequires: perl-devel
|
||||
BuildRequires: perl-generators
|
||||
BuildRequires: perl-interpreter
|
||||
BuildRequires: perl(:VERSION) >= 5.8.1
|
||||
%if %{with perl_PkgConfig_LibPkgConf_enables_Alien_pkgconf}
|
||||
# Use Alien::pkgconf instead of some complicated guess
|
||||
# script/cc_wrapper.pl and script/ld_wrapper.pl not used with Alien::pkgconf
|
||||
BuildRequires: perl(Alien::pkgconf) >= 0.12
|
||||
%else
|
||||
# script/cc_wrapper.pl and script/ld_wrapper.pl not used with pkgconf
|
||||
BuildRequires: pkgconf
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libpkgconf) >= 1.5.0
|
||||
BuildRequires: perl(Config)
|
||||
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.98
|
||||
@ -34,10 +53,17 @@ BuildRequires: perl(File::Basename)
|
||||
BuildRequires: perl(File::Path)
|
||||
BuildRequires: perl(File::Temp)
|
||||
BuildRequires: perl(Test::More) >= 0.98
|
||||
%if %{with perl_PkgConfig_LibPkgConf_enables_optional_test}
|
||||
# Optional tests:
|
||||
BuildRequires: perl(YAML)
|
||||
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
|
||||
%endif
|
||||
Requires: perl(Carp)
|
||||
# libpkgconf.so.4() changed an ABI without changing SONAME
|
||||
# <https://github.com/pkgconf/pkgconf/issues/347>
|
||||
Requires: libpkgconf >= 2.1.0
|
||||
|
||||
# Filter under-specified dependencies
|
||||
%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\(Test::More\\)$
|
||||
|
||||
%description
|
||||
Many libraries in compiled languages such as C or C++ provide *.pc files to
|
||||
@ -45,30 +71,150 @@ specify the flags required for compiling and linking against those libraries.
|
||||
Traditionally, the command line program pkg-config is used to query these
|
||||
files. This package provides a Perl-level API using libpkgconf to these files.
|
||||
|
||||
%package tests
|
||||
Summary: Tests for %{name}
|
||||
BuildArch: noarch
|
||||
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: coreutils
|
||||
Requires: perl-Test-Harness
|
||||
Requires: perl(Cwd)
|
||||
Requires: perl(Test::More) >= 0.98
|
||||
%if %{with perl_PkgConfig_LibPkgConf_enables_optional_test}
|
||||
Requires: perl(YAML)
|
||||
%endif
|
||||
|
||||
%description tests
|
||||
Tests from %{name}. Execute them
|
||||
with "%{_libexecdir}/%{name}/test".
|
||||
|
||||
%prep
|
||||
%setup -q -n PkgConfig-LibPkgConf-%{version}
|
||||
%autosetup -p1 -n PkgConfig-LibPkgConf-%{version}
|
||||
# Help generators to recognize Perl scripts
|
||||
for F in t/*.t; do
|
||||
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1' "$F"
|
||||
chmod +x "$F"
|
||||
done
|
||||
|
||||
%build
|
||||
unset FFI_PLATYPUS_DEBUG
|
||||
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS" NO_PACKLIST=1
|
||||
make %{?_smp_mflags}
|
||||
export PKG_CONFIG=%{_bindir}/pkgconf
|
||||
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="$RPM_OPT_FLAGS"
|
||||
%{make_build}
|
||||
|
||||
%install
|
||||
make pure_install DESTDIR=$RPM_BUILD_ROOT
|
||||
%{make_install}
|
||||
find $RPM_BUILD_ROOT -type f -name '*.bs' -size 0 -delete
|
||||
# Install tests
|
||||
mkdir -p %{buildroot}%{_libexecdir}/%{name}
|
||||
cp -a corpus t %{buildroot}%{_libexecdir}/%{name}
|
||||
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
# audit_set_log() in t/client.t writed into CWD
|
||||
DIR=$(mktemp -d)
|
||||
cp -a %{_libexecdir}/%{name}/* "$DIR"
|
||||
pushd "$DIR"
|
||||
prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
|
||||
popd
|
||||
rm -r "$DIR"
|
||||
EOF
|
||||
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
|
||||
%{_fixperms} $RPM_BUILD_ROOT/*
|
||||
|
||||
%check
|
||||
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
|
||||
make test
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc Changes README
|
||||
%{perl_vendorarch}/auto/*
|
||||
%{perl_vendorarch}/PkgConfig*
|
||||
%{_mandir}/man3/*
|
||||
%dir %{perl_vendorarch}/auto/PkgConfig
|
||||
%{perl_vendorarch}/auto/PkgConfig/LibPkgConf
|
||||
%dir %{perl_vendorarch}/PkgConfig
|
||||
%{perl_vendorarch}/PkgConfig/LibPkgConf
|
||||
%{perl_vendorarch}/PkgConfig/LibPkgConf.pm
|
||||
%{_mandir}/man3/PkgConfig::LibPkgConf.*
|
||||
%{_mandir}/man3/PkgConfig::LibPkgConf::*
|
||||
|
||||
%files tests
|
||||
%{_libexecdir}/%{name}
|
||||
|
||||
%changelog
|
||||
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Mon Jun 10 2024 Jitka Plesnikova <jplesnik@redhat.com> - 0.11-20
|
||||
- Perl 5.40 rebuild
|
||||
|
||||
* Mon May 27 2024 Petr Pisar <ppisar@redhat.com> - 0.11-19
|
||||
- Rebuild against pkgconf-2.1.1
|
||||
|
||||
* Thu Feb 29 2024 Petr Pisar <ppisar@redhat.com> - 0.11-18
|
||||
- Rebuild against pkgconf-2.1.0
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 0.11-14
|
||||
- Perl 5.38 rebuild
|
||||
|
||||
* Tue Mar 07 2023 Petr Pisar <ppisar@redhat.com> - 0.11-13
|
||||
- Fix retrieving flags from package files whose Name value differs from its
|
||||
file name (bug #2172714)
|
||||
|
||||
* Fri Mar 03 2023 Petr Pisar <ppisar@redhat.com> - 0.11-12
|
||||
- Adapt to pkgconf-1.9.4 (bug #2172714)
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Tue May 31 2022 Jitka Plesnikova <jplesnik@redhat.com> - 0.11-9
|
||||
- Perl 5.36 rebuild
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 0.11-6
|
||||
- Perl 5.34 rebuild
|
||||
|
||||
* Tue Mar 23 2021 Petr Pisar <ppisar@redhat.com> - 0.11-5
|
||||
- Break build cycle (perl-Alien-pkgconf → perl-Alien-Build
|
||||
→ perl-PkgConfig-LibPkgConf)
|
||||
- Package tests
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 0.11-2
|
||||
- Perl 5.32 rebuild
|
||||
|
||||
* Mon May 18 2020 Petr Pisar <ppisar@redhat.com> - 0.11-1
|
||||
- 0.11 bump
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Fri May 31 2019 Jitka Plesnikova <jplesnik@redhat.com> - 0.10-3
|
||||
- Perl 5.30 rebuild
|
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
|
5
plans/sanity.fmf
Normal file
5
plans/sanity.fmf
Normal file
@ -0,0 +1,5 @@
|
||||
summary: Sanity tests
|
||||
discover:
|
||||
how: fmf
|
||||
execute:
|
||||
how: tmt
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (PkgConfig-LibPkgConf-0.10.tar.gz) = 29f27e8e046567d43ee3c2b61cb2543bca8399655edc7f9e63268047bc65fb05f8f57ff69d09e623fea8ab9f0a03366c5a967ada73d0d798b7d859ebe6932a9f
|
||||
SHA512 (PkgConfig-LibPkgConf-0.11.tar.gz) = d9205b364c03dd9ab15128f65e4fbf79c81e3dbd8112d2d94c886e521aa8691907d490698c75c43cb2167ee0d96cf76c36c9930f032f65c5785257b658ca55d4
|
||||
|
4
tests/upstream-tests.fmf
Normal file
4
tests/upstream-tests.fmf
Normal file
@ -0,0 +1,4 @@
|
||||
summary: Upstream tests
|
||||
component: perl-PkgConfig-LibPkgConf
|
||||
require: perl-PkgConfig-LibPkgConf-tests
|
||||
test: /usr/libexec/perl-PkgConfig-LibPkgConf/test
|
Loading…
Reference in New Issue
Block a user