diff --git a/.gitignore b/.gitignore index efdbd68..d76bc40 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /tlog-7.tar.gz /tlog-8.tar.gz /tlog-9.tar.gz +/tlog-10.tar.gz diff --git a/sources b/sources index 3e295a6..9b0dacd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (tlog-9.tar.gz) = 7ffcc34d0d84238e33cd4207a3268955551a4e47e230186c5f6ac985e72024c9bc78bf3bbeb7c8c592ba32ce8c0385d591d44ce035d2cdd009897039df1f5160 +SHA512 (tlog-10.tar.gz) = a70596d5a492678bea55a00e91b6fa0f6a55a7a7c3bf256351975807d9137f6647f9f35ea5d6867399d9fae4a4d84eda473c4a6740a04e34fb0c8898bfbbbdc1 diff --git a/tlog-6.tar.gz b/tlog-6.tar.gz deleted file mode 100644 index f73342d..0000000 Binary files a/tlog-6.tar.gz and /dev/null differ diff --git a/tlog.spec b/tlog.spec index ad9bf3f..58be218 100644 --- a/tlog.spec +++ b/tlog.spec @@ -1,24 +1,78 @@ -Name: tlog -Version: 9 -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 -# 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: 10 +Release: 1%{?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: GPLv2+ +%endif + +URL: https://github.com/Scribery/%{name} +Source: %{url}/releases/download/v%{version}/%{name}-%{version}.tar.gz + +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 +%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 @@ -26,49 +80,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 -# 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 @@ -87,12 +123,10 @@ 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} @@ -100,8 +134,23 @@ rm -r %{buildroot}/usr/include/%{name} %config(noreplace) %{_sysconfdir}/%{name}/%{name}-rec-session.conf %config(noreplace) %{_sysconfdir}/%{name}/%{name}-play.conf +%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} + %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