The officially official Devuan Forum!

You are not logged in.

#1 2022-04-15 17:58:41

recklessswing
Member
From: Türkiye
Registered: 2020-12-18
Posts: 85  

Why don't we just fork systemd and remove unneccessary bloat?

Why don't we fork systemd instead? Let's just remove unneccessary parts. Can't we do that? Wouldn't it be better? Or worse?

Offline

#2 2022-04-15 19:20:05

Head_on_a_Stick
Member
From: London
Registered: 2019-03-24
Posts: 3,125  
Website

Re: Why don't we just fork systemd and remove unneccessary bloat?

No need to fork it, just compile it with all the unwanted parts disabled.

Here is a full list of the options for v250:

Main project options:
  
  Core options                   Default Value                    Possible Values                  Description
  ------------                   -------------                    ---------------                  -----------
  auto_features                  auto                             [enabled, disabled, auto]        Override value of all 'auto' features
  backend                        ninja                            [ninja, vs, vs2010, vs2012,      Backend to use
                                                                  vs2013, vs2015, vs2017, vs2019,  
                                                                   vs2022, xcode]                  
  buildtype                      debug                            [plain, debug, debugoptimized,   Build type to use
                                                                  release, minsize, custom]        
  cmake_prefix_path              []                                                                List of additional prefixes for cmake to search
  debug                          true                             [true, false]                    Debug
  default_library                shared                           [shared, static, both]           Default library type
  force_fallback_for             []                                                                Force fallback for those subprojects
  install_umask                  0022                             [preserve, 0000-0777]            Default umask to apply on permissions of installed files
  layout                         mirror                           [mirror, flat]                   Build directory layout
  optimization                   0                                [0, g, 1, 2, 3, s]               Optimization level
  pkg_config_path                []                                                                List of additional paths for pkg-config to search
  strip                          false                            [true, false]                    Strip targets on install
  unity                          off                              [on, off, subprojects]           Unity build
  unity_size                     4                                >=2                              Unity block size
  warning_level                  2                                [0, 1, 2, 3]                     Compiler warning level to use
  werror                         false                            [true, false]                    Treat warnings as errors
  wrap_mode                      default                          [default, nofallback,            Wrap mode
                                                                  nodownload, forcefallback,       
                                                                  nopromote]                       
  build.cmake_prefix_path        []                                                                List of additional prefixes for cmake to search
  build.pkg_config_path          []                                                                List of additional paths for pkg-config to search
  
  Backend options                Default Value                    Possible Values                  Description
  ---------------                -------------                    ---------------                  -----------
  backend_max_links              0                                >=0                              Maximum number of linker processes to run or 0 for no limit
  
  Base options                   Default Value                    Possible Values                  Description
  ------------                   -------------                    ---------------                  -----------
  b_asneeded                     true                             [true, false]                    Use -Wl,--as-needed when linking
  b_colorout                     always                           [auto, always, never]            Use colored output
  b_coverage                     false                            [true, false]                    Enable coverage tracking.
  b_lto                          false                            [true, false]                    Use link time optimization
  b_lto_threads                  0                                                                 Use multiple threads for Link Time Optimization
  b_lundef                       true                             [true, false]                    Use -Wl,--no-undefined when linking
  b_ndebug                       false                            [true, false, if-release]        Disable asserts
  b_pch                          true                             [true, false]                    Use precompiled headers
  b_pgo                          off                              [off, generate, use]             Use profile guided optimization
  b_pie                          false                            [true, false]                    Build executables as position independent
  b_sanitize                     none                             [none, address, thread,          Code sanitizer to use
                                                                  undefined, memory,               
                                                                  address,undefined]               
  b_staticpic                    true                             [true, false]                    Build static libraries as position independent
  
  Compiler options               Default Value                    Possible Values                  Description
  ----------------               -------------                    ---------------                  -----------
  c_args                         []                                                                Extra arguments passed to the c compiler
  c_link_args                    []                                                                Extra arguments passed to the c linker
  c_std                          gnu11                            [none, c89, c99, c11, c17, c18,  C language standard to use
                                                                  c2x, gnu89, gnu99, gnu11,        
                                                                   gnu17, gnu18, gnu2x]            
  build.c_args                   []                                                                Extra arguments passed to the c compiler
  build.c_link_args              []                                                                Extra arguments passed to the c linker
  build.c_std                    none                             [none, c89, c99, c11, c17, c18,  C language standard to use
                                                                  c2x, gnu89, gnu99, gnu11,        
                                                                   gnu17, gnu18, gnu2x]            
  
  python module options          Default Value                    Possible Values                  Description
  ---------------------          -------------                    ---------------                  -----------
  python.install_env             prefix                           [auto, prefix, system, venv]     Which python environment to install to
  python.platlibdir                                                                                Directory for site-specific, platform-specific files.
  python.purelibdir                                                                                Directory for site-specific, non-platform-specific files.
  
  Directories                    Default Value                    Possible Values                  Description
  -----------                    -------------                    ---------------                  -----------
  bindir                         bin                                                               Executable directory
  datadir                        share                                                             Data file directory
  includedir                     include                                                           Header file directory
  infodir                        share/info                                                        Info page directory
  libdir                         lib                                                               Library directory
  libexecdir                     libexec                                                           Library executable directory
  localedir                      share/locale                                                      Locale data directory
  localstatedir                  /var                                                              Localstate data directory
  mandir                         share/man                                                         Manual page directory
  prefix                         /usr                                                              Installation prefix
  sbindir                        sbin                                                              System executable directory
  sharedstatedir                 /var/lib                                                          Architecture-independent data directory
  sysconfdir                     /etc                                                              Sysconf data directory
  
  Testing options                Default Value                    Possible Values                  Description
  ---------------                -------------                    ---------------                  -----------
  errorlogs                      true                             [true, false]                    Whether to print the logs from failing tests
  stdsplit                       true                             [true, false]                    Split stdout and stderr in test logs
  
  Project options                Default Value                    Possible Values                  Description
  ---------------                -------------                    ---------------                  -----------
  acl                            auto                             [auto, true, false]              libacl support
  adm-gid                        -1                                                                soft-static allocation for the "adm" group
  adm-group                      true                             [true, false]                    the ACL for adm group should be added
  analyze                        true                             [true, false]                    install systemd-analyze
  apparmor                       auto                             [auto, true, false]              AppArmor support
  audio-gid                      -1                                                                soft-static allocation for the "audio" group
  audit                          auto                             [auto, true, false]              libaudit support
  backlight                      true                             [true, false]                    support for restoring backlight state
  bashcompletiondir                                                                                directory for bash completion scripts ["no" disables]
  binfmt                         true                             [true, false]                    support for custom binary formats
  blkid                          auto                             [auto, true, false]              libblkid support
  bpf-framework                  auto                             [auto, true, false]              build BPF programs from source code in restricted C
  bump-proc-sys-fs-file-max      true                             [true, false]                    bump /proc/sys/fs/file-max to LONG_MAX
  bump-proc-sys-fs-nr-open       true                             [true, false]                    bump /proc/sys/fs/nr_open to INT_MAX
  bzip2                          auto                             [auto, true, false]              bzip2 compression support
  cdrom-gid                      -1                                                                soft-static allocation for the "cdrom" group
  certificate-root               /etc/ssl                                                          the prefix for TLS certificates
  clock-valid-range-usec-max     473364000000000                                                   maximum value in microseconds for the difference between RTC and
                                                                                                   epoch, exceeding which is considered an RTC error
  compat-mutable-uid-boundaries  false                            [true, false]                    look at uid boundaries in /etc/login.defs for compatibility
  container-uid-base-max         1878982656                                                        maximum container UID base
  container-uid-base-min         524288                                                            minimum container UID base
  coredump                       true                             [true, false]                    install the coredump handler
  create-log-dirs                true                             [true, false]                    create /var/log/journal{,/remote}
  cryptolib                      auto                             [auto, openssl, gcrypt]          whether to use openssl or gcrypt where both are supported
  dbus                           auto                             [auto, true, false]              libdbus support (for tests only)
  dbus-interfaces-dir                                                                              export D-Bus introspection XML as standalone files
  dbuspolicydir                                                                                    D-Bus policy directory
  dbussessionservicedir                                                                            D-Bus session service directory
  dbussystemservicedir                                                                             D-Bus system service directory
  debug-extra                    []                               [hashmap, mmap-cache, siphash]   enable extra debugging
  debug-shell                    /bin/sh                                                           path to debug shell binary
  debug-tty                      /dev/tty9                                                         specify the tty device for debug shell
  default-dns-over-tls           no                               [yes, opportunistic, no]         default DNS-over-TLS mode
  default-dnssec                 allow-downgrade                  [yes, allow-downgrade, no]       default DNSSEC mode
  default-hierarchy              unified                          [legacy, hybrid, unified]        default cgroup hierarchy
  default-kill-user-processes    true                             [true, false]                    the default value for KillUserProcesses= setting
  default-llmnr                  yes                              [yes, resolve, no]               default LLMNR mode
  default-locale                                                                                   default locale used when /etc/locale.conf does not exist
  default-mdns                   yes                              [yes, resolve, no]               default MulticastDNS mode
  default-net-naming-scheme      latest                                                            default net.naming-scheme= value
  default-user-shell             /bin/bash                                                         default interactive shell
  dev-kvm-mode                   0666                                                              /dev/kvm access mode
  dialout-gid                    -1                                                                soft-static allocation for the "dialout" group
  disk-gid                       -1                                                                soft-static allocation for the "disk" group
  dns-over-tls                   auto                             [auto, gnutls, openssl, true,    DNS-over-TLS support
                                                                  false]                           
  dns-servers                    1.1.1.1#cloudflare-dns.com                                        space-separated list of default DNS servers
                                 8.8.8.8#dns.google                                                
                                 1.0.0.1#cloudflare-dns.com                                        
                                 8.8.4.4#dns.google                                                
                                 2606:4700:4700::1111#cloudflare-                                  
                                 dns.com                                                           
                                 2001:4860:4860::8888#dns.google                                   
                                 2606:4700:4700::1001#cloudflare-                                  
                                 dns.com                                                           
                                 2001:4860:4860::8844#dns.google                                   
  docdir                                                                                           documentation directory
  dynamic-uid-max                65519                                                             maximum dynamic UID
  dynamic-uid-min                61184                                                             minimum dynamic UID
  efi                            true                             [true, false]                    enable systemd-boot and bootctl
  efi-cflags                     []                                                                additional flags for EFI compiler
  efi-color-edit                 black,lightgray                                                   boot loader color for option line edit
  efi-color-entry                lightgray,black                                                   boot loader color for entries
  efi-color-highlight            black,lightgray                                                   boot loader color for selected entries
  efi-color-normal               lightgray,black                                                   general boot loader color in "foreground,background" form, see
                                                                                                   constants from eficon.h
  efi-includedir                 /usr/include/efi                                                  path to the EFI header directory
  efi-ld                         auto                             [auto, bfd, gold]                the linker to use for EFI modules
  efi-libdir                                                                                       path to the EFI lib directory
  efi-tpm-pcr-compat             false                            [true, false]                    Measure kernel command line also into TPM PCR 8 (in addition to
                                                                                                   12)
  elfutils                       auto                             [auto, true, false]              elfutils support
  environment-d                  true                             [true, false]                    support for environment.d
  extra-net-naming-schemes                                                                         comma-separated list of extra net.naming-scheme= definitions
  fallback-hostname              localhost                                                         the hostname used if none configured
  fdisk                          auto                             [auto, true, false]              libfdisk support
  fexecve                        false                            [true, false]                    use fexecve() to spawn children
  firstboot                      true                             [true, false]                    support for firstboot mechanism
  fuzz-tests                     false                            [true, false]                    run the fuzzer regression tests by default (with sanitizers)
  gcrypt                         auto                             [auto, true, false]              gcrypt support
  glib                           auto                             [auto, true, false]              libglib support (for tests only)
  gnu-efi                        auto                             [auto, true, false]              gnu-efi support for sd-boot
  gnutls                         auto                             [auto, true, false]              gnutls support
  group-render-mode              0666                                                              Access mode for devices owned by render group (e.g.
                                                                                                   /dev/dri/renderD*, /dev/kfd).
  gshadow                        true                             [true, false]                    support for shadow group
  hibernate                      true                             [true, false]                    support for hibernation
  homed                          auto                             [auto, true, false]              install the systemd-homed stack
  hostnamed                      true                             [true, false]                    install the systemd-hostnamed stack
  html                           false                            [auto, true, false]              build and install html pages
  hwdb                           true                             [true, false]                    support for the hardware database
  idn                            true                             [true, false]                    use IDN when printing hostnames
  ima                            true                             [true, false]                    IMA support
  importd                        auto                             [auto, true, false]              install the systemd-importd daemon
  initrd                         true                             [true, false]                    install services for use when running systemd in initrd
  input-gid                      -1                                                                soft-static allocation for the "input" group
  install-sysconfdir             true                             [true, no-samples, false]        install configuration files and directories to $sysconfdir
  install-tests                  false                            [true, false]                    install test executables
  kernel-install                 true                             [true, false]                    install kernel-install and associated files
  kexec-path                                                                                       path to kexec
  kmem-gid                       -1                                                                soft-static allocation for the "kmem" group
  kmod                           auto                             [auto, true, false]              support for loadable modules
  kmod-path                                                                                        path to kmod
  kvm-gid                        -1                                                                soft-static allocation for the "kvm" group
  ldconfig                       true                             [true, false]                    support for dynamic linker cache creation
  libcryptsetup                  auto                             [auto, true, false]              libcryptsetup support
  libcryptsetup-plugins          auto                             [auto, true, false]              libcryptsetup LUKS2 external token handlers support (plugins)
  libcryptsetup-plugins-dir                                                                        directory for libcryptsetup plugins
  libcurl                        auto                             [auto, true, false]              libcurl support
  libfido2                       auto                             [auto, true, false]              FIDO2 support
  libidn                         auto                             [auto, true, false]              libidn support
  libidn2                        auto                             [auto, true, false]              libidn2 support
  libiptc                        auto                             [auto, true, false]              libiptc support
  link-boot-shared               true                             [true, false]                    link bootctl and systemd-bless-boot against libsystemd-shared.so
  link-networkd-shared           true                             [true, false]                    link systemd-networkd and its helpers to libsystemd-shared.so
  link-systemctl-shared          true                             [true, false]                    link systemctl against libsystemd-shared.so
  link-timesyncd-shared          true                             [true, false]                    link systemd-timesyncd and its helpers to libsystemd-shared.so
  link-udev-shared               true                             [true, false]                    link systemd-udev and its helpers to libsystemd-shared.so
  llvm-fuzz                      false                            [true, false]                    build against LLVM libFuzzer
  loadkeys-path                                                                                    path to loadkeys
  localed                        true                             [true, false]                    install the systemd-localed stack
  localegen-path                                                                                   absolute path to the locale-gen binary in case the system is
                                                                                                   using locale-gen
  log-trace                      false                            [true, false]                    enable low level debug logging
  logind                         true                             [true, false]                    install the systemd-logind stack
  lp-gid                         -1                                                                soft-static allocation for the "lp" group
  lz4                            auto                             [auto, true, false]              lz4 compression support
  machined                       true                             [true, false]                    install the systemd-machined stack
  man                            false                            [auto, true, false]              build and install man pages
  memory-accounting-default      true                             [true, false]                    enable MemoryAccounting= by default
  microhttpd                     auto                             [auto, true, false]              libµhttpd support
  mode                           developer                        [developer, release]             autoenable features suitable for systemd development/release
                                                                                                   builds
  mount-path                                                                                       path to mount
  networkd                       true                             [true, false]                    install the systemd-networkd stack
  nobody-group                   nobody                                                            The name of the nobody group (the one with GID 65534)
  nobody-user                    nobody                                                            The name of the nobody user (the one with UID 65534)
  nologin-path                                                                                     path to nologin
  nscd                           true                             [true, false]                    build support for flushing of the nscd caches
  nss-myhostname                 true                             [true, false]                    install nss-myhostname module
  nss-mymachines                 auto                             [auto, true, false]              install nss-mymachines module
  nss-resolve                    auto                             [auto, true, false]              install nss-resolve module
  nss-systemd                    true                             [true, false]                    install nss-systemd module
  ntp-servers                    time1.google.com                                                  space-separated list of default NTP servers
                                 time2.google.com                                                  
                                 time3.google.com                                                  
                                 time4.google.com                                                  
  ok-color                       green                            [black, red, green, yellow,      color of the "OK" status message
                                                                  blue, magenta, cyan, white,      
                                                                   highlight-black, highlight-red, 
                                                                  highlight-green,                 
                                                                   highlight-yellow, highlight-    
                                                                  blue, highlight-magenta,         
                                                                   highlight-cyan, highlight-      
                                                                  white]                           
  oomd                           true                             [true, false]                    install the userspace oom killer
  openssl                        auto                             [auto, true, false]              openssl support
  oss-fuzz                       false                            [true, false]                    build against oss-fuzz
  p11kit                         auto                             [auto, true, false]              p11kit support
  pam                            auto                             [auto, true, false]              PAM support
  pamconfdir                                                                                       directory for PAM configuration ["no" disables]
  pamlibdir                                                                                        directory for PAM modules
  pcre2                          auto                             [auto, true, false]              regexp matching support using pcre2
  pkgconfigdatadir                                                                                 directory for arch-independent pkg-config files
  pkgconfiglibdir                                                                                  directory for standard pkg-config files
  polkit                         auto                             [auto, true, false]              polkit support
  portabled                      true                             [true, false]                    install the systemd-portabled stack
  pstore                         true                             [true, false]                    install the pstore archival tool
  pwquality                      auto                             [auto, true, false]              libpwquality support
  qrencode                       auto                             [auto, true, false]              libqrencode support
  quotacheck                     true                             [true, false]                    support for the quotacheck tools
  quotacheck-path                                                                                  path to quotacheck
  quotaon-path                                                                                     path to quotaon
  randomseed                     true                             [true, false]                    support for restoring random seed
  rc-local                       /etc/rc.local                                                     rc-local
  remote                         auto                             [auto, true, false]              support for "journal over the network"
  render-gid                     -1                                                                soft-static allocation for the "render" group
  repart                         auto                             [auto, true, false]              install the systemd-repart tool
  resolve                        true                             [true, false]                    systemd-resolved stack
  rfkill                         true                             [true, false]                    support for the rfkill tools
  rootlibdir                                                                                       [/usr]/lib/x86_64-linux-gnu or such
  rootprefix                                                                                       override the root prefix [default '/' if split-usr and '/usr'
                                                                                                   otherwise]
  rpmmacrosdir                   lib/rpm/macros.d                                                  directory for rpm macros ["no" disables]
  sbat-distro                    auto                                                              SBAT distribution ID, e.g. fedora, or auto for autodetection
  sbat-distro-generation         1                                                                 SBAT distribution generation
  sbat-distro-pkgname                                                                              SBAT distribution package name, e.g. systemd
  sbat-distro-summary                                                                              SBAT distribution summary, e.g. Fedora
  sbat-distro-url                                                                                  SBAT distribution URL, e.g.
                                                                                                   https://src.fedoraproject.org/rpms/systemd
  sbat-distro-version                                                                              SBAT distribution package version, e.g. 248-7.fc34
  seccomp                        auto                             [auto, true, false]              SECCOMP support
  selinux                        auto                             [auto, true, false]              SELinux support
  service-watchdog               3min                                                              default watchdog setting for systemd services
  setfont-path                                                                                     path to setfont
  sgx-gid                        -1                                                                soft-static allocation for the "sgx" group
  shared-lib-tag                                                                                   override the private shared library version tag (defaults to
                                                                                                   project version)
  skip-deps                      false                            [true, false]                    skip optional dependencies
  slow-tests                     false                            [true, false]                    run the slow tests by default
  smack                          true                             [true, false]                    SMACK support
  smack-run-label                                                                                  run systemd --system itself with a specific SMACK label
  split-bin                      auto                             [auto, true, false]              sbin is not a symlink to bin
  split-usr                      auto                             [auto, true, false]              /bin, /sbin aren't symlinks into /usr
  standalone-binaries            false                            [true, false]                    also build standalone versions of supported binaries
  static-libsystemd              false                            [false, true, pic, no-pic]       install a static library for libsystemd
  static-libudev                 false                            [false, true, pic, no-pic]       install a static library for libudev
  status-unit-format-default     description                      [description, name, combined]    use unit name or description in messages by default
  sulogin-path                                                                                     path to sulogin
  support-url                    https://lists.freedesktop.org/ma                                  the support URL to show in catalog entries included in systemd
                                 ilman/listinfo/systemd-devel                                      
  sysext                         true                             [true, false]                    install the systemd-sysext stack
  system-alloc-gid-min           -1                                                                minimum system GID used when allocating
  system-alloc-uid-min           -1                                                                minimum system UID used when allocating
  system-gid-max                 -1                                                                maximum system GID
  system-uid-max                 -1                                                                maximum system UID
  systemd-journal-gid            -1                                                                soft-static allocation for the systemd-journal group
  systemd-network-uid            -1                                                                soft-static allocation for the systemd-network user
  systemd-resolve-uid            -1                                                                soft-static allocation for the systemd-resolve user
  systemd-timesync-uid           -1                                                                soft-static allocation for the systemd-timesync user
  sysupdate                      auto                             [auto, true, false]              install the systemd-sysupdate tool
  sysusers                       true                             [true, false]                    support for the sysusers configuration
  sysvinit-path                  /etc/init.d                                                       the directory where the SysV init scripts are located
  sysvrcnd-path                  /etc/rc.d                                                         the base directory for SysV rcN.d directories
  tape-gid                       -1                                                                soft-static allocation for the "tape" group
  telinit-path                   /lib/sysvinit/telinit                                             path to telinit
  tests                          true                             [true, unsafe, false]            enable extra tests with =unsafe
  time-epoch                     -1                                                                time epoch for time clients
  timedated                      true                             [true, false]                    install the systemd-timedated daemon
  timesyncd                      true                             [true, false]                    install the systemd-timesyncd daemon
  tmpfiles                       true                             [true, false]                    support for tmpfiles.d
  tpm                            true                             [true, false]                    TPM should be used to log events and extend the registers
  tpm2                           auto                             [auto, true, false]              TPM2 support
  translations                   true                             [true, false]                    build and install translations
  tty-gid                        5                                                                 the numeric GID of the "tty" group
  umount-path                                                                                      path to umount
  update-helper-user-timeout     15s                                                               how long to wait for user manager operations
  urlify                         true                             [true, false]                    enable pager Hyperlink ANSI sequence support
  user-path                                                                                        $PATH to use for user sessions
  userdb                         true                             [true, false]                    install the systemd-userdbd stack
  users-gid                      -1                                                                soft-static allocation for the "users" group
  utmp                           true                             [true, false]                    support for utmp/wtmp log handling
  utmp-gid                       -1                                                                soft-static allocation for the "utmp" group
  valgrind                       false                            [true, false]                    do extra operations to avoid valgrind warnings
  vconsole                       true                             [true, false]                    support for vconsole configuration
  version-tag                                                                                      override the git version string
  video-gid                      -1                                                                soft-static allocation for the "video" group
  wheel-gid                      -1                                                                soft-static allocation for the "wheel" group
  wheel-group                    true                             [true, false]                    the ACL for wheel group should be added
  www-target                     www.freedesktop.org:/srv/www.fre                                  the address and dir to upload docs too
                                 edesktop.org/www/software/system                                  
                                 d                                                                 
  xdg-autostart                  true                             [true, false]                    install the xdg-autostart-generator and unit
  xinitrcdir                                                                                       directory for xinitrc files
  xkbcommon                      auto                             [auto, true, false]              xkbcommon keymap support
  xz                             auto                             [auto, true, false]              xz compression support
  zlib                           auto                             [auto, true, false]              zlib compression support
  zshcompletiondir                                                                                 directory for zsh completion scripts ["no" disables]
  zstd                           auto                             [auto, true, false]              zstd compression support

