Compare commits

...

568 Commits

Author SHA1 Message Date
William Hubbs
6fcc55cef8 release openrc-0.9.8.1 2012-01-14 14:00:36 -06:00
Robin H. Johnson
380752f4e0 net: allow parameters to a single address config
In the case of a single line of configuration, where the address has
parameters, the parameters were being treated as seperate addresses.
Eg:
config_eth0="4321:0:1:2:3:4:567:89ab/64 nodad home preferred_lft 0"

Also document usage of parameters in the net example, and note that
multiple addresses on a single line cannot be mixed with parameters.
Newlines are required to seperate the addresses.

X-Gentoo-Bug: 398827
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=398827

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-01-13 15:57:22 -08:00
Robin H. Johnson
e7649f117a net/iproute2: Handle shortened arguments
Allow users to shorten iproute arguments to the shortest unique argument
that will match a flag of iproute2.

X-Gentoo-Bug: 398721
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=398721

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-01-12 20:38:31 -08:00
Robin H. Johnson
66f4305e1c rc/checkpath: tmpfiles.d backend creation code
This commit provides the checkpath applet with feature parity to
systemd's tmpfiles.c create_item function.

Very similarly to the systemd function, it does NOT do any of the
cleanup work in this function.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-01-09 19:20:47 -08:00
Robin H. Johnson
4255ba175b net: net.lo, lots of scripts
The program function in depend blocks is now able to search paths by
itself. If passed multiple arguments or multiple calls, at least one of
the arguments passed must be a program or a shell builtin (eg ip built
into busybox). If a qualified path is specified, only that path will be
checked, otherwise it will be checked as a builtin, then $PATH will be
checked for the named binary (via type).

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-01-08 16:24:10 -08:00
William Hubbs
d02d3af02e net: make lookup of ethtool dynamic
The ethtool module checked in two places for the ethtool binary; now we
look for it in the path.
2012-01-07 15:47:48 -06:00
William Hubbs
61e05331d1 net: make lookup of iproute2 dynamic
The iproute2, macvlan and vlan modules had several possible hard coded
paths for the iproute2 binary. Now we look for it in the path.
2012-01-07 15:41:43 -06:00
William Hubbs
f2e404ab66 net.lo: Add the ability to find the full path of a binary
Some of the networking tools, such as iproute2, can be stored in one of
several locations. This function gives us a standard way to find these
tools.

I would like to thankRobin Johnson <robbat2@gentoo.org> for his input on
this function.
2012-01-07 13:09:17 -06:00
William Hubbs
adde73141f release openrc-0.9.8 2012-01-06 17:34:38 -06:00
William Hubbs
84aa4ba818 Revert "net/ifconfig net/iproute2: support lookup ifconfig/ip dynamically"
This reverts commit f583030e3c.

The previous commit did not account for the case of not having iproute2
installed.

Reported-by: Duncan <1i5t5.duncan@cox.net>
X-Gentoo-Bug: 397875
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=397875
2012-01-06 14:51:43 -06:00
William Hubbs
982ac38f35 cgroups: hide configure option to turn off cgroups
Turning off the default cgroups is possible, but these groups are the
recommended setup from the kernel, so turning them off is highly
discouraged.
2012-01-05 22:29:37 -06:00
William Hubbs
cd52fecc4e cgroups: turn on groups by default
The control groups we create are the ones recommended by the linux
kernel, so this should be on most of the time if cgroups are enabled in
the kernel.
2012-01-05 22:28:04 -06:00
William Hubbs
dbfcf23273 really disable /var/{lock,run} migration to /run
This needs to be disabled until we have tmpfiles.d support. The previous
method did not disable it correctly.
2012-01-05 06:55:08 -06:00
Mike Frysinger
f583030e3c net/ifconfig net/iproute2: support lookup ifconfig/ip dynamically
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-01-04 16:38:11 -05:00
William Hubbs
1771a83b92 Reword the documentation for the retry option for start-stop-daemon 2011-12-30 22:20:03 -06:00
William Hubbs
e873ef2ba7 Reword retry documentation on runscript man page 2011-12-30 22:12:59 -06:00
Christian Ruppert
26edfe369c Fix the description of --retry in start-stop-daemon(8)
X-Gentoo-Bug: 368615
X-Gentoo-Bug-URL: https://bugs.gentoo.org/368615
Reported-by: Stuart Shelton <srcshelton@gmail.com>
2011-12-31 03:43:25 +01:00
Christian Ruppert
34b7632d1d Do not exit immediately when a service has been stopped already
The old behaviour was to exit(EXIT_SUCCESS) in case the service has been stopped
already, even if further commands has been passed to the init script
(like zap, start).
So using for example /etc/init.d/foo stop zap start would abort immediately
after "stop" if the service has been stopped already. Though there may be cases
were we need it to proceed with the remaining commands, zap and start in this
case.
This patch fixes the behaviour to continue and proceed with the remaining
commands whenever necessary.

X-Gentoo-Bug: 371845
X-Gentoo-Bug-URL: https://bugs.gentoo.org/371845
2011-12-31 03:35:32 +01:00
Christian Ruppert
fb8db18d79 Add "retry" option for the stop() template 2011-12-31 02:41:59 +01:00
William Hubbs
6d5a2d5f9e Net: do not bring down interfaces during shutdown 2011-12-30 10:44:56 -06:00
William Hubbs
810f2e55fb Documentation updates
- Clarify that start_stop_daemon_args is only used when starting a
  daemon.
- fix several typos.
2011-12-30 10:35:16 -06:00
Christian Ruppert
372745844b Code style fixes 2011-12-30 16:03:24 +01:00
Christian Ruppert
191ea10f86 Document start_stop_daemon_args 2011-12-30 16:03:24 +01:00
Christian Ruppert
0d6ae379f4 Compare stricter in proc_getent
The new proc_getent compares stricter so that e.g. "ro" doesn't match
root=/dev/sdaN anymore.
So it has to be either "ro" or "ro=".
2011-12-30 16:03:24 +01:00
Marien Zwart
2471d741f7 net:macvlan: bring up the interface
X-Gentoo-Bug: 396429
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=396429
2011-12-29 19:10:32 -06:00
William Hubbs
759f4ca4f2 net: remove _check_macvlan function
This test is incorrect, and we do not need the modprobe. If macvlan is a
module, it is automatically modprobed when the first macvlan link is
added. Also, the /sys directory referred to in the test does not exist
if macvlan is built into the kernel.

Reported-by: Marien Zwart <marienz@gentoo.org>
X-Gentoo-Bug: 396427
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=396427
2011-12-29 18:00:25 -06:00
William Hubbs
6c8e8e2a96 disable /run migration until we have /run in baselayout 2011-12-29 17:28:05 -06:00
William Hubbs
29da0c8bf0 cgroups: default the size of the tmpfs to 10 mb 2011-12-29 10:01:28 -06:00
Christian Ruppert
49e99a7393 Don't try to write the log during sysinit
During the sysinit and shutdown runlevels the logfile destination may be
read-only. Skip the error messages in this case.

X-Gentoo-Bug: 390645
X-Gentoo-Bug-URL: https://bugs.gentoo.org/390645
2011-12-29 13:58:08 +01:00
Christian Ruppert
8dcb7554ee Use RC_LEVEL_SHUTDOWN 2011-12-29 03:16:53 +01:00
Christian Ruppert
b754a27f62 Remove useless rc_runlevel_get() call
The current runlevel will be passed to rc_logger_open() already.
2011-12-29 03:08:29 +01:00
Christian Ruppert
ec65f181ea Don't print error when the logfile isn't writeable during shutdown
The logfile or its basedir may be read-only during shutdown because the
directory may be umounted or read-only remounted already. In this case we simply
skip this error.
This is related to a comment in bug 390645 but the initial bug is not fixed
through this commit.

X-Gentoo-Bug: 390645
X-Gentoo-Bug-URL: https://bugs.gentoo.org/390645
2011-12-29 02:50:24 +01:00
Robin H. Johnson
b12cb2f507 net/iproute2: POSIX sh compatability: ${x/a/b} invalid
The ${x/a/b} shell construct is NOT defined in the POSIX specification,
it's a bash addition.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-28 20:32:10 +00:00
William Hubbs
1875db4ff6 net: document up_before_preup for BSD 2011-12-28 11:17:58 -06:00
William Hubbs
26ceddae5e net: clean up documentation for up_before_preup 2011-12-28 10:41:07 -06:00
William Hubbs
20f612080c net: use yesno to test up_before_preup 2011-12-27 17:59:39 -06:00
Robin H. Johnson
5615325a84 net/vlan: Fix prestop when device was hard-removed already
During stop of an interface, if it has been removed already (eg
hotunplug), not existing is fine.

X-Gentoo-Bug: 395859
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=395859
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-26 17:56:26 -08:00
Robin H. Johnson
537171eac2 Fix whitespace.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-26 17:51:28 -08:00
Robin H. Johnson
415f480410 net/vlan, net/macvlan: iproute2 is required for new VLAN configuration
Since commit 683a21b0a in Feburary 2011, iproute2 has been required for
new VLAN configuration. MACVLAN is also impossible to configure without
iproute2. However we did not check if iproute2 was actually in the
modules for a given interface, so it could end up hanging or giving
weird errors. Check for iproute2 before usage now.

X-Gentoo-Bug: 389437
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=389437
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-26 17:22:29 -08:00
Robin H. Johnson
acf77b73af net/ip6to4: Split to use pre_start and start so that other tunnel names work.
We need to create interfaces of custom names before we can sucessfully
start them. To do this, we have to add tunnels during prestart instead
of start. Split up the ip6to4 script to do this, saving the computed
variables for use in start with the new service data commands.

X-Gentoo-Bug: 372575
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=372575
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-26 17:08:27 -08:00
Robin H. Johnson
9a01f68515 net: Add up_before_preup variable for CAN devices
Historically, we have tried to up interfaces before running preup, so
that the kernel setups up the device and makes things like ethtool work
(some hardware cannot be correct probed until then). However this ends
up breaking other hardware, so a variable has been introduced to allow
the up prior to preup to be disabled: up_before_preup_IFVAR=no

X-Gentoo-Bug: 389475
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=389475
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-26 16:27:38 -08:00
Robin H. Johnson
7b1c1e1623 net/iproute2: Confirmed that broadcast and peer can be used together.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-21 08:10:47 +00:00
Robin H. Johnson
8bb4b759eb net/iproute2: IPv6 cannot be used with broadcast
Broadcast and IPv6 should not be used together. Do not try to set the
keyword for auto-generation of the broadcast address. If the user passes
a broadcast address for IPv6, throw an error.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-21 08:08:31 +00:00
Robin H. Johnson
e5eb062f05 net/iproute2: iproute2 flag handling
Several of the optional flags were not being handled correctly, they
were being passed as values only, without the keyword before them.
Affected keywords: anycast, label, scope, valid_lft, preferred_lft

Also change the handling of keywords to a common setup now, making
broadcast and peer strings the same as the above keywords.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-21 08:02:53 +00:00
William Hubbs
f6dc3d5ae9 cgroups: always mount the tmpfs on /sys/fs/cgroup
X-Gentoo-Bug:395079
X-Gentoo-Bug-URL:https://bugs.gentoo.org/show_bug.cgi?id=395079
2011-12-20 01:42:36 -06:00
Piotr Karbowski
3e2001f6a2 add rc_cgroup option to allow disabling of cgroup default setup
Currently, cgroups are still in development, so we are not setting them
up by default. However, this default will be changed in the future.

This commit message and patch were updated by
William Hubbs <williamh@gentoo.org>.

X-Gentoo-Bug: 395079
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=395079
2011-12-20 01:14:08 -06:00
William Hubbs
ed4605bf9f cgroups: remove references to the "openrc" cgroup
Openrc will set up cgroups the way the kernel documentation recommends.
2011-12-19 21:54:53 -06:00
William Hubbs
461c69acdb cgroups: mount cgroups suggested by the kernel documentation
The linux kernel documentation suggests mounting a separate cgroup
hierarchy for each subsystem you want to control/monitor. This changes
the cgroups mounting code to do this.
2011-12-18 13:33:27 -06:00
Robin H. Johnson
879e1acd5d net: Support more variants of address family specification.
This includes address family specifications methods to help debug bug
358235 further.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-13 00:43:18 -08:00
Robin H. Johnson
06f6ce408c net/iproute2: Support routing policy for IPv6 per bug #385833
For creation of routing policy entries for IPv6, the family must be
explicitly specified to 'ip'.

X-Gentoo-Bug: 385833
X-Gentoo-Bug-URL: https://bugs.gentoo.org/385833
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-13 00:19:58 -08:00
Robin H. Johnson
ac2391e0cb net/vlan: Fix mtu setting
Fix minor shell typo that broke setting mtu on vlans.

X-Gentoo-Bug: 392971
X-Gentoo-Bug-URL: https://bugs.gentoo.org/392971
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-12 22:52:09 -08:00
William Hubbs
ce9994f7ca net/tuntap: fix return code when tools can't be found
This module should return failure if iproute2, openvpn or tunctl cannot
be found. Before it was returning success; this fixes the issue.
2011-12-13 00:25:58 -06:00
Salah Coronya
a38a5071f3 Tuntap: add iproute2 support
This patch was modified by William Hubbs <williamh@gentoo.org> to
document the new usage in net.example.

X-Gentoo-Bug: 394281
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=394281
2011-12-12 21:40:39 -06:00
Robin H. Johnson
2569eb644e net/ifconfig, net/iproute2: admin/oper state check functions
Provide consistent methods using iproute2/ifconfig to check operational
and administrative up/down state of interfaces. This is not the same as
ethtool's "Link detected" field, which is the state of the layer 2
medium.

TODO: How to check operational state in BSD?

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-12-12 19:20:39 -08:00
Robin H. Johnson
dd45506a40 net/bonding: ensure slave interfaces are down before adding.
The old ifenslave binary forcibly set new slave interface to down before
adding into the kernel, as a way of show it's version to the kernel. We
need to duplicate this so that the kernel doesn't think it's an old
ifenslave version using the bonding setup interface.

X-Gentoo-Bug: 391881
X-Gentoo-Bug-URL: https://bugs.gentoo.org/391881
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Thanks-to: Yun Zheng Hu <hu@fox-it.com>
2011-12-12 19:20:39 -08:00
William Hubbs
46b96eb80d Network: start interfaces after dbus
This is needed to allow auto-connect at boot.

Reported-by: David J Cozatt <ygdrasil@comcast.net>
X-Gentoo-Bug: 390955
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=390955
2011-12-12 19:46:03 -06:00
William Hubbs
e574b5d441 fix compile error
A variable used in the previous commit was actually removed in another
commit; that is why I didn't catch it.

Reported-by: Duncan < 1i5t5.duncan@cox.net>
X-Gentoo-Bug: 394369
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=394369
2011-12-11 14:33:39 -06:00
William Hubbs
5e01051c4e Allow init scripts to be executed with a relative path
This was a regression that was caused by the fix for
http://bugs.gentoo.org/show_bug.cgi?id=350910. I am reverting the commit
that we said fixed that bug and re-opening it.

Reported-By: Nathaniel <nathaniel@paust.us
X-Gentoo-Bug: 392457
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=392457
2011-12-11 01:18:08 -06:00
William Hubbs
8ea1190486 ip6to4: set correct subnet mask
The correct setting for this is /48.

Reported-by: MaratIK <marat.buharov@gmail.com>
X-Gentoo-Bug: 392723
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=392723
2011-12-09 21:57:00 -06:00
William Hubbs
a1c655949f iproute2: set a default broadcast address if none is specified
Reported-by: Spooky Ghost <spookyghost@blueyounder.co.uk>
X-Gentoo-Bug: 392593
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=392593
2011-12-09 20:49:26 -06:00
William Hubbs
325a7bf206 release openrc-0.9.7 2011-12-09 17:43:54 -06:00
William Hubbs
5adb3930c7 Integrate migrate-run into bootmisc
The migrate-run service was hanging when parallel startup was enabled
because of its dependencies. This integrates the logic for this service
into bootmisc, which will avoid the issues with parallel startup.

I would like to thank Robin H. Johnson <robbat2@gentoo.org> for his
input on this patch
2011-12-03 12:46:52 -06:00
William Hubbs
b628481701 migrate-run: fix ln calls and migrate directories separately
This is based on a patch submitted by AlphatPC@gmail.com.

Reported-by: AlphatPC@gmail.com
X-Gentoo-Bug: 391945
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=391945
2011-11-27 23:29:22 -06:00
William Hubbs
ab01a74405 Make migrate-run more verbose 2011-11-26 20:57:14 -06:00
William Hubbs
695f3886fb Remove rc_parallel from rc.conf
rc_parallel has never been considered a stable feature of openrc. To
that end, I am removing the documentation for this feature from
rc.conf.

It is still available, but bugs against it are not considered stable
blockers, and it should only be used currently by developers and users
who are willing to test the feature.

X-Gentoo-Bug: 391945
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=391945
2011-11-26 17:33:10 -06:00
Mike Frysinger
d8e739e19a urandom: move seed from /var/run to /var/lib
We want the seed to be preserved across reboots, so move it to /var/lib.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-26 13:21:54 -05:00
Mike Frysinger
3baca9a35c fsck: fix typo in fsck mount point support
Previous commit e3b39a677b missed adding a "[" to one of the tests.

Reported-by: Torsten Veller <tove@gentoo.org>
x-Gentoo-Bug: 391941
x-Gentoo-Bug-URL: http://bugs.gentoo.org/391941
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-26 03:21:21 -05:00
William Hubbs
467f91d870 release openrc-0.9.6 2011-11-25 15:39:59 -06:00
Mike Frysinger
cc45abb77b net.lo: fix typo in previous math commit
x-Gentoo-Bug: 391671
x-Gentoo-Bug-URL: http://bugs.gentoo.org/391671
Reported-by: Duncan <1i5t5.duncan@cox.net>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-23 13:17:20 -05:00
William Hubbs
40576a32d3 release openrc-0.9.5 2011-11-23 08:31:55 -06:00
William Hubbs
483db945e1 Fix typo 2011-11-23 08:17:33 -06:00
William Hubbs
17a1529416 Migrate /var/lock and /var/run to /run for linux systems 2011-11-23 07:26:05 -06:00
William Hubbs
815952a65a Revert "Revert "fsck: add the ability to specify mount points to check""
This reverts commit 5a3599df8a.

