]> git.pld-linux.org Git - packages/audit.git/blame - audit.spec
fix build with linux-libc-headers < 5.17
[packages/audit.git] / audit.spec
CommitLineData
ce14e998 1#
e5a8c0d8 2# Conditional build:
49caa03e 3%bcond_without kerberos5 # Kerberos V support via heimdal
49caa03e 4%bcond_without golang # Go language bindings
b7895bd5 5%bcond_with gccgo # use GCC go frontend instead of golang implementation
659527ec 6%bcond_without python # Python bindings (any)
3c5110f4 7%bcond_without python2 # Python 2 bindings
659527ec 8%bcond_without python3 # Python 3 bindings
49caa03e 9%bcond_without zos_remote # zos-remote audisp plugin (LDAP dep)
f99a4738 10
b7895bd5
JB
11%ifnarch %{ix86} %{x8664} %{arm} aarch64 mips64 mips64le ppc64 ppc64le s390x
12%define with_gccgo 1
f99a4738
JR
13%endif
14
659527ec 15%if %{without python}
3c5110f4 16%undefine with_python2
659527ec
JB
17%undefine with_python3
18%endif
17421987
JP
19
20%if %{_ver_ge %(rpm -q --qf='%%{E}:%%{V}' linux-libc-headers) 7:5.17}
21%define with_flex_array_fix 1
22%endif
54697230 23Summary: User space tools for 2.6 kernel auditing
7f0a1e1e 24Summary(pl.UTF-8): Narzędzia przestrzeni użytkownika do audytu jąder 2.6
54697230 25Name: audit
487566eb
JB
26Version: 3.0.8
27Release: 1
ab8f94cb 28License: GPL v2+
54697230 29Group: Daemons
3e98c4b4 30Source0: https://people.redhat.com/sgrubb/audit/%{name}-%{version}.tar.gz
487566eb 31# Source0-md5: 13dd813d9fdcc1853d930c081f9e8bdf
de2a21fd
JB
32Source2: %{name}d.init
33Source3: %{name}d.sysconfig
80475ae6 34Patch0: %{name}-install.patch
b0722891 35Patch1: %{name}-m4.patch
61d763d9 36Patch2: %{name}-nolibs.patch
d1e0ebb3
JK
37Patch3: %{name}-systemd-notonly.patch
38Patch4: %{name}-am.patch
39Patch5: %{name}-no-refusemanualstop.patch
40Patch6: %{name}-cronjob.patch
41Patch7: golang-paths.patch
487566eb
JB
42Patch8: %{name}-flex-array-workaround.patch
43Patch9: %{name}-undo-flex-array.patch
54697230
JB
44URL: http://people.redhat.com/sgrubb/audit/
45BuildRequires: autoconf >= 2.59
4faf4930 46BuildRequires: automake >= 1:1.12.6
10583781 47BuildRequires: glibc-headers >= 6:2.3.6
220b3c30 48%{?with_kerberos5:BuildRequires: heimdal-devel}
693afa1c 49BuildRequires: libcap-ng-devel
54697230 50BuildRequires: libtool
61d763d9 51BuildRequires: libwrap-devel
d80f3483 52BuildRequires: linux-libc-headers >= 7:2.6.30
220b3c30 53%{?with_zos_remote:BuildRequires: openldap-devel}
3c5110f4 54%if %{with python2}
84214962 55BuildRequires: python-devel >= 1:2.5
9ee6c1ce 56BuildRequires: rpm-pythonprov
7e695d35 57BuildRequires: swig-python
57f09668 58%endif
2d0ad02a
JR
59%if %{with python3}
60BuildRequires: python3-devel
61BuildRequires: rpm-pythonprov
62BuildRequires: swig-python
63%endif
17421987 64BuildRequires: rpmbuild(macros) >= 1.750
ab8f94cb 65BuildRequires: sed >= 4.0
b7895bd5
JB
66%if %{with golang}
67%{?with_gccgo:BuildRequires: gcc-go >= 5.1}
68%{!?with_gccgo:BuildRequires: golang >= 1.4}
69%endif
54697230 70Requires(post,preun): /sbin/chkconfig
195529ba 71Requires(post,preun,postun): systemd-units >= 38
54697230 72Requires: %{name}-libs = %{version}-%{release}
96102055 73Requires: rc-scripts
195529ba 74Requires: systemd-units >= 38
d50aaacc 75Obsoletes: audit-audispd-plugins < 1.6.7
487566eb 76Obsoletes: audit-plugin-prelude < 3
d50aaacc 77Obsoletes: audit-systemd < 2.2-2
54697230
JB
78BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79
80%define _sbindir /sbin
ab8f94cb
JB
81# use /lib, because this path is put in /usr/share/.../settings.py
82%define _libexecdir %{_prefix}/lib
54697230
JB
83
84%description
85The audit package contains the user space utilities for storing and
86processing the audit records generate by the audit subsystem in the
87Linux 2.6 kernel.
88
b27e8f95
JR
89%description -l pl.UTF-8
90Ten pakiet zawiera narzędzia przestrzeni użytkownika do przechowywania
91i przetwarzania rekordów audytu generowanych przez podsystem audytu w
92jądrach Linuksa 2.6.
54697230
JB
93
94%package libs
5a56b716 95Summary: Dynamic audit libraries
7f0a1e1e 96Summary(pl.UTF-8): Biblioteki dynamiczne audit
ab8f94cb 97License: LGPL v2.1+
54697230
JB
98Group: Libraries
99
100%description libs
5a56b716 101The audit-libs package contains the dynamic libraries needed for
54697230
JB
102applications to use the audit framework.
103
b27e8f95 104%description libs -l pl.UTF-8
5a56b716 105Ten pakiet zawiera biblioteki dynamiczne potrzebne dla aplikacji
b27e8f95 106używających środowiska audytu.
54697230
JB
107
108%package libs-devel
5a56b716 109Summary: Header files for audit libraries
7f0a1e1e 110Summary(pl.UTF-8): Pliki nagłówkowe bibliotek audit
ab8f94cb 111License: LGPL v2.1+
54697230
JB
112Group: Development/Libraries
113Requires: %{name}-libs = %{version}-%{release}
d80f3483 114Requires: linux-libc-headers >= 7:2.6.30
9a4de669 115Requires: libcap-ng-devel
54697230
JB
116
117%description libs-devel
118The audit-libs-devel package contains the header files needed for
119developing applications that need to use the audit framework library.
120
b27e8f95
JR
121%description libs-devel -l pl.UTF-8
122Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia aplikacji
123używających biblioteki środowiska audytu.
54697230
JB
124
125%package libs-static
5a56b716 126Summary: Static audit libraries
7f0a1e1e 127Summary(pl.UTF-8): Statyczne biblioteki audit
ab8f94cb 128License: LGPL v2.1+
54697230
JB
129Group: Development/Libraries
130Requires: %{name}-libs-devel = %{version}-%{release}
131
132%description libs-static
5a56b716
JB
133The audit-libs-static package contains the static libraries for
134developing applications that need to use the audit framework.
54697230 135
b27e8f95 136%description libs-static -l pl.UTF-8
5a56b716 137Ten pakiet zawiera statyczne biblioteki do tworzenia aplikacji
b27e8f95 138używających środowiska audytu.
54697230 139
49caa03e
JB
140%package -n golang-audit
141Summary: Go language interface to libaudit library
142Summary(pl.UTF-8): Interfejs języka Go do biblioteki libaudit
143License: LGPL v2.1+
144Group: Development/Languages
145Requires: %{name}-libs = %{version}-%{release}
b7895bd5
JB
146%if %{with gccgo}
147Requires: gcc-go >= 5.1
148%else
659527ec 149Requires: golang >= 1.4
b7895bd5 150%endif
49caa03e
JB
151
152%description -n golang-audit
153Go language interface to libaudit library.
154
155%description -n golang-audit -l pl.UTF-8
156Interfejs języka Go do biblioteki libaudit.
157
9ee6c1ce 158%package -n python-audit
659527ec
JB
159Summary: Python 2.x interface to libaudit library
160Summary(pl.UTF-8): Interfejs Pythona 2.x do biblioteki libaudit
ab8f94cb 161License: LGPL v2.1+
9ee6c1ce
JB
162Group: Libraries/Python
163Requires: %{name}-libs = %{version}-%{release}
164
165%description -n python-audit
659527ec 166Python 2.x interface to libaudit library.
9ee6c1ce 167
b27e8f95 168%description -n python-audit -l pl.UTF-8
659527ec 169Interfejs Pythona 2.x do biblioteki libaudit.
9ee6c1ce 170
2d0ad02a 171%package -n python3-audit
659527ec
JB
172Summary: Python 3.x interface to libaudit library
173Summary(pl.UTF-8): Interfejs Pythona 3.x do biblioteki libaudit
2d0ad02a
JR
174License: LGPL v2.1+
175Group: Libraries/Python
176Requires: %{name}-libs = %{version}-%{release}
177
178%description -n python3-audit
659527ec 179Python 3.x interface to libaudit library.
2d0ad02a
JR
180
181%description -n python3-audit -l pl.UTF-8
659527ec 182Interfejs Pythona 3.x do biblioteki libaudit.
2d0ad02a 183
54697230
JB
184%prep
185%setup -q
eb9b3ab9 186%patch0 -p1
1e78f2d9 187%patch1 -p1
61d763d9 188%patch2 -p1
d1e0ebb3 189%patch3 -p1
ffa39469 190%patch4 -p1
0bd7ba4a 191%patch5 -p1
738da8d6
JR
192%patch6 -p1
193%patch7 -p1
487566eb 194
17421987 195%if %{with flex_array_fix}
487566eb
JB
196# workaround flexible array member (char buf[]) incompatible with swig<=4.0.2
197cp /usr/include/linux/audit.h lib
5f5ab865 198%patch8 -p1
17421987 199%endif
1a8b063a 200
68d62ac9 201%if %{without python}
99572413
JP
202sed 's#[^ ]*swig/[^ ]*/Makefile ##g' -i configure.ac
203sed 's/swig//' -i bindings/Makefile.am
57f09668 204%endif
205
54697230
JB
206%build
207%{__libtoolize}
208%{__aclocal}
209%{__autoconf}
210%{__autoheader}
211%{__automake}
cc094a3e 212%configure \
56096462
JP
213 CC_FOR_BUILD="%{__cc}" \
214 CPPFLAGS_FOR_BUILD="%{rpmcppflags}" \
215 CFLAGS_FOR_BUILD="%{rpmcflags}" \
216 LDFLAGS_FOR_BUILD="%{rpmldflags}" \
220b3c30 217 %{?with_kerberos5:--enable-gssapi-krb5} \
ffa39469 218 --enable-systemd \
61d763d9
JB
219 --with-apparmor \
220 --with-libwrap \
d1e0ebb3 221 %{!?with_zos_remote:--disable-zos-remote}
54697230 222
738da8d6 223%{__make}
bf2e6acc 224
54697230
JB
225%install
226rm -rf $RPM_BUILD_ROOT
0167336b 227install -d $RPM_BUILD_ROOT{%{_sysconfdir}/audit/rules.d,%{_var}/log/audit}
54697230
JB
228
229%{__make} install \
230 DESTDIR=$RPM_BUILD_ROOT
231
17421987 232%if %{with flex_array_fix}
487566eb
JB
233# undo include change
234cd $RPM_BUILD_ROOT
235patch -p0 --no-backup-if-mismatch < %{PATCH9}
236cd -
17421987 237%endif
487566eb 238
0167336b
JB
239# default to no audit (and no overhead)
240cp -p rules/10-no-audit.rules $RPM_BUILD_ROOT%{_sysconfdir}/audit/rules.d
241
738da8d6
JR
242install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/auditd
243install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/auditd
bf2e6acc 244
54697230
JB
245install -d $RPM_BUILD_ROOT/%{_lib}
246mv -f $RPM_BUILD_ROOT%{_libdir}/libaudit.so.* $RPM_BUILD_ROOT/%{_lib}
fef538cf 247ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libaudit.so.*.*.*) \
1a8b063a 248 $RPM_BUILD_ROOT%{_libdir}/libaudit.so
8ba70267 249mv -f $RPM_BUILD_ROOT%{_libdir}/libauparse.so.* $RPM_BUILD_ROOT/%{_lib}
fef538cf 250ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libauparse.so.*.*.*) \
8ba70267 251 $RPM_BUILD_ROOT%{_libdir}/libauparse.so
54697230 252
738da8d6
JR
253# RH initscripts-specific
254%{__rm} -r $RPM_BUILD_ROOT%{_libexecdir}/initscripts
6c98eb8c 255
3c5110f4 256%if %{with python2}
68d62ac9
JB
257%py_comp $RPM_BUILD_ROOT%{py_sitedir}
258%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
738da8d6 259%py_postclean
487566eb 260%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/*.la
57f09668 261%endif
9ee6c1ce 262
659527ec 263%if %{with python3}
487566eb 264%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/*.la
2d0ad02a
JR
265%endif
266
54697230
JB
267%clean
268rm -rf $RPM_BUILD_ROOT
269
270%post libs -p /sbin/ldconfig
271%postun libs -p /sbin/ldconfig
272
273%post
738da8d6
JR
274# Copy default rules into place on new installation
275if [ ! -e %{_sysconfdir}/audit/audit.rules ] ; then
0167336b 276 cp -a %{_sysconfdir}/audit/rules.d/10-no-audit.rules %{_sysconfdir}/audit/audit.rules
738da8d6 277fi
54697230 278/sbin/chkconfig --add auditd
2a6b8c9c 279%service auditd restart "audit daemon"
7ede5762 280%systemd_post auditd.service
54697230
JB
281
282%preun
283if [ "$1" = "0" ]; then
2a6b8c9c 284 %service auditd stop
54697230
JB
285 /sbin/chkconfig --del auditd
286fi
9a3b9076
BZ
287%systemd_preun auditd.service
288
7ede5762
JR
289%postun
290%systemd_reload
291
487566eb
JB
292%triggerpostun -- audit < 3.0
293if [ -f %{_sysconfdir}/audisp/audisp-remote.conf.rpmsave -a ! -f %{_sysconfdir}/audit/audisp-remote.conf.rpmnew ]; then
294 mv -f %{_sysconfdir}/audit/audisp-remote.conf %{_sysconfdir}/audit/audisp-remote.conf.rpmnew
295 mv -f %{_sysconfdir}/audisp/audisp-remote.conf.rpmsave %{_sysconfdir}/audit/audisp-remote.conf
296fi
297if [ -f %{_sysconfdir}/audisp/plugins.d/af_unix.conf.rpmsave -a ! -f %{_sysconfdir}/audit/plugins.d/af_unix.conf.rpmnew ]; then
298 mv -f %{_sysconfdir}/audit/plugins.d/af_unix.conf %{_sysconfdir}/audit/plugins.d/af_unix.conf.rpmnew
299 mv -f %{_sysconfdir}/audisp/plugins.d/af_unix.conf.rpmsave %{_sysconfdir}/audit/plugins.d/af_unix.conf
300fi
301if [ -f %{_sysconfdir}/audisp/plugins.d/au-remote.conf.rpmsave -a ! -f %{_sysconfdir}/audit/plugins.d/au-remote.conf.rpmnew ]; then
302 mv -f %{_sysconfdir}/audit/plugins.d/au-remote.conf %{_sysconfdir}/audit/plugins.d/au-remote.conf.rpmnew
303 mv -f %{_sysconfdir}/audisp/plugins.d/au-remote.conf.rpmsave %{_sysconfdir}/audit/plugins.d/au-remote.conf
304fi
305if [ -f %{_sysconfdir}/audisp/plugins.d/syslog.conf.rpmsave -a ! -f %{_sysconfdir}/audit/plugins.d/syslog.conf.rpmnew ]; then
306 mv -f %{_sysconfdir}/audit/plugins.d/syslog.conf %{_sysconfdir}/audit/plugins.d/syslog.conf.rpmnew
307 mv -f %{_sysconfdir}/audisp/plugins.d/syslog.conf.rpmsave %{_sysconfdir}/audit/plugins.d/syslog.conf
308fi
309%if %{with zos_remote}
310if [ -f %{_sysconfdir}/audisp/zos-remote.conf.rpmsave -a ! -f %{_sysconfdir}/audit/zos-remote.conf.rpmnew ]; then
311 mv -f %{_sysconfdir}/audit/zos-remote.conf %{_sysconfdir}/audit/zos-remote.conf.rpmnew
312 mv -f %{_sysconfdir}/audisp/zos-remote.conf.rpmsave %{_sysconfdir}/audit/zos-remote.conf
313fi
314if [ -f %{_sysconfdir}/audisp/plugins.d/audisp-zos-remote.conf.rpmsave -a ! -f %{_sysconfdir}/audit/plugins.d/audisp-zos-remote.conf.rpmnew ]; then
315 mv -f %{_sysconfdir}/audit/plugins.d/audisp-zos-remote.conf %{_sysconfdir}/audit/plugins.d/audisp-zos-remote.conf.rpmnew
316 mv -f %{_sysconfdir}/audisp/plugins.d/audisp-zos-remote.conf.rpmsave %{_sysconfdir}/audit/plugins.d/audisp-zos-remote.conf
317fi
318%endif
319
54697230
JB
320%files
321%defattr(644,root,root,755)
a32d4fda 322%doc AUTHORS ChangeLog README THANKS rules/{README-rules,*.rules} init.d/auditd.cron
2bfdaebd 323%attr(750,root,root) %{_bindir}/aulast
08b12da9
JB
324%attr(750,root,root) %{_bindir}/aulastlog
325%attr(750,root,root) %{_bindir}/ausyscall
d80f3483 326%attr(750,root,root) %{_bindir}/auvirt
54697230
JB
327%attr(750,root,root) %{_sbindir}/auditctl
328%attr(750,root,root) %{_sbindir}/auditd
896d27e1 329%attr(750,root,root) %{_sbindir}/augenrules
e5a8c0d8 330%attr(750,root,root) %{_sbindir}/aureport
54697230
JB
331%attr(750,root,root) %{_sbindir}/ausearch
332%attr(750,root,root) %{_sbindir}/autrace
08b12da9 333%attr(755,root,root) %{_sbindir}/audisp-remote
487566eb
JB
334%attr(755,root,root) %{_sbindir}/audisp-syslog
335%{_libexecdir}/audit-functions
336%dir %{_datadir}/audit
337%{_datadir}/audit/sample-rules
7630c8d3 338%dir %{_sysconfdir}/audit
487566eb 339%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/audisp-remote.conf
9a4de669 340%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/audit-stop.rules
7630c8d3 341%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/auditd.conf
487566eb
JB
342%dir %{_sysconfdir}/audit/plugins.d
343%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/plugins.d/af_unix.conf
344%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/plugins.d/au-remote.conf
345%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/plugins.d/syslog.conf
896d27e1 346%dir %{_sysconfdir}/audit/rules.d
0167336b 347%attr(640,root,root) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/audit/rules.d/10-no-audit.rules
80475ae6 348%attr(754,root,root) /etc/rc.d/init.d/auditd
f6ae0a53 349%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/auditd
7ede5762 350%{systemdunitdir}/auditd.service
54697230 351%attr(750,root,root) %dir %{_var}/log/audit
08b12da9 352%{_mandir}/man5/audisp-remote.conf.5*
80475ae6 353%{_mandir}/man5/auditd.conf.5*
487566eb 354%{_mandir}/man5/auditd-plugins.5*
526a1f46 355%{_mandir}/man5/ausearch-expression.5*
693afa1c 356%{_mandir}/man7/audit.rules.7*
08b12da9 357%{_mandir}/man8/audisp-remote.8*
487566eb 358%{_mandir}/man8/audisp-syslog.8*
526a1f46
JB
359%{_mandir}/man8/auditctl.8*
360%{_mandir}/man8/auditd.8*
896d27e1 361%{_mandir}/man8/augenrules.8*
2bfdaebd 362%{_mandir}/man8/aulast.8*
526a1f46
JB
363%{_mandir}/man8/aulastlog.8*
364%{_mandir}/man8/aureport.8*
365%{_mandir}/man8/ausearch.8*
08b12da9 366%{_mandir}/man8/ausyscall.8*
526a1f46 367%{_mandir}/man8/autrace.8*
d80f3483 368%{_mandir}/man8/auvirt.8*
54697230 369
487566eb
JB
370%if %{with zos_remote}
371%attr(755,root,root) %{_sbindir}/audispd-zos-remote
372%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/zos-remote.conf
373%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/audit/plugins.d/audispd-zos-remote.conf
374%{_mandir}/man5/zos-remote.conf.5*
375%{_mandir}/man8/audispd-zos-remote.8*
376%endif
377
54697230
JB
378%files libs
379%defattr(644,root,root,755)
380%attr(755,root,root) /%{_lib}/libaudit.so.*.*.*
82313177 381%attr(755,root,root) %ghost /%{_lib}/libaudit.so.1
8ba70267 382%attr(755,root,root) /%{_lib}/libauparse.so.*.*.*
fef538cf 383%attr(755,root,root) %ghost /%{_lib}/libauparse.so.0
7630c8d3 384%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/libaudit.conf
693afa1c 385%{_mandir}/man5/libaudit.conf.5*
54697230
JB
386
387%files libs-devel
388%defattr(644,root,root,755)
389%attr(755,root,root) %{_libdir}/libaudit.so
8ba70267 390%attr(755,root,root) %{_libdir}/libauparse.so
54697230 391%{_libdir}/libaudit.la
8ba70267 392%{_libdir}/libauparse.la
6d3a6f20 393%{_includedir}/auparse*.h
54697230 394%{_includedir}/libaudit.h
49caa03e 395%{_pkgconfigdir}/audit.pc
2d0ad02a 396%{_pkgconfigdir}/auparse.pc
0167336b 397%{_aclocaldir}/audit.m4
526a1f46
JB
398%{_mandir}/man3/audit_*.3*
399%{_mandir}/man3/auparse_*.3*
400%{_mandir}/man3/ausearch_*.3*
401%{_mandir}/man3/get_auditfail_action.3*
402%{_mandir}/man3/set_aumessage_mode.3*
54697230
JB
403
404%files libs-static
405%defattr(644,root,root,755)
406%{_libdir}/libaudit.a
8ba70267 407%{_libdir}/libauparse.a
9ee6c1ce 408
49caa03e
JB
409%if %{with golang}
410%files -n golang-audit
411%defattr(644,root,root,755)
2d0ad02a
JR
412%dir %{_libdir}/golang/src/redhat.com
413%{_libdir}/golang/src/redhat.com/audit
49caa03e
JB
414%endif
415
3c5110f4 416%if %{with python2}
9ee6c1ce
JB
417%files -n python-audit
418%defattr(644,root,root,755)
419%attr(755,root,root) %{py_sitedir}/_audit.so
84214962 420%attr(755,root,root) %{py_sitedir}/auparse.so
4c11c375 421%{py_sitedir}/audit.py[co]
57f09668 422%endif
2d0ad02a
JR
423
424%if %{with python3}
425%files -n python3-audit
426%defattr(644,root,root,755)
427%attr(755,root,root) %{py3_sitedir}/_audit.so
428%attr(755,root,root) %{py3_sitedir}/auparse.so
429%{py3_sitedir}/audit.py
4faf4930 430%{py3_sitedir}/__pycache__/audit.cpython-*.py[co]
2d0ad02a 431%endif
This page took 0.144798 seconds and 4 git commands to generate.