Compare commits

...

31 Commits
0.22.2 ... 0.23

Author SHA1 Message Date
William Hubbs
a15cff21c6 update ChangeLog 2016-12-20 12:34:22 -06:00
Doug Freed
45aa36cc62 librc: detect loops in stacked runlevels and abort
This fixes #109.
X-Gentoo-Bug: 558700
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=558700
2016-12-19 18:24:31 -06:00
William Hubbs
d3f833179b sh/init.sh.Linux.in: remove unused check for Gnu/KFreeBSD
This script only runs on Linux, so the check will always be false.
2016-12-18 11:53:12 -06:00
William Hubbs
abe552b969 modules: get rid of printing each module on Linux
Now that we respect the module blacklists, don't print every module we
try to load, because it might not end up loaded due to the blacklist,
and modprobe doesn't consider that a failure.
2016-12-17 19:21:13 -06:00
Doug Freed
856eafb006 sh/init.sh.Linux.in: skip /proc test if no md5sum
This will also warn users if md5sum is missing, which serves as a pretty
good indicator that /usr is not mounted.
2016-12-17 23:27:37 +00:00
Robin H. Johnson
f27d60add9 sh/openrc-run.sh: expose default start/stop/status
Supervisor setups break easily when start/stop/status functions are not
default.

Applications that write multiple PIDs to a pidfile (eg HAProxy as
described in bug 601540), can also benefit from being able to call the
default start/stop/status with modified environment variables.

Expose the default start/stop/status functions as
default_start/stop/status, and use them for the defaults
start/stop/status.

Trivial usage example:
```
  stop()
  {
    t=$(mktemp)
    for pid in $(cat $pidfile) ; do
      echo $pid >$t
      pidfile=$t default_stop
    done
    rm -f $t
  }
```

X-Gentoo-Bug: 601540
X-Gentoo-Bug-URL: https://bugs.gentoo.org/601540
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2016-12-17 14:50:11 -08:00
Doug Freed
8ad460c54c Fix typos
Fixes #99
2016-12-17 18:41:02 +00:00
Doug Freed
72c0824961 localmount: add comment about types variable 2016-12-17 18:39:53 +00:00
Alan Somers
5b7e3490ef Localmount shouldn't mount remote filesystems
The /etc/init.d/localmount script has a syntax error that causes it to
attempt to mount remote filesystems, causing the boot to fail. The
script appends a "no" to each remote filesystem type, but it should only
be append the "no" to the beginning of the list.  This patch fixes
localmount on FreeBSD 12.0.  A review of the mount(8) manpage on Ubuntu
12.04 suggests that this patch is correct for Linux, too.
2016-12-17 13:35:58 -05:00
William Hubbs
dd61e6bfc3 rc.conf: fix the commented default setting for rc_logger
X-Gentoo-Bug: 601480
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=601480
2016-12-15 17:52:34 -06:00
Doug Freed
204971c6e2 runlevels: remove bad trailing backslash 2016-12-12 15:13:26 -05:00
William Hubbs
3552f0ae54 man/start-stop-daemon.8: clarify documentation about --pidfile option
The documentation implied that if you stop a daemon we handle multiple
pids in a pid file. This is not correct. We only handle the first pid.

X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=601540
2016-12-05 12:25:52 -06:00
AndCycle
42cb848829 fix manual typo
This fixes #105.
2016-12-02 10:57:10 -06:00
William Hubbs
e0ac661419 split tmpfiles processing into opentmpfiles
The openntmpfiles package is designed so that it can be used on systems
independently of whether openrc is used.
2016-12-01 12:04:54 -06:00
Jason Zaman
6414c3bc39 selinux: fix SIGSEGV with invalid contexts
Fixes: https://github.com/openrc/openrc/issues/104
2016-11-17 12:03:12 -06:00
William Hubbs
4f9bd7e4db init.d/loopback.in: drop the route to the loopback interface on Linux
This is related to #103.
2016-11-03 12:47:01 -05:00
William Hubbs
bf539f2196 init.d/mount-ro: do not remount /usr read only if it is premounted
X-Gentoo-Bug: 573760
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=573760
2016-11-03 12:29:21 -05:00
William Hubbs
20b60ea904 conf.d/net-online: clarify comment about interfaces setting
This setting refers to all interfaces that support ethernet
2016-11-03 11:57:40 -05:00
William Hubbs
f53c8baef3 init.d/net-online: remove interfaces and timeout from local declarations
X-Gentoo-Bug:  598621
X-Gentoo-Bug-URL:  https://bugs.gentoo.org/show_bug.cgi?id=598621
2016-11-03 11:18:20 -05:00
William Hubbs
be06cd250e src/rc/rc: do not try to start services if fork fails 2016-11-01 17:31:57 -05:00
Robin H. Johnson
003657c973 init.d/loopback: drop scope on loopback
Busybox does not support the 'scope' argument on 'ip address add' or 'ip
route add', this is documented in BUSYBOX.md, but is no longer actually
needed, as the kernel does get it right without manual specification,
and the ifconfig variant already relies on the kernel to get it right.
This is part of #103.

X-Gentoo-Bug: 487208
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=487208
2016-10-25 10:49:14 -05:00
William Hubbs
4fd144c0a6 src/rc/rc-misc.c: report error if call to flock() fails
X-Gentoo-Bug: 597390
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=597390
2016-10-24 12:47:49 -05:00
Joe Maloney
c44c904a61 init.d.misc/wpa_supplicant: find wireless interface for FreeBSD
This fixes #101.
2016-10-16 11:10:57 -05:00
Sven Wegener
78146b0e14 do_service: Initialize idx to 0
If index is not explicitly specified for service_started_daemon, it will
look for daemons by random index.

This fixes #100.
2016-10-11 10:30:02 -05:00
William Hubbs
deaae7ab5c init.d/sysfs: load efivarfs module when booting in efi mode:1
The presence of /sys/firmware/efi is used to indicate that the system
was booted in efi mode.
2016-10-05 22:48:17 -05:00
William Hubbs
3d2c2f0b87 init.d/sysfs: fix efivarfs module test 2016-10-04 18:18:17 -05:00
William Hubbs
6a0c033a64 init.d/sysfs: fix efivarfs handling
Separate loading the module, if it isn't built in or loaded, from
mounting the file system.

This also makes sure the warning about configuring the module in
/etc/conf.d/modules or building it in is displayed only if it is loaded
successfully.

X-Gentoo-Bug: 595836
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=595836
2016-10-04 12:06:58 -05:00
Doug Freed
6710316a18 openrc-run: fix double free 2016-09-30 17:29:56 -04:00
Doug Freed
61882821e0 init.d: Clean up some bad ewarn output 2016-09-28 15:00:40 -04:00
William Hubbs
969546bcf0 typo fix
X-Gentoo-Bug: 595306
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=595306
2016-09-27 19:39:02 -05:00
William Hubbs
d0ae7ffc25 version 0.23 2016-09-27 19:38:07 -05:00
36 changed files with 445 additions and 1009 deletions

View File

@@ -22,9 +22,6 @@ or recognize the nofail option in fstab.
CONFIG_SETFONT -- The setfont applet does not support the -u option from kbd.
CONFIG_IP -- The ip applet doesn't support the "scope" modifier for
"ip route add" and "ip address add".
CONFIG_BB_SYSCTL -- The sysctl applet does not support the --system command
line switch.

734
ChangeLog
View File

