Jindrich Novy [Tue, 10 Jun 2008 12:37:52 +0000 (14:37 +0200)]
Create RPMTAG_LONGFILESIZES to hold 64bit filesizes
Panu Matilainen [Tue, 10 Jun 2008 11:36:12 +0000 (14:36 +0300)]
Eliminate rpmfiBuildFNames() from the API
- headerGet() with extensions enabled provides a nicer interface to
the data, no need to expose it
Panu Matilainen [Tue, 10 Jun 2008 11:31:43 +0000 (14:31 +0300)]
Eliminate rpmfiBuildFNames() use in psm
Panu Matilainen [Tue, 10 Jun 2008 11:29:30 +0000 (14:29 +0300)]
Add RPMTAG_ORIGFILENAMES tag extension
Panu Matilainen [Tue, 10 Jun 2008 11:24:57 +0000 (14:24 +0300)]
Eliminate rpmfiBuildFNames() use in python
Panu Matilainen [Tue, 10 Jun 2008 10:40:51 +0000 (13:40 +0300)]
Use rpmFileHasSuffix() instead of doing it manually
Panu Matilainen [Tue, 10 Jun 2008 10:35:20 +0000 (13:35 +0300)]
Convert psm rpmInstallSourcePackage() to new headerGet()
Panu Matilainen [Tue, 10 Jun 2008 10:08:11 +0000 (13:08 +0300)]
Convert psm markReplacedFiles() to new headerGet() interface
Panu Matilainen [Tue, 10 Jun 2008 07:04:52 +0000 (10:04 +0300)]
fwrite() returns size_t, use correct type
Panu Matilainen [Tue, 10 Jun 2008 07:02:52 +0000 (10:02 +0300)]
Use correct type for strlen()
Panu Matilainen [Tue, 10 Jun 2008 06:59:09 +0000 (09:59 +0300)]
Silly signedness mismatch in pgpMpiSet()
Panu Matilainen [Tue, 10 Jun 2008 06:54:51 +0000 (09:54 +0300)]
Use nlink_t for hardlink count types
- avoids some signed vs unsigned comparisons
Panu Matilainen [Mon, 9 Jun 2008 16:00:37 +0000 (19:00 +0300)]
Change tag extension returns codes to match headerGet()
Panu Matilainen [Mon, 9 Jun 2008 12:42:24 +0000 (15:42 +0300)]
FD_t contentLength field is useless for us too...
Panu Matilainen [Mon, 9 Jun 2008 12:38:28 +0000 (15:38 +0300)]
Lose bunch of unused fields from FD_t
- leftovers from times of internal http/dav etc transports..
Panu Matilainen [Mon, 9 Jun 2008 12:33:27 +0000 (15:33 +0300)]
Use 64bit type for fdSet/GetCpioPos() in rpmio
Panu Matilainen [Mon, 9 Jun 2008 09:58:43 +0000 (12:58 +0300)]
Use 64bit type internally for printing size when reading sig header
Panu Matilainen [Mon, 9 Jun 2008 09:48:34 +0000 (12:48 +0300)]
Use 64bit type for rpmte package size reporting
- RPMTAG_SIGSIZE limits to 32bit in practise currently
Panu Matilainen [Mon, 9 Jun 2008 09:36:19 +0000 (12:36 +0300)]
Use 64bit type internally for total file size counting in build
- ensure we don't overflow RPMTAG_SIZE which is 32bit for now
Panu Matilainen [Mon, 9 Jun 2008 09:29:07 +0000 (12:29 +0300)]
Use 64bit type internally for package archive size & offset
- cpio "new" ascii format limits individual files to UINT32_MAX, no such
limit on the entire archive though
- RPMSIGTAG_PAYLOADSIZE is 32bit type atm, assert that the archive size
fits to UINT32_MAX despite internal presentation being larger
- FD_t limits the real archive to rpm_off_t still
Panu Matilainen [Mon, 9 Jun 2008 09:00:12 +0000 (12:00 +0300)]
Use rpm_loff_t for transaction callback amount+total arguments
- ought to be safe as data is only ever automatically converted to larger
type on notify calls
Panu Matilainen [Mon, 9 Jun 2008 06:31:00 +0000 (09:31 +0300)]
Handle NULL in str2hge()
- at least apt-rpm expects to pass empty version as NULL to rpmdsSingle(),
don't blow up...
Panu Matilainen [Sat, 7 Jun 2008 10:17:52 +0000 (13:17 +0300)]
rpmtdCount() knows how to handle BIN types, use it..
Panu Matilainen [Sat, 7 Jun 2008 08:43:54 +0000 (11:43 +0300)]
Couple of more 64bit format types
Panu Matilainen [Sat, 7 Jun 2008 08:32:02 +0000 (11:32 +0300)]
Remove unused variable
Panu Matilainen [Sat, 7 Jun 2008 08:31:32 +0000 (11:31 +0300)]
Handle 64bit type in headerMergeLegacySigs()
- not that any legacy tags have 64bit type but shuts up gcc..
Panu Matilainen [Sat, 7 Jun 2008 08:29:16 +0000 (11:29 +0300)]
Use inttypes.h formats in stringFormat()
- add 64bit type while at it
Panu Matilainen [Sat, 7 Jun 2008 07:51:53 +0000 (10:51 +0300)]
Teach rpmdb about 64bit types
Panu Matilainen [Fri, 6 Jun 2008 20:47:37 +0000 (23:47 +0300)]
Add access methods for 64bit integer types to rpmtd
Panu Matilainen [Fri, 6 Jun 2008 15:53:44 +0000 (18:53 +0300)]
Fix typo in sqlite backend preventing it from building
Jindrich Novy [Fri, 6 Jun 2008 13:15:01 +0000 (15:15 +0200)]
Introduce 64bit rpm_loff_t
Jindrich Novy [Fri, 6 Jun 2008 13:10:57 +0000 (15:10 +0200)]
Teach sqlite backend 64bit handling
Jindrich Novy [Fri, 6 Jun 2008 13:04:25 +0000 (15:04 +0200)]
Handle RPM_INT64_TYPE in header functions
Jindrich Novy [Fri, 6 Jun 2008 13:03:19 +0000 (15:03 +0200)]
Introduce htonll()
Jindrich Novy [Fri, 6 Jun 2008 12:57:05 +0000 (14:57 +0200)]
Introduce RPM_INT64_TYPE
Panu Matilainen [Tue, 3 Jun 2008 11:26:34 +0000 (14:26 +0300)]
Unexport file state machine internals
- fsmGetTs(), fsmGetFi(), fileStageString(), fileActionString(),
fsmMapPath(), fsmMapAttrs() and fsmStage() aren't needed outside fsm,
make 'em static to avoid leaking to symbol space
Panu Matilainen [Tue, 3 Jun 2008 10:51:57 +0000 (13:51 +0300)]
Rip doputenv() for good
Panu Matilainen [Tue, 3 Jun 2008 10:48:57 +0000 (13:48 +0300)]
Use setenv() for preparing scriptlet environ
- setenv() allocates memory as needed, no need to leak it
- setenv() is nicer interface for the purpose anyway
Panu Matilainen [Tue, 3 Jun 2008 10:39:07 +0000 (13:39 +0300)]
Rip dosetenv()
- just use regular setenv() instead
- we already carry setenv() in misc/ for platforms that don't have it
Panu Matilainen [Tue, 3 Jun 2008 09:11:05 +0000 (12:11 +0300)]
Unexport rpmsqCaught now that nothing needs it
Panu Matilainen [Tue, 3 Jun 2008 09:10:02 +0000 (12:10 +0300)]
Use rpmsqIsCaught() instead of directly accessing rpmsqCaught sigset
Panu Matilainen [Tue, 3 Jun 2008 09:04:57 +0000 (12:04 +0300)]
Add rpmsqIsCaught() for testing if a signal has been caught
Panu Matilainen [Tue, 3 Jun 2008 08:44:20 +0000 (11:44 +0300)]
Unexpose signal queue and direct manipulation functions
- nothing outside rpmsq needs to fiddle with the queue directly
Panu Matilainen [Tue, 3 Jun 2008 06:09:00 +0000 (09:09 +0300)]
Don't leak memory on python fi.Digest() calls
Panu Matilainen [Mon, 2 Jun 2008 13:10:19 +0000 (16:10 +0300)]
Change rpmTagGetNames() interface to more like that of headerGet()
- instead of returning a newly allocated rpmtd, take container to use
as argument
- return number of tags found, 0 on error (pretty arbitrary, just to
return something...)
Panu Matilainen [Mon, 2 Jun 2008 10:05:46 +0000 (13:05 +0300)]
Remove bogus comment on rpmDoDigest() ignoring algorithm
Panu Matilainen [Mon, 2 Jun 2008 10:02:54 +0000 (13:02 +0300)]
Permit non-md5 digests on --fileid queries
- the used algorithm is not known at this point so we can only do some
"seems to be in the ballbark" checks on the digest
- dynamically allocate memory for binary conversion as needed
Panu Matilainen [Mon, 2 Jun 2008 09:20:22 +0000 (12:20 +0300)]
Check that digest type is actually supported before enabling it
- we don't necessarily support all types listed in pgpHashAlgo_e, it
depends on what NSS happens to support
Panu Matilainen [Mon, 2 Jun 2008 09:18:23 +0000 (12:18 +0300)]
Enable build-time configuration of non-MD5 file checksum digest algorithms
- if not specified (or 0), quietly assume MD5
- otherwise check for supported digest type, complain and fall back to
md5 on invalid
- if non-md5 algorithm is used, add rpmlib() feature dependency to package
Panu Matilainen [Mon, 2 Jun 2008 08:48:22 +0000 (11:48 +0300)]
Document rpmDigestLength() error behavior
Panu Matilainen [Mon, 2 Jun 2008 07:53:38 +0000 (10:53 +0300)]
Eliminate ugly static conversion buffer on rpmdbAdd/Remove
- dynamically allocate on heap when hex to binary conversion is done,
add new parameter to td2key() to communicate this back to caller
- adjust rpmdbAdd+Remove to free key data if signalled by td2key()
Panu Matilainen [Fri, 30 May 2008 11:45:13 +0000 (14:45 +0300)]
Make rpmfiNew() use header specified file digest algo if present
- if not present or unknown algorithm specified, fall back to md5
Panu Matilainen [Fri, 30 May 2008 11:14:17 +0000 (14:14 +0300)]
Use RPMTAG_FILEDIGESTS instead of MD5S internally
- no functional changes
Panu Matilainen [Fri, 30 May 2008 10:57:47 +0000 (13:57 +0300)]
Bring back RPMTAG_FILEDIGESTS now that we're a bit more ready for it
- this reverts commit
6db2a8ec03c057850a0349537c705556068b9d32.
Panu Matilainen [Fri, 30 May 2008 10:16:23 +0000 (13:16 +0300)]
We don't want per-file digest algorithms, just per package...
- rename RPMTAG_FILEDIGESTALGOS to RPMTAG_FILEDIGESTALGO
- change type from integer array to single integer value
Panu Matilainen [Fri, 30 May 2008 09:28:29 +0000 (12:28 +0300)]
rpmfiFDigestHex() instead of manual hex conversion
- showQueryPackage() and python rpmfi_Digest() at least..
Panu Matilainen [Fri, 30 May 2008 09:21:48 +0000 (12:21 +0300)]
Add rpmfiFDigestHex() for converting the binary digest to hex
- conversion (back to) hex presentation is done manually in several places,
might as well have a function to do it...
Panu Matilainen [Fri, 30 May 2008 09:11:16 +0000 (12:11 +0300)]
Mark rpmfiMD5() deprecated
Panu Matilainen [Fri, 30 May 2008 09:06:40 +0000 (12:06 +0300)]
On a second thought, rename rpmfiDigest() to rpmfiFDigest() for consistency
- it operates on current file of the set, not on the entire set so while
changing API, name it similarly to other things that operate on current file
Panu Matilainen [Fri, 30 May 2008 09:02:21 +0000 (12:02 +0300)]
Add fi.Digest() method to python bindings
- use same code for creating the digest object on iteration and method call
- fi.MD5() left around as alias for fi.Digest(), dunno if that's the best
thing to do but it's just a python string so returned size isn't that
critical..
Panu Matilainen [Fri, 30 May 2008 06:22:21 +0000 (09:22 +0300)]
Convert showQueryPackage() to use rpmfiDigest()
Panu Matilainen [Thu, 29 May 2008 17:41:21 +0000 (20:41 +0300)]
Make rpmVerifyFile() honor rpmfi digest algorithm
Panu Matilainen [Thu, 29 May 2008 13:39:11 +0000 (16:39 +0300)]
Use new style headerGet() + rpmtd iteration for rpmfi digest population
Panu Matilainen [Thu, 29 May 2008 13:26:21 +0000 (16:26 +0300)]
Lose unused fdigests array from rpmfi struct
- only used in rpmfiNew() where it's converted to binary from the header
hex presentation and free'd immediately, a local variable will do just as
well
- some useless references in fsm and psm, kill'em too
Panu Matilainen [Thu, 29 May 2008 12:48:40 +0000 (15:48 +0300)]
Make handleOverlappedFiles() honor rpmfi digest algorithm
Panu Matilainen [Thu, 29 May 2008 12:33:44 +0000 (15:33 +0300)]
Teach fsm internals to honor rpmfi digest type
Panu Matilainen [Thu, 29 May 2008 12:26:12 +0000 (15:26 +0300)]
Make rpmfiDecideFate() honor rpmfi digest algorithms
- this gets into trouble if digest algorithm differs between packages,
can't be helped (same is true of rpmfiCompare() too)
Panu Matilainen [Thu, 29 May 2008 12:20:05 +0000 (15:20 +0300)]
Make rpmfiConfigConflict() honor fi digest algorithm
Panu Matilainen [Thu, 29 May 2008 12:16:45 +0000 (15:16 +0300)]
Make rpmfiCompare() use rpmfiDigest() instead of rpmfiMD5()
Panu Matilainen [Thu, 29 May 2008 12:09:58 +0000 (15:09 +0300)]
Make rpmfi initialization honor used digest length
Panu Matilainen [Thu, 29 May 2008 12:04:46 +0000 (15:04 +0300)]
More preliminaries for non-md5 file checksums
- add rpmfiDigest() method (similar to one in rpm5.org) for retrieving
file digest, algorithm and digest size
- make rpmfiMD5() just a special case of rpmfiDigest()
Panu Matilainen [Thu, 29 May 2008 09:29:23 +0000 (12:29 +0300)]
Rename rpmfi internals to talk about digest rather than md5
- no functional changes
Panu Matilainen [Thu, 29 May 2008 08:48:00 +0000 (11:48 +0300)]
Rename rpmfi and fsm checksum md5-sum fields to refer to digest
- no functional changes
- groundwork for supporting other than md5 checksums
Panu Matilainen [Mon, 2 Jun 2008 06:48:41 +0000 (09:48 +0300)]
Unbreak handling of packages without epoch
- rpmtdToString() returned NULL on empty data, rpmtdFormat() returns
(unknown type) which isn't exactly appropriate value for epoch...
Panu Matilainen [Sat, 31 May 2008 10:28:05 +0000 (13:28 +0300)]
More generic iterators replaced with safer string iterators
- additionally ensure rasprintf() will never get passed NULL where string
is expected in doScriptExec()
Panu Matilainen [Sat, 31 May 2008 10:20:21 +0000 (13:20 +0300)]
Use safer per-datatype iterator instead of generic one
Panu Matilainen [Sat, 31 May 2008 10:18:19 +0000 (13:18 +0300)]
Replace couple of generic td iterators with safer string iteration
Jindrich Novy [Thu, 29 May 2008 07:48:16 +0000 (09:48 +0200)]
Make Group: tag not mandatory in spec
Panu Matilainen [Wed, 28 May 2008 06:53:30 +0000 (09:53 +0300)]
Move key size fixups from rpmdbAdd & Remove to td2key()
Panu Matilainen [Wed, 28 May 2008 06:42:31 +0000 (09:42 +0300)]
Don't bother with rpmtdInit(), headerGet() resets index anyway
Panu Matilainen [Wed, 28 May 2008 06:41:34 +0000 (09:41 +0300)]
Eliminate ill-indented block obfuscating the code
Panu Matilainen [Wed, 28 May 2008 06:35:13 +0000 (09:35 +0300)]
Unify rpmdbAdd() and rpmdbRemove() debug logging
- move the debugging out of the loop, we only print once for a given tag
anyway
- dumb helper function for prepping the actual output
Panu Matilainen [Wed, 28 May 2008 06:04:31 +0000 (09:04 +0300)]
Unify rpmdbAdd() and rpmdbRemove() tag data to key "conversion"
- the tag container contains everything needed for converting
- ugly static buffer for holding data from binary conversions needed,
figure a better way...
Panu Matilainen [Wed, 28 May 2008 05:20:19 +0000 (08:20 +0300)]
dbi->dbi_rpmtag had better be the same as rpmtag here...
Panu Matilainen [Wed, 28 May 2008 04:52:19 +0000 (07:52 +0300)]
Convert rpmdbAdd() to new headerGet() + friends
Panu Matilainen [Tue, 27 May 2008 18:49:02 +0000 (21:49 +0300)]
Remove RPMTAG_BASENAMES special casing from rpmdbAdd()
- no longer needed as we don't support uncompressed filelists in the db
anyway (commit
30bb2ba4c8e481dd1c18e6ce8cd6c563fb42e23b)
Panu Matilainen [Tue, 27 May 2008 18:33:28 +0000 (21:33 +0300)]
Eliminate ill-indented block obfuscating the code
Panu Matilainen [Tue, 27 May 2008 18:27:20 +0000 (21:27 +0300)]
Convert rpmdbRemoev() to take advantage of new interfaces
- use headerGet() and rpmtd iterator on the result
- eliminates breaking out of loop kludgery
- allows all filemd5s fiddling to be done in one spot
Panu Matilainen [Tue, 27 May 2008 17:16:17 +0000 (20:16 +0300)]
Turn silly one-case switches into if's
Panu Matilainen [Tue, 27 May 2008 11:26:54 +0000 (14:26 +0300)]
Minimally convert rpmdbFindbyFile() to new headerGet()
Jindrich Novy [Mon, 26 May 2008 14:14:25 +0000 (16:14 +0200)]
Remove unused pointer
Jindrich Novy [Mon, 26 May 2008 14:09:46 +0000 (16:09 +0200)]
Remove legacy RPMSENSE_SERIAL.
Panu Matilainen [Mon, 26 May 2008 14:23:36 +0000 (17:23 +0300)]
Similar payload compressor headerGet() conversion for rpmpsmStage()
Panu Matilainen [Mon, 26 May 2008 14:19:07 +0000 (17:19 +0300)]
Convert rpm2cpio to new headerGet()
Panu Matilainen [Mon, 26 May 2008 14:07:00 +0000 (17:07 +0300)]
Oops, don't free data we're supposed to pass around...
Panu Matilainen [Mon, 26 May 2008 13:24:07 +0000 (16:24 +0300)]
Use rpmds methods to check for duplicates in addReqProv()
- simplifies things quite a bit...
Panu Matilainen [Mon, 26 May 2008 12:28:03 +0000 (15:28 +0300)]
Convert addPackageProvides() to new headerGet()
Panu Matilainen [Mon, 26 May 2008 12:27:33 +0000 (15:27 +0300)]
Leftover debug junk removal
Panu Matilainen [Mon, 26 May 2008 12:25:11 +0000 (15:25 +0300)]
Convert writeRPM() to use new headerGet()
Panu Matilainen [Mon, 26 May 2008 12:16:39 +0000 (15:16 +0300)]
Convert processPackageFiles() to new headerGet() interface