As you can see it is quite comprehensive :-)

Even if the various components are all enabled (as they are for most distributions) there's still no need to use them — other programs can be substituted in instead, as per the UNIX Philosophy.


Brianna Ghey — Rest In Power

Offline

#3 2022-04-15 19:45:02

golinux
Administrator
Registered: 2016-11-25
Posts: 3,137  

Re: Why don't we just fork systemd and remove unneccessary bloat?

recklessswing wrote:

Why don't we fork systemd instead? Let's just remove unneccessary parts. Can't we do that? Wouldn't it be better? Or worse?

Why would anyone want systemd in the first place?

Online

#4 2022-04-15 22:32:39

Altoid
Member
Registered: 2017-05-07
Posts: 1,415  

Re: Why don't we just fork systemd and remove unneccessary bloat?

Hello:

golinux wrote:

Why would anyone want systemd in the first place?

Indeed ...
+1  8^D

systemd is the absolute opposite of basic Linux philosophy.
ie: Write programs that do one thing and do it well.   

A.

Last edited by Altoid (2022-04-15 22:38:49)

Offline

#5 2022-04-16 04:06:02

charliebrownau
Member
From: Australia
Registered: 2022-04-14
Posts: 62  
Website

Re: Why don't we just fork systemd and remove unneccessary bloat?

