Compare commits

..

574 Commits

Author SHA1 Message Date
William Hubbs
900d54b0fc release openrc-0.6.8 2010-12-07 22:32:44 -06:00
William Hubbs
84750f5722 bug 232347: fix netmount to respect _netdev option
The _netdev option in fstab on linux systems indicates
that a filesystem should only be mounted if the network is available.

This commit fixes netmount to support this.
2010-12-07 11:54:03 -06:00
Robin H. Johnson
f8f03bdbbf Bug #345281: If wpa_supplicant is built w/ USE=dbus, we need to start after DBus is up. 2010-12-06 02:54:21 +00:00
Robin Johnson
80d5f7d27b fix selinux context for rc-svcdir (bug #347503) 2010-12-03 23:49:34 -06:00
William Hubbs
449080e145 release openrc-0.6.7 2010-12-03 14:51:30 -06:00
Thomas Pfaff
062223a5df Avoid race condition in runscript (bug #319865)
Under normal conditions, runscript creates one child and waits for its
termination, which is signaled by a pipe write from the SIGCHLD
sighandler.

When running killprocs however more than one SIGHCLD signal is generated, at
least on all of my amd64 boxes running on real hardware and in vmware.

When the first SIGCHLD occurs svc_exec leaves the loop and closes the pipe.
Subsequent SIGCHLDs during the close can lead to a race condition and create an
EBADF error in the pipe write (pipe is closed but the file handle is still !=
-1).

We avoid this by blocking SIGHCHLD during the pipe close.
2010-12-03 14:01:28 -06:00
William Hubbs
18064e19f6 release openrc-0.6.6 2010-11-30 16:04:17 -06:00
William Hubbs
cdf07b5970 localmount should only use the -O option for linux systems
This fixes bug #347307.
2010-11-30 15:40:44 -06:00
William Hubbs
82b265016a send error output from chattr command to /dev/null
This is for bug #346659.
2010-11-26 14:54:30 -06:00
William Hubbs
bdfab242b7 release openrc-0.6.5 2010-11-21 11:08:53 -06:00
William Hubbs
4ca32808dd Revert "allow ifplugd to work on wireless interfaces"
This reverts commit 4ea75dd1d6.
This caused a regression, see bug #345795.

Ifplugd is only designed to support wireless interfaces that use the
older wireless extentions.
2010-11-18 15:06:42 -06:00
William Hubbs
9e5b9abf40 remove "use hostname" from sysctl for bsd systems 2010-11-16 10:03:05 -06:00
William Hubbs
ac37dc2764 do not mount local file systems with the _netdev option in fstab
This fixes #344947.
2010-11-15 12:01:48 -06:00
William Hubbs
9285cb3392 release openrc-0.6.4 2010-11-15 10:17:17 -06:00
William Hubbs
6d9137d6c4 remove support for local.start and local.stop for bug #343709
The openrc ebuild now migrates these files to /etc/conf.d/local, so we
do not need to support them.
2010-11-10 10:55:28 -06:00
William Hubbs
2fa6bb0d48 add warnings about local.start and local.stop for bug #343709
We need to warn users that they should be using /etc/conf.d/local
instead of /etc/conf.d/local.start and /etc/conf.d/local.stop. This adds
those warnings.
2010-11-05 13:42:33 -05:00
William Hubbs
39776d6fb7 update documentation for rc_interactive
rc_interactive is automatically disabled if rc_parallel is set to YES.
Update the documentation in rc.conf to reflect this.
This fixes bug #327305.
2010-11-01 13:57:22 -05:00
Jory A. Pratt
68c021c424 ensure bonding interface is down before we attempt to configure, also
mode has to be configure before any other arguements are passed. Thanks
Ed Wildgoose <gentoo@wildgooses.com> for patch.
2010-10-31 16:40:54 -05:00
Diego Elio Pettenò
09bed967bf Allow cleaning up of pam_mktemp-based temporary directories.
This was blacklisted before, so the .private directories never had their
content cleaned up, even if WIPE_TMP was set to yes.
2010-10-31 16:18:38 -05:00
Jory A. Pratt
060b19e3e3 correction for unmounting volumes with weird characters, thanks Brant
Gurganus <brant@gurganus.name>
2010-10-28 20:35:09 -05:00
William Hubbs
d8a76d1bf6 allow net_fs_list to be extended but not replaced
This fixes bug #342825.
2010-10-27 09:00:02 -05:00
Jory A. Pratt
7653ef89b8 remove 'use hostname' bug 340991, Thanks Diego 2010-10-23 23:52:43 -05:00
Jory A. Pratt
be6c0716ee surpress output of loadkeys, fix setfont path check 2010-09-30 07:33:52 -05:00
William Hubbs
4ea75dd1d6 allow ifplugd to work on wireless interfaces
this fixes bug #335494.
2010-09-14 19:37:52 -05:00
William Hubbs
b708852784 release openrc-0.6.3 2010-09-02 10:15:17 -05:00
William Hubbs
f700243016 Revert "fix bug 266395"
This reverts commit 1a188f8f72.

This revert fixes bug #334663.
2010-09-02 09:42:11 -05:00
Jory A. Pratt
b232e529f1 Fix for make-3.82 breakage. 2010-08-22 15:05:11 -05:00
William Hubbs
ae3186834f release openrc-0.6.2 2010-08-19 17:00:38 -05:00
William Hubbs
23546e27d9 fix detection of renamed vlan interfaces
This fixes bug 327059, thanks to Jonathan for reporting this and for the patch.
2010-08-19 16:17:38 -05:00
William Hubbs
1a188f8f72 fix bug 266395
Do not stop wpa_supplicant or wpa_cli if they are in the background.
Thanks to Slava Gorbunov for the patch.
2010-08-18 15:01:23 -05:00
Anthony G. Basile
89829f6d7c Fixes bug #332383. Thanks Lutz Heermann. 2010-08-13 17:42:23 -04:00
Anthony G. Basile
6e3b3bfc53 Fix bug #332181. Thanks Lutz Heermann. 2010-08-13 17:32:31 -04:00
Jory A. Pratt
14c95ae9a6 update consolefont/keymap to include -lxc in keywords 2010-08-10 08:21:08 -05:00
William Hubbs
d3ccbdb5a9 allow ip to be in /sbin or /bin
This makes it possible for the "ip" program in iproute2 to be installed
in /sbin or /bin.
2010-08-09 20:01:15 -05:00
William Hubbs
1cdf85e1ce fix bug #330173
This fixes a typo in the comments in net.example.
2010-07-28 13:18:33 -05:00
Jory A. Pratt
2982cfab70 Fix bug #301237, update example to list proper package for mii-tool 2010-07-12 22:45:40 -05:00
Jory A. Pratt
761fe99fe2 on_ac_power needs to exit not return bug #322037 2010-07-12 22:19:56 -05:00
William Hubbs
6f24d1cbd8 fix typo
I made a typo while manually transferring over Roy's last commit.  This
fixes that typo.
2010-07-10 15:31:16 -05:00
William Hubbs
898552dcc3 fix metric
This change was also taken from Roy Marples' git.
2010-07-07 19:55:37 -05:00
William Hubbs
6850566be0 remove extra route
This was taken from Roy Marples' git repository.
2010-07-07 19:42:56 -05:00
Mike Frysinger
3036b44798 restore init.d pause option 2010-04-09 02:19:40 -04:00
Mike Frysinger
acc0edb040 restore old e* func output
Gentoo has always used the sytle:
 * moo ...                [ ok ]
Latest openrc now does:
* moo...                    [ok]

Realistically, 4 spaces out of 80 on reduced terminals doesn't make any
sort of realistic difference and it's been just fine for the last 10
years, so keep the default behavior.
2010-04-09 02:19:40 -04:00
Seth Robertson
316a316d9b Allow dhclient per $IFACE arguments. 2010-03-30 09:21:54 +01:00
Michal Gorny
20b4076b12 Support sysfs.
Fixes #214
2010-03-27 08:53:04 +00:00
Roy Marples
4d86d34635 Fix -s and -S. 2010-03-26 22:10:03 +00:00
Roy Marples
ae7a92ae7b Try and describe bonding errors a bit more. 2010-03-24 20:41:18 +00:00
Roy Marples
67b538fd26 Fix tentative ip addresses 2010-03-24 20:25:42 +00:00
Roy Marples
0276c4f516 Release openrc-0.6.1 2010-03-22 20:02:12 +00:00
Roy Marples
7271449a0c Fix two leaks. 2010-03-17 20:37:47 +00:00
Roy Marples
4b333eaf36 Send SIGKILL after 2 failed SIGTERM when unmounting. 2010-03-16 21:34:48 +00:00
Juan RP
59b08643f1 Mount xenfs early so OpenRC can detect it. 2010-02-26 09:34:43 +00:00
Roy Marples
5c52e5beb5 Fix rc_${rc_svcname}_need.
Display config depends in service depend function also.
2010-02-20 21:48:06 +00:00
Trevor Summers Smith
c0f5f2122c Allow bridge interfaces to be called bridge. 2010-02-09 17:10:04 +00:00
Mike Frysinger
ecf9ef49a7 random spelling fixes
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-01-08 22:02:51 +00:00
Roy Marples
bb45f0eabc Fix BSD compile. 2010-01-08 00:22:04 +00:00
Daniel Mierswa
f434c902a5 Use IFACE variable instead of iface.
Signed-off-by: Daniel Mierswa <impulze@impulze.org>
2009-12-31 07:21:59 +00:00
Roy Marples
5ec2efaff2 Release openrc-0.6.0 2009-12-21 15:30:17 +00:00
Christopher Head
9ca65be42e Fix comments. 2009-12-21 09:45:03 +00:00
Roy Marples
a704b97fd2 Remove non working bash sequence expansion examples. 2009-12-21 09:18:00 +00:00
William Hubbs
2c0a71172d default route commands on Linux now require gw or via (iproute2). 2009-12-19 08:03:35 +00:00
William Hubbs
cbafcd078d add example for defaultiproute6 2009-12-19 07:56:39 +00:00
Roy Marples
a165fbe384 Support inet6 routes. 2009-12-14 19:31:18 +00:00
Roy Marples
02c12c1cac Allow "dev eth0" to work for a default route. 2009-12-14 19:01:03 +00:00
Roy Marples
084f5e12eb Fix restart with iproute2 2009-12-14 14:21:30 +00:00
Roy Marples
3b9eaea8ec Don't add broadcast addresss to ipv6 2009-12-14 10:14:39 +00:00
Roy Marples
dc3ccd8101 start-stop-daemon can now set process IO scheduling. 2009-12-14 08:47:48 +00:00
Roy Marples
9476a2e721 Typo 2009-12-11 09:26:43 +00:00
Roy Marples
1d174cc60c Move on_ac_power to a shell script.
Fixes #204
2009-12-10 22:30:56 +00:00
William Hubbs
12af86395f Allow ip to add the default route.
Fixes #211.
2009-12-10 22:08:51 +00:00
Olivier Huber
5b3e5edda2 Typo 2009-12-10 22:00:14 +00:00
Roy Marples
775d56b877 Document multiple routes, fixes #210. 2009-12-05 21:23:39 +00:00
Roy Marples
22e2a4f0a1 Add support for iproute2 in staticroute.
Fixes #208.
2009-12-05 20:05:43 +00:00
Alon Bar-Lev
ca752a5a2d Support phy80211, fixes #209. 2009-12-05 19:25:39 +00:00
Roy Marples
93cecab1ed Comment out static routes 2009-12-04 01:38:33 +00:00
Roy Marples
baf3b2dd45 Correct homepage. 2009-12-02 19:12:26 +00:00
Roy Marples
e9e37ad798 Release openrc-0.5.3 2009-12-02 19:08:02 +00:00
Roy Marples
4df8770a90 Only add metric to dhcpcd if not given.
Fixes Gentoo #294312
2009-11-25 02:07:22 +00:00
Roy Marples
ec38bbbdda If mounting tmpfs fails, try ramfs.
This is because buggy kernels always report tmpfs even when not present.
2009-11-20 00:04:32 +00:00
Roy Marples
509e34d425 Only allow one service to be provided by default.
Fixes Gentoo #293139.
2009-11-14 08:37:05 +00:00
Roy Marples
0de1d18d41 Fix logic 2009-11-13 22:29:01 +00:00
Roy Marples
89a2d76772 Rework around new kbd-1.15.1, Gentoo #289265. 2009-11-13 22:21:50 +00:00
Roy Marples
80d4ce3a11 Add a --warn option to just warn when reference file does not exist.
Fixes Gentoo #291894.
2009-11-13 21:31:09 +00:00
Roy Marples
d21177e5c7 Ensure we have a valid broadcast address. 2009-11-11 00:31:32 +00:00
Roy Marples
d29daf3952 fsck only checks battery when requested, which is not by default.
This fixes having JFS as the root partition on battery power.
For most modern FS's this is a non op, or a very small op by default
so it should be fine.
Fixes Gentoo #291654.
2009-11-10 22:50:48 +00:00
Roy Marples
1d9ce8e9a1 Allow sysctl to read confs from /etc/sysctl.d
Fixes #203.
2009-11-10 22:40:35 +00:00
William Hubbs
bb96dc4e01 Fix iproute2 support.
Fixes Gentoo #289762.
2009-11-10 21:19:17 +00:00
Jan Psota
ebb49805fc Don't punt /var/log/wtmp if it exists, just create if it does not.
Fixes Gentoo #289849.
2009-11-10 20:09:44 +00:00
Nao Nakashima
4a892a23ba Fix ppp options ordering.
Fixes #205.
2009-11-04 19:40:52 +00:00
Roy Marples
95ee39ab1c Add support for Linux Containers, fixes #202.
Patch by bug reporter.
2009-11-04 19:21:24 +00:00
Roy Marples
3c8ea5896a Fix default domain 2009-10-25 00:03:20 +01:00
Roy Marples
7c5047acfc Release OpenRC-0.5.2 2009-10-17 00:32:40 +01:00
Roy Marples
f2f7d0ae6d Add README.net to describe the networking goals for OpenRC. 2009-10-17 00:18:39 +01:00
Roy Marples
d27655c908 Add domainname to the network script 2009-10-16 12:04:20 +01:00
Roy Marples
9f4a7afd83 Add staticroute to the boot runlevel 2009-10-16 09:25:08 +01:00
Roy Marples
ac6808a73e Regenerate version.h if necessary 2009-10-16 08:13:34 +01:00
Roy Marples
baeb59cd2e Add a new staticroute init script so that .... static routes can be configured!
Fixes Gentoo #288421.
2009-10-16 08:08:22 +01:00
Roy Marples
a4b03ead79 Add lustre 2009-10-15 23:48:40 +01:00
William Hubbs
c96a015742 fix wait time for gentoo bug 288495
The wait time was in seconds.  This patch converts it to milliseconds.
2009-10-15 20:25:01 +01:00
Roy Marples
fdca530d4f Address iproute2 mtu. 2009-10-15 20:20:36 +01:00
Roy Marples
da08e3822f Ensure ip brings interface up when adding addresses.
Fixes Gentoo #288889
2009-10-15 20:17:51 +01:00
Roy Marples
ac7af85813 Provide clock 2009-10-13 21:06:35 +01:00
Roy Marples
a8f6a9b654 Add new utility and init script swclock that sets the system time based on
the mtime of a file. It saves the shutdown time to this file also.
This is handy for systems without a working RTC chip.
Based on an idea by Michael A. Smith <michael@smith-li.com>.
Fixes Gentoo #272073.
2009-10-13 08:03:45 +01:00
Semen Maryasin
aaa0498bf8 EeePC 901 has /proc/acpi/ac_adapter/AC0, so check all AC entries. 2009-10-12 08:21:50 +01:00
Roy Marples
0ffe5caf18 Add more net fs's, Gentoo #284327. 2009-10-11 08:18:35 +01:00
Roy Marples
5e8e38b9cf Improve comments, Gentoo #282243. 2009-10-11 08:15:10 +01:00
Roy Marples
454bd460c4 Multihomed rules show not be applied to the interface, Gentoo #273303. 2009-10-11 08:03:30 +01:00
Roy Marples
a7fabeef95 Release OpenRC-0.5.1 2009-10-08 21:27:30 +01:00
Roy Marples
07f9be7b1c Add pkg-config support, fixes #187. 2009-10-08 00:20:43 +01:00
Roy Marples
42ca23b878 Don't quote opts 2009-09-21 19:05:47 +01:00
Roy Marples
3dc712e222 Allow init scripts to show their dependencies easier 2009-09-04 16:00:08 +01:00
Roy Marples
44585fea46 Add -P to start-stop-daemon to display a . for each second elapsed.
Fixes #197.
2009-09-04 15:41:08 +01:00
Roy Marples
6e485bde39 Really fix --signal 0 2009-09-04 13:32:59 +01:00
Roy Marples
2ea1df634e Fix signed error. 2009-09-04 13:24:26 +01:00
Roy Marples
807e5d7250 Timeout for ipv6 addresses being tentative. 2009-09-04 13:23:40 +01:00
Roy Marples
7012630302 Allow any valid numeric signal and not just what we define. 2009-09-01 13:57:45 +01:00
Roy Marples
51907c7368 If there is an error setting the font, abort instead of trying to set
the font for subsequent consoles.
2009-08-19 16:49:35 +01:00
Roy Marples
8da7a49d02 Fix example 2009-08-17 21:45:11 +01:00
Roy Marples
29949a5496 If mtab is write only and a symlink then assume it's linked to /proc/mounts
and don't try and update it. Fixes #185.
2009-07-20 19:47:08 +01:00
Roy Marples
7fbb6ad427 Don't provide ourself, fixes #190 2009-07-20 19:42:15 +01:00
Roy Marples
08b5664668 Only delete /etc/nologin if we can write to it 2009-07-09 13:32:27 +01:00
Roy Marples
7962218dd8 Apply MTU and txqueuelen after creating the tunnel. 2009-07-08 22:38:48 +01:00
Roy Marples
889b317ac6 Fix wpa_supplicant to find wireless interfaces on newer kernels.
Fixes #176.
2009-07-01 00:24:08 +01:00
Roy Marples
9907c90552 Host should configure urandom.
Fixes #179.
2009-07-01 00:13:25 +01:00
Roy Marples
b4104957b1 We should use -feature instead of nofeature.
This matches the ifconfig and Gentoo USE flag syntax and is hopefully
easier to read.
Fixes #178.
2009-07-01 00:07:32 +01:00
Roy Marples
6abeec7430 Use rc_getline instead of assuming a fixed kernel cmdline length.
This is now requires as COMMAND_LINE_SIZE isn't exposed by kernel
headers anymore.
Fixes #177.
2009-06-21 12:20:53 +01:00
Roy Marples
fbb78022f9 Ensure that tmp dirs are +rw as well as +t. 2009-06-13 21:12:50 +01:00
Natanael Copa
79b24f5b79 hwclock now sends help to stderr. 2009-06-12 23:11:16 +01:00
Roy Marples
fc6cdefedb Linux FHS requires /var/lib/misc
Stop fuser from being chatty
2009-06-08 22:18:39 +01:00
Roy Marples
43f6c2196e Release openrc-0.5.0 2009-06-05 09:20:11 +01:00
Roy Marples
c568baf8c8 Ignore more foo 2009-06-05 09:20:10 +01:00
Roy Marples
aaced3face Update copyright 2009-06-05 09:20:10 +01:00
Roy Marples
c3e9a7ec14 Warn about going inactive correctly. 2009-06-01 20:10:42 +01:00
Roy Marples
efec0b5012 nexthop routes don't use metrics 2009-06-01 20:06:56 +01:00
Roy Marples
278e65b24a Ignore termencoding 2009-05-29 22:09:39 +01:00
Roy Marples
1b3a413673 Skip sysctl errors 2009-05-29 22:08:47 +01:00
Roy Marples
a685e4db0a Add FreeBSD support for AC power. 2009-05-29 21:33:44 +01:00
Roy Marples
e689f17933 Support NetBSD envstat for working out if on AC power. 2009-05-29 21:19:31 +01:00
Roy Marples
fa9e482a31 If not running on AC power don't run fsck to preserve battery life. 2009-05-29 21:06:59 +01:00
Roy Marples
60134ddec5 Only delete addresses for interfaces that exist. 2009-05-29 15:23:23 +01:00
Roy Marples
83e82c452e Merge branch 'master' of ssh://roy.marples.name/var/git/openrc 2009-05-29 14:15:12 +01:00
Roy Marples
a518d34549 Ignore more foo 2009-05-28 20:16:35 +01:00
Roy Marples
5acf0e9464 We need to use eval so we can pass "*" as an argument. 2009-05-26 22:36:53 +01:00
Roy Marples
c0fd1b49e4 Move non compiled libraries from /lib/rc to /libexec/rc
OpenRC version is now stored as plaintext in /libexec/rc/version

Plugins (cursplash, splashutils) will have to be re-compiled to pickup
the new directories. State data needs to be moved from /lib/rc/init.d
to /libexec/rc/init.d as well.
2009-05-23 20:38:12 +01:00
Roy Marples
5294abe617 If already started or stopped, abort. 2009-05-17 12:29:46 +01:00
Charlie
9c5faf231c procfs should use modules. 2009-05-11 15:31:52 +01:00
Roy Marples
701813b5ff procfs should use modules. 2009-05-11 15:31:52 +01:00
Roy Marples
b2eb9f8a83 Unset PAM environment variables if not set 2009-05-07 12:20:59 +01:00
Roy Marples
cc5e43922e Supply a working default inittab 2009-05-07 10:44:50 +01:00
Roy Marples
0aabe32375 Enable wpa_supplicant for >1 wireless interface if found. 2009-05-06 16:47:37 +01:00
Roy Marples
7c81f74b60 Fix compile on NetBSD 2009-05-05 16:39:59 +01:00
Roy Marples
d441bf1585 Ignore more foo for the BSDs 2009-05-05 10:29:52 +01:00
Roy Marples
43063ae7c2 Fix compile on NetBSD and FreeBSD 2009-05-05 10:24:21 +01:00
Roy Marples
e575b33047 We shouldn't use -L/lib 2009-05-02 18:29:00 +01:00
Roy Marples
c09e6b3e6d Typo 2009-05-02 12:31:13 +01:00
Roy Marples
6615eb4b68 Add runlevel stacking, #88
This implementation has the limitation that you cannot have a stacked
runlevel and service of the same name in a runlevel.
2009-05-02 12:26:45 +01:00
Roy Marples
e040bd77e9 Ignore test results 2009-05-02 12:18:34 +01:00
Roy Marples
658a220638 Add (c) to Copyright 2009-05-01 15:11:40 +01:00
Roy Marples
b32c9c1139 Ensure that rc.d services are not started twice if PKG_DIR is blank.
Fixes #170
2009-05-01 09:37:51 +01:00
Roy Marples
fb051bf81a Add -i, --ifexists so that we can do this
rc-sercice -i foo -- restart
instead of this
  rc-service -e foo && rc-service foo -- restart
2009-05-01 08:38:57 +01:00
Roy Marples
caf29a6480 Fix git versioning 2009-05-01 00:15:20 +01:00
Roy Marples
f689187966 Add -Z, --dry-run option to show which services we would start/stop
without actually doing so.
Fixes #151.
2009-04-30 23:42:01 +01:00
Roy Marples
3d0e5175d8 Avoid more gcc warning about not checking return values ... 2009-04-30 19:56:43 +01:00
Roy Marples
21e45e895c Brand with git version instead of svn 2009-04-30 19:16:31 +01:00
Juan RP
a1e40e9beb Fix parens 2009-04-30 16:45:18 +01:00
Roy Marples
b70501ef45 Go back to git 2009-04-30 15:05:39 +01:00
Roy Marples
e0f0fc8046 Don't start services when their need dependency is broken 2009-04-28 08:29:02 +00:00
Roy Marples
48f477f851 Fix a brain fart 2009-04-27 13:58:26 +00:00
Roy Marples
3d43fb6f22 Although the noshutdown keyword is nice, we shouldn't use it for network or dhcpcd. Instead fake network shutdown so it comes back up correctly at boot and KILL dhcpcd to preserve network. 2009-04-27 13:33:37 +00:00
Roy Marples
824bb3aee3 Allow templates to define a stop signal 2009-04-27 13:32:13 +00:00
Roy Marples
0f70279f89 Set correct prefix 2009-04-27 12:12:42 +00:00
Roy Marples
71062f479a Add noshutdown to dhcpcd and wpa_supplicant. Tweak for style. 2009-04-27 12:06:54 +00:00
Roy Marples
94b3057571 Add the noshutdown keyword to special case the shutdown. 2009-04-27 12:04:33 +00:00
Roy Marples
338c93733d Fix the nstop keyword. 2009-04-27 09:06:30 +00:00
Roy Marples
e70a142956 Style. 2009-04-27 07:51:18 +00:00
Roy Marples
eaa32c75c9 Add the nostop keyword so that we don't stop the network init script by default. 2009-04-26 21:16:05 +00:00
Roy Marples
2b866f264f Stop using needless {} in vars 2009-04-26 21:13:26 +00:00
Roy Marples
59574780da Document tap interface creation. 2009-04-26 18:53:24 +00:00
Roy Marples
77c8f8abbb Use /bin/bash or user shell in /etc/passwd if none set before /bin/sh. 2009-04-26 17:57:06 +00:00
Roy Marples
1d48183646 Try and set a keymap as early as possible, #169 2009-04-26 11:19:22 +00:00
Roy Marples
0feddbd815 Use kill for the pid check as it's fast. 2009-04-25 20:44:13 +00:00
Roy Marples
bd6bb932df Don't report final eends for interfaces as they make no sense. 2009-04-25 18:02:28 +00:00
Roy Marples
f51d8d0b7d Document interfaces variable useage a bit better. 2009-04-25 13:44:41 +00:00
Roy Marples
42580d67b8 Verbosely report vars correctly. 2009-04-25 11:39:18 +00:00
Roy Marples
c07b384d82 Don't drop to sulogin by default, but make this configurable. 2009-04-24 11:49:55 +00:00
Roy Marples
bd211d534b We should match the full variable name. 2009-04-24 11:45:48 +00:00
Roy Marples
b0ac71fe2a Add missing show levels switch. 2009-04-24 10:23:49 +00:00
Roy Marples
9966a902ab rc-status -c now lists services that have crashed.
It returns 0 if there are crashed services, otherwise 1.
This it easy to restart crashed services automatically.
More for #120.
2009-04-24 10:17:53 +00:00
Roy Marples
e2629b0a3b Remove .depend before creating it. 2009-04-24 08:33:11 +00:00
Roy Marples
5276b13926 Cast to int 2009-04-24 08:32:44 +00:00
Roy Marples
e7b35a8f15 Allow rc to start (optionally stop) crashed services, #120 2009-04-24 07:03:08 +00:00
Roy Marples
e643a7fdd5 Describe interval units 2009-04-24 06:37:29 +00:00
Roy Marples
ade85d4bd8 Improve style for KNF 2009-04-23 21:31:22 +00:00
Roy Marples
6953474655 Style 2009-04-23 20:53:24 +00:00
Roy Marples
d231a2f0d9 Fix logic, thanks to Maryasin Semen 2009-04-23 20:44:17 +00:00
Roy Marples
7086df5664 Don't include hotplugged services in manual. 2009-04-23 20:27:40 +00:00
Roy Marples
7dc9c39503 Improve the service timeout code and reduce the timeout to 60 seconds.
Don't process any dependencies when changing runlevels and called 
outside of RC otherwise we can deadlock.
2009-04-23 20:20:17 +00:00
Roy Marples
953b0b7435 Document -i, --interpreted flag. 2009-04-22 10:49:07 +00:00
Roy Marples
f326f688f6 Add the -i, --interpreted option.
This enables the code to include the daemons interpreter when matching
process name which fixes bug #164.
Existing init scripts that rely on the old behaviour will need to be 
fixed.
2009-04-22 10:45:01 +00:00
Roy Marples
588c9da0ab Document DHCP and iwconfig. 2009-04-19 21:45:09 +00:00
Roy Marples
7e9cdbd16e Document \$int and how to create bridge and vlan interfaces. 2009-04-19 21:35:26 +00:00
Roy Marples
a2856fe192 Use shell_var for shell variables. 2009-04-19 21:10:06 +00:00
Roy Marples
8e5a601087 Style 2009-04-19 21:02:31 +00:00
Roy Marples
a01f9be6f2 We should use $int for compat with NetBSD 2009-04-19 20:59:46 +00:00
Roy Marples
371506be48 Default to not building the old net scripts. 2009-04-19 20:54:11 +00:00
Roy Marples
4febf00c06 Allow family on routes, #152 2009-04-19 20:05:40 +00:00
Roy Marples
73f6d1c39e Document defaultroute 2009-04-19 18:36:06 +00:00
Roy Marples
ee53e6ad29 -w, --wait seconds
New option so you can set the number of seconds to wait for and
check the daemon is still running.
The old code that periodically polled wasn't that reliable - in this 
case simpler == better.
Fixes #160
2009-04-19 18:20:49 +00:00
Roy Marples
e2942e34af Use a bashism for a minor speedup in gendepends.sh 2009-04-19 16:47:09 +00:00
Roy Marples
bbd810425b Move special umount of tmpfs to the swap init script where it belongs, #149. 2009-04-19 11:15:37 +00:00
Roy Marples
bb6614f4e1 Document rc_nostop, #118 2009-04-19 10:25:38 +00:00
Roy Marples
170547010f Pull /etc/ifconfig.eth0 into interfaces
Reverse list of interfaces when stopping
Improve build for conf.d/network
2009-04-19 08:52:00 +00:00
Roy Marples
3579663173 Don't leak the lock fd. 2009-04-18 19:54:04 +00:00
Roy Marples
802fe9709e Allow user to provide custom status function and still hook into the system one 2009-04-18 10:39:53 +00:00
Roy Marples
657cb3a6eb Fix compile on FreeBSD. 2009-04-18 00:57:17 +00:00
Roy Marples
9225c6cefb Not all systems have the utmp group 2009-04-18 00:56:48 +00:00
Roy Marples
1a2d81751d Support BSDs 2009-04-18 00:56:26 +00:00
Roy Marples
c9e24a0494 Move status to runscript.sh so init scripts can override it, #159
Return 32 if crashed, #163
2009-04-18 00:09:03 +00:00
Roy Marples
d4c71415a9 Add MKOLDNET=yes/no toggle 2009-04-17 23:23:31 +00:00
Roy Marples
ee54bb9372 Using fifos for locking can be error prone.
flocks are safer, as we only use tmpfs for our lock files.

I don't know how this works for inactive just yet though ...
2009-04-17 22:55:11 +00:00
Roy Marples
7138c1532c Typo, thanks to Matthias Schwarzott, #166. 2009-04-17 09:48:34 +00:00
Roy Marples
6027b0ed7d Add a new init script - network
This simply assigns static addresses and an optional default route.
It's possible to add external commands as well, so to create a bonded interface.

Hopefully we can add a few examples to satisfy most of the old net.lo, which
is no longer installed into boot by default.
2009-04-16 23:47:23 +00:00
Roy Marples
95d954e7b5 Improve utmp handling 2009-04-16 23:39:37 +00:00
Roy Marples
744a8bbb4a Don't unmount /bin,/sbin,/lib,/libexec in the very silly cases where they are not on / 2009-04-16 23:34:38 +00:00
Roy Marples
ace0b9653b Avoid needless forking, #165
Thanks to Natanael Copa.
2009-04-16 23:23:21 +00:00
Roy Marples
966ecb24da Add net dependency 2009-04-16 21:02:46 +00:00
Roy Marples
cba9f12715 Simplfy rm matching pattern, thanks to cypherpunks@mailinator.com 2009-04-12 12:59:00 +00:00
Roy Marples
dea9e11a69 When logging, stdout isn't always a tty, which is the case for VPS
systems, Thanks to mwrobel - fixes #106.
2009-04-02 23:55:19 +00:00
Roy Marples
0b12faed7f We should abort boot on some errors. 2009-03-16 21:41:23 +00:00
Roy Marples
34fbf3db2f Add scripts for dhcpcd and wpa_supplicant. 2009-03-05 20:41:07 +00:00
Roy Marples
132dfd7b1e Typo, thanks to Polynomial-C 2009-03-05 00:41:44 +00:00
Roy Marples
077b2d3ba8 Report if service is not executable. 2009-02-28 14:12:19 +00:00
Roy Marples
907ca8a89f Set errno when service does not exist better. 2009-02-28 14:12:03 +00:00
Roy Marples
f38ef00939 Fix unit test. 2009-02-23 10:43:24 +00:00
Roy Marples
66cd081301 Change wipe_tmp_dirs to clean_tmp_dirs so user understands meaning better, #153 2009-02-23 09:36:48 +00:00
Roy Marples
749938d439 Style. 2009-02-23 09:35:57 +00:00
Roy Marples
70d8c5beda Typo, #150
Thanks to betelgeuse
2009-02-13 12:52:29 +00:00
Roy Marples
b60f437b52 Fix the number of terminals to operate on.
Thanks to Dimitrios Christidis <chrjim@gmail.com>
2009-02-13 12:24:32 +00:00
Roy Marples
d6d2635c51 root should respect inittab, #148. 2009-02-12 18:12:57 +00:00
Roy Marples
6cc68e21cf Fix return value for tests. 2009-02-12 10:43:30 +00:00
Roy Marples
9f3cf59818 hostid does not need root to run 2009-02-11 17:42:14 +00:00
Roy Marples
7a628e1db7 Release 0.4.3 2009-02-11 06:54:58 +00:00
Roy Marples
069590d97f Fix unmask option, thanks to douglas@openplans.org, #146 2009-02-10 23:11:17 +00:00
Roy Marples
3fc17f5966 Store the file skewed against. 2009-02-10 15:25:28 +00:00
Roy Marples
522ab21fbf Only create the reboot file if rebooting. 2009-02-10 15:16:25 +00:00
Roy Marples
3d7b56f2e2 Create /reboot if running inside OpenVZ, #138.
This should be fine as vpsreboot should only restart a stopped container.
2009-02-10 15:06:48 +00:00
Roy Marples
6bb44be2a3 We should always mount $RC_SVCDIR unless in a vserver or it's already mounted. 2009-01-29 13:38:15 +00:00
Roy Marples
415fe87d8c Clean up some compiler warnings. 2009-01-29 13:29:04 +00:00
Roy Marples
4f163f9b9a Allow wpa_cli_$IFACE to too send args to wpa_cli. 2009-01-21 09:25:34 +00:00
Roy Marples
417a817d25 noinit makes more sense than noinitd 2009-01-18 20:02:50 +00:00
Roy Marples
30a7a3a9bf Fix locale with svnversion, #140 thanks to Matthias Schwarzott. 2009-01-14 14:32:56 +00:00
Roy Marples
5208a1de29 yes should be YES 2009-01-13 11:04:37 +00:00
Roy Marples
abcc4c5c72 Don't allow SYSVINIT parameters through anymore.
RC_REBOOT is now yes when rebooting.
Document the special reboot runlevel.
2009-01-13 11:02:00 +00:00
Roy Marples
fcf1cce549 rc_newer/older_than only report file if time_t is a pointer, so it
should take precedence in the argument list.
2009-01-13 09:11:31 +00:00
Roy Marples
3d37005a3d We now warn about clock skews
rc-update -u will force a regen of the dep tree
rc_newer_than and rc_olderthan now take another two parameters for newest/oldest file and mtime
2009-01-12 23:53:13 +00:00
Roy Marples
2243c01390 Add snapshot and snap targets 2009-01-12 23:12:06 +00:00
Roy Marples
a52472c3c3 Fix ordering, #139 thanks to Matthias. 2009-01-12 10:24:47 +00:00
Roy Marples
f23822e082 Copyright 2009-01-12 10:24:00 +00:00
Roy Marples
8a9a2d5fe9 Use snprintf instead of strlcpy to save on size if not available. 2009-01-12 08:31:03 +00:00
Roy Marples
a33554ab18 Copyright 2009-01-11 17:17:04 +00:00
Roy Marples
baf0ce64f5 Ensure that $HOME and $USER are always set, #139 2009-01-11 17:09:13 +00:00
Roy Marples
26f70a5277 Style 2009-01-10 12:18:00 +00:00
Roy Marples
36c53e7551 Keyword novserver, #137. 2009-01-06 16:25:33 +00:00
Roy Marples
5ca3345534 Release openrc-0.4.2 2009-01-05 20:16:50 +00:00
Roy Marples
0298e4ffa0 Remove leading and trailing space on the ctrl_interface line. 2009-01-05 09:37:38 +00:00
Roy Marples
a063035b37 Make _SVNVER_SH more readable. 2009-01-02 22:51:47 +00:00
Roy Marples
213cef1739 Fix version for releases. 2009-01-02 16:48:42 +00:00
Roy Marples
386ee57432 Fix compile, #136 2009-01-02 15:11:15 +00:00
Roy Marples
631acff7aa Document the --chuid option. 2009-01-01 14:32:09 +00:00
Roy Marples
877a328179 dmesg and sysfs won't work in a vserver, #137 thanks to Hollow. 2009-01-01 14:27:29 +00:00
Roy Marples
1efa64cae8 Typo. 2008-12-30 19:08:51 +00:00
Roy Marples
22959c3963 Fix working on zsh 2008-12-30 00:05:17 +00:00
Roy Marples
2464f9e93b Add parens, #134 thanks to Matthias Schwarzott. 2008-12-29 23:06:22 +00:00
Roy Marples
d91201cb94 Skip all forcefsck checking when stopping, #134. 2008-12-28 15:25:40 +00:00
Roy Marples
1c5ec9d161 Fake get_bootparam function so that we don't check for kernel options forcefsck when doing an fsck on shutdown. 2008-12-28 14:49:07 +00:00
Roy Marples
f4b8366942 Parse retry schedule correctly, #129. Thanks to vaeth. 2008-12-28 14:05:33 +00:00
Roy Marples
438665357b Release 0.4.1 2008-12-23 10:45:16 +00:00
Roy Marples
7ad40abf64 Our error messages don't have full stops at the end 2008-12-23 10:42:25 +00:00
Roy Marples
7e12abe035 Typo. 2008-12-23 10:41:33 +00:00
Roy Marples
4dba5b1ff1 Disallow hotplug to run during sysinit, but allow elsewhere. Fixes #131. 2008-12-23 10:40:27 +00:00
Roy Marples
1ff289e305 Whitespace. 2008-12-23 10:39:45 +00:00
Roy Marples
53e2bec385 We should match on the correct args for stopping daemons when pidfiles
are not being used.
2008-12-23 10:15:41 +00:00
Roy Marples
9d9f17aa52 Allow working with the new ctrl_iface=DIR=foo directive. 2008-12-23 10:13:58 +00:00
Roy Marples
803dbbf0c8 Allow rc_runlevel/softlevel to set runlevel from kernel commandline. 2008-12-21 01:15:02 +00:00
Roy Marples
9e5e60f257 Store interactive mode after sysinit, #128 thanks to Matthias Schwarzott. 2008-12-13 22:20:21 +00:00
Roy Marples
6bf0289f33 Warn about stopping sysinit services, thanks to Matthias Schwarzott. Fixes #126. 2008-12-11 14:50:58 +00:00
Roy Marples
bdb3485b49 Punt redundant dirs from git mirgation. 2008-12-07 08:38:16 +00:00
Roy Marples
eb6daeca43 Fix dist for svn 2008-12-07 07:51:40 +00:00
Roy Marples
10e88090f6 Release 0.4.0 2008-12-07 07:49:24 +00:00
Roy Marples
8cce75925f Ignore FreeBSD targets. 2008-12-05 09:24:49 +00:00
Roy Marples
e72aeebbcd make ignore now updates svn:ignore as different OS's have different targets. 2008-12-04 19:21:47 +00:00
Roy Marples
dc712a109e runlevel override works correctly again. 2008-12-04 17:30:26 +00:00
Roy Marples
1acbfcf5ca Report invalid runlevels. 2008-12-04 17:17:09 +00:00
Roy Marples
f8210050e5 If we're building from subversion, brand the binary as such. 2008-12-04 13:12:46 +00:00
Roy Marples
38e6c9ba5c make ignore now configures the sv:ignore property. 2008-12-04 12:38:23 +00:00
Roy Marples
2c98c5326a Punt .gitignore files. 2008-12-04 12:12:09 +00:00
Roy Marples
57f90a42ba Include hotplugged services in our start list. 2008-12-01 08:46:50 +00:00
Roy Marples
bde35d03ed Actally show hotplugged services. 2008-12-01 08:46:25 +00:00
Roy Marples
8b76e1d2e0 Ignore interupts when waiting for processes to finish. Also, style fixes. 2008-11-28 10:48:01 +00:00
Roy Marples
b859710cc8 Style. 2008-11-28 10:47:17 +00:00
Roy Marples
c064393f08 Save screen space. 2008-11-28 10:46:58 +00:00
Roy Marples
e84f71596e Not needed. 2008-11-27 21:14:52 +00:00
Roy Marples
23e73957a0 Switch from select to poll and improve the no prefixing of eend calls. 2008-11-27 21:14:43 +00:00
Roy Marples
2537a07e10 Switch from select to poll and improve the no prefixing of eend calls. 2008-11-27 21:05:39 +00:00
Roy Marples
5403e70313 Save more screen space by removing the space befor the * for einfo and friends. Also remove the leading space before ... for ebegin. 2008-11-26 10:46:33 +00:00
Roy Marples
fe12134a5b Don't warn about waiting for services marked as notimeout, Gentoo #247306. 2008-11-23 18:40:43 +00:00
Roy Marples
1deaa0fae0 Fix lib. 2008-11-13 09:35:00 +00:00
Roy Marples
0cca768b82 Mark the addon code as deprecated. 2008-11-12 19:19:56 +00:00
Roy Marples
df22978de9 Punt halt init script. sysvinit should install it. See Gentoo bug #246502 on how to handle this. 2008-11-12 16:28:07 +00:00
Roy Marples
fe509db660 Save a needless malloc when re-creating PATH. 2008-11-12 10:55:42 +00:00
Roy Marples
937b1b2abf Don't set user info unless stated. 2008-11-11 19:47:30 +00:00
Roy Marples
eafbed0366 Fix stopping with a faulty pidfile. 2008-11-10 20:57:03 +00:00
Roy Marples
0786141026 Restore interface_exists, interface_up and interface_exists, #123. 2008-11-10 12:31:20 +00:00
Roy Marples
90d175ae27 Remove deprecated use of modprobe -l. If we need this functionaltiy back, we need to use something else, like say find. 2008-11-04 17:08:35 +00:00
Roy Marples
a178fd0f32 We should not update mtab here. 2008-11-04 17:07:32 +00:00
Roy Marples
03e8e0cb68 More Typos. 2008-11-04 14:28:51 +00:00
Roy Marples
a3d266e741 Use mount-ro 2008-11-04 11:32:07 +00:00
Roy Marples
42e6a95b1d Move romount to mount-ro and use the umount -r option as it's more reliable for / --bind mounts, Gentoo #239922. Thanks to Duncan. 2008-11-04 11:30:15 +00:00
Roy Marples
45044c9239 Typo 2008-11-04 11:28:24 +00:00
Roy Marples
5fc6f21169 Typo 2008-11-04 11:05:30 +00:00
Roy Marples
2cf24fe793 Ignore after dependencies for shutdown when not in the runlevel. 2008-11-04 09:32:21 +00:00
Roy Marples
cc14b55414 Now the linx fsck man page has return codes, I find them different from the BSD's so adjust accordingly. 2008-11-04 07:45:05 +00:00
Roy Marples
33d4fba5be We start off in sysinit correctly. 2008-11-04 00:21:30 +00:00
Roy Marples
32e17af92f No need for NULL here. 2008-11-03 23:13:36 +00:00
Roy Marples
77d56f5489 Avoid depends not in the runlevel for sysinit and shutdown. 2008-11-03 23:13:12 +00:00
Roy Marples
c520d4a23a --nice is -N, not -n. Also, correct default timeout. 2008-11-03 21:11:29 +00:00
Roy Marples
8a76c27325 Fix sending signals, #121. 2008-11-03 21:06:45 +00:00
Roy Marples
7467440a29 Fix fstabinfo for mounting /dev/shm, Gentoo #245367. 2008-11-03 18:00:55 +00:00
Roy Marples
282ad4bae6 Add descriptions. 2008-11-03 16:16:12 +00:00
Roy Marples
1e5a6f40e5 We shouldn't run halt.sh anymore. 2008-11-03 16:11:29 +00:00
Roy Marples
0af7d5bc20 Add a new shutdown runlevel, Gentoo #224537.
Split halt.sh into halt, killprocs, romount and savecache services.
The reboot runlevel is removed but mapped to shutdown.
The halt script should be moved to the sysvinit package.
2008-11-03 15:31:01 +00:00
Roy Marples
895c4f4149 Plug a leak and expand exec also. 2008-10-30 17:57:58 +00:00
Roy Marples
20380d3144 Allow ~ and ~user to expand for chdir and chroot. 2008-10-30 17:40:48 +00:00
Roy Marples
e1341e372b Fix --name when stopping, Gentoo #243088. 2008-10-30 16:26:05 +00:00
Roy Marples
1c73f2967c We no longer hotplug by default. 2008-10-30 15:03:12 +00:00
Roy Marples
2ff0838abb We should show hotplugged services, needed services and manually started services in rc-status. 2008-10-30 14:59:14 +00:00
Roy Marples
53ddd6ca96 Properly set PAM enviornment variables after opening session.
Without this change, modules like pam_mktemp or pam_env and similar
will be unable to change users' environments, like they are supposed
to.
2008-10-29 21:35:45 +00:00
Roy Marples
9ec6ff02bb Style and typo. 2008-10-28 15:43:36 +00:00
Roy Marples
aa991a3c99 Style. 2008-10-27 18:38:56 +00:00
Roy Marples
0d98d56188 Remove sysvinit specific code.
The runlevels shutdown, reboot, sysinit and single should be called by
init(8) and shutdown(8) and not manually.
sysvinit users will have to add sulogin to their inittab to secure the
console.
2008-10-27 18:01:03 +00:00
Roy Marples
ae692e294e Don't quote $tunnel, Gentoo #218123. 2008-10-26 19:58:57 +00:00
Roy Marples
f6e3c167ae Remove bash localisation feature, Gentoo #244444 thanks to Andrey Grozin. 2008-10-26 19:19:19 +00:00
Mike Frysinger
1d96620b84 hwclock: skip rtc checks if kernel lacks module support
Since we only use the result of the device scan to load modules, there is
no point in doing the scan if the kernel doesn't support modules in the
first place.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-10-26 07:09:02 +00:00
Roy Marples
d12bb5cf3c Really fix .depend 2008-10-20 16:47:56 +00:00
Roy Marples
9c76b077d6 Enable use of .depend on gmake. Also, generate extra dependencies for our shared libraries. 2008-10-20 12:09:14 +00:00
Roy Marples
0a39145a5e Include sysinit services even in single user. 2008-10-16 17:04:44 +00:00
Roy Marples
734e60608a Ignore new scripts. 2008-10-16 09:41:14 +00:00
Roy Marples
66ae6e38a7 Compile with FreeBSD 6.x make 2008-10-15 09:02:27 +00:00
Roy Marples
8d47d6c022 Fix fuser on BSD platforms. 2008-10-15 08:35:21 +00:00
Roy Marples
c18c74e816 Fix adding just the default route, #119 thanks to pva. 2008-10-14 15:27:52 +00:00
Roy Marples
da94fad3f5 Re-evaluate sys after running initsh. 2008-10-10 14:53:50 +00:00
Roy Marples
10cb4c18df Remove hardedcoded foo here. 2008-10-10 09:35:13 +00:00
Roy Marples
50b8aba8d9 Remove coldplug and just have hotplug which is a list of allowed/disallowed services. Makes things much easier. 2008-10-10 09:08:59 +00:00
Roy Marples
72dcac8c55 Shorten common messages for prefixed output. 2008-10-10 09:03:59 +00:00
Roy Marples
d6da8e8c48 sysinit is now a real runlevel that handles things like udev, dmesg and
mounting various bits in /dev and /sys.
init.sh JUST mounts /lib/rc/init.d (and /proc for Linux systems)
To make development of this easier we now return an empty RC_STRINGLIST
instead of a NULL for empty things.

If you don't have a udev init script installed, don't reboot your box OR
roll back to an older OpenRC version.
2008-10-10 08:37:21 +00:00
Roy Marples
247766695c Fix umounting reporting exit status, Gentoo #239922. 2008-10-09 16:36:42 +00:00
Roy Marples
1a88a43aa5 Warn about sulogin timeout and then continue as normal, Gentoo #240383 2008-10-09 16:34:21 +00:00
Roy Marples
c4e673edbc Add a better, but incomplete tgoto implementation to make gcc happy. 2008-10-08 21:07:04 +00:00
Roy Marples
a872fe5590 Fix status check, #239922 2008-10-08 18:32:39 +00:00
Roy Marples
8c8751fa60 Clean up warnings regarding printf. 2008-10-08 15:56:47 +00:00
Roy Marples
5cdc489573 Fix utmp permissions, Gentoo #240437. 2008-10-08 13:58:17 +00:00
Roy Marples
4d74e94c39 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-10-07 12:18:22 +00:00
Roy Marples
d117b2d644 Fix tests, #Gentoo 240350. 2008-10-07 12:14:53 +00:00
Roy Marples
cb44b0a46c #ifdef atexit cleanups calling free as the OS should do this for us, but valgrind debuggers need it. 2008-10-06 15:02:32 +00:00
Roy Marples
4e4c4a5bf4 kenv is not always available. 2008-10-03 17:50:30 +00:00
Roy Marples
09a1a5ecd4 Fix a segfault when profile.env does not exist. 2008-10-03 17:50:10 +00:00
Roy Marples
84f6bf4bff Release 0.3 2008-10-02 16:14:13 +00:00
Roy Marples
5f76c1121a Clean stale sockets. 2008-10-01 21:12:54 +00:00
Roy Marples
41c1e170d6 Add an env var so plugins know when leaving single means the end, or start the default level. 2008-10-01 08:46:53 +00:00
Roy Marples
f53197818b Correcly call the right runlevel for plugins when shutting down. 2008-10-01 06:10:34 +00:00
Roy Marples
bb41d2cc80 Use flock to lock PREFIX_LOCK so that multiple processes can cleanly write to the same tty. 2008-09-27 18:50:21 +00:00
Roy Marples
4291b9140e Warn when waiting for a service every few seconds. 2008-09-27 17:17:15 +00:00
Roy Marples
28d7fb9430 When stopping services, check the newlevel if given otherwise the current runlevel. Fixes #100. 2008-09-27 16:56:03 +00:00
Roy Marples
abe94bec6f Load rtc-cmos if needed, Gentoo #235647 thanks to Robin Johnson. 2008-09-27 06:48:21 +00:00
Roy Marples
c3e192a834 Stop ssd from waiting by default - most daemons are good now. 2008-09-26 23:58:57 +00:00
Roy Marples
13d88731b7 We don't check exec when starting, so don't when testing for crashed. 2008-09-22 20:07:14 +00:00
Roy Marples
ffc79a50c2 Style 2008-09-22 19:49:16 +00:00
Roy Marples
6748c0e04e Allow forcefsck instead of gentoo=forcefsck on the kernel command line. 2008-09-22 12:32:35 +00:00
Roy Marples
27805de20a Allow forcefsck on the kernel command line, Gentoo #218431 2008-09-22 12:32:11 +00:00
Roy Marples
53693367df Our match arguments could be different from the exec arguments, as only the kernel should set script arguments. 2008-09-22 12:14:47 +00:00
Roy Marples
554d2fea19 Allow interpreted daemons to detect interperter options. 2008-09-22 10:45:01 +00:00
Roy Marples
a63303971a Document the --verbose option. 2008-09-22 09:37:28 +00:00
Roy Marples
5610c8560c s-s-d now handles interpreted daemons more easily. 2008-09-22 09:34:51 +00:00
Roy Marples
2c62d095c8 Typo. 2008-09-21 09:53:48 +00:00
Roy Marples
a72dc1194a Style. 2008-09-19 11:34:35 +00:00
Roy Marples
dcc4aa131c Document the limitation of symlinking services outside of the service directory, Gentoo #237263. 2008-09-19 11:32:24 +00:00
Roy Marples
6b3d8cf598 Fix stopping wpa_supplicant incorrectly, #107 2008-09-19 11:24:21 +00:00
Roy Marples
600d1f62fb Allow configuration of bond via extra sysfs entries, #105. 2008-09-19 09:32:24 +00:00
Roy Marples
2de401bca1 Enable bonding via sysfs, #104 thanks to Wolfram Schlich 2008-09-18 22:24:58 +00:00
Roy Marples
e368a4b4f8 Add missing profile bits to env, #72. 2008-09-18 19:46:10 +00:00
Roy Marples
354fb96ee9 Use the new rc_stringlist_find function. 2008-09-18 15:36:22 +00:00
Roy Marples
312d6f3e57 Work with NULL lists. 2008-09-18 15:32:57 +00:00
Roy Marples
39ea0cb84d Use the new rc_stringlist_find function. 2008-09-18 15:28:20 +00:00
Roy Marples
17bf78a539 Use the new rc_stringlist_find function. 2008-09-18 15:20:57 +00:00
Roy Marples
072328ff60 rc_nostop now lists services we should not stop on shutdown. 2008-09-18 15:13:53 +00:00
Roy Marples
e0dfa472d1 Add new functions, rc_stringlist_find and rc_stringlist_split. 2008-09-18 15:12:43 +00:00
Roy Marples
ccc24d1086 Add a config file for ipfw, #110 2008-09-18 14:25:23 +00:00
Roy Marples
c4c024fc9d Allow an empty bridge with no options, Gentoo #237485. 2008-09-18 14:13:33 +00:00
Roy Marples
223015920c Warn about parallel still locking the system. 2008-09-18 13:59:05 +00:00
Roy Marples
aa02a5516a Use better CFLAGS - some new warnings will need to be fixed. 2008-09-18 13:49:58 +00:00
Roy Marples
80a17eb596 Clean up some compile warnings. 2008-09-18 13:09:51 +00:00
Roy Marples
39304745d4 Allow interpreted daemons to use s-s-d a little easier. 2008-09-17 16:56:23 +00:00
Roy Marples
93a3b2dd02 Fix iwconfig parsing on Linux, #111 thanks to Andrew Gaffney. 2008-09-04 14:54:56 +00:00
Roy Marples
00d010fbe0 Work without IP6 kernels, #108 2008-08-29 06:43:54 +00:00
Roy Marples
01de348ede Add rpc.lockd to netmount.in for BSD 2008-08-27 16:06:01 +00:00
Roy Marples
fabee4dc2d Actually set the umask. 2008-08-20 10:19:03 +00:00
Roy Marples
1ab1e9328a Add -k,--umask option, Gentoo #232455. 2008-08-20 10:02:11 +00:00
Roy Marples
a9f7d2d5e5 Allow dhcpcd to use global dhcpcd variable for commandline options. 2008-08-19 22:30:59 +00:00
Roy Marples
a3c8706618 Allow OpenVZ to mount /sys and device managers, #102 2008-08-19 15:27:15 +00:00
Roy Marples
1f227d62bf Allow renaming of modules, #103 thanks to Sven. 2008-08-19 15:25:06 +00:00
Roy Marples
cdace75539 OpenVZ can mount NFS shares. 2008-08-19 06:44:47 +00:00
Roy Marples
15678263d5 Add new OpenVZ detection code 2008-08-19 06:36:43 +00:00
Roy Marples
cea206014d Attempt to make s-s-d simpler by not enforcing the need for a full path and maybe working better with interpreted scripts. 2008-07-27 11:30:49 +00:00
Roy Marples
46a74f244e Typo 2008-07-24 19:02:28 +00:00
Roy Marples
c67233f15c Don't set silly defaults that may brake users. 2008-07-09 18:28:45 +00:00
Roy Marples
b15c4758f8 We should unmount / here. 2008-07-09 18:28:14 +00:00
Roy Marples
289889ebf0 Fix unmounting some more. 2008-07-09 17:05:10 +00:00
Roy Marples
7183cb1b18 Fix last commit 2008-07-09 16:20:48 +00:00
Roy Marples
b83108cd2e Add a knob to avoid the unmounting of some points. 2008-07-09 16:08:38 +00:00
Roy Marples
1ca63447c9 Hide mkdir error's 2008-07-09 15:22:15 +00:00
Roy Marples
c2781c209e Really test if we can write to RC_LIBDIR or not. 2008-07-09 15:12:56 +00:00
Roy Marples
5983add0f2 No point in re-mounting ro filesystems that are already ro. 2008-07-09 14:24:48 +00:00
Roy Marples
a566493eb8 Ignore core files 2008-07-09 14:04:40 +00:00
Roy Marples
bdd8b150cd Fix return display. 2008-07-09 13:36:37 +00:00
Roy Marples
53401cd35f STAILQ -> TAILQ 2008-07-08 10:48:21 +00:00
Roy Marples
7a6112d3b0 Punt STAILQ and just use TAILQ so we're a bit more portable. 2008-07-07 14:16:46 +00:00
Roy Marples
157db50df7 Fix is_older_than a little better, and make is_newer_than correct. 2008-07-03 13:30:17 +00:00
Roy Marples
a88a177f99 Add older_than function to complement newer_than function. Also make the userland instance reversed to be compatable with current baselayout, which truely does suck. 2008-07-03 13:11:47 +00:00
Roy Marples
d61f831896 More unit fixes. 2008-07-03 13:09:24 +00:00
Roy Marples
28a65393ca More unit fixes. 2008-07-03 13:09:10 +00:00
Roy Marples
aa57dd1ff6 More unit fixes. 2008-07-03 12:33:42 +00:00
Roy Marples
e0968a1c2e Fix test. 2008-07-03 12:20:32 +00:00
Roy Marples
2f5d2855ba Add an is_older_than unit test, thanks to zzam 2008-07-03 12:07:46 +00:00
Roy Marples
db9bf18587 Fix compile with pcc. 2008-07-02 23:20:04 +00:00
Roy Marples
feac5ea1d5 Ignore ewaitfile. 2008-06-30 13:36:59 +00:00
Roy Marples
64dbae7f61 If filtering fstab, only match additional mounts asked for. 2008-06-30 13:33:42 +00:00
Roy Marples
11e4059b05 Set the default RC_SVCDIR higher up. 2008-06-21 15:31:04 +00:00
Roy Marples
5510451bac We need to replace @LIB@ here. 2008-06-21 14:10:59 +00:00
Roy Marples
11acce3c7d Use CPPFLAGS so we work with -combine in CFLAGS. 2008-06-19 23:12:00 +00:00
Roy Marples
4f2bb5ceaf open should use 3 args when using O_CREAT. 2008-06-17 15:14:33 +00:00
Roy Marples
bf8f0da921 fuzzy dependency ordering should be started, starting, stopped whilst checking runlevel, bootlevel, any at each stage. 2008-06-10 15:19:46 +00:00
Roy Marples
9b1cb4e246 When we have dependant scheduled services, don't error if a need is stopped. 2008-06-10 15:04:29 +00:00
Roy Marples
2adc99a8f5 No need to include this. 2008-06-05 12:26:53 +00:00
Roy Marples
fc747f9894 Remove the macro ;) 2008-06-05 12:19:49 +00:00
Roy Marples
76063daee5 Update style to more BSDish and replace the big macro with a function. 2008-06-05 12:17:41 +00:00
Roy Marples
dc891b0647 Remove broken before dependencies, Gentoo #224171. 2008-06-05 10:14:11 +00:00
Roy Marples
3525e602d6 Use addu instead of another loop. 2008-06-04 19:07:09 +00:00
Roy Marples
79ebd89d19 Only add a backreference if it doesn't already exist. 2008-06-04 19:00:46 +00:00
Roy Marples
ba8008fb05 Include time headers for ewaitfile. 2008-06-04 14:09:25 +00:00
Roy Marples
5e2c3fb5fe Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-06-04 12:58:05 +00:00
Roy Marples
e6aed12328 No need to check type twice like this. 2008-06-04 12:47:06 +00:00
Roy Marples
83ade5b701 Style. 2008-06-04 12:44:45 +00:00
Roy Marples
587051ec67 Add the ewaitfile function so init scripts can wait until sockts are created, Gentoo #175783. 2008-06-03 11:57:15 +00:00
Roy Marples
f2ea7ca514 Let ifdown control all interfaces. 2008-06-03 11:51:36 +00:00
Roy Marples
b41c864fc3 openrc-0.2.5 2008-05-28 13:39:52 +00:00
Roy Marples
c409dd0570 Some ifconfig's output weird inet6 loopback addresses 2008-05-28 13:38:58 +00:00
Roy Marples
aaaa0b50d8 Be quiet when checking at start. 2008-05-27 16:48:47 +00:00
Roy Marples
ca6f289c80 When stopping with a pidfile, only read the pid once incase it vanishes but the process still hangs around. 2008-05-27 16:42:28 +00:00
Roy Marples
f640ecaebb Only check tentative when we have a carrier, Gentoo #223061 2008-05-27 16:41:53 +00:00
Roy Marples
75eff5a86b Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-05-27 13:08:14 +00:00
Roy Marples
eeadc618fb Work with madwifi craptastic drivers. Hopefuly prism54 still works. 2008-05-27 13:07:18 +00:00
Roy Marples
bb069e1618 Use iwconfig defaults and config if available. 2008-05-27 10:46:27 +00:00
Roy Marples
3a592fa31b Trap fsck for SIGINT as well, so user can ctrl-C to abort fsck and continue, Gentoo #223473. 2008-05-27 10:25:29 +00:00
Roy Marples
6b77cc624f Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-05-27 10:05:15 +00:00
Roy Marples
328215e841 Work with new beta5 options to skip hoof files. 2008-05-25 22:57:44 +00:00
Roy Marples
b03282b901 Fix tunnel, #80. Someone should fix iproute2 documentation and help files also :P 2008-05-25 22:34:05 +00:00
Roy Marples
08081f7ef4 Fix passno and IFS, #77 and #85, thanks to Nahor 2008-05-25 22:30:31 +00:00
Roy Marples
8ca8e00a89 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-05-25 22:25:29 +00:00
Roy Marples
1df3ab05b5 realloc -> xrealloc 2008-05-19 13:41:16 +00:00
Roy Marples
775df18a70 Fix a potential segfault, thanks to Fernando J. Pereda. 2008-05-19 13:16:53 +00:00
Roy Marples
148caecc7e Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-05-13 08:41:54 +00:00
Roy Marples
d0f7a63487 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-05-13 08:18:07 +00:00
Roy Marples
b7e598ad91 Install symlinks correctly, thanks to zlin. 2008-05-13 00:03:10 +00:00
Roy Marples
5c114d9430 When testing services to stop, we should trace it. More for #79. 2008-05-12 23:45:17 +00:00
Roy Marples
f13ea77491 The real fix for the last commit is to uncomment some code - d'oh. 2008-05-12 23:33:40 +00:00
Roy Marples
a89171ee9b When stopping, stop services that need our provide as well, #79. 2008-05-12 23:17:45 +00:00
Roy Marples
6d5d655b52 Style. 2008-05-12 23:00:05 +00:00
Roy Marples
0f51f3e863 We should add devdb to boot. 2008-05-12 15:13:35 +00:00
Roy Marples
be8f8d0ac0 Add the devdb init script. 2008-05-12 15:11:04 +00:00
Roy Marples
d667da8e5c Check we have a deptree before using it, Gentoo #220579 2008-05-12 13:20:35 +00:00
Roy Marples
9894669742 Fix help text, #75. 2008-05-12 08:34:42 +00:00
Roy Marples
b732df31ef Don't report fstab passno of 0 when using greater or less than, #76. 2008-05-12 08:32:19 +00:00
Roy Marples
762dc3d197 Work with dhcpcd-4 style options. 2008-05-10 12:29:49 +00:00
Roy Marples
30fe99dead openrc-0.2.4 2008-05-10 12:01:17 +00:00
Roy Marples
2d75eb7976 netmount may use openvpn. 2008-05-10 11:09:52 +00:00
Roy Marples
3663cf1e2a Only launch single user when RUNLEVEL == S, #74. 2008-05-10 10:04:34 +00:00
Roy Marples
766ec96e3d Add ifdown_eth0=NO so that the interface stays up for WakeOnLan, Gentoo #220875 2008-05-09 10:29:06 +00:00
Roy Marples
a854fe6d61 Simplify the wait code. 2008-05-07 09:47:07 +00:00
Roy Marples
619b0b4f37 Fix the EINTR check for waitpid, Gentoo #219929. 2008-05-06 21:53:21 +00:00
Roy Marples
c8248d05a0 Ensure that make dep ordering is correct for install. 2008-05-06 19:52:30 +00:00
Roy Marples
5ae702339e We don't need to handle SIGWINCH in sysinit, so this should fix loading a framebuffer module in init.sh (Gentoo #219929. Ideally someone should tell me why this is happening and if there is a better fix. 2008-05-06 16:21:16 +00:00
Roy Marples
d384502e57 There could be a space between #! and /sbin/runscript, Gentoo #218001. 2008-05-01 15:18:34 +00:00
Roy Marples
bdaca0baf5 Busybox find now works with -exec correctly, so remove our nasty hack. 2008-04-30 16:44:29 +00:00
Roy Marples
5188fd2592 Wups, test compiles before commiting :) 2008-04-30 16:33:54 +00:00
Roy Marples
5b800030f1 Remove redundant checking of /proc/pid/exe 2008-04-30 16:26:05 +00:00
Roy Marples
208443fa0e Save a few bytes and make it easier to read. 2008-04-30 15:26:29 +00:00
Roy Marples
a818eebf7b No need to init this. 2008-04-30 12:26:38 +00:00
Roy Marples
10910876d1 Make the function a little smaller. 2008-04-30 10:55:42 +00:00
Roy Marples
35b4978152 Style 2008-04-30 10:31:06 +00:00
Roy Marples
cedd81801a We should use correct iproute2 commands and fix busybox as it's iproute2 implementation is a little broken. 2008-04-30 09:18:20 +00:00
Roy Marples
e273b4e08e Fix another leak. 2008-04-29 11:08:02 +00:00
Roy Marples
50cff8ebc8 Tweak the last commit and fix a valgrind error. 2008-04-29 10:49:50 +00:00
Roy Marples
aec83494d6 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-04-29 10:26:17 +00:00
Roy Marples
5ba6f0a628 We need to ensure that the init script started is correct, translating symlinks. This has a new rule - multiplexed services must exist in the same dir as the master sript. So we need to ensuret that net.lo(0) is the real script and not a symlink itself. This fixes Gentoo #219526. 2008-04-29 10:25:45 +00:00
Roy Marples
5a59542629 Fix syscons for setting the font correctly. 2008-04-29 08:00:50 +00:00
Roy Marples
52711bdca7 Release openrc-0.2.3 2008-04-28 18:39:51 +00:00
Roy Marples
53902cefb8 Add rc_program function which uses fork and signal masking to try and resolve the waitpid issue, Gentoo #219179. 2008-04-28 16:04:16 +00:00
Roy Marples
75f991068d Fix multi platform a little. 2008-04-28 12:48:20 +00:00
Roy Marples
e499e58310 Don't re-start or re-stop failed services if runlevel is changing. 2008-04-27 21:04:37 +00:00
Roy Marples
b08b6cd91b Always define template start/stop functions so that the real script name isn't hidden when errors are in the real start/stop functions, Gentoo #219179 2008-04-26 19:32:28 +00:00
Roy Marples
3c2b93fc9c Check we have a list before running depends. 2008-04-26 14:59:07 +00:00
Roy Marples
b5d829789f Check we have a list before running depends. 2008-04-26 14:57:39 +00:00
Roy Marples
1e3442f95d Work with aliases on NetBSD. 2008-04-23 13:17:13 +00:00
Roy Marples
2bda1871a1 When fsck_passno is set, show this so output is clearer when fsck is multiplexed, Gentoo #218141. 2008-04-22 13:46:53 +00:00
Roy Marples
d3b111bd58 Our init scripts normally output context in [ .. ] 2008-04-22 08:12:26 +00:00
Roy Marples
dbea63b76d Fix logic for templates. 2008-04-21 21:34:52 +00:00
Roy Marples
6a5287dbb5 Typo 2008-04-21 19:26:56 +00:00
Roy Marples
df8eeba2fb Punt is_function in favour of POSIX shell builtin command, thanks to Harald van Dijk for the idea. 2008-04-21 17:32:17 +00:00
Roy Marples
54fce42c6f Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-04-21 13:07:04 +00:00
Roy Marples
54d7aa39dd If we don't have permission to inspect the pidfile, don't report crashed. Gentoo #218028. 2008-04-21 10:56:28 +00:00
Roy Marples
dc5d63aa97 Add RC_TMPDIR so that there's a writeable location during boot. 2008-04-21 10:29:29 +00:00
Roy Marples
bab5d7767d Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-04-21 10:26:40 +00:00
Roy Marples
799686e40d Fix force_preferred, #60. 2008-04-20 14:24:35 +00:00
Roy Marples
d83ae59cca Add help for mountargs, #63 2008-04-19 17:19:59 +00:00
Mike Frysinger
18b4108755 add support for parsing newer ifconfig output
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-04-19 07:22:30 +00:00
Roy Marples
e96347523f We should check type output to ensure that we're really calling a shell function and not some badly named binary like stop from boinc, Gentoo #218063. 2008-04-18 23:00:43 +00:00
Roy Marples
f0aacec02e Cast to unsigned char for ctype calls. 2008-04-17 10:19:58 +00:00
Roy Marples
57e1dd7389 Fix rc-status some more. 2008-04-17 00:25:08 +00:00
Roy Marples
c89b3763fb Respect shutdown -F on Linux to force fsck, #59 2008-04-17 00:09:34 +00:00
Roy Marples
425abe40c5 Only report unassigned services when there are any, Gentoo #218005. 2008-04-16 19:47:19 +00:00
Roy Marples
725b9dc89c Use qlen instead of txqueuelen so we work with busybox iproute2, Gentoo #217948 2008-04-16 15:23:57 +00:00
Roy Marples
22d650c450 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-04-16 15:02:19 +00:00
Roy Marples
809ac86c69 We should only check dependencies in files. 2008-04-16 15:01:52 +00:00
Roy Marples
b3310e8e10 Fix rebooting for OpenVZ systems. 2008-04-15 21:50:08 +00:00
Roy Marples
29369c44c1 Add help text for rc-service --resole. 2008-04-15 16:16:59 +00:00
Roy Marples
292fe3a568 Release 0.2.2 2008-04-15 16:09:02 +00:00
Roy Marples
99d5046a56 Don't assume that we have a list returned. 2008-04-10 08:49:05 +00:00
Roy Marples
0e38dcc4d2 By default, rc-status now shows the statuses of the services in the current runlevel and any unassigned non stopped services, #52. 2008-04-09 22:56:32 +00:00
Roy Marples
9176b77c23 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-04-09 19:02:41 +00:00
Roy Marples
fad61a7c4b Fix windowkeys. 2008-04-09 12:24:34 +00:00
Roy Marples
0e114abf5d Respect shutdown's fastboot. 2008-04-09 00:21:49 +00:00
Roy Marples
bc369085c7 More ltsp fixes. 2008-04-09 00:06:50 +00:00
Roy Marples
6d8b36e09d Fix netmout for nfs 2008-04-08 23:25:48 +00:00
Roy Marples
8759735711 Give an error when running zap as a generic user. 2008-04-08 22:57:42 +00:00
Roy Marples
034b9b7a12 Add a silly rc_runlevel function to appease SpanKY :) 2008-04-08 16:01:40 +00:00
Roy Marples
e82435c2f4 rc_runlevel is now the preferred kernel commandline option for choosing default runlevel. 2008-04-08 15:59:56 +00:00
Roy Marples
71dd280656 Fix rc-service --help output. 2008-04-07 11:48:32 +00:00
Roy Marples
594d98eddc Tests now work on NetBSD. 2008-04-07 09:37:14 +00:00
Roy Marples
dcdfdb442f Some systems are only detectable after /proc is mounted, so re-test if unknown. 2008-04-06 20:06:07 +00:00
Roy Marples
143239e143 Increase pidstr size to 10 chars. 2008-04-06 13:24:10 +00:00
Roy Marples
5d38d4d6e9 p could be null here. 2008-04-06 13:21:42 +00:00
Roy Marples
c18c4fc4cc Check list existance before iterating, Gentoo #216091. 2008-04-04 16:31:56 +00:00
Roy Marples
5ebe7f1349 Push out 0.2.1 to solve a few issues. 2008-04-02 16:35:28 +00:00
Roy Marples
6a227d0c45 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-04-02 16:35:02 +00:00
Roy Marples
403abe73de Fix vlans, #49. 2008-04-01 21:34:31 +00:00
Roy Marples
be82e950d7 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-03-31 16:31:43 +00:00
Roy Marples
3ca8387966 Document SSD_NICELEVEL. 2008-03-29 09:37:59 +00:00
Roy Marples
f5a9b42215 Restore noserver and noopenvz to sysctl. 2008-03-28 19:05:26 +00:00
Roy Marples
d370918f0c Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-03-28 16:21:59 +00:00
Roy Marples
e995404e3b Add XEN support to NetBSD. 2008-03-28 16:10:31 +00:00
Roy Marples
caa4704ce6 Merge branch 'master' of git@git.overlays.gentoo.org:proj/openrc 2008-03-28 16:05:11 +00:00
Roy Marples
17d28fde42 Support XEN on NetBSD 2008-03-28 16:04:48 +00:00
Roy Marples
b418f2e471 Allow our headers to be included by C++ programs easily. 2008-03-28 11:06:47 +00:00
Roy Marples
ee4e861796 Put some dir locations in rc.h so that 3rd party apps can become awware of them. 2008-03-28 10:46:12 +00:00
Roy Marples
11e33e81c8 Remove rc_service_start/stop from librc as they block and unmask signals. The application may not wish this behaviour and should fork/exec the service itself. 2008-03-28 08:42:05 +00:00
Roy Marples
5e8ed2aeca Tweak install of runlevels. 2008-03-27 19:55:03 +00:00
Roy Marples
742310744d We would sanitize $RC_LIBDIR/sbin as well. If it's really needed then rc-functions.sh will add it back. 2008-03-27 18:34:12 +00:00
Roy Marples
4e9b58b07d Sanitize the write rc dir. 2008-03-27 17:09:18 +00:00
Roy Marples
c564043f86 No need for the extra rc. 2008-03-27 16:59:33 +00:00
Roy Marples
b3d1182a2f Fix mulitlib issues. 2008-03-27 16:53:22 +00:00
Roy Marples
f6cb321f9f NetBSD doesn't work with this powerd. 2008-03-27 14:56:50 +00:00
Roy Marples
f85c6ca84c Make our messages similar 2008-03-27 14:03:37 +00:00
Roy Marples
d09f9f47eb Split terminal encoding out. 2008-03-27 13:49:49 +00:00
Roy Marples
b271ac5af5 Fix install of rc and rc.shutdown on the BSD's. 2008-03-27 09:33:20 +00:00
Roy Marples
fccff6a4ed Allow multiple ntp_servers without error, #47 2008-03-26 22:39:27 +00:00
246 changed files with 7794 additions and 5235 deletions

