+#/*! \page config_rpmpopt Default configuration: @RPMCONFIGDIR@/rpmpopt-@VERSION@
+# \verbatim
#
# This file *should not be modified*. Local customizations
# belong in /etc/popt, not here. This file will be replaced
# whenever a new version of RPM is installed.
+#
+# Note: Not all popt aliases are documented. This is a decision on my
+# part as to which are the more important aliases. Feel free to clip
+# a copy of the alias/exec here and place in /etc/popt or ~/.popt with
+# your own words added. It's easier than arguing about how many options
+# fit on the head of an executable :-)
+#
-rpm alias --scripts --qf '\
-%|PREIN?{preinstall script\
-%|PREINPROG?{ (through %{PREINPROG})}|:\n%{PREIN}\n}:\
-{%|PREINPROG?{preinstall program: %{PREINPROG}\n}|}|\
+rpm alias --scripts --qf '\
+%|PRETRANS?{pretrans scriptlet\
+%|PRETRANSPROG?{ (using[ %{PRETRANSPROG}])}|:\n%{PRETRANS}\n}:\
+{%|PRETRANSPROG?{pretrans program:[ %{PRETRANSPROG}]\n}|}|\
+\
+%|PREIN?{preinstall scriptlet\
+%|PREINPROG?{ (using[ %{PREINPROG}])}|:\n%{PREIN}\n}:\
+{%|PREINPROG?{preinstall program:[ %{PREINPROG}]\n}|}|\
\
-%|POSTIN?{postinstall script\
-%|POSTINPROG?{ (through %{POSTINPROG})}|:\n%{POSTIN}\n}:\
-{%|POSTINPROG?{postinstall program: %{POSTINPROG}\n}|}|\
+%|POSTIN?{postinstall scriptlet\
+%|POSTINPROG?{ (using[ %{POSTINPROG}])}|:\n%{POSTIN}\n}:\
+{%|POSTINPROG?{postinstall program:[ %{POSTINPROG}]\n}|}|\
\
-%|PREUN?{preuninstall script\
-%|PREUNPROG?{ (through %{PREUNPROG})}|:\n%{PREUN}\n}:\
-{%|PREUNPROG?{preuninstall program: %{PREUNPROG}\n}|}|\
+%|PREUN?{preuninstall scriptlet\
+%|PREUNPROG?{ (using[ %{PREUNPROG}])}|:\n%{PREUN}\n}:\
+{%|PREUNPROG?{preuninstall program:[ %{PREUNPROG}]\n}|}|\
\
-%|POSTUN?{postuninstall script\
-%|POSTUNPROG?{ (through %{POSTUNPROG})}|:\n%{POSTUN}\n}:\
-{%|POSTUNPROG?{postuninstall program: %{POSTUNPROG}\n}|}|\
+%|POSTUN?{postuninstall scriptlet\
+%|POSTUNPROG?{ (using[ %{POSTUNPROG}])}|:\n%{POSTUN}\n}:\
+{%|POSTUNPROG?{postuninstall program:[ %{POSTUNPROG}]\n}|}|\
\
-%|VERIFYSCRIPT?{verify script:\n%{VERIFYSCRIPT}\n}|\
-'
+%|POSTTRANS?{posttrans scriptlet\
+%|POSTTRANSPROG?{ (using[ %{POSTTRANSPROG}])}|:\n%{POSTTRANS}\n}:\
+{%|POSTTRANSPROG?{posttrans program:[ %{POSTTRANSPROG}]\n}|}|\
+\
+%|VERIFYSCRIPT?{verify scriptlet\
+%|VERIFYSCRIPTPROG?{ (using[ %{VERIFYSCRIPTPROG}])}|:\n%{VERIFYSCRIPT}\n}:\
+{%|VERIFYSCRIPTPROG?{verify program:[ %{VERIFYSCRIPTPROG}]\n}|}|\
+' \
+ --POPTdesc=$"list install/erase scriptlets from package(s)"
-rpm alias --setperms -q --qf '[\[ -L %{FILENAMES:shescape} \] || chmod %7.7{FILEMODES:octal} %{FILENAMES:shescape}\n]' \
- --pipe "grep -v \(none\) | sed 's/chmod .../chmod /' | sh"
+rpm alias --setperms -q --qf '[\[ -L %{FILENAMES:shescape} \] || chmod %7{FILEMODES:octal} %{FILENAMES:shescape}\n]' \
+ --pipe "grep -v \(none\) | grep '^. -L ' | sed 's/chmod .../chmod /' | sh" \
+ --POPTdesc=$"set permissions of files in a package"
-rpm alias --setugids -q --qf \
+rpm alias --setugids -q --qf \
'[ch %{FILEUSERNAME:shescape} %{FILEGROUPNAME:shescape} %{FILENAMES:shescape}\n]' \
- --pipe "(echo 'ch() { chown -- \"$1\" \"$3\";chgrp -- \"$2\" \"$3\"; }';grep -v \(none\))|sh"
+ --pipe "(echo 'ch() { chown -h -- \"$1\" \"$3\";chgrp -h -- \"$2\" \"$3\"; }';grep '^ch '|grep -v \(none\))|sh" \
+ --POPTdesc=$"set user/group ownership of files in a package"
+
+rpm alias --conflicts --qf \
+ "[%|VERBOSE?{%{CONFLICTFLAGS:deptype}: }:{}|%{CONFLICTNEVRS}\n]" \
+ --POPTdesc=$"list capabilities this package conflicts with"
+rpm alias --obsoletes --qf \
+ "[%|VERBOSE?{%{OBSOLETEFLAGS:deptype}: }:{}|%{OBSOLETENEVRS}\n]" \
+ --POPTdesc=$"list other packages removed by installing this package"
+rpm alias --provides --qf \
+ "[%|VERBOSE?{%{PROVIDEFLAGS:deptype}: }:{}|%{PROVIDENEVRS}\n]" \
+ --POPTdesc=$"list capabilities that this package provides"
+
+rpm alias --requires --qf \
+ "[%|VERBOSE?{%{REQUIREFLAGS:deptype}: }:{}|%{REQUIRENEVRS}\n]" \
+ --POPTdesc=$"list capabilities required by package(s)"
+rpm alias -R --requires
+
+rpm alias --suggests --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{}:{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package suggests"
+
+rpm alias --recommends --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package recommends"
+
+rpm alias --enhances --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{}:{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package enhances"
+
+rpm alias --supplements --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package supplements"
+
+rpm alias --info --qf '\
+Name : %{NAME}\n\
+%|EPOCH?{Epoch : %{EPOCH}\n}|\
+Version : %{VERSION}\n\
+Release : %{RELEASE}\n\
+Architecture: %{ARCH}\n\
+Install Date: %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n\
+Group : %{GROUP}\n\
+Size : %{LONGSIZE}\n\
+%|LICENSE?{License : %{LICENSE}}|\n\
+Signature : %|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|\n\
+Source RPM : %{SOURCERPM}\n\
+Build Date : %{BUILDTIME:date}\n\
+Build Host : %{BUILDHOST}\n\
+Relocations : %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\
+%|PACKAGER?{Packager : %{PACKAGER}\n}|\
+%|VENDOR?{Vendor : %{VENDOR}\n}|\
+%|URL?{URL : %{URL}\n}|\
+%|VCS?{VCS : %{VCS}\n}|\
+%|BUGURL?{Bug URL : %{BUGURL}\n}|\
+Summary : %{SUMMARY}\n\
+Description :\n%{DESCRIPTION}\n\
+Distribution: %{DISTRIBUTION}\n' \
+ --POPTdesc=$"list descriptive information from package(s)"
+rpm alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]' \
+ --POPTdesc=$"list change logs for this package"
-rpm alias --conflicts --qf \
- "[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]"
-rpm alias --obsoletes --qf \
- "[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]"
-rpm alias --provides --qf \
- "[%{PROVIDENAME} %|PROVIDEFLAGS?{%{PROVIDEFLAGS:depflags} %{PROVIDEVERSION}}:{}|\n]"
+rpm alias --xml --qf '[%{*:xml}\n]' \
+ --POPTdesc=$"list metadata in xml"
-# XXX prereq output is part of requires for query
-#rpm alias --prereq --qf '[%{PREREQ}:depflags\n]'
+rpm alias --triggerscripts --qf '\
+[trigger%{TRIGGERTYPE} scriptlet (using %{TRIGGERSCRIPTPROG}) -- %{TRIGGERCONDS}\n\
+%{TRIGGERSCRIPTS}\n]'
+rpm alias --triggers --triggerscripts \
+ --POPTdesc=$"list trigger scriptlets from package(s)"
-rpm alias --requires --qf \
- "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]"
-rpm alias -R --requires
+rpm alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NVRA} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \
+ --pipe "sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-45s %-s\n\", $1, substr($0,length($1)+2))}' " \
+ --POPTdesc=$"list package(s) by install time, most recent first"
-rpm alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocateable)}|\n\
-Version : %-27{VERSION} Vendor: %{VENDOR}\n\
-Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\
-Install date: %|INSTALLTIME?{%-27{INSTALLTIME:date}}:{(not installed) }| Build Host: %{BUILDHOST}\n\
-Group : %-27{GROUP} Source RPM: %{SOURCERPM}\n\
-Size : %-27{SIZE}%|LICENSE?{ License: %{LICENSE}}|\n\
-%|PACKAGER?{Packager : %{PACKAGER}\n}|\
-%|URL?{URL : %{URL}\n}|\
-Summary : %{SUMMARY}\n\
-Description :\n%{DESCRIPTION}\n'
+rpm alias --dupes --qf '%|SOURCERPM?{%{name}.%{arch}}:{%|ARCH?{%{name}}:{%{name}-%{version}}|}|\n' --pipe "sort | uniq -d" \
+ --POPTdesc=$"list duplicated packages"
-rpm alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n\n%{CHANGELOGTEXT}\n\n]'
+rpm alias --filesbypkg --qf '[%-25{=NAME} %{FILENAMES}\n]' \
+ --POPTdesc=$"list all files from each package"
-rpm alias --triggerscripts --qf '\
-[trigger%{TRIGGERTYPE} script (through %{TRIGGERSCRIPTPROG}) -- %{TRIGGERCONDS}\n\
-%{TRIGGERSCRIPTS}\n]'
-rpm alias --triggers --triggerscripts
+rpm alias --fileclass --qf '[%{FILENAMES}\t%{FILECLASS}\n]' \
+ --POPTdesc=$"list file names with classes"
-rpm alias --last --qf ''%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NAME}-%{VERSION}-%{RELEASE} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \
- --pipe "sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-35s %-s\n\", $1, substr($0,length($1)+2))}' "
+rpm alias --filecolor --qf '[%{FILENAMES}\t%{FILECOLORS}\n]' \
+ --POPTdesc=$"list file names with colors"
-rpm alias --filesbypkg --qf '[%-25{=NAME} %{FILENAMES}\n]'
-rpm exec --freshen freshen.sh
-rpm alias -F --freshen
+rpm alias --fscontext --qf '[%{FILENAMES}\n]' \
+ --pipe "xargs ls --scontext | awk '{printf(\"%s %s\n\", $2, $1)}'" \
+ --POPTdesc=$"list file names with security context from file system"
-rpm alias --redhatprovides -q --define '_dbpath /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat' --whatprovides
-rpm alias --redhatrequires -q --define '_dbpath /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat' --whatrequires
+rpm alias --fileprovide --qf '[%{FILENAMES}\t%{FILEPROVIDE}\n]' \
+ --POPTdesc=$"list file names with provides"
-# colon separated i18n domains to use as PO catalogue lookaside for
-* retrieving header group/description/summary.
-#
-# For Red Hat, value should be "redhat-dist:redhat-powertools".
-rpm alias --i18ndomains --define '_i18ndomains !#:+'
+rpm alias --filerequire --qf '[%{FILENAMES}\t%{FILEREQUIRE}\n]' \
+ --POPTdesc=$"list file names with requires"
-# Build policies enabled from command line. Last policy applies.
-rpm alias --buildpolicy --define '__os_install_post @RPMCONFIGDIR@/brp-!#:+'
-
-# Choose db interface:
-# 0 same as 1
-# 1 native db1 interface (e.g. linux glibc libdb1 routines).
-# 2 native db2 interface.
-# 3 native db3 interface.
-# -1 db3 -> db2 -> db1 (as available).
-#
-# There are two macros so that --rebuilddb can convert db1 -> db3
-rpm alias --dbapi --define '_dbapi !#:+'
+rpm alias --filecaps --qf '[%{FILENAMES}\t%|FILECAPS?{%{FILECAPS}}|\n]' \
+ --POPTdesc=$"list file names with POSIX1.e capabilities"
-rpm alias --rebuilddbapi --define '_dbapi_rebuild !#:+'
-rpm alias --rebuilddbpath --define '_dbapath_rebuild !#:+'
+# colon separated i18n domains to use as PO catalogue lookaside for
+# retrieving header group/description/summary.
+rpm alias --i18ndomains --define '_i18ndomains !#:+'
#==============================================================================
-# [--dbpath <dir>] "use <dir> as the directory for the database"
-rpm alias --dbpath --define '_dbpath !#:+'
# [--ftpport <port>] "port number of ftp server (or proxy)"
-rpm alias --ftpport --define '_ftpport !#:+'
+rpm alias --ftpport --define '_httpport !#:+'
# [--ftpproxy <host>] "hostname or IP of ftp proxy"
-rpm alias --ftpproxy --define '_ftpproxy !#:+'
+rpm alias --ftpproxy --define '_httpproxy !#:+'
# [--httpport <port>] "port number of http server (or proxy)"
rpm alias --httpport --define '_httpport !#:+'
# [--httpproxy <host>] "hostname or IP of http proxy"
rpm alias --httpproxy --define '_httpproxy !#:+'
-# set the time check to <secs>
-rpm alias --timecheck --define '_timecheck !#:+'
-
-#==============================================================================
-# Popt glue to preserve legacy CLI behavior.
-#
-# XXX popt exec parsing doesn't honor POPT_ARGFLAG_ONEDASH
-rpm exec --bp rpmb -bp
-rpm exec --bc rpmb -bc
-rpm exec --bi rpmb -bi
-rpm exec --bl rpmb -bl
-rpm exec --ba rpmb -ba
-rpm exec --bb rpmb -bb
-rpm exec --bs rpmb -bs
-rpm exec --tp rpmb -tp
-rpm exec --tc rpmb -tc
-rpm exec --ti rpmb -ti
-rpm exec --tl rpmb -tl
-rpm exec --ta rpmb -ta
-rpm exec --tb rpmb -tb
-rpm exec --ts rpmb -ts
-rpm exec --rebuild rpmb --rebuild
-rpm exec --recompile rpmb --recompile
-rpm exec --clean rpmb --clean
-rpm exec --rmsource rpmb --rmsource
-rpm exec --rmspec rpmb --rmspec
-
+# Minimally preserve commonly used switches from cli split-up
+rpm exec --addsign rpmsign --addsign
+rpm exec --delsign rpmsign --delsign
+rpm exec --resign rpmsign --resign
+rpm exec --checksig rpmkeys --checksig
+rpm exec -K rpmkeys --checksig
+rpm exec --import rpmkeys --import
rpm exec --initdb rpmdb --initdb
rpm exec --rebuilddb rpmdb --rebuilddb
-
-#rpm exec -e rpme -e
-#rpm exec --erase rpme --erase
-#rpm exec -U rpmu -U
-#rpm exec --upgrade rpmu --upgrade
-
-rpm exec --addsign rpmk --addsign
-rpm exec -K rpmk -K
-rpm exec --checksig rpmk --checksig
-rpm exec --resign rpmk --resign
-
-rpm exec -q rpmq -q
-rpm exec --query rpmq --query
-rpm exec --querytags rpmq --querytags
-rpm exec -V rpmv -V
-rpm exec -y rpmv -y
-rpm exec --verify rpmv --verify
+rpm exec --verifydb rpmdb --verifydb
+rpm exec --specfile rpmspec -q
#==============================================================================
-rpmb alias --dbpath --define '_dbpath !#:+'
-rpmb alias --ftpport --define '_ftpport !#:+'
-rpmb alias --ftpproxy --define '_ftpproxy !#:+'
-rpmb alias --httpport --define '_httpport !#:+'
-rpmb alias --httpproxy --define '_httpproxy !#:+'
-rpmb alias --timecheck --define '_timecheck !#:+'
-#==============================================================================
-rpmdb alias --dbpath --define '_dbpath !#:+'
-rpmdb alias --ftpport --define '_ftpport !#:+'
-rpmdb alias --ftpproxy --define '_ftpproxy !#:+'
-rpmdb alias --httpport --define '_httpport !#:+'
-rpmdb alias --httpproxy --define '_httpproxy !#:+'
-#==============================================================================
-rpme alias --dbpath --define '_dbpath !#:+'
-rpme alias --ftpport --define '_ftpport !#:+'
-rpme alias --ftpproxy --define '_ftpproxy !#:+'
-rpme alias --httpport --define '_httpport !#:+'
-rpme alias --httpproxy --define '_httpproxy !#:+'
-#==============================================================================
-rpmi alias --dbpath --define '_dbpath !#:+'
-rpmi alias --ftpport --define '_ftpport !#:+'
-rpmi alias --ftpproxy --define '_ftpproxy !#:+'
-rpmi alias --httpport --define '_httpport !#:+'
-rpmi alias --httpproxy --define '_httpproxy !#:+'
-#==============================================================================
-rpmq alias --dbpath --define '_dbpath !#:+'
-rpmq alias --ftpport --define '_ftpport !#:+'
-rpmq alias --ftpproxy --define '_ftpproxy !#:+'
-rpmq alias --httpport --define '_httpport !#:+'
-rpmq alias --httpproxy --define '_httpproxy !#:+'
-#==============================================================================
-rpmt alias --dbpath --define '_dbpath !#:+'
-rpmt alias --ftpport --define '_ftpport !#:+'
-rpmt alias --ftpproxy --define '_ftpproxy !#:+'
-rpmt alias --httpport --define '_httpport !#:+'
-rpmt alias --httpproxy --define '_httpproxy !#:+'
-rpmt alias --timecheck --define '_timecheck !#:+'
-#==============================================================================
-rpmu alias --dbpath --define '_dbpath !#:+'
-rpmu alias --ftpport --define '_ftpport !#:+'
-rpmu alias --ftpproxy --define '_ftpproxy !#:+'
-rpmu alias --httpport --define '_httpport !#:+'
-rpmu alias --httpproxy --define '_httpproxy !#:+'
-#==============================================================================
-rpmv alias --dbpath --define '_dbpath !#:+'
-rpmv alias --ftpport --define '_ftpport !#:+'
-rpmv alias --ftpproxy --define '_ftpproxy !#:+'
-rpmv alias --httpport --define '_httpport !#:+'
-rpmv alias --httpproxy --define '_httpproxy !#:+'
+rpmbuild alias --ftpport --define '_httpport !#:+'
+rpmbuild alias --ftpproxy --define '_httpproxy !#:+'
+rpmbuild alias --httpport --define '_httpport !#:+'
+rpmbuild alias --httpproxy --define '_httpproxy !#:+'
+rpmbuild alias --with --define "_with_!#:+ --with-!#:+" \
+ --POPTdesc=$"enable configure <option> for build" \
+ --POPTargs=$"<option>"
+rpmbuild alias --without --define "_without_!#:+ --without-!#:+" \
+ --POPTdesc=$"disable configure <option> for build" \
+ --POPTargs=$"<option>"
+# Build policies enabled from command line. Last policy applies.
+rpmbuild alias --buildpolicy --define '__os_install_post %{_rpmconfigdir}/brp-!#:+' \
+ --POPTdesc=$"set buildroot <policy> (e.g. compress man pages)" \
+ --POPTargs=$"<policy>"
+# Minimally preserve rpmbuild's --sign functionality
+rpmbuild alias --sign \
+ --pipe "grep '.*: .*\.rpm$'|cut -d: -f2|xargs -r rpm --addsign" \
+ --POPTdesc=$"generate GPG signature"
+
+rpmsign alias --key-id --define '_gpg_name !#:+' \
+ --POPTdesc=$"key id/name to sign with" \
+ --POPTargs=$"<id>"
+rpmsign alias --digest-algo --define '_gpg_digest_algo !#:+' \
+ --POPTdesc=$"override default digest algorithm (eg sha1/sha256)" \
+ --POPTargs=$"<algorithm>"
+
+rpmspec alias --conflicts --qf \
+ "[%|VERBOSE?{%{CONFLICTFLAGS:deptype}: }:{}|%{CONFLICTNEVRS}\n]" \
+ --POPTdesc=$"list capabilities this package conflicts with"
+rpmspec alias --obsoletes --qf \
+ "[%|VERBOSE?{%{OBSOLETEFLAGS:deptype}: }:{}|%{OBSOLETENEVRS}\n]" \
+ --POPTdesc=$"list other packages removed by installing this package"
+rpmspec alias --provides --qf \
+ "[%|VERBOSE?{%{PROVIDEFLAGS:deptype}: }:{}|%{PROVIDENEVRS}\n]" \
+ --POPTdesc=$"list capabilities that this package provides"
+rpmspec alias --requires --qf \
+ "[%|VERBOSE?{%{REQUIREFLAGS:deptype}: }:{}|%{REQUIRENEVRS}\n]" \
+ --POPTdesc=$"list capabilities required by package(s)"
+rpmspec alias --buildconflicts --srpm --conflicts \
+ --POPTdesc=$"list capabilities conflicting with build of this package"
+rpmspec alias --buildrequires --srpm --requires \
+ --POPTdesc=$"list capabilities required to build this package"
+# \endverbatim
+#*/