Panu Matilainen [Mon, 31 Aug 2009 07:19:45 +0000 (10:19 +0300)]
Eliminate now unnecessary compressor -> ioflags conversions
Panu Matilainen [Mon, 31 Aug 2009 06:44:52 +0000 (09:44 +0300)]
Accept direct compressor names as Fopen() modes too
Panu Matilainen [Mon, 31 Aug 2009 06:39:16 +0000 (09:39 +0300)]
Switch rpmio mode checking to use rstreq()
Panu Matilainen [Mon, 31 Aug 2009 06:33:52 +0000 (09:33 +0300)]
Add two helper functions for comparing string equality
Panu Matilainen [Fri, 28 Aug 2009 12:43:07 +0000 (15:43 +0300)]
Eliminate unused result code from psm struct
Panu Matilainen [Fri, 28 Aug 2009 12:36:07 +0000 (15:36 +0300)]
Eliminate payload file handle from psm struct
- it's only needed locally inside PSM_PROCESS on PSM_INSTALL
Panu Matilainen [Fri, 28 Aug 2009 07:52:49 +0000 (10:52 +0300)]
Don't try to incref NULL ds
Panu Matilainen [Thu, 20 Aug 2009 11:10:41 +0000 (14:10 +0300)]
Remove extra trailing } copy-paste error from python_foo macros, duh
Panu Matilainen [Thu, 20 Aug 2009 10:04:21 +0000 (13:04 +0300)]
We always add EVR and Flags to dependencies, remove bogus condition
Panu Matilainen [Thu, 20 Aug 2009 10:02:05 +0000 (13:02 +0300)]
Fix duplicate dependency checking on build
- Broken by commit
af8b41c64af39ce07d85fcd92fa78d566747d815 which
simplified too much.
- There's no guarantee that rpmdsNew() returns a sorted dependency set
so rpmdsFind() doesn't work correctly here. Walk the ds manually instead.
- With multiple triggers of same type, identical trigger conditions on
different trigger script were seen as duplicates (RhBug:490378)
- Split the duplicate checking to separate helper function for clarity
Panu Matilainen [Tue, 18 Aug 2009 08:46:12 +0000 (11:46 +0300)]
Copy BUGURL to source rpm's too
- should've been in commit
86032bfbb61f1bdee9ac42989a14ea40bed0deec, duh
Panu Matilainen [Tue, 18 Aug 2009 06:20:45 +0000 (09:20 +0300)]
Add some commonly used python macros (ticket #83)
- macros to determine python version and library paths
Panu Matilainen [Mon, 17 Aug 2009 12:06:39 +0000 (15:06 +0300)]
Eliminate unused code (leftover from ordering rewrite)
Panu Matilainen [Mon, 17 Aug 2009 11:40:39 +0000 (14:40 +0300)]
Don't bother relocating packages no files
- fixes a small memleak
Panu Matilainen [Mon, 17 Aug 2009 09:07:48 +0000 (12:07 +0300)]
Avoid adding Lua sources and patches twice when recursing (ticket #82)
- parseSpec() operates on newly created empty spec structures even when
"recursing" but the lua variables are global and need recursion
protection to avoid adding multiple times
Panu Matilainen [Mon, 17 Aug 2009 08:22:16 +0000 (11:22 +0300)]
Add default %clean section unless overridden in spec (ticket #81)
- avoids silly clutter in every specfile in the regular case but permits
overriding if needed for whatever reason
- it's a spec behavior change but mostly backwards compatible:
existing specs will do whatever the %clean does, and if you need to avoid
calling %clean for whatever reason just keep an empty %clean in the spec
Ville Skyttä [Tue, 16 Jun 2009 19:25:02 +0000 (22:25 +0300)]
Add -d option to %patch.
Panu Matilainen [Fri, 14 Aug 2009 08:30:07 +0000 (11:30 +0300)]
Add isSource() method to python header object (ticket #32)
Panu Matilainen [Fri, 14 Aug 2009 08:27:57 +0000 (11:27 +0300)]
Add %make_install macro that does the "right thing" wrt modern autotools
- old %makeinstall for broken/ancient autotools left untouched for
backwards compatibility
Jindrich Novy [Fri, 14 Aug 2009 07:36:26 +0000 (09:36 +0200)]
Add bug URL macro so that it could be set distro-wide (rhbz#512774)
Panu Matilainen [Thu, 13 Aug 2009 14:22:53 +0000 (17:22 +0300)]
Update querytags test to match current output
- should've been in commit
86032bfbb61f1bdee9ac42989a14ea40bed0deec, duh
Panu Matilainen [Thu, 13 Aug 2009 14:11:47 +0000 (17:11 +0300)]
Build script environment tweaks to improve reproducability
- unset CDPATH (RhBug:426955) and DISPLAY environment variables
- always run in C locale
Panu Matilainen [Thu, 13 Aug 2009 13:46:18 +0000 (16:46 +0300)]
Don't set --target in %configure (RhBug:458648)
- --target is only ever useful for handful of compiler toolchain packages
and cross-compiler packages are better off setting it themselves if
necessary, rpm messing here only gets in the way
Panu Matilainen [Thu, 13 Aug 2009 13:44:59 +0000 (16:44 +0300)]
Nuke long since dead version of %configure macro + update commentary
Panu Matilainen [Thu, 13 Aug 2009 12:45:56 +0000 (15:45 +0300)]
Add an option bug reporting URL tag to packages (RhBug:512774)
Panu Matilainen [Thu, 13 Aug 2009 08:46:56 +0000 (11:46 +0300)]
Add missing <pthread.h> include in rpmsq.h (ticket #87)
- patch from Michal Čihař
Panu Matilainen [Thu, 13 Aug 2009 07:35:01 +0000 (10:35 +0300)]
Bump version to appear newer than 4.7.x branch
Jindrich Novy [Wed, 12 Aug 2009 14:06:08 +0000 (16:06 +0200)]
rpmbuild won't segfault when %including spec with zero size
Ville Skyttä [Mon, 3 Aug 2009 21:34:31 +0000 (00:34 +0300)]
Add *.xz and *.lzma recompress support to brp-compress.
Jindrich Novy [Thu, 6 Aug 2009 12:16:02 +0000 (14:16 +0200)]
Correctly inherit default %attr(-,-,-) attributes from %defattr (rhbz#515685)
Panu Matilainen [Thu, 23 Jul 2009 09:24:10 +0000 (12:24 +0300)]
Kill off lclint remnants everywhere
- remove ancient and likely irrelevant LCL comments and bogus NULL checks
Lubomir Rintel [Mon, 22 Jun 2009 22:49:17 +0000 (00:49 +0200)]
Fix memory allocation for token array
This fixes a memory corruption due to write access out of
bounds of token array, whose size was computed incorrectly.
It was assumed that only '%' characters separate tokens,
which could lead to crashes on useless uses of '[' tokens,
such as "rpm -qa --qf '[]lalala'".
Panu Matilainen [Tue, 14 Jul 2009 11:25:58 +0000 (14:25 +0300)]
Log an error on short lead (RhBug:511101)
- if lead read returns short without it being an IO error, treat it
as a case of "not an rpm package"
Panu Matilainen [Tue, 14 Jul 2009 10:56:27 +0000 (13:56 +0300)]
Honor --nofiledigest on install too (RhBug:508021)
- query and install options clash, use popt callback to enable processing
Panu Matilainen [Tue, 14 Jul 2009 08:54:43 +0000 (11:54 +0300)]
Document --nodeps in rpmbuild manual (RhBug:482921)
Panu Matilainen [Tue, 14 Jul 2009 08:24:02 +0000 (11:24 +0300)]
Dont accept '-' in manifests (RhBug:461353)
Panu Matilainen [Tue, 14 Jul 2009 08:15:30 +0000 (11:15 +0300)]
Dont treat filenames starting with - as stdin
Panu Matilainen [Thu, 9 Jul 2009 12:07:38 +0000 (15:07 +0300)]
Oops, missing include for dirname()
Panu Matilainen [Thu, 9 Jul 2009 11:40:17 +0000 (14:40 +0300)]
Create the directory used for transaction lock if necessary
- otherwise at least rpm --initdb can fail due to transaction locking failing
Panu Matilainen [Thu, 9 Jul 2009 11:01:13 +0000 (14:01 +0300)]
Fix package relocatability checking, broken since forever
- at the time relocation problems are added, ts problem set is NULL
and rpmtsCheck() wipes it out anyway so the problems from relocation
are never seen anywhere
- The header isn't available at transaction prepare stage where most
problems are checked for, so we can't validate the prefixes at that
point. Add a per-element problem set to carry the problem data and
merge it to ts problem set when checking for other problem types.
Panu Matilainen [Thu, 9 Jul 2009 10:43:10 +0000 (13:43 +0300)]
Make rpmpsUnlink() behave the other fooUnlink() functions
- pretty much everything else in rpm returns NULL from unreference functions,
make be more consistent here...
- also tolerate NULL in both reference and unreference
Panu Matilainen [Thu, 9 Jul 2009 10:39:55 +0000 (13:39 +0300)]
Add reference counting to rpmProblems
Panu Matilainen [Thu, 9 Jul 2009 08:03:54 +0000 (11:03 +0300)]
Unbreak --excludepath (RhBug:409637)
- excluded paths aren't counted as actual relocations, dont bother
checkig addPrefixes() return
Panu Matilainen [Thu, 9 Jul 2009 06:28:45 +0000 (09:28 +0300)]
Fix compiler warning on const free
- we dont need popt to set the file variable as we manually process
Panu Matilainen [Wed, 8 Jul 2009 13:20:06 +0000 (16:20 +0300)]
Make verify result not depend on verbosity level, uff... (RhBug:510213)
Panu Matilainen [Fri, 3 Jul 2009 12:12:07 +0000 (15:12 +0300)]
Add an index for obsoletes (RhBug:507702)
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.