Compare commits

...

65 Commits

Author SHA1 Message Date
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
115 changed files with 615 additions and 427 deletions

View File

@@ -4,12 +4,7 @@
include Makefile.inc
SUBDIR= conf.d etc init.d local.d man scripts sh src
# Build our old net foo or not
ifeq (${MKOLDNET},yes)
SUBDIR+= net doc
endif
SUBDIR= conf.d doc etc init.d local.d man net scripts sh src
# Build pkgconfig or not
MKPKGCONFIG?= yes

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.9.0
VERSION= 0.9.5
PKG= ${NAME}-${VERSION}

2
README
View File

@@ -14,9 +14,9 @@ MKPAM=pam
MKPKGCONFIG=no
MKRCSYS=prefix
MKSELINUX=yes
MKSTATICLIBS=no
MKTERMCAP=ncurses
MKTERMCAP=termcap
MKOLDNET=yes
PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local
PREFIX=/usr/local

View File

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

View File

@@ -1,19 +1,23 @@
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount network staticroute 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
SOS?= BSD
network: network.in network${SFX}
cat $^ > $@
network: network.in network.${SOS}
cp $@.in $@
[ -e $@.${SOS} ] && cat $@.${SOS} >> $@ || true
staticroute: staticroute.${SOS}
cp $@.${SOS} $@
staticroute: staticroute${SFX}
cp $@${SFX} $@

View File

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

View File

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

View File

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

View File

@@ -4,3 +4,7 @@ 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

@@ -13,6 +13,13 @@
#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.

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 :]!).

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

@@ -350,7 +350,7 @@
# 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.
@@ -581,6 +581,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
@@ -827,9 +839,9 @@
# 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

View File

@@ -1,17 +1,33 @@
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)
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:^:\#:'

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,2 +0,0 @@
SED_EXTRA= -e 's:@TERM@:wsvt25:g'
SRCS+= rc.conf.in rc.in rc.shutdown.in

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

View File

@@ -7,5 +7,5 @@ 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 @@
PKG_PREFIX?= /usr/local

View File

@@ -1 +0,0 @@
PKG_PREFIX?=/usr

View File

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

View File

@@ -1,25 +1,42 @@
DIR= ${INITDIR}
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
sysctl.in urandom.in ${SRCS-${OS}}
BIN= ${OBJS}
# Build our old net foo or not
ifeq (${MKOLDNET},yes)
_OLDNET= net.lo
endif
_NET_LO= ${_OLDNET}
INSTALLAFTER= _installafter_${_NET_LO}
CLEANFILES+= ${_NET_LO}
TARGETS+= ${_NET_LO}
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 migrate-run.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
_installafter_net.lo: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO}
${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

@@ -10,12 +10,13 @@ depend()
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()
{
@@ -24,7 +25,7 @@ cleanup_tmp_dir()
if ! [ -d "$dir" ]; then
mkdir -p "$dir" || return $?
fi
dir_writeable "$dir" || return 1
dir_writable "$dir" || return 1
chmod a+rwt "$dir" 2> /dev/null
cd "$dir" || return 1
if yesno $wipe_tmp; then
@@ -88,7 +89,7 @@ start()
fi
done
if dir_writeable /var/run; then
if dir_writable /var/run; then
ebegin "Creating user login records"
local xtra=
[ "$RC_UNAME" = NetBSD ] && xtra=x
@@ -130,7 +131,7 @@ start()
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
@@ -142,11 +143,13 @@ start()
fi
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 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

View File

@@ -49,7 +49,7 @@ start()
retval=1
break
fi
x=$(($x + 1))
: $(( x += 1 ))
done
eend $retval

View File

@@ -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

@@ -19,7 +19,7 @@ start() {
}
stop() {
ebegin "Deactiving kernel core dump device"
ebegin "Deactivating kernel core dump device"
dumpon off
eend $?
}

View File

@@ -48,8 +48,13 @@ start()
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"
# Append passno mounts
for p in $fsck_passno; do
local IFS="$_IFS"
case "$p" in
@@ -58,10 +63,16 @@ start()
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 [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
fsck_args=${fsck_args--A -p}
if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$
@@ -91,7 +102,7 @@ start()
_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

View File

@@ -85,7 +85,7 @@ start()
if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
_hwclock --adjust $utc_cmd
retval=$(($retval + $?))
: $(( retval += $? ))
fi
# If setting UTC, don't bother to run hwclock when first booting
@@ -99,7 +99,7 @@ start()
else
_hwclock --systz $utc_cmd $clock_args
fi
retval=$(($retval + $?))
: $(( retval += $? ))
fi
eend $retval "Failed to set the system clock"

View File

@@ -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
@@ -123,7 +123,7 @@ start() {
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

View File

@@ -47,7 +47,7 @@ start()
n=1
while [ $n -le $ttyn ]; do
kbd_mode $kmode -C $ttydev$n
n=$(($n + 1))
: $(( n += 1 ))
done
eend 0

View File

@@ -34,8 +34,12 @@ start()
stop()
{
# We never unmount / or /dev or $RC_SVCDIR
local x= no_umounts_r="/|/dev|/dev/.*|${RC_SVCDIR}"
no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib|/libexec"
# 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
local IFS="$IFS:"
for x in $no_umounts $RC_NO_UMOUNTS; do
@@ -69,7 +73,7 @@ stop()
done
[ -n "$fs" ] && fs="^($fs)$"
do_unmount umount --skip-point-regex "$no_umounts_r" \
${fs:+--skip-fstype-regex} $fs --nonetdev
"${fs:+--skip-fstype-regex}" $fs --nonetdev
eoutdent
return 0

28
init.d/migrate-run.in Normal file
View File

@@ -0,0 +1,28 @@
#!@PREFIX@/sbin/runscript
# Copyright 1999-2011 Gentoo Foundation
# Released under the 2-clause BSD license.
description="Migrate /var/run and /var/lock to /run"
depend()
{
before *
after localmount
}
start()
{
return 0
}
stop()
{
if [ -d /run -a ! -L /var/lock -a ! -L /var/run ]; then
ebegin "Migrating /var/lock and /var/run to /run"
rm -rf /var/lock /var/run
ln -s /var/lock /run/lock
ln -s /var/run /run
eend 0
fi
return 0
}

View File

@@ -21,7 +21,7 @@ restore()
mixer -f "$mixer" \
$(cat "/var/db/${mixer#/dev/}-state") >/dev/null
veend $?
: $((retval += $?))
: $(( retval += $? ))
fi
done
}
@@ -40,7 +40,7 @@ stop()
vebegin "$mixer"
mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state
veend $?
: $((retval += $?))
: $(( retval += $? ))
done
eoutdent
eend $retval

View File

@@ -57,7 +57,7 @@ start()
[ -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))
eend $? "Failed to load $x" && : $(( cnt += 1 ))
done
einfo "Autoloaded $cnt module(s)"
}

View File

@@ -19,8 +19,12 @@ start()
# We need the do_unmount function
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
eindent
local m="/dev|/dev/.*|/proc|/proc.*|/sys|/sys/.*|${RC_SVCDIR}" x= fs=
m="$m|/bin|/sbin|/lib|/libexec"
# 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 IFS="$IFS:"
for x in $no_umounts $RC_NO_UMOUNTS; do
@@ -34,7 +38,7 @@ start()
[ -n "$fs" ] && fs="^($fs)$"
do_unmount "umount -r" \
--skip-point-regex "$m" \
${fs:+--skip-fstype-regex} $fs --nonetdev
"${fs:+--skip-fstype-regex}" $fs --nonetdev
eoutdent
eend $?
}

View File

@@ -54,7 +54,7 @@ start()
local ttyv=
for ttyv in /dev/ttyv*; do
vidcontrol < "$ttyv" -m on
: $((retval+= $?))
: $(( retval += $? ))
done
fi

View File

@@ -12,7 +12,7 @@ depend()
start()
{
if [ -l /etc/mtab ]
if [ -L /etc/mtab ]
then
einfo "Skipping mtab update (mtab is a symbolic link)"
return 0

View File

@@ -42,6 +42,16 @@ 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=
@@ -60,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
@@ -84,10 +91,7 @@ _flatten_array()
esac
fi
eval _a=\$$1
printf "%s" "${_a}"
printf "\n"
[ -n "${_a}" ]
_array_helper $1
}
_wait_for_carrier()
@@ -111,7 +115,7 @@ _wait_for_carrier()
eend 0
return 0
fi
timeout=$((${timeout} - 1))
: $(( timeout -= 1 ))
[ "${efunc}" = "einfon" ] && printf "."
done
@@ -140,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
@@ -273,7 +277,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}"
)
@@ -300,7 +304,7 @@ _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
@@ -434,7 +438,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}=
@@ -442,7 +446,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}=
@@ -537,7 +541,7 @@ start()
if [ -n "${our_metric}" ]; then
metric=${our_metric}
elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
metric=$((${metric} + $(_ifindex)))
: $(( metric += $(_ifindex) ))
fi
while true; do
@@ -577,11 +581,11 @@ start()
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

