File smar-apparmor-profiles.spec.in of Package smar-apparmor-profiles (Revision 699bb09c9bc4bb71403b552018cc9473)
Currently displaying revision 699bb09c9bc4bb71403b552018cc9473 , Show latest
xxxxxxxxxx
1
#
2
# spec file for package smar-apparmor-profiles
3
4
# TODO: Add postinst script for common package to reload apparmor to get installed/updated profiles loaded.
5
# Unless there is a better way how SUSE expects me to do.
6
7
Name: smar-apparmor-profiles
8
Version: 1.0.0-pre
9
Release: 0
10
Summary: Per-package apparmor-profiles
11
License: ISC
12
Group: Productivity/Security
13
Url: https://git.sr.ht/~smar/smar-apparmor-profiles
14
Source0: %{name}-%{version}.tar.xz
15
Source1: rpmlintrc
16
Source2: systemd_overrides.tar.xz
17
BuildRoot: %{_tmppath}/%{name}-%{version}-build
18
# To automatically set current perl version.
19
BuildRequires: /usr/bin/perl
20
# This allows us not to need to own /etc/apparmor.d
21
BuildRequires: apparmor-profiles
22
# Used for adding overrides to certain systemd services.
23
BuildRequires: systemd-rpm-macros
24
25
%description
26
This project aims to have per-package AppArmor profiles, so that they can be automatically pulled
27
when relevant package is installed to a system. This allows cluttering AppArmor with unnecessary profiles,
28
and also allows easy blacklisting profiles one does not want.
29
30
A profile could still be temporary disabled with a symlink in /etc/apparmor.d/disable directory.
31
32
%prep
33
%setup -q
34
35
tar xf %{S:2}
36
37
%build
38
perl_version="$(perl -e 'use warnings; use strict; print substr $^V, 1;')"
39
40
sed -i "s|@{arch}=CPU_ARCHITECTURE|@{arch}=%{_target_cpu}|" tunables/hardware
41
sed -i "s|@{perl_current_version}=CURRENT_PERL_VERSION|@{perl_current_version}=${perl_version}|" tunables/perl
42
sed -i "s|@{system_libdir}=ESSENTIAL_SYSTEM_LIBDIR|@{system_libdir}=/%{_lib}|" tunables/system.d/arch-specific
43
sed -i "s|@{libdir}=SYSTEM_LIBDIR|@{libdir}=%{_libdir}|" tunables/system.d/arch-specific
44
45
%if 0%{sle_version} < 150300
46
cd profiles
47
48
# perfmon capability was introduced in 15.3, so it needs to be disabled for earlier installations.
49
for profile in "$(grep -R -l "capability perfmon" * 2> /dev/null)"; do
50
sed -i 's/capability perfmon/#capability perfmon/g' "$profile"
51
done
52
# bpf capability was introduced in 15.3, so it needs to be disabled for earlier installations.
53
for profile in "$(grep -R -l "capability perfmon" * 2> /dev/null)"; do
54
sed -i 's/capability bpf/#capability bpf/g' "$profile"
55
done
56
57
cd -
58
%endif
59
60
%install
61
mkdir -p %{buildroot}%{_bindir}
62
mkdir -p %{buildroot}%{_sysconfdir}/apparmor.d/abstractions
63
mkdir -p %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/audio.d
64
mkdir -p %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/dri-common.d
65
mkdir -p %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/private-files-strict.d
66
mkdir -p %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/system-daemon.d
67
mkdir %{buildroot}%{_sysconfdir}/apparmor.d/lib
68
mkdir %{buildroot}%{_sysconfdir}/apparmor.d/local
69
mkdir %{buildroot}%{_sysconfdir}/apparmor.d/local/abstractions
70
mkdir %{buildroot}%{_sysconfdir}/apparmor.d/local/cli
71
mkdir %{buildroot}%{_sysconfdir}/apparmor.d/tunables
72
mkdir %{buildroot}%{_sysconfdir}/apparmor.d/tunables/system.d
73
mkdir %{buildroot}%{_sysconfdir}/apparmor.d/namespaces.d
74
75
mv profiles/server/dovecot/* %{buildroot}%{_sysconfdir}/apparmor.d
76
77
mv abstractions/smar-base %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
78
mv abstractions/smar %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
79
mv abstractions/smar-strict %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
80
mv abstractions/akonadi %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
81
mv abstractions/audio.d/smar-additions %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/audio.d/
82
mv abstractions/cli %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
83
mv abstractions/discrete-transition-all %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
84
mv abstractions/dns %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
85
mv abstractions/dri-common.d/smar-additions %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/dri-common.d/
86
mv abstractions/drkonqi %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
87
mv abstractions/fish %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
88
mv abstractions/katepart %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
89
mv abstractions/kde_file_dialog %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
90
mv abstractions/kde-common %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
91
mv abstractions/less %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
92
mv abstractions/passwd %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
93
mv abstractions/plasma %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
94
mv abstractions/private-files-strict.d/smar-additions %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/private-files-strict.d/
95
mv abstractions/qtwebengine %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
96
mv abstractions/sddm %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
97
mv abstractions/shells %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
98
mv abstractions/smar_kde %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
99
mv abstractions/smar_perl %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
100
mv abstractions/smar_python %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
101
mv abstractions/smar_ruby %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
102
mv abstractions/system-daemon %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
103
mv abstractions/system-daemon.d/unconfined-systemd %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/system-daemon.d/
104
mv abstractions/systemd %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
105
mv abstractions/unconfined-steam %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
106
mv abstractions/user-daemon %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
107
mv abstractions/videocard %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
108
mv abstractions/vim-inline-editor %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
109
mv abstractions/Xorg %{buildroot}%{_sysconfdir}/apparmor.d/abstractions/
110
111
# Local files for abstractions.
112
mv abstractions/local/smar_kde %{buildroot}%{_sysconfdir}/apparmor.d/local/abstractions/
113
mv abstractions/local/Xorg %{buildroot}%{_sysconfdir}/apparmor.d/local/abstractions/
114
115
mv lib/allow-ptraces %{buildroot}%{_sysconfdir}/apparmor.d/lib/
116
117
mv tunables/hardware %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
118
mv tunables/kde %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
119
mv tunables/krb5 %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
120
mv tunables/numeric %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
121
mv tunables/textual %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
122
mv tunables/obs %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
123
mv tunables/perl %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
124
mv tunables/python %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
125
mv tunables/ruby %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
126
mv tunables/smar %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
127
mv tunables/sysdevices %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
128
mv tunables/system %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
129
mv tunables/system.d/arch-specific %{buildroot}%{_sysconfdir}/apparmor.d/tunables/system.d/
130
mv tunables/system.d/os-specific %{buildroot}%{_sysconfdir}/apparmor.d/tunables/system.d/
131
mv tunables/system.d/system-specific %{buildroot}%{_sysconfdir}/apparmor.d/tunables/system.d/
132
mv tunables/system.d/x86 %{buildroot}%{_sysconfdir}/apparmor.d/tunables/system.d/
133
mv tunables/user %{buildroot}%{_sysconfdir}/apparmor.d/tunables/
134
135
# Namespace definitions.
136
mv namespaces/kde_file_dialog %{buildroot}%{_sysconfdir}/apparmor.d/namespaces.d/
137
#mv namespaces/kde_file_dialog %%{buildroot}%%{_sysconfdir}/apparmor.d/
138
139
# A profile in the git repository can be a symlink, to
140
# avoid unnecessary profile copies.
141
# Since combining profiles still is not possible.
142
#
143
# Let’s mangle the symlinks to have correct end result.
144
#
145
# For now these symlinks only exists for rpm-scriptlets.
146
pushd namespaces/rpm-scriptlets.d
147
148
# First add normal files to package list.
149
find . -type f -exec sh -c '
150
package_path="${1}"
151
package_name="$(basename "${package_path}")"
152
153
buildroot_profile_file="%{_sysconfdir}/apparmor.d/namespaces.d/rpm-scriptlets.d/${package_name}"
154
echo "${buildroot_profile_file}" >> "%{_builddir}/%{name}-%{version}/namespace_files.rpm"
155
' sh {} \;
156
157
# Then process the links.
158
find . -type l -exec sh -c '
159
package_path="${1}"
160
package_name="$(basename "${package_path}")"
161
#echo "readlink ${1}: $(readlink "${package_path}")"
162
ln -sfn ../../"${package_name}" "${package_path}"
163
164
buildroot_profile_link="%{_sysconfdir}/apparmor.d/namespaces.d/rpm-scriptlets.d/${package_name}"
165
echo "${buildroot_profile_link}" >> "%{_builddir}/%{name}-%{version}/namespace_files.rpm"
166
' sh {} \;
167
popd
168
169
___INSTALL_RULES_HERE___
170
171
# Common files.
172
%package common
173
Summary: Common files Smar’s AppArmor profiles
174
Requires: %{name}-sddm-abstractions
175
BuildArch: noarch
176
177
%description common
178
Common files Smar’s AppArmor profiles.
179
180
Contains things like tunables helpful with /sys/devices/** rules.
181
182
%files common
183
%dir %{_sysconfdir}/apparmor.d/abstractions/audio.d
184
%dir %{_sysconfdir}/apparmor.d/abstractions/dri-common.d
185
%dir %{_sysconfdir}/apparmor.d/abstractions/private-files-strict.d
186
%dir %{_sysconfdir}/apparmor.d/abstractions/system-daemon.d
187
%dir %{_sysconfdir}/apparmor.d/extra
188
%dir %{_sysconfdir}/apparmor.d/lib
189
%dir %{_sysconfdir}/apparmor.d/local/abstractions
190
%dir %{_sysconfdir}/apparmor.d/local/cli
191
%dir %{_sysconfdir}/apparmor.d/namespaces.d
192
%dir %{_sysconfdir}/apparmor.d/tunables/system.d
193
194
%config %{_sysconfdir}/apparmor.d/abstractions/audio.d/smar-additions
195
%config %{_sysconfdir}/apparmor.d/abstractions/cli
196
%config %{_sysconfdir}/apparmor.d/abstractions/discrete-transition-all
197
%config %{_sysconfdir}/apparmor.d/abstractions/dns
198
%config %{_sysconfdir}/apparmor.d/abstractions/dri-common.d/smar-additions
199
%config %{_sysconfdir}/apparmor.d/abstractions/fish
200
%config %{_sysconfdir}/apparmor.d/abstractions/kde-common
201
%config %{_sysconfdir}/apparmor.d/abstractions/passwd
202
%config %{_sysconfdir}/apparmor.d/abstractions/private-files-strict.d/smar-additions
203
%config %{_sysconfdir}/apparmor.d/abstractions/qtwebengine
204
%config %{_sysconfdir}/apparmor.d/abstractions/shells
205
%config %{_sysconfdir}/apparmor.d/abstractions/smar
206
%config %{_sysconfdir}/apparmor.d/abstractions/smar-base
207
%config %{_sysconfdir}/apparmor.d/abstractions/smar_perl
208
%config %{_sysconfdir}/apparmor.d/abstractions/smar_python
209
%config %{_sysconfdir}/apparmor.d/abstractions/smar-strict
210
%config %{_sysconfdir}/apparmor.d/abstractions/system-daemon
211
%config(noreplace) %{_sysconfdir}/apparmor.d/abstractions/system-daemon.d/unconfined-systemd
212
%config(noreplace) %{_sysconfdir}/apparmor.d/abstractions/unconfined-steam
213
%config %{_sysconfdir}/apparmor.d/abstractions/user-daemon
214
215
%config %{_sysconfdir}/apparmor.d/lib/allow-ptraces
216
217
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/hardware
218
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/kde
219
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/krb5
220
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/numeric
221
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/textual
222
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/obs
223
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/perl
224
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/python
225
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/ruby
226
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/smar
227
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/sysdevices
228
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/system
229
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/system.d/arch-specific
230
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/system.d/os-specific
231
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/system.d/system-specific
232
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/system.d/x86
233
%config(noreplace) %{_sysconfdir}/apparmor.d/tunables/user
234
235
# kde/smar_kde
236
%package kde-abstractions
237
Summary: Abstractions for KDE AppArmor profiles
238
Requires: %{name}-sddm-abstractions
239
Requires: %{name}-xorg-abstractions
240
BuildArch: noarch
241
#
242
# For tunables/sssd. Only useful if Kerberos 5 authentication
243
# is used via SSSD, I suppose.
244
Suggests: sssd-profiles
245
246
%description kde-abstractions
247
KDE abstractions from project smar-apparmor-profiles.
248
249
These abstractions have some convenience definitions for KDE profiles.
250
251
%files kde-abstractions
252
%config %{_sysconfdir}/apparmor.d/abstractions/akonadi
253
%config %{_sysconfdir}/apparmor.d/abstractions/drkonqi
254
%config %{_sysconfdir}/apparmor.d/abstractions/katepart
255
%config %{_sysconfdir}/apparmor.d/abstractions/kde_file_dialog
256
%config %{_sysconfdir}/apparmor.d/abstractions/plasma
257
%config %{_sysconfdir}/apparmor.d/abstractions/smar_kde
258
%config %{_sysconfdir}/apparmor.d/namespaces.d/kde_file_dialog
259
#%%config %%{_sysconfdir}/apparmor.d/kde_file_dialog
260
%config %{_sysconfdir}/apparmor.d/local/abstractions/smar_kde
261
%dir %{_sysconfdir}/apparmor.d/local/kde
262
263
# Programs writing to sddm user log.
264
%package sddm-abstractions
265
Summary: Abstractions for profiles utilizing SDDM in a way or other
266
Supplements: sddm
267
BuildArch: noarch
268
269
%description sddm-abstractions
270
SDDM abstractions from project smar-apparmor-profiles.
271
272
These abstractions allows writing SDDM’s user log, akin to old
273
Xsession-errors.
274
275
%files sddm-abstractions
276
%config %{_sysconfdir}/apparmor.d/abstractions/sddm
277
278
# X.org abstractions.
279
%package xorg-abstractions
280
Summary: Abstractions for profiles utilizing X in a way or other
281
BuildArch: noarch
282
283
%description xorg-abstractions
284
AppArmor abstraction files for Xorg from project smar-apparmor-profiles.
285
286
Pulled and used by *-profiles packages.
287
288
%files xorg-abstractions
289
%config %{_sysconfdir}/apparmor.d/abstractions/Xorg
290
%config %{_sysconfdir}/apparmor.d/abstractions/videocard
291
%config %{_sysconfdir}/apparmor.d/local/abstractions/Xorg
292
293
# systemd abstractions.
294
%package systemd-abstractions
295
Summary: Abstractions for profiles utilizing systemd in a way or other
296
BuildArch: noarch
297
298
%description systemd-abstractions
299
AppArmor abstraction files for systemd from project smar-apparmor-profiles.
300
301
Pulled and used by *-profiles packages.
302
303
%files systemd-abstractions
304
%config %{_sysconfdir}/apparmor.d/abstractions/systemd
305
306
# All programs that uses less
307
%package less-abstractions
308
Summary: Abstractions for AppArmor profiles that uses less
309
BuildArch: noarch
310
311
%description less-abstractions
312
Less abstractions from project smar-apparmor-profiles.
313
314
These abstractions provides rules for applications using less in a way or another.
315
316
%files less-abstractions
317
%config %{_sysconfdir}/apparmor.d/abstractions/less
318
319
# All programs that uses Ruby
320
%package ruby-abstractions
321
Summary: Abstractions for AppArmor profiles that uses Ruby
322
Supplements: ruby
323
BuildArch: noarch
324
325
%description ruby-abstractions
326
Ruby abstractions from project smar-apparmor-profiles.
327
328
These abstractions provides rules for applications using Ruby in a way or another.
329
330
%files ruby-abstractions
331
%config %{_sysconfdir}/apparmor.d/abstractions/smar_ruby
332
333
# All programs that uses vim
334
%package vim-abstractions
335
Summary: Abstractions for AppArmor profiles that uses vim
336
BuildArch: noarch
337
338
%description vim-abstractions
339
Vim abstractions from project smar-apparmor-profiles.
340
341
These abstractions provides rules for applications using Vim in a way or another.
342
343
%files vim-abstractions
344
%config %{_sysconfdir}/apparmor.d/abstractions/vim-inline-editor
345
346
# Dovecot
347
%package -n dovecot-profiles
348
Summary: AppArmor profiles for Dovecot
349
Supplements: dovecot
350
BuildArch: noarch
351
352
%description -n dovecot-profiles
353
AppArmor profiles for Dovecot from project smar-apparmor-profiles.
354
355
%files -n dovecot-profiles
356
%config %{_sysconfdir}/apparmor.d/dovecot
357
%config %{_sysconfdir}/apparmor.d/dovecot.anvil
358
%config %{_sysconfdir}/apparmor.d/dovecot.auth
359
%config %{_sysconfdir}/apparmor.d/dovecot.config
360
%config %{_sysconfdir}/apparmor.d/dovecot.deliver
361
%config %{_sysconfdir}/apparmor.d/dovecot.dict
362
%config %{_sysconfdir}/apparmor.d/dovecot.dovecot-auth
363
%config %{_sysconfdir}/apparmor.d/dovecot.dovecot-lda
364
%config %{_sysconfdir}/apparmor.d/dovecot.imap
365
%config %{_sysconfdir}/apparmor.d/dovecot.imap-login
366
%config %{_sysconfdir}/apparmor.d/dovecot.lmtp
367
%config %{_sysconfdir}/apparmor.d/dovecot.log
368
%config %{_sysconfdir}/apparmor.d/dovecot.managesieve
369
%config %{_sysconfdir}/apparmor.d/dovecot.managesieve-login
370
%config %{_sysconfdir}/apparmor.d/dovecot.pop3
371
%config %{_sysconfdir}/apparmor.d/dovecot.pop3-login
372
%config %{_sysconfdir}/apparmor.d/dovecot.ssl-params
373
%config %{_sysconfdir}/apparmor.d/dovecot.stats
374
375
376
___PACKAGES_HERE___
377
378
%changelog
379
380
# kate: syntax RPM Spec