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.
exec()so it doesn't matter
This release is mainly an internal cleanup release for i18n efforts and for some internal functions that didn't behave with serial numbers.
--helprouting to have intelligent line wrapping to make i18n efforts easier
rpmVersionCompare()to compare version/release/serial numbers for packages -- returns like
rpmVersionCompare()which made it worse then useless (thanks to Norbert Kiesel)
cp -prinstead of
getopt,which allows command line aliasing
rdevverification (only verifies device files, checks device related mode bits as well)
rpmrcso it can find the database
docs/dependencies(see section Conflicts for more detailed documentation).
--resign/--addsignwas broken in 2.3.3 from popt conversion
-Vpwork on URLs
umask(0)anymore -- that confused programs which link against rpmlib quite badly
rpm -v -ito occur after any warnings to pretty up the output a bit
-sxfor some silly shells
--rootchecked for the sources/specs directory to exist outside of the root -- fixed
--qfshould send error to stderr
-Vplets you use
-lnslexplicitly rather then linking it to
-lsocket(for NCR SysVR4)
LIBS/LIBPATHmess a bit more
-t?options to build packages from tarballs which contain .spec files instead of from the .spec files directly
rpmconvert(which is almost never needed) -- this isolated gdbm dependence to this target
rpm --erasewasn't returning proper error codes with package removal failed
%setupto allow multiple
-boptions, which should noticeably ease the task of unapcking multiple tar files
--allmatchesto allow erasing multiple versions/releases of a package
/message HELP ME
%SOURCEn %PATCHn %percnt;SOURCEURLn %PATCHURLn
RPM_INSTALL_PREFIXenvironment variable when running verify scripts
/require files (in the database!) instead of packages
/usr/lib/rpmrcrather then just hoping it's in the path
--enable-broken-chownto force configure to think chown does indeed follow symlinks.
lchown()if it's available
chown()doesn't follow symlinks if
lchown()isn't available and configure is not being run as root
:shescapequery format type for strings, which prints strings which will survive a single level of shell expansion
--setugidsto handle empty packages and packages with odd filenames
noarcharchitecture which everything is compatible with
--helpand usage messages
fssizesvirtual query tags
netsharedpathentries shouldn't match partial directory names anymore (a
dayquery format which is like
date, but doesn't print any time
--changelogalias to query a packages changelog entry
fflagsquery type displays
mfor missingok files, and
nfor noreplace files
%config(missingok)flag in install
-U, which forces all files (even
missingokfiles) to be installed
%config(noreplace)for the install, but it hasn't been tested in any way
--scriptsnow only outputs info on scripts that are actually present
-poption to the scripts to specify which program a script is run through. If
-poption is used with an empty script the program specified is executed directly.
-pis specified) is now added as a prerequisite.
-qioutput only displays package and URL fields if there is something there to display
providestag to rpmrc to allow easy fulfillment of automatic dependencies
--justdbfor install, upgrade, and erasure. This causes a database update without actually adding or removing any files.
BuildArchitectures:tag to spec file to enable builds for alternate or multiple architectures.
--noorderoption to skip package reordering
os_canonentries for BSD/OS and NextStep
find-requiresscript now adds requires for shell scripts
Obsoletes:tag. An upgrade to a package that obsoletes another package will remove any package that has been obsoleted.
%doc(now just name-version instead of name-version-release)
patchgreater than version 2.1
--rmsourceoption added to remove sources and spec file after successful RPM build
%attr(mode, user, group [, dirmode])
%defattr()to set the default attributes for all files following this tag (or until a new defattr tag is reached)
%defverify()to set default verify paramters for all files following this tag (or until a new defverify tag is reached)
Root:is now deprecated. Use
DocDir:to set alternate documentation directory (default is
%definemacros only work if they start on the first character of a line. This is so that you can use the string ``%define'' in comments and/or changelog entries.
tag names, buildarch, buildos, buildarch_lc, buildos_lc, PATCHn, SOURCEn, PATCHURLn, SOURCEURLn, sourcedir, builddir, optflags
require_distribution, require_icon, require_vendor
%lang()now available in the
%filessection to specify which language set certain files belong to.
%description -l <lang>allows you to add descriptions in specified languages.
Summary(lang):so that summaries may be given in specified languages.
buildshellin rpmrc to set shell used for build scripts (default is
instchangelogin rpmrc to limit the number of changelog entries that are stored in your RPM database for each package installed (use -1 to store all of them). Default is 5.
--relocate oldpath=newpathto relocate everything that would have been in
newpath. This only works if
oldpathis specified as a
Prefix:or if you use
--badrelocto force it.
Prefixes:tag so that you can specify more than one relocatable area for a package. Each prefix should be space delimited.