View File

@@ -219,6 +219,12 @@ start()
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
@@ -281,7 +287,7 @@ start()
tentative || break
[ $r = 5 ] && vebegin "Waiting for tentative addresses"
sleep 1
r=$(($r - 1))
: $(( r -= 1 ))
done
if [ $r != 5 ]; then
[ $r != 0 ]

View File

@@ -21,7 +21,7 @@ _setleds()
while [ $i -le $ttyn ]; do
setleds -D "$1"num < $dev$i || retval=1
i=$(($i + 1))
: $(( i += 1 ))
done
return $retval

View File

@@ -37,24 +37,24 @@ start()
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

@@ -33,7 +33,7 @@ start()
# Good to go!
"$svc" start && started="$started $svc"
: $((retval += $?))
: $(( retval += $? ))
done
service_set_value started "$started"
eend $retval "Some local rc services failed to start"
@@ -46,7 +46,7 @@ stop()
local svc= retval=0
for svc in $(rcorder $(service_get_value started) 2>/dev/null | sort -r); do
"$svc" stop
: $((retval += $?))
: $(( retval += $? ))
done
eend $retval "Some local rc services failed to stop"
return 0

View File

@@ -93,6 +93,11 @@ do_routes()
start()
{
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
do_routes "Adding" "add"
}

View File

@@ -50,6 +50,37 @@ mount_misc()
eend $?
fi
fi
# Setup Kernel Support for configfs
if [ -d /sys/kernel/config ] && ! mountinfo -q /sys/kernel/config; then
if grep -qs configfs /proc/filesystems; then
ebegin "Mounting config filesystem"
mount -n -t configfs -o nodev,noexec,nosuid \
configfs /sys/kernel/config
eend $?
fi
fi
# Setup Kernel Support for cgroup
if [ -d /sys/fs/cgroup ]; then
if grep -qs cgroup /proc/filesystems && \
! mountinfo -q /sys/fs/cgroup; then
ebegin "Mounting cgroup filesystem"
mount -n -t tmpfs -o nodev,noexec,nosuid \
cgroup /sys/fs/cgroup
eend $?
fi
if ! mountinfo -q /sys/fs/cgroup/openrc; then
ebegin "creating openrc control group"
mkdir /sys/fs/cgroup/openrc
mount -n -t cgroup -o nodev,noexec,nosuid \
openrc /sys/fs/cgroup/openrc
echo 1 > /sys/fs/cgroup/openrc/notify_on_release
echo @LIBEXECDIR@/sh/cgroup-release-agent.sh \
> /sys/fs/cgroup/openrc/release_agent
eend
fi
fi
}
start()

View File

@@ -31,7 +31,7 @@ start()
n=1
while [ ${n} -le "$ttyn" ]; do
printf "\033%s" "$termencoding" >$ttydev$n
n=$(($n + 1))
: $(( n += 1 ))
done
# Save the encoding for use immediately at boot

View File

