Skip to content

Releases: finit-project/finit

Finit v4.15

01 Jan 15:53
4.15
d7fd5bc

Choose a tag to compare

The Finit project now has a new home page: https://finit-project.github.io

Changes

  • Change default reboot to SOC reset from WDT reset, issue #460
  • Bump required versions of libite (v2.6.2) and libuev (v2.4.1)
  • Allow longer service identifiers (:id), up to 64 characters
  • Allow skipping bootstrap wait (180 sec) with Ctrl-C
  • Unlock initctl commands start/stop/restart/reload service during bootstrap,
    shutdown, and reboot. Also, allow initctl reload in bootstrap. This makes
    it possible to start manual:yes type services at botostrap, for example, which
    has been a common feature request
  • Add support for clone3() syscall with atomic cgroup assignment, from Linux
    kernel 5.3+. Eliminates race conditions where forked processes (e.g., logger
    processes) ended up in wrong cgroups. Falls back to fork() on older kernels
  • Add support for cgroup delegation, useful for, e.g., container runtimes
    creating sub-groups for the container instance's processes
  • Add cgroup leaf name override: cgroup.system,name:udevd allows using
    descriptive names like /system/udevd/ instead of filename derived names
    like /system/10-hotplug/. Syntax supports combining with other options:
    cgroup.system,name:foo,delegate,cpu.max:10000
  • Add support for Linux capabilities, allowing services to run with minimal
    required privileges instead of running as root. Uses the modern IAB API
    (Inheritable, Ambient, Bounding) from libcap. By Aaron Andersen
  • Add support for supplementary groups for services. Uses the syntax
    @user:group,sup1,sup2 to explicitly specify supplementary groups, in
    addition to reading group membership from /etc/group. By Aaron Andersen
  • Add CPU throttled information to initctl output, showing when a service
    has been throttled due to reaching its CPU quota
  • Add memory field to initctl --json status output for cgroup-enabled
    services
  • Default to user and group root (UID 0) for services
  • Always check that service user and group resolve to valid UID/GID pairs,
    otherwise log error and refuse to start service
  • Hide cursor at boot and shutdown for cleaner visual experience
  • Rename tty services early from init -> getty even though no getty
    process has been started yet. This to aid in boot timing detection using
    tools like bootchartd (BusyBox version or bootchart2 project) when Finit
    only shows "Please press Enter to activate this console."
  • Services with respawn option (including TTYs) now delay retry on non-zero
    exit codes instead of immediate respawn. Prevents busy-loop when service
    fails repeatedly, which on some systems may have a crippling effect

Fixes

  • Fix #453: RTC plugin fixes by Ming Liu, Atlas Copco
  • Fix #455: ANSI escape sequences logged by tools using glib logging,
    caused by use of PTY instead of pipe for stdout/stderr redirection
  • Fix #462: /dev/pts mounted with wrong mode (400 instead of 620), causing
    permission issues with pseudo-terminals
  • getty: fix terminal scrollback issues after login on console TTY. Mouse
    scroll wheel and Shift+PgUp/PgDn sometimes would not work properly
  • Fix flickering and artifacts in initctl top
  • Fix file descriptor leak in initctl top
  • Fix incorrect "max" limit reporting in initctl [top|cgroup|--json] output
    for child cgroups. Resolves effective limits by walking the cgroup hierarchy
  • Fix issue with running Finit under bootchartd (bootchart2 project), always
    set PATH and SHELL envs early, before attempting to mount /proc et al
  • Always reset ownership and permissions on TTY device nodes before launching getty
  • Ensure mount/unmount skips noauto entries

Finit v4.15-rc2

01 Jan 15:08
4.15-rc2
3f98220

Choose a tag to compare

Finit v4.15-rc2 Pre-release
Pre-release

The Finit project now has a new home page: https://finit-project.github.io