Gday

This is what I don't understand

Why cant the community fork or pull soyd/dbus/avachi from opensource programs?

Why cant we fork stuff like

Hexchat
Smplayer
Mumble
LibreWolf
without soyd/bloat/centralisation/etc  ?

Or do what the International Subversives do
* join a project
* inject their changes
* kick out the original group
* take over the project

Even if the community has to res a bunch of old abandoned stuff like leafpad and other stuff
that's been ditched by { THEM }

Does the soydless community even have a plan of action to go ahead ?

Offline

#6 2022-04-16 06:28:36

golinux
Administrator
Registered: 2016-11-25
Posts: 3,137  

Re: Why don't we just fork systemd and remove unneccessary bloat?

charliebrownau wrote:

Gday

This is what I don't understand

Why cant the community fork or pull soyd/dbus/avachi from opensource programs?

[cut rant]

Does the soydless community even have a plan of action to go ahead ?

There are talkers and doers. Until you become a doer, silence is the best option. Perhaps you'll find a more appreciative audience elsewhere . . .

Online

#7 2022-04-16 07:55:12

hevidevi
Member
Registered: 2021-09-17
Posts: 230  

Re: Why don't we just fork systemd and remove unneccessary bloat?

thats like saying why dont we just fork gtk and remove the cruft, it takes teams of dedicated people. Devuan was the sane choice by forking debian and removing  systemd in favour of a tried and true init system, sysvinit.