@@ -1,3 +1,299 @@
commit 45aa36cc623eeeb15fb6827b57e0c07a37cdef41
Author: Doug Freed <dwfreed@mtu.edu>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: detect loops in stacked runlevels and abort
This fixes #109.
X-Gentoo-Bug: 558700
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=558700
commit d3f833179b39368442221c448f90b87f76d28ee8
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
sh/init.sh.Linux.in: remove unused check for Gnu/KFreeBSD
This script only runs on Linux, so the check will always be false.
commit abe552b969b6601f47ba0474f683d8cd80d53c9d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
modules: get rid of printing each module on Linux
Now that we respect the module blacklists, don't print every module we
try to load, because it might not end up loaded due to the blacklist,
and modprobe doesn't consider that a failure.
commit 856eafb006655b7dda630a94cbd16f5db9f781be
Author: Doug Freed <dwfreed@mtu.edu>
Commit: Doug Freed <dwfreed@mtu.edu>
sh/init.sh.Linux.in: skip /proc test if no md5sum
This will also warn users if md5sum is missing, which serves as a pretty
good indicator that /usr is not mounted.
commit f27d60add9ee1ef8a90ea0034edf6f4e4e6d0ed8
Author: Robin H. Johnson <robbat2@gentoo.org>
Commit: Robin H. Johnson <robbat2@gentoo.org>
sh/openrc-run.sh: expose default start/stop/status
Supervisor setups break easily when start/stop/status functions are not
default.
Applications that write multiple PIDs to a pidfile (eg HAProxy as
described in bug 601540), can also benefit from being able to call the
default start/stop/status with modified environment variables.
Expose the default start/stop/status functions as
default_start/stop/status, and use them for the defaults
start/stop/status.
Trivial usage example:
```
stop()
{
t=$(mktemp)
for pid in $(cat $pidfile) ; do
echo $pid >$t
pidfile=$t default_stop
done
rm -f $t
}
```
X-Gentoo-Bug: 601540
X-Gentoo-Bug-URL: https://bugs.gentoo.org/601540
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
commit 8ad460c54ce66aa0900cf872d9ebfacf0c03f9da
Author: Doug Freed <dwfreed@mtu.edu>
Commit: Doug Freed <dwfreed@mtu.edu>
Fix typos
Fixes #99
commit 72c0824961fc257b634a9439496e04d1b3392ef1
Author: Doug Freed <dwfreed@mtu.edu>
Commit: Doug Freed <dwfreed@mtu.edu>
localmount: add comment about types variable
commit 5b7e3490ef2ce96c35e6c18b4c64e8c61586bb7a
Author: Alan Somers <asomers@gmail.com>
Commit: Doug Freed <dwfreed@mtu.edu>
Localmount shouldn't mount remote filesystems
The /etc/init.d/localmount script has a syntax error that causes it to
attempt to mount remote filesystems, causing the boot to fail. The
script appends a "no" to each remote filesystem type, but it should only
be append the "no" to the beginning of the list. This patch fixes
localmount on FreeBSD 12.0. A review of the mount(8) manpage on Ubuntu
12.04 suggests that this patch is correct for Linux, too.
commit dd61e6bfc3fc1da011b01f4f6cf3e45e26c59dc1
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rc.conf: fix the commented default setting for rc_logger
X-Gentoo-Bug: 601480
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=601480
commit 204971c6e2ea1e37fa037e09bff02eea3a07f843
Author: Doug Freed <dwfreed@mtu.edu>
Commit: GitHub <noreply@github.com>
runlevels: remove bad trailing backslash
commit 3552f0ae548d68effd4411ad4080e7b13fe627c5
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
man/start-stop-daemon.8: clarify documentation about --pidfile option
The documentation implied that if you stop a daemon we handle multiple
pids in a pid file. This is not correct. We only handle the first pid.
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=601540
commit 42cb84882918a0c9dd93a89d92b0b4818dfb44b8
Author: AndCycle <andcycle-github@andcycle.idv.tw>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix manual typo
This fixes #105.
commit e0ac661419042cb39c1ccf93df2981504d1e6339
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
split tmpfiles processing into opentmpfiles
The openntmpfiles package is designed so that it can be used on systems
independently of whether openrc is used.
commit 6414c3bc394f86a5d6a5f02c934469e21bbbc923
Author: Jason Zaman <jason@perfinion.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
selinux: fix SIGSEGV with invalid contexts
Fixes: https://github.com/openrc/openrc/issues/104
commit 4f9bd7e4db185ce6debbebb5242344d8ffadc3ae
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d/loopback.in: drop the route to the loopback interface on Linux
This is related to #103.
commit bf539f2196290864ce5c5fd0d679b74ee016e2da
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d/mount-ro: do not remount /usr read only if it is premounted
X-Gentoo-Bug: 573760
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=573760
commit 20b60ea904612669dfb744beffcd8e7e447f69ef
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
conf.d/net-online: clarify comment about interfaces setting
This setting refers to all interfaces that support ethernet
commit f53c8baef3a6215077c00901759cbbcbe8f10e9b
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d/net-online: remove interfaces and timeout from local declarations
X-Gentoo-Bug: 598621
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=598621
commit be06cd250e12e63b8eb704bb2508e06fb9791251
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
src/rc/rc: do not try to start services if fork fails
commit 003657c973ea338a19f2b7294190af9d76cf5cea
Author: Robin H. Johnson <robbat2@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d/loopback: drop scope on loopback
Busybox does not support the 'scope' argument on 'ip address add' or 'ip
route add', this is documented in BUSYBOX.md, but is no longer actually
needed, as the kernel does get it right without manual specification,
and the ifconfig variant already relies on the kernel to get it right.
This is part of #103.
X-Gentoo-Bug: 487208
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=487208
commit 4fd144c0a6526963c70f18cb34a65354c2f0a48c
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
src/rc/rc-misc.c: report error if call to flock() fails
X-Gentoo-Bug: 597390
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=597390
commit c44c904a61418189c989e978b0237e5b161263ef
Author: Joe Maloney <jpm820@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d.misc/wpa_supplicant: find wireless interface for FreeBSD
This fixes #101.
commit 78146b0e14cb57dda8a3aed3d4f8d6b1db7a3c7e
Author: Sven Wegener <swegener@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
do_service: Initialize idx to 0
If index is not explicitly specified for service_started_daemon, it will
look for daemons by random index.
This fixes #100.
commit deaae7ab5c499191426cec81f6e803c972f0cca3
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d/sysfs: load efivarfs module when booting in efi mode:1
The presence of /sys/firmware/efi is used to indicate that the system
was booted in efi mode.
commit 3d2c2f0b871944492036d04b0c220ccba1fa2dd5
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d/sysfs: fix efivarfs module test
commit 6a0c033a64ce18056625cd37a94b9810dc5784e3
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
init.d/sysfs: fix efivarfs handling
Separate loading the module, if it isn't built in or loaded, from
mounting the file system.
This also makes sure the warning about configuring the module in
/etc/conf.d/modules or building it in is displayed only if it is loaded
successfully.
X-Gentoo-Bug: 595836
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=595836
commit 6710316a18c33601e780282e72c60f09b5175280
Author: Doug Freed <dwfreed@mtu.edu>
Commit: Doug Freed <dwfreed@mtu.edu>
openrc-run: fix double free
commit 61882821e0d6110a2ca2f67fad7c362983a85cf0
Author: Doug Freed <dwfreed@mtu.edu>
Commit: Doug Freed <dwfreed@mtu.edu>
init.d: Clean up some bad ewarn output
commit 969546bcf0203379db286be21c7f709d27cc73b0
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
typo fix
X-Gentoo-Bug: 595306
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=595306
commit d0ae7ffc2534fa65c2e8927931f5107ce4505ca6
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.23
commit b71bcc242202752bc74fce3a5c629f172b04fca5
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 24010dcb483cf7284cd8a5db111ae63f0d4e1038
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -1101,441 +1397,3 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
maintenance.
[1] https://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html
commit 065f034059d7ca26bbb985158c5d361ff75df186
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
format fix
commit fe32ef8e09a2edf2690a3b281cea0be84a5541ca
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
FEATURE-REMOVAL-SCHEDULE: create section for librc API functions
commit c45313dfa9880c4aedb72da1b2ac3159eee05a93
Author: Rick Farina (Zero_Chaos) <zerochaos@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
netmount: use want dependency to start nfsclient
add in parsing of fstab to determine if nfsclient should be automatically
started so that netmount can mount nfs without adding nfsclient
to the default runlevel
This fixes #71.
commit 3ef2bbfb19fe3ca0c169f9dcf48b70a59321a5d1
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Add note about deprecating rc_getline()
commit cc9c23c8484ea7d07b1f8e54bcab46cc31ec727d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Complete support for rc.conf.d
- gendepends.sh needs to read this directory to allow dependencies to be
overridden
- init.sh for Linux and Bsd need to read it to allow config settings
they use to be overridden.
commit 935252b1152b4086ccbe76ace21e677d7ac8a357
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Add note about removing rc_sys() from librc
commit 0d202b5711228bb047140430ea8fe4f749503fb4
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Update feature-removal-schedule wrt mtab service
commit f9bdb072e8d88079a20834fe921d43e326a9a18a
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rc.map: remove references to rc_sys_v{1,2}
commit 9f6e05671d6d48faa7b83aec05a637bcdfcb3f82
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Convert rc_sys() calls to detect_container() and detect_vm()
commit 8addd7913a743b75ef3854ab4a96fea81cc5245d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Create detect_container() and detect_vm() functions
These functions replace rc_sys so that we can detect containers and vms
separately.
Also, we copy file_regex() to rc-misc.c and open it to all operating
systems.
commit 83cd7145e3e7c3ac453b6a87214cf5704e3875ce
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Rename bootlevel variable in _usage.c
In src/rc/_usage.c, we were using bootlevel as the variable to hold the
return value of rc_sys.
This changes the variable name to systype because this function returns
a system type, not a runlevel.
commit a67e3495d0b54ac83a00fc04aef50951646814ad
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Increment version number
commit a1acdeb92ead07f2dc60cb9796aaf5b4ea377713
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit b810473e4f7218afbb7047890860c15a8c45472b
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
man/openrc-run.8: Clarify documentation on dependencies and keywords
Provide an example of using the -containers keyword and clarify
documentation on some of the dependency functions.
commit 627e925463068e754ffd869f99a43634d6d9631e
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
add support for -containers keyword
commit f5cf1136e70502ee530f20f0434f312611b12b51
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Use systype variable for rc_sys call
commit a4038e11712d4c3f87f541f90be0b88f2903b82d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rc.conf.Linux: document the rkt keyword
commit a0cf8f91246ff4487b36d6432dab787e5b10957d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Add detection for rkt containers
commit 9fedb3b40b5983372b2c2de29dfe321c6dfaadf4
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Add detection for docker containers
commit 635e33cdc8f18bb290756633ce0714c496383cfb
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: comsolidate rc_sys_v1 and rc_sys_v2 into rc_sys
These functions were never meant to be used outside of OpenRC, and they
were added when we thought we were going to do away with the automatic
detection of subsystems. Since the autodetection is not going away, we
can combine these functions into rc_sys.
commit bd9456ff3172cc88f32d67bd4e789e2beee43595
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rc-functions.sh: add support for user-defined want dependencies
commit 33d3f33b3ca7dd2ce616b8182d588d0743c2f124
Author: Ian Stakenvicius <axs@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Implement "want" dependency
The want dependency is similar to the use dependency. If a service
script, for example called service1, adds "want service2" to its depend
function, OpenRC will attempt to start service2, if it exists on the
system, when service1 is started.
However, service1 will start regardless of the status of
service2.
X-Gentoo-Bug: 406021
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=406021
commit ddb895b355e02c9c07b00bfaf00d1bf8a7abbc03
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
conf.d/netmount: typo fix
X-Gentoo-Bug: 564846
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=564846
commit 085d77f17e3bedd23ffa96fe7e4eb8515ae8bfc6
Author: Benda Xu <heroxbd@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Standardize macro tests for gnu hurd
This also fixes breakage of GNU/hurd builds introduced by commit 3f82edbeb92.
commit c831f1f994e187afd8edfff15e4063b99440bbcb
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: rework overriding rc.conf options from the kcl
Rename the rc_conf_override function to describe its purpose better,
drop one conditional compile by making it available everywhere, and move
the call to it after the optional rc.conf.d directory is processed.
commit 591aea28215a8b5ad8660184dc6f6f15ff0c18b4
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
librc: Remove redundant code from rc_config_load
commit c09eeca49145b034df6527c500099ba22f28e824
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Add rc.conf.d support
This makes it possible to override settings in rc.conf by adding a
directory @SYSCONFDIR@/rc.conf.d and putting files in this directory.
The files will be processed in lexical order, and the last setting in
these files will be used.
commit 4cf6b0ecf7f5b35a6d80d76c60e77c3e1c7fee5c
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
consolefont: add after modules to dependencies
X-Gentoo-Bug: 559540
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=559540
commit ee944553a9ea35622046bd1ab5657fd416a7019a
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
bootmisc: optionally save the previous dmesg log
X-Gentoo-Bug: 561204
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=561204
commit 6cae41a4e63510cdcf3af1153d6e8300435e1838
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
etc/rc.conf: Clean up documentation for rc_hotplug
X-Gentoo-Bug: 554540
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=554540
commit 960881fcfe974178c0846a816663a258cdd488cc
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Add net-online service
commit d26013494db8ea8699db9815ef4c4b0eb2f55e7f
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
mtab: typo fix
commit b29b2fb3cb3e73b4453483ced908f0ef10e47e9c
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
mtab: make /etc/mtab as a file configurable
commit 7da72ce487a8d92d992e7fd3db881c198ae02609
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
openrc-run.sh: fix new required_* tests to exit properly
commit fc777aeaf3e6e2d47f4599acfe6c8d1bf5bc760a
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
typo fix
X-Gentoo-Bug: 563010
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=563010
commit 9d53d436ae22d6f0f6fc1537e836dd1b4d31cf35
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
sysfs: consolidate cgroup processing code in a single function
commit b81317bdf8e3eed8b8ff2bef757ba29f362ed297
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
mountinfo: make sure the netdev variable is initialized on Linux
This fixes the following regression:
X-Gentoo-Bug: 562668
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=562668
commit 29f7e335927d4c1fb151124de8cdf01fb87723fa
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
openrc-run.sh: allow spaces in required_{files,dirs}
X-Gentoo-Bug: 562320
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=562320
commit 850ca030777cb0c3e2fb03d9ab1f0ccee7b89e93
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
increment version number
commit 050ddfae4ad1ad0dc5993766e0bd90739bd41de9
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Update ChangeLog
commit d5116cc697c9eb275ab8497939ab41504e5ce578
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
localmount: white space cleanup
commit b86d170037197d7bdcda57c7d4c09c17bda97f31
Author: Ian Stakenvicius <axs@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
localmount: clean up handling of aufs branches
X-Gentoo-Bug: 560008
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=560008
commit 6fa0d6318bcd5c98548cff2ff840bca116892ca5
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
mtab: fix update logic
This advises users to remove mtab from their runlevels if /etc/mtab is a
symlink, and it creates the symlink if /etc/mtab does not exist on a
system.
X-Gentoo-Bug: 560060
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=560060
commit 80d3928b0d13f09a9c1e82bd27c9fff943d84d43
Author: Austin S. Hemmelgarn <ahferroin7@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
cgroups: Add the hugetlb, net_cls and pids controllers
Note from WilliamH: I slightly rearranged the code and added the
settings in rc.conf.
X-Gentoo-Bug: 555488
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=555488
commit 17ef205bc63a4e231dccee719394a7a8563f8c3f
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
sysfs: use printf instead of echo to write to cgroup files
This is needed for compatibility with musl and printf is also posix.
X-Gentoo-Bug: 562334
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=562334
commit b20a1951adf9a705a903fb3047b7ef26c013103c
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rc-cgroup.sh: Do not add leading spaces to cgroup values
We were starting the value we write to the cgroup setting file with
leading spaces and this was causing issues. This change makes sure that
we aren't adding leading spaces to the value.
X-Gentoo-Bug: 562354
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=562354
commit bf0c0dd5644436efe4986c2b259b755d111266b9
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
bootmisc: convert errors in clean_run function to warnings
X-Gentoo-Bug: 552418
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=552418
commit 1558ad2b9ebf319b85876a940d31d513bf21324f
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
bootmisc: only remove temp directory if umount is successful
Change the clean_run function to only remove the temp directory if the
umount was successful.
X-Gentoo-Bug: 561230
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=561230
commit 5f4f2420364098835522da868a9e75205c9e4f9c
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
mountinfo: fix --netdev and --nonetdev on Linux
On Linux, the --netdev and --nonetdev switches were not working. They
were both returning false. After this change, they operate based on the
presence or abscence of the _netdev option in mount options.
commit b3f7ff901f7d3ed00b9f73c601193ac507f62eaf
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
mountinfo: read /proc/self/mounts instead of /proc/mounts on Linux
commit a59365a582c3a8c9a8b863b572fddcb65fccadfd
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
start-stop-daemon.sh: complain in start if command is undefined
The default start-stop-daemon start function expects the command
variable to be defined to point to the daemon we want to start.
If the variable is undefined, this means that there will be nothing to
start, and in this case we should complain because it is possible that
the script writer made a typo in the variable name.
commit dac5966ca40610797d2b2aabef17154ca3dc20af
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Revert "local/netmount: remove uses of -O [no]_netdev"
This reverts commit 2a439c85bd69efc14847b4397bd6783cac051405.
There is another use case for -O involving iscsi, so we can't remove it.

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.22
VERSION= 0.23
PKG= ${NAME}-${VERSION}