4
.gitignore vendored
View File

@@ -1,3 +1 @@
openrc-0.1.tar.bz2
.gdb_history
.gdbinit
*.bz2

View File

@@ -1,12 +1,27 @@
# OpenRC Makefile
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
NAME= openrc
VERSION= 0.2
PKG= ${NAME}-${VERSION}
include Makefile.inc
SUBDIR= conf.d etc init.d man scripts sh src
# Build our old net foo or not
_OLDNET_SH= case "${MKOLDNET}" in \
[Yy][Ee][Ss]) echo "net doc";; \
*) echo "";; \
esac
_OLDNET!= ${_OLDNET_SH}
SUBDIR+= ${_OLDNET}$(shell ${_OLDNET_SH})
# Build pkgconfig or not
_PKGCONFIG_SH= case "${MKPKGCONFIG}" in \
[Yy][Ee][Ss]|"") echo "pkgconfig";; \
*) echo "";; \
esac
_PKGCONFIG!= ${_PKGCONFIG_SH}
SUBDIR+= ${_PKGCONFIG}$(shell ${_PKGCONFIG_SH})
SUBDIR= conf.d doc etc init.d man net sh src
# We need to ensure that runlevels is done last
SUBDIR+= runlevels
@@ -17,8 +32,9 @@ include ${MK}/sys.mk
include ${MK}/os.mk
include ${MK}/subdir.mk
include ${MK}/dist.mk
include ${MK}/gitignore.mk
include ${MK}/git.mk
_installafter:
${INSTALL} -d ${DESTDIR}/${PREFIX}/${RC_LIB}/init.d
${INSTALL} -d ${DESTDIR}/${PREFIX}/${RC_LIB}/tmp
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp
${ECHO} "${VERSION}${GITVER}" > ${DESTDIR}/${LIBEXECDIR}/version

