Compare commits
91 Commits
openrc-0.1
...
openrc-0.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8046427d7f | ||
|
|
c73173ae53 | ||
|
|
2964fc47f1 | ||
|
|
0396f0ea7c | ||
|
|
78a25883f3 | ||
|
|
18dc0efa52 | ||
|
|
f53645b7c7 | ||
|
|
a75a9940b0 | ||
|
|
e27f0acc60 | ||
|
|
5c8ba80ea7 | ||
|
|
e8ad6d2423 | ||
|
|
aa34435cc8 | ||
|
|
68f8e8aac2 | ||
|
|
ee54bfef05 | ||
|
|
7279b469ec | ||
|
|
8482008559 | ||
|
|
463d4ef00a | ||
|
|
b5629d4ea0 | ||
|
|
4385d31d9d | ||
|
|
20af890ac2 | ||
|
|
21abe9821c | ||
|
|
f886372749 | ||
|
|
f671e0a28f | ||
|
|
6d84a4aed8 | ||
|
|
76f76eb19a | ||
|
|
a3ff6cce97 | ||
|
|
1e7c696ea4 | ||
|
|
8d9db8d02c | ||
|
|
c5bb6829d0 | ||
|
|
a9f1ac2dfd | ||
|
|
27984c0d2d | ||
|
|
9a9c2acd8d | ||
|
|
b68d4b3580 | ||
|
|
6f345abe91 | ||
|
|
da842085ce | ||
|
|
18bdbb6870 | ||
|
|
361f5ce2b8 | ||
|
|
ae9acfaed8 | ||
|
|
6770a6b1ce | ||
|
|
4ff71bd741 | ||
|
|
5c736ad63e | ||
|
|
33c63ede78 | ||
|
|
ac47b6abfa | ||
|
|
7d8dca7b78 | ||
|
|
c08b1a6a32 | ||
|
|
5615fa78d6 | ||
|
|
f007988fba | ||
|
|
20ef3439ea | ||
|
|
0406c6085b | ||
|
|
0a132cdca5 | ||
|
|
a0fe1c5a60 | ||
|
|
6b1e806c8b | ||
|
|
3cd293c515 | ||
|
|
a06072b395 | ||
|
|
3863c11be5 | ||
|
|
5092595835 | ||
|
|
918d261658 | ||
|
|
a0877449f3 | ||
|
|
444bdfbfc4 | ||
|
|
8e4169e29e | ||
|
|
ea696b47c8 | ||
|
|
9e88d73aaa | ||
|
|
1f01157354 | ||
|
|
8f675d14e8 | ||
|
|
9afdf50667 | ||
|
|
8dc06e3259 | ||
|
|
aa7e2cd1fe | ||
|
|
07e848638c | ||
|
|
c8703354e3 | ||
|
|
e641b43849 | ||
|
|
a6db2374fe | ||
|
|
2e3715bb69 | ||
|
|
883ea31f80 | ||
|
|
39abbed7cb | ||
|
|
0730ac61e8 | ||
|
|
006fbdce83 | ||
|
|
60d6847de5 | ||
|
|
ecb4d7c3f2 | ||
|
|
84ad14b2e4 | ||
|
|
a1bf102591 | ||
|
|
add965706a | ||
|
|
5d8b1b689b | ||
|
|
3e2018f5e9 | ||
|
|
dceeef9fe5 | ||
|
|
3df0bd64cb | ||
|
|
a5b4fab732 | ||
|
|
de36b26d5e | ||
|
|
ae7cbd910a | ||
|
|
92b274a7de | ||
|
|
b3d47d5861 | ||
|
|
f5ba232fb4 |
11
Makefile
11
Makefile
@@ -4,7 +4,12 @@
|
||||
|
||||
include Makefile.inc
|
||||
|
||||
SUBDIR= conf.d doc etc init.d local.d sysctl.d man net scripts sh src
|
||||
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
|
||||
|
||||
# Build pkgconfig or not
|
||||
MKPKGCONFIG?= yes
|
||||
@@ -25,7 +30,9 @@ include ${MK}/dist.mk
|
||||
include ${MK}/git.mk
|
||||
|
||||
_installafter:
|
||||
ifneq ($(OS),Linux)
|
||||
ifeq (${MKPREFIX},yes)
|
||||
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
|
||||
else ifneq (${OS},Linux)
|
||||
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d
|
||||
endif
|
||||
${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
NAME= openrc
|
||||
VERSION= 0.10
|
||||
VERSION= 0.11.3
|
||||
PKG= ${NAME}-${VERSION}
|
||||
|
||||
4
README
4
README
@@ -10,7 +10,9 @@ 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
|
||||
@@ -24,6 +26,8 @@ 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)\"
|
||||
|
||||
40
README.newnet
Normal file
40
README.newnet
Normal file
@@ -0,0 +1,40 @@
|
||||
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,9 +1,12 @@
|
||||
DIR= ${CONFDIR}
|
||||
CONF= bootmisc fsck hostname localmount network staticroute urandom \
|
||||
${CONF-${OS}}
|
||||
CONF= bootmisc fsck hostname localmount netmount urandom tmpfiles \
|
||||
${CONF-${OS}}
|
||||
|
||||
ifeq (${MKNET},)
|
||||
CONF+= network staticroute
|
||||
TARGETS+= network staticroute
|
||||
CLEANFILES+= network staticroute
|
||||
endif
|
||||
|
||||
MK= ../mk
|
||||
include ${MK}/os.mk
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
# The consolefont service is not activated by default. If you need to
|
||||
# use it, you should run "rc-update add consolefont boot" as root.
|
||||
#
|
||||
# consolefont specifies the default font that you'd like Linux to use on the
|
||||
# console. You can find a good selection of fonts in /usr/share/consolefonts;
|
||||
# you shouldn't specify the trailing ".psf.gz", just the font name below.
|
||||
# To use the default console font, comment out the CONSOLEFONT setting below.
|
||||
# This setting is used by the /etc/init.d/consolefont script (NOTE: if you do
|
||||
# not want to use it, run "rc-update del consolefont boot" as root).
|
||||
consolefont="default8x16"
|
||||
|
||||
# consoletranslation is the charset map file to use. Leave commented to use
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Sets the level at which logging of messages is done to the
|
||||
# console. See dmesg(8) for more info.
|
||||
# console. See dmesg(1) for more info.
|
||||
dmesg_level="1"
|
||||
|
||||
20
conf.d/netmount
Normal file
20
conf.d/netmount
Normal file
@@ -0,0 +1,20 @@
|
||||
# Depending on how mounting your network file systems behaves when your
|
||||
# network interfaces are down, you may need to set the netmount script to
|
||||
# require specific network interfaces to be active. This file gives
|
||||
# examples of how to do this:
|
||||
#
|
||||
# If you are using newnet and configuring the interface with a static
|
||||
# address with the network script:
|
||||
# rc_need="network"
|
||||
#
|
||||
# If you are using oldnet, you must list the specific net.* services you
|
||||
# need:
|
||||
#
|
||||
# rc_need="net.eth0"
|
||||
# rc_need="net.eth1 net.eth2"
|
||||
#
|
||||
# If you are using a dynamic network management tool like
|
||||
# networkmanager, dhcpcd, etc, you should list that tool here.
|
||||
#
|
||||
# rc_need="networkmanager"
|
||||
# rc_need="dhcpcd"
|
||||
3
conf.d/tmpfiles
Normal file
3
conf.d/tmpfiles
Normal file
@@ -0,0 +1,3 @@
|
||||
# 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. -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
|
||||
# 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.
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
# In other words, you probably should DO NOTHING HERE...
|
||||
|
||||
# Prefer ifconfig over iproute2
|
||||
#modules="ifconfig"
|
||||
#modules="!iproute2"
|
||||
|
||||
# You can also specify other modules for an interface
|
||||
# In this case we prefer udhcpc over dhcpcd
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
# If you don't specify an interface then we prefer iproute2 if it's installed
|
||||
# To prefer ifconfig over iproute2
|
||||
#modules="ifconfig"
|
||||
#modules="!iproute2"
|
||||
|
||||
# For a static configuration, use something like this
|
||||
# (They all do exactly the same thing btw)
|
||||
@@ -126,6 +126,13 @@
|
||||
# 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"
|
||||
@@ -552,26 +559,34 @@
|
||||
# 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.
|
||||
# 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
|
||||
#vlan1_name="vlan1"
|
||||
#vlan2_name="eth0.2"
|
||||
#eth0_vlan2_name="eth0.2"
|
||||
#eth1_vlan2_name="eth1.2"
|
||||
|
||||
# The following shows the old set_name_type setting and what new option to set:
|
||||
# Using eth9 & VLAN VID 26 as an example.
|
||||
# VLAN_PLUS_VID vlan26_name="vlan0026"
|
||||
# VLAN_PLUS_VID_NO_PAD vlan26_name="vlan26"
|
||||
# DEV_PLUS_VID vlan26_name="eth9.0026"
|
||||
# DEV_PLUS_VID_NO_PAD vlan26_name="eth9.26"
|
||||
# DEV_PLUS_VID eth9_vlan26_name="eth9.0026"
|
||||
# DEV_PLUS_VID_NO_PAD eth9_vlan26_name="eth9.26"
|
||||
|
||||
# Set the vlan flags
|
||||
#vlan1_flags="reorder_hdr off gvrp on loose_binding on"
|
||||
#eth0_vlan1_flags="reorder_hdr off gvrp on loose_binding on"
|
||||
|
||||
# Configure in/egress maps
|
||||
#vlan1_ingress="2:6 3:5"
|
||||
#vlan1_egress="1:2"
|
||||
#eth0_vlan1_egress="1:2"
|
||||
|
||||
#config_vlan1="172.16.3.1/23"
|
||||
#config_vlan2="172.16.2.1/23"
|
||||
#config_vlan1="172.16.2.1/24"
|
||||
#config_vlan2="172.16.3.1/24"
|
||||
#config_eth0_1="172.16.4.1/24"
|
||||
#config_eth1_1="172.16.5.1/24"
|
||||
|
||||
# NOTE: Vlans can be configured with a . in their interface names
|
||||
# When configuring vlans with this name type, you need to replace . with a _
|
||||
@@ -638,6 +653,17 @@
|
||||
# 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
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
# 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,6 +5,7 @@
|
||||
# "" - nothing special
|
||||
# "lxc" - Linux Containers
|
||||
# "openvz" - Linux OpenVZ
|
||||
# "prefix" - Prefix
|
||||
# "uml" - Usermode Linux
|
||||
# "vserver" - Linux vserver
|
||||
# "xen0" - Xen0 Domain
|
||||
@@ -18,3 +19,11 @@
|
||||
# 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 controler is mounted under
|
||||
# /sys/fs/cgroup.
|
||||
# Support for process management by cgroups is planned in the future,
|
||||
# so if you turn this off, be aware that you may not be able to use that
|
||||
# feature.
|
||||
#rc_controller_cgroups="YES"
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
# 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,6 +94,10 @@
|
||||
# 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.
|
||||
@@ -116,6 +120,13 @@
|
||||
#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,3 +41,4 @@ syslogd
|
||||
termencoding
|
||||
ttys
|
||||
wscons
|
||||
tmpfiles.setup
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
DIR= ${INITDIR}
|
||||
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
|
||||
network.in root.in savecache.in staticroute.in swap.in swapfiles.in \
|
||||
swclock.in sysctl.in urandom.in ${SRCS-${OS}}
|
||||
root.in savecache.in swap.in swapfiles.in \
|
||||
tmpfiles.setup.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
|
||||
CLEANFILES+= net.lo
|
||||
TARGETS+= net.lo
|
||||
SRCS+= net.lo.in
|
||||
endif
|
||||
|
||||
MK= ../mk
|
||||
include ${MK}/os.mk
|
||||
@@ -16,8 +22,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 ipfw.in mixer.in nscd.in \
|
||||
powerd.in syscons.in
|
||||
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \
|
||||
mixer.in nscd.in powerd.in syscons.in
|
||||
|
||||
NET_LO-Linux= net.lo
|
||||
SRCS-Linux= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
|
||||
|
||||
@@ -22,7 +22,7 @@ depend()
|
||||
[ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
|
||||
need root
|
||||
fi
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -7,7 +7,7 @@ depend()
|
||||
need localmount
|
||||
before logger
|
||||
after clock sysctl
|
||||
keyword -timeout
|
||||
keyword -prefix -timeout
|
||||
}
|
||||
|
||||
: ${wipe_tmp:=${WIPE_TMP:-yes}}
|
||||
@@ -112,7 +112,7 @@ start()
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$RC_UNAME" = Linux -a -d /run ] && false; then
|
||||
if [ "$RC_UNAME" = Linux -a -d /run ]; then
|
||||
migrate_to_run /var/lock /run/lock
|
||||
migrate_to_run /var/run /run
|
||||
fi
|
||||
@@ -196,3 +196,5 @@ stop()
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# vim: ft=sh
|
||||
|
||||
@@ -8,7 +8,7 @@ depend()
|
||||
{
|
||||
need localmount termencoding
|
||||
after hotplug bootmisc
|
||||
keyword -openvz -uml -vserver -xenu -lxc
|
||||
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -10,7 +10,7 @@ depend() {
|
||||
need localmount
|
||||
after bootmisc
|
||||
before net.lo0
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
description="Mount system critical filesystems in /dev."
|
||||
|
||||
depend() {
|
||||
use dev
|
||||
keyword -vserver
|
||||
use dev-mount
|
||||
before dev
|
||||
keyword -prefix -vserver
|
||||
}
|
||||
|
||||
start() {
|
||||
|
||||
@@ -7,7 +7,7 @@ description="Set the dmesg level for a cleaner boot"
|
||||
depend()
|
||||
{
|
||||
before dev modules
|
||||
keyword -vserver
|
||||
keyword -lxc -prefix -vserver
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -6,7 +6,7 @@ description="Configures a specific kernel dump device."
|
||||
|
||||
depend() {
|
||||
need swap
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start() {
|
||||
|
||||
43
init.d/encswap.in
Normal file
43
init.d/encswap.in
Normal file
@@ -0,0 +1,43 @@
|
||||
#!@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 -timeout -vserver -lxc
|
||||
keyword -jail -openvz -prefix -timeout -vserver -lxc
|
||||
}
|
||||
|
||||
_abort() {
|
||||
|
||||
@@ -9,7 +9,7 @@ depend()
|
||||
{
|
||||
use root
|
||||
before devd net
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
_set()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
description="Sets the hostname of the machine."
|
||||
|
||||
depend() {
|
||||
keyword -lxc
|
||||
keyword -prefix -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -28,7 +28,7 @@ depend()
|
||||
else
|
||||
before *
|
||||
fi
|
||||
keyword -openvz -uml -vserver -xenu -lxc
|
||||
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||
}
|
||||
|
||||
setupopts()
|
||||
|
||||
@@ -8,7 +8,7 @@ depend()
|
||||
{
|
||||
need localmount termencoding
|
||||
after bootmisc
|
||||
keyword -openvz -uml -vserver -xenu -lxc
|
||||
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
|
||||
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 -vserver -lxc
|
||||
keyword -jail -openvz -prefix -vserver -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -7,7 +7,7 @@ extra_commands="restore"
|
||||
depend()
|
||||
{
|
||||
need localmount
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
restore()
|
||||
|
||||
@@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules."
|
||||
depend()
|
||||
{
|
||||
use isapnp
|
||||
keyword -openvz -vserver -lxc
|
||||
keyword -openvz -prefix -vserver -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -7,11 +7,13 @@ description="Re-mount filesytems read-only for a clean reboot."
|
||||
depend()
|
||||
{
|
||||
need killprocs savecache
|
||||
keyword -openvz -vserver -lxc
|
||||
keyword -openvz -prefix -vserver -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
local ret=0
|
||||
|
||||
# Flush all pending disk writes now
|
||||
sync; sync
|
||||
|
||||
@@ -39,6 +41,9 @@ start()
|
||||
do_unmount "umount -r" \
|
||||
--skip-point-regex "$m" \
|
||||
"${fs:+--skip-fstype-regex}" $fs --nonetdev
|
||||
ret=$?
|
||||
|
||||
eoutdent
|
||||
eend $?
|
||||
|
||||
eend $ret
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ depend()
|
||||
{
|
||||
need localmount
|
||||
after bootmisc
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -7,6 +7,7 @@ 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 ]; then
|
||||
if [ "$RC_UNAME" = Linux -a "$IFACE" != lo ]; then
|
||||
need sysfs
|
||||
fi
|
||||
after bootmisc
|
||||
keyword -jail -vserver
|
||||
keyword -jail -prefix -vserver
|
||||
|
||||
case "${IFACE}" in
|
||||
lo|lo0) provide lo;;
|
||||
lo|lo0) ;;
|
||||
*)
|
||||
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:-5}}
|
||||
timeout=${timeout:-${carrier_timeout:-0}}
|
||||
|
||||
# Incase users don't want this nice feature ...
|
||||
[ ${timeout} -le 0 ] && return 0
|
||||
|
||||
@@ -2,62 +2,26 @@
|
||||
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
|
||||
# Released under the 2-clause BSD license.
|
||||
|
||||
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
|
||||
}
|
||||
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.
|
||||
|
||||
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 nfs nfsmount portmap rpcbind rpc.statd rpc.lockd
|
||||
keyword -jail -vserver
|
||||
use dns
|
||||
keyword -jail -prefix -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)
|
||||
# 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
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
fs="$fs${fs:+,}$x"
|
||||
@@ -82,7 +46,14 @@ stop()
|
||||
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
|
||||
|
||||
for x in $net_fs_list $extra_net_fs_list; do
|
||||
fs="$fs${fs:+,}$x"
|
||||
case "$x" in
|
||||
nfs|nfs4)
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
fs="$fs${fs:+,}$x"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ -n "$fs" ]; then
|
||||
umount -at $fs || eerror "Failed to simply unmount filesystems"
|
||||
@@ -91,7 +62,14 @@ stop()
|
||||
eindent
|
||||
fs=
|
||||
for x in $net_fs_list $extra_net_fs_list; do
|
||||
fs="$fs${fs:+|}$x"
|
||||
case "$x" in
|
||||
nfs|nfs4)
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
fs="$fs${fs:+|}$x"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
[ -n "$fs" ] && fs="^($fs)$"
|
||||
do_unmount umount ${fs:+--fstype-regex} $fs --netdev
|
||||
|
||||
@@ -12,8 +12,10 @@ depend()
|
||||
{
|
||||
need localmount
|
||||
after bootmisc
|
||||
provide net
|
||||
keyword -jail -vserver
|
||||
if [ -n "$(interfaces)" ]; then
|
||||
provide net
|
||||
fi
|
||||
keyword -jail -prefix -vserver
|
||||
}
|
||||
|
||||
uniqify()
|
||||
@@ -219,12 +221,6 @@ 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,6 +7,7 @@ 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 -vserver -lxc
|
||||
keyword -openvz -prefix -vserver -lxc
|
||||
}
|
||||
|
||||
_setleds()
|
||||
|
||||
@@ -11,7 +11,7 @@ extra_started_commands="reload"
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -12,7 +12,7 @@ depend()
|
||||
need localmount
|
||||
use logger
|
||||
after bootmisc
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start_pre()
|
||||
|
||||
@@ -8,7 +8,7 @@ depend()
|
||||
{
|
||||
use modules devfs
|
||||
need localmount
|
||||
keyword -openvz -vserver -lxc
|
||||
keyword -openvz -prefix -vserver -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -7,6 +7,7 @@ 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 -vserver -lxc
|
||||
keyword -jail -openvz -prefix -vserver -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -13,6 +13,14 @@ 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,8 +6,9 @@ description="Saves a kernel dump."
|
||||
|
||||
depend()
|
||||
{
|
||||
need localmount
|
||||
keyword -jail
|
||||
need dumpon localmount
|
||||
before encswap
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -12,7 +12,7 @@ depend()
|
||||
{
|
||||
provide net
|
||||
use network
|
||||
keyword -jail -vserver
|
||||
keyword -jail -prefix -vserver
|
||||
}
|
||||
|
||||
pre_flight_checks()
|
||||
@@ -93,11 +93,6 @@ 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
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
depend()
|
||||
{
|
||||
before localmount
|
||||
keyword -jail -openvz -vserver -lxc
|
||||
keyword -jail -openvz -prefix -vserver -lxc
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -31,14 +31,16 @@ stop()
|
||||
|
||||
case "$RC_UNAME" in
|
||||
Linux)
|
||||
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
|
||||
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
|
||||
;;
|
||||
esac
|
||||
eend 0
|
||||
|
||||
@@ -8,7 +8,7 @@ depend()
|
||||
{
|
||||
before *
|
||||
provide clock
|
||||
keyword -openvz -uml -vserver -xenu -lxc
|
||||
keyword -openvz -prefix -uml -vserver -xenu -lxc
|
||||
}
|
||||
|
||||
# swclock is an OpenRC built in
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
keyword -jail
|
||||
keyword -jail -prefix
|
||||
}
|
||||
|
||||
start() {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
depend()
|
||||
{
|
||||
before bootmisc logger
|
||||
keyword -prefix
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
depend()
|
||||
{
|
||||
before bootmisc logger
|
||||
keyword -lxc -vserver
|
||||
keyword -lxc -prefix -vserver
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -6,7 +6,7 @@ description="Mount the sys filesystem."
|
||||
|
||||
depend()
|
||||
{
|
||||
keyword -vserver
|
||||
keyword -lxc -prefix -vserver
|
||||
}
|
||||
|
||||
mount_sys()
|
||||
@@ -74,7 +74,6 @@ 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"
|
||||
@@ -83,6 +82,8 @@ 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,4 +16,5 @@ depend()
|
||||
use net newsyslog
|
||||
need localmount
|
||||
after bootmisc
|
||||
keyword -prefix
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
|
||||
|
||||
depend()
|
||||
{
|
||||
keyword -openvz -uml -vserver -xenu
|
||||
keyword -lxc -openvz -prefix -uml -vserver -xenu
|
||||
use root
|
||||
after bootmisc
|
||||
}
|
||||
|
||||
18
init.d/tmpfiles.setup.in
Normal file
18
init.d/tmpfiles.setup.in
Normal file
@@ -0,0 +1,18 @@
|
||||
#!@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,6 +5,7 @@
|
||||
depend()
|
||||
{
|
||||
after fsck
|
||||
keyword -prefix
|
||||
}
|
||||
|
||||
start()
|
||||
|
||||
@@ -8,7 +8,7 @@ description="Initializes the random number generator."
|
||||
depend()
|
||||
{
|
||||
need localmount
|
||||
keyword -jail -openvz
|
||||
keyword -jail -lxc -openvz -prefix
|
||||
}
|
||||
|
||||
save_seed()
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
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 provide an easy interface
|
||||
is basically an interpreter for shell scripts which provides 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. Here's the keywords we currently understand:-
|
||||
Tags a service with a keyword. These are the keywords we currently understand:
|
||||
.Bl -tag -width indent
|
||||
.It Dv -shutdown
|
||||
Don't stop this service when shutting the system down.
|
||||
@@ -180,6 +180,8 @@ 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
|
||||
@@ -350,8 +352,14 @@ 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
|
||||
@@ -388,8 +396,9 @@ 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.
|
||||
rc_keyword="-keyword"
|
||||
# It's also possible to negate keywords. This is mainly useful for prefix
|
||||
# users testing OpenRC.
|
||||
rc_keyword="!-prefix"
|
||||
.Ed
|
||||
.Sh EXAMPLES
|
||||
.Pp
|
||||
@@ -438,8 +447,22 @@ 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
|
||||
|
||||
6
mk/os-prefix.mk
Normal file
6
mk/os-prefix.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
# 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,5 +7,6 @@ _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,9 +11,14 @@ SED?= sed
|
||||
SH= /bin/sh
|
||||
|
||||
PREFIX?=
|
||||
_UPREFIX_SH= case "${PREFIX}" in "") echo /usr;; *) echo "${PREFIX}";; esac
|
||||
_UPREFIX:= $(shell ${_UPREFIX_SH})
|
||||
UPREFIX= ${_UPREFIX}
|
||||
ifeq (${PREFIX},)
|
||||
UPREFIX= /usr
|
||||
else
|
||||
UPREFIX= ${PREFIX}
|
||||
ifeq (${MKPREFIX},yes)
|
||||
UPREFIX= ${PREFIX}/usr
|
||||
endif
|
||||
endif
|
||||
LOCAL_PREFIX= /usr/local
|
||||
|
||||
PICFLAG?= -fPIC
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
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"
|
||||
@@ -23,6 +29,9 @@ bonding_pre_start()
|
||||
eval primary="\$primary_${IFVAR}"
|
||||
unset primary_${IFVAR}
|
||||
|
||||
eval subsume="\$subsume_${IFVAR}"
|
||||
unset subsume_${IFVAR}
|
||||
|
||||
|
||||
[ -z "${slaves}" ] && return 0
|
||||
|
||||
@@ -34,6 +43,10 @@ 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
|
||||
@@ -51,7 +64,18 @@ bonding_pre_start()
|
||||
|
||||
# Configure the bond mode, then we can reloop to ensure we configure
|
||||
# All other options
|
||||
for x in /sys/class/net/"${IFACE}"/bonding/mode; do
|
||||
[ -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
|
||||
[ -f "${x}" ] || continue
|
||||
n=${x##*/}
|
||||
eval s=\$${n}_${IFVAR}
|
||||
@@ -62,11 +86,11 @@ bonding_pre_start()
|
||||
fi
|
||||
done
|
||||
# Nice and dynamic for remaining options:)
|
||||
for x in /sys/class/net/"${IFACE}"/bonding/*; do
|
||||
[ -d /sys/class/net ] && for x in /sys/class/net/"${IFACE}"/bonding/*; do
|
||||
[ -f "${x}" ] || continue
|
||||
n=${x##*/}
|
||||
eval s=\$${n}_${IFVAR}
|
||||
[ "${n}" != "mode" ] || continue
|
||||
[ "${n}" != "mode" -o "${n}" != "miimon" ] || continue
|
||||
if [ -n "${s}" ]; then
|
||||
einfo "Setting ${n}: ${s}"
|
||||
echo "${s}" >"${x}" || \
|
||||
@@ -84,15 +108,44 @@ bonding_pre_start()
|
||||
_exists true || return 1
|
||||
done
|
||||
|
||||
# Must force the slaves to a particular state before adding them
|
||||
for IFACE in ${slaves}; do
|
||||
_delete_addresses
|
||||
_down
|
||||
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
|
||||
)
|
||||
|
||||
# now force the master to up
|
||||
_up
|
||||
# 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
|
||||
|
||||
# finally add in slaves
|
||||
# things needed in the process, and if they are done by ifenslave, openrc, and/or the kernel.
|
||||
@@ -121,7 +174,7 @@ bonding_pre_start()
|
||||
fi
|
||||
done
|
||||
else
|
||||
/sbin/ifenslave "${IFACE}" ${slaves} >/dev/null
|
||||
ifenslave "${IFACE}" ${slaves} >/dev/null
|
||||
fi
|
||||
eend $?
|
||||
|
||||
@@ -132,6 +185,11 @@ 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}" \
|
||||
@@ -149,7 +207,7 @@ bonding_stop()
|
||||
echo -"${s}" > /sys/class/net/"${IFACE}"/bonding/slaves
|
||||
done
|
||||
else
|
||||
/sbin/ifenslave -d "${IFACE}" ${slaves}
|
||||
ifenslave -d "${IFACE}" ${slaves}
|
||||
fi
|
||||
|
||||
# reset all slaves
|
||||
|
||||
@@ -119,10 +119,8 @@ 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
|
||||
@@ -144,6 +142,7 @@ bridge_pre_start()
|
||||
) || return 1
|
||||
|
||||
# Bring up the bridge
|
||||
_set_flag promisc
|
||||
_up
|
||||
}
|
||||
|
||||
|
||||
@@ -10,12 +10,12 @@ iproute2_depend()
|
||||
|
||||
_up()
|
||||
{
|
||||
ip link set "${IFACE}" up
|
||||
ip link set dev "${IFACE}" up
|
||||
}
|
||||
|
||||
_down()
|
||||
{
|
||||
ip link set "${IFACE}" down
|
||||
ip link set dev "${IFACE}" down
|
||||
}
|
||||
|
||||
_exists()
|
||||
@@ -57,7 +57,7 @@ _set_flag()
|
||||
flag=${flag#-}
|
||||
opt="off"
|
||||
fi
|
||||
ip link set "${IFACE}" "${flag}" "${opt}"
|
||||
ip link set dev "${IFACE}" "${flag}" "${opt}"
|
||||
}
|
||||
|
||||
_get_mac_address()
|
||||
@@ -79,7 +79,7 @@ _get_mac_address()
|
||||
|
||||
_set_mac_address()
|
||||
{
|
||||
ip link set "${IFACE}" address "$1"
|
||||
ip link set dev "${IFACE}" address "$1"
|
||||
}
|
||||
|
||||
_get_inet_addresses()
|
||||
@@ -212,7 +212,7 @@ _delete_addresses()
|
||||
|
||||
_has_carrier()
|
||||
{
|
||||
return 0
|
||||
LC_ALL=C ip link show dev "${IFACE}" | grep -q "LOWER_UP"
|
||||
}
|
||||
|
||||
_tunnel()
|
||||
@@ -274,12 +274,12 @@ iproute2_pre_start()
|
||||
# MTU support
|
||||
local mtu=
|
||||
eval mtu=\$mtu_${IFVAR}
|
||||
[ -n "${mtu}" ] && ip link set "${IFACE}" mtu "${mtu}"
|
||||
[ -n "${mtu}" ] && ip link set dev "${IFACE}" mtu "${mtu}"
|
||||
|
||||
# TX Queue Length support
|
||||
local len=
|
||||
eval len=\$txqueuelen_${IFVAR}
|
||||
[ -n "${len}" ] && ip link set "${IFACE}" txqueuelen "${len}"
|
||||
[ -n "${len}" ] && ip link set dev "${IFACE}" txqueuelen "${len}"
|
||||
|
||||
return 0
|
||||
}
|
||||
@@ -287,7 +287,7 @@ iproute2_pre_start()
|
||||
_iproute2_ipv6_tentative()
|
||||
{
|
||||
# Only check tentative when we have a carrier.
|
||||
LC_ALL=C ip link show dev "${IFACE}" | grep -q "NO-CARRIER" && return 1
|
||||
_has_carrier || return 1
|
||||
LC_ALL=C ip addr show dev "${IFACE}" | \
|
||||
grep -q "^[[:space:]]*inet6 .* tentative"
|
||||
}
|
||||
|
||||
@@ -61,12 +61,12 @@ udhcpc_start()
|
||||
esac
|
||||
|
||||
case " ${args} " in
|
||||
*" --hosname="*|*" -h "*|*" -H "*);;
|
||||
*" --hostname="*|*" -h "*|*" -H "*);;
|
||||
*)
|
||||
if ${sendhost}; then
|
||||
local hname="$(hostname)"
|
||||
if [ "${hname}" != "(none)" ] && [ "${hname}" != "localhost" ]; then
|
||||
args="${args} --hostname='${hname}'"
|
||||
args="${args} -x hostname:'${hname}'"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
31
net/vlan.sh
31
net/vlan.sh
@@ -66,26 +66,41 @@ 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=\$vlan${vlan}_name
|
||||
eval vname=\$${IFACE}_vlan${vlan}_name
|
||||
[ -z "${vname}" ] && eval vname=\$vlan${vlan}_name
|
||||
[ -z "${vname}" ] && vname="${IFACE}.${vlan}"
|
||||
# 2) flags
|
||||
eval vflags=\$vlan${vlan}_flags
|
||||
eval vflags=\$${IFACE}_vlan${vlan}_flags
|
||||
[ -z "${vname}" ] && eval vflags=\$vlan${vlan}_flags
|
||||
# 3) ingress/egress map
|
||||
eval vingress=\$vlan${vlan}_ingress
|
||||
eval vingress=\$${IFACE}_vlan${vlan}_ingress
|
||||
[ -z "${vingress}" ] && eval vingress=\$vlan${vlan}_ingress
|
||||
[ -z "${vingress}" ] || vingress="ingress-qos-map ${vingress}"
|
||||
eval vegress=\$vlan${vlan}_egress
|
||||
eval vegress=\$${IFACE}_vlan${vlan}_egress
|
||||
[ -z "${vegress}" ] && eval vegress=\$vlan${vlan}_egress
|
||||
[ -z "${vegress}" ] || vegress="egress-qos-map ${vegress}"
|
||||
|
||||
# txqueue
|
||||
local txqueuelen=
|
||||
eval txqueuelen=\$txqueuelen_vlan${vlan}
|
||||
eval txqueuelen=\$txqueuelen_${IFACE}_vlan${vlan}
|
||||
[ -z "${txqueuelen}" ] && eval txqueuelen=\$txqueuelen_vlan${vlan}
|
||||
# mac
|
||||
local mac=
|
||||
eval mac=\$mac_vlan${vlan}
|
||||
eval mac=\$mac_${IFACE}_vlan${vlan}
|
||||
[ -z "${mac}" ] && eval mac=\$mac_vlan${vlan}
|
||||
# broadcast
|
||||
local broadcast=
|
||||
eval broadcast=\$broadcast_vlan${vlan}
|
||||
eval broadcast=\$broadcast_${IFACE}_vlan${vlan}
|
||||
[ -z "${broadcast}" ] && eval broadcast=\$broadcast_vlan${vlan}
|
||||
# mtu
|
||||
local mtu=
|
||||
eval mtu=\$mtu_vlan${vlan}
|
||||
eval mtu=\$mtu_${IFACE}_vlan${vlan}
|
||||
[ -z "${mtu}" ] && eval mtu=\$mtu_vlan${vlan}
|
||||
|
||||
# combine it all
|
||||
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,6 +10,12 @@ 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
|
||||
@@ -19,19 +25,25 @@ 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 net.lo0 newsyslog savecore syslogd
|
||||
BOOT-FreeBSD+= hostid newsyslog savecore syslogd
|
||||
# FreeBSD specific stuff
|
||||
BOOT-FreeBSD+= adjkerntz dumpon syscons
|
||||
|
||||
BOOT-Linux= hwclock keymaps modules mtab net.lo procfs termencoding
|
||||
BOOT-Linux+= hwclock keymaps modules mtab procfs termencoding tmpfiles.setup
|
||||
SHUTDOWN-Linux= killprocs mount-ro
|
||||
SYSINIT-Linux= devfs dmesg
|
||||
SYSINIT-Linux= devfs dmesg sysfs
|
||||
|
||||
# Generic BSD stuff
|
||||
BOOT-NetBSD= hostid net.lo0 newsyslog savecore syslogd
|
||||
BOOT-NetBSD+= hostid newsyslog savecore syslogd
|
||||
# NetBSD specific stuff
|
||||
BOOT-NetBSD+= devdb swap-blk ttys wscons
|
||||
|
||||
@@ -41,25 +53,35 @@ install:
|
||||
if ! test -d "${SYSINITDIR}"; then \
|
||||
${INSTALL} -d ${SYSINITDIR} || exit $$?; \
|
||||
for x in ${SYSINIT}; do \
|
||||
ln -snf ${PREFIX}/etc/init.d/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; \
|
||||
done \
|
||||
if test -n "${PREFIX}"; then \
|
||||
grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
|
||||
fi; \
|
||||
ln -snf ${INITDIR}/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; done \
|
||||
fi
|
||||
if ! test -d "${BOOTDIR}"; then \
|
||||
${INSTALL} -d ${BOOTDIR} || exit $$?; \
|
||||
for x in ${BOOT}; do \
|
||||
ln -snf ${PREFIX}/etc/init.d/"$$x" ${BOOTDIR}/"$$x" || exit $$?; \
|
||||
if test -n "${PREFIX}"; then \
|
||||
grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
|
||||
fi; \
|
||||
ln -snf ${INITDIR}/"$$x" ${BOOTDIR}/"$$x" || exit $$?; \
|
||||
done \
|
||||
fi
|
||||
if ! test -d "${DEFAULTDIR}"; then \
|
||||
${INSTALL} -d ${DEFAULTDIR} || exit $$?; \
|
||||
for x in ${DEFAULT}; do \
|
||||
ln -snf ${PREFIX}/etc/init.d/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; \
|
||||
done \
|
||||
if test -n "${PREFIX}"; then \
|
||||
grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
|
||||
fi; \
|
||||
ln -snf ${INITDIR}/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; done \
|
||||
fi
|
||||
if ! test -d "${SHUTDOWNDIR}"; then \
|
||||
${INSTALL} -d ${SHUTDOWNDIR} || exit $$?; \
|
||||
for x in ${SHUTDOWN}; do \
|
||||
ln -snf ${PREFIX}/etc/init.d/"$$x" ${SHUTDOWNDIR}/"$$x" || exit $$?; done \
|
||||
if test -n "${PREFIX}"; then \
|
||||
grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \
|
||||
fi; \
|
||||
ln -snf ${INITDIR}/"$$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; @LIBEXECDIR@/bin/$_e \"\$@\"; _r=\$?; \
|
||||
eval "$_e() { local _r; command $_e \"\$@\"; _r=\$?; \
|
||||
export EINFO_LASTCMD=$_e; return \$_r; }"
|
||||
done
|
||||
unset _e
|
||||
|
||||
@@ -37,14 +37,23 @@ 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
|
||||
eerror "The /run directory does not exist. Unable to continue."
|
||||
return 1
|
||||
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
|
||||
fi
|
||||
|
||||
if mountinfo -q /run; then
|
||||
einfo "/run is already mounted, skipping"
|
||||
else
|
||||
if [ "$sys" = VSERVER ]; then
|
||||
rm -rf /run/*
|
||||
elif ! mountinfo -q /run; then
|
||||
ebegin "Mounting /run"
|
||||
rc=0
|
||||
if ! fstabinfo --mount /run; then
|
||||
|
||||
@@ -13,21 +13,29 @@
|
||||
# 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 != '-' ] && chown $CHOPTS "$uid" "$path"
|
||||
[ $gid != '-' ] && chgrp $CHOPTS "$gid" "$path"
|
||||
[ $mode != '-' ] && chmod $CHOPTS "$mode" "$path"
|
||||
[ -x /sbin/restorecon ] && restorecon $CHOPTS "$path"
|
||||
[ $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"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -35,13 +43,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" ] && mknod $path b ${arg%:*} ${arg#*:}
|
||||
[ ! -e "$path" ] && dryrun_or_real 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" ] && mknod $path c ${arg%:*} ${arg#*:}
|
||||
[ ! -e "$path" ] && dryrun_or_real mknod $path c ${arg%:*} ${arg#*:}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,8 +60,8 @@ _f() {
|
||||
[ $CREATE -gt 0 ] || return 0
|
||||
|
||||
if [ ! -e "$path" ]; then
|
||||
install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
|
||||
[ -n "$arg" ] && _w "$@"
|
||||
dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
|
||||
[ -z "$arg" ] || _w "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -63,8 +71,8 @@ _F() {
|
||||
|
||||
[ $CREATE -gt 0 ] || return 0
|
||||
|
||||
install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
|
||||
[ -n "$arg" ] && _w "$@"
|
||||
dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
|
||||
[ -z "$arg" ] || _w "$@"
|
||||
}
|
||||
|
||||
_d() {
|
||||
@@ -74,7 +82,7 @@ _d() {
|
||||
[ $CREATE -gt 0 ] || return 0
|
||||
|
||||
if [ ! -d "$path" ]; then
|
||||
install -d -m"$mode" -o"$uid" -g"$gid" "$path"
|
||||
dryrun_or_real install -d -m"$mode" -o"$uid" -g"$gid" "$path"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -83,18 +91,18 @@ _D() {
|
||||
local path=$1 mode=$2 uid=$3 gid=$4
|
||||
|
||||
if [ -d "$path" ] && [ $REMOVE -gt 0 ]; then
|
||||
find "$path" -mindepth 1 -maxdepth 1 -xdev -exec rm -rf {} +
|
||||
dryrun_or_real find "$path" -mindepth 1 -maxdepth 1 -xdev -exec rm -rf {} +
|
||||
fi
|
||||
|
||||
if [ $CREATE -gt 0 ]; then
|
||||
install -d -m"$mode" -o"$uid" -g"$gid" "$path"
|
||||
dryrun_or_real 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" ] && ln -s "$args" "$path"
|
||||
[ ! -e "$path" ] && dryrun_or_real ln -s "$args" "$path"
|
||||
}
|
||||
|
||||
_p() {
|
||||
@@ -104,8 +112,8 @@ _p() {
|
||||
[ $CREATE -gt 0 ] || return 0
|
||||
|
||||
if [ ! -p "$path" ]; then
|
||||
mkfifo -m$mode "$path"
|
||||
chown "$uid:$gid" "$path"
|
||||
dryrun_or_real mkfifo -m$mode "$path"
|
||||
dryrun_or_real chown "$uid:$gid" "$path"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -129,9 +137,9 @@ _r() {
|
||||
|
||||
for path in ${paths}; do
|
||||
if [ -f "$path" ]; then
|
||||
rm -f "$path"
|
||||
dryrun_or_real rm -f "$path"
|
||||
elif [ -d "$path" ]; then
|
||||
rmdir "$path"
|
||||
dryrun_or_real rmdir "$path"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -145,14 +153,20 @@ _R() {
|
||||
[ $REMOVE -gt 0 ] || return 0
|
||||
|
||||
for path in ${paths}; do
|
||||
[ -d "$path" ] && rm -rf --one-file-system "$path"
|
||||
[ -d "$path" ] && dryrun_or_real 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
|
||||
[ -f "$path" ] && echo "$arg" >>"$path"
|
||||
if [ -f "$path" ]; then
|
||||
if [ $DRYRUN -eq 1 ]; then
|
||||
echo "echo \"$arg\" >>\"$path\""
|
||||
else
|
||||
echo "$arg" >>"$path"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_z() {
|
||||
@@ -187,6 +201,7 @@ 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}
|
||||
@@ -212,6 +227,11 @@ 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 )) -ne 1 ] ; then
|
||||
printf 'usage: %s [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"
|
||||
exit 1
|
||||
@@ -233,51 +253,40 @@ 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 line; do
|
||||
while read cmd path mode uid gid age arg; 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 "$1" -o -z "$2" ]; then
|
||||
if [ -z "$cmd" -o -z "$path" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# whine about invalid entries
|
||||
case $1 in
|
||||
case $cmd 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 [ "$3" = '-' -o "$3" = '' ]; then
|
||||
case ${1} in
|
||||
if [ "$mode" = '-' -o "$mode" = '' ]; then
|
||||
case "$cmd" 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
|
||||
|
||||
[ ${4} = '-' ] && uid=0
|
||||
[ ${5} = '-' ] && gid=0
|
||||
[ ${6} = '-' ] && age=0
|
||||
[ ${7} = '-' ] && arg=''
|
||||
[ "$uid" = '-' -o "$uid" = '' ] && uid=0
|
||||
[ "$gid" = '-' -o "$gid" = '' ] && gid=0
|
||||
[ "$age" = '-' -o "$age" = '' ] && age=0
|
||||
[ "$arg" = '-' -o "$arg" = '' ] && 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,6 +28,8 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#include "librc.h"
|
||||
|
||||
#define GENDEP RC_LIBEXECDIR "/sh/gendepends.sh"
|
||||
@@ -747,12 +749,15 @@ 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,6 +216,7 @@ 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__ */
|
||||
@@ -245,6 +246,10 @@ 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);
|
||||
@@ -281,6 +286,7 @@ rc_sys_v1(void)
|
||||
#endif
|
||||
|
||||
return NULL;
|
||||
#endif /* PREFIX */
|
||||
}
|
||||
librc_hidden_def(rc_sys_v1)
|
||||
|
||||
|
||||
@@ -33,10 +33,13 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#define RC_PREFIX "@PREFIX@"
|
||||
#define RC_SYSCONFDIR "@SYSCONFDIR@"
|
||||
#define RC_LIBDIR "@PREFIX@/@LIB@/rc"
|
||||
#define RC_LIBEXECDIR "@LIBEXECDIR@"
|
||||
#ifdef __linux__
|
||||
#if defined(PREFIX)
|
||||
#define RC_SVCDIR RC_LIBEXECDIR "/init.d"
|
||||
#elif defined(__linux__)
|
||||
#define RC_SVCDIR "@PREFIX@/run/openrc"
|
||||
#else
|
||||
#define RC_SVCDIR RC_LIBEXECDIR "/init.d"
|
||||
@@ -280,6 +283,7 @@ 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"
|
||||
"Run quietly (Does not affect errors)"
|
||||
|
||||
#define case_RC_COMMON_getopt_case_C setenv ("EINFO_COLOR", "NO", 1);
|
||||
#define case_RC_COMMON_getopt_case_h usage (EXIT_SUCCESS);
|
||||
|
||||
@@ -60,7 +60,8 @@ 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)
|
||||
do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type,
|
||||
bool trunc, bool chowner)
|
||||
{
|
||||
struct stat st;
|
||||
int fd, flags;
|
||||
@@ -132,14 +133,14 @@ do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type, bool trunc
|
||||
}
|
||||
|
||||
if (mode && (st.st_mode & 0777) != mode) {
|
||||
einfo("%s: correcting mode", applet);
|
||||
einfo("%s: correcting mode", path);
|
||||
if (chmod(path, mode)) {
|
||||
eerror("%s: chmod: %s", applet, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (st.st_uid != uid || st.st_gid != gid) {
|
||||
if (chowner && (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)) {
|
||||
@@ -222,19 +223,20 @@ checkpath(int argc, char **argv)
|
||||
struct group *gr = NULL;
|
||||
inode_t type = inode_unknown;
|
||||
int retval = EXIT_SUCCESS;
|
||||
bool trunc = 0;
|
||||
bool trunc = false;
|
||||
bool chowner = false;
|
||||
|
||||
while ((opt = getopt_long(argc, argv, getoptstring,
|
||||
longopts, (int *) 0)) != -1)
|
||||
{
|
||||
switch (opt) {
|
||||
case 'D':
|
||||
trunc = 1;
|
||||
trunc = true;
|
||||
case 'd':
|
||||
type = inode_dir;
|
||||
break;
|
||||
case 'F':
|
||||
trunc = 1;
|
||||
trunc = true;
|
||||
case 'f':
|
||||
type = inode_file;
|
||||
break;
|
||||
@@ -247,6 +249,7 @@ 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);
|
||||
@@ -272,7 +275,7 @@ checkpath(int argc, char **argv)
|
||||
gid = gr->gr_gid;
|
||||
|
||||
while (optind < argc) {
|
||||
if (do_check(argv[optind], uid, gid, mode, type, trunc))
|
||||
if (do_check(argv[optind], uid, gid, mode, type, trunc, chowner))
|
||||
retval = EXIT_FAILURE;
|
||||
optind++;
|
||||
}
|
||||
|
||||
@@ -282,7 +282,7 @@ fstabinfo(int argc, char **argv)
|
||||
END_ENT;
|
||||
|
||||
if (!TAILQ_FIRST(files))
|
||||
eerrorx("%s: emtpy fstab", argv[0]);
|
||||
eerrorx("%s: empty fstab", argv[0]);
|
||||
}
|
||||
|
||||
if (!TAILQ_FIRST(files)) {
|
||||
|
||||
@@ -390,12 +390,8 @@ 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);
|
||||
@@ -475,7 +471,6 @@ 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) {
|
||||
@@ -485,7 +480,7 @@ mountinfo(int argc, char **argv)
|
||||
if (skip_point_regex &&
|
||||
regexec(skip_point_regex, s->value, 0, NULL, 0) == 0)
|
||||
continue;
|
||||
if (! quiet)
|
||||
if (! rc_yesno(getenv("EINFO_QUIET")))
|
||||
printf("%s\n", s->value);
|
||||
result = EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -343,7 +343,7 @@ do_mark_service(int argc, char **argv)
|
||||
if (service == NULL || *service == '\0')
|
||||
eerrorx("%s: no service specified", applet);
|
||||
|
||||
if (strncmp(applet, "mark_", 5) &&
|
||||
if (!strncmp(applet, "mark_", 5) &&
|
||||
(bit = lookup_service_state(applet + 5)))
|
||||
ok = rc_service_mark(service, bit);
|
||||
else
|
||||
|
||||
@@ -191,6 +191,10 @@ 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,8 +315,7 @@ 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;
|
||||
}
|
||||
|
||||
@@ -355,8 +354,7 @@ 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)
|
||||
@@ -417,7 +415,7 @@ run_stop_schedule(const char *exec, const char *const *argv,
|
||||
}
|
||||
|
||||
if (pidfile) {
|
||||
pid = get_pid(pidfile, quiet);
|
||||
pid = get_pid(pidfile, false);
|
||||
if (pid == -1)
|
||||
return 0;
|
||||
}
|
||||
@@ -436,9 +434,7 @@ run_stop_schedule(const char *exec, const char *const *argv,
|
||||
if (tkilled == 0) {
|
||||
if (progressed)
|
||||
printf("\n");
|
||||
if (! quiet)
|
||||
eerror("%s: no matching "
|
||||
"processes found", applet);
|
||||
eerror("%s: no matching processes found", applet);
|
||||
}
|
||||
return tkilled;
|
||||
}
|
||||
@@ -508,14 +504,10 @@ run_stop_schedule(const char *exec, const char *const *argv,
|
||||
|
||||
if (progressed)
|
||||
printf("\n");
|
||||
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);
|
||||
}
|
||||
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;
|
||||
}
|
||||
@@ -1295,7 +1287,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 || quiet || redirect_stderr)
|
||||
if (background || redirect_stderr)
|
||||
dup2(stderr_fd, STDERR_FILENO);
|
||||
|
||||
for (i = getdtablesize() - 1; i >= 3; --i)
|
||||
@@ -1326,12 +1318,9 @@ start_stop_daemon(int argc, char **argv)
|
||||
return -1;
|
||||
}
|
||||
} while (!WIFEXITED(i) && !WIFSIGNALED(i));
|
||||
if (!WIFEXITED(i) || WEXITSTATUS(i) != 0) {
|
||||
if (!quiet)
|
||||
eerrorx("%s: failed to start `%s'",
|
||||
applet, exec);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (!WIFEXITED(i) || WEXITSTATUS(i) != 0)
|
||||
eerrorx("%s: failed to start `%s'", applet, exec);
|
||||
|
||||
pid = spid;
|
||||
}
|
||||
|
||||
@@ -1365,7 +1354,7 @@ start_stop_daemon(int argc, char **argv)
|
||||
alive = true;
|
||||
} else {
|
||||
if (pidfile) {
|
||||
pid = get_pid(pidfile, true);
|
||||
pid = get_pid(pidfile, false);
|
||||
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 -dk
|
||||
l6r:6:wait:/sbin/reboot -d
|
||||
#z6:6:respawn:/sbin/sulogin
|
||||
|
||||
# new-style single-user
|
||||
|
||||
@@ -9,10 +9,6 @@ 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
|
||||
@@ -21,6 +17,9 @@ 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