diff --git a/.gitignore b/.gitignore index c9ec122..6dd7f68 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/tlog-14.tar.gz +tlog-14.tar.gz diff --git a/sources b/sources new file mode 100644 index 0000000..0064733 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (tlog-14.tar.gz) = 593d0d845b6b10de33094658160fb6d675d7f07493e5e3a84b20ea26154c56bb1f75a85805468bc061f0a14e305f6c2140e56e6cfa8e94d9849387d47f674ccd diff --git a/SPECS/tlog.spec b/tlog.spec similarity index 69% rename from SPECS/tlog.spec rename to tlog.spec index a812b6b..bc6d70b 100644 --- a/SPECS/tlog.spec +++ b/tlog.spec @@ -1,25 +1,80 @@ -Name: tlog -Version: 14 -Release: 1%{?dist} -Summary: Terminal I/O logger +%global _hardened_build 1 -License: GPLv2+ -URL: https://github.com/Scribery/%{name} -Source: https://github.com/Scribery/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz - -BuildRequires: gcc -BuildRequires: json-c-devel -BuildRequires: curl-devel -BuildRequires: m4 -BuildRequires: libutempter-devel -# If it's not RHEL6 and older -%if 0%{?rhel} == 0 || 0%{?rhel} >= 7 -BuildRequires: systemd-devel -BuildRequires: systemd-units +%if 0%{?rhel} && 0%{?rhel} < 7 +# If it's RHEL6 and older +%bcond_with systemd +%else +%bcond_without systemd %endif -Requires(post): sed -Requires(postun): sed +%if "%{_vendor}" == "debbuild" +# Set values to make debian builds work well +%global _defaultdocdir /usr/share/doc/%{name} +%global _buildshell /bin/bash +%global _lib lib/%(%{__dpkg_architecture} -qDEB_HOST_MULTIARCH) +%endif + +# Compatibility macros +%{!?_tmpfilesdir:%global _tmpfilesdir %{_prefix}/lib/tmpfiles.d} +%{!?make_build:%global make_build %{__make} %{?_smp_mflags}} + +Name: tlog +Version: 14 +Release: 2%{?dist} +Summary: Terminal I/O logger + +%if "%{_vendor}" == "debbuild" +# Required for Debian +Packager: Justin Stephenson +Group: admin +License: GPL-2.0+ +%else +Group: Applications/System +License: GPL-2.0-or-later +%endif + +URL: https://github.com/Scribery/%{name} +Source0: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source1: tlog.sysusers + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: m4 +BuildRequires: gcc +BuildRequires: make + +%if "%{_vendor}" == "debbuild" +BuildRequires: libjson-c-dev +BuildRequires: libcurl4-gnutls-dev +BuildRequires: libutempter-dev +# Debian/Ubuntu doesn't automatically pull this in... +BuildRequires: pkg-config + +%if %{with systemd} +BuildRequires: libsystemd-dev +# Expanded form of systemd_requires macro +Requires: systemd-sysv +Requires(preun): systemd +Requires(post): systemd +Requires(postun): systemd +%{?sysusers_requires_compat} +%endif + +%else +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(libcurl) +%if %{defined suse_version} +BuildRequires: utempter-devel +%else +BuildRequires: libutempter-devel +%endif + +%if %{with systemd} +BuildRequires: pkgconfig(libsystemd) +%{?systemd_requires} +%endif +%endif %description Tlog is a terminal I/O recording program similar to "script", but used in @@ -27,49 +82,31 @@ place of a user's shell, starting the recording and executing the real user's shell afterwards. The recorded I/O can then be forwarded to a logging server in JSON format. -%global _hardened_build 1 - %prep %setup -q %build -# If it's not RHEL6 and older -%if 0%{?rhel} == 0 || 0%{?rhel} >= 7 -%configure --disable-rpath --disable-static --enable-utempter -# Else, if it's RHEL6 or older -%else -%configure --disable-rpath --disable-static --disable-journal -%endif -make %{?_smp_mflags} +%configure --disable-rpath --disable-static --enable-utempter %{!?with_systemd:--disable-journal} --docdir=%{_defaultdocdir}/%{name} +%make_build %check -make %{?_smp_mflags} check - -%pre -getent group %{name} >/dev/null || - groupadd -r %{name} -getent passwd %{name} >/dev/null || - useradd -r -g %{name} -d %{_localstatedir}/run/%{name} -s /sbin/nologin \ - -c "Tlog terminal I/O logger" %{name} +%make_build check %install -make install DESTDIR=%{buildroot} +%make_install rm %{buildroot}/%{_libdir}/*.la + # Remove development files as we're not doing a devel package yet rm %{buildroot}/%{_libdir}/*.so rm -r %{buildroot}/usr/include/%{name} -# If it's not RHEL6 and older -%if 0%{?rhel} == 0 || 0%{?rhel} >= 7 +%if %{with systemd} # Create tmpfiles.d configuration for the lock dir mkdir -p %{buildroot}%{_tmpfilesdir} { echo "# Type Path Mode UID GID Age Argument" echo "d /run/%{name} 0755 %{name} %{name}" } > %{buildroot}%{_tmpfilesdir}/%{name}.conf - # Create the lock dir - mkdir -p %{buildroot}/run - install -d -m 0755 %{buildroot}/run/%{name} # Else, if it's RHEL6 or older %else # Create the lock dir @@ -77,6 +114,8 @@ rm -r %{buildroot}/usr/include/%{name} install -d -m 0755 %{buildroot}%{_localstatedir}/run/%{name} %endif +install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/%{name}.conf + %files %{!?_licensedir:%global license %doc} %license COPYING @@ -88,53 +127,96 @@ rm -r %{buildroot}/usr/include/%{name} %{_datadir}/%{name} %{_mandir}/man5/* %{_mandir}/man8/* -# If it's not RHEL6 and older -%if 0%{?rhel} == 0 || 0%{?rhel} >= 7 -%config(noreplace) %{_tmpfilesdir}/%{name}.conf -%dir %attr(-,%{name},%{name}) /run/%{name} -# Else if it's RHEL6 or older +%if %{with systemd} +%{_tmpfilesdir}/%{name}.conf %else +# If it's RHEL6 and older %dir %attr(-,%{name},%{name}) %{_localstatedir}/run/%{name} %endif %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/%{name}-rec.conf %config(noreplace) %{_sysconfdir}/%{name}/%{name}-rec-session.conf %config(noreplace) %{_sysconfdir}/%{name}/%{name}-play.conf +%{_sysusersdir}/%{name}.conf + +%pre +%sysusers_create_compat %{SOURCE1} %post /sbin/ldconfig +%if 0%{?el7} || 0%{?suse_version} >= 1315 +# For RHEL7 and SUSE Linux distributions, creation doesn't happen automatically +%tmpfiles_create %{name}.conf +%endif +%if 0%{?ubuntu} || 0%{?debian} +# For Debian/Ubuntu, creation doesn't happen automatically +systemd-tmpfiles --create %{name}.conf >/dev/null 2>&1 || : +%endif %postun /sbin/ldconfig %changelog -* Wed Feb 07 2024 Justin Stephenson - 14-1 +* Mon Jun 24 2024 Troy Dawson - 14-2 +- Bump release for June 2024 mass rebuild + +* Tue Feb 06 2024 Justin Stephenson - 14-1 - Release v14 - configure: correctly handle systemd versions before 245 -* Mon Apr 17 2023 Justin Stephenson - 13-1 +* Sat Jan 27 2024 Fedora Release Engineering - 13-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 13-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jul 14 2023 Justin Stephenson - 13-2 +- Provide a sysusers.d file to get user() and group() provides + (see https://fedoraproject.org/wiki/Changes/Adopting_sysusers.d_format). + +* Fri Apr 14 2023 Justin Stephenson - 13-1 +- Release v13 - Update the Fedora license - MAN: Add missing comma in tlog-rec-session.conf -* Mon May 23 2022 Justin Stephenson - 12.1 +* Sat Jan 21 2023 Fedora Release Engineering - 12.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 12.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Apr 20 2022 Justin Stephenson - 12.1 - Exit transfer loop when output fd is closed - Revert "Prevent infinite transfer loop on GDM login" -* Wed Nov 17 2021 Justin Stephenson - 12-1 +* Sat Jan 22 2022 Fedora Release Engineering - 12-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Nov 16 2021 Justin Stephenson - 12-1 - Release v12 - Prevent infinite transfer loop on GDM login. - tlog-play: add journal namespace support. - tlitest: extend delay for limit-action delay test. -* Tue Apr 27 2021 Justin Stephenson - 11-1 +* Fri Jul 23 2021 Fedora Release Engineering - 11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jul 10 2021 Björn Esser - 11-3 +- Rebuild for versioned symbols in json-c + +* Wed Jan 27 2021 Fedora Release Engineering - 11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jan 19 2021 Justin Stephenson - 11-1 +- Release v11 - Fire SIGCHLD after utempter_add_record since it probably eats it. + +* Fri Jan 8 2021 Justin Stephenson - 10-1 +- Release v10 - Correct suse rpmbuild - Update debbuild for travis CI -* Thu Oct 15 2020 Justin Stephenson - 9-2 -- Skip utmp removal with piped IO on stdin - -* Thu Oct 15 2020 Justin Stephenson - 9-1 +* Tue Oct 13 2020 Justin Stephenson - 9-1 - Release v9 - Add libutempter support - Require journal match filter @@ -143,18 +225,27 @@ rm -r %{buildroot}/usr/include/%{name} - Add "time" real clock timestamp message field - Various upstream CI improvements -* Tue May 26 2020 Justin Stephenson - 8-2 -- Test fixups from v8 +* Wed Jul 29 2020 Fedora Release Engineering - 8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild -* Thu May 21 2020 Justin Stephenson - 8-1 +* Fri May 22 2020 Justin Stephenson - 8-2 +- Minor test fixups + +* Tue May 19 2020 Justin Stephenson - 8-1 - Release v8 - Spec file fixes for EL6 - Spec file improvements for Debian/Ubuntu pkg-config - Tlog-play improve authentication options -- Handle piped in I/O from stdin and improve the main recording transfer exit - condition. +- Handle piped in I/O from stdin and improve the main recording + transfer exit condition. - Use empty string on hostname resolution failure +* Tue Apr 21 2020 Björn Esser - 7-3 +- Rebuild (json-c) + +* Fri Jan 31 2020 Fedora Release Engineering - 7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Tue Nov 12 2019 Justin Stephenson - 7-1 - Release v7 - Allow tlog-play redirection of stdout diff --git a/tlog.sysusers b/tlog.sysusers new file mode 100644 index 0000000..d805593 --- /dev/null +++ b/tlog.sysusers @@ -0,0 +1,2 @@ +u tlog - "Tlog terminal I/O logger" /run/tlog /sbin/nologin +g tlog -