3
Makefile.inc Normal file
View File

@@ -0,0 +1,3 @@
NAME= openrc
VERSION= 0.6.8
PKG= ${NAME}-${VERSION}

11
README
View File

@@ -11,14 +11,18 @@ PROGLDFLAGS=-static
LIBNAME=lib64
DESTDIR=/tmp/openrc-image
MKPAM=pam
MKPKGCONFIG=no
MKTERMCAP=ncurses
MKTERMCAP=termcap
MKOLDNET=yes
PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local
PREFIX=/usr/local
We don't support building a static OpenRC with PAM.
You may need to use PROGLDFLAGS=-Wl,-Bstatic on glibc instead of just -static.
If you debug memory under valgrind, add -DDEBUG_MEMORY to your CPPFLAGS
so that all malloc memory should be freed at exit.
You can also brand OpenRC if you so wish like so
BRANDING=\"Gentoo/$(uname -s)\"
@@ -37,7 +41,7 @@ If any of the following files exist then we do not overwrite them
rc and rc.shutdown are the hooks from the BSD init into OpenRC.
devd.conf is modified from FreeBSD to call /etc/rc.devd which is a generic
hook into OpenRC.
inittab is the same, but for SysVInit as used by most Linux distrubtions.
inittab is the same, but for SysVInit as used by most Linux distributions.
This can be found in the support folder.
Obviously, if you're installing this onto a system that does not use OpenRC
by default then you may wish to backup the above listed files, remove them
@@ -54,14 +58,15 @@ If you installed OpenRC from your chosen distribution, you should report
bugs directly to them. For example, if you use Gentoo and emerged OpenRC
then you should reports bugs to http://bugs.gentoo.org.
Otherwise, you can report them directly to me at http://bugs.marples.name
Otherwise, you can report them directly to me at
http://roy.marples.name/projects/openrc
History - by Roy Marples
------------------------
I became a Gentoo/Linux developer in 2004 and wrote the modular network
scripts for the Gentoo baselayout package. baselayout is a collection of
bash scripts to bring up your computer and it's services.
bash scripts to bring up your computer and its services.
Then towards the end of 2005 I found myself as the primary maintainer
for baselayout.

36
README.net Normal file
View File