After review, I am bringing this back to the tree.
2011-11-22 12:56:29 -06:00
William Hubbs
76fec58633 pass the per-interface metric to resolvconf
Reported-by: Alon Bar-Lev <alon.barlev@gmail.com>
x-Gentoo-Bug: 364907
x-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?364907
2011-11-22 08:50:26 -06:00
William Hubbs
d8bbeb184f CGroups: create the openrc cgroup hierarchy
Openrc will create a cgroup hierarchy called openrc which will have all
services it starts and all subsystems attached to it. If you need other
groups/hierarchies, please use libcgroup.
2011-11-20 14:07:46 -06:00
Mike Frysinger
453d13296d rc: usage: do not output non-printable short options in usage
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-19 02:43:25 -05:00
Mike Frysinger
c21c1f1e59 rc: usage: optimize help string alignment output a little
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-19 02:42:41 -05:00
Mike Frysinger
c7cc685458 rc: fix style around case_RC_COMMON_GETOPT
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-19 02:33:11 -05:00
Mike Frysinger
ef1ff1b4f2 make shell math operations style more succulent
Convert the style:
	var=$((${var} + 1))
to:
	: $(( var += 1 ))

The latter is easier to read imo.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-19 02:25:36 -05:00
William Hubbs
0510c473d4 CGroups: /sys/fs/cgroups should be a tmpfs
The kernel documentation states that a cgroup file system should not be
mounted here, but a tmpfs.

This also means that we should not create a group for each process, but
we should allow the user to specify which group a process should be
assigned to. The rc_cgroup variable will be used for this purpose.

For more information, see /usr/src/linux/Documentation/cgroups/cgroups.txt.
2011-11-18 17:58:37 -06:00
William Hubbs
9a3d6c7600 Add MKSTATICLIBS switch
The MKSTATICLIBS switch, which defaults to yes, controls whether or not
static libraries are built and installed.

Reported-by: Agostino Sarubbo <ago@autistici.org>
x-Gentoo-Bug: 378267
x-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=378267
2011-11-18 08:55:30 -06:00
William Hubbs
a5ba2f3264 CGroups: fix group initialization
Make sure cpuset.cpus and cpuset.mems exist in the parent group before
attempting to copy them to the new group.
2011-11-18 08:32:06 -06:00
William Hubbs
62f4438376 CGroups: finish initializing the CGroup
When a CGroup is created, we need to copy cpuset.cpus and cpuset.mems
from the new group's parent into the new group before we can attach any
processes to it.
2011-11-17 23:55:32 -06:00
William Hubbs
0bbb764f70 Change RC_CGROUP to lower case 2011-11-17 16:42:03 -06:00
Patrick Lauer
20df56f0b2 Add CGroup support
X-Gentoo-Bug: 390297
X-Gentoo-Bug: http://bugs.gentoo.org/show_bug.cgi?id=390297
2011-11-17 16:22:59 -06:00
William Hubbs
66e99b6d63 Fix compile warning 2011-11-17 16:06:18 -06:00
Alessio Ababilov
260b61e9d8 on_ac_power: Fix AC adapter presence recognition
On several machines, a file corresponding to AC adapter can be named
ADP1. The on_ac_power script  checked for AC*, which does not match
ADP1, so the script always considered the adapter to be off.

X-Gentoo-Bug: 380933
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=380933
2011-11-17 11:55:44 -06:00
William Hubbs
5b1aaf8cc8 add support for extra_stopped_commands 2011-11-16 13:56:55 -06:00
William Hubbs
5994e55937 Deprecate the network and staticroute scripts
These scripts are not supported, and they have several major design
issues such as not being able to stop, start or allow a dependency on a
single interface.
2011-11-16 13:29:52 -06:00
Mike Frysinger
3f2e9c4e1f mountinfo: Do not error out if realpath fails
Reported-By: Dennis Schridde <devurandom@gmx.net>
X-Gentoo-Bug: 383333
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=383333
2011-11-15 15:19:55 -06:00
William Hubbs
476034dd95 net.example: Fix the bridge configuration example
The example of how to configure the bridge was invalid. It showed
invalid timer settings along with turning off stp. This update shows how
to turn on stp and set the timer settings to the defaults.

Reported-by: Sergey S. Starikoff < Ikonta@yandex.ru>
X-Gentoo-Bug: 389209
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=389209
2011-11-14 12:32:41 -06:00
Mike Frysinger
37294b4e82 net example: fix up grammar
X-Gentoo-Bug: 390295
X-Gentoo-Bug-URL: https://bugs.gentoo.org/390295
Reported-by: Patrick Lauer <patrick@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-12 15:33:03 -05:00
Mike Frysinger
16661d02e9 ssd: fix building when SYS_ioprio_set is missing
Older glibc's might not provide this.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-11-09 00:09:58 -05:00
William Hubbs
f46626dcfc add auto detection for lxc
Reported-by: Francesco Riosa <francesco+gentoo_bugzilla@pnpitalia.it>
X-Gentoo-Bug: 384151
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=384151
2011-11-07 08:39:16 -06:00
William Hubbs
5a3599df8a Revert "fsck: add the ability to specify mount points to check"
This reverts commit e3b39a677b.

I misunderstood and thought this was ready to go in the tree, but it was
on a remote branch only for a review.
2011-11-06 22:06:58 -06:00
Robin H. Johnson
e3b39a677b fsck: add the ability to specify mount points to check 2011-11-06 13:58:48 -06:00
William Hubbs
27713e3a41 Make sure we load external scripts before using eerror
Reported-by: Jochen Schlick <josch06@gmail.com>
X-Gentoo-Bug: 388715
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=388715
2011-11-02 08:31:43 -05:00
William Hubbs
5066d40ac8 Use pattern rules instead of suffix rules
Rework the makefiles to use pattern rules instead of suffix rules.
This is the preferred way to write implicit rules according to the gnu
make manual.
2011-10-29 09:43:24 -05:00
Stef Simoens
f94e883633 Add macvlan support
X-Gentoo-Bug: 384029
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=384029
2011-10-26 11:28:39 -05:00
Alexey Shvetsov
b1da4dcb99 Add support for automounting configfs and cgroupfs
Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
2011-10-26 10:35:01 -05:00
Mike Frysinger
9a539ebbe1 further clean up OS differences in makefiles
No need for if() logic.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-20 14:32:37 -05:00
William Hubbs
9c77502f96 Make variable references in Makefiles consistent
Some variable references were written as $(foo), but the majority were
written as ${foo}. This commit changes all of the variable references
to using braces.
2011-10-19 12:22:23 -05:00
William Hubbs
ecf77254bb consolodate Makefiles
The tree contained many operating system specific Makefiles which were
being included in other Makefiles. This commit removes those and adds
the code to the makefiles which included them using make's conditional
processing.

X-Gentoo-Bug: 387441
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=387441
2011-10-18 03:23:00 -05:00
Mike Frysinger
9f95878bbd fix random typos
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-10-16 19:02:21 -04:00
Christian Ruppert
7644e027fd Release OpenRC-0.9.4
X-Gentoo-Bug: 382299
X-Gentoo-Bug-URL: https://bugs.gentoo.org/382299
2011-10-16 17:35:12 +02:00
Robin H. Johnson
3ad849c5d6 Bug #385971: fix net.example reference
Add in wildcards for reference to net.example, so that users can find it
regardless of version and dodoc compression settings.

X-Gentoo-Bug: 385971
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=385971
Reported-By: Serkan Kaba <serkan@gentoo.org>
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-10-08 18:53:13 +00:00
Robin H. Johnson
f6c27abeb5 net/vlan: respect txqueuelen/mac/broadcast/mtu options during creation.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-10-07 21:47:46 +00:00
William Hubbs
9175534752 Small style change 2011-10-02 12:21:17 -05:00
Christian Ruppert
c5fb64d61f Make dmesg log optional
Reported-by: Patrick <gentoo@feystorm.net>
X-Gentoo-Bug: 384485
X-Gentoo-Bug-URL: https://bugs.gentoo.org/384485
2011-09-27 18:15:08 +02:00
Christian Ruppert
4b63929878 Shutdown VLAN's before the actual/parent interface
Make sure the VLAN interfaces as well as its rules will be removed prior
to the actual/parent interface.
The VLAN configs are gone in vlan_post_stop() already so we have to use
vlan_pre_stop() instead.

Reported-by: Bernd Bednarz <bernd.bednarz@avira.com>
X-Gentoo-Bug: 380603
X-Gentoo-Bug-URL: https://bugs.gentoo.org/380603
2011-09-21 13:26:47 +02:00
Christian Ruppert
29693ecb7a Refactoring of commit bf49e59e3e
Make sure the RPDB rules will be removed.
2011-09-21 03:57:09 +02:00
Christian Ruppert
930f4021b1 Add a new helper functions for _{flatten,get}_array
A new helper function (_array_helper) since both, the _flatten_array and
_get_array function share partially the same code.
We also reduce multiple whitespace to a single space, remove leading newlines
as well as skipping "empty" lines.

This makes the data returned by _{flatten,get}_array much nicer than before.
It also fixes bug 366677 where net-tools having trouble with the whitespace
mentioned above. iproute2 was not affected.

Reported-by: Andrew Maltsev <am@ejelta.com>
X-Gentoo-Bug: 366677
X-Gentoo-Bug-URL: https://bugs.gentoo.org/366677
2011-09-21 00:21:43 +02:00
Yun Zheng Hu
bf49e59e3e Don't do anything if the interface doesn't exist
iproute2_post_stop() does now check if the network interface still exist.

Reported-by: Yun Zheng Hu <hu@fox-it.com>
X-Gentoo-Bug: 379575
X-Gentoo-Bug-URL: https://bugs.gentoo.org/379575
2011-09-19 00:04:19 +02:00
Mike Frysinger
fb485366e6 procfs: simplify the binfmt_misc mount check
Replace the `mountinfo` exec with a file test of the register file
which we rely on later anyways.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-09-18 16:01:28 -04:00
Mike Frysinger
f52dca6984 procfs: drop nfsd mounting
The dedicated nfs init.d script takes care of mounting this when
necessary, and we want it there since mounting it isn't terribly
useful if you can't actually start up the nfs daemons (which the
nfs-utils package provides).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-09-18 16:01:28 -04:00
Mike Frysinger
47d305d2af procfs: load config files from binfmt.d into /proc/sys/fs/binfmt_misc/register
This is a KISS version.  Let's see where we go from here in terms of
complexity.  Maybe nowhere!

X-Gentoo-Bug: 382723
X-Gentoo-Bug-URL: https://bugs.gentoo.org/382723
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-09-18 16:01:26 -04:00
Mike Frysinger
95adeb85ba runscript: simplify livecd-functions.sh loading
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-09-18 15:25:51 -04:00
Gilles Oivier
0e4d169a40 Fix the Internal Field Seperator when using ethtool
ethtool.sh didn't reset the Internal Field Seperator (IFS) properly.
It now does, by storing the old IFS to OIFS, which will be used later
in the for loop.

It also fixes the "ethtool_ring_<if>" option.

Reported-by: Alois Schmid <alois.schmid@gmx.de>
X-Gentoo-Bug: 368525
X-Gentoo-Bug-URL: https://bugs.gentoo.org/368525
2011-09-18 14:42:39 +02:00
Christian Ruppert
72e31e753d Improve missing openvpn/usermode-utilities warning message
as OpenRC can be used on other distributions as well.
2011-09-17 01:13:11 +02:00
Stefan Knoblich
645bbf2e0f Parse broadcast arp responses via arping (iputils) properly
ARP replies may/do contain two MAC addresses when using iputils's
arping so we have to use the first one because it's always the "From"
address - which is what we want.

Thanks to Stefan Knoblich <s.knoblich@axsentis.de> for the fixed pattern.

Reported-by: cl@exomail.to
X-Gentoo-Bug: 379181
X-Gentoo-Bug-URL: https://bugs.gentoo.org/379181
2011-09-17 00:16:10 +02:00
Christian Ruppert
539c4e5872 Print a warning if openvpn/tunctl are missing 2011-09-16 23:48:44 +02:00
Christian Ruppert
e14e78db16 Revert "Mount /run as early as possible"
This reverts commit 5ed4d084d9.
/run needs to be mounted after /proc.
2011-09-12 22:15:24 -05:00
Christian Ruppert
2d180551ef Fix regex pattern for umounts during shutdown
This patch fixes the regex pattern for /lib -> /lib(32|64)?
as well as the pattern for RC_SVCDIR if it contains /lib(32|64)?/.
This fixes bug 381783.

X-Gentoo-Bug: 381783
X-Gentoo-Bug-URL: https://bugs.gentoo.org/381783
2011-09-11 18:51:29 +02:00
William Hubbs
a9738a8508 release openrc-0.9.3 2011-09-08 15:09:45 -05:00
William Hubbs
5cb985b6cc Credits for previous commit
Reported-By: i.Dark_Templar <dark_templar@hotbox.ru>
X-Gentoo-Bug: 381783
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=381783
2011-09-08 13:28:43 -05:00
Christian Ruppert
e2f1464f47 Use the real/actual path when looking for mounts
/proc/mounts contains real/actual paths so we should do the same in mountinfo.
2011-09-08 19:20:20 +02:00
Christian Ruppert
5df9dc1af5 Remove unused variable 2011-09-08 18:42:05 +02:00
William Hubbs
b42ab3b2f4 Use checkpath to create /run/lock 2011-09-07 15:11:04 -05:00
William Hubbs
5ed4d084d9 Mount /run as early as possible
This commit moves the code that mounts /run to the earliest possible
position in openrc.
2011-09-06 21:00:08 -05:00
William Hubbs
9be1a2a67b release openrc-0.9.2 2011-09-02 15:19:10 -05:00
Flex
6d5b452ef5 Do not ignore return code for custom script functions
X-Gentoo-Bug: 380317
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=380317
2011-09-02 11:32:30 -05:00
William Hubbs
7a6dbedf38 Mtab: fix typo
Reported-By: Helmuth Schmelzer <des-colo@hotmail.com>
X-Gentoo-Bug: 381503
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=381503
2011-09-02 01:56:41 -05:00
William Hubbs
70c159d47c release openrc-0.9.1 2011-09-01 17:19:20 -05:00
Diego
b71f3bd2fd Start-stop-daemon: remove call to pam_authenticate 2011-09-01 17:08:55 -05:00
William Hubbs
c5b14edda8 release openrc-0.9.0 2011-09-01 10:33:14 -05:00
William Hubbs
4ee62c7903 Libeinfo: do not suppress ewarn() messages
The ewarn() function was affected by the EINFO_QUIET environment
variable which lead to warning messages being suppressed. Warnings
should not be suppressed.

Reported-by: Hanno Boeck <hanno@gentoo.org>
X-Gentoo-Bug: 380073
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=380073
2011-08-22 12:39:26 -05:00
Yun Zheng Hu
a029dee59b Do not print "null" or "noop" when configuring an interface
Note by william hubbs:

I modified the patch to compare "null" and "noop" with $1 instead of
${config}.

Reported-by:    Yun Zheng Hu <hu@fox-it.com>
X-Gentoo-Bug: 379577
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=379577
2011-08-20 14:10:07 -05:00
William Hubbs
2330978300 Do not update mtab if it is a symbolic link
Reported-by: <junkmailnotread@yahoo.com>
X-Gentoo-Bug: 370037
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=370037
2011-08-20 12:42:24 -05:00
William Hubbs
0c8bea2152 Improve processing of service directories and conf.d files
symbolic links should not be followed in an attempt to work out the name
of the service we are running. Also, @sysconfdir@/conf.d should be tried
as a backup directory for configuration files.

I would like to thank Robin Johnson for his input on this change.

X-Gentoo-Bug: 350910
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=350910
2011-07-31 10:00:48 -05:00
William Hubbs
3688c85163 swclock: select a default reference file
If $RC_SVCDIR/shutdowntime does not exist, we need a default reference
file. It is safe to use @PREFIX@/sbin/runscript for this purpose.

Reported-By: Robin H. Johnson <robbat2@gentoo.org>
X-Gentoo-Bug: 376249
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=376249
2011-07-28 09:21:29 -05:00
William Hubbs
370e5c775a runscript: rename saveDir back to save to fix compile error 2011-07-26 16:58:42 -05:00
William Hubbs
df1f02ac84 Runscript: print deprecation warning for opts variable
Openrc uses the extra_commands and extra_started_commands variables to
list extra commands for services. Also, it supports the opts variable
which is used to assist migration from baselayout-1.

I am adding this warning to encourage switching from opts to
extra_commands/extra_started_commands.

I would like to remove support for opts eventually.
2011-07-26 12:19:59 -05:00
William Hubbs
863ef36011 mtab: fix test for a link to a location in /proc
/etc/mtab can be a link to a file in /proc. If it is, we should not
attempt to update /etc/mtab.

The original test used "! -w" as part of the test.  This does not
work since everything is writeable by root.

Thanks to Robin Johnson for the suggestion of using readlink -f and the
regular expression.

Reported-By: junkmailnotread@yahoo.com
X-Gentoo-Bug: 370037
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=370037
2011-07-26 00:45:22 -05:00
William Hubbs
05c2d68192 Mtab: fix typo 2011-07-23 16:53:16 -05:00
William Hubbs
07694255a4 rename save and save2 for clarity
The names saveDir and saveLnk seem to better define how these variables
are used.
2011-07-20 14:38:55 -05:00
Robin H. Johnson
6fa6f9523f Rewrite iproute2 addr argument parsing.
This was originally to fix the fact that our code did not handle certain
orders of arguments in conversion, but it was easier to rewrite the
entire argument handling to support more options at the same time.

Now supports all options documented in the ip manpage, including the
IPv6-specific options that must be passed after the interface argument.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Reported-by: Tony Vroon <chainsaw@gentoo.org>
X-Gentoo-Bug: 366905
X-Gentoo-Bug-URL: https://bugs.gentoo.org/366905
2011-07-18 23:55:32 +00:00
William Hubbs
e3b02abd7a Add warnings for the use of bash arrays
Currently, we allow the use of bash arrays for some configuration settings.
This is undocumented, so I want to remove the support from openrc.

The first phase of this removal will be this commit which adds warnings
to encourage people not to use bash arrays.

X-Gentoo-Bug: 374875
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=374875
2011-07-14 01:26:29 -05:00
William Hubbs
5541e5ba24 Add commit message information to style guide 2011-07-13 15:33:04 -05:00
Christian Ruppert
a74382d9cb Fix rc_service_value_get() to return multiple lines as well
As introduced in bug 372547 using service_get_value() in the init scripts
or using rc_service_value_get() directly will only return one line.
This patch fixes it by using the new rc_getfile() function, it returns even
multiple lines. We're still using a char *, so the lines will be appended
instead of added into new element.

