Compare commits
	
		
			8 Commits
		
	
	
		
			openrc-0.1
			...
			funtoo-ope
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					6e6cf26b99 | ||
| 
						 | 
					58425a972c | ||
| 
						 | 
					b9204e97a1 | ||
| 
						 | 
					2cd47b3b4d | ||
| 
						 | 
					f07d8154a9 | ||
| 
						 | 
					173001713c | ||
| 
						 | 
					875ee9529b | ||
| 
						 | 
					b3f70ca20b | 
							
								
								
									
										11
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								Makefile
									
									
									
									
									
								
							@@ -4,12 +4,7 @@
 | 
			
		||||
 | 
			
		||||
include Makefile.inc
 | 
			
		||||
 | 
			
		||||
SUBDIR=		conf.d etc init.d local.d man scripts sh src sysctl.d
 | 
			
		||||
 | 
			
		||||
# Build our old net foo or not
 | 
			
		||||
ifeq (${MKNET},oldnet)
 | 
			
		||||
SUBDIR+=	net doc
 | 
			
		||||
endif
 | 
			
		||||
SUBDIR=		conf.d doc etc init.d local.d sysctl.d man net scripts sh src
 | 
			
		||||
 | 
			
		||||
# Build pkgconfig or not
 | 
			
		||||
MKPKGCONFIG?=	yes
 | 
			
		||||
@@ -30,9 +25,7 @@ include ${MK}/dist.mk
 | 
			
		||||
include ${MK}/git.mk
 | 
			
		||||
 | 
			
		||||
_installafter:
 | 
			
		||||
ifeq (${MKPREFIX},yes)
 | 
			
		||||
	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
 | 
			
		||||
else ifneq (${OS},Linux)
 | 
			
		||||
ifneq ($(OS),Linux)
 | 
			
		||||
	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
 | 
			
		||||
endif
 | 
			
		||||
	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
NAME=		openrc
 | 
			
		||||
VERSION=	0.11.7
 | 
			
		||||
VERSION=	0.10
 | 
			
		||||
PKG=		${NAME}-${VERSION}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								README
									
									
									
									
									
								
							@@ -10,9 +10,7 @@ You may wish to tweak the installation with the below arguments
 | 
			
		||||
PROGLDFLAGS=-static
 | 
			
		||||
LIBNAME=lib64
 | 
			
		||||
DESTDIR=/tmp/openrc-image
 | 
			
		||||
MKNET=oldnet
 | 
			
		||||
MKPAM=pam
 | 
			
		||||
MKPREFIX=yes
 | 
			
		||||
MKPKGCONFIG=no
 | 
			
		||||
MKSELINUX=yes
 | 
			
		||||
MKSTATICLIBS=no
 | 
			
		||||
@@ -26,8 +24,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.
 | 
			
		||||
If you debug memory under valgrind, add -DDEBUG_MEMORY to your CPPFLAGS
 | 
			
		||||
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
 | 
			
		||||
BRANDING=\"Gentoo/$(uname -s)\"
 | 
			
		||||
 
 | 
			
		||||
@@ -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.
 | 
			
		||||
@@ -1,12 +1,9 @@
 | 
			
		||||
DIR=	${CONFDIR}
 | 
			
		||||
CONF=	bootmisc fsck hostname localmount netmount urandom tmpfiles \
 | 
			
		||||
		${CONF-${OS}}
 | 
			
		||||
CONF=	bootmisc fsck hostname localmount network staticroute urandom \
 | 
			
		||||
	${CONF-${OS}}
 | 
			
		||||
 | 
			
		||||
ifeq (${MKNET},)
 | 
			
		||||
CONF+= network staticroute
 | 
			
		||||
TARGETS+=	network staticroute
 | 
			
		||||
CLEANFILES+=	network staticroute
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
MK=	../mk
 | 
			
		||||
include ${MK}/os.mk
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
# 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"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,40 +0,0 @@
 | 
			
		||||
# You will need to set the dependencies in the netmount script to match
 | 
			
		||||
# the network configuration tools you are using. This should be done in
 | 
			
		||||
# this file by following the examples below, and not by changing the
 | 
			
		||||
# service script itself.
 | 
			
		||||
#
 | 
			
		||||
# Each of these examples is meant to be used separately. So, for
 | 
			
		||||
# example, do not set rc_need to something like "net.eth0 dhcpcd".
 | 
			
		||||
#
 | 
			
		||||
# If you are using newnet and configuring your interfaces with static
 | 
			
		||||
# addresses with the network script, you  should use this setting.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="network"
 | 
			
		||||
#
 | 
			
		||||
# If you are using oldnet, you must list the specific net.* services you
 | 
			
		||||
# need.
 | 
			
		||||
#
 | 
			
		||||
# This example assumes all of your netmounts can be reached on
 | 
			
		||||
# eth0.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="net.eth0"
 | 
			
		||||
#
 | 
			
		||||
# This example assumes some of your netmounts are on eth1 and some
 | 
			
		||||
# are on eth2.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="net.eth1 net.eth2"
 | 
			
		||||
#
 | 
			
		||||
# If you are using a dynamic network management tool like
 | 
			
		||||
# networkmanager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to
 | 
			
		||||
# manage the network interfaces with the routes to your netmounts, you
 | 
			
		||||
# should list that tool.
 | 
			
		||||
#
 | 
			
		||||
#rc_need="networkmanager"
 | 
			
		||||
#rc_need="dhcpcd"
 | 
			
		||||
#rc_need="wicd"
 | 
			
		||||
#
 | 
			
		||||
# The default setting is designed to be backward compatible with our
 | 
			
		||||
# current setup, but you are highly discouraged from using this. In
 | 
			
		||||
# other words, please change it to be more suited to your system.
 | 
			
		||||
#
 | 
			
		||||
rc_need="net"
 | 
			
		||||
@@ -1,3 +0,0 @@
 | 
			
		||||
# Extra options for tmpfiles.sh
 | 
			
		||||
#tmpfiles_opts="--verbose"
 | 
			
		||||
tmpfiles_opts=""
 | 
			
		||||
@@ -80,9 +80,9 @@
 | 
			
		||||
# Most drivers that report carrier status function correctly, but some do not
 | 
			
		||||
# One of these faulty drivers is for the Intel e1000 network card, but only
 | 
			
		||||
# at boot time. To get around this you may alter the carrier_timeout value for
 | 
			
		||||
# the interface. 0 is disable and any other number of seconds is how
 | 
			
		||||
# long we wait for carrier. The current default is disabled.
 | 
			
		||||
#carrier_timeout_eth0=0
 | 
			
		||||
# the interface. -1 is disable, 0 is infinite and any other number of seconds
 | 
			
		||||
# is how long we wait for carrier. The current default is 3 seconds
 | 
			
		||||
#carrier_timeout_eth0=-1
 | 
			
		||||
 | 
			
		||||
# You may wish to disable the interface being brought down when stopping.
 | 
			
		||||
# This is only of use for WakeOnLan.
 | 
			
		||||
 
 | 
			
		||||
@@ -126,13 +126,6 @@
 | 
			
		||||
# tables you may have to set a global metric as the due to a simple read of
 | 
			
		||||
# the routing table taking over a minute at a time.
 | 
			
		||||
 | 
			
		||||
# Most drivers that report carrier status function correctly, but some do not
 | 
			
		||||
# One of these faulty drivers is for the Intel e1000 network card, but only
 | 
			
		||||
# at boot time. To get around this you may alter the carrier_timeout value for
 | 
			
		||||
# the interface. 0 is disable and any other number of seconds is how
 | 
			
		||||
# long we wait for carrier. The current default is disabled.
 | 
			
		||||
#carrier_timeout_eth0=0
 | 
			
		||||
 | 
			
		||||
# You may wish to disable the interface being brought down when stopping.
 | 
			
		||||
# This is only of use for WakeOnLan.
 | 
			
		||||
#ifdown_eth0="NO"
 | 
			
		||||
@@ -559,34 +552,26 @@
 | 
			
		||||
# You can also configure the VLAN - see for ip man page for more details
 | 
			
		||||
# To change the vlan interface name. If not set, the standard "iface.vlanid"
 | 
			
		||||
# will be used. This is the replacement for the old 'vconfig set_name_type'
 | 
			
		||||
# functionality. If you previously relied on the DEV_PLUS_VID or
 | 
			
		||||
# DEV_PLUS_VID_NO_PAD options to have different VLANs with same ID value, on
 | 
			
		||||
# different interfaces, please note that you need to use both the interface and
 | 
			
		||||
# vlan number in the numbering. This applies for all of the options: name,
 | 
			
		||||
# txqueuelen, mac, broadcast, mtu, ingress, egress, flags
 | 
			
		||||
# functionality.
 | 
			
		||||
#vlan1_name="vlan1"
 | 
			
		||||
#eth0_vlan2_name="eth0.2"
 | 
			
		||||
#eth1_vlan2_name="eth1.2"
 | 
			
		||||
#vlan2_name="eth0.2"
 | 
			
		||||
 | 
			
		||||
# The following shows the old set_name_type setting and what new option to set:
 | 
			
		||||
# Using eth9 & VLAN VID 26 as an example.
 | 
			
		||||
# VLAN_PLUS_VID         vlan26_name="vlan0026"
 | 
			
		||||
# VLAN_PLUS_VID_NO_PAD  vlan26_name="vlan26"
 | 
			
		||||
# DEV_PLUS_VID          eth9_vlan26_name="eth9.0026"
 | 
			
		||||
# DEV_PLUS_VID_NO_PAD   eth9_vlan26_name="eth9.26"
 | 
			
		||||
# DEV_PLUS_VID          vlan26_name="eth9.0026"
 | 
			
		||||
# DEV_PLUS_VID_NO_PAD   vlan26_name="eth9.26"
 | 
			
		||||
 | 
			
		||||
# Set the vlan flags
 | 
			
		||||
#vlan1_flags="reorder_hdr off gvrp on loose_binding on"
 | 
			
		||||
#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"
 | 
			
		||||
#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"
 | 
			
		||||
#config_vlan1="172.16.3.1/23"
 | 
			
		||||
#config_vlan2="172.16.2.1/23"
 | 
			
		||||
 | 
			
		||||
# NOTE: Vlans can be configured with a . in their interface names
 | 
			
		||||
# When configuring vlans with this name type, you need to replace . with a _
 | 
			
		||||
@@ -653,17 +638,6 @@
 | 
			
		||||
# ppp devices - we need to depend function on the bonded interfaces
 | 
			
		||||
#rc_net_bond0_need="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
 | 
			
		||||
@@ -1137,13 +1111,6 @@
 | 
			
		||||
# 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"
 | 
			
		||||
 | 
			
		||||
#-----------------------------------------------------------------------------
 | 
			
		||||
# Firewalld support
 | 
			
		||||
# If you are using the firewalld daemon to configure your firewall
 | 
			
		||||
# settings and you have specific zones you want to apply to your
 | 
			
		||||
# interfaces, you can do this here.
 | 
			
		||||
#firewalld_zone_eth0="myzone"
 | 
			
		||||
 | 
			
		||||
##############################################################################
 | 
			
		||||
# ADVANCED CONFIGURATION
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,6 @@
 | 
			
		||||
# 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
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,6 @@
 | 
			
		||||
# ""        - nothing special
 | 
			
		||||
# "lxc"     - Linux Containers
 | 
			
		||||
# "openvz"  - Linux OpenVZ
 | 
			
		||||
# "prefix"  - Prefix
 | 
			
		||||
# "uml"     - Usermode Linux
 | 
			
		||||
# "vserver" - Linux vserver
 | 
			
		||||
# "xen0"    - Xen0 Domain
 | 
			
		||||
@@ -19,11 +18,3 @@
 | 
			
		||||
# This is the number of tty's used in most of the rc-scripts (like
 | 
			
		||||
# consolefont, numlock, etc ...)
 | 
			
		||||
rc_tty_number=12
 | 
			
		||||
 | 
			
		||||
# If you have cgroups turned on in your kernel, this switch controls
 | 
			
		||||
# whether or not a group for each controller 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"
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@
 | 
			
		||||
 | 
			
		||||
# 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.
 | 
			
		||||
 
 | 
			
		||||
@@ -94,10 +94,6 @@
 | 
			
		||||
# These variables are documented here, but should be configured in
 | 
			
		||||
# /etc/conf.d/foo for service foo and NOT enabled here unless you
 | 
			
		||||
# really want them to work on a global basis.
 | 
			
		||||
# If your service has characters in its name which are not legal in
 | 
			
		||||
# shell variable names and you configure the variables for it in this
 | 
			
		||||
# file, those characters should be replaced with underscores in the
 | 
			
		||||
# variable names as shown below.
 | 
			
		||||
 | 
			
		||||
# Some daemons are started and stopped via start-stop-daemon.
 | 
			
		||||
# We can set some things on a per service basis, like the nicelevel.
 | 
			
		||||
