Panu Matilainen [Tue, 25 Nov 2008 11:44:51 +0000 (13:44 +0200)]
Use ts element, not fi header for PSM_PKGINSTALL (PSM_POST + PSM_INIT)
Panu Matilainen [Tue, 25 Nov 2008 10:53:46 +0000 (12:53 +0200)]
Use ts element, not fi header in PSM_RPMIO_FLAGS and PSM_RPMDB_ADD
Panu Matilainen [Tue, 25 Nov 2008 10:39:37 +0000 (12:39 +0200)]
Make psm scriptlet operations use ts element header instead of fi
- this breaks %verifyscript operation (temporarily)
Panu Matilainen [Tue, 25 Nov 2008 10:22:10 +0000 (12:22 +0200)]
Lose now unnecessary PSM_RPMDB_LOAD stage and rpmpsmSetFI()
Panu Matilainen [Tue, 25 Nov 2008 10:17:47 +0000 (12:17 +0200)]
Rework rpmtsProcess() to use rpmteOpen+Close for both install and erase
- both cases behave fairly symmetrically now
- helps streamlining the process, we get the transaction element and
file info for it before creating the package state machine so we dont'
need to fuss around with updated file info etc
Panu Matilainen [Tue, 25 Nov 2008 09:51:30 +0000 (11:51 +0200)]
Teach rpmteOpen() and rpmteClose() about TR_REMOVED type
- for open, fetch the header from rpmdb, closing is nearly a no-op
- allows install and erase behave more symmetrically, and also paving way
for better erase callback notifications and other things
- watch out for them refcounts...
Panu Matilainen [Tue, 25 Nov 2008 09:46:20 +0000 (11:46 +0200)]
Record failure of install/erase into transaction elements
- add rpmteMarkFailed() (internal) and rpmteFailed() methods to rpmte
- skip any elements marked as failed in rpmtsProcess()
- this is fairly close to the previous "now mostly broken" hack, except
we remember more than one failure so it's slightly better and it's
possible to do much better by making rpmteMarkFailed() smarter
Florian Festi [Wed, 26 Nov 2008 15:29:55 +0000 (16:29 +0100)]
Change rpmffi_s to contain a rpmte instead of rpmfi to be able to get rid of fi->te
Panu Matilainen [Wed, 26 Nov 2008 06:58:35 +0000 (08:58 +0200)]
Don't bother zeroing rpmte twice on free
- delTE() already zeroes it out
Panu Matilainen [Tue, 25 Nov 2008 16:06:31 +0000 (18:06 +0200)]
Add rpmhash.[CH] to EXTRA_DIST so they get included in tarballs
Florian Festi [Tue, 25 Nov 2008 15:05:00 +0000 (16:05 +0100)]
Switch rpmfiUpdateState to the new ->replaced API
and free the additional allocated but unused memory
Florian Festi [Tue, 25 Nov 2008 13:33:11 +0000 (14:33 +0100)]
Kill handleRmvdInstalledFile by moving remaining code to checkInstalledFiles
Switch to strict use of rpmtd accessor functions
Jindrich Novy [Tue, 25 Nov 2008 13:12:50 +0000 (14:12 +0100)]
Port LZMA (XZ) support to the new API
- get rid of the obsolete "alone" LZMA file format
and hacks around it
Jindrich Novy [Tue, 25 Nov 2008 13:11:08 +0000 (14:11 +0100)]
Use the new LZMA (XZ) magic
Panu Matilainen [Mon, 24 Nov 2008 14:45:22 +0000 (16:45 +0200)]
Move transscripts stuff from rpmfi to rpmte
- transaction scripts have zero to do with files...
Panu Matilainen [Mon, 24 Nov 2008 13:39:17 +0000 (15:39 +0200)]
Unify statistics timer calls for install+erase
Panu Matilainen [Mon, 24 Nov 2008 13:33:23 +0000 (15:33 +0200)]
Unify install+remove logging, unnecessary code duplication..
Panu Matilainen [Mon, 24 Nov 2008 13:31:31 +0000 (15:31 +0200)]
Lift the main install+remove loop out of rpmtsRun()
- no functional changes
Florian Festi [Mon, 24 Nov 2008 13:34:59 +0000 (14:34 +0100)]
Fix timings and no longer pass the file count more than once.
Florian Festi [Mon, 24 Nov 2008 13:10:11 +0000 (14:10 +0100)]
Remove check that is commented out since ages
Florian Festi [Fri, 21 Nov 2008 14:00:36 +0000 (15:00 +0100)]
Remove no longer needed sharedCmp
Florian Festi [Mon, 24 Nov 2008 12:36:28 +0000 (13:36 +0100)]
fix statistics for looking up symlinks
Florian Festi [Fri, 7 Nov 2008 09:58:25 +0000 (10:58 +0100)]
Reimplement the check of the files in the transaction against the files in the rpmdb.
Use a global list of packages/files from the rpmdb that may conflict with files in the transaction to avoid loading packages from the rpmdb over and over again.
Florian Festi [Wed, 19 Nov 2008 16:11:59 +0000 (17:11 +0100)]
switch to new rpmfiReplaced API
Florian Festi [Wed, 19 Nov 2008 16:09:57 +0000 (17:09 +0100)]
API for accessing and creating fi->replaced
- new API is not compatible with accessing fi->replaced directly!
Florian Festi [Sun, 9 Nov 2008 17:02:20 +0000 (18:02 +0100)]
Expose rpmdbSortIterator in rpmdb_internal.h
Florian Festi [Sun, 9 Nov 2008 16:54:47 +0000 (17:54 +0100)]
Add rpmdbExtendIterator to do repeated searches
Florian Festi [Wed, 5 Nov 2008 14:11:55 +0000 (15:11 +0100)]
Support leaving HTDATATYPE undefined to use hash as key only hash (set)
Panu Matilainen [Mon, 24 Nov 2008 11:33:41 +0000 (13:33 +0200)]
Add couple of tests for symlink <-> directory behavior
Panu Matilainen [Sat, 22 Nov 2008 16:00:10 +0000 (18:00 +0200)]
Remove RPMCONFIGDIR sedding from Makefiles where no longer necessary
Panu Matilainen [Sat, 22 Nov 2008 15:51:42 +0000 (17:51 +0200)]
Don't bother setting rpmrc specifically in tests
- RPM_CONFIGDIR environment is used
Panu Matilainen [Sat, 22 Nov 2008 15:47:44 +0000 (17:47 +0200)]
Remove -DRPMCONFIG from CPPFLAGS where unnecessary
Panu Matilainen [Sat, 22 Nov 2008 15:36:05 +0000 (17:36 +0200)]
Use %{_rpmconfigdir} throughout configuration macros and such
Panu Matilainen [Sat, 22 Nov 2008 15:21:33 +0000 (17:21 +0200)]
Set _rpmconfigdir macro on initialization
Panu Matilainen [Sat, 22 Nov 2008 15:12:54 +0000 (17:12 +0200)]
Use rpmConfigDir() instead of hardwired path for rpmrc + macro locations
Panu Matilainen [Sat, 22 Nov 2008 14:44:33 +0000 (16:44 +0200)]
Use rpmConfigDir() instead of hardwired value in Lua initialization
- userconfig is actually unused
Panu Matilainen [Sat, 22 Nov 2008 16:08:40 +0000 (18:08 +0200)]
Use rpmConfigDir() for finding our popt alias file
- this allows popt aliases to be reliably available in tests
- why do we have the popt initialization done twice?
Panu Matilainen [Sat, 22 Nov 2008 16:06:31 +0000 (18:06 +0200)]
Add function to retrieve rpm config base directory
- one-shot to determine configuration base directory path from
RPM_CONFIGDIR environement or build-time default
- rpmfileutil is a bit strange place, this would really belong to librpm
but Lua initialization needs the path so...
Panu Matilainen [Sat, 22 Nov 2008 13:37:00 +0000 (15:37 +0200)]
Nuke leftover reference to brp-sparc64-linux
- missed from commit
cbbb03e3a34d492a7163f5a02f77b7e806702b41
Panu Matilainen [Sat, 22 Nov 2008 12:07:34 +0000 (14:07 +0200)]
Add keywords to all tests
- just initial groupings to have something there..
Panu Matilainen [Sat, 22 Nov 2008 11:45:17 +0000 (13:45 +0200)]
Add basic tests for Lua's rpm and posix extensions
Panu Matilainen [Sat, 22 Nov 2008 11:26:43 +0000 (13:26 +0200)]
Add banners for nicer test output
Panu Matilainen [Sat, 22 Nov 2008 11:20:33 +0000 (13:20 +0200)]
A few more basic macro functionality tests
Panu Matilainen [Sat, 22 Nov 2008 09:45:55 +0000 (11:45 +0200)]
Add couple of tar build tests + another version of hello tarball
Panu Matilainen [Sat, 22 Nov 2008 09:22:01 +0000 (11:22 +0200)]
Add some (trivial) macro evaluation tests
Panu Matilainen [Sat, 22 Nov 2008 08:28:59 +0000 (10:28 +0200)]
Add a couple of tests for installing non-existent files and such
Panu Matilainen [Fri, 21 Nov 2008 23:15:20 +0000 (01:15 +0200)]
Add some basic tests for config file behavior
Panu Matilainen [Fri, 21 Nov 2008 21:59:25 +0000 (23:59 +0200)]
Add some basic tests for file conflict behavior
Panu Matilainen [Fri, 21 Nov 2008 21:29:54 +0000 (23:29 +0200)]
Add basic version comparison testing for install/upgrade
Panu Matilainen [Fri, 21 Nov 2008 21:28:21 +0000 (23:28 +0200)]
Simplify the run functions, fix --define behavior
Panu Matilainen [Fri, 21 Nov 2008 15:48:27 +0000 (17:48 +0200)]
Hackery to get rpm install tests to "work" with fakechroot
- fakechroot throws it's own curveballs into the already mixed up thing,
copy things to the test dir and set chroot base to that to avoid
confusion with cwd and such
- klunky and ugly but at least the tests pass now when running non-root
Panu Matilainen [Fri, 21 Nov 2008 15:39:39 +0000 (17:39 +0200)]
Add + use wrapper function for calling rpm commands in tests
- avoids having to define --rcfile etc over and over again
Panu Matilainen [Fri, 21 Nov 2008 14:13:03 +0000 (16:13 +0200)]
Kill the last remaining varprefix
- we're just mangling varprefix to localstatedir anyway, might as well
just avoid that little extra trouble...
Panu Matilainen [Fri, 21 Nov 2008 11:28:35 +0000 (13:28 +0200)]
Define TOPDIR once in atlocal.in
Panu Matilainen [Fri, 21 Nov 2008 10:02:17 +0000 (12:02 +0200)]
These tests are expected to succeed
Panu Matilainen [Fri, 21 Nov 2008 15:59:03 +0000 (17:59 +0200)]
Rpm is supposed to create build tree by itself, don't help it
Panu Matilainen [Fri, 21 Nov 2008 08:04:41 +0000 (10:04 +0200)]
Fix build tree creation with relative paths for %_topdir and friends
- rpmtsRootDir() gives "/" even if root not actually set which makes sense
for most operations but not when we're creating build directories
Panu Matilainen [Fri, 21 Nov 2008 07:50:53 +0000 (09:50 +0200)]
Permit relative paths in rpmioMkpath() and rpmMkdirs()
Panu Matilainen [Fri, 21 Nov 2008 06:57:12 +0000 (08:57 +0200)]
Update --querytags test vrt FILECAPS
Panu Matilainen [Thu, 20 Nov 2008 09:47:52 +0000 (11:47 +0200)]
fpCacheCreate() already doubles the size-hint, dont do it twice
Panu Matilainen [Thu, 20 Nov 2008 08:26:22 +0000 (10:26 +0200)]
Use per-rpmfi string cache for symlink targets
- few files are actually symlinks so this is very sparse data
- per-rpmfi instead of global as link target names are not that likely
to be shared across packages
- another few megs saved...
Panu Matilainen [Thu, 20 Nov 2008 08:15:08 +0000 (10:15 +0200)]
Add functions to create and free string cache(s)
Panu Matilainen [Thu, 20 Nov 2008 07:53:27 +0000 (09:53 +0200)]
Use global cache for file languages too
- there's only a very limited number of language names ever present,
and most files don't have languages attached at all
- another few megs saved on memory
Panu Matilainen [Thu, 20 Nov 2008 07:40:46 +0000 (09:40 +0200)]
Use rpmfiFLangs() instead of direct access to structure in skipFiles()
Panu Matilainen [Thu, 20 Nov 2008 07:36:47 +0000 (09:36 +0200)]
Add rpmfiFLang() method for retrieving file language(s)
- hardly anything needs outside install internals but it's harmless too...
Panu Matilainen [Thu, 20 Nov 2008 07:26:12 +0000 (09:26 +0200)]
Generalize the user+group string cache + helpers
Panu Matilainen [Wed, 19 Nov 2008 16:17:56 +0000 (18:17 +0200)]
Be more intelligent about storing file user and group names
- User and group names contain an enormous amount of redundancy: typically
most files and directories are owned by root:root. Store the each unique
name just once into global cache and store indexes to the cache into
rpmfi user + group arrays. This saves several megabytes of memory on
a transaction of non-trivial size...
- The cache implementation is dumb, but it's not noticeably slower than
uncached version, copying megs of strings around is not cheap either.
Easy enough to replace with a hash-table or such if performace becomes
and issue...
Panu Matilainen [Wed, 19 Nov 2008 14:07:15 +0000 (16:07 +0200)]
Make fsmMapAttrs() use rpmfi methods instead of directly accessing
- Save rpmfi iteration index on entry, restore on exit to avoid clashing
with other users of the given file info set. For now...
- Remove unnecessary re-initialization of uid and gid in case not found
Panu Matilainen [Wed, 19 Nov 2008 13:52:03 +0000 (15:52 +0200)]
Oops, file modes are needed on erase too to avoid suffixes on directories
Panu Matilainen [Wed, 19 Nov 2008 13:46:02 +0000 (15:46 +0200)]
Use matching type for fsm->digest to avoid unnecessary cast
Panu Matilainen [Wed, 19 Nov 2008 12:06:37 +0000 (14:06 +0200)]
Erm erm, really use the rpmfi creation flags in rpmteNew()
- this part was missing from
763cbf05b57da940d2972e0b448548481be400c6
Panu Matilainen [Wed, 19 Nov 2008 11:04:07 +0000 (13:04 +0200)]
Erm, really do lazy allocation of fi->replacedSizes
- this part was missing from
9bde09b59969088c06eb6f5b8a2597b2e04bd306
Panu Matilainen [Tue, 18 Nov 2008 10:00:10 +0000 (12:00 +0200)]
Add + use internal helper function for getting+setting rpmfi replaced sizes
- lazy allocation on set, otherwise there's no replaced size - the getter
deals with this transparently
- saves a fair bit of memory, by no means everything has replaced files...
Panu Matilainen [Wed, 19 Nov 2008 09:59:53 +0000 (11:59 +0200)]
Eliminate unnecessary fi->record field
- transaction elements carry the db instance already and is available
where needed
Panu Matilainen [Wed, 19 Nov 2008 08:02:16 +0000 (10:02 +0200)]
Avoid unnecessary mucking with rpmfi internals
Panu Matilainen [Wed, 19 Nov 2008 07:45:05 +0000 (09:45 +0200)]
Refer to psm->te instead of fi->te in rpmpsmStage()
- transaction element is passed to psm, might as well use it
Panu Matilainen [Wed, 19 Nov 2008 06:16:03 +0000 (08:16 +0200)]
Restore SIGPIPE to default action for scriptlets (rhbz#471591)
Panu Matilainen [Wed, 19 Nov 2008 06:10:21 +0000 (08:10 +0200)]
Updated Brazilian Portugese translation from Igor Pires Soares
Panu Matilainen [Tue, 18 Nov 2008 16:54:26 +0000 (18:54 +0200)]
Use finer grained rpmfi creation flags for in rpmteNew()
- also call the erase flags erase, not remove...
Panu Matilainen [Tue, 18 Nov 2008 16:36:45 +0000 (18:36 +0200)]
Limit the data rpmfi loads in query
- makes queries a little bit faster, hardly makes a difference on
modern hardware but loading unused data seems silly anyhow...
Panu Matilainen [Tue, 18 Nov 2008 16:32:58 +0000 (18:32 +0200)]
Add preliminary rpmfi flag groupings for base operations
- just a start and probably not 100% accurate..
Panu Matilainen [Tue, 18 Nov 2008 15:38:53 +0000 (17:38 +0200)]
Add control bits for all (relevant) parts of rpmfi data
- permit fine grained control over what's loaded into fi for what operations,
non-trivial memory savings are possible
- future possibilities - these reflect closely to rpm verify control
bits, all we need is RPMFI_DISK or similar operation to pull the
information from disk instead of header and then verify can simply
compare two rpmfi's
Panu Matilainen [Tue, 18 Nov 2008 15:12:55 +0000 (17:12 +0200)]
Remove useless default flags and action fields from rpmfi
- fi->actions is always allocated so fi->action is never used for anything
- fi->flags is just as unused and unnecessary
Panu Matilainen [Tue, 18 Nov 2008 14:33:07 +0000 (16:33 +0200)]
Nuke useless rpmfiFContext()
- it only ever returns NULLs because there are no security contexts in
headers (and having them in headers make no sense as the context varies
based on whatever selinux policy happens to be active on the target
system)
Florian Festi [Mon, 17 Nov 2008 12:44:06 +0000 (13:44 +0100)]
Fix indentiation
Jindrich Novy [Tue, 18 Nov 2008 10:23:26 +0000 (11:23 +0100)]
Add AC_CONFIG_MACRO_DIR for the new libtool
Panu Matilainen [Tue, 18 Nov 2008 09:30:43 +0000 (11:30 +0200)]
Don't bother loading FILELANGS for installed packages
- only useful for anything when installing packages
Panu Matilainen [Tue, 18 Nov 2008 04:58:13 +0000 (06:58 +0200)]
Lazy allocation of FSM for file info sets
- new more or less internal rpmfiFSM() to create FSM on demand, move
mapflags calculation there
Panu Matilainen [Tue, 18 Nov 2008 04:28:23 +0000 (06:28 +0200)]
Remove now unnecessary fi->keep_header
Panu Matilainen [Tue, 18 Nov 2008 04:26:02 +0000 (06:26 +0200)]
Remember rpmfi creation flags
Panu Matilainen [Tue, 18 Nov 2008 09:22:26 +0000 (11:22 +0200)]
Generate and insert SOURCERPM tag earlier
- needed to make checking for source/binary package in rpmfiNew() reliable
at build time
Panu Matilainen [Mon, 17 Nov 2008 15:29:31 +0000 (17:29 +0200)]
Add + use internal helper function for setting rpmfi file states
- instead of directly accessing the array from fsm, use a helper function
which lazily allocates the state array as needed and sets state
- also fixes the silly case of non-installed packages showing their files
as "normal", ie installed (now it shows "no state" as it's not relevant)
Panu Matilainen [Mon, 17 Nov 2008 14:12:04 +0000 (16:12 +0200)]
Simplify rpmInstallLoadMacros()
- fi argument unused, remove
- no relevant return value, make it void
- handle any proper data type for per-header macros
Panu Matilainen [Mon, 17 Nov 2008 14:04:48 +0000 (16:04 +0200)]
Avoid reconstructing half of rpmfi manually in rpmInstallSourcePackage()
- similarly to commit
53ee682a491ceee4392815075cabbe58d0cc0c22, arrange
the header to contain necessary paths before calling rpmfiNew()
- avoid unnecessary accesses to rpmfi internals otherwise too
Panu Matilainen [Mon, 17 Nov 2008 12:21:38 +0000 (14:21 +0200)]
Unnecessary local variable, result only needed once
Panu Matilainen [Sat, 15 Nov 2008 16:44:00 +0000 (18:44 +0200)]
Assume failure in rpmInstallSourcePackage()
- avoids bunch of redundant assignments
Panu Matilainen [Mon, 17 Nov 2008 11:39:22 +0000 (13:39 +0200)]
Calculate total file size correctly in build (mdvbz#45820, rhbz#247374)
- delay total size calculation until the real file list is known, ie
in genCpioListAndHeaders() where duplicates and excludes have been
weeded out
Panu Matilainen [Mon, 17 Nov 2008 10:44:57 +0000 (12:44 +0200)]
Make depflagsFormat() accept any numeric type
Panu Matilainen [Mon, 17 Nov 2008 10:42:53 +0000 (12:42 +0200)]
Simplify xmlFormat() by taking advantage of rpmtdClass()
Panu Matilainen [Mon, 17 Nov 2008 10:41:24 +0000 (12:41 +0200)]
Make fflagsFormat() accept any numeric type