X-Gentoo-Bug: 372547
X-Gentoo-Bug-URL: http://bugs.gentoo.org/372547
2011-07-13 21:32:13 +02:00
Mike Frysinger
fdaf1c65cd Add a new function, bool rc_getfile(const char *, char **, size_t *)
<snip>
Read the entire @file into the buffer and set @len to the
size of the buffer when finished. For C strings, this will
be strlen(buffer) + 1.
Don't forget to free the buffer afterwards!
</snip>

We also fix bug 374899 by adding this new function.

X-Gentoo-Bug: 374899
X-Gentoo-Bug-URL: http://bugs.gentoo.org/374899
2011-07-13 21:31:20 +02:00
Christian Ruppert
ef22868f36 Do not skip similar config options
OpenRC goes through the config and checks each option for duplicates.
Lets say we're on "rc_logger" currently and its the last option in the config
file and we previously defined rc_logger_path.

It now goes through all previous config options and compares those against the
current one "rc_logger" *but* it compares only the first N bytes, in this
case strlen("rc_logger"). So it strips the _path from "rc_logger_path" which
ends up into "rc_logger" and it compares that against the current one (also
		"rc_logger"), it would then simply override the previous definition.

This patch fixes this behaviour to always compare the full option / variable
names.
2011-07-09 23:15:16 +02:00
Kirill Elagin
0c7032840b save and restore IFS correctly
X-Gentoo-Bug: 371141
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=371141
2011-07-07 12:23:58 -05:00
William Hubbs
fe6cd23287 rc_log_path should be quoted 2011-07-06 18:38:52 -05:00
Christian Ruppert
05e3251467 Rename rc_logger_path to rc_log_path 2011-07-06 21:16:15 +02:00
William Hubbs
9a068c2500 The is_net_fs function should use extra_net_fs_list
This was pointed out to me by Morse on #gentoo-base, so I would like to
thank him for the patch.
2011-07-06 09:53:05 -05:00
William Hubbs
e8e86b96dc fix issue with extra_net_fs_list
The extra_net_fs_list variable was not being included as it should have
been for the net file systems because it was being expanded before it
was set by the user.

X-Gentoo-Bug: 374133
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=374133
2011-07-05 18:41:33 -05:00
Christian Ruppert
48dcc55b65 Document the new rc_logger_path option 2011-07-06 00:47:15 +02:00
Christian Ruppert
44dc7db4f8 Improve logging
Add "e" (O_CLOEXEC) to all fopen() calls.
Remove system() call and replace it by fopen() and friends.
This also fixes bug 368933

X-Gentoo-Bug: 368933
X-Gentoo-Bug-URL: https://bugs.gentoo.org/368933
2011-07-05 23:42:21 +02:00
Christian Ruppert
003d4ba15b Don't write into optarg, this also fixes a compiler warning. 2011-07-05 00:51:29 +02:00
Mike Frysinger
49f1a8702b eat trailing whitespace
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-07-04 18:27:00 -04:00
Robin H. Johnson
be990b308a Bug 373808: init.d/modules skipped certain variable combinations
The version iteration code missed certain combinations:
KV=1.2.3.4
skips: 1.2.3, 1
KV=1.2.3
skips: 1

Simplify the code to use a loop and build the list of versions directly
instead of unique variables per version component.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-07-04 07:48:51 +00:00
William Hubbs
9076baa573 slight formatting change
Add a new line after "rc_runlevel()" for consistency.
2011-07-02 23:33:23 -05:00
Christian Ruppert
70a3a3cf39 Add --startas/-a back to the optstring
X-Gentoo-Bug: 373609
X-Gentoo-Bug-URL: https://bugs.gentoo.org/373609
2011-06-30 20:21:48 +02:00
Mike Frysinger
d0bc4f20ad drop useless "All rights reserved" notice
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-06-29 19:46:31 -04:00
Christian Ruppert
b6766c2544 Use RC_CONF instead of the hardcoded /etc/rc.conf 2011-06-28 18:45:39 +02:00
Mike Frysinger
c427d3c1fe net: ccwgroup: smooth up/down process
We need to bring the link up ourselves after we've properly configured
the device.  The common code tries to bring the link up itself, but it
does so before things are configured, and so it ends up failing.

When shutting down, we need to wait for the kernel to finish destroying
the interface.  Otherwise, when doing a restart, openrc is quick enough
to tell the kernel to destroy things, but then start trying to bring it
back up before the kernel has finished.

X-Gentoo-Bug: 367467
X-Gentoo-Bug-URL: http://bugs.gentoo.org/367467
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-06-28 00:02:11 -04:00
Joe Harvell
24ba795563 Only print the deprecation warning for --chuid/-c when using it
The deprecation warning has been printed when using the replecement functions as
well, bug 373243.
2011-06-27 23:20:47 +02:00
William Hubbs
e8413733c1 Revert "remove functions.sh symbolic link in init.d"
This reverts commit f4407ac83d.
2011-06-27 12:11:01 -05:00
William Hubbs
f4407ac83d remove functions.sh symbolic link in init.d 2011-06-27 11:56:12 -05:00
William Hubbs
512c69a106 update bug reporting information in README 2011-06-24 12:47:04 -05:00
Kirill Elagin
2050e67911 localmount: make OIFS and CIFS local in stop function
X-Gentoo-Bug: 371141
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=371141
2011-06-24 12:13:28 -05:00
William Hubbs
013e7fb9fc allow options to be passed to killall5
This allows options to be passed to killall5 by the killprocs script.
This was added so that certain processes will not be killed during
shutdown.

x-Gentoo-Bug: 371625
x-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=371625
2011-06-23 21:52:44 -05:00
William Hubbs
e152199860 release openrc-0.8.3 2011-06-19 21:37:55 -05:00
William Hubbs
d4bdd32897 fix comment in conf.d/consolefont
X-Gentoo-Bug: 368277
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=368277
2011-06-19 18:39:12 -05:00
Mike Frysinger
8947c00204 sysctl: do not make unknown keys fatal
If unknown keys are found, currently sysctl would add all of its valid
settings, but then leave itself marked as "stopped".  Since this is not
really what we want, make unknown keys a non-fatal error.

Reported-by: Christian Ruppert <idl0r@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-06-18 10:06:41 -05:00
Christian Ruppert
4eb37f67cf Warn if deprecated commandline options are used for start-stop-daemon 2011-06-05 16:49:12 +02:00
Mike Frysinger
7ca74d7636 fix underquoting of wrapped color stubs of exit status
X-Gentoo-Bug: 369911
X-Gentoo-Bug-URL: http://bugs.gentoo.org/369911
Reported-by: Steve Dibb <beandog@gentoo.org>
Reported-by: Christian Ruppert <idl0r@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-06-03 20:41:43 -04:00
Mike Frysinger
e49da2af91 clean up gitignore files
Rather than listing explicit object files, ignore all of them in
the whole tree.

Also ignore patch/gdb related files throughout.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-06-03 17:07:22 -04:00
Diego Elio Pettenò
a2c8e5ce50 Don't set hostname on containers.
LXC already provides a means to set the utsname/hostname of the system, so
avoid overriding the user's configuration through hostname here.

Signed-off-by: Diego Elio Pettenò <flameeyes@gmail.com>
2011-06-02 11:34:13 -05:00
Mike Frysinger
11d8b70d74 rc-update: sort "show" output
X-Gentoo-Bug: 367305
X-Gentoo-Bug-URL: http://bugs.gentoo.org/367305
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-28 12:11:37 -04:00
Mike Frysinger
227f831639 cc.mk: move debug.mk out of end Makefiles
Since we always want debug.mk whenever we include cc.mk, move the include
out of the Makefiles and into cc.mk itself.  This also fixes an include
order bug in rc/Makefile where debug.mk is included before cc.mk and
breaks the default CFLAGS setup in cc.mk.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-28 12:00:34 -04:00
Mike Frysinger
98d3b407fe cc.mk: enable -g by default
Can do no harm!

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-28 12:00:13 -04:00
Mike Frysinger
fe18c7bb63 librc: tweak style: foo () -> foo()
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-28 11:53:29 -04:00
Mike Frysinger
f8ff4a86a3 rc: delete now unused local "i" variable
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-28 11:42:49 -04:00
Christian Ruppert
d59e245bc7 Fix dirname calls in runscript
runscript will try to get the dir and basename of a file/link in case it
contains at least one slash. This patch gives a temporary copy of the path to
the dirname() function since dirname() can modify its argument.
2011-05-23 14:23:15 -05:00
William Hubbs
74c8667497 fix keymaps config file to show the correct variable name
X-Gentoo-Bug: 367283
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=367283
2011-05-17 13:06:55 -05:00
Mike Frysinger
3d56124ed1 only warn about /run if it exists
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-16 18:49:21 -04:00
Mike Frysinger
bb34ea886a drop rc_sys funcs from removal schedule
The automagic detection isn't really problematic, and we allow people to
easily override this when detection isn't possible.  On the other hand,
if people haven't configured rc_sys in their rc.conf, the lack of auto
detection can easily lead to an unbootable system.

Further, we're attempting to have a stable shared library ABI, which
dropping funcs from is not feasible.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-16 18:00:18 -04:00
William Hubbs
fd48bc09ff net:bonding small style change for readability 2011-05-16 14:57:46 -05:00
Kfir Lavi
db1daa5857 Do not add slaves to bond interface if they are already added
X-Gentoo-Bug: 366653
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=366653
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2011-05-16 09:21:18 -04:00
Mike Frysinger
2493a1f32e net: ccwgroup: forward port changes from baselayout-1
Quite a bit of work happened in baselayout-1 on the ccwgroup module, but
seems it didn't make it into openrc.  So forward port all the existing
code so we can work with more than just qeth and layer2 options.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-05-16 01:22:32 -04:00
William Hubbs
40341fcd7e do not run services if openrc did not boot the system
X-Gentoo-Bug: 364159
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=364159
2011-05-11 14:54:41 -05:00
James Le Cuirot
8fcaba9a22 fix rc_service_extra_commands return value
If there were no extra commands, rc_service_extra_commands returned a
list containing a single empty string. This changes that to return an
empty list, which is more consistent with what you would expect.

X-Gentoo-Bug: 360013
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=360013
2011-04-27 15:27:16 -05:00
William Hubbs
04e256e3b8 fix list returned by rc_service_extra_commands
This function was returning the setting of the variable $opts, which is
not correct. $opts was used in baselayout-1, but it is replaced by
$extra_commands and $extra_started_commands in openrc.

This does not appear to break backward compatibility since this function
does not appear to be used anywhere in the openrc code.

Thanks to James Le Cuirot for the original patch.

X-Gentoo-Bug: 360013
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=360013
2011-04-27 14:46:59 -05:00
William Hubbs
b712a9161f change udhcpc support to busybox udhcpc
This updates the udhcpc support to use busybox's udhcpc instead of the
stand alone version.

I would like to thank jackieku <kjackie@gmail.com> for assisting with
this update.

X-Gentoo-Bug: 205286
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=205286
2011-04-26 15:25:08 -05:00
William Hubbs
8202e7dce4 add back the eend command in start/stop for local service
This was added back due to a user request. It will always be on a line
of its ownbecause I'm considering adding more verbose info messages to
local that show when each service is run if local is run with the -v
option.

X-Gentoo-Bug: 363343
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=363343
2011-04-21 13:02:49 -05:00
Robin H. Johnson
2d197357ef [oldnet] Bug #363959: Improve plug_timeout ifplugd/netplugd code.
- Add support for a global plug_timeout setting to match the
  documentation.
- Update the documentation to also show per-interface configuration.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-04-19 17:49:20 +00:00
William Hubbs
b6409feaac fix permissions for /run/lock
If /run/lock is a directory, set the ownership and permissions for it,
whether or not we created the directory.
2011-04-19 10:56:14 -05:00
Lars Wendler
ede4d1cd60 Don't unmount /run on shutdown
This is needed so that udev will stop properly on shutdown.

X-Gentoo-Bug: 363971
X-Gentoo-Bug-Url: http://bugs.gentoo.org/show_bug.cgi?id=363971
2011-04-18 15:26:19 -05:00
Amadeusz Żołnowski
64ef51ab09 Add support for /run directory
This is a new directory for storing volatile runtime data.
See https://lwn.net/Articles/436012

X-Gentoo-Bug: 363971
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=363971
2011-04-18 15:26:13 -05:00
William Hubbs
372bae3213 make rc_sys system specific
This rearranges the configuration files so it is more clear that the
rc_sys setting is system specific.

X-Gentoo-Bug: 363957
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=363957
2011-04-18 14:42:02 -05:00
Anthony G. Basile
ac56ab7f6d Check for /sys/module/usbcore before modprobe usbcore
The use of /proc/bus/usb to mount usbfs has been deprecated, but
the option is still available in the kernel.  The new approach is
to use /sys.  We should not modprobe usbcore if either /proc/bus/usb
or /sys/module/usbcore exist.

X-Gentoo-Bug: 363551
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=363551
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2011-04-17 09:12:20 -04:00
William Hubbs
ad8f455726 release openrc-0.8.2 2011-04-15 19:48:30 -05:00
William Hubbs
de0ded4ed0 revert changes for bug #292894
This is being done because these dependency changes caused a regression.
We will need to revisit the previously mentioned bug.

X-Gentoo-Bug: 363693
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=363693
2011-04-15 19:21:20 -05:00
Sebastian Thorarensen
75722dac4e termencoding should run after bootmisc
This change is necessary so that the unicode flag is not erased by
bootmisc.

X-Gentoo-Bug: 363611
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=363611
2011-04-14 15:21:02 -05:00
William Hubbs
2d14b172fa release openrc 0.8.1 2011-04-12 08:47:03 -05:00
William Hubbs
03cd55aa19 start loopback interface before mtab
X-Gentoo-Bug: 292894
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=292894
2011-04-11 15:33:41 -05:00
William Hubbs
85827d474c remove "after bootmisc" dependency from loopback interface 2011-04-10 17:24:44 -05:00
William Hubbs
8e925368b7 bring up the loopback interface earlier
For most situations, the loopback interface can depend on root instead
of localmount, so this patch makes that happen. It also adds comments to
the net.example files explaining when a user might want to change this
and giving an example.

I would like to thank Robin Johnson for the original patch and suggested
examples.

X-Gentoo-Bug: 292894
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=292894

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-04-10 16:10:47 -05:00
William Hubbs
15660dbbfc add fallback_routes support to network scripts
Add support for optional fallback_routes_* variables in the network scripts.
This is similar to the fallback_route_* support in baselayout-1.
However, if you do not have fallback_routes set for an interface but you
do have routes set, that setting will be used, so you do not need this
variable unless you want the fallback routes to be different from the
primary routes.

X-Gentoo-Bug: 250978
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=250978
2011-04-09 13:54:01 -05:00
William Hubbs
07db27d220 typo fix
X-Gentoo-Bug: 217999
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=217999
2011-04-09 13:00:44 -05:00
William Hubbs
16f7e90c6c clarify documentation for -timeout keyword 2011-04-08 14:08:29 -05:00
William Hubbs
c7c278dfd4 do not timeout waiting for bootmisc to complete
It is possible for bootmisc to take longer than 60 seconds to complete
and services should not time out waiting for it.

X-Gentoo-Bug: 360405
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=360405
2011-04-08 14:01:13 -05:00
William Hubbs
73c862b792 fix typo in ethtool.sh
This was causing the ethtool interface to not work.

X-Gentoo-Bug: 360481
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=360481
2011-04-07 07:48:56 -05:00
William Hubbs
46e67badd2 fix typo in staticroute
X-Gentoo-Bug: 362205
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=362205
2011-04-07 07:19:53 -05:00
William Hubbs
67640d2d97 remove hard coded directory paths from link flags
Currently, we do not see a reason for these, and it causes an issue for
cross compilation.

X-Gentoo-Bug: 361465
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=361465
2011-04-01 17:32:12 -05:00
Robin H. Johnson
8a45d5e24e Bug #360963: Improve interface naming/set_name_type documentation on new vlan code.
This is primarily for users with set_name_type settings from previous
sysadmins can easily see what changes to make.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-03-29 07:54:50 +00:00
Marc Joliet
6e1239795f remove bashism from ethtool module
X-Gentoo-Bug: 360367
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=360367
2011-03-27 15:45:45 -05:00
Mike Frysinger
7c1a2defb6 bootmisc: clean up tmpdir cleaning
Make sure that the `cd` into the $dir actually happened.  This we don't
have to worry about relative paths deleting stuff it shouldn't.  This
step shouldn't fail, but who knows, and better to be sane than to wipe
out someone's valuables.

When wiping, automatically fall back to a dedicated `find` if the initial
`rm` failed on us.  This should help with the speed issues related to the
later `find`.

Have the later find only search the top level allowing `rm` to walk the
directory contents.  This means that -xdev no longer applies, but since
the earlier `rm` wasn't doing -xdev either and no one has complained thus
far, let's assume it isn't an issue.  Also convert to the -exec...+ form
so that we don't have to worry about long argument lists, and add -- to
the `rm` that was previously missing.  In practice, this shouldn't matter
as we've already deleted all those files, but better safe than sorry.

When cleaning, since we've already done a `cd` into the $dir, no point in
prefixing all the paths with $dir too.  Go with the relative loving.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
X-Gentoo-Bug: 359831
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=359831
2011-03-25 11:25:25 -05:00
William Hubbs
1d63e85794 rework test for mounted /proc
The previous test assumed that we could always rely on the minor fault
counter to change between reads of /proc/self/stat, but we found that
this is not the case.

The new test compares two reads of /proc/self/environ for which we have
set the same environment variable to two different values.
If the comparison shows the two reads have the same contents, we know
that /proc is not working.

I would like to thank Robin Johnson and Mike Frysinger for their input
for this patch.

X-Gentoo-Bug: 348416
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=348416
2011-03-24 19:14:16 -05:00
William Hubbs
25049d3e80 termencoding needs root to be mounted read/write
X-Gentoo-Bug: 360215
X-Gentoo-Bug-URL: http://bugs.gentoo.org/360215
2011-03-23 22:41:03 -05:00
William Hubbs
b875abd1a5 release openrc-0.8.0 2011-03-22 00:46:24 -05:00
William Hubbs
c020454c84 update documentation for windowkeys variable
The documentation makes a recommendation for the setting but does not
state the purpose of the variable.

X-Gentoo-Bug: 357869
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=357869
2011-03-22 00:34:50 -05:00
Ed Wildgoose
60d8d4f5bb do not delete addresses when stopping a ppp interface.
This is important in situations where ppp is being used in a demand
dialing setup.

