Ville Skyttä [Tue, 22 Feb 2011 20:07:18 +0000 (22:07 +0200)]
Man page syntax fixes.
Ville Skyttä [Fri, 18 Feb 2011 20:22:07 +0000 (22:22 +0200)]
Documentation spelling fixes.
Panu Matilainen [Mon, 21 Feb 2011 08:55:02 +0000 (10:55 +0200)]
Fix db cursor double-open, causing yum to hang on reinstall (RhBug:678644)
- A refactoring error in commit
475391dc581bf5ba72b6d59d16d875505b45bd51
causes us to open a double cursor on the Package db. This doesn't
seem to affect much in rpm context, but Yum is being naughty and holding
two different handles to the same db simultaneously, which causes
to deadlock on trying to lock the same record twice from two different
handles .. or something to that effect.
Panu Matilainen [Mon, 21 Feb 2011 06:47:52 +0000 (08:47 +0200)]
Fix braindamage in the depgen helper collector loop (RhBug:675002)
- Read any remaining data before exiting on SIGCHLD
- Only perform one read() per loop, otherwise it could block
- Handle EINTR while read()'ing
Panu Matilainen [Sun, 20 Feb 2011 20:33:47 +0000 (22:33 +0200)]
Allow both string + unicode in python addInstall() / addErase()
Panu Matilainen [Tue, 15 Feb 2011 13:07:02 +0000 (15:07 +0200)]
Allow installation of self-conflicting packages (ticket #806, RhBug:651951)
- Besides fixing the stupid situation where we happily create package(s)
that can under no circumstances be installed, this makes it possible
to create "singleton" packages which can be useful in some cases, eg
http://lists.rpm.org/pipermail/rpm-maint/2010-April/002719.html
Michael Schroeder [Tue, 15 Feb 2011 12:55:55 +0000 (14:55 +0200)]
Fix corner-case behavior on dependency matching when release not present
- The idea behind the patch is that a missing release is handled
as "all/any release". Nothing changes for "foo < 1.2" or
"foo > 1.2", it still just compares the version. But "foo = 1.2"
means "everything with version 1.2". Thus, any match against
a package with version "1.2" a any non-empty release must
return true.
- Update test-suite expectations to the new behavior.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Michael Schroeder [Tue, 15 Feb 2011 12:39:29 +0000 (14:39 +0200)]
Allow uncompressed payload in packages
- An example of a package where uncompressed payload is useful is
out "installation-images" package. It's a meta package that is
not shipped to customers, but used for image creation purposes.
Compression just slows down the build process.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen [Tue, 15 Feb 2011 11:49:44 +0000 (13:49 +0200)]
Import the C-level ts python object as TransactionSetCore
- The previous _rpmts name suggests its some scary internal stuff
that shouldn't be used when that's not the case, it's just a
lower level interface to the same thing.
Ville Skyttä [Sat, 12 Feb 2011 10:24:50 +0000 (12:24 +0200)]
Avoid emitting empty perl() module deps.
Test case from DOM.pm (perl-CSS-DOM 0.13):
use # to keep CPANTS happy :-)
strict;
use # same here
warnings;
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen [Mon, 7 Feb 2011 10:28:30 +0000 (12:28 +0200)]
Callback argument mismatch from previous commit, meh
Panu Matilainen [Mon, 7 Feb 2011 08:43:03 +0000 (10:43 +0200)]
Add + use a db error callback function
- Commit
7309f7498134f7b62f27624a4cdb91e1c6b82578 caused loss of
some BDB error messages due misreading the docs: we used to explicitly
set errfile to stderr through some hoops, and errcall to what
always was NULL. But calling set_errcall() disables any output to
the db errfile, and since we're no longer calling errfile...
- Removing the set_errcall() would restore output on stderr, but
making it go through rpmlog() seems more consistent and lets
API users catch it through rpmlog callback (in theory at least)
Panu Matilainen [Mon, 7 Feb 2011 07:15:29 +0000 (09:15 +0200)]
Fix segfault when building more than one rpm (RhBug:675565)
- Remember to set the static string cache pointer to NULL on free, duh
Panu Matilainen [Sun, 6 Feb 2011 07:57:03 +0000 (09:57 +0200)]
Adjust OCaml detection rule for libmagic 5.04 -> 5.05 string change
Panu Matilainen [Mon, 31 Jan 2011 11:01:26 +0000 (13:01 +0200)]
Mark the identical signature warning as translatable
Panu Matilainen [Mon, 31 Jan 2011 08:14:57 +0000 (10:14 +0200)]
Argh, yet more mono dependency generation braindamage
- Unlike some other scripts, mono-find-foo do not have .sh suffix, meh
Panu Matilainen [Mon, 31 Jan 2011 07:21:32 +0000 (09:21 +0200)]
Eww, mono rules both buggy AND missing from tarballs, doh.
Ville Skyttä [Sun, 23 Jan 2011 20:35:24 +0000 (22:35 +0200)]
Comment spelling fix.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen [Fri, 28 Jan 2011 11:15:09 +0000 (13:15 +0200)]
Add an error message + comments on open(".") behavior (RhBug:672576)
- Bail out early and complain if current directory can't be open()'ed,
as we'll need it for reliable cwd restoration after running Lua
scripts.
- Technically we'd only need open(".") succeeding for chroot operations
and running Lua-scripts, but there's no easy way to determine whether
a transaction will run Lua-scripts. They could be in-db triggers
which will only be evaluated in the middle of transaction, better
to fail early for consistent behavior.
Panu Matilainen [Tue, 25 Jan 2011 13:27:28 +0000 (15:27 +0200)]
Teach rpm about post-transaction dependencies
- %posttrans dependencies have their own peculiar semantics, they're
install-only dependencies which have no implications on ordering.
Panu Matilainen [Fri, 21 Jan 2011 13:20:01 +0000 (15:20 +0200)]
Don't try to remove existing environment when using private environment
Panu Matilainen [Fri, 21 Jan 2011 12:02:28 +0000 (14:02 +0200)]
Plug potential division by zero in the rpmdb size calculation (RhBug:671056)
- This smells like treating the symptom instead of the disease, add
a reminder comment to figure out what's going on here...
Panu Matilainen [Fri, 21 Jan 2011 11:52:17 +0000 (13:52 +0200)]
Fix rpmdb index match iteration termination with NULL keyp (#671149)
- When iterating secondary indexes with NULL keyp, the last entry
was being returned twice as dbiAppendSet() would get called
even when dbiGet() returned non-zero.
Panu Matilainen [Fri, 21 Jan 2011 11:43:12 +0000 (13:43 +0200)]
Avoid automatic index generation on db rebuild
- The rebuild walks through it all anyway, calling buildIndexes()
while in middle of db rebuild ends up in first header added
twice to indexes
Panu Matilainen [Fri, 21 Jan 2011 11:41:02 +0000 (13:41 +0200)]
Fix python documentation wrt dbIndex()
Panu Matilainen [Fri, 21 Jan 2011 07:57:36 +0000 (09:57 +0200)]
Restore default SIGPIPE handling for build scriptlets (RhBug:651463)
Panu Matilainen [Fri, 21 Jan 2011 07:32:58 +0000 (09:32 +0200)]
Permit queries from rpmdb on read-only media (RhBug:671200)
Panu Matilainen [Thu, 13 Jan 2011 08:14:25 +0000 (10:14 +0200)]
Add switch to allow printing only soname dependencies to elfdeps helper
Panu Matilainen [Mon, 10 Jan 2011 12:09:57 +0000 (14:09 +0200)]
Fix rpmsign --key-id popt alias typo
Panu Matilainen [Fri, 7 Jan 2011 10:06:37 +0000 (12:06 +0200)]
Honor --root in rpmkeys too
Panu Matilainen [Wed, 5 Jan 2011 13:22:00 +0000 (15:22 +0200)]
Hide --verifydb switch again
- 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.
Panu Matilainen [Wed, 5 Jan 2011 11:26:11 +0000 (13:26 +0200)]
Tweak up BDB flags to avoid breakage from --verifydb
- 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...
Panu Matilainen [Wed, 5 Jan 2011 08:10:10 +0000 (10:10 +0200)]
Update translations yet again to pick up string removals
Panu Matilainen [Wed, 5 Jan 2011 08:05:33 +0000 (10:05 +0200)]
A largish man-page update
- 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.
Panu Matilainen [Mon, 3 Jan 2011 13:49:50 +0000 (15:49 +0200)]
Bump up default BDB cache- and allowed mmap size considerably
- 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.
Panu Matilainen [Thu, 23 Dec 2010 07:24:25 +0000 (09:24 +0200)]
Require %files section for package generation again
- 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
Panu Matilainen [Wed, 22 Dec 2010 12:58:11 +0000 (14:58 +0200)]
Only sepolicy-plugin needs linking to libsemanage
Panu Matilainen [Wed, 22 Dec 2010 11:11:40 +0000 (13:11 +0200)]
Make rpmplugins.h private for now
- 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.
Panu Matilainen [Tue, 21 Dec 2010 09:01:22 +0000 (11:01 +0200)]
Move rpmtsSELabelFoo() functions to an internal-only header
- 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.
Panu Matilainen [Mon, 20 Dec 2010 10:10:21 +0000 (12:10 +0200)]
Free up a bunch of bits from rpmtransFlags_e
- 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
Panu Matilainen [Mon, 20 Dec 2010 09:58:44 +0000 (11:58 +0200)]
Mark two more unused rpmts flags as such
Panu Matilainen [Mon, 20 Dec 2010 09:50:30 +0000 (11:50 +0200)]
Rip the remains of --aid and --nosuggest, except for the callback
- 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.
Panu Matilainen [Mon, 20 Dec 2010 09:38:21 +0000 (11:38 +0200)]
Rip the stillborn, broken apply/commit transaction goo
- 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.
Panu Matilainen [Fri, 17 Dec 2010 09:00:41 +0000 (11:00 +0200)]
Yet another pile of depmatch tests + added commentary
Panu Matilainen [Fri, 17 Dec 2010 07:19:48 +0000 (09:19 +0200)]
Add pile of further dependency match testcases
- Test for provide ranges, versionless dependencies and different names
- Tabify the test-table for readability + editability
Panu Matilainen [Thu, 16 Dec 2010 15:39:00 +0000 (17:39 +0200)]
Add a pile of dependency matching tests for "obvious" cases
Panu Matilainen [Thu, 16 Dec 2010 15:18:21 +0000 (17:18 +0200)]
Move python test-suite macros to local.at, rename
- We'll want to use these in other test parts than just python. Make
available everywhere and use "namespace" to avoid potential future
clashes.
Panu Matilainen [Thu, 16 Dec 2010 12:11:25 +0000 (14:11 +0200)]
Permit comparison operator strings (<, >= etc) in python ds constructor
- 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.
Panu Matilainen [Thu, 16 Dec 2010 07:35:08 +0000 (09:35 +0200)]
Unbreak file user/groupname handling in build
- 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.
Panu Matilainen [Thu, 16 Dec 2010 07:31:20 +0000 (09:31 +0200)]
Add a "unique string cache" to rpmug
- Used for storing unique strings just once
Panu Matilainen [Thu, 16 Dec 2010 07:28:34 +0000 (09:28 +0200)]
Support GetEntry() for hashes without datatype too
Panu Matilainen [Wed, 15 Dec 2010 09:34:50 +0000 (11:34 +0200)]
Eliminate ancient dependency loop whiteout mechanism
- 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.
Panu Matilainen [Wed, 15 Dec 2010 07:48:35 +0000 (09:48 +0200)]
Update translations to pick up dropped messages
Panu Matilainen [Wed, 15 Dec 2010 07:42:03 +0000 (09:42 +0200)]
Remove the now unused user/group caching code
Panu Matilainen [Wed, 15 Dec 2010 07:30:56 +0000 (09:30 +0200)]
Unify the user+group caching between librpm and librpmbuild
- 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.
Panu Matilainen [Tue, 14 Dec 2010 09:34:34 +0000 (11:34 +0200)]
Split user+group caching to separate source (again), rename
- 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...
Panu Matilainen [Tue, 14 Dec 2010 10:51:12 +0000 (12:51 +0200)]
Remove hardcoded lock and mail group id's
- 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.
Panu Matilainen [Mon, 13 Dec 2010 12:53:35 +0000 (14:53 +0200)]
Cut down the initial db checked hash allocation somewhat
- 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.
Panu Matilainen [Mon, 13 Dec 2010 12:23:02 +0000 (14:23 +0200)]
Replace verified header tracking bitfield with a hash table
- 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.
Panu Matilainen [Mon, 13 Dec 2010 10:03:18 +0000 (12:03 +0200)]
Implement transaction ordering hinting
- 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.
Panu Matilainen [Fri, 10 Dec 2010 14:18:15 +0000 (16:18 +0200)]
Implement filtering of autogenerated dependencies
- 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.
Panu Matilainen [Fri, 10 Dec 2010 14:12:06 +0000 (16:12 +0200)]
Some further preliminaries for next bits
- Add a helper function for freeing regex pointers
- Move regMatch() to top of rpmfc.c, we'll need it shortly
Panu Matilainen [Fri, 10 Dec 2010 12:14:44 +0000 (14:14 +0200)]
Refactor the helper execution out of rpmfcHelper()
- 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.
Panu Matilainen [Fri, 10 Dec 2010 10:33:46 +0000 (12:33 +0200)]
Rename pattern -> path for, duh, path patterns
- 4.9 alpha used "pattern" but better fix the stupid name now than
have to live with the non-obvious name forever
Panu Matilainen [Fri, 10 Dec 2010 09:53:45 +0000 (11:53 +0200)]
Support excluding by path or magic in file classification
- %__foo_exclude_pattern and %__foo_exclude_magic regex'es now allow
excluding attributes that would otherwise match.
Panu Matilainen [Fri, 10 Dec 2010 08:36:45 +0000 (10:36 +0200)]
Remove broken versioned provides rpmlib() tracking
- 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.
Panu Matilainen [Thu, 9 Dec 2010 14:32:56 +0000 (16:32 +0200)]
Add beginnings of python bindings test-suite
- 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
Panu Matilainen [Fri, 3 Dec 2010 13:55:02 +0000 (15:55 +0200)]
Kick out some long since invalid comments
Panu Matilainen [Fri, 3 Dec 2010 13:31:01 +0000 (15:31 +0200)]
A bit of sanity checking in rpmtsRebuildDB()
- Don't permit rebuilddb on populated transaction as rebuild can
and usually does change header instance numbering.
Panu Matilainen [Fri, 3 Dec 2010 12:11:48 +0000 (14:11 +0200)]
Bump HEAD version at branch-point
Panu Matilainen [Fri, 3 Dec 2010 11:59:43 +0000 (13:59 +0200)]
Bump library sonames
- 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
Panu Matilainen [Fri, 3 Dec 2010 11:38:59 +0000 (13:38 +0200)]
Internalize most direct rpmdb manipulation functions
- 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?)
Panu Matilainen [Fri, 3 Dec 2010 10:44:49 +0000 (12:44 +0200)]
Require pkg-config 0.24 for creating pkgconfig() dependencies
- 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.
Panu Matilainen [Wed, 1 Dec 2010 15:17:01 +0000 (17:17 +0200)]
Update translations to pick up recent changes
Panu Matilainen [Wed, 1 Dec 2010 15:15:18 +0000 (17:15 +0200)]
Fix bogus error reporting from autogenerated dependencies (ticket #181)
- Automatically generated dependencies do not relate to spec lines,
use different error reporting for manually vs automatically added
dependencies.
Panu Matilainen [Wed, 1 Dec 2010 09:55:46 +0000 (11:55 +0200)]
Oops, mono dependency extractors need a bunch of arguments
- 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
Panu Matilainen [Wed, 1 Dec 2010 09:22:32 +0000 (11:22 +0200)]
Make rpmdeps honor RPM_BUILD_ROOT if set
- 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.
Panu Matilainen [Wed, 1 Dec 2010 09:18:19 +0000 (11:18 +0200)]
Pass RPM_BUILD_ROOT to helper scripts through environment always
- 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.
Panu Matilainen [Wed, 1 Dec 2010 09:09:02 +0000 (11:09 +0200)]
Remember buildroot directory in rpmfc struct
- New constructor rpmfcCreate() which takes buildroot as an argument,
and "flags" argument for future use. Calculate brlen at initialization
now that we can.
- Preserve rpmfcNew() as a compatibility wrapper as it's something
somebody could, in theory, have used legitimately.
Panu Matilainen [Wed, 1 Dec 2010 07:31:07 +0000 (09:31 +0200)]
Eliminate unused dir argument to getOutputFrom()
Panu Matilainen [Wed, 1 Dec 2010 07:06:05 +0000 (09:06 +0200)]
Unbreak perl module dependency extraction
- Dumb attribute vs macro name thinko/typo preventing it from working
at all, duh.
- At least for now, revert back to magic based pattern: we dont really
know where all the perl modules might live. OTOH this relies on
the ugly "all .pm files are perl modules for now" hack inside rpmfc.c.
We could of course use a loose /.*\\.pm path rule too for the same
effect and eliminate the hack, but that'd leave strange stuff into
fileclass tags when libmagic fails to detect its actually perl.
Need to figure out something better here... maybe allow overriding
libmagic detected strings from foo.attr or such.
Panu Matilainen [Mon, 29 Nov 2010 13:56:55 +0000 (15:56 +0200)]
Fix long-standing segfault on unknown tags on header iteration queries
- The simple and stupid tag cache was a bit too simple, failing
to deal with unknown tags larger than our own tag table correctly.
Use a hash table instead which is a far better suited for the
sparse tag numbers anyway.
Panu Matilainen [Mon, 29 Nov 2010 10:28:47 +0000 (12:28 +0200)]
Eliminate dead RPMTAG_INSTALLPREFIX tag extension
- This hasn't been functional since rpm 4.6 at least: the tag is marked
internal so it's not recognized as a valid query tag, and there's
no point supporting this anyway, it was already deprecated backwards
compatibility hack in rpm 2.x in 1998 era.
Panu Matilainen [Tue, 23 Nov 2010 15:52:06 +0000 (17:52 +0200)]
We're already considering <pthread.h> mandatory header elsewhere
- ... so might as well do so here too
Panu Matilainen [Tue, 23 Nov 2010 15:49:16 +0000 (17:49 +0200)]
Axe the rpmsq debug code which was never getting built anyway
Panu Matilainen [Tue, 23 Nov 2010 15:43:45 +0000 (17:43 +0200)]
Lose all the stillborn code in rpmsq.[ch]
- rpmsqThread(), rpmsqJoin(), rpmsqThreadEqual() and rpmsqExecve()
have never been used... get rid of them while we're bumping sonames
anyway
Panu Matilainen [Tue, 23 Nov 2010 15:42:57 +0000 (17:42 +0200)]
Oops, missing include in previous commit
Panu Matilainen [Tue, 23 Nov 2010 10:30:38 +0000 (12:30 +0200)]
Permit unicode paths in rpm.fd() (RhBug:654145)
- Python 3 has fs-specific converter function, for Python 2 just
assume utf-8 and hope the best.
Panu Matilainen [Mon, 22 Nov 2010 09:40:44 +0000 (11:40 +0200)]
Add bunch of rpmvercmp() algorithm tests to the test-suite
Panu Matilainen [Mon, 22 Nov 2010 08:36:54 +0000 (10:36 +0200)]
Move the current "version compare" tests to rpm install tests
- These are more about rpm install/upgrade behavior than pure
version comparison, although obviously version comparison is involved
Yuri Chornoivan [Sun, 21 Nov 2010 14:43:11 +0000 (14:43 +0000)]
l10n: Updated Ukrainian (uk) translation to 100%
New status: 746 messages complete with 0 fuzzies and 0 untranslated.
Transmitted-via: Transifex (www.transifex.net).
Piotr Drąg [Fri, 19 Nov 2010 08:13:59 +0000 (08:13 +0000)]
l10n: Updated Polish (pl) translation to 100%
New status: 746 messages complete with 0 fuzzies and 0 untranslated.
Transmitted-via: Transifex (www.transifex.net).
Panu Matilainen [Thu, 18 Nov 2010 11:20:42 +0000 (13:20 +0200)]
Update translations to pick up recent changes
Panu Matilainen [Thu, 18 Nov 2010 10:50:55 +0000 (12:50 +0200)]
Only force default umask during transaction (RhBug:494440)
- For rpm itself forging global umask on init is kinda convenient, but can
be troublesome for API users. This is especially bad in python bindings
where just importing the rpm module silently changes process umask with
no good reason.
- Instead of global setting on init, only change the umask to 022 default
for the duration of rpmtsRun() where it's necessary for consistent
transaction results on implicitly created directories and files created
by scriptlets. This way we dont affect callers and provide better
"protection" for ourselves too - we don't know if API users change
umask again behind our back if we just set it on initialization.
- To make matters more fun, Lua scripts can change our umask. Save
and restore umask when running Lua scriptlets.
Panu Matilainen [Wed, 17 Nov 2010 14:27:10 +0000 (16:27 +0200)]
Always exit rpmtsRun() via rpmtsFinish()
- Fixes a memory leak from rpmtsSELabelInit()
- Ensures we get out of chroot() on the way out
Panu Matilainen [Wed, 17 Nov 2010 13:54:38 +0000 (15:54 +0200)]
Plug a minor memory leak in librpmbuild doPatch()
Panu Matilainen [Wed, 17 Nov 2010 13:33:30 +0000 (15:33 +0200)]
Revert rpmquery/rpmverify split, ain't gonna happen this time around
- Dealing with the inevitable fallout and popt-foo needs more time
to handle, revert to the rpm 4.6-4.8 setup where rpmquery and rpmverify
are just symlinks to /bin/rpm, allowing especially query aliases
to work. Releasing an intermediate version where 'rpmquery --requires'
and the like dont work would do nothing but hurt the future intention
of splitting these things up for real.
- This effectively reverts commit
26125015e4321765582dce0b76f83530e7604d4e
Panu Matilainen [Wed, 17 Nov 2010 06:52:18 +0000 (08:52 +0200)]
Yet another round of enum-as-function-argument elimination
- Pass the yes/no magic argument to headerRead(), headerWrite() and
headerSizeof() as int instead of enum.
Panu Matilainen [Wed, 17 Nov 2010 06:46:21 +0000 (08:46 +0200)]
Avoid enum as function argument for headerConvert()
- While this /nearly/ qualifies for enum, places like python
argument converting will not be able to produce "true enum" values.
So dont even try.
Panu Matilainen [Mon, 15 Nov 2010 09:06:44 +0000 (11:06 +0200)]
Remove RPMTAG_FILESTATUS tag extension
- This is a bad "API" for verification, it can't be controlled and
causes heavy IO where one would not expect it. Getting rid of it now
before anybody starts relying on it...
- Leaving :fstatus format extension alone however, it's at least harmless
and produces a more predictable output than :vflags extension so it
might be actually useful in scripts.