Offline

#8 2022-04-16 08:32:59

Camtaf
Member
Registered: 2019-11-19
Posts: 408  

Re: Why don't we just fork systemd and remove unneccessary bloat?

I use Devuan because it's what Debian used to be. wink

If it doesn't suit you, try a different distro, that's the beauty of Linux, choice. smile

Offline

#9 2022-04-16 08:47:43

hevidevi
Member
Registered: 2021-09-17
Posts: 230  

Re: Why don't we just fork systemd and remove unneccessary bloat?

Head_on_a_Stick wrote:

No need to fork it, just compile it with all the unwanted parts disabled.

Here is a full list of the options for v250:

Main project options:
  
  Core options                   Default Value                    Possible Values                  Description
  ------------                   -------------                    ---------------                  -----------
  auto_features                  auto                             [enabled, disabled, auto]        Override value of all 'auto' features
  backend                        ninja                            [ninja, vs, vs2010, vs2012,      Backend to use
                                                                  vs2013, vs2015, vs2017, vs2019,  
                                                                   vs2022, xcode]                  
  buildtype                      debug                            [plain, debug, debugoptimized,   Build type to use
                                                                  release, minsize, custom]        
  cmake_prefix_path              []                                                                List of additional prefixes for cmake to search
  debug                          true                             [true, false]                    Debug
  default_library                shared                           [shared, static, both]           Default library type
  force_fallback_for             []                                                                Force fallback for those subprojects
  install_umask                  0022                             [preserve, 0000-0777]            Default umask to apply on permissions of installed files
  layout                         mirror                           [mirror, flat]                   Build directory layout
  optimization                   0                                [0, g, 1, 2, 3, s]               Optimization level
  pkg_config_path                []                                                                List of additional paths for pkg-config to search
  strip                          false                            [true, false]                    Strip targets on install
  unity                          off                              [on, off, subprojects]           Unity build
  unity_size                     4                                >=2                              Unity block size
  warning_level                  2                                [0, 1, 2, 3]                     Compiler warning level to use
  werror                         false                            [true, false]                    Treat warnings as errors
  wrap_mode                      default                          [default, nofallback,            Wrap mode
                                                                  nodownload, forcefallback,       
                                                                  nopromote]                       
  build.cmake_prefix_path        []                                                                List of additional prefixes for cmake to search
  build.pkg_config_path          []                                                                List of additional paths for pkg-config to search
  
  Backend options                Default Value                    Possible Values                  Description
  ---------------                -------------                    ---------------                  -----------
  backend_max_links              0                                >=0                              Maximum number of linker processes to run or 0 for no limit
  
  Base options                   Default Value                    Possible Values                  Description
  ------------                   -------------                    ---------------                  -----------
  b_asneeded                     true                             [true, false]                    Use -Wl,--as-needed when linking
  b_colorout                     always                           [auto, always, never]            Use colored output
  b_coverage                     false                            [true, false]                    Enable coverage tracking.
  b_lto                          false                            [true, false]                    Use link time optimization
  b_lto_threads                  0                                                                 Use multiple threads for Link Time Optimization
  b_lundef                       true                             [true, false]                    Use -Wl,--no-undefined when linking
  b_ndebug                       false                            [true, false, if-release]        Disable asserts
  b_pch                          true                             [true, false]                    Use precompiled headers
  b_pgo                          off                              [off, generate, use]             Use profile guided optimization
  b_pie                          false                            [true, false]                    Build executables as position independent
  b_sanitize                     none                             [none, address, thread,          Code sanitizer to use
                                                                  undefined, memory,               
                                                                  address,undefined]               
  b_staticpic                    true                             [true, false]                    Build static libraries as position independent
  
  Compiler options               Default Value                    Possible Values                  Description
  ----------------               -------------                    ---------------                  -----------
  c_args                         []                                                                Extra arguments passed to the c compiler
  c_link_args                    []                                                                Extra arguments passed to the c linker
  c_std                          gnu11                            [none, c89, c99, c11, c17, c18,  C language standard to use
                                                                  c2x, gnu89, gnu99, gnu11,        
                                                                   gnu17, gnu18, gnu2x]            
  build.c_args                   []                                                                Extra arguments passed to the c compiler
  build.c_link_args              []                                                                Extra arguments passed to the c linker
  build.c_std                    none                             [none, c89, c99, c11, c17, c18,  C language standard to use
                                                                  c2x, gnu89, gnu99, gnu11,        
                                                                   gnu17, gnu18, gnu2x]            
  
  python module options          Default Value                    Possible Values                  Description
  ---------------------          -------------                    ---------------                  -----------
  python.install_env             prefix                           [auto, prefix, system, venv]     Which python environment to install to
  python.platlibdir                                                                                Directory for site-specific, platform-specific files.
  python.purelibdir                                                                                Directory for site-specific, non-platform-specific files.
  
  Directories                    Default Value                    Possible Values                  Description
  -----------                    -------------                    ---------------                  -----------
  bindir                         bin                                                               Executable directory
  datadir                        share                                                             Data file directory
  includedir                     include                                                           Header file directory
  infodir                        share/info                                                        Info page directory
  libdir                         lib                                                               Library directory
  libexecdir                     libexec                                                           Library executable directory
  localedir                      share/locale                                                      Locale data directory
  localstatedir                  /var                                                              Localstate data directory
  mandir                         share/man                                                         Manual page directory
  prefix                         /usr                                                              Installation prefix
  sbindir                        sbin                                                              System executable directory
  sharedstatedir                 /var/lib                                                          Architecture-independent data directory
  sysconfdir                     /etc                                                              Sysconf data directory
  
  Testing options                Default Value                    Possible Values                  Description
  ---------------                -------------                    ---------------                  -----------
  errorlogs                      true                             [true, false]                    Whether to print the logs from failing tests
  stdsplit                       true                             [true, false]                    Split stdout and stderr in test logs
  
  Project options                Default Value                    Possible Values                  Description
  ---------------                -------------                    ---------------                  -----------
  acl                            auto                             [auto, true, false]              libacl support
  adm-gid                        -1                                                                soft-static allocation for the "adm" group
  adm-group                      true                             [true, false]                    the ACL for adm group should be added
  analyze                        true                             [true, false]                    install systemd-analyze
  apparmor                       auto                             [auto, true, false]              AppArmor support
  audio-gid                      -1                                                                soft-static allocation for the "audio" group
  audit                          auto                             [auto, true, false]              libaudit support
  backlight                      true                             [true, false]                    support for restoring backlight state
  bashcompletiondir                                                                                directory for bash completion scripts ["no" disables]
  binfmt                         true                             [true, false]                    support for custom binary formats
  blkid                          auto                             [auto, true, false]              libblkid support
  bpf-framework                  auto                             [auto, true, false]              build BPF programs from source code in restricted C
  bump-proc-sys-fs-file-max      true                             [true, false]                    bump /proc/sys/fs/file-max to LONG_MAX
  bump-proc-sys-fs-nr-open       true                             [true, false]                    bump /proc/sys/fs/nr_open to INT_MAX
  bzip2                          auto                             [auto, true, false]              bzip2 compression support
  cdrom-gid                      -1                                                                soft-static allocation for the "cdrom" group
  certificate-root               /etc/ssl                                                          the prefix for TLS certificates
  clock-valid-range-usec-max     473364000000000                                                   maximum value in microseconds for the difference between RTC and
                                                                                                   epoch, exceeding which is considered an RTC error
  compat-mutable-uid-boundaries  false                            [true, false]                    look at uid boundaries in /etc/login.defs for compatibility
  container-uid-base-max         1878982656                                                        maximum container UID base
  container-uid-base-min         524288                                                            minimum container UID base
  coredump                       true                             [true, false]                    install the coredump handler
  create-log-dirs                true                             [true, false]                    create /var/log/journal{,/remote}
  cryptolib                      auto                             [auto, openssl, gcrypt]          whether to use openssl or gcrypt where both are supported
  dbus                           auto                             [auto, true, false]              libdbus support (for tests only)
  dbus-interfaces-dir                                                                              export D-Bus introspection XML as standalone files
  dbuspolicydir                                                                                    D-Bus policy directory
  dbussessionservicedir                                                                            D-Bus session service directory
  dbussystemservicedir                                                                             D-Bus system service directory
  debug-extra                    []                               [hashmap, mmap-cache, siphash]   enable extra debugging
  debug-shell                    /bin/sh                                                           path to debug shell binary
  debug-tty                      /dev/tty9                                                         specify the tty device for debug shell
  default-dns-over-tls           no                               [yes, opportunistic, no]         default DNS-over-TLS mode
  default-dnssec                 allow-downgrade                  [yes, allow-downgrade, no]       default DNSSEC mode
  default-hierarchy              unified                          [legacy, hybrid, unified]        default cgroup hierarchy
  default-kill-user-processes    true                             [true, false]                    the default value for KillUserProcesses= setting
  default-llmnr                  yes                              [yes, resolve, no]               default LLMNR mode
  default-locale                                                                                   default locale used when /etc/locale.conf does not exist
  default-mdns                   yes                              [yes, resolve, no]               default MulticastDNS mode
  default-net-naming-scheme      latest                                                            default net.naming-scheme= value
  default-user-shell             /bin/bash                                                         default interactive shell
  dev-kvm-mode                   0666                                                              /dev/kvm access mode
  dialout-gid                    -1                                                                soft-static allocation for the "dialout" group
  disk-gid                       -1                                                                soft-static allocation for the "disk" group
  dns-over-tls                   auto                             [auto, gnutls, openssl, true,    DNS-over-TLS support
                                                                  false]                           
  dns-servers                    1.1.1.1#cloudflare-dns.com                                        space-separated list of default DNS servers
                                 8.8.8.8#dns.google                                                
                                 1.0.0.1#cloudflare-dns.com                                        
                                 8.8.4.4#dns.google                                                
                                 2606:4700:4700::1111#cloudflare-                                  
                                 dns.com                                                           
                                 2001:4860:4860::8888#dns.google                                   
                                 2606:4700:4700::1001#cloudflare-                                  
                                 dns.com                                                           
                                 2001:4860:4860::8844#dns.google                                   
  docdir                                                                                           documentation directory
  dynamic-uid-max                65519                                                             maximum dynamic UID
  dynamic-uid-min                61184                                                             minimum dynamic UID
  efi                            true                             [true, false]                    enable systemd-boot and bootctl
  efi-cflags                     []                                                                additional flags for EFI compiler
  efi-color-edit                 black,lightgray                                                   boot loader color for option line edit
  efi-color-entry                lightgray,black                                                   boot loader color for entries
  efi-color-highlight            black,lightgray                                                   boot loader color for selected entries
  efi-color-normal               lightgray,black                                                   general boot loader color in "foreground,background" form, see
                                                                                                   constants from eficon.h
  efi-includedir                 /usr/include/efi                                                  path to the EFI header directory
  efi-ld                         auto                             [auto, bfd, gold]                the linker to use for EFI modules
  efi-libdir                                                                                       path to the EFI lib directory
  efi-tpm-pcr-compat             false                            [true, false]                    Measure kernel command line also into TPM PCR 8 (in addition to
                                                                                                   12)
  elfutils                       auto                             [auto, true, false]              elfutils support
  environment-d                  true                             [true, false]                    support for environment.d
  extra-net-naming-schemes                                                                         comma-separated list of extra net.naming-scheme= definitions
  fallback-hostname              localhost                                                         the hostname used if none configured
  fdisk                          auto                             [auto, true, false]              libfdisk support
  fexecve                        false                            [true, false]                    use fexecve() to spawn children
  firstboot                      true                             [true, false]                    support for firstboot mechanism
  fuzz-tests                     false                            [true, false]                    run the fuzzer regression tests by default (with sanitizers)
  gcrypt                         auto                             [auto, true, false]              gcrypt support
  glib                           auto                             [auto, true, false]              libglib support (for tests only)
  gnu-efi                        auto                             [auto, true, false]              gnu-efi support for sd-boot
  gnutls                         auto                             [auto, true, false]              gnutls support
  group-render-mode              0666                                                              Access mode for devices owned by render group (e.g.
                                                                                                   /dev/dri/renderD*, /dev/kfd).
  gshadow                        true                             [true, false]                    support for shadow group
  hibernate                      true                             [true, false]                    support for hibernation
  homed                          auto                             [auto, true, false]              install the systemd-homed stack
  hostnamed                      true                             [true, false]                    install the systemd-hostnamed stack
  html                           false                            [auto, true, false]              build and install html pages
  hwdb                           true                             [true, false]                    support for the hardware database
  idn                            true                             [true, false]                    use IDN when printing hostnames
  ima                            true                             [true, false]                    IMA support
  importd                        auto                             [auto, true, false]              install the systemd-importd daemon
  initrd                         true                             [true, false]                    install services for use when running systemd in initrd
  input-gid                      -1                                                                soft-static allocation for the "input" group
  install-sysconfdir             true                             [true, no-samples, false]        install configuration files and directories to $sysconfdir
  install-tests                  false                            [true, false]                    install test executables
  kernel-install                 true                             [true, false]                    install kernel-install and associated files
  kexec-path                                                                                       path to kexec
  kmem-gid                       -1                                                                soft-static allocation for the "kmem" group
  kmod                           auto                             [auto, true, false]              support for loadable modules
  kmod-path                                                                                        path to kmod
  kvm-gid                        -1                                                                soft-static allocation for the "kvm" group
  ldconfig                       true                             [true, false]                    support for dynamic linker cache creation
  libcryptsetup                  auto                             [auto, true, false]              libcryptsetup support
  libcryptsetup-plugins          auto                             [auto, true, false]              libcryptsetup LUKS2 external token handlers support (plugins)
  libcryptsetup-plugins-dir                                                                        directory for libcryptsetup plugins
  libcurl                        auto                             [auto, true, false]              libcurl support
  libfido2                       auto                             [auto, true, false]              FIDO2 support
  libidn                         auto                             [auto, true, false]              libidn support
  libidn2                        auto                             [auto, true, false]              libidn2 support
  libiptc                        auto                             [auto, true, false]              libiptc support
  link-boot-shared               true                             [true, false]                    link bootctl and systemd-bless-boot against libsystemd-shared.so
  link-networkd-shared           true                             [true, false]                    link systemd-networkd and its helpers to libsystemd-shared.so
  link-systemctl-shared          true                             [true, false]                    link systemctl against libsystemd-shared.so
  link-timesyncd-shared          true                             [true, false]                    link systemd-timesyncd and its helpers to libsystemd-shared.so
  link-udev-shared               true                             [true, false]                    link systemd-udev and its helpers to libsystemd-shared.so
  llvm-fuzz                      false                            [true, false]                    build against LLVM libFuzzer
  loadkeys-path                                                                                    path to loadkeys
  localed                        true                             [true, false]                    install the systemd-localed stack
  localegen-path                                                                                   absolute path to the locale-gen binary in case the system is
                                                                                                   using locale-gen
  log-trace                      false                            [true, false]                    enable low level debug logging
  logind                         true                             [true, false]                    install the systemd-logind stack
  lp-gid                         -1                                                                soft-static allocation for the "lp" group
  lz4                            auto                             [auto, true, false]              lz4 compression support
  machined                       true                             [true, false]                    install the systemd-machined stack
  man                            false                            [auto, true, false]              build and install man pages
  memory-accounting-default      true                             [true, false]                    enable MemoryAccounting= by default
  microhttpd                     auto                             [auto, true, false]              libµhttpd support
  mode                           developer                        [developer, release]             autoenable features suitable for systemd development/release
                                                                                                   builds
  mount-path                                                                                       path to mount
  networkd                       true                             [true, false]                    install the systemd-networkd stack
  nobody-group                   nobody                                                            The name of the nobody group (the one with GID 65534)
  nobody-user                    nobody                                                            The name of the nobody user (the one with UID 65534)
  nologin-path                                                                                     path to nologin
  nscd                           true                             [true, false]                    build support for flushing of the nscd caches
  nss-myhostname                 true                             [true, false]                    install nss-myhostname module
  nss-mymachines                 auto                             [auto, true, false]              install nss-mymachines module
  nss-resolve                    auto                             [auto, true, false]              install nss-resolve module
  nss-systemd                    true                             [true, false]                    install nss-systemd module
  ntp-servers                    time1.google.com                                                  space-separated list of default NTP servers
                                 time2.google.com                                                  
                                 time3.google.com                                                  
                                 time4.google.com                                                  
  ok-color                       green                            [black, red, green, yellow,      color of the "OK" status message
                                                                  blue, magenta, cyan, white,      
                                                                   highlight-black, highlight-red, 
                                                                  highlight-green,                 
                                                                   highlight-yellow, highlight-    
                                                                  blue, highlight-magenta,         
                                                                   highlight-cyan, highlight-      
                                                                  white]                           
  oomd                           true                             [true, false]                    install the userspace oom killer
  openssl                        auto                             [auto, true, false]              openssl support
  oss-fuzz                       false                            [true, false]                    build against oss-fuzz
  p11kit                         auto                             [auto, true, false]              p11kit support
  pam                            auto                             [auto, true, false]              PAM support
  pamconfdir                                                                                       directory for PAM configuration ["no" disables]
  pamlibdir                                                                                        directory for PAM modules
  pcre2                          auto                             [auto, true, false]              regexp matching support using pcre2
  pkgconfigdatadir                                                                                 directory for arch-independent pkg-config files
  pkgconfiglibdir                                                                                  directory for standard pkg-config files
  polkit                         auto                             [auto, true, false]              polkit support
  portabled                      true                             [true, false]                    install the systemd-portabled stack
  pstore                         true                             [true, false]                    install the pstore archival tool
  pwquality                      auto                             [auto, true, false]              libpwquality support
  qrencode                       auto                             [auto, true, false]              libqrencode support
  quotacheck                     true                             [true, false]                    support for the quotacheck tools
  quotacheck-path                                                                                  path to quotacheck
  quotaon-path                                                                                     path to quotaon
  randomseed                     true                             [true, false]                    support for restoring random seed
  rc-local                       /etc/rc.local                                                     rc-local
  remote                         auto                             [auto, true, false]              support for "journal over the network"
  render-gid                     -1                                                                soft-static allocation for the "render" group
  repart                         auto                             [auto, true, false]              install the systemd-repart tool
  resolve                        true                             [true, false]                    systemd-resolved stack
  rfkill                         true                             [true, false]                    support for the rfkill tools
  rootlibdir                                                                                       [/usr]/lib/x86_64-linux-gnu or such
  rootprefix                                                                                       override the root prefix [default '/' if split-usr and '/usr'
                                                                                                   otherwise]
  rpmmacrosdir                   lib/rpm/macros.d                                                  directory for rpm macros ["no" disables]
  sbat-distro                    auto                                                              SBAT distribution ID, e.g. fedora, or auto for autodetection
  sbat-distro-generation         1                                                                 SBAT distribution generation
  sbat-distro-pkgname                                                                              SBAT distribution package name, e.g. systemd
  sbat-distro-summary                                                                              SBAT distribution summary, e.g. Fedora
  sbat-distro-url                                                                                  SBAT distribution URL, e.g.
                                                                                                   https://src.fedoraproject.org/rpms/systemd
  sbat-distro-version                                                                              SBAT distribution package version, e.g. 248-7.fc34
  seccomp                        auto                             [auto, true, false]              SECCOMP support
  selinux                        auto                             [auto, true, false]              SELinux support
  service-watchdog               3min                                                              default watchdog setting for systemd services
  setfont-path                                                                                     path to setfont
  sgx-gid                        -1                                                                soft-static allocation for the "sgx" group
  shared-lib-tag                                                                                   override the private shared library version tag (defaults to
                                                                                                   project version)
  skip-deps                      false                            [true, false]                    skip optional dependencies
  slow-tests                     false                            [true, false]                    run the slow tests by default
  smack                          true                             [true, false]                    SMACK support
  smack-run-label                                                                                  run systemd --system itself with a specific SMACK label
  split-bin                      auto                             [auto, true, false]              sbin is not a symlink to bin
  split-usr                      auto                             [auto, true, false]              /bin, /sbin aren't symlinks into /usr
  standalone-binaries            false                            [true, false]                    also build standalone versions of supported binaries
  static-libsystemd              false                            [false, true, pic, no-pic]       install a static library for libsystemd
  static-libudev                 false                            [false, true, pic, no-pic]       install a static library for libudev
  status-unit-format-default     description                      [description, name, combined]    use unit name or description in messages by default
  sulogin-path                                                                                     path to sulogin
  support-url                    https://lists.freedesktop.org/ma                                  the support URL to show in catalog entries included in systemd
                                 ilman/listinfo/systemd-devel                                      
  sysext                         true                             [true, false]                    install the systemd-sysext stack
  system-alloc-gid-min           -1                                                                minimum system GID used when allocating
  system-alloc-uid-min           -1                                                                minimum system UID used when allocating
  system-gid-max                 -1                                                                maximum system GID
  system-uid-max                 -1                                                                maximum system UID
  systemd-journal-gid            -1                                                                soft-static allocation for the systemd-journal group
  systemd-network-uid            -1                                                                soft-static allocation for the systemd-network user
  systemd-resolve-uid            -1                                                                soft-static allocation for the systemd-resolve user
  systemd-timesync-uid           -1                                                                soft-static allocation for the systemd-timesync user
  sysupdate                      auto                             [auto, true, false]              install the systemd-sysupdate tool
  sysusers                       true                             [true, false]                    support for the sysusers configuration
  sysvinit-path                  /etc/init.d                                                       the directory where the SysV init scripts are located
  sysvrcnd-path                  /etc/rc.d                                                         the base directory for SysV rcN.d directories
  tape-gid                       -1                                                                soft-static allocation for the "tape" group
  telinit-path                   /lib/sysvinit/telinit                                             path to telinit
  tests                          true                             [true, unsafe, false]            enable extra tests with =unsafe
  time-epoch                     -1                                                                time epoch for time clients
  timedated                      true                             [true, false]                    install the systemd-timedated daemon
  timesyncd                      true                             [true, false]                    install the systemd-timesyncd daemon
  tmpfiles                       true                             [true, false]                    support for tmpfiles.d
  tpm                            true                             [true, false]                    TPM should be used to log events and extend the registers
  tpm2                           auto                             [auto, true, false]              TPM2 support
  translations                   true                             [true, false]                    build and install translations
  tty-gid                        5                                                                 the numeric GID of the "tty" group
  umount-path                                                                                      path to umount
  update-helper-user-timeout     15s                                                               how long to wait for user manager operations
  urlify                         true                             [true, false]                    enable pager Hyperlink ANSI sequence support
  user-path                                                                                        $PATH to use for user sessions
  userdb                         true                             [true, false]                    install the systemd-userdbd stack
  users-gid                      -1                                                                soft-static allocation for the "users" group
  utmp                           true                             [true, false]                    support for utmp/wtmp log handling
  utmp-gid                       -1                                                                soft-static allocation for the "utmp" group
  valgrind                       false                            [true, false]                    do extra operations to avoid valgrind warnings
  vconsole                       true                             [true, false]                    support for vconsole configuration
  version-tag                                                                                      override the git version string
  video-gid                      -1                                                                soft-static allocation for the "video" group
  wheel-gid                      -1                                                                soft-static allocation for the "wheel" group
  wheel-group                    true                             [true, false]                    the ACL for wheel group should be added
  www-target                     www.freedesktop.org:/srv/www.fre                                  the address and dir to upload docs too
                                 edesktop.org/www/software/system                                  
                                 d                                                                 
  xdg-autostart                  true                             [true, false]                    install the xdg-autostart-generator and unit
  xinitrcdir                                                                                       directory for xinitrc files
  xkbcommon                      auto                             [auto, true, false]              xkbcommon keymap support
  xz                             auto                             [auto, true, false]              xz compression support
  zlib                           auto                             [auto, true, false]              zlib compression support
  zshcompletiondir                                                                                 directory for zsh completion scripts ["no" disables]
  zstd                           auto                             [auto, true, false]              zstd compression support