@@ -16,7 +16,7 @@ save_seed()
local psz=1
if [ -e /proc/sys/kernel/random/poolsize ]; then
psz=$(($(cat /proc/sys/kernel/random/poolsize) / 4096))
: $(( psz = $(cat /proc/sys/kernel/random/poolsize) / 4096 ))
fi
( # sub shell to prevent umask pollution

View File

@@ -93,6 +93,9 @@ Space separated list of extra commands the service defines.
.It Ar extra_started_commands
Space separated list of extra commands the service defines. These only work if
the service has already been started.
.It Ar extra_stopped_commands
Space separated list of extra commands the service defines. These only work if
the service has already been stopped.
.It Ar description
String describing the service.
.It Ar description_$command
@@ -446,7 +449,7 @@ eat()
veinfo "Eating `basename ${food}`"
${command} --eat ${food}
retval=$?
: $((${result} += ${retval}))
: $(( result += retval ))
[ ${retval} = 0 ] && ate="${ate} `basename ${food}`"
done

View File

@@ -8,18 +8,22 @@ SHLIB_NAME= lib${LIB}.so.${SHLIB_MAJOR}
SHLIB_LINK= lib${LIB}.so
SONAME?= ${SHLIB_NAME}
SOBJS+= ${SRCS:.c=.So}
MKSTATICLIBS?= yes
ifeq (${MKSTATICLIBS},yes)
OBJS+= ${SRCS:.c=.o}
SOBJS+= ${OBJS:.o=.So}
_LIBS= lib${LIB}.a ${SHLIB_NAME}
_LIBS+= lib${LIB}.a
endif
_LIBS+= ${SHLIB_NAME}
CLEANFILES+= ${OBJS} ${SOBJS} ${_LIBS} ${SHLIB_LINK}
.SUFFIXES: .So
.c.o:
%.o: %.c
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
.c.So:
%.So: %.c
${CC} ${PICFLAG} -DPIC ${CPPFLAGS} ${CFLAGS} -c $< -o $@
all: depend ${_LIBS}
@@ -41,8 +45,10 @@ ${SHLIB_NAME}: ${SOBJS}
${SOBJS} ${LDADD}
install: all
ifeq (${MKSTATICLIBS},yes)
${INSTALL} -d ${DESTDIR}${LIBDIR}
${INSTALL} -m ${LIBMODE} lib${LIB}.a ${DESTDIR}${LIBDIR}
endif
${INSTALL} -d ${DESTDIR}${SHLIBDIR}
${INSTALL} -m ${LIBMODE} ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}
ln -fs ${SHLIB_NAME} ${DESTDIR}${SHLIBDIR}/${SHLIB_LINK}

View File

@@ -3,4 +3,7 @@
# Generic definitions
PKG_PREFIX?= /usr/local
SFX= .BSD.in
LIBKVM?= -lkvm

View File

@@ -1,5 +1,8 @@
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
SFX= .Linux.in
PKG_PREFIX?= /usr
CPPFLAGS+= -D_BSD_SOURCE -D_XOPEN_SOURCE=600
LIBDL= -Wl,-Bdynamic -ldl

View File

@@ -9,4 +9,3 @@ OS?= ${_OS}
include ${MK}/os-${OS}.mk
RC_LIB= /$(LIBNAME)/rc

View File

@@ -24,7 +24,7 @@ CLEANFILES+= ${OBJS} ${PROG}
all: depend ${PROG}
.c.o:
%.o: %.c
${CC} ${CFLAGS} ${CPPFLAGS} -c $< -o $@
${PROG}: ${SCRIPTS} ${OBJS}

View File

@@ -15,11 +15,10 @@ _LCL_SED:= $(shell ${_LCL_SED_SH})
SED_REPLACE= -e 's:@SHELL@:${SH}:g' -e 's:@LIB@:${LIBNAME}:g' -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g' -e 's:@PREFIX@:${PREFIX}:g' -e 's:@RC_SYS_DEFAULT@:${MKRCSYS}:g' ${_PKG_SED} ${_LCL_SED}
# Tweak our shell scripts
.SUFFIXES: .sh.in .in
.sh.in.sh:
%.sh: %.sh.in
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
.in:
%: %.in
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
all: ${OBJS} ${TARGETS}

View File

@@ -1,9 +1,24 @@
DIR= ${LIBEXECDIR}/net
SRCS= ifconfig.sh.in
SRCS= ifconfig.sh.in ${SRCS-${OS}}
INC= dhclient.sh dhcpcd.sh ifconfig.sh macchanger.sh macnet.sh \
ssidnet.sh system.sh wpa_supplicant.sh
ssidnet.sh system.sh wpa_supplicant.sh ${INC-${OS}}
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
SRCS-FreeBSD= iwconfig.sh.in
INC-FreeBSD= iwconfig.sh
SRCS-Linux= iwconfig.sh.in
INC-Linux= adsl.sh apipa.sh arping.sh bonding.sh br2684ctl.sh bridge.sh \
ccwgroup.sh clip.sh ethtool.sh iproute2.sh ifplugd.sh ip6to4.sh \
ipppd.sh iwconfig.sh netplugd.sh pppd.sh pump.sh tuntap.sh udhcpc.sh \
vlan.sh macvlan.sh
SRCS-NetBSD=
INC-NetBSD= ifwatchd.sh
%.sh: %.sh${SFX}
${CP} $< $@
include ${MK}/scripts.mk

View File

@@ -1,6 +0,0 @@
SRCS+= iwconfig.sh.in
INC+= iwconfig.sh
.SUFFIXES: .sh.BSD.in
.sh.BSD.in.sh:
${CP} $< $@

View File

@@ -1,9 +0,0 @@
SRCS+= iwconfig.sh.in
INC+= adsl.sh apipa.sh arping.sh bonding.sh br2684ctl.sh bridge.sh \
ccwgroup.sh clip.sh ethtool.sh iproute2.sh ifplugd.sh ip6to4.sh \
ipppd.sh iwconfig.sh netplugd.sh pppd.sh pump.sh tuntap.sh udhcpc.sh \
vlan.sh
.SUFFIXES: .sh.Linux.in
.sh.Linux.in.sh:
${CP} $< $@

View File

@@ -1,5 +0,0 @@
INC+= ifwatchd.sh
.SUFFIXES: .sh.BSD.in
.sh.BSD.in.sh:
${CP} $< $@

View File

@@ -26,20 +26,20 @@ apipa_start()
eindent
while [ ${i} -lt 64516 ]; do
i1=$((($(_random) % 255) + 1))
i2=$((($(_random) % 255) + 1))
: $(( i1 = (_random % 255) + 1 ))
: $(( i2 = (_random % 255) + 1 ))
addr="169.254.${i1}.${i2}"
vebegin "${addr}/16"
if ! arping_address "${addr}"; then
eval config_${config_index}="\"${addr}/16 broadcast 169.254.255.255\""
config_index=$((${config_index} - 1))
: $(( config_index -= 1 ))
veend 0
eoutdent
return 0
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
eerror "No free address found!"