@@ -120,13 +116,6 @@
 | 
			
		||||
#rc_foo_need="openvpn"
 | 
			
		||||
#rc_foo_after="clock"
 | 
			
		||||
 | 
			
		||||
# Below is an example for service foo-bar. Note that the '-' is illegal
 | 
			
		||||
# in a shell variable name, so we convert it to an underscore.
 | 
			
		||||
# example for service foo-bar.
 | 
			
		||||
#rc_foo_bar_config="/etc/foo-bar"
 | 
			
		||||
#rc_foo_bar_need="openvpn"
 | 
			
		||||
#rc_foo_bar_after="clock"
 | 
			
		||||
 | 
			
		||||
# You can also remove dependencies.
 | 
			
		||||
# This is mainly used for saying which servies do NOT provide net.
 | 
			
		||||
#rc_net_tap0_provide="!net"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -41,4 +41,3 @@ syslogd
 | 
			
		||||
termencoding
 | 
			
		||||
ttys
 | 
			
		||||
wscons
 | 
			
		||||
tmpfiles.setup
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,12 @@
 | 
			
		||||
DIR=	${INITDIR}
 | 
			
		||||
SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
 | 
			
		||||
	root.in savecache.in swap.in swapfiles.in \
 | 
			
		||||
	tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
 | 
			
		||||
	network.in root.in savecache.in staticroute.in swap.in swapfiles.in \
 | 
			
		||||
	swclock.in sysctl.in urandom.in ${SRCS-${OS}}
 | 
			
		||||
BIN=	${OBJS}
 | 
			
		||||
 | 
			
		||||
# Build our old net foo or not
 | 
			
		||||
ifeq (${MKNET},)
 | 
			
		||||
SRCS+= network.in staticroute.in
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (${MKNET},oldnet)
 | 
			
		||||
INSTALLAFTER=	_installafter_net.lo
 | 
			
		||||
SRCS+= net.lo.in
 | 
			
		||||
endif
 | 
			
		||||
CLEANFILES+=	net.lo
 | 
			
		||||
TARGETS+=	net.lo
 | 
			
		||||
 | 
			
		||||
MK=	../mk
 | 
			
		||||
include ${MK}/os.mk
 | 
			
		||||
@@ -22,8 +16,8 @@ NET_LO-FreeBSD=	net.lo0
 | 
			
		||||
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
 | 
			
		||||
SRCS-FreeBSD+=	adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \
 | 
			
		||||
		powerd.in syscons.in
 | 
			
		||||
 | 
			
		||||
NET_LO-Linux=	net.lo
 | 
			
		||||
SRCS-Linux=	devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ depend()
 | 
			
		||||
	   [ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
 | 
			
		||||
		need root
 | 
			
		||||
	fi
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ depend()
 | 
			
		||||
	need localmount
 | 
			
		||||
	before logger
 | 
			
		||||
	after clock sysctl
 | 
			
		||||
	keyword -prefix -timeout
 | 
			
		||||
	keyword -timeout
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
: ${wipe_tmp:=${WIPE_TMP:-yes}}
 | 
			
		||||
@@ -112,7 +112,7 @@ start()
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux -a -d /run ]; then
 | 
			
		||||
	if [ "$RC_UNAME" = Linux -a -d /run ] && false; then
 | 
			
		||||
		migrate_to_run	/var/lock /run/lock
 | 
			
		||||
		migrate_to_run	/var/run /run
 | 
			
		||||
	fi
 | 
			
		||||
@@ -196,5 +196,3 @@ stop()
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# vim: ft=sh
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount termencoding
 | 
			
		||||
	after hotplug bootmisc
 | 
			
		||||
	keyword -openvz -prefix -uml -vserver -xenu -lxc
 | 
			
		||||
	keyword -openvz -uml -vserver -xenu -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ depend() {
 | 
			
		||||
	need localmount
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	before net.lo0
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start_pre() {
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,8 @@
 | 
			
		||||
description="Mount system critical filesystems in /dev."
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	use dev-mount
 | 
			
		||||
	before dev
 | 
			
		||||
	keyword -prefix -vserver
 | 
			
		||||
	use dev
 | 
			
		||||
	keyword -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start() {
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ description="Set the dmesg level for a cleaner boot"
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	before dev modules
 | 
			
		||||
	keyword -lxc -prefix -vserver
 | 
			
		||||
	keyword -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ description="Configures a specific kernel dump device."
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need swap
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start() {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
@@ -9,7 +9,7 @@ _IFS="
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	use dev clock modules
 | 
			
		||||
	keyword -jail -openvz -prefix -timeout -vserver -lxc
 | 
			
		||||
	keyword -jail -openvz -timeout -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_abort() {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	use root
 | 
			
		||||
	before devd net
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_set()
 | 
			
		||||
 
 | 
			
		||||
@@ -5,12 +5,38 @@
 | 
			
		||||
description="Sets the hostname of the machine."
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	keyword -prefix -lxc
 | 
			
		||||
	need root
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	hostname=${hostname-${HOSTNAME-localhost}}
 | 
			
		||||
	out=$hostname
 | 
			
		||||
	short=${hostname%%.*}
 | 
			
		||||
	if [ "$short" != "$hostname" ]; then
 | 
			
		||||
		out="$out $short"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$nisdomainname" != "" ]; then
 | 
			
		||||
		ebegin "Setting NIS domain name to $nisdomainname"
 | 
			
		||||
		nisdomainname $nisdomainname
 | 
			
		||||
		eend $? "Failed to set the NIS domain name"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$short" != "localhost" ]; then
 | 
			
		||||
		out="$out localhost"
 | 
			
		||||
	fi
 | 
			
		||||
	if [ "$hostname" != "localhost.localdomain" ]; then
 | 
			
		||||
		out="$out localhost.localdomain"
 | 
			
		||||
	fi
 | 
			
		||||
	[ -n "$aliases" ] && out="$out $aliases"
 | 
			
		||||
	ebegin "Configuring /etc/hosts"
 | 
			
		||||
	[ -e /etc/hosts ] && sed -i -e '/[[:space:]]*127.0.0.1[[:space:]]/d' -e '/[[:space:]]*::1[[:space:]]/d' /etc/hosts
 | 
			
		||||
	cat <<END >> /etc/hosts
 | 
			
		||||
127.0.0.1	$out
 | 
			
		||||
::1		$out
 | 
			
		||||
END
 | 
			
		||||
	chmod 0644 /etc/hosts
 | 
			
		||||
	eend $?
 | 
			
		||||
	[ "$RC_SYS" = "LXC" ] && return 0
 | 
			
		||||
	ebegin "Setting hostname to $hostname"
 | 
			
		||||
	hostname "$hostname"
 | 
			
		||||
	eend $? "Failed to set the hostname"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ depend()
 | 
			
		||||
	else
 | 
			
		||||
		before *
 | 
			
		||||
	fi
 | 
			
		||||
	keyword -openvz -prefix -uml -vserver -xenu -lxc
 | 
			
		||||
	keyword -openvz -uml -vserver -xenu -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
setupopts()
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount termencoding
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	keyword -openvz -prefix -uml -vserver -xenu -lxc
 | 
			
		||||
	keyword -openvz -uml -vserver -xenu -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -4,11 +4,6 @@
 | 
			
		||||
 | 
			
		||||
description="Kill all processes so we can unmount disks cleanly."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "Terminating remaining processes"
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ depend()
 | 
			
		||||
	need fsck
 | 
			
		||||
	use lvm modules mtab
 | 
			
		||||
	after lvm modules
 | 
			
		||||
	keyword -jail -openvz -prefix -vserver -lxc
 | 
			
		||||
	keyword -jail -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
@@ -22,9 +22,6 @@ start()
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		no_netdev="-O no_netdev"
 | 
			
		||||
		if mountinfo -q /usr; then
 | 
			
		||||
			touch $RC_SVCDIR/usr_premounted
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	ebegin "Mounting local filesystems"
 | 
			
		||||
	mount -at "$types" $no_netdev
 | 
			
		||||
@@ -51,10 +48,7 @@ stop()
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*"
 | 
			
		||||
		if [ -e $rc_svcdir/usr_premounted ]; then
 | 
			
		||||
			no_umounts_r="$no_umounts_r|/usr"
 | 
			
		||||
		fi
 | 
			
		||||
		no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*|/usr"
 | 
			
		||||
	fi
 | 
			
		||||
	no_umounts_r="^($no_umounts_r)$"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ extra_commands="restore"
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
restore()
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules."
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	use isapnp
 | 
			
		||||
	keyword -openvz -prefix -vserver -lxc
 | 
			
		||||
	keyword -openvz -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -7,13 +7,11 @@ description="Re-mount filesytems read-only for a clean reboot."
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need killprocs savecache
 | 
			
		||||
	keyword -openvz -prefix -vserver -lxc
 | 
			
		||||
	keyword -openvz -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local ret=0
 | 
			
		||||
 | 
			
		||||
	# Flush all pending disk writes now
 | 
			
		||||
	sync; sync
 | 
			
		||||
 | 
			
		||||
@@ -41,9 +39,6 @@ start()
 | 
			
		||||
	do_unmount "umount -r" \
 | 
			
		||||
		--skip-point-regex "$m" \
 | 
			
		||||
		"${fs:+--skip-fstype-regex}" $fs --nonetdev
 | 
			
		||||
	ret=$?
 | 
			
		||||
 | 
			
		||||
	eoutdent
 | 
			
		||||
 | 
			
		||||
	eend $ret
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,6 @@ description="Update /etc/mtab to match what the kernel knows about"
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need root
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -19,14 +19,14 @@ depend()
 | 
			
		||||
	local IFVAR=$(shell_var "${IFACE}")
 | 
			
		||||
 | 
			
		||||
	need localmount
 | 
			
		||||
	if [ "$RC_UNAME" = Linux -a "$IFACE" != lo ]; then
 | 
			
		||||
	if [ "$RC_UNAME" = Linux ]; then
 | 
			
		||||
		need sysfs
 | 
			
		||||
	fi
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	keyword -jail -prefix -vserver
 | 
			
		||||
	keyword -jail -vserver
 | 
			
		||||
 | 
			
		||||
	case "${IFACE}" in
 | 
			
		||||
		lo|lo0) ;;
 | 
			
		||||
		lo|lo0) provide lo;;
 | 
			
		||||
		*)
 | 
			
		||||
			after net.lo net.lo0 dbus
 | 
			
		||||
			provide net
 | 
			
		||||
@@ -108,7 +108,7 @@ _wait_for_carrier()
 | 
			
		||||
	_has_carrier  && return 0
 | 
			
		||||
 | 
			
		||||
	eval timeout=\$carrier_timeout_${IFVAR}
 | 
			
		||||
	timeout=${timeout:-${carrier_timeout:-0}}
 | 
			
		||||
	timeout=${timeout:-${carrier_timeout:-5}}
 | 
			
		||||
 | 
			
		||||
	# Incase users don't want this nice feature ...
 | 
			
		||||
	[ ${timeout} -le 0 ] && return 0
 | 
			
		||||
 
 | 
			
		||||
@@ -2,26 +2,62 @@
 | 
			
		||||
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
description="Mounts network shares, other than NFS, 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.
 | 
			
		||||
# It is best to allow nfs-utils to handle all nfs shares.
 | 
			
		||||
description="Mounts network shares according to /etc/fstab."
 | 
			
		||||
 | 
			
		||||
need_portmap()
 | 
			
		||||
{
 | 
			
		||||
	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()
 | 
			
		||||
{
 | 
			
		||||
	# 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
 | 
			
		||||
	need net $pmap
 | 
			
		||||
	use afc-client amd autofs openvpn
 | 
			
		||||
	use dns
 | 
			
		||||
	keyword -jail -prefix -vserver
 | 
			
		||||
	use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd
 | 
			
		||||
	keyword -jail -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	local myneed= myuse= pmap="portmap" nfsmounts=
 | 
			
		||||
	[ -x @SYSCONFDIR@/init.d/rpcbind ] && pmap="rpcbind"
 | 
			
		||||
 | 
			
		||||
	local x= fs= rc=
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		case "$x" in
 | 
			
		||||
			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
 | 
			
		||||
		fs="$fs${fs:+,}$x"
 | 
			
		||||
@@ -46,14 +82,7 @@ stop()
 | 
			
		||||
	. "$RC_LIBEXECDIR"/sh/rc-mount.sh
 | 
			
		||||
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		case "$x" in
 | 
			
		||||
			nfs|nfs4)
 | 
			
		||||
				continue
 | 
			
		||||
				;;
 | 
			
		||||
			*)
 | 
			
		||||
				fs="$fs${fs:+,}$x"
 | 
			
		||||
				;;
 | 
			
		||||
		esac
 | 
			
		||||
		fs="$fs${fs:+,}$x"
 | 
			
		||||
	done
 | 
			
		||||
	if [ -n "$fs" ]; then
 | 
			
		||||
		umount -at $fs || eerror "Failed to simply unmount filesystems"
 | 
			
		||||
@@ -62,14 +91,7 @@ stop()
 | 
			
		||||
	eindent
 | 
			
		||||
	fs=
 | 
			
		||||
	for x in $net_fs_list $extra_net_fs_list; do
 | 
			
		||||
		case "$x" in
 | 
			
		||||
			nfs|nfs4)
 | 
			
		||||
				continue
 | 
			
		||||
				;;
 | 
			
		||||
			*)
 | 
			
		||||
				fs="$fs${fs:+|}$x"
 | 
			
		||||
				;;
 | 
			
		||||
		esac
 | 
			
		||||
		fs="$fs${fs:+|}$x"
 | 
			
		||||
	done
 | 
			
		||||
	[ -n "$fs" ] && fs="^($fs)$"
 | 
			
		||||
	do_unmount umount ${fs:+--fstype-regex} $fs --netdev
 | 
			
		||||
 
 | 
			
		||||