As you can see it is quite comprehensive :-)

Even if the various components are all enabled (as they are for most distributions) there's still no need to use them — other programs can be substituted in instead, as per the UNIX Philosophy.

But it is still trying to do more than what an init system needs to do and programs are being built around it as hard dependencies, it has surpassed being just an init system as you have pointed out here, compared to System V. Gentoo has a nice wiki on this subject worth a read: https://wiki.gentoo.org/wiki/Hard_depen … on_systemd

Last edited by hevidevi (2022-04-16 08:59:35)

Offline

#10 2022-04-16 09:08:56

Head_on_a_Stick
Member
From: London
Registered: 2019-03-24
Posts: 3,125  
Website

Re: Why don't we just fork systemd and remove unneccessary bloat?

hevidevi wrote:

But it is still trying to do more than what an init system needs to do

The systemd team are developing an entire suite of utilities to control a Linux system. Those utilities do not have to be used. For example it is perfectly possible to boot Debian with systemd as PID1 and then hand over to runit for the service management and from that point on avoid any systemd tools:

https://packages.debian.org/bullseye/runit-run

Having the same team develop both the init system and user space utilities is standard practice in true UNIX® systems.


Brianna Ghey — Rest In Power

Offline

#11 2022-04-16 09:19:59

hevidevi
Member
Registered: 2021-09-17
Posts: 230  