View File

@@ -34,13 +34,13 @@ arping_address()
while [ ${w} -gt 0 -a -z "${foundmac}" ]; do
foundmac="$(arping2 ${opts} -r -c 1 -i "${IFACE}" "${ip}" 2>/dev/null | \
sed -e 'y/abcdef/ABCDEF/')"
w=$((${w} - 1))
: $(( w -= 1 ))
done
else
[ -z "$(_get_inet_address)" ] && opts="${opts} -D"
foundmac="$(arping -w "${w}" ${opts} -f -I "${IFACE}" "${ip}" 2>/dev/null | \
sed -n -e 'y/abcdef/ABCDEF/' -e 's/.*\[\([^]]*\)\].*/\1/p')"
sed -n -e 'y/abcdef/ABCDEF/' -e 's/[^[]*\[\([^]]*\)\].*/\1/p')"
fi
[ -z "${foundmac}" ] && return 1

View File

@@ -148,7 +148,7 @@ clip_post_start()
local nleftretries=10 emsg= ecode=
while [ ${nleftretries} -gt 0 ]; do
nleftretries=$((${nleftretries} - 1))
: $(( nleftretries -= 1 ))
emsg="$(atmarp -s "${peerip}" "${ifvpivci}" "$@" 2>&1)"
ecode=$? && break
sleep 2

View File

@@ -31,6 +31,7 @@ ethtool_pre_start() {
[ -z "${args}" ] && continue
# Split on \n
OIFS="${IFS}"
local IFS="$__IFS"
for p in ${args} ; do
@@ -38,6 +39,7 @@ ethtool_pre_start() {
local args_pretty="$(_trim "${p}")"
# Do nothing if empty
[ -z "${args_pretty}" ] && continue
[ "${opt}" = "ring" ] && opt="set-ring"
args_pretty="--${opt} $IFACE ${args_pretty}"
args="--${opt} $IFACE ${args}"
ebegin "ethtool ${args_pretty}"

View File

@@ -38,7 +38,7 @@ _ifindex()
echo "${x#/dev/net}"
return 0
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
;;
default)
@@ -47,7 +47,7 @@ _ifindex()
echo "${i}"
return 0
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
;;
esac

View File

@@ -26,7 +26,7 @@ _ifindex()
{
local line= i=-2
while read line; do
i=$((${i} + 1))
: $(( i += 1 ))
[ ${i} -lt 1 ] && continue
case "${line}" in
"${IFACE}:"*) echo "${i}"; return 0;;
@@ -34,7 +34,7 @@ _ifindex()
done < /proc/net/dev
# Return the next available index
i=$((${i} + 1))
: $(( i += 1 ))
echo "${i}"
return 1
}
@@ -96,7 +96,7 @@ _get_inet_addresses()
_exists || break
local addr="$(_get_inet_address)"
[ -n "${addr}" ] && addrs="${addrs}${addrs:+ }${addr}"
i=$((${i} + 1))
: $(( i += 1 ))
done
echo "${addrs}"
}
@@ -106,26 +106,26 @@ _cidr2netmask()
local cidr="$1" netmask="" done=0 i=0 sum=0 cur=128
local octets= frac=
local octets=$((${cidr} / 8))
local frac=$((${cidr} % 8))
local octets=$(( cidr / 8 ))
local frac=$(( cidr % 8 ))
while [ ${octets} -gt 0 ]; do
netmask="${netmask}.255"
octets=$((${octets} - 1))
done=$((${done} + 1))
: $(( octets -= 1 ))
: $(( done += 1 ))
done
if [ ${done} -lt 4 ]; then
while [ ${i} -lt ${frac} ]; do
sum=$((${sum} + ${cur}))
cur=$((${cur} / 2))
i=$((${i} + 1))
: $(( sum += cur ))
: $(( cur /= 2 ))
: $(( i += 1 ))
done
netmask="${netmask}.${sum}"
done=$((${done} + 1))
: $(( done += 1 ))
while [ ${done} -lt 4 ]; do
netmask="${netmask}.0"
done=$((${done} + 1))
: $(( done += 1 ))
done
fi
@@ -150,7 +150,7 @@ _add_address()
# Get the last alias made for the interface and add 1 to it
i=$(ifconfig | sed '1!G;h;$!d' | grep -m 1 -o "^${iface}:[0-9]*" \
| sed -n -e 's/'"${iface}"'://p')
i=$((${i:-0} + 1))
: $(( i = ${i:-0} + 1 ))
iface="${iface}:${i}"
fi

View File

@@ -72,7 +72,7 @@ ifplugd_pre_start()
fi
sleep 1
[ ${timeout} -eq 0 ] && continue
i=$((${i} + 1))
: $(( i += 1 ))
[ ${i} -ge ${timeout} ] && break
done

View File

@@ -51,7 +51,7 @@ ip6to4_start()
case "${ip}" in
172.${i}.*) break;;
esac
i=$((${i} + 1))
: $(( i += 1 ))
done
[ ${i} -lt 32 ] && continue
;;
@@ -90,7 +90,7 @@ ip6to4_start()
# Now apply our config
eval config_${config_index}=\'"${new}"\'
config_index=$((${config_index} - 1))
: $(( config_index -= 1 ))
# Add a route for us, ensuring we don't delete anything else
local routes="$(_get_array "routes_${IFVAR}")

View File

@@ -36,7 +36,7 @@ _ifindex()
{
local line= i=-2
while read line; do
i=$((${i} + 1))
: $(( i += 1 ))
[ ${i} -lt 1 ] && continue
case "${line}" in
"${IFACE}:"*) echo "${i}"; return 0;;
@@ -44,7 +44,7 @@ _ifindex()
done < /proc/net/dev
# Return the next available index
i=$((${i} + 1))
: $(( i += 1 ))
echo "${i}"
return 1
}
@@ -290,7 +290,7 @@ iproute2_post_start()
while [ $n -ge 0 ]; do
_iproute2_ipv6_tentative || break
sleep 1
n=$(($n - 1))
: $(( n -= 1 ))
done
[ $n -ge 0 ]
eend $?
@@ -308,7 +308,11 @@ iproute2_post_stop()
einfo "Removing RPDB rules"
_ip_rule_runner del "${rules}"
fi
ip route flush table cache dev "${IFACE}"
# Only do something if the interface actually exist
if _exists; then
ip route flush table cache dev "${IFACE}"
fi
fi
# Don't delete sit0 as it's a special tunnel