@@ -0,0 +1,36 @@
OpenRC Network Ideals
---------------------
The new style networking for OpenRC is very simplistic - provide a basic means
of configuring static interface address and routes whilst allowing the
possibility to run any command at any point.
In a nutshell, init.d/network is a wrapper around ifconfig(8) and
init.d/staticroute is wrapper around route(8).
In the Perfect World (TM) ifconfig should be able to configure everything
about the interface easily * . The BSD family almost get this right and Linux
epically fails.
* Only static configuration, including link setup.
For dynamic, static, IPv4LL, arping and per ssid IPv4 setup dhcpcd-5.x
provides your needs.
It fails because there are many tools to do the same job and often have
vastly different syntax where they could be similar. In other words, there
is no coherence.
OpenRC-0.4.x and older (inc Gentoo baselayout-1) had a collection of scripts
for each tool and allowed a script per interface. Over the years, this design
has proven very hard to maintain as each user has their own idea of how
things should work. Also, there were (and still are) race conditions.
So where do we go from here?
Well, it's possible to use the new network scripts using the tools
currently available. It's just harder as you have to know them and their
documentation can be lacking at times.
The correct end goal is a BSD style ifconfig tool.
I've started work on it, but the project has stalled somewhat.
It's display only right now and the source is not yet publicly available.
If you have the skills and share the vision then contact me privately and
we'll take it from there.

2
conf.d/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
network
staticroute

View File

@@ -1,7 +1,19 @@
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname local net urandom
CONF= bootmisc fsck hostname local localmount network staticroute urandom
TARGETS+= network staticroute
CLEANFILES+= network staticroute
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
include ${MK}/scripts.mk
SOS?= BSD
network: network.in network.${SOS}
cp $@.in $@
[ -e $@.${SOS} ] && cat $@.${SOS} >> $@ || true
staticroute: staticroute.${SOS}
cp $@.${SOS} $@

View File

@@ -1 +1 @@
CONF+= moused powerd rarpd savecore syscons
CONF+= ipfw moused powerd rarpd savecore syscons

View File

@@ -1 +1,2 @@
CONF+= consolefont hwclock keymaps modules
CONF+= consolefont dmesg hwclock keymaps modules
SOS= Linux

View File

@@ -1 +1 @@
CONF+= moused powerd rarpd savecore
CONF+= moused rarpd savecore

View File

@@ -1,5 +1,5 @@
# List of /tmp directories we should clean up
wipe_tmp_dirs="/tmp"
clean_tmp_dirs="/tmp"
# Should we wipe the tmp paths completely or just selectively remove known
# locks / files / etc... ?

3
conf.d/dmesg Normal file
View File

@@ -0,0 +1,3 @@
# Sets the level at which logging of messages is done to the
# console. See dmesg(8) for more info.
dmesg_level="1"

View File

@@ -13,6 +13,11 @@
#fsck_passno=">1"
#fsck_passno="<2"
# Most modern fs's don't require a full fsck on boot, but for those that do
# it may be advisable to skip this when running on battery.
# WARNING: Do not turn this off if you have any JFS partitions.
fsck_on_battery="YES"
# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
# The end result of this is that if any periodic non-root filesystem checks are
# scheduled, under normal circumstances the actual check will happen during

View File

@@ -1,11 +1,11 @@
# Set CLOCK to "UTC" if your system clock is set to UTC (also known as
# Greenwich Mean Time). If your clock is set to the local time, then
# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as
# Greenwich Mean Time). If that clock is set to the local time, then
# set CLOCK to "local". Note that if you dual boot with Windows, then
# you should set it to "local".
clock="UTC"
# If you want to set the Hardware Clock to the current System Time
# during shutdown, then say "YES" here.
# (software clock) during shutdown, then say "YES" here.
# You normally don't need to do this if you run a ntp daemon.
clock_systohc="NO"

14
conf.d/ipfw Normal file
View File

@@ -0,0 +1,14 @@
# ipfw provides a stateful firewall.
# This means we allow everything out, and if we have a connection we allow it
# back in. This is very flexable and quite secure.
# For ease of use, we allow auth and ssh ports through as well.
# To override the list of allowed ports
#ipfw_ports_in="auth ssh"
# You may want to enable logging of denied connections
#ipfw_log_deny="YES"
# This ports not logged
#ipfw_ports_nolog="135-139,445 1026,1027 1433,1434"

3
conf.d/localmount Normal file
View File

@@ -0,0 +1,3 @@
# Stop the unmounting of certain points.
# This could be useful for some NFS related work.
#no_umounts="/dir1:/var/dir2"

View File

@@ -5,6 +5,10 @@
#modules_2_6="tun"
#modules="ohci1394"
# You can give modules a different name when they load - the new name
# will also be used to pick arguments below.
#modules="dummy:dummy1"
# Give the modules some arguments if needed, per version if necessary.
#module_ieee1394_args="debug"
#module_ieee1394_args_2_6_23_gentoo_r5="ieee1394 ohci1394"

4
conf.d/network.BSD Normal file
View File

@@ -0,0 +1,4 @@
# You can assign a default route
#defaultroute="192.168.0.1"
#defaultroute6="2001:a:b:c"

43
conf.d/network.Linux Normal file
View File

@@ -0,0 +1,43 @@
# You can assign a default route
#defaultroute="gw 192.168.0.1"
#defaultroute6="gw 2001:a:b:c"
# ifconfig under Linux is not that powerful and doesn't easily handle
# multiple addresses
# On the other hand, ip (iproute2) is quite powerful and is also supported
#ip_eth0="192.168.0.10/24; 192.168.10.10/24"
# You can also use ip to add the default route.
#defaultiproute="via 192.168.0.1"
#defaultiproute6="via 2001:a:b:c"
# ip doesn't handle MTU like ifconfig, but we can do it like so
#ifup_eth0="ip link set \$int mtu 1500"
# Create a bonded interface
#interfaces="bond0"
#ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0"
#ifconfig_bond0="192.168.0.10 netmask 255.255.255.0"
#ifdown_bond0="rmmod bonding"
# Create tap interface and a bridge interface.
# We add the tap to the bridge.
# An external program, like dhcpcd, will configure the IP on the bridge
#interfaces="tun0 br0"
#ifup_tun0="tunctl -t \$int"
#ifdown_tun0="tunctl -d \$int"
#ifup_br0="brctl addbr \$int; brctl add \$int eth1; brtctl add \$int eth2"
#ifdown_br0="ifconfig \$int down; btctl delbr \$int"
# Create VLAN
#interfaces="eth0_2 eth0_3 eth0_4"
#ifup_eth0="vconfig add \$int 2; vconfig add \$int 3; vconfig add \$int 4"
#ifconfig_eth0_2="192.168.2.10 netmask 255.255.255.0"
#ifconfig_eth0_3="192.168.3.10 netmask 255.255.255.0"
#ifconfig_eth0_4="192.168.4.10 netmask 255.255.255.0"
#ifdown_eth0="vconfig rem \$int.2; vconfig rem \$int.3; vconfig rem \$int.4"
# Normally you would use wpa_supplicant to configure wireless, but you can
# use iwconfig also
#ifup_wlan0="iwconfig \$int key s:secretkey enc open essid foobar"

28
conf.d/network.in Normal file
View File

@@ -0,0 +1,28 @@
# Assign static IP addresses and run custom scripts per interface.
# Seperate commands with ;
# Prefix with ! to run a shell script.
# Use \$int to represent the interface
#ifconfig_eth0="192.168.0.10 netmask 255.255.255.0"
# You also have ifup_eth0 and ifdown_eth0 to run other commands when
# eth0 is started and stopped.
# You should note that we don't stop the network at system shutdown by default.
# If you really need this, then set shutdown_network=YES
# Lastly, the interfaces variable pulls in virtual interfaces that cannot
# be automatically detected.
#interfaces="br0 bond0 vlan0"
# You can also use files instead of variables here if you like:
# /etc/ifconfig.eth0 is equivalent to ifconfig_eth0
# /etc/ip.eth0 is equivalent to ifconfig_eth0
# /etc/ifup.eth0 is equivalent to ifup_eth0
# /etc/ifdown.eth0 is equivalent to ifdown_eth0
# Any files found will automatically be put into the interfaces variable.
# You don't need to escape variables in files, so use $int instead of \$int.
# If you require DHCP, you should install dhcpcd and it to the boot or
# default runlevel.
# NIS users can set the domain name here
#domainname="foobar"

6
conf.d/staticroute.BSD Normal file
View File

@@ -0,0 +1,6 @@
# Separate multiple routes using ; or new lines.
# /etc/route.conf(5) takes precedence over this configuration.
# Example static routes. See route(8) for syntax.
#staticroute="net 192.168.0.0 -netmask 255.255.255.0 10.73.1.1
#net 192.168.1.0 -netmask 255.255.255.0 10.73.1.1"

8
conf.d/staticroute.Linux Normal file
View File

@@ -0,0 +1,8 @@
# Separate multiple routes using ; or new lines.
# Example static routes. See route(8) for syntax.
#staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1
#net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1"
# Example static routes using iproute2. See ip(8) for syntax.
#staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1"

View File

@@ -12,7 +12,7 @@
# kernel then remove the IPv6 address from your config.
# If you want to use a static address or use DHCP explicitly, jump
# down to the section labelled INTERFACE HANDLERS.
# down to the section labeled INTERFACE HANDLERS.
#
# If you want to do anything more fancy, you should take the time to
# read through the rest of this file.
@@ -22,10 +22,10 @@
#
# We now support modular networking scripts which means we can easily
# add support for new interface types and modules while keeping
# compatability with existing ones.
# compatibility with existing ones.
#
# Modules load by default if the package they need is installed. If
# you specify a module here that doesn't have it's package installed
# you specify a module here that doesn't have its package installed
# then you get an error stating which package you need to install.
# Ideally, you only use the modules setting when you have two or more
# packages installed that supply the same service.
@@ -43,11 +43,6 @@
# (eth0:1, eth0:2, etc)
# iproute2 does not do this as there is no need to
#config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24"
# Or you can use sequence expressions
#config_eth0="192.168.0.{2..4}/24" FIXME - may not work with baselayout2
# which does the same as above. Be careful though as if you use this and
# fallbacks, you have to ensure that both end up with the same number of
# values otherwise your fallback won't work correctly.
# You can also use IPv6 addresses
# (you should always specify a prefix length with IPv6 here)
@@ -87,6 +82,10 @@
# is how long we wait for carrier. The current default is 3 seconds
#carrier_timeout_eth0=-1
# You may wish to disable the interface being brought down when stopping.
# This is only of use for WakeOnLan.
#ifdown_eth0="NO"
##############################################################################
# OPTIONAL MODULES
@@ -97,8 +96,8 @@
#modules="iwconfig"
# ifconfig (iwconig) support is a one shot script - wpa_supplicant is daemon
# that scans, assoicates and re-configures if assocation is lost.
# We call it iwconfig to seperate the wireless setup from ifconfig.
# that scans, associates and re-configures if association is lost.
# We call it iwconfig to separate the wireless setup from ifconfig.
####################################
# HINTS
#
@@ -183,7 +182,7 @@
#dns_servers_001122334455="192.168.0.1 192.168.0.2"
# Map a MAC address to an SSID
# This is used when the Access Point is not broadcasting it's SSID
# This is used when the Access Point is not broadcasting its SSID
# WARNING: This will override the SSID being broadcast due to some
# Access Points sending an SSID even when they have been configured
# not to!
@@ -194,7 +193,7 @@
# This lists the preferred SSIDs to connect to in order
# SSID's can contain any characters here as they must match the broadcast
# SSID exactly.
# Surround each SSID with the " character and seperate them with a space
# Surround each SSID with the " character and separate them with a space
# If the first SSID isn't found then it moves onto the next
# If this isn't defined then it connects to the first one found
#preferred_aps="SSID1 SSID2"
@@ -209,9 +208,9 @@
# any other available AP
# "preferredonly" means it will only connect to visible APs in the preferred
# list
# "forcepreferred" means it will forceably connect to APs in order if it does
# "forcepreferred" means it will forcibly connect to APs in order if it does
# not find them in a scan
# "forcepreferredonly" means it forceably connects to the APs in order and
# "forcepreferredonly" means it forcibly connects to the APs in order and
# does not bother to scan
# "forceany" does the same as forcepreferred + connects to any other
# available AP
@@ -238,12 +237,12 @@
##################################################
# wpa_supplicant
# emerge net-wireless/wpa-supplicant
# emerge net-wireless/wpa_supplicant
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
# Console the wpa_supplicant.conf.example that is installed in
# Consult the wpa_supplicant.conf.example that is installed in
# /usr/share/doc/wpa_supplicant
# By default we don't wait for wpa_suppliant to associate and authenticate.
# By default we don't wait for wpa_supplicant to associate and authenticate.
# If you would like to, so can specify how long in seconds
#associate_timeout_eth0=60
# A value of 0 means wait forever.
@@ -321,7 +320,7 @@
# Set generic DHCP options like so
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
# This tells the dhcp client to release it's lease when it stops, not to
# This tells the dhcp client to release its lease when it stops, not to
# overwrite dns, ntp and nis settings, not to set a default route and not to
# send the current hostname to the dhcp server and when it starts.
# You can use any combination of the above options - the default is not to

View File

@@ -12,7 +12,7 @@
# kernel then remove the IPv6 address from your config.
# If you want to use a static address or use DHCP explicitly, jump
# down to the section labelled INTERFACE HANDLERS.
# down to the section labeled INTERFACE HANDLERS.
#
# If you want to do anything more fancy, you should take the time to
# read through the rest of this file.
@@ -23,10 +23,10 @@
#
# We now support modular networking scripts which means we can easily
# add support for new interface types and modules while keeping
# compatability with existing ones.
# compatibility with existing ones.
#
# Modules load by default if the package they need is installed. If
# you specify a module here that doesn't have it's package installed
# you specify a module here that doesn't have its package installed
# then you get an error stating which package you need to install.
# Ideally, you only use the modules setting when you have two or more
# packages installed that supply the same service.
@@ -70,11 +70,6 @@
# iproute2 does not do this as there is no need to
#config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24"
# However, that only works with CIDR addresses, so you can't use netmask.
# Or you can use sequence expressions
#config_eth0="192.168.0.{2..4}/24"
# which does the same as above. Be careful though as if you use this and
# fallbacks, you have to ensure that both end up with the same number of
# values otherwise your fallback won't work correctly.
# You can also use IPv6 addresses
# (you should always specify a prefix length with IPv6 here)
@@ -111,7 +106,7 @@
# Each module described below can set a default base metric, lower is
# preferred over higher. This is so we can prefer a wired route over a
# wireless route automaticaly. You can override this by setting
# wireless route automatically. You can override this by setting
#metric_eth0="100"
# or on a global basis
#metric="100"
@@ -120,6 +115,10 @@
# tables you may have to set a global metric as the due to a simple read of
# the routing table taking over a minute at a time.
# You may wish to disable the interface being brought down when stopping.
# This is only of use for WakeOnLan.
#ifdown_eth0="NO"
##############################################################################
# OPTIONAL MODULES
@@ -254,7 +253,7 @@
#key_SSID="s:foobar enc open"
#key_SSID="1234-5678-9012 enc open"
# You may want to set muliple keys - here's an example
# You may want to set multiple keys - here's an example
# It sets 4 keys on the card and instructs to use key 2 by default
#key_SSID="[1] s:passkey1 key [2] s:passkey2 key [3] s:passkey3 key [4] s:passkey4 key [2]"
@@ -284,7 +283,7 @@
#dns_servers_001122334455="192.168.0.1 192.168.0.2"
# Map a MAC address to an SSID
# This is used when the Access Point is not broadcasting it's SSID
# This is used when the Access Point is not broadcasting its SSID
# WARNING: This will override the SSID being broadcast due to some
# Access Points sending an SSID even when they have been configured
# not to!
@@ -295,7 +294,7 @@
# This lists the preferred SSIDs to connect to in order
# SSID's can contain any characters here as they must match the broadcast
# SSID exactly.
# Surround each SSID with the " character and seperate them with a space
# Surround each SSID with the " character and separate them with a space
# If the first SSID isn't found then it moves onto the next
# If this isn't defined then it connects to the first one found
#preferred_aps="SSID1 SSID2"
@@ -308,9 +307,9 @@
# "any" means it will connect to visible APs in the preferred list and then any
# other available AP
# "preferredonly" means it will only connect to visible APs in the preferred list
# "forcepreferred" means it will forceably connect to APs in order if it does not find
# "forcepreferred" means it will forcibly connect to APs in order if it does not find
# them in a scan
# "forcepreferredonly" means it forceably connects to the APs in order and does not bother
# "forcepreferredonly" means it forcibly connects to the APs in order and does not bother
# to scan
# "forceany" does the same as forcepreferred + connects to any other available AP
# Default is "any"
@@ -337,16 +336,16 @@
############################################################
# wpa_supplicant
# emerge net-wireless/wpa-supplicant
# emerge net-wireless/wpa_supplicant
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
# Console the wpa_supplicant.conf.example that is installed in
# Consult the wpa_supplicant.conf.example that is installed in
# /usr/share/doc/wpa_supplicant
# To configure wpa_supplicant
#wpa_supplicant_ath0="-Dmadwifi" # For Atheros based cards
# Consult wpa_supplicant for more drivers - the default is -Dwext which should
# work for most cards.
# By default we don't wait for wpa_suppliant to associate and authenticate.
# By default we don't wait for wpa_supplicant to associate and authenticate.
# If you need to change this behaviour then you don't know how our scripts work
# and setting this value could cause strange things to happen.
# If you would like to, so can specify how long in seconds.
@@ -449,7 +448,7 @@
# Set generic DHCP options like so
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
# This tells the dhcp client to release it's lease when it stops, not to
# This tells the dhcp client to release its lease when it stops, not to
# overwrite dns, ntp and nis settings, not to set a default route and not to
# send the current hostname to the dhcp server and when it starts.
# You can use any combination of the above options - the default is not to
@@ -565,12 +564,18 @@
#-----------------------------------------------------------------------------
# Bonding
# For link bonding/trunking emerge net-misc/ifenslave
# For link bonding/trunking on 2.4 kernels, or kernels without sysfs
# emerge net-misc/ifenslave
# To bond interfaces together
#slaves_bond0="eth0 eth1 eth2"
#config_bond0="null" # You may not want to assign an IP the the bond
# You can also configure the bond here, which must be done via sysfs on 2.6
# kernels or newer. See the kernel bonding documentation for a description of
# these options.
#arp_ip_target_bond0="+26.0.0.0"
# If any of the slaves require extra configuration - for example wireless or
# ppp devices - we need to depend function on the bonded interfaces
#rc_need_bond0="net.eth0 net.eth1"
@@ -653,7 +658,7 @@
#
# Dead peer detection
# lcp-echo-interval 15 # Send a LCP echo every 15 seconds
# lcp-echo-failure 3 # Make peer dead after 3 consective
# lcp-echo-failure 3 # Make peer dead after 3 consecutive
# # echo-requests
#
# Compression options - use these to completely disable compression
@@ -817,8 +822,8 @@
#config_nas0="'192.168.0.1/24'"
#-----------------------------------------------------------------------------
# Tunnelling
# WARNING: For tunnelling it is highly recommended that you
# Tunneling
# WARNING: For tunneling it is highly recommended that you
# emerge sys-apps/iproute2
#
# For GRE tunnels
@@ -833,7 +838,7 @@
# 6to4 Tunnels allow IPv6 to work over IPv4 addresses, provided you
# have a non-private address configured on an interface.
# link_6to4="eth0" # Interface to base it's addresses on
# link_6to4="eth0" # Interface to base its addresses on
# config_6to4="ip6to4"
# You may want to depend on eth0 like so
#rc_need_6to4="net.eth0"
@@ -843,7 +848,7 @@
# sit0 - otherwise use a different name like 6to4 in the example above.
# You can also specify a relay and suffix if you like.
# The default relay is 192.88.99.1 and the defualt suffix is :1
# The default relay is 192.88.99.1 and the default suffix is :1
#relay_6to4="192.168.3.2"
#suffix_6to4=":ff"
@@ -891,7 +896,7 @@
# and you're done :)
# By default we don't wait for netplug/ifplugd to configure the interface.
# If you would like it to wait so that other services now that network is up
# If you would like it to wait so that other services know that network is up
# then you can specify a timeout here.
#plug_timeout="10"
# A value of 0 means wait forever.
@@ -931,8 +936,8 @@
#preup() {
# # Test for link on the interface prior to bringing it up. This
# # only works on some network adapters and requires the mii-diag
# # package to be installed.
# # only works on some network adapters and requires the
# # sys-apps/net-tools package to be installed.
# if mii-tool "${IFACE}" 2> /dev/null | grep -q 'no link'; then
# ewarn "No link on ${IFACE}, aborting configuration"
# return 1
@@ -982,7 +987,7 @@
# # 'from 24.80.102.112/32 to 192.168.1.0/24 table localnet priority 100' \
# # 'from 216.113.223.51/32 to 192.168.1.0/24 table localnet priority 100' \
# #"
# eval set -- $\rules_${IFVAR}
# eval set -- \$rules_${IFVAR}
# if [ $# != 0 ]; then
# einfo "Adding IP policy routing rules"
# eindent
@@ -993,7 +998,7 @@
# else
# for x; do
# ebegin "${x}"
# ip rule add ${x} dev "${IFACE}"
# ip rule add ${x}
# eend $?
# done
# fi
@@ -1006,7 +1011,7 @@
#postdown() {
# # Enable Wake-On-LAN for every interface except for lo
# # Probably a good idea to set RC_DOWN_INTERFACE="no" in /etc/conf.d/rc
# # Probably a good idea to set ifdown="no" in /etc/conf.d/net
# # as well ;)
# [ "${IFACE}" != "lo" ] && ethtool -s "${IFACE}" wol g

View File

@@ -1,6 +1,8 @@
DIR= ${SYSCONFDIR}
CONF= rc.conf
CLEANFILES+= rc.conf
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}

View File

@@ -1,4 +1,4 @@
SED_EXTRA= -e 's:@TERM@:cons25:g'
SRCS+= rc.conf.in rc.in rc.shutdown.in
CONF+= devd.conf
BIN+= rc.devd
BIN+= rc rc.shutdown rc.devd

View File

@@ -1,2 +1,3 @@
SED_EXTRA= -e 's:@TERM@:wsvt25:g'
SRCS+= rc.conf.in rc.in rc.shutdown.in
BIN+= rc rc.shutdown

View File

@@ -6,20 +6,3 @@
# consolefont, numlock, etc ...)
rc_tty_number=12
# Use this variable to control the /dev management behavior.
# devfs - use devfs (requires sys-fs/devfsd)
# mdev - use mdev (requires sys-apps/busybox)
# udev - use udev (requires sys-fs/udev)
# static - let the user manage /dev (YOU need to create ALL device nodes)
# Leave it blank to let rc work it out (udev, mdev, devfs, static)
#rc_devices=""
# UDEV OPTION:
# Set to "yes" if you want to save /dev to a tarball on shutdown
# and restore it on startup. This is useful if you have a lot of
# custom device nodes that udev does not handle/know about.
rc_device_tarball="NO"
# Sets the level at which logging of messages is done to the
# console. See dmesg(8) for more info.
dmesg_level="1"

View File

@@ -2,14 +2,24 @@
# Set to "YES" if you want the rc system to try and start services
# in parallel for a slight speed improvement. When running in parallel we
# prefix the service output with it's name as the output will get
# prefix the service output with its name as the output will get
# jumbled up.
rc_parallel="NO"
# WARNING: whilst we have improved parallel, it can still potentially lock
# the boot process. Don't file bugs about this unless you can supply
# patches that fix it without breaking other things!
#rc_parallel="NO"
# Set rc_interactive to "YES" and you'll be able to press the I key during
# boot so you can choose to start specific services. Set to "NO" to disable
# this feature.
rc_interactive="YES"
# this feature. This feature is automatically disabled if rc_parallel is
# set to YES.
#rc_interactive="YES"
# If we need to drop to a shell, you can specify it here.
# If not specified we use $SHELL, otherwise the one specified in /etc/passwd,
# otherwise /bin/sh
# Linux users could specify /sbin/sulogin
#rc_shell=/bin/sh
# Do we allow any started service in the runlevel to satisfy the depedency
# or do we want all of them regardless of state? For example, if net.eth0
@@ -17,47 +27,63 @@ rc_interactive="YES"
# both will be started, but services that depend on 'net' will work if either
# one comes up. With rc_depend_strict="YES" we would require them both to
# come up.
rc_depend_strict="YES"
#rc_depend_strict="YES"
# Do we allow services to be hotplugged? If not, set to rc_hotplug="NO"
# NOTE: This does not affect anything hotplug/udev/devd related, just the
# starting/stopping of the init.d service triggered by it.
rc_hotplug="YES"
# Dynamic /dev managers can trigger coldplug events which cause services to
# start before we are ready for them. If this happens, we can defer these
# services to start in the boot runlevel. Set rc_coldplug="NO" if you don't
# want this.
# NOTE: This also affects module coldplugging in udev-096 and higher
# If you want module coldplugging but not coldplugging of services then you
# can set rc_coldplug="YES" and rc_plug_services="!*"
rc_coldplug="YES"
# Some people want a finer grain over hotplug/coldplug. rc_plug_services is a
# list of services that are matched in order, either allowing or not. By
# default we allow services through as rc_coldplug/rc_hotplug has to be YES
# anyway.
# Example - rc_plug_services="net.wlan !net.*"
# rc_hotplug is a list of services that we allow to be hotplugged.
# By default we do not allow hotplugging.
# A hotplugged service is one started by a dynamic dev manager when a matching
# hardware device is found.
# This service is intrinsically included in the boot runlevel.
# To disable services, prefix with a !
# Example - rc_hotplug="net.wlan !net.*"
# This allows net.wlan and any service not matching net.* to be plugged.
rc_plug_services=""
# Example - rc_hotplug="*"
# This allows all services to be hotplugged
#rc_hotplug="*"
# rc_logger launches a logging daemon to log the entire rc process to
# /var/log/rc.log
rc_logger="NO"
# 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"
# By default we filter the environment for our running scripts. To allow other
# variables through, add them here. Use a * to allow all variables through.
# rc_env_allow="VAR1 VAR2"
#rc_env_allow="VAR1 VAR2"
# By default we assume that all daemons will start correctly.
# However, some do not - a classic example is that they fork and return 0 AND
# then child barfs on a configuration error. Or the daemon has a bug and the
# child crashes. You can set the number of milliseconds start-stop-daemon
# waits to check that the daemon is still running after starting here.
# The default is 0 - no checking.
#rc_start_wait=100
# rc_nostop is a list of services which will not stop when changing runlevels.
# This still allows the service itself to be stopped when called directly.
#rc_nostop=""
# rc will attempt to start crashed services by default.
# However, it will not stop them by default as that could bring down other
# critical services.
#rc_crashed_stop=NO
#rc_crashed_start=YES
##############################################################################
# MISC CONFIGURATION VARIABLES
# There variables are shared between many init scripts
# Set unicode to YES to turn on unicode support for keyboards and screens.
unicode="NO"
#unicode="NO"
# Network fstypes. Below is the default.
net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
# Below is the default list of network fstypes.
#
# afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
# nfs nfs4 ocfs2 shfs smbfs
#
# If you would like to add to this list, you can do so by adding your
# own fstypes to the following variable.
#extra_net_fs_list=""
##############################################################################
# SERVICE CONFIGURATION VARIABLES

