Panu Matilainen [Fri, 18 Sep 2009 08:51:21 +0000 (11:51 +0300)]
Per-dbi root and home dont make sense, always use rpmdb paths
Panu Matilainen [Fri, 18 Sep 2009 06:49:28 +0000 (09:49 +0300)]
Sigh.. when not using environment, absolute paths are required
Panu Matilainen [Thu, 17 Sep 2009 13:28:09 +0000 (16:28 +0300)]
Always open database files relative to database home
- This allows the db to move freely wherever (such as across chroots,
RhBug:507309 and pile of related issues) .. and is even recommended
by BDB documentation. Well duh.
Panu Matilainen [Thu, 17 Sep 2009 09:51:28 +0000 (12:51 +0300)]
EXIT_FAILURE being defined is already handled in system.h
Panu Matilainen [Thu, 17 Sep 2009 09:40:29 +0000 (12:40 +0300)]
Compare pointers against NULL, not 0
Panu Matilainen [Thu, 17 Sep 2009 09:25:31 +0000 (12:25 +0300)]
Have BDB use our allocation routines now that we can
- rfree() prototype doesn't match free() but it doesn't matter in this
case as it's just a convencience wrapper with no extra functionality
and setting NULL is ok according to BDB docs
- db->set_alloc() can't be used if environment is used, fix the condition
Panu Matilainen [Thu, 17 Sep 2009 08:36:10 +0000 (11:36 +0300)]
Add runtime settable custom memory allocation failure callback routine
- lets API users perform theirn own cleanup / exit through their own
routines in case of allocation failure, or even try to free up
some memory and retry allocation
Panu Matilainen [Wed, 16 Sep 2009 14:28:22 +0000 (17:28 +0300)]
Always use build + use our own allocator functions
- Consistent across platforms and will allow some things macros dont and
memory checkers these days are smart enough to get decent output anyway
- Minimal namespacing with r-prefix, add compatibility macros to system.h
for now so we dont have to change the entire codebase for this
- Also make rpmutil.h where the declarations and gcc __attribute__ macros
are available everywhere
Panu Matilainen [Wed, 16 Sep 2009 13:18:06 +0000 (16:18 +0300)]
Eliminate unnecessary variable
Florian Festi [Wed, 16 Sep 2009 12:59:48 +0000 (14:59 +0200)]
Remove unused local variable
Panu Matilainen [Wed, 16 Sep 2009 12:36:44 +0000 (15:36 +0300)]
Remove db environment on close on chrooted operations
- As we open the db from outside the chroot, the environment ends up
containing paths that are not valid once we enter the chroot causing
dumb issues like RhBug:513699 and RhBug:507309.
- We'd be better off removing the environment always after access but
limiting to chroots for now as the rpmdb open/close path is full of races
when environment is not present. Chroots are somewhat special environemnts
anyway and typically not concurrently accessed so it's less of an issue
there.
- While this still has all sorts of issues, it at least leaves the rpmdb
in chroot in a functional state after initial install.
Panu Matilainen [Wed, 16 Sep 2009 12:12:28 +0000 (15:12 +0300)]
Move the default transaction lock out of BDB environment namespace
- We dont want the transaction lock to get mixed with the BDB environment,
nor do we want it wiped out with it as the ts lock protects things
*around* the environment. Unlike the environment, any fcntl locks on
the file get released when process dies, so if there is a lock,
there's a process alive holding it and you'd better not remove it.
- Use the same lock path in macro configuration and built-in fallback
- Make it a hidden file to avoid people confusing lock file existence
with it actually being locked
Panu Matilainen [Wed, 16 Sep 2009 11:08:28 +0000 (14:08 +0300)]
There's a function to test string equivalence...
Panu Matilainen [Wed, 16 Sep 2009 11:00:54 +0000 (14:00 +0300)]
Throw out useless db statistics structs
- besides being completely unused, these structs are defined by BDB
public headers, no need to mirror them in rpm
Panu Matilainen [Wed, 16 Sep 2009 10:57:01 +0000 (13:57 +0300)]
Throw out pile of unused "stuff" from 2002
Panu Matilainen [Wed, 16 Sep 2009 09:41:44 +0000 (12:41 +0300)]
Minor cleanup to newRpmdb()
- no need to free what hasn't been allocated yet
Panu Matilainen [Wed, 16 Sep 2009 09:27:12 +0000 (12:27 +0300)]
One complicated way to write xstrdup() .. pff
- sqlite backend uses dbi subfile for table name, leave it alone although
it is the same as the file name...
- allocate + free both file and table name separately
Panu Matilainen [Wed, 16 Sep 2009 09:08:58 +0000 (12:08 +0300)]
Eliminate long since unused db subfile from bdb code
Panu Matilainen [Wed, 16 Sep 2009 08:56:12 +0000 (11:56 +0300)]
Remove unnecessary arguments to db init and fini
- bdb environments are per db_home, not per file so dbfile etc dont make
sense here
Florian Festi [Mon, 14 Sep 2009 14:19:33 +0000 (16:19 +0200)]
Also skip to be erased files in "netsharedpath"
fixes rhbz#494640
Panu Matilainen [Tue, 15 Sep 2009 09:57:51 +0000 (12:57 +0300)]
Initialize rpm earlier in rpm2cpio (RhBug:523260)
- url retrieval requires macros to be loaded
Panu Matilainen [Tue, 15 Sep 2009 08:05:27 +0000 (11:05 +0300)]
Take non-gi errors into account too (SuseBug:527191)
- patch from OpenSUSE / Michael Schroeder
Panu Matilainen [Tue, 15 Sep 2009 07:56:58 +0000 (10:56 +0300)]
Allow absolute paths in file lists again (SuseBug:535594, RhBug:521760)
- patch from OpenSUSE / Michael Schroeder
- build-time generated file lists should be placed in the build directory,
but at least one valid use case for this is things like %files -f %{SOURCE10}
Roland McGrath [Wed, 9 Sep 2009 18:07:10 +0000 (11:07 -0700)]
find-debuginfo.sh: use permissions 444 for all .debug files
Signed-off-by: Roland McGrath <roland@redhat.com>
Panu Matilainen [Tue, 15 Sep 2009 05:45:14 +0000 (08:45 +0300)]
Don't add dependency type into file requires and provides (RhBug:523282)
- unintended change in commit
3d8656f040d2c780c88d0cd63594898f0605a6fa
Panu Matilainen [Mon, 14 Sep 2009 10:23:34 +0000 (13:23 +0300)]
Clean up rpmalAllFileSatisfiesDepend() a bit
- avoid multiple strrchr() calls
- avoid _constfree(), the string size is known from strrchr() so we dont
need to allocate on heap at all
Panu Matilainen [Mon, 14 Sep 2009 06:48:49 +0000 (09:48 +0300)]
Single point of exit for doSetupMacro() to clean up freeing allocations
Panu Matilainen [Thu, 10 Sep 2009 14:16:12 +0000 (17:16 +0300)]
Oops, accessing the wrong header in processBinaryFiles()
- dumb mistakes from commit
4177fdffd6e7414123062e8716afb22596608531
Panu Matilainen [Thu, 10 Sep 2009 12:03:13 +0000 (15:03 +0300)]
Rip the broken asynchronous psm machinery
- it was only "used" for the ldconfig optimization and actually been
completely broken since the ordering rewrite
Panu Matilainen [Thu, 10 Sep 2009 12:02:36 +0000 (15:02 +0300)]
Rip the broken ldconfig optimization hack (RhBug:513224)
- it doesn't optimize much and what's worse, it sometimes optimizes out
calls that would've been necessary
Panu Matilainen [Thu, 10 Sep 2009 11:14:49 +0000 (14:14 +0300)]
Rip unnecessary headerDump() and the last ancient artifacts using it
- xml format dump gives an output that can actually be further processed
Panu Matilainen [Thu, 10 Sep 2009 11:05:08 +0000 (14:05 +0300)]
Rip unused and useless headerGetLangs()
- nothing in the world uses it and the info is available through
regular headerGet() anyway
Panu Matilainen [Thu, 10 Sep 2009 11:04:18 +0000 (14:04 +0300)]
Rip unused and useless headerUsageCount()
Panu Matilainen [Wed, 9 Sep 2009 11:19:20 +0000 (14:19 +0300)]
Eliminate unused goo from findEntry()
Panu Matilainen [Wed, 9 Sep 2009 09:17:10 +0000 (12:17 +0300)]
Handle NULL header in doHeaderUnload()
- avoids having to separately check elsewhere and avoids segfaulting
on headerUnload() and headerReload() on NULL headers
Panu Matilainen [Wed, 9 Sep 2009 08:52:47 +0000 (11:52 +0300)]
Eliminate pointless increment
Panu Matilainen [Wed, 9 Sep 2009 08:47:59 +0000 (11:47 +0300)]
Eliminate yet more unused calculations from header code...
Panu Matilainen [Wed, 9 Sep 2009 08:42:18 +0000 (11:42 +0300)]
Eliminate unused pad calculations from header code
Panu Matilainen [Wed, 9 Sep 2009 08:38:28 +0000 (11:38 +0300)]
Eliminate yet another unused variable in header code
Panu Matilainen [Wed, 9 Sep 2009 08:10:41 +0000 (11:10 +0300)]
Eliminate last remaining leftovers from "8/98 bug" workaround
- the ieprev calculations aren't used for anything, should've been in
commit
4d0d54492c7d539cc806ca9e7fa59e919c28e45d really
Panu Matilainen [Wed, 9 Sep 2009 08:06:45 +0000 (11:06 +0300)]
Eliminate unnecessary variable & related goo from regionSwab()
Panu Matilainen [Tue, 8 Sep 2009 11:11:59 +0000 (14:11 +0300)]
Initialize diff on declaration where it fits comfortably on one line
Panu Matilainen [Tue, 8 Sep 2009 11:10:34 +0000 (14:10 +0300)]
Move variable to block local scope, not needed elsewhere
Panu Matilainen [Tue, 8 Sep 2009 11:07:52 +0000 (14:07 +0300)]
Remove unnecessary assignment, diff is block local scope here
Panu Matilainen [Tue, 8 Sep 2009 11:05:16 +0000 (14:05 +0300)]
Reduce the number of exit points in parseFormat() to error and ok cases
- avoid a dozen redundant freeFormat() calls and dont bother NULLing
local variable at the end
Panu Matilainen [Mon, 7 Sep 2009 15:41:32 +0000 (18:41 +0300)]
Add -Wempty-body to default options if gcc supports it
- ...to help protect against screwups like
2ee45ef12aaa958b78c56b6d83bb18aa6a477d15
Panu Matilainen [Mon, 7 Sep 2009 14:50:43 +0000 (17:50 +0300)]
Eliminate unused variable
Panu Matilainen [Mon, 7 Sep 2009 14:39:39 +0000 (17:39 +0300)]
Eliminate unused variable
Panu Matilainen [Mon, 7 Sep 2009 14:10:12 +0000 (17:10 +0300)]
Minor rpmfcGenerateDependsHelper() cleanups
- initialize at declaration time, remove unnecessary variables etc
Panu Matilainen [Mon, 7 Sep 2009 14:00:49 +0000 (17:00 +0300)]
Move rl to the scope where its needed, dont bother assigning NULL
Panu Matilainen [Mon, 7 Sep 2009 13:59:01 +0000 (16:59 +0300)]
Single point of exit for doPatch() to clean up freeing
Panu Matilainen [Mon, 7 Sep 2009 13:39:40 +0000 (16:39 +0300)]
Eliminate bogus variable initialization
- i isn't used outside the loop at the end, move it there...
Panu Matilainen [Mon, 7 Sep 2009 13:34:20 +0000 (16:34 +0300)]
Add noreturn annotations to javadeps
Panu Matilainen [Mon, 7 Sep 2009 13:23:32 +0000 (16:23 +0300)]
Help compilers/analyzers a bit with luaL_error()
- luaL_error() never returns but as other tools dont know this it
raises false alarms
Panu Matilainen [Mon, 7 Sep 2009 12:52:36 +0000 (15:52 +0300)]
Add noreturn annotations to argerror() helper functions
Panu Matilainen [Mon, 7 Sep 2009 12:07:12 +0000 (15:07 +0300)]
Add noreturn annotation to die() .. which itself should die
Panu Matilainen [Mon, 7 Sep 2009 12:04:01 +0000 (15:04 +0300)]
Avoid theoretical NULL pointer dereference
- if sbp ends up not set it's an "internal error" really, dont bother
with error message
Panu Matilainen [Mon, 7 Sep 2009 11:54:45 +0000 (14:54 +0300)]
Avoid couple of (theoretical) NULL pointer dereferences
Panu Matilainen [Mon, 7 Sep 2009 11:42:04 +0000 (14:42 +0300)]
Remove bogus non-null check
- rpmdsInit() only returns NULL if passed NULL, which can't happen
as ods is already verified to be non-NULL
Panu Matilainen [Mon, 7 Sep 2009 11:15:56 +0000 (14:15 +0300)]
Ugh, erroneously introduced ; busting the conditional
- broken long time ago in commit
2ee45ef12aaa958b78c56b6d83bb18aa6a477d15
Panu Matilainen [Mon, 7 Sep 2009 11:03:47 +0000 (14:03 +0300)]
Avoid potentially calling a NULL function pointer
Panu Matilainen [Mon, 7 Sep 2009 10:19:23 +0000 (13:19 +0300)]
Eliminate unused calculations
Panu Matilainen [Mon, 7 Sep 2009 10:17:47 +0000 (13:17 +0300)]
Eliminate unused variable
Panu Matilainen [Mon, 7 Sep 2009 09:23:21 +0000 (12:23 +0300)]
Eliminate bunch of unused variables
Panu Matilainen [Mon, 7 Sep 2009 09:17:07 +0000 (12:17 +0300)]
Eliminate unused variable and pointless null-check
Panu Matilainen [Mon, 7 Sep 2009 09:05:10 +0000 (12:05 +0300)]
Fix dumb some dumb leaks in python spec code
Panu Matilainen [Mon, 7 Sep 2009 08:49:25 +0000 (11:49 +0300)]
Eliminate unused counter variable
Panu Matilainen [Mon, 7 Sep 2009 08:44:44 +0000 (11:44 +0300)]
Remove unused initialization
Panu Matilainen [Mon, 7 Sep 2009 08:42:28 +0000 (11:42 +0300)]
Remove redundant reinitialization, cleanup
Panu Matilainen [Mon, 7 Sep 2009 08:16:16 +0000 (11:16 +0300)]
Add RPM_GNUC_NONNULL macro for portable use of gcc nonnull attribute
- gcc itself can only warn on literal NULL's passed where nonnull is
expected but static analyzers can make better use of the info
Panu Matilainen [Fri, 4 Sep 2009 10:38:58 +0000 (13:38 +0300)]
Fix memleak in headerGetDumber() .. err .. Number()
Jindrich Novy [Thu, 3 Sep 2009 05:57:34 +0000 (07:57 +0200)]
Handle .desktop files with spaces in filename (rhbz#520920)
- thanks to Edward Sheldrake
Panu Matilainen [Wed, 2 Sep 2009 12:34:35 +0000 (15:34 +0300)]
Use %{nvra} as default query format, much simpler...
Panu Matilainen [Wed, 2 Sep 2009 11:43:00 +0000 (14:43 +0300)]
Panu Matilainen [Wed, 2 Sep 2009 11:08:57 +0000 (14:08 +0300)]
Take advantage of headerGetNumber() to get buildtime..
Panu Matilainen [Wed, 2 Sep 2009 10:53:27 +0000 (13:53 +0300)]
Further simplify rpmVersionCompare()
- headerGetNumber() side-effect of returning zero on errors fits this
job perfectly, simplifying things somewhat
Panu Matilainen [Wed, 2 Sep 2009 10:47:02 +0000 (13:47 +0300)]
Deprecate headerGetColor(), implement using headerGetNumber()
Panu Matilainen [Wed, 2 Sep 2009 10:46:23 +0000 (13:46 +0300)]
Eliminate headerGetColor() uses everywhere
Panu Matilainen [Wed, 2 Sep 2009 10:57:54 +0000 (13:57 +0300)]
Add header color tag extension, ie headerGetColor()
- use common numeric tag generation helper for header color
and dbinstance tags
Panu Matilainen [Wed, 2 Sep 2009 10:27:18 +0000 (13:27 +0300)]
Add convenience function for retrieving numeric header data
Panu Matilainen [Wed, 2 Sep 2009 10:24:59 +0000 (13:24 +0300)]
Oops, dont leak memory on invalid types to headerGet[As]String()
Panu Matilainen [Wed, 2 Sep 2009 10:06:25 +0000 (13:06 +0300)]
Take advantage of new header string getters
Panu Matilainen [Wed, 2 Sep 2009 10:00:59 +0000 (13:00 +0300)]
Clean up rpmtsAddInstallElement() a bit
- only bother retrieving os, arch and colors if actually needed
- obsoletes are never colored, remove the related cruft
Panu Matilainen [Wed, 2 Sep 2009 09:43:24 +0000 (12:43 +0300)]
Take advantage of new header string getters
Panu Matilainen [Wed, 2 Sep 2009 09:39:06 +0000 (12:39 +0300)]
Take advantage of new header string getters
Panu Matilainen [Wed, 2 Sep 2009 09:38:20 +0000 (12:38 +0300)]
Take advantage of new header string getters
Panu Matilainen [Wed, 2 Sep 2009 09:34:21 +0000 (12:34 +0300)]
Simplify rpmpsmStage() and srpm install a bit with the new getters
Panu Matilainen [Wed, 2 Sep 2009 09:24:01 +0000 (12:24 +0300)]
Simplify rpmVersionCompare() a bit
Panu Matilainen [Wed, 2 Sep 2009 09:19:15 +0000 (12:19 +0300)]
Simplify headerCheckPayloadFormat() a bit
Panu Matilainen [Wed, 2 Sep 2009 09:08:33 +0000 (12:08 +0300)]
Deprecate headerNVR() and friends
- reimplement using the new generic getters to simplify
- mark as deprecated, no uses inside rpm remain
Panu Matilainen [Wed, 2 Sep 2009 09:06:34 +0000 (12:06 +0300)]
Eliminate uses of headerNVR() and friends in librpm (and python) code
Panu Matilainen [Wed, 2 Sep 2009 08:55:42 +0000 (11:55 +0300)]
Eliminate uses of headerNVR() and friends in librpmbuild code
Panu Matilainen [Wed, 2 Sep 2009 07:24:20 +0000 (10:24 +0300)]
Add tag extensions for common name-[epoch:]version-release[.arch] combos
- RPMTAG_NVRA same as rpm5.org, others are new tags
Panu Matilainen [Tue, 1 Sep 2009 14:10:18 +0000 (17:10 +0300)]
Add two new convenience functions for header string data
- headerGetString() for retrieving const strings directly from header memory
- headerGetAsString() for converting any non-array tag to string
Panu Matilainen [Tue, 1 Sep 2009 12:08:58 +0000 (15:08 +0300)]
Add dbinstance tag extension (port from rpm5.org)
Panu Matilainen [Tue, 1 Sep 2009 10:31:20 +0000 (13:31 +0300)]
Group tag inheritance doesn't need special treatment, just copy with others
Panu Matilainen [Tue, 1 Sep 2009 08:38:06 +0000 (11:38 +0300)]
Triggerprein has been implemented since January 2008, update comment
Panu Matilainen [Tue, 1 Sep 2009 07:52:12 +0000 (10:52 +0300)]
Add provide-extractors for fonts and desktop files
- extract mime handler capabilities from application .desktop files
- extract font family names and supported languages from font files
- both are used by PackageKit for on-demand installing of fonts and
applications, but are useful for other things too
Panu Matilainen [Tue, 1 Sep 2009 07:40:50 +0000 (10:40 +0300)]
Further file-classifier tweaks
- disable "known tokens" lookups in ascii files, this is way too unreliable
to do anything but cause pain
- consider text files as RPMFC_TEXT consistently
- font metrics files are not fonts
Panu Matilainen [Tue, 1 Sep 2009 07:31:44 +0000 (10:31 +0300)]
Make internal file classifier look into compressed files
- prerequisite for various things like font provide extraction
- at least libmagic from file-5.00 leaked fd's with MAGIC_COMPRESS,
this has been fixed as of file-5.03