View File

@@ -218,7 +218,7 @@ iwconfig_associate()
sleep 1
[ ${timeout} -eq 0 ] && continue
i=$((${i} + 1))
: $(( i += 1 ))
[ ${i} -ge ${timeout} ] && { eend 1; return 1; }
done
@@ -252,13 +252,13 @@ iwconfig_scan()
scan="$(LC_ALL=C ifconfig -v "${IFACE}" list scan 2>/dev/null | sed -e "1 d" -e "s/$/'/g" -e "s/^/'/g")"
while [ ${i} -lt 3 -a -z "${scan}" ] ; do
scan="${scan}${scan:+ }$(LC_ALL=C ifconfig -v "${IFACE}" scan 2>/dev/null | sed -e "1 d" -e "s/$/'/g" -e "s/^/'/g")"
i=$((${i} + 1))
: $(( i += 1 ))
done
APS=-1
eval set -- ${scan}
for line in "$@" ; do
APS=$((${APS} + 1))
: $(( APS += 1 ))
set -- ${line}
while true ; do
case "$1" in
@@ -276,7 +276,7 @@ iwconfig_scan()
# Add 1000 for managed nodes as we prefer them to adhoc
set -- $*
case "$1" in
*E*) eval QUAL_${APS}=$((${quality} + 1000)) ;;
*E*) eval QUAL_${APS}=$(( quality + 1000 )) ;;
*) eval QUAL_${APS}=\$quality ;;
esac
done
@@ -290,7 +290,7 @@ iwconfig_scan()
# Sort based on quality
local i=0 k=1 a= b= x= t=
while [ ${i} -lt ${APS} ] ; do
k=$((${i} + 1))
: $(( k = i + 1 ))
while [ ${k} -le ${APS} ] ; do
eval a=\$QUALITY_${i}
[ -z "${a}" ] && break
@@ -302,15 +302,15 @@ iwconfig_scan()
eval ${x}_${k}=\$t
done
fi
k=$((${k} + 1))
: $(( k += 1 ))
done
i=$((${i} + 1))
: $(( i += 1 ))
done
# Strip any duplicates
local i=0 k=1 a= b=
while [ ${i} -lt ${APS} ] ; do
k=$((${i} + 1))
: $(( k = i + 1 ))
while [ ${k} -le ${APS} ] ; do
eval a=\$MAC_${i}
eval b=\$MAC_${k}
@@ -327,9 +327,9 @@ iwconfig_scan()
unset MAC_${k} SSID_${k} CHAN_${k} QUALITY_${k} CAPS_${k}
fi
fi
k=$((${k} + 1))
: $(( k += 1 ))
done
i=$((${i} + 1))
: $(( i += 1 ))
done
local i=0 e= m= s=
@@ -337,7 +337,7 @@ iwconfig_scan()
while [ ${i} -le ${APS} ] ; do
eval x=\$MAC_${i}
if [ -z "${x}" ] ; then
i=$((${i} + 1))
: $(( i += 1 ))
continue
fi
@@ -374,7 +374,7 @@ iwconfig_scan()
unset SSID_${i} MAC_${i} CHAN_${i} QUALITY_${i} CAPS_${i}
fi
done
i=$((${i} + 1))
: $(( i += 1 ))
done
eoutdent
return 0
@@ -396,7 +396,7 @@ iwconfig_force_preferred()
found_AP=true
break
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
if ! ${found_AP} ; then
SSID=${ssid}
@@ -428,7 +428,7 @@ iwconfig_connect_preferred()
iwconfig_associate "${mac}" \
"${chan}" "${caps}" && return 0
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
done
@@ -442,7 +442,7 @@ iwconfig_connect_not_preferred()
while [ ${i} -le ${APS} ] ; do
eval e=\$SSID_${i}
if [ -z "${e}" ] ; then
i=$((${i} + 1))
: $(( i += 1 ))
continue
fi
@@ -465,7 +465,7 @@ iwconfig_connect_not_preferred()
iwconfig_associate "${mac}" \
"${chan}" "${caps}" && return 0
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
return 1

View File

@@ -39,7 +39,7 @@ _get_ssid()
return 0
fi
sleep 1
i=$((${i} - 1))
: $(( i -= 1 ))
done
return 1
@@ -229,7 +229,7 @@ iwconfig_wait_for_association()
sleep 1
[ ${timeout} -eq 0 ] && continue
i=$((${i} + 1))
: $(( i += 1 ))
[ ${i} -ge ${timeout} ] && return 1
done
return 1
@@ -347,7 +347,7 @@ iwconfig_scan()
;;
esac
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
if [ -z "${scan}" ]; then
@@ -377,7 +377,7 @@ iwconfig_scan()
for line; do
case "${line}" in
*Address:*)
APS=$((${APS} + 1))
: $(( APS += 1 ))
eval MAC_${APS}="\""$(echo "${line#*: }" | tr '[:lower:]' '[:upper:]')"\""
eval QUALITY_${APS}=0
;;
@@ -427,7 +427,7 @@ iwconfig_scan()
# Sort based on quality
local i=0 k=1 a= b= x= t=
while [ ${i} -lt ${APS} ]; do
k=$((${i} + 1))
: $(( k = i + 1 ))
while [ ${k} -le ${APS} ]; do
eval a=\$QUALITY_${i}
[ -z "${a}" ] && break
@@ -439,15 +439,15 @@ iwconfig_scan()
eval ${x}_${k}=\$t
done
fi
k=$((${k} + 1))
: $(( k += 1 ))
done
i=$((${i} + 1))
: $(( i += 1 ))
done
# Strip any duplicates
local i=0 k=1 a= b=
while [ ${i} -lt ${APS} ]; do
k=$((${i} + 1))
: $(( k = i + 1 ))
while [ ${k} -le ${APS} ]; do
eval a=\$MAC_${i}
eval b=\$MAC_${k}
@@ -459,9 +459,9 @@ iwconfig_scan()
[ -n "${a}" -a -n "${b}" ] && [ "${a}" -lt "${b}" ] && u=${i}
unset MAC_${u} SSID_${u} MODE_${u} CHAN_${u} QUALITY_${u} ENC_${u}
fi
k=$((${k} + 1))
: $(( k += 1 ))
done
i=$((${i} + 1))
: $(( i += 1 ))
done
local i=0 e= m= s=
@@ -469,7 +469,7 @@ iwconfig_scan()
while [ ${i} -le ${APS} ]; do
eval x=\$MAC_${i}
if [ -z "${x}" ]; then
i=$((${i} + 1))
: $(( i += 1 ))
continue
fi
@@ -506,7 +506,7 @@ iwconfig_scan()
unset SSID_${i} MAC_${i} ${MODE}_${i} CHAN_${i} QUALITY_${i} ENC_${i}
fi
done
i=$((${i} + 1))
: $(( i += 1 ))
done
eoutdent
}
@@ -526,7 +526,7 @@ iwconfig_force_preferred()
found_AP=true
break
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
if ! ${found_AP}; then
SSID=${ssid}
@@ -559,7 +559,7 @@ iwconfig_connect_preferred()
iwconfig_associate "${mode}" "${mac}" "${enc}" "${freq}" \
"${chan}" && return 0
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
done
@@ -593,7 +593,7 @@ iwconfig_connect_not_preferred()
"${chan}" && return 0
fi
fi
i=$((${i} + 1))
: $(( i += 1 ))
done
return 1

