aboutsummaryrefslogtreecommitdiffstats
path: root/URPM.xs
Commit message (Collapse)AuthorAgeFilesLines
* Fix parsing of properties containing [topic/parse_propertyPascal Terjan2022-11-011-74/+149
| | | | | | | | | | | | | | | For example, the name extracted from a requirement of "python3.10dist(fonttools[unicode])[>= 4.10]" was sometimes "python3.10dist(fonttools" instead of the expected "python3.10dist(fonttools[unicode])". Code parsing such strings existed in many places, it now exists only in 2 places, a perl version in Resolve.pm and a C version in URPM.xs. Both codes used to handle both "foo >= 0" and "foo[>= 0]" but at least the perl code seems to only call it on provides/conflicts/obsoletes which are always using the second form so the support for it was dropped from the perl version for the sake of simplicity.
* Harmonize buffer sizeThierry Vignaud2021-12-031-3/+5
| | | | | | | | | Thus fixing "invalid line <@provides for huge pkgs"... The fix in 5.221 was fixing emiting provides in synthesis for pkgs with lot of provides, but neither URPM or urpmi testsuite uses such a pkg and didn't catch that having those provides in synthesis would break reading synthesis. See commit 950d56e991d307b9b60bde8f51920bee3d1bc61c
* (Pkg_build_info) Increase static buffer size by 50%Thierry Vignaud2021-12-021-1/+3
| | | | | | | | | | | | | | Rationale: when generating synthesys, there's one new pkg whose provides were not emitted in synthesis because its provides would overflow the static buffer by 2 bytes: "buffer overflow: 131074 < 131072 for provides" Also log when the buffer would be too small instead of silently ignoring the issue. The offending package is golang-github-azure-sdk-devel which has 2707 provides which translates to a 131074 characters line in synthesys.
* Fix file descriptor leak in rpm transactions.Martin Whitaker2020-11-031-0/+2
|
* split open_compressed_file()Thierry Vignaud2020-05-041-19/+26
|
* fix compiling with rpm-4.10 (eg: Debian 7 Wheezy)Thierry Vignaud2020-04-301-0/+10
|
* restore support for rpm-4.9Thierry Vignaud2020-04-291-0/+14
|
* add support for reinstall (needs rpm >= 4.12.x)Thierry Vignaud2020-03-051-0/+14
|
* Workaround CPAN testers that run CentOS 7 (RT#131163)Thierry Vignaud2020-01-071-0/+2
| | | | | Their rpm is patched for weak deps. An alternative would be to have a better check
* fix support for hdlist compressed with !gzipThierry Vignaud2020-01-071-4/+4
| | | | | | we were always defaulting to gzip format, whatever is the decompressor specified in the archive bug introduced in commit 18723d2d47f9e069667753703c12ba5139661957
* restore compatibility with rpm build w/o support for zstdThierry Vignaud2019-12-301-0/+2
|
* add support for synthesis compressed with zstdThierry Vignaud2019-12-231-0/+4
|
* restore rpm-4.11.x compatibilityThierry Vignaud2018-09-181-0/+8
|
* restore support for rpm < 4.14.2Thierry Vignaud2018-09-161-0/+8
|
* add support for verify callback when installingThierry Vignaud2018-09-141-1/+13
| | | | Resolves: mga#15350
* sort caseThierry Vignaud2018-09-141-2/+2
|
* Fix Urpm_verify_rpm during installPascal Terjan2018-01-211-9/+10
| | | | | | | Signatures can't be verified as pubkeys are not available, the code ignores it but that broke with rpm 4.14 (mga#21886). Switch to using rpmtsSetVSFlags and rpmReadPackageFile which should work with older versions too.
* restore rpm-4.12.x compatibilityThierry Vignaud2017-11-061-0/+4
|
* restore rpm-4.13.x compatibilityThierry Vignaud2017-11-061-0/+10
|
* Revert "fix segfault when checking invalid signatures"Thierry Vignaud2017-10-051-1/+1
| | | | | | | | This reverts commit 87dbde4f3b078173e53cd45cac000c2d2751b370. Rationale: rpm got fixed We could just initialize header to NULL but rpmReadPackageFile() is supposed to always set a correct value, so keep as it in order to catch another future perl regression
* fix segfault when checking invalid signaturesThierry Vignaud2017-10-031-1/+1
| | | | | This is a rpm-4.14 regression where rpmReadPackageFile() no longer initialize the header when the pkg is corrupted
* use native 64bit integers instead of Math::Int64Thierry Vignaud2017-09-071-8/+8
| | | | it's now possible since perl-5.26.0-8.mga7
* Revert "add support for int64, using Math::Int64 C API"Thierry Vignaud2017-09-071-5/+0
| | | | This reverts commit 12ff33c3fbf1dfc2dce60f6a75bb546ca3bf6735.
* add support to rpm-4.14Thierry Vignaud2017-08-161-4/+4
| | | | thus breaking support for rpm <= 4.13
* explainThierry Vignaud2016-12-011-0/+1
|
* silent another warningThierry Vignaud2016-11-101-1/+1
| | | | rationale: we don't set any private data with rpmlogSetCallback()
* silent a warningThierry Vignaud2016-11-101-2/+1
| | | | | | by reverting a bit of commit b0cd1853933d8c68610c9e173721525c6a17e8ce that should have gone with along: commit b5249dafb882fbc105f05853c80fd30503d57a3f
* fix another (old) compilation warningsThierry Vignaud2016-10-181-1/+1
| | | | use rpmTagGetValue() to get the char* name of the tag
* silent compilation warnings on x86_64Thierry Vignaud2016-10-181-2/+2
|
* (get_int2) try new 64bit tag else old 32bit tagThierry Vignaud2016-10-181-3/+12
| | | | | | thus enabling to report size of >4Gb packages (however insane this is): rpmlib uses the old small tag for small packages and the new big tag for big packages (mga#19571)
* switch to uint64_t for sizes (mga#19571)Thierry Vignaud2016-10-181-9/+9
| | | | Thus we use 64bit for package size on 32bit too, thanks to Math::Int64
* add support for int64, using Math::Int64 C APIThierry Vignaud2016-10-181-0/+5
| | | | previously it was missing on 32bit arches
* bump copyrightThierry Vignaud2016-10-161-1/+1
|
* fix compiling on 32bitThierry Vignaud2016-10-141-1/+1
|
* reports obsoletes issues tooThierry Vignaud2016-10-141-0/+3
| | | | | RPMPROB_OBSOLETE was added in rpm-4.9.0 (5 years ago) but wasn't handled until now
* (check) fix reporting problemsThierry Vignaud2016-10-141-7/+1
| | | | | | | | | | | | | | | | | for at least 12 years, since swiching rpm to 4.2 (see commit 60031191b7012fdfe8e1af6bd43ff9b36b0c5825) $trans->check() failed to actually report issues rationale: rpmtsCheck() only actually return !0 if it fails to open rpmdb... in order to check if any problem was found by rpmtsCheck(), one must call retrieving the problem set with rpmtsProblems() rpmtsCheck() success only means that the resolution was successfully attempted for all packages in the set, which isn't that usefull... this might help mga#15350...
* fix reporting size on big packages (mga#19571)Thierry Vignaud2016-10-131-6/+4
|
* simplify: do not reinvent get_arch()Thierry Vignaud2016-10-131-1/+1
|
* don't push $fullname to callback stackThierry Vignaud2016-04-141-7/+0
| | | | that's no more needed...
* add support for "elem" callbackThierry Vignaud2016-04-141-1/+11
| | | | | This callback will be fired before each pkg being installed/removed Needs rpm >= rpm-4.13.0-0.rc1.28
* fix a segfault when callbacks don't get a headerPascal Terjan2015-02-261-2/+6
|
* callbacks now get pkg name instead of just pkg idThierry Vignaud2015-02-261-2/+6
| | | | thus fixing unknown package name on erases (mga#15032)
* move PUTBACK in branchThierry Vignaud2014-11-171-1/+1
|
* Handle non numeric returns for traverse_tag_find callbackPascal Terjan2014-11-141-3/+6
| | | | fix a warning spot by Angelo Naselli
* add a missing PUTBACK in traverse_tag_find()Thierry Vignaud2014-11-141-0/+1
| | | | | | this is needed after using POPi bug introduced in commit 4294365db5d78909ae5a490e0714db379502cd80
* add >recommends method (mga#14376)Thierry Vignaud2014-10-261-0/+2
| | | | unlike recommends_nosense, it returns version too
* fix crashing in ptread when using log callback with rpm-4.12Thierry Vignaud2014-10-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix by Panu Matilainen When rpmlog() occurs, it now grabs a read/write lock on the log context depending on whether it needs to save the log or not. The callback executes while the context lock is held, so when one call rpmlogMessage() or pretty much any rpmlog-related function from the callback, it'll try to lock the context again. Which is okay as long as rpmlog() only needed a read-lock on the context. However if it has a write-lock then attempting to grab a read-lock for rpmlogMessage() fails, but due to the largely missing error handling in rpmlog.c it falls through to crash and burn. The only reason we need to call rpmlogMessage() is that the callback does not match the callback function type in rpm >= 4.6: typedef int (*rpmlogCallback) (rpmlogRec rec, rpmlogCallbackData data); We shouldn't call that from log callback. We can avoid the issue by using rpmlogRecMessage() instead of rpmlogMessage() inside the callback. These are not the same, rpmlogRecMessage() returns the message of the *current* log event, whereas rpmlogMessage() returns the last *saved* log event. Which might not exist, might be from an earlier event or it might be the current event. ...and it'll not only work in all rpm >= 4.6 versions, but also give the actual log message at hand, instead of something that might have happened in the past.
* add support for generating recommends in synthesisThierry Vignaud2014-09-121-2/+3
| | | | aka having @recommends@ lines instead of @suggests@ ones
* recognize "recommends" lines in synthesisThierry Vignaud2014-09-121-1/+1
|
* rename "suggests" method as "recommends_nosense"Thierry Vignaud2014-09-121-0/+1
| | | | | in order to reflect reality but keep a suggests alias for compatibility for the time being