Changes

  • Change default reboot to SOC reset from WDT reset, issue #460
  • Bump required versions of libite (v2.6.2) and libuev (v2.4.1)
  • Allow longer service identifiers (:id), up to 64 characters
  • Allow skipping bootstrap wait (180 sec) with Ctrl-C
  • Unlock initctl commands start/stop/restart/reload service during bootstrap,
    shutdown, and reboot. Also, allow initctl reload in bootstrap. This makes
    it possible to start manual:yes type services at botostrap, for example, which
    has been a common feature request
  • Add support for clone3() syscall with atomic cgroup assignment, from Linux
    kernel 5.3+. Eliminates race conditions where forked processes (e.g., logger
    processes) ended up in wrong cgroups. Falls back to fork() on older kernels
  • Add support for cgroup delegation, useful for, e.g., container runtimes
    creating sub-groups for the container instance's processes
  • Add cgroup leaf name override: cgroup.system,name:udevd allows using
    descriptive names like /system/udevd/ instead of filename derived names
    like /system/10-hotplug/. Syntax supports combining with other options:
    cgroup.system,name:foo,delegate,cpu.max:10000
  • Add support for Linux capabilities, allowing services to run with minimal
    required privileges instead of running as root. Uses the modern IAB API
    (Inheritable, Ambient, Bounding) from libcap. By Aaron Andersen
  • Add support for supplementary groups for services. Uses the syntax
    @user:group,sup1,sup2 to explicitly specify supplementary groups, in
    addition to reading group membership from /etc/group. By Aaron Andersen
  • Add CPU throttled information to initctl output, showing when a service
    has been throttled due to reaching its CPU quota
  • Add memory field to initctl --json status output for cgroup-enabled
    services
  • Default to user and group root (UID 0) for services
  • Always check that service user and group resolve to valid UID/GID pairs,
    otherwise log error and refuse to start service
  • Hide cursor at boot and shutdown for cleaner visual experience
  • Rename tty services early from init -> getty even though no getty
    process has been started yet. This to aid in boot timing detection using
    tools like bootchartd (BusyBox version or bootchart2 project) when Finit
    only shows "Please press Enter to activate this console."
  • Services with respawn option (including TTYs) now delay retry on non-zero
    exit codes instead of immediate respawn. Prevents busy-loop when service
    fails repeatedly, which on some systems may have a crippling effect

Fixes

  • Fix #453: RTC plugin fixes by Ming Liu, Atlas Copco
  • Fix #455: ANSI escape sequences logged by tools using glib logging,
    caused by use of PTY instead of pipe for stdout/stderr redirection
  • Fix #462: /dev/pts mounted with wrong mode (400 instead of 620), causing
    permission issues with pseudo-terminals
  • getty: fix terminal scrollback issues after login on console TTY. Mouse
    scroll wheel and Shift+PgUp/PgDn sometimes would not work properly
  • Fix flickering and artifacts in initctl top
  • Fix file descriptor leak in initctl top
  • Fix incorrect "max" limit reporting in initctl [top|cgroup|--json] output
    for child cgroups. Resolves effective limits by walking the cgroup hierarchy
  • Fix issue with running Finit under bootchartd (bootchart2 project), always
    set PATH and SHELL envs early, before attempting to mount /proc et al
  • Always reset ownership and permissions on TTY device nodes before launching getty
  • Ensure mount/unmount skips noauto entries

Finit v4.15-rc1

18 Dec 06:24
4.15-rc1
702a606

Choose a tag to compare

Finit v4.15-rc1 Pre-release
Pre-release

Changes

  • Change default reboot to SOC reset from WDT reset, issue #460
  • Bump required versions of libite (v2.6.2) and libuev (v2.4.1)
  • Allow longer service identifiers (:id), up to 64 characters
  • Allow skipping bootstrap wait (180 sec) with Ctrl-C
  • Unlock initctl commands start/stop/restart/reload service during bootstrap,
    shutdown, and reboot. Also, allow initctl reload in bootstrap. This makes
    it possible to start manual:yes type services at botostrap, for example, which
    has been a common feature request
  • Add support for clone3() syscall with atomic cgroup assignment, from Linux
    kernel 5.3+. Eliminates race conditions where forked processes (e.g., logger
    processes) ended up in wrong cgroups. Falls back to fork() on older kernels
  • Add support for cgroup delegation, useful for, e.g., container runtimes
    creating sub-groups for the container instance's processes
  • Add cgroup leaf name override: cgroup.system,name:udevd allows using
    descriptive names like /system/udevd/ instead of filename derived names
    like /system/10-hotplug/. Syntax supports combining with other options:
    cgroup.system,name:foo,delegate,cpu.max:10000

