summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-01-13Preparing for 4.9.0-beta1rpm-4.9.0-beta1Panu Matilainen27-261/+261
2011-01-13Add switch to allow printing only soname dependencies to elfdeps helperPanu Matilainen1-3/+5
(cherry picked from commit fe68483d1b341416f28caa894d8392681d827868)
2011-01-11Fix rpmsign --key-id popt alias typoPanu Matilainen1-1/+1
(cherry picked from commit 9f3a0debb686485312d184d7a8c8aad49978629f)
2011-01-07Honor --root in rpmkeys tooPanu Matilainen1-0/+2
(cherry picked from commit b4f4e2255f3bf5a9c738f6d9d67f477f208fe04b)
2011-01-05Hide --verifydb switch againPanu Matilainen1-2/+2
- It got exposed in the rpmdb tool splitup, but the functionality in it's current form is still just as dubious as it always was, hide it out of sight again. (cherry picked from commit 599094e258fc69d76ef9291355850a10508acb3a)
2011-01-05Tweak up BDB flags to avoid breakage from --verifydbPanu Matilainen1-0/+5
- db->verify() has semantics unlike anything else in BDB and does strange things to a shared environment (causes persistent ENOMEM failures in the environment after a couple of attemps). Use a private environment and no CDB when verifying. - The whole --verifydb is rather useless, perhaps the better option would be deleting the lot... (cherry picked from commit 5c4135654f9d35772bea8a51c98c8020a3d20396)
2011-01-05A largish man-page updatePanu Matilainen9-597/+30
- Remove rpmquery and rpmverify manuals for now, the functionality didn't get split to separate binaries afterall and the manpages were in a rather bad shape afterall. - Add some missing options, remove no longer existing options - Remove rpmdb, rpmkeys, rpmsign and rpmspec related switches from man rpm manual, add them to the "see also"-section instead - Adjust database file list on main rpm manual, remove it from rpmbuild man. (cherry picked from commit c6d98322f1d30ca8028efb63bfde24b554abfda1)
2011-01-03Bump up default BDB cache- and allowed mmap size considerablyPanu Matilainen2-2/+2
- The former defaults come from nearly a decade ago, things have changed a bit since then... Even BDB's own default cache size is much larger (8MB) now than what we've been setting. - Using 64MB cache improves cache hit rate (and performance) massively. Last-gasp default to roughly BDB's own current defaults, higher settings in the default macro setup. (cherry picked from commit 6b6310b152475793a1272d8829a9df89a6edaee6)
2010-12-23Require %files section for package generation againPanu Matilainen6-1/+16
- Turns out this change does more harm than good, people are actually relying on this behavior to avoid zillion conditionals in the spec. We'll want a saner way to conditionally disable/enable packages but until we have that, revert to the former longstanding behavior. - This effectively reverts commit d010ec1c9026b35f5b2521be965c03c826894ce8 (cherry picked from commit b76fa1a7fdf738ccd45dd70a5489d5110a6d5534)
2010-12-22Only sepolicy-plugin needs linking to libsemanagePanu Matilainen2-2/+5
(cherry picked from commit 454859f3cbe6f59cbf6d5905fe469d3bf64adf4a)
2010-12-22Make rpmplugins.h private for nowPanu Matilainen5-8/+3
- We'll probably want to make some changes to the plugin type system before considered "ready", the current plugin slots are limited to 32 and Meego folks apparently want to use a largish number of slots. So we might want something like separate plugin type (collection, security... etc) and then have 32 slots per each type. Making this private for now to avoid having to potentially break the API shortly after introduction. (cherry picked from commit d10b40301188f1b00cbdaf49b1c09786d546ede0)
2010-12-21Update translations to kick out removed messages etcPanu Matilainen26-6744/+6265
2010-12-21Move rpmtsSELabelFoo() functions to an internal-only headerPanu Matilainen4-21/+23
- The sepolicy plugin needs them so the symbols can't be hidden, but these are not something external API-users should be messing with. - Ultimately we'll want to push the actual labeling from FSM to the plugin, insulating rpm from all SELinux specifics, this is just a band-aid temporary "solution" to keep this out of the API. (cherry picked from commit 00463e2fe0d115d873f141995e7d8b3041de7d36)
2010-12-21Free up a bunch of bits from rpmtransFlags_ePanu Matilainen1-15/+18
- With all this unused junk gone from the bitfield, we suddenly have plenty of bits to play with... - Preserving the symbols, just defined to 0, to avoid unnecessarily breaking compilation of stuff that refers to the old unused/unimplemented flags (cherry picked from commit 247c5431776299196cf32e0a3980a4b9516379ea)
2010-12-21Mark two more unused rpmts flags as suchPanu Matilainen1-2/+2
(cherry picked from commit c1d8fc34f9d36b3f47e30489caab848dae1f151a)
2010-12-21Rip the remains of --aid and --nosuggest, except for the callbackPanu Matilainen4-15/+3
- Only thing ever using RPMTRANS_FLAG_ADDINDEPS and _NOSUGGEST was rpm itself, and we haven't had an in-rpm implementation for this since the broken "rpmdb as repo format" was ripped out in 4.6.0. We dont need these special flags to support the operation anyway, IF somebody sets the solve callback, it will be used and the one implementing the callback gets to deal with whether those bits should be added to transaction or not. (cherry picked from commit 3b07e36fc430ae15a34a6b4c3249460ddf120c01)
2010-12-21Rip the stillborn, broken apply/commit transaction gooPanu Matilainen5-51/+10
- This was beginnings of something ten years ago, and that something was long since abandoned. These never did anything useful that --justdb/--noscripts wouldn't do. (cherry picked from commit 89c2fd9f512df1e673a073229914b5371e619ea4)
2010-12-21Yet another pile of depmatch tests + added commentaryPanu Matilainen1-0/+94
(cherry picked from commit c91e00e81eabe287e6d0786bdc8b0a4f10f19d73)
2010-12-21Add pile of further dependency match testcasesPanu Matilainen1-72/+130
- Test for provide ranges, versionless dependencies and different names - Tabify the test-table for readability + editability (cherry picked from commit 1f037a030a57f23e8305aa509987260644db74d1)
2010-12-21Add a pile of dependency matching tests for "obvious" casesPanu Matilainen4-1/+92
(cherry picked from commit 2c4899c8d7346ae3a9dbd830939fda29efb7a6a6)
2010-12-21Move python test-suite macros to local.at, renamePanu Matilainen2-21/+20
- We'll want to use these in other test parts than just python. Make available everywhere and use "namespace" to avoid potential future clashes. (cherry picked from commit 8acb7f7c1d8d7e93a04ca214f98660a40ee2b319)
2010-12-21Permit comparison operator strings (<, >= etc) in python ds constructorPanu Matilainen1-1/+44
- Creating ('foo', '>=', '1.2') dependency is much nicer than or'ing rpm.RPMSENSE_FOO for flags. Allow (but validate) the string usage, ints get passed as is. (cherry picked from commit bf37b06d19b769572c06a667b31164d6ed279155)
2010-12-21Unbreak file user/groupname handling in buildPanu Matilainen1-6/+6
- Fixes regression from commit a2d002a34bc567e8ce88c9ed30270d55d7c904fd, the librpmbuild "name cache" was used for unique string storage too and not just user/group-info lookup cache, duh. - At least for now, making this separation explicit in the code by separating the "stash this string" operation from the actual user/group lookups. (cherry picked from commit 50ab0945c5ddffd354692f8c31616c3575ebbd11)
2010-12-21Add a "unique string cache" to rpmugPanu Matilainen2-0/+30
- Used for storing unique strings just once (cherry picked from commit 353a7a81257e2a2a322b211b6ebf11b750ca6e68)
2010-12-21Support GetEntry() for hashes without datatype tooPanu Matilainen2-9/+8
(cherry picked from commit 3296c651b90b1caed216a3c65f024ea741ea13f9)
2010-12-21Eliminate ancient dependency loop whiteout mechanismPanu Matilainen2-100/+1
- Nobody has been relying on this for ages, and with the new ordering code since rpm 4.8.x loops are handled much more gracefully than before. RIP. (cherry picked from commit 69187d6bb04d36934a7f9f276d90164e842ef54c)
2010-12-21Remove the now unused user/group caching codePanu Matilainen4-242/+1
(cherry picked from commit bc457015f6c2c82f84a2ba7e805883944a64f679)
2010-12-21Unify the user+group caching between librpm and librpmbuildPanu Matilainen3-12/+15
- The build version has getUidS() and getGidS() for which there is no counterpart in the rpmug api but there's not much point to them: they check whether the user/groupname exists but return our own string back to us even if it doesn't. - The build version also caches more than current rpmug, but has an ugly hardwired limit causing (in theory) errors that can't be nicely handled, and is the last piece relying on RPMLOG_CRIT actually terminating the process. The librpm version doesn't fail, in the worst case its just a bit slower. And that can be fixed anytime by making it to use hash tables for caching. (cherry picked from commit a2d002a34bc567e8ce88c9ed30270d55d7c904fd)
2010-12-21Split user+group caching to separate source (again), renamePanu Matilainen7-188/+198
- We'll want to unify this and the similar caching done in librpmbuild, so we need to expose these in the ABI at least, rename to get them namespaced and use a separate source module (again) as this is a pretty distinct functionality. - This would really belong to librpmio but leaving here for now... (cherry picked from commit 2a54555aa2144f56a2ba518c48830c60da78c4d4)
2010-12-21Remove hardcoded lock and mail group id'sPanu Matilainen1-9/+0
- Rpm has no business making assumptions about arbitrary group id's, if these are not available through getgrname() when needed, that's a packaging problem. (cherry picked from commit a26848218cfdefd0f8ee538a14a57c9fea4e7b2d)
2010-12-21Cut down the initial db checked hash allocation somewhatPanu Matilainen1-2/+2
- The instance numbers are often much much bigger than the number of actual packages, and the hash table grows automatically as needed so there's no need to over-allocate at the start. Apply some (fairly arbitrary) heuristics to limit the initial allocation size. (cherry picked from commit e40a7c61c422e79838226c69cb84f7a624fa6127)
2010-12-21Replace verified header tracking bitfield with a hash tablePanu Matilainen3-66/+28
- No functional changes, but allows getting rid of yet another custom (re)allocation scheme + ugly bitfield manipulation macros. Also the header instance numbers can be rather sparse, making hash a natural fit for the purpose. (cherry picked from commit 78097d55f446c32911f629d4ce3ef79fe3c5c898)
2010-12-13Implement transaction ordering hintingPanu Matilainen8-0/+29
- Add support for new "OrderWithRequires: foo" spec syntax which has "if and only if foo is present in transaction, order the transaction as if this package required foo" semantics. While it looks, and in some ways is, a soft dependency, this is not the same as recommends/suggests etc: those have unknown depsolver policy dependent semantics attached to them, whereas ordering hints have a clear definition and is only relevant for rpm itself, depsolvers should not even look at the data. - This allows packages to express correct ordering for optional functionality, such as %post if [ -x %{_bindir}/register-component ]; then %{_bindir}/register-component %{name} fi If the package containing %{_bindir}/register-component is included in the same transaction, it makes sense to have it installed before the package(s) that use it. But as it is fully optional, Requires would not be appropriate. Using OrderWithRequires allows this to be expressed without dragging in extraneous dependencies for optional functionality. (cherry picked from commit 5c43095e1d78b3befe93c746fd182746c3b96c92)
2010-12-10Implement filtering of autogenerated dependenciesPanu Matilainen1-5/+18
- This allows both excluding entire paths from dependency generation and also excluding individual generated dependencies by regexes settable from spec or other configuration. - %__(provides|requires)_exclude regex controls is matched against generated dependencies, %__(provides|requires)_exclude_from is matched against the currently processed path, with buildroot stripped out. - We'll probably want some "higher level" macros to go with this, but the mechanism is usable as-is already. (cherry picked from commit 185de185262b2772fa692efc69633f41afc5832a)
2010-12-10Some further preliminaries for next bitsPanu Matilainen1-21/+18
- Add a helper function for freeing regex pointers - Move regMatch() to top of rpmfc.c, we'll need it shortly (cherry picked from commit 27a17ec74a21eb5c8ca44972e15531244881cc07)
2010-12-10Refactor the helper execution out of rpmfcHelper()Panu Matilainen1-60/+67
- Split the macro name generation and grabbing of argv-style output into yet another helper to reduce the clutter in rpmfcHelper() before adding more stuff in there. (cherry picked from commit ca3089f8bc4de7e2426b129f998a3c59daeebfd0)
2010-12-10Rename pattern -> path for, duh, path patternsPanu Matilainen6-18/+18
- 4.9 alpha used "pattern" but better fix the stupid name now than have to live with the non-obvious name forever (cherry picked from commit a9bc1f51ae6bb6e1df0a5de71ac2a27b0932f144)
2010-12-10Support excluding by path or magic in file classificationPanu Matilainen2-1/+21
- %__foo_exclude_pattern and %__foo_exclude_magic regex'es now allow excluding attributes that would otherwise match. (cherry picked from commit f5a657112a8f9a107314dcd02767146e64953abe)
2010-12-10Remove broken versioned provides rpmlib() trackingPanu Matilainen2-25/+0
- Every single package since rpm >= 3.0.4 or so has a versioned provide through the automatically added N = VR provide, which hasn't gotten tracked in all these years. Drop the useless dependency. (cherry picked from commit 17445a390a8686de6d1532b03cd4dc8314850dd3)
2010-12-10Add beginnings of python bindings test-suitePanu Matilainen4-0/+65
- Add some basic infrastructure: point PYTHONPATH to the testing directory, helper macros to allow use of in-line python in test-suite - Throw in a couple of simple tests for starters (cherry picked from commit 2a37d9a4dcfd172db9a63584ec2267702153e00b)
2010-12-10Kick out some long since invalid commentsPanu Matilainen1-3/+0
(cherry picked from commit f63e19d2986609193b409fea7a52e5eb41478a48)
2010-12-10A bit of sanity checking in rpmtsRebuildDB()Panu Matilainen1-8/+15
- Don't permit rebuilddb on populated transaction as rebuild can and usually does change header instance numbering. (cherry picked from commit 626e78429ff6dd77de77abb9073c3defacdd5726)
2010-12-03Bump library sonamesPanu Matilainen3-3/+3
- Lots and lots of API changes, including what amounts to rewriting of librpmbuild external API... The only exception is librpmsign which is new and starts with 0
2010-12-03Internalize most direct rpmdb manipulation functionsPanu Matilainen2-60/+62
- Since rpm 4.1 times, callers are supposed to use the rpmtsFooDB() variants instead of the lower-level rpmdb functions, and mixing them is not safe. Enforce the use of ts-level versions by making rpmdbLink(), rpmdbOpen(), rpmdbInit(), rpmdbClose(), rpmdbSync(), rpmdbVerify() and rpmdbRebuild() internal-only. - Doing this now to eliminate a few needs for breaking API again in 4.10 (one can wish, right?)
2010-12-03Require pkg-config 0.24 for creating pkgconfig() dependenciesPanu Matilainen1-1/+6
- The support for --print-requires|provides was only upstreamed in pkg-config 0.24, prior to that it relied on distros patching their pkg-config. Rpm relying on non-upstream stuff is not good... Now that it's upstream we can make a clean break and simply not even try to generate the dependencies with anything older. - The upstreamed version behaves slightly differently from what distros were patching with, for rpm's purposes we also want --print-requires-private now.
2010-12-01Update translations to pick up recent changesPanu Matilainen26-1846/+1891
2010-12-01Fix bogus error reporting from autogenerated dependencies (ticket #181)Panu Matilainen1-10/+14
- Automatically generated dependencies do not relate to spec lines, use different error reporting for manually vs automatically added dependencies.
2010-12-01Oops, mono dependency extractors need a bunch of argumentsPanu Matilainen1-2/+2
- Regression from the initial conversion to the new system in commit 8c7e53ec80e84f48bfc67181f3d5dd81ecdb7523 - The buildroot doesn't need passing as arg anymore but for now, just keep it compatible
2010-12-01Make rpmdeps honor RPM_BUILD_ROOT if setPanu Matilainen1-1/+1
- rpmdeps calls the internal dependency generator as an external dependency generator (yes its more than a bit wacky), and the internal generator needs to know the buildroot as path patterns expect non-buildroot paths for accuracy.
2010-12-01Pass RPM_BUILD_ROOT to helper scripts through environment alwaysPanu Matilainen3-9/+15
- Many of the scripts need to know the buildroot in order to figure out correct resulting paths. This permits unifying the current adhoc methods of passing the data to the scripts.