View File

@@ -1,5 +1,5 @@
#!/bin/sh
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Inform RC that we are in the background and hotplugged

View File

@@ -1,5 +1,5 @@
#!@SHELL@
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# If $TERM is not set then assume default of @TERM@
@@ -10,12 +10,9 @@
trap : SIGINT
trap "echo 'Boot interrupted'; exit 1" SIGQUIT
# BSD's init works somewhat differently to sysvinit.
# This block should 'translate' from the way init calls it to the way it would
# be called by sysvinit on linux.
RUNLEVEL="1" /sbin/rc sysinit || exit 1
RUNLEVEL="1" /sbin/rc boot || exit 1
PREVLEVEL="1" /sbin/rc default
/sbin/rc sysinit || exit 1
/sbin/rc boot || exit 1
/sbin/rc default
# We don't actually care if rc default worked or not, we should exit 0
# to allow logins

View File

@@ -1,5 +1,5 @@
#!@SHELL@
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Handle interrupts
@@ -14,13 +14,4 @@ export LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LDLIBRARY_PATH}"
[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="@TERM@"
action=${1:-shutdown}
# BSD's init works somewhat differently to sysvinit.
# This block should 'translate' from the way init calls it to the way it would
# be called by sysvinit on linux.
case "${action}" in
reboot) export RUNLEVEL=6;;
single) export RUNLEVEL=S;;
*) export RUNLEVEL=0;;
esac
exec /sbin/rc "${action}"

View File

@@ -1,5 +1,6 @@
avahi-dnsconfd
avahid
dhcpcd
dbus
hald
named
@@ -7,3 +8,4 @@ ntpd
openvpn
polkitd
sshd
wpa_supplicant

View File

@@ -1,7 +1,11 @@
DIR= ${INITDIR}
SRCS= avahi-dnsconfd.in avahid.in dbus.in hald.in named.in ntpd.in \
openvpn.in polkitd.in sshd.in
SRCS= avahi-dnsconfd.in avahid.in dhcpcd.in dbus.in \
hald.in named.in ntpd.in \
openvpn.in polkitd.in sshd.in wpa_supplicant.in
MK= ../mk
SED_EXTRA+= -e 's:@VARBASE@:/var:g'
include ${MK}/scripts.mk
include Makefile.${OS}

View File

@@ -1 +1 @@
PREFIX?= /usr/local
PKG_PREFIX?= /usr/local

View File

@@ -1 +1 @@
PREFIX=/usr
PKG_PREFIX?=/usr

View File

@@ -1 +1 @@
PREFIX?= /usr/pkg
PKG_PREFIX?= /usr/pkg

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/avahi-dnsconfd
command_args="${avahi_dnsconfd_args} -D"
command_args="$avahi_dnsconfd_args -D"
pidfile=@VARBASE@/run/avahi-dnsconfd.pid
name="Avahi DNS Configuration Daemon"

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/avahi-daemon
command_args="${avahid_args} -D"
command_args="$avahid_args -D"
pidfile=@VARBASE@/run/avahi-daemon/pid
name="Avahi Service Advertisement Daemon"

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/bin/dbus-daemon
pidfile=@VARBASE@/run/dbus/dbus.pid
pidfile=@VARBASE@/run/dbus/pid
command_args="${dbusd_args---system}"
name="Message Bus Daemon"

27
init.d.misc/dhcpcd.in Normal file
View File

@@ -0,0 +1,27 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/sbin/dhcpcd
pidfile=/var/run/dhcpcd.pid
command_args=-q
name="DHCP Client Daemon"
depend()
{
provide net
need localmount
use logger
after bootmisc modules
before dns
}
stop_pre()
{
# When shutting down, kill dhcpcd but preserve network
# We do this as /var/run/dhcpcd could be cleaned out when we
# return to multiuser.
if yesno $RC_GOINGDOWN; then
: ${stopsig:=SIGKILL}
fi
}

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/dnsmasq
command_args=${dnsmasq_args}
command_args=$dnsmasq_args
pidfile=@VARBASE@/run/dnsmasq.pid
required_files=/etc/dnsmasq.conf
@@ -18,7 +18,7 @@ depend()
reload()
{
ebegin "Reloading ${RC_SVCNAME}"
start-stop-daemon --signal SIGHUP --pidfile "${pidfile}"
ebegin "Reloading $RC_SVCNAME"
start-stop-daemon --signal SIGHUP --pidfile "$pidfile"
eend $?
}

View File

@@ -1,10 +1,10 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/hald
pidfile=@VARBASE@/run/hald/hald.pid
command_args="${hald_args}"
command_args=$hald_args
name="Hardware Abstraction Layer Daemon"
depend()

View File

@@ -1,15 +1,25 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/named
command_args=${named_args}
pidfile=@VARBASE@/run/named/pid
command_args=$named_args
pidfile=@VARBASE@/run/named.pid
name="Domain Name server"
extra_started_commands="reload"
namedb=/etc/namedb
named_uid=${named_uid:-bind}
uid=named
case "$RC_UNAME" in
FreeBSD)
uid=bind
pidfile=@VARBASE@/run/named/pid
;;
Linux)
uid=bind
;;
esac
: ${named_uid:=${uid}}
depend()
{
@@ -20,68 +30,71 @@ depend()
start_pre()
{
if [ -n "${named_chroot}" ]; then
if [ -n "$named_chroot" ]; then
# Create (or update) the chroot directory structure
if [ -r /etc/mtree/BIND.chroot.dist ]; then
mtree -deU -f /etc/mtree/BIND.chroot.dist -p "${named_chroot}"
mtree -deU -f /etc/mtree/BIND.chroot.dist -p "$named_chroot"
else
ewarn "/etc/mtree/BIND.chroot.dist missing,"
ewarn "chroot directory structure not updated"
fi
if [ ! -d "${named_chroot}"/. ]; then
eerror "chroot directory ${named_chroot} missing"
if [ ! -d "$named_chroot"/. ]; then
eerror "chroot directory $named_chroot missing"
exit 1
fi
# Create /etc/namedb symlink
if [ ! -L "${namedb}" ]; then
if [ -d "${namedb}" ]; then
ewarn "named chroot: ${namedb} is a directory!"
elif [ -e "${namedb}" ]; then
ewarn "named chroot: ${namedb} exists!"
if [ ! -L "$namedb" ]; then
if [ -d "$namedb" ]; then
ewarn "named chroot: $namedb is a directory!"
elif [ -e "$namedb" ]; then
ewarn "named chroot: $namedb exists!"
else
ln -s "${named_chroot}${namedb}" "${namedb}"
ln -s "$named_chroot$namedb" "$namedb"
fi
else
# Make sure it points to the right place.
ln -shf "${named_chroot}${namedb}" "${namedb}"
ln -shf "$named_chroot$namedb" "$namedb"
fi
case "${RC_UNAME}" in
case "$RC_UNAME" in
*BSD|DragonFly)
# Mount a devfs in the chroot directory if needed
umount "${named_chroot}"/dev 2>/dev/null
mount -t devfs dev "${named_chroot}"/dev
devfs -m "${named_chroot}"/dev ruleset devfsrules_hide_all
devfs -m "${named_chroot}"/dev rule apply path null unhide
devfs -m "${named_chroot}"/dev rule apply path random unhide
umount "$named_chroot"/dev 2>/dev/null
mount -t devfs dev "$named_chroot"/dev
devfs -m "$named_chroot"/dev \
ruleset devfsrules_hide_all
devfs -m "$named_chroot"/dev \
rule apply path null unhide
devfs -m "$named_chroot"/dev \
rule apply path random unhide
;;
esac
# Copy local timezone information if it is not up to date.
if [ -r /etc/localtime ]; then
cmp -s /etc/localtime "${named_chroot}/etc/localtime" ||
cp -p /etc/localtime "${named_chroot}/etc/localtime"
cmp -s /etc/localtime "$named_chroot/etc/localtime" ||
cp -p /etc/localtime "$named_chroot/etc/localtime"
fi
command_args="${command_args} -t ${named_chroot}"
command_args="$command_args -t $named_chroot"
ln -fs "${named_chroot}${pidfile}" "${pidfile}"
ln -fs "$named_chroot$pidfile" "$pidfile"
fi
if [ ! -s "${named_chroot}${namedb}/rndc.conf" ]; then
local confgen="${command%/named}/rndc-confgen -a -b256 -u ${named_uid} \
-c ${named_chrootdir}/etc/namedb/rndc.key"
if [ -s "${named_chroot}${namedb}/rndc.key" ]; then
if [ ! -s "$named_chroot$namedb/rndc.conf" ]; then
local confgen="${command%/named}/rndc-confgen -a -b256 -u $named_uid \
-c $named_chrootdir/etc/namedb/rndc.key"
if [ -s "$named_chroot$namedb/rndc.key" ]; then
local getuser="stat -f%Su"
[ "${RC_UNAME}" = "Linux" ] && getuser="stat -c%U"
case $(${getuser} "${named_chroot}${namedb}"/rndc.key) in
root|"${named_uid}");;
*) ${confgen};;
[ "$RC_UNAME" = Linux ] && getuser="stat -c%U"
case $(${getuser} "$named_chroot$namedb"/rndc.key) in
root|"$named_uid");;
*) $confgen;;
esac
else
${confgen}
$confgen
fi
fi
}
@@ -93,7 +106,7 @@ reload()
stop_post()
{
if [ -n "${named_chroot}" -a -c "${named_chroot}"/dev/null ]; then
umount "${named_chroot}"/dev 2>/dev/null || true
if [ -n "$named_chroot" -a -c "$named_chroot"/dev/null ]; then
umount "$named_chroot"/dev 2>/dev/null || true
fi
}

View File

@@ -1,13 +1,14 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
ntpd_config=${ntpd_config:-/etc/ntp.conf}
ntpd_drift=${ntpd_drift:-/var/db/ntpd.drift}
: ${ntpd_config:=/etc/ntp.conf}
: ${ntpd_drift:=/var/db/ntpd.drift}
command=/usr/sbin/ntpd
required_files=$ntpd_config
pidfile=/var/run/ntpd.pid
command_args="${ntpd_args} -c ${ntpd_config} -f ${ntpd_drift} -p ${pidfile}"
command_args="$ntpd_args -c $ntpd_config -f $ntpd_drift -p $pidfile"
name="Network Time Protocol Daemon"
depend()
@@ -19,22 +20,18 @@ depend()
start_pre()
{
if [ ! -r "${ntpd_config}" ]; then
eerror "${ntpd_config} is not readable"
return 1
fi
if [ -n "${ntpd_chroot}" ]; then
case "${RC_UNAME}" in
if [ -n "$ntpd_chroot" ]; then
case "$RC_UNAME" in
*BSD|DragonFly)
if [ ! -c "${ntpd_chroot}/dev/clockctl" ]; then
rm -f "${ntpd_chroot}/dev/clockctl"
(cd /dev; /bin/pax -rw -pe clockctl "${ntpd_chroot}/dev")
if [ ! -c "$ntpd_chroot/dev/clockctl" ]; then
rm -f "$ntpd_chroot/dev/clockctl"
(cd /dev; /bin/pax -rw -pe clockctl \
"$ntpd_chroot/dev")
fi
;;
esac
ln -fs "${ntpd_chroot}${ntpd_drift}" "${ntpd_drift}"
ln -fs "$ntpd_chroot$ntpd_drift" "$ntpd_drift"
command_args="${command_args} -u ntpd:ntpd -i ${ntpd_chroot}"
command_args="$command_args -u ntpd:ntpd -i $ntpd_chroot"
fi
}

View File

@@ -1,31 +1,32 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
vpn=${RC_SVCNAME#*.}
name="OpenVPN"
[ "${vpn}" != "openvpn" ] && name="${name} (${vpn})"
[ "$vpn" != openvpn ] && name="$name ($vpn)"
command=@PKG_PREFIX@/sbin/openvpn
pidfile=@VARBASE@/run/"${RC_SVCNAME}".pid
openvpn_dir=${openvpn_dir:-@PKG_PREFIX@/etc/openvpn}
openvpn_config=${openvpn_config:-${openvpn_dir}/${vpn}.conf}
command_args="${openvpn_args} --daemon --config ${openvpn_config} --writepid ${pidfile}"
required_dirs="${openvpn_dir}"
required_files="${openvpn_config}"
pidfile=@VARBASE@/run/"$RC_SVCNAME".pid
: ${openvpn_dir:=@PKG_PREFIX@/etc/openvpn}
: ${openvpn_config:=$openvpn_dir/$vpn.conf}
command_args="$openvpn_args --daemon --config $openvpn_config"
command_args="$command_args --writepid $pidfile"
required_dirs=$openvpn_dir
required_files=$openvpn_config
# If we're an openvpn client, then supply a nice default config
# You can find sample up/down scripts in the OpenRC support/openvpn dir
if yesno "${openvpn_client}"; then
openvpn_up=${openvpn_up:-${openvpn_dir}/up.sh}
openvpn_down=${openvpn_down:-${openvpn_dir}/down.sh}
command_args="${command_args} --nobind --up-delay --up-restart --down-pre"
command_args="${command_args} --up ${openvpn_up}"
command_args="${command_args} --down ${openvpn_down}"
required_files="${required_files} ${openvpn_up} ${openvpn_down}"
if yesno $openvpn_client; then
: ${openvpn_up:=${openvpn_dir}/up.sh}
: ${openvpn_down:=${openvpn_dir}/down.sh}
command_args="$command_args --nobind --up-delay --up-restart --down-pre"
command_args="$command_args --up $openvpn_up"
command_args="$command_args --down $openvpn_down"
required_files="$required_files $openvpn_up $openvpn_down"
in_background_fake="start stop"
start_inactive="YES"
start_inactive=YES
fi
depend()
@@ -38,7 +39,7 @@ depend()
start_pre()
{
# Linux has good dynamic tun/tap creation
if [ "${RC_UNAME}" = "Linux" ]; then
if [ "$RC_UNAME" = Linux ]; then
if [ ! -e /dev/net/tun ]; then
if ! modprobe tun; then
eerror "TUN/TAP support is not available in this kernel"
@@ -60,8 +61,7 @@ start_pre()
fi
# If the config file does not specify the cd option, we do
# But if we specify it, we override the config option which we do not want
if ! grep -q "^[ \t]*cd[ \t].*" "${openvpn_config}"; then
command_args="${command_args} --cd ${openvpn_dir}"
if ! grep -q "^[ \t]*cd[ \t].*" "$openvpn_config"; then
command_args="$command_args --cd $openvpn_dir"
fi
}

View File

@@ -1,10 +1,10 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/polkitd
pidfile=@VARBASE@/run/polkitd/polkitd.pid
command_args="${polkitd_args}"
command_args="$polkitd_args"
name="PolicyKit Daemon"
depend()

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/sshd
command_args=${sshd_args}
command_args=$sshd_args
pidfile=@VARBASE@/run/sshd.pid
required_files=/etc/ssh/sshd_config
@@ -31,5 +31,5 @@ start_pre()
eend $? || return 1
fi
${command} -t
$command -t
}

View File

@@ -0,0 +1,70 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/wpa_supplicant
: ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf}
wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if
command_args="$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supplicant_if"
name="WPA Supplicant Daemon"
depend()
{
need localmount
use logger
after bootmisc modules
before dns dhcpcd net
keyword -shutdown
}
find_wireless()
{
local iface=
case "$RC_UNAME" in
Linux)
for iface in /sys/class/net/*; do
if [ -e "$iface"/wireless -o \
-e "$iface"/phy80211 ]
then
echo "${iface##*/}"
return 0
fi
done
;;
*)
for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do
if ifconfig "${iface##*/}" 2>/dev/null | \
grep -q "[ ]*ssid "
then
echo "${iface##*/}"
return 0
fi
done
;;
esac
return 1
}
append_wireless()
{
local iface= i=
iface=$(find_wireless)
if [ -n "$iface" ]; then
for i in $iface; do
command_args="$command_args -i$i"
done
else
eerror "Could not find a wireless interface"
fi
}
start_pre()
{
case " $command_args" in
*" -i"*) ;;
*) append_wireless;;
esac
}

34
init.d/.gitignore vendored
View File

@@ -1,28 +1,42 @@
bootmisc
fsck
halt.sh
hostname
local
localmount
moused
net.lo
net.lo0
netmount
network
root
savecache
swap
sysctl
urandom
devfs
dmesg
hwclock
consolefont
keymaps
killprocs
modules
mount-ro
mtab
numlock
procfs
staticroute
sysfs
devdb
hostid
moused
newsyslog
pf
rarpd
rc-enabled
rpcbind
savecore
swap-blk
swclock
syslogd
adjkerntz
devd
dumpon
ipfw
mixer
nscd
powerd
syscons
termencoding
ttys
wscons

View File

@@ -1,9 +1,27 @@
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in halt.sh.in hostname.in local.in localmount.in \
netmount.in root.in swap.in sysctl.in urandom.in
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
network.in root.in savecache.in staticroute.in swap.in swclock.in \
sysctl.in urandom.in
BIN= ${OBJS}
# Build our old net foo or not
_OLDNET_SH= case "${MKOLDNET}" in \
[Yy][Ee][Ss]) echo "net.lo";; \
*) echo "";; \
esac
_OLDNET!= ${_OLDNET_SH}
_NET_LO= ${_OLDNET}$(shell ${_OLDNET_SH})
INSTALLAFTER= _installafter_${_NET_LO}
CLEANFILES+= ${_NET_LO}
TARGETS+= ${_NET_LO}
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
include ${MK}/scripts.mk
_installafter_: realinstall
_installafter_net.lo: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO}

View File

@@ -1,3 +1,5 @@
NET_LO= net.lo0
# Generic BSD scripts
SRCS+= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in

View File

@@ -1,5 +1,8 @@
SRCS+= hwclock.in consolefont.in keymaps.in modules.in mtab.in numlock.in \
procfs.in
NET_LO= net.lo
SRCS+= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in killprocs.in \
modules.in mount-ro.in mtab.in numlock.in procfs.in sysfs.in \
termencoding.in
.SUFFIXES: .Linux.in
.Linux.in:

View File

