Compare commits

..

3 Commits

Author SHA1 Message Date
Roy Marples
79fe5af027 Release openrc-0.5.0 2009-06-05 09:18:47 +01:00
Roy Marples
401def2b8f Ignore more foo 2009-06-05 09:17:18 +01:00
Roy Marples
be3dd0b8e4 Update copyright 2009-06-05 09:15:55 +01:00
281 changed files with 2426 additions and 5796 deletions

15
.gitignore vendored
View File

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

View File

@@ -1,49 +0,0 @@
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,21 +1,20 @@
# OpenRC Makefile # OpenRC Makefile
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
include Makefile.inc NAME= openrc
VERSION= 0.5.0
PKG= ${NAME}-${VERSION}
SUBDIR= conf.d etc init.d local.d man scripts sh src sysctl.d SUBDIR= conf.d etc init.d man sh src
# Build our old net foo or not # Build our old net foo or not
ifeq (${MKNET},oldnet) _OLDNET_SH= case "${MKOLDNET}" in \
SUBDIR+= net doc [Yy][Ee][Ss]) echo "net doc";; \
endif *) echo "";; \
esac
# Build pkgconfig or not _OLDNET!= ${_OLDNET_SH}
MKPKGCONFIG?= yes SUBDIR+= ${_OLDNET}$(shell ${_OLDNET_SH})
ifeq (${MKPKGCONFIG},yes)
SUBDIR+= pkgconfig
endif
# We need to ensure that runlevels is done last # We need to ensure that runlevels is done last
SUBDIR+= runlevels SUBDIR+= runlevels
@@ -30,10 +29,6 @@ include ${MK}/dist.mk
include ${MK}/git.mk include ${MK}/git.mk
_installafter: _installafter:
ifeq (${MKPREFIX},yes)
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d ${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
else ifneq (${OS},Linux)
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
endif
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp ${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp
${ECHO} "${VERSION}${GITVER}" > ${DESTDIR}/${LIBEXECDIR}/version ${ECHO} "${VERSION}${GITVER}" > ${DESTDIR}/${LIBEXECDIR}/version

View File

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

26
README
View File

@@ -4,20 +4,16 @@ OpenRC README
Installation Installation
------------ ------------
make install make install
Yup, that simple. Works with GNU make. Yup, that simple. Works with GNU make and BSD make.
You may wish to tweak the installation with the below arguments You may wish to tweak the installation with the below arguments
PROGLDFLAGS=-static PROGLDFLAGS=-static
LIBNAME=lib64 LIBNAME=lib64
DESTDIR=/tmp/openrc-image DESTDIR=/tmp/openrc-image
MKNET=oldnet
MKPAM=pam MKPAM=pam
MKPREFIX=yes
MKPKGCONFIG=no
MKSELINUX=yes
MKSTATICLIBS=no
MKTERMCAP=ncurses MKTERMCAP=ncurses
MKTERMCAP=termcap MKTERMCAP=termcap
MKOLDNET=yes
PKG_PREFIX=/usr/pkg PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local LOCAL_PREFIX=/usr/local
PREFIX=/usr/local PREFIX=/usr/local
@@ -26,8 +22,6 @@ We don't support building a static OpenRC with PAM.
You may need to use PROGLDFLAGS=-Wl,-Bstatic on glibc instead of just -static. You may need to use PROGLDFLAGS=-Wl,-Bstatic on glibc instead of just -static.
If you debug memory under valgrind, add -DDEBUG_MEMORY to your CPPFLAGS If you debug memory under valgrind, add -DDEBUG_MEMORY to your CPPFLAGS
so that all malloc memory should be freed at exit. so that all malloc memory should be freed at exit.
If you are building OpenRC for a Gentoo Prefix installation, add
MKPREFIX=yes.
You can also brand OpenRC if you so wish like so You can also brand OpenRC if you so wish like so
BRANDING=\"Gentoo/$(uname -s)\" BRANDING=\"Gentoo/$(uname -s)\"
@@ -46,7 +40,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. 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 devd.conf is modified from FreeBSD to call /etc/rc.devd which is a generic
hook into OpenRC. hook into OpenRC.
inittab is the same, but for SysVInit as used by most Linux distributions. inittab is the same, but for SysVInit as used by most Linux distrubtions.
This can be found in the support folder. This can be found in the support folder.
Obviously, if you're installing this onto a system that does not use OpenRC 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 by default then you may wish to backup the above listed files, remove them
@@ -58,19 +52,19 @@ of the system.
Reporting Bugs Reporting Bugs
-------------- -------------
Since Gentoo Linux is hosting OpenRC development, Bugs should go to If you installed OpenRC from your chosen distribution, you should report
the Gentoo Bugzilla: bugs directly to them. For example, if you use Gentoo and emerged OpenRC
http://bugs.gentoo.org/ then you should reports bugs to http://bugs.gentoo.org.
They should be filed under the "Gentoo Hosted Projects" product and
the "openrc" component. Otherwise, you can report them directly to me at http://bugs.marples.name
History - by Roy Marples History - by Roy Marples
------------------------ ------------------------
I became a Gentoo/Linux developer in 2004 and wrote the modular network I became a Gentoo/Linux developer in 2004 and wrote the modular network
scripts for the Gentoo baselayout package. baselayout is a collection of scripts for the Gentoo baselayout package. baselayout is a collection of
bash scripts to bring up your computer and its services. bash scripts to bring up your computer and it's services.
Then towards the end of 2005 I found myself as the primary maintainer Then towards the end of 2005 I found myself as the primary maintainer
for baselayout. for baselayout.

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.

85
STYLE
View File

@@ -1,85 +0,0 @@
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

20
TODO
View File

@@ -1,21 +1,3 @@
- ensure all forks block, restore and unblock signals. needs review - ensure all forks block, restore and unblock signals. needs review
- add support somehow for optional translations - add support somehow for optional translations
- oldnet[bridging]: Review setting of bridge configuration on dynamic interface add
- Document rc-depend binary.
- _ifindex is not a reliable means of calculating metrics:
_ifindex is used for calculating metrics for new devices but has a major
problem: Since it's only the nth entry in /proc/net/dev
And devices may be removed from that file, and reordered, you won't always
get the same result.
If you do:
- add eth0 - _ifindex (eth0=0)
- add vlan1 - _ifindex (eth0=0,vlan1=1)
- add vlan2 - _ifindex (eth0=0,vlan1=1,vlan2=2)
- rem vlan1 - _ifindex (eth0=0,vlan2=1)
- add vlan3 - _ifindex (eth0=0,vlan2=1,vlan3=2)
Now your routing table has entries for both vlan2 and vlan3 with a metric of 2.

1
conf.d/.gitignore vendored
View File

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

View File

@@ -1,25 +1,14 @@
DIR= ${CONFDIR} DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount urandom tmpfilesd ${CONF-${OS}} CONF= bootmisc fsck hostname local localmount network urandom
ifeq (${MKNET},) TARGETS+= network
CONF+= network staticroute CLEANFILES+= network
TARGETS+= network staticroute
CLEANFILES+= network staticroute
endif
MK= ../mk MK= ../mk
include ${MK}/os.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 include ${MK}/scripts.mk
network: network.in network${SFX} network: network.in network.${OS}
cat $^ > $@ cp network.in network
[ -e network.${OS} ] && cat network.${OS} >> network || true
staticroute: staticroute${SFX}
cp $@${SFX} $@

3
conf.d/Makefile.FreeBSD Normal file
View File

@@ -0,0 +1,3 @@
CONF+= ipfw moused powerd rarpd savecore syscons
network.${OS}:

1
conf.d/Makefile.Linux Normal file
View File

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

3
conf.d/Makefile.NetBSD Normal file
View File

@@ -0,0 +1,3 @@
CONF+= moused rarpd savecore
network.${OS}:

View File

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

View File

@@ -4,7 +4,3 @@ clean_tmp_dirs="/tmp"
# Should we wipe the tmp paths completely or just selectively remove known # Should we wipe the tmp paths completely or just selectively remove known
# locks / files / etc... ? # locks / files / etc... ?
wipe_tmp="YES" 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

@@ -1,10 +1,9 @@
# The consolefont service is not activated by default. If you need to
# use it, you should run "rc-update add consolefont boot" as root.
#
# consolefont specifies the default font that you'd like Linux to use on the # consolefont specifies the default font that you'd like Linux to use on the
# console. You can find a good selection of fonts in /usr/share/consolefonts; # console. You can find a good selection of fonts in /usr/share/consolefonts;
# you shouldn't specify the trailing ".psf.gz", just the font name below. # 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. # 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).
consolefont="default8x16" consolefont="default8x16"
# consoletranslation is the charset map file to use. Leave commented to use # consoletranslation is the charset map file to use. Leave commented to use

View File

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

View File

@@ -13,18 +13,6 @@
#fsck_passno=">1" #fsck_passno=">1"
#fsck_passno="<2" #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. # 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 # 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 # scheduled, under normal circumstances the actual check will happen during

View File

@@ -1,19 +1,13 @@
# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as # Set CLOCK to "UTC" if your system clock is set to UTC (also known as
# Greenwich Mean Time). If that clock is set to the local time, then # Greenwich Mean Time). If your clock is set to the local time, then
# set CLOCK to "local". Note that if you dual boot with Windows, then # set CLOCK to "local". Note that if you dual boot with Windows, then
# you should set it to "local". # you should set it to "local".
clock="UTC" clock="UTC"
# If you want the hwclock script to set the system time (software clock) # If you want to set the Hardware Clock to the current System Time
# to match the current hardware clock during bootup, leave this # during shutdown, then say "YES" here.
# commented out. # You normally don't need to do this if you run a ntp daemon.
# However, you can set this to "NO" ifyou are running a modern kernel clock_systohc="NO"
# with CONFIG_RTC_HCTOSYS set to y and your hardware clock set to UTC.
#clock_hctosys="YES"
# If you do not want to set the hardware clock to the current system
# time (software clock) during shutdown, set this to no.
#clock_systohc="YES"
# If you wish to pass any other arguments to hwclock during bootup, # 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. # you may do so here. Alpha users may wish to use --arc or --srm here.

View File

@@ -1,18 +1,16 @@
# 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. # of keymaps in /usr/share/keymaps to choose from.
keymap="us" keymap="us"
# Should we first load the 'windowkeys' console keymap? Most x86 users will # 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". # 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" windowkeys="NO"
# The maps to load for extended keyboards. Most users will leave this as is. # The maps to load for extended keyboards. Most users will leave this as is.
extended_keymaps="" extended_keymaps=""
#extended_keymaps="backspace keypad euro2" #extended_keymaps="backspace keypad euro2"
# Tell dumpkeys(1) to interpret character action codes to be # Tell dumpkeys(1) to interpret character action codes to be
# from the specified character set. # from the specified character set.
# This only matters if you set unicode="yes" in /etc/rc.conf. # This only matters if you set unicode="yes" in /etc/rc.conf.
# For a list of valid sets, run `dumpkeys --help` # For a list of valid sets, run `dumpkeys --help`

View File

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

18
conf.d/local Normal file
View File

@@ -0,0 +1,18 @@
# 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,10 +1,8 @@
# You can define a list modules for a specific kernel version, # You can define a list modules for a specific kernel version,
# a released kernel version, a main kernel version or just a list. # 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_gentoo_r5="ieee1394 ohci1394"
#modules_2_6_23="tun ieee1394" #modules_2_6_23="tun ieee1394"
#modules_2_6="tun" #modules_2_6="tun"
#modules_2="ipv6"
#modules="ohci1394" #modules="ohci1394"
# You can give modules a different name when they load - the new name # You can give modules a different name when they load - the new name
@@ -12,12 +10,10 @@
#modules="dummy:dummy1" #modules="dummy:dummy1"
# Give the modules some arguments if needed, per version if necessary. # 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="debug"
#module_ieee1394_args_2_6_23_gentoo_r5="debug2" #module_ieee1394_args_2_6_23_gentoo_r5="ieee1394 ohci1394"
#module_ieee1394_args_2_6_23="debug3" #module_ieee1394_args_2_6_23="tun ieee1394"
#module_ieee1394_args_2_6="debug4" #module_ieee1394_args_2_6="tun"
#module_ieee1394_args_2="debug5"
# You should consult your kernel documentation and configuration # You should consult your kernel documentation and configuration
# for a list of modules and their options. # for a list of modules and their options.

View File

@@ -11,6 +11,6 @@
# You can also multiplex the init script for each device like so # You can also multiplex the init script for each device like so
# ln -s moused /etc/init.d/moused.ums0 # ln -s moused /etc/init.d/moused.ums0
# This enables you to have a config file per mouse (forces moused_device # This enables you to have a config file per mouse (forces moused_device
# to ums0 in this case) and control each mouse. # to ums0 in this case) and control each mouse.
# devd can also start and stop these mice, which laptop users will find handy. # devd can also start and stop these mice, which laptop users will find handy.

View File

@@ -1,4 +1,4 @@
# This blank configuration will automatically use DHCP for any net.* # This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration, # 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 :]!). # in /etc/conf.d/net (this file :]!).

View File

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

View File

@@ -1,20 +1,8 @@
# 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 # ifconfig under Linux is not that powerful and doesn't easily handle
# multiple addresses # multiple addresses
# On the other hand, ip (iproute2) is quite powerful and is also supported # 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" #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 # Create a bonded interface
#interfaces="bond0" #interfaces="bond0"
#ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0" #ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0"

View File

@@ -9,6 +9,8 @@
# You should note that we don't stop the network at system shutdown by default. # 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 # If you really need this, then set shutdown_network=YES
# You can assign a default route
#defaultroute="192.168.0.1"
# Lastly, the interfaces variable pulls in virtual interfaces that cannot # Lastly, the interfaces variable pulls in virtual interfaces that cannot
# be automatically detected. # be automatically detected.
#interfaces="br0 bond0 vlan0" #interfaces="br0 bond0 vlan0"
@@ -24,5 +26,3 @@
# If you require DHCP, you should install dhcpcd and it to the boot or # If you require DHCP, you should install dhcpcd and it to the boot or
# default runlevel. # default runlevel.
# NIS users can set the domain name here
#domainname="foobar"

View File

@@ -1,6 +0,0 @@
# 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

@@ -1,8 +0,0 @@
# 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

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

View File

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

View File

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

5
doc/Makefile.FreeBSD Normal file
View File

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

5
doc/Makefile.Linux Normal file
View File

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

5
doc/Makefile.NetBSD Normal file
View File

@@ -0,0 +1,5 @@
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. # kernel then remove the IPv6 address from your config.
# If you want to use a static address or use DHCP explicitly, jump # If you want to use a static address or use DHCP explicitly, jump
# down to the section labeled INTERFACE HANDLERS. # down to the section labelled INTERFACE HANDLERS.
# #
# If you want to do anything more fancy, you should take the time to # If you want to do anything more fancy, you should take the time to
# read through the rest of this file. # read through the rest of this file.
@@ -22,10 +22,10 @@
# #
# We now support modular networking scripts which means we can easily # We now support modular networking scripts which means we can easily
# add support for new interface types and modules while keeping # add support for new interface types and modules while keeping
# compatibility with existing ones. # compatability with existing ones.
# #
# Modules load by default if the package they need is installed. If # Modules load by default if the package they need is installed. If
# you specify a module here that doesn't have its package installed # you specify a module here that doesn't have it's package installed
# then you get an error stating which package you need to install. # 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 # Ideally, you only use the modules setting when you have two or more
# packages installed that supply the same service. # packages installed that supply the same service.
@@ -43,6 +43,11 @@
# (eth0:1, eth0:2, etc) # (eth0:1, eth0:2, etc)
# iproute2 does not do this as there is no need to # 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" #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 can also use IPv6 addresses
# (you should always specify a prefix length with IPv6 here) # (you should always specify a prefix length with IPv6 here)
@@ -67,12 +72,10 @@
# If a specified module fails (like dhcp - see below), you can specify a # If a specified module fails (like dhcp - see below), you can specify a
# fallback like so # fallback like so
#fallback_eth0="192.168.0.2 netmask 255.255.255.0" #fallback_eth0="192.168.0.2 netmask 255.255.255.0"
#fallback_routes_eth0="default via 192.168.0.1" #fallback_route_eth0="default via 192.168.0.1"
# NOTE: fallback entry must match the entry location in config_eth0 # NOTE: fallback entry must match the entry location in config_eth0
# As such you can only have one fallback route. # 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 # Some users may need to alter the MTU - here's how
#mtu_eth0="1500" #mtu_eth0="1500"
@@ -98,8 +101,8 @@
#modules="iwconfig" #modules="iwconfig"
# ifconfig (iwconig) support is a one shot script - wpa_supplicant is daemon # ifconfig (iwconig) support is a one shot script - wpa_supplicant is daemon
# that scans, associates and re-configures if association is lost. # that scans, assoicates and re-configures if assocation is lost.
# We call it iwconfig to separate the wireless setup from ifconfig. # We call it iwconfig to seperate the wireless setup from ifconfig.
#################################### ####################################
# HINTS # HINTS
# #
@@ -184,7 +187,7 @@
#dns_servers_001122334455="192.168.0.1 192.168.0.2" #dns_servers_001122334455="192.168.0.1 192.168.0.2"
# Map a MAC address to an SSID # Map a MAC address to an SSID
# This is used when the Access Point is not broadcasting its SSID # This is used when the Access Point is not broadcasting it's SSID
# WARNING: This will override the SSID being broadcast due to some # WARNING: This will override the SSID being broadcast due to some
# Access Points sending an SSID even when they have been configured # Access Points sending an SSID even when they have been configured
# not to! # not to!
@@ -195,7 +198,7 @@
# This lists the preferred SSIDs to connect to in order # This lists the preferred SSIDs to connect to in order
# SSID's can contain any characters here as they must match the broadcast # SSID's can contain any characters here as they must match the broadcast
# SSID exactly. # SSID exactly.
# Surround each SSID with the " character and separate them with a space # Surround each SSID with the " character and seperate them with a space
# If the first SSID isn't found then it moves onto the next # 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 # If this isn't defined then it connects to the first one found
#preferred_aps="SSID1 SSID2" #preferred_aps="SSID1 SSID2"
@@ -210,11 +213,11 @@
# any other available AP # any other available AP
# "preferredonly" means it will only connect to visible APs in the preferred # "preferredonly" means it will only connect to visible APs in the preferred
# list # list
# "forcepreferred" means it will forcibly connect to APs in order if it does # "forcepreferred" means it will forceably connect to APs in order if it does
# not find them in a scan # not find them in a scan
# "forcepreferredonly" means it forcibly connects to the APs in order and # "forcepreferredonly" means it forceably connects to the APs in order and
# does not bother to scan # 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 # available AP
# Default is "any" # Default is "any"
#associate_order="any" #associate_order="any"
@@ -239,12 +242,12 @@
################################################## ##################################################
# wpa_supplicant # wpa_supplicant
# emerge net-wireless/wpa_supplicant # emerge net-wireless/wpa-supplicant
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf # Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
# Consult the wpa_supplicant.conf.example that is installed in # Console the wpa_supplicant.conf.example that is installed in
# /usr/share/doc/wpa_supplicant # /usr/share/doc/wpa_supplicant
# By default we don't wait for wpa_supplicant to associate and authenticate. # By default we don't wait for wpa_suppliant to associate and authenticate.
# If you would like to, so can specify how long in seconds # If you would like to, so can specify how long in seconds
#associate_timeout_eth0=60 #associate_timeout_eth0=60
# A value of 0 means wait forever. # A value of 0 means wait forever.
@@ -268,13 +271,13 @@
# won't have associated then) # won't have associated then)
# If you're using anything else to configure wireless on your interface AND # 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" #modules="!iwconfig !wpa_supplicant"
#or #or
#modules="!wireless" #modules="!wireless"
############################################################################## ##############################################################################
# WIRELESS SSID IN VARIABLES # WIRELESS SSID IN VARIABLES
############################################################################## ##############################################################################
# Remember to change SSID to your SSID. # Remember to change SSID to your SSID.
# Say that your SSID is My NET - the line # Say that your SSID is My NET - the line
@@ -322,7 +325,7 @@
# Set generic DHCP options like so # Set generic DHCP options like so
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost" #dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
# This tells the dhcp client to release its lease when it stops, not to # This tells the dhcp client to release it's lease when it stops, not to
# overwrite dns, ntp and nis settings, not to set a default route and 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. # 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 # You can use any combination of the above options - the default is not to
@@ -370,7 +373,7 @@
############################################################################## ##############################################################################
# ADVANCED CONFIGURATION # ADVANCED CONFIGURATION
# #
# Four functions can be defined which will be called surrounding the # Four functions can be defined which will be called surrounding the
# start/stop operations. The functions are called with the interface # start/stop operations. The functions are called with the interface
# name first so that one function can control multiple adapters. An extra two # name first so that one function can control multiple adapters. An extra two
@@ -388,17 +391,6 @@
# #
# ${IFACE} is set to the interface being brought up/down # ${IFACE} is set to the interface being brought up/down
# ${IFVAR} is ${IFACE} converted to variable name bash allows # ${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() { #preup() {
# # Remember to return 0 on success # # Remember to return 0 on success

View File

@@ -12,7 +12,7 @@
# kernel then remove the IPv6 address from your config. # kernel then remove the IPv6 address from your config.
# If you want to use a static address or use DHCP explicitly, jump # If you want to use a static address or use DHCP explicitly, jump
# down to the section labeled INTERFACE HANDLERS. # down to the section labelled INTERFACE HANDLERS.
# #
# If you want to do anything more fancy, you should take the time to # If you want to do anything more fancy, you should take the time to
# read through the rest of this file. # read through the rest of this file.
@@ -23,10 +23,10 @@
# #
# We now support modular networking scripts which means we can easily # We now support modular networking scripts which means we can easily
# add support for new interface types and modules while keeping # add support for new interface types and modules while keeping
# compatibility with existing ones. # compatability with existing ones.
# #
# Modules load by default if the package they need is installed. If # Modules load by default if the package they need is installed. If
# you specify a module here that doesn't have its package installed # you specify a module here that doesn't have it's package installed
# then you get an error stating which package you need to install. # 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 # Ideally, you only use the modules setting when you have two or more
# packages installed that supply the same service. # packages installed that supply the same service.
@@ -34,7 +34,7 @@
# In other words, you probably should DO NOTHING HERE... # In other words, you probably should DO NOTHING HERE...
# Prefer ifconfig over iproute2 # Prefer ifconfig over iproute2
#modules="!iproute2" #modules="ifconfig"
# You can also specify other modules for an interface # You can also specify other modules for an interface
# In this case we prefer udhcpc over dhcpcd # In this case we prefer udhcpc over dhcpcd
@@ -49,7 +49,7 @@
############################################################################## ##############################################################################
# INTERFACE HANDLERS # INTERFACE HANDLERS
# #
# We provide two interface handlers presently: ifconfig and iproute2. # We provide two interface handlers presently: ifconfig and iproute2.
# You need one of these to do any kind of network configuration. # You need one of these to do any kind of network configuration.
# For ifconfig support, emerge sys-apps/net-tools # For ifconfig support, emerge sys-apps/net-tools
@@ -57,7 +57,7 @@
# If you don't specify an interface then we prefer iproute2 if it's installed # If you don't specify an interface then we prefer iproute2 if it's installed
# To prefer ifconfig over iproute2 # To prefer ifconfig over iproute2
#modules="!iproute2" #modules="ifconfig"
# For a static configuration, use something like this # For a static configuration, use something like this
# (They all do exactly the same thing btw) # (They all do exactly the same thing btw)
@@ -68,9 +68,13 @@
# NOTE: ifconfig creates an aliased device for each extra IPv4 address # NOTE: ifconfig creates an aliased device for each extra IPv4 address
# (eth0:1, eth0:2, etc) # (eth0:1, eth0:2, etc)
# iproute2 does not do this as there is no need to # 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" #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. # 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 can also use IPv6 addresses
# (you should always specify a prefix length with IPv6 here) # (you should always specify a prefix length with IPv6 here)
@@ -86,14 +90,6 @@
# If you don't want ANY address (only useful when calling for advanced stuff) # If you don't want ANY address (only useful when calling for advanced stuff)
#config_eth0="null" #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 # Here's how to do routing if you need it
# We add an IPv4 default route, IPv4 subnet route and an IPv6 unicast route # We add an IPv4 default route, IPv4 subnet route and an IPv6 unicast route
#routes_eth0="default via 192.168.0.1 #routes_eth0="default via 192.168.0.1
@@ -103,12 +99,10 @@
# If a specified module fails (like dhcp - see below), you can specify a # If a specified module fails (like dhcp - see below), you can specify a
# fallback like so # fallback like so
#fallback_eth0="192.168.0.2/24" #fallback_eth0="192.168.0.2/24"
#fallback_routes_eth0="default via 192.168.0.1" #fallback_route_eth0="default via 192.168.0.1"
# NOTE: fallback entry must match the entry location in config_eth0 # NOTE: fallback entry must match the entry location in config_eth0
# As such you can only have one fallback route. # 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 # Some users may need to alter the MTU - here's how
#mtu_eth0="1500" #mtu_eth0="1500"
@@ -117,7 +111,7 @@
# Each module described below can set a default base metric, lower is # 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 # preferred over higher. This is so we can prefer a wired route over a
# wireless route automatically. You can override this by setting # wireless route automaticaly. You can override this by setting
#metric_eth0="100" #metric_eth0="100"
# or on a global basis # or on a global basis
#metric="100" #metric="100"
@@ -264,7 +258,7 @@
#key_SSID="s:foobar enc open" #key_SSID="s:foobar enc open"
#key_SSID="1234-5678-9012 enc open" #key_SSID="1234-5678-9012 enc open"
# You may want to set multiple keys - here's an example # You may want to set muliple keys - here's an example
# It sets 4 keys on the card and instructs to use key 2 by default # 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]" #key_SSID="[1] s:passkey1 key [2] s:passkey2 key [3] s:passkey3 key [4] s:passkey4 key [2]"
@@ -294,7 +288,7 @@
#dns_servers_001122334455="192.168.0.1 192.168.0.2" #dns_servers_001122334455="192.168.0.1 192.168.0.2"
# Map a MAC address to an SSID # Map a MAC address to an SSID
# This is used when the Access Point is not broadcasting its SSID # This is used when the Access Point is not broadcasting it's SSID
# WARNING: This will override the SSID being broadcast due to some # WARNING: This will override the SSID being broadcast due to some
# Access Points sending an SSID even when they have been configured # Access Points sending an SSID even when they have been configured
# not to! # not to!
@@ -305,10 +299,10 @@
# This lists the preferred SSIDs to connect to in order # This lists the preferred SSIDs to connect to in order
# SSID's can contain any characters here as they must match the broadcast # SSID's can contain any characters here as they must match the broadcast
# SSID exactly. # SSID exactly.
# Surround each SSID with the " character and separate them with a space # Surround each SSID with the " character and seperate them with a space
# If the first SSID isn't found then it moves onto the next # 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 # 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 # You can also define a preferred_aps list per interface
#preferred_aps_eth0="SSID3 SSID4" #preferred_aps_eth0="SSID3 SSID4"
@@ -318,9 +312,9 @@
# "any" means it will connect to visible APs in the preferred list and then any # "any" means it will connect to visible APs in the preferred list and then any
# other available AP # other available AP
# "preferredonly" means it will only connect to visible APs in the preferred list # "preferredonly" means it will only connect to visible APs in the preferred list
# "forcepreferred" means it will forcibly connect to APs in order if it does not find # "forcepreferred" means it will forceably connect to APs in order if it does not find
# them in a scan # them in a scan
# "forcepreferredonly" means it forcibly connects to the APs in order and does not bother # "forcepreferredonly" means it forceably connects to the APs in order and does not bother
# to scan # to scan
# "forceany" does the same as forcepreferred + connects to any other available AP # "forceany" does the same as forcepreferred + connects to any other available AP
# Default is "any" # Default is "any"
@@ -347,19 +341,19 @@
############################################################ ############################################################
# wpa_supplicant # wpa_supplicant
# emerge net-wireless/wpa_supplicant # emerge net-wireless/wpa-supplicant
# Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf # Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf
# Consult the wpa_supplicant.conf.example that is installed in # Console the wpa_supplicant.conf.example that is installed in
# /usr/share/doc/wpa_supplicant # /usr/share/doc/wpa_supplicant
# To configure wpa_supplicant # To configure wpa_supplicant
#wpa_supplicant_ath0="-Dmadwifi" # For Atheros based cards #wpa_supplicant_ath0="-Dmadwifi" # For Atheros based cards
# Consult wpa_supplicant for more drivers - the default is -Dwext which should # Consult wpa_supplicant for more drivers - the default is -Dwext which should
# work for most cards. # work for most cards.
# By default we don't wait for wpa_supplicant to associate and authenticate. # By default we don't wait for wpa_suppliant to associate and authenticate.
# If you need to change this behaviour then you don't know how our scripts work # 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. # and setting this value could cause strange things to happen.
# If you would like it to wait, you can specify how long in seconds. # If you would like to, so can specify how long in seconds.
#associate_timeout_eth0=60 #associate_timeout_eth0=60
# A value of 0 means wait forever. # A value of 0 means wait forever.
@@ -382,13 +376,13 @@
# won't have associated then) # won't have associated then)
# If you're using anything else to configure wireless on your interface AND # 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" #modules="!iwconfig !wpa_supplicant"
#or #or
#modules="!wireless" #modules="!wireless"
############################################################################## ##############################################################################
# WIRELESS SSID IN VARIABLES # WIRELESS SSID IN VARIABLES
############################################################################## ##############################################################################
# Remember to change SSID to your SSID. # Remember to change SSID to your SSID.
# Say that your SSID is My NET - the line # Say that your SSID is My NET - the line
@@ -423,7 +417,7 @@
# dhclient: emerge net-misc/dhcp # dhclient: emerge net-misc/dhcp
# dhcpcd: emerge net-misc/dhcpcd # dhcpcd: emerge net-misc/dhcpcd
# pump: emerge net-misc/pump # pump: emerge net-misc/pump
# udhcpc: emerge sys-apps/busybox # udhcpc: emerge net-misc/udhcp
# If you have more than one DHCP client installed, you need to specify which # If you have more than one DHCP client installed, you need to specify which
# one to use - otherwise we default to dhcpcd if available. # one to use - otherwise we default to dhcpcd if available.
@@ -432,7 +426,7 @@
# Notes: # Notes:
# - All clients send the current hostname to the DHCP server by default # - All clients send the current hostname to the DHCP server by default
# - dhcpcd does not daemonize when the lease time is infinite # - 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 # - pump does not support getting NIS servers
# - DHCP tends to erase any existing device information - so add # - DHCP tends to erase any existing device information - so add
# static addresses after dhcp if you need them # static addresses after dhcp if you need them
@@ -459,7 +453,7 @@
# Set generic DHCP options like so # Set generic DHCP options like so
#dhcp_eth0="release nodns nontp nonis nogateway nosendhost" #dhcp_eth0="release nodns nontp nonis nogateway nosendhost"
# This tells the dhcp client to release its lease when it stops, not to # This tells the dhcp client to release it's lease when it stops, not to
# overwrite dns, ntp and nis settings, not to set a default route and 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. # 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 # You can use any combination of the above options - the default is not to
@@ -478,7 +472,7 @@
#fallback_eth0="apipa" #fallback_eth0="apipa"
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# ARPING Gateway configuration # ARPING Gateway configuration
# and # and
# Automatic Private IP Addressing (APIPA) # Automatic Private IP Addressing (APIPA)
# For arpingnet / apipa support, emerge net-misc/iputils or net-analyzer/arping # For arpingnet / apipa support, emerge net-misc/iputils or net-analyzer/arping
@@ -538,8 +532,7 @@
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# VLAN (802.1q support) # VLAN (802.1q support)
# For VLAN support, emerge sys-apps/iproute2 # For VLAN support, emerge net-misc/vconfig
# The old vconfig based VLAN support is no longer available.
# Specify the VLAN numbers for the interface like so # Specify the VLAN numbers for the interface like so
# Please ensure your VLAN IDs are NOT zero-padded # Please ensure your VLAN IDs are NOT zero-padded
@@ -549,37 +542,12 @@
# need it up. # need it up.
#config_eth0="null" #config_eth0="null"
# You can also configure the VLAN - see for ip man page for more details # You can also configure the VLAN - see for vconfig man page for more details
# To change the vlan interface name. If not set, the standard "iface.vlanid" #vconfig_eth0="set_name_type VLAN_PLUS_VID_NO_PAD"
# will be used. This is the replacement for the old 'vconfig set_name_type' #vconfig_vlan1="set_flag 1
# functionality. If you previously relied on the DEV_PLUS_VID or #set_egress_map 2 6"
# DEV_PLUS_VID_NO_PAD options to have different VLANs with same ID value, on #config_vlan1="172.16.3.1/23"
# different interfaces, please note that you need to use both the interface and #config_vlan2="172.16.2.1/23"
# vlan number in the numbering. This applies for all of the options: name,
# txqueuelen, mac, broadcast, mtu, ingress, egress, flags
#vlan1_name="vlan1"
#eth0_vlan2_name="eth0.2"
#eth1_vlan2_name="eth1.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 eth9_vlan26_name="eth9.0026"
# DEV_PLUS_VID_NO_PAD eth9_vlan26_name="eth9.26"
# Set the vlan flags
#vlan1_flags="reorder_hdr off gvrp on loose_binding on"
#eth0_vlan1_flags="reorder_hdr off gvrp on loose_binding on"
# Configure in/egress maps
#vlan1_ingress="2:6 3:5"
#eth0_vlan1_egress="1:2"
#config_vlan1="172.16.2.1/24"
#config_vlan2="172.16.3.1/24"
#config_eth0_1="172.16.4.1/24"
#config_eth1_1="172.16.5.1/24"
# NOTE: Vlans can be configured with a . in their interface names # NOTE: Vlans can be configured with a . in their interface names
# When configuring vlans with this name type, you need to replace . with a _ # When configuring vlans with this name type, you need to replace . with a _
@@ -590,31 +558,15 @@
# This means you do not need to create init scripts in /etc/init.d for each # 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. # vlan, you must need to create one for the physical interface.
# If you wish to control the configuration of each vlan through a separate # If you wish to control the configuration of each vlan through a separate
# script then you need to do this. # script, or wish to rename the vlan interface to something that vconfig
# cannot then you need to do this.
#vlan_start_eth0="no" #vlan_start_eth0="no"
# If you do the above then you may want to depend on eth0 like so # If you do the above then you may want to depend on eth0 like so
# rc_net_vlan1_need="net.eth0" # rc_need_vlan1="net.eth0"
# NOTE: depend functions only work in /etc/conf.d/net # NOTE: depend functions only work in /etc/conf.d/net
# and not in profile configs such as /etc/conf.d/net.foo # and not in profile configs such as /etc/conf.d/net.foo
# Also, you might want to make eth0 not provide net in this case so that
# dependent services will start when the vlan is active instead of the
# physical interface.
# rc_net_eth0_provide="!net"
# 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 # Bonding
# For link bonding/trunking on 2.4 kernels, or kernels without sysfs # For link bonding/trunking on 2.4 kernels, or kernels without sysfs
@@ -624,42 +576,18 @@
#slaves_bond0="eth0 eth1 eth2" #slaves_bond0="eth0 eth1 eth2"
#config_bond0="null" # You may not want to assign an IP the the bond #config_bond0="null" # You may not want to assign an IP the the bond
# Please note, that you should generally NOT try to change the MAC addresses of # You can also configure the bond here, which must be done via sysfs on 2.6
# a bond interface yourself. If you do so, the kernel and your network switches # kernels or newer. See the kernel bonding documention for a description of
# may not work quite right. It is permissible to set the MAC addresses of bond # these options.
# slaves BEFORE the bond comes up, but not after the bond is up (it will change
# MAC addresses of the slaves on it's own).
# You can also configure the parameters of the bond here, which must be done
# via sysfs on 2.6 kernels or newer. The description of all the options can be
# found in the kernel: /usr/src/linux-*/Documentation/networking/bonding.txt
# You will probably want the 'mode' option at the least.
# Some possible parameters: mode fail_over_mac arp_validate arp_interval
# arp_ip_target downdelay updelay lacp_rate ad_select xmit_hash_policy
# num_grat_arp num_unsol_na miimon primary primary_reselect use_carrier
# active_slave queue_id all_slaves_active resend_igmp min_links
#mode_bond0="round-robin"
#miimon_bond0="100"
#arp_ip_target_bond0="+26.0.0.0" #arp_ip_target_bond0="+26.0.0.0"
# If any of the slaves require extra configuration - for example wireless or # If any of the slaves require extra configuration - for example wireless or
# ppp devices - we need to depend function on the bonded interfaces # ppp devices - we need to depend function on the bonded interfaces
#rc_net_bond0_need="net.eth0 net.eth1" #rc_need_bond0="net.eth0 net.eth1"
# Bonding subsume support (prevents crashes for root-on-NFS)
# - Only tested in the default bonding mode ('active-backup') with
# IPv4
# - Only subsumes basic interface characteristics (IP, netmask) and
# excludes additional routes, interface properties such as MTU,
# interface-associated netfilter rules, etc.
# In the example below, the (usually kernel-autoconfigured)
# 'eth0' interface is a member of bond0, which subsumes the
# existing interface configuration without upsetting NFS.
#slaves_bond0="eth0 eth1"
#subsume_bond0="eth0"
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Classical IP over ATM # Classical IP over ATM
# For CLIP support emerge net-dialup/linux-atm # For CLIP support emerge net-dialup/linux-atm
# Ensure that you have /etc/atmsigd.conf setup correctly # Ensure that you have /etc/atmsigd.conf setup correctly
@@ -697,7 +625,7 @@
# #
# Here you should specify what pppd plugins you want to use # Here you should specify what pppd plugins you want to use
# Available plugins are: pppoe, pppoa, capi, dhcpc, minconn, radius, # 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="pppoe" # Required plugin for PPPoE
#plugins_ppp0="pppoa vc-encaps" # Required plugin for PPPoA with an option #plugins_ppp0="pppoa vc-encaps" # Required plugin for PPPoA with an option
#plugins_ppp0="capi" # Required plugin for ISDN #plugins_ppp0="capi" # Required plugin for ISDN
@@ -735,9 +663,9 @@
# #
# Dead peer detection # Dead peer detection
# lcp-echo-interval 15 # Send a LCP echo every 15 seconds # lcp-echo-interval 15 # Send a LCP echo every 15 seconds
# lcp-echo-failure 3 # Make peer dead after 3 consecutive # lcp-echo-failure 3 # Make peer dead after 3 consective
# # echo-requests # # echo-requests
# #
# Compression options - use these to completely disable compression # Compression options - use these to completely disable compression
# noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp # noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
# #
@@ -772,7 +700,7 @@
# If the link require extra configuration - for example wireless or # If the link require extra configuration - for example wireless or
# RFC 268 bridge - we need to depend on the bridge so they get # RFC 268 bridge - we need to depend on the bridge so they get
# configured correctly. # configured correctly.
#rc_net_ppp0_need="net.nas0" #rc_need_ppp0="net.nas0"
#WARNING: if MTU of the PPP interface is less than 1500 and you use this #WARNING: if MTU of the PPP interface is less than 1500 and you use this
#machine as a router, you should add the following rule to your firewall #machine as a router, you should add the following rule to your firewall
@@ -812,8 +740,6 @@
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# MAC changer # MAC changer
# Warning: Do NOT use this on bonding interfaces! Bonding changes MACs itself.
#
# To set a specific MAC address # To set a specific MAC address
#mac_eth0="00:11:22:33:44:55" #mac_eth0="00:11:22:33:44:55"
@@ -838,7 +764,7 @@
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# TUN/TAP # TUN/TAP
# For TUN/TAP support install iproute2, openvpn or usermode-utilities # For TUN/TAP support emerge net-misc/openvpn or sys-apps/usermode-utilities
# #
# You must specify if we're a tun or tap device. Then you can give it any # You must specify if we're a tun or tap device. Then you can give it any
# name you like - such as vpn # name you like - such as vpn
@@ -849,9 +775,6 @@
#tuntap_tap0="tap" #tuntap_tap0="tap"
#config_tap0="192.168.0.1/24" #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 # For passing custom options to tunctl use something like the following. This
# example sets the owner to adm # example sets the owner to adm
#tunctl_tun1="-u adm" #tunctl_tun1="-u adm"
@@ -869,40 +792,26 @@
#bridge_add_eth0="br0" #bridge_add_eth0="br0"
#bridge_add_eth1="br0" #bridge_add_eth1="br0"
# NOTE: If you want to manually start an empty bridge, and then dynamically add # You need to configure the ports to null values so dhcp does not get started
# 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_eth0="null"
#config_eth1="null" #config_eth1="null"
# Finally give the bridge an address - dhcp or a static IP, this is assigned to # Finally give the bridge an address - dhcp or a static IP
# the bridge when the bridge is explicitly started.
#config_br0="dhcp" # may not work when adding ports dynamically #config_br0="dhcp" # may not work when adding ports dynamically
#config_br0="192.168.0.1/24" #config_br0="192.168.0.1/24"
# If any of the ports require extra configuration - for example wireless or # If any of the ports require extra configuration - for example wireless or
# ppp devices - we need to depend on them like so. # ppp devices - we need to depend on them like so.
#rc_net_br0_need="net.eth0 net.eth1" #rc_need_br0="net.eth0 net.eth1"
# Below is an example of configuring the bridge # Below is an example of configuring the bridge
# Consult "man brctl" for more details # Consult "man brctl" for more details
#brctl_br0="setfd 15 #brctl_br0="setfd 0
#sethello 2 #sethello 0
#stp on" #stp off"
# 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 # For RFC 2684 bridge support emerge net-misc/br2684ctl
# Interface names have to be of the form nas0, nas1, nas2, etc. # Interface names have to be of the form nas0, nas1, nas2, etc.
@@ -918,8 +827,8 @@
#config_nas0="'192.168.0.1/24'" #config_nas0="'192.168.0.1/24'"
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Tunneling # Tunnelling
# WARNING: For tunneling it is highly recommended that you # WARNING: For tunnelling it is highly recommended that you
# emerge sys-apps/iproute2 # emerge sys-apps/iproute2
# #
# For GRE tunnels # For GRE tunnels
@@ -934,73 +843,20 @@
# 6to4 Tunnels allow IPv6 to work over IPv4 addresses, provided you # 6to4 Tunnels allow IPv6 to work over IPv4 addresses, provided you
# have a non-private address configured on an interface. # have a non-private address configured on an interface.
# link_6to4="eth0" # Interface to base its addresses on # link_6to4="eth0" # Interface to base it's addresses on
# config_6to4="ip6to4" # config_6to4="ip6to4"
# You may want to depend on eth0 like so # You may want to depend on eth0 like so
#rc_net_6to4_need="net.eth0" #rc_need_6to4="net.eth0"
# To ensure that eth0 is configured before 6to4. Of course, the tunnel could be # To ensure that eth0 is configured before 6to4. Of course, the tunnel could be
# any name and this also works for any configured interface. # any name and this also works for any configured interface.
# NOTE: If you're not using iproute2 then your 6to4 tunnel has to be called # NOTE: If you're not using iproute2 then your 6to4 tunnel has to be called
# sit0 - otherwise use a different name like 6to4 in the example above. # sit0 - otherwise use a different name like 6to4 in the example above.
# You can also specify a relay and suffix if you like. # You can also specify a relay and suffix if you like.
# The default relay is 192.88.99.1 and the default suffix is :1 # The default relay is 192.88.99.1 and the defualt suffix is :1
#relay_6to4="192.168.3.2" #relay_6to4="192.168.3.2"
#suffix_6to4=":ff" #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 # System
@@ -1045,12 +901,10 @@
# and you're done :) # and you're done :)
# By default we don't wait for netplug/ifplugd to configure the interface. # By default we don't wait for netplug/ifplugd to configure the interface.
# If you would like it to wait so that other services know that network is # If you would like it to wait so that other services now that network is up
# up then you can specify a timeout here. A value of 0 means wait forever, # then you can specify a timeout here.
# and a negative value means never wait.
#plug_timeout_eth0="10"
# If you want to set it for all interfaces:
#plug_timeout="10" #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 # 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 # installed, you can disable it for that interface via the modules statement
@@ -1064,75 +918,9 @@
#ifplugd_eth0="--api-mode=wlan" #ifplugd_eth0="--api-mode=wlan"
# man ifplugd for more options # 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 # ADVANCED CONFIGURATION
# #
# Four functions can be defined which will be called surrounding the # Four functions can be defined which will be called surrounding the
# start/stop operations. The functions are called with the interface # start/stop operations. The functions are called with the interface
# name first so that one function can control multiple adapters. An extra two # name first so that one function can control multiple adapters. An extra two
@@ -1150,26 +938,15 @@
# #
# ${IFACE} is set to the interface being brought up/down # ${IFACE} is set to the interface being brought up/down
# ${IFVAR} is ${IFACE} converted to variable name bash allows # ${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() { #preup() {
# # Test for link on the interface prior to bringing it up. This # # Test for link on the interface prior to bringing it up. This
# # only works on some network adapters and requires the # # only works on some network adapters and requires the mii-diag
# # sys-apps/net-tools package to be installed. # # package to be installed.
# if mii-tool "${IFACE}" 2> /dev/null | grep -q 'no link'; then # if mii-tool "${IFACE}" 2> /dev/null | grep -q 'no link'; then
# ewarn "No link on ${IFACE}, aborting configuration" # ewarn "No link on ${IFACE}, aborting configuration"
# return 1 # return 1
# fi # fi
# #
# # Test for link on the interface prior to bringing it up. This # # Test for link on the interface prior to bringing it up. This
# # only works on some network adapters and requires the ethtool # # only works on some network adapters and requires the ethtool
@@ -1208,6 +985,33 @@
# # This function could be used, for example, to register with a # # This function could be used, for example, to register with a
# # dynamic DNS service. Another possibility would be to # # dynamic DNS service. Another possibility would be to
# # send/receive mail once the interface is brought up. # # 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() { #postdown() {
@@ -1215,6 +1019,21 @@
# # Probably a good idea to set ifdown="no" in /etc/conf.d/net # # Probably a good idea to set ifdown="no" in /etc/conf.d/net
# # as well ;) # # as well ;)
# [ "${IFACE}" != "lo" ] && ethtool -s "${IFACE}" wol g # [ "${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 always
# return 0 # return 0
#} #}

View File

@@ -1,28 +1,9 @@
DIR= ${SYSCONFDIR} DIR= ${SYSCONFDIR}
SRCS= rc.conf.in rc.in rc.shutdown.in CONF= rc.conf
BIN= ${BIN-${OS}}
CONF= rc.conf ${BIN-${OS}}
CLEANFILES+= rc.conf CLEANFILES+= rc.conf
MK= ../mk MK= ../mk
include ${MK}/os.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 include ${MK}/scripts.mk
rc.conf: rc.conf.in rc.conf.${OS}
${SED} ${SED_REPLACE} ${SED_EXTRA} $^ > $@

4
etc/Makefile.FreeBSD Normal file
View File

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

6
etc/Makefile.Linux Normal file
View File

@@ -0,0 +1,6 @@
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

3
etc/Makefile.NetBSD Normal file
View File

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

View File

@@ -1,13 +0,0 @@
##############################################################################
# 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 used.
#
# 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=""

View File

@@ -1,29 +1,8 @@
############################################################################## ##############################################################################
# LINUX SPECIFIC OPTIONS # 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 used.
#
# 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=""
# This is the number of tty's used in most of the rc-scripts (like # This is the number of tty's used in most of the rc-scripts (like
# consolefont, numlock, etc ...) # consolefont, numlock, etc ...)
rc_tty_number=12 rc_tty_number=12
# If you have cgroups turned on in your kernel, this switch controls
# whether or not a group for each controler is mounted under
# /sys/fs/cgroup.
# Support for process management by cgroups is planned in the future,
# so if you turn this off, be aware that you may not be able to use that
# feature.
#rc_controller_cgroups="YES"

View File

@@ -1,14 +0,0 @@
##############################################################################
# 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 used.
#
# 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=""

View File

@@ -2,7 +2,7 @@
# Set to "YES" if you want the rc system to try and start services # 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 # in parallel for a slight speed improvement. When running in parallel we
# prefix the service output with its name as the output will get # prefix the service output with it's name as the output will get
# jumbled up. # jumbled up.
# WARNING: whilst we have improved parallel, it can still potentially lock # WARNING: whilst we have improved parallel, it can still potentially lock
# the boot process. Don't file bugs about this unless you can supply # the boot process. Don't file bugs about this unless you can supply
@@ -11,8 +11,7 @@
# Set rc_interactive to "YES" and you'll be able to press the I key during # 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 # boot so you can choose to start specific services. Set to "NO" to disable
# this feature. This feature is automatically disabled if rc_parallel is # this feature.
# set to YES.
#rc_interactive="YES" #rc_interactive="YES"
# If we need to drop to a shell, you can specify it here. # If we need to drop to a shell, you can specify it here.
@@ -21,7 +20,7 @@
# Linux users could specify /sbin/sulogin # Linux users could specify /sbin/sulogin
#rc_shell=/bin/sh #rc_shell=/bin/sh
# Do we allow any started service in the runlevel to satisfy the dependency # Do we allow any started service in the runlevel to satisfy the depedency
# or do we want all of them regardless of state? For example, if net.eth0 # 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" # 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 # both will be started, but services that depend on 'net' will work if either
@@ -47,10 +46,6 @@
# logging can take place and as such cannot log the sysinit runlevel. # logging can take place and as such cannot log the sysinit runlevel.
#rc_logger="YES" #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 # 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. # variables through, add them here. Use a * to allow all variables through.
#rc_env_allow="VAR1 VAR2" #rc_env_allow="VAR1 VAR2"
@@ -80,14 +75,8 @@
# Set unicode to YES to turn on unicode support for keyboards and screens. # Set unicode to YES to turn on unicode support for keyboards and screens.
#unicode="NO" #unicode="NO"
# Below is the default list of network fstypes. # Network fstypes. Below is the default.
# net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs"
# 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 # SERVICE CONFIGURATION VARIABLES
@@ -99,7 +88,7 @@
# We can set some things on a per service basis, like the nicelevel. # We can set some things on a per service basis, like the nicelevel.
#export SSD_NICELEVEL="-19" #export SSD_NICELEVEL="-19"
# Pass ulimit parameters # Pass ulimit parameters
#rc_ulimit="-u 30" #rc_ulimit="-u 30"
# It's possible to define extra dependencies for services like so # It's possible to define extra dependencies for services like so
@@ -119,4 +108,3 @@
# You can also remove dependencies. # You can also remove dependencies.
# This is mainly used for saying which servies do NOT provide net. # This is mainly used for saying which servies do NOT provide net.
#rc_net_tap0_provide="!net" #rc_net_tap0_provide="!net"

View File

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

View File

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

View File

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

View File

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

View File

@@ -7,5 +7,5 @@ MK= ../mk
SED_EXTRA+= -e 's:@VARBASE@:/var:g' SED_EXTRA+= -e 's:@VARBASE@:/var:g'
include ${MK}/os.mk
include ${MK}/scripts.mk include ${MK}/scripts.mk
include Makefile.${OS}

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/avahi-dnsconfd command=@PKG_PREFIX@/sbin/avahi-dnsconfd
command_args="$avahi_dnsconfd_args -D" command_args="$avahi_dnsconfd_args -D"

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/avahi-daemon command=@PKG_PREFIX@/sbin/avahi-daemon
command_args="$avahid_args -D" command_args="$avahid_args -D"

View File

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

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name> # Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
command=/sbin/dhcpcd command=/sbin/dhcpcd
pidfile=/var/run/dhcpcd.pid pidfile=/var/run/dhcpcd.pid

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
command=@PKG_PREFIX@/sbin/dnsmasq command=@PKG_PREFIX@/sbin/dnsmasq
command_args=$dnsmasq_args command_args=$dnsmasq_args
@@ -10,7 +10,7 @@ required_files=/etc/dnsmasq.conf
extra_started_commands="reload" extra_started_commands="reload"
depend() depend()
{ {
provide dns provide dns
need localmount net need localmount net
after bootmisc after bootmisc

View File

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

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/named command=/usr/sbin/named
command_args=$named_args command_args=$named_args

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
: ${ntpd_config:=/etc/ntp.conf} : ${ntpd_config:=/etc/ntp.conf}
: ${ntpd_drift:=/var/db/ntpd.drift} : ${ntpd_drift:=/var/db/ntpd.drift}

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
vpn=${RC_SVCNAME#*.} vpn=${RC_SVCNAME#*.}
name="OpenVPN" name="OpenVPN"
@@ -24,7 +24,7 @@ if yesno $openvpn_client; then
command_args="$command_args --up $openvpn_up" command_args="$command_args --up $openvpn_up"
command_args="$command_args --down $openvpn_down" command_args="$command_args --down $openvpn_down"
required_files="$required_files $openvpn_up $openvpn_down" required_files="$required_files $openvpn_up $openvpn_down"
in_background_fake="start stop" in_background_fake="start stop"
start_inactive=YES start_inactive=YES
fi fi
@@ -59,7 +59,7 @@ start_pre()
sysctl -a | grep -q '\.tap\.' || kldload if_tap sysctl -a | grep -q '\.tap\.' || kldload if_tap
fi fi
fi fi
# If the config file does not specify the cd option, we do # If the config file does not specify the cd option, we do
if ! grep -q "^[ \t]*cd[ \t].*" "$openvpn_config"; then if ! grep -q "^[ \t]*cd[ \t].*" "$openvpn_config"; then
command_args="$command_args --cd $openvpn_dir" command_args="$command_args --cd $openvpn_dir"

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name> # Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/wpa_supplicant command=/usr/sbin/wpa_supplicant
: ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf} : ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf}
@@ -14,7 +14,7 @@ depend()
use logger use logger
after bootmisc modules after bootmisc modules
before dns dhcpcd net before dns dhcpcd net
keyword -shutdown keyword noshutdown
} }
find_wireless() find_wireless()
@@ -24,9 +24,7 @@ find_wireless()
case "$RC_UNAME" in case "$RC_UNAME" in
Linux) Linux)
for iface in /sys/class/net/*; do for iface in /sys/class/net/*; do
if [ -e "$iface"/wireless -o \ if [ -e "$iface"/wireless ]; then
-e "$iface"/phy80211 ]
then
echo "${iface##*/}" echo "${iface##*/}"
return 0 return 0
fi fi
@@ -43,7 +41,7 @@ find_wireless()
done done
;; ;;
esac esac
return 1 return 1
} }