Fixes

  • Fix #453: RTC plugin fixes by Ming Liu, Atlas Copco
  • Fix #455: ANSI escape sequences logged by tools using glib logging,
    caused by use of PTY instead of pipe for stdout/stderr redirection
  • getty: fix terminal scrollback issues after login on console TTY. Mouse
    scroll wheel and Shift+PgUp/PgDn sometimes would not work properly
  • Fix flickering and artifacts in initctl top
  • Fix file descriptor leak in initctl top
  • Fix incorrect "max" limit reporting in initctl [top|cgroup|--json] output
    for child cgroups. Resolves effective limits by walking the cgroup hierarchy
  • Ensure mount/unmount skips noauto entries

Finit v4.14

29 Aug 15:15
4.14
6f6267f

Choose a tag to compare

Minor bug fix release.

Changes

  • Add exit status/signal info when a process dies, by Mattias Berthel
  • Extend service kill:SEC to support up to 300 sec.
  • Extend norespawn debug to cover service_retry()
  • Build without libsystemd replacement by default

Fixes

  • Fix #449: ALSA plugin fail-to-build-from-source
  • Fix sysv stop command process environment, should be same as start
  • Fix state machine ordering issue: enter new config generation after
    services disabled in previous generation have been stopped

Finit v4.13

10 Jul 16:45
4.13
8548417

Choose a tag to compare

Note

This release introduce a bare bones libsystemd replacement with an
<systemd/sd-daemon.h> include file. Other systemd features are the
reload:script and stop:script, mimicking ExecReload and ExecStop.

Changes

  • initctl signal command has been renamed to initctl kill
  • Drop xz tarballs from distribution, gzip is good enough
  • New tmpfiles stand-alone program, refactored from the existing
    tmpfiles.d support in Finit, by Aaron Andersen, PR #439
    • --remove command runs only the r and R rules
    • --create is used for all other cases (bootstrap)
  • All notify:systemd services now log with logit by default. This
    because it supports systemd style log severity, leading "<NUM>"
  • Support for quoted arguments to run/task/service options, issue #441
  • Clear command line arguments after bootstrap, issue #442
  • Support for stop:'script [args]' to stop a sysv/service instead of
    the common foo-stop-start.sh stop, or SIGTERM, issue #412
  • Support for reload:'script [args]' to trigger a configuration
    reload in a service, issue #446

Fixes

  • Fix #437: buffer overflow in initctl status
  • Fix #438: support very long command lines in initctl ps/top
  • Fix #440: broken systemd and s6 readiness notification
  • Fix #443: build warnings, by Ming Liu, Atlas Copco
  • Fix #444: handle loooooong arguments, by Aaron Andersen
  • Fix service's redirected stdout/stderr log priority in fallback mode,
    when neither logger or logit is available. This fix also checks
    for systemd style log severity, leading "<NUM>" in log messages
  • Ensure API socket used by initctl is non-blocking (event loop)

Finit v4.13-rc1

10 Jul 14:56
4.13-rc1
4f01856

Choose a tag to compare

Finit v4.13-rc1 Pre-release
Pre-release

Note

This release introduce a bare bones libsystemd replacement with an
<systemd/sd-daemon>.h include file. Other systemd features are the
reload:script and stop:script, mimicking ExecReload and ExecStop.

