File: rpmpopt.in

package info (click to toggle)
rpm 4.14.2.1+dfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 17,592 kB
  • sloc: ansic: 68,414; sh: 31,370; makefile: 884; cpp: 569; python: 485; perl: 222; sed: 16
file content (252 lines) | stat: -rw-r--r-- 11,257 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
#/*! \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 '\
%|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 scriptlet\
%|POSTINPROG?{ (using[ %{POSTINPROG}])}|:\n%{POSTIN}\n}:\
{%|POSTINPROG?{postinstall program:[ %{POSTINPROG}]\n}|}|\
\
%|PREUN?{preuninstall scriptlet\
%|PREUNPROG?{ (using[ %{PREUNPROG}])}|:\n%{PREUN}\n}:\
{%|PREUNPROG?{preuninstall program:[ %{PREUNPROG}]\n}|}|\
\
%|POSTUN?{postuninstall scriptlet\
%|POSTUNPROG?{ (using[ %{POSTUNPROG}])}|:\n%{POSTUN}\n}:\
{%|POSTUNPROG?{postuninstall program:[ %{POSTUNPROG}]\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} \] || \
        ( \[ $((%{FILEFLAGS} & 2#1001000)) != 0 \] && \[ ! -e %{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 \
	'[ch %{FILEUSERNAME:shescape} %{FILEGROUPNAME:shescape} %{FILENAMES:shescape} %{FILEFLAGS}\n]' \
	--pipe "(echo 'ch() { ( \[ $(($4 & 2#1001000)) != 0 \] && \[ ! -e \"$3\" \] ) || \
		(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 --setcaps -q --qf \
	"[\[ -f %{FILENAMES:shescape} -a ! -L %{FILENAMES:shescape} \] \
	    && setcap %|FILECAPS?{%{FILECAPS:shescape}}:{''}| %{FILENAMES:shescape}\n]" \
	--pipe "sh" \
	--POPTdesc=$"set capabilities of files in a package"

rpm	alias --restore -q --qf \
	'[  rpm --setugids %{NAME:shescape}; \
	    rpm --setperms %{NAME:shescape}; \
	    rpm --setcaps  %{NAME:shescape}; \n]' --pipe "sh" \
	--POPTdesc=$"restore file/directory permissions"

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 -P --provides

rpm	alias --requires	--qf \
  "[%|VERBOSE?{%{REQUIREFLAGS:deptype}: }:{}|%{REQUIRENEVRS}\n]" \
	--POPTdesc=$"list capabilities required by package(s)"
rpm	alias -R --requires

rpm	alias --recommends	--qf \
  "[%|VERBOSE?{%{RECOMMENDFLAGS:deptype}: }:{}|%{RECOMMENDNEVRS}\n]" \
	--POPTdesc=$"list capabilities recommended by package(s)"
rpm	alias --suggests	--qf \
  "[%|VERBOSE?{%{SUGGESTFLAGS:deptype}: }:{}|%{SUGGESTNEVRS}\n]" \
	--POPTdesc=$"list capabilities suggested by package(s)"
rpm	alias --supplements	--qf \
  "[%|VERBOSE?{%{SUPPLEMENTFLAGS:deptype}: }:{}|%{SUPPLEMENTNEVRS}\n]" \
	--POPTdesc=$"list capabilities supplemented by package(s)"
rpm	alias --enhances	--qf \
  "[%|VERBOSE?{%{ENHANCEFLAGS:deptype}: }:{}|%{ENHANCENEVRS}\n]" \
	--POPTdesc=$"list capabilities enhanced by package(s)"

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}|\
%|BUGURL?{Bug URL     : %{BUGURL}\n}|\
Summary     : %{SUMMARY}\n\
Description :\n%{DESCRIPTION}\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 --changes --qf '[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]' \
	--POPTdesc=$"list changes for this package with full time stamps"

rpm	alias --xml --qf '[%{*:xml}\n]' \
	--POPTdesc=$"list metadata in xml"

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 --filetriggerscripts --qf '\
[filetrigger%{FILETRIGGERTYPE} scriptlet (using %{FILETRIGGERSCRIPTPROG}) -- \
%{FILETRIGGERCONDS}\n%{FILETRIGGERSCRIPTS}\n]\
[transfiletrigger%{TRANSFILETRIGGERTYPE} scriptlet (using %{TRANSFILETRIGGERSCRIPTPROG}) -- \
%{TRANSFILETRIGGERCONDS}\n%{TRANSFILETRIGGERSCRIPTS}\n]'
rpm	alias --filetriggers --filetriggerscripts \
	--POPTdesc=$"list filetrigger scriptlets from package(s)"

rpm	alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NVRA} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \
	--pipe "LC_NUMERIC=C 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 --dupes   --qf '%|SOURCERPM?{%{name}.%{arch}}:{%|ARCH?{%{name}}:{%{name}-%{version}}|}|\n' --pipe "sort | uniq -d" \
	--POPTdesc=$"list duplicated packages"

rpm	alias --filesbypkg --qf '[%-25{=NAME} %{FILENAMES}\n]' \
	--POPTdesc=$"list all files from each package"

rpm	alias --fileclass --qf '[%{FILENAMES}\t%{FILECLASS}\n]' \
	--POPTdesc=$"list file names with their classes"

rpm	alias --filecolor --qf '[%{FILENAMES}\t%{FILECOLORS}\n]' \
	--POPTdesc=$"list file names with their colors"

rpm	alias --fileprovide --qf '[%{FILENAMES}\t%{FILEPROVIDE}\n]' \
	--POPTdesc=$"list file names with their provides"

rpm	alias --filerequire --qf '[%{FILENAMES}\t%{FILEREQUIRE}\n]' \
	--POPTdesc=$"list file names with requires"

rpm	alias --filecaps --qf '[%{FILENAMES}\t%|FILECAPS?{%{FILECAPS}}|\n]' \
	--POPTdesc=$"list file names with their POSIX1.e capabilities"

# colon separated i18n domains to use as PO catalogue lookaside for
# retrieving header group/description/summary.
rpm alias --i18ndomains --define '_i18ndomains !#:+'

rpm alias --color --define '_color_output !#:+'

#==============================================================================
#	[--ftpport <port>]	"port number of ftp server (or proxy)"
rpm	alias --ftpport		--define '_httpport !#:+'
#	[--ftpproxy <host>]	"hostname or IP of ftp proxy"
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 !#:+'
#	[--trace]		"trace macro expansion"
rpm	alias --trace		--eval '%trace'

# 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 --signfiles	rpmsign --signfiles
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 --verifydb		rpmdb --verifydb
rpm	exec --specfile		rpmspec -q

#==============================================================================
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 'rpm --addsign `grep ".*: .*\.rpm$"|cut -d: -f2` < "/dev/"`ps -p $$ -o tty | tail -n 1`' \
	--POPTdesc=$"generate GPG signature (deprecated, use command rpmsign instead)"
#	[--trace]		"trace macro expansion"
rpmbuild alias --trace		--eval '%trace'
rpmbuild alias --nodebuginfo	--define 'debug_package %{nil}' \
	--POPTdesc=$"do not generate debuginfo for this package"

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"
#	[--trace]		"trace macro expansion"
rpmspec alias --trace		--eval '%trace'
# \endverbatim
#*/