View File

@@ -3,6 +3,14 @@
This file will contain a list of notable changes for each release. Note
the information in this file is in reverse order.
## OpenRC-0.23
The tmpfiles.d processing code, which was part of previous versions of
OpenRC, has been separated into its own package [1]. If you need to
process systemd style tmpfiles.d files, please install this package.
[1] https://github.com/openrc/opentmpfiles
## OpenRC-0.22
In previous versions of OpenRC, configuration information was processed

View File

@@ -1,8 +1,7 @@
include ../mk/net.mk
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount netmount swap urandom tmpfiles \
${CONF-${OS}}
CONF= bootmisc fsck hostname localmount netmount swap urandom ${CONF-${OS}}
ifeq (${MKNET},yes)
CONF+= network staticroute

View File

@@ -1,6 +1,6 @@
# The interfaces setting controls which interfaces the net-online
# service considers in deciding whether the network is active. By
# default, it is all ethernet or wireless LAN interfaces.
# service considers in deciding whether the network is active. The
# default is all interfaces that support ethernet.
#interfaces=""
# This setting controls whether a ping to the default gateway is

View File

@@ -1,3 +0,0 @@
# Extra options for tmpfiles.sh
#tmpfiles_opts="--verbose"
tmpfiles_opts=""

View File

@@ -48,7 +48,7 @@
# /var/log/rc.log
# NOTE: Linux systems require the devfs service to be started before
# logging can take place and as such cannot log the sysinit runlevel.
#rc_logger="YES"
#rc_logger="NO"
# Through rc_log_path you can specify a custom log file.
# The default value is: /var/log/rc.log
@@ -239,7 +239,7 @@ rc_tty_number=12
# Set the pids controller settings for this service.
#rc_cgroup_pids=""
# Set this to YES if yu want all of the processes in a service's cgroup
# Set this to YES if you want all of the processes in a service's cgroup
# killed when the service is stopped or restarted.
# This should not be set globally because it kills all of the service's
# child processes, and most of the time this is undesirable. Please set