@@ -1,9 +1,11 @@
NET_LO= net.lo0
# Generic BSD scripts
SRCS+= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are NetBSD specific
SRCS+= swap-blk.in ttys.in wscons.in
SRCS+= devdb.in swap-blk.in ttys.in wscons.in
.SUFFIXES: .BSD.in
.BSD.in:

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
extra_commands="save"
@@ -7,8 +7,8 @@ extra_commands="save"
description="Sets the local clock to UTC or Local Time."
description_save="Saves the current time in the BIOS."
clock=${clock:-${CLOCK:-UTC}}
if [ "${clock}" = "UTC" ]; then
: ${clock:=${CLOCK:-UTC}}
if [ "$clock" = "UTC" ]; then
utc="UTC"
else
utc="Local Time"
@@ -18,17 +18,17 @@ depend()
{
provide clock
# BSD adjkerntz needs to be able to write to /etc
if [ "${clock}" = "UTC" -a -e /etc/wall_cmos_clock ] ||
[ "${clock}" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
if [ "$clock" = "UTC" -a -e /etc/wall_cmos_clock ] ||
[ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
need root
fi
keyword nojail noprefix
keyword -jail -prefix
}
start()
{
ebegin "Starting the System Clock Adjuster [${utc}]"
if [ "${clock}" != "UTC" ]; then
if [ "$clock" != "UTC" ]; then
echo >/etc/wall_cmos_clock
start-stop-daemon --start --exec /sbin/adjkerntz -- -i
else
@@ -48,8 +48,8 @@ save()
stop()
{
# Don't tweak the hardware clock on LiveCD halt.
if yesno "${clock_systohc:-${CLOCK_SYSTOHC}}"; then
[ -z "${CDBOOT}" ] && save
if yesno "${clock_systohc:-$CLOCK_SYSTOHC}"; then
[ -z "$CDBOOT" ] && save
fi
ebegin "Stopping the System Clock Adjuster"

View File

@@ -1,36 +1,47 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
depend()
{
use hostname
need localmount
before logger
after clock sysctl
keyword noprefix
keyword -prefix
}
dir_writeable()
{
mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
}
: ${wipe_tmp:=${WIPE_TMP:-yes}}
cleanup_tmp_dir()
{
local dir=$1
local dir="$1"
mkdir -p "${dir}"
cd "${dir}"
if yesno ${wipe_tmp:-${WIPE_TMP:-yes}}; then
ebegin "Wiping ${dir} directory"
local startopts="-x . -depth" delete="-exec rm -rf -- {} ;"
if [ "${RC_UNAME}" = "Linux" ]; then
startopts=". -xdev -depth"
# busybox find / rm cannot handle --
delete="-delete"
fi
if ! [ -d "$dir" ]; then
mkdir -p "$dir" || return $?
fi
dir_writeable "$dir" || return 1
chmod a+rwt "$dir"
cd "$dir"
if yesno $wipe_tmp; then
ebegin "Wiping $dir directory"
local startopts="-x . -depth"
[ "$RC_UNAME" = Linux ] && startopts=". -xdev -depth"
# Faster than find
rm -rf -- [b-ikm-pr-zA-Z0-9\.]*
rm -rf -- [^ajlq\.]*
find ${startopts} ! -name . \
# pam_mktemp creates a .private directory within which
# each user gets a private directory with immutable
# bit set; remove the immutable bit before trying to
# remove it.
[ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null
find $startopts ! -name . \
! -path "./lost+found" \
! -path "./lost+found/*" \
! -path "./quota.user" \
@@ -43,92 +54,118 @@ cleanup_tmp_dir()
! -path "./aquota.group/*" \
! -path "./journal" \
! -path "./journal/*" \
! -path "./.private" \
! -path "./.private/*" \
${delete} \
-type d -prune
-exec rm -rf {} \;
eend 0
else
ebegin "Cleaning ${dir} directory"
rm -rf -- "${dir}"/.X*-lock "${dir}"/esrv* "${dir}"/kio* \
"${dir}"/jpsock.* "${dir}"/.fam* "${dir}"/.esd* \
"${dir}"/orbit-* "${dir}"/ssh-* "${dir}"/ksocket-* \
"${dir}"/.*-unix
ebegin "Cleaning $dir directory"
rm -rf -- "$dir"/.X*-lock "$dir"/esrv* "$dir"/kio* \
"$dir"/jpsock.* "$dir"/.fam* "$dir"/.esd* \
"$dir"/orbit-* "$dir"/ssh-* "$dir"/ksocket-* \
"$dir"/.*-unix
eend 0
fi
}
mkutmp()
{
: >"$1"
# Not all systems have the utmp group
chgrp utmp "$1" 2>/dev/null
chmod 0664 "$1"
}
start()
{
if ! mkdir /.test.$$ 2>/dev/null; then
ewarn "Skipping /var and /tmp initialization (ro root?)"
return 0
fi
rmdir /.test.$$
# Remove any added console dirs
rm -rf "$RC_LIBEXECDIR"/console
local logw=false runw=false extra=
# Ensure that our basic dirs exist
for x in /var/log /var/run /tmp; do
if ! [ -d "${x}" ]; then
if ! mkdir -p "${x}"; then
eend 1 "failed to create needed directory ${x}"
[ "$RC_UNAME" = Linux ] && extra=/var/lib/misc # Satisfy Linux FHS
for x in /var/log /var/run /tmp $extra; do
if ! [ -d $x ]; then
if ! mkdir -p $x; then
eend 1 "failed to create needed directory $x"
return 1
fi
fi
done
ebegin "Creating user login records"
cp /dev/null /var/run/utmp
[ -e /var/log/wtmp ] || cp /dev/null /var/log/wtmp
chmod 0644 /var/run/utmp /var/log/wtmp
eend 0
if dir_writeable /var/run; then
ebegin "Creating user login records"
local xtra=
[ "$RC_UNAME" = NetBSD ] && xtra=x
for x in "" $xtra; do
mkutmp /var/run/utmp$x
done
[ -e /var/log/wtmp ] || mkutmp /var/log/wtmp
eend 0
ebegin "Cleaning /var/run"
for x in $(find /var/run ! -type d ! -name utmp ! -name random-seed \
! -name ld-elf.so.hints ! -name ld.so.hints);
do
[ ! -f "${x}" ] && continue
# Do not remove pidfiles of already running daemons
case "${x}" in
*.pid)
start-stop-daemon --test --quiet --stop \
--pidfile "${x}"
[ $? -eq 0 ] && continue
ebegin "Cleaning /var/run"
for x in $(find /var/run ! -type d ! -name utmp \
! -name random-seed ! -name dev.db \
! -name ld-elf.so.hints ! -name ld.so.hints);
do
# Clean stale sockets
if [ -S "$x" ]; then
if type fuser >/dev/null 2>&1; then
fuser "$x" >/dev/null 2>&1 || rm -- "$x"
else
rm -- "$x"
fi
fi
[ ! -f "$x" ] && continue
# Do not remove pidfiles of already running daemons
case "$x" in
*.pid)
start-stop-daemon --test --quiet \
--stop --pidfile "$x" && continue
;;
esac
rm -f -- "${x}"
done
eend 0
esac
rm -f -- "$x"
done
eend 0
fi
# Clean up /tmp directories
local tmp=
for tmp in ${wipe_tmp_dirs-/tmp}; do
cleanup_tmp_dir "${tmp}"
for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do
cleanup_tmp_dir "$tmp"
done
chmod +t /tmp /var/tmp
# Make sure our X11 stuff have the correct permissions
# Omit the chown as bootmisc is run before network is up
# and users may be using lame LDAP auth #139411
rm -rf /tmp/.ICE-unix /tmp/.X11-unix
mkdir -p /tmp/.ICE-unix /tmp/.X11-unix
chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix
[ -x /sbin/restorecon ] && restorecon /tmp/.ICE-unix /tmp/.X11-unix
# Create an 'after-boot' dmesg log
if [ "${RC_SYS}" != "VSERVER" -a "${RC_SYS}" != "OPENVZ" ]; then
dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg
if dir_writeable /tmp; then
# Make sure our X11 stuff have the correct permissions
# Omit the chown as bootmisc is run before network is up
# and users may be using lame LDAP auth #139411
rm -rf /tmp/.ICE-unix /tmp/.X11-unix
mkdir -p /tmp/.ICE-unix /tmp/.X11-unix
chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix
if [ -x /sbin/restorecon ]; then
restorecon /tmp/.ICE-unix /tmp/.X11-unix
fi
fi
rm -f /etc/nologin
if $logw || dir_writeable /var/log; then
# Create an 'after-boot' dmesg log
if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg
fi
fi
[ -w /etc/nologin ] && rm -f /etc/nologin
return 0
}
stop()
{
# Write a halt record if we're shutting down
case "${RC_RUNLEVEL}" in
reboot|shutdown) [ "${RC_UNAME}" = "Linux" ] && halt -w;;
esac
if [ "$RC_RUNLEVEL" = shutdown ]; then
[ "$RC_UNAME" = Linux ] && halt -w
if [ "$RC_SYS" = OPENVZ ]; then
yesno $RC_REBOOT && printf "" >/reboot
fi
fi
return 0
}

View File

@@ -1,78 +1,73 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Sets a font for the consoles."
depend()
{
need localmount
need keymaps # sets up terminal encoding scheme
after hotplug
keyword noopenvz noprefix nouml novserver noxenu
need localmount termencoding
after hotplug bootmisc
keyword -openvz -prefix -uml -vserver -xenu -lxc
}
start()
{
# Forget about any font until we are successful
rm -rf "${RC_LIBDIR}"/console
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
consolefont=${consolefont:-${CONSOLEFONT}}
unicodemap=${unicodemap:-${UNICODEMAP}}
consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}}
if [ -z "${consolefont}" ]; then
if [ -z "$consolefont" ]; then
ebegin "Using the default console font"
eend 0
return 0
fi
if [ "${ttyn}" = 0 ]; then
if [ "$ttyn" = 0 ]; then
ebegin "Skipping font setup (rc_tty_number == 0)"
eend 0
return 0
fi
local x= param= sf_param= retval=0 ttydev=
local x= param= sf_param= retval=0 ttydev=/dev/tty
# Get additional parameters
if [ -n "${consoletranslation}" ]; then
param="${param} -m ${consoletranslation}"
if [ -n "$consoletranslation" ]; then
param="$param -m $consoletranslation"
fi
if [ -n "${unicodemap}" ]; then
param="${param} -u ${unicodemap}"
param="$param -u $unicodemap"
fi
# Set the console font
ebegin "Setting user font"
[ -d /dev/vc ] \
&& ttydev=/dev/vc/ \
|| ttydev=/dev/tty
ebegin "Setting console font [$consolefont]"
[ -d /dev/vc ] && ttydev=/dev/vc/
x=1
while [ ${x} -le ${ttyn} ]; do
setfont ${consolefont} ${param} -C ${ttydev}${x} >/dev/null
retval=$((${retval} + $?))
x=$((${x} + 1))
while [ $x -le $ttyn ]; do
if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then
retval=1
break
fi
x=$(($x + 1))
done
eend ${retval}
eend $retval
# Store the last font so we can use it ASAP on boot
if [ ${retval} -eq 0 -a -w "${RC_LIBDIR}" ]; then
mkdir -p "${RC_LIBDIR}"/console
for font in /usr/share/consolefonts/"${consolefont}".*; do
if [ $retval -eq 0 -a -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console
for font in /usr/share/consolefonts/"$consolefont".*; do
:
done
cp "${font}" "${RC_LIBDIR}"/console
echo "${font##*/}" > "${RC_LIBDIR}"/console/font
cp "$font" "$RC_LIBEXECDIR"/console
echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font
if yesno ${unicode:-${UNICODE}}; then
cp /dev/null "${RC_LIBDIR}"/console/unicode
echo "" > "$RC_LIBEXECDIR"/console/unicode
else
rm -f "${RC_LIBDIR}"/console/unicode
rm -f "$RC_LIBEXECDIR"/console/unicode
fi
fi
return ${retval}
return $retval
}

View File

@@ -1,16 +1,16 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/sbin/devd
command_args=${devd_args}
command_args=$devd_args
name="Device State Change Daemon"
depend() {
need localmount
after bootmisc
before net.lo0
keyword nojail noprefix
keyword -jail -prefix
}
start_pre() {

21
init.d/devdb.in Normal file
View File

@@ -0,0 +1,21 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Creates the dev database"
depend()
{
need localmount
}
start()
{
ebegin "Bulding the dev database"
if [ /var/run/dev.db -nt /dev ]; then
:
else
dev_mkdb
fi
eend $?
}

36
init.d/devfs.in Normal file
View File

@@ -0,0 +1,36 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Mount system critical filesystems in /dev."
depend() {
use dev
keyword -prefix -vserver
}
start() {
# Mount required stuff as user may not have then in /etc/fstab
for x in \
"devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \
"tmpfs /dev/shm 1777 ,nodev shm" \
; do
set -- $x
grep -Eq "[[:space:]]+$1$" /proc/filesystems || continue
mountinfo -q $2 && continue
if [ ! -d $2 ]; then
mkdir -m $3 -p $2 >/dev/null 2>&1 || \
ewarn "Could not create $2!"
fi
if [ -d $2 ]; then
ebegin "Mounting $2"
if ! fstabinfo --mount $2; then
mount -n -t $1 -o noexec,nosuid$4 $5 $2
fi
eend $?
fi
done
return 0
}

18
init.d/dmesg.in Normal file
View File

@@ -0,0 +1,18 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Set the dmesg level for a cleaner boot"
depend()
{
before dev modules
keyword -vserver
}
start()
{
if [ -n "$dmesg_level" ]; then
dmesg -n$dmesg_level
fi
}

View File

@@ -1,18 +1,18 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Configures a specific kernel dump device."
depend() {
need swap
keyword nojail noprefix
keyword -jail -prefix
}
start() {
# Setup any user requested dump device
if [ -n "${dump_device}" ]; then
ebegin "Activating kernel core dump device (${dump_device})"
if [ -n "$dump_device" ]; then
ebegin "Activating kernel core dump device ($dump_device)"
dumpon ${dump_device}
eend $?
fi

View File

@@ -1,15 +1,15 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Check and repair filesystems according to /etc/fstab"
_ISF="
_IFS="
"
depend()
{
after clock modules
keyword nojail noopenvz noprefix notimeout novserver
use dev clock modules
keyword -jail -openvz -prefix -timeout -vserver -lxc
}
_abort() {
@@ -19,50 +19,82 @@ _abort() {
# We should only reboot when first booting
_reboot() {
if [ "${RC_RUNLEVEL}" = "${RC_BOOTLEVEL}" ]; then
if [ "$RC_RUNLEVEL" = "$RC_BOOTLEVEL" ]; then
reboot "$@"
_abort || return 1
fi
}
_forcefsck()
{
[ -e /forcefsck ] || get_bootparam forcefsck
}
start()
{
local reboot_opts= fsck_opts= p=
local fsck_opts= p= check_extra=
ebegin "Checking local filesystems"
for p in ${fsck_passno}; do
local IFS="${_IFS}"
case "${p}" in
[0-9]*) p="=${p}";;
if [ -e /fastboot ]; then
ewarn "Skipping fsck due to /fastboot"
return 0
fi
if _forcefsck; then
fsck_opts="$fsck_opts -f"
check_extra="(check forced)"
elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then
ewarn "Skipping fsck due to not being on AC power"
return 0
fi
if [ -n "$fsck_passno" ]; then
check_extra="[passno $fsck_passno] $check_extra"
fi
ebegin "Checking local filesystems $check_extra"
for p in $fsck_passno; do
local IFS="$_IFS"
case "$p" in
[0-9]*) p="=$p";;
esac
set -- "$@" "$(fstabinfo --passno "${p}")"
set -- "$@" $(fstabinfo --passno "$p")
unset IFS
done
if [ "${RC_UNAME}" = "Linux" ]; then
fsck_opts="-C0 -T"
if [ -z "${fsck_passno}" ]; then
if [ "$RC_UNAME" = Linux ]; then
fsck_opts="$fsck_opts -C0 -T"
if [ -z "$fsck_passno" ]; then
fsck_args=${fsck_args--A -p}
if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$
fsck_opts="${fsck_opts} -R"
fsck_opts="$fsck_opts -R"
fi
fi
reboot_opts="-f"
fi
trap : QUIT
fsck ${fsck_args--p} ${fsck_opts} "$@"
trap : INT QUIT
fsck ${fsck_args--p} $fsck_opts "$@"
case $? in
0) eend 0; return 0;;
1) ewend 1 "Filesystems repaired"; return 0;;
2|3|4) ewend 1 "Filesystems repaired, but reboot needed"
_reboot ${reboot_opts} || return 1;;
8) ewend 1 "Operational error"; return 0;;
12) ewend 1 "fsck interupted"; return 1;;
*) eend 2 "Filesystems couldn't be fixed"
_abort || return 1;;
0) eend 0; return 0;;
1) ewend 1 "Filesystems repaired"; return 0;;
2|3) if [ "$RC_UNAME" = Linux ]; then
ewend 1 "Filesystems repaired, but reboot needed"
_reboot -f
else
ewend 1 "Filesystems still have errors;" \
"manual fsck required"
_abort
fi;;
4) if [ "$RC_UNAME" = Linux ]; then
ewend 1 "Fileystem errors left uncorrected, aborting"
_abort
else
ewend 1 "Filesystems repaired, but reboot needed"
_reboot
fi;;
8) ewend 1 "Operational error"; return 0;;
12) ewend 1 "fsck interupted";;
*) eend 2 "Filesystems couldn't be fixed";;
esac
_abort || return 1
}
stop()
@@ -70,7 +102,8 @@ stop()
# Fake function so we always shutdown correctly.
_abort() { return 0; }
_reboot() { return 0; }
_forcefsck() { return 1; }
yesno "${fsck_shutdown}" && start
yesno $fsck_shutdown && start
return 0
}

View File

