diff options
author | Remi Collet <remi@remirepo.net> | 2025-07-18 14:41:27 +0200 |
---|---|---|
committer | Remi Collet <remi@php.net> | 2025-07-18 14:50:46 +0200 |
commit | 6f92494506e97d8e347eb1064977d79251f10a79 (patch) | |
tree | f003db71cd28495ed01011c1feedf36da977d4f5 | |
parent | 7c3b8d70e6aae14ed8031d5790f912387b7bce89 (diff) |
RPMTAG_PKGID and RPMTAG_HDRID removed in RPM 6
-rw-r--r-- | rpminfo.c | 14 | ||||
-rw-r--r-- | tests/008-rpmdbsearch.phpt | 6 | ||||
-rw-r--r-- | tests/016-rpmdbsearch2.phpt | 46 |
3 files changed, 60 insertions, 6 deletions
@@ -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 |