View File

@@ -14,7 +14,7 @@ trap : SIGINT SIGQUIT
# Try and use stuff in /lib over anywhere else so we can shutdown
# local mounts correctly.
LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LDLIBRARY_PATH}" ; export LD_LIBRARY_PATH
LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}" ; export LD_LIBRARY_PATH
# If $TERM is not set then assume default of @TERM@
# This gives us a nice colour boot :)

View File

@@ -39,6 +39,11 @@ find_wireless()
fi
done
;;
FreeBSD)
for iface in $(sysctl -b net.wlan.devices 2>/dev/null); do
echo "${iface##*/}"
done
;;
*)
for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do
if ifconfig "${iface##*/}" 2>/dev/null | \

2
init.d/.gitignore vendored
View File

@@ -45,5 +45,3 @@ syslogd
termencoding
ttys
wscons
tmpfiles.dev
tmpfiles.setup

View File

@@ -2,8 +2,8 @@ include ../mk/net.mk
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in loopback.in \
netmount.in osclock.in root.in savecache.in swap.in tmpfiles.setup.in \
swclock.in sysctl.in runsvdir.in urandom.in s6-svscan.in ${SRCS-${OS}}
netmount.in osclock.in root.in savecache.in swap.in swclock.in \
sysctl.in runsvdir.in urandom.in s6-svscan.in ${SRCS-${OS}}
BIN= ${OBJS}
# Are we installing our network scripts?
@@ -23,7 +23,7 @@ SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \
SRCS-Linux= binfmt.in devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
killprocs.in modules.in modules-load.in mount-ro.in mtab.in numlock.in \
procfs.in net-online.in sysfs.in termencoding.in tmpfiles.dev.in
procfs.in net-online.in sysfs.in termencoding.in
# Generic BSD scripts
SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \

View File

@@ -106,8 +106,8 @@ start()
modprobe -q $x && rtc_exists && modname="$x" && break
done
[ -n "$modname" ] &&
ewarn "The $modname module needs to be configured in \
@SYSCONFDIR@/conf.d/modules or built in."
ewarn "The $modname module needs to be configured in" \
"@SYSCONFDIR@/conf.d/modules or built in."
fi
fi

View File