X-Gentoo-Bug: 359069
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=359069
2011-03-21 23:55:55 -05:00
William Hubbs
c9912942f0 update documentation for rc_sys
Originally the plan was to deprecate this code, but this will not be
happening. There are some subsystems which can still be autodetected, so
we are keeping this code and allowing users to override the automatic
detection with this variable as well as set it to other subtypes we
cannot autodetect.

X-Gentoo-Bug: 357247
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=357247
2011-03-21 23:04:08 -05:00
Mike Frysinger
9f5eb03e5e net: bonding: avoid using bash string replace
X-Gentoo-Bug: 359311
X-Gentoo-Bug-URL: http://bugs.gentoo.org/359311
Reported-by: Raffaello D. Di Napoli <fastijum@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-18 14:24:18 -04:00
Mike Frysinger
d7e48fe643 rc_sys: let default behavior be automagic
The default rc_sys behavior was changed to always require manual
intervention by users.  This pretty much breaks all of the diff
system variants out there if people don't explicitly edit their
rc.conf file ahead of time.  We should have things work "out of
the box" as much as possible and reasonable.

X-Gentoo-Bug: 357247
X-Gentoo-Bug-URL: http://bugs.gentoo.org/357247
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-03-14 20:35:08 -05:00
William Hubbs
87302487d2 savecache should not fail if we are shutting down
Since mount-ro needs to run unconditionally, we need to have savecache
report that it ran successfully when the system is shutting down.

X-Gentoo-Bug: 356393
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=356393
2011-03-06 11:50:06 -06:00
William Hubbs
0f3d6a01c7 remove references to the migration guide
The openrc code base is not gentoo specific, so I feel that we should
not refer to the migration guide in the comments inside the configuration
files.
2011-03-05 00:11:24 -06:00
William Hubbs
3fca6bd027 allow default rc_sys value to be set at build time
This allows the default value of rc_sys to be set when openrc is
compiled. This will allow openrc to be installed, e.g. on vserver guests
and will allow them to be rebooted without the need to edit rc.conf.

This patch is a combined effort between myself and Robin Johnson.

