Panu Matilainen [Wed, 28 Jan 2009 11:21:39 +0000 (13:21 +0200)]
Honor rpmtd type, not tag type, in rpmtdClass() (ticket #25)
Panu Matilainen [Wed, 28 Jan 2009 11:17:17 +0000 (13:17 +0200)]
Add API for getting the class of tag type directly
- no point requiring going through rpmTagGetType() if we already have
the type at hand, and in some nutty cases (wrt extensions) these dont
even always match
- rpmTagGetClass() is now just a convenience wrapper around
rpmTagTypeGetClass()
Panu Matilainen [Tue, 27 Jan 2009 12:21:40 +0000 (14:21 +0200)]
Add RPMTAG_SOURCERPM to gpg-pubkeys in rpmdb
- ptooey, but otherwise gpg-pubkey "packages" are considered source packages,
thanks to Ville Skyttä for pointing this out
Alexandr D. Kanevskiy [Fri, 23 Jan 2009 22:18:34 +0000 (00:18 +0200)]
Added ARMv7 architecture support
Panu Matilainen [Fri, 23 Jan 2009 12:34:08 +0000 (14:34 +0200)]
Check for binaries in noarch packages at build-time
- this will only catch elf files for now, but better than nothing
- default to terminating build (as binaries in noarch package is pretty
nasty thing to do), permit macro override just in case though
- only works for internal dep generator
Panu Matilainen [Fri, 23 Jan 2009 08:08:53 +0000 (10:08 +0200)]
Update dbi tag names for Filemd5s -> Filedigests change, oops..
Panu Matilainen [Thu, 22 Jan 2009 10:09:45 +0000 (12:09 +0200)]
Return NULL instead of blowing up on invalid rpmpsGetProblem()
- thanks to Pixel for spotting
Panu Matilainen [Tue, 20 Jan 2009 12:48:05 +0000 (14:48 +0200)]
Add a bit of documentation for headerGet() flags
Panu Matilainen [Tue, 20 Jan 2009 12:16:58 +0000 (14:16 +0200)]
Grab dependency name & version strings as argv-style arrays
- Related to ticket #22, this fixes rpmdsMerge() on data grabbed from
header. Prior to this, the following would blow up with memory corruption
as headerGet() string array wasn't NULL-terminated
rpmds d1 = rpmdsNew(h, RPMTAG_REQUIRENAME, 0);
rpmds d2 = rpmdsSingle(RPMTAG_REQUIRENAME, "foo", "1", 0);
rpmdsMerge(&d1, d2);
Panu Matilainen [Tue, 20 Jan 2009 12:15:24 +0000 (14:15 +0200)]
Add headerGet() flag to request argv-style NULL-terminated string arrays
- easy to do and some places would like the data this way so why not...
- also add corresponding rpmtd flag so caller can verify he got what
was requested
Panu Matilainen [Tue, 20 Jan 2009 10:55:35 +0000 (12:55 +0200)]
rpmdsMerge() expects ds->N and ds->EVR as argv-style arrays (ticket #22)
- use rpmdsDupArgv() instead of cloning headerGet() behavior to fix this for
rpmdsSingle() and rpmdsThis() generated dependency sets
- this is a regression from rpm 4.4.x, but for rpmdsNew() created sets
rpmdsMerge() has never worked as headerGet() doesn't return NULL
terminated arrays
Panu Matilainen [Mon, 19 Jan 2009 12:50:18 +0000 (14:50 +0200)]
Update / clarify documentation on building API/hacking docs
Panu Matilainen [Mon, 19 Jan 2009 12:37:09 +0000 (14:37 +0200)]
Don't segfault on "" rcfiles argument (spotted by Pixel)
Panu Matilainen [Mon, 19 Jan 2009 12:29:48 +0000 (14:29 +0200)]
Missing space in Russian translation (patch from Mandriva)
Panu Matilainen [Mon, 19 Jan 2009 12:27:39 +0000 (14:27 +0200)]
Use temporary table for Depends DB in sqlite too (Olivier Thauvin)
Panu Matilainen [Mon, 19 Jan 2009 12:25:55 +0000 (14:25 +0200)]
Fix segfault if ts rootdir is NULL (Pixel)
Panu Matilainen [Mon, 19 Jan 2009 12:21:45 +0000 (14:21 +0200)]
Fix memleak from i18n strings if retrieved with HEADERGET_ALLOC
Panu Matilainen [Sat, 17 Jan 2009 12:15:50 +0000 (14:15 +0200)]
Make it possible to disable %pre- and %posttrans scriptlets (rhbz#475582)
- rpmtransFlags_e is overcrowded, map to "regular" %pre and %post
scriptlet behavior for now
- split up the transaction flags at some point to permit more precise
control
Panu Matilainen [Fri, 16 Jan 2009 07:09:40 +0000 (09:09 +0200)]
Add getenv macro, use instead of $(echo $HOME) for defauls
- inspired by http://lists.rpm.org/pipermail/rpm-maint/2009-January/002332.html
Jindrich Novy [Thu, 15 Jan 2009 12:25:08 +0000 (13:25 +0100)]
Update Brazilian Portuguese translation (rhbz#480040)
Panu Matilainen [Thu, 15 Jan 2009 08:28:13 +0000 (10:28 +0200)]
Add extra parameter to rpmteClose() to control fi behavior
- pre/posttrans scripts should leave te->fi alone, now it was getting
nuked, oops..
Panu Matilainen [Thu, 15 Jan 2009 07:22:58 +0000 (09:22 +0200)]
Make sure global state gets NULLed on free
- otherwise repeated read config -> free config like rpmbuild does
will crash and burn
- somewhat kludgy, figure a better way to do this
Panu Matilainen [Wed, 14 Jan 2009 13:18:25 +0000 (15:18 +0200)]
Add central Lua shutdown function and use it
- makes sure lua garbage collect runs
- memory used by lua gets freed
Panu Matilainen [Wed, 14 Jan 2009 13:09:25 +0000 (15:09 +0200)]
Add librpm level lua extension stub
- inspired by rpm5.org, details differ
- just rpm.vercmp() for now
- push all Lua initialization to rpmLuaInit()
Panu Matilainen [Wed, 14 Jan 2009 12:39:55 +0000 (14:39 +0200)]
Add rpmluaGetGlobalState() to internal lua api
- retrieve global state, init if needed
- inspired by rpm5.org, details differ
- use it for initialisation in rpmrc instead of abusing rpmluaGetPrintBuffer
Panu Matilainen [Wed, 14 Jan 2009 08:52:41 +0000 (10:52 +0200)]
Actually check for dbenv->failchk() exit code
- failchk() can't resolve all cases, we shouldn't try to continue if it fails
Jindrich Novy [Tue, 13 Jan 2009 18:28:47 +0000 (19:28 +0100)]
Remove redundant anyarch check
Jindrich Novy [Tue, 13 Jan 2009 18:26:35 +0000 (19:26 +0100)]
Simplify group tag inheritance for a bit
Jindrich Novy [Tue, 13 Jan 2009 08:20:00 +0000 (09:20 +0100)]
Inherit group tag from the main package if unspecified (rhbz#470714)
Jindrich Novy [Mon, 12 Jan 2009 15:15:27 +0000 (16:15 +0100)]
Ignore BuildArch tags for anyarch actions (rhbz#442105)
Florian Festi [Fri, 9 Jan 2009 16:27:35 +0000 (17:27 +0100)]
Make the data array part of the hash bucket to save one pointer per bucket
Panu Matilainen [Mon, 12 Jan 2009 10:57:03 +0000 (12:57 +0200)]
Updated German translation (Fabian Affolter)
Jindrich Novy [Sun, 11 Jan 2009 15:54:07 +0000 (16:54 +0100)]
Don't check package BuildRequires when doing --rmsource (rhbz#452477)
- export doRmSource() and make it more consistent with the API
Jindrich Novy [Sun, 11 Jan 2009 14:23:59 +0000 (15:23 +0100)]
Don't fail because of missing sources when only spec
removal is requested (rhbz #472427)
Panu Matilainen [Fri, 9 Jan 2009 15:13:19 +0000 (17:13 +0200)]
javadeps format string fix from Pixel
Panu Matilainen [Fri, 9 Jan 2009 15:05:40 +0000 (17:05 +0200)]
Don't bother calculating string sizes manually
- ...and one less strcpy() to grep for
Panu Matilainen [Fri, 9 Jan 2009 14:59:43 +0000 (16:59 +0200)]
Fix buffer overflow on oversized filelist entries (susebz#397006)
- original fix by Dirk Mueller
Florian Festi [Fri, 9 Jan 2009 14:36:36 +0000 (15:36 +0100)]
Implement dbiGet and dbiPut as normal function
Florian Festi [Fri, 9 Jan 2009 14:25:56 +0000 (15:25 +0100)]
Remove unused database intex functions: dbiCdup, dbiAssociate, dbiPget, dbiJoin
and their implementations in the backends
Panu Matilainen [Fri, 9 Jan 2009 13:05:40 +0000 (15:05 +0200)]
Don't try to create "" directories
Panu Matilainen [Thu, 8 Jan 2009 13:04:58 +0000 (15:04 +0200)]
Update docs wrt gpg path macro (rhbz#476201)
Panu Matilainen [Thu, 8 Jan 2009 11:57:59 +0000 (13:57 +0200)]
Don't bother translators with messages from unused utilities (rhbz#466834)
- these things dont even get built normally, translations hardly needed
Panu Matilainen [Thu, 8 Jan 2009 11:17:22 +0000 (13:17 +0200)]
Delay NSS initialization until actually used
- since NSS is allergic (ie becomes non-functional) after forking, delay
it's initialization until really needed, ie lazy init in rpmDigestInit()
- however as NSS init can fail if attempted in completely empty chroot,
we force crypto init to happen at transaction set create time, forking
past that is pretty much doomed anyway
- this is the other half of the fix for rhbz#476737, and similar case
noticed by Pixel in Mandriva (due to urpm forking)
Panu Matilainen [Thu, 8 Jan 2009 11:03:55 +0000 (13:03 +0200)]
Only touch _crypto_initialized if we actually change it
Panu Matilainen [Thu, 8 Jan 2009 10:24:50 +0000 (12:24 +0200)]
Cast to intptr_t instead of int to kick out the final warning
Panu Matilainen [Thu, 8 Jan 2009 10:07:54 +0000 (12:07 +0200)]
Include isaname support for arm (Kedar Sovani)
Panu Matilainen [Thu, 8 Jan 2009 09:47:31 +0000 (11:47 +0200)]
Make rpm_tid_t unsigned type to shut up remaining compiler warnings
Panu Matilainen [Thu, 8 Jan 2009 08:38:29 +0000 (10:38 +0200)]
Don't segfault in pgpPubkeyFingerprint() if rpmDigest* fails
- this can happen if NSS is not properly initialized, such as after
forking
- partial fix to rhbz#476737 (as in "doesn't crash"), deeper issue is
that NSS init needs to be done later than we do now
Panu Matilainen [Wed, 7 Jan 2009 13:54:06 +0000 (15:54 +0200)]
rpmRelocateFileList() doesn't need rpmte for anything, just file states
Panu Matilainen [Mon, 5 Jan 2009 15:43:37 +0000 (17:43 +0200)]
Validate + sort relocations in rpmte at create time
- instead of storing "raw" relocations in rpmte to be passed down to
rpmRelocateFileList() for copying over and sorting etc, do the work
just once at rpmteNew() time
- much of the real work to relocate header contents still needs to be done
twice as the header gets thrown and needs to be reconstructed in
rpmtsProcess()
Panu Matilainen [Sat, 20 Dec 2008 07:41:04 +0000 (09:41 +0200)]
Split saving relocations to header out of relocateFileList()
- also realizing we can just headerMod() the td's we originally got,
they contain the modified data now... duh :)
Panu Matilainen [Fri, 19 Dec 2008 22:43:51 +0000 (00:43 +0200)]
Split sorting out of relocateFileList()
Panu Matilainen [Fri, 19 Dec 2008 18:05:55 +0000 (20:05 +0200)]
Split RPMTAG_INSTPREFIXES addition out of relocateFileList()
- just splicing up the monster function...
Panu Matilainen [Mon, 5 Jan 2009 13:02:34 +0000 (15:02 +0200)]
Relocation needs to be called even if no relocs specified
- relocatable packages expect RPM_INSTALL_PREFIX in scriptlets even
default prefix is used, relocation adds RPMTAG_INSTPREFIXES
Panu Matilainen [Mon, 5 Jan 2009 09:25:03 +0000 (11:25 +0200)]
Lose deprecated DETAILS_AT_TOP doxygen setting
Panu Matilainen [Mon, 5 Jan 2009 09:18:46 +0000 (11:18 +0200)]
Eliminate header magic duplication all over the place, export it
- avoid several copies of the same thing...
- there are valid reasons for wanting to know header magic outside librpm,
export it as rpm_header_magic
Panu Matilainen [Mon, 5 Jan 2009 08:42:54 +0000 (10:42 +0200)]
Use enumeration for header flags
Panu Matilainen [Mon, 5 Jan 2009 08:39:15 +0000 (10:39 +0200)]
Remove unnecessary HEADER_FOOTAG definitions
- header.c can include rpmtag.h these days
Panu Matilainen [Fri, 2 Jan 2009 10:27:32 +0000 (12:27 +0200)]
rpmte struct is now fully opaque throughout rpm
Panu Matilainen [Fri, 2 Jan 2009 10:25:02 +0000 (12:25 +0200)]
Use rpmteSetFd() instead of direct access to rpmte structure
Panu Matilainen [Fri, 2 Jan 2009 10:21:52 +0000 (12:21 +0200)]
Add rpmteSetFd() (internal) function
- this is dumb as only rpmInstallSourcePackage() needs, figure out something
better eventually
Jindrich Novy [Tue, 23 Dec 2008 08:48:16 +0000 (09:48 +0100)]
Increase XZ decompression memlimit
Panu Matilainen [Mon, 22 Dec 2008 13:30:23 +0000 (15:30 +0200)]
Eliminate silly and now unnecessary rpmts(Set)RelocateElement() stuff
Panu Matilainen [Mon, 22 Dec 2008 13:29:52 +0000 (15:29 +0200)]
Perform relocations from rpmte instead of rpmfi
- rpmte has all the necessary bits at hand, rpmfi does not
- avoids silly ping-pong through transaction set to get to the ts element
- avoids recalculating number of relocations
- avoids accessing rpmte struct outside rpmte.c
Panu Matilainen [Fri, 19 Dec 2008 16:59:38 +0000 (18:59 +0200)]
Perform relocations *before* filling out rpmfi structure
- no need to fuss about recreating bits and pieces of rpmfi after the fact
Panu Matilainen [Fri, 19 Dec 2008 16:49:09 +0000 (18:49 +0200)]
Avoid a whole lotta shuffling wrt file info header
- We're not making copies of header or anything here, all this linking
and unlinking is unnecessary. Just have relocateFileList() modify the
header we pass to it, as that's what it's doing *anyway*
Panu Matilainen [Fri, 19 Dec 2008 15:46:16 +0000 (17:46 +0200)]
Ignore rpmfi flags for basenames + dirnames
- we make a copy if we modify, doesn't make a difference
Panu Matilainen [Fri, 19 Dec 2008 15:44:33 +0000 (17:44 +0200)]
Sanitize file modes handling in relocation
- we dont modify fi->fmodes so fi->scareFlags is irrelevant, just use minmem
always
- use rpmtd accessors instead of direct access
Panu Matilainen [Fri, 19 Dec 2008 15:34:40 +0000 (17:34 +0200)]
Remove unused file/dir color calculations
Panu Matilainen [Fri, 19 Dec 2008 15:27:28 +0000 (17:27 +0200)]
Save some trouble by grabbing malloced copy of dir indexes
Panu Matilainen [Fri, 19 Dec 2008 14:19:32 +0000 (16:19 +0200)]
Remove couple of leftover, unused local variables
- one more fi-> access still lurking...
Panu Matilainen [Fri, 19 Dec 2008 13:05:54 +0000 (15:05 +0200)]
Eliminate last remaining fi-internals use from transaction.c
Panu Matilainen [Fri, 19 Dec 2008 13:04:51 +0000 (15:04 +0200)]
Add internal rpmfi apis to deal with fingerprints, use them
Panu Matilainen [Fri, 19 Dec 2008 12:57:37 +0000 (14:57 +0200)]
Eliminate file info set argument to rpmpsmNew()
- ts element carries the info already, no need for separate argument
Panu Matilainen [Fri, 19 Dec 2008 12:34:45 +0000 (14:34 +0200)]
Optionally reload ts element file info in rpmteOpen(), free in close
- avoids having to muck with te internals here and there...
Panu Matilainen [Fri, 19 Dec 2008 12:13:48 +0000 (14:13 +0200)]
Use rpmteSetFI() to clear memory instead of direct access
- also fixes memleak in case rpmfi has no files
Panu Matilainen [Fri, 19 Dec 2008 12:04:18 +0000 (14:04 +0200)]
Add rpmteSetFI() ts element method
Panu Matilainen [Fri, 19 Dec 2008 11:18:31 +0000 (13:18 +0200)]
Free rpmfi fingerprints in rpmfiFree()
Florian Festi [Thu, 18 Dec 2008 10:57:02 +0000 (11:57 +0100)]
Reduce the hash size of the fingerPrintCache by factor 4
Florian Festi [Thu, 18 Dec 2008 10:54:45 +0000 (11:54 +0100)]
Do only add symlinks the the first rpmFpHash as these are the only one we really need in there.
Also reduce the hash size.
Florian Festi [Thu, 18 Dec 2008 08:41:12 +0000 (09:41 +0100)]
Reduce the size of the FpHashes by factor 4.
It turns out that large hashes leave a lot of buckets
empty without really reducing the maximum of collisions
a lot. Tests show that the collision lists are only 2.3
items on average and the maximum is only about 1.5 worse
than with a big hash table (~12 for large hashes).
Panu Matilainen [Thu, 18 Dec 2008 09:48:09 +0000 (11:48 +0200)]
Oops, rpmfiFInode() gone missing...
- forgotten from commit
9c15574bae8b11a7381c01a1af39e0d59558bad5
Panu Matilainen [Thu, 18 Dec 2008 08:01:01 +0000 (10:01 +0200)]
Check chroot() result in psm too (Pixel)
- bail out early if it fails instead of blindly continuing and potentially
messing in real root (chroot can fail for priviledged user too)
Panu Matilainen [Thu, 18 Dec 2008 07:51:37 +0000 (09:51 +0200)]
Permit --noscripts on verify (to disable %verifyscript execution)
- this used to work but got broken by the rpmi/rpmq/... unification
Panu Matilainen [Mon, 15 Dec 2008 08:26:45 +0000 (10:26 +0200)]
Check for termination signals during query loops
Panu Matilainen [Thu, 11 Dec 2008 08:17:48 +0000 (10:17 +0200)]
Add public rpmfi function for retrieving digest algorithm of the set
- the information is already available through rpmfiFDigest() but that
requires valid iteration index to be active, whereas the digest algo
is per info set, not per file
Panu Matilainen [Thu, 11 Dec 2008 08:11:59 +0000 (10:11 +0200)]
Avoid direct access to rpmfi directory indexes
Panu Matilainen [Thu, 11 Dec 2008 08:07:41 +0000 (10:07 +0200)]
Add (internal) rpmfi accessor for dir indexes
- except for dnli->active setting in dnlInitIterator(), "give me
directory matching this basename index" would be sufficient
Panu Matilainen [Thu, 11 Dec 2008 08:01:10 +0000 (10:01 +0200)]
More rpmfi direct access avoidance in fsm
- the remaining bits need further accessors / refactoring
Panu Matilainen [Thu, 11 Dec 2008 07:54:29 +0000 (09:54 +0200)]
Avoid most of direct rpmfi accesses in dnlInitIterator()
- need to add an accessor function for fi->dil info
Panu Matilainen [Thu, 11 Dec 2008 07:52:31 +0000 (09:52 +0200)]
Avoid bunch of now unnecessary direct accesses to rpmfi struct in fsm
Panu Matilainen [Thu, 11 Dec 2008 07:23:40 +0000 (09:23 +0200)]
Use indexed accessors instead of direct rpmfi struct access in fsmMapFCaps()
- also rpmts is unused here, remove
Panu Matilainen [Thu, 27 Nov 2008 09:19:24 +0000 (11:19 +0200)]
Avoid bunch of unnecessary direct fi-> accesses for file and dir count
Panu Matilainen [Thu, 11 Dec 2008 07:15:27 +0000 (09:15 +0200)]
Use indexed rpmfi accessors instead of fiddling with iterator index
- saving and restoring rpmfi iterator index has unwanted side-effects
- reverts brokenness from
6fd987b7291fb1306297c193f4ab01bf6cd02618
Panu Matilainen [Thu, 11 Dec 2008 06:57:16 +0000 (08:57 +0200)]
Add indexed accessors for rpmfi data, internal only for now
- fsm in particular wants random access to rpmfi data and there's little
reason to deny it, file info data is not going to move to linked lists
or anything like that anytime soon, permitting indexed access allows
eliminating direct accesses to rpmfi struct
Florian Festi [Mon, 8 Dec 2008 16:46:36 +0000 (17:46 +0100)]
use RPMFI_KEEPHEADER instead of numerical constant
Florian Festi [Wed, 3 Dec 2008 09:59:05 +0000 (10:59 +0100)]
Kill rpmfiUpdateState and free all the rpmfis as soon as file conflict check is done
Florian Festi [Wed, 3 Dec 2008 09:39:48 +0000 (10:39 +0100)]
Move ->actions from rpmfi to rpmfs
and adjust all code using it
also "revert"
a4e345455d817ce6c56940600d652ee3ae0aa5d5
"Move file action calculations to rpmfiNew() where possible"
Florian Festi [Tue, 2 Dec 2008 09:11:44 +0000 (10:11 +0100)]
Move the run time part of fstates from rpmfi to rpmfs. Keep fstates in rpmfi as long as it is a real tag read from the rpmdb.
Florian Festi [Mon, 1 Dec 2008 20:34:59 +0000 (21:34 +0100)]
Create a new datastructure rpmfs aka File States that contains the information what to do with the files of an transaction element.
This patch moves rpmfi->replaced over to rpmfs. Move struct members to follow.