@@ -22,9 +22,10 @@ depend()
start()
{
# Mount local filesystems in /etc/fstab.
# The types variable must start with no, and must be a type
local critical= types="noproc" x= no_netdev= rc=
for x in $net_fs_list $extra_net_fs_list; do
types="${types},no${x}"
types="${types},${x}"
done
if [ "$RC_UNAME" = Linux ]; then
@@ -99,8 +100,8 @@ stop()
aufs_branch=$(sed 's/=.*//g' $x)
eindent
if ! mount -o "remount,del:$aufs_branch" "$aufs_mount_point" > /dev/null 2>&1; then
ewarn "Failed to remove branch $aufs_branch from aufs \
$aufs_mount_point"
ewarn "Failed to remove branch $aufs_branch from aufs" \
"$aufs_mount_point"
fi
eoutdent
sync

View File

@@ -21,12 +21,10 @@ start()
if [ "$RC_UNAME" = Linux ]; then
ebegin "Bringing up network interface lo"
if command -v ip > /dev/null 2>&1; then
ip addr add 127.0.0.1/8 dev lo brd + scope host
ip route add 127.0.0.0/8 dev lo scope host
ip addr add 127.0.0.1/8 dev lo brd +
ip link set lo up
else
ifconfig lo 127.0.0.1 netmask 255.0.0.0
route add -net 127.0.0.0 netmask 255.0.0.0 gw 127.0.0.1
fi
else
ebegin "Bringing up network interface lo0"

View File

@@ -31,7 +31,7 @@ FreeBSD_modules()
Linux_modules()
{
# Should not fail if kernel do not have module
# Should not fail if kernel does not have module
# support compiled in ...
[ ! -f /proc/modules ] && return 0
@@ -48,22 +48,21 @@ Linux_modules()
x=${x%.*}
done
local list= x= xx= y= args= mpargs= cnt=0 a=
local list= x= xx= y= args= mpargs= a=
for x in $kv_variant_list ; do
eval list=\$modules_$(shell_var "$x")
[ -n "$list" ] && break
done
[ -z "$list" ] && list=$modules
[ -n "$list" ] && ebegin "Loading kernel modules"
for x in $list; do
a=${x#*:}
if [ "$a" = "$x" ]; then
unset mpargs
ebegin "Loading module $x"
else
x=${x%%:*}
mpargs="-o $a"
ebegin "Loading module $x as $a"
fi
aa=$(shell_var "$a")
xx=$(shell_var "$x")
@@ -75,10 +74,9 @@ Linux_modules()
done
[ -z "$args" ] && eval args=\$module_${aa}_args
[ -z "$args" ] && eval args=\$module_${xx}_args
eval modprobe --use-blacklist -q "$mpargs" "$x" "$args"
eend $? "Failed to load $x" && : $(( cnt += 1 ))
eval modprobe --use-blacklist --verbose "$mpargs" "$x" "$args"
done
einfo "Autoloaded $cnt module(s)"
[ -n "$list" ] && eend
}
start()

View File

@@ -34,6 +34,9 @@ start()
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|/run|${rc_svcdir}" x= fs=
m="$m|/bin|/sbin|/lib(32|64)?|/libexec"
if [ -e "$rc_svcdir"/usr_premounted ]; then
m="$m|/usr"
fi
# RC_NO_UMOUNTS is an env var that can be set by plugins
local IFS="$IFS:"
for x in $no_umounts $RC_NO_UMOUNTS; do

View File

@@ -42,8 +42,8 @@ get_default_gateway()
start ()
{
local carriers configured dev gateway ifcount infinite interfaces
local rc state timeout x
local carriers configured dev gateway ifcount infinite
local rc state x
ebegin "Checking to see if the network is online"
rc=0

View File

@@ -26,8 +26,8 @@ start()
[ ! -e /proc/sys/fs/binfmt_misc/register ]; then
if ! grep -qs binfmt_misc /proc/filesystems &&
modprobe -q binfmt-misc; then
ewarn "The binfmt-misc module needs to be configured in \
@SYSCONFDIR@/conf.d/modules or built in."
ewarn "The binfmt-misc module needs to be configured in" \
"@SYSCONFDIR@/conf.d/modules or built in."
fi
if grep -qs binfmt_misc /proc/filesystems; then
ebegin "Mounting misc binary format filesystem"

View File

@@ -98,20 +98,23 @@ mount_misc()
fi
fi
# setup up kernel support for efivarfs
# slightly complicated, as if it's build as a module but NOT yet loaded,
# it will NOT appear in /proc/filesystems yet
if [ -d /sys/firmware/efi/efivars ] \
&& ! mountinfo -q /sys/firmware/efi/efivars; then
if modprobe -q efivarfs; then
ewarn "The efivarfs module needs to be configured in \
@SYSCONFDIR@/conf.d/modules or built in"
# set up kernel support for efivarfs
# The presence of /sys/firmware/efi indicates that the system was
# booted in efi mode.
if [ -d /sys/firmware/efi ]; then
if [ ! -d /sys/firmware/efi/efivars ] &&
modprobe -q efivarfs; then
ewarn "The efivarfs module needs to be configured in " \
"@SYSCONFDIR@/conf.d/modules or built in"
fi
if grep -qs efivarfs /proc/filesystems; then
ebegin "Mounting efivarfs filesystem"
mount -n -t efivarfs -o ${sysfs_opts} \
efivarfs /sys/firmware/efi/efivars
eend $?
if [ -d /sys/firmware/efi/efivars ] &&
! mountinfo -q /sys/firmware/efi/efivars; then
if grep -qs efivarfs /proc/filesystems; then
ebegin "Mounting efivarfs filesystem"
mount -n -t efivarfs -o ${sysfs_opts} \
efivarfs /sys/firmware/efi/efivars
eend $?
fi
fi
fi
}

View File

@@ -1,20 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Released under the 2-clause BSD license.
description="Set up tmpfiles.d entries"
depend()
{
use dev-mount
before dev
keyword -prefix -vserver
}
start()
{
ebegin "Setting up tmpfiles.d entries for /dev"
@LIBEXECDIR@/sh/tmpfiles.sh --prefix=/dev --create --boot ${tmpfiles_opts}
eend $?
return 0
}

View File

@@ -1,19 +0,0 @@
#!@SBINDIR@/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Released under the 2-clause BSD license.
description="Set up tmpfiles.d entries"
depend()
{
need localmount
}
start()
{
ebegin "Setting up tmpfiles.d entries"
@LIBEXECDIR@/sh/tmpfiles.sh --exclude-prefix=/dev --create --remove --boot \
${tmpfiles_opts}
eend $?
return 0
}

View File

@@ -97,7 +97,7 @@ String describing the extra command.
.It Ar supervisor
Supervisor to use to monitor this daemon. If this is unset or invalid,
start-stop-daemon will be used.
Currently, we support s6 from scarnet software, and supervise-daemon
Currently, we support s6 from skarnet software, and supervise-daemon
which is a light-weight supervisor internal to OpenRC.
To use s6, set
supervisor=s6.

View File

@@ -55,7 +55,7 @@ is used.
.It Fl p , -pidfile Ar pidfile
When starting, we expect the daemon to create a valid
.Ar pidfile
within a reasonable amount of time. When stopping we only stop the pid(s)
within a reasonable amount of time. When stopping we only stop the first pid
listed in the
.Ar pidfile .
.It Fl n , -name Ar name

View File

@@ -36,10 +36,9 @@ BOOT-FreeBSD+= hostid modules newsyslog savecore syslogd
# FreeBSD specific stuff
BOOT-FreeBSD+= adjkerntz dumpon syscons
BOOT-Linux+= binfmt hwclock keymaps modules mtab procfs termencoding \
tmpfiles.setup
BOOT-Linux+= binfmt hwclock keymaps modules mtab procfs termencoding
SHUTDOWN-Linux= killprocs mount-ro
SYSINIT-Linux= devfs dmesg sysfs tmpfiles.dev
SYSINIT-Linux= devfs dmesg sysfs
# Generic BSD stuff
BOOT-NetBSD+= hostid newsyslog savecore syslogd

1
sh/.gitignore vendored
View File

@@ -6,6 +6,5 @@ cgroup-release-agent.sh
init.sh
init-early.sh
rc-cgroup.sh
tmpfiles.sh
migrate-to-run.sh
binfmt.sh

View File

@@ -1,9 +1,9 @@
DIR= ${LIBEXECDIR}/sh
SRCS= init.sh.in functions.sh.in gendepends.sh.in \
openrc-run.sh.in rc-functions.sh.in tmpfiles.sh.in ${SRCS-${OS}}
openrc-run.sh.in rc-functions.sh.in ${SRCS-${OS}}
INC= rc-mount.sh functions.sh rc-functions.sh runit.sh s6.sh \
start-stop-daemon.sh supervise-daemon.sh
BIN= gendepends.sh init.sh openrc-run.sh tmpfiles.sh ${BIN-${OS}}
BIN= gendepends.sh init.sh openrc-run.sh ${BIN-${OS}}
INSTALLAFTER= _installafter

View File

@@ -11,6 +11,16 @@ if [ -d "@SYSCONFDIR@/rc.conf.d" ]; then
done
fi
# check for md5sum, and probably /usr too
if command -v md5sum >/dev/null; then
got_md5sum=true
else
eerror "md5sum is missing, which suggests /usr is not mounted"
eerror "If you have separate /usr, it must be mounted by initramfs"
eerror "If not, you should check coreutils is installed correctly"
got_md5sum=false
fi
# By default VServer already has /proc mounted, but OpenVZ does not!
# However, some of our users have an old proc image in /proc
# NFC how they managed that, but the end result means we have to test if
@@ -21,9 +31,12 @@ fi
mountproc=true
f=/proc/self/environ
if [ -e $f ]; then
if [ "$(VAR=a md5sum $f)" = "$(VAR=b md5sum $f)" ]; then
if $got_md5sum && [ "$(VAR=a md5sum $f)" = "$(VAR=b md5sum $f)" ]; then
eerror "You have cruft in /proc that should be deleted"
else
# If they don't have md5sum, this will fail in pretty ways if
# /proc isn't really mounted. Oh well, their system is busted
# anyway, and they get to keep the pieces.
einfo "/proc is already mounted"
mountproc=false
fi
@@ -31,11 +44,9 @@ fi
unset f
if $mountproc; then
procfs="proc"
[ "$RC_UNAME" = "GNU/kFreeBSD" ] && proc="linprocfs"
ebegin "Mounting /proc"
if ! fstabinfo --mount /proc; then
mount -n -t "$procfs" -o noexec,nosuid,nodev proc /proc
mount -n -t proc -o noexec,nosuid,nodev proc /proc
fi
eend $?
fi

View File

@@ -146,10 +146,9 @@ _status()
fi
}
# Template start / stop / status functions
# These functions select the appropriate function to call from the
# supervisor modules
start()
default_start()
{
local func=ssd_start
case "$supervisor" in
@@ -163,7 +162,7 @@ start()
$func
}
stop()
default_stop()
{
local func=ssd_stop
case "$supervisor" in
@@ -177,7 +176,7 @@ stop()
$func
}
status()
default_status()
{
local func=ssd_status
case "$supervisor" in
@@ -191,6 +190,26 @@ status()
$func
}
# Template start / stop / status functions
# package init scripts may override these, but the bodies are as minimal as
# possible, so that the init scripts can creatively wrap default_*
# functions.
start()
{
default_start
}
stop()
{
default_stop
}
status()
{
default_status
}
# Start debug output
yesno $RC_DEBUG && set -x
# Load configuration settings. First the global ones, then any

View File

@@ -1,457 +0,0 @@
#!/bin/sh
# This is a reimplementation of the systemd tmpfiles.d code
# Control creation, deletion, and cleaning of volatile and temporary files
#
# Copyright (c) 2012 Gentoo Foundation
# Released under the 2-clause BSD license.
#
# This instance is a pure-POSIX sh version, written by Robin H Johnson
# <robbat2@gentoo.org>, based on the Arch Linux version as of 2012/01/01:
# http://projects.archlinux.org/initscripts.git/tree/arch-tmpfiles
#
# See the tmpfiles.d manpage as well:
# https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
# This script should match the old manpage
# http://0pointer.de/public/systemd-man/tmpfiles.d.html
# as of 2012/03/12 and also implements some more recent features
#
DRYRUN=0
CHECKPATH="@LIBEXECDIR@/bin/checkpath"
checkprefix() {
n=$1
shift
for x in $@; do
case $n in
${x}*) return 0 ;;
esac
done
return 1
}
warninvalid() {
printf "tmpfiles: ignoring invalid entry on line %d of \`%s'\n" "$LINENUM" "$FILE"
error=$(( error+1 ))
} >&2
invalid_option() {
printf "tmpfiles: invalid option '%s'\n" "$1" >&2
exit 1
}
dryrun_or_real() {
local dryrun=
[ $DRYRUN -eq 1 ] && dryrun=echo
$dryrun "$@"
}
_chattr() {
local attr="$2"
case $attr in
[+-=]*) : ;;
'') return ;;
*) attr="+$attr" ;;
esac
local IFS=
dryrun_or_real chattr $1 "$attr" -- $3
}
relabel() {
local path
local paths=$1 mode=$2 uid=$3 gid=$4
for path in ${paths}; do
if [ -e "$path" ]; then
[ -x /sbin/restorecon ] && dryrun_or_real restorecon $CHOPTS "$path"
[ $uid != '-' ] && dryrun_or_real chown $CHOPTS "$uid" "$path"
[ $gid != '-' ] && dryrun_or_real chgrp $CHOPTS "$gid" "$path"
[ $mode != '-' ] && dryrun_or_real chmod $CHOPTS "$mode" "$path"
fi
done
}
splitpath() {
local path=$1
while [ -n "$path" ]; do
echo $path
path=${path%/*}
done
}
_restorecon() {
local path=$1
if [ -x /sbin/restorecon ]; then
dryrun_or_real restorecon -F $(splitpath "$path")
fi
}
_b() {
# Create a block device node if it doesn't exist yet
local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
if [ ! -e "$path" ]; then
dryrun_or_real mknod -m $mode $path b ${arg%:*} ${arg#*:}
_restorecon "$path"
dryrun_or_real chown $uid:$gid $path
fi
}
_c() {
# Create a character device node if it doesn't exist yet
local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
if [ ! -e "$path" ]; then
dryrun_or_real mknod -m $mode $path c ${arg%:*} ${arg#*:}
_restorecon "$path"
dryrun_or_real chown $uid:$gid $path
fi
}
_C() {
# recursively copy a file or directory
local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
if [ ! -e "$path" ]; then
dryrun_or_real cp -r "$arg" "$path"
_restorecon "$path"
[ $uid != '-' ] && dryrun_or_real chown "$uid" "$path"
[ $gid != '-' ] && dryrun_or_real chgrp "$gid" "$path"
[ $mode != '-' ] && dryrun_or_real chmod "$mode" "$path"
fi
}
_f() {
# Create a file if it doesn't exist yet
local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
[ $CREATE -gt 0 ] || return 0
if [ ! -e "$path" ]; then
dryrun_or_real $CHECKPATH -fq -m "$mode" -o "$uid:$gid" "$path"
[ -z "$arg" ] || _w "$@"
fi
}
_F() {
# Create or truncate a file
local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
[ $CREATE -gt 0 ] || return 0
dryrun_or_real $CHECKPATH -Fq -m "$mode" -o "$uid:$gid" "$path"
[ -z "$arg" ] || _w "$@"
}
_d() {
# Create a directory if it doesn't exist yet
local path=$1 mode=$2 uid=$3 gid=$4
[ $CREATE -gt 0 ] || return 0
if [ ! -d "$path" ]; then
dryrun_or_real mkdir -p "$path" 2>/dev/null
_restorecon "$path"
dryrun_or_real $CHECKPATH -dq -m "$mode" -o "$uid:$gid" "$path"
fi
}
_D() {
# Create or empty a directory
local path=$1 mode=$2 uid=$3 gid=$4
if [ -d "$path" ] && [ $REMOVE -gt 0 ]; then
dryrun_or_real find "$path" -mindepth 1 -maxdepth 1 -xdev -exec rm -rf {} +
_restorecon "$path"
fi
if [ $CREATE -gt 0 ]; then
dryrun_or_real mkdir -p "$path" 2>/dev/null
_restorecon "$path"
dryrun_or_real $CHECKPATH -Dq -m "$mode" -o "$uid:$gid" "$path"
fi
}
_v() {
# Create a subvolume if the path does not exist yet and the file system
# supports this (btrfs). Otherwise create a normal directory.
# TODO: Implement btrfs subvol creation.
_d "$@"
}
_q() {
# Similar to _v. However, make sure that the subvolume will be assigned
# to the same higher-level quota groups as the subvolume it has
# been created in.
# TODO: Implement btrfs subvol creation.
_d "$@"
}
_Q() {
# Similar to q. However, instead of copying the higher-level quota
# group assignments from the parent as-is, the lowest quota group
# of the parent subvolume is determined that is not the
# leaf quota group.
# TODO: Implement btrfs subvol creation.
_d "$@"
}
_h() {
# Set file/directory attributes. Lines of this type accept
# shell-style globs in place of normal path names.
# The format of the argument field matches chattr
_chattr '' "$6" "$1"
}
_H() {
# Recursively set file/directory attributes. Lines of this type accept
# shell-syle globs in place of normal path names.
# Does not follow symlinks
_chattr -R "$6" "$1"
}
_L() {
# Create a symlink if it doesn't exist yet
local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
[ ! -e "$path" ] && dryrun_or_real ln -s "$arg" "$path"
_restorecon "$path"
}
_p() {
# Create a named pipe (FIFO) if it doesn't exist yet
local path=$1 mode=$2 uid=$3 gid=$4
[ $CREATE -gt 0 ] || return 0
if [ ! -p "$path" ]; then
dryrun_or_real $CHECKPATH -pq -m $mode -o "$uid:$gid" "$path"
fi
}
_x() {
# Ignore a path during cleaning. Use this type to exclude paths from clean-up as
# controlled with the Age parameter. Note that lines of this type do not
# influence the effect of r or R lines. Lines of this type accept shell-style
# globs in place of of normal path names.
:
# XXX: we don't implement this
}
_X() {
# Ignore a path during cleanup. Use this type to prevent path
# removal as controled with the age parameter. Note that if path is
# a directory, the content of the directory is not excluded from
# clean-up, only the directory itself.
# Lines of this type accept shell-style globs in place of normal path names.
:
# XXX: we don't implement this
}
_r() {
# Remove a file or directory if it exists. This may not be used to remove
# non-empty directories, use R for that. Lines of this type accept shell-style
# globs in place of normal path names.
local path
local paths=$1
[ $REMOVE -gt 0 ] || return 0
for path in ${paths}; do
if [ -f "$path" ]; then
dryrun_or_real rm -f "$path"
elif [ -d "$path" ]; then
dryrun_or_real rmdir "$path"
fi
done
}
_R() {
# Recursively remove a path and all its subdirectories (if it is a directory).
# Lines of this type accept shell-style globs in place of normal path names.
local path
local paths=$1
[ $REMOVE -gt 0 ] || return 0
for path in ${paths}; do
[ -d "$path" ] && dryrun_or_real rm -rf --one-file-system "$path"
done
}
_w() {
# Write the argument parameter to a file, if it exists.
local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
if [ -f "$path" ]; then
if [ $DRYRUN -eq 1 ]; then
echo "echo \"$arg\" >>\"$path\""
else
echo "$arg" >>"$path"
fi
fi
}
_z() {
# Set ownership, access mode and relabel security context of a file or
# directory if it exists. Lines of this type accept shell-style globs in
# place of normal path names.
[ $CREATE -gt 0 ] || return 0
relabel "$@"
}
_Z() {
# Recursively set ownership, access mode and relabel security context of a
# path and all its subdirectories (if it is a directory). Lines of this type
# accept shell-style globs in place of normal path names.
[ $CREATE -gt 0 ] || return 0
CHOPTS=-R relabel "$@"
}
BOOT=0 CREATE=0 REMOVE=0 CLEAN=0 VERBOSE=0 DRYRUN=0 error=0 LINENO=0
EXCLUDE=
PREFIX=
FILES=
while [ $# -gt 0 ]; do
case $1 in
--boot) BOOT=1 ;;
--create) CREATE=1 ;;
--remove) REMOVE=1 ;;
--clean) CLEAN=1 ;; # TODO: Not implemented
--verbose) VERBOSE=1 ;;
--dryrun|--dry-run) DRYRUN=1 ;;
--exclude-prefix=*) EXCLUDE="${EXCLUDE}${1##--exclude-prefix=} " ;;
--prefix=*) PREFIX="${PREFIX}${1##--prefix=} " ;;
-*) invalid_option "$1" ;;
*) FILES="${FILES} $1"
esac
shift
done
if [ $(( CLEAN )) -eq 1 ] ; then
printf '%s clean mode is not implemented\n' "${0##*/}"
exit 1
fi
if [ "$CREATE$REMOVE" = '00' ]; then
printf 'usage: %s [--exclude-prefix=path] [--prefix=path] [--boot] [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"
exit 1
fi
# XXX: The harcoding of /usr/lib/ is an explicit choice by upstream
tmpfiles_dirs='/usr/lib/tmpfiles.d /run/tmpfiles.d /etc/tmpfiles.d'
tmpfiles_basenames=''
if [ -z "${FILES}" ]; then
# Build a list of sorted unique basenames
# directories declared later in the tmpfiles_d array will override earlier
# directories, on a per file basename basis.
# `/etc/tmpfiles.d/foo.conf' supersedes `/usr/lib/tmpfiles.d/foo.conf'.
# `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
for d in ${tmpfiles_dirs} ; do
[ -d $d ] && for f in ${d}/*.conf ; do
case "${f##*/}" in
systemd.conf|systemd-*.conf) continue;;
esac
[ -f $f ] && tmpfiles_basenames="${tmpfiles_basenames}\n${f##*/}"
done # for f in ${d}
done # for d in ${tmpfiles_dirs}
FILES="$(printf "${tmpfiles_basenames}\n" | sort -u )"
fi
tmpfiles_d=''
for b in ${FILES} ; do
if [ "${b##*/}" != "${b}" ]; then
# The user specified a path on the command line
# Just pass it through unaltered
tmpfiles_d="${tmpfiles_d} ${b}"
else
real_f=''
for d in $tmpfiles_dirs ; do
f=${d}/${b}
[ -f "${f}" ] && real_f=$f
done
[ -f "${real_f}" ] && tmpfiles_d="${tmpfiles_d} ${real_f}"
fi
done
error=0
# loop through the gathered fragments, sorted globally by filename.
# `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
FILE=
for FILE in $tmpfiles_d ; do
LINENUM=0
### FILE FORMAT ###
# XXX: We ignore the 'Age' parameter
# 1 2 3 4 5 6 7
# Cmd Path Mode UID GID Age Argument
# d /run/user 0755 root root 10d -
# Mode, UID, GID, Age, Argument may be omitted!
# If Cmd ends with !, the line is only processed if --boot is passed
# XXX: Upstream says whitespace is NOT permitted in the Path argument.
# But IS allowed when globs are expanded for the x/r/R/z/Z types.
while read cmd path mode uid gid age arg; do
LINENUM=$(( LINENUM+1 ))
FORCE=0
# Unless we have both command and path, skip this line.
if [ -z "$cmd" -o -z "$path" ]; then
continue
fi
case $cmd in
\#*) continue ;;
esac
while [ ${#cmd} -gt 1 ]; do
case $cmd in
*!) cmd=${cmd%!}; [ "$BOOT" -eq "1" ] || continue 2 ;;
*+) cmd=${cmd%+}; FORCE=1; ;;
*) warninvalid ; continue 2 ;;
esac
done
# whine about invalid entries
case $cmd in
f|F|w|d|D|v|p|L|c|C|b|x|X|r|R|z|Z|q|Q|h|H) ;;
*) warninvalid ; continue ;;
esac
# fall back on defaults when parameters are passed as '-'
if [ "$mode" = '-' -o "$mode" = '' ]; then
case "$cmd" in
p|f|F) mode=0644 ;;
d|D|v) mode=0755 ;;
C|z|Z|x|r|R|L) ;;
esac
fi
[ "$uid" = '-' -o "$uid" = '' ] && uid=0
[ "$gid" = '-' -o "$gid" = '' ] && gid=0
[ "$age" = '-' -o "$age" = '' ] && age=0
[ "$arg" = '-' -o "$arg" = '' ] && arg=''
set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg"
[ -n "$EXCLUDE" ] && checkprefix $path $EXCLUDE && continue
[ -n "$PREFIX" ] && ! checkprefix $path $PREFIX && continue
if [ $FORCE -gt 0 ]; then
case $cmd in
p|L|c|b) [ -f "$path" ] && dryrun_or_real rm -f "$path"
esac
fi
[ "$VERBOSE" -eq "1" ] && echo _$cmd "$@"
_$cmd "$@"
rc=$?
if [ "${DRYRUN}" -eq "0" ]; then
[ $rc -ne 0 ] && error=$((error + 1))
fi
done <$FILE
done
exit $error
# vim: set ts=2 sw=2 sts=2 noet ft=sh:

View File

@@ -367,11 +367,12 @@ rc_parse_service_state(RC_SERVICE state)
* specified runlevel in dependency order, including the
* specified runlevel. */
static void
get_runlevel_chain(const char *runlevel, RC_STRINGLIST *level_list)
get_runlevel_chain(const char *runlevel, RC_STRINGLIST *level_list, RC_STRINGLIST *ancestor_list)
{
char path[PATH_MAX];
RC_STRINGLIST *dirs;
RC_STRING *d, *dn;
RC_STRING *d, *parent;
const char *nextlevel;
/*
* If we haven't been passed a runlevel or a level list, or
@@ -395,8 +396,27 @@ get_runlevel_chain(const char *runlevel, RC_STRINGLIST *level_list)
*/
snprintf(path, sizeof(path), "%s/%s", RC_RUNLEVELDIR, runlevel);
dirs = ls_dir(path, LS_DIR);
TAILQ_FOREACH_SAFE(d, dirs, entries, dn)
get_runlevel_chain(d->value, level_list);
TAILQ_FOREACH(d, dirs, entries) {
nextlevel = d->value;
/* Check for loop */
if (rc_stringlist_find(ancestor_list, nextlevel)) {
fprintf(stderr, "Loop detected in stacked runlevels attempting to enter runlevel %s!\n",
nextlevel);
fprintf(stderr, "Ancestors:\n");
TAILQ_FOREACH(parent, ancestor_list, entries)
fprintf(stderr, "\t%s\n", parent->value);
exit(1);
}
/* Add new ancestor */
rc_stringlist_add(ancestor_list, nextlevel);
get_runlevel_chain(nextlevel, level_list, ancestor_list);
rc_stringlist_delete(ancestor_list, nextlevel);
}
rc_stringlist_free(dirs);
}
bool
@@ -500,9 +520,12 @@ librc_hidden_def(rc_runlevel_unstack)
RC_STRINGLIST *
rc_runlevel_stacks(const char *runlevel)
{
RC_STRINGLIST *stack;
RC_STRINGLIST *stack, *ancestor_list;
stack = rc_stringlist_new();
get_runlevel_chain(runlevel, stack);
ancestor_list = rc_stringlist_new();
rc_stringlist_add(ancestor_list, runlevel);
get_runlevel_chain(runlevel, stack, ancestor_list);
rc_stringlist_free(ancestor_list);
return stack;
}
librc_hidden_def(rc_runlevel_stacks)

