Panu Matilainen [Wed, 12 Nov 2008 17:24:58 +0000 (19:24 +0200)]
Take advantage of headerGetInstance() in rpmte
- rpmte db_instance and dboffset are exactly the same thing, unify
- pull rpmte->db_instance from header directly, ignore dboffset argument
to rpmteNew() (removing the arg would just break api needlessly, otoh
it's unlikely that anything outside rpm actually uses rpmteNew())
- eliminate the now unnecessary added/removed union from te struct
- rpmteDBOffset() is now just an alias for rpmteDBInstance(), deprecate?
Panu Matilainen [Wed, 12 Nov 2008 16:29:51 +0000 (18:29 +0200)]
Grab rpmfi record from header on rpmfiNew()
- avoids having to muck with it from rpmtsRun()
Panu Matilainen [Wed, 12 Nov 2008 15:58:37 +0000 (17:58 +0200)]
Add rpmdb record number to headers retrieved from rpmdb
- set "instance" number on retrieval from rpmdb
- add public headerGetInstance() function for retrieving the value
- ported from rpm5.org, useful for number of things
Panu Matilainen [Tue, 11 Nov 2008 20:37:12 +0000 (22:37 +0200)]
Convert obvious bits of rpmtsRun() to use rpmfiFAction()
- remaining access to fi->actions is the nasty part of copying things
around to transfer state
Panu Matilainen [Tue, 11 Nov 2008 20:35:45 +0000 (22:35 +0200)]
Convert skipFiles() to rpmfi(Set)FAction()
Panu Matilainen [Tue, 11 Nov 2008 20:32:23 +0000 (22:32 +0200)]
Convert handleOverlappedFiles() to rpmfi(Set)Faction()
Panu Matilainen [Tue, 11 Nov 2008 20:19:29 +0000 (22:19 +0200)]
Convert handleRmvdInstalledFiles() to rpmfiSetFAction()
Panu Matilainen [Tue, 11 Nov 2008 20:17:10 +0000 (22:17 +0200)]
Convert handleInstInstalledFiles() to rpmfi(Set)Faction()
Panu Matilainen [Tue, 11 Nov 2008 20:09:48 +0000 (22:09 +0200)]
Add rpmfi get + set methods for file actions
Panu Matilainen [Tue, 11 Nov 2008 19:06:32 +0000 (21:06 +0200)]
Remove unnecessary initialization
- rpmfiNew() zeroes out everything, including striplen + astriplen
Panu Matilainen [Tue, 11 Nov 2008 19:01:02 +0000 (21:01 +0200)]
Move file action calculations to rpmfiNew() where possible
- for build operations and src.rpm install this is known
Panu Matilainen [Tue, 11 Nov 2008 18:48:35 +0000 (20:48 +0200)]
Cpio flags are only relevant for fsm, get them out of rpmfi
Panu Matilainen [Tue, 11 Nov 2008 12:50:53 +0000 (14:50 +0200)]
Figure out cpio mapflags in rpmfiNew()
- all the necessary info is there, no need to litter the logic all over
the place
Panu Matilainen [Tue, 11 Nov 2008 11:53:31 +0000 (13:53 +0200)]
Push archivePos from rpmfi to fsm
- archive position is only meaningful in fsm context anyway
Panu Matilainen [Tue, 11 Nov 2008 15:35:42 +0000 (17:35 +0200)]
Adjust rpmfi directory count while messing with it in build
- otherwise we can miss some entries in rpmfiFN() max calculation and
blow up in entertaining ways
Jindrich Novy [Mon, 10 Nov 2008 14:52:29 +0000 (15:52 +0100)]
Add the post-build package checker feature in rpmbuild (upstream ticket #2)
- allow to run helper programs to check:
- generated SRPM
- each generated RPM after it is successfully written
- whole successfully written binary package set
- it is possible to use it for sanity checks
Jindrich Novy [Mon, 10 Nov 2008 14:46:43 +0000 (15:46 +0100)]
Add macros for the post-build package checkers feature (upstream ticket #2)
- _build_pkgcheck: helper that is ran for every binary RPM successfully
written
- _build_pkgcheck_set: helper ran for the whole binary package set
- _build_pkgcheck_srpm: helper ran for SRPM
- _nonzero_exit_pkgcheck_terminate_build: indicates whether the build
should fail if helper returns non-zero exit status
Panu Matilainen [Fri, 7 Nov 2008 10:03:54 +0000 (12:03 +0200)]
Reset return values to zero + NULL's on not found in hash GetEntry()
- avoids having to separately check for return value in some cases and
accidents from not resetting the values in caller
- in line with headerGet() behavior
Florian Festi [Wed, 5 Nov 2008 14:23:19 +0000 (15:23 +0100)]
Rename doLookup to fpLookup to get rid of one function just calling the other
Florian Festi [Fri, 7 Nov 2008 09:53:55 +0000 (10:53 +0100)]
cleanup fpLookupSubdir
* rename end -> endsubdir
* fix assignment mess
* fix memory leak (no longer free current_fp.subDir which may be NULL)
* set endsubdir to NULL while not valid
Panu Matilainen [Fri, 7 Nov 2008 09:52:24 +0000 (11:52 +0200)]
Reverse hash GetEntry() return code vs found/not found
- be in line with hash HasEntry() and other similar functions
- internal-only function with just one place actually checking the return
Panu Matilainen [Thu, 6 Nov 2008 08:03:10 +0000 (10:03 +0200)]
rpmsqAction() proto needs SA_SIGINFO conditionals too (ticket #4)
Panu Matilainen [Wed, 5 Nov 2008 18:37:48 +0000 (20:37 +0200)]
Nuke the ugly hardwired "known arch" list from label parsing
- we have list of known archs in rpmrc, might as well use it
- avoids having to patch & recompile rpm just to have rpmtsInitIterator()
recognize new archs when it's runtime configurable otherwise
- checking against compatible arch would be saner except then people could
get into even more trouble using --ignorearch...
Panu Matilainen [Wed, 5 Nov 2008 13:44:35 +0000 (15:44 +0200)]
Calculate filename buffer len lazily in rpmfiFN() as needed
- avoids having to separately calculate in genCpioListAndHeader()
- avoids unnecessary fnlen field in rpmfi struct
- avoids having to calculate it at all if rpmfiFN() is never called
Panu Matilainen [Wed, 5 Nov 2008 13:24:08 +0000 (15:24 +0200)]
Remove yet more unused fields from rpmfi struct
Panu Matilainen [Wed, 5 Nov 2008 13:18:43 +0000 (15:18 +0200)]
Remove fperms and dperms from rpmfi struct
- only fsm internals need and just use straightforward defaults, move
the defaults there...
Panu Matilainen [Wed, 5 Nov 2008 12:30:01 +0000 (14:30 +0200)]
Use cpioMapFlags type consistently for map flags
Panu Matilainen [Wed, 5 Nov 2008 12:10:16 +0000 (14:10 +0200)]
Stop messing with fi->fstates allocations in psm
- it's alloced and freed by rpmfiNew()/Free() always anyway
Panu Matilainen [Wed, 5 Nov 2008 11:17:50 +0000 (13:17 +0200)]
Kill off per-file cpio map flags
- nothing uses/needs them, one less murky fi->foo allocation less
- apparently a leftover from initial multilib attempts long long ago
Panu Matilainen [Wed, 5 Nov 2008 10:45:03 +0000 (12:45 +0200)]
Remove unused variable
Panu Matilainen [Wed, 5 Nov 2008 10:38:16 +0000 (12:38 +0200)]
Remove useless rpmfi->gid and uid "defaults"
- they were only ever set on src.rpm installation yet overridden by
package contents unless src.rpm didn't contain RPMTAG_FILEUSERNAME
(and GROUP). Which would mean rpm 1.0 packages or thereabouts, or a
malformed package. In that case we just fall back to root uid,
it hardly matters
Panu Matilainen [Wed, 5 Nov 2008 09:49:33 +0000 (11:49 +0200)]
fi->actions is already initialized earlier in rpmfiNew()
Panu Matilainen [Wed, 5 Nov 2008 09:47:29 +0000 (11:47 +0200)]
fi->actions cannot be non-NULL in rpmfiNew()
Panu Matilainen [Wed, 5 Nov 2008 07:36:20 +0000 (09:36 +0200)]
Dead code removal
Panu Matilainen [Tue, 4 Nov 2008 12:53:11 +0000 (14:53 +0200)]
Stop messing around with rpmfi user+group names from psm
- these are loaded and freed by rpmfiNew/Free() as necessary
Panu Matilainen [Tue, 4 Nov 2008 11:33:27 +0000 (13:33 +0200)]
Fix segfault on relocation (rhbz#468319)
- a bogus free() / thinko
Panu Matilainen [Tue, 4 Nov 2008 09:36:01 +0000 (11:36 +0200)]
Avoid leaking C99 options into stock %{__cc} macro
Jindrich Novy [Tue, 4 Nov 2008 09:09:31 +0000 (10:09 +0100)]
Return proper exit code when exec*() functions fail
- the correct exit code should be 127 accoring to bash(1),
we want to keep the same exit code behaviour as bash for rpm
Panu Matilainen [Tue, 4 Nov 2008 08:28:20 +0000 (10:28 +0200)]
Fix building on systems where SA_SIGINFO isn't available (ticket #4)
- patch from Adam Tkac
Panu Matilainen [Tue, 4 Nov 2008 07:52:19 +0000 (09:52 +0200)]
Use more portable file access mode tests (ticket #5)
- don't make assumptions about how O_RDWR and friends are defined, use the
portable way of masking flags with O_ACCMODE and explicit comparison
against the mode we're interested in
Panu Matilainen [Mon, 3 Nov 2008 12:13:45 +0000 (14:13 +0200)]
Ensure PATH_MAX is defined (ticket #3) Adam Tkac
- POSIX doesn't require PATH_MAX to be defined as constant, and Hurd
doesn't define it...
- deal with it just once in system.h for now, the proper fix is to get
rid of needing it at all (ie add a mallocing realpath() clone to librpmio)
- patch from Adam Tkac
Panu Matilainen [Fri, 31 Oct 2008 15:45:43 +0000 (17:45 +0200)]
Drop unnecessary trailing slash in pkgconfig includedir
Panu Matilainen [Fri, 31 Oct 2008 08:17:07 +0000 (10:17 +0200)]
Adjust for file output change (rhbz#468129)
- file util used reported file details along with mime type, newer ones don't
Panu Matilainen [Thu, 30 Oct 2008 12:12:18 +0000 (14:12 +0200)]
Kill of scareMem / keep header flag from rpmds
- unnecessary complication which doesn't benefit anything (anymore)
Panu Matilainen [Thu, 30 Oct 2008 12:07:29 +0000 (14:07 +0200)]
Change all in-tree rpmdsNew() uses to non-scaremem
- shouldn't affect anything at all
Panu Matilainen [Thu, 30 Oct 2008 12:03:34 +0000 (14:03 +0200)]
Remove unnecessary scaremem flags, hardwired to no scaremem anyway
- no functional changes
Panu Matilainen [Thu, 30 Oct 2008 11:46:26 +0000 (13:46 +0200)]
Save bunch of memory by not loading file classes in ts elements
- install/remove doesn't need or use file class information at all,
don't bother loading it, saves a few megs of memory on large transactions
Panu Matilainen [Thu, 30 Oct 2008 11:43:44 +0000 (13:43 +0200)]
Add couple of new rpmfi flags for file classes and file depends
Panu Matilainen [Wed, 29 Oct 2008 13:23:49 +0000 (15:23 +0200)]
Move rpmfi color union calculation out of rpmfiNew()
- nothing at all uses the calculated value or rpmfiColor() call, take
the unnecessary calculation out of common path into rpmfiColor()
Panu Matilainen [Wed, 29 Oct 2008 13:06:37 +0000 (15:06 +0200)]
Remove unused package color calculations from 2003
Panu Matilainen [Wed, 29 Oct 2008 12:34:36 +0000 (14:34 +0200)]
Don't bother fetching and storing pre- and posttrans scripts in rpmfi
- the psm script machinery requires the full header to do anything at
all, so the script + scriptprog were only used to check if the package
*has* such scripts, a single integer will do just fine there thank you
Panu Matilainen [Wed, 29 Oct 2008 12:09:27 +0000 (14:09 +0200)]
Convert in-tree users of rpmfiNew() to use flag names
- easier to grep for than scareMem, preparing for further flags
Panu Matilainen [Wed, 29 Oct 2008 12:08:12 +0000 (14:08 +0200)]
Turn rpmfiNew() scareMem argument into bitfield of flags
- preserve behavior with 0/1
- more room for controlling what gets loaded into file info set, not
everything is needed at all times
Jindrich Novy [Wed, 29 Oct 2008 12:38:16 +0000 (13:38 +0100)]
Set timezone to UTC every time to avoid local timezone confusion
Panu Matilainen [Wed, 29 Oct 2008 10:09:27 +0000 (12:09 +0200)]
Add --filecaps popt alias for looking at file capabilities
- doesn't need much as the capabilities are stored in human readable format
Panu Matilainen [Wed, 29 Oct 2008 09:53:31 +0000 (11:53 +0200)]
Add proper file capability verification support
- at least for now, no capabilities is treated like empty capability set
which are not exactly the same thing but probably sufficient for our
purposes
Panu Matilainen [Wed, 29 Oct 2008 09:49:38 +0000 (11:49 +0200)]
Add fsm and rpmfi machinery for file capabilities
- new rpmfiFCaps() API to retrieve the info from rpmfi set
- fsm internals quite similar to selinux handling
- plenty of #ifdef's, another possibility would be adding cap_foo dummies to
system.h like for selinux
Panu Matilainen [Wed, 29 Oct 2008 08:49:25 +0000 (10:49 +0200)]
Start adding POSIX 1.e draft file capability support for real
- Parse %caps() from spec filelists, making best-guess verification of
capability string sanity by passing to cap_from_text()
- The posix draft specifies capability export presentation through
cap_copy_ext() which would be fine, except that we don't have support for
arrays of binary data. So we simply store the textual representation
of the capabilities in a string array which we do have.
- Only add capability tag on packages which actually have capabilities to
avoid unnecessary header bloat.
- Add a new rpmlib() dependency for file capabilities, packages relying
on file capabilities wont work correctly unless the capabilities are set.
To be fully correct, support for on-filesystem file capabilities should
be checked at runtime, as this depends on kernel versions and such...
Panu Matilainen [Wed, 29 Oct 2008 08:39:00 +0000 (10:39 +0200)]
Don't try to verify capabilities of directories and non-regular files
Florian Festi [Mon, 27 Oct 2008 12:08:39 +0000 (13:08 +0100)]
fix compiler warning
by removing unnesseccary return address for the hash key
Panu Matilainen [Sun, 26 Oct 2008 12:18:17 +0000 (14:18 +0200)]
Beginnings of acl (POSIX.1e draft 17) verification support
- if built with --with-acl, check that files and directories don't have
any extra acl's set
- for now, any acl beyond the regular unix permission set is reported as
file mode difference as the acl's cannot have been set by rpm itself
- patch from Andreas Gruenbacher, modified to use libacl instead of raw
xattrs for portability, BUT atm this uses non-portable acl_equiv_mode()
Linux libacl extension, the posix draft doesn't seem to have much in
the way of comparing entries :-/
Panu Matilainen [Sun, 26 Oct 2008 12:17:16 +0000 (14:17 +0200)]
Beginnings of file capability (POSIX.1e draft 15) verification support
- add minimal bits and pieces to check for capabilities in files on verify
- for now, any capability set is a verification failure as the capability
cannot have been set by rpm itself
- patch from Andreas Gruenbacher, modified to use libcap instead of raw
xattrs for portability
Jindrich Novy [Fri, 24 Oct 2008 10:32:31 +0000 (12:32 +0200)]
Remove timezone autoconf checks and system.h reference
- timezone is no more used so it's no more needed
Jindrich Novy [Fri, 24 Oct 2008 10:31:02 +0000 (12:31 +0200)]
Fix "timewarp" bug while listing changelog via "rpm -q --changelog"
- date is no more one day in advance than written in changelog
Florian Festi [Thu, 16 Oct 2008 10:13:13 +0000 (12:13 +0200)]
Use better cache sizes
Florian Festi [Thu, 16 Oct 2008 10:07:44 +0000 (12:07 +0200)]
Improve finger print hash function to avoid degeneration of hash tables
Florian Festi [Thu, 16 Oct 2008 07:59:54 +0000 (09:59 +0200)]
Switch to a better hash functions for strings: Jenkins One-at-a-time hash
Florian Festi [Thu, 28 Aug 2008 14:06:36 +0000 (16:06 +0200)]
Use only one, global fingerPrintCache to save a lot of stat calls
Florian Festi [Wed, 22 Oct 2008 13:17:49 +0000 (15:17 +0200)]
symlinks
Florian Festi [Wed, 22 Oct 2008 12:08:49 +0000 (14:08 +0200)]
Detect to be installed symlinks for file fingerprinting (file conflicts)
Florian Festi [Wed, 22 Oct 2008 12:03:52 +0000 (14:03 +0200)]
Fix path problem in doLookup
Florian Festi [Tue, 12 Aug 2008 19:19:11 +0000 (21:19 +0200)]
Delete findFps foobar
including fpsCompare and the fpsdebug opt
Florian Festi [Tue, 21 Oct 2008 13:45:09 +0000 (15:45 +0200)]
Change both hashes to a typed version
Florian Festi [Fri, 17 Oct 2008 14:18:45 +0000 (16:18 +0200)]
Make rpmhash a generic datatype using macros and includes
Panu Matilainen [Fri, 24 Oct 2008 05:05:00 +0000 (08:05 +0300)]
Updated Serbian translations from Miloš Komarčević
Panu Matilainen [Thu, 23 Oct 2008 04:47:25 +0000 (07:47 +0300)]
Make noarch subpackages actually work
- noarch subpackages get their arch tag from parsePreamble() already,
don't stomp over it later in parseSpec()
Jindrich Novy [Wed, 22 Oct 2008 07:28:38 +0000 (09:28 +0200)]
Increase IEEE-compliance of floating point code for SH platform
- thanks to CHIKAMA Masaki
Jindrich Novy [Wed, 22 Oct 2008 07:22:05 +0000 (09:22 +0200)]
Apply patch for sh arch from CHIKAMA Masaki
Panu Matilainen [Wed, 22 Oct 2008 06:58:10 +0000 (09:58 +0300)]
Skip adding identical NEVR to transaction on install too (rhbz#467822)
- Installing several different versions of the same package in single
transactions is permitted for "pure" installs, whereas on upgrade only
one version is allowed. Identical NEVR got correctly checked and filtered
out on upgrade but on install identical NEVR was not catched. Check
for equal and newer separately...
Panu Matilainen [Wed, 22 Oct 2008 06:25:30 +0000 (09:25 +0300)]
Fix memleak in rpmtsAddInstallElement()
- previously any of the "skipping/replacing already added" checks matching
would leak memory due to early jump to exit
Panu Matilainen [Mon, 20 Oct 2008 08:46:42 +0000 (11:46 +0300)]
setenv() + unsetenv() are always available in rpm
Panu Matilainen [Mon, 20 Oct 2008 08:32:43 +0000 (11:32 +0300)]
Add posix.mkstemp() to Lua posix lib
- lifted from apt-rpm
Panu Matilainen [Sun, 19 Oct 2008 17:08:35 +0000 (20:08 +0300)]
Trash more unused junk from installplatform
Panu Matilainen [Sun, 19 Oct 2008 16:59:57 +0000 (19:59 +0300)]
Trash unused MULTILIBNO hackery in installplatform
Panu Matilainen [Sat, 18 Oct 2008 22:53:03 +0000 (01:53 +0300)]
Permit tab as whitespace between macro arguments (rhbz#467567)
- another dumb regression from macro handling cleanups
Panu Matilainen [Sat, 18 Oct 2008 16:23:56 +0000 (19:23 +0300)]
Clean up hg leftovers
Panu Matilainen [Fri, 17 Oct 2008 12:00:01 +0000 (15:00 +0300)]
Trash the horrible brp-sparc64-linux hack from the ancient past
- kludgery like this might've been necessary back in 2000 to get started
with multilib setup but it certainly isn't needed now
Panu Matilainen [Fri, 17 Oct 2008 05:11:10 +0000 (08:11 +0300)]
Kick out the dumb defaultdocdir logic from installplatform
- defaultdocdir is simply %{_datadir}/doc
Panu Matilainen [Thu, 16 Oct 2008 14:09:28 +0000 (17:09 +0300)]
Bump version
Panu Matilainen [Thu, 16 Oct 2008 13:11:15 +0000 (16:11 +0300)]
Updated German translation from Fabian Affolter
Panu Matilainen [Thu, 16 Oct 2008 13:08:18 +0000 (16:08 +0300)]
Updated Polish translation from Piotr Drąg
Panu Matilainen [Tue, 14 Oct 2008 13:32:58 +0000 (16:32 +0300)]
Add configure detection for SuSE too
- distro detection in configure is pretty futile but while we still have it...
Panu Matilainen [Tue, 14 Oct 2008 12:49:57 +0000 (15:49 +0300)]
Move luaext include fiddling out of toplevel configure
Panu Matilainen [Tue, 14 Oct 2008 12:44:22 +0000 (15:44 +0300)]
Add lua to pkgconfig private libs
Panu Matilainen [Tue, 14 Oct 2008 12:41:56 +0000 (15:41 +0300)]
Reuse toplevel WITH_LUA_LIB setting instead of manual setting
Panu Matilainen [Tue, 14 Oct 2008 12:36:23 +0000 (15:36 +0300)]
Sanitize libluaext linkage
Panu Matilainen [Tue, 14 Oct 2008 12:31:24 +0000 (15:31 +0300)]
Fix build without Lua
Panu Matilainen [Tue, 14 Oct 2008 11:46:33 +0000 (14:46 +0300)]
Tweak autogen a bit more
- lose hardcoded paths based on platform
- add --rpmconfigure that can be used if rpm is already present
Panu Matilainen [Tue, 14 Oct 2008 11:24:30 +0000 (14:24 +0300)]
Rip silly "usage" message from autogen
Panu Matilainen [Tue, 14 Oct 2008 11:17:14 +0000 (14:17 +0300)]
Kick out ancient and unused LDFLAGS_STATIC configure.ac-hackery