@@ -12,10 +12,8 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	if [ -n "$(interfaces)" ]; then
 | 
			
		||||
		provide net
 | 
			
		||||
	fi
 | 
			
		||||
	keyword -jail -prefix -vserver
 | 
			
		||||
	provide net
 | 
			
		||||
	keyword -jail -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uniqify()
 | 
			
		||||
@@ -221,6 +219,12 @@ start()
 | 
			
		||||
		eend $?
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	ewarn
 | 
			
		||||
	ewarn "The $RC_SVCNAME script is deprecated and will be"
 | 
			
		||||
	ewarn "removed in the future."
 | 
			
		||||
	ewarn "Please use the net.* scripts to manage your network interfaces."
 | 
			
		||||
	ewarn
 | 
			
		||||
 | 
			
		||||
	einfo "Starting network"
 | 
			
		||||
	routeflush
 | 
			
		||||
	if [ "$RC_UNAME" = "Linux" ]; then
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,6 @@ required_files="/etc/newsyslog.conf"
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -openvz -prefix -vserver -lxc
 | 
			
		||||
	keyword -openvz -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_setleds()
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ extra_started_commands="reload"
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ depend()
 | 
			
		||||
	need localmount
 | 
			
		||||
	use logger
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start_pre()
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	use modules devfs
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -openvz -prefix -vserver -lxc
 | 
			
		||||
	keyword -openvz -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,6 @@ depend()
 | 
			
		||||
	need localmount net
 | 
			
		||||
	after *
 | 
			
		||||
	before local
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ description="Mount the root fs read/write"
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need fsck
 | 
			
		||||
	keyword -jail -openvz -prefix -vserver -lxc
 | 
			
		||||
	keyword -jail -openvz -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -13,14 +13,6 @@ start()
 | 
			
		||||
			return 1
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	if ! checkpath -W "$RC_LIBEXECDIR"; then
 | 
			
		||||
		ewarn "WARNING: ${RC_LIBEXECDIR} is not writable!"
 | 
			
		||||
		if ! yesno "${RC_GOINGDOWN}"; then
 | 
			
		||||
			ewarn "Unable to save deptree cache"
 | 
			
		||||
			return 1
 | 
			
		||||
		fi
 | 
			
		||||
		return 0
 | 
			
		||||
	fi
 | 
			
		||||
	ebegin "Saving dependency cache"
 | 
			
		||||
	local rc=
 | 
			
		||||
	if [ ! -d "$RC_LIBEXECDIR"/cache ]; then
 | 
			
		||||
 
 | 
			
		||||
@@ -6,9 +6,8 @@ description="Saves a kernel dump."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need dumpon localmount
 | 
			
		||||
	before encswap
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	provide net
 | 
			
		||||
	use network
 | 
			
		||||
	keyword -jail -prefix -vserver
 | 
			
		||||
	keyword -jail -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pre_flight_checks()
 | 
			
		||||
