Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

11 changed files with 212 additions and 61 deletions

15
.gitignore vendored
View File

@ -1 +1,14 @@
SOURCES/tlog-12.1.tar.gz /tlog-2.tar.gz
/tlog-3.tar.gz
/tlog-4.tar.gz
/tlog-5.tar.gz
/tlog-6.tar.gz
/tlog-7.tar.gz
/tlog-8.tar.gz
/tlog-9.tar.gz
/tlog-10.tar.gz
/tlog-11.tar.gz
/tlog-12.tar.gz
/tlog-12.1.tar.gz
/tlog-13.tar.gz
/tlog-14.tar.gz

View File

@ -1 +1 @@
556c0c33d07c4191f6e14ab28b322c2300edef68 SOURCES/tlog-12.1.tar.gz 0c6f3cc5622164a60e5295176e7af8612eb09606 tlog-14.tar.gz

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
# recipients: jstephen, spoore
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (tlog-14.tar.gz) = 593d0d845b6b10de33094658160fb6d675d7f07493e5e3a84b20ea26154c56bb1f75a85805468bc061f0a14e305f6c2140e56e6cfa8e94d9849387d47f674ccd

1
tests/.fmf/version Normal file
View File

@ -0,0 +1 @@
1

11
tests/full_tests.yml Normal file
View File

@ -0,0 +1,11 @@
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
tests:
- tlogtests:
dir: scripts
run: ./run_tests.sh
required_packages:
- git

5
tests/provision.fmf Normal file
View File

@ -0,0 +1,5 @@
---
standard-inventory-qcow2:
qemu:
m: 4G
smp: cpus=4,sockets=4,maxcpus=16

20
tests/scripts/run_tests.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash -x
RETVAL=0
dnf -y install expect beakerlib make restraint-rhts
. /usr/share/beakerlib/beakerlib.sh
if rlIsRHEL '>=9'; then
dnf --enablerepo rhel-buildroot install python3-pytest -y
fi
git clone https://github.com/Scribery/tlog.git
pushd tlog/src/tlitest
./tlitest-setup
./tlitest-run --junit-xml=/tmp/artifacts/junit.xml $*
#./teltest-teardown
RETVAL=$(( RETVAL + $? ))
popd
exit $RETVAL

11
tests/tests.yml Normal file
View File

@ -0,0 +1,11 @@
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
tests:
- tlogtests:
dir: scripts
run: ./run_tests.sh -m tier1
required_packages:
- git

View File