Re: Why don't we just fork systemd and remove unneccessary bloat?

Head_on_a_Stick wrote:
hevidevi wrote:

But it is still trying to do more than what an init system needs to do

The systemd team are developing an entire suite of utilities to control a Linux system. Those utilities do not have to be used. For example it is perfectly possible to boot Debian with systemd as PID1 and then hand over to runit for the service management and from that point on avoid any systemd tools:

https://packages.debian.org/bullseye/runit-run

Having the same team develop both the init system and user space utilities is standard practice in true UNIX® systems.

Having the same team go against unix philosophy is quite the conundrum don't you think? Why was  Devuan created ?

There is nothing simple, short, clear, modular, and extensible about systemd in my opinion.

Last edited by hevidevi (2022-04-16 09:23:46)

Offline

#12 2022-04-16 09:49:57

Head_on_a_Stick
Member
From: London
Registered: 2019-03-24
Posts: 3,125  
Website

Re: Why don't we just fork systemd and remove unneccessary bloat?

I would agree with it not being simple, short or clear but systemd is certainly modular:

archie:~$ systemd-#<tab>
systemd-analyze                         systemd-machine-id-setup       
systemd-ask-password                    systemd-mount                  
systemd-cat                             systemd-notify                 
systemd-cgls                            systemd-nspawn                 
systemd-cgtop                           systemd-path                   
systemd-creds                           systemd-repart                 
systemd-cryptenroll                     systemd-resolve                
systemd-delta                           systemd-run                    
systemd-detect-virt                     systemd-socket-activate        
systemd-dissect                         systemd-stdio-bridge           
systemd-escape                          systemd-sysext                 
systemd-firstboot                       systemd-sysusers               
systemd-hwdb                            systemd-tmpfiles               
systemd-id128                           systemd-tty-ask-password-agent 
systemd-inhibit                         systemd-umount

