eselect rc / rc-config looks broken with 'app-admin/eselect-1.4.29'. # eselect rc show default Status of init scripts in runlevel "default" /usr/share/eselect/modules/rc.eselect: line 71: service_stopping: command not found ... (same output line repeated 5 times for any service in default runlevel.) See also the report on reddit -- URL above. https://www.reddit.com/r/Gentoo/comments/1jc3ahe/eselect_rc_error/ Reproducible: Always Portage 3.0.67 (python 3.12.9-final-0, default/linux/amd64/23.0/no-multilib, gcc-14, glibc-2.40-r8, 6.12.16-gentoo-docker x86_64) ================================================================= System Settings ================================================================= System uname: Linux-6.12.16-gentoo-docker-x86_64-Intel-R-_Core-TM-_i7-4702MQ_CPU_@_2.20GHz-with-glibc2.40 KiB Mem: 16109828 total, 11267516 free KiB Swap: 16777212 total, 16777212 free Timestamp of repository gentoo: Sun, 16 Mar 2025 13:18:41 +0000 Head commit of repository gentoo: d2025acb1869f5dfbbff8f4c5ccd4e5b83e05009 Timestamp of repository php-overlay: Sun, 16 Mar 2025 13:08:27 +0000 Head commit of repository php-overlay: 129342c465756e5d949ac04a60c7694f37c4304c Timestamp of repository guru: Sat, 15 Mar 2025 10:48:19 +0000 Head commit of repository guru: 28d39b2aafa03a33f6fa34755cbdc841c32b259c Timestamp of repository nest: Sat, 15 Mar 2025 17:03:17 +0000 Head commit of repository nest: f6a87d8322e1420d5ded2ca3edd4a8675545c8db Timestamp of repository pf4public: Fri, 14 Mar 2025 19:48:26 +0000 Head commit of repository pf4public: b4af07ba8f13bfb6aeaeaedf2866f0c53d6d3d31 Timestamp of repository xwing: Sat, 15 Mar 2025 16:18:20 +0000 Head commit of repository xwing: 0a1ae645b67058e845ab3253fd71dce371aa9579 sh bash 5.2_p37 ld GNU ld (Gentoo 2.43 p3) 2.43.1 app-misc/pax-utils: 1.3.8::gentoo app-shells/bash: 5.2_p37::gentoo dev-build/autoconf: 2.13-r8::gentoo, 2.71-r7::gentoo, 2.72-r1::gentoo dev-build/automake: 1.16.5-r2::gentoo, 1.17-r1::gentoo dev-build/cmake: 3.31.5::gentoo dev-build/libtool: 2.5.4::gentoo dev-build/make: 4.4.1-r100::gentoo dev-build/meson: 1.7.0::gentoo dev-java/java-config: 2.3.4::gentoo dev-lang/perl: 5.40.0-r1::gentoo dev-lang/python: 3.12.9::gentoo, 3.13.2::gentoo dev-lang/rust: 1.84.1-r1::gentoo llvm-core/clang: 18.1.8-r6::gentoo, 19.1.7::gentoo llvm-core/lld: 18.1.8::gentoo, 19.1.7::gentoo llvm-core/llvm: 18.1.8-r6::gentoo, 19.1.7::gentoo sys-apps/baselayout: 2.17::gentoo sys-apps/openrc: 0.56::gentoo sys-apps/sandbox: 2.39::gentoo sys-devel/binutils: 2.43-r2::gentoo, 2.44::gentoo sys-devel/binutils-config: 5.5.2::gentoo sys-devel/gcc: 14.2.1_p20241221::gentoo sys-devel/gcc-config: 2.12.1::gentoo sys-kernel/linux-headers: 6.12::gentoo (virtual/os-headers) sys-libs/glibc: 2.40-r8::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: git sync-uri: https://anongit.gentoo.org/git/repo/sync/gentoo.git priority: -1000 volatile: False php-overlay location: /var/db/repos/php-overlay sync-type: git sync-uri: https://github.com/gentoo-mirror/php-overlay.git masters: gentoo priority: -500 volatile: False guru location: /var/db/repos/guru sync-type: git sync-uri: https://github.com/gentoo-mirror/guru.git masters: gentoo priority: -100 volatile: False nest location: /var/db/repos/nest sync-type: git sync-uri: https://github.com/gentoo-mirror/nest.git masters: gentoo volatile: False pf4public location: /var/db/repos/pf4public sync-type: git sync-uri: https://github.com/gentoo-mirror/pf4public.git masters: gentoo volatile: False xwing location: /var/db/repos/xwing sync-type: git sync-uri: https://github.com/gentoo-mirror/xwing.git masters: gentoo volatile: False localrepo location: /var/db/repos/overlay/localrepo masters: gentoo priority: 10 volatile: False Installed sets: @audio, @cloud, @dev, @emacs, @emul, @fonts, @gkrellm, @graphix, @net, @office, @utilz, @video, @web, @webdev, @xfce ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=haswell -pipe -O2 -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/qualified.txt /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php8.2/ext-active/ /etc/php/cgi-php8.2/ext-active/ /etc/php/cli-php8.2/ext-active/ /etc/php/fpm-php8.2/ext-active/ /etc/php/phpdbg-php8.2/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=haswell -pipe -O2 -fomit-frame-pointer" DISTDIR="/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-march=haswell -pipe -O2 -fomit-frame-pointer" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-march=haswell -pipe -O2 -fomit-frame-pointer" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs" LEX="flex" LINGUAS="" MAKEOPTS="-j9" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" SHELL="/bin/bash" USE="alsa amd64 apng bittorrent bluetooth btrfs bzip2 cacert calendar caps cddb cdio cet clang corefonts crypt cups curl cvs dav1d dbus device-mapper djvu dvd dynamic-loading ebook elogind emacs eme-free enchant fam fbcon ffmpeg fpm gdbm git glamor gnome-keyring gnutls gpm graphicsmagick gtk3 gtkstyle gui h323 hddtemp heif http hunspell iconv icu id3tag imagemagick introspection ipv6 jabber jit jpeg jumbo-build kpathsea ladspa laptop latex lcms libnotify libsamplerate libtirpc libxml2 lm_sensors lto luks1_default mariadb mng mp3 mplayer musepack musicbrainz mysql mysqli ncurses networkmanager nls npm ntfs ntfsprogs objc objc++ ogg openmp openvg opus pam pcre pgo png policykit postscript ppds python3 readline rtmp scanner sdl seamonkey seccomp sourceview sql sqlite sqlitessh ssl svg svg2 system-av1 system-bootstrap system-cmark system-crontab system-ffmpeg system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-libyaml system-llvm system-mesa system-sqlite system-ssl system-webp system-zlib test-rust threads tordns tree-sitter truetype udisks unicode v4l v4l2 video vlc vorbis wavpack webp xattr xcb xcomposite xetex xfce xfs xkb xmp xorg xvfb zlib zstd" ABI_X86="64" ADA_TARGET="gcc_14" ALSA_CARDS="hda-intel usb-audio" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="pc" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="keyboard mouse libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-4" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby31" SANE_BACKENDS="epson2 epkowa hp" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS ================================================================= Package Settings ================================================================= app-admin/eselect-1.4.29::gentoo was built with the following: USE="emacs -doc -vim-syntax" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
I have to wonder why this eselect module even exists. People should just use OpenRC commands directly.
(In reply to Mike Gilbert from comment #1) > I have to wonder why this eselect module even exists. People should just use > OpenRC commands directly. Sure, but: # ls -l $(which rc-config) lrwxrwxrwx 1 root root 7 Mar 9 21:23 /usr/bin/rc-config -> eselect
(In reply to sphakka from comment #2) My point stands: I don't understand why rc-config/rc.eselect exists. The functionality is already provided by the rc-status, rc-service, and rc-update commands provided by OpenRC. I would suggest dropping rc-config/rc.eselect from app-admin/eselect.
Patches are welcome.
When navi and I discussed this briefly, I think we agreed it should probably go.
(In reply to Ulrich Müller from comment #4) > Patches are welcome. To elaborate on this, the rc.eselect module predates OpenRC, i.e. it already existed when I took over as eselect maintainer in 2009. I've done a minimum of maintenance to make the module work (see bug 180966, for example) and to keep it working with OpenRC. Going forward, I see three possible options: - The rc module gets a dedicated maintainer who is familiar with OpenRC internals. In this case, it should presumably be removed from eselect proper and moved to its own package. - We keep going with the bug-fixing mode that has worked (maybe just barely) for th e past years. I am happy to accept patches. - We drop the module altogether. I that case, I want to ask whether OpenRC itself provides all functionality of the module?
> - We drop the module altogether. I that case, I want to ask whether OpenRC > itself provides all functionality of the module? out of the eselect rc actions: add, delete, list -> rc-update show -> rc-status start, stop, reload, pause -> rc-service the only thing to note is the api is different for rc-service: `eselect rc <start|stop|restart|reload> $service` is `rc-service $service [command ...]` meaning you can't start/stop/restart multiple services with one command, the other commands have pretty similar syntax to the eselect module
Created attachment 921591 [details, diff] Patch for rc.eselect @sphakka: Does attached patch fix the problem for you?
(In reply to Ulrich Müller from comment #8) > Created attachment 921591 [details, diff] [details, diff] > Patch for rc.eselect > > @sphakka: Does attached patch fix the problem for you? Yeah, it works, thanks!
So I'll fix this bug, but also add a deprecation warning that rc-update, rc-service and rc-status should be used instead of rc.eselect. Then we can phase out the module after some transition time. (Unless there would be massive protests against removal, in which case I would reconsider but also ask the protesters to take over maintenance.)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/eselect.git/commit/?id=3bd8467f3b942e550d13efe7a98a230c7436d2a5 commit 3bd8467f3b942e550d13efe7a98a230c7436d2a5 Author: Ulrich Müller <ulm@gentoo.org> AuthorDate: 2025-03-22 05:39:51 +0000 Commit: Ulrich Müller <ulm@gentoo.org> CommitDate: 2025-03-22 05:39:51 +0000 Fix PATH in rc module * modules/rc.eselect (show_script_status): Add /usr/libexec/rc/bin to PATH. Display the correct status. Bug 951499. Bug: https://bugs.gentoo.org/951499 Signed-off-by: Ulrich Müller <ulm@gentoo.org> ChangeLog | 5 +++++ modules/rc.eselect | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1965f2c3022ad7d7a82d73f0c2817f41deff161 commit c1965f2c3022ad7d7a82d73f0c2817f41deff161 Author: Ulrich Müller <ulm@gentoo.org> AuthorDate: 2025-03-22 12:16:03 +0000 Commit: Ulrich Müller <ulm@gentoo.org> CommitDate: 2025-03-22 14:15:49 +0000 app-admin/eselect: add 1.4.30 Closes: https://bugs.gentoo.org/951499 Signed-off-by: Ulrich Müller <ulm@gentoo.org> app-admin/eselect/Manifest | 1 + app-admin/eselect/eselect-1.4.30.ebuild | 61 +++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+)