summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2025-07-18 15:01:31 +0200
committerRemi Collet <remi@php.net>2025-07-18 15:01:31 +0200
commit3e90786397c473edd06a8d39a5489a360813c385 (patch)
tree0c65205476474cf172ff26a0310a2d3eedd60eb5
parent10cc3a8458060f8148eaa69d95304832da1f7922 (diff)
add upstream patch for RPM 5.99.91
-rw-r--r--0001-RPMTAG_PKGID-and-RPMTAG_HDRID-removed-in-RPM-6.patch120
-rw-r--r--0001-relax-test-for-RPM-5.patch23
-rw-r--r--php-pecl-rpminfo.spec9
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