rpm/CHANGES

642 lines
26 KiB
Plaintext
Raw Normal View History

2.3.11 -> 2.4:
- changed RPMNLSDIR directories to and @datadir@ to better
conform with autoconf
- set RPM_INSTALL_PREFIX environment variable when running
verify scripts
- beginnings of SCO support (though I suspect it will take one
or two more iterations to get it right)
- switched to CVS and updated some Makefile rules
- look for gethostbyname() instead of gethostname() in -nsl
(this could break some things)
- added check for strcasecmp() in -lucb on systems which don't
have strcasecmp() in libc
- don't build -static on hpux10
- don't try and NLS empty strings
- changed index() call to strchr() in macro code
- include <time.h> in build/spec.c for various platforms
- added update-po rule to po/Makefile.in
- updated de.po (thanks to Karl Eichwalder)
- rpmFindByFile() removes trailing and duplicate /'s
- made many string in rpm program (though not yet in the various
libraries) translatable
- eight character user names could break -qlv
2.3.10 -> 2.3.11:
- fixed newlines in --scripts output
- fix handling of source files with bad owners/groups
2.3.9 -> 2.3.10:
- --allmatches handling in -e broke some cases
- new predefined macros: %SOURCEn %PATCHn %SOURCEURLn %PATCHURLn
- fix anomoly with %files -f <file> and %doc
- ignore config bit when it's set on directories (which allows
users to replace directories with symlinks)
- don't set config bit on directories
- strip trailing slashes from files (during build)
- %tags are now case sensitive (macros too)
2.3.8 -> 2.3.9:
- reworked %setup to allow multiple -a and -b options, which
should noticeably ease the task of unapcking multiple tar files
- md5 sum's were calculated incorrectly on big endian machines
from 2.3.2 through 2.3.8 -- this was fixed and some hacks were
done to keep verification working
- updated README
- added --allmatches to allow erasing multiple versions/releases
of a package
- changed ftp URL's to use \r\n, not just \n (this should let RPM
work w/ some picky (but rfc compliant) ftp servers
- fix problem where parts at end of spec file were dropped
- added %config(noreplace missingok) (build-side)
- simple spec file macros
- should now process entire file list before failing
2.3.7 -> 2.3.8:
- added -t? options to build packages from tarballs which contain
.spec files instead of from the .spec files directly
- fixed error in man page where ftp URLs are discussed
- don't strlen(NULL) in headerAddEntry()
- minor portability changes
- stopped building oldrpmdb.c as part of rpmlib
- added Makefile rule for building rpmconvert (which is almost
never needed) -- this isolated gdbm dependence to this target
- fixed checking of popt stack overflow
- --requires shouldn't imply -q
- fixed error message issued when a groupname does not exist
- fixed but in changelog processing which made it hang on '*' in a
changelog entry
- generate S_ISSOCK and S_ISLNK macros on systems w/o them
- "rpm --erase" wasn't returning proper error codes w/ package
removal failed
2.3.6 -> 2.3.7:
- fixed nasty memory link in -Va
- configure checks for -lnsl explicitly rather then linking it
to -lsocket (for NCR SysVR4)
- configure checks for dirent.h
- modified glob.c to include config.h and use HAVE_DIRENT_H
- cleanup of LIBS/LIBPATH mess a bit more
2.3.5 -> 2.3.6:
- -Vf uses realpath() now
- -Vp lets you use --ftpproxy, --ftpport
- changed popt format, breaking all popt alises :-(
- added ability to alias character arguments to popt
- moved --requires, --info to /usr/lib/rpmpopt
- RPM is more forgiving of blank user names (dumb)
- popt searches for aliases in the correct order now
- cleanup query code to handle missing uid lists better
- cleanup up configure.in a tad
2.3.4 -> 2.3.5:
- %{#TAG} in query format prints the array length
- cleanup up protoypes in rpmlib.h
- let -Vp work on URLs
- don't set umask(0) anymore -- that confused programs which
link against rpmlib quite badly
- moved print out in "rpm -v -i" to occur after any warnings
to pretty up the output a bit
- added default optflags for powerpc
- run shell for post/pre scripts in debug mode with -sx for
some silly shells
- installing source packages with --root checked for the
sources/specs directory to exist outside of the root -- fixed
- modified toplevel Makefile to run dependency generation only
against referenced sources
- array size mismatches in --qf should send error to stderr
- tried to make the locale stuff a bit more portable (again)
- reworked the owner/group setting on installs to be more generic
(in preperation for getting rid of cpio)
- made verify verify owner and groups by name rather then by id -- if
the symbolic names aren't available use the uids
- cleaned up relocateFilelist() and related code thanks to
new header introduced in 2.3.3 -- this could break relocateable
packages but they seem okay
- fixed a bug which could cause relocateable packages to not get
relocated -- I think this bit some people during hard drive
installs of all things (Jason Salopek pestered me consistently
enough to keep this on the front burner for me)
- removed FILEUIDS and FILEGIDS from the header in the database --
we never used it and it jsut wasted room
- convert uid/gid lists in v1 headers to symbolic names
2.3.3 -> 2.3.4:
- %changelog processing
- fixed broken requires/conflicts parsing for spec file
- vastly improved --rebuilddb's robustness
- fixed misplaced free() (only affected inconsistent databases)
- added conflicts documentation to docs/dependencies
- using multiple query formats has them all concatenated
- removed stdin based query and verify selectors
- installs rpmpopt in libdir
- moved --provides and --scripts to rpmpopt
- added --setperms, --setugids
- incorporated newer de.po from Karsten Weiss
- --resign/--addsign was broken in 2.3.3 from popt conversion
2.3.2 -> 2.3.3:
- Ripped out header internals and redid them. Any compatibility
problems this causes are *bugs* as it should be completley
transparent. If this works the devil better buy some Prestone (TM).
- Use "cp -pr" instead of "cp -ar" for %doc expansion
- use <string.h> instead of (non standard) <strings.h> in some places
- look for non-POSIX (broken) chmod
- include local copies of glob/fnmatch
- removed getopt() check from configure.in
- fixed bug in ftp code which prevented proper logins to some sites
- switched to popt from getopt, which allows command line aliasing
- read initial aliases from /usr/lib/rpmpopt then /etc/popt and
$HOME/.popt
- cleanup up rdev verification (only verifies device files, checks
device related mode bits as well)
- fixed allocation of temporary paths (Eugene Kanter noticed this)
- made tools/dumpdb read the rpmrc so it can find the database
- added --nomd5 for -V and -K
- don't assume mkdir -p will succeed if the dir exists
- use RPMNLS* defines to avoid header file conflicts
- bunch of minor cleanups to avoid warnings on other OS's
2.3.1 -> 2.3.2:
- fixed bug in new rpmVersionCompare() which made it worse then
useless (thanks to Norbert Kiesel)
- fixed silly message
2.3 -> 2.3.1:
- changed --help routing to have intelligent line wrapping
to make i18n efforts easier
- NLSDIR should be used for nls catalogs, not a hardcoded path
- NLSDIR should be in share, not lib
- renamed sweedish catalog from se to sv
- added german catalog
- treat RPM_CHAR_TYPE as RPM_INT8_TYPE for queries
- made rpmEnsureOlder() internal to lib/install.c
- added rpmVersionCompare() to compare version/release/serial numbers
for packages -- returns like strcmp()
- stdout/stderr were getting closed after running a verify script
- relocting packages didn't work w/ the packages contained the
directory which was it's prefix
2.2.11 -> 2.3:
- replaced putenv/setenv which calls which malloc() buffer -- these
are memory leaks, but the functions are only used between a fork()
and exec() so it doesn't matter
- created directroies are stamped with mtime from the file list
2.2.10 -> 2.2.11:
- fixed some include file problems for FreeBSD
- fixed find-provides script for Linux (silly typo)
- -qvl didn't print out sticky bit
- linux.prov won't print provides info for symlinks which point
to libraries w/ proper sonames
2.2.9 -> 2.2.10:
- changed how installArchive() handles running out of gzread()
bytes while the child is still alive
- changed tag for Alpha's to "alpha" from "axp" <gulp>
- made ./configure look for --quiet support in cpio
- netsharedPath's were having mkdir()'s done on them and had
bad interactions with rooted directories
- made -qp accept '-' to query the package on stdin
- dependency checking was broken when no database was being used
- don't *ever* let cpio make directories -- we do a better job
(esp because we don't kill symlinks!)
- plugged memory leaks in upgrade (again thanks to mpr) -- install,
erase, upgrade, query, and verify all seem to be leakproof
- use select() rather than busy waiting in cpio_gzip()
- use half as much temp space during package assembly
- fail if spec file check fails
- changed canonical name for 68k to m68k (sorry)
- integrated FreeBSD changes from Jared Mauch
- integrated Irix changes from Hermann Lauer
- i18n support can be disabled w/ configure by --disable-nls
(thanks to Remy Card)
- integrated more AmigaOS patches, played with configure some
more to allow cross compiling (Kristof Depraetere)
- cleanups to rpm2cpio (closing the gz stream) (Elliot Lee)
- made find-provides return filename for libs w/ no soname
2.2.8 -> 2.2.9:
- fixed typo in default rpmrc
- made getBooleanVar() a bit better
- added triggers to package builds
- tagged spec file in source package file list
- added %verifyscript (controlled by --noscript, -v flags)
- changed pkgReadHeader() mechanism to be more generic
- added find-provides for Solaris, made find-provides setup
more generic (w/ configure.in picking the right one)
- fix -Q
- The Great Renaming
- use external OS specific script to generate requires lines
(should work with ld.so 1.8.x) (find-requries)
2.2.7 -> 2.2.8:
- added --ftpproxy, --ftpport (and wrote about them in rpm.8)
- added --nodeps to man page
- added --showrc to man page
- added conflict checking (use conflicts tag, which looks
just like the requires tag)
- fixed RPM's return code when package removal fails
- cleaned up lib/install.c a bit for readability
- plugged a bunch of memory leaks thanks to mpr -- install,
uninstall, verify, and query all seem clean now
- added support for trees shared over a network via netsharedpath
in rpmrc
- don't exit when there is an unknown option in an rpmrc, just
give an error and continue
- tried once again to get things working properly with 2.1's
write behavior
- added -E option for %patch
- added UltraSPARC support to lib-rpmrc
- moved default topdir and optflags settings to lib-rpmrc from
/etc/rpmrc
- removed /etc/rpmrc from standard distribution
- use separate chgrp/chown commands in %setup macro
- kill(2) arguments were backwards in lib/install.c
- fileFile logging needed stdio to handle NULL args to %s
- default docdir (for %doc macro) set in lib-rpmrc rather then
hardcoded
- removed some of the \n from args to error() [though many are
still left]
- uninstall should fail if the preuninstall script fails
- --root works with --initdb now
2.2.6 -> 2.2.7:
- applied lots of portability patches
- builds on Solaris machines now!
- will build w/o i18n support if GNU gettext isn't installed
- added inet_aton, setenv functions for libmisc
- added Sun4c, Sun4m architectures
- use vfork() if fork() doesn't exist (for AmigaOS)
- look for GNU cpio, complain if it doesn't exist at build time
- put path for GNU cpio in /usr/lib/librpmrc
- install rpm.shared if rpm wasn't built (for Solaris)
- readHeader() in librpm.a should work on sockets (which may
return partial reads)
- package file query (-q -p) accepts ftp:// style URL's
- if gzread returns 0 bytes (at EOF), don't call write w/ 0 byte
argument as it's behviour isn't portable
- fixed -Vp behavior (doesn't seg fault w/ packages have dependencies)
2.2.5 -> 2.2.6:
- added --rebuilddb to rebuild database, updated man page
- fix fd leak in md5sum
- fixed group cache bug
2.2.4 -> 2.2.5:
- if rename() for moving .spec file from SOURCES to SPECS fails,
try copying it instead
- -h and -v work for source package >= V2
- -h output is much smoother now
- new AutoReqProv: tag in spec file can disable automatic
require/provide generation
- fixed md5sum problem on big endian machines in a way that's
mostly backwards compatible; this hack will be removed someday
- added :fflags tag
- fixed a couple of minor memory leaks in lib/install.c
- --test for building
2.2.3 -> 2.2.4:
- only remove docdir if %doc occurs
- allow -R to %patch
- moved to use GNU autoconf, though it probably isn't perfect yet
(thanks Kristof Depraetere)
- spec file sanity: no - chars in version or release,
must be a regular file :-)
- version specifications for requirements can use "-<release number>"
- default lib path, tmp path, topdir, and /usr/lib/rpmrc get set
by configure script relative to --prefix
2.2.2 -> 2.2.3:
- fixed script file md5 checking when files are in a root
- implemented proper strdup/free logic for dependency conflict
lists
- strip leading directories from ldd output
- fix non-null-terminated readlink() result
- fixed sscanf() in ftp code to use proper types
2.2.1 -> 2.2.2:
- added functionality to rpmlib to suggest resolutions for
dependency problems
- fix stupid allocation problem in exclude/exclusive stuff
- fix nasty bug where pointers in to the header were getting
stale after some realloc()s in addEntry()
- ignore OS tag for v2 packages -- it was wrong anyway
- match shared libs on ".so" rather than ".so."
- skip blanks from objdump for auto-provide
- if objdump gets us _end, provide the file name
- do not ldd non-regular files
- do not pass leading "/" to ldd
- fix ExcludeOs: and ExclusiveOs:
- -V verifies dependencies, can be controlled with --nodeps
and --nofiles
- added information on --nodeps to usage messages
- implement --timecheck and rpmrc timecheck:
- implement -bl
- catch duplicate files in file lists
- some random sanity checking on the file list
2.2 -> 2.2.1:
- made rpmRemovePackage() print message in verbose mode
- added support for ftp://user:pass@machine.org/ URL's
during installation - the password will be prompted for
if only the user is given, and anonymous ftp will be used
it both user and password are omitted (as before)
- Remove Exclusive: Exclude:
Replace with: ExclusiveArch: ExclusiveOs:
ExcludeArch: ExcludeOs:
- fixed dependency cheking for packages that are installed
at the same time
- fixed version number dependency checking
- fixed problem installing v1 source packages (thanks to
Nikita Borisov)
- fixed minor spelling/spacing problems (Nikita Borisov)
- assume all v1 packages were made for Linux so OS check works
- began to implement proxyftp, though it doesn't work yet
- fixed spacing when reporting dependency conflicts
- fixed bug where a long name (uname()) was mapping to itself
2.1.2 -> 2.2:
- don't fail, and do report, if -K can't find a PGP key
- handle file names with quotes and spaces when passed to ldd
(still can't have spaces in %files)
- do not allow Buildprefix: in sub packages
- removed require_group from rpmrc -- groups are always required
- removed arch_sensitive from rpmrc -- always on
- removed docdir from rpmrc -- always /usr/doc
- fixed nasty bug in installing packages with large filelists
- made -R work
- --provides and --requries don't print anything if no information
is present (rather then (none) )
- -qi prints Summary now
- changed Buildprefix: -> Buildroot: (spec file, rpmrc)
--buildprefix -> --buildroot (command line)
RPM_BUILD_PREFIX -> RPM_BUILD_ROOT
(%prep, %build, %install, %clean)
sorry :-)
- allow Prefix: for sub-packages
- allow packager: in rpmrc
- --arch and --os are now --buildarch and --buildos
- magic arch/os handling through arch_canon and os_canon
see /usr/lib/rpmrc (in short: uname short_name num)
- removed build_arch: from rpmrc
Replacing it is buildarchtranslate: and buildostranslate:
to allow building with arch/os other than what uname() returns.
Can still be overriden with --buildarch and --buildos
- rpmrc keywords are now case-insensitive
- check os at install time
- check return code from gzread() during installs
- implemented os_compat
- added arch_compat and os_compat information to --showrc (the
changes needed to do this removed any lingering questions about
the efficiency of the compat lookups for large tables or tables
with loops -- it should all work fine)
- made -u (--uninstall) exit with an error and not do anything
- added --ignoreos
- fixed error message given when a file is missing
- fixed hashing when multiple packages are being modified
- changed man page for readability (thanks to Joseph L. Hartmann, Jr)
2.1.1 -> 2.1.2:
- fixed error message for unrelocateable packages
- automatic shared lib provides now work with buildprefix
- fixed dependency checking during upgrades to work if the
package wasn't previously installed
- clean up temp file after signature check
- dependencies weren't looking through packages that were
being installed at the same time quite right
2.1 -> 2.1.1:
- fixed -qi query format
2.0.11 -> 2.1:
- added --requires, --whatrequires, --provides and
--whatprovides queries
- using a string array tag in a queryformat results in every
item in the string being printed out with spaces in between
(though this behaviour will probably go away shortly)
- all packages are ftp'd before any are installed (required to
do proper dependency checking)
- if only source packages are being installed, the database is
never opened
- automatic shared library require/provides tags generated
- added --nodeps flag for install and uninstall
- added dependency checking for installs and uninstalls
- misc fixes to compile with glibc
- use PGPPATH if set (and no pgp_path: in rpmrc)
- remove pgp_pubring, pgp_secring stuff
- new extensible signature
- signature section supports multiple signatures
- --addsign to add a signature to a package
- PGP key no longer limited to 1024 bits
- always do at least an MD5 "signature"
as a result, -K will always tell you something
- signatures now include a simple "header+archive size" check
just calling readSignature() checks this
- --nopgp (with -K) to skip PGP check, just do MD5
- allow '#' comments in preamble and %files section
- fixed -qsv to print both the states and the file information
- added --dump option to query to print all file attributes
- installs with --root use the /etc/passwd and /etc/group from
the target directory
- added --initdb to aid in database initialization
- --queryformat can print items of type INT8
- "sourceless" packages with nosource: and nopatch:
- [] now allows interation through query formats
- '-' flag for query tags removed
- :date and :perms supported as query format specifiers
- new rpmrc entries "arch" and "os" to override
- --arch and --os on the command line to override
- arch and os are now strings in the package header
- added arch_compat handling in /etc/rpmrc
- added build_arch to /etc/rpmrc
- support arch as string
- added --ignorearch option
- Prefix: in spec file to specify default installation prefix
- rpmrc and command line may be used to override the path
used for the rpm database
- relocatable packages get installed properly
- added support for --prefix and RPM_INSTALL_PREFIX environemtn
variable
- added dependency checking for version numbers
- added correct dependency checking for upgrades
- added :depflags query format flag
- changes --provides, --requires, and --scripts queries to use
queryFormats
2.0.10 -> 2.0.11:
- fixed chmod(symlink) bug (since 2.0.9)
2.0.9 -> 2.0.10:
- fixed the fix to rpm -q <num> bug
to query by number you now need --querybynumber
- made arch_sensitive on by default
- handle # comments in preamble
- don't barf if we can't canonicalize the hostname during builds
- fixed --verify with --root
2.0.8 -> 2.0.9:
- %files -f <file>
- prelim Require/Provide handling
- prelim strict checking of spec file
- removed some bash-isms
- fixed globbing/root bug
- fixed rpm -q <num> bug
- fixed ftw() related bug where symlinks were being
followed in %files rather than just being noted!!
- pass "upgrade" arg to pre/post scripts when upgrading
- use PATH to find cpio when installing
- fixed rpm.magic, added sun4, mips, 68k, sgi, sunos, solaris
- added %attr(mode owner group) feature to file list
- fixed dumb %verify() parse bug
2.0.7 -> 2.0.8:
- explicitly turn off ASCII armor when running PGP
- fixed --noscripts logic, which was on by default and
off if you specified it!
- uses a temp file to pass filenames to cpio in case when
their are more then 500 filenames in a package
- added --rcfile
- fixed problem with $HOME/.rcfile not being read
- undocumented --search, --where, --keep-temps which
will probably won't be implemented in RPM 2.x anyway
2.0.6 -> 2.0.7:
- builds now set umask 022 for all scripts
- queries relative paths correctly (thanks to Johnie Stafford)
- fixed error codes for failed installs
- don't add NULL entry to group index for packages that don't
have group information, add it to the "Unknown" group instead
- added --scripts query option
- added --noscripts for installing and uninstall without using
the pre/post scripts
- "rpm -qd" and "rpm -qc" work properly now (they didn't imply
-l before)
2.0.5 -> 2.0.6:
- internal changes to error messages
2.0.4 -> 2.0.5:
- added support for generic querying
- added --querytags option
- updated man page for above two
- short-circuit got added before 2.0.5, but I don't know when
- query and installs should now return 0 on success and nonzero
otherwise (rpm -i should return the number of packages that
failed actually)
- made rpm -qa fail if extra arguments are passed to it
2.0.3 -> 2.0.4:
- added support for PowerPC, and OSF mklinux ports
- added --resign
- added --recompile
- added verbose error messages from Tyson Sawyer
- rpmconvert won't overwrite an existing database
- won't core dump querying old format source packages
- freed minor memory leak
- more descriptive error messages during build
- added support for not installing documentation
2.0.2 -> 2.0.3:
- added support for 686, 786, 886, 986
2.0.1 -> 2.0.2:
- fixed ftp.c to return an error code when select timeouts
- added basic NLS support, along with a Sweedish message catalog
(thanks to Michael Nyquist)
2.0 -> 2.0.1:
- hashing and percentages no longer SIGFPE on 0 byte packages
- when an ftp fails, install.c no longer tries to install the package
- uses /var/tmp rather then /usr/tmp during for ftp space
- added debugging messages to ftp.c
- fixed some mistakes in the PGP section of the man page
- added mdfile prototype to rpmlib.h - the Python module wants this
- fixed struct oldrpmlead to align properly on the alpha
2.0 - everything done :-)
2.0b -> 2.0c:
- an incredible number of changes - I won't bother trying to
list them
2.0a -> 2.0b:
- moved build stuff to main rpm command, though --rebuild is still
not supported
- install should work, although replaced files are not marked as
replaced
- %doc macro fixed
- --percent, --hash work for installs
- converted databases and packages get the file list in the correct
order now
- none of this is well tested
- rpms are output to proper dirs (which are always arch sensitive)
- basic rpmrc functions are implemented, full parsing is present
- changed error messages for missing files to include full path
- fixed detection of Alpha's
1.4.6 -> 2.0a:
- completely rewritten in C
- verification missing
- build functionality not in main rpm, in rpmbuild instead
(this will be corrected)
- an awful lot is still missing - this is an ALPHA release
1.4.5 -> 1.4.6:
- fixed rpmq problem with packages w/o groups (old RPM's would do this)
- fixed uninstalling with --root
1.4.4 -> 1.4.5:
- added support for mips processors
- added support for osf1 and irix os's
1.4.3 -> 1.4.4:
- fixed bug in arch detection code which caused i386 failure
1.4.2 -> 1.4.3:
- added tokens for SPARC, MIPS, PowerPC, and 680x0 architectures
- fixed sparc arch, added arch sanity check
1.4.1 -> 1.4.2:
- added --root to man page, usage, and help messages
- added a " " to the "Creating directory" debug message in install.pl
- make --rebuild fail on binary packages
- don't output prep/build/install sections if there aren't any
1.4 -> 1.4.1:
- fixed man page
- updated corruption messages to not mention --rebuild
- added RPM_PACKAGE_VERSION and RPM_PACKAGE_RELEASE variables
at build time
- no longer allows installing binary packages across architectures
- fixed handling of symlinks marked as config files
1.3.2 -> 1.4:
- make -v the default when using -b and --rebuild
- added %postbuild as an alias for %clean
- added gendiff
- added groups file installed in /usr/lib/rhs/rpm
- made usage message different and more concise then the --help message
- added --version option
- updated man page
- changed C build tree for concurrent building on multiple architectures
1.3.1 -> 1.3.2:
- add -b option to %patch
- fixed install/chroot temp file deleting
1.3 -> 1.3.1:
- fixed bug when doing md5 of erased config file during rpm -u
- fixed spec file searching
1.2 -> 1.3:
- added --search and --where options
- multiarchitecture support
- added --rebuild option
- started C rewrite - rpmq (query options only)
1.1 -> 1.2:
- preuninstalls weren't getting handled properly
- Alpha architecture is now recognized and builds are allowed
- the database open is checked for success before continuing
- rpm -b? checks the SPEC files for package names given as args