Panu Matilainen [Tue, 22 Apr 2008 10:44:10 +0000 (13:44 +0300)]
Eliminate wtf dbpath shuffling in rpmdbMoveDatabase()
- Just use rpmGetPath() to construct a clean, sanitized path from the
components.
- Previously it went to great lengths to ensure trailing / on dbpath,
catenate the paths with %s/%s/%s and then rpmCleanPath() to get rid
of the extra slashes just created. Eh.
Panu Matilainen [Tue, 22 Apr 2008 10:32:52 +0000 (13:32 +0300)]
Don't use alloca for struct stat, there's no need to.
Panu Matilainen [Tue, 22 Apr 2008 10:30:52 +0000 (13:30 +0300)]
Add rpmdb internal helper for cleaning up db4 environment, use it
Jindrich Novy [Tue, 22 Apr 2008 10:41:08 +0000 (12:41 +0200)]
Recognize lzma payload from its magic
- old lzma formats without magic aren't supported
Jindrich Novy [Tue, 22 Apr 2008 10:39:55 +0000 (12:39 +0200)]
Prefer lzma's default -7 compression
Jindrich Novy [Tue, 22 Apr 2008 10:38:51 +0000 (12:38 +0200)]
Main lzma rpmio part based on SuSE patches, thanks for them!
Jindrich Novy [Tue, 22 Apr 2008 10:37:18 +0000 (12:37 +0200)]
Handle lzma payload
Jindrich Novy [Tue, 22 Apr 2008 10:36:27 +0000 (12:36 +0200)]
Check for lzma library in configure.ac and reference it in Makefile.am
Jindrich Novy [Tue, 22 Apr 2008 10:32:59 +0000 (12:32 +0200)]
Allow lzma payload in writeRPM()
Panu Matilainen [Mon, 21 Apr 2008 09:39:18 +0000 (12:39 +0300)]
Rip i386-specific RDTSC support from rpmsw, use gettimeofday() everywhere
- we don't need accuracy beyond what gettimeofday() offers for bleeping
debugging benchmarks
- we especially don't need hw-specific magic asm voodoo to get unreliable
timing results (RDTSC isn't reliable with multi-core/hyperthreaded CPU's
etc etc)
Panu Matilainen [Mon, 21 Apr 2008 08:13:13 +0000 (11:13 +0300)]
Avoid %patch0 getting applied twice
Panu Matilainen [Mon, 21 Apr 2008 07:59:31 +0000 (10:59 +0300)]
Retrofit RPMTAG_SOURCEPACKAGE to source rpms.
Panu Matilainen [Mon, 21 Apr 2008 07:33:02 +0000 (10:33 +0300)]
Use argvAppend() instead of manual reallocs, plug a leak from rpmGlob()
Panu Matilainen [Mon, 21 Apr 2008 07:18:14 +0000 (10:18 +0300)]
Use argvNew() instead of manual xcalloc()
Jindrich Novy [Mon, 21 Apr 2008 06:19:23 +0000 (08:19 +0200)]
Allow setting fuzz factor to 0
- use --fuzz=num instead of -Fnum or -F num to be sure
/usr/bin/patch won't complain
Jindrich Novy [Sun, 20 Apr 2008 10:17:37 +0000 (12:17 +0200)]
Don't use static buffers
Jindrich Novy [Fri, 18 Apr 2008 18:46:56 +0000 (20:46 +0200)]
Fail if it is impossible to chdir to directory to run helper script in
Jindrich Novy [Fri, 18 Apr 2008 17:45:10 +0000 (19:45 +0200)]
Fix find-requires (rhbz#443015), thanks to Bill Nottingham
Panu Matilainen [Sun, 20 Apr 2008 19:07:53 +0000 (22:07 +0300)]
Sanitize + simplify %patch "macro" parsing
- Use popt for parsing %patch options, give accurate error messages for
invalid options instead of bogosity like "bad %patch arg: %build"
- Store all the variants we can get patch numbers into argv to avoid
special cases when passing to doPatch(), this has the added bonus
of removing the 1024 patches per line-limit (as if somebody cared)
Panu Matilainen [Sun, 20 Apr 2008 13:38:29 +0000 (16:38 +0300)]
Single exit point for doPatchMacro()
- assuming failure avoids several redundant free() + return RPMRC_FAILS
Panu Matilainen [Sat, 19 Apr 2008 15:56:38 +0000 (18:56 +0300)]
Remove ugly hardcoded docDirs list, use a macro instead
- %__docdir_path contains a colon-delimited list of documentation dirs,
macros expanded before use
- dynamically allocate docDirs as needed using an argv array, removes
the hardcoded MAXDOCDIRS limit on docdirs (not that it matters much)
Panu Matilainen [Sat, 19 Apr 2008 14:09:43 +0000 (17:09 +0300)]
Avoid entirely silly rpmio FD_t use in processPackageFiles()
- since we just convert it to FILE anyway, no much point in using
Fopen() then
- additionally remember to close the file if expandMacros() fails
Panu Matilainen [Sat, 19 Apr 2008 13:58:55 +0000 (16:58 +0300)]
Change rpmGlob() argvPtr type to ARGV_t to make it obvious what it is
- also fix incorrect doxygen commentary, it wasn't a contiguous blob
before either
Panu Matilainen [Sat, 19 Apr 2008 13:53:29 +0000 (16:53 +0300)]
Use argvFree() instead of manual free in loop
Panu Matilainen [Sat, 19 Apr 2008 13:42:56 +0000 (16:42 +0300)]
Further simplify rpmInitMacros()
- Use argvSplit() for splitting the macro path to components instead of
manual pointer-parsery.
- If URL's are to be supported or accepted at all (previous code attempted
to skip them), ':' is a very poor delimiter character.
Panu Matilainen [Sat, 19 Apr 2008 13:04:11 +0000 (16:04 +0300)]
Use argvFree() to free, well, an argv, instead of manual freeing
Panu Matilainen [Sat, 19 Apr 2008 12:58:47 +0000 (15:58 +0300)]
Simplify rpmGlob() a bit
- use argv*() routines instead of manual argv manipulation
Panu Matilainen [Sat, 19 Apr 2008 10:42:04 +0000 (13:42 +0300)]
Dynamically allocate buffers in rpmGetPath()
- avoid unbounded copying to static sized buffer
- use rpmExpand() instead of expandMacros() which requires preallocated
buffer when we've no idea of expanded size
Panu Matilainen [Fri, 18 Apr 2008 13:14:15 +0000 (16:14 +0300)]
Avoid entirely silly rpmio FD_t use
- rdcl() converts to FILE internally anyway, might as well use fopen()
to begin with...
Panu Matilainen [Fri, 18 Apr 2008 12:39:07 +0000 (15:39 +0300)]
Remove unnecessary xstrdup() of dynamically allocated buffer
- leftover from when target buffer was static...
Panu Matilainen [Fri, 18 Apr 2008 12:15:05 +0000 (15:15 +0300)]
Cosmetics: group operations more logically...
Panu Matilainen [Fri, 18 Apr 2008 11:54:58 +0000 (14:54 +0300)]
Simplify macro option + argument processing
- eliminate ninja-voodoo pointer-hackery parsing, replace argvSplit() +
argvJoin() and friends
- eliminate static sized buffers from the processing
Panu Matilainen [Fri, 18 Apr 2008 09:36:02 +0000 (12:36 +0300)]
Add argvJoin() for combining an argv array into a string
Jindrich Novy [Fri, 18 Apr 2008 06:53:43 +0000 (08:53 +0200)]
Put '\0' to the end of xmalloc'd string to avoid surprises
Panu Matilainen [Thu, 17 Apr 2008 18:56:54 +0000 (21:56 +0300)]
Eliminate splitString() and freeSplitString()
- use ARGV_t instead, it does the same and more...
Panu Matilainen [Thu, 17 Apr 2008 16:21:00 +0000 (19:21 +0300)]
Accidental typo introduced to rpmrc.c
- seems to be one of those days, sigh
Panu Matilainen [Thu, 17 Apr 2008 16:19:07 +0000 (19:19 +0300)]
Fix dumb off-by-one errors introduced by rstrlcpy() changes
Panu Matilainen [Thu, 17 Apr 2008 15:41:53 +0000 (18:41 +0300)]
Bunch of strncpy/strcpy -> rstrlcpy() converts in rpmrc
Panu Matilainen [Thu, 17 Apr 2008 15:15:34 +0000 (18:15 +0300)]
Add missing include
Panu Matilainen [Thu, 17 Apr 2008 15:13:52 +0000 (18:13 +0300)]
Use rstrlcpy() for various parseForFoo() functions in build
- just avoids manual termination, no new fixes here..
Panu Matilainen [Thu, 17 Apr 2008 15:04:28 +0000 (18:04 +0300)]
Use rstrlcpy() for parseRCPOT() version + release
- just avoids manual zero-termination
Panu Matilainen [Thu, 17 Apr 2008 14:39:08 +0000 (17:39 +0300)]
Use rstrlcpy() for printFileInfo() username + group fields
- just avoids having to manually ensure zero-termination
Panu Matilainen [Thu, 17 Apr 2008 14:35:57 +0000 (17:35 +0300)]
Make sure lead->name is zero-terminated
Panu Matilainen [Thu, 17 Apr 2008 14:33:57 +0000 (17:33 +0300)]
Add rstrlcpy() string helper function
- adopted from strlcpy() function of OpenBSD originally developed by
Todd C. Miller <Todd.Miller@courtesan.com>
Panu Matilainen [Thu, 17 Apr 2008 14:33:30 +0000 (17:33 +0300)]
More accurate filtering of .rpmnew etc when reading macros
- strstr() can give false positives, use rpmFileHasSuffix() instead
Panu Matilainen [Thu, 17 Apr 2008 08:09:03 +0000 (11:09 +0300)]
Have gcc check for NULL terminated arglist in rstrscat
Jindrich Novy [Thu, 17 Apr 2008 07:20:20 +0000 (09:20 +0200)]
Use sizeof() instead of direct element count in rpmluaGetVar()
Jindrich Novy [Thu, 17 Apr 2008 07:01:28 +0000 (09:01 +0200)]
Don't copy unknown number of args to buffer of fixed size in initGlobs()
Jindrich Novy [Thu, 17 Apr 2008 06:57:43 +0000 (08:57 +0200)]
Introduce rstrscat()
- concatenates NULL terminated strings to newly (re)allocated memory
- purpose is to prevent overflows caused by writing unknown-sized stuff
to static arrays
Panu Matilainen [Wed, 16 Apr 2008 12:54:40 +0000 (15:54 +0300)]
Fixup leftovers from lua/local -> luaext/ move
Panu Matilainen [Wed, 16 Apr 2008 12:52:06 +0000 (15:52 +0300)]
Document external Lua requirement
Panu Matilainen [Wed, 16 Apr 2008 12:35:09 +0000 (15:35 +0300)]
Convert to Lua 5.1 library loading style
- luaL_openlibs() to pull in all standard libs
- local extensions need to be registered by calling through Lua
Panu Matilainen [Wed, 16 Apr 2008 12:25:26 +0000 (15:25 +0300)]
Add modemuncher + lua init stuff to extra dist
- modemuncher.c gets included from lposix.c, urks
Panu Matilainen [Wed, 16 Apr 2008 12:13:25 +0000 (15:13 +0300)]
Start phasing out internal copy of Lua
- don't build internal copy of Lua
- move 3rd party extensions (posix and rexlib) to toplevel luaext/
directory, built by default (unless --without-lua specified)
- auto*foo checks for external Lua
- minimal tweaks to lposix.c and rpmlua.c to get them build with Lua 5.1
Jindrich Novy [Wed, 16 Apr 2008 11:40:05 +0000 (13:40 +0200)]
Don't use mktemp(), we are sure mkstemp() is available now
Jindrich Novy [Wed, 16 Apr 2008 11:01:06 +0000 (13:01 +0200)]
Require mkstemp()
- mktemp() and tempnam() are dangerous
Jindrich Novy [Wed, 16 Apr 2008 09:16:31 +0000 (11:16 +0200)]
Kill queryHeader(), it is not used and buggy
Jindrich Novy [Wed, 16 Apr 2008 08:24:02 +0000 (10:24 +0200)]
Kill useless initialization to "(unkown error)"
Panu Matilainen [Wed, 16 Apr 2008 08:20:03 +0000 (11:20 +0300)]
Plug a memleak from pgpHexStr() in showQueryPackage()
- fmd5 is only needed in a single place, move alloc+free there to avoid
having to deal with the umphteen continue cases
Jindrich Novy [Wed, 16 Apr 2008 08:11:37 +0000 (10:11 +0200)]
Don't try to print buf if it's empty
Jindrich Novy [Wed, 16 Apr 2008 07:37:55 +0000 (09:37 +0200)]
Remove insecure hacks in query.c
- remove useless flushBuffer() function
- update printFileInfo() to not to write to unknown sized buffer,
but to print stuff which is its sole purpose
Jindrich Novy [Wed, 16 Apr 2008 06:28:11 +0000 (08:28 +0200)]
Remove useless statements from showQueryPackage()
Panu Matilainen [Wed, 16 Apr 2008 07:17:19 +0000 (10:17 +0300)]
Make headerNVR() just a special case of headerNEVRA()
Panu Matilainen [Wed, 16 Apr 2008 07:10:25 +0000 (10:10 +0300)]
Oops, only free if allocated ;)
Panu Matilainen [Wed, 16 Apr 2008 07:06:56 +0000 (10:06 +0300)]
Plug a memory leak in armorFormat()
Panu Matilainen [Tue, 15 Apr 2008 15:52:42 +0000 (18:52 +0300)]
Doxygen parameter name mismatch
Jindrich Novy [Tue, 15 Apr 2008 15:35:13 +0000 (17:35 +0200)]
Get rid of string hackery and overflows while rpm -V
Panu Matilainen [Tue, 15 Apr 2008 14:26:15 +0000 (17:26 +0300)]
Plug a memleak in pgpArmorWrap()
Jindrich Novy [Tue, 15 Apr 2008 14:30:58 +0000 (16:30 +0200)]
Introduce rstrcat()
Panu Matilainen [Tue, 15 Apr 2008 10:27:43 +0000 (13:27 +0300)]
Make find-lang.sh --with-man brp-compress friendly (rhbz#440994)
Patch from Ville Skyttä
Panu Matilainen [Tue, 15 Apr 2008 10:13:40 +0000 (13:13 +0300)]
Don't exempt *.jar.so.debug from buildroot checks (rhbz#442264)
- jar-kludge no longer necessary...
Patch from Ville Skyttä
Jindrich Novy [Tue, 15 Apr 2008 07:47:38 +0000 (09:47 +0200)]
Remove rhnplatform, cvsid/svnid, serial and copyright tag from rpmbuild
Panu Matilainen [Tue, 15 Apr 2008 06:16:05 +0000 (09:16 +0300)]
Abort build on unknown payload compressor
- explicitly check for supported rpmio names, bail if not supported
Panu Matilainen [Mon, 14 Apr 2008 16:32:51 +0000 (19:32 +0300)]
Avoid unnecessary rpmio_flags alloc+free in psm
Panu Matilainen [Mon, 14 Apr 2008 15:15:39 +0000 (18:15 +0300)]
Fix indentation, no functional changes
Panu Matilainen [Mon, 14 Apr 2008 15:13:06 +0000 (18:13 +0300)]
Remove glibc upgrade-helper kludge, only necessary for some ancient RHEL
Panu Matilainen [Mon, 14 Apr 2008 15:12:18 +0000 (18:12 +0300)]
Lose useless variable
Panu Matilainen [Mon, 14 Apr 2008 14:45:09 +0000 (17:45 +0300)]
Split scriptlet execv() preparations to separate function
- runScript() is way too big and still is, but this helps a bit...
Panu Matilainen [Mon, 14 Apr 2008 13:22:28 +0000 (16:22 +0300)]
Use argvAddNum() for passing package count numbers for scriptlets
Panu Matilainen [Mon, 14 Apr 2008 13:21:40 +0000 (16:21 +0300)]
Add argvAddNum() for adding integers to ARGV_t arrays
Panu Matilainen [Mon, 14 Apr 2008 13:01:06 +0000 (16:01 +0300)]
Use ARGV_t for passing around scriptlet args psm internally
- simplifies allocation and freeing while getting rid of alloca()'s
- runScript() needs to add arguments anyway, might as well pass in something
that *can* be modified without having play games with partial const,
partial alloca() contents in the argv
- removes the need for passing argc around
- (unrelated) move fi->h NULL check in runScript() to beginning *before*
we trie to access it, duh...
Panu Matilainen [Mon, 14 Apr 2008 12:58:10 +0000 (15:58 +0300)]
Add argvNew() to create an empty argv array
- yes it's silly ;)
Panu Matilainen [Mon, 14 Apr 2008 11:35:34 +0000 (14:35 +0300)]
Avoid redundant script name formatting
- remove two points of return to simplify allocations..
Panu Matilainen [Mon, 14 Apr 2008 11:33:23 +0000 (14:33 +0300)]
Reduce #ifdef clutter
Panu Matilainen [Mon, 14 Apr 2008 11:31:51 +0000 (14:31 +0300)]
Streamline lua scriptlet name formatting - just do it once
Panu Matilainen [Mon, 14 Apr 2008 11:29:07 +0000 (14:29 +0300)]
Move legacy prefix compat thing out of the loop
- additionally fix indentation, move block local variable def there...
Panu Matilainen [Mon, 14 Apr 2008 11:27:29 +0000 (14:27 +0300)]
Don't bother calculating max prefix lengths
- no longer needed, prefixBuf is dynamically allocated as needed
Jindrich Novy [Mon, 14 Apr 2008 11:07:58 +0000 (13:07 +0200)]
Prevent buffer overflow in readKeys()
Jindrich Novy [Fri, 11 Apr 2008 13:52:56 +0000 (15:52 +0200)]
Use dynamic allocation in rpmlibNeedsFeature()
Jindrich Novy [Fri, 11 Apr 2008 13:44:04 +0000 (15:44 +0200)]
Don't warn about BuildRoot being "/" while it is actually empty
Panu Matilainen [Fri, 11 Apr 2008 08:45:35 +0000 (11:45 +0300)]
Simplify url retrieval in rpmInstall()
- use rpmMkTemp() instead of manual kludgery to static buffer
Panu Matilainen [Fri, 11 Apr 2008 08:18:25 +0000 (11:18 +0300)]
Simplify url io a lot
- move urlhelper call to urlGetFile()
- have urlOpen() call urlGetFile() instead of going the other way around
and causing local copies and all sorts of craziness in the process
Panu Matilainen [Fri, 11 Apr 2008 06:38:44 +0000 (09:38 +0300)]
Remove #ifdef NOTYET junk
Panu Matilainen [Fri, 11 Apr 2008 06:05:05 +0000 (09:05 +0300)]
Rewrite rpmMkTempFile() for sanity
- Actually use mkstemp() for creating the temp file and return a FD_t
dupped from the file descriptor returned by mkstemp().
- Simplify the interface while at it.
- Change callers for the new interface.
- Yes we now require mkstemp() to work, mkstemp() is in POSIX.1-2001 and
this is year 2008...
Panu Matilainen [Thu, 10 Apr 2008 16:36:03 +0000 (19:36 +0300)]
First crack at adding ISA provides to packages (rhbz#235755)
- Horrible kludgery to get the isa names and bits into platform specific
macros from installplatform script. That beast needs to die. I mean really
- In build, add provides: name(isa) = evr automatically when it makes
sense (similarly to name = evr provides). ISA consists of ISA name and
bitness (or wordsize). This can be used to correctly
express multilib dependencies without resorting to (expensive!) file
dependency kludges, eg for dlopen()'ed libraries where automatic
dep extraction doesn't force dependency on 32bit vs 64bit version, you
can now use:
Requires: foo-plugin%{?_isa}
This expands to foo-plugin(x86-32) for i?86 packages, foo-plugin(x86-64)
to x86_64 etc, and permits spec to be shared with older distros which
don't have ISA provides.
- The same could be expressed with "canon arch" just as well, but
using the ISA to differentiate from %_arch and the like:
eg i386 could be used instead of x86-32 but it's overloaded with meanings
(the actual i386 processor vs i386 compatible cpu family etc)
Panu Matilainen [Thu, 10 Apr 2008 13:07:47 +0000 (16:07 +0300)]
Avoid exporting providePackageNVR() in the library
Panu Matilainen [Thu, 10 Apr 2008 13:04:12 +0000 (16:04 +0300)]
Just call legacyRetrofit() instead of combined compress + provide retrofits
Panu Matilainen [Thu, 10 Apr 2008 12:52:36 +0000 (15:52 +0300)]
Add a static, far simpler addPackageProvides() to build
- use instead of providePackageNVR() which needs to deal with all sorts
of hysteric "rpm 3.0.2 did this but 3.0.5 didn't" issues
Jindrich Novy [Thu, 10 Apr 2008 12:42:50 +0000 (14:42 +0200)]
Call rpmReadConfigFiles() in rpm2cpio so that rpm2cpio won't complain like:
warning: Unknown system: (null)
warning: Please contact rpm-maint@lists.rpm.org
Panu Matilainen [Thu, 10 Apr 2008 08:25:59 +0000 (11:25 +0300)]
Remove unnecessary providePackageNVR() from writeRPM()
- packageBinaries() already calls providePackageNVR(), no need to do it twice