6
init.d/.gitignore vendored
View File

@@ -11,7 +11,6 @@ network
root root
savecache savecache
swap swap
swapfiles
sysctl sysctl
urandom urandom
devfs devfs
@@ -25,7 +24,6 @@ mount-ro
mtab mtab
numlock numlock
procfs procfs
staticroute
sysfs sysfs
devdb devdb
hostid hostid
@@ -36,10 +34,6 @@ rc-enabled
rpcbind rpcbind
savecore savecore
swap-blk swap-blk
swclock
syslogd syslogd
termencoding
ttys ttys
wscons wscons
tmpfilesd.boot
tmpfilesd.sysinit

View File

@@ -1,49 +1,26 @@
DIR= ${INITDIR} DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
root.in savecache.in swap.in swapfiles.in \ network.in root.in savecache.in swap.in sysctl.in urandom.in
tmpfilesd.boot.in tmpfilesd.sysinit.in \
swclock.in sysctl.in urandom.in ${SRCS-${OS}}
BIN= ${OBJS} BIN= ${OBJS}
# Build our old net foo or not # Build our old net foo or not
ifeq (${MKNET},) _OLDNET_SH= case "${MKOLDNET}" in \
SRCS+= network.in staticroute.in [Yy][Ee][Ss]) echo "net.lo";; \
endif *) echo "";; \
esac
_OLDNET!= ${_OLDNET_SH}
_NET_LO= ${_OLDNET}$(shell ${_OLDNET_SH})
ifeq (${MKNET},oldnet) INSTALLAFTER= _installafter_${_NET_LO}
INSTALLAFTER= _installafter_net.lo CLEANFILES+= ${_NET_LO}
SRCS+= net.lo.in TARGETS+= ${_NET_LO}
endif
MK= ../mk MK= ../mk
include ${MK}/os.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 encswap.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 include ${MK}/scripts.mk
_installafter_: realinstall _installafter_: realinstall
_installafter_net.lo: realinstall _installafter_net.lo: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO-${OS}} ${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO}

