Panu Matilainen [Wed, 25 Mar 2009 11:51:47 +0000 (13:51 +0200)]
Eliminate copy-paste digest calculation in rpmReadPackageFile()
- for DSA and RSA we want to grab the hash algo from signature, other
than that it's just the same for all header-only DSA/RSA/SHA1 sigs
Panu Matilainen [Wed, 25 Mar 2009 11:48:37 +0000 (13:48 +0200)]
Eliminate copy-paste digest calculation in headerCheck()
- for DSA and RSA we want to grab the hash algo from signature, other
than that it's just the same for all DSA/RSA/SHA1 sigs
Panu Matilainen [Wed, 25 Mar 2009 11:23:19 +0000 (13:23 +0200)]
Eliminate header/payload digests from pgpDig_s, they dont belong
- allocate+free digests locally where needed, pass around in separate argument
- use digest bundles to handle rpmVerifySignatures() needs
- kill-kill-kill fdStealDigest(), dup the contexts from bundles as needed
Panu Matilainen [Wed, 25 Mar 2009 11:10:23 +0000 (13:10 +0200)]
Implement fdUpdateDigests() and friends using digest bundle
Panu Matilainen [Wed, 25 Mar 2009 11:08:09 +0000 (13:08 +0200)]
Add a type + basic api for bundle of digests (on same data)
- in various places we need to calculate different digests of the same
data, having them stored in a single container makes managing easier
- can hold as many digest types as we support
- remembers how much input data it has handled
Panu Matilainen [Thu, 19 Mar 2009 14:07:18 +0000 (16:07 +0200)]
Show query/verify selection options just once in --help
Panu Matilainen [Thu, 19 Mar 2009 12:56:45 +0000 (14:56 +0200)]
Python doesn't need libelf, nss or popt directly
Panu Matilainen [Thu, 19 Mar 2009 12:41:43 +0000 (14:41 +0200)]
librpmio doesn't need libmagic for anything
Panu Matilainen [Tue, 17 Mar 2009 14:33:12 +0000 (16:33 +0200)]
Move leftover signature stuff from rpmlib.h to signature.h
- these aren't really usable or useful outside rpm, and even less so
as all the rest of the signature stuff is in a private header too
Panu Matilainen [Thu, 19 Mar 2009 08:15:49 +0000 (10:15 +0200)]
Revert couple of checksum -> digest renames
- physical cpio header and elf header have checksums, not digests
(from commit
7acdfded4a82e86a673418c3953aa6bf8106d313)
- doesn't affect functionality though
Panu Matilainen [Wed, 18 Mar 2009 12:53:34 +0000 (14:53 +0200)]
Don't try to parse %patch on spec query (rhbz#487855)
Panu Matilainen [Wed, 18 Mar 2009 09:57:16 +0000 (11:57 +0200)]
Doxygen parameter name mismatch
Panu Matilainen [Wed, 18 Mar 2009 09:24:52 +0000 (11:24 +0200)]
Add support for "lzma alone" compression format (lzdio)
- "lzma alone" is superseeded by XZ but it's used by Suse and Mandriva
distros so it's nice to have as it doesn't need much, only open differs
from XZ
- rpmlib() dependency versions are an uuuuuuuugly mess here: Suse used
"PayloadIsLzma = 4.4.2-1" so that's what we provide to be most compatible
(hopefully). Built packages require "PayloadIsLzma <= 4.4.6-1" however
to be compatible with Mandriva 2008.0. Did I already say it's ugly?
- Based on similar patch in Mandriva by Per Øyvind Karlsen, but avoiding
unnecessary renames in rpmio
Panu Matilainen [Wed, 18 Mar 2009 07:42:23 +0000 (09:42 +0200)]
LZMA -> XZ renaming
- what we support now in payloads is XZ, not the former LZMA format, rename
user- and header-visible parts to match this
- rpmlib(PayloadIsXz) dependency versioned 5.2-1 to avoid unnecessary
incompatibility with what rpm5 has and what Mandriva is already using
- only provide the rpmlib dependency if actually built with xz support
- rpmFileIsCompressed() attempts to guess the magicless old lzma format
by file suffix, so it can handle both right now
Panu Matilainen [Mon, 16 Mar 2009 12:19:30 +0000 (14:19 +0200)]
Handle rpmDigestDup() failure in signature checking
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.