In this section we will outline all changes in RPM from version 2.3 until the second edition of Maximum RPM is released.
This is mostly an internal cleanup release.
fork()
and exec()
so it doesn't matterThis release is mainly an internal cleanup release for i18n efforts and for some internal functions that didn't behave with serial numbers.
--help
routing to have intelligent line wrapping
to make i18n efforts easierRPM_CHAR_TYPE
as RPM_INT8_TYPE
for queriesrpmEnsureOlder()
internal to lib/install.c
rpmVersionCompare()
to compare version/release/serial numbers
for packages -- returns like strcmp()
rpmVersionCompare()
which made it worse then
useless (thanks to Norbert Kiesel)
cp -pr
instead of cp -ar
for %doc
expansionchmod
glob/fnmatch
popt
from getopt,
which allows command line aliasing/usr/lib/rpmpopt
then /etc/popt
and
$HOME/.popt
rdev
verification (only verifies device files, checks
device related mode bits as well)tools/dumpdb
read the rpmrc
so it can find the database--nomd5
for -V
and -K
%changelog
processing--rebuilddb
's robustnessdocs/dependencies
(see section
Conflicts for more detailed documentation).rpmpopt
in libdir
--provides
and --scripts
to rpmpopt--setperms
, --setugids
--resign/--addsign
was broken in 2.3.3 from popt conversion
rpmlib.h
-Vp
work on URLsumask(0)
anymore -- that confused programs which
link against rpmlib quite badlyrpm -v -i
to occur after any warnings
to pretty up the output a bit-sx
for
some silly shells--root
checked for the
sources/specs directory to exist outside of the root -- fixed--qf
should send error to stderr
-Vf
uses realpath()
now-Vp
lets you use --ftpproxy,
--ftpport
:-(
--requires,
--info
to /usr/lib/rpmpopt
configure.in
a tad
-Va
-lnsl
explicitly rather then linking it
to -lsocket
(for NCR SysVR4)dirent.h
glob.c
to include config.h
and use HAVE_DIRENT_H
LIBS/LIBPATH
mess a bit more
-t?
options to build packages from tarballs which contain
.spec files instead of from the .spec files directlyrpmconvert
(which is almost
never needed) -- this isolated gdbm dependence to this target--requires
shouldn't imply -q
rpm --erase
wasn't returning proper error codes with package
removal failed
%setup
to allow multiple -a
and -b
options, which
should noticeably ease the task of unapcking multiple tar files--allmatches
to allow erasing multiple versions/releases
of a package/message HELP ME
%SOURCEn %PATCHn %percnt;SOURCEURLn %PATCHURLn
--scripts
output
RPM_INSTALL_PREFIX
environment variable when running
verify scripts/
require files (in
the database!) instead of packages/usr/lib/rpmrc
rather then just hoping it's
in the path--enable-broken-chown
to force configure to think chown does indeed follow symlinks.
lchown()
if it's availablechown()
doesn't follow symlinks
if lchown()
isn't available and configure is not being run as root:shescape
query format type for strings, which prints strings
which will survive a single level of shell expansion--setperms
and --setugids
to handle empty packages and
packages with odd filenamesnoarch
architecture which everything is compatible withnetsharedpaths
--build{arch|os}
to --help
and usage messages
fsnames
and fssizes
virtual query tagsrpmdbFindByHeader()
and rpmdbFindByTag()
public functionsnetsharedpath
entries shouldn't match partial directory names
anymore (a netsharedpath
of /usr/lib
shouldn't affect /usr/libexec
)day
query format which is like date
, but doesn't print
any time--changelog
alias to query a packages changelog entryfflags
query type displays s
for specfiles, m
for missingok
files, and n
for noreplace files%config(missingok)
flag in install--allfiles
flag for -i
and -U
, which forces all files (even
missingok
files) to be installed%config(noreplace)
for the install, but it hasn't
been tested in any way