Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

blog-devel-2.47-1.2 RPM for x86_64

From OpenSuSE Tumbleweed for x86_64

Name: blog-devel Distribution: openSUSE Tumbleweed
Version: 2.47 Vendor: openSUSE
Release: 1.2 Build date: Wed Jul 15 14:29:23 2026
Group: Development/Libraries/C and C++ Build host: reproducible
Size: 657 Source RPM: blog-2.47-1.2.src.rpm
Packager: https://bugs.opensuse.org
Url: https://github.com/bitstreamout/showconsole
Summary: Provides library and header for boot logging
The libaray and the header file for the FIFO interface used to build
the LSB startproc command.

Provides

Requires

License

GPL-2.0-or-later

Changelog

* Wed Jul 15 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.47
    This addresses several race conditions, file descriptor leaks, and
    architectural issues regarding virtual terminal (VT) handling in blogd.
    * VT Encapsulation: Extracted all kernel-specific terminal ioctls and
    macros (e.g., KD_GRAPHICS, KD_TEXT) into a dedicated vt.c module.
    Added clean abstractions like vt_is_graphics(), vt_is_text(), and
    vt_set_text_mode() to decouple blogd.c and console.c from kernel headers.
    * List Management & FD Leaks: Fixed dynamic VT allocation in console.c.
    By resetting the console pointer to NULL before consalloc() and
    explicitly searching the doubly linked list for the target device ID
    afterward, we ensure the exact newly allocated terminal node is referenced.
    This fixes incorrect node assignments and prevents file descriptor leaks.
    * Smart VT Switching: Optimized the password prompt logic. If the
    currently active VT is a text console, the prompt is displayed there
    directly without unnecessary context switches. If the active VT is
    running a GUI (X11/Wayland), it safely switches to a newly allocated
    text VT and returns afterward.
    * EBUSY Race Condition: The child process now explicitly closes the
    temporary VT file descriptor before initiating the vt_switch back to
    the original console. This allows the parent process to safely perform
    vt_disallocate without encountering EBUSY kernel errors.
    * Timeout Handling: Replaced the infinite wait loop in request_tty()
    (tty.c) with a safe 2000ms timeout via can_read(). This prevents the
    daemon from hanging indefinitely on locked terminals and allowed the
    removal of error-prone alarm() signal hacks.
    * Lifecycle Management: Ensured newly allocated dynamic VTs are properly
    initialized via consinitIO() and reliably deallocated upon daemon
    exit (lcons_shutdown).
    Fix epoll EEXIST crash and prevent infinite waits on busy terminals
    This also addresses two critical edge cases that could cause the blogd
    daemon to either crash or hang during concurrent or blocked prompt requests.
    Key changes:
    * epoll.c: Prevent an `EEXIST` crash in `epoll_addition()`. If a file
    descriptor is already registered in the watch list, the daemon now
    gracefully updates it using `EPOLL_CTL_MOD` instead of blindly calling
    `EPOLL_CTL_ADD`. This makes the socket handling robust against rapid,
    overlapping client requests.
    * console.c: Add a 2-second deadline (`alarm(2)`) around the `request_tty()`
    call inside the password-prompt child process. Previously, if a terminal
    was exclusively locked (e.g. by an X11 server returning EPERM), the child
    would fall into an infinite inotify wait-loop. With the timeout, the child
    now dies cleanly, allowing the parent's reaping logic to properly cancel
    the prompt and send an ANSWER_ENQ (abort) to the waiting client.