Changes

  • Drop xz tarballs from distribution, gzip is good enough
  • New tmpfiles stand-alone program, refactored from the existing
    tmpfiles.d support in Finit, by Aaron Andersen, PR #439
    • --remove command runs only the r and R rules
    • --create is used for all other cases (bootstrap)
  • All notify:systemd services now log with logit by default. This
    because it supports systemd style log severity, leading "<NUM>"
  • Support for quoted arguments to run/task/service options, issue #441
  • Clear command line arguments after bootstrap, issue #442
  • Support for stop:'script [args]' to stop a sysv/service instead of
    the common foo-stop-start.sh stop, or SIGTERM, issue #412
  • Support for reload:'script [args]' to trigger a configuration
    reload in a service, issue #446

Fixes

  • Fix #437: buffer overflow in initctl status
  • Fix #438: support very long command lines in initctl ps/top
  • Fix #440: broken systemd and s6 readiness notification
  • Fix #443: build warnings, by Ming Liu, Atlas Copco
  • Fix #444: handle loooooong arguments, by Aaron Andersen
  • Fix service's redirected stdout/stderr log priority in fallback mode,
    when neither logger or logit is available. This fix also checks
    for systemd style log severity, leading "<NUM>" in log messages
  • Ensure API socket used by initctl is non-blocking (event loop)

Finit v4.12

27 Apr 22:49
4.12
6b7478f

Choose a tag to compare

Changes

  • Improve notify:s6 readiness compatibility, by Aaron Andersen
  • Update runparts usage text

Fixes

  • Fix variable overloading in urandom plugin
  • Fix buffer overwrite in urandom plugin, reported by Aaron Andersen

Finit v4.11

27 Mar 18:34
4.11
185a72b

Choose a tag to compare

Changes

  • Update documentation regarding transition from runlevel S to 2, how
    run/tasks must "complete" before Finit can move to the next runlevel
  • Improve argument handling in bundled getty when launching login

Fixes

  • Fix #432: allow services in setup state to be stopped. This fixes
    a serious blocker introduced in 4.10 that prevented systems from
    being rebooted when any service was in this state
  • Fix fallback SIGKILL when stopping a service with SIGTERM does
    not work. This fixes a serious issue with services not responding to
    the default SIGTERM
  • Fix pre/post/ready/cleanup script execution if service has an
    optional env:file (leading -)
  • Fix blocked signals for pre/post/ready/cleanup scripts preventing
    normal shutdown when a service/sysv is stopped in its setup state
  • Fix issue where a pre:script creates a PID file in /run cause the
    service to move from setup state to running. Any svc_t in setup,
    teardown, or cleanup state should be ignored in the pidfile plugin

Finit v4.11-rc2

27 Mar 09:50
4.11-rc2
5e9591d

Choose a tag to compare

Finit v4.11-rc2 Pre-release
Pre-release

Changes

  • Update documentation regarding transition from runlevel S to 2, how
    run/tasks must "complete" before Finit can move to the next runlevel
  • Improve argument handling in bundled getty when launching login

Fixes

  • Fix #432: allow services in setup state to be stopped. This fixes
    a serious blocker introduced in 4.10 that prevented systems from
    being rebooted when any service was in this state
  • Fix fallback SIGKILL when stopping a service with SIGTERM does
    not work. This fixes a serious issue with services not responding to
    the default SIGTERM
  • Fix pre/post/ready/cleanup script execution if service has an
    optional env:file (leading -)

Finit v4.11-rc1

27 Mar 09:32
4.11-rc1
e3bcf9b

Choose a tag to compare

Finit v4.11-rc1 Pre-release
Pre-release

Changes

  • Update documentation regarding transition from runlevel S to 2, how
    run/tasks must "complete" before Finit can move to the next runlevel
  • Improve argument handling in bundled getty when launching login

Fixes

  • Fix #432: allow services in setup state to be stopped. This fixes
    a serious blocker introduced in 4.10 that prevented systems from
    being rebooted when any service was in this state
  • Fix fallback SIGKILL when stopping a service with SIGTERM does
    not work. This fixes a serious issue with services not responding to
    the default SIGTERM
  • Fix pre/post/ready/cleanup script execution if service has an
    optional env:file (leading -)