X-Gentoo-Bug: 357247
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=357247
2011-03-05 00:04:06 -06:00
William Hubbs
202fa20cbc fix typo 2011-03-03 15:06:39 -06:00
Robin H. Johnson
dfd42d1393 net/ethtool: official interface for changing ethtool params (bug #195479)
Implement a consistent interface for changing ethtool parameters, as
suggested in bug 195479. All variable names are based on the long option
to ethtool to set each group of parameters. Multiple entries seperated
by newlines are permitted for variable values.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Gentoo-Bug: 195479
2011-02-22 02:59:38 +00:00
Robin H. Johnson
22918ccf51 Update README.net to note that it represents newnet only. 2011-02-22 01:27:31 +00:00
Robin H. Johnson
20480048ca net/iproute2: Pass required explicit -6 for IPv6 tunnels (#347657)
Tunnel modes ipip6 and ip6ip6 require an explicit family selection for
the ip tunnel call.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Gentoo-Bug: 347657
2011-02-21 09:55:47 +00:00
Robin H. Johnson
683a21b0a0 net/vlan: update to use modern iproute2 interface
This replaces the vlan setup code that previously used the old vconfig
binary with a new implementation using the iproute2 interface.

vconfig does not handle many of the newer setups. No automatic migration
path is provided, as altering the configuration is non-trivial.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Written-by: Guillaume Castagnino <casta@xwing.info>
X-Gentoo-Bug: 346365
2011-02-21 09:41:48 +00:00
William Hubbs
b512d0db98 new implementation of applet option
This reworks the implementation of the --applet option so that it is
processed in run_applets() and does not require two calls to the
getopts_long() function. It is based on code by Robin Johnson and Chris
Richards.

X-Gentoo-Bug: 351712
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=351712
2011-02-16 09:00:38 -06:00
William Hubbs
73d1a8698e make version option common
This reworks the code for the version option so that it is part of the
parser loop and is a common option to all applets.
2011-02-14 18:40:05 -06:00
Sebastian Thorarensen
bae0a693a9 Set unicode mode immediately at boot without consolefont
X-Gentoo-Bug: 354793
X-Gentoo-Bug-URL: http://bugs.gentoo.org/354793
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
2011-02-14 18:54:35 -05:00
Mike Frysinger
35d38c3561 local: quote script names to handle spaces
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-14 12:06:58 -05:00
Mike Frysinger
c0aa27ef32 tests: filter valid parisc relocs
Parisc generates a few relocs against internal symbols which are OK.

X-Gentoo-Bug: 258913
X-Gentoo-Bug-URL: http://bugs.gentoo.org/258913
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-14 12:06:58 -05:00
Mike Frysinger
11fcb0217e hwclock: fix typo from an earlier style commit
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-02-14 12:06:58 -05:00
Anthony G. Basile
c8b5078660 Fix bug #354805 2011-02-14 04:41:08 -05:00
Christian Wetzig
7bc920ab56 fix typo in iproute2 module
X-Gentoo-Bug: 354511
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=354511
2011-02-12 13:34:46 -06:00
William Hubbs
ebd79394a3 set timezone if RC_HCTOSYS is not set
We need to set the timezone for the system clock even when we allow the
kernel to set the time.

X-Gentoo-Bug: 248131
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=248131
2011-02-09 23:15:24 -06:00
William Hubbs
04379b2de9 fix symlink target
The target for the symlinks in ${SBINDIR} (the same directory as the rc
binary) was "rc". This is not correct; the target should be
${SBINDIR}/rc instead.
2011-02-07 02:25:00 -06:00
Christian
43678fd2c4 bridge.sh: use correct POSIX test, = not ==
X-Gentoo-Bug: 353124
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=353124
2011-02-05 07:24:11 -06:00
William Hubbs
db6d680765 rework pam, ncurses and termcap include files
This allows error checking inside the included files instead of either
including the appropriate file or a blank file.

Also the blank file named .mk gets removed by this change.
2011-02-04 22:30:30 -06:00
William Hubbs
a2e9cde737 remove BSD make code to handle including .depend 2011-02-04 22:28:57 -06:00
William Hubbs
aaaea44d22 use make conditional for -cstd flag
cc.mk was using ashell call to determine the value of the cstd variable.
This reworks that code so it uses a make conditional.
2011-02-04 22:26:23 -06:00
William Hubbs
19037cbd83 remove unnecessary shell calls
The main makefile, init.d/Makefile and src/librc/Makefile all contain
several shell calls which can be handled as make conditionals. This
switches them to conditionals.
2011-02-04 17:46:57 -06:00
Chris Richards
21c5a022af selinux: replace symlinks with wrapper scripts
This needs to be done on selinux systems so the proper context can be
set for each rc applet.

X-Gentoo-Bug: 351712
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=351712
2011-01-31 14:54:02 -06:00
William Hubbs
cca7e9f7e1 use immediate evaluation for shell calls
This reworks the shell calls in the makefiles to use immediate
evaluation and should improve parallel building.

X-Gentoo-Bug: 289264
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=289264
2011-01-31 14:05:57 -06:00
William Hubbs
c2529c1ed6 only support building with GNU Make
Update the documentation to state that openrc only works with gnu make.
This needs to be done in order to address the parallel build issue.

X-Gentoo-Bug: 289264
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=289264
2011-01-31 14:03:45 -06:00
William Hubbs
fa1fefb2bc add option to disable setting the system clock on boot for linux systems
This commit adds the clock_hctosys option which is used to skip setting
the system clock on boot and can be used with a modern linux kernel
which has the CONFIG_RTC_HCTOSYS option set to y.
I would like to thank Dimitris Mandalidis for the report and for the
patch to baselayout-1 on which my changes to openrc are based.

X-Gentoo-Bug: 248131
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=248131
2011-01-24 21:37:51 -06:00
William Hubbs
10ce67886d change local to run programs
This changes the local service so that it will run programs located in
@sysconfdir@/local.d instead of the local_start and local_stop functions
from @sysconfdir@/conf.d/local.

The advantage for the user is that these programs are not part
of the openrc package, so the user does not have to worry about them
being overwritten when openrc is upgraded.

X-Gentoo-Bug: 351465
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=351465
2011-01-20 12:50:29 -06:00
Robin H. Johnson
eebb2d1b9c test: You need to run "make" before "make check" will work.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-18 01:49:22 +00:00
Robin H. Johnson
e39178de28 docs: make check does not catch textfile trailing whitespace. 2011-01-18 01:48:53 +00:00
Robin H. Johnson
9c5aa8a3f7 Document all deprecated code for future removal. 2011-01-18 01:41:29 +00:00
Robin H. Johnson
80853f5dbc sh/init: Detect a mounted /proc without sleeping
Previously we checked if /proc was alive by reading /proc/uptime twice
with a 1 second sleep between calls, so that it had time to update.
This got a complaint of an entire 1 second delay, so we improve the
check to be much faster without sleep. We cannot continue to use
/proc/uptime as it only has a 10ms resolution.

X-Gentoo-Bug: 348416
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=348416
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-18 01:29:09 +00:00
Mike Frysinger
9ce957c3e7 librc: delete trailing newlines
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 20:05:13 -05:00
Mike Frysinger
c825a74dd1 tests: check for trailing blank newlines
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 20:04:53 -05:00
Robin H. Johnson
69abe1b2e8 Add removal schedule document for code trimming/deprecation. 2011-01-17 22:31:11 +00:00
Robin H. Johnson
164b8e4e04 Document that rc_sys_v{1,2} should not be used outside of OpenRC. 2011-01-17 22:30:40 +00:00
Robin H. Johnson
de8b4855d3 Bug #351570: Fix hidden functions visibility for rc_deptree_load_file. 2011-01-17 19:36:51 +00:00
Robin H. Johnson
f3f55f1f6d Build cleanup: librc.funcs.hidden.list is generated by testsuite. 2011-01-17 19:34:09 +00:00
Robin H. Johnson
2b7c2b8cf1 Bug #351570: Hidden function fixes: rc_conf_value.
Refactor rc_conf_value into librc for use in library context.
Also requires moving:
- rc_conf internal static
- Defines: PROFILE_ENV, SYS_WHITELIST, USR_WHITELIST, RC_PATH_PREFIX
  moved to rc.h with new RC_ prefix added.
- Defines: RC_CONF, RC_CONF_OLD moved to rc.h.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-17 19:29:45 +00:00
Mike Frysinger
6e876bca13 tests: check for common style issues
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 04:49:35 -05:00
Mike Frysinger
faa2df1159 more whitespace cleanup
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 04:49:12 -05:00
Mike Frysinger
711713d664 start-stop-daemon: use termios.h rather than sys/termios.h
POSIX specifies termios.h, not sys/termios.h.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 04:48:13 -05:00
Mike Frysinger
8b5e391afb start a STYLE file
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 04:23:09 -05:00
Mike Frysinger
1e73fd4b1e tests: setup env before reading local files
The local files we source might use local binaries (like eval_ecolors),
so setup the env first.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 04:07:24 -05:00
Mike Frysinger
f796269a1d dist.mk: add a standard "distcheck" target
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-17 04:03:25 -05:00
Robin H. Johnson
b2d0656814 Style fix: "char *foo" not "char* foo". 2011-01-17 08:46:41 +00:00
Robin H. Johnson
c0a3e25d48 Style fix: /* */ comments not // comments. 2011-01-17 08:43:40 +00:00
Robin H. Johnson
0c93f4df32 Style fix: "while (" not "while(". 2011-01-17 08:42:28 +00:00
Robin H. Johnson
b1fcf4ce9c Style fix: "if (" not "if(". 2011-01-17 08:41:02 +00:00
Robin H. Johnson
6804edfc85 Better error checking of argc for --applet call. 2011-01-17 08:39:44 +00:00
Robin H. Johnson
bfb87f2d51 Use xstrdup for style. 2011-01-17 08:34:03 +00:00
Robin H. Johnson
e6fc30da61 Clean up all trailing whitespace in src/. 2011-01-17 08:28:43 +00:00
Robin H. Johnson
49339525a9 Bug #351712: Implement --applet selection mode for SELinux wrappers.
In addition to detecting what multicall applet we want via argv[0],
provide an explicit override mode with a --applet initial argument.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-17 07:37:43 +00:00
Robin H. Johnson
1f578cdbad Add TODO item. 2011-01-17 06:59:37 +00:00
Robin H. Johnson
b00ad439a6 Add new option -F to rc-depend tool, so that we can debug user deptree files easily. 2011-01-17 06:53:50 +00:00
Robin H. Johnson
0e90ae266a Factor out new function rc_deptree_load_file to aid in debugging deptree files from users. Loads from a given filename instead of the hardcoded RC_DEPTREE_CACHE define. 2011-01-17 06:32:46 +00:00
Robin H. Johnson
b113ad49e9 Bug #351783: more documentation for rc_sys. But really see the OpenRC migration guide where this is covered. 2011-01-16 22:48:10 +00:00
Nathan Phillip Brink
a534b623b9 bug #351622: Use CFLAGS during linking.
Fix compilation on portage-multilib.
2011-01-14 16:40:58 -06:00
William Hubbs
882a4b7d69 bug 351523: fix deprecation date for rc_sys
The deprecation notice for automatic detection of the system type stated
that the automatic detection will be removed no later than 2010/03/01,
but it should state 2011/03/01.
2011-01-13 10:37:45 -06:00
William Hubbs
ac8b4be7c2 release openrc-0.7.0 2011-01-12 20:14:17 -06:00
Eray Aslan
66abbefd6c bug 351160: make openrc exit codes LSB compliant
* status on a stopped service now has a return code of 3 (was 1)
* starting an already started service now has a return code of 0 (was 1)
* stopping an already stopped service now has a return code of 0 (was 1)
2011-01-12 19:46:11 -06:00
William Hubbs
84eda608c8 bug 328675: add error checking to runscript.sh
runscript.sh needs to abort if the . command used to load
conf.d files and the service script does not execute successfully.
I would like to thank Mike Frysinger for his input wrt style on this
patch.
2011-01-12 19:21:48 -06:00
Mike Frysinger
e3905ed7bb update bug reporting information
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2011-01-08 18:35:08 -05:00
Chris Richards
92b6262ac7 Bug 349571 - SELinux fixes for bootmisc
- delete the contents of the $RC_LIBEXECDIR/console directory but not
  the directory itself.
  - direct error output from the chmod call for /tmp to /dev/null.
2011-01-06 18:20:53 -06:00
Robin H. Johnson
647df8cfe7 Make sure old rc_sys code never runs if the rc_sys variable exists.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-05 22:33:03 -08:00
Robin H. Johnson
6a0812645a Update manpage for mention of rc_sys purpose.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-05 22:27:35 -08:00
Robin H. Johnson
3d4d1ab14b Remove broken automatic LXC subsystem detection.
Any system using cgroups was being detected as an LXC system. This was
triggering on OpenVZ under RHEL6 as well as the "automated per tty task
groups" as discussed on the LKML.

All LXC users should now switch to the new rc_sys variable introduced in
the previous patch.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-05 22:09:34 -08:00
Robin H. Johnson
09f990a7c8 Implement explicit selection of subsystem types.
- Fixes bugs #347583, #349389, both of which were triggered by cgroups
  being detected as the LXC subsystem type.
- Makes it much easier to select "prefix" type.
- "rc -S" will now print a warning if you have not configured rc_sys in
  /etc/rc.conf
- All other semantics of rc_sys are unchanged in this patch.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2011-01-05 22:09:34 -08:00
Robin H. Johnson
6df531d33d Document the order of the services within rc-status output. 2011-01-05 22:09:33 -08:00
William Hubbs
b2e9b91852 bug #349443: remove -openvz keyword from sysctl service
Openvz supports sysctl settings which are different from the host
settings, so allow the sysctl service to run for openvz systems.
2010-12-28 13:54:19 -06:00
Robin H. Johnson
f84d997d4c Move the ip rule extra output to verbose mode only, and support verbose output on addresses and routes. 2010-12-15 13:02:04 -08:00
Robin H. Johnson
346148ceb8 Fix pointopoint->peer for iproute. 2010-12-15 12:40:21 -08:00
Robin H. Johnson
12a91636f4 Fix pointopoint typo in old ifconfig setup. 2010-12-15 12:37:50 -08:00
Robin H. Johnson
7f7baa6c3c Bug #266659: we really need to allow peer, pointtopoint in parsing config lines. 2010-12-11 18:29:34 -08:00
Robin H. Johnson
400b45d590 Final documentation cleanup for updated bridge code.
Specifically document how to handle the case of explicitly starting a
bridge and then dynamically adding interfaces to it.

brctl_br0=''
bridge_add_eth0='br0'
2010-12-12 00:58:47 +00:00
Robin H. Johnson
e431599d08 Add "after lvm modules" as Flameeyes reports that LVM is starting too late on his system in some cases. 2010-12-11 14:25:46 -08:00
Robin H. Johnson
e07f0ef417 Merge support for Routing Policy Database (RPDB)
This can be used for multi-homed connections and other advanced routing
in Linux. See the documentation links for more information about doing
this in linux.

The code was a originally pure addon into the conf.d/net files, written
in mid-2004 for doing multi-homing between two internet connections. I
have finally cleaned this up and integrated it. Thanks to Jonathan Kwan
for giving me the original impetus to develop this for Gentoo (it was
his dual internet connections...).

In the intervening years, it was a example of postup/postdown in the
net.example file, however that suffered from a few corner case issues.

If you were using the code from net.example, please see the updated
section 'Advanced Routing' on syntax, and drop your old function blocks.
Additionally, note that the rules added are now directly saved for
removal when the interface is taken down.
2010-12-11 14:23:52 -08:00
Robin H. Johnson
dbb5af2023 Revamp of bridging code.
- Use sysfs to read bridge information from the system instead of
  parsing the brctl outputs.
- Allow setting of all bridge configuration parameters using new sysfs
  methods, modelled after bonding configuration. Also works for per-port
  bridge interface parameters.
- Document pre-starting an empty bridge for dynamic add.
- Check for interface existence before adding to bridge.
- Should fix bug #293046, #309185.
2010-12-11 12:26:38 -08:00
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
272 changed files with 7397 additions and 3960 deletions

16
.gitignore vendored Normal file
View File

@@ -0,0 +1,16 @@
*.bz2
*.diff
*.patch
*.orig
*.rej
core
.gdb_history
.gdbinit
.depend
*.a
*.o
*.So
lib*.so

49
FEATURE-REMOVAL-SCHEDULE Normal file
View File

@@ -0,0 +1,49 @@
The following is a list of files and features that are going to be removed in
the source tree. Every entry should contain what exactly is going away, why it
is happening, and who is going to be doing the work. When the feature is
removed, it should also be removed from this file.
---------------------------
What: oldnet ADSL rp-pppoe mode
When: undecided
Why: Replaced by the oldnet PPP module
Who: Robin H. Johnson <robbat2@gentoo.org>
---------------------------
What: oldnet /etc/conf.d/wireless
When: undecided
Why: All configuration moved to /etc/conf.d/net
Who: Robin H. Johnson <robbat2@gentoo.org>
---------------------------
What: Service pause action
When: Removed already, compatbility warning in place.
Why: ...
Who:
---------------------------
What: Service --startas, --chuid , --oknodo
When: undecided
Why: Obsolete or replaced by other options.
--startas => use --name or --exec
--chuid => use --user
--oknodo => ignore return code instead
Who:
---------------------------

View File

@@ -1,12 +1,17 @@
# OpenRC Makefile
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
NAME= openrc
VERSION= 0.4.1
PKG= ${NAME}-${VERSION}
include Makefile.inc
SUBDIR= conf.d doc etc init.d local.d man net scripts sh src
# Build pkgconfig or not
MKPKGCONFIG?= yes
ifeq (${MKPKGCONFIG},yes)
SUBDIR+= pkgconfig
endif
SUBDIR= conf.d doc etc init.d man net sh src
# We need to ensure that runlevels is done last
SUBDIR+= runlevels
@@ -17,7 +22,9 @@ include ${MK}/sys.mk
include ${MK}/os.mk
include ${MK}/subdir.mk
include ${MK}/dist.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.9.8.1
PKG= ${NAME}-${VERSION}

36
README
View File

@@ -4,13 +4,17 @@ OpenRC README
Installation
------------
make install
Yup, that simple. Works with GNU make and BSD make.
Yup, that simple. Works with GNU make.
You may wish to tweak the installation with the below arguments
PROGLDFLAGS=-static
LIBNAME=lib64
DESTDIR=/tmp/openrc-image
MKPAM=pam
MKPKGCONFIG=no
MKRCSYS=prefix
MKSELINUX=yes
MKSTATICLIBS=no
MKTERMCAP=ncurses
MKTERMCAP=termcap
PKG_PREFIX=/usr/pkg
@@ -30,6 +34,20 @@ LOCAL_PREFIX should be set when to where user maintained packages are.
Only set LOCAL_PREFIX if different from PKG_PREFIX.
PREFIX should be set when OpenRC is not installed to /.
MKRCSYS should be set only if you need to specify a default system
subtype. The subtype should be set to match the type of environment the
file is installed into, not the virtualization the environment is
capable of handling. Here is a list of subtypes and their meanings.
jail FreeBSD jail
lxc Linux container
openvz Linux OpenVZ
prefix Linux and *BSD prefix system
uml UsermodeLinux
vserver Linux vserver
xen0 Linux and NetBSD xen0 Domain
xenU Linux and NetBSD xenU Domain
If any of the following files exist then we do not overwrite them
/etc/devd.conf
/etc/rc
@@ -39,7 +57,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
@@ -51,19 +69,19 @@ of the system.
Reporting Bugs
-------------
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
--------------
Since Gentoo Linux is hosting OpenRC development, Bugs should go to
the Gentoo Bugzilla:
http://bugs.gentoo.org/
They should be filed under the "Gentoo Hosted Projects" product and
the "openrc" component.
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.

85
STYLE Normal file
View File

@@ -0,0 +1,85 @@
This is the openrc style manual. It governs the coding style of all code
in this repository. Follow it. Contact openrc@gentoo.org for any questions
or fixes you might notice.
##########
# C CODE #
##########
The BSD Kernel Normal Form (KNF) style is used:
http://en.wikipedia.org/wiki/Indent_style#BSD_KNF_style
Basically, it's like K&R/LKML, but wrapped lines that are indented use 4 spaces.
Highlights:
- no trailing whitespace
- indented code use tabs (not line wrapped)
- cuddle the braces (except for functions)
- space after native statements and before paren (for/if/while/...)
- no space between function and paren
- pointer asterisk cuddles the variable, not the type
void foo(int c)
{
int ret = 0;
if (c > 1000)
return;
while (c--) {
bar(c);
ret++;
}
return ret;
}
##################
# COMMIT MESSAGES #
##################
The following is an example of a correctly formatted git commit message
for this repository. Most of this information came from this blog post
[1], so I would like to thank the author.
### cut here ###
Capitalized, short (50 chars or less) summary
More detailed explanatory text, if necessary. Wrap it to about 72
characters or so. In some contexts, the first line is treated as the
subject of an email and the rest of the text as the body. The blank
line separating the summary from the body is critical (unless you omit
the body entirely); tools like rebase can get confused if you run the
two together.
Write your commit message in the present tense: "Fix bug" and not "Fixed
bug." This convention matches up with commit messages generated by
commands like git merge and git revert.
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Typically a hyphen or asterisk is used for the bullet, preceded by a
single space, with blank lines in between, but conventions vary here
- Use a hanging indent
Reported-by: User Name <email>
X-[Distro]-Bug: BugID
X-[Distro]-Bug-URL: URL for the bug (on the distribution's web site typically)
### cut here ###
If you did not write the code and the patch does not include authorship
information in a format git can use, please use the --author option of the
git commit command to make the authorship correct.
The Reported-by tag is required if the person who reported the bug is
different from the author and committer.
The X-[Distro]-Bug/Bug-URL tags are required if this commit is related
to a bug reported to us by a specific distribution of linux or a
*BSD. Also, [Distro] should be replaced with the name of the
distribution, e.g. X-Gentoo-Bug.
[1] http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html

4
TODO
View File

@@ -1,3 +1,7 @@
- ensure all forks block, restore and unblock signals. needs review
- add support somehow for optional translations
- oldnet[bridging]: Review setting of bridge configuration on dynamic interface add
- Document rc-depend binary.

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

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

View File

@@ -1,7 +1,23 @@
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname local localmount net urandom
CONF= bootmisc fsck hostname localmount network staticroute urandom \
${CONF-${OS}}
TARGETS+= network staticroute
CLEANFILES+= network staticroute
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
CONF-FreeBSD= ipfw moused powerd rarpd savecore syscons
CONF-Linux= consolefont dmesg hwclock keymaps killprocs modules
CONF-NetBSD= moused rarpd savecore
include ${MK}/scripts.mk
network: network.in network${SFX}
cat $^ > $@
staticroute: staticroute${SFX}
cp $@${SFX} $@

View File

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

View File

@@ -1 +0,0 @@
CONF+= consolefont dmesg hwclock keymaps modules

View File

@@ -1 +0,0 @@
CONF+= moused rarpd savecore

View File

@@ -1,6 +1,10 @@
# 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... ?
wipe_tmp="YES"
# Write the initial dmesg log into /var/log/dmesg after boot
# This may be useful if you need the kernel boot log afterwards
log_dmesg="YES"

View File

@@ -3,7 +3,7 @@
# you shouldn't specify the trailing ".psf.gz", just the font name below.
# To use the default console font, comment out the CONSOLEFONT setting below.
# This setting is used by the /etc/init.d/consolefont script (NOTE: if you do
# not want to use it, run "rc-update del consolefont" as root).
# not want to use it, run "rc-update del consolefont boot" as root).
consolefont="default8x16"
# consoletranslation is the charset map file to use. Leave commented to use

View File

@@ -13,6 +13,18 @@
#fsck_passno=">1"
#fsck_passno="<2"
# If passno is not enough granularity, you can also specify mountpoints to
# check. This should NOT be used for the default non-multiplexed fsck, or your
# system might not be checked. Additionally, it is mutually exclusive with
# the fsck_passno setting.
#fsck_mnt=""
#fsck_mnt="/home"
# 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,14 +1,22 @@
# 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"
# If you want to set the system time to the current hardware clock
# during bootup, then say "YES" here. You do not need this if you are
# running a modern kernel with CONFIG_RTC_HCTOSYS set to y.
# Also, be aware that if you set this to "NO", the system time will
# never be saved to the hardware clock unless you set
# clock_systohc="YES" above.
clock_hctosys="YES"
# If you wish to pass any other arguments to hwclock during bootup,
# you may do so here. Alpha users may wish to use --arc or --srm here.
clock_args=""

View File

@@ -1,9 +1,11 @@
# Use KEYMAP to specify the default console keymap. There is a complete tree
# Use keymap to specify the default console keymap. There is a complete tree
# of keymaps in /usr/share/keymaps to choose from.
keymap="us"
# Should we first load the 'windowkeys' console keymap? Most x86 users will
# say "yes" here. Note that non-x86 users should leave it as "no".
# Loading this keymap will enable VT switching (like ALT+Left/Right)
# using the special windows keys on the linux console.
windowkeys="NO"
# The maps to load for extended keyboards. Most users will leave this as is.

3
conf.d/killprocs Normal file
View File

@@ -0,0 +1,3 @@
# If you wish to pass any options to killall5 during shutdown,
# you should do so here.
killall5_opts=""

View File

@@ -1,18 +0,0 @@
# Here is where you can put anything you need to start
# that there is not an init script for.
local_start() {
# This is a good place to load any misc programs
# on startup (use &>/dev/null to hide output)
# We should always return 0
return 0
}
local_stop() {
# This is a good place to unload any misc.
# programs you started above.
# We should always return 0
return 0
}

View File

@@ -1,8 +1,10 @@
# You can define a list modules for a specific kernel version,
# a released kernel version, a main kernel version or just a list.
# The most specific versioned variable will take precedence.
#modules_2_6_23_gentoo_r5="ieee1394 ohci1394"
#modules_2_6_23="tun ieee1394"
#modules_2_6="tun"
#modules_2="ipv6"
#modules="ohci1394"
# You can give modules a different name when they load - the new name
@@ -10,10 +12,12 @@
#modules="dummy:dummy1"
# Give the modules some arguments if needed, per version if necessary.
# Again, the most specific versioned variable will take precedence.
#module_ieee1394_args="debug"
#module_ieee1394_args_2_6_23_gentoo_r5="ieee1394 ohci1394"
#module_ieee1394_args_2_6_23="tun ieee1394"
#module_ieee1394_args_2_6="tun"
#module_ieee1394_args_2_6_23_gentoo_r5="debug2"
#module_ieee1394_args_2_6_23="debug3"
#module_ieee1394_args_2_6="debug4"
#module_ieee1394_args_2="debug5"
# You should consult your kernel documentation and configuration
# for a list of modules and their options.

View File

@@ -1,4 +1,4 @@
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /usr/share/doc/openrc/net.example and save your configuration
# please review /usr/share/doc/openrc*/net.example* and save your configuration
# in /etc/conf.d/net (this file :]!).

4
conf.d/network.BSD.in 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.in 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"

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"

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

@@ -2,4 +2,4 @@
# (say for crypt swap), so you will need to customize this
# behavior. If you have /var on a separate partition, then
# make sure this path lives on your root device somewhere.
urandom_seed="/var/run/random-seed"
urandom_seed="/var/lib/misc/random-seed"

1
doc/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
net.example

View File

@@ -1,7 +1,11 @@
DIR= ${DOCDIR}/openrc
SRCS= net.example.in
INC= net.example
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
%.example.in: %.example${SFX}
${CP} $< $@
include ${MK}/scripts.mk

View File

@@ -1,5 +0,0 @@
SRCS+= net.example.in
.SUFFIXES: .BSD.in
.BSD.in:
${CP} $< $@

View File

@@ -1,5 +0,0 @@
SRCS+= net.example.in
.SUFFIXES: .Linux.in
.Linux.in:
${CP} $< $@

View File

@@ -1,5 +0,0 @@
SRCS+= net.example.in
.SUFFIXES: .BSD.in
.BSD.in:
${CP} $< $@

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)
@@ -72,10 +67,12 @@
# If a specified module fails (like dhcp - see below), you can specify a
# fallback like so
#fallback_eth0="192.168.0.2 netmask 255.255.255.0"
#fallback_route_eth0="default via 192.168.0.1"
#fallback_routes_eth0="default via 192.168.0.1"
# NOTE: fallback entry must match the entry location in config_eth0
# As such you can only have one fallback route.
# Also, if you do not set a fallback_routes entry for an interface, the
# routes entry will be used if that is set.
# Some users may need to alter the MTU - here's how
#mtu_eth0="1500"
@@ -101,8 +98,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
#
@@ -187,7 +184,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!
@@ -198,7 +195,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"
@@ -213,11 +210,11 @@
# 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
# "forceany" does the same as forcepreferred + connects to any other
# available AP
# Default is "any"
#associate_order="any"
@@ -242,12 +239,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.
@@ -271,13 +268,13 @@
# won't have associated then)
# If you're using anything else to configure wireless on your interface AND
# you have installed wpa_supplicant, you need to disable wpa_supplicant
# you have installed wpa_supplicant, you need to disable wpa_supplicant
#modules="!iwconfig !wpa_supplicant"
#or
#modules="!wireless"
##############################################################################
# WIRELESS SSID IN VARIABLES
# WIRELESS SSID IN VARIABLES
##############################################################################
# Remember to change SSID to your SSID.
# Say that your SSID is My NET - the line
@@ -325,7 +322,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
@@ -373,7 +370,7 @@
##############################################################################
# ADVANCED CONFIGURATION
#
#
# Four functions can be defined which will be called surrounding the
# start/stop operations. The functions are called with the interface
# name first so that one function can control multiple adapters. An extra two
@@ -391,6 +388,17 @@
#
# ${IFACE} is set to the interface being brought up/down
# ${IFVAR} is ${IFACE} converted to variable name bash allows
#
# For historical and compatibility reasons, preup is actually normally called
# in the following sequence: up ; preup ; up.
# The first up causes the kernel to initialize the device, so
# that it is available for use in the preup function. However, for some
# hardware, e.g. CAN devices, some configuration is needed before trying to up
# the interface will actually work. For such hardware, the
# up_before_preup variables will allow skipping the first up call if set
# to yes.
#up_before_preup_IFVAR="NO"
#up_before_preup="NO"
#preup() {
# # Remember to return 0 on success

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.
@@ -49,7 +49,7 @@
##############################################################################
# INTERFACE HANDLERS
#
#
# We provide two interface handlers presently: ifconfig and iproute2.
# You need one of these to do any kind of network configuration.
# For ifconfig support, emerge sys-apps/net-tools
@@ -68,13 +68,9 @@
# NOTE: ifconfig creates an aliased device for each extra IPv4 address
# (eth0:1, eth0:2, etc)
# iproute2 does not do this as there is no need to
# WARNING: You cannot mix multiple addresses on a line with other parameters!
#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)
@@ -90,6 +86,14 @@
# If you don't want ANY address (only useful when calling for advanced stuff)
#config_eth0="null"
# If you need to pass parameters to go with an address, you can do so on the
# same line as the address. You should split multiple addresses with newlines.
# WARNING: You cannot mix multiple addresses on a line with other parameters!
#config_eth0="192.168.0.2/24 scope host"
#config_eth0="4321:0:1:2:3:4:567:89ab/64 nodad home preferred_lft 0"
#config_eth0="192.168.0.2/24 scope host
#4321:0:1:2:3:4:567:89ab/64 nodad home preferred_lft 0"
# Here's how to do routing if you need it
# We add an IPv4 default route, IPv4 subnet route and an IPv6 unicast route
#routes_eth0="default via 192.168.0.1
@@ -99,10 +103,12 @@
# If a specified module fails (like dhcp - see below), you can specify a
# fallback like so
#fallback_eth0="192.168.0.2/24"
#fallback_route_eth0="default via 192.168.0.1"
#fallback_routes_eth0="default via 192.168.0.1"
# NOTE: fallback entry must match the entry location in config_eth0
# As such you can only have one fallback route.
# Also, if you do not set a fallback_routes entry for an interface, the
# routes entry will be used if that is set.
# Some users may need to alter the MTU - here's how
#mtu_eth0="1500"
@@ -111,7 +117,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"
@@ -258,7 +264,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]"
@@ -288,7 +294,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!
@@ -299,10 +305,10 @@
# 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"
#preferred_aps="SSID1 SSID2"
# You can also define a preferred_aps list per interface
#preferred_aps_eth0="SSID3 SSID4"
@@ -312,9 +318,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"
@@ -341,19 +347,19 @@
############################################################
# 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.
# If you would like it to wait, you can specify how long in seconds.
#associate_timeout_eth0=60
# A value of 0 means wait forever.
@@ -376,13 +382,13 @@
# won't have associated then)
# If you're using anything else to configure wireless on your interface AND
# you have installed wpa_supplicant, you need to disable wpa_supplicant
# you have installed wpa_supplicant, you need to disable wpa_supplicant
#modules="!iwconfig !wpa_supplicant"
#or
#modules="!wireless"
##############################################################################
# WIRELESS SSID IN VARIABLES
# WIRELESS SSID IN VARIABLES
##############################################################################
# Remember to change SSID to your SSID.
# Say that your SSID is My NET - the line
@@ -417,7 +423,7 @@
# dhclient: emerge net-misc/dhcp
# dhcpcd: emerge net-misc/dhcpcd
# pump: emerge net-misc/pump
# udhcpc: emerge net-misc/udhcp
# udhcpc: emerge sys-apps/busybox
# If you have more than one DHCP client installed, you need to specify which
# one to use - otherwise we default to dhcpcd if available.
@@ -426,7 +432,7 @@
# Notes:
# - All clients send the current hostname to the DHCP server by default
# - dhcpcd does not daemonize when the lease time is infinite
# - udhcp-0.9.3-r3 and earlier do not support getting NTP servers
# - udhcp-0.9.3-r3 and earlier do not support getting NTP servers
# - pump does not support getting NIS servers
# - DHCP tends to erase any existing device information - so add
# static addresses after dhcp if you need them
@@ -453,7 +459,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
@@ -472,7 +478,7 @@
#fallback_eth0="apipa"
#-----------------------------------------------------------------------------
# ARPING Gateway configuration
# ARPING Gateway configuration
# and
# Automatic Private IP Addressing (APIPA)
# For arpingnet / apipa support, emerge net-misc/iputils or net-analyzer/arping
@@ -532,7 +538,8 @@
#-----------------------------------------------------------------------------
# VLAN (802.1q support)
# For VLAN support, emerge net-misc/vconfig
# For VLAN support, emerge sys-apps/iproute2
# The old vconfig based VLAN support is no longer available.
# Specify the VLAN numbers for the interface like so
# Please ensure your VLAN IDs are NOT zero-padded
@@ -542,10 +549,27 @@
# need it up.
#config_eth0="null"
# You can also configure the VLAN - see for vconfig man page for more details
#vconfig_eth0="set_name_type VLAN_PLUS_VID_NO_PAD"
#vconfig_vlan1="set_flag 1
#set_egress_map 2 6"
# You can also configure the VLAN - see for ip man page for more details
# To change the vlan interface name. If not set, the standard "iface.vlanid"
# will be used. This is the replacement for the old 'vconfig set_name_type'
# functionality.
#vlan1_name="vlan1"
#vlan2_name="eth0.2"
# The following shows the old set_name_type setting and what new option to set:
# Using eth9 & VLAN VID 26 as an example.
# VLAN_PLUS_VID vlan26_name="vlan0026"
# VLAN_PLUS_VID_NO_PAD vlan26_name="vlan26"
# DEV_PLUS_VID vlan26_name="eth9.0026"
# DEV_PLUS_VID_NO_PAD vlan26_name="eth9.26"
# Set the vlan flags
#vlan1_flags="reorder_hdr off gvrp on loose_binding on"
# Configure in/egress maps
#vlan1_ingress="2:6 3:5"
#vlan1_egress="1:2"
#config_vlan1="172.16.3.1/23"
#config_vlan2="172.16.2.1/23"
@@ -558,8 +582,7 @@
# This means you do not need to create init scripts in /etc/init.d for each
# vlan, you must need to create one for the physical interface.
# If you wish to control the configuration of each vlan through a separate
# script, or wish to rename the vlan interface to something that vconfig
# cannot then you need to do this.
# script then you need to do this.
#vlan_start_eth0="no"
# If you do the above then you may want to depend on eth0 like so
@@ -567,6 +590,18 @@
# NOTE: depend functions only work in /etc/conf.d/net
# and not in profile configs such as /etc/conf.d/net.foo
# MAC-VLAN support
# The following configuration can be used to create a new interface 'macvlan0'
# linked to 'eth0'
#macvlan_macvlan0="eth0"
# MAC-VLAN mode (private, vepa, bridge, passtru)
#mode_macvlan0="private"
# IP address, MAC address, ... are configured as a normal interface
#config_macvlan0="192.168.20.20/24"
#mac_macvlan0="00:50:06:20:20:20"
#-----------------------------------------------------------------------------
# Bonding
# For link bonding/trunking on 2.4 kernels, or kernels without sysfs
@@ -577,7 +612,7 @@
#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 documention for a description of
# kernels or newer. See the kernel bonding documentation for a description of
# these options.
#arp_ip_target_bond0="+26.0.0.0"
@@ -587,7 +622,7 @@
#-----------------------------------------------------------------------------
# Classical IP over ATM
# Classical IP over ATM
# For CLIP support emerge net-dialup/linux-atm
# Ensure that you have /etc/atmsigd.conf setup correctly
@@ -625,7 +660,7 @@
#
# Here you should specify what pppd plugins you want to use
# Available plugins are: pppoe, pppoa, capi, dhcpc, minconn, radius,
# radattr, radrealms and winbind
# radattr, radrealms and winbind
#plugins_ppp0="pppoe" # Required plugin for PPPoE
#plugins_ppp0="pppoa vc-encaps" # Required plugin for PPPoA with an option
#plugins_ppp0="capi" # Required plugin for ISDN
@@ -663,9 +698,9 @@
#
# 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
# noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
#
@@ -764,7 +799,7 @@
#-----------------------------------------------------------------------------
# TUN/TAP
# For TUN/TAP support emerge net-misc/openvpn or sys-apps/usermode-utilities
# For TUN/TAP support install iproute2, openvpn or usermode-utilities
#
# You must specify if we're a tun or tap device. Then you can give it any
# name you like - such as vpn
@@ -775,6 +810,9 @@
#tuntap_tap0="tap"
#config_tap0="192.168.0.1/24"
# Use something like this to pass custom options to iproute2 during
# tunnel creation. This sets the user and group ownership of the node.
#iproute2_tun1="user foo group bar"
# For passing custom options to tunctl use something like the following. This
# example sets the owner to adm
#tunctl_tun1="-u adm"
@@ -792,11 +830,18 @@
#bridge_add_eth0="br0"
#bridge_add_eth1="br0"
# You need to configure the ports to null values so dhcp does not get started
# NOTE: If you want to manually start an empty bridge, and then dynamically add
# ports to it you must set at least one of the following variables based on the
# interface name, so that we can pick it up from your configuration. Even an
# empty value variable is fine, but at least one of them must be set:
# brctl_IFVAR
# You need to configure the ports to null values so dhcp does not get started
#config_eth0="null"
#config_eth1="null"
# Finally give the bridge an address - dhcp or a static IP
# Finally give the bridge an address - dhcp or a static IP, this is assigned to
# the bridge when the bridge is explicitly started.
#config_br0="dhcp" # may not work when adding ports dynamically
#config_br0="192.168.0.1/24"
@@ -806,12 +851,19 @@
# Below is an example of configuring the bridge
# Consult "man brctl" for more details
#brctl_br0="setfd 0
#sethello 0
#stp off"
#brctl_br0="setfd 15
#sethello 2
#stp on"
# You can also configure the bridge or bridge members via sysfs on 2.6 kernels
# or newer. See the kernel bridge documentation for a description of these
# options.
#stp_state_br0="0"
#forward_delay_br0="10"
#hairpin_mode_eth0="1"
#-----------------------------------------------------------------------------
# RFC 2684 Bridge Support
# RFC 2684 Bridge Support
# For RFC 2684 bridge support emerge net-misc/br2684ctl
# Interface names have to be of the form nas0, nas1, nas2, etc.
@@ -827,8 +879,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
@@ -843,7 +895,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"
@@ -853,10 +905,63 @@
# 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"
#-----------------------------------------------------------------------------
# Advanced Routing
# WARNING: For advanced routing you MUST be using sys-apps/iproute2
#
# This provides a means to do multi-homing and more using the Routing Policy
# Database (RPDB).
#
# See the following links for background and more information.
# http://linux-ip.net/html/ch-routing.html
# http://linux-ip.net/html/ch-advanced-routing.html
# The rules listed will be added with 'ip rule add LINE' when the interface is
# being brought up. They will also be removed with 'ip rule delete LINE'.
# The rules added are also stored for later removal, so if you alter your rules
# directly before stopping, you should review your rules again after stopping.
# Note in earlier versions of openrc, this was provided as an example in
# postup/postdown, however that implementation suffered some bugs in corner
# cases, which are now fixed with this merger. If you used the previous
# example, you should only need to drop the relevent portions of your
# postup/postdown functions, and review the quoting in your rules_IFACE
# variables.
# Below is a trivial example for a dual-homed connection where there is an OOB
# management network. Only packets explicitly with an address from or to the
# OOB are sent via eth0. All others go via eth1 as the eth1 rules have a lower
# priority.
# If you want to use names for your tables, you should put lines into
# /etc/iproute2/rt_tables, an example follows:
# 2 oob
# 3 external
#
# IPv6 RPDB entries are to be found in the rules6_IFVAR variables:
#rules_eth0="
#from ZZZ.ZZZ.200.128/27 table oob priority 500
#to ZZZ.ZZZ.200.128/27 table oob priority 550"
#rules_eth1="
#from XXX.XXX.112.0/24 table external priority 400
#to XXX.XXX.112.0/24 table external priority 450"
#routes_eth0="
#ZZZ.ZZZ.200.128/27 dev eth0 table oob scope link
#default via ZZZ.ZZZ.200.129 table oob"
#routes_eth1="
#XXX.XXX.112.0/24 dev eth1 table external scope link
#default via XXX.XXX.112.1 dev eth1"
# IPv6 example:
#rules6_eth0="
#from 2001:0DB8:AAAA:BBBB::/64 table vpn priority 100
#to 2001:0DB8:AAAA:BBBB::/64 table vpn priority 150"
#-----------------------------------------------------------------------------
# System
@@ -901,10 +1006,12 @@
# 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
# then you can specify a timeout here.
# If you would like it to wait so that other services know that network is
# up then you can specify a timeout here. A value of 0 means wait forever,
# and a negative value means never wait.
#plug_timeout_eth0="10"
# If you want to set it for all interfaces:
#plug_timeout="10"
# A value of 0 means wait forever.
# If you don't want to use netplug on a specific interface but you have it
# installed, you can disable it for that interface via the modules statement
@@ -918,9 +1025,75 @@
#ifplugd_eth0="--api-mode=wlan"
# man ifplugd for more options
#-----------------------------------------------------------------------------
# Interface hardware tuning & configuration via ethtool
# If you need to change explicit hardware settings on your network card prior
# to bringing the interface up, the following is available.
#
# For a full listing of settings, please consulting ethtool(8) and the output
# of "ethtool --help".
#
# Multiple entries (seperated by newlines) are supported in all of the
# variables as some settings cannot be changed at the same time.
#
# Valid variable name fragments: change pause coalesce ring offload
# change_eeprom identify nfc flash rxfh_indir ntuple
# Set Wake-On-Lan to listen for SecureOn MagicPacket(tm), the message level to
# notify us of WOL changes, and the SecureOn password to 'DE:AD:BE:EF:CA:FE'.
#ethtool_change_eth0="wol gs
#msglvl wol on
#sopass DE:AD:BE:EF:CA:FE"
# Disable pause auto-negotiation and explicitly enable RX and TX pause.
#ethtool_pause_eth0="autoneg off
#rx on tx on"
# Enasble adaptive RX and TX coalescing
#ethtool_coalesce_eth0="adaptive-rx on adaptive-tx on"
# Change ring buffer settings
#ethtool_ring_eth0=""
# Enable all offload settings
#ethtool_offload_eth0="rx on tx on sg on tso on ufo on gso on gro on lro on"
# Change specific bytes in the EEPROM
#ethtool_change_eeprom_eth0=""
# Run the identify sequence on the interface for 1 second (does not return until completion)
#ethtool_identify_eth0="1"
# Configure receive network flow classification
#ethtool_nfc_eth0="
#rx-flow-hash tcp4 f
#rx-flow-hash udp4 s"
# Flash firmware to all regions
#ethtool_flash_eth0="/some/path/firmware1 0"
# Flash firmware to region 1
#ethtool_flash_eth0="/some/path/firmware2 1"
# Set receive flow hash indirection table for even balancing between N receive queues
#ethtool_rxfh_indir_eth0="equal 4"
# Configure Rx ntuple filters and actions
#ethtool_ntuple_eth0=""
# Additionally, there is a special control variable, if you need to change the
# order of option processing. The default order is:
# flash change-eeprom change pause coalesce ring offload identify nfc rxfh-indir ntuple
# Set global order to default
#ethtool_order="flash change-eeprom change pause coalesce ring offload identify nfc rxfh-indir ntuple"
# Hypothetical network card that requires a change-eeprom toggle to enable flashing
#ethtool_order_eth0="change-eeprom flash change pause coalesce ring offload nfc rxfh-indir ntuple"
##############################################################################
# ADVANCED CONFIGURATION
#
#
# Four functions can be defined which will be called surrounding the
# start/stop operations. The functions are called with the interface
# name first so that one function can control multiple adapters. An extra two
@@ -938,15 +1111,26 @@
#
# ${IFACE} is set to the interface being brought up/down
# ${IFVAR} is ${IFACE} converted to variable name bash allows
#
# For historical and compatibility reasons, preup is actually normally called
# in the following sequence: up ; preup ; up.
# The first up causes the kernel to initialize the device, so
# that it is available for use in the preup function. However, for some
# hardware, e.g. CAN devices, some configuration is needed before trying to up
# the interface will actually work. For such hardware, the
# up_before_preup variables will allow skipping the first up call if set
# to yes.
#up_before_preup_IFVAR="NO"
#up_before_preup="NO"
#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
# fi
# fi
#
# # Test for link on the interface prior to bringing it up. This
# # only works on some network adapters and requires the ethtool
@@ -985,33 +1169,6 @@
# # This function could be used, for example, to register with a
# # dynamic DNS service. Another possibility would be to
# # send/receive mail once the interface is brought up.
# # Here is an example that allows the use of iproute rules
# # which have been configured using the rules_eth0 variable.
# #rules_eth0=" \
# # '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}
# if [ $# != 0 ]; then
# einfo "Adding IP policy routing rules"
# eindent
# # Ensure that the kernel supports policy routing
# if ! ip rule list | grep -q "^"; then
# eerror "You need to enable IP Policy Routing (CONFIG_IP_MULTIPLE_TABLES)"
# eerror "in your kernel to use ip rules"
# else
# for x; do
# ebegin "${x}"
# ip rule add ${x} dev "${IFACE}"
# eend $?
# done
# fi
# eoutdent
# # Flush the cache
# ip route flush cache dev "${IFACE}"
# fi
#}
#postdown() {
@@ -1019,21 +1176,6 @@
# # Probably a good idea to set ifdown="no" in /etc/conf.d/net
# # as well ;)
# [ "${IFACE}" != "lo" ] && ethtool -s "${IFACE}" wol g
# Automatically erase any ip rules created in the example postup above
# if interface_exists "${IFACE}"; then
# # Remove any rules for this interface
# local rule
# ip rule list | grep " iif ${IFACE}[ ]*" | {
# while read rule; do
# rule="${rule#*:}"
# ip rule del ${rule}
# done
# }
# # Flush the route cache
# ip route flush cache dev "${IFACE}"
# fi
# # Return 0 always
# return 0
#}

3
etc/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
rc.conf
rc
rc.shutdown

View File

@@ -1,9 +1,37 @@
DIR= ${SYSCONFDIR}
CONF= rc.conf
SRCS= rc.conf.in rc.in rc.shutdown.in
BIN= ${BIN-${OS}}
CONF= rc.conf ${BIN-${OS}}
CLEANFILES+= rc.conf
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
SED_EXTRA-FreeBSD= -e 's:@TERM@:cons25:g'
BIN-FreeBSD= rc rc.shutdown rc.devd
CONF-FreeBSD= devd.conf
SED_EXTRA-Linux= -e 's:@TERM@:wsvt25:g'
BIN-Linux=
CONF-Linux=
SED_EXTRA-NetBSD= -e 's:@TERM@:wsvt25:g'
BIN-NetBSD= rc rc.shutdown
CONF-NetBSD=
SED_EXTRA= ${SED_EXTRA-${OS}}
include ${MK}/scripts.mk
# We can't use "ifndef" here because that treats set-but-empty
# as not-set which is not what we want
MKRCSYS ?= automagicplease
ifeq (${MKRCSYS},automagicplease)
# If the user isn't picking a default, then have the
# config go with runtime automagic detection #357247
rc.conf: SED_EXTRA += -e '/^rc_sys=""/s:^:\#:'
MKRCSYS =
endif
rc.conf: rc.conf.in rc.conf.${OS}
${SED} ${SED_REPLACE} ${SED_EXTRA} $^ > $@

View File

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

View File

@@ -1,6 +0,0 @@
SED_EXTRA= -e 's:@TERM@:wsvt25:g'
SRCS+= rc.in rc.shutdown.in
rc.conf:
cp rc.conf.in rc.conf
cat rc.conf.Linux >> rc.conf

View File

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

14
etc/rc.conf.FreeBSD Normal file
View File

@@ -0,0 +1,14 @@
##############################################################################
# FreeBSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on FreeBSD:
# "" - nothing special
# "jail" - FreeBSD jails
# "prefix" - Prefix
# If this is commented out, automatic detection will be attempted.
# Note that automatic detection does not work in a prefix environment.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
rc_sys="@RC_SYS_DEFAULT@"

View File

@@ -1,8 +1,23 @@
##############################################################################
# LINUX SPECIFIC OPTIONS
# This is the subsystem type. Valid options on Linux:
# "" - nothing special
# "lxc" - Linux Containers
# "openvz" - Linux OpenVZ
# "prefix" - Prefix
# "uml" - Usermode Linux
# "vserver" - Linux vserver
# "xen0" - Xen0 Domain
# "xenU" - XenU Domain
# If this is commented out, automatic detection will be attempted.
# Note that autodetection will not work in a prefix environment or in a
# linux container.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
rc_sys="@RC_SYS_DEFAULT@"
# This is the number of tty's used in most of the rc-scripts (like
# consolefont, numlock, etc ...)
rc_tty_number=12

15
etc/rc.conf.NetBSD Normal file
View File

@@ -0,0 +1,15 @@
##############################################################################
# NetBSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on NetBSD:
# "" - nothing special
# "prefix" - Prefix
# "xen0" - Xen0 Domain
# "xenU" - XenU Domain
# If this is commented out, automatic detection will be attempted.
# Note that automatic detection does not work in a prefix environment.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
rc_sys="@RC_SYS_DEFAULT@"

View File

@@ -1,26 +1,23 @@
# Global OpenRC configuration settings
# 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
# jumbled up.
# 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"
#rc_interactive="YES"
# Do we allow any started service in the runlevel to satisfy the depedency
# 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 dependency
# or do we want all of them regardless of state? For example, if net.eth0
# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
# 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"
# rc_hotplug is a list of services that we allow to be hotplugged.
# By default we do not allow hotplugging.
@@ -38,11 +35,15 @@ rc_depend_strict="YES"
# /var/log/rc.log
# NOTE: Linux systems require the devfs service to be started before
# logging can take place and as such cannot log the sysinit runlevel.
rc_logger="NO"
#rc_logger="YES"
# Through rc_log_path you can specify a custom log file.
# The default value is: /var/log/rc.log
#rc_log_path="/var/log/rc.log"
# 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
@@ -50,17 +51,33 @@ rc_logger="NO"
# 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_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
@@ -72,7 +89,7 @@ net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
# We can set some things on a per service basis, like the nicelevel.
#export SSD_NICELEVEL="-19"
# Pass ulimit parameters
# Pass ulimit parameters
#rc_ulimit="-u 30"
# It's possible to define extra dependencies for services like so
@@ -92,3 +109,4 @@ net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
# You can also remove dependencies.
# This is mainly used for saying which servies do NOT provide net.
#rc_net_tap0_provide="!net"

View File

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

View File

@@ -1,12 +1,12 @@
#!@SHELL@
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
# If $TERM is not set then assume default of @TERM@
# This gives us a nice colour boot :)
[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="@TERM@"
# Handle interrupts
# Handle interrupts
trap : SIGINT
trap "echo 'Boot interrupted'; exit 1" SIGQUIT

View File

@@ -1,8 +1,8 @@
#!@SHELL@
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
# Handle interrupts
# Handle interrupts
trap : SIGINT SIGQUIT
# Try and use stuff in /lib over anywhere else so we can shutdown

11
init.d.misc/.gitignore vendored Normal file
View File

@@ -0,0 +1,11 @@
avahi-dnsconfd
avahid
dhcpcd
dbus
hald
named
ntpd
openvpn
polkitd
sshd
wpa_supplicant

View File

@@ -1,10 +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}/os.mk
include ${MK}/scripts.mk
include Makefile.${OS}

View File

@@ -1 +0,0 @@
PREFIX?= /usr/local

View File

@@ -1 +0,0 @@
PREFIX=/usr

View File

@@ -1 +0,0 @@
PREFIX?= /usr/pkg

View File

@@ -1,9 +1,9 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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,6 +1,6 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
command=@PKG_PREFIX@/bin/dbus-daemon
pidfile=@VARBASE@/run/dbus/pid

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>
# 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,16 +1,16 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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
extra_started_commands="reload"
depend()
{
{
provide dns
need localmount net
after bootmisc
@@ -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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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,16 +1,16 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
command=/usr/sbin/named
command_args=${named_args}
command_args=$named_args
pidfile=@VARBASE@/run/named.pid
name="Domain Name server"
extra_started_commands="reload"
namedb=/etc/namedb
uid=named
case "${RC_UNAME}" in
case "$RC_UNAME" in
FreeBSD)
uid=bind
pidfile=@VARBASE@/run/named/pid
@@ -19,7 +19,7 @@ case "${RC_UNAME}" in
uid=bind
;;
esac
named_uid=${named_uid:-${uid}}
: ${named_uid:=${uid}}
depend()
{
@@ -30,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
}
@@ -103,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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# 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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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"
@@ -58,10 +59,9 @@ start_pre()
sysctl -a | grep -q '\.tap\.' || kldload if_tap
fi
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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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>
# 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
}

42
init.d/.gitignore vendored Normal file
View File

@@ -0,0 +1,42 @@
bootmisc
fsck
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
newsyslog
pf
rarpd
rc-enabled
rpcbind
savecore
swap-blk
swclock
syslogd
termencoding
ttys
wscons

View File

@@ -1,16 +1,42 @@
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in \
netmount.in root.in savecache.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 ${SRCS-${OS}}
BIN= ${OBJS}
INSTALLAFTER= _installafter
INSTALLAFTER= _installafter_net.lo
CLEANFILES+= net.lo
TARGETS+= net.lo
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
NET_LO-FreeBSD= net.lo0
# Generic BSD scripts
SRCS-FreeBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are FreeBSD specific
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \
powerd.in syscons.in
NET_LO-Linux= net.lo
SRCS-Linux= 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
NET_LO-NetBSD= net.lo0
# Generic BSD scripts
SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
# These are NetBSD specific
SRCS-NetBSD+= devdb.in swap-blk.in ttys.in wscons.in
%.in: %${SFX}
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@
include ${MK}/scripts.mk
_installafter: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO}
_installafter_: realinstall
_installafter_net.lo: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO-${OS}}

