diff options
author | Remi Collet <remi@remirepo.net> | 2025-07-18 15:01:31 +0200 |
---|---|---|
committer | Remi Collet <remi@php.net> | 2025-07-18 15:01:31 +0200 |
commit | 3e90786397c473edd06a8d39a5489a360813c385 (patch) | |
tree | 0c65205476474cf172ff26a0310a2d3eedd60eb5 | |
parent | 10cc3a8458060f8148eaa69d95304832da1f7922 (diff) |
add upstream patch for RPM 5.99.91
-rw-r--r-- | 0001-RPMTAG_PKGID-and-RPMTAG_HDRID-removed-in-RPM-6.patch | 120 | ||||
-rw-r--r-- | 0001-relax-test-for-RPM-5.patch | 23 | ||||
-rw-r--r-- | php-pecl-rpminfo.spec | 9 |
3 files changed, 150 insertions, 2 deletions
diff --git a/0001-RPMTAG_PKGID-and-RPMTAG_HDRID-removed-in-RPM-6.patch b/0001-RPMTAG_PKGID-and-RPMTAG_HDRID-removed-in-RPM-6.patch new file mode 100644 index 0000000..d2872d0 --- /dev/null +++ b/0001-RPMTAG_PKGID-and-RPMTAG_HDRID-removed-in-RPM-6.patch @@ -0,0 +1,120 @@ +From 6f92494506e97d8e347eb1064977d79251f10a79 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Fri, 18 Jul 2025 14:41:27 +0200 +Subject: [PATCH 1/2] RPMTAG_PKGID and RPMTAG_HDRID removed in RPM 6 + +--- + rpminfo.c | 14 +++++++---- + tests/008-rpmdbsearch.phpt | 6 ++++- + tests/016-rpmdbsearch2.phpt | 46 +++++++++++++++++++++++++++++++++++++ + 3 files changed, 60 insertions(+), 6 deletions(-) + create mode 100644 tests/016-rpmdbsearch2.phpt + +diff --git a/rpminfo.c b/rpminfo.c +index ae8b8e7..0d17abf 100644 +--- a/rpminfo.c ++++ b/rpminfo.c +@@ -399,22 +399,26 @@ PHP_FUNCTION(rpmdbsearch) + RETURN_THROWS(); + } + +- if (crit == RPMTAG_PKGID) { ++ if (crit == RPMTAG_INSTALLTID) { ++ tid = atol(name); ++ name = (char *)&tid; ++ len = sizeof(tid); ++#ifdef RPMTAG_PKGID ++ } else if (crit == RPMTAG_PKGID) { + if (len != 32) { + zend_argument_value_error(1, "Bad length for PKGID, 32 expected"); + RETURN_THROWS(); + } + len = hex2bin(name, MD5, len); + name = MD5; ++#endif ++#ifdef RPMTAG_HDRID + } else if (crit == RPMTAG_HDRID) { + if (len != 40) { + zend_argument_value_error(1, "Bad length for HDRID, 40 expected"); + RETURN_THROWS(); + } +- } else if (crit == RPMTAG_INSTALLTID) { +- tid = atol(name); +- name = (char *)&tid; +- len = sizeof(tid); ++#endif + } else if (crit == RPMTAG_INSTFILENAMES) { + /* use input parameters */ + } else { +diff --git a/tests/008-rpmdbsearch.phpt b/tests/008-rpmdbsearch.phpt +index f348b92..bd927ec 100644 +--- a/tests/008-rpmdbsearch.phpt ++++ b/tests/008-rpmdbsearch.phpt +@@ -1,7 +1,11 @@ + --TEST-- + Check for rpmdbinfo function + --SKIPIF-- +-<?php if (!extension_loaded("rpminfo")) print "skip"; ?> ++<?php ++if (!extension_loaded("rpminfo")) print "skip"; ++if (version_compare(RPMVERSION, '5', '>=')) die("skip for RPM 4.x"); ++?> ++ + --FILE-- + <?php + echo "Name / glob\n"; +diff --git a/tests/016-rpmdbsearch2.phpt b/tests/016-rpmdbsearch2.phpt +new file mode 100644 +index 0000000..350807f +--- /dev/null ++++ b/tests/016-rpmdbsearch2.phpt +@@ -0,0 +1,46 @@ ++--TEST-- ++Check for rpmdbinfo function ++--SKIPIF-- ++<?php ++if (!extension_loaded("rpminfo")) print "skip"; ++if (version_compare(RPMVERSION, '5', '<')) die("skip for RPM 6.x"); ++?> ++--FILE-- ++<?php ++echo "Name / glob\n"; ++$a = rpmdbsearch('php*', RPMTAG_NAME , RPMMIRE_GLOB); ++var_dump(count($a) > 1); ++ ++echo "Name / regex\n"; ++$a = rpmdbsearch('^php', RPMTAG_NAME, RPMMIRE_REGEX); ++var_dump(count($a) > 1); ++ ++echo "Installed file\n"; ++$a = rpmdbsearch(PHP_BINARY, RPMTAG_INSTFILENAMES); ++var_dump(count($a) == 1); ++ ++$phprpm = $a[0]['Name']; ++$p = rpmdbinfo($phprpm, 1); ++ ++echo "Installtid\n"; ++$a = rpmdbsearch($p[0]['Installtid'], RPMTAG_INSTALLTID); ++var_dump(count($a) >= 1); ++ ++echo "Version\n"; ++$a = rpmdbsearch($p[0]['Version'], RPMTAG_VERSION); ++var_dump(count($a) > 1); ++ ++?> ++Done ++--EXPECTF-- ++Name / glob ++bool(true) ++Name / regex ++bool(true) ++Installed file ++bool(true) ++Installtid ++bool(true) ++Version ++bool(true) ++Done +-- +2.50.1 + diff --git a/0001-relax-test-for-RPM-5.patch b/0001-relax-test-for-RPM-5.patch new file mode 100644 index 0000000..7454063 --- /dev/null +++ b/0001-relax-test-for-RPM-5.patch @@ -0,0 +1,23 @@ +From 54b64867fb46dca7a5e5d438afb7fe27f95763f7 Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Thu, 22 May 2025 10:30:19 +0200 +Subject: [PATCH] relax test for RPM 5 + +--- + tests/004-constants.phpt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/004-constants.phpt b/tests/004-constants.phpt +index 397c97f..18104cc 100644 +--- a/tests/004-constants.phpt ++++ b/tests/004-constants.phpt +@@ -8,5 +8,5 @@ var_dump(RPMVERSION); + ?> + Done + --EXPECTF-- +-string(%d) "4.%s" ++string(%d) "%s" + Done +-- +2.49.0 + diff --git a/php-pecl-rpminfo.spec b/php-pecl-rpminfo.spec index 1808b08..658d61e 100644 --- a/php-pecl-rpminfo.spec +++ b/php-pecl-rpminfo.spec @@ -22,12 +22,13 @@ Summary: RPM information Name: %{?scl_prefix}php-pecl-%{pecl_name} Version: 1.2.0 -Release: 3%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} +Release: 4%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} License: PHP-3.01 URL: https://pecl.php.net/package/%{pecl_name} Source0: https://pecl.php.net/get/%{sources}.tgz Patch0: 0001-relax-test-for-RPM-5.patch +Patch1: 0001-RPMTAG_PKGID-and-RPMTAG_HDRID-removed-in-RPM-6.patch BuildRequires: make BuildRequires: %{?dtsprefix}gcc @@ -64,6 +65,7 @@ sed -e 's/role="test"/role="src"/' \ cd %{sources} %patch -P0 -p1 +%patch -P1 -p1 # Sanity check, really often broken extver=$(sed -n '/#define PHP_RPMINFO_VERSION/{s/.* "//;s/".*$//;p}' php_rpminfo.h) @@ -188,8 +190,11 @@ TEST_PHP_ARGS="-n -d extension=%{buildroot}/%{php_ztsextdir}/%{pecl_name}.so" \ %changelog +* Fri Jul 18 2025 Remi Collet <remi@remirepo.net> - 1.2.0-4 +- add upstream patch for RPM 5.99.91 + * Thu May 22 2025 Remi Collet <remi@remirepo.net> - 1.2.0-3 -- add upstream patch to relax test for RPM 5 +- add upstream patch to relax test for RPM 5.99.90 * Thu Dec 19 2024 Remi Collet <remi@remirepo.net> - 1.2.0-1 - update to 1.2.0 |