Panu Matilainen [Tue, 30 Mar 2010 22:12:15 +0000 (01:12 +0300)]
Shed the pointless per-dbi memory allocators
- we want to use our own allocators for exit-on-enomem behavior but
having per-index allocator configuration makes no sense whatsoever
Panu Matilainen [Tue, 30 Mar 2010 22:09:51 +0000 (01:09 +0300)]
Eliminate now unnecessary db_ndbi field, number of indexes is constant
Panu Matilainen [Tue, 30 Mar 2010 22:05:03 +0000 (01:05 +0300)]
Make rpmdb index list hard-wired
- We dont grow new indexes every other day, and especially this
is not activity that users need to be able to do
- Gets rid of the hysterical initialization and million can't happen
NULL-checks
Panu Matilainen [Tue, 30 Mar 2010 21:43:34 +0000 (00:43 +0300)]
Minor cleanup to rpmdbAdd()
- move dbiOpen() + check to more sensible place, curing the
busted indentation
- initialize at declaration save a few unnecessary lines
Panu Matilainen [Tue, 30 Mar 2010 21:40:23 +0000 (00:40 +0300)]
Add + use a helper function for retrieving single header at offset
Panu Matilainen [Tue, 30 Mar 2010 20:23:53 +0000 (23:23 +0300)]
Minor cleanups to rpmdbAdd() and rpmdbRemove()
Panu Matilainen [Tue, 30 Mar 2010 20:11:21 +0000 (23:11 +0300)]
Minor cleanup to rpmdbRebuild(), use rstreq() instead of hand-comparing
Panu Matilainen [Mon, 29 Mar 2010 15:36:21 +0000 (18:36 +0300)]
Hide rpmte open/close/error etc logic inside rpmteProcess()
- make a bunch of helper functions static now that they're not needed
elsewhere, rpmte is slowly becoming self-aware ;)
Panu Matilainen [Mon, 29 Mar 2010 14:14:55 +0000 (17:14 +0300)]
Move the little thats left of psm.h into rpmte_internal.h
- no functional changes, just shuffling declares around
Piotr Drąg [Mon, 29 Mar 2010 14:38:09 +0000 (14:38 +0000)]
l10n: Updates to Polish (pl) translation
Transmitted-via: Transifex (www.transifex.net)
Panu Matilainen [Mon, 29 Mar 2010 13:14:50 +0000 (16:14 +0300)]
Oops, scriptlet related error messages had dropped out of potfiles
Panu Matilainen [Mon, 29 Mar 2010 13:11:08 +0000 (16:11 +0300)]
Update translatios again to shed non-existent messages from recent churn
Panu Matilainen [Mon, 29 Mar 2010 13:05:32 +0000 (16:05 +0300)]
Lazy allocation of rpmds color array
- only requires and provides in transaction elements get colored,
dont allocate unused memory
Panu Matilainen [Mon, 29 Mar 2010 12:33:03 +0000 (15:33 +0300)]
Lose long since unused fdReadable() and fdWritable()
- these have been unused since rpm 4.6.0, and can be implemented
without access to rpmio internals too if somebody cares...
Panu Matilainen [Mon, 29 Mar 2010 12:27:43 +0000 (15:27 +0300)]
Lose long since unused url control structure and related functions
- these have been unused since rpm 4.6.0, and rpm is not in the
url business, rip.
Panu Matilainen [Mon, 29 Mar 2010 12:03:14 +0000 (15:03 +0300)]
Remove unused dependency set file reference count
- this has never been used for anything at all, there are better things
to use our memory for than unused arrays
Panu Matilainen [Mon, 29 Mar 2010 11:53:10 +0000 (14:53 +0300)]
Remove unused and non-sensible depedency set build-time
- Buildtime was never part of rpm version comparison nor should it be,
on rpm level the only sensible differentiator between two identical
dependencies is the dependency color if any. Other than that, random()
just as "appropriate" as build time.
Panu Matilainen [Mon, 29 Mar 2010 11:40:40 +0000 (14:40 +0300)]
headerNextTag() fits the checkForDuplicates() use-case better
- as we're only looking at tags, not their contents... avoid unnecessary
data shuffling and the code is a little simpler too
Panu Matilainen [Mon, 29 Mar 2010 07:59:58 +0000 (10:59 +0300)]
Unbreak cpio archive path generation
- fixes regression from commit
45e2d4e1d0260a9c07eb1daf0c68b82f602ad16f
- striplen was never set on build at all, and the psm part was unused
too - either unused since forever or possibly related to repackaging
Panu Matilainen [Mon, 29 Mar 2010 06:35:25 +0000 (09:35 +0300)]
Oops, being a bit too strict on dependency qualifiers
- Forgot how nasty hack parseBits() was... its abusing multilang
support and the multilang support passes "C" if no lang is specified,
which certainly isn't a valid qualifier. Make multilang vs tag with
optional qualifiers different types in PreambleRec, which allows
handling this more sanely
- Additionally build-dependencies dont take any qualifiers now
Panu Matilainen [Mon, 29 Mar 2010 05:58:27 +0000 (08:58 +0300)]
Teach rpm about pre-transaction dependencies
- A pre-transaction dependency is generally anything that must be
available at the start of the transaction, and cannot be resolved
by packages *in* the transaction. This lets %pretrans scriptlet
dependencies be expressed correctly, and could be also used for
other kinds of pre-conditions.
- rpmlib() dependencies are a special case of pre-trans dependencies
but leaving them handled separately as they cannot be provided by
anything in rpmdb either, whereas pretrans dependencies can.
Panu Matilainen [Mon, 29 Mar 2010 05:30:18 +0000 (08:30 +0300)]
Always fail build on unknown dependency qualifiers
- previously unknown qualifiers would go unnoticed if they happened
be last (including being the only qualifier), eg Requires(pre,junk)
or Requires(junk) would be cheerfully accepted but Requires(junk,pre) not.
Panu Matilainen [Mon, 29 Mar 2010 05:27:35 +0000 (08:27 +0300)]
Always initialize tagflags to RPMSENSE_ANY
Panu Matilainen [Mon, 29 Mar 2010 04:20:33 +0000 (07:20 +0300)]
Report all enabled dependency bits in deptype format extension
- dont make assumptions about which bits can be enabled simultaneously,
just dump 'em all
Panu Matilainen [Mon, 29 Mar 2010 03:48:23 +0000 (06:48 +0300)]
Dont bother translators with dependency lookup debug messages
Panu Matilainen [Mon, 29 Mar 2010 03:37:27 +0000 (06:37 +0300)]
Lose unused RPMSENSE_PATCHES
- this was never used by upstream at least, and the "patch rpms" this
refers to was abandoned by Suse in favor of deltarpm a long time ago...
Panu Matilainen [Mon, 29 Mar 2010 03:29:19 +0000 (06:29 +0300)]
Remove redundant assignments
- everything but buildrequires goes to pkg->header, no point having
this separately set in each case
Panu Matilainen [Mon, 29 Mar 2010 03:27:44 +0000 (06:27 +0300)]
Group the tag cases a bit more logically in parseRCPOT()
Panu Matilainen [Mon, 29 Mar 2010 03:17:30 +0000 (06:17 +0300)]
Drop "support" for per-scriptlet build-requires
- Rpm has never done anything useful with "BuildRequires(prep): foo"
style dependencies other than recorded them in src.rpms, nor is there much
point in properly supporting this in the future either
- Frees up four more bits from rpmsenseFlags for better uses
Panu Matilainen [Mon, 29 Mar 2010 02:59:54 +0000 (05:59 +0300)]
Free up three bits from rpmsenseFlags
- pass the wanted dependency type to addReqProv() as tagN argument
(previously unused, eh...) instead of taking up three precious bits
for internal-only purposes from a constrained bitfield
Panu Matilainen [Fri, 26 Mar 2010 15:07:00 +0000 (17:07 +0200)]
Add ds.Instance() method to python bindings
- the naming between header/rpmte/rpmds "instance" is wonderfully
inconsistent... oh well
Panu Matilainen [Fri, 26 Mar 2010 15:00:20 +0000 (17:00 +0200)]
Take advantage of rpmdsCurrent() in python bindings
Panu Matilainen [Fri, 26 Mar 2010 14:54:16 +0000 (16:54 +0200)]
Add public rpmdsCurrent() function for creating a single ds from iteration
- Permits extracting single dependencies from a set with instance
number inherited without exposing rpmdsSetInstance() kind of thing
- Also faster than calling rpmdsSingle(rpmdsTagN(ds), rpmdsN(ds)....)
where each call re-re-re-re-validates the indexes
Panu Matilainen [Fri, 26 Mar 2010 14:45:46 +0000 (16:45 +0200)]
Split single ds generation into helper function, clean up a bit
- allows nicer handling of ds instance without special cases
Panu Matilainen [Fri, 26 Mar 2010 14:14:52 +0000 (16:14 +0200)]
Simplify rpmcliTransaction() a bit
- No need for separate the install and erase cases here for problem
filter flags: we only check disk space for added packages so this
is just a no-op anyway
- Also no need to fiddle with eflags for ordering, we always want
ordering unless --noorder specified
Héctor Daniel Cabrera [Fri, 26 Mar 2010 13:51:00 +0000 (13:51 +0000)]
l10n: Updates to Spanish (Castilian) (es) translation
Transmitted-via: Transifex (www.transifex.net)
Panu Matilainen [Fri, 26 Mar 2010 13:28:25 +0000 (15:28 +0200)]
Oops, diskspace problem messed up from the argument shuffle
- fixes regression from commit
12392d93e2006ac63f918a154f29283a14fb98cf
Panu Matilainen [Fri, 26 Mar 2010 13:22:13 +0000 (15:22 +0200)]
Record originating header instance to all problems where relevant
- currently unused but allows tracking things like file conflicts
back to the originating header directly from the problem set
Panu Matilainen [Fri, 26 Mar 2010 13:11:57 +0000 (15:11 +0200)]
Take advantage of rpmdsInstance() in dependency problem reporting
- Other than having less arguments to pass here and there, doesn't
give any immediate advantage, but with the origin of installed
dependency stored in problem sets, it'd be possible to track back
a dependency problem back to the originating header
Panu Matilainen [Fri, 26 Mar 2010 12:56:14 +0000 (14:56 +0200)]
Record header instance in dependency sets + add API for retrieving
Panu Matilainen [Fri, 26 Mar 2010 12:18:45 +0000 (14:18 +0200)]
Merge checkPackageSet() into checkInstDeps()
- checkPackageSet() got refactored out of being useful standalone
while I wasn't looking :)
Panu Matilainen [Fri, 26 Mar 2010 11:36:36 +0000 (13:36 +0200)]
Avoid unnecessary argument now that problem pkgNEVRA is always te NEVRA
Panu Matilainen [Fri, 26 Mar 2010 11:20:17 +0000 (13:20 +0200)]
Change the problem data arrangement for dependency problems
- pkgNEVR in problems is now always the NEVR of the transaction element
triggering the problem, and altNEVR is the other affected package,
dependency string is stored in the problem string attribute
- no user visible changed, except for somebody crazy enough to try to
do something other than print the problem message strings
- we wouldn't really need to strdup() the pkgNEVR in problems now,
but leaving that alone for the moment...
Panu Matilainen [Fri, 26 Mar 2010 10:23:47 +0000 (12:23 +0200)]
Filter out duplicate problems when adding to element problem sets
- Problems associated with a transaction element are necessarily unique
to that element, so when filtered there we don't have to worry about
skipping dupes elsewhere like in merged sets. This can actually lead
to apparent duplicates in the current problem report output (eg in cases
where multiple packages provide the same dependency which would be
removed, like multilib packages), but this is only an artifact of
they way the problems are currently printed out.
- While this is still a dumb linear search, it can be several seconds
faster than the previous filtering in rpmpsPrint(), which is now
just a dumb convenience function.
Panu Matilainen [Fri, 26 Mar 2010 09:22:18 +0000 (11:22 +0200)]
Eliminate rpmpsAppend() from the API
- This was only a convenience function that shouldn't really have been
exported to begin with, and is not necessary at all - bury it
inside rpmte.c for now to hide lazy problem set allocation
- In the other news of the day... According to git, this happens to be
the 10000th commit to the master branch of this codebase.
Happy anniversary to rpm :P
Panu Matilainen [Fri, 26 Mar 2010 08:41:10 +0000 (10:41 +0200)]
Push problem creation argument sanitation to the level below
- rpmpsAppend() and rpmProblemCreate() have no use for fn/dn either,
its just stored in one string internally
- this is kinda unnecessary API break but these aren't used outside
rpm so it doesn't make much difference
Panu Matilainen [Fri, 26 Mar 2010 08:27:39 +0000 (10:27 +0200)]
Sanitize rpmteAddProblem() arguments
- lump fn/dn into one, in no case both are needed
- move altNEVR earlier to lump the generic attribute foo last
Panu Matilainen [Fri, 26 Mar 2010 07:31:00 +0000 (09:31 +0200)]
Use the new problem set iterator where it makes more sense
Panu Matilainen [Fri, 26 Mar 2010 07:21:06 +0000 (09:21 +0200)]
Use rpmpsMerge() for collecting element problems in rpmtsProblems()
Panu Matilainen [Fri, 26 Mar 2010 07:20:05 +0000 (09:20 +0200)]
Add a simple and dumb rpmpsMerge() function to merge two problem sets
Panu Matilainen [Fri, 26 Mar 2010 06:50:30 +0000 (08:50 +0200)]
Add a saner rpmps iteration interface
- simply return the actual problem objects from the iterator instead
of "index" which is not usable for anything outside rpmps.c
- implement rpmpsNexIterator() on top of the new rpmpsiNext() as
backwards compatibility for now
Panu Matilainen [Fri, 26 Mar 2010 05:09:47 +0000 (07:09 +0200)]
Handle NULL and the same literal problem pointer in rpmProblemCompare()
- if the pointers to compare are the same, the problem is the same
(even if NULL for our purposes)
- if they're not the same and either is NULL then they're not the same
Piotr Drąg [Fri, 26 Mar 2010 01:01:37 +0000 (01:01 +0000)]
l10n: Updates to Polish (pl) translation
Transmitted-via: Transifex (www.transifex.net)
Panu Matilainen [Thu, 25 Mar 2010 14:48:08 +0000 (16:48 +0200)]
Update translations for the rpmps -> rpmprob split
Panu Matilainen [Thu, 25 Mar 2010 14:46:39 +0000 (16:46 +0200)]
Split rpm problem type + its "methods" to separate source + header
- rpmps is just something that stores rpm problems, problems themselves
are individual and opaque "objects", deserving their own module
Panu Matilainen [Thu, 25 Mar 2010 14:22:53 +0000 (16:22 +0200)]
Add public function for testing problem equality
- turn around sameProblem() return, pay more attention to details
and make it public
- use it in rpmpsTrim() too
Panu Matilainen [Thu, 25 Mar 2010 14:06:07 +0000 (16:06 +0200)]
Lose unused ignoreProblem from rpmProblem struct
- this is an artifact from rpm 4.4.x-times, and even back then
nothing used it, the only api to set it was in python bindings and.. eww
- also killing this makes rpmpsTrim() do something semi-useful again
Panu Matilainen [Thu, 25 Mar 2010 10:45:37 +0000 (12:45 +0200)]
Minor cleanup to rpmpsGetProblem()
- avoid dumb pointer fiddles, ps->probs is just a bleeping array
Panu Matilainen [Thu, 25 Mar 2010 10:39:13 +0000 (12:39 +0200)]
Minor cleanup to rpmpsAppendProblem()
- dont bother adding NULL problems
- avoid dumb pointer fiddles, ps->probs is just a bleeping array
Panu Matilainen [Thu, 25 Mar 2010 10:35:05 +0000 (12:35 +0200)]
Minor cleanup to rpmpsFreeIterator()
Panu Matilainen [Thu, 25 Mar 2010 10:34:06 +0000 (12:34 +0200)]
Dont bother allocating iterator if there's no data to iterate
Panu Matilainen [Thu, 25 Mar 2010 09:34:24 +0000 (11:34 +0200)]
Clean up verifyDependencies() a bit, no functional changes
- only init problem iterator if there are problems
- use problems and nevra from the faked up transaction element
- the return code is the number of problems, no need to count separately
Panu Matilainen [Thu, 25 Mar 2010 09:13:16 +0000 (11:13 +0200)]
Sanitize verifyscript handling a bit
- set the transaction scriptfd once in rpmcliVerify() instead of
dupping and closing and dupping and closing for every verified package
Panu Matilainen [Thu, 25 Mar 2010 08:31:47 +0000 (10:31 +0200)]
Revert "Transaction element type is not a bitfield but a plain old enum"
- Element types are not a bitfield but they're declared this way to
permit easy filtering on iteration.
- This reverts commit
6ed64c001f667ad8fb8bdec01f5ca54f57c44270.
Jindrich Novy [Wed, 24 Mar 2010 20:12:27 +0000 (21:12 +0100)]
Add Epoch, Architecture and BugURL to rpm -qi and fix alignment (RhBug:575499)
Piotr Drąg [Wed, 24 Mar 2010 12:26:44 +0000 (12:26 +0000)]
l10n: Updates to Polish (pl) translation
Transmitted-via: Transifex (www.transifex.net)
Panu Matilainen [Wed, 24 Mar 2010 09:04:31 +0000 (11:04 +0200)]
Remove rpmteColorDS() from the API/ABI
- this gets called on transaction element initialization anyway,
there's no reason why anybody should need to call it from outside
Ville Skyttä [Fri, 19 Mar 2010 18:09:15 +0000 (20:09 +0200)]
Document deprecation of mi.count() and ds.Count().
Ville Skyttä [Wed, 3 Mar 2010 18:49:42 +0000 (20:49 +0200)]
More here-doc skipping fixes for perl.req (#128).
Panu Matilainen [Wed, 24 Mar 2010 08:24:55 +0000 (10:24 +0200)]
Add RPMBUILD_ISFOO constants to python rpmb module (ticket #123)
Panu Matilainen [Wed, 24 Mar 2010 07:53:25 +0000 (09:53 +0200)]
Add __bool__() / __nonzero__() method to python rpmmi objects (ticket #153)
- Objects supporting __len__() use (len > 0) for boolean representation,
which normally makes sense but as the match iterator count is often
zero despite the iterator actually existing and returning something,
and breaks existing code (rpmlint at least)
- Adding a __bool__() (known as __nonzero__() in Python < 3) method
returning true for non-NULL iterator fixes this and gives more
meaningful answers than pre 4.8.0 which simply always returned True
Panu Matilainen [Tue, 23 Mar 2010 14:21:27 +0000 (16:21 +0200)]
First take at pluggable file attribute + dependency extraction system
- move most of the hardwired classification logic from rpmfc C-code
to macro-based configuration, supporting drop-in addition of arbitrary
new attributes + dependency extractors based on regex matching of
libmagic file types and paths
- just the initial rough conversion of our built-in dependency types,
various open questions + todo-items remain, plus likely fair amount
of more-or-less subtle breakage
Panu Matilainen [Tue, 23 Mar 2010 14:29:59 +0000 (16:29 +0200)]
Fix fallout from rpmgi.h moving to internal path
Héctor Daniel Cabrera [Mon, 22 Mar 2010 17:02:19 +0000 (17:02 +0000)]
l10n: Updates to Spanish (Castilian) (es) translation
Transmitted-via: Transifex (www.transifex.net)
Panu Matilainen [Mon, 22 Mar 2010 13:48:26 +0000 (15:48 +0200)]
Lose leftover RPMDBI_ARGLIST rpmgi pseudo tag
- should've really been in commit
a2156379641e48fbad88d1088eb06d7bfa78927c
Panu Matilainen [Mon, 22 Mar 2010 13:43:05 +0000 (15:43 +0200)]
Mop up leftovers from past times
Panu Matilainen [Mon, 22 Mar 2010 13:20:30 +0000 (15:20 +0200)]
Update translations to shed non-existent messages from recent churn
Panu Matilainen [Mon, 22 Mar 2010 13:14:39 +0000 (15:14 +0200)]
Oops, remember to free transaction set in rpmgi
- dumb regression from commit
a0c2c6ed83a166d35ad3d3e8b22a08aae5420731
Panu Matilainen [Mon, 22 Mar 2010 12:50:50 +0000 (14:50 +0200)]
Lose completely unused rpmte_debug junk
Panu Matilainen [Mon, 22 Mar 2010 12:45:49 +0000 (14:45 +0200)]
Take a transaction set reference on verified db iteration
- forward linking hasn't been an issue since >= 4.6.0...
Panu Matilainen [Mon, 22 Mar 2010 12:44:14 +0000 (14:44 +0200)]
Document rpmteHeader() returning a new header reference
Panu Matilainen [Mon, 22 Mar 2010 12:23:05 +0000 (14:23 +0200)]
Further rpmio NULL sanity checks
- instead of blowing up with asserts, return error codes / NULLs
Panu Matilainen [Mon, 22 Mar 2010 12:09:58 +0000 (14:09 +0200)]
Lose FDSANE() macro, check in c2f() and callers instead
Panu Matilainen [Mon, 22 Mar 2010 11:47:32 +0000 (13:47 +0200)]
Change most of the FDSANE() asserts into good old NULL-checks
- blowing up with an assert failure deep inside io "library" is not
a very friendly thing to do...
Panu Matilainen [Mon, 22 Mar 2010 11:25:57 +0000 (13:25 +0200)]
Lose the useless rpmio refcounting debug junk
- the rpmio API always had this goo, should've gotten rid of it
back in commit
dbdbe8010cd944f026a5a4e5d071eb31d29d81c4 but .. oh well
Panu Matilainen [Mon, 22 Mar 2010 11:05:38 +0000 (13:05 +0200)]
Lose the useless rpmdb refcounting debug junk + switches
- get the debug messages out of API, this is what should've been in commit
dbdbe8010cd944f026a5a4e5d071eb31d29d81c4
Panu Matilainen [Mon, 22 Mar 2010 11:04:26 +0000 (13:04 +0200)]
Lose the useless rpmds refcounting debug junk + switches
- get the debug messages out of API, this is what should've been in commit
dbdbe8010cd944f026a5a4e5d071eb31d29d81c4
Panu Matilainen [Mon, 22 Mar 2010 10:54:44 +0000 (12:54 +0200)]
Lose the useless rpmps refcounting debug junk
- get the debug messages out of API, this is what should've been in commit
dbdbe8010cd944f026a5a4e5d071eb31d29d81c4
Panu Matilainen [Mon, 22 Mar 2010 10:49:45 +0000 (12:49 +0200)]
Lose the useless rpmfi refcounting etc debug messages + debug switches
- get the debug messages out of API, this is what should've been in commit
dbdbe8010cd944f026a5a4e5d071eb31d29d81c4
Panu Matilainen [Mon, 22 Mar 2010 10:40:27 +0000 (12:40 +0200)]
Lose the useless rpmts refcounting debug messages + debug switches
- get the debug messages out of API, this is what should've been in commit
dbdbe8010cd944f026a5a4e5d071eb31d29d81c4 - just wtf have I been thinking?
- also tolerate NULL passed to rpmtsLink() and rpmtsUnlink()
Panu Matilainen [Mon, 22 Mar 2010 09:05:17 +0000 (11:05 +0200)]
Handle obsoletions within the added package set automatically
- similarly to skipping/replacing different versions of a package
getting added to transaction, detect obsoletion too and
skip/replace to avoid installing packages obsoleted by something
else in the set
Panu Matilainen [Mon, 22 Mar 2010 08:37:32 +0000 (10:37 +0200)]
Use package NEVRA for replaced/skipped messages, simplify
- dependency strings look funny when we're talking about packages,
use the full NEVRA instead
- unify the logging calls
Panu Matilainen [Mon, 22 Mar 2010 08:02:49 +0000 (10:02 +0200)]
Avoid redundant headerGet()'s on arch and os
Panu Matilainen [Mon, 22 Mar 2010 07:46:51 +0000 (09:46 +0200)]
Refactor duplicate checking out of rpmtsAddInstallElement()
Panu Matilainen [Mon, 22 Mar 2010 06:42:35 +0000 (08:42 +0200)]
Eliminate redundant if
Panu Matilainen [Fri, 19 Mar 2010 17:58:31 +0000 (19:58 +0200)]
There's nothing to translate in fts.c, remove from POTFILES.in
- should've been in commit
ad43e72d70604eac223fd20c97ca990fa4936ac6, oh well
Panu Matilainen [Fri, 19 Mar 2010 17:55:54 +0000 (19:55 +0200)]
Dont bother hanging onto header in rpmgi
- rpmgi has no use for the header and we dont really need it for iteration
either, just return the header we opened and let caller free
Panu Matilainen [Fri, 19 Mar 2010 17:35:19 +0000 (19:35 +0200)]
Lose some unused leftover rpmgi goo
Panu Matilainen [Fri, 19 Mar 2010 17:25:23 +0000 (19:25 +0200)]
Return headers from rpmgiNext() directly
Panu Matilainen [Fri, 19 Mar 2010 17:15:44 +0000 (19:15 +0200)]
Eliminate rpmgi from public API & ABI