Panu Matilainen [Mon, 16 Mar 2009 12:13:00 +0000 (14:13 +0200)]
Proper error handling in rpmDigestDup()
- tolerate calling with NULL
- avoid allocations in case of failure
- return NULL instead of calling exit(), ick
Panu Matilainen [Mon, 16 Mar 2009 10:25:03 +0000 (12:25 +0200)]
Eliminate unnecessary pgpNewPublicKey() wrappers
Panu Matilainen [Mon, 16 Mar 2009 10:18:01 +0000 (12:18 +0200)]
Eliminate unnecessary field from pgpDig_s
- key/signature can't be both DSA and RSA at the same time
Florian Festi [Sat, 14 Mar 2009 18:12:43 +0000 (19:12 +0100)]
Free all keys not only those on the first buckets
- Thanks to Alexey Tourbin for pointing that out!
Rakesh Pandit [Fri, 13 Mar 2009 07:20:35 +0000 (12:50 +0530)]
- Cleanup: removing unnecessary repeated code.
Panu Matilainen [Fri, 13 Mar 2009 07:26:04 +0000 (09:26 +0200)]
rpm-python only accepts string objects, not unicode
- Reverts broken commit
832fe4f01865cd17ab9393fc48b960206da223b0.
Anything trying to pass in unicode objects is already broken as
PyString_AsString() uses default encoding for unicode conversions, which
by default is ascii (at least in python >= 2.5) so any non-ascii string
will cause it to fail anyway.
- Only accepting strings keeps encoding madness out of rpm, thank you Toshio.
Panu Matilainen [Fri, 13 Mar 2009 06:55:53 +0000 (08:55 +0200)]
Catch exceptions from python conversions in dbMatch()
- Prior to this, string conversion (eg on unicode object) could fall
through to rpmtsInitIterator() with key of NULL, matching everything
and only much later spitting out an obscure traceback. PyInt_FromLong()
can fail too, causing us to look for bogons.
Panu Matilainen [Thu, 12 Mar 2009 09:42:42 +0000 (11:42 +0200)]
MD5 and SHA1 digests are handled just the same here...
Panu Matilainen [Thu, 12 Mar 2009 09:39:29 +0000 (11:39 +0200)]
Rip all handling of broken md5 sums from 1997, rpm 2.x era
- we dont even recognize rpm 2.x packages as rpms...
Panu Matilainen [Thu, 12 Mar 2009 09:17:27 +0000 (11:17 +0200)]
Eliminate can't happen code
- sigtd.tag can't very well be something else than it's matching case
in a switch, eh
Panu Matilainen [Thu, 12 Mar 2009 07:54:31 +0000 (09:54 +0200)]
Silence compiler whining on rpmsort and rpminject
Panu Matilainen [Wed, 11 Mar 2009 19:43:44 +0000 (21:43 +0200)]
Plug a memleak in genCpioListAndHeader()
Panu Matilainen [Wed, 11 Mar 2009 19:41:57 +0000 (21:41 +0200)]
NSS supports MD2, we might as well handle it too
- also getHashType() is a "pure" function, mark it as such
Panu Matilainen [Wed, 11 Mar 2009 16:10:19 +0000 (18:10 +0200)]
Eliminate now unnecessary FDDIGEST_t
- contexts know their hash algorithm, this is not needed anymore
Panu Matilainen [Wed, 11 Mar 2009 16:07:22 +0000 (18:07 +0200)]
Remember hash algorithm in digest context
- alternatively we could reverse map NSS hash types (HASHContext
knows its type) but shrug...
Panu Matilainen [Wed, 11 Mar 2009 15:14:25 +0000 (17:14 +0200)]
Streamline rpmDigestInit() a bit
- single point of exit, rearrange to avoid having to free if stuff fails
Panu Matilainen [Wed, 11 Mar 2009 13:28:30 +0000 (15:28 +0200)]
Move headerIsEntry() check of sigtag into _chk() macro
- ...and reformat the if-elses now that they fit into single lines nicely
Panu Matilainen [Wed, 11 Mar 2009 13:16:26 +0000 (15:16 +0200)]
Size signature failures are always RPMRC_FAIL
- these failures cannot be "fixed" by importing a key, RPMRC_NOKEY is wrong
- streamline a bit by assuming failure
Panu Matilainen [Wed, 11 Mar 2009 13:07:06 +0000 (15:07 +0200)]
Eliminate asserts() from rpmVerifySignature() paths
- handle rpmVerifySignature() getting called with NULL result cleanly,
the lower level code doesn't need to double-check
Panu Matilainen [Wed, 11 Mar 2009 12:51:46 +0000 (14:51 +0200)]
Minor cleanup + simplification of DSA and RSA sig checks
- eliminate unnecessary local variables
- initialize on declaration where reasonable
Panu Matilainen [Wed, 11 Mar 2009 12:30:16 +0000 (14:30 +0200)]
For RSA sigs, RPMRC_NOKEY is only sane for keyring lookup failure
- non-keyring lookups fail with RPMRC_FAIL, streamline the code a bit
by assuming failure
Panu Matilainen [Wed, 11 Mar 2009 12:04:16 +0000 (14:04 +0200)]
For DSA sigs, RPMRC_NOKEY is only sane for keyring lookup failure
- assume failure and non-keyring lookups fail with RPMRC_FAIL
Panu Matilainen [Wed, 11 Mar 2009 12:01:11 +0000 (14:01 +0200)]
We already assume failure, this is unnecessary
Panu Matilainen [Wed, 11 Mar 2009 11:58:51 +0000 (13:58 +0200)]
SHA1 and MD5 failures are always RPMRC_FAIL
- these failures cannot be "fixed" by importing a key, RPMRC_NOKEY is wrong
- streamline a bit by assuming failure
Panu Matilainen [Wed, 11 Mar 2009 11:56:08 +0000 (13:56 +0200)]
Use tag to distinguish header-only vs header+payload signatures
Panu Matilainen [Tue, 10 Mar 2009 12:27:08 +0000 (14:27 +0200)]
Lift best signature detection out of rpmVerifySignatures()
Panu Matilainen [Tue, 10 Mar 2009 11:52:41 +0000 (13:52 +0200)]
Lift pgp parsing into separate function
- similar to
dc5fa254588be57a066ef4679c75e2bb3bda5fef
Panu Matilainen [Tue, 10 Mar 2009 11:45:12 +0000 (13:45 +0200)]
Avoid rasprintf() on potentially NULL string
Panu Matilainen [Tue, 10 Mar 2009 11:38:26 +0000 (13:38 +0200)]
Eliminate Yet Another temporary result variable
Panu Matilainen [Tue, 10 Mar 2009 11:33:57 +0000 (13:33 +0200)]
Further rpmVerifySignatures() cleanup
- initialize variables at declaration time
- split the formatting of the result spew into separate function
- if multiple missing/bad keys, report them all
Panu Matilainen [Tue, 10 Mar 2009 10:10:49 +0000 (12:10 +0200)]
Assume failure in rpmVerifySignatures()
- simplifies the code a bit
Panu Matilainen [Tue, 10 Mar 2009 09:09:35 +0000 (11:09 +0200)]
Use rstrcat() instead of rasprintf(), less fuss involved
Panu Matilainen [Tue, 10 Mar 2009 09:03:08 +0000 (11:03 +0200)]
Fix memleak on signature checking failure
- early exit from header iteration loop could previously leak from unfreed
buf and header iterator
Panu Matilainen [Tue, 10 Mar 2009 09:01:32 +0000 (11:01 +0200)]
Eliminate pointless {} block inflating indentation level
- no functional changes
Panu Matilainen [Tue, 10 Mar 2009 08:17:13 +0000 (10:17 +0200)]
Don't return data from headerGet() on regionSwab() failure
- callers dont expect to free data if headerGet() returns failure,
leaking memory
Jindrich Novy [Mon, 9 Mar 2009 19:19:37 +0000 (20:19 +0100)]
Port XZ payload compression to xz-4.999.8 API
- use SHA256 digests for archive error detection
- use 100MiB peak memory usage for decoding
- use better XZ detection in configure.ac
Panu Matilainen [Mon, 9 Mar 2009 14:44:47 +0000 (16:44 +0200)]
Add test for _install_lang and status
Panu Matilainen [Mon, 9 Mar 2009 12:57:46 +0000 (14:57 +0200)]
Unbreak %_install_langs handling (rhbz#489235)
- using rpmfiFLangs() in skipFiles() broke the %_install_langs logic,
causing all files to be skipped if install langs, eek
Panu Matilainen [Mon, 9 Mar 2009 12:48:47 +0000 (14:48 +0200)]
Fix RPMTAG_FILESTATES in rpmdb
- sizeof(rpmfileState) != sizeof(char), and char is what goes to headers
resulting in some pretty weird states despite being correct on disk
- add rpm_fstate_t type for the header presentation of states and
use where appropriate
Panu Matilainen [Sun, 8 Mar 2009 15:38:49 +0000 (17:38 +0200)]
Initialize on declaration, cosmetics only...
Panu Matilainen [Sun, 8 Mar 2009 15:36:39 +0000 (17:36 +0200)]
Dont bother retrieving colors unless actually needed
Panu Matilainen [Sun, 8 Mar 2009 15:28:17 +0000 (17:28 +0200)]
Dont bother retrieving ts problem set unless actually needed
Panu Matilainen [Sun, 8 Mar 2009 15:25:45 +0000 (17:25 +0200)]
Dont bother retrieving altNEVR unless actually needed
Panu Matilainen [Sun, 8 Mar 2009 09:33:22 +0000 (11:33 +0200)]
Load macros before creating directories (rhbz#489104)
- %_sourcedir and friends can have things like %{name}, load macros
before trying to create any directories when installing src.rpms
Panu Matilainen [Fri, 6 Mar 2009 11:43:17 +0000 (13:43 +0200)]
Document libcap, libacl in INSTALL
Panu Matilainen [Wed, 4 Mar 2009 13:12:02 +0000 (15:12 +0200)]
Condense "shut up gcc" switch-cases to just default no action case
Panu Matilainen [Mon, 2 Mar 2009 11:23:35 +0000 (13:23 +0200)]
Add internal helper to verify signature parse results
- eliminates bunch of copy-paste variants of the same thing
- additionally verify pgpPrtPkts() return code
Panu Matilainen [Wed, 4 Mar 2009 12:40:21 +0000 (14:40 +0200)]
Move the common part of DSA+RSA verification into helper function
Panu Matilainen [Wed, 4 Mar 2009 11:41:27 +0000 (13:41 +0200)]
Dont leak memory from hdrmd5ctx
Panu Matilainen [Wed, 4 Mar 2009 11:08:30 +0000 (13:08 +0200)]
Handle V4 signature trailer for RSA too (ticket #34)
Panu Matilainen [Wed, 4 Mar 2009 10:20:44 +0000 (12:20 +0200)]
verifySHA1Signature() doesn't need pgpDig at all
Panu Matilainen [Wed, 4 Mar 2009 10:19:02 +0000 (12:19 +0200)]
verifyMD5Signature() doesn't need pgpDig at all
Panu Matilainen [Wed, 4 Mar 2009 10:17:21 +0000 (12:17 +0200)]
verifySizeSignature() only needs size, not all of pgpDig
Panu Matilainen [Wed, 4 Mar 2009 09:49:29 +0000 (11:49 +0200)]
Eliminate unnecessary fields from pgpDig_s
- sha1(len) and md5(len) are only needed and used locally in
verify[DR]SASignature(), no point carrying them around in pgpDig
- use wrapper function to hide type differences between rpm and NSS
Panu Matilainen [Tue, 3 Mar 2009 06:48:12 +0000 (08:48 +0200)]
Add ISA bits for alpha (Oliver Falk)
Jindrich Novy [Mon, 2 Mar 2009 09:29:05 +0000 (10:29 +0100)]
Fix documentation and help for the md5 -> filedigest move
- add aliases for obsolete {RPM}VERIFY_MD5 flags to
not to break API
Jindrich Novy [Fri, 27 Feb 2009 13:34:39 +0000 (14:34 +0100)]
Add md5->filedigest aliases (rhbz#487597)
- add %verify(nofiledigest) as %verify(nomd5) file attribute alias
- reference digests as digests not checksums
- make old md5 related symbols obsolete and use newer reference
- update man page accordingly
Panu Matilainen [Thu, 26 Feb 2009 19:48:06 +0000 (21:48 +0200)]
Missing test material to tarballs, oops
Panu Matilainen [Thu, 26 Feb 2009 15:07:39 +0000 (17:07 +0200)]
Permit python bytecompile to fail for now
- various things like python templates in packages, jython code etc
blow up on the syntax checking, only warn instead of failing the build
until parametrized with a spec override possibility
Panu Matilainen [Thu, 26 Feb 2009 14:38:10 +0000 (16:38 +0200)]
Honor --nomanifest on install too
- bit of a kludge but works.. and fixes test case 39
Panu Matilainen [Thu, 26 Feb 2009 14:09:51 +0000 (16:09 +0200)]
Switch to libtool versioning, starting at 0:0:0
Panu Matilainen [Thu, 26 Feb 2009 08:49:38 +0000 (10:49 +0200)]
Handle empty argv passed to rpmdsDupArgv()
- same as
94552b96256c3620b4be407c501d0d926c081963, apt-rpm expects to
pass empty version as NULL to rpmdsSingle()
Panu Matilainen [Tue, 24 Feb 2009 12:24:40 +0000 (14:24 +0200)]
Clean up runTransScripts() a bit
- move progtag figuring out of the loop, and return with error code
instead of asserting on invalid tag
Panu Matilainen [Tue, 24 Feb 2009 11:55:27 +0000 (13:55 +0200)]
Single point of exit from rpmtsRun()
Panu Matilainen [Tue, 24 Feb 2009 11:41:18 +0000 (13:41 +0200)]
Split initialization of flags etc out of rpmtsRun()
Panu Matilainen [Tue, 24 Feb 2009 10:35:21 +0000 (12:35 +0200)]
Formatting cosmetics only
Panu Matilainen [Tue, 24 Feb 2009 10:31:22 +0000 (12:31 +0200)]
Calculate need to chroot just once
Panu Matilainen [Tue, 24 Feb 2009 10:22:21 +0000 (12:22 +0200)]
Eliminate unnecessary variable
- per-fi filecount only used once per loop for stats
Panu Matilainen [Tue, 24 Feb 2009 10:13:26 +0000 (12:13 +0200)]
Push fingerprinting chroot in+out into rpmtsPrepare() too
- rpmtsPrepare() can now fail (for chroot), handle exit
Panu Matilainen [Tue, 24 Feb 2009 09:50:23 +0000 (11:50 +0200)]
Push the rest of the prepare-calculations down to rpmtsPrepare()
- total file count only needed during prepare, pass around as necessary
- all fingerprinting related activity (skipping files, memory allocations
etc) are now handled locally from rpmtsPrepare()
- throw out some ancient no longer relevant comments
Panu Matilainen [Tue, 24 Feb 2009 09:23:25 +0000 (11:23 +0200)]
Eliminate fingerprint hash from ts struct
- only prepare stage needs, alloc+free locally and pass around to
helpers as necessary
Panu Matilainen [Tue, 24 Feb 2009 09:15:53 +0000 (11:15 +0200)]
Split fingerprinting stuff out of rpmtsRun()
- only prepare stage needs fingerprint associated caches and hashes,
push the allocations where needed
- do fingerprint additions in separate function
Panu Matilainen [Tue, 24 Feb 2009 08:40:43 +0000 (10:40 +0200)]
Split prepare phase out of rpmtsRun()
Panu Matilainen [Tue, 24 Feb 2009 08:28:27 +0000 (10:28 +0200)]
File skipping only done for added packages, simplify
Panu Matilainen [Tue, 24 Feb 2009 08:24:10 +0000 (10:24 +0200)]
Eliminate unused variables
- numAdded and numRemoved not used for anything at all
Panu Matilainen [Tue, 24 Feb 2009 08:13:43 +0000 (10:13 +0200)]
Split sanity checking out of rpmtsRun() to helper function
- with file counting done elsewhere, this becomes a clean and obvious split
- ensureOlder() doesn't need ts, just needs the problem set, simplifies
the problem set refcounting a bit
Panu Matilainen [Tue, 24 Feb 2009 08:10:38 +0000 (10:10 +0200)]
Fix memory leak from unused problem set
- checkInstalledFiles() doesn't need ps for anything, this just caused
a memleak due to refcount
Panu Matilainen [Tue, 24 Feb 2009 07:21:20 +0000 (09:21 +0200)]
Calculate files in transaction just once
- move file counting from rpmtsRun() and rpmFindBaseNamesInDB() to single
helper, store result in rpmts struct
Panu Matilainen [Mon, 23 Feb 2009 12:39:48 +0000 (14:39 +0200)]
Fix busted up Korean tranlations of manuals (rhbz#466597)
- previous conversion to utf-8 (from 2003!) was busted, wrong encoding
or something
Panu Matilainen [Sat, 21 Feb 2009 10:11:54 +0000 (12:11 +0200)]
Loosen up restrictions on dependency token names (rhbz#455119)
- Package names aren't restricted to ascii, no point restricting
dependency names either.
- This lets UTF-8 to go through but also all sorts of other junk but
as we haven't got a clue about the specs encoding, no can do. So we
only check for bad characters from plain ascii.
Panu Matilainen [Fri, 20 Feb 2009 20:02:49 +0000 (22:02 +0200)]
Only run script dependency extraction once per file, duh...
Panu Matilainen [Fri, 20 Feb 2009 19:44:13 +0000 (21:44 +0200)]
Check for errors from python bytecompile (Tim Waugh)
- since we're byte-compiling all python pieces, might as well use the
opportunity to catch syntax errors while at it
Jindrich Novy [Wed, 18 Feb 2009 07:11:18 +0000 (08:11 +0100)]
Revert fix for rhbz#442105, it has unwanted side effects
- mainly RPMTAG_BUILDARCHS missing from SRPM in case of BuildArch: noarch
Rakesh Pandit [Thu, 12 Feb 2009 12:27:35 +0000 (17:57 +0530)]
-Moved maifest checking from rpmInstall to rpmCheckManifest.
Rakesh Pandit [Thu, 12 Feb 2009 12:00:21 +0000 (17:30 +0530)]
-Move notify flag settings from rpmInstall and rpmErase to setNotifyFlag.
Rakesh Pandit [Thu, 12 Feb 2009 11:55:09 +0000 (17:25 +0530)]
-Move vsflags calculation from rpmInstall and rpmErase to setvsFlags.
Rakesh Pandit [Thu, 12 Feb 2009 11:43:20 +0000 (17:13 +0530)]
-Remove stopinstall variable and moved rpmcliPackagesTotal to correct place. -Changes in rpmInstallSource for getting reused in install mode and removed.
Rakesh Pandit [Thu, 12 Feb 2009 10:24:31 +0000 (15:54 +0530)]
-Use installInterfaceFlags in place of eraseInterfaceFlags. -Moved transaction part from rpmInstall and rpmErase to rpmcliTransaction.
Rakesh Pandit [Thu, 12 Feb 2009 10:19:28 +0000 (15:49 +0530)]
-Merge rpmInstallInterfaceFlags_e and rpmEraseInterfaceFlags_e to rpmInstallFlags_e.
Panu Matilainen [Thu, 12 Feb 2009 12:11:22 +0000 (14:11 +0200)]
Only initialize file capability cache if actually needed
- very few packages are going to have RPMTAG_FILECAPS at all
Jindrich Novy [Wed, 11 Feb 2009 12:19:22 +0000 (13:19 +0100)]
Fix output of pkgconfigdeps.sh so that rpmfc parses it correctly
Panu Matilainen [Tue, 10 Feb 2009 12:11:28 +0000 (14:11 +0200)]
Be more careful about errors in lua rpm vercmp()
Jindrich Novy [Wed, 11 Feb 2009 09:03:16 +0000 (10:03 +0100)]
Handle broken pkgconfig files better, rhbz#484970 (Lubomir Rintel)
Panu Matilainen [Fri, 6 Feb 2009 07:10:23 +0000 (09:10 +0200)]
Bump FileDigests rpmlib dependency version
- should've really been in commit
1f6ad324dbf4bebec905ddbb76d274345673a5b3,
the tag adjustment is an incompatible change from what was in
rpm 4.6.0-rc's, ugh
Panu Matilainen [Thu, 5 Feb 2009 20:37:27 +0000 (22:37 +0200)]
Use per-rpmfi string cache for file capability strings
- most packages wont have file capabilities attached at all, and even
where present, the files with capabilities are likely to be few and
far in between, avoid wasting memory
Panu Matilainen [Thu, 5 Feb 2009 15:22:00 +0000 (17:22 +0200)]
rpmfi is only needed by verifyHeader(), push it there
- no functional changes, just slight reorganization
Panu Matilainen [Thu, 5 Feb 2009 10:34:07 +0000 (12:34 +0200)]
Fix typo in python bindings documentation (Masatake YAMATO)
Panu Matilainen [Thu, 5 Feb 2009 10:20:20 +0000 (12:20 +0200)]
Exclude bin and sbin directories from python bytecompile (rhbz#182498)
Panu Matilainen [Thu, 5 Feb 2009 09:36:58 +0000 (11:36 +0200)]
Updated Brazilian Portugese translation (Igor Pires Soares)
Panu Matilainen [Thu, 5 Feb 2009 09:32:18 +0000 (11:32 +0200)]
--requires lists required capabilities, not packages (rhbz#483253)
- also fix a minor typo in --whatrequires description