69
net/macvlan.sh Normal file
View File

@@ -0,0 +1,69 @@
# 2011-09-22 Stef Simoens <stef@bgs.org>
# based on vlan.sh & tuntap.sh
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
_ip()
{
if [ -x /bin/ip ]; then
echo /bin/ip
else
echo /sbin/ip
fi
}
macvlan_depend()
{
program $(_ip)
after interface
before dhcp macchanger
}
_is_macvlan()
{
[ -n "$(export RC_SVCNAME="net.${IFACE}"; service_get_value macvlan)" ]
}
_check_macvlan()
{
if [ ! -d /sys/module/macvlan ]; then
modprobe macvlan
if [ ! -d /sys/module/macvlan ]; then
eerror "MAC-VLAN support is not present in this kernel"
return 1
fi
fi
}
macvlan_pre_start()
{
# MAC-VLAN needs an existing interface to link to
local macvlan=
eval macvlan=\$macvlan_${IFVAR}
[ -z "${macvlan}" ] && return 0
_check_macvlan || return 1
# optional mode, default to "private"
local mode=
eval mode=\$mode_${IFVAR}
[ -z "${mode}" ] && mode="private"
ebegin "Creating MAC-VLAN ${IFACE} to ${macvlan}"
e="$(ip link add link "${macvlan}" name "${IFACE}" type macvlan mode "${mode}" 2>&1 1>/dev/null)"
if [ -n "${e}" ]; then
eend 1 "${e}"
else
eend 0 && service_set_value macvlan "${macvlan}"
fi
}
macvlan_post_stop()
{
_is_macvlan || return 0
ebegin "Removing MAC-VLAN ${IFACE}"
ip link delete "${IFACE}" type macvlan >/dev/null
eend $?
}

View File

@@ -74,7 +74,7 @@ netplugd_pre_start()
fi
sleep 1
[ ${timeout} -eq 0 ] && continue
i=$((${i} + 1))
: $(( i += 1 ))
[ ${i} -ge ${timeout} ] && break
done

View File

@@ -96,7 +96,7 @@ pppd_pre_start()
if ! ${hasdefaultmetric}; then
local m=
eval m=\$metric_${IFVAR}
[ -z "${m}" ] && m=$((${metric} + $(_ifindex)))
[ -z "${m}" ] && : $(( m = metric + $(_ifindex) ))
opts="${opts} defaultmetric ${m}"
fi
if [ -n "${mtu}" ]; then

View File

@@ -13,7 +13,7 @@ system_depend()
_system_dns()
{
local servers= domain= search= sortlist= options= x=
local servers= domain= search= sortlist= options= x= imetric=
eval servers=\$dns_servers_${IFVAR}
[ -z "${servers}" ] && servers=${dns_servers}
@@ -46,7 +46,12 @@ _system_dns()
# Support resolvconf if we have it.
if [ -x /sbin/resolvconf ]; then
printf "${buffer}" | resolvconf -a "${IFACE}"
x="-a ${IFACE}"
eval imetric=\${metric_${IFVAR}}
if [ -n "${imetric}" ]; then
x="${x} -m ${imetric}"
fi
printf "${buffer}" | resolvconf ${x}
else
printf "${buffer}" > /etc/resolv.conf
chmod 644 /etc/resolv.conf

View File

@@ -30,7 +30,7 @@ tuntap_pre_start()
local timeout=10
while [ ! -e /dev/net/tun -a ${timeout} -gt 0 ]; do
sleep 1
timeout=$((${timeout} - 1))
: $(( timeout -= 1 ))
done
if [ ! -e /dev/net/tun ]; then
eerror "TUN/TAP support present but /dev/net/tun is not"
@@ -54,15 +54,18 @@ tuntap_pre_start()
do_tunctl=true
elif type openvpn >/dev/null 2>&1; then
do_openvpn=true
else
elif type tunctl >/dev/null 2>&1; then
do_tunctl=true
fi
if ${do_openvpn}; then
openvpn --mktun --dev-type "${tuntap}" --dev "${IFACE}" \
${o_opts} >/dev/null
else
elif ${do_tunctl}; then
tunctl ${t_opts} -t "${IFACE}" >/dev/null
else
eerror "Neither openvpn nor tunctl has been found, please install"
eerror "either \"openvpn\" or \"usermode-utilities\"."
fi
eend $? && _up && service_set_value tuntap "${tuntap}"
}

View File