^ They're all separate tools, most of which can be disabled at compile time, and almost all of them are optional.

In my Arch box I'm not using systemd-networkd but I am using systemd-resolved. I don't use systemd-homed or machinectl (which is actually packaged separately in Debian), nor am I forced to use most other components.

In my Alpine box I'm using gummiboot as a bootloader and that is created from the systemd-boot codebase (after patching to work under musl libc) so the modularity is also portable :-)


Brianna Ghey — Rest In Power

Offline

#13 2022-04-16 10:01:27

hevidevi
Member
Registered: 2021-09-17
Posts: 230  

Re: Why don't we just fork systemd and remove unneccessary bloat?

Head_on_a_Stick wrote:

I would agree with it not being simple, short or clear but systemd is certainly modular:

archie:~$ systemd-#<tab>
systemd-analyze                         systemd-machine-id-setup       
systemd-ask-password                    systemd-mount                  
systemd-cat                             systemd-notify                 
systemd-cgls                            systemd-nspawn                 
systemd-cgtop                           systemd-path                   
systemd-creds                           systemd-repart                 
systemd-cryptenroll                     systemd-resolve                
systemd-delta                           systemd-run                    
systemd-detect-virt                     systemd-socket-activate        
systemd-dissect                         systemd-stdio-bridge           
systemd-escape                          systemd-sysext                 
systemd-firstboot                       systemd-sysusers               
systemd-hwdb                            systemd-tmpfiles               
systemd-id128                           systemd-tty-ask-password-agent 
systemd-inhibit                         systemd-umount