@@ -93,6 +93,11 @@ do_routes()
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ewarn
 | 
			
		||||
	ewarn "The $RC_SVCNAME script is deprecated and will be"
 | 
			
		||||
	ewarn "removed in the future."
 | 
			
		||||
	ewarn "Please use the net.* scripts to manage your network interfaces."
 | 
			
		||||
	ewarn
 | 
			
		||||
	do_routes "Adding" "add"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	before fsck
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	before localmount
 | 
			
		||||
	keyword -jail -openvz -prefix -vserver -lxc
 | 
			
		||||
	keyword -jail -openvz -vserver -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -31,16 +31,14 @@ stop()
 | 
			
		||||
 | 
			
		||||
	case "$RC_UNAME" in
 | 
			
		||||
		Linux)
 | 
			
		||||
			if [ -e /proc/swaps ]; then
 | 
			
		||||
				while read filename type rest; do
 | 
			
		||||
					case "$type" in
 | 
			
		||||
						file) swapoff $filename >/dev/null;;
 | 
			
		||||
					esac
 | 
			
		||||
					case "$filename" in
 | 
			
		||||
						/dev/loop*) swapoff $filename >/dev/null;;
 | 
			
		||||
					esac
 | 
			
		||||
				done < /proc/swaps
 | 
			
		||||
			fi
 | 
			
		||||
			while read filename type rest; do
 | 
			
		||||
				case "$type" in
 | 
			
		||||
					file) swapoff $filename >/dev/null;;
 | 
			
		||||
				esac
 | 
			
		||||
				case "$filename" in
 | 
			
		||||
					/dev/loop*) swapoff $filename >/dev/null;;
 | 
			
		||||
				esac
 | 
			
		||||
			done < /proc/swaps
 | 
			
		||||
			;;
 | 
			
		||||
	esac
 | 
			
		||||
	eend 0
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ depend()
 | 
			
		||||
{
 | 
			
		||||
	before *
 | 
			
		||||
	provide clock
 | 
			
		||||
	keyword -openvz -prefix -uml -vserver -xenu -lxc
 | 
			
		||||
	keyword -openvz -uml -vserver -xenu -lxc
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# swclock is an OpenRC built in
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -jail -prefix
 | 
			
		||||
	keyword -jail
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start() {
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,6 @@
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	before bootmisc logger
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	before bootmisc logger
 | 
			
		||||
	keyword -lxc -prefix -vserver
 | 
			
		||||
	keyword -lxc -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
@@ -15,6 +15,14 @@ start()
 | 
			
		||||
	ebegin "Configuring kernel parameters"
 | 
			
		||||
	eindent
 | 
			
		||||
 | 
			
		||||
	# default sysctl System V max shared memory to 1/4 of RAM:
 | 
			
		||||
	mem_bytes=`awk '/MemTotal:/ { printf "%0.f",$2 * 1024}' /proc/meminfo`
 | 
			
		||||
	mem_max=`expr $mem_bytes / 4` 
 | 
			
		||||
	page_size=`getconf PAGE_SIZE`
 | 
			
		||||
	shmall=`expr $mem_bytes / $page_size`
 | 
			
		||||
	sysctl kernel.shmmax=$mem_max > /dev/null
 | 
			
		||||
	sysctl kernel.shmall=$shmall > /dev/null
 | 
			
		||||
 | 
			
		||||
	for conf in @SYSCONFDIR@/sysctl.conf @SYSCONFDIR@/sysctl.d/*.conf; do
 | 
			
		||||
		if [ -r "$conf" ]; then
 | 
			
		||||
			vebegin "applying $conf"
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ description="Mount the sys filesystem."
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	keyword -lxc -prefix -vserver
 | 
			
		||||
	keyword -vserver
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mount_sys()
 | 
			
		||||
@@ -74,6 +74,7 @@ mount_misc()
 | 
			
		||||
 | 
			
		||||
mount_cgroups()
 | 
			
		||||
{
 | 
			
		||||
	yesno ${rc_cgroups:-YES} && [ -e /proc/cgroups ] && \
 | 
			
		||||
		mountinfo -q /sys/fs/cgroup || return 0
 | 
			
		||||
 | 
			
		||||
	local agent="@LIBEXECDIR@/sh/cgroup-release-agent.sh"
 | 
			
		||||
@@ -82,8 +83,6 @@ mount_cgroups()
 | 
			
		||||
		-o none,nodev,noexec,nosuid,name=openrc,release_agent="$agent" \
 | 
			
		||||
		openrc /sys/fs/cgroup/openrc
 | 
			
		||||
	echo 1 > /sys/fs/cgroup/openrc/notify_on_release
 | 
			
		||||
 | 
			
		||||
	yesno ${rc_controller_cgroups:-YES} && [ -e /proc/cgroups ] || return 0
 | 
			
		||||
	while read name hier groups enabled rest; do
 | 
			
		||||
		case "${enabled}" in
 | 
			
		||||
			1)	mkdir /sys/fs/cgroup/${name}
 | 
			
		||||
 
 | 
			
		||||
@@ -16,5 +16,4 @@ depend()
 | 
			
		||||
	use net newsyslog
 | 
			
		||||
	need localmount
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	keyword -lxc -openvz -prefix -uml -vserver -xenu
 | 
			
		||||
	keyword -lxc -openvz -uml -vserver -xenu
 | 
			
		||||
	use root
 | 
			
		||||
	after bootmisc
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
#!@PREFIX@/sbin/runscript
 | 
			
		||||
# Copyright 1999-2012 Gentoo Foundation
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
description="set up tmpfiles.d entries"
 | 
			
		||||
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
{
 | 
			
		||||
	ebegin "setting up tmpfiles.d entries"
 | 
			
		||||
	@LIBEXECDIR@/sh/tmpfiles.sh --create --remove ${tmpfiles_opts}
 | 
			
		||||
	eend $?
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
@@ -5,7 +5,6 @@
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	after fsck
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ description="Initializes the random number generator."
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -jail -lxc -openvz -prefix
 | 
			
		||||
	keyword -jail -openvz
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
save_seed()
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,6 @@
 | 
			
		||||
depend()
 | 
			
		||||
{
 | 
			
		||||
	need localmount
 | 
			
		||||
	keyword -prefix
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start()
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ Show all runlevels and their services.
 | 
			
		||||
List all services that have crashed.
 | 
			
		||||
.It Fl l , -list
 | 
			
		||||
List all defined runlevels.
 | 
			
		||||
.It Fl r , -runlevel
 | 
			
		||||
.It fl r , -runlevel
 | 
			
		||||
Print the current runlevel name.
 | 
			
		||||
.It Fl s , -servicelist
 | 
			
		||||
Show all services.
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@
 | 
			
		||||
.Op Ar command ...
 | 
			
		||||
.Sh DESCRIPTION
 | 
			
		||||
.Nm
 | 
			
		||||
is basically an interpreter for shell scripts which provides an easy interface
 | 
			
		||||
is basically an interpreter for shell scripts which provide an easy interface
 | 
			
		||||
to the often complex system commands and daemons.
 | 
			
		||||
When a service runs a command it first loads its multiplexed configuration
 | 
			
		||||
file, then its master configuration file, then
 | 
			
		||||
@@ -156,7 +156,7 @@ We provide this virtual service. For example, named provides dns.
 | 
			
		||||
.It Ic config
 | 
			
		||||
We should recalculate our dependencies if the listed files have changed.
 | 
			
		||||
.It Ic keyword
 | 
			
		||||
Tags a service with a keyword. These are the keywords we currently understand:
 | 
			
		||||
Tags a service with a keyword. Here's the keywords we currently understand:-
 | 
			
		||||
.Bl -tag -width indent
 | 
			
		||||
.It Dv -shutdown
 | 
			
		||||
Don't stop this service when shutting the system down.
 | 
			
		||||
@@ -180,8 +180,6 @@ in
 | 
			
		||||
Same as -jail, but for Linux Resource Containers (LXC).
 | 
			
		||||
.It Dv -openvz
 | 
			
		||||
Same as -jail, but for OpenVZ systems.
 | 
			
		||||
.It Dv -prefix
 | 
			
		||||
Same as -jail, but for Prefix systems.
 | 
			
		||||
.It Dv -uml
 | 
			
		||||
Same as -jail, but for UML systems.
 | 
			
		||||
.It Dv -vserver
 | 
			
		||||
@@ -352,14 +350,8 @@ Default runlevel chosen. Default is default.
 | 
			
		||||
.It Va RC_SYS
 | 
			
		||||
A special variable to describe the system more.
 | 
			
		||||
Possible values are OPENVZ, XENU, XEN0, UML and VSERVER.
 | 
			
		||||
.It Va RC_PREFIX
 | 
			
		||||
In a Gentoo Prefix installation, this variable contains the prefix
 | 
			
		||||
offset. Otherwise it is undefined.
 | 
			
		||||
.It Va RC_UNAME
 | 
			
		||||
The result of `uname -s`.
 | 
			
		||||
.It Va RC_CMD
 | 
			
		||||
This contains the name of the command the service script is executing, such
 | 
			
		||||
as start, stop, restart etc.
 | 
			
		||||
.El
 | 
			
		||||
.Sh FILES
 | 
			
		||||
.Pp
 | 
			
		||||
@@ -396,9 +388,8 @@ rc_provide_tap1="!net"
 | 
			
		||||
# To put in in /etc/rc.conf you would do it like this
 | 
			
		||||
rc_net_tap1_provide="!net"
 | 
			
		||||
 | 
			
		||||
# It's also possible to negate keywords. This is mainly useful for prefix
 | 
			
		||||
# users testing OpenRC.
 | 
			
		||||
rc_keyword="!-prefix"
 | 
			
		||||
# It's also possible to negate keywords.
 | 
			
		||||
rc_keyword="-keyword"
 | 
			
		||||
.Ed
 | 
			
		||||
.Sh EXAMPLES
 | 
			
		||||
.Pp
 | 
			
		||||
@@ -447,22 +438,8 @@ depend()
 | 
			
		||||
    need ${_need}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# This function does any pre-start setup. If it fails, the service will
 | 
			
		||||
# not be started.
 | 
			
		||||
# If you need this function to behave differently for a restart command,
 | 
			
		||||
# you should check the value of RC_CMD for "restart".
 | 
			
		||||
# This also applies to start_post, stop_pre and stop_post.
 | 
			
		||||
start_pre()
 | 
			
		||||
{
 | 
			
		||||
	if [ "$RC_CMD" = restart ]; then
 | 
			
		||||
		# This block will only execute for a restart command. Use a
 | 
			
		||||
		# structure like this if you need special processing for a
 | 
			
		||||
		# restart which you do not need for a normal start.
 | 
			
		||||
		# The function can also fail from here, which will mean that a
 | 
			
		||||
		# restart can fail.
 | 
			
		||||
		# This logic can also be used in start_post, stop_pre and
 | 
			
		||||
		# stop_post.
 | 
			
		||||
	fi
 | 
			
		||||
    # Ensure that our dirs are correct
 | 
			
		||||
    checkpath --dir --owner foo:foo --mode 0664 \\
 | 
			
		||||
	/var/run/foo /var/cache/foo
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
# Copyright (c) 2012 William Hubbs <w.d.hubbs@gmail.com>
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
ifeq (${MKPREFIX},yes)
 | 
			
		||||
CPPFLAGS+=	-DPREFIX
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										1
									
								
								mk/os.mk
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								mk/os.mk
									
									
									
									
									
								
							@@ -7,6 +7,5 @@ _OS_SH=		uname -s
 | 
			
		||||
_OS:= 		$(shell ${_OS_SH})
 | 
			
		||||
OS?= 		${_OS}
 | 
			
		||||
include ${MK}/os-${OS}.mk
 | 
			
		||||
include ${MK}/os-prefix.mk
 | 
			
		||||
 | 
			
		||||
RC_LIB=		/$(LIBNAME)/rc
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								mk/sys.mk
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								mk/sys.mk
									
									
									
									
									
								
							@@ -11,14 +11,9 @@ SED?=			sed
 | 
			
		||||
SH=			/bin/sh
 | 
			
		||||
 | 
			
		||||
PREFIX?=
 | 
			
		||||
ifeq (${PREFIX},)
 | 
			
		||||
UPREFIX= /usr
 | 
			
		||||
else
 | 
			
		||||
UPREFIX= ${PREFIX}
 | 
			
		||||
ifeq (${MKPREFIX},yes)
 | 
			
		||||
UPREFIX= ${PREFIX}/usr
 | 
			
		||||
endif
 | 
			
		||||
endif
 | 
			
		||||
_UPREFIX_SH=		case "${PREFIX}" in "") echo /usr;; *) echo "${PREFIX}";; esac
 | 
			
		||||
_UPREFIX:=		$(shell ${_UPREFIX_SH})
 | 
			
		||||
UPREFIX=		${_UPREFIX}
 | 
			
		||||
LOCAL_PREFIX=		/usr/local
 | 
			
		||||
 | 
			
		||||
PICFLAG?=		-fPIC
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ SRCS-Linux=	iwconfig.sh.in
 | 
			
		||||
INC-Linux=	adsl.sh apipa.sh arping.sh bonding.sh br2684ctl.sh bridge.sh \
 | 
			
		||||
		ccwgroup.sh clip.sh ethtool.sh iproute2.sh ifplugd.sh ip6to4.sh \
 | 
			
		||||
		ipppd.sh iwconfig.sh netplugd.sh pppd.sh pump.sh tuntap.sh udhcpc.sh \
 | 
			
		||||
		vlan.sh macvlan.sh ip6rd.sh firewalld.sh
 | 
			
		||||
		vlan.sh macvlan.sh ip6rd.sh
 | 
			
		||||
 | 
			
		||||
SRCS-NetBSD=
 | 
			
		||||
INC-NetBSD=	ifwatchd.sh
 | 
			
		||||
 
 | 
			
		||||
@@ -4,12 +4,6 @@
 | 
			
		||||
bonding_depend()
 | 
			
		||||
{
 | 
			
		||||
	before interface macchanger
 | 
			
		||||
	program /sbin/ifconfig /bin/ifconfig
 | 
			
		||||
	# If you do not have sysfs, you MUST have this binary instead for ioctl
 | 
			
		||||
	# Also you will loose some functionality that cannot be done via sysfs:
 | 
			
		||||
	if [ ! -d /sys/class/net ]; then
 | 
			
		||||
		program /sbin/ifenslave
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_config_vars="$_config_vars slaves"
 | 
			
		||||
@@ -29,9 +23,6 @@ bonding_pre_start()
 | 
			
		||||
	eval primary="\$primary_${IFVAR}"
 | 
			
		||||
	unset primary_${IFVAR}
 | 
			
		||||
 | 
			
		||||
	eval subsume="\$subsume_${IFVAR}"
 | 
			
		||||
	unset subsume_${IFVAR}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	[ -z "${slaves}" ] && return 0
 | 
			
		||||
 | 
			
		||||
@@ -43,10 +34,6 @@ bonding_pre_start()
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ ! -d /sys/class/net ]; then
 | 
			
		||||
		ewarn "sysfs is not available! You will be unable to create new bonds, or change dynamic parameters!"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# We can create the interface name we like now, but this
 | 
			
		||||
	# requires sysfs
 | 
			
		||||
	if ! _exists && [ -d /sys/class/net ]; then
 | 
			
		||||
@@ -64,18 +51,7 @@ bonding_pre_start()
 | 
			
		||||
 | 
			
		||||
	# Configure the bond mode, then we can reloop to ensure we configure
 | 
			
		||||
	# All other options
 | 
			
		||||
	[ -d /sys/class/net ] && for x in /sys/class/net/"${IFACE}"/bonding/mode; do
 | 
			
		||||
		[ -f "${x}" ] || continue
 | 
			
		||||
		n=${x##*/}
 | 
			
		||||
		eval s=\$${n}_${IFVAR}
 | 
			
		||||
		if [ -n "${s}" ]; then
 | 
			
		||||
			einfo "Setting ${n}: ${s}"
 | 
			
		||||
			echo "${s}" >"${x}" || \
 | 
			
		||||
			eerror "Failed to configure $n (${n}_${IFVAR})"
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	# Configure link monitoring
 | 
			
		||||
	for x in /sys/class/net/"${IFACE}"/bonding/miimon; do
 | 
			
		||||
	for x in /sys/class/net/"${IFACE}"/bonding/mode; do
 | 
			
		||||
		[ -f "${x}" ] || continue
 | 
			
		||||
		n=${x##*/}
 | 
			
		||||
		eval s=\$${n}_${IFVAR}
 | 
			
		||||
@@ -86,11 +62,11 @@ bonding_pre_start()
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
	# Nice and dynamic for remaining options:)
 | 
			
		||||
	[ -d /sys/class/net ] && for x in /sys/class/net/"${IFACE}"/bonding/*; do
 | 
			
		||||
	for x in /sys/class/net/"${IFACE}"/bonding/*; do
 | 
			
		||||
		[ -f "${x}" ] || continue
 | 
			
		||||
		n=${x##*/}
 | 
			
		||||
		eval s=\$${n}_${IFVAR}
 | 
			
		||||
		[ "${n}" != "mode" -o "${n}" != "miimon" ] || continue
 | 
			
		||||
		[ "${n}" != "mode" ] || continue
 | 
			
		||||
		if [ -n "${s}" ]; then
 | 
			
		||||
			einfo "Setting ${n}: ${s}"
 | 
			
		||||
			echo "${s}" >"${x}" || \
 | 
			
		||||
@@ -108,44 +84,15 @@ bonding_pre_start()
 | 
			
		||||
		_exists true || return 1
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
	# Unless we are subsuming an existing interface (NFS root), we down
 | 
			
		||||
	# slave interfaces to work around bugs supposedly in some chipsets
 | 
			
		||||
	# that cause failure to enslave from other states.
 | 
			
		||||
	if [ -z "${subsume}" ]; then
 | 
			
		||||
		for IFACE in ${slaves}; do
 | 
			
		||||
			_delete_addresses
 | 
			
		||||
			_down
 | 
			
		||||
		done
 | 
			
		||||
	fi
 | 
			
		||||
	# Must force the slaves to a particular state before adding them
 | 
			
		||||
	for IFACE in ${slaves}; do
 | 
			
		||||
		_delete_addresses
 | 
			
		||||
		_down
 | 
			
		||||
	done
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	# Now force the master to up
 | 
			
		||||
	#  - First test for interface subsume request (required for NFS root)
 | 
			
		||||
	if [ -n "${subsume}" ]; then
 | 
			
		||||
		einfo "Subsuming ${subsume} interface characteristics."
 | 
			
		||||
		eindent
 | 
			
		||||
		local oiface=${IFACE}
 | 
			
		||||
		IFACE=${subsume}
 | 
			
		||||
		local addr="$(_get_inet_address)"
 | 
			
		||||
		einfo "address: ${addr}"
 | 
			
		||||
		IFACE=${oiface}
 | 
			
		||||
		unset oiface
 | 
			
		||||
		eoutdent
 | 
			
		||||
		# subsume (presumably kernel auto-)configured IP
 | 
			
		||||
		ifconfig ${IFACE} ${addr} up
 | 
			
		||||
	else
 | 
			
		||||
		# warn if root on nfs and no subsume interface supplied
 | 
			
		||||
		local root_fs_type=$(mountinfo -s /)
 | 
			
		||||
		if [ "${root_fs_type}" == "nfs" ]; then
 | 
			
		||||
			warn_nfs=1
 | 
			
		||||
			ewarn "NFS root detected!!!"
 | 
			
		||||
			ewarn " If your system crashes here, /etc/conf.d/net needs"
 | 
			
		||||
			ewarn " subsume_${IFACE}=\"<iface>\" ... where <iface> is the"
 | 
			
		||||
			ewarn " existing, (usually kernel auto-)configured interface."
 | 
			
		||||
		fi
 | 
			
		||||
		# up the interface
 | 
			
		||||
		_up
 | 
			
		||||
    fi
 | 
			
		||||
	# now force the master to up
 | 
			
		||||
	_up
 | 
			
		||||
 | 
			
		||||
	# finally add in slaves
 | 
			
		||||
	# things needed in the process, and if they are done by ifenslave, openrc, and/or the kernel.
 | 
			
		||||
@@ -174,7 +121,7 @@ bonding_pre_start()
 | 
			
		||||
			fi
 | 
			
		||||
		done
 | 
			
		||||
	else
 | 
			
		||||
		ifenslave "${IFACE}" ${slaves} >/dev/null
 | 
			
		||||
		/sbin/ifenslave "${IFACE}" ${slaves} >/dev/null
 | 
			
		||||
	fi
 | 
			
		||||
	eend $?
 | 
			
		||||
 | 
			
		||||
@@ -185,11 +132,6 @@ bonding_stop()
 | 
			
		||||
{
 | 
			
		||||
	_is_bond || return 0
 | 
			
		||||
 | 
			
		||||
	# Wipe subsumed interface
 | 
			
		||||
	if [ -n "${subsume}" ]; then
 | 
			
		||||
		ifconfig ${subsume} 0.0.0.0
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	local slaves= s=
 | 
			
		||||
	slaves=$( \
 | 
			
		||||
		sed -n -e 's/^Slave Interface: //p' "/proc/net/bonding/${IFACE}" \
 | 
			
		||||
@@ -207,7 +149,7 @@ bonding_stop()
 | 
			
		||||
			echo -"${s}" > /sys/class/net/"${IFACE}"/bonding/slaves
 | 
			
		||||
		done
 | 
			
		||||
	else
 | 
			
		||||
		ifenslave -d "${IFACE}" ${slaves}
 | 
			
		||||
		/sbin/ifenslave -d "${IFACE}" ${slaves}
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# reset all slaves
 | 
			
		||||
 
 | 
			
		||||
@@ -119,8 +119,10 @@ bridge_pre_start()
 | 
			
		||||
				return 1
 | 
			
		||||
			fi
 | 
			
		||||
			# The interface is known to exist now
 | 
			
		||||
			_set_flag promisc
 | 
			
		||||
			_up
 | 
			
		||||
			if ! brctl addif "${BR_IFACE}" "${x}"; then
 | 
			
		||||
				_set_flag -promisc
 | 
			
		||||
				eend 1
 | 
			
		||||
				return 1
 | 
			
		||||
			fi
 | 
			
		||||
@@ -142,7 +144,6 @@ bridge_pre_start()
 | 
			
		||||
	) || return 1
 | 
			
		||||
 | 
			
		||||
	# Bring up the bridge
 | 
			
		||||
	_set_flag promisc
 | 
			
		||||
	_up
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,38 +0,0 @@
 | 
			
		||||
# Copyright (c) 2012 Doug Goldstein <cardoe@cardoe.com>
 | 
			
		||||
# Released under the 2-clause BSD license.
 | 
			
		||||
 | 
			
		||||
firewalld_depend()
 | 
			
		||||
{
 | 
			
		||||
	after interface
 | 
			
		||||
	before dhcp
 | 
			
		||||
	program firewall-cmd
 | 
			
		||||
	[ "$IFACE" != "lo" ] && need firewalld
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_config_vars="$_config_vars firewalld_zone"
 | 
			
		||||
 | 
			
		||||
firewalld_post_start()
 | 
			
		||||
{
 | 
			
		||||
	local firewalld_zone=
 | 
			
		||||
	eval firewalld_zone=\$firewalld_zone_${IFVAR}
 | 
			
		||||
 | 
			
		||||
	_exists || return 0
 | 
			
		||||
 | 
			
		||||
	if [ "${IFACE}" != "lo" ]; then
 | 
			
		||||
		firewall-cmd --zone="${firewalld_zone}" \
 | 
			
		||||
			--change-interface="${IFACE}" > /dev/null 2>&1
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
firewalld_pre_stop()
 | 
			
		||||
{
 | 
			
		||||
	_exists || return 0
 | 
			
		||||
 | 
			
		||||
	if [ "${IFACE}" != "lo" ]; then
 | 
			
		||||
		firewall-cmd --remove-interface="${IFACE}" > /dev/null 2>&1
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
@@ -10,12 +10,12 @@ iproute2_depend()
 | 
			
		||||
 | 
			
		||||
_up()
 | 
			
		||||
{
 | 
			
		||||
	ip link set dev "${IFACE}" up
 | 
			
		||||
	ip link set "${IFACE}" up
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_down()
 | 
			
		||||
{
 | 
			
		||||
	ip link set dev "${IFACE}" down
 | 
			
		||||
	ip link set "${IFACE}" down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_exists()
 | 
			
		||||
@@ -57,7 +57,7 @@ _set_flag()
 | 
			
		||||
		flag=${flag#-}
 | 
			
		||||
		opt="off"
 | 
			
		||||
	fi
 | 
			
		||||
	ip link set dev "${IFACE}" "${flag}" "${opt}"
 | 
			
		||||
	ip link set "${IFACE}" "${flag}" "${opt}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_get_mac_address()
 | 
			
		||||
@@ -79,7 +79,7 @@ _get_mac_address()
 | 
			
		||||
 | 
			
		||||
_set_mac_address()
 | 
			
		||||
{
 | 
			
		||||
	ip link set dev "${IFACE}" address "$1"
 | 
			
		||||
	ip link set "${IFACE}" address "$1"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_get_inet_addresses()
 | 
			
		||||
@@ -212,7 +212,7 @@ _delete_addresses()
 | 
			
		||||
 | 
			
		||||
_has_carrier()
 | 
			
		||||
{
 | 
			
		||||
	LC_ALL=C ip link show dev "${IFACE}" | grep -q "LOWER_UP"
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_tunnel()
 | 
			
		||||
@@ -274,12 +274,12 @@ iproute2_pre_start()
 | 
			
		||||
	# MTU support
 | 
			
		||||
	local mtu=
 | 
			
		||||
	eval mtu=\$mtu_${IFVAR}
 | 
			
		||||
	[ -n "${mtu}" ] && ip link set dev "${IFACE}" mtu "${mtu}"
 | 
			
		||||
	[ -n "${mtu}" ] && ip link set "${IFACE}" mtu "${mtu}"
 | 
			
		||||
 | 
			
		||||
	# TX Queue Length support
 | 
			
		||||
	local len=
 | 
			
		||||
	eval len=\$txqueuelen_${IFVAR}
 | 
			
		||||
	[ -n "${len}" ] && ip link set dev "${IFACE}" txqueuelen "${len}"
 | 
			
		||||
	[ -n "${len}" ] && ip link set "${IFACE}" txqueuelen "${len}"
 | 
			
		||||
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
@@ -287,7 +287,7 @@ iproute2_pre_start()
 | 
			
		||||
_iproute2_ipv6_tentative()
 | 
			
		||||
{
 | 
			
		||||
	# Only check tentative when we have a carrier.
 | 
			
		||||
	_has_carrier || return 1
 | 
			
		||||
	LC_ALL=C ip link show dev "${IFACE}" | grep -q "NO-CARRIER" && return 1
 | 
			
		||||
	LC_ALL=C ip addr show dev "${IFACE}" | \
 | 
			
		||||
		grep -q "^[[:space:]]*inet6 .* tentative"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,7 @@ udhcpc_start()
 | 
			
		||||
	esac
 | 
			
		||||
 | 
			
		||||
	case " ${args} " in
 | 
			
		||||
		*" --hostname="*|*" -h "*|*" -H "*);;
 | 
			
		||||
		*" --hosname="*|*" -h "*|*" -H "*);;
 | 
			
		||||
		*)
 | 
			
		||||
			if ${sendhost}; then
 | 
			
		||||
				local hname="$(hostname)"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								net/vlan.sh
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								net/vlan.sh
									
									
									
									
									
								
							@@ -66,41 +66,26 @@ vlan_post_start()
 | 
			
		||||
		einfo "Adding VLAN ${vlan} to ${IFACE}"
 | 
			
		||||
		# We need to gather all interface configuration options
 | 
			
		||||
		# 1) naming. Default to the standard "${IFACE}.${vlan}" but it can be anything
 | 
			
		||||
		eval vname=\$${IFACE}_vlan${vlan}_name
 | 
			
		||||
		[ -z "${vname}" ] && eval vname=\$vlan${vlan}_name
 | 
			
		||||
		eval vname=\$vlan${vlan}_name
 | 
			
		||||
		[ -z "${vname}" ] && vname="${IFACE}.${vlan}"
 | 
			
		||||
		# 2) flags
 | 
			
		||||
		eval vflags=\$${IFACE}_vlan${vlan}_flags
 | 
			
		||||
		[ -z "${vname}" ] && eval vflags=\$vlan${vlan}_flags
 | 
			
		||||
		eval vflags=\$vlan${vlan}_flags
 | 
			
		||||
		# 3) ingress/egress map
 | 
			
		||||
		eval vingress=\$${IFACE}_vlan${vlan}_ingress
 | 
			
		||||
		[ -z "${vingress}" ] && eval vingress=\$vlan${vlan}_ingress
 | 
			
		||||
		eval vingress=\$vlan${vlan}_ingress
 | 
			
		||||
		[ -z "${vingress}" ] || vingress="ingress-qos-map ${vingress}"
 | 
			
		||||
		eval vegress=\$${IFACE}_vlan${vlan}_egress
 | 
			
		||||
		[ -z "${vegress}" ] && eval vegress=\$vlan${vlan}_egress
 | 
			
		||||
		eval vegress=\$vlan${vlan}_egress
 | 
			
		||||
		[ -z "${vegress}" ] || vegress="egress-qos-map ${vegress}"
 | 
			
		||||
 | 
			
		||||
		# txqueue
 | 
			
		||||
		local txqueuelen=
 | 
			
		||||
		eval txqueuelen=\$txqueuelen_${IFACE}_vlan${vlan}
 | 
			
		||||
		[ -z "${txqueuelen}" ] && eval txqueuelen=\$txqueuelen_vlan${vlan}
 | 
			
		||||
		# mac
 | 
			
		||||
		eval txqueuelen=\$txqueuelen_vlan${vlan}
 | 
			
		||||
		local mac=
 | 
			
		||||
		eval mac=\$mac_${IFACE}_vlan${vlan}
 | 
			
		||||
		[ -z "${mac}" ] && eval mac=\$mac_vlan${vlan}
 | 
			
		||||
		# broadcast
 | 
			
		||||
		eval mac=\$mac_vlan${vlan}
 | 
			
		||||
		local broadcast=
 | 
			
		||||
		eval broadcast=\$broadcast_${IFACE}_vlan${vlan}
 | 
			
		||||
		[ -z "${broadcast}" ] && eval broadcast=\$broadcast_vlan${vlan}
 | 
			
		||||
		# mtu
 | 
			
		||||
		eval broadcast=\$broadcast_vlan${vlan}
 | 
			
		||||
		local mtu=
 | 
			
		||||
		eval mtu=\$mtu_${IFACE}_vlan${vlan}
 | 
			
		||||
		[ -z "${mtu}" ] && eval mtu=\$mtu_vlan${vlan}
 | 
			
		||||
 | 
			
		||||
		# combine it all
 | 
			
		||||
		eval mtu=\$mtu_vlan${vlan}
 | 
			
		||||
		local opts="${txqueuelen:+txqueuelen} ${txqueuelen} ${mac:+address} ${mac} ${broadcast:+broadcast} ${broadcast} ${mtu:+mtu} ${mtu}"
 | 
			
		||||
 | 
			
		||||
		veinfo "ip link add link \"${IFACE}\" name \"${vname}\" ${opts} type vlan id \"${vlan}\" ${vflags} ${vingress} ${vegress}"
 | 
			
		||||
		e="$(ip link add link "${IFACE}" name "${vname}" ${opts} type vlan id "${vlan}" ${vflags} ${vingress} ${vegress} 2>&1 1>/dev/null)"
 | 
			
		||||
		if [ -n "${e}" ]; then
 | 
			
		||||
			eend 1 "${e}"
 | 
			
		||||
 
 | 
			
		||||
@@ -10,12 +10,6 @@ BOOTDIR=	${LEVELDIR}/boot
 | 
			
		||||
DEFAULTDIR=	${LEVELDIR}/default
 | 
			
		||||
SHUTDOWNDIR=	${LEVELDIR}/shutdown
 | 
			
		||||
 | 
			
		||||
ifeq (${MKNET},)
 | 
			
		||||
BOOT+= network staticroute
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
INITFILES=	../init.d
 | 
			
		||||
 | 
			
		||||
MK=		../mk
 | 
			
		||||
include ${MK}/sys.mk
 | 
			
		||||
include ${MK}/os.mk
 | 
			
		||||
@@ -25,25 +19,19 @@ BOOT-${OS}=
 | 
			
		||||
SHUTDOWN-${OS}=
 | 
			
		||||
SYSINIT-${OS}=
 | 
			
		||||
 | 
			
		||||
ifeq (${MKNET},oldnet)
 | 
			
		||||
BOOT-FreeBSD+= net.lo0
 | 
			
		||||
BOOT-Linux+= net.lo
 | 
			
		||||
BOOT-NetBSD+= net.lo0
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
BOOT-BSD=	hostid newsyslog savecore syslogd swap-blk
 | 
			
		||||
 | 
			
		||||
# Generic BSD stuff
 | 
			
		||||
BOOT-FreeBSD+=	hostid newsyslog savecore syslogd
 | 
			
		||||
BOOT-FreeBSD=	hostid net.lo0 newsyslog savecore syslogd
 | 
			
		||||
# FreeBSD specific stuff
 | 
			
		||||
BOOT-FreeBSD+=	adjkerntz dumpon syscons
 | 
			
		||||
 | 
			
		||||
BOOT-Linux+=	hwclock keymaps modules mtab procfs termencoding tmpfiles.setup
 | 
			
		||||
BOOT-Linux=	hwclock keymaps modules mtab net.lo procfs termencoding
 | 
			
		||||
SHUTDOWN-Linux=	killprocs mount-ro
 | 
			
		||||
SYSINIT-Linux=	devfs dmesg sysfs
 | 
			
		||||
SYSINIT-Linux=	devfs dmesg
 | 
			
		||||
 | 
			
		||||
# Generic BSD stuff
 | 
			
		||||
BOOT-NetBSD+=	hostid newsyslog savecore syslogd
 | 
			
		||||
BOOT-NetBSD=	hostid net.lo0 newsyslog savecore syslogd
 | 
			
		||||
# NetBSD specific stuff
 | 
			
		||||
BOOT-NetBSD+=	devdb swap-blk ttys wscons
 | 
			
		||||
 | 
			
		||||
@@ -53,35 +41,25 @@ install:
 | 
			
		||||
	if ! test -d "${SYSINITDIR}"; then \
 | 
			
		||||
		${INSTALL} -d ${SYSINITDIR} || exit $$?; \
 | 
			
		||||
		for x in ${SYSINIT}; do \
 | 
			
		||||
			if test -n "${PREFIX}"; then \
 | 
			
		||||
				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
 | 
			
		||||
			fi; \
 | 
			
		||||
			ln -snf ${INITDIR}/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; done \
 | 
			
		||||
			ln -snf ${PREFIX}/etc/init.d/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; \
 | 
			
		||||
		done \
 | 
			
		||||
	fi
 | 
			
		||||
	if ! test -d "${BOOTDIR}"; then \
 | 
			
		||||
		${INSTALL} -d ${BOOTDIR} || exit $$?; \
 | 
			
		||||
		for x in ${BOOT}; do \
 | 
			
		||||
			if test -n "${PREFIX}"; then \
 | 
			
		||||
				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
 | 
			
		||||
			fi; \
 | 
			
		||||
			ln -snf ${INITDIR}/"$$x" ${BOOTDIR}/"$$x" || exit $$?; \
 | 
			
		||||
			ln -snf ${PREFIX}/etc/init.d/"$$x" ${BOOTDIR}/"$$x" || exit $$?; \
 | 
			
		||||
		done \
 | 
			
		||||
	fi
 | 
			
		||||
	if ! test -d "${DEFAULTDIR}"; then \
 | 
			
		||||
		${INSTALL} -d ${DEFAULTDIR} || exit $$?; \
 | 
			
		||||
		for x in ${DEFAULT}; do \
 | 
			
		||||
			if test -n "${PREFIX}"; then \
 | 
			
		||||
				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
 | 
			
		||||
			fi; \
 | 
			
		||||
			ln -snf ${INITDIR}/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; done \
 | 
			
		||||
			ln -snf ${PREFIX}/etc/init.d/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; \
 | 
			
		||||
		done \
 | 
			
		||||
	fi
 | 
			
		||||
	if ! test -d "${SHUTDOWNDIR}"; then \
 | 
			
		||||
		${INSTALL} -d ${SHUTDOWNDIR} || exit $$?; \
 | 
			
		||||
		for x in ${SHUTDOWN}; do \
 | 
			
		||||
			if test -n "${PREFIX}"; then \
 | 
			
		||||
				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
 | 
			
		||||
			fi; \
 | 
			
		||||
			ln -snf ${INITDIR}/"$$x" ${SHUTDOWNDIR}/"$$x" || exit $$?; done \
 | 
			
		||||
			ln -snf ${PREFIX}/etc/init.d/"$$x" ${SHUTDOWNDIR}/"$$x" || exit $$?; done \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
check test::
 | 
			
		||||
 
 | 
			
		||||
@@ -105,7 +105,7 @@ else
 | 
			
		||||
	# the last ecmd
 | 
			
		||||
	for _e in ebegin eend error errorn einfo einfon ewarn ewarnn ewend \
 | 
			
		||||
		vebegin veend veinfo vewarn vewend; do
 | 
			
		||||
		eval "$_e() { local _r; command $_e \"\$@\"; _r=\$?; \
 | 
			
		||||
		eval "$_e() { local _r; @LIBEXECDIR@/bin/$_e \"\$@\"; _r=\$?; \
 | 
			
		||||
		export EINFO_LASTCMD=$_e; return \$_r; }"
 | 
			
		||||
	done
 | 
			
		||||
	unset _e
 | 
			
		||||
 
 | 
			
		||||
@@ -37,27 +37,14 @@ fi
 | 
			
		||||
 | 
			
		||||
# /run is a new directory for storing volatile runtime data.
 | 
			
		||||
# Read more about /run at https://lwn.net/Articles/436012
 | 
			
		||||
sys="$(rc --sys)"
 | 
			
		||||
 | 
			
		||||
if [ ! -d /run ]; then
 | 
			
		||||
	if [ "$sys" = VSERVER ]; then
 | 
			
		||||
		if [ -e /run ]; then
 | 
			
		||||
		rm -rf /run
 | 
			
		||||
		fi
 | 
			
		||||
		mkdir /run
 | 
			
		||||
	else
 | 
			
		||||
		eerror "The /run directory does not exist. Unable to continue."
 | 
			
		||||
		return 1
 | 
			
		||||
	fi
 | 
			
		||||
	eerror "The /run directory does not exist. Unable to continue."
 | 
			
		||||
	return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -L /run/openrc ]; then
 | 
			
		||||
	rm /run/openrc
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$sys" = VSERVER ]; then
 | 
			
		||||
	rm -rf /run/*
 | 
			
		||||
elif ! mountinfo -q /run; then
 | 
			
		||||
if mountinfo -q /run; then
 | 
			
		||||
	einfo "/run is already mounted, skipping"
 | 
			
		||||
else
 | 
			
		||||
	ebegin "Mounting /run"
 | 
			
		||||
	rc=0
 | 
			
		||||
	if ! fstabinfo --mount /run; then
 | 
			
		||||
@@ -88,9 +75,5 @@ if [ -e "$RC_LIBEXECDIR"/cache/deptree ]; then
 | 
			
		||||
	cp -p "$RC_LIBEXECDIR"/cache/* "$RC_SVCDIR" 2>/dev/null
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -e "$RC_LIBEXECDIR"/init.d ]; then
 | 
			
		||||
	rm -rf "$RC_LIBEXECDIR"/init.d
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo sysinit >"$RC_SVCDIR"/softlevel
 | 
			
		||||
exit 0
 | 
			
		||||
 
 | 
			
		||||
@@ -9,21 +9,41 @@ if ! mountinfo -q -f tmpfs "@LIBEXECDIR@/init.d"; then
 | 
			
		||||
	exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ ! -d /run ]; then
 | 
			
		||||
	eerror "/run is not a directory."
 | 
			
		||||
	eerror "moving /run to /run.pre-openrc"
 | 
			
		||||
	mv /run /run.pre-openrc
 | 
			
		||||
	mkdir /run
 | 
			
		||||
if [ ! -d "@PREFIX@/run" ]; then
 | 
			
		||||
	eerror "'@PREFIX@/run' is not a directory."
 | 
			
		||||
	eerror "This means the OpenRC dependency data cannot be migrated."
 | 
			
		||||
	eerror "Please create the '@PREFIX@/run' directory and reboot the system."
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
rm -rf /run/openrc
 | 
			
		||||
if ! mountinfo -q -f tmpfs "@PREFIX@/run"; then
 | 
			
		||||
	for x in "@PREFIX@/run/."* "@PREFIX@/run/"*; do
 | 
			
		||||
		case "$x" in
 | 
			
		||||
			"@PREFIX@/run/."|"@PREFIX@/run/..")
 | 
			
		||||
				continue
 | 
			
		||||
				;;
 | 
			
		||||
		esac
 | 
			
		||||
		if [ -e "$x" ]; then
 | 
			
		||||
				eerror "Your '@PREFIX@/run' directory contains files."
 | 
			
		||||
				eerror "Please reboot the system."
 | 
			
		||||
				exit 1
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
if ! mountinfo -q -f tmpfs /run; then
 | 
			
		||||
	ln -s "@LIBEXECDIR@"/init.d /run/openrc
 | 
			
		||||
else
 | 
			
		||||
	cp -a "@LIBEXECDIR@/init.d" /run/openrc
 | 
			
		||||
	rc-update -u
 | 
			
		||||
	mount -t tmpfs -o mode=0755,nosuid,nodev \
 | 
			
		||||
		tmpfs "@PREFIX@/run" 2> /dev/null
 | 
			
		||||
	if [ $? != 0 ]; then
 | 
			
		||||
		eerror "Unable to mount a tmpfs on '@PREFIX@/run'."
 | 
			
		||||
		eerror "This means the OpenRC dependency data cannot be migrated."
 | 
			
		||||
		eerror "Please create the '@PREFIX@/run' directory and reboot the system."
 | 
			
		||||
		exit 1
 | 
			
		||||
	fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
rm -rf "@PREFIX@/run/openrc"
 | 
			
		||||
cp -a "@LIBEXECDIR@/init.d" "@PREFIX@/run/openrc"
 | 
			
		||||
rc-update -u
 | 
			
		||||
rm -rf "@LIBEXECDIR@/init.d"
 | 
			
		||||
umount "@LIBEXECDIR@/init.d"
 | 
			
		||||
einfo "The OpenRC dependency data was migrated successfully."
 | 
			
		||||
exit 0
 | 
			
		||||
 
 | 
			
		||||
@@ -13,29 +13,21 @@
 | 
			
		||||
# This script should match the manpage as of 2012/03/12
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
DRYRUN=0
 | 
			
		||||
 | 
			
		||||
warninvalid() {
 | 
			
		||||
	printf "tmpfiles: ignoring invalid entry on line %d of \`%s'\n" "$LINENUM" "$FILE"
 | 
			
		||||
	error=$(( error+1 ))
 | 
			
		||||
} >&2
 | 
			
		||||
 | 
			
		||||
dryrun_or_real() {
 | 
			
		||||
	local dryrun=
 | 
			
		||||
	[ $DRYRUN -eq 1 ] && dryrun=echo
 | 
			
		||||
	$dryrun "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
relabel() {
 | 
			
		||||
	local path
 | 
			
		||||
	local paths=$1 mode=$2 uid=$3 gid=$4
 | 
			
		||||
 | 
			
		||||
	for path in ${paths}; do
 | 
			
		||||
		if [ -e "$path" ]; then
 | 
			
		||||
			[ $uid != '-' ] && dryrun_or_real chown $CHOPTS "$uid" "$path"
 | 
			
		||||
			[ $gid != '-' ] && dryrun_or_real chgrp $CHOPTS "$gid" "$path"
 | 
			
		||||
			[ $mode != '-' ] && dryrun_or_real chmod $CHOPTS "$mode" "$path"
 | 
			
		||||
			[ -x /sbin/restorecon ] && dryrun_or_real restorecon $CHOPTS "$path"
 | 
			
		||||
			[ $uid != '-' ] && chown $CHOPTS "$uid" "$path"
 | 
			
		||||
			[ $gid != '-' ] && chgrp $CHOPTS "$gid" "$path"
 | 
			
		||||
			[ $mode != '-' ] && chmod $CHOPTS "$mode" "$path"
 | 
			
		||||
			[ -x /sbin/restorecon ] && restorecon $CHOPTS "$path"
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
@@ -43,13 +35,13 @@ relabel() {
 | 
			
		||||
_b() {
 | 
			
		||||
	# Create a block device node if it doesn't exist yet
 | 
			
		||||
	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
 | 
			
		||||
	[ ! -e "$path" ] && dryrun_or_real mknod $path b ${arg%:*} ${arg#*:}
 | 
			
		||||
	[ ! -e "$path" ] && mknod $path b ${arg%:*} ${arg#*:}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_c() {
 | 
			
		||||
	# Create a character device node if it doesn't exist yet
 | 
			
		||||
	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
 | 
			
		||||
	[ ! -e "$path" ] && dryrun_or_real mknod $path c ${arg%:*} ${arg#*:}
 | 
			
		||||
	[ ! -e "$path" ] && mknod $path c ${arg%:*} ${arg#*:}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -60,8 +52,8 @@ _f() {
 | 
			
		||||
	[ $CREATE -gt 0 ] || return 0
 | 
			
		||||
 | 
			
		||||
	if [ ! -e "$path" ]; then
 | 
			
		||||
		dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
 | 
			
		||||
		[ -z "$arg" ] || _w "$@"
 | 
			
		||||
		install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
 | 
			
		||||
		[ -n "$arg" ] && _w "$@"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -71,8 +63,8 @@ _F() {
 | 
			
		||||
 | 
			
		||||
	[ $CREATE -gt 0 ] || return 0
 | 
			
		||||
 | 
			
		||||
	dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
 | 
			
		||||
	[ -z "$arg" ] || _w "$@"
 | 
			
		||||
	install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
 | 
			
		||||
	[ -n "$arg" ] && _w "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_d() {
 | 
			
		||||
@@ -82,7 +74,7 @@ _d() {
 | 
			
		||||
	[ $CREATE -gt 0 ] || return 0
 | 
			
		||||
 | 
			
		||||
	if [ ! -d "$path" ]; then
 | 
			
		||||
		dryrun_or_real install -d -m"$mode" -o"$uid" -g"$gid" "$path"
 | 
			
		||||
		install -d -m"$mode" -o"$uid" -g"$gid" "$path"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -91,18 +83,18 @@ _D() {
 | 
			
		||||
	local path=$1 mode=$2 uid=$3 gid=$4
 | 
			
		||||
 | 
			
		||||
	if [ -d "$path" ] && [ $REMOVE -gt 0 ]; then
 | 
			
		||||
		dryrun_or_real find "$path" -mindepth 1 -maxdepth 1 -xdev -exec rm -rf {} +
 | 
			
		||||
		find "$path" -mindepth 1 -maxdepth 1 -xdev -exec rm -rf {} +
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if [ $CREATE -gt 0 ]; then
 | 
			
		||||
		dryrun_or_real install -d -m"$mode" -o"$uid" -g"$gid" "$path"
 | 
			
		||||
		install -d -m"$mode" -o"$uid" -g"$gid" "$path"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_L() {
 | 
			
		||||
	# Create a symlink if it doesn't exist yet
 | 
			
		||||
	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
 | 
			
		||||
	[ ! -e "$path" ] && dryrun_or_real ln -s "$args" "$path"
 | 
			
		||||
	[ ! -e "$path" ] && ln -s "$args" "$path"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_p() {
 | 
			
		||||
@@ -112,8 +104,8 @@ _p() {
 | 
			
		||||
	[ $CREATE -gt 0 ] || return 0
 | 
			
		||||
 | 
			
		||||
	if [ ! -p "$path" ]; then
 | 
			
		||||
		dryrun_or_real mkfifo -m$mode "$path"
 | 
			
		||||
		dryrun_or_real chown "$uid:$gid" "$path"
 | 
			
		||||
		mkfifo -m$mode "$path"
 | 
			
		||||
		chown "$uid:$gid" "$path"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -137,9 +129,9 @@ _r() {
 | 
			
		||||
 | 
			
		||||
	for path in ${paths}; do
 | 
			
		||||
		if [ -f "$path" ]; then
 | 
			
		||||
			dryrun_or_real rm -f "$path"
 | 
			
		||||
			rm -f "$path"
 | 
			
		||||
		elif [ -d "$path" ]; then
 | 
			
		||||
			dryrun_or_real rmdir "$path"
 | 
			
		||||
			rmdir "$path"
 | 
			
		||||
		fi
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
@@ -153,20 +145,14 @@ _R() {
 | 
			
		||||
	[ $REMOVE -gt 0 ] || return 0
 | 
			
		||||
 | 
			
		||||
	for path in ${paths}; do
 | 
			
		||||
		[ -d "$path" ] && dryrun_or_real rm -rf --one-file-system "$path"
 | 
			
		||||
		[ -d "$path" ] && rm -rf --one-file-system "$path"
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_w() {
 | 
			
		||||
	# Write the argument parameter to a file, if it exists.
 | 
			
		||||
	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
 | 
			
		||||
	if [ -f "$path" ]; then
 | 
			
		||||
		if [ $DRYRUN -eq 1 ]; then
 | 
			
		||||
			echo "echo \"$arg\" >>\"$path\""
 | 
			
		||||
		else
 | 
			
		||||
			echo "$arg" >>"$path"
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
	[ -f "$path" ] && echo "$arg" >>"$path"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_z() {
 | 
			
		||||
@@ -201,7 +187,6 @@ tmpfiles_d=''
 | 
			
		||||
# `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
 | 
			
		||||
for d in ${tmpfiles_dirs} ; do
 | 
			
		||||
	[ -d $d ] && for f in ${d}/*.conf ; do
 | 
			
		||||
		[ "$f" = "$d/systemd.conf" ] && continue
 | 
			
		||||
		[ -f $f ] && tmpfiles_basenames="${tmpfiles_basenames}\n${f##*/}"
 | 
			
		||||
	done # for f in ${d}
 | 
			
		||||
done # for d in ${tmpfiles_dirs}
 | 
			
		||||
@@ -227,12 +212,7 @@ while [ $# -gt 0 ]; do
 | 
			
		||||
	shift
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if [ $(( CLEAN )) -eq 1 ] ; then
 | 
			
		||||
	printf '%s clean mode is not implemented\n' "${0##*/}"
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$CREATE$REMOVE" = '00' ]; then
 | 
			
		||||
if [ $(( CREATE + REMOVE )) -ne 1 ] ; then
 | 
			
		||||
	printf 'usage: %s [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
@@ -253,40 +233,51 @@ for FILE in $tmpfiles_d ; do
 | 
			
		||||
 | 
			
		||||
	# XXX: Upstream says whitespace is NOT permitted in the Path argument.
 | 
			
		||||
	# But IS allowed when globs are expanded for the x/r/R/z/Z types.
 | 
			
		||||
	while read cmd path mode uid gid age arg; do
 | 
			
		||||
	while read line; do
 | 
			
		||||
		LINENUM=$(( LINENUM+1 ))
 | 
			
		||||
 | 
			
		||||
		# This will skip over comments and empty lines
 | 
			
		||||
		set -- $line
 | 
			
		||||
 | 
			
		||||
		# Unless we have both command and path, skip this line.
 | 
			
		||||
		if [ -z "$cmd" -o -z "$path" ]; then
 | 
			
		||||
		if [ -z "$1" -o -z "$2" ]; then
 | 
			
		||||
			continue
 | 
			
		||||
		fi
 | 
			
		||||
 | 
			
		||||
		# whine about invalid entries
 | 
			
		||||
		case $cmd in
 | 
			
		||||
		case $1 in
 | 
			
		||||
			f|F|w|d|D|p|L|c|b|x|r|R|z|Z) ;;
 | 
			
		||||
			\#) continue ;;
 | 
			
		||||
			*) warninvalid ; continue ;;
 | 
			
		||||
		esac
 | 
			
		||||
 | 
			
		||||
		cmd=$1
 | 
			
		||||
		path=$2
 | 
			
		||||
 | 
			
		||||
		# fall back on defaults when parameters are passed as '-'
 | 
			
		||||
		if [ "$mode" = '-' -o "$mode" = '' ]; then
 | 
			
		||||
			case "$cmd" in
 | 
			
		||||
		if [ "$3" = '-' -o "$3" = '' ]; then
 | 
			
		||||
			case ${1} in
 | 
			
		||||
				p|f|F) mode=0644 ;;
 | 
			
		||||
				d|D) mode=0755 ;;
 | 
			
		||||
				z|Z|x|r|R|L) ;;
 | 
			
		||||
			esac
 | 
			
		||||
		else
 | 
			
		||||
			mode=$3
 | 
			
		||||
		fi
 | 
			
		||||
		uid=$4
 | 
			
		||||
		gid=$5
 | 
			
		||||
		age=$6
 | 
			
		||||
		arg=$7
 | 
			
		||||
 | 
			
		||||
		[ "$uid" = '-' -o "$uid" = '' ] && uid=0
 | 
			
		||||
		[ "$gid" = '-' -o "$gid" = '' ] && gid=0
 | 
			
		||||
		[ "$age" = '-' -o "$age" = '' ] && age=0
 | 
			
		||||
		[ "$arg" = '-' -o "$arg" = '' ] && arg=''
 | 
			
		||||
		[ ${4} = '-' ] && uid=0
 | 
			
		||||
		[ ${5} = '-' ] && gid=0
 | 
			
		||||
		[ ${6} = '-' ] && age=0
 | 
			
		||||
		[ ${7} = '-' ] && arg=''
 | 
			
		||||
		set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg"
 | 
			
		||||
 | 
			
		||||
		[ "$VERBOSE" -eq "1" ] && echo _$cmd "$@"
 | 
			
		||||
		_$cmd "$@"
 | 
			
		||||
		rc=$?
 | 
			
		||||
		if [ "${DRYRUN}" -eq "0" ]; then
 | 
			
		||||
			_$cmd "$@"
 | 
			
		||||
			rc=$?
 | 
			
		||||
			[ $rc -ne 0 ] && error=$((error + 1))
 | 
			
		||||
		fi
 | 
			
		||||
	done <$FILE
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,6 @@
 | 
			
		||||
 * SUCH DAMAGE.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
 | 
			
		||||
#include "librc.h"
 | 
			
		||||
 | 
			
		||||
#define GENDEP          RC_LIBEXECDIR "/sh/gendepends.sh"
 | 
			
		||||
@@ -749,15 +747,12 @@ rc_deptree_update(void)
 | 
			
		||||
	size_t i, k, l;
 | 
			
		||||
	bool retval = true;
 | 
			
		||||
	const char *sys = rc_sys();
 | 
			
		||||
	struct utsname uts;
 | 
			
		||||
 | 
			
		||||
	/* Some init scripts need RC_LIBEXECDIR to source stuff
 | 
			
		||||
	   Ideally we should be setting our full env instead */
 | 
			
		||||
	if (!getenv("RC_LIBEXECDIR"))
 | 
			
		||||
		setenv("RC_LIBEXECDIR", RC_LIBEXECDIR, 0);
 | 
			
		||||
 | 
			
		||||
	if (uname(&uts) == 0)
 | 
			
		||||
		setenv("RC_UNAME", uts.sysname, 1);
 | 
			
		||||
	/* Phase 1 - source all init scripts and print dependencies */
 | 
			
		||||
	if (!(fp = popen(GENDEP, "r")))
 | 
			
		||||
		return false;
 | 
			
		||||
 
 | 
			
		||||
@@ -216,7 +216,6 @@ rc_sys_v2(void)
 | 
			
		||||
		}
 | 
			
		||||
		/* Now do detection */
 | 
			
		||||
		__STRING_SWITCH(systype)
 | 
			
		||||
		__STRING_CASE(RC_SYS_PREFIX)	{ return RC_SYS_PREFIX; }
 | 
			
		||||