* Thu Jul 09 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.46
    Implement Plymouth-compatible display-message and hide-message commands
    This commit adds support for the display-message and hide-message
    Plymouth commands, allowing external tools to print status updates
    directly to the boot console via blogctl.
    Key changes:
      Add MAGIC_SHOW_MSG and MAGIC_HIDE_MSG protocols to blogctl and
      parse the --text= argument using getopt_long_only().
      Broadcast display-message payloads to all active hardware consoles
      via c->out() to ensure immediate visual feedback, while simultaneously
      logging it to /var/log/boot.log via copylog().
      Add \r\n line endings to printed messages to prevent the staircase
      effect on serial terminals operating in raw mode.
      Handle hide-message as a visual no-op (replying with an ACK only)
      to deliberately avoid ANSI clear-screen sequences that would corrupt
      the output on line-based, half-duplex consoles like the s390x 3215.
      Update the blogctl.8 manual page to document the new commands and
      their specific behavior regarding screen clearing.
    Implement Plymouth-compatible ask-for-password and ask-question commands
    This commit extends blogctl to act as a lightweight, fully functional
    replacement for Plymouth's interactive prompt commands, allowing scripts
    to securely ask for passwords or questions on the system console.
    Key changes:
      Add support for ask-for-password and ask-question in blogctl.
      Use getopt_long_only() to robustly parse GNU-style long options
      (--prompt, --command, --number-of-tries, --dont-pause-progress).
      Offload the retry-loop and command execution (popen) entirely to
      the blogctl client, keeping the blogd daemon simple and secure.
      Fix an epoll EEXIST crash in console.c by separating the daemon's
      process state (asking) from the requested prompt type (ask_mode),
      resolving a race condition during socket handler registration.
      Comply strictly with the Plymouth protocol: enforce 1-byte prompt
      length limits, handle little-endian length headers (le32toh),
      and ensure null-terminated payloads via asprintf.
      Update the blogctl.8 manual page to document the new commands.
    Back to use constructor for initial seed
    for the process lifetime and inherited across fork()
    Make tty wait logic real and fix SIGHUP/inotify cleanup
    Better in-memory reversible obfuscation for cached passwords
    This is not cryptographic protection against a memory-reading attacker.
    It is only meant to avoid trivial/plaintext exposure in memory.
    Fix resource leaks and harden IPC validations
    This commit addresses several issues found by static code analysis,
    focusing on memory hygiene, file descriptor management, and robust
    error handling.
    Key changes:
      Fix memory and file descriptor leaks in error paths (proc.c, shm.c, tty.c)
      and ensure all pending coldstart requests are freed on shutdown.
      Harden the systemd ask-password interface by adding boundary checks
      for UNIX socket paths, verifying sendto payloads, and gracefully
      handling missing directories during early boot without fatal errors.
      Improve IPC protocol safety by strictly validating the MAGIC_CHROOT
      argument (must be an absolute path) and sending an explicit NACK on failure.
      Prevent stale terminal states on s390x by clearing the VMCP cache
      prior to parsing a new QUERY TERMINAL reply.
    User the --wait option of the blogctl quit command
    Add an --wait option specially for quit of blogctl
    Fix gh##7
    setting blog.silent=true causes it to be non-silent
    Make shared library a executable
    Refactor daemon to use synchronous signalfd and epoll event loop
    This commit migrates the core architecture from traditional, asynchronous
    signal handling to a modern, synchronous event loop using signalfd. By
    integrating signal handling directly into the epoll multiplexer, we eliminate
    race conditions, unexpected EINTR interruptions during I/O operations, and
    complex reentrancy issues.
    Key changes:
      Add setup_signalfd() to block essential signals (SIGINT, SIGQUIT, SIGTERM,
      SIGSYS, SIGIO, SIGCHLD) globally and route them through a dedicated file
      descriptor monitored by epoll.
      Shield epoll_pwait() using a fully populated signal mask (omask) to
      guarantee uninterrupted I/O processing.
      Prevent socket handlers (MAGIC_SYS_INIT, MAGIC_CLOSE) from accidentally
      unblocking signals and resetting dispositions when signalfd is active.
      Sanitize the inherited signal mask in forked child processes
      (e.g., systemd password prompts on tty) by resetting it to an empty
      mask via sigprocmask(), ensuring agents run without restrictions.
      Replace the ALIGNED_SIZEOF macro with a cleaner align_up(type, boundary)
      macro and fix memset() sizes to correctly zero out trailing padding bytes.
      Update the Makefile to compile a stripped-down fallback object
      (signals_stripped.o compiled with -DNO_SIGNALFD) to ensure the passive
      libblogger.so library remains unaffected by the signalfd architecture.
    Some minor changes in quit and umount unit services
    The HVC consoles are like sclp console
    and can do colours as well
* Mon Jul 06 2026 Dr. Werner Fink <werner@suse.de>
  - Silent some rpmlint warnings
* Thu Jul 02 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.45
    Fix early boot LUKS prompt on s390x and resolve memory corruptions
    This update addresses several critical issues in the early boot phase,
    especially on s390x architectures, and hardens the daemon's architecture:
    - Initrd/Dracut: Properly include `systemd-ask-password-blog.path` in
      sysinit.target.wants during the initrd phase to ensure LUKS password
      prompts are captured early in the zipl phase.
    - Systemd Units: Drop restrictive `ConditionKernelCommandLine=!plymouth.enable=0`
      to prevent the agent from being disabled by standard mainframe boot parameters.
    - Memory Corruption: Fix a critical heap corruption by renaming the conflicting
      `alignof()` macro to `ALIGNED_SIZEOF()` and zeroing allocated memory for
      `struct request` (memset) to prevent reading uninitialized pointers #5.
    - Kernel Command Line: Improve `parse_cmdline()` to support boolean parameters
      without an explicit value (e.g., `blog.silent` defaults to `blog.silent=1`).
    - New Features: Introduce `blog.silent` to suppress console I/O and `blog.coldboot`
      to explicitly trigger the early coldstart password query.
    - Lifecycle: Switch `KillMode=none` to `KillMode=mixed` to comply with modern
      systemd process lifecycle management.
    Fixes: gh#bitstreamout/showconsole#5
    Fixes: gh#bitstreamout/showconsole#6
    Fixes: bsc#1264176
* Tue Jun 30 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.44
    Harden blog and use shims units to handle plymouth
    Disable coldstart requests via epoll
    Avoid handling fd twice in epoll loop
