Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 951499 - app-admin/eselect-1.4.29: rc-config show broken: /usr/share/eselect/modules/rc.eselect: line 71: service_stopping: command not found
Summary: app-admin/eselect-1.4.29: rc-config show broken: /usr/share/eselect/modules/r...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Gentoo eselect Team
URL: https://www.reddit.com/r/Gentoo/comme...
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2025-03-17 15:58 UTC by sphakka
Modified: 2025-03-26 10:33 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch for rc.eselect (rc.eselect.diff,449 bytes, patch)
2025-03-21 19:30 UTC, Ulrich Müller
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description sphakka 2025-03-17 15:58:50 UTC
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"
Comment 1 Mike Gilbert gentoo-dev 2025-03-21 18:09:32 UTC
I have to wonder why this eselect module even exists. People should just use OpenRC commands directly.
Comment 2 sphakka 2025-03-21 18:15:42 UTC
(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
Comment 3 Mike Gilbert gentoo-dev 2025-03-21 18:41:11 UTC
(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.
Comment 4 Ulrich Müller gentoo-dev 2025-03-21 18:54:52 UTC
Patches are welcome.
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-03-21 18:56:48 UTC
When navi and I discussed this briefly, I think we agreed it should probably go.
Comment 6 Ulrich Müller gentoo-dev 2025-03-21 19:15:54 UTC
(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?
Comment 7 Anna 2025-03-21 19:20:43 UTC
> - 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
Comment 8 Ulrich Müller gentoo-dev 2025-03-21 19:30:20 UTC
Created attachment 921591 [details, diff]
Patch for rc.eselect

@sphakka: Does attached patch fix the problem for you?
Comment 9 sphakka 2025-03-21 19:54:32 UTC
(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!
Comment 10 Ulrich Müller gentoo-dev 2025-03-21 20:40:54 UTC
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.)
Comment 11 Larry the Git Cow gentoo-dev 2025-03-22 05:55:20 UTC
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(-)
Comment 12 Larry the Git Cow gentoo-dev 2025-03-22 14:16:38 UTC
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(+)