# # spec file for package blog # # Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: blog Version: 2.34 %define sonum 2 Release: 1.1 Summary: Boot logging License: GPL-2.0-or-later Group: System/Base URL: https://github.com/bitstreamout/showconsole Source: https://github.com/bitstreamout/showconsole/archive/v%{version}.tar.gz#/showconsole-%{version}.tar.gz Source1: blog-rpmlintrc Patch0: blog-install.patch Patch1: blog-3215.patch BuildRequires: bash %if 0%{suse_version} >= 1550 # regenerate_initrd_post moved to rpm-config-SUSE:initrd.macros BuildRequires: rpm-config-SUSE >= 0.g11 %{regenerate_initrd_requires} %else Requires(post): /usr/bin/mkdir Recommends: suse-module-tools %endif Requires(post): coreutils BuildRoot: %{_tmppath}/%{name}-%{version}-build Provides: sysvinit-tools:/sbin/blogd Suggests: blog-plymouth = %{version} %description The blogd daemon determines the real underlying character device of /dev/console. Blogd spawns a pty/tty pair to reconnect the current /dev/console with the slave of the pty/tty pair. During writing information from this slave to the real character device a ring buffer is used to hold the information for writing it to an existing logging file. %package -n libblogger%{sonum} Summary: FIFO interface used by startproc Group: System/Libraries %if %sonum == 2 Provides: %{name}:%{_libdir}/libblogger.so.2 %endif %description -n libblogger%{sonum} The libaray for the FIFO interface used by the LSB startproc command. %package plymouth Summary: Replaces plymouth by blogd Group: System/Base Requires: blog = %{version} Requires: systemd Conflicts: plymouth Conflicts: plymouth-dracut %description plymouth The Blogd daemon can be used as a replacement for Plymouth in situations where a splash screen and/or usage of a frame buffer is unwanted. The Blogd is also a Plymouth agent. That means, it can handle requests for a password prompt by the system password service of systemd. The blogd daemon writes out boot log messages to every terminal device used by /dev/console and to the log file /var/log/boot.log. When halting or rebooting the system, it moves the log file to /var/log/boot.old and appends all log messages upto to point at which the file systems becomes unavailable. %package devel Summary: Provides library and header for boot logging Group: Development/Libraries/C and C++ Requires: libblogger%{sonum} = %{version} %description devel The libaray and the header file for the FIFO interface used to build the LSB startproc command. %prep %setup -q -n showconsole-%version %patch -P0 %patch -P1 for l in rt util pthread do ln -sf %{_libdir}/lib${l}.so.[0-9] lib${l}.so done %build make V=1 %{?_smp_mflags} CC="%__cc" \ LIBDIR=%{_libdir} \ INCDIR=%{_includedir} \ SYSDUNITS=%{_unitdir} \ BOOT_LOGFILE=%{_localstatedir}/log/boot.log \ BOOT_OLDLOGFILE=%{_localstatedir}/log/boot.old %install %make_install \ MANPATH=%{_mandir} \ INSTBINFLAGS="-m 0744" \ %if 0%{?suse_version} >= 1550 SBINDIR=%{_sbindir} \ %endif LIBDIR=%{_libdir} \ INCDIR=%{_includedir} \ SYSDUNITS=%{_unitdir} \ BOOT_LOGFILE=%{_localstatedir}/log/boot.log \ BOOT_OLDLOGFILE=%{_localstatedir}/log/boot.old rm %{buildroot}%{_unitdir}/systemd-ask-password-blog.service.wants/systemd-vconsole-setup.service %post -n libblogger%{sonum} -p /sbin/ldconfig %postun -n libblogger%{sonum} -p /sbin/ldconfig %post plymouth ln -sf ../systemd-vconsole-setup.service %{_unitdir}/systemd-ask-password-blog.service.wants/ test -x /bin/systemctl && /bin/systemctl daemon-reload >/dev/null 2>&1 || : %if 0%{suse_version} >= 1550 %{regenerate_initrd_post} %else ! command -v mkdir >/dev/null || mkdir -p /run/regenerate-initrd/ test ! -d /run/regenerate-initrd || > /run/regenerate-initrd/all %endif %postun plymouth test -x /bin/systemctl && /bin/systemctl daemon-reload >/dev/null 2>&1 || : %posttrans plymouth %if 0%{suse_version} >= 1550 %{regenerate_initrd_posttrans} %else if test -x /usr/lib/module-init-tools/regenerate-initrd-posttrans then /usr/lib/module-init-tools/regenerate-initrd-posttrans fi %endif %files %defattr(-,root,root) %license COPYING %doc README %if 0%{?suse_version} < 1550 /sbin/blogctl /sbin/blogd /sbin/blogger /sbin/isserial /sbin/setconsole /sbin/showconsole %else %{_sbindir}/blogctl %{_sbindir}/blogd %{_sbindir}/blogger %{_sbindir}/isserial %{_sbindir}/setconsole %{_sbindir}/showconsole %endif %doc %{_mandir}/man8/blogctl.8.gz %doc %{_mandir}/man8/blogd.8.gz %doc %{_mandir}/man8/blogger.8.gz %doc %{_mandir}/man8/isserial.8.gz %doc %{_mandir}/man8/setconsole.8.gz %doc %{_mandir}/man8/showconsole.8.gz %files -n libblogger%{sonum} %{_libdir}/libblogger.so.* %files devel %defattr(-,root,root) %{_includedir}/libblogger.h %{_libdir}/libblogger.so %files plymouth %defattr(-,root,root) %dir %{_prefix}/lib/dracut/ %dir %{_prefix}/lib/dracut/modules.d/ %dir %{_prefix}/lib/dracut/modules.d/99blog/ %dir %{_unitdir}/default.target.wants/ %dir %{_unitdir}/emergency.target.wants/ %dir %{_unitdir}/initrd-switch-root.target.wants/ %dir %{_unitdir}/rescue.target.wants/ %dir %{_unitdir}/sysinit.target.wants/ %dir %{_unitdir}/halt.target.wants/ %dir %{_unitdir}/reboot.target.wants/ %dir %{_unitdir}/poweroff.target.wants/ %dir %{_unitdir}/kexec.target.wants/ %dir %{_unitdir}/local-fs-pre.target.wants/ %dir %{_unitdir}/systemd-ask-password-blog.service.wants/ %{_prefix}/lib/dracut/modules.d/99blog/module-setup.sh %{_unitdir}/blog-halt.service %{_unitdir}/blog-kexec.service %{_unitdir}/blog-poweroff.service %{_unitdir}/blog-quit.service %{_unitdir}/blog-reboot.service %{_unitdir}/blog-store-messages.service %{_unitdir}/blog-switch-initramfs.service %{_unitdir}/blog-switch-root.service %{_unitdir}/blog-umount.service %{_unitdir}/blog.service %{_unitdir}/systemd-ask-password-blog.path %{_unitdir}/systemd-ask-password-blog.service %{_unitdir}/default.target.wants/blog-quit.service %{_unitdir}/emergency.target.wants/blog-quit.service %{_unitdir}/halt.target.wants/blog-halt.service %{_unitdir}/halt.target.wants/blog-switch-initramfs.service %{_unitdir}/initrd-switch-root.target.wants/blog-switch-root.service %{_unitdir}/initrd-switch-root.target.wants/blog.service %{_unitdir}/kexec.target.wants/blog-kexec.service %{_unitdir}/kexec.target.wants/blog-switch-initramfs.service %{_unitdir}/local-fs-pre.target.wants/blog-umount.service %{_unitdir}/poweroff.target.wants/blog-poweroff.service %{_unitdir}/poweroff.target.wants/blog-switch-initramfs.service %{_unitdir}/reboot.target.wants/blog-reboot.service %{_unitdir}/reboot.target.wants/blog-switch-initramfs.service %{_unitdir}/rescue.target.wants/blog-quit.service %{_unitdir}/sysinit.target.wants/blog-store-messages.service %{_unitdir}/sysinit.target.wants/blog.service %ghost %attr(0644,root,root) %{_unitdir}/systemd-ask-password-blog.service.wants/systemd-vconsole-setup.service %changelog * Thu Apr 17 2025 Dr. Werner Fink <werner@suse.de> - Add patch blog-3215.patch * Try to avoid blocking mode of 3215 console on s390x as holding the output at `MORE' stops blogd, that is that it can not see any messages over its socket like switch of the root file system. * Thu Apr 17 2025 Dr. Werner Fink <werner@suse.de> - Add patch blog-install.patch * Fixes install problems * Use module-setup.sh to install in BUILDROOT * Wed Apr 16 2025 Dr. Werner Fink <werner@suse.de> - Update to version 2.34 * Make it work on s390x (still no 3215 console) This is a bug fix release. But still no support in conmode 3215 as there is a race triggered by using conmode 3215. The order of the systemd units seems to change with this console mode. * Fri Apr 11 2025 Dr. Werner Fink <werner@suse.de> - Use rpm-config-SUSE instead of suse-module-tools for suse version above 1550 and add code for the missing macros for older distributions like leap 15.6 * Thu Apr 10 2025 Dr. Werner Fink <werner@suse.de> - The suse-module-tools are required at build otherwise blog is not in the initrd * Thu Apr 3 2025 Dr. Werner Fink <werner@suse.de> - Update to version 2.32 * Better 3270 console support, use uevent below /sys file system * Wed Apr 2 2025 Dr. Werner Fink <werner@suse.de> - Update to version 2.31 * Handel BS on password prompt as well * Drop spining code as systemd uses clear to end of line escape sequence (hard coded!) for its cylon lines. - blog: again suggest blog-plymouth * Mon Mar 31 2025 Dr. Werner Fink <werner@suse.de> - Update to version 2.30 * The asking variable is not shared * Allow password asking prompt to be repeated if empty. * Make spinner support UTF-8 multibyte conform. * Spinner lines of system still not handled. * Fri Mar 28 2025 Dr. Werner Fink <werner@suse.de> - Update to version 2.29 * Make sure that password prompt is seen Latest Use a temporary buffer to be silent during asking passwords. And stop system console output during password questions only if temporary buffer becomes short. As well as do coloring on /dev/ttysclp0 for S390. - Drop patch.patch as now upstream * Fri Mar 28 2025 Dr. Werner Fink <werner@suse.de> - Modify temporary patch patch.patch * Use a temporary buffer to be silent during asking passwords * Stop system console output during password questions only if temporary buffer becomes short * Thu Mar 27 2025 Dr. Werner Fink <werner@suse.de> - Add temporary patch named patch.patch * Stop system console output during password questions * Do coloring on /dev/ttysclp0 * Wed Mar 12 2025 Dr. Werner Fink <werner@suse.de> - blog: recommend blog-plymouth instead of only suggesting * More house advertising to make plymouth support of blogd more familiar and known by the users * Wed Nov 29 2023 Dr. Werner Fink <werner@suse.de> - Update to version 2.28 * UTMP support is gone, remove dependency also add support for initramfs at shutdown. * Mon Jul 10 2023 Dr. Werner Fink <werner@suse.de> - Fix big endian cast problems to be able to read commands and answers (blogctl) as well as passphrases (blogd) * Tue Dec 27 2022 Ludwig Nussel <lnussel@suse.com> - Replace transitional %%usrmerged macro with regular version check (boo#1206798) * Fri Dec 3 2021 Dr. Werner Fink <werner@suse.de> - Update to version 2.26 * On s390/x and PPC64 gcc misses unused arg0 - Remove patch fcb9e0c2.patch as now part of tar ball * Thu Dec 2 2021 Dr. Werner Fink <werner@suse.de> - Add upstream patch fcb9e0c2.patch * On s390/x and PPC64 gcc misses unused arg0 * Thu Dec 2 2021 Dr. Werner Fink <werner@suse.de> - Update to version 2.24 * Avoid install errror due missed directory * Thu Dec 2 2021 Dr. Werner Fink <werner@suse.de> - Update to version 2.22 * Avoid KillMode=none for newer systemd version as well as rework the systemd unit files of blog (boo#1186506) * Thu Sep 30 2021 Dr. Werner Fink <werner@suse.de> - Move to /usr for UsrMerge (boo#1191057) * Fri Apr 9 2021 Dr. Werner Fink <werner@suse.de> - Update to version 2.21 * Merge pull request #4 from samueldr/fix/makefile Fixup Makefile for better build system support * Silent new gcc compiler * Fri Apr 9 2021 Dr. Werner Fink <werner@suse.de> - Fix package split done for shared library packaging guideline (bsc#1184479). * Thu Jan 9 2020 Dr. Werner Fink <werner@suse.de> - Update to version 2.20 * Silent some gcc warnings, also avoid common variable (boo#1160385) * Include <sys/sysmacros.h> for makedev * sort input files (boo#1041090) * libconsole: never return empty list from getconsoles() * libconsole: Really allow to use /dev/console as a fallback in showconsole * libconsole: Add console into the list only when successfully allocated * libconsole: Correctly ignore early consoles - Remove obsolate patch blog-Remove-unused-header.patch * Fri Aug 30 2019 Bjørn Lie <bjorn.lie@gmail.com> - Add blog-Remove-unused-header.patch: Fix build with new glibc (gh#bitstreamout/showconsole#3). * Sat Apr 20 2019 Jan Engelhardt <jengelh@inai.de> - Implement shared library packaging guideline. * Thu Aug 2 2018 werner@suse.de - Update to version 2.19 which integrates the patches now removed: * sysmacros.patch * libconsole-Really-allow-to-use-dev-console-as-a-fall.patch * libconsole-never-return-empty-list-from-getconsoles.patch * showconsole-2.18.tar.gz * libconsole-Add-console-into-the-list-only-when-succe.patch * libconsole-Correctly-ignore-early-consoles.patch as well as the changes * Correct wants directory for systemd-ask-password-blog.service * Sort input files for reproducible builds * Wed Aug 1 2018 schwab@suse.de - sysmacros.patch: Include <sys/sysmacros.h> for makedev * Mon Mar 19 2018 kukuk@suse.de - Use %%license instead of %%doc [bsc#1082318] * Tue Dec 12 2017 pmladek@suse.com - hardening of the console list generation (bsc#1071568): * libconsole-never-return-empty-list-from-getconsoles.patch * libconsole-Really-allow-to-use-dev-console-as-a-fall.patch * libconsole-Add-console-into-the-list-only-when-succe.patch * libconsole-Correctly-ignore-early-consoles.patch * Mon Nov 6 2017 werner@suse.de - Change description of blog-plymouth in same manner as used by the release notes * Thu Apr 27 2017 werner@suse.de - Add coreutils as required by post scriptlet (boo#1036436) * Wed Jan 25 2017 werner@suse.de - Use github source from tagged version * Wed Jan 25 2017 werner@suse.de - Use https://github.com/bitstreamout/showconsole as URL * Thu Aug 11 2016 olaf@aepfle.de - Install binaries with read permissions (bnc#990837) * Mon Feb 22 2016 werner@suse.de - Do not use privata glibc API (boo#967437) but implement missing shared memory mkstemp() - Remove patch remove-bad-symbol-use.patch * Mon Feb 22 2016 schwab@suse.de - remove-bad-symbol-use.patch: Remove bad use of internal glibc interface (bnc#967437) * Fri Feb 19 2016 werner@suse.de - Make clear that blog is split off from sysvinit-tools - Avoid to be tagged with GLIBC_PRIVATE - Use libblogger.so with version, that is major and minor * Fri Feb 19 2016 werner@suse.de - Bug fix version: Handle chached password request gracefully * Wed Feb 10 2016 meissner@suse.com - add blog-rpmlintrc. The all-manual handling of systemd services is required according to Werner. * Thu Feb 4 2016 werner@suse.de - Let libblogger become a shared library * Fri Jan 22 2016 werner@suse.de - Clean up service uits for close and umount * Fri Jan 15 2016 werner@suse.de - First initial package after splitting apart from sysvinit * Now blogd can replace plymouth(9) even from initrd * Also blogd is able to handle password requests from from systemd API * The blogd daemon writes out console messages even on reboot or halt up to the file systems become unavailable. * No locking of the console devices, no frame buffer switching.