* Mon Jun 29 2026 Dr. Werner Fink <werner@suse.de>
  - Correct latest changes of 2.43
* Thu Jun 25 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.43
    Make sure that if blog is running it is identified as plymouth Latest
    also add conflicts to systemd-ask-password-console units in the
    systemd-ask-password-blog units. This should avoid conflicting password
    agents asking the same question in s390x.
* Mon Jun 22 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.42
    Fix possible memory leaks, eliminate type punning, and resolve I/O blocking
    This update implements a series of systemic improvements to stability,
    security, and performance:
    1. Memory Safety & Leak Resolution:
    - Implemented lcons_shutdown destructor to automatically purge the console
      list and close FDs on exit.
    - Fixed password buffer leak by using in closeIO, correctly matching
      the mmap allocation in shm_malloc.
    - Added cleanup for pwprompt in closeIO.
    2. Elimination of Dangerous Type Punning:
    - Replaced the unreliable &cons->node pattern with a type-safe list_t lcons
      sentinel across the codebase.
    - Added __attribute__((may_alias)) to list_t in listing.h to prevent
      compiler strict aliasing optimizations from corrupting list traversals.
    3. I/O Responsiveness & Stability:
    - Removed tcdrain() from the high-frequency epoll_console_in path to
      eliminate daemon freezes during heavy output.
    - Updated consinitIO to ensure CON_SERIAL devices remain in O_NONBLOCK
      mode, preventing freezes on slow serial lines.
    - Extended the tcdrain skip-list in closeIO to include CON_SERIAL, ensuring
      a hang-free shutdown.
    4. Architectural Improvements:
    - Redesigned shm_malloc to use a tiered mapping strategy: prefers
      file-backed shared memory in /dev/shm with a graceful fallback
      to MAP_ANONYMOUS.
    - Optimized listing.h with always_inline attributes, __builtin_prefetch
      for cache efficiency, and list poisoning for safer debugging.
* Fri Jun 19 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.41
    * The __attribute__((noreturn)) for error() in libconsole.h added
    * The variable err with 0 initialized in thread_poll()
    * The variable cp.parity with {0} initialized in readpw()
    * feat(blogd): handle pending systemd password requests on coldstart
    * Initialize console pointer list as well
    * Check peer credentials before reading command
    * Make isinteger() string check usable for all architectures
    * Add some comments about warnings and translation for S390
* Fri Apr 24 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.40
    * Protect password data stream on 3270 console as well
      On S390 the 3270 console is also logged and the passwords,
      even if hidden on the 3270 console, would be logged as well.
* Wed Apr 22 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.39
    * New feature to protect passwords to be logged
      On S390 now blogd use for 3215 console the command
      [#]CP SPOOL CONSOLE STOP
      to stop logging the plain password at prompting for the password.
      Also a warning is written out to warn the user that the password
      will be visible. With getting the password the CONSOLE log is
      enabled again if it was enabled before.
* Mon Apr 13 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.38
    * Silent debugging messages in epoll algorithm (boo#1261699)
    * Make it work on 3215 console of s390
      means no tcdrain() for 3215, no blocking writes, not more then
      130 characters per line, no \r, finalize lines with \n.
      Nevertheless use a blocking read for password requests.
      Make automatic CLEAR an kernel command line option with
      the parameter blog.timeout=0 (boo#1261697)
* Thu Mar 19 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.37
    * Make release.sh active
    * Run klogctl with console massages off only once in the
      password asking processes on the main console device only
    * Clean up white spaces
    * This will help on high console I/O as now blogd uses its epoll
      event handler to monitor via a file descriptor open with pidfd_open
      the password asking child processes (boo#1259547)
* Tue Mar 17 2026 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.36
    * If SYS_pidfd_open is not defined use a fallback
      Include <asm/unistd.h> to get __NR_pidfd_open for
      the definition of SYS_pidfd_open.
    * Changes to let systemd find plymouth replacements
      which means to add the appropiate Alias in systemd-ask-password-blog.path
      and also in systemd-ask-password-blog.service with new Install
      sections.  Also change description in systemd-ask-password-blog.path
      to hint for blogd as replacement.
    * Rework password asking method to be asynchronous
* Mon Apr 28 2025 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.35
    * Make s390 3215 console work that is use EPOLLOUT|EPOLLONESHOT
      to control if we can write to ttyS0 in nonblocking mode and if
      not reenable EPOLLOUT|EPOLLONESHOT.
    * At boot set for ttyS0 via vmcp API nonblocking MORE mode with
      `0 0'.  It beeps but boots.
  - Remove patches now upstream
    * blog-3215.patch
    * blog-install.patch
* 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 03 2025 Dr. Werner Fink <werner@suse.de>
  - Update to version 2.32
    * Better 3270 console support, use uevent below /sys file system
* Wed Apr 02 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)

Files

/usr/include/libblogger.h
/usr/lib64/libblogger.so


Generated by rpm2html 1.8.1

Fabrice Bellet, Mon Aug 3 00:14:01 2026