View File

@@ -36,7 +36,7 @@ int main(int argc, char **argv)
bool ok = false;
char *service;
char *exec;
int idx;
int idx = 0;
RC_SERVICE state, bit;
applet = basename_c(argv[0]);

View File

@@ -1344,6 +1344,7 @@ int main(int argc, char **argv)
applet_list,
runlevel, depoptions);
rc_stringlist_free(tmplist);
tmplist = NULL;
TAILQ_FOREACH(svc, services, entries)
printf("%s ", svc->value);
printf ("\n");

View File

@@ -228,6 +228,7 @@ svc_lock(const char *applet)
if (fd == -1)
return -1;
if (flock(fd, LOCK_EX | LOCK_NB) == -1) {
eerror("Call to flock failed: %s", strerror(errno));
close(fd);
return -1;
}

View File

@@ -334,7 +334,19 @@ void selinux_setup(char **argv)
/* extract the type from the context */
curr_con = context_new(curr_context);
curr_t = xstrdup(context_type_get(curr_con));
if (!curr_con) {
free(curr_context);
goto out;
}
curr_t = context_type_get(curr_con);
if (!curr_t) {
context_free(curr_con);
free(curr_context);
goto out;
}
curr_t = xstrdup(curr_t);
/* dont need them anymore so free() now */
context_free(curr_con);
free(curr_context);

View File

@@ -683,6 +683,8 @@ do_start_services(const RC_STRINGLIST *start_services, bool parallel)
}
pid = service_start(service->value);
if (pid == -1)
break;
/* Remember the pid if we're running in parallel */
if (pid > 0) {
add_pid(pid);