#ifdef __FreeBSD__
 | 
			
		||||
		__STRING_CASE(RC_SYS_JAIL) { return RC_SYS_JAIL; }
 | 
			
		||||
#endif /* __FreeBSD__ */
 | 
			
		||||
@@ -246,10 +245,6 @@ librc_hidden_def(rc_sys_v2)
 | 
			
		||||
const char *
 | 
			
		||||
rc_sys_v1(void)
 | 
			
		||||
{
 | 
			
		||||
#ifdef PREFIX
 | 
			
		||||
	return RC_SYS_PREFIX;
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#ifdef __FreeBSD__
 | 
			
		||||
	int jailed = 0;
 | 
			
		||||
	size_t len = sizeof(jailed);
 | 
			
		||||
@@ -286,7 +281,6 @@ rc_sys_v1(void)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	return NULL;
 | 
			
		||||
#endif /* PREFIX */
 | 
			
		||||
}
 | 
			
		||||
librc_hidden_def(rc_sys_v1)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,14 +33,11 @@
 | 
			
		||||
 | 
			
		||||
__BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
#define RC_PREFIX "@PREFIX@"
 | 
			
		||||
#define RC_SYSCONFDIR		"@SYSCONFDIR@"
 | 
			
		||||
#define RC_LIBDIR               "@PREFIX@/@LIB@/rc"
 | 
			
		||||
