Both "app-admin/eselect rc show boot" "app-admin/eselect rc list boot" no longer show anything since upgdating to sys-apps/openrc-0.13.7
Created attachment 394146 [details] emerge --info
Which version of app-admin/eselect is that?
app-admin/eselect-1.4.3
The problem is eselect rc (rc-config) looks for /sbin/runscript and openrc changed from /sbin/runscript to /sbin/openrc-run, so doing a grep doesn't find it. From /usr/share/eselect/modules/rc.eselect 40c40,41 < && grep "^#\!/sbin/runscript" "${file}" &>/dev/null --- > && ((grep "^#\!/sbin/runscript" "${file}" &>/dev/null;) > || (grep "^#\!/sbin/openrc-run" "${file}" &>/dev/null;)) Will temporarily fix it so that both work. I copied /usr/share/eselect/modules/rc.eselect into my ~/.eselect/modules dir and made the changes and it works fine.
Created attachment 394170 [details, diff] Patch for eselect-1.4.3 Please test if attached patch fixes the problem.
Patch works for me
Fixed in git, commit 783374a7d24e310fcf0a49e16c10687bd515d66a.
A more generic way probably would have been head -1 "${file}" | grep "^#\!" &>/dev/null as ONLY the first line should be being looked at and if it has a shebang then add it, that way it wouldn't matter if even /bin/sh or <whatever binary> was being used. That's a special directory that shouldn't be used other than to start daemon style processes.
(In reply to Don O from comment #8) > A more generic way probably would have been > > head -1 "${file}" | grep "^#\!" &>/dev/null > > as ONLY the first line should be being looked at and if it has a shebang > then add it, Right, how about the following? Works in pure bash, without any external tools: [[ -n ${file} \ && ${file%%.sh} = "${file}" \ && ${file%%\~} = "${file}" \ && -x ${file} ]] \ && read line <"${file}" \ && [[ ${line} =~ ^#!.*(runscript|openrc-run) ]] > that way it wouldn't matter if even /bin/sh or <whatever binary> was being > used. That's a special directory that shouldn't be used other than to start > daemon style processes. I want to keep that test somewhat strict. Otherwise, we could simply use "rc-service --list" to obtain the list of services, without any filtering.
(In reply to Ulrich Müller from comment #9) > I want to keep that test somewhat strict. Otherwise, we could simply use > "rc-service --list" to obtain the list of services, without any filtering. Using rc-service --list would probably be the best way to go for this. Using rc-service/openrc/rc-update/rc-status etc is the way I recommend working with OpenRC rather than trying to guess what is going on in the filesystem yourself.
Fixed in version 1.4.4. Thank you for reporting.