Compare commits

...

30 Commits
f30 ... rawhide

Author SHA1 Message Date
Fedora Release Engineering
ed4c38d951 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 03:45:39 +00:00
Jitka Plesnikova
e141d0b791 Perl 5.40 rebuild 2024-06-10 20:44:21 +02:00
Petr Písař
3cc5e5d592 Rebuild against pkgconf-2.1.1 2024-05-27 10:32:43 +02:00
Petr Písař
70dc43b7d5 Upgrade rpmlintrc to a new format 2024-02-29 14:10:07 +01:00
Petr Písař
428314392a Explict file list 2024-02-29 14:09:18 +01:00
Petr Písař
3a85c6a774 Rebuild against pkgconf-2.1.0 2024-02-29 14:06:24 +01:00
Fedora Release Engineering
ba419684f9 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-25 19:41:17 +00:00
Fedora Release Engineering
779ab22bbe Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 18:04:13 +00:00
Fedora Release Engineering
63960cf2d6 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 01:05:24 +00:00
Jitka Plesnikova
d0306af31e Perl 5.38 rebuild 2023-07-11 15:59:57 +02:00
Petr Písař
7845cc50a6 Fix retrieving flags from package files whose Name value differs from its file name 2023-03-07 09:37:02 +01:00
Petr Písař
f5f45b4565 A license tag converted to an SPDX format 2023-03-03 13:02:45 +01:00
Petr Písař
e31f7b483e Adapt to pkgconf-1.9.4 2023-03-03 13:00:01 +01:00
Fedora Release Engineering
6d2e303d2a Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 05:26:21 +00:00
Jitka Plesnikova
13bb829bd1 Remove perl(MODULE_COMPAT), it will be replaced by generators 2023-01-13 17:33:13 +01:00
Fedora Release Engineering
dc012380b7 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 10:22:45 +00:00
Jitka Plesnikova
37d5af34ee Perl 5.36 rebuild 2022-05-31 08:12:41 +02:00
Fedora Release Engineering
625f05328c - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 04:38:05 +00:00
Fedora Release Engineering
48b6915f60 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 23:12:57 +00:00
Jitka Plesnikova
a726935a0f Perl 5.34 rebuild 2021-05-21 23:14:39 +02:00
Petr Písař
d5818a6ab2 Add FMF tests and gating 2021-03-23 11:36:20 +01:00
Petr Písař
467f79c9de Package tests 2021-03-23 11:35:20 +01:00
Petr Písař
491368d6f2 Break build cycle 2021-03-23 11:14:01 +01:00
Fedora Release Engineering
570ac31018 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 04:04:16 +00:00
Fedora Release Engineering
3200fcf831 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 18:16:53 +00:00
Jitka Plesnikova
dec8f97b08 Perl 5.32 rebuild 2020-06-23 10:43:24 +02:00
Petr Písař
0c402926e7 0.11 bump 2020-05-18 10:25:16 +02:00
Fedora Release Engineering
423ffe722d - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 03:45:59 +00:00
Fedora Release Engineering
a7f94f1930 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 06:00:40 +00:00
Jitka Plesnikova
fc55cb52b5 Perl 5.30 rebuild 2019-05-31 19:43:31 +02:00
10 changed files with 1385 additions and 14 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

1
.gitignore vendored
View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

7
gating.yaml Normal file
View 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}

View File

@ -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/')

View File

@ -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
View File

@ -0,0 +1,5 @@
summary: Sanity tests
discover:
how: fmf
execute:
how: tmt

View File

@ -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
View File

@ -0,0 +1,4 @@
summary: Upstream tests
component: perl-PkgConfig-LibPkgConf
require: perl-PkgConfig-LibPkgConf-tests
test: /usr/libexec/perl-PkgConfig-LibPkgConf/test