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
Version: 12.1
Release: 2%{?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: 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
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
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
mkdir -p %{buildroot}%{_localstatedir}/run
install -d -m 0755 %{buildroot}%{_localstatedir}/run/%{name}
%endif
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/%{name}.conf
%files
%{!?_licensedir:%global license %doc}
@ -88,27 +126,49 @@ 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
* 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
- Revert "Prevent infinite transfer loop on GDM login"
@ -118,15 +178,26 @@ rm -r %{buildroot}/usr/include/%{name}
- tlog-play: add journal namespace support.
- 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.
* Tue Jan 8 2021 Justin Stephenson <jstephen@redhat.com> - 10-1
- Release v10
- Correct suse rpmbuild
- Update debbuild for travis CI
* Thu Oct 15 2020 Justin Stephenson <jstephen@redhat.com> - 9-2
- Skip utmp removal with piped IO on stdin
* Thu Oct 15 2020 Justin Stephenson <jstephen@redhat.com> - 9-1
* Tue Oct 13 2020 Justin Stephenson <jstephen@redhat.com> - 9-1
- Release v9
- Add libutempter support
- Require journal match filter
@ -135,18 +206,27 @@ rm -r %{buildroot}/usr/include/%{name}
- Add "time" real clock timestamp message field
- Various upstream CI improvements
* Tue May 26 2020 Justin Stephenson <jstephen@redhat.com> - 8-2
- Test fixups from v8
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 8-3
- 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
- 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 <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
- Release v7
- 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 -