View File

@@ -1,13 +0,0 @@
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 FreeBSD specific
SRCS+= adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \
powerd.in syscons.in
.SUFFIXES: .BSD.in
.BSD.in:
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@

View File

@@ -1,9 +0,0 @@
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:
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@

View File

@@ -1,12 +0,0 @@
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+= devdb.in swap-blk.in ttys.in wscons.in
.SUFFIXES: .BSD.in
.BSD.in:
sed ${SED_REPLACE} ${SED_EXTRA} $< > $@

View File

@@ -1,14 +1,14 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
extra_commands="save"
description="Sets the local clock to UTC or Local Time."
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,90 +1,135 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
depend()
{
use hostname
need localmount
before logger
after clock sysctl
keyword noprefix
keyword -prefix -timeout
}
dir_writeable()
dir_writable()
{
mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
}
: ${wipe_tmp:=${WIPE_TMP:-yes}}
: ${log_dmesg:=${LOG_DMESG:-yes}}
cleanup_tmp_dir()
{
local dir="$1"
if ! [ -d "${dir}" ]; then
mkdir -p "${dir}" || return $?
if ! [ -d "$dir" ]; then
mkdir -p "$dir" || return $?
fi
dir_writeable "${dir}" || return 1
chmod +t "${dir}"
cd "${dir}"
if yesno ${wipe_tmp:-${WIPE_TMP:-yes}}; then
ebegin "Wiping ${dir} directory"
local startopts="-x . -depth"
[ "${RC_UNAME}" = "Linux" ] && startopts=". -xdev -depth"
dir_writable "$dir" || return 1
chmod a+rwt "$dir" 2> /dev/null
cd "$dir" || return 1
if yesno $wipe_tmp; then
ebegin "Wiping $dir directory"
# Faster than find
rm -rf -- [b-ikm-pr-zA-Z0-9\.]*
# Faster than raw find
if ! rm -rf -- [^ajlq\.]* 2>/dev/null ; then
# Blah, too many files
find . -maxdepth 1 -name '[^ajlq\.]*' -exec rm -rf -- {} +
fi
find ${startopts} ! -name . \
! -path "./lost+found" \
! -path "./lost+found/*" \
! -path "./quota.user" \
! -path "./quota.user/*" \
! -path "./aquota.user" \
! -path "./aquota.user/*" \
! -path "./quota.group" \
! -path "./quota.group/*" \
! -path "./aquota.group" \
! -path "./aquota.group/*" \
! -path "./journal" \
! -path "./journal/*" \
! -path "./.private" \
! -path "./.private/*" \
-exec rm -rf {} \;
# 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
# Prune the paths that are left
find . -maxdepth 1 \
! -name . \
! -name lost+found \
! -name quota.user \
! -name aquota.user \
! -name quota.group \
! -name aquota.group \
! -name journal \
-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 -- .X*-lock esrv* kio* \
jpsock.* .fam* .esd* \
orbit-* ssh-* ksocket-* \
.*-unix
eend 0
fi
}
mkutmp()
{
: >"$1"
# Not all systems have the utmp group
chgrp utmp "$1" 2>/dev/null
chmod 0664 "$1"
}
migrate_to_run()
{
src="$1"
dst="$2"
if [ -L $src -a "$(readlink -f $src)" != $dst ]; then
ewarn "$src does not point to $dst."
ewarn "Setting $src to point to $dst."
rm $src
elif [ ! -L $src -a -d $src ]; then
ebegin "Migrating $src to $dst"
cp -a $src/* $dst/
rm -rf $src
eend $?
fi
# If $src doesn't exist at all, just run this
if [ ! -e $src ]; then
ln -s $dst $src
fi
}
start()
{
local logw=false
# 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}"
if [ "$RC_UNAME" = Linux ]; then
# Satisfy Linux FHS
extra=/var/lib/misc
if [ ! -d /run ]; then
extra="/var/run $extra"
fi
else
extra=/var/run
fi
for x in /var/log /tmp $extra; do
if ! [ -d $x ]; then
if ! mkdir -p $x; then
eend 1 "failed to create needed directory $x"
return 1
fi
fi
fi
done
if dir_writeable /var/run; then
if [ "$RC_UNAME" = Linux -a -d /run ] && false; then
migrate_to_run /var/lock /run/lock
migrate_to_run /var/run /run
fi
if dir_writable /var/run; then
ebegin "Creating user login records"
cp /dev/null /var/run/utmp
chgrp utmp /var/run/utmp
chmod 0664 /var/run/utmp
if dir_writeable /var/log; then
logw=true
[ -e /var/log/wtmp ] || cp /dev/null /var/log/wtmp
chgrp utmp /var/log/wtmp
chmod 0664 /var/log/wtmp
fi
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"
@@ -93,60 +138,67 @@ start()
! -name ld-elf.so.hints ! -name ld.so.hints);
do
# Clean stale sockets
if [ -S "${x}" ]; then
if [ -S "$x" ]; then
if type fuser >/dev/null 2>&1; then
fuser "${x}" 2>/dev/null || rm "${x}"
fuser "$x" >/dev/null 2>&1 || rm -- "$x"
else
rm "${x}"
rm -- "$x"
fi
fi
[ ! -f "${x}" ] && continue
[ ! -f "$x" ] && continue
# Do not remove pidfiles of already running daemons
case "${x}" in
case "$x" in
*.pid)
start-stop-daemon --test --quiet \
--stop --pidfile "${x}" && continue
--stop --pidfile "$x" && continue
;;
esac
rm -f -- "${x}"
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
if dir_writeable /tmp; then
if dir_writable /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
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
fi
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
if [ -x /sbin/restorecon ]; then
restorecon /tmp/.ICE-unix /tmp/.X11-unix
fi
fi
rm -f /etc/nologin
if yesno $log_dmesg; then
if $logw || dir_writable /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
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,33 +1,30 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Sets a font for the consoles."
depend()
{
need localmount termencoding
after hotplug
keyword noopenvz noprefix nouml novserver noxenu
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
@@ -36,39 +33,35 @@ start()
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 console font [${consolefont}]"
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 += 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
if yesno ${unicode:-${UNICODE}}; then
echo "" > "${RC_LIBDIR}"/console/unicode
else
rm -f "${RC_LIBDIR}"/console/unicode
fi
cp "$font" "$RC_LIBEXECDIR"/console
echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font
fi
return ${retval}
return $retval
}

View File

@@ -1,16 +1,16 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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() {

View File

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

View File

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

View File

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

View File

@@ -1,25 +1,25 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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
}
stop() {
ebegin "Deactiving kernel core dump device"
ebegin "Deactivating kernel core dump device"
dumpon off
eend $?
}

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Check and repair filesystems according to /etc/fstab"
_IFS="
@@ -9,7 +9,7 @@ _IFS="
depend()
{
use dev clock modules
keyword nojail noopenvz noprefix notimeout novserver
keyword -jail -openvz -prefix -timeout -vserver -lxc
}
_abort() {
@@ -19,7 +19,7 @@ _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
@@ -39,54 +39,70 @@ start()
return 0
fi
if _forcefsck; then
fsck_opts="${fsck_opts} -f"
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}"
if [ -n "$fsck_passno" ]; then
check_extra="[passno $fsck_passno] $check_extra"
if [ -n "$fsck_mnt" ]; then
eerror "Only 1 of fsck_passno and fsck_mnt must be set!"
return 1
fi
fi
ebegin "Checking local filesystems ${check_extra}"
for p in ${fsck_passno}; do
local IFS="${_IFS}"
case "${p}" in
[0-9]*) p="=${p}";;
ebegin "Checking local filesystems $check_extra"
# Append passno mounts
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
# Append custom mounts
for m in $fsck_mnt ; do
local IFS="$_IFS"
set -- "$@" "$m"
unset IFS
done
if [ "${RC_UNAME}" = "Linux" ]; then
fsck_opts="${fsck_opts} -C0 -T"
if [ -z "${fsck_passno}" ]; then
if [ "$RC_UNAME" = Linux ]; then
fsck_opts="$fsck_opts -C0 -T"
if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; 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
fi
trap : INT QUIT
fsck ${fsck_args--p} ${fsck_opts} "$@"
fsck ${fsck_args--p} $fsck_opts "$@"
case $? in
0) eend 0; return 0;;
1) ewend 1 "Filesystems repaired"; return 0;;
2|3) if [ "${RC_UNAME}" = "Linux" ]; then
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"
ewend 1 "Filesystems still have errors;" \
"manual fsck required"
_abort
fi;;
4) if [ "${RC_UNAME}" = "Linux" ]; then
ewend 1 "Fileystem errors left uncorrected"
return 0
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";;
12) ewend 1 "fsck interrupted";;
*) eend 2 "Filesystems couldn't be fixed";;
esac
_abort || return 1
@@ -99,6 +115,6 @@ stop()
_reboot() { return 0; }
_forcefsck() { return 1; }
yesno "${fsck_shutdown}" && start
yesno $fsck_shutdown && start
return 0
}

View File

@@ -1,15 +1,15 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# 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,37 +38,37 @@ _set()
# otherwise we generate a random UUID.
reset()
{
local uuid= x="[0-9a-f]" y="${x}${x}${x}${x}"
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});;
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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Sets the hostname of the machine."
depend() {
keyword noprefix
keyword -prefix -lxc
}
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,19 +1,18 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
extra_commands="save show"
description="Sets the local clock to UTC or Local Time."
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,38 +67,42 @@ 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}]"
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
[ -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 += $? ))
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} + $?))
if yesno $clock_hctosys; then
_hwclock --hctosys $utc_cmd $clock_args
else
_hwclock --systz $utc_cmd $clock_args
fi
: $(( retval += $? ))
fi
eend ${retval} "Failed to set the system clock"
eend $retval "Failed to set the system clock"
return 0
}
@@ -107,37 +110,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,6 +1,6 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
# This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD
@@ -13,7 +13,7 @@ opts="panic showstatus"
depend() {
before net
provide firewall
keyword nojail
keyword -jail
}
ipfw() {
@@ -40,11 +40,11 @@ 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
if have_ip6; then
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
@@ -59,7 +59,7 @@ start() {
return 1
fi
# Use a statefull firewall
# Use a stateful firewall
ipfw add check-state
ipfw add pass tcp from me to any established
@@ -78,7 +78,7 @@ start() {
ipfw add pass udp from 0.0.0.0 68 to 255.255.255.255 67 out
ipfw add pass udp from any 67 to me 68 in
ipfw add pass udp from any 67 to 255.255.255.255 68 in
# Some servers will ping the IP while trying to decide if it's
# Some servers will ping the IP while trying to decide if it's
# still in use.
ipfw add pass icmp from any to any icmptype 8
@@ -88,51 +88,51 @@ start() {
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
ipfw add deny ip from any to 255.255.255.255
ipfw add deny ip from any to 224.0.0.0/24
ipfw add deny ip from any to 224.0.0.0/24
# Noise from routers
ipfw add deny udp from any to any 520 in
# Noise from webbrowsing.
# The statefull filter is a bit agressive, and will cause some
# The stateful filter is a bit aggressive, and will cause some
# connection teardowns to be logged.
ipfw add deny tcp from any 80,443 to any 1024-65535 in
# 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,26 +1,27 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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}}
windowkeys=${windowkeys:-${SET_WINDOWSKEYS}}
fix_euro=${fix_euro:-${FIX_EURO}}
dumpkeys_charset=${dumpkeys_charset:-${DUMPKEYS_CHARSET}}
depend()
{
need localmount termencoding
keyword noopenvz noprefix nouml novserver noxenu
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
@@ -33,35 +34,37 @@ start()
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
fi
ebegin "Loading key mappings [${keymap}]"
local loadkeys_uni= wkeys= kmode="-a" msg="ASCII"
if yesno ${unicode}; then
loadkeys_uni="--unicode"
local wkeys= kmode="-a" msg="ASCII"
if yesno $unicode; then
kmode="-u"
msg="UTF-8"
fi
yesno ${windowkeys} && wkeys="windowkeys"
loadkeys -q ${loadkeys_uni} ${wkeys} ${keymap} ${extended_keymaps}
yesno $windowkeys && wkeys="windowkeys"
# Set terminal encoding to either ASCII or UNICODE.
# See utf-8(7) for more information.
ebegin "Setting keyboard mode [$msg]"
n=1
while [ $n -le $ttyn ]; do
kbd_mode $kmode -C $ttydev$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
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
# Set terminal encoding to either ASCII or UNICODE.
# See utf-8(7) for more information.
ebegin "Setting keyboard mode [${msg}]"
if yesno ${unicode}; then
dumpkeys ${dumpkeys_charset:+-c} \
${dumpkeys_charset} | loadkeys --unicode
# Save the keymapping for use immediately at boot
if [ -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console
dumpkeys >"$RC_LIBEXECDIR"/console/keymap
fi
n=1
while [ ${n} -le "${ttyn}" ]; do
kbd_mode "${kmode}" -C "${ttydev}${n}"
n=$((${n} + 1))
done
eend 0
}

View File

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

View File

@@ -1,43 +1,51 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Executes user commands in /etc/conf.d/local"
description="Executes user programs in @SYSCONFDIR@/local.d"
depend()
{
after *
keyword notimeout
keyword -timeout
}
start()
{
ebegin "Starting local"
einfo "Starting local"
local file
for file in @SYSCONFDIR@/local.d/*.start ; do
[ -x "$file" ] && "$file"
done
if type local_start >/dev/null 2>&1; then
ewarn "@SYSCONFDIR@/conf.d/local should be removed."
ewarn "Please move the code from the local_start function"
ewarn "to scripts with an .start extension"
ewarn "in @SYSCONFDIR@/local.d"
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"
eend 0
}
stop()
{
ebegin "Stopping local"
einfo "Stopping local"
local file
for file in @SYSCONFDIR@/local.d/*.stop; do
[ -x "$file" ] && "$file"
done
if type local_start >/dev/null 2>&1; then
ewarn "@SYSCONFDIR@/conf.d/local should be removed."
ewarn "Please move the code from the local_stop function"
ewarn "to scripts with an .stop extension"
ewarn "in @SYSCONFDIR@/local.d"
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 0
}

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Mounts disks and swap according to /etc/fstab."
@@ -8,19 +8,23 @@ depend()
{
need fsck
use lvm modules mtab
keyword nojail noopenvz noprefix novserver
after lvm modules
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 $extra_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 +34,32 @@ start()
stop()
{
# We never unmount / or /dev or $RC_SVCDIR
local x= no_umounts_r="/|/dev|/dev/.*|${RC_SVCDIR}"
# Bug 381783
local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
local x= no_umounts_r="/|/dev|/dev/.*|${rc_svcdir}"
no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib(32|64)?|/libexec"
# RC_NO_UMOUNTS is an env var that can be set by plugins
OIFS=${IFS} SIFS=${IFS-y}
IFS=$IFS:
for x in ${no_umounts} ${RC_NO_UMOUNTS}; do
no_umounts_r="${no_umounts_r}|${x}"
local IFS="$IFS:"
for x in $no_umounts $RC_NO_UMOUNTS; do
no_umounts_r="$no_umounts_r|$x"
done
if [ "${SIFS}" = "y" ]; then
IFS=$OIFS
else
unset IFS
fi
if [ "${RC_UNAME}" = "Linux" ]; then
no_umounts_r="${no_umounts_r}|/proc|/proc/.*|/sys|/sys/.*"
if [ "$RC_UNAME" = Linux ]; then
no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*"
fi
no_umounts_r="^(${no_umounts_r})$"
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_LIBEXECDIR"/sh/rc-mount.sh
. "${RC_LIBDIR}"/sh/rc-mount.sh
# Umount loopback devices
einfo "Unmounting loopback devices"
# Umount loop devices
einfo "Unmounting loop devices"
eindent
do_unmount "umount -d" --skip-point-regex "${no_umounts_r}" \
do_unmount "umount -d" --skip-point-regex "$no_umounts_r" \
--node-regex "^/dev/loop"
eoutdent
@@ -72,12 +68,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 $extra_net_fs_list; do
fs="$fs${fs:+|}$x"
done
[ -n "${fs}" ] && fs="^(${fs})$"
do_unmount "umount" --skip-point-regex "${no_umounts_r}" \
${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,13 +1,13 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
extra_commands="restore"
depend()
{
need localmount
keyword nojail noprefix
keyword -jail -prefix
}
restore()
@@ -17,11 +17,11 @@ 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 += $?))
: $(( retval += $? ))
fi
done
}
@@ -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 += $?))
: $(( retval += $? ))
done
eoutdent
eend ${retval}
eend $retval
}

View File

@@ -1,13 +1,13 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Loads a user defined list of kernel modules."
depend()
{
use isapnp
keyword noopenvz noprefix novserver
keyword -openvz -prefix -vserver -lxc
}
start()
@@ -16,48 +16,48 @@ start()
# support compiled in ...
[ ! -f /proc/modules ] && return 0
local KV=$(uname -r)
local KV_MAJOR=${KV%%.*}
local x=${KV#*.}
local KV_MINOR=${x%%.*}
x=${KV#*.*.}
local KV_MICRO=${x%%-*}
local KV x y kv_variant_list
KV=$(uname -r)
# full $KV
kv_variant_list="${KV}"
# remove any KV_EXTRA options to just get the full version
x=${KV%%-*}
# now slowly strip them
while [ -n "$x" ] && [ "$x" != "$y" ]; do
kv_variant_list="${kv_variant_list} $x"
y=$x
x=${x%.*}
done
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
for x in $kv_variant_list ; do
eval list=\$modules_$(shell_var "$x")
[ -n "$list" ] && break
done
[ -z "${list}" ] && list=${modules}
[ -z "$list" ] && list=$modules
for x in ${list}; do
for x in $list; do
a=${x#*:}
if [ "${a}" = "${x}" ]; then
if [ "$a" = "$x" ]; then
unset mpargs
ebegin "Loading module ${x}"
ebegin "Loading module $x"
else
x=${x%%:*}
mpargs="-o ${a}"
ebegin "Loading module ${x} as ${a}"
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_${aa}_args_$(shell_var "${y}")
aa=$(shell_var "$a")
xx=$(shell_var "$x")
for y in $kv_variant_list ; do
eval args=\$module_${aa}_args_$(shell_var "$y")
[ -n "${args}" ] && break
eval args=\$module_${xx}_args_$(shell_var "${y}")
eval args=\$module_${xx}_args_$(shell_var "$y")
[ -n "${args}" ] && break
done
[ -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))
[ -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 += 1 ))
done
einfo "Autoloaded ${cnt} module(s)"
einfo "Autoloaded $cnt module(s)"
}

View File

@@ -1,13 +1,13 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Re-mount filesytems read-only for a clean reboot."
depend()
{
need killprocs savecache
keyword noprefix noopenvz novserver
keyword -prefix -openvz -vserver -lxc
}
start()
@@ -17,29 +17,28 @@ start()
ebegin "Remounting remaining filesystems read-only"
# We need the do_unmount function
. "${RC_LIBDIR}"/sh/rc-mount.sh
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
eindent
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs=
# Bug 381783
local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${rc_svcdir}" x= fs=
m="$m|/bin|/sbin|/lib(32|64)?|/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}"
local 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})$"
m="^($m)$"
fs=
for x in ${net_fs_list}; do
fs="${fs}${fs:+|}${x}"
for x in $net_fs_list $extra_net_fs_list; do
fs="$fs${fs:+|}$x"
done
[ -n "${fs}" ] && fs="^(${fs})$"
[ -n "$fs" ] && fs="^($fs)$"
do_unmount "umount -r" \
--skip-point-regex "${m}" \
${fs:+--skip-fstype-regex} ${fs} --nonetdev
--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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# 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
[ -e /var/run/moused-"${dev##*/}".pid ] && continue
moused_device=${dev}
[ -c "$dev" ] || continue
[ -e /var/run/moused-"${dev##*/}".pid ] && continue
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
eend 1 "No mouse device found"
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
: $((retval+= $?))
vidcontrol < "$ttyv" -m on
: $(( retval += $? ))
done
fi
eend ${retval} "Failed to start moused"
eend $retval "Failed to start moused"
}