@@ -77,7 +77,17 @@ vlan_post_start()
eval vegress=\$vlan${vlan}_egress
[ -z "${vegress}" ] || vegress="egress-qos-map ${vegress}"
e="$(ip link add link "${IFACE}" name "${vname}" type vlan id "${vlan}" ${vflags} ${vingress} ${vegress} 2>&1 1>/dev/null)"
local txqueuelen=
eval txqueuelen=\$txqueuelen_vlan${vlan}
local mac=
eval mac=\$mac_vlan${vlan}
local broadcast=
eval broadcast=\$broadcast_vlan${vlan}
local mtu=
eval mtu=\$mtu_vlan${vlan}
local opts="${txqueuelen:+txqueuelen} ${txqueuelen} ${mac:+address} ${mac} ${broadcast:+broadcast} ${broadcast} ${mtu+:mtu} ${mtu}"
e="$(ip link add link "${IFACE}" name "${vname}" ${opts} type vlan id "${vlan}" ${vflags} ${vingress} ${vegress} 2>&1 1>/dev/null)"
if [ -n "${e}" ]; then
eend 1 "${e}"
continue
@@ -101,10 +111,12 @@ vlan_post_start()
return 0
}
vlan_post_stop()
vlan_pre_stop()
{
local vlan=
_exists || return 1
for vlan in $(_get_vlans); do
einfo "Removing VLAN ${vlan##*.} from ${IFACE}"
(

View File

@@ -34,7 +34,7 @@ _get_ssid()
return 0
fi
sleep 1
timeout=$((timeout - 1))
: $(( timeout -= 1 ))
done
return 1

View File

@@ -1,7 +1,8 @@
BOOT= bootmisc fsck hostname localmount network \
root staticroute swap sysctl urandom
BOOT= bootmisc fsck hostname localmount \
root swap sysctl urandom ${BOOT-${OS}}
DEFAULT= local netmount
SHUTDOWN= savecache
SHUTDOWN= savecache ${SHUTDOWN-${OS}}
SYSINIT= ${SYSINIT-${OS}}
LEVELDIR= ${DESTDIR}/${SYSCONFDIR}/runlevels
SYSINITDIR= ${LEVELDIR}/sysinit
@@ -9,13 +10,30 @@ BOOTDIR= ${LEVELDIR}/boot
DEFAULTDIR= ${LEVELDIR}/default
SHUTDOWNDIR= ${LEVELDIR}/shutdown
INITDIR= ../init.d
MK= ../mk
include ${MK}/sys.mk
include ${MK}/os.mk
include ${MK}/gitignore.mk
include Makefile.${OS}
BOOT-${OS}=
SHUTDOWN-${OS}=
SYSINIT-${OS}=
BOOT-BSD= hostid newsyslog savecore syslogd swap-blk
# Generic BSD stuff
BOOT-FreeBSD= hostid net.lo0 newsyslog savecore syslogd
# FreeBSD specific stuff
BOOT-FreeBSD+= adjkerntz dumpon syscons
BOOT-Linux= hwclock keymaps modules mtab net.lo procfs termencoding migrate-run
SHUTDOWN-Linux= killprocs mount-ro
SYSINIT-Linux= devfs dmesg
# Generic BSD stuff
BOOT-NetBSD= hostid net.lo0 newsyslog savecore syslogd
# NetBSD specific stuff
BOOT-NetBSD+= devdb swap-blk ttys wscons
all:

View File

@@ -1 +0,0 @@
BOOT+= hostid newsyslog savecore syslogd swap-blk

View File

@@ -1,5 +0,0 @@
# Generic BSD stuff
BOOT+= hostid net.lo0 newsyslog savecore syslogd
# FreeBSD specific stuff
BOOT+= adjkerntz dumpon syscons

View File

@@ -1,3 +0,0 @@
SYSINIT+= devfs dmesg
BOOT+= hwclock keymaps modules mtab procfs termencoding
SHUTDOWN+= killprocs mount-ro

View File

@@ -1,5 +0,0 @@
# Generic BSD stuff
BOOT+= hostid net.lo0 newsyslog savecore syslogd
# NetBSD specific stuff
BOOT+= devdb swap-blk ttys wscons

View File

@@ -3,14 +3,14 @@
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Exit 0 if on AC power, 1 if not and 255 if we don't know how to work it out
if [ -f /proc/acpi/ac_adapter/AC*/state ]; then
cat /proc/acpi/ac_adapter/AC*/state | while read line; do
if [ -f /proc/acpi/ac_adapter/*/state ]; then
cat /proc/acpi/ac_adapter/*/state | while read line; do
case "$line" in
"state:"*"off-line") exit 128;;
esac
done
elif [ -f /sys/class/power_supply/AC*/online ]; then
cat /sys/class/power_supply/AC*/online | while read line; do
elif [ -f /sys/class/power_supply/*/online ]; then
cat /sys/class/power_supply/*/online | while read line; do
[ "${line}" = 0 ] && exit 128
done
elif [ -f /proc/pmu/info ]; then

View File

@@ -1,16 +1,28 @@
DIR= ${LIBEXECDIR}/sh
SRCS= functions.sh.in gendepends.sh.in init-common-post.sh.in \
rc-functions.sh.in runscript.sh.in
SRCS= init.sh.in functions.sh.in gendepends.sh.in init-common-post.sh.in \
rc-functions.sh.in runscript.sh.in ${SRCS-${OS}}
INC= init-common-post.sh rc-mount.sh functions.sh rc-functions.sh
BIN= gendepends.sh init.sh runscript.sh
BIN= gendepends.sh init.sh runscript.sh ${BIN-${OS}}
INSTALLAFTER= _installafter
MK= ../mk
include ${MK}/os.mk
include Makefile.${OS}
SRCS-FreeBSD=
BIN-FreeBSD=
SRCS-Linux= cgroup-release-agent.sh.in init-early.sh.in udhcpc-hook.sh.in
BIN-Linux= cgroup-release-agent.sh init-early.sh udhcpc-hook.sh
SRCS-NetBSD= ifwatchd-carrier.sh.in ifwatchd-nocarrier.sh.in
BIN-NetBSD= ifwatchd-carrier.sh ifwatchd-nocarrier.sh
include ${MK}/scripts.mk
%.sh: %.sh${SFX}
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
_installafter:
${INSTALL} -d ${DESTDIR}/${INITDIR}
@# Put functions.sh into init for backwards compat

View File

@@ -1,6 +0,0 @@
SRCS+= init.sh.in
.SUFFIXES: .sh.BSD.in
.sh.BSD.in.sh:
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@

View File

@@ -1,7 +0,0 @@
SRCS+= init.sh.in init-early.sh.in udhcpc-hook.sh.in
BIN+= init-early.sh udhcpc-hook.sh
.SUFFIXES: .sh.Linux.in
.sh.Linux.in.sh:
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@

View File

@@ -1,8 +0,0 @@
SRCS+= init.sh.in
SRCS+= ifwatchd-carrier.sh.in ifwatchd-nocarrier.sh.in
BIN+= ifwatchd-carrier.sh ifwatchd-nocarrier.sh
.SUFFIXES: .sh.BSD.in
.sh.BSD.in.sh:
${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@

View File

@@ -0,0 +1,10 @@
#!@SHELL@
#
# This is run by the kernel after the last task is removed from a
# control group in the openrc hierarchy.
cgroup=/sys/fs/cgroup/openrc
PATH=/bin:/usr/bin:/sbin:/usr/sbin
if [ -d ${cgroup}/$1 ]; then
rmdir ${cgroup}/$1
fi

View File

@@ -8,14 +8,14 @@ RC_GOT_FUNCTIONS="yes"
eindent()
{
EINFO_INDENT=$((${EINFO_INDENT:-0} + 2))
: $(( EINFO_INDENT = ${EINFO_INDENT:-0} + 2 ))
[ "$EINFO_INDENT" -gt 40 ] && EINFO_INDENT=40
export EINFO_INDENT
}
eoutdent()
{
EINFO_INDENT=$((${EINFO_INDENT:-0} - 2))
: $(( EINFO_INDENT = ${EINFO_INDENT:-0} - 2 ))
[ "$EINFO_INDENT" -lt 0 ] && EINFO_INDENT=0
return 0
}

View File

@@ -104,13 +104,7 @@ if [ -d /run ]; then
fi
eend $?
fi
if [ ! -d /run/lock ]; then
mkdir /run/lock
fi
if [ -d /run/lock ]; then
chown root:uucp /run/lock
chmod 0775 /run/lock
fi
checkpath -d -m 0775 -o root:uucp /run/lock
elif [ -e /run ]; then
einfo "Unable to mount /run since it is not a directory"
fi

View File

@@ -59,7 +59,7 @@ do_unmount()
eend 1
else
local sig="TERM"
retry=$(($retry - 1))
: $(( retry -= 1 ))
[ $retry = 1 ] && sig="KILL"
fuser $f_kill$sig -k $f_opts \
"$mnt" >/dev/null 2>&1

View File

@@ -33,6 +33,14 @@ loadconfig()
fi
}
sourcex "@SYSCONFDIR@/init.d/functions.sh"
sourcex "@LIBEXECDIR@/sh/rc-functions.sh"
# Support LiveCD foo
if sourcex -e "/sbin/livecd-functions.sh"; then
livecd_read_commandline
fi
if [ ! -e ${RC_SVCDIR}/softlevel ]; then
eerror "You are attempting to run an openrc service on a"
eerror "system which openrc did not boot."
@@ -45,15 +53,6 @@ if [ ! -e ${RC_SVCDIR}/softlevel ]; then
exit 1
fi
sourcex "@SYSCONFDIR@/init.d/functions.sh"
sourcex "@LIBEXECDIR@/sh/rc-functions.sh"
# Support LiveCD foo
if [ -r /sbin/livecd-functions.sh ]; then
sourcex "/sbin/livecd-functions.sh"
livecd_read_commandline
fi
if [ -z "$1" -o -z "$2" ]; then
eerror "$RC_SVCNAME: not enough arguments"
exit 1
@@ -89,7 +88,7 @@ keyword() {
[ -n "$*" ] && echo "keyword $*"
}
# Descript the init script to the user
# Describe the init script to the user
describe()
{
if [ -n "$description" ]; then
@@ -99,7 +98,8 @@ describe()
fi
local svc= desc=
for svc in ${extra_commands:-$opts} $extra_started_commands; do
for svc in ${extra_commands:-$opts} $extra_started_commands \
$extra_stopped_commands; do
eval desc=\$description_$svc
if [ -n "$desc" ]; then
einfo "$HILITE$svc$NORMAL: $desc"
@@ -148,6 +148,19 @@ start()
service_inactive && _inactive=true
mark_service_inactive
fi
if [ "$RC_UNAME" = Linux ]; then
local cgroup=/sys/fs/cgroup/openrc
local svc_cgroup=${cgroup}/${RC_SVCNAME}
if mountinfo -q ${cgroup}; then
mkdir ${svc_cgroup}
for f in cpuset.cpus cpuset.mems; do
if [ -f ${cgroup}/${f} ]; then
cp ${cgroup}/${f} ${svc_cgroup}
fi
done
echo $$ > ${svc_cgroup}/tasks
fi
fi
eval start-stop-daemon --start \
--exec $command \
${procname:+--name} $procname \
@@ -214,11 +227,11 @@ unset _f
if [ -n "$opts" ]; then
ewarn "Use of the opts variable is deprecated and will be"
ewarn "removed in the future."
ewarn "Please use extra_commands or extra_started_commands."
ewarn "Please use extra_commands, extra_started_commands or extra_stopped_commands."
fi
while [ -n "$1" ]; do
# Sepcial case depend
# Special case depend
if [ "$1" = depend ]; then
shift
_depend
@@ -226,7 +239,7 @@ while [ -n "$1" ]; do
fi
# See if we have the required function and run it
for _cmd in describe start stop status ${extra_commands:-$opts} \
$extra_started_commands
$extra_started_commands $extra_stopped_commands
do
if [ "$_cmd" = "$1" ]; then
if [ "$(command -v "$1")" = "$1" ]; then
@@ -254,6 +267,16 @@ while [ -n "$1" ]; do
fi
fi
done
# Check to see if we need to be stopped before
# we can run this command
for _cmd in $extra_stopped_commands; do
if [ "$_cmd" = "$1" ]; then
if ! service_stopped; then
eerror "$RC_SVCNAME: cannot \`$1' as it has not been stopped"
exit 1
fi
fi
done
unset _cmd
if [ "$(command -v "$1_pre")" = "$1_pre" ]
then
@@ -281,3 +304,5 @@ while [ -n "$1" ]; do
eerror "$RC_SVCNAME: unknown function \`$1'"
exit 1
done
exit 0

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