@@ -1,99 +0,0 @@
#!@SHELL@
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
. @SYSCONFDIR@/init.d/functions.sh
. "${RC_LIBDIR}"/sh/rc-functions.sh
[ -r @SYSCONFDIR@/rc.conf ] && . @SYSCONFDIR@/rc.conf
# Support LiveCD foo
if [ -r /sbin/livecd-functions.sh ]; then
. /sbin/livecd-functions.sh
livecd_read_commandline
fi
stop_addon devfs
stop_addon udev
# Really kill things off before unmounting
if [ -x /sbin/killall5 ]; then
killall5 -15
killall5 -9
fi
# Flush all pending disk writes now
sync; sync
# If we are in a VPS, we don't need anything below here, because
# 1) we don't need (and by default can't) umount anything (VServer) or
# 2) the host utils take care of all umounting stuff (OpenVZ)
if [ "${RC_SYS}" = "VSERVER" -o "${RC_SYS}" = "OPENVZ" ]; then
if [ -e @SYSCONFDIR@/init.d/"$1".sh ]; then
. @SYSCONFDIR@/init.d/"$1".sh
else
exit 0
fi
fi
# If $svcdir is still mounted, preserve it if we can
mnt=$(mountinfo --node "${RC_SVCDIR}")
if [ -n "${mnt}" -a -w "${RC_LIBDIR}" ]; then
f_opts="-m -c"
[ "${RC_UNAME}" = "Linux" ] && f_opts="-c"
if type fuser >/dev/null 2>&1; then
if [ -n "$(fuser ${f_opts} "${svcdir}" 2>/dev/null)" ]; then
fuser -k ${f_opts} "${svcdir}" >/dev/null 2>&1
sleep 2
fi
fi
cp -p "${RC_SVCDIR}"/deptree "${RC_SVCDIR}"/depconfig \
"${RC_SVCDIR}"/softlevel "${RC_SVCDIR}"/nettree \
"${RC_SVCDIR}"/rc.log \
"${RC_LIBDIR}" 2>/dev/null
umount "${RC_SVCDIR}"
rm -rf "${RC_SVCDIR}"/*
# Pipe errors to /dev/null as we may have future timestamps
cp -p "${RC_LIBDIR}"/deptree "${RC_LIBDIR}"/depconfig \
"${RC_LIBDIR}"/softlevel "${RC_LIBDIR}"/nettree \
"${RC_LIBDIR}"/rc.log \
"${RC_SVCDIR}" 2>/dev/null
rm -f "${RC_LIBDIR}"/deptree "${RC_LIBDIR}"/depconfig \
"${RC_LIBDIR}"/softlevel "${RC_LIBDIR}"/nettree \
"${RC_LIBDIR}"/rc.log
# Release the memory disk if we used it
case "${mnt}" in
"/dev/md"[0-9]*) mdconfig -d -u "${mnt#/dev/md*}";;
esac
fi
unmounted=0
# Remount the remaining filesystems read-only
# Most BSD's don't need this as the kernel handles it nicely
if [ "${RC_UNAME}" = "Linux" ]; then
ebegin "Remounting remaining filesystems read-only"
# We need the do_unmount function
. "${RC_LIBDIR}"/sh/rc-mount.sh
eindent
fs=
for x in ${net_fs_list}; do
fs="${fs}${fs:+|}${x}"
done
[ -n "${fs}" ] && fs="^(${fs})$"
do_unmount "mount -n -o remount,ro" \
--skip-point-regex "^(/dev|/dev/.*|/proc|/proc/.*|/sys|/sys/.*)$" \
${fs:+--skip-fstype-regex} ${fs} --nonetdev
eoutdent
eend $?
unmounted=$?
fi
if [ ${unmounted} -ne 0 ]; then
[ -x /sbin/sulogin ] && sulogin -t 10 /dev/console
exit 1
fi
# Load the final script - not needed on BSD so they should not exist
[ -e @SYSCONFDIR@/init.d/"$1".sh ] && . @SYSCONFDIR@/init.d/"$1".sh
# Always exit 0 here
exit 0

View File

@@ -1,15 +1,15 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
extra_commands="reset"
hostid_file=${hostid_file:-/etc/hostid}
: ${hostid_file:=/etc/hostid}
depend()
{
need root
use root
before devd net
keyword nojail noprefix
keyword -jail -prefix
}
_set()
@@ -20,14 +20,14 @@ _set()
id=$(echo "$1" | md5)
id="0x${id%????????????????????????}"
fi
ebegin "Setting Host ID: ${id}"
sysctl -w kern.hostid="${id}" >/dev/null
ebegin "Setting Host ID: $id"
sysctl -w kern.hostid="$id" >/dev/null
eend $? || return 1
if sysctl -n kern.hostuuid >/dev/null 2>&1; then
[ -n "$1" ] && id=$1
ebegin "Setting Host UUID: ${id}"
sysctl kern.hostuuid="${id}" >/dev/null
ebegin "Setting Host UUID: $id"
sysctl kern.hostuuid="$id" >/dev/null
eend $? || return 1
fi
@@ -38,35 +38,37 @@ _set()
# otherwise we generate a random UUID.
reset()
{
local uuid=$(kenv smbios.system.uuid 2>/dev/null)
local x="[0-9a-f]"
local y="${x}${x}${x}${x}"
case "${uuid}" in
${y}${y}-${y}-${y}-${y}-${y}${y}${y});;
local uuid= x="[0-9a-f]" y="$x$x$x$x"
if type kenv >/dev/null 2>&1; then
uuid=$(kenv smbios.system.uuid 2>/dev/null)
fi
case "$uuid" in
$y$y-$y-$y-$y-$y$y$y);;
*) uuid=;;
esac
if [ -n "${uuid}" ]; then
rm -f "${hostid_file}"
if [ -n "$uuid" ]; then
rm -f "$hostid_file"
else
uuid=$(uuidgen)
if [ -z "${uuid}" ]; then
if [ -z "$uuid" ]; then
eerror "Unable to generate a UUID"
return 1
fi
if ! echo "${uuid}" > "${hostid_file}"; then
eerror "Failed to store UUID in \`${hostid_file}'"
if ! echo "$uuid" >"$hostid_file"; then
eerror "Failed to store UUID in \`$hostid_file'"
return 1
fi
fi
_set "${uuid}"
_set "$uuid"
}
start()
{
if [ -r "${hostid_file}" ]; then
_set $(cat "${hostid_file}")
if [ -r "$hostid_file" ]; then
_set $(cat "$hostid_file")
else
reset
fi

View File

@@ -1,17 +1,17 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Sets the hostname of the machine."
depend() {
keyword noprefix
keyword -prefix
}
start()
{
hostname=${hostname-${HOSTNAME-localhost}}
ebegin "Setting hostname to ${hostname}"
hostname "${hostname}"
ebegin "Setting hostname to $hostname"
hostname "$hostname"
eend $? "Failed to set the hostname"
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
extra_commands="save show"
@@ -8,12 +8,11 @@ description="Sets the local clock to UTC or Local Time."
description_save="Saves the current time in the BIOS."
description_show="Displays the current time in the BIOS."
clock_adjfile=${clock_adjfile:-${CLOCK_ADJFILE}}
clock_args=${clock_args:-${CLOCK_OPTS}}
clock_systohc=${clock_systohc:-${CLOCK_SYSTOHC}}
clock=${clock:-${CLOCK:-UTC}}
if [ "${clock}" = "UTC" ]; then
: ${clock_adjfile:=${CLOCK_ADJFILE}}
: ${clock_args:=${CLOCK_OPTS}}
: ${clock_systohc:=${CLOCK_SYSTOHC}}
: ${clock:=${CLOCK:-UTC}}
if [ "$clock" = "UTC" ]; then
utc="UTC"
utc_cmd="--utc"
else
@@ -24,12 +23,12 @@ fi
depend()
{
provide clock
if yesno ${clock_adjfile}; then
if yesno $clock_adjfile; then
use root
else
before *
fi
keyword noopenvz noprefix nouml novserver noxenu
keyword -openvz -prefix -uml -vserver -xenu -lxc
}
setupopts()
@@ -47,7 +46,7 @@ setupopts()
;;
esac
case "${utc}" in
case "$utc" in
UTC|Local" "Time);;
*) unset utc_cmd;;
esac
@@ -58,7 +57,7 @@ _hwclock()
{
local err="$(hwclock "$@" 2>&1 >/dev/null)"
[ -z "${err}" ] && return 0
[ -z "$err" ] && return 0
echo "${err}" >&2
return 1
}
@@ -68,32 +67,38 @@ start()
local retval=0 errstr=""
setupopts
if [ -z "${utc_cmd}" ]; then
ewarn "Not setting clock for ${utc} system"
if [ -z "$utc_cmd" ]; then
ewarn "Not setting clock for $utc system"
return 0
fi
ebegin "Setting system clock using the hardware clock [${utc}]"
if [ -e /proc/modules -a ! -e /dev/rtc ]; then
modprobe -q rtc || modprobe -q genrtc
ebegin "Setting system clock using the hardware clock [$utc]"
if [ -e /proc/modules ]; then
local rtc=
for rtc in /dev/rtc /dev/rtc[0-9]*; do
[ -e "$rtc" ] && break
done
if [ ! -e "${rtc}" ]; then
modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc
fi
fi
if [ -e /etc/adjtime ] && yesno ${clock_adjfile}; then
_hwclock --adjust ${utc_cmd}
retval=$((${retval} + $?))
if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
_hwclock --adjust $utc_cmd
retval=$(($retval + $?))
fi
# If setting UTC, don't bother to run hwclock when first booting
# as that's the default
if [ "${PREVLEVEL}" != "N" -o \
"${utc_cmd}" != "--utc" -o \
-n "${clock_args}" ];
if [ "$PREVLEVEL" != N -o \
"$utc_cmd}" != --utc -o \
-n "$clock_args" ];
then
_hwclock --hctosys ${utc_cmd} ${clock_args}
retval=$((${retval} + $?))
_hwclock --hctosys $utc_cmd $clock_args
retval=$(($retval + $?))
fi
eend ${retval} "Failed to set the system clock"
eend $retval "Failed to set the system clock"
return 0
}
@@ -101,37 +106,37 @@ start()
stop()
{
# Don't tweak the hardware clock on LiveCD halt.
[ -n "${CDBOOT}" ] && return 0
yesno ${clock_systohc} || return 0
[ -n "$CDBOOT" ] && return 0
yesno $clock_systohc || return 0
local retval=0 errstr=""
setupopts
[ -z "${utc_cmd}" ] && return 0
[ -z "$utc_cmd" ] && return 0
ebegin "Setting hardware clock using the system clock" "[${utc}]"
ebegin "Setting hardware clock using the system clock" "[$utc]"
if ! yesno "${clock_adjfile}"; then
if ! yesno $clock_adjfile; then
# Some implementations don't handle adjustments
if LC_ALL=C hwclock --help | grep -q "\-\-noadjfile"; then
utc_cmd="${utc_cmd} --noadjfile"
if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
utc_cmd="$utc_cmd --noadjfile"
fi
fi
_hwclock --systohc ${utc_cmd} ${clock_args}
_hwclock --systohc $utc_cmd $clock_args
retval=$?
eend ${retval} "Failed to sync clocks"
eend $retval "Failed to sync clocks"
}
save()
{
clock_systohc="yes"
clock_systohc=yes
stop
}
show()
{
setupopts
hwclock --show "${utc_cmd}" ${clock_args}
hwclock --show "$utc_cmd" $clock_args
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD
@@ -13,13 +13,17 @@ opts="panic showstatus"
depend() {
before net
provide firewall
keyword nojail
keyword -jail
}
ipfw() {
/sbin/ipfw -f -q "$@"
}
have_ip6() {
sysctl net.ipv6 2>/dev/null
}
init() {
# Load the kernel module
if ! sysctl net.inet.ip.fw.enable=1 >/dev/null 2>&1; then
@@ -36,13 +40,15 @@ init() {
ipfw add deny all from any to 127.0.0.0/8
ipfw add deny ip from 127.0.0.0/8 to any
ipfw add pass ip6 from any to any via lo0
ipfw add deny ip6 from any to ::1
ipfw add deny ip6 from ::1 to any
if have_ip6; then
ipfw add pass ip6 from any to any via lo0
ipfw add deny ip6 from any to ::1
ipfw add deny ip6 from ::1 to any
ipfw add pass ip6 from :: to ff02::/16 proto ipv6-icmp
ipfw add pass ip6 from fe80::/10 to fe80::/10 proto ipv6-icmp
ipfw add pass ip6 from fe80::/10 to ff02::/16 proto ipv6-icmp
ipfw add pass ip6 from :: to ff02::/16 proto ipv6-icmp
ipfw add pass ip6 from fe80::/10 to fe80::/10 proto ipv6-icmp
ipfw add pass ip6 from fe80::/10 to ff02::/16 proto ipv6-icmp
fi
}
start() {
@@ -62,9 +68,11 @@ start() {
ipfw add pass udp from me to any keep-state
ipfw add pass icmp from me to any keep-state
ipfw add pass tcp from me6 to any setup keep-state
ipfw add pass udp from me6 to any keep-state
ipfw add pass icmp from me6 to any keep-state
if have_ip6; then
ipfw add pass tcp from me6 to any setup keep-state
ipfw add pass udp from me6 to any keep-state
ipfw add pass icmp from me6 to any keep-state
fi
# Allow DHCP.
ipfw add pass udp from 0.0.0.0 68 to 255.255.255.255 67 out
@@ -77,32 +85,34 @@ start() {
# Allow "mandatory" ICMP in.
ipfw add pass icmp from any to any icmptype 3,4,11
# Allow ICMPv6 destination unreach
ipfw add pass ip6 from any to any icmp6types 1 proto ipv6-icmp
# Allow NS/NA/toobig (don't filter it out)
ipfw add pass ip6 from any to any icmp6types 2,135,136 proto ipv6-icmp
if have_ip6; then
# Allow ICMPv6 destination unreach
ipfw add pass ip6 from any to any icmp6types 1 proto ipv6-icmp
# Allow NS/NA/toobig (don't filter it out)
ipfw add pass ip6 from any to any icmp6types 2,135,136 proto ipv6-icmp
fi
# Add permits for this workstations published services below
# Only IPs and nets in firewall_allowservices is allowed in.
for i in ${ipfw_ip_in}; do
for p in ${ipfw_ports_in}; do
ipfw add pass tcp from ${i} to me ${p}
for i in $ipfw_ip_in; do
for p in $ipfw_ports_in; do
ipfw add pass tcp from $i to me $p
done
done
# Allow all connections from trusted IPs.
# Playing with the content of firewall_trusted could seriously
# degrade the level of protection provided by the firewall.
for i in ${ipfw_ip_trust}; do
ipfw add pass ip from ${i} to me
for i in $ipfw_ip_trust; do
ipfw add pass ip from $i to me
done
ipfw add 65000 count ip from any to any
# Drop packets to ports where we don't want logging
for p in ${ipfw_ports_nolog}; do
ipfw add deny { tcp or udp } from any to any ${p} in
for p in $ipfw_ports_nolog; do
ipfw add deny { tcp or udp } from any to any $p in
done
# Broadcasts and muticasts
@@ -119,10 +129,10 @@ start() {
# Deny and (if wanted) log the rest unconditionally.
if yesno ${ipfw_log_deny:-no}; then
log="log"
log=log
sysctl net.inet.ip.fw.verbose=1 >/dev/null
fi
ipfw add deny ${log} ip from any to any
ipfw add deny $log ip from any to any
eend 0
}

View File

@@ -1,69 +1,70 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Applies a keymap for the consoles."
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
unicode=${unicode:-${UNICODE}}
keymap=${keymap:-${KEYMAP}}
extended_keymaps=${extended_keymaps:-${EXTENDED_KEYMAPS}}
windowskeys=${windowskeys:-${SET_WINDOWSKEYS}}
fix_euro=${fix_euro:-${FIX_EURO}}
dumpkeys_charset=${dumpkeys_charset:-${DUMPKEYS_CHARSET}}
depend()
{
need localmount
keyword noopenvz noprefix nouml novserver noxenu
need localmount termencoding
after bootmisc
keyword -openvz -prefix -uml -vserver -xenu -lxc
}
start()
{
if [ -z "${keymap}" ]; then
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
: ${unicode:=$UNICODE}
: ${keymap:=$KEYMAP}
: ${extended_keymaps:=$EXTENDED_KEYMAPS}
: ${windowkeys:=$SET_WINDOWSKEYS}
: ${fix_euro:=$FIX_EURO}
: ${dumpkeys_charset:=${DUMPKEYS_CHARSET}}
if [ -z "$keymap" ]; then
eerror "You need to setup keymap in /etc/conf.d/keymaps first"
return 1
fi
local ttydev= n=
[ -d /dev/vc ] \
&& ttydev=/dev/vc/ \
|| ttydev=/dev/tty
local ttydev=/dev/tty n=
[ -d /dev/vc ] && ttydev=/dev/vc/
# Force linux keycodes for PPC.
if [ -f /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes ]; then
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
fi
ebegin "Loading key mappings"
local loadkeys_uni= wkeys=
yesno ${unicode} && loadkeys_uni="--unicode"
yesno ${windowskeys} && wkeys="windowkeys"
loadkeys -q ${loadkeys_uni} ${wkeys} ${keymap} ${extended_keymaps}
eend $? "Error loading key mappings" || return $?
if yesno ${fix_euro}; then
# Fix some fonts displaying the Euro, #173528.
echo "altgr keycode 18 = U+20AC" | loadkeys -q
local wkeys= kmode="-a" msg="ASCII"
if yesno $unicode; then
kmode="-u"
msg="UTF-8"
fi
yesno $windowkeys && wkeys="windowkeys"
# Set terminal encoding to either ASCII or UNICODE.
# See utf-8(7) for more information.
local termencoding="%@" termmsg="ASCII" kmode="-a"
if yesno ${unicode}; then
dumpkeys ${dumpkeys_charset:+-c} \
${dumpkeys_charset} | loadkeys --unicode
termencoding="%G"
termmsg="UTF-8"
kmode="-u"
fi
ebegin "Setting terminal encoding to" ${termmsg}
ebegin "Setting keyboard mode [$msg]"
n=1
while [ ${n} -le "${ttyn}" ]; do
printf "\033%s" "${termencoding}" >"${ttydev}${n}"
kbd_mode "${kmode}" -C "${ttydev}${n}"
n=$((${n} + 1))
while [ $n -le $ttyn ]; do
kbd_mode $kmode -C $ttydev$n
n=$(($n + 1))
done
eend 0
ebegin "Loading key mappings [$keymap]"
loadkeys -q $wkeys $keymap $extended_keymaps
eend $? "Error loading key mappings" || return $?
if yesno $fix_euro; then
ebegin "Fixing font for euro symbol"
# Fix some fonts displaying the Euro, #173528.
echo "altgr keycode 18 = U+20AC" | loadkeys -q
eend $?
fi
# Save the keymapping for use immediately at boot
if [ -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console
dumpkeys >"$RC_LIBEXECDIR"/console/keymap
fi
}

22
init.d/killprocs.in Normal file
View File

@@ -0,0 +1,22 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Kill all processes so we can unmount disks cleanly."
depend()
{
keyword -prefix
}
start()
{
ebegin "Terminating remaining processes"
killall5 -15
sleep 1
eend 0
ebegin "Killing remaining processes"
killall5 -9
sleep 1
eend 0
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Executes user commands in /etc/conf.d/local"
@@ -7,7 +7,7 @@ description="Executes user commands in /etc/conf.d/local"
depend()
{
after *
keyword notimeout
keyword -timeout
}
start()
@@ -18,11 +18,6 @@ start()
local_start
fi
# Support old configs
if [ -e @SYSCONFDIR@/conf.d/local.start ]; then
. @SYSCONFDIR@/conf.d/local.start
fi
eend $? "Failed to start local"
}
@@ -34,10 +29,5 @@ stop()
local_stop
fi
# Support old configs
if [ -e @SYSCONFDIR@/conf.d/local.stop ]; then
. @SYSCONFDIR@/conf.d/local.stop
fi
eend $? $"Failed to stop local"
eend $? "Failed to stop local"
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Mounts disks and swap according to /etc/fstab."
@@ -8,19 +8,22 @@ depend()
{
need fsck
use lvm modules mtab
keyword nojail noopenvz noprefix novserver
keyword -jail -openvz -prefix -vserver -lxc
}
start()
{
# Mount local filesystems in /etc/fstab.
local types="noproc" x=
for x in ${net_fs_list}; do
local types="noproc" x= no_netdev=
for x in $net_fs_list; do
types="${types},${x}"
done
if [ "$RC_UNAME" = Linux ]; then
no_netdev="-O no_netdev"
fi
ebegin "Mounting local filesystems"
mount -at "${types}"
mount -at "$types" $no_netdev
eend $? "Some local filesystem failed to mount"
# Always return 0 - some local mounts may not be critical for boot
@@ -30,40 +33,34 @@ start()
stop()
{
# We never unmount / or /dev or $RC_SVCDIR
local x= no_umounts="/|/dev|/dev/.*|${RC_SVCDIR}"
local x= no_umounts_r="/|/dev|/dev/.*|${RC_SVCDIR}"
no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib|/libexec"
# RC_NO_UMOUNTS is an env var that can be set by plugins
OIFS=${IFS} SIFS=${IFS-y}
OIFS=$IFS SIFS=${IFS-y}
IFS=$IFS:
for x in ${no_umounts} ${RC_NO_UMOUNTS}; do
no_umounts="${no_umounts}|${x}"
for x in $no_umounts $RC_NO_UMOUNTS; do
no_umounts_r="$no_umounts_r|$x"
done
if [ "${SIFS}" = "y" ]; then
if [ "$SIFS" = y ]; then
IFS=$OIFS
else
unset IFS
fi
if [ "${RC_UNAME}" = "Linux" ]; then
no_umounts="${no_umounts}|/proc|/proc/.*|/sys|/sys/.*"
if [ "$RC_UNAME" = Linux ]; then
no_umounts_r="$no_umounts_r|/proc|/proc/.*|/sys|/sys/.*"
fi
no_umounts="^(${no_umounts})$"
no_umounts_r="^($no_umounts_r)$"
# Flush all pending disk writes now
sync; sync
# Try to unmount all tmpfs filesystems not in use, else a deadlock may
# occure, bug #13599.
# As $RC_SVCDIR may also be tmpfs we cd to it to lock it
cd "${RC_SVCDIR}"
umount -a -t tmpfs 2>/dev/null
. "${RC_LIBDIR}"/sh/rc-mount.sh
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
# Umount loopback devices
einfo "Unmounting loopback devices"
eindent
do_unmount "umount -d" --skip-point-regex "${no_umounts}" \
do_unmount "umount -d" --skip-point-regex "$no_umounts_r" \
--node-regex "^/dev/loop"
eoutdent
@@ -72,12 +69,12 @@ stop()
einfo "Unmounting filesystems"
eindent
local fs=
for x in ${net_fs_list}; do
fs="${fs}${fs:+|}${x}"
for x in $net_fs_list; do
fs="$fs${fs:+|}$x"
done
[ -n "${fs}" ] && fs="^(${fs})$"
do_unmount "umount" --skip-point-regex "${no_umounts}" \
${fs:+--skip-fstype-regex} ${fs} --nonetdev
[ -n "$fs" ] && fs="^($fs)$"
do_unmount umount --skip-point-regex "$no_umounts_r" \
${fs:+--skip-fstype-regex} $fs --nonetdev
eoutdent
return 0

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
extra_commands="restore"
@@ -7,7 +7,7 @@ extra_commands="restore"
depend()
{
need localmount
keyword nojail noprefix
keyword -jail -prefix
}
restore()
@@ -17,8 +17,8 @@ restore()
eindent
for mixer in /dev/mixer*; do
if [ -r "/var/db/${mixer#/dev/}-state" ]; then
vebegin "${mixer}"
mixer -f "${mixer}" \
vebegin "$mixer"
mixer -f "$mixer" \
$(cat "/var/db/${mixer#/dev/}-state") >/dev/null
veend $?
: $((retval += $?))
@@ -37,11 +37,11 @@ stop()
ebegin "Saving mixer settings"
eindent
for mixer in /dev/mixer*; do
vebegin "${mixer}"
mixer -f "${mixer}" -s >/var/db/"${mixer#/dev/}"-state
vebegin "$mixer"
mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state
veend $?
: $((retval += $?))
done
eoutdent
eend ${retval}
eend $retval
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Loads a user defined list of kernel modules."
@@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules."
depend()
{
use isapnp
keyword noopenvz noprefix novserver
keyword -openvz -prefix -vserver -lxc
}
start()
@@ -23,36 +23,41 @@ start()
x=${KV#*.*.}
local KV_MICRO=${x%%-*}
local list= x= xx= y= args= cnt=0
for x in "${KV}" \
${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \
${KV_MAJOR}.${KV_MINOR} \
local list= x= xx= y= args= mpargs= cnt=0 a=
for x in "$KV" \
$KV_MAJOR.$KV_MINOR.$KV_MICRO \
$KV_MAJOR.$KV_MINOR \
; do
eval list=\$modules_$(shell_var "${x}")
[ -n "${list}" ] && break
eval list=\$modules_$(shell_var "$x")
[ -n "$list" ] && break
done
[ -z "${list}" ] && list=${modules}
[ -z "$list" ] && list=$modules
for x in ${list}; do
ebegin "Loading module ${x}"
xx=$(shell_var "${x}")
for y in "${KV}" \
${KV_MAJOR}.${KV_MINOR}.${KV_MICRO} \
${KV_MAJOR}.${KV_MINOR} \
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")
for y in "$KV" \
$KV_MAJOR.$KV_MINOR.$KV_MICRO \
$KV_MAJOR.$KV_MINOR \
; do
eval args=\$module_${xx}_args_$(shell_var "${y}")
eval args=\$module_${aa}_args_$(shell_var "$y")
[ -n "${args}" ] && break
eval args=\$module_${xx}_args_$(shell_var "$y")
[ -n "${args}" ] && break
done
[ -z "${args}" ] && eval args=\$module_${xx}_args
eval modprobe -q "${x}" "${args}"
eend $? "Failed to load ${x}" && cnt=$((${cnt} + 1))
[ -z "$args" ] && eval args=\$module_${aa}_args
[ -z "$args" ] && eval args=\$module_${xx}_args
eval modprobe -q "$mpargs" "$x" "$args"
eend $? "Failed to load $x" && cnt=$(($cnt + 1))
done
einfo "Autoloaded ${cnt} module(s)"
# Just in case a sysadmin prefers generic symbolic links in
# /lib/modules/boot for boot time modules we will load these modules
[ -n "$(modprobe -l -t boot)" ] && modprobe -a -t boot \* 2>/dev/null
# Above test clobbers the return
return 0
einfo "Autoloaded $cnt module(s)"
}

46
init.d/mount-ro.in Normal file
View File

@@ -0,0 +1,46 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Re-mount filesytems read-only for a clean reboot."
depend()
{
need killprocs savecache
keyword -prefix -openvz -vserver -lxc
}
start()
{
# Flush all pending disk writes now
sync; sync
ebegin "Remounting remaining filesystems read-only"
# We need the do_unmount function
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
eindent
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs=
m="$m|/bin|/sbin|/lib|/libexec"
# RC_NO_UMOUNTS is an env var that can be set by plugins
local OIFS=$IFS SIFS=${IFS-y} IFS=$IFS
IFS=$IFS:
for x in $no_umounts $RC_NO_UMOUNTS; do
m="$m|$x"
done
if [ "$SIFS" = y ]; then
IFS=$OIFS
else
unset IFS
fi
m="^($m)$"
fs=
for x in $net_fs_list; do
fs="$fs${fs:+|}$x"
done
[ -n "$fs" ] && fs="^($fs)$"
do_unmount "umount -r" \
--skip-point-regex "$m" \
${fs:+--skip-fstype-regex} $fs --nonetdev
eoutdent
eend $?
}

View File

@@ -1,62 +1,62 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
mouse=${RC_SVCNAME##*.}
if [ -n "${name}" -a "${mouse}" != "moused" ]; then
moused_device=/dev/"${mouse}"
pidfile=/var/run/moused-"${mouse}".pid
if [ -n "$mouse" -a "$mouse" != "moused" ]; then
moused_device=/dev/"$mouse"
pidfile=/var/run/moused-"$mouse".pid
else
pidfile=/var/run/moused.pid
fi
name="Console Mouse Daemon"
[ -n "${moused_device}" ] && name="${name} (${moused_device})"
[ -n "$moused_device" ] && name="$name ($moused_device)"
depend()
{
need localmount
after bootmisc
keyword nojail noprefix
keyword -jail -prefix
}
start()
{
ebegin "Starting ${name}"
ebegin "Starting $name"
if [ -z "${moused_device}" ]; then
if [ -z "$moused_device" ]; then
local dev=
for dev in /dev/psm[0-9]* /dev/ums[0-9]*; do
[ -c "${dev}" ] || continue
[ -c "$dev" ] || continue
[ -e /var/run/moused-"${dev##*/}".pid ] && continue
moused_device=${dev}
moused_device=$dev
eindent
einfo "Using mouse on ${moused_device}"
einfo "Using mouse on $moused_device"
eoutdent
break
done
fi
if [ -z "${moused_device}" ]; then
if [ -z "$moused_device" ]; then
eend 1 "No mouse device found"
return 1
fi
local args=
eval args=\$moused_args_${moused_device##*/}
[ -z "${args}" ] && args=${moused_args}
[ -z "$args" ] && args=$moused_args
start-stop-daemon --start --exec /usr/sbin/moused \
--pidfile "${pidfile}" \
-- ${args} -p "${moused_device}" -I "${pidfile}"
--pidfile "$pidfile" \
-- $args -p "$moused_device" -I "$pidfile"
local retval=$?
if [ ${retval} = 0 ]; then
if [ $retval = 0 ]; then
local ttyv=
for ttyv in /dev/ttyv*; do
vidcontrol < "${ttyv}" -m on
vidcontrol < "$ttyv" -m on
: $((retval+= $?))
done
fi
eend ${retval} "Failed to start moused"
eend $retval "Failed to start moused"
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Update /etc/mtab to match what the kernel knows about"
@@ -7,11 +7,17 @@ description="Update /etc/mtab to match what the kernel knows about"
depend()
{
need root
keyword noprefix
keyword -prefix
}
start()
{
# /etc/mtab could be a symlink to /proc/mounts
if [ ! -w /etc/mtab -a -L /etc/mtab ]; then
eeinfo "Skipping mtab update (non writeable symlink)"
return 0
fi
ebegin "Updating /etc/mtab"
if ! echo 2>/dev/null >/etc/mtab; then
ewend 1 "/etc/mtab is not updateable"

View File

@@ -1,8 +1,8 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
MODULESDIR="${RC_LIBDIR}/net"
MODULESDIR="${RC_LIBEXECDIR}/net"
MODULESLIST="${RC_SVCDIR}/nettree"
_config_vars="config routes"
@@ -21,14 +21,14 @@ depend()
need localmount
after bootmisc
provide net
keyword nojail noprefix novserver
keyword -jail -prefix -vserver
case "${IFACE}" in
lo|lo0);;
*) after net.lo net.lo0;;
esac
if type depend_${IFVAR} >/dev/null 2>&1; then
if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
depend_${IFVAR}
fi
@@ -344,7 +344,7 @@ _load_modules()
# Wrap our provides
local f=
for f in pre_start start post_start; do
eval "${provides}_${f}() { type ${mod}_${f} >/dev/null 2>&1 || return 0; ${mod}_${f} \"\$@\"; }"
eval "${provides}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done
eval module_${mod}_provides="${provides}"
@@ -358,7 +358,7 @@ _load_modules()
eval x=\$module_${mod}_provides
[ -z "${x}" ] && continue
for f in pre_start start post_start; do
eval "${x}_${f}() { type ${mod}_${f} >/dev/null 2>&1 || return 0; ${mod}_${f} \"\$@\"; }"
eval "${x}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done
eval module_${x}_providedby="${mod}"
;;
@@ -445,6 +445,35 @@ _load_config()
config_index=-1
}
# Support functions
_run_if()
{
local cmd=$1 iface=$2 ifr=${IFACE} ifv=${IFVAR}
# Ensure that we don't stamp on real values
local IFACE= IFVAR=
shift
if [ -n "${iface}" ]; then
IFACE="${iface}"
[ "${iface}" != "${ifr}" ] && IFVAR=$(shell_var "${IFACE}")
else
IFACE=${ifr}
IFVAR=${ifv}
fi
${cmd}
}
interface_exists()
{
_run_if _exists "$@"
}
interface_up()
{
_run_if _up "$@"
}
interface_down()
{
_run_if _down "$@"
}
start()
{
local IFACE=${RC_SVCNAME#*.} oneworked=false module=
@@ -462,7 +491,7 @@ start()
# We up the iface twice if we have a preup to ensure it's up if
# available in preup and afterwards incase the user inadvertently
# brings it down
if type preup >/dev/null 2>&1; then
if [ "$(command -v preup)" = "preup" ]; then
_up 2>/dev/null
ebegin "Running preup"
eindent
@@ -473,7 +502,7 @@ start()
_up 2>/dev/null
for module in ${MODULES}; do
if type "${module}_pre_start" >/dev/null 2>&1; then
if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then
${module}_pre_start || exit $?
fi
done
@@ -522,7 +551,7 @@ start()
null) :;;
[0-9]*|*:*) _add_address ${config};;
*)
if type "${config}_start" >/dev/null 2>&1; then
if [ "$(command -v "${config}_start")" = "${config}_start" ]; then
"${config}"_start
else
eerror "nothing provides \`${config}'"
@@ -547,7 +576,7 @@ start()
done
if ! ${oneworked}; then
if type failup >/dev/null 2>&1; then
if [ "$(command -v failup)" = "failup" ]; then
ebegin "Running failup"
eindent
failup
@@ -566,7 +595,7 @@ ${routes}"
fi
fi
local OIFS="${IFS}" SIFS=${IFS-y}
local OIFS="${IFS}" SIFS="${IFS-y}"
local IFS="$__IFS"
for cmd in ${routes}; do
unset IFS
@@ -581,7 +610,8 @@ ${routes}"
-net" "*|-host" "*);;
*" "netmask" "*) cmd="-net ${cmd}";;
*.*.*.*/32*) cmd="-host ${cmd}";;
*.*.*.*/*|0.0.0.0" "*|default" "*) cmd="-net ${cmd}";;
*.*.*.*/*|0.0.0.0|0.0.0.0" "*) cmd="-net ${cmd}";;
default|default" "*) cmd="-net ${cmd}";;
*) cmd="-host ${cmd}";;
esac
if ${hidefirstroute}; then
@@ -600,12 +630,12 @@ ${routes}"
fi
for module in ${MODULES}; do
if type "${module}_post_start" >/dev/null 2>&1; then
if [ "$(command -v "${module}_post_start")" = "${module}_post_start" ]; then
${module}_post_start || exit $?
fi
done
if type postup >/dev/null 2>&1; then
if [ "$(command -v postup)" = "postup" ]; then
ebegin "Running postup"
eindent
postup
@@ -628,7 +658,7 @@ stop()
_load_modules false
fi
if type predown >/dev/null 2>&1; then
if [ "$(command -v predown)" = "predown" ]; then
ebegin "Running predown"
eindent
predown || return 1
@@ -641,35 +671,40 @@ stop()
fi
for module in ${MODULES}; do
if type "${module}_pre_stop" >/dev/null 2>&1; then
if [ "$(command -v "${module}_pre_stop")" = "${module}_pre_stop" ]; then
${module}_pre_stop || exit $?
fi
done
for module in ${MODULES}; do
if type "${module}_stop" >/dev/null 2>&1; then
if [ "$(command -v "${module}_stop")" = "${module}_stop" ]; then
${module}_stop
fi
done
# Only delete addresses for non PPP interfaces
if ! type is_ppp >/dev/null 2>&1 || ! is_ppp; then
# Only delete addresses for interfaces that exist
if _exists; then
_delete_addresses "${IFACE}"
fi
for module in ${MODULES}; do
if type "${module}_post_stop" >/dev/null 2>&1; then
if [ "$(command -v "${module}_post_stop")" = "${module}_post_stop" ]; then
${module}_post_stop
fi
done
! yesno ${IN_BACKGROUND} && \
[ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ] && \
_down 2>/dev/null
# If not in background, and not loopback then bring the interface down
# unless overridden.
if ! yesno ${IN_BACKGROUND} && \
[ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
eval module=\$ifdown_${IFVAR}
module=${module:-${ifdown:-YES}}
yesno ${module} && _down 2>/dev/null
fi
type resolvconf >/dev/null 2>&1 && resolvconf -d "${IFACE}" 2>/dev/null
if type postdown >/dev/null 2>&1; then
if [ "$(command -v "postdown")" = "postdown" ]; then
ebegin "Running postdown"
eindent
postdown

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Mounts network shares according to /etc/fstab."
@@ -11,7 +11,7 @@ need_portmap()
"
set -- $(fstabinfo --options --fstype nfs,nfs4)
for opts; do
case ,${opts}, in
case ,$opts, in
*,noauto,*|*,nolock,*);;
*) return 0;;
esac
@@ -23,18 +23,19 @@ depend()
{
# Only have portmap as a dependency if there is a nfs mount in fstab
# that is set to mount at boot
local pmap=""
local pmap=
if need_portmap; then
pmap="${pmap} rpc.statd"
pmap="rpc.statd"
[ -x @SYSCONFDIR@/init.d/rpcbind ] \
&& pmap="rpcbind" \
|| pmap="portmap"
&& pmap="$pmap rpcbind" \
|| pmap="$pmap portmap"
fi
config /etc/fstab
need net ${pmap}
use afc-client amd autofs dns nfs nfsmount portmap rpcbind rpc.statd
keyword nojail noopenvz noprefix novserver
need net $pmap
use afc-client amd autofs openvpn
use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd
keyword -jail -prefix -vserver
}
start()
@@ -42,9 +43,9 @@ start()
local myneed= myuse= pmap="portmap" nfsmounts=
[ -x @SYSCONFDIR@/init.d/rpcbind ] && pmap="rpcbind"
local x= fs=
for x in ${net_fs_list}; do
case "${x}" in
local x= fs= rc=
for x in $net_fs_list; do
case "$x" in
nfs|nfs4)
# If the nfsmount script took care of the nfs
# filesystems, then there's no point in trying
@@ -54,17 +55,22 @@ start()
# Only try to mount NFS filesystems if portmap was
# started. This is to fix "hang" problems for new
# users who do not add portmap to the default runlevel.
if need_portmap && ! service_started "${pmap}"; then
if need_portmap && ! service_started "$pmap"; then
continue
fi
;;
esac
fs="${fs}${fs:+,}${x}"
fs="$fs${fs:+,}$x"
done
ebegin "Mounting network filesystems"
mount -at ${fs}
ewend $? "Could not mount all network filesystems"
mount -at $fs
rc=$?
if [ "$RC_UNAME" = Linux ]; then
mount -a -O _netdev
rc=$?
fi
ewend $rc "Could not mount all network filesystems"
return 0
}
@@ -73,24 +79,28 @@ stop()
local x= fs=
ebegin "Unmounting network filesystems"
. "${RC_LIBDIR}/sh/rc-mount.sh"
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
for x in ${net_fs_list}; do
fs="${fs}${fs:+,}${x}"
for x in $net_fs_list; do
fs="$fs${fs:+,}$x"
done
if [ -n "${fs}" ]; then
umount -at ${fs} || eerror "Failed to simply unmount filesystems"
if [ -n "$fs" ]; then
umount -at $fs || eerror "Failed to simply unmount filesystems"
fi
eindent
fs=
for x in ${net_fs_list}; do
fs="${fs}${fs:+|}${x}"
for x in $net_fs_list; do
fs="$fs${fs:+|}$x"
done
[ -n "${fs}" ] && fs="^(${fs})$"
do_unmount "umount" ${fs:+--fstype-regex} ${fs} --netdev
[ -n "$fs" ] && fs="^($fs)$"
do_unmount umount ${fs:+--fstype-regex} $fs --netdev
retval=$?
eoutdent
eend ${retval} "Failed to unmount network filesystems"
if [ "$RC_UNAME" = Linux ]; then
umount -a -O _netdev
retval=$?
fi
eend $retval "Failed to unmount network filesystems"
}

352
init.d/network.in Normal file
View File