13
init.d/Makefile.FreeBSD Normal file
View File

@@ -0,0 +1,13 @@
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} $< > $@

9
init.d/Makefile.Linux Normal file
View File

@@ -0,0 +1,9 @@
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} $< > $@

12
init.d/Makefile.NetBSD Normal file
View File

@@ -0,0 +1,12 @@
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,10 +1,10 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
extra_commands="save" 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." description_save="Saves the current time in the BIOS."
: ${clock:=${CLOCK:-UTC}} : ${clock:=${CLOCK:-UTC}}
@@ -22,11 +22,11 @@ depend()
[ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then [ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
need root need root
fi fi
keyword -jail -prefix keyword nojail noprefix
} }
start() start()
{ {
ebegin "Starting the System Clock Adjuster [${utc}]" ebegin "Starting the System Clock Adjuster [${utc}]"
if [ "$clock" != "UTC" ]; then if [ "$clock" != "UTC" ]; then
echo >/etc/wall_cmos_clock echo >/etc/wall_cmos_clock

View File

@@ -1,17 +1,22 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
depend() depend()
{ {
use hostname
need localmount need localmount
before logger before logger
after clock sysctl after clock sysctl
keyword -prefix -timeout keyword noprefix
}
dir_writeable()
{
mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
} }
: ${wipe_tmp:=${WIPE_TMP:-yes}} : ${wipe_tmp:=${WIPE_TMP:-yes}}
: ${log_dmesg:=${LOG_DMESG:-yes}}
cleanup_tmp_dir() cleanup_tmp_dir()
{ {
@@ -20,41 +25,40 @@ cleanup_tmp_dir()
if ! [ -d "$dir" ]; then if ! [ -d "$dir" ]; then
mkdir -p "$dir" || return $? mkdir -p "$dir" || return $?
fi fi
checkpath -W "$dir" || return 1 dir_writeable "$dir" || return 1
chmod a+rwt "$dir" 2> /dev/null chmod +t "$dir"
cd "$dir" || return 1 cd "$dir"
if yesno $wipe_tmp; then if yesno $wipe_tmp; then
ebegin "Wiping $dir directory" ebegin "Wiping $dir directory"
local startopts="-x . -depth"
[ "$RC_UNAME" = Linux ] && startopts=". -xdev -depth"
# Faster than raw find # Faster than find
if ! rm -rf -- [^ajlq\.]* 2>/dev/null ; then rm -rf -- [^ajlq\.]*
# Blah, too many files
find . -maxdepth 1 -name '[^ajlq\.]*' -exec rm -rf -- {} +
fi
# pam_mktemp creates a .private directory within which find $startopts ! -name . \
# each user gets a private directory with immutable ! -path "./lost+found" \
# bit set; remove the immutable bit before trying to ! -path "./lost+found/*" \
# remove it. ! -path "./quota.user" \
[ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null ! -path "./quota.user/*" \
! -path "./aquota.user" \
# Prune the paths that are left ! -path "./aquota.user/*" \
find . -maxdepth 1 \ ! -path "./quota.group" \
! -name . \ ! -path "./quota.group/*" \
! -name lost+found \ ! -path "./aquota.group" \
! -name quota.user \ ! -path "./aquota.group/*" \
! -name aquota.user \ ! -path "./journal" \
! -name quota.group \ ! -path "./journal/*" \
! -name aquota.group \ ! -path "./.private" \
! -name journal \ ! -path "./.private/*" \
-exec rm -rf -- {} + -exec rm -rf {} \;
eend 0 eend 0
else else
ebegin "Cleaning $dir directory" ebegin "Cleaning $dir directory"
rm -rf -- .X*-lock esrv* kio* \ rm -rf -- "$dir"/.X*-lock "$dir"/esrv* "$dir"/kio* \
jpsock.* .fam* .esd* \ "$dir"/jpsock.* "$dir"/.fam* "$dir"/.esd* \
orbit-* ssh-* ksocket-* \ "$dir"/orbit-* "$dir"/ssh-* "$dir"/ksocket-* \
.*-unix "$dir"/.*-unix
eend 0 eend 0
fi fi
} }
@@ -67,64 +71,30 @@ mkutmp()
chmod 0664 "$1" 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() start()
{ {
# Remove any added console dirs # Remove any added console dirs
rm -rf "$RC_LIBEXECDIR"/console/* rm -rf "$RC_LIBEXECDIR"/console
local logw=false runw=false extra= local logw=false runw=false
# Ensure that our basic dirs exist # Ensure that our basic dirs exist
if [ "$RC_UNAME" = Linux ]; then for x in /var/log /var/run /tmp; do
# 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 ! [ -d $x ]; then
if ! mkdir -p $x; then if ! mkdir -p $x; then
eend 1 "failed to create needed directory $x" eend 1 "failed to create needed directory $x"
return 1 return 1
fi fi
fi fi
done done
if [ "$RC_UNAME" = Linux -a -d /run ]; then if dir_writeable /var/run; then
migrate_to_run /var/lock /run/lock
migrate_to_run /var/run /run
fi
if checkpath -W /var/run; then
ebegin "Creating user login records" ebegin "Creating user login records"
local xtra= local xtra=
[ "$RC_UNAME" = NetBSD ] && xtra=x [ "$RC_UNAME" = NetBSD ] && xtra=x
for x in "" $xtra; do for x in "" $xtra; do
mkutmp /var/run/utmp$x mkutmp /var/run/utmp$x
done done
[ -e /var/log/wtmp ] || mkutmp /var/log/wtmp [ -e /var/log/wtmp ] && mkutmp /var/log/wtmp
eend 0 eend 0
ebegin "Cleaning /var/run" ebegin "Cleaning /var/run"
@@ -135,7 +105,7 @@ start()
# Clean stale sockets # Clean stale sockets
if [ -S "$x" ]; then if [ -S "$x" ]; then
if type fuser >/dev/null 2>&1; then if type fuser >/dev/null 2>&1; then
fuser "$x" >/dev/null 2>&1 || rm -- "$x" fuser "$x" 2>/dev/null || rm -- "$x"
else else
rm -- "$x" rm -- "$x"
fi fi
@@ -159,11 +129,11 @@ start()
cleanup_tmp_dir "$tmp" cleanup_tmp_dir "$tmp"
done done
if checkpath -W /tmp; then if dir_writeable /tmp; then
# Make sure our X11 stuff have the correct permissions # Make sure our X11 stuff have the correct permissions
# Omit the chown as bootmisc is run before network is up # Omit the chown as bootmisc is run before network is up
# and users may be using lame LDAP auth #139411 # 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 mkdir -p /tmp/.ICE-unix /tmp/.X11-unix
chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix
if [ -x /sbin/restorecon ]; then if [ -x /sbin/restorecon ]; then
@@ -171,16 +141,15 @@ start()
fi fi
fi fi
if yesno $log_dmesg; then if $logw || dir_writeable /var/log; then
if $logw || checkpath -W /var/log; then # Create an 'after-boot' dmesg log
# Create an 'after-boot' dmesg log if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then dmesg > /var/log/dmesg
dmesg > /var/log/dmesg chmod 640 /var/log/dmesg
chmod 640 /var/log/dmesg
fi
fi fi
fi fi
rm -f /etc/nologin
return 0 return 0
} }
@@ -196,5 +165,3 @@ stop()
return 0 return 0
} }
# vim: ft=sh

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Sets a font for the consoles." description="Sets a font for the consoles."
@@ -8,7 +8,7 @@ depend()
{ {
need localmount termencoding need localmount termencoding
after hotplug bootmisc after hotplug bootmisc
keyword -openvz -prefix -uml -vserver -xenu -lxc keyword noopenvz noprefix nouml novserver noxenu
} }
start() start()
@@ -45,22 +45,26 @@ start()
[ -d /dev/vc ] && ttydev=/dev/vc/ [ -d /dev/vc ] && ttydev=/dev/vc/
x=1 x=1
while [ $x -le $ttyn ]; do while [ $x -le $ttyn ]; do
if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then setfont $consolefont $param -C $ttydev$x >/dev/null
retval=1 retval=$(($retval + $?))
break x=$(($x + 1))
fi
: $(( x += 1 ))
done done
eend $retval eend $retval
# Store the last font so we can use it ASAP on boot # Store the last font so we can use it ASAP on boot
if [ $retval -eq 0 ] && checkpath -W "$RC_LIBEXECDIR"; then if [ $retval -eq 0 -a -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console mkdir -p "$RC_LIBEXECDIR"/console
for font in /usr/share/consolefonts/"$consolefont".*; do for font in /usr/share/consolefonts/"$consolefont".*; do
: :
done done
cp "$font" "$RC_LIBEXECDIR"/console cp "$font" "$RC_LIBEXECDIR"/console
echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font
if yesno ${unicode:-${UNICODE}}; then
echo "" > "$RC_LIBEXECDIR"/console/unicode
else
rm -f "$RC_LIBEXECDIR"/console/unicode
fi
fi fi
return $retval return $retval

View File

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

View File

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

View File

@@ -1,13 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Mount system critical filesystems in /dev." description="Mount system critical filesystems in /dev."
depend() { depend() {
use dev-mount use dev
before dev keyword noprefix novserver
keyword -prefix -vserver
} }
start() { start() {

View File

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

View File

@@ -1,12 +1,12 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Configures a specific kernel dump device." description="Configures a specific kernel dump device."
depend() { depend() {
need swap need swap
keyword -jail -prefix keyword nojail noprefix
} }
start() { start() {
@@ -19,7 +19,7 @@ start() {
} }
stop() { stop() {
ebegin "Deactivating kernel core dump device" ebegin "Deactiving kernel core dump device"
dumpon off dumpon off
eend $? eend $?
} }

View File

@@ -1,43 +0,0 @@
#!@PREFIX@/sbin/runscript
# Copyright 1992-2012 FreeBSD Project
# Released under the 2-clause BSD license
depend() {
before swap
}
start() {
while read device mountpoint type options rest ; do
case ":${device}:${type}:${options}" in
:#*)
;;
*.bde:swap:sw)
passphrase=$(dd if=/dev/random count=1 2>/dev/null | md5 -q)
device="${device%.bde}"
gbde init "${device}" -P "${passphrase}" || return 1
gbde attach "${device}" -p "${passphrase}" || return 1
;;
*.eli:swap:sw)
device="${device%.eli}"
geli onetime ${geli_swap_flags} "${device}" || return 1
;;
esac
done < /etc/fstab
}
stop() {
while read device mountpoint type options rest ; do
case ":${device}:${type}:${options}" in
:#*)
;;
*.bde:swap:sw)
device="${device%.bde}"
gbde detach "${device}"
;;
*.eli:swap:sw)
# Nothing here, because geli swap devices should be
# created with the auto-detach-on-last-close option.
;;
esac
done < /etc/fstab
}

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Check and repair filesystems according to /etc/fstab" description="Check and repair filesystems according to /etc/fstab"
_IFS=" _IFS="
@@ -9,7 +9,7 @@ _IFS="
depend() depend()
{ {
use dev clock modules use dev clock modules
keyword -jail -openvz -prefix -timeout -vserver -lxc keyword nojail noopenvz noprefix notimeout novserver
} }
_abort() { _abort() {
@@ -30,6 +30,33 @@ _forcefsck()
[ -e /forcefsck ] || get_bootparam forcefsck [ -e /forcefsck ] || get_bootparam forcefsck
} }
_on_ac_power()
{
if [ -f /proc/acpi/ac_adapter/AC/state ]; then
cat /proc/acpi/ac_adapter/AC/state | while read line; do
case "$line" in
"state:"*"off-line") return 128;;
esac
done
elif [ -f /proc/pmu/info ]; then
cat /proc/pmu/info | while read line; do
case "$line" in
"AC Power"*": 0") return 128;;
esac
done
elif type envstat >/dev/null 2>&1; then
# NetBSD has envstat
envstat -d acpiacad0 2>/dev/null | while read line; do
case "$line" in
"connected:"*"OFF") return 128;;
esac
done
else
return 0
fi
[ $? != 128 ]
}
start() start()
{ {
local fsck_opts= p= check_extra= local fsck_opts= p= check_extra=
@@ -41,20 +68,15 @@ start()
if _forcefsck; then if _forcefsck; then
fsck_opts="$fsck_opts -f" fsck_opts="$fsck_opts -f"
check_extra="(check forced)" check_extra="(check forced)"
elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then elif ! _on_ac_power; then
ewarn "Skipping fsck due to not being on AC power" ewarn "Skipping fsck due to not being on AC power"
return 0 return 0
fi fi
if [ -n "$fsck_passno" ]; then if [ -n "$fsck_passno" ]; then
check_extra="[passno $fsck_passno] $check_extra" 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 fi
ebegin "Checking local filesystems $check_extra" ebegin "Checking local filesystems $check_extra"
# Append passno mounts
for p in $fsck_passno; do for p in $fsck_passno; do
local IFS="$_IFS" local IFS="$_IFS"
case "$p" in case "$p" in
@@ -63,21 +85,10 @@ start()
set -- "$@" $(fstabinfo --passno "$p") set -- "$@" $(fstabinfo --passno "$p")
unset IFS unset IFS
done done
# Append custom mounts
for m in $fsck_mnt ; do
local IFS="$_IFS"
set -- "$@" "$m"
unset IFS
done
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
local skiptypes x fsck_opts="$fsck_opts -C0 -T"
for x in $net_fs_list $extra_net_fs_list; do if [ -z "$fsck_passno" ]; then
skiptypes="${skiptypes}no${x},"
done
skiptypes="${skiptypes}noopts=_netdev"
fsck_opts="$fsck_opts -C0 -T -t $skiptypes"
if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
fsck_args=${fsck_args--A -p} fsck_args=${fsck_args--A -p}
if echo 2>/dev/null >/.test.$$; then if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$ rm -f /.test.$$
@@ -107,7 +118,7 @@ start()
_reboot _reboot
fi;; fi;;
8) ewend 1 "Operational error"; return 0;; 8) ewend 1 "Operational error"; return 0;;
12) ewend 1 "fsck interrupted";; 12) ewend 1 "fsck interupted";;
*) eend 2 "Filesystems couldn't be fixed";; *) eend 2 "Filesystems couldn't be fixed";;
esac esac
_abort || return 1 _abort || return 1

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
extra_commands="reset" extra_commands="reset"
: ${hostid_file:=/etc/hostid} : ${hostid_file:=/etc/hostid}
@@ -9,7 +9,7 @@ depend()
{ {
use root use root
before devd net before devd net
keyword -jail -prefix keyword nojail noprefix
} }
_set() _set()
@@ -68,7 +68,7 @@ reset()
start() start()
{ {
if [ -r "$hostid_file" ]; then if [ -r "$hostid_file" ]; then
_set $(cat "$hostid_file") _set $(cat "$hostid_file")
else else
reset reset
fi fi

View File

@@ -1,11 +1,11 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Sets the hostname of the machine." description="Sets the hostname of the machine."
depend() { depend() {
keyword -prefix -lxc keyword noprefix
} }
start() start()

View File

@@ -1,10 +1,10 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
extra_commands="save show" 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_save="Saves the current time in the BIOS."
description_show="Displays the current time in the BIOS." description_show="Displays the current time in the BIOS."
@@ -28,7 +28,7 @@ depend()
else else
before * before *
fi fi
keyword -openvz -prefix -uml -vserver -xenu -lxc keyword noopenvz noprefix nouml novserver noxenu
} }
setupopts() setupopts()
@@ -85,23 +85,19 @@ start()
if [ -e /etc/adjtime ] && yesno $clock_adjfile; then if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
_hwclock --adjust $utc_cmd _hwclock --adjust $utc_cmd
: $(( retval += $? )) retval=$(($retval + $?))
fi fi
# If setting UTC, don't bother to run hwclock when first booting # If setting UTC, don't bother to run hwclock when first booting
# as that's the default # as that's the default
if [ "$PREVLEVEL" != N -o \ if [ "$PREVLEVEL" != N -o \
"$utc_cmd" != --utc -o \ "$utc_cmd}" != --utc -o \
-n "$clock_args" ]; -n "$clock_args" ];
then then
if yesno ${clock_hctosys:-YES}; then _hwclock --hctosys $utc_cmd $clock_args
_hwclock --hctosys $utc_cmd $clock_args retval=$(($retval + $?))
else
_hwclock --systz $utc_cmd $clock_args
fi
: $(( retval += $? ))
fi fi
eend $retval "Failed to set the system clock" eend $retval "Failed to set the system clock"
return 0 return 0
@@ -111,7 +107,7 @@ stop()
{ {
# Don't tweak the hardware clock on LiveCD halt. # Don't tweak the hardware clock on LiveCD halt.
[ -n "$CDBOOT" ] && return 0 [ -n "$CDBOOT" ] && return 0
yesno ${clock_systohc:-YES} || return 0 yesno $clock_systohc || return 0
local retval=0 errstr="" local retval=0 errstr=""
setupopts setupopts
@@ -122,7 +118,7 @@ stop()
if ! yesno $clock_adjfile; then if ! yesno $clock_adjfile; then
# Some implementations don't handle adjustments # Some implementations don't handle adjustments
if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then if LC_ALL=C hwclock --help | grep -q "\-\-noadjfile"; then
utc_cmd="$utc_cmd --noadjfile" utc_cmd="$utc_cmd --noadjfile"
fi fi
fi fi
@@ -130,7 +126,7 @@ stop()
_hwclock --systohc $utc_cmd $clock_args _hwclock --systohc $utc_cmd $clock_args
retval=$? retval=$?
eend $retval "Failed to sync clocks" eend $retval "Failed to sync clocks"
} }
save() save()

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
# This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD # This is based on /etc/rc.firewall and /etc/rc.firewall6 from FreeBSD
@@ -13,7 +13,7 @@ opts="panic showstatus"
depend() { depend() {
before net before net
provide firewall provide firewall
keyword -jail keyword nojail
} }
ipfw() { ipfw() {
@@ -40,11 +40,11 @@ init() {
ipfw add deny all from any to 127.0.0.0/8 ipfw add deny all from any to 127.0.0.0/8
ipfw add deny ip from 127.0.0.0/8 to any ipfw add 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 pass ip6 from any to any via lo0
ipfw add deny ip6 from any to ::1 ipfw add deny ip6 from any to ::1
ipfw add deny ip6 from ::1 to any ipfw add deny ip6 from ::1 to any
ipfw add pass ip6 from :: to ff02::/16 proto ipv6-icmp ipfw add pass ip6 from :: to ff02::/16 proto ipv6-icmp
ipfw add pass ip6 from fe80::/10 to fe80::/10 proto ipv6-icmp ipfw add pass ip6 from fe80::/10 to fe80::/10 proto ipv6-icmp
ipfw add pass ip6 from fe80::/10 to ff02::/16 proto ipv6-icmp ipfw add pass ip6 from fe80::/10 to ff02::/16 proto ipv6-icmp
@@ -59,7 +59,7 @@ start() {
return 1 return 1
fi fi
# Use a stateful firewall # Use a statefull firewall
ipfw add check-state ipfw add check-state
ipfw add pass tcp from me to any established 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 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 me 68 in
ipfw add pass udp from any 67 to 255.255.255.255 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. # still in use.
ipfw add pass icmp from any to any icmptype 8 ipfw add pass icmp from any to any icmptype 8
@@ -88,11 +88,11 @@ start() {
if have_ip6; then if have_ip6; then
# Allow ICMPv6 destination unreach # Allow ICMPv6 destination unreach
ipfw add pass ip6 from any to any icmp6types 1 proto ipv6-icmp ipfw add pass ip6 from any to any icmp6types 1 proto ipv6-icmp
# Allow NS/NA/toobig (don't filter it out) # Allow NS/NA/toobig (don't filter it out)
ipfw add pass ip6 from any to any icmp6types 2,135,136 proto ipv6-icmp ipfw add pass ip6 from any to any icmp6types 2,135,136 proto ipv6-icmp
fi fi
# Add permits for this workstations published services below # Add permits for this workstations published services below
# Only IPs and nets in firewall_allowservices is allowed in. # Only IPs and nets in firewall_allowservices is allowed in.
for i in $ipfw_ip_in; do for i in $ipfw_ip_in; do
@@ -107,7 +107,7 @@ start() {
for i in $ipfw_ip_trust; do for i in $ipfw_ip_trust; do
ipfw add pass ip from $i to me ipfw add pass ip from $i to me
done done
ipfw add 65000 count ip from any to any ipfw add 65000 count ip from any to any
# Drop packets to ports where we don't want logging # Drop packets to ports where we don't want logging
@@ -117,13 +117,13 @@ start() {
# Broadcasts and muticasts # Broadcasts and muticasts
ipfw add deny ip from any to 255.255.255.255 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 # Noise from routers
ipfw add deny udp from any to any 520 in ipfw add deny udp from any to any 520 in
# Noise from webbrowsing. # Noise from webbrowsing.
# The stateful filter is a bit aggressive, and will cause some # The statefull filter is a bit agressive, and will cause some
# connection teardowns to be logged. # connection teardowns to be logged.
ipfw add deny tcp from any 80,443 to any 1024-65535 in ipfw add deny tcp from any 80,443 to any 1024-65535 in

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Applies a keymap for the consoles." description="Applies a keymap for the consoles."
@@ -8,16 +8,16 @@ depend()
{ {
need localmount termencoding need localmount termencoding
after bootmisc after bootmisc
keyword -openvz -prefix -uml -vserver -xenu -lxc keyword noopenvz noprefix nouml novserver noxenu
} }
start() start()
{ {
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
: ${unicode:=$UNICODE} : ${unicode:=$UNICODE}
: ${keymap:=$KEYMAP} : =${keymap:=$KEYMAP}
: ${extended_keymaps:=$EXTENDED_KEYMAPS} : ${extended_keymaps:=$EXTENDED_KEYMAPS}
: ${windowkeys:=$SET_WINDOWSKEYS} : ${windowkeys:=$SET_WINDOWSKEYS}
: ${fix_euro:=$FIX_EURO} : ${fix_euro:=$FIX_EURO}
: ${dumpkeys_charset:=${DUMPKEYS_CHARSET}} : ${dumpkeys_charset:=${DUMPKEYS_CHARSET}}
@@ -34,25 +34,15 @@ start()
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
fi fi
local wkeys= kmode="-a" msg="ASCII" ebegin "Loading key mappings [$keymap]"
local loadkeys_uni= wkeys= kmode="-a" msg="ASCII"
if yesno $unicode; then if yesno $unicode; then
loadkeys_uni="--unicode"
kmode="-u" kmode="-u"
msg="UTF-8" msg="UTF-8"
fi fi
yesno $windowkeys && wkeys="windowkeys" yesno $windowkeys && wkeys="windowkeys"
loadkeys -q $loadkeys_uni $wkeys $keymap $extended_keymaps
# 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 $? eend $? "Error loading key mappings" || return $?
if yesno $fix_euro; then if yesno $fix_euro; then
@@ -62,8 +52,22 @@ start()
eend $? eend $?
fi 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
fi
n=1
while [ $n -le $ttyn ]; do
kbd_mode $kmode -C $ttydev$n
n=$(($n + 1))
done
eend 0
# Save the keymapping for use immediately at boot # Save the keymapping for use immediately at boot
if checkpath -W "$RC_LIBEXECDIR"; then if [ -w "$RC_LIBEXECDIR" ]; then
mkdir -p "$RC_LIBEXECDIR"/console mkdir -p "$RC_LIBEXECDIR"/console
dumpkeys >"$RC_LIBEXECDIR"/console/keymap dumpkeys >"$RC_LIBEXECDIR"/console/keymap
fi fi

View File

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

View File

@@ -1,51 +1,43 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Executes user programs in @SYSCONFDIR@/local.d" description="Executes user commands in /etc/conf.d/local"
depend() depend()
{ {
after * after *
keyword -timeout keyword notimeout
} }
start() start()
{ {
einfo "Starting local" ebegin "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 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 local_start
fi fi
eend 0 # Support old configs
if [ -e @SYSCONFDIR@/conf.d/local.start ]; then
. @SYSCONFDIR@/conf.d/local.start
fi
eend $? "Failed to start local"
} }
stop() stop()
{ {
einfo "Stopping local" ebegin "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 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 local_stop
fi fi
eend 0 # Support old configs
if [ -e @SYSCONFDIR@/conf.d/local.stop ]; then
. @SYSCONFDIR@/conf.d/local.stop
fi
eend $? "Failed to stop local"
} }

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Mounts disks and swap according to /etc/fstab." description="Mounts disks and swap according to /etc/fstab."
@@ -8,23 +8,19 @@ depend()
{ {
need fsck need fsck
use lvm modules mtab use lvm modules mtab
after lvm modules keyword nojail noopenvz noprefix novserver
keyword -jail -openvz -prefix -vserver -lxc
} }
start() start()
{ {
# Mount local filesystems in /etc/fstab. # Mount local filesystems in /etc/fstab.
local types="noproc" x= no_netdev= local types="noproc" x=
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list; do
types="${types},${x}" types="${types},${x}"
done done
if [ "$RC_UNAME" = Linux ]; then
no_netdev="-O no_netdev"
fi
ebegin "Mounting local filesystems" ebegin "Mounting local filesystems"
mount -at "$types" $no_netdev mount -at "$types"
eend $? "Some local filesystem failed to mount" eend $? "Some local filesystem failed to mount"
# Always return 0 - some local mounts may not be critical for boot # Always return 0 - some local mounts may not be critical for boot
@@ -33,22 +29,23 @@ start()
stop() stop()
{ {
yesno $RC_GOINGDOWN || return 0
# We never unmount / or /dev or $RC_SVCDIR # We never unmount / or /dev or $RC_SVCDIR
local x= no_umounts_r="/|/dev|/dev/.*|${RC_SVCDIR}"
# Bug 381783 no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib|/libexec"
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 # RC_NO_UMOUNTS is an env var that can be set by plugins
local IFS="$IFS:" OIFS=$IFS SIFS=${IFS-y}
IFS=$IFS:
for x in $no_umounts $RC_NO_UMOUNTS; do for x in $no_umounts $RC_NO_UMOUNTS; do
no_umounts_r="$no_umounts_r|$x" no_umounts_r="$no_umounts_r|$x"
done done
if [ "$SIFS" = y ]; then
IFS=$OIFS
else
unset IFS
fi
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*|/usr" no_umounts_r="$no_umounts_r|/proc|/proc/.*|/sys|/sys/.*"
fi fi
no_umounts_r="^($no_umounts_r)$" no_umounts_r="^($no_umounts_r)$"
@@ -57,8 +54,8 @@ stop()
. "$RC_LIBEXECDIR"/sh/rc-mount.sh . "$RC_LIBEXECDIR"/sh/rc-mount.sh
# Umount loop devices # Umount loopback devices
einfo "Unmounting loop devices" einfo "Unmounting loopback devices"
eindent 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" --node-regex "^/dev/loop"
@@ -69,12 +66,12 @@ stop()
einfo "Unmounting filesystems" einfo "Unmounting filesystems"
eindent eindent
local fs= local fs=
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list; do
fs="$fs${fs:+|}$x" fs="$fs${fs:+|}$x"
done done
[ -n "$fs" ] && fs="^($fs)$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount umount --skip-point-regex "$no_umounts_r" \ do_unmount umount --skip-point-regex "$no_umounts_r" \
"${fs:+--skip-fstype-regex}" $fs --nonetdev ${fs:+--skip-fstype-regex} $fs --nonetdev
eoutdent eoutdent
return 0 return 0

View File

@@ -1,13 +1,13 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
extra_commands="restore" extra_commands="restore"
depend() depend()
{ {
need localmount need localmount
keyword -jail -prefix keyword nojail noprefix
} }
restore() restore()
@@ -21,7 +21,7 @@ restore()
mixer -f "$mixer" \ mixer -f "$mixer" \
$(cat "/var/db/${mixer#/dev/}-state") >/dev/null $(cat "/var/db/${mixer#/dev/}-state") >/dev/null
veend $? veend $?
: $(( retval += $? )) : $((retval += $?))
fi fi
done done
} }
@@ -40,7 +40,7 @@ stop()
vebegin "$mixer" vebegin "$mixer"
mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state mixer -f "$mixer" -s >/var/db/"${mixer#/dev/}"-state
veend $? veend $?
: $(( retval += $? )) : $((retval += $?))
done done
eoutdent eoutdent
eend $retval eend $retval

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
MODULESDIR="${RC_LIBEXECDIR}/net" MODULESDIR="${RC_LIBEXECDIR}/net"
MODULESLIST="${RC_SVCDIR}/nettree" MODULESLIST="${RC_SVCDIR}/nettree"
@@ -19,18 +19,13 @@ depend()
local IFVAR=$(shell_var "${IFACE}") local IFVAR=$(shell_var "${IFACE}")
need localmount need localmount
if [ "$RC_UNAME" = Linux -a "$IFACE" != lo ]; then
need sysfs
fi
after bootmisc after bootmisc
keyword -jail -prefix -vserver provide net
keyword nojail noprefix novserver
case "${IFACE}" in case "${IFACE}" in
lo|lo0) ;; lo|lo0);;
*) *) after net.lo net.lo0;;
after net.lo net.lo0 dbus
provide net
;;
esac esac
if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
@@ -42,32 +37,17 @@ depend()
eval prov=\$rc_${dep}_${IFVAR} eval prov=\$rc_${dep}_${IFVAR}
if [ -n "${prov}" ]; then if [ -n "${prov}" ]; then
${dep} ${prov} ${dep} ${prov}
ewarn "rc_${dep}_${IFVAR} is deprecated."
ewarn "Please use rc_net_${IFVAR}_${dep} instead."
fi fi
done done
} }
# Support bash arrays - sigh # 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() _get_array()
{ {
local _a= local _a=
if [ -n "${BASH}" ]; then if [ -n "${BASH}" ]; then
case "$(declare -p "$1" 2>/dev/null)" in case "$(declare -p "$1" 2>/dev/null)" in
"declare -a "*) "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[@]}\"" eval "set -- \"\${$1[@]}\""
for _a; do for _a; do
printf "%s\n" "${_a}" printf "%s\n" "${_a}"
@@ -77,7 +57,10 @@ _get_array()
esac esac
fi fi
_array_helper $1 eval _a=\$$1
printf "%s" "${_a}"
printf "\n"
[ -n "${_a}" ]
} }
# Flatten bash arrays to simple strings # Flatten bash arrays to simple strings
@@ -86,9 +69,6 @@ _flatten_array()
if [ -n "${BASH}" ]; then if [ -n "${BASH}" ]; then
case "$(declare -p "$1" 2>/dev/null)" in case "$(declare -p "$1" 2>/dev/null)" in
"declare -a "*) "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[@]}\"" eval "set -- \"\${$1[@]}\""
for x; do for x; do
printf "'%s' " "$(printf "$x" | sed "s:':'\\\'':g")" printf "'%s' " "$(printf "$x" | sed "s:':'\\\'':g")"
@@ -98,7 +78,10 @@ _flatten_array()
esac esac
fi fi
_array_helper $1 eval _a=\$$1
printf "%s" "${_a}"
printf "\n"
[ -n "${_a}" ]
} }
_wait_for_carrier() _wait_for_carrier()
@@ -122,7 +105,7 @@ _wait_for_carrier()
eend 0 eend 0
return 0 return 0
fi fi
: $(( timeout -= 1 )) timeout=$((${timeout} - 1))
[ "${efunc}" = "einfon" ] && printf "." [ "${efunc}" = "einfon" ] && printf "."
done done
@@ -151,9 +134,9 @@ _netmask2cidr()
local i= len= local i= len=
local IFS=. local IFS=.
for i in $1; do for i in $1; do
while [ ${i} -ne 0 ]; do while [ ${i} != "0" ]; do
: $(( len += i % 2 )) len=$((${len} + ${i} % 2))
: $(( i >>= 1 )) i=$((${i} >> 1))
done done
done done
@@ -176,36 +159,6 @@ _configure_variables()
done 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() _show_address()
{ {
einfo "received address $(_get_inet_address "${IFACE}")" einfo "received address $(_get_inet_address "${IFACE}")"
@@ -227,7 +180,7 @@ _gen_module_list()
${update} || return 0 ${update} || return 0
fi fi
einfo "Caching network module dependencies" einfo "Caching network module dependencies"
# Run in a subshell to protect the main script # Run in a subshell to protect the main script
( (
after() { after() {
@@ -262,7 +215,7 @@ _gen_module_list()
for MODULE in "${MODULESDIR}"/*.sh; do for MODULE in "${MODULESDIR}"/*.sh; do
sh -n "${MODULE}" || continue sh -n "${MODULE}" || continue
. "${MODULE}" || continue . "${MODULE}" || continue
MODULE=${MODULE#${MODULESDIR}/} MODULE=${MODULE#${MODULESDIR}/}
MODULE=${MODULE%.sh} MODULE=${MODULE%.sh}
eval ${MODULE}_depend eval ${MODULE}_depend
@@ -314,7 +267,7 @@ _gen_module_list()
echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}" echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"
echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}" echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"
echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}" echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"
: $(( i += 1 )) i=$((${i} + 1))
done done
echo "module_${i}=" >> "${MODULESLIST}" echo "module_${i}=" >> "${MODULESLIST}"
) )
@@ -341,17 +294,18 @@ _load_modules()
local i=-1 x= mod= f= provides= local i=-1 x= mod= f= provides=
while true; do while true; do
: $(( i += 1 )) i=$((${i} + 1))
eval mod=\$module_${i} eval mod=\$module_${i}
[ -z "${mod}" ] && break [ -z "${mod}" ] && break
[ -e "${MODULESDIR}/${mod}.sh" ] || continue [ -e "${MODULESDIR}/${mod}.sh" ] || continue
eval set -- \$module_${i}_program eval set -- \$module_${i}_program
if [ -n "$1" ]; then if [ -n "$1" ]; then
if ! _program_available "$@" >/dev/null; then x=
vewarn "Skipping module $mod due to missing program: $@" for x; do
continue [ -x "${x}" ] && break
fi done
[ -x "${x}" ] || continue
fi fi
if ${starting}; then if ${starting}; then
eval set -- \$module_${i}_program_start eval set -- \$module_${i}_program_start
@@ -359,10 +313,15 @@ _load_modules()
eval set -- \$module_${i}_program_stop eval set -- \$module_${i}_program_stop
fi fi
if [ -n "$1" ]; then if [ -n "$1" ]; then
if ! _program_available "$@" >/dev/null; then x=
vewarn "Skipping module $mod due to missing program: $@" for x; do
continue case "${x}" in
fi /*) [ -x "${x}" ] && break;;
*) type "${x}" >/dev/null 2>&1 && break;;
esac
unset x
done
[ -n "${x}" ] || continue
fi fi
eval provides=\$module_${i}_provide eval provides=\$module_${i}_provide
@@ -384,7 +343,7 @@ _load_modules()
# Wrap our provides # Wrap our provides
local f= 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} \"\$@\"; }" eval "${provides}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done done
@@ -398,7 +357,7 @@ _load_modules()
*" ${mod} "*) *" ${mod} "*)
eval x=\$module_${mod}_provides eval x=\$module_${mod}_provides
[ -z "${x}" ] && continue [ -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} \"\$@\"; }" eval "${x}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done done
eval module_${x}_providedby="${mod}" eval module_${x}_providedby="${mod}"
@@ -420,7 +379,7 @@ _load_modules()
MODULES="${MODULES}${MODULES:+ }${mod}" MODULES="${MODULES}${MODULES:+ }${mod}"
done done
else else
for mod in ${LIST}; do for mod in ${LIST}; do
MODULES="${mod}${MODULES:+ }${MODULES}" MODULES="${mod}${MODULES:+ }${MODULES}"
done done
fi fi
@@ -436,20 +395,18 @@ _load_config()
config_index=0 config_index=0
local IFS="$__IFS" local IFS="$__IFS"
set -- ${config} set -- ${config}
# We should support a space separated array for cidr configs # 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 if [ $# = 1 ]; then
unset IFS unset IFS
set -- ${config} set -- ${config}
# Of course, we may have a single address added old style. # Of course, we may have a single address added old style.
# If the NEXT argument is a v4 or v6 address, it's the next config. case "$2" in
# Otherwise, it's arguments to the first config... netmask|broadcast|brd|brd+)
if [ "${2#*.*}" = "${2}" -a "${2#*:*}" = "${2}" ]; then local IFS="$__IFS"
# Not an IPv4/IPv6 set -- ${config}
local IFS="$__IFS" ;;
set -- ${config} esac
fi
fi fi
# Ensure that loopback has the correct address # Ensure that loopback has the correct address
@@ -458,7 +415,7 @@ _load_config()
config_0="127.0.0.1/8" config_0="127.0.0.1/8"
config_index=1 config_index=1
fi fi
else else
if [ -z "$1" ]; then if [ -z "$1" ]; then
ewarn "No configuration specified; defaulting to DHCP" ewarn "No configuration specified; defaulting to DHCP"
config_0="dhcp" config_0="dhcp"
@@ -471,7 +428,7 @@ _load_config()
# so modules can influence it # so modules can influence it
for cmd; do for cmd; do
eval config_${config_index}="'${cmd}'" eval config_${config_index}="'${cmd}'"
: $(( config_index += 1 )) config_index=$((${config_index} + 1))
done done
# Terminate the list # Terminate the list
eval config_${config_index}= eval config_${config_index}=
@@ -479,7 +436,7 @@ _load_config()
config_index=0 config_index=0
for cmd in ${fallback}; do for cmd in ${fallback}; do
eval fallback_${config_index}="'${cmd}'" eval fallback_${config_index}="'${cmd}'"
: $(( config_index += 1 )) config_index=$((${config_index} + 1))
done done
# Terminate the list # Terminate the list
eval fallback_${config_index}= eval fallback_${config_index}=
@@ -519,11 +476,9 @@ interface_down()
start() start()
{ {
local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module= local IFACE=${RC_SVCNAME#*.} oneworked=false module=
local IFVAR=$(shell_var "${IFACE}") cmd= our_metric= local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
local metric=0 _up_before_preup local metric=0
eval _up_before_preup="\$up_before_preup_${IFVAR}"
[ -z "${_up_before_preup}" ] && _up_before_preup=$up_before_preup
einfo "Bringing up interface ${IFACE}" einfo "Bringing up interface ${IFACE}"
eindent eindent
@@ -537,7 +492,7 @@ start()
# available in preup and afterwards incase the user inadvertently # available in preup and afterwards incase the user inadvertently
# brings it down # brings it down
if [ "$(command -v preup)" = "preup" ]; then if [ "$(command -v preup)" = "preup" ]; then
yesno "${_up_before_preup:-yes}" && _up 2>/dev/null _up 2>/dev/null
ebegin "Running preup" ebegin "Running preup"
eindent eindent
preup || return 1 preup || return 1
@@ -545,7 +500,7 @@ start()
fi fi
_up 2>/dev/null _up 2>/dev/null
for module in ${MODULES}; do for module in ${MODULES}; do
if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then
${module}_pre_start || exit $? ${module}_pre_start || exit $?
@@ -572,21 +527,19 @@ start()
_load_config _load_config
config_index=0 config_index=0
eval our_metric=\$metric_${IFVAR} eval our_metric=\$metric_${IFVAR}
if [ -n "${our_metric}" ]; then if [ -n "${our_metric}" ]; then
metric=${our_metric} metric=${our_metric}
elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
: $(( metric += $(_ifindex) )) metric=$((${metric} + $(_ifindex)))
fi fi
while true; do while true; do
eval config=\$config_${config_index} eval config=\$config_${config_index}
[ -z "${config}" ] && break [ -z "${config}" ] && break
set -- ${config} set -- ${config}
if [ "$1" != "null" -a "$1" != "noop" ]; then ebegin "$1"
ebegin "$1"
fi
eindent eindent
case "$1" in case "$1" in
noop) noop)
@@ -610,17 +563,16 @@ start()
else else
eval config=\$fallback_${config_index} eval config=\$fallback_${config_index}
if [ -n "${config}" ]; then if [ -n "${config}" ]; then
fallback=true
eoutdent eoutdent
ewarn "Trying fallback configuration ${config}" ewarn "Trying fallback configuration ${config}"
eindent eindent
eval config_${config_index}=\$config eval config_${config_index}=\$config
unset fallback_${config_index} unset fallback_${config_index}
: $(( config_index -= 1 )) config_index=$((${config_index} - 1))
fi fi
fi fi
eoutdent eoutdent
: $(( config_index += 1 )) config_index=$((${config_index} + 1))
done done
if ! ${oneworked}; then if ! ${oneworked}; then
@@ -633,13 +585,8 @@ start()
return 1 return 1
fi fi
local hidefirstroute=false first=true routes= local hidefirstroute=false first=true
if ${fallback}; then local routes="$(_get_array "routes_${IFVAR}")"
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 [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
if [ "${config_0}" != "null" ]; then if [ "${config_0}" != "null" ]; then
routes="127.0.0.0/8 via 127.0.0.1 routes="127.0.0.0/8 via 127.0.0.1
@@ -691,7 +638,7 @@ ${routes}"
if [ "$(command -v postup)" = "postup" ]; then if [ "$(command -v postup)" = "postup" ]; then
ebegin "Running postup" ebegin "Running postup"
eindent eindent
postup postup
eoutdent eoutdent
fi fi
@@ -737,11 +684,7 @@ stop()
# Only delete addresses for interfaces that exist # Only delete addresses for interfaces that exist
if _exists; then if _exists; then
# PPP can manage it's own addresses when IN_BACKGROUND _delete_addresses "${IFACE}"
# Important in case "demand" set on the ppp link
if ! (yesno ${IN_BACKGROUND} && is_ppp) ; then
_delete_addresses "${IFACE}"
fi
fi fi
for module in ${MODULES}; do for module in ${MODULES}; do

View File

@@ -1,28 +1,63 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
description="Mounts network shares, other than NFS, according to /etc/fstab." description="Mounts network shares according to /etc/fstab."
# We skip all NFS shares in this script because they require extra
# daemons to be running on the client in order to work correctly. need_portmap()
# It is best to allow nfs-utils to handle all nfs shares. {
local opts=
local IFS="
"
set -- $(fstabinfo --options --fstype nfs,nfs4)
for opts; do
case ,$opts, in
*,noauto,*|*,nolock,*);;
*) return 0;;
esac
done
return 1
}
depend() depend()
{ {
# Only have portmap as a dependency if there is a nfs mount in fstab
# that is set to mount at boot
local pmap=
if need_portmap; then
pmap="rpc.statd"
[ -x @SYSCONFDIR@/init.d/rpcbind ] \
&& pmap="$pmap rpcbind" \
|| pmap="$pmap portmap"
fi
config /etc/fstab config /etc/fstab
need net need net $pmap
use afc-client amd autofs openvpn use afc-client amd autofs openvpn
use dns use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd
keyword -jail -prefix -vserver keyword nojail noprefix novserver
} }
start() start()
{ {
local x= fs= rc= local myneed= myuse= pmap="portmap" nfsmounts=
for x in $net_fs_list $extra_net_fs_list; do [ -x @SYSCONFDIR@/init.d/rpcbind ] && pmap="rpcbind"
local x= fs=
for x in $net_fs_list; do
case "$x" in case "$x" in
nfs|nfs4) nfs|nfs4)
continue # If the nfsmount script took care of the nfs
# filesystems, then there's no point in trying
# them twice
service_started nfsmount && continue
# 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
continue
fi
;; ;;
esac esac
fs="$fs${fs:+,}$x" fs="$fs${fs:+,}$x"
@@ -30,12 +65,7 @@ start()
ebegin "Mounting network filesystems" ebegin "Mounting network filesystems"
mount -at $fs mount -at $fs
rc=$? ewend $? "Could not mount all network filesystems"
if [ "$RC_UNAME" = Linux ]; then
mount -a -O _netdev
rc=$?
fi
ewend $rc "Could not mount all network filesystems"
return 0 return 0
} }
@@ -46,15 +76,8 @@ stop()
ebegin "Unmounting network filesystems" ebegin "Unmounting network filesystems"
. "$RC_LIBEXECDIR"/sh/rc-mount.sh . "$RC_LIBEXECDIR"/sh/rc-mount.sh
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list; do
case "$x" in fs="$fs${fs:+,}$x"
nfs|nfs4)
continue
;;
*)
fs="$fs${fs:+,}$x"
;;
esac
done done
if [ -n "$fs" ]; then if [ -n "$fs" ]; then
umount -at $fs || eerror "Failed to simply unmount filesystems" umount -at $fs || eerror "Failed to simply unmount filesystems"
@@ -62,24 +85,13 @@ stop()
eindent eindent
fs= fs=
for x in $net_fs_list $extra_net_fs_list; do for x in $net_fs_list; do
case "$x" in fs="$fs${fs:+|}$x"
nfs|nfs4)
continue
;;
*)
fs="$fs${fs:+|}$x"
;;
esac
done done
[ -n "$fs" ] && fs="^($fs)$" [ -n "$fs" ] && fs="^($fs)$"
do_unmount umount ${fs:+--fstype-regex} $fs --netdev do_unmount umount ${fs:+--fstype-regex} $fs --netdev
retval=$? retval=$?
eoutdent eoutdent
if [ "$RC_UNAME" = Linux ]; then
umount -a -O _netdev
retval=$?
fi
eend $retval "Failed to unmount network filesystems" eend $retval "Failed to unmount network filesystems"
} }

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name> # Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
# This script was inspired by the equivalent rc.d network from NetBSD. # This script was inspired by the equivalent rc.d network from NetBSD.
@@ -12,10 +12,8 @@ depend()
{ {
need localmount need localmount
after bootmisc after bootmisc
if [ -n "$(interfaces)" ]; then provide net
provide net keyword nojail noprefix novserver
fi
keyword -jail -prefix -vserver
} }
uniqify() uniqify()
@@ -59,32 +57,6 @@ sys_interfaces()
esac 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() auto_interfaces()
{ {
local ifs= c= f= local ifs= c= f=
@@ -131,28 +103,13 @@ dumpargs()
esac esac
} }
intup=false
runip() runip()
{ {
local int="$1" err= local int="$1" err=
shift 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) err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
if [ -z "$err" ]; then [ -z "$err" ] && return 0
# 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 if [ "$err" = "RTNETLINK answers: File exists" ]; then
ip address del "$@" dev "$int" 2>/dev/null ip address del "$@" dev "$int" 2>/dev/null
fi fi
@@ -163,9 +120,8 @@ runip()
routeflush() routeflush()
{ {
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
if [ -x /sbin/ip ] || [ -x /bin/ip ]; then if [ -x /sbin/ip ]; then
ip route flush scope global ip route flush scope global
ip route delete default 2>/dev/null
else else
# Sadly we also delete some link routes, but # Sadly we also delete some link routes, but
# this cannot be helped # this cannot be helped
@@ -185,8 +141,6 @@ routeflush()
esac esac
route del $flags $dest $netmask $xtra route del $flags $dest $netmask $xtra
done done
# Erase any default dev eth0 routes
route del default 2>/dev/null
fi fi
else else
route -qn flush route -qn flush
@@ -211,20 +165,12 @@ runargs()
start() start()
{ {
local cr=0 r= int= intv= cmd= args= upcmd= local cr=0 r= int= intv= cmd= args= upcmd=
if [ -z "$domainname" -a -s /etc/defaultdomain ]; then
domainname=$(cat /etc/defaultdomain)
fi
if [ -n "$domainname" ]; then
ebegin "Setting NIS domainname: $domainname"
domainname "$domainname"
eend $?
fi
einfo "Starting network" einfo "Starting network"
routeflush routeflush
if [ "$RC_UNAME" = "Linux" ]; then if [ "$RC_UNAME" = "Linux" ]; then
ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1 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 2>/dev/null
route add -net 127.0.0.0 netmask 255.0.0.0 \ route add -net 127.0.0.0 netmask 255.0.0.0 \
gw 127.0.0.1 reject 2>/dev/null gw 127.0.0.1 reject 2>/dev/null
else else
@@ -248,7 +194,7 @@ start()
-f /etc/ifup."$int" -o -f "$cf" ] || continue -f /etc/ifup."$int" -o -f "$cf" ] || continue
veinfo "$int" veinfo "$int"
case "$func" in case "$func" in
ip) func=runip; intup=false;; ip) func=runip;;
esac esac
eindent eindent
runargs /etc/ifup."$int" "$upcmd" runargs /etc/ifup."$int" "$upcmd"
@@ -277,41 +223,13 @@ start()
eoutdent eoutdent
eend $cr 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 if [ -n "$defaultroute" ]; then
ebegin "Setting default route $defaultroute" 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 if [ "$RC_UNAME" = Linux ]; then
routecmd="route -A inet6 add" route add default gw $defaultroute
else else
routecmd="route -inet6 add" route add default $defaultroute
fi fi
$routecmd default $defaultroute6
eend $?
elif [ -n "$defaultiproute6" ]; then
ebegin "Setting default route $defaultiproute6"
ip -f inet6 route add default $defaultiproute6
eend $? eend $?
fi fi
@@ -340,11 +258,6 @@ stop()
then then
veinfo "$int" veinfo "$int"
runargs /etc/ifdown."$int" "$downcmd" 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" down 2>/dev/null
ifconfig "$int" destroy 2>/dev/null ifconfig "$int" destroy 2>/dev/null
fi fi

View File

@@ -1,13 +1,13 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name> # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
required_files="/etc/newsyslog.conf" required_files="/etc/newsyslog.conf"
depend() depend()
{ {
need localmount need localmount
keyword -prefix keyword noprefix
} }
start() start()

View File

@@ -1,6 +1,6 @@
#!@PREFIX@/sbin/runscript #!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name> # Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license. # All rights reserved. Released under the 2-clause BSD license.
command=/usr/sbin/nscd command=/usr/sbin/nscd
command_args=$nscd_args command_args=$nscd_args

View File

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

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