@ -1,25 +1,80 @@
Name: tlog %global _hardened_build 1
Version: 12.1
Release: 2%{?dist}
Summary: Terminal I/O logger
License: GPLv2+ %if 0%{?rhel} && 0%{?rhel} < 7
URL: https://github.com/Scribery/%{name} # If it's RHEL6 and older
Source: https://github.com/Scribery/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz %bcond_with systemd
%else
BuildRequires: gcc %bcond_without systemd
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
%endif %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: 1%{?dist}
Summary: Terminal I/O logger
%if "%{_vendor}" == "debbuild"
# Required for Debian
Packager: Justin Stephenson <jstephen@redhat.com>
Group: admin
License: GPL-2.0+
%else
Group: Applications/System
License: GPLv2+
%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 %description
Tlog is a terminal I/O recording program similar to "script", but used in Tlog is a terminal I/O recording program similar to "script", but used in
@ -27,55 +82,38 @@ 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 shell afterwards. The recorded I/O can then be forwarded to a logging server
in JSON format. in JSON format.
%global _hardened_build 1
%prep %prep
%setup -q %setup -q
%build %build
# If it's not RHEL6 and older %configure --disable-rpath --disable-static --enable-utempter %{!?with_systemd:--disable-journal} --docdir=%{_defaultdocdir}/%{name}
%if 0%{?rhel} == 0 || 0%{?rhel} >= 7 %make_build
%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}
%check %check
make %{?_smp_mflags} check %make_build 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}
%install %install
make install DESTDIR=%{buildroot} %make_install
rm %{buildroot}/%{_libdir}/*.la rm %{buildroot}/%{_libdir}/*.la
# Remove development files as we're not doing a devel package yet # Remove development files as we're not doing a devel package yet
rm %{buildroot}/%{_libdir}/*.so rm %{buildroot}/%{_libdir}/*.so
rm -r %{buildroot}/usr/include/%{name} rm -r %{buildroot}/usr/include/%{name}
# If it's not RHEL6 and older %if %{with systemd}
%if 0%{?rhel} == 0 || 0%{?rhel} >= 7
# Create tmpfiles.d configuration for the lock dir # Create tmpfiles.d configuration for the lock dir
mkdir -p %{buildroot}%{_tmpfilesdir} mkdir -p %{buildroot}%{_tmpfilesdir}
{ {
echo "# Type Path Mode UID GID Age Argument" echo "# Type Path Mode UID GID Age Argument"
echo "d /run/%{name} 0755 %{name} %{name}" echo "d /run/%{name} 0755 %{name} %{name}"
} > %{buildroot}%{_tmpfilesdir}/%{name}.conf } > %{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, if it's RHEL6 or older
%else %else
# Create the lock dir # Create the lock dir
mkdir -p %{buildroot}%{_localstatedir}/run mkdir -p %{buildroot}%{_localstatedir}/run
install -d -m 0755 %{buildroot}%{_localstatedir}/run/%{name} install -d -m 0755 %{buildroot}%{_localstatedir}/run/%{name}
%endif %endif
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/%{name}.conf
%files %files
%{!?_licensedir:%global license %doc} %{!?_licensedir:%global license %doc}
@ -88,27 +126,49 @@ rm -r %{buildroot}/usr/include/%{name}
%{_datadir}/%{name} %{_datadir}/%{name}
%{_mandir}/man5/* %{_mandir}/man5/*
%{_mandir}/man8/* %{_mandir}/man8/*
# If it's not RHEL6 and older %if %{with systemd}
%if 0%{?rhel} == 0 || 0%{?rhel} >= 7 %{_tmpfilesdir}/%{name}.conf
%config(noreplace) %{_tmpfilesdir}/%{name}.conf
%dir %attr(-,%{name},%{name}) /run/%{name}
# Else if it's RHEL6 or older
%else %else
# If it's RHEL6 and older
%dir %attr(-,%{name},%{name}) %{_localstatedir}/run/%{name} %dir %attr(-,%{name},%{name}) %{_localstatedir}/run/%{name}
%endif %endif
%dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/%{name}-rec.conf %config(noreplace) %{_sysconfdir}/%{name}/%{name}-rec.conf
%config(noreplace) %{_sysconfdir}/%{name}/%{name}-rec-session.conf %config(noreplace) %{_sysconfdir}/%{name}/%{name}-rec-session.conf
%config(noreplace) %{_sysconfdir}/%{name}/%{name}-play.conf %config(noreplace) %{_sysconfdir}/%{name}/%{name}-play.conf
%{_sysusersdir}/%{name}.conf
%pre
%sysusers_create_compat %{SOURCE1}
%post %post
/sbin/ldconfig /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 %postun
/sbin/ldconfig /sbin/ldconfig
%changelog %changelog
* Mon May 23 2022 Justin Stephenson <jstephen@redhat.com> - 12.1 * Wed Feb 07 2024 Justin Stephenson <jstephen@redhat.com> - 14-1
- Release v14
- configure: correctly handle systemd versions before 245
* Fri Jul 14 2023 Justin Stephenson <jstephen@redhat.com> - 13-2
- Provide a sysusers.d file to get user() and group() provides
(see https://fedoraproject.org/wiki/Changes/Adopting_sysusers.d_format).
* Mon Apr 17 2023 Justin Stephenson <jstephen@redhat.com> - 13-1
- Update the Fedora license
- MAN: Add missing comma in tlog-rec-session.conf
* Thu Apr 21 2022 Justin Stephenson <jstephen@redhat.com> - 12.1
- Exit transfer loop when output fd is closed - Exit transfer loop when output fd is closed
- Revert "Prevent infinite transfer loop on GDM login" - Revert "Prevent infinite transfer loop on GDM login"
@ -118,15 +178,26 @@ rm -r %{buildroot}/usr/include/%{name}
- tlog-play: add journal namespace support. - tlog-play: add journal namespace support.
- tlitest: extend delay for limit-action delay test. - tlitest: extend delay for limit-action delay test.
* Tue Apr 27 2021 Justin Stephenson <jstephen@redhat.com> - 11-1 * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 11-5
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com>
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 11-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jan 19 2021 Justin Stephenson <jstephen@redhat.com> - 11-1
- Release v11
- Fire SIGCHLD after utempter_add_record since it probably eats it. - Fire SIGCHLD after utempter_add_record since it probably eats it.
* Tue Jan 8 2021 Justin Stephenson <jstephen@redhat.com> - 10-1
- Release v10
- Correct suse rpmbuild - Correct suse rpmbuild
- Update debbuild for travis CI - Update debbuild for travis CI
* Thu Oct 15 2020 Justin Stephenson <jstephen@redhat.com> - 9-2 * Tue Oct 13 2020 Justin Stephenson <jstephen@redhat.com> - 9-1
- Skip utmp removal with piped IO on stdin
* Thu Oct 15 2020 Justin Stephenson <jstephen@redhat.com> - 9-1
- Release v9 - Release v9
- Add libutempter support - Add libutempter support
- Require journal match filter - Require journal match filter
@ -135,18 +206,27 @@ rm -r %{buildroot}/usr/include/%{name}
- Add "time" real clock timestamp message field - Add "time" real clock timestamp message field
- Various upstream CI improvements - Various upstream CI improvements
* Tue May 26 2020 Justin Stephenson <jstephen@redhat.com> - 8-2 * Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 8-3
- Test fixups from v8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu May 21 2020 Justin Stephenson <jstephen@redhat.com> - 8-1 * Fri May 22 2020 Justin Stephenson <jstephen@redhat.com> - 8-2
- Minor test fixups
* Tue May 19 2020 Justin Stephenson <jstephen@redhat.com> - 8-1
- Release v8 - Release v8
- Spec file fixes for EL6 - Spec file fixes for EL6
- Spec file improvements for Debian/Ubuntu pkg-config - Spec file improvements for Debian/Ubuntu pkg-config
- Tlog-play improve authentication options - Tlog-play improve authentication options
- Handle piped in I/O from stdin and improve the main recording transfer exit - Handle piped in I/O from stdin and improve the main recording
condition. transfer exit condition.
- Use empty string on hostname resolution failure - Use empty string on hostname resolution failure
* Tue Apr 21 2020 Björn Esser <besser82@fedoraproject.org> - 7-3
- Rebuild (json-c)
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Nov 12 2019 Justin Stephenson <jstephen@redhat.com> - 7-1 * Tue Nov 12 2019 Justin Stephenson <jstephen@redhat.com> - 7-1
- Release v7 - Release v7
- Allow tlog-play redirection of stdout - Allow tlog-play redirection of stdout

2
tlog.sysusers Normal file
View File

@ -0,0 +1,2 @@
u tlog - "Tlog terminal I/O logger" /run/tlog /sbin/nologin
g tlog -