@@ -0,0 +1,352 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# This script was inspired by the equivalent rc.d network from NetBSD.
description="Configures network interfaces."
__nl="
"
depend()
{
need localmount
after bootmisc
provide net
keyword -jail -prefix -vserver
}
uniqify()
{
local result= i=
for i; do
case " $result " in
*" $i "*);;
*) result="$result $i";;
esac
done
echo "${result# *}"
}
reverse()
{
local result= i=
for i; do
result="$i $result"
done
echo "${result# *}"
}
sys_interfaces()
{
case "$RC_UNAME" in
Linux)
local w= rest= i= cmd=$1
while read w rest; do
i=${w%%:*}
[ "$i" != "$w" ] || continue
if [ "$cmd" = u ]; then
ifconfig "$i" | grep -q "[ ]*UP" || continue
fi
printf "%s " "$i"
done </proc/net/dev
;;
*)
ifconfig -l$1
;;
esac
}
tentative()
{
local inet= address= rest=
case "$RC_UNAME" in
Linux)
[ -x /sbin/ip ] || [ -x /bin/ip ] || return 1
[ -n "$(ip -f inet6 addr show tentative)" ]
;;
*)
local inet= address= rest=
LC_ALL=C ifconfig -a | while read inet address rest; do
case "${inet}" in
inet6)
case "${rest}" in
*" "tentative*) return 2;;
esac
;;
esac
done
[ $? = 2 ]
;;
esac
}
auto_interfaces()
{
local ifs= c= f=
case "$RC_UNAME" in
NetBSD)
for c in $(ifconfig -C 2>/dev/null); do
for f in /etc/ifconfig.${c}[0-9]*; do
[ -f "$f" ] && printf "%s" "$f{##*.} "
done
done
;;
*)
for f in /etc/ifconfig.*; do
[ -f "$f" ] && printf "%s" "${f##*.} "
done
for f in /etc/ip.*; do
[ -f "$f" ] && printf "%s" "${f##*.} "
done
;;
esac
echo
}
interfaces()
{
uniqify $(sys_interfaces "$@") $interfaces $(auto_interfaces)
}
dumpargs()
{
local f="$1"
shift
case "$@" in
'') [ -f "$f" ] && cat "$f";;
*"$__nl"*) echo "$@";;
*)
(
set -o noglob
IFS=';'; set -- $@
IFS="$__nl"; echo "$*"
);;
esac
}
intup=false
runip()
{
local int="$1" err=
shift
# Ensure we have a valid broadcast address
case "$@" in
*" broadcast "*|*" brd "*) ;;
*:*) ;; # Ignore IPv6
*) set -- "$@" brd +;;
esac
err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
if [ -z "$err" ]; then
# ip does not bring up the interface when adding addresses
if ! $intup; then
ip link set "$int" up
intup=true
fi
return 0
fi
if [ "$err" = "RTNETLINK answers: File exists" ]; then
ip address del "$@" dev "$int" 2>/dev/null
fi
# Localise the error
ip address add "$@" dev "$int"
}
routeflush()
{
if [ "$RC_UNAME" = Linux ]; then
if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
ip route flush scope global
ip route delete default 2>/dev/null
else
# Sadly we also delete some link routes, but
# this cannot be helped
local dest= gate= net= flags= rest=
route -n | while read dest gate net flags rest; do
[ -z "$net" ] && continue
case "$dest" in
[0-9]*) ;;
*) continue;;
esac
local xtra= netmask="netmask $net"
case "$flags" in
U) continue;;
*H*) flags=-host; netmask=;;
*!*) flags=-net; xtra=reject;;
*) flags=-net;;
esac
route del $flags $dest $netmask $xtra
done
# Erase any default dev eth0 routes
route del default 2>/dev/null
fi
else
route -qn flush
fi
}
runargs()
{
dumpargs "$@" | while read -r args; do
case "$args" in
''|"#"*) ;;
*)
(
eval vebegin "${args#*!}"
eval "${args#*!}"
veend $?
);;
esac
done
}
start()
{
local cr=0 r= int= intv= cmd= args= upcmd=
if [ -z "$domainname" -a -s /etc/defaultdomain ]; then
domainname=$(cat /etc/defaultdomain)
fi
if [ -n "$domainname" ]; then
ebegin "Setting NIS domainname: $domainname"
domainname "$domainname"
eend $?
fi
einfo "Starting network"
routeflush
if [ "$RC_UNAME" = "Linux" ]; then
ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1
route add -net 127.0.0.0 netmask 255.0.0.0 \
gw 127.0.0.1 reject 2>/dev/null
else
ifconfig lo0 127.0.0.1 netmask 255.0.0.0 || cr=1
route -q add -inet 127.0.0.0 -netmask 255.0.0.0 \
127.0.0.1 -reject || cr=1
fi
eindent
for int in $(interfaces); do
local func= cf=
intv=$(shell_var "$int")
eval upcmd=\$ifup_$intv
for func in ip ifconfig; do
eval cmd=\$${func}_$intv
if [ -n "$cmd" -o -f /etc/"$func.$int" ]; then
cf=/etc/"$func.$int"
break
fi
done
[ -n "$cf" -o -n "$upcmd" -o \
-f /etc/ifup."$int" -o -f "$cf" ] || continue
veinfo "$int"
case "$func" in
ip) func=runip; intup=false;;
esac
eindent
runargs /etc/ifup."$int" "$upcmd"
r=0
dumpargs "$cf" "$cmd" | while read -r args; do
case "$args" in
''|"#"*) ;;
"!"*)
(
eval vebegin "${args#*!}"
eval "${args#*!}"
veend $?
);;
*)
(
set -o noglob
eval set -- "$args"
vebegin "$@"
$func "$int" "$@"
veend $?
);;
esac
done
eoutdent
done
eoutdent
eend $cr
# Wait for any inet6 tentative addresses
r=5
while [ $r -gt 0 ]; do
tentative || break
[ $r = 5 ] && vebegin "Waiting for tentative addresses"
sleep 1
r=$(($r - 1))
done
if [ $r != 5 ]; then
[ $r != 0 ]
veend $?
fi
if [ -n "$defaultroute" ]; then
ebegin "Setting default route $defaultroute"
route add default $defaultroute
eend $?
elif [ -n "$defaultiproute" ]; then
ebegin "Setting default route $defaultiproute"
ip route add default $defaultiproute
eend $?
fi
if [ -n "$defaultroute6" ]; then
ebegin "Setting default route $defaultroute6"
if [ "$RC_UNAME" = Linux ]; then
routecmd="route -A inet6 add"
else
routecmd="route -inet6 add"
fi
$routecmd default $defaultroute6
eend $?
elif [ -n "$defaultiproute6" ]; then
ebegin "Setting default route $defaultiproute6"
ip -f inet6 route add default $defaultiproute6
eend $?
fi
return 0
}
stop()
{
# Don't stop the network at shutdown.
# We don't use the noshutdown keyword so that we are started again
# correctly if we go back to multiuser.
yesno ${shutdown_network:-YES} && yesno $RC_GOINGDOWN && return 0
local int= intv= cmd= downcmd= r=
einfo "Stopping network"
routeflush
eindent
for int in $(reverse $(interfaces u)); do
intv=$(shell_var "$int")
eval downcmd=\$ifdown_$intv
eval cmd=\$ip_$intv
[ -z "$cmd" ] && eval cmd=\$ifconfig_$intv
if [ -n "$cmd" -o -f /etc/ip."$int" -o \
-f /etc/ifconfig."$int" -o \
-n "$downcmd" -o -f /etc/ifdown."$int" ];
then
veinfo "$int"
runargs /etc/ifdown."$int" "$downcmd"
if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
# We need to do this, otherwise we may
# fail to add things correctly on restart
ip address flush dev "$int" 2>/dev/null
fi
ifconfig "$int" down 2>/dev/null
ifconfig "$int" destroy 2>/dev/null
fi
done
eoutdent
eend 0
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
required_files="/etc/newsyslog.conf"
@@ -7,12 +7,12 @@ required_files="/etc/newsyslog.conf"
depend()
{
need localmount
keyword noprefix
keyword -prefix
}
start()
{
ebegin "Creating and/or trimming log files"
newsyslog -s ${newsyslog_args}
newsyslog -s $newsyslog_args
eend $?
}

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/nscd
command_args="${nscd_args}"
command_args=$nscd_args
pidfile=/var/run/nscd.pid
name="Name Service Cache Daemon"
@@ -16,7 +16,7 @@ depend() {
}
flush() {
ebegin "Flushing ${name}"
ebegin "Flushing $name"
nscd -I all >/dev/null
eend $?
}

View File

@@ -1,15 +1,15 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Turns numlock on for the consoles."
ttyn=${rc_tty_number:-${RC_TTY_NUMBER}:-12}
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend()
{
need localmount
keyword noopenvz noprefix novserver
keyword -openvz -prefix -vserver -lxc
}
_setleds()
@@ -19,12 +19,12 @@ _setleds()
local dev=/dev/tty t= i=1 retval=0
[ -d /dev/vc ] && dev=/dev/vc/
while [ ${i} -le ${ttyn} ]; do
setleds -D "$1"num < ${dev}${i} || retval=1
i=$((${i} + 1))
while [ $i -le $ttyn ]; do
setleds -D "$1"num < $dev$i || retval=1
i=$(($i + 1))
done
return ${retval}
return $retval
}
start()

View File

@@ -1,54 +1,54 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
name="Packet Filter"
pf_conf=${pf_conf:-${pf_rules:-/etc/pf.conf}}
required_files=${pf_conf}
: ${pf_conf:=${pf_rules:-/etc/pf.conf}}
required_files=$pf_conf
extra_commands="checkconfig showstatus"
extra_started_commands="reload"
depend() {
need localmount
keyword nojail noprefix
keyword -jail -prefix
}
start()
{
ebegin "Starting ${name}"
ebegin "Starting $name"
if type kldload >/dev/null 2>&1; then
kldload pf 2>/dev/null
fi
pfctl -q -F all
pfctl -q -f "${pf_conf}" ${pf_args}
pfctl -q -f "$pf_conf" $pf_args
pfctl -q -e
eend $?
}
stop()
{
ebegin "Stopping ${name}"
ebegin "Stopping $name"
pfctl -q -d
eend $?
}
checkconfig()
{
ebegin "Checking ${name} configuration"
pfctl -n -f "${pf_conf}"
ebegin "Checking $name configuration"
pfctl -n -f "$pf_conf"
eend $?
}
reload()
{
ebegin "Reloading ${name} rules."
pfctl -q -n -f "${pf_conf}" && \
ebegin "Reloading $name rules."
pfctl -q -n -f "$pf_conf" && \
{
# Flush everything but existing state entries that way when
# rules are read in, it doesn't break established connections.
pfctl -q -Fnat -Fqueue -Frules -FSources -Finfo -FTables -Fosfp
pfctl -q -f "${pf_conf}" ${pf_args}
pfctl -q -f "$pf_conf" $pf_args
}
eend $?
}

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/powerd
command_args=${powerd_args}
command_args=$powerd_args
pidfile=/var/run/powerd.pid
name="Power Control Daemon"
@@ -12,16 +12,16 @@ depend()
need localmount
use logger
after bootmisc
keyword nojail noprefix
keyword -jail -prefix
}
start_pre()
{
if [ -n "${powerd_battery_mode}" ]; then
command_args="${command_args} -b ${powerd_battery_mode}"
if [ -n "$powerd_battery_mode" ]; then
command_args="$command_args -b $powerd_battery_mode"
fi
if [ -n "${powerd_ac_mode}" ]; then
command_args="${command_args} -a ${powerd_ac_mode}"
command_args="$command_args -a $powerd_ac_mode"
fi
}
@@ -29,7 +29,7 @@ stop_post()
{
local level=$(sysctl -n dev.cpu.0.freq_levels |
sed -e 's:/.*::')
if [ -n "${level}" ]; then
sysctl dev.cpu.0.freq="${level}" >/dev/null
if [ -n "$level" ]; then
sysctl dev.cpu.0.freq="$level" >/dev/null
fi
}

View File

@@ -1,18 +1,19 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Mounts misc filesystems in /proc."
depend()
{
use modules devfs
need localmount
keyword noopenvz noprefix novserver
keyword -openvz -prefix -vserver -lxc
}
start()
{
# Make sure we insert usbcore if its a module
# Make sure we insert usbcore if it's a module
if [ -f /proc/modules -a ! -d /proc/bus/usb ]; then
modprobe -q usbcore
fi
@@ -24,13 +25,13 @@ start()
# while older kernels have 'usbdevfs'.
if [ -d /proc/bus/usb -a ! -e /proc/bus/usb/devices ]; then
local usbfs=$(grep -Fow usbfs /proc/filesystems ||
grep -Fow usbdevfs /proc/filesystems)
if [ -n "${usbfs}" ]; then
ebegin "Mounting USB device filesystem (${usbfs})"
grep -Fow usbdevfs /proc/filesystems)
if [ -n "$usbfs" ]; then
ebegin "Mounting USB device filesystem [$usbfs]"
local usbgid="$(getent group usb | \
sed -e 's/.*:.*:\(.*\):.*/\1/')"
mount -t ${usbfs} \
-o ${usbgid:+devmode=0664,devgid=${usbgid},}noexec,nosuid \
mount -t $usbfs \
-o ${usbgid:+devmode=0664,devgid=$usbgid,}noexec,nosuid \
usbfs /proc/bus/usb
eend $?
fi
@@ -39,7 +40,7 @@ start()
# Setup Kernel Support for the NFS daemon status
if [ -d /proc/fs/nfsd ] && ! mountinfo -q /proc/fs/nfsd; then
if grep -qs nfsd /proc/filesystems; then
ebegin "Mounting nfsd filesystem"
ebegin "Mounting NFS filesystem"
mount -t nfsd -o nodev,noexec,nosuid \
nfsd /proc/fs/nfsd
eend $?
@@ -47,7 +48,8 @@ start()
fi
# Setup Kernel Support for miscellaneous Binary Formats
if [ -d /proc/sys/fs/binfmt_misc ] && ! mountinfo -q /proc/sys/fs/binfmt_misc; then
if [ -d /proc/sys/fs/binfmt_misc ] \
&& ! mountinfo -q /proc/sys/fs/binfmt_misc; then
if grep -qs binfmt_misc /proc/filesystems; then
ebegin "Mounting misc binary format filesystem"
mount -t binfmt_misc -o nodev,noexec,nosuid \
@@ -56,26 +58,6 @@ start()
fi
fi
# Setup Kernel Support for securityfs
if [ -d /sys/kernel/security ] && ! mountinfo -q /sys/kernel/security; then
if grep -qs securityfs /proc/filesystems; then
ebegin "Mounting security filesystem"
mount -t securityfs -o nodev,noexec,nosuid \
securityfs /sys/kernel/security
eend $?
fi
fi
# Setup Kernel Support for debugfs
if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug; then
if grep -qs debugfs /proc/filesystems; then
ebegin "Mounting debug filesystem"
mount -t debugfs -o nodev,noexec,nosuid \
debugfs /sys/kernel/debug
eend $?
fi
fi
# Setup Kernel Support for SELinux
if [ -d /selinux ] && ! mountinfo -q /selinux; then
if grep -qs selinuxfs /proc/filesystems; then

View File

@@ -1,28 +1,23 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/rarpd
command_args="-f ${rarpd_args}"
command_args="-f $rarpd_args"
pidfile=/var/run/rarpd.pid
name="Reverse ARP Daemon"
required_files="/etc/ethers"
required_files=/etc/ethers
if [ -z "${rarpd_interface}" ]; then
command_args="${command_args} -a"
if [ -z "$rarpd_interface" ]; then
command_args="$command_args -a"
else
command_args="${command_args} ${rarpd_interface}"
command_args="$command_args $rarpd_interface"
fi
command_background="YES"
command_background=YES
depend()
{
need localmount
after bootmisc
if [ -z "${rarpd_interface}" ]; then
need net
else
net net."${rarpd_interface}"
fi
need net
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
depend()
@@ -7,34 +7,35 @@ depend()
need localmount net
after *
before local
keyword noprefix
keyword -prefix
}
start()
{
ebegin "Starting local rc services"
local svc= enabled= retval=0 service=
for svc in $(rcorder /etc/rc.d/* @PKG_PREFIX@/etc/rc.d/* 2>/dev/null); do
local svc= enabled= retval=0 service= pkgdir=
[ -n "@PKG_PREFIX@" ] && pkgdir="@PKG_PREFIX@/etc/rc.d/*"
for svc in $(rcorder /etc/rc.d/* $pkgdir 2>/dev/null); do
[ -x "$svc" ] || continue
service=${svc##*/}
# Skip these services
for s in cleartmp moused; do
[ "${s}" = "${service}" ] && continue 2
[ "$s" = "$service" ] && continue 2
done
# If we have an init script for this service, continue
rc-service --exists "${service}" && continue
rc-service --exists "$service" && continue
# Ensure that the users rc.conf will start us - ignore the defaults
# Ensure that the users rc.conf will start us
eval enabled=\$${svc##*/}_enable
yesno ${enabled} || yesno ${svc##*/} || continue
yesno $enabled || yesno ${svc##*/} || continue
# Good to go!
"$svc" start && started="${started} ${svc}"
"$svc" start && started="$started $svc"
: $((retval += $?))
done
service_set_value started "${started}"
service_set_value started "$started"
eend $retval "Some local rc services failed to start"
return 0
}
@@ -44,7 +45,7 @@ stop()
ebegin "Stopping local rc services"
local svc= retval=0
for svc in $(rcorder $(service_get_value started) 2>/dev/null | sort -r); do
"${svc}" stop
"$svc" stop
: $((retval += $?))
done
eend $retval "Some local rc services failed to stop"

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Mount the root fs read/write"
@@ -7,20 +7,26 @@ description="Mount the root fs read/write"
depend()
{
need fsck
keyword nojail noopenvz noprefix novserver
keyword -jail -openvz -prefix -vserver -lxc
}
start()
{
case ",$(fstabinfo -o /)," in
*,ro,*) return 0;;
esac
if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$
rm -f /.test.$$ /fastboot /forcefsck
return 0
fi
ebegin "Remounting root filesystem read/write"
case "${RC_UNAME}" in
case "$RC_UNAME" in
Linux) mount -n -o remount,rw /;;
*) mount -u -o rw /;;
esac
eend $? "Root filesystem could not be mounted read/write"
if eend $? "Root filesystem could not be mounted read/write"; then
rm -f /fastboot /forcefsck
fi
}

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/rpcbind
command_args=${rpcbind_args}
command_args=$rpcbind_args
name="RPC program number mapper"
depend()

32
init.d/savecache.in Normal file
View File

@@ -0,0 +1,32 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Saves the caches OpenRC uses to non volatile storage"
start()
{
if [ -e "$RC_SVCDIR"/clock-skewed ]; then
ewarn "WARNING: clock skew detected!"
if ! yesno "savecache_skewed"; then
eerror "Not saving deptree cache"
return 1
fi
fi
ebegin "Saving dependency cache"
if [ ! -d "$RC_LIBEXECDIR"/cache ]; then
rm -rf "$RC_LIBEXECDIR"/cache
if ! mkdir "$RC_LIBEXECDIR"/cache; then
eend $?
return $?
fi
fi
local save=
for x in deptree depconfig shutdowntime softlevel nettree rc.log; do
[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x"
done
if [ -n "$save" ]; then
cp -p $save "$RC_LIBEXECDIR"/cache 2>/dev/null
fi
eend $?
}

View File

@@ -1,5 +1,5 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Saves a kernel dump."
@@ -7,30 +7,30 @@ description="Saves a kernel dump."
depend()
{
need localmount
keyword nojail noprefix
keyword -jail -prefix
}
start()
{
local dump_dir=${dump_dir:-/var/crash}
if ! [ -d "${dump_dir}" ]; then
mkdir -p "${dump_dir}"
chmod 700 "${dump_dir}"
: ${dump_dir:=/var/crash}
if ! [ -d "$dump_dir" ]; then
mkdir -p "$dump_dir"
chmod 700 "$dump_dir"
fi
if [ "${RC_UNAME}" = "FreeBSD" ]; then
if [ "$RC_UNAME" = FreeBSD ]; then
# Don't quote ${dump_device}, so that if it's unset,
# savecore will check on the partitions listed in fstab
# without errors in the output
savecore -C "${dump_dir}" ${dump_device} >/dev/null
savecore -C "$dump_dir" $dump_device >/dev/null
else
ls "${dump_dir}"/bsd* > /dev/null 2>&1
ls "$dump_dir"/bsd* > /dev/null 2>&1
fi
[ $? = 0 ] || return 0
local sopts="${dump_dir} ${dump_device}"
yesno ${dump_compress} && sopts="-z ${sopts}"
ebegin "Saving kernel core dump in ${dump_dir}"
savecore ${sopts} >/dev/null
local sopts="$dump_dir $dump_device"
yesno $dump_compress && sopts="-z $sopts"
ebegin "Saving kernel core dump in $dump_dir"
savecore $sopts >/dev/null
eend $?
}

104
init.d/staticroute.in Normal file
View File

@@ -0,0 +1,104 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# This script was inspired by the equivalent rc.d staticroute from NetBSD.
description="Configures static routes."
__nl="
"
depend()
{
provide net
use network
keyword -jail -prefix -vserver
}
pre_flight_checks()
{
route=route
[ -s /etc/route.conf ] && return 0
if [ -n "$staticiproute" ]; then
route="ip route"
staticroute="$staticiproute"
fi
}
dump_args()
{
# Route configuration file, as used by the NetBSD RC system
if [ -s /etc/route.conf ]; then
cat /etc/route.conf
return $?
fi
case "$staticroute" in
*"$__nl"*)
echo "$staticroute"
;;
*)
(
set -o noglob
IFS=';'; set -- $staticroute
IFS="$__nl"; echo "$*"
)
;;
esac
}
do_routes()
{
local xtra= family=
[ "$RC_UNAME" != Linux ] && xtra=-q
ebegin "$1 static routes"
eindent
pre_flight_checks
dump_args | while read args; do
[ -z "$args" ] && continue
case "$args" in
"#"*)
;;
"+"*)
[ $2 = "add" ] && eval ${args#*+}
;;
"-"*)
[ $2 = "del" -o $2 = "delete" ] && eval ${args#*-}
;;
*)
veinfo "$args"
case "$route" in
"ip route")
ip route $2 $args
;;
*)
# Linux route does cannot work it out ...
if [ "$RC_UNAME" = Linux ]; then
case "$args" in
*:*) family="-A inet6";;
*) family=;;
esac
fi
route $famly $xtra $2 -$args
;;
esac
veend $?
esac
done
eoutdent
eend 0
}
start()
{
do_routes "Adding" "add"
}
stop()
{
local cmd="delete"
[ "$RC_UNAME" = Linux ] && cmd="del"
do_routes "Deleting" "$cmd"
}

View File

@@ -1,11 +1,11 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
depend()
{
before fsck
keyword nojail noprefix
keyword -jail -prefix
}
start()

View File

@@ -1,17 +1,17 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
depend()
{
need localmount
keyword nojail noopenvz noprefix novserver
keyword -jail -openvz -prefix -vserver -lxc
}
start()
{
ebegin "Activating swap devices"
case "${RC_UNAME}" in
case "$RC_UNAME" in
NetBSD|OpenBSD) swapctl -A -t noblk >/dev/null;;
*) swapon -a >/dev/null;;
esac
@@ -21,7 +21,13 @@ start()
stop()
{
ebegin "Deactivating swap devices"
case "${RC_UNAME}" in
# Try to unmount all tmpfs filesystems not in use, else a deadlock may
# occure. As $RC_SVCDIR may also be tmpfs we cd to it to lock it
cd "$RC_SVCDIR"
umount -a -t tmpfs 2>/dev/null
case "$RC_UNAME" in
NetBSD|OpenBSD) swapctl -U -t noblk >/dev/null;;
*) swapoff -a >/dev/null;;
esac

28
init.d/swclock.in Normal file
View File

@@ -0,0 +1,28 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Sets the local clock to the mtime of a given file."
depend()
{
before *
provide clock
keyword -openvz -prefix -uml -vserver -xenu -lxc
}
# swclock is an OpenRC built in
start()
{
ebegin "Setting the local clock based on last shutdown time"
swclock --warn
eend $?
}
stop()
{
ebegin "Saving the shutdown time"
swclock --save
eend $?
}

View File

@@ -1,36 +1,36 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
depend() {
need localmount
keyword nojail noprefix
keyword -jail -prefix
}
start() {
if [ -n "${allscreen_flags}" ]; then
ebegin "Setting mode to ${allscreen_flags} for all screens"
if [ -n "$allscreen_flags" ]; then
ebegin "Setting mode to $allscreen_flags for all screens"
for v in /dev/ttyv*; do
vidcontrol ${allscreen_flags} <"${v}"
vidcontrol $allscreen_flags <$v
done
eend $?
fi
if [ -n "${keymap}" ]; then
ebegin "Setting keymap to ${keymap}"
kbdcontrol -l ${keymap} </dev/console
if [ -n "$keymap" ]; then
ebegin "Setting keymap to $keymap"
kbdcontrol -l $keymap </dev/console
eend $?
fi
if [ -n "${keyrate}" ]; then
ebegin "Setting keyrate to ${keyrate}"
kbdcontrol -r ${keyrate} </dev/console
if [ -n "$keyrate" ]; then
ebegin "Setting keyrate to $keyrate"
kbdcontrol -r $keyrate </dev/console
eend $?
fi
if [ -n "${keychange}" ]; then
if [ -n "$keychange" ]; then
ebegin "Changing function keys"
eval set -- "${keychange}"
eval set -- "$keychange"
eindent
while [ $# -gt 0 ]; do
veinfo "F$1 -> \`$2'"
@@ -41,40 +41,40 @@ start() {
eoutdent
fi
if [ -n "${cursor}" ]; then
if [ -n "$cursor" ]; then
ebegin "Setting cursor"
vidcontrol -c ${cursor}
vidcontrol -c $cursor
eend $?
fi
local v= f=
for v in font8x16 font8x14 font8x8; do
f=$(eval \$"${v}")
if [ -n "${f}" ]; then
ebegin "Setting font ${f}"
vidcontrol -f ${v##FONT} ${f}
eval f=\$$v
if [ -n "$f" ]; then
ebegin "Setting font $f"
vidcontrol -f ${v##font} $f
eend $?
fi
done
if [ -n "${blanktime}" ]; then
if [ -n "$blanktime" ]; then
ebegin "Setting blanktime"
vidcontrol -t ${blanktime}
vidcontrol -t $blanktime
eend $?
fi
if [ -n "${saver}" ]; then
if [ -n "$saver" ]; then
local i=
for i in $(kldstat | sed -n -e 's/.* \(splash_.*\)/\1/p'); do
kldunload "${i}"
kldunload "$i"
done
kldstat -v | grep -q _saver || kldload ${saver}_saver
fi
if [ -n "${kbdflags}" ]; then
if [ -n "$kbdflags" ]; then
ebegin "Setting keyboard flags for all screens"
for v in /dev/ttyv*; do
kbdcontrol ${kbdflags} <${v}
kbdcontrol $kbdflags <$v
done
eend $?
fi

View File

@@ -1,24 +1,31 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
depend()
{
use hostname
before bootmisc logger
keyword noprefix
keyword -prefix
}
start()
{
[ -e /etc/sysctl.conf ] || return 0
local retval=0 var= comments=
local retval=0 var= comments= conf=
ebegin "Configuring kernel parameters"
while read var comments; do
case "${var}" in
""|"#"*) continue;;
esac
sysctl -w "${var}" >/dev/null || retval=1
done < /etc/sysctl.conf
eend ${retval} "Some errors were encountered"
eindent
for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do
if [ -r "$conf" ]; then
vebegin "applying $conf"
while read var comments; do
case "$var" in
""|"#"*) continue;;
esac
sysctl -w "$var" >/dev/null || retval=1
done < "$conf"
veend $retval
fi
done
eoutdent
eend $retval "Some errors were encountered"
}

View File

@@ -1,18 +1,25 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
depend()
{
use hostname
before bootmisc logger
keyword noprefix
keyword -openvz -prefix -vserver
}
start()
{
[ -e /etc/sysctl.conf ] || return 0
local conf= retval=0
ebegin "Configuring kernel parameters"
sysctl -p >/dev/null
eend $? "Some errors were encountered"
eindent
for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do
if [ -r "$conf" ]; then
vebegin "applying $conf"
sysctl -p "$conf" >/dev/null
veend $? || retval=1
fi
done
eoutdent
eend $retval "Some errors were encountered"
}

64
init.d/sysfs.in Normal file
View File

@@ -0,0 +1,64 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Mount the sys filesystem."
depend()
{
keyword -prefix -vserver
}
mount_sys()
{
grep -Eq "[[:space:]]+sysfs$" /proc/filesystems || return 1
mountinfo -q /sys && return 0
if [ ! -d /sys ]; then
if ! mkdir -m 0755 /sys; then
ewarn "Could not create /sys!"
return 1
fi
fi
ebegin "Mounting /sys"
if ! fstabinfo --mount /sys; then
mount -n -t sysfs -o noexec,nosuid,nodev sysfs /sys
fi
eend $?
}
mount_misc()
{
# Setup Kernel Support for securityfs
if [ -d /sys/kernel/security ] && \
! mountinfo -q /sys/kernel/security; then
if grep -qs securityfs /proc/filesystems; then
ebegin "Mounting security filesystem"
mount -n -t securityfs -o nodev,noexec,nosuid \
securityfs /sys/kernel/security
eend $?
fi
fi
# Setup Kernel Support for debugfs
if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug; then
if grep -qs debugfs /proc/filesystems; then
ebegin "Mounting debug filesystem"
mount -n -t debugfs -o nodev,noexec,nosuid \
debugfs /sys/kernel/debug
eend $?
fi
fi
}
start()
{
local retval
mount_sys
retval=$?
if [ $retval -eq 0 ]; then
mount_misc
fi
return $retval
}

Some files were not shown because too many files have changed in this diff Show More