summaryrefslogtreecommitdiff
path: root/rpmpopt.in
blob: c822b38661e96fd0ed2c826a428736d3c62352a7 (plain)
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
#/*! \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:\n%{VERIFYSCRIPT}\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\) | 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}\n]' \
        --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 \
  "[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]" \
	--POPTdesc=$"list capabilities this package conflicts with"
rpm	alias --obsoletes	--qf \
  "[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]" \
	--POPTdesc=$"list other packages removed by installing this package"
rpm	alias --provides	--qf \
  "[%{PROVIDENAME} %|PROVIDEFLAGS?{%{PROVIDEFLAGS:depflags} %{PROVIDEVERSION}}:{}|\n]" \
	--POPTdesc=$"list capabilities that this package provides"

rpm	alias --requires	--qf \
  "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" \
	--POPTdesc=$"list capabilities required by package(s)"
rpm	alias -R --requires

rpm	alias --info --qf 'Name        : %-27{NAME}  Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\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\
Signature   : %|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|\n\
%|PACKAGER?{Packager    : %{PACKAGER}\n}|\
%|URL?{URL         : %{URL}\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 --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 --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NAME}-%{VERSION}-%{RELEASE} %|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 --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 classes"

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

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 --fileprovide --qf '[%{FILENAMES}\t%{FILEPROVIDE}\n]' \
	--POPTdesc=$"list file names with provides"

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

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

# Build policies enabled from command line. Last policy applies.
rpm alias --buildpolicy --define '__os_install_post @RPMCONFIGDIR@/brp-!#:+' \
	--POPTdesc=$"set buildroot <policy> (e.g. compress man pages)" \
	--POPTargs=$"<policy>"

# 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 --rebuilddbapi	 --define '_dbapi_rebuild !#:+'
rpm alias --rebuilddbpath	 --define '_dbapath_rebuild !#:+'

#==============================================================================
#	[--dbpath DIRECTORY"	"use database in DIRECTORY"
rpm	alias --dbpath		--define '_dbpath !#:+'
#	[--ftpport <port>]	"port number of ftp server (or proxy)"
rpm	alias --ftpport		--define '_ftpport !#:+'
#	[--ftpproxy <host>]	"hostname or IP of ftp proxy"
rpm	alias --ftpproxy	--define '_ftpproxy !#:+'
#	[--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 !#:+'

#==============================================================================
rpmbuild	alias --dbpath		--define '_dbpath !#:+' \
	--POPTdesc=$"use database in DIRECTORY" \
	--POPTargs=$"DIRECTORY"
rpmbuild alias --ftpport		--define '_ftpport !#:+'
rpmbuild alias --ftpproxy	--define '_ftpproxy !#:+'
rpmbuild alias --httpport	--define '_httpport !#:+'
rpmbuild alias --httpproxy	--define '_httpproxy !#:+'
rpmbuild alias --timecheck	--define '_timecheck !#:+'
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>"
# \endverbatim
#*/