^ They're all separate tools, most of which can be disabled at compile time, and almost all of them are optional.

In my Arch box I'm not using systemd-networkd but I am using systemd-resolved. I don't use systemd-homed or machinectl (which is actually packaged separately in Debian), nor am I forced to use most other components.

In my Alpine box I'm using gummiboot as a bootloader and that is created from the systemd-boot codebase (after patching to work under musl libc) so the modularity is also portable :-)

systemd-linux coming soon!

In regards to alpinelinux gummiboot ?

https://git.alpinelinux.org/aports/tree … icts.patch

Done in a hurry to fix build with latest gnu-efi, this project is dead and was absorbed into systemd
but there are still users of its EFISTUB file

Offline

#14 2022-04-16 21:49:17

brocashelm
Member
Registered: 2020-06-29
Posts: 112  

Re: Why don't we just fork systemd and remove unneccessary bloat?

Even if it could be "fully removed" from a Debian system and replaced with an init of your choosing, that ship has sailed a long time ago...

Offline

#15 2022-05-28 17:57:00

czeekaj
Member
Registered: 2019-06-12
Posts: 154  

Re: Why don't we just fork systemd and remove unneccessary bloat?

can't wait to have my home directory managed by systemd-homed.
homectl create devuan --storage=luks

simply share your .identity folder between divices and your home directory becomes a modular transferable mount space. This is solving all sorts of problems..

I can't imagine a world where systemd has solved a single problem all it's done is just ended up making things unnecessarily more convoluted.

Offline

Board footer