#define RC_LIBEXECDIR           "@LIBEXECDIR@"
 | 
			
		||||
#if defined(PREFIX)
 | 
			
		||||
#define RC_SVCDIR               RC_LIBEXECDIR "/init.d"
 | 
			
		||||
#elif defined(__linux__)
 | 
			
		||||
#define RC_SVCDIR               "/run/openrc"
 | 
			
		||||
#ifdef __linux__
 | 
			
		||||
#define RC_SVCDIR               "@PREFIX@/run/openrc"
 | 
			
		||||
#else
 | 
			
		||||
#define RC_SVCDIR               RC_LIBEXECDIR "/init.d"
 | 
			
		||||
#endif
 | 
			
		||||
@@ -283,7 +280,6 @@ bool rc_service_daemons_crashed(const char *);
 | 
			
		||||
#define RC_SYS_JAIL    "JAIL"
 | 
			
		||||
#define RC_SYS_OPENVZ  "OPENVZ"
 | 
			
		||||
#define RC_SYS_LXC     "LXC"
 | 
			
		||||
#define RC_SYS_PREFIX  "PREFIX"
 | 
			
		||||
#define RC_SYS_UML     "UML"
 | 
			
		||||
#define RC_SYS_VSERVER "VSERVER"
 | 
			
		||||
