Panu Matilainen [Fri, 3 Jul 2009 11:46:06 +0000 (14:46 +0300)]
Unify extension + header data getter calling conventions
- simplifies headerGet() & friends a bit and reduces redundancy
- also just return an error instead of dying with assert on NULL td argument
Panu Matilainen [Fri, 3 Jul 2009 11:21:01 +0000 (14:21 +0300)]
Pass headerGet flags to extensions too (unused for now)
Panu Matilainen [Fri, 3 Jul 2009 10:11:35 +0000 (13:11 +0300)]
Eliminate unused calculations originating from the "8/98 bug"
- the tl calculation has been unused since commit
5994a308bc062fff53ff0184b8dea15d19fcfb63 in 2001 and we dont even
read rpm 2.x packages anyway...
Panu Matilainen [Fri, 3 Jul 2009 09:13:54 +0000 (12:13 +0300)]
Re-enable rdlen vs dl header check
- we dont even read packages from the "8/98 bug" era anymore, hardly relevant
Panu Matilainen [Wed, 1 Jul 2009 10:59:53 +0000 (13:59 +0300)]
Band-aid to dependency caching misbehaving with chrooted verify (RhBug:508074)
- disable dependency caching on chrooted verify to avoid ugly spew
from paths containing outside paths while we're actually inside the
root during verification
- correct fix would be to fix the temporary db path calculation
Panu Matilainen [Fri, 26 Jun 2009 13:24:55 +0000 (16:24 +0300)]
Handle hook unregistering itself
Panu Matilainen [Fri, 26 Jun 2009 13:07:50 +0000 (16:07 +0300)]
Fix rpm.unregister() Lua extension
- hook data is userdata, not light userdata
Panu Matilainen [Fri, 26 Jun 2009 12:39:20 +0000 (15:39 +0300)]
Add base64 encode and decode extensions to the lua interface
Panu Matilainen [Fri, 26 Jun 2009 09:31:57 +0000 (12:31 +0300)]
Base64-encode %policy files to ensure it can be presented as strings
- RPMTAG_POLICIES is a string array but there's no guarantee that
something marked %policy is a plaintext file that can be represented
as \0-terminated string, base64-encoding them fixes that. Baby steps
towards making %policy remotely usable, related to RhBug:505066.
- Also remove unnecessary failure code setting, processMetadataFile()
assumes failure already, and dont try to insert NULL strings in case
b64encode() or pgpArmorWrap() fails
Panu Matilainen [Thu, 25 Jun 2009 14:17:16 +0000 (17:17 +0300)]
Kick out silly constfree() use
Panu Matilainen [Wed, 24 Jun 2009 12:16:25 +0000 (15:16 +0300)]
Simplify logging a bit
- precalculate the message length, relying on C99 vsnprintf() semantics
- generate the log message and rest of the record in rpmlog() already,
and just pass the record to lower level to do actual logging
- also something was wrong in the old version as valgrind complained
about illegal reads, that is also cured here
Panu Matilainen [Tue, 23 Jun 2009 14:50:08 +0000 (17:50 +0300)]
Set HEADERFLAGS_ALLOCATED centrally from headerLoad()
- requiring every caller to handle this separately, violating header type
opaqueness in the process, doesn't seem that bright an idea
- also fix a memleak on signature header read in case of failure
Jindrich Novy [Tue, 23 Jun 2009 09:05:06 +0000 (11:05 +0200)]
Teach %files to accept multiple filelists (ticket #70, rhbz#475359)
Jindrich Novy [Tue, 23 Jun 2009 08:56:53 +0000 (10:56 +0200)]
Allow ':' character in EVR, it's needed for Epoch separation
Jindrich Novy [Tue, 23 Jun 2009 08:55:54 +0000 (10:55 +0200)]
Check arg in argvJoin() before dereferencing
Panu Matilainen [Tue, 23 Jun 2009 07:03:58 +0000 (10:03 +0300)]
Updated Polish translation (ticket #74)
Panu Matilainen [Tue, 23 Jun 2009 06:56:04 +0000 (09:56 +0300)]
Fix some typos in javadeps usage message (ticket #72)
Panu Matilainen [Thu, 18 Jun 2009 11:52:45 +0000 (14:52 +0300)]
Add -h/--help to rpm2cpio (ticket #63)
- patch originally from Debian, with slight adjustments to indentation
Panu Matilainen [Thu, 18 Jun 2009 11:19:59 +0000 (14:19 +0300)]
Updated German translation from Micha Pietsch (RhBug:506607)
Panu Matilainen [Thu, 18 Jun 2009 11:16:46 +0000 (14:16 +0300)]
Updated German translation from Micha Pietsch (RhBug:506607)
Panu Matilainen [Thu, 18 Jun 2009 10:06:42 +0000 (13:06 +0300)]
Pile of OSGi dependency generator fixes from Alphonse Van Assche (ticket #39)
- use Temp perl module to provide temp dir
- re-enable deps solving in Require-Bundle, Import-Package, Export-Package
OSGI properties
- remove uses bundle of Export-Package OSGI property
- use RPM '>=' as version operator to match OSGI '='
- remove all .0 at the end of the version string
- typo fixes
Panu Matilainen [Wed, 17 Jun 2009 12:06:06 +0000 (15:06 +0300)]
Delay fingerprint cache init + lookup until we know there are some matches
- no point going to fs if there are no matching files in the rpmdb
- use allMatches count as size hint to fingerprint cache instead of
arbitrary 20
Panu Matilainen [Wed, 17 Jun 2009 12:04:41 +0000 (15:04 +0300)]
Permit NULL in fpCacheFree()
Panu Matilainen [Wed, 17 Jun 2009 10:09:25 +0000 (13:09 +0300)]
Fix invalid memory access from freeing dirName too early
- if it doesn't crash, it can cause rpmdb provided file not seen in chroot,
the other half of RhBug:506323
- streamline exit points to enable freeing allocated resources sanely
Florian Festi [Tue, 16 Jun 2009 15:37:40 +0000 (17:37 +0200)]
Fix Segfault for to be installed symlinks pointing to existing locations
fixes rhbz#505777
Panu Matilainen [Tue, 16 Jun 2009 15:19:40 +0000 (18:19 +0300)]
Eliminate now unnecessary artifacts of rpmdsNext() side-effects
Panu Matilainen [Tue, 16 Jun 2009 15:15:31 +0000 (18:15 +0300)]
Generate DNEVR string lazily on rpmdsDNEVR() calls
- avoids useless string churning on rpmdsNext() when most paths dont
actually use the DNEVR string for anything
- make sure DNEVR is freed whenever iterator index changes
Panu Matilainen [Tue, 16 Jun 2009 14:49:44 +0000 (17:49 +0300)]
Eliminate epoch promotion debug cruft
- might've been useful back in the day but...
Panu Matilainen [Tue, 16 Jun 2009 14:36:21 +0000 (17:36 +0300)]
Determine rpmlib deps from flags instead of comparing strings
Panu Matilainen [Tue, 16 Jun 2009 14:23:17 +0000 (17:23 +0300)]
Validate rpmlib dependencies on src.rpm install (RhBug:490613)
- other src.rpm dependencies are only relevant for building, but rpmlib
features can affect src.rpm "install" too, such as unsupported file
digests, payload compressors etc
Jindrich Novy [Tue, 16 Jun 2009 11:53:42 +0000 (13:53 +0200)]
Don't check Provides/Requires for bad characters, they could be UTF-8
- don't check Name but EVR in parseRCPOT()
- use rpm namespacing for charCheck()
- remove unused variable
Panu Matilainen [Tue, 16 Jun 2009 10:52:43 +0000 (13:52 +0300)]
Add debugedit support for DWARF-3 (RhBug:505774)
- patch from Jakub Jelinek
Panu Matilainen [Mon, 15 Jun 2009 12:21:27 +0000 (15:21 +0300)]
Rip hardcoded libgcc + glibc static helper kludges
- shouldn't be needed anyway anymore as package of preferred color should get
always installed first, and the issue is solvable in packaging anyway
Jindrich Novy [Mon, 15 Jun 2009 06:47:55 +0000 (08:47 +0200)]
Check for valid chars in Requires/Provides as well
Panu Matilainen [Fri, 12 Jun 2009 05:52:38 +0000 (08:52 +0300)]
Fix out of source directory build (ticket #65)
Panu Matilainen [Fri, 12 Jun 2009 05:33:29 +0000 (08:33 +0300)]
Add parentheses (as kindly suggested by new gcc...)
Panu Matilainen [Fri, 12 Jun 2009 05:29:02 +0000 (08:29 +0300)]
Make peace with newer git
Panu Matilainen [Thu, 11 Jun 2009 14:22:59 +0000 (17:22 +0300)]
Make rpmalSatisfiesDepend() smarter
- Instead of blindly picking the first match, try to pick the best provider
for the dependency: for colored dependencies, try to find a provider of
matching color. For non-colored dependencies, prefer providers of
transaction preferred color.
- This avoids creating bogus and loopy relations between 32- and 64-bit packages
where they dont exist, and makes behavior with things like /sbin/ldconfig
consistent by returning the preferred colored element.
Panu Matilainen [Thu, 11 Jun 2009 14:16:03 +0000 (17:16 +0300)]
Add preferred color to rpmal
Panu Matilainen [Wed, 10 Jun 2009 14:22:03 +0000 (17:22 +0300)]
Update translations for a change (due to depends.c -> order.c split)
Panu Matilainen [Wed, 10 Jun 2009 14:19:27 +0000 (17:19 +0300)]
Split ordering code to separate source file
Jindrich Novy [Wed, 10 Jun 2009 09:52:53 +0000 (11:52 +0200)]
Add new function to check valid characters in NVR (ticket #59)
Jindrich Novy [Wed, 10 Jun 2009 07:16:45 +0000 (09:16 +0200)]
Nuke useless compatibility stuff and put V/R checking where it belongs
Jindrich Novy [Tue, 9 Jun 2009 08:29:01 +0000 (10:29 +0200)]
Make whitelist of characters allowed in NVR (ticket #59, rhbz#493157)
Panu Matilainen [Mon, 8 Jun 2009 11:48:36 +0000 (14:48 +0300)]
rpmdsInit() and rpmdsNext() can handle NULL ds, no need to separately test
Panu Matilainen [Mon, 8 Jun 2009 11:43:45 +0000 (14:43 +0300)]
Minor rpmtsOrder() cleanup
- initialize on declaration
- remove unused code
Panu Matilainen [Mon, 8 Jun 2009 11:24:14 +0000 (14:24 +0300)]
Clean up relation recording a bit
- rpmdsInit() and rpmdsNext() can handle NULL ds correctly, dont bother
separately checking here
- te type doesn't change inside rpmdsNext() iteration
- added vs installed difference is handled inside addRelation(), otherwise
the cases here are identical except for the al
Panu Matilainen [Mon, 8 Jun 2009 11:13:58 +0000 (14:13 +0300)]
Dont bother adding dependencies to self, ever
Panu Matilainen [Mon, 8 Jun 2009 11:10:44 +0000 (14:10 +0300)]
Determine rpmlib and config deps from flags instead of comparing strings
Panu Matilainen [Fri, 5 Jun 2009 12:00:33 +0000 (15:00 +0300)]
Map legacy PreReq into pre and preun scriptlet dependencies in ordering
- this gives close enough semantics for packages that rely on old
PreReq behavior (eg RHEL 4-5 package set ordering is completely broken
without such mapping)
Panu Matilainen [Fri, 5 Jun 2009 11:56:49 +0000 (14:56 +0300)]
Unbreak isLegacyPreReq()
- long long time ago the PREREQ bit was also turned on for scriptlet
dependencies etc, this is no longer the case so the old mask doesn't work
- build part is not affected by the mask change as we never set
PREREQ bit by ourselves
Panu Matilainen [Fri, 5 Jun 2009 11:50:01 +0000 (14:50 +0300)]
Use specific types for sense flags + te type instead of generic int
Florian Festi [Tue, 14 Apr 2009 08:54:58 +0000 (10:54 +0200)]
Rewrite ordering
- Detect strongly connected components (SCCs) using Tarjan's SCC algorithm
- Use Dijkstra's algorithm to find the best relations to zap
- Add forward relations for the Dijkstra's algorithm
- Separate the per package ordering data and the relations
Rakesh Pandit [Thu, 28 May 2009 06:51:08 +0000 (12:21 +0530)]
Removing extra useless 'break' statement lines and unhandled FTS_FOO cases.
Rakesh Pandit [Thu, 28 May 2009 06:43:40 +0000 (12:13 +0530)]
Removed 'xx' variable in rpminstall.c
- in setNotifyFlag, rpmShowProgress and rpmInstall functions.
Rakesh Pandit [Thu, 28 May 2009 06:41:03 +0000 (12:11 +0530)]
Removed rpmEIU memeber 'fd' -and its usage in tryReadFoo functions.
Rakesh Pandit [Tue, 2 Jun 2009 05:13:59 +0000 (10:43 +0530)]
Updated mailing list information.
Panu Matilainen [Tue, 2 Jun 2009 06:42:04 +0000 (09:42 +0300)]
Remove toplevel TODO too, nobody updates it and we have Trac now
Panu Matilainen [Mon, 1 Jun 2009 12:32:26 +0000 (15:32 +0300)]
depMsg doesn't need _notpre() anymore
Panu Matilainen [Mon, 1 Jun 2009 11:54:59 +0000 (14:54 +0300)]
Remove leftover build/TODO file from 1998 / rpm 2.5 era...
Panu Matilainen [Mon, 1 Jun 2009 11:48:58 +0000 (14:48 +0300)]
Generate spec part string lengths at build time and make it const
Panu Matilainen [Mon, 1 Jun 2009 11:45:44 +0000 (14:45 +0300)]
Generate preamble tag lengths at build time and make it const
Panu Matilainen [Mon, 1 Jun 2009 10:39:00 +0000 (13:39 +0300)]
Issue deprecation warnings for PreReq and BuildPreReq
Panu Matilainen [Mon, 1 Jun 2009 10:37:20 +0000 (13:37 +0300)]
Turn unused spec syntax obsoletion mechanism into deprecation warning
Panu Matilainen [Mon, 1 Jun 2009 10:28:50 +0000 (13:28 +0300)]
Map PreReq into Requires(pre,preun) at build
- this gives a more reasonable mapping to former behavior of PreReq
when cutting loops
Panu Matilainen [Mon, 1 Jun 2009 09:53:08 +0000 (12:53 +0300)]
Deal with multiple scriptlet dependency bits in deptype format extension
- rpmbuild permits Requires(post,postun) style notation which gets lumped
into single dependency, report them all
Panu Matilainen [Mon, 1 Jun 2009 09:42:07 +0000 (12:42 +0300)]
Bring back former value of RPMSENSE_PREREQ
- packages using the legacy PreReq still widely exist distros having
patched PREREQ back in, we'll want to be able to deal with the legacy
packages best we can, and to do that we need to be able to test for
the prereq bit
- this also fixes ordering brokenness introduced by commit
502f88e0e67bb1df91e09a32a370b04bda36259e all the way from 2004:
with RPMSENSE_PREREQ equalling RPMSENSE_ANY, all co-requisites are seen
as pre-requisites due to isLegacyPrefix() returning bogons (RhBug:502269)
- previously RPMSENSE_SCRIPT_PRE etc were also marked RPMSENSE_PREREQ to
permit legacy rpm versions to deal the fine grained scriptlet dependencies
somehow, this we dont want anymore
Panu Matilainen [Mon, 1 Jun 2009 07:39:07 +0000 (10:39 +0300)]
Avoid filtering out erase pre-requisites on install
- Requires(pre,preun) etc are recorded as a single dependency entry,
so filter out dependencies that are only install pre-requisites
Panu Matilainen [Fri, 29 May 2009 08:03:33 +0000 (11:03 +0300)]
Build prereq is exactly the same as buildrequires
Panu Matilainen [Fri, 29 May 2009 06:02:44 +0000 (09:02 +0300)]
Fix calculation of hardlinked files (RhBug:503020)
- regression from commit
899dfb58927ec6e91014773430824462f4d0002e,
size of hardlinked file set is the size of one file of the set
- add isHardLink() internal helper to avoid a copy-paste code
Panu Matilainen [Fri, 22 May 2009 10:54:08 +0000 (13:54 +0300)]
Couple of documentation typos
Panu Matilainen [Fri, 22 May 2009 07:04:20 +0000 (10:04 +0300)]
Clean platform files on uninstall
Panu Matilainen [Fri, 22 May 2009 06:56:43 +0000 (09:56 +0300)]
Include from src, not build dir
Panu Matilainen [Wed, 20 May 2009 14:53:50 +0000 (17:53 +0300)]
Remove unnecessary includes + other minor include corrections
Panu Matilainen [Wed, 20 May 2009 14:22:51 +0000 (17:22 +0300)]
Eliminate useless pgpDig nbytes counter
- nothing at all uses this, dont bother
- if plaintext size of digests is needed, the correct place to calculate
it is in the digest routines, not manual beancounting all over the place
Panu Matilainen [Wed, 20 May 2009 14:20:43 +0000 (17:20 +0300)]
Remove size "signature" verification
- rpm itself hasn't used this for anything in ages, its broken too for
quite some time and nobody noticed -> nobody's going to miss this
Panu Matilainen [Wed, 20 May 2009 14:19:46 +0000 (17:19 +0300)]
Refactor ts out of main read package function
- Add a lower level rpmpkgRead() which just takes keyring and verify
flags, rpmReadPackageFile() is just a wrapper around it now
- Avoids several levels of unnecessary keyring references through
rpmtsGetKeyring()
- Pretty much loses package reading statistics but shrug...
Panu Matilainen [Wed, 20 May 2009 14:19:06 +0000 (17:19 +0300)]
Refactor ts out of main header read function
- Add a lower level rpmpkgReadHeader() which just takes keyring and
verify flags, rpmReadHeader() is just a wrapper around it now
Panu Matilainen [Wed, 20 May 2009 14:00:12 +0000 (17:00 +0300)]
Refactor ts out of main header verification routine
- signature checking a header only needs a keyring + verify flags,
add a lower level headerVerify() function (static only for now)
for this and turn headerCheck() into a wrapper around it
- some accuracy in statistics lost but shrug...
Panu Matilainen [Tue, 19 May 2009 07:26:50 +0000 (10:26 +0300)]
Don't mess up problem altNEVR in python ts.check() (rhbz#501068)
- the use of strrchr() silently casts away the const from the problem
set altNEVR string, which we then happily modify..
- similar to commit
62cc76e25cdfad78ac30bb28f626b474efdecddc
Panu Matilainen [Tue, 12 May 2009 07:30:10 +0000 (10:30 +0300)]
Updated Spanish translation (Domingo Becker)
Panu Matilainen [Tue, 12 May 2009 07:28:00 +0000 (10:28 +0300)]
Updated Portugese Brazilian translation (Igor Pires Soares)
Panu Matilainen [Fri, 8 May 2009 12:22:25 +0000 (15:22 +0300)]
Minor fix to Japanese translation (Masaki Furuta)
Panu Matilainen [Fri, 8 May 2009 12:01:15 +0000 (15:01 +0300)]
Fix parsing of pubkey signature packets. Ick.
- busted all the way from commit
bcb226480d0b60a8667eade77d81c29de4c3d6c9
Panu Matilainen [Thu, 7 May 2009 11:31:57 +0000 (14:31 +0300)]
Dont bother generation rpmds debug messages unless in debug mode
- rpmdsNotify() which does nothing but generate RPMLOG_DEBUG messages
gets called often enough that avoiding the unnecessary
rpmlog() and strcmp() calls is easily visible in wallclock times
Panu Matilainen [Wed, 6 May 2009 11:54:10 +0000 (14:54 +0300)]
rpmdsThis() is really just a special case of rpmdsSingle()
Panu Matilainen [Thu, 23 Apr 2009 12:54:09 +0000 (15:54 +0300)]
Hide NSS peculiarities from API
- PKCS#11 standard requires modules to be re-initialized after fork(),
arrange this to occur automatically.
- Most of the time child processes will exec() something else so dont
bother shutting down NSS for every child, only lazily re-initialize
as needed.
- This lets us initialize NSS early to force preloading of its dlopen()'ed
libraries to avoid issues on chroot(), without causing problems to API
users which fork() after initializing rpm (such as func, urpmi etc).
Rakesh Pandit [Sat, 14 Mar 2009 13:08:53 +0000 (18:38 +0530)]
- Removed unnecessary rpmdbFreeIterator call and moved them to enditer label.
- Rearranged bit to keep the logic sane.
Rakesh Pandit [Sat, 14 Mar 2009 12:29:03 +0000 (17:59 +0530)]
Cleanup: Move similar patterns in rpmcliArgIter to rpmcliArgIterHelper.
Rakesh Pandit [Sat, 14 Mar 2009 12:02:59 +0000 (17:32 +0530)]
- Moved code to check possibility of freshen operation to checkFreshenStatus.
Rakesh Pandit [Sat, 14 Mar 2009 11:08:10 +0000 (16:38 +0530)]
- Move header reading part from rpminstall to tryReadHeader function.
Panu Matilainen [Wed, 22 Apr 2009 14:12:37 +0000 (17:12 +0300)]
Minor cleanups to installplatform script
- eliminate unused target and target_platform variables
- eliminate unnecessary temporary rpmrc (used to make a difference when
macro path was in there, not anymore)
Panu Matilainen [Wed, 22 Apr 2009 13:22:54 +0000 (16:22 +0300)]
Eliminate unnecessary rpmts_internal.h include
Panu Matilainen [Wed, 22 Apr 2009 11:58:10 +0000 (14:58 +0300)]
Refactor ts out of the main signature checking worker
- Add lower level rpmpkgVerifySigs() function which does the real work,
ts and full qva isn't needed there, just keyring and flags what to verify.
Static only for now, but this is the kind of interface we'll want to
export eventually.
- rpmVerifySignatures() is now just a API-compatibility wrapper.
- Use rpmpkgVerifySigs() instead of rpmVerifySignatures() in rpmcliSign()
verify loop so we only retrieve keyring once.
Panu Matilainen [Wed, 22 Apr 2009 11:01:40 +0000 (14:01 +0300)]
Dont try to refcount NULL keyring
Ville Skyttä [Sun, 12 Apr 2009 18:39:50 +0000 (21:39 +0300)]
Fix --with-kde with KDE3 (rhbz#466009).
Jindrich Novy [Mon, 20 Apr 2009 11:23:30 +0000 (13:23 +0200)]
Require file attributes in spec if %ghost files are missing from build root
Panu Matilainen [Sat, 18 Apr 2009 11:31:48 +0000 (14:31 +0300)]
Fix a few file permissions from "make install"
- macros.perl, logrotate examples etc aren't scripts and shouldn't be
executable. Ditto for python __init__.py
Jindrich Novy [Thu, 16 Apr 2009 12:13:34 +0000 (14:13 +0200)]
Introduce changelog trimming in binary packages feature (ticket #47)
Jindrich Novy [Thu, 16 Apr 2009 12:12:20 +0000 (14:12 +0200)]
Introduce _changelog_trimtime and obsolete _instchangelog