View File

@@ -1,17 +1,23 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Update /etc/mtab to match what the kernel knows about"
depend()
{
need root
keyword noprefix
keyword -prefix
}
start()
{
if [ -L /etc/mtab ]
then
einfo "Skipping mtab update (mtab is a symbolic link)"
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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
MODULESDIR="${RC_LIBDIR}/net"
MODULESDIR="${RC_LIBEXECDIR}/net"
MODULESLIST="${RC_SVCDIR}/nettree"
_config_vars="config routes"
@@ -21,11 +21,11 @@ depend()
need localmount
after bootmisc
provide net
keyword nojail noprefix novserver
keyword -shutdown -jail -prefix -vserver
case "${IFACE}" in
lo|lo0);;
*) after net.lo net.lo0;;
*) after net.lo net.lo0 dbus;;
esac
if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
@@ -42,12 +42,25 @@ depend()
}
# Support bash arrays - sigh
_array_helper()
{
local _a=
eval _a=\$$1
_a=$(echo "${_a}" | sed -e 's:^[[:space:]]*::' -e 's:[[:space:]]*$::' -e '/^$/d' -e 's:[[:space:]]\{1,\}: :g')
[ -n "${_a}" ] && printf "%s\n" "${_a}"
}
_get_array()
{
local _a=
if [ -n "${BASH}" ]; then
case "$(declare -p "$1" 2>/dev/null)" in
"declare -a "*)
ewarn "You are using a bash array for $1."
ewarn "This feature will be removed in the future."
ewarn "Please see net.example for the correct format for $1."
eval "set -- \"\${$1[@]}\""
for _a; do
printf "%s\n" "${_a}"
@@ -57,10 +70,7 @@ _get_array()
esac
fi
eval _a=\$$1
printf "%s" "${_a}"
printf "\n"
[ -n "${_a}" ]
_array_helper $1
}
# Flatten bash arrays to simple strings
@@ -69,6 +79,9 @@ _flatten_array()
if [ -n "${BASH}" ]; then
case "$(declare -p "$1" 2>/dev/null)" in
"declare -a "*)
ewarn "You are using a bash array for $1."
ewarn "This feature will be removed in the future."
ewarn "Please see net.example for the correct format for $1."
eval "set -- \"\${$1[@]}\""
for x; do
printf "'%s' " "$(printf "$x" | sed "s:':'\\\'':g")"
@@ -78,10 +91,7 @@ _flatten_array()
esac
fi
eval _a=\$$1
printf "%s" "${_a}"
printf "\n"
[ -n "${_a}" ]
_array_helper $1
}
_wait_for_carrier()
@@ -105,7 +115,7 @@ _wait_for_carrier()
eend 0
return 0
fi
timeout=$((${timeout} - 1))
: $(( timeout -= 1 ))
[ "${efunc}" = "einfon" ] && printf "."
done
@@ -134,9 +144,9 @@ _netmask2cidr()
local i= len=
local IFS=.
for i in $1; do
while [ ${i} != "0" ]; do
len=$((${len} + ${i} % 2))
i=$((${i} >> 1))
while [ ${i} -ne 0 ]; do
: $(( len += i % 2 ))
: $(( i >>= 1 ))
done
done
@@ -159,6 +169,36 @@ _configure_variables()
done
}
_which()
{
local i OIFS
# Empty
[ -z "$1" ] && return
# check paths
OIFS="$IFS"
IFS=:
for i in $PATH ; do
[ -x $i/$1 ] && echo $i/$1 && break
done
IFS=$OIFS
}
# Like _which, but also consider shell builtins, and multiple alternatives
_program_available()
{
[ -z "$1" ] && return 0
local x=
for x; do
case "${x}" in
/*) [ -x "${x}" ] && break;;
*) type "${x}" >/dev/null 2>&1 && break;;
esac
unset x
done
[ -n "${x}" ] && echo $x && return 0
return 1
}
_show_address()
{
einfo "received address $(_get_inet_address "${IFACE}")"
@@ -180,7 +220,7 @@ _gen_module_list()
${update} || return 0
fi
einfo "Caching network module dependencies"
einfo "Caching network module dependencies"
# Run in a subshell to protect the main script
(
after() {
@@ -215,7 +255,7 @@ _gen_module_list()
for MODULE in "${MODULESDIR}"/*.sh; do
sh -n "${MODULE}" || continue
. "${MODULE}" || continue
. "${MODULE}" || continue
MODULE=${MODULE#${MODULESDIR}/}
MODULE=${MODULE%.sh}
eval ${MODULE}_depend
@@ -267,7 +307,7 @@ _gen_module_list()
echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"
echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"
echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"
i=$((${i} + 1))
: $(( i += 1 ))
done
echo "module_${i}=" >> "${MODULESLIST}"
)
@@ -294,18 +334,17 @@ _load_modules()
local i=-1 x= mod= f= provides=
while true; do
i=$((${i} + 1))
: $(( i += 1 ))
eval mod=\$module_${i}
[ -z "${mod}" ] && break
[ -e "${MODULESDIR}/${mod}.sh" ] || continue
eval set -- \$module_${i}_program
if [ -n "$1" ]; then
x=
for x; do
[ -x "${x}" ] && break
done
[ -x "${x}" ] || continue
if ! _program_available "$@" >/dev/null; then
vewarn "Skipping module $mod due to missing program: $@"
continue
fi
fi
if ${starting}; then
eval set -- \$module_${i}_program_start
@@ -313,15 +352,10 @@ _load_modules()
eval set -- \$module_${i}_program_stop
fi
if [ -n "$1" ]; then
x=
for x; do
case "${x}" in
/*) [ -x "${x}" ] && break;;
*) type "${x}" >/dev/null 2>&1 && break;;
esac
unset x
done
[ -n "${x}" ] || continue
if ! _program_available "$@" >/dev/null; then
vewarn "Skipping module $mod due to missing program: $@"
continue
fi
fi
eval provides=\$module_${i}_provide
@@ -343,7 +377,7 @@ _load_modules()
# Wrap our provides
local f=
for f in pre_start start post_start; do
for f in pre_start start post_start; do
eval "${provides}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done
@@ -357,7 +391,7 @@ _load_modules()
*" ${mod} "*)
eval x=\$module_${mod}_provides
[ -z "${x}" ] && continue
for f in pre_start start post_start; do
for f in pre_start start post_start; do
eval "${x}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done
eval module_${x}_providedby="${mod}"
@@ -379,7 +413,7 @@ _load_modules()
MODULES="${MODULES}${MODULES:+ }${mod}"
done
else
for mod in ${LIST}; do
for mod in ${LIST}; do
MODULES="${mod}${MODULES:+ }${MODULES}"
done
fi
@@ -395,18 +429,20 @@ _load_config()
config_index=0
local IFS="$__IFS"
set -- ${config}
# We should support a space separated array for cidr configs
# But only as long as they do not contain other parameters for the address
if [ $# = 1 ]; then
unset IFS
set -- ${config}
# Of course, we may have a single address added old style.
case "$2" in
netmask|broadcast|brd|brd+)
local IFS="$__IFS"
set -- ${config}
;;
esac
# If the NEXT argument is a v4 or v6 address, it's the next config.
# Otherwise, it's arguments to the first config...
if [ "${2#*.*}" = "${2}" -a "${2#*:*}" = "${2}" ]; then
# Not an IPv4/IPv6
local IFS="$__IFS"
set -- ${config}
fi
fi
# Ensure that loopback has the correct address
@@ -415,7 +451,7 @@ _load_config()
config_0="127.0.0.1/8"
config_index=1
fi
else
else
if [ -z "$1" ]; then
ewarn "No configuration specified; defaulting to DHCP"
config_0="dhcp"
@@ -428,7 +464,7 @@ _load_config()
# so modules can influence it
for cmd; do
eval config_${config_index}="'${cmd}'"
config_index=$((${config_index} + 1))
: $(( config_index += 1 ))
done
# Terminate the list
eval config_${config_index}=
@@ -436,7 +472,7 @@ _load_config()
config_index=0
for cmd in ${fallback}; do
eval fallback_${config_index}="'${cmd}'"
config_index=$((${config_index} + 1))
: $(( config_index += 1 ))
done
# Terminate the list
eval fallback_${config_index}=
@@ -476,9 +512,11 @@ interface_down()
start()
{
local IFACE=${RC_SVCNAME#*.} oneworked=false module=
local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=
local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
local metric=0
local metric=0 _up_before_preup
eval _up_before_preup="\$up_before_preup_${IFVAR}"
[ -z "${_up_before_preup}" ] && _up_before_preup=$up_before_preup
einfo "Bringing up interface ${IFACE}"
eindent
@@ -492,7 +530,7 @@ start()
# available in preup and afterwards incase the user inadvertently
# brings it down
if [ "$(command -v preup)" = "preup" ]; then
_up 2>/dev/null
yesno "${_up_before_preup:-yes}" && _up 2>/dev/null
ebegin "Running preup"
eindent
preup || return 1
@@ -500,7 +538,7 @@ start()
fi
_up 2>/dev/null
for module in ${MODULES}; do
if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then
${module}_pre_start || exit $?
@@ -527,19 +565,21 @@ start()
_load_config
config_index=0
eval our_metric=\$metric_${IFVAR}
eval our_metric=\$metric_${IFVAR}
if [ -n "${our_metric}" ]; then
metric=${our_metric}
elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
metric=$((${metric} + $(_ifindex)))
: $(( metric += $(_ifindex) ))
fi
while true; do
eval config=\$config_${config_index}
[ -z "${config}" ] && break
[ -z "${config}" ] && break
set -- ${config}
ebegin "$1"
if [ "$1" != "null" -a "$1" != "noop" ]; then
ebegin "$1"
fi
eindent
case "$1" in
noop)
@@ -563,16 +603,17 @@ start()
else
eval config=\$fallback_${config_index}
if [ -n "${config}" ]; then
fallback=true
eoutdent
ewarn "Trying fallback configuration ${config}"
eindent
eval config_${config_index}=\$config
unset fallback_${config_index}
config_index=$((${config_index} - 1))
: $(( config_index -= 1 ))
fi
fi
eoutdent
config_index=$((${config_index} + 1))
: $(( config_index += 1 ))
done
if ! ${oneworked}; then
@@ -585,8 +626,13 @@ start()
return 1
fi
local hidefirstroute=false first=true
local routes="$(_get_array "routes_${IFVAR}")"
local hidefirstroute=false first=true routes=
if ${fallback}; then
routes="$(_get_array "fallback_routes_${IFVAR}")"
fi
if [ -z "${routes}" ]; then
routes="$(_get_array "routes_${IFVAR}")"
fi
if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
if [ "${config_0}" != "null" ]; then
routes="127.0.0.0/8 via 127.0.0.1
@@ -638,7 +684,7 @@ ${routes}"
if [ "$(command -v postup)" = "postup" ]; then
ebegin "Running postup"
eindent
postup
postup
eoutdent
fi
@@ -682,9 +728,13 @@ stop()
fi
done
# Only delete addresses for non PPP interfaces
if ! [ "$(command -v is_ppp)" = "is_ppp" ] || ! is_ppp; then
_delete_addresses "${IFACE}"
# Only delete addresses for interfaces that exist
if _exists; then
# PPP can manage it's own addresses when IN_BACKGROUND
# Important in case "demand" set on the ppp link
if ! (yesno ${IN_BACKGROUND} && is_ppp) ; then
_delete_addresses "${IFACE}"
fi
fi
for module in ${MODULES}; do

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# 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
@@ -27,25 +27,25 @@ depend()
if need_portmap; then
pmap="rpc.statd"
[ -x @SYSCONFDIR@/init.d/rpcbind ] \
&& pmap="${pmap} rpcbind" \
|| pmap="${pmap} portmap"
&& pmap="$pmap rpcbind" \
|| pmap="$pmap portmap"
fi
config /etc/fstab
need net ${pmap}
need net $pmap
use afc-client amd autofs openvpn
use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd
keyword nojail noprefix novserver
keyword -jail -prefix -vserver
}
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 $extra_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
@@ -55,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
}
@@ -74,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 $extra_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 $extra_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"
}

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

@@ -0,0 +1,358 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# 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
ewarn
ewarn "The $RC_SVCNAME script is deprecated and will be"
ewarn "removed in the future."
ewarn "Please use the net.* scripts to manage your network interfaces."
ewarn
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 -= 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,18 +1,18 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# 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 += 1 ))
done
return ${retval}
return $retval
}
start()

View File

@@ -1,54 +1,54 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# 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>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# 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,20 +1,20 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Mounts misc filesystems in /proc."
depend()
{
use devfs
use modules devfs
need localmount
keyword noopenvz noprefix novserver
keyword -openvz -prefix -vserver -lxc
}
start()
{
# Make sure we insert usbcore if its a module
if [ -f /proc/modules -a ! -d /proc/bus/usb ]; then
# Make sure we insert usbcore if it's a module
if [ -f /proc/modules -a ! -d /sys/module/usbcore -a ! -d /proc/bus/usb ]; then
modprobe -q usbcore
fi
@@ -25,35 +25,36 @@ 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
fi
# 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 NFS filesystem"
mount -t nfsd -o nodev,noexec,nosuid \
nfsd /proc/fs/nfsd
eend $?
fi
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 -a ! -e /proc/sys/fs/binfmt_misc/register ]; then
if grep -qs binfmt_misc /proc/filesystems; then
ebegin "Mounting misc binary format filesystem"
mount -t binfmt_misc -o nodev,noexec,nosuid \
binfmt_misc /proc/sys/fs/binfmt_misc
eend $?
if eend $? ; then
local fmts
ebegin "Loading custom binary format handlers"
fmts=$(grep -hsv -e '^[#;]' -e '^[[:space:]]*$' \
/run/binfmt.d/*.conf \
"/etc"/binfmt.d/*.conf \
""/usr/lib/binfmt.d/*.conf)
if [ -n "${fmts}" ]; then
echo "${fmts}" > /proc/sys/fs/binfmt_misc/register
fi
eend $?
fi
fi
fi

View File

@@ -1,28 +1,23 @@
#!@PREFIX@/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# 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
}

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