#define RC_SYS_XEN0    "XEN0"
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@
 | 
			
		||||
	"Disable color output",						      \
 | 
			
		||||
	"Display software version",			              \
 | 
			
		||||
	"Run verbosely",						      \
 | 
			
		||||
	"Run quietly (Does not affect errors)"
 | 
			
		||||
	"Run quietly"
 | 
			
		||||
 | 
			
		||||
#define case_RC_COMMON_getopt_case_C  setenv ("EINFO_COLOR", "NO", 1);
 | 
			
		||||
#define case_RC_COMMON_getopt_case_h  usage (EXIT_SUCCESS);
 | 
			
		||||
 
 | 
			
		||||
@@ -60,8 +60,7 @@ extern const char *applet;
 | 
			
		||||
 * See systemd's src/label.c:label_mkdir
 | 
			
		||||
 */
 | 
			
		||||
static int
 | 
			
		||||
do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type,
 | 
			
		||||
		bool trunc, bool chowner)
 | 
			
		||||
do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type, bool trunc)
 | 
			
		||||
{
 | 
			
		||||
	struct stat st;
 | 
			
		||||
	int fd, flags;
 | 
			
		||||
@@ -133,14 +132,14 @@ do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (mode && (st.st_mode & 0777) != mode) {
 | 
			
		||||
		einfo("%s: correcting mode", path);
 | 
			
		||||
		einfo("%s: correcting mode", applet);
 | 
			
		||||
		if (chmod(path, mode)) {
 | 
			
		||||
			eerror("%s: chmod: %s", applet, strerror(errno));
 | 
			
		||||
			return -1;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (chowner && (st.st_uid != uid || st.st_gid != gid)) {
 | 
			
		||||
	if (st.st_uid != uid || st.st_gid != gid) {
 | 
			
		||||
		if (st.st_dev || st.st_ino)
 | 
			
		||||
			einfo("%s: correcting owner", path);
 | 
			
		||||
		if (chown(path, uid, gid)) {
 | 
			
		||||
@@ -223,20 +222,19 @@ checkpath(int argc, char **argv)
 | 
			
		||||
	struct group *gr = NULL;
 | 
			
		||||
	inode_t type = inode_unknown;
 | 
			
		||||
	int retval = EXIT_SUCCESS;
 | 
			
		||||
	bool trunc = false;
 | 
			
		||||
	bool chowner = false;
 | 
			
		||||
	bool trunc = 0;
 | 
			
		||||
 | 
			
		||||
	while ((opt = getopt_long(argc, argv, getoptstring,
 | 
			
		||||
		    longopts, (int *) 0)) != -1)
 | 
			
		||||
	{
 | 
			
		||||
		switch (opt) {
 | 
			
		||||
		case 'D':
 | 
			
		||||
			trunc = true;
 | 
			
		||||
			trunc = 1;
 | 
			
		||||
		case 'd':
 | 
			
		||||
			type = inode_dir;
 | 
			
		||||
			break;
 | 
			
		||||
		case 'F':
 | 
			
		||||
			trunc = true;
 | 
			
		||||
			trunc = 1;
 | 
			
		||||
		case 'f':
 | 
			
		||||
			type = inode_file;
 | 
			
		||||
			break;
 | 
			
		||||
@@ -249,7 +247,6 @@ checkpath(int argc, char **argv)
 | 
			
		||||
				    applet, optarg);
 | 
			
		||||
			break;
 | 
			
		||||
		case 'o':
 | 
			
		||||
			chowner = true;
 | 
			
		||||
			if (parse_owner(&pw, &gr, optarg) != 0)
 | 
			
		||||
				eerrorx("%s: owner `%s' not found",
 | 
			
		||||
				    applet, optarg);
 | 
			
		||||
@@ -275,7 +272,7 @@ checkpath(int argc, char **argv)
 | 
			
		||||
		gid = gr->gr_gid;
 | 
			
		||||
 | 
			
		||||
	while (optind < argc) {
 | 
			
		||||
		if (do_check(argv[optind], uid, gid, mode, type, trunc, chowner))
 | 
			
		||||
		if (do_check(argv[optind], uid, gid, mode, type, trunc))
 | 
			
		||||
			retval = EXIT_FAILURE;
 | 
			
		||||
		optind++;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -282,7 +282,7 @@ fstabinfo(int argc, char **argv)
 | 
			
		||||
		END_ENT;
 | 
			
		||||
 | 
			
		||||
		if (!TAILQ_FIRST(files))
 | 
			
		||||
			eerrorx("%s: empty fstab", argv[0]);
 | 
			
		||||
			eerrorx("%s: emtpy fstab", argv[0]);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!TAILQ_FIRST(files)) {
 | 
			
		||||
 
 | 
			
		||||
@@ -390,8 +390,12 @@ mountinfo(int argc, char **argv)
 | 
			
		||||
	char real_path[PATH_MAX + 1];
 | 
			
		||||
	int opt;
 | 
			
		||||
	int result;
 | 
			
		||||
	bool quiet;
 | 
			
		||||
	char *this_path;
 | 
			
		||||
 | 
			
		||||
	/* Ensure that we are only quiet when explicitly told to be */
 | 
			
		||||
	unsetenv("EINFO_QUIET");
 | 
			
		||||
 | 
			
		||||
#define DO_REG(_var)							      \
 | 
			
		||||
	if (_var) free(_var);						      \
 | 
			
		||||
	_var = get_regex(optarg);
 | 
			
		||||
@@ -471,6 +475,7 @@ mountinfo(int argc, char **argv)
 | 
			
		||||
	REG_FREE(args.skip_options_regex);
 | 
			
		||||
 | 
			
		||||
	result = EXIT_FAILURE;
 | 
			
		||||
	quiet = rc_yesno(getenv("EINFO_QUIET"));
 | 
			
		||||
 | 
			
		||||
	/* We should report the mounts in reverse order to ease unmounting */
 | 
			
		||||
	TAILQ_FOREACH_REVERSE(s, nodes, rc_stringlist, entries) {
 | 
			
		||||
@@ -480,7 +485,7 @@ mountinfo(int argc, char **argv)
 | 
			
		||||
		if (skip_point_regex &&
 | 
			
		||||
		    regexec(skip_point_regex, s->value, 0, NULL, 0) == 0)
 | 
			
		||||
			continue;
 | 
			
		||||
		if (! rc_yesno(getenv("EINFO_QUIET")))
 | 
			
		||||
		if (! quiet)
 | 
			
		||||
			printf("%s\n", s->value);
 | 
			
		||||
		result = EXIT_SUCCESS;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -191,10 +191,6 @@ env_config(void)
 | 
			
		||||
	if (sys)
 | 
			
		||||
		setenv("RC_SYS", sys, 1);
 | 
			
		||||
 | 
			
		||||
#ifdef PREFIX
 | 
			
		||||
	setenv("RC_PREFIX", RC_PREFIX, 1);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* Some scripts may need to take a different code path if
 | 
			
		||||
	   Linux/FreeBSD, etc
 | 
			
		||||
	   To save on calling uname, we store it in an environment variable */
 | 
			
		||||
 
 | 
			
		||||
@@ -315,7 +315,8 @@ get_pid(const char *pidfile, bool quiet)
 | 
			
		||||
 | 
			
		||||
	if ((fp = fopen(pidfile, "r")) == NULL) {
 | 
			
		||||
		if (!quiet)
 | 
			
		||||
			eerror("%s: fopen `%s': %s", applet, pidfile, strerror(errno));
 | 
			
		||||
			eerror("%s: fopen `%s': %s",
 | 
			
		||||
			    applet, pidfile, strerror(errno));
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -354,7 +355,8 @@ do_stop(const char *exec, const char *const *argv,
 | 
			
		||||
	LIST_FOREACH_SAFE(pi, pids, entries, np) {
 | 
			
		||||
		if (test) {
 | 
			
		||||
			if (!quiet)
 | 
			
		||||
				einfo("Would send signal %d to PID %d", sig, pi->pid);
 | 
			
		||||
				einfo("Would send signal %d to PID %d",
 | 
			
		||||
				    sig, pi->pid);
 | 
			
		||||
			nkilled++;
 | 
			
		||||
		} else {
 | 
			
		||||
			if (verbose)
 | 
			
		||||
@@ -415,7 +417,7 @@ run_stop_schedule(const char *exec, const char *const *argv,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (pidfile) {
 | 
			
		||||
		pid = get_pid(pidfile, false);
 | 
			
		||||
		pid = get_pid(pidfile, quiet);
 | 
			
		||||
		if (pid == -1)
 | 
			
		||||
			return 0;
 | 
			
		||||
	}
 | 
			
		||||
@@ -434,7 +436,9 @@ run_stop_schedule(const char *exec, const char *const *argv,
 | 
			
		||||
				if (tkilled == 0) {
 | 
			
		||||
					if (progressed)
 | 
			
		||||
						printf("\n");
 | 
			
		||||
						eerror("%s: no matching processes found", applet);
 | 
			
		||||
					if (! quiet)
 | 
			
		||||
						eerror("%s: no matching "
 | 
			
		||||
						    "processes found", applet);
 | 
			
		||||
				}
 | 
			
		||||
				return tkilled;
 | 
			
		||||
			}
 | 
			
		||||
@@ -504,10 +508,14 @@ run_stop_schedule(const char *exec, const char *const *argv,
 | 
			
		||||
 | 
			
		||||
	if (progressed)
 | 
			
		||||
		printf("\n");
 | 
			
		||||
	if (nrunning == 1)
 | 
			
		||||
		eerror("%s: %d process refused to stop", applet, nrunning);
 | 
			
		||||
	else
 | 
			
		||||
		eerror("%s: %d process(es) refused to stop", applet, nrunning);
 | 
			
		||||
	if (! quiet) {
 | 
			
		||||
		if (nrunning == 1)
 | 
			
		||||
			eerror("%s: %d process refused to stop",
 | 
			
		||||
			    applet, nrunning);
 | 
			
		||||
		else
 | 
			
		||||
			eerror("%s: %d process(es) refused to stop",
 | 
			
		||||
			    applet, nrunning);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return -nrunning;
 | 
			
		||||
}
 | 
			
		||||
@@ -1287,7 +1295,7 @@ start_stop_daemon(int argc, char **argv)
 | 
			
		||||
		/* We don't redirect stdin as some daemons may need it */
 | 
			
		||||
		if (background || quiet || redirect_stdout)
 | 
			
		||||
			dup2(stdout_fd, STDOUT_FILENO);
 | 
			
		||||
		if (background || redirect_stderr)
 | 
			
		||||
		if (background || quiet || redirect_stderr)
 | 
			
		||||
			dup2(stderr_fd, STDERR_FILENO);
 | 
			
		||||
 | 
			
		||||
		for (i = getdtablesize() - 1; i >= 3; --i)
 | 
			
		||||
@@ -1318,9 +1326,12 @@ start_stop_daemon(int argc, char **argv)
 | 
			
		||||
				return -1;
 | 
			
		||||
			}
 | 
			
		||||
		} while (!WIFEXITED(i) && !WIFSIGNALED(i));
 | 
			
		||||
		if (!WIFEXITED(i) || WEXITSTATUS(i) != 0)
 | 
			
		||||
			eerrorx("%s: failed to start `%s'", applet, exec);
 | 
			
		||||
 | 
			
		||||
		if (!WIFEXITED(i) || WEXITSTATUS(i) != 0) {
 | 
			
		||||
			if (!quiet)
 | 
			
		||||
				eerrorx("%s: failed to start `%s'",
 | 
			
		||||
				    applet, exec);
 | 
			
		||||
			exit(EXIT_FAILURE);
 | 
			
		||||
		}
 | 
			
		||||
		pid = spid;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -1354,7 +1365,7 @@ start_stop_daemon(int argc, char **argv)
 | 
			
		||||
				alive = true;
 | 
			
		||||
		} else {
 | 
			
		||||
			if (pidfile) {
 | 
			
		||||
				pid = get_pid(pidfile, false);
 | 
			
		||||
				pid = get_pid(pidfile, true);
 | 
			
		||||
				if (pid == -1) {
 | 
			
		||||
					eerrorx("%s: did not "
 | 
			
		||||
					    "create a valid"
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ l3:3:wait:/sbin/rc default
 | 
			
		||||
l4:4:wait:/sbin/rc default
 | 
			
		||||
l5:5:wait:/sbin/rc default
 | 
			
		||||
l6:6:wait:/sbin/rc reboot
 | 
			
		||||
l6r:6:wait:/sbin/reboot -d
 | 
			
		||||
l6r:6:wait:/sbin/reboot -dk
 | 
			
		||||
#z6:6:respawn:/sbin/sulogin
 | 
			
		||||
 | 
			
		||||
# new-style single-user
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,10 @@ srcdir=${srcdir:-.}
 | 
			
		||||
top_builddir=${top_builddir:-${top_srcdir}}
 | 
			
		||||
builddir=${builddir:-${srcdir}}
 | 
			
		||||
 | 
			
		||||
export LD_LIBRARY_PATH=${top_builddir}/src/libeinfo:${top_builddir}/src/librc:${LD_LIBRARY_PATH}
 | 
			
		||||
export PATH=${top_builddir}/src/rc:${PATH}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [ ! -f ${top_srcdir}/sh/functions.sh ] ; then
 | 
			
		||||
	echo "functions.sh not yet created !?" 1>&2
 | 
			
		||||
	exit 1
 | 
			
		||||
@@ -17,9 +21,6 @@ elif ! . ${top_srcdir}/sh/functions.sh; then
 | 
			
		||||
	exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
export LD_LIBRARY_PATH=${top_builddir}/src/libeinfo:${top_builddir}/src/librc:${LD_LIBRARY_PATH}
 | 
			
		||||
export PATH=${top_builddir}/src/rc:${PATH}
 | 
			
		||||
 | 
			
		||||
cd ${top_srcdir}/src/rc
 | 
			
		||||
${MAKE:-make} links >/dev/null
 | 
			
		||||
cd -
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user