Panu Matilainen [Fri, 27 Mar 2009 12:11:43 +0000 (14:11 +0200)]
Handle XZ in %uncompress macro
- should've been in commit
8078d0ba24662308b10d9eb0f0da978584b7e757
Panu Matilainen [Fri, 27 Mar 2009 12:08:56 +0000 (14:08 +0200)]
Rip the macro default settings in rpmrc setDefaults()
- these get nuked and not reloaded on package builds
- rpm(build) needs a properly set up macros file in any case
Panu Matilainen [Fri, 27 Mar 2009 12:01:47 +0000 (14:01 +0200)]
Add built-in %getconfdir macro for getting rpmConfigDir() value
- define %_rpmconfigdir via %getconfdir in the main macro config, this
avoids it getting lost on macro reloads as happens when building
several packages at once
Panu Matilainen [Fri, 27 Mar 2009 11:45:08 +0000 (13:45 +0200)]
Plug minor memleak from default rc and macro file paths
- build code can call these several times, only init once
Panu Matilainen [Fri, 27 Mar 2009 11:44:46 +0000 (13:44 +0200)]
Plug minor memleak from rpmGetCwd() on build
Panu Matilainen [Thu, 26 Mar 2009 13:31:10 +0000 (15:31 +0200)]
Eliminate pointless xstrdup()'s, the strings are never modified
Florian Festi [Thu, 26 Mar 2009 12:53:26 +0000 (13:53 +0100)]
Fix: use the file's color to decide whether to add it to the rpmal not the color of the rpmfi
Florian Festi [Thu, 26 Mar 2009 10:48:09 +0000 (11:48 +0100)]
Remove rpmal from the Python API
as it changed and never was usable anyway
Florian Festi [Fri, 20 Mar 2009 07:22:41 +0000 (08:22 +0100)]
Reimplement rpmal by using hashes and cleaning up the color handling
Florian Festi [Mon, 16 Mar 2009 16:02:16 +0000 (17:02 +0100)]
Make rpmal store rpmtes and kill rpmte->pkgKey
Florian Festi [Wed, 11 Mar 2009 13:15:56 +0000 (14:15 +0100)]
Also order erases.
- partially using code from rpm5.org
Florian Festi [Wed, 25 Mar 2009 15:29:09 +0000 (16:29 +0100)]
Implement rpmteSetDependsOn and rpmteDependsOn using a rpmte
Panu Matilainen [Thu, 26 Mar 2009 07:59:01 +0000 (09:59 +0200)]
Put the PGP foobar signature generation out of its misery
- the last freeware PGP version (6.5.8) is from year 2000 and doesn't
come close to compiling on modern distros, commercial versions we're
not interested in
- "PGP" signatures in rpm mean RSA, gpg can handle that just fine since
forever
- the code's been unused for years, unlikely to be functional anyway...
Jindrich Novy [Wed, 25 Mar 2009 16:28:24 +0000 (17:28 +0100)]
process the "./" in file paths correctly (rhbz#491388)
Panu Matilainen [Wed, 25 Mar 2009 15:00:41 +0000 (17:00 +0200)]
Make sure fd bundle is always NULLed on rpmVerifySignatures() exit
- readFile() failure could crash on double-free otherwise
Panu Matilainen [Wed, 25 Mar 2009 14:48:24 +0000 (16:48 +0200)]
Unify DSA/RSA/GPG/blaa signature verification, simplify
- verifyRSA/DSA were just the same already, differences are in key/sig
parameters which dont matter on this level
- these dont need sigtd for anything, the data has been parsed into pgpDig
before we get here
- add extra flag for header-only vs header+payload signatures,
we know which is it in rpmVerifySignature()
Panu Matilainen [Wed, 25 Mar 2009 14:35:41 +0000 (16:35 +0200)]
Rename internal signature verification functions
- size, md5 and sha1 aren't really signatures
Panu Matilainen [Wed, 25 Mar 2009 14:33:29 +0000 (16:33 +0200)]
Reorder internal signature verification arguments
- move retval msg last everywhere
Panu Matilainen [Wed, 25 Mar 2009 14:30:20 +0000 (16:30 +0200)]
Push signature identification to librpmio / pgp handling
- retrieve names from pgp tables instead of manually duplicated strings
Panu Matilainen [Wed, 25 Mar 2009 13:42:30 +0000 (15:42 +0200)]
Remove redundant RSA/DSA parameter checks
- if this stuff doesn't match, pgpVerifySig() will fail anyway, dont
bother checking for same things over and over
Panu Matilainen [Wed, 25 Mar 2009 13:16:59 +0000 (15:16 +0200)]
Push signature verification down to librpmio
- new pgpVerifySig() call to perform the lowlevel verify, use for
verifying DSA/RSA signatures
- librpm is now free of NSS specifics (apart from what still leaks through
including rpmio/digest.h), remove linkage
Panu Matilainen [Wed, 25 Mar 2009 12:39:29 +0000 (14:39 +0200)]
These cases are identical now...
Panu Matilainen [Wed, 25 Mar 2009 12:37:43 +0000 (14:37 +0200)]
Rename arguments, RSA keys are certainly not limited to md5 hashes
Panu Matilainen [Wed, 25 Mar 2009 12:17:34 +0000 (14:17 +0200)]
Use makeGPGSignature() for both DSA and RSA
- in reality makePGPSignature() never gets called here due to other fun...
Panu Matilainen [Wed, 25 Mar 2009 12:09:42 +0000 (14:09 +0200)]
Remove unnecessary {} block inflating indentation, streamline
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