Compare commits
	
		
			12 Commits
		
	
	
		
			openrc-0.1
			...
			openrc-0.1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 31dbdf69d2 | ||
|   | c7e14b2c17 | ||
|   | 6ceb62969a | ||
|   | d5ecc9d746 | ||
|   | 6df5176462 | ||
|   | 0c6df86503 | ||
|   | cd2d520fd1 | ||
|   | 0e3860e76f | ||
|   | 670b72b328 | ||
|   | 3ebaa31edb | ||
|   | 0f3813c8cf | ||
|   | 28c13790ff | 
							
								
								
									
										11
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								Makefile
									
									
									
									
									
								
							| @@ -4,12 +4,7 @@ | |||||||
|  |  | ||||||
| include Makefile.inc | include Makefile.inc | ||||||
|  |  | ||||||
| SUBDIR=		conf.d etc init.d local.d man scripts sh src sysctl.d | SUBDIR=		conf.d doc etc init.d local.d sysctl.d man net scripts sh src | ||||||
|  |  | ||||||
| # Build our old net foo or not |  | ||||||
| ifeq (${MKNET},oldnet) |  | ||||||
| SUBDIR+=	net doc |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| # Build pkgconfig or not | # Build pkgconfig or not | ||||||
| MKPKGCONFIG?=	yes | MKPKGCONFIG?=	yes | ||||||
| @@ -30,9 +25,7 @@ include ${MK}/dist.mk | |||||||
| include ${MK}/git.mk | include ${MK}/git.mk | ||||||
|  |  | ||||||
| _installafter: | _installafter: | ||||||
| ifeq (${MKPREFIX},yes) | ifneq ($(OS),Linux) | ||||||
| 	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d |  | ||||||
| else ifneq (${OS},Linux) |  | ||||||
| 	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d | 	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/init.d | ||||||
| endif | endif | ||||||
| 	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp | 	${INSTALL} -d ${DESTDIR}/${LIBEXECDIR}/tmp | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| NAME=		openrc | NAME=		openrc | ||||||
| VERSION=	0.11.2 | VERSION=	0.10.5 | ||||||
| PKG=		${NAME}-${VERSION} | PKG=		${NAME}-${VERSION} | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								README
									
									
									
									
									
								
							| @@ -10,9 +10,7 @@ You may wish to tweak the installation with the below arguments | |||||||
| PROGLDFLAGS=-static | PROGLDFLAGS=-static | ||||||
| LIBNAME=lib64 | LIBNAME=lib64 | ||||||
| DESTDIR=/tmp/openrc-image | DESTDIR=/tmp/openrc-image | ||||||
| MKNET=oldnet |  | ||||||
| MKPAM=pam | MKPAM=pam | ||||||
| MKPREFIX=yes |  | ||||||
| MKPKGCONFIG=no | MKPKGCONFIG=no | ||||||
| MKSELINUX=yes | MKSELINUX=yes | ||||||
| MKSTATICLIBS=no | 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. | You may need to use PROGLDFLAGS=-Wl,-Bstatic on glibc instead of just -static. | ||||||
| If you debug memory under valgrind, add -DDEBUG_MEMORY to your CPPFLAGS | If you debug memory under valgrind, add -DDEBUG_MEMORY to your CPPFLAGS | ||||||
| so that all malloc memory should be freed at exit. | so that all malloc memory should be freed at exit. | ||||||
| If you are building OpenRC for a Gentoo Prefix installation, add |  | ||||||
| MKPREFIX=yes. |  | ||||||
|  |  | ||||||
| You can also brand OpenRC if you so wish like so | You can also brand OpenRC if you so wish like so | ||||||
| BRANDING=\"Gentoo/$(uname -s)\" | BRANDING=\"Gentoo/$(uname -s)\" | ||||||
|   | |||||||
| @@ -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,11 +1,9 @@ | |||||||
| DIR=	${CONFDIR} | DIR=	${CONFDIR} | ||||||
| CONF=	bootmisc fsck hostname localmount urandom tmpfilesd ${CONF-${OS}} | CONF=	bootmisc fsck hostname localmount network staticroute urandom \ | ||||||
|  | 	${CONF-${OS}} | ||||||
|  |  | ||||||
| ifeq (${MKNET},) |  | ||||||
| CONF+= network staticroute |  | ||||||
| TARGETS+=	network staticroute | TARGETS+=	network staticroute | ||||||
| CLEANFILES+=	network staticroute | CLEANFILES+=	network staticroute | ||||||
| endif |  | ||||||
|  |  | ||||||
| MK=	../mk | MK=	../mk | ||||||
| include ${MK}/os.mk | include ${MK}/os.mk | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| # Sets the level at which logging of messages is done to the | # Sets the level at which logging of messages is done to the | ||||||
| # console.  See dmesg(1) for more info. | # console.  See dmesg(8) for more info. | ||||||
| dmesg_level="1" | dmesg_level="1" | ||||||
|   | |||||||
| @@ -1,3 +0,0 @@ | |||||||
| # Extra options for tmpfiles.sh |  | ||||||
| #tmpfiles_opts="--verbose" |  | ||||||
| tmpfiles_opts="" |  | ||||||
| @@ -552,34 +552,26 @@ | |||||||
| # You can also configure the VLAN - see for ip man page for more details | # 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" | # 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' | # 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 | # functionality. | ||||||
| # 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" | #vlan1_name="vlan1" | ||||||
| #eth0_vlan2_name="eth0.2" | #vlan2_name="eth0.2" | ||||||
| #eth1_vlan2_name="eth1.2" |  | ||||||
|  |  | ||||||
| # The following shows the old set_name_type setting and what new option to set: | # The following shows the old set_name_type setting and what new option to set: | ||||||
| # Using eth9 & VLAN VID 26 as an example. | # Using eth9 & VLAN VID 26 as an example. | ||||||
| # VLAN_PLUS_VID         vlan26_name="vlan0026" | # VLAN_PLUS_VID         vlan26_name="vlan0026" | ||||||
| # VLAN_PLUS_VID_NO_PAD  vlan26_name="vlan26" | # VLAN_PLUS_VID_NO_PAD  vlan26_name="vlan26" | ||||||
| # DEV_PLUS_VID          eth9_vlan26_name="eth9.0026" | # DEV_PLUS_VID          vlan26_name="eth9.0026" | ||||||
| # DEV_PLUS_VID_NO_PAD   eth9_vlan26_name="eth9.26" | # DEV_PLUS_VID_NO_PAD   vlan26_name="eth9.26" | ||||||
|  |  | ||||||
| # Set the vlan flags | # Set the vlan flags | ||||||
| #vlan1_flags="reorder_hdr off gvrp on loose_binding on" | #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 | # Configure in/egress maps | ||||||
| #vlan1_ingress="2:6 3:5" | #vlan1_ingress="2:6 3:5" | ||||||
| #eth0_vlan1_egress="1:2" | #vlan1_egress="1:2" | ||||||
|  |  | ||||||
| #config_vlan1="172.16.2.1/24" | #config_vlan1="172.16.3.1/23" | ||||||
| #config_vlan2="172.16.3.1/24" | #config_vlan2="172.16.2.1/23" | ||||||
| #config_eth0_1="172.16.4.1/24" |  | ||||||
| #config_eth1_1="172.16.5.1/24" |  | ||||||
|  |  | ||||||
| # NOTE: Vlans can be configured with a . in their interface names | # NOTE: Vlans can be configured with a . in their interface names | ||||||
| # When configuring vlans with this name type, you need to replace . with a _ | # When configuring vlans with this name type, you need to replace . with a _ | ||||||
| @@ -646,17 +638,6 @@ | |||||||
| # ppp devices - we need to depend function on the bonded interfaces | # ppp devices - we need to depend function on the bonded interfaces | ||||||
| #rc_net_bond0_need="net.eth0 net.eth1" | #rc_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 | # Classical IP over ATM | ||||||
|   | |||||||
| @@ -4,7 +4,6 @@ | |||||||
| # This is the subsystem type. Valid options on FreeBSD: | # This is the subsystem type. Valid options on FreeBSD: | ||||||
| # ""        - nothing special | # ""        - nothing special | ||||||
| # "jail"    - FreeBSD jails | # "jail"    - FreeBSD jails | ||||||
| # "prefix"  - Prefix |  | ||||||
| # If this is commented out, automatic detection will be used. | # If this is commented out, automatic detection will be used. | ||||||
| # | # | ||||||
| # This should be set to the value representing the environment this file is | # This should be set to the value representing the environment this file is | ||||||
|   | |||||||
| @@ -5,7 +5,6 @@ | |||||||
| # ""        - nothing special | # ""        - nothing special | ||||||
| # "lxc"     - Linux Containers | # "lxc"     - Linux Containers | ||||||
| # "openvz"  - Linux OpenVZ | # "openvz"  - Linux OpenVZ | ||||||
| # "prefix"  - Prefix |  | ||||||
| # "uml"     - Usermode Linux | # "uml"     - Usermode Linux | ||||||
| # "vserver" - Linux vserver | # "vserver" - Linux vserver | ||||||
| # "xen0"    - Xen0 Domain | # "xen0"    - Xen0 Domain | ||||||
| @@ -19,11 +18,3 @@ | |||||||
| # This is the number of tty's used in most of the rc-scripts (like | # This is the number of tty's used in most of the rc-scripts (like | ||||||
| # consolefont, numlock, etc ...) | # consolefont, numlock, etc ...) | ||||||
| rc_tty_number=12 | rc_tty_number=12 | ||||||
|  |  | ||||||
| # If you have cgroups turned on in your kernel, this switch controls |  | ||||||
| # whether or not a group for each controler is mounted under |  | ||||||
| # /sys/fs/cgroup. |  | ||||||
| # Support for process management by cgroups is planned in the future, |  | ||||||
| # so if you turn this off, be aware that you may not be able to use that |  | ||||||
| # feature. |  | ||||||
| #rc_controller_cgroups="YES" |  | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ | |||||||
|  |  | ||||||
| # This is the subsystem type. Valid options on NetBSD: | # This is the subsystem type. Valid options on NetBSD: | ||||||
| # ""        - nothing special | # ""        - nothing special | ||||||
| # "prefix"  - Prefix |  | ||||||
| # "xen0"    - Xen0 Domain | # "xen0"    - Xen0 Domain | ||||||
| # "xenU"    - XenU Domain | # "xenU"    - XenU Domain | ||||||
| # If this is commented out, automatic detection will be used. | # If this is commented out, automatic detection will be used. | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -41,5 +41,3 @@ syslogd | |||||||
| termencoding | termencoding | ||||||
| ttys | ttys | ||||||
| wscons | wscons | ||||||
| tmpfilesd.boot |  | ||||||
| tmpfilesd.sysinit |  | ||||||
|   | |||||||
| @@ -1,19 +1,12 @@ | |||||||
| DIR=	${INITDIR} | DIR=	${INITDIR} | ||||||
| SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ | SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ | ||||||
| 	root.in savecache.in swap.in swapfiles.in \ | 	network.in root.in savecache.in staticroute.in swap.in swapfiles.in \ | ||||||
| 	tmpfilesd.boot.in tmpfilesd.sysinit.in \ |  | ||||||
| 	swclock.in sysctl.in urandom.in ${SRCS-${OS}} | 	swclock.in sysctl.in urandom.in ${SRCS-${OS}} | ||||||
| BIN=	${OBJS} | BIN=	${OBJS} | ||||||
|  |  | ||||||
| # Build our old net foo or not |  | ||||||
| ifeq (${MKNET},) |  | ||||||
| SRCS+= network.in staticroute.in |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| ifeq (${MKNET},oldnet) |  | ||||||
| INSTALLAFTER=	_installafter_net.lo | INSTALLAFTER=	_installafter_net.lo | ||||||
| SRCS+= net.lo.in | CLEANFILES+=	net.lo | ||||||
| endif | TARGETS+=	net.lo | ||||||
|  |  | ||||||
| MK=	../mk | MK=	../mk | ||||||
| include ${MK}/os.mk | include ${MK}/os.mk | ||||||
| @@ -23,8 +16,8 @@ NET_LO-FreeBSD=	net.lo0 | |||||||
| SRCS-FreeBSD=	hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \ | SRCS-FreeBSD=	hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \ | ||||||
| 		rpcbind.in savecore.in syslogd.in | 		rpcbind.in savecore.in syslogd.in | ||||||
| # These are FreeBSD specific | # These are FreeBSD specific | ||||||
| SRCS-FreeBSD+=	adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \ | SRCS-FreeBSD+=	adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \ | ||||||
| 		mixer.in nscd.in powerd.in syscons.in | 		powerd.in syscons.in | ||||||
|  |  | ||||||
| NET_LO-Linux=	net.lo | NET_LO-Linux=	net.lo | ||||||
| SRCS-Linux=	devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \ | 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 | 	   [ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then | ||||||
| 		need root | 		need root | ||||||
| 	fi | 	fi | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ depend() | |||||||
| 	need localmount | 	need localmount | ||||||
| 	before logger | 	before logger | ||||||
| 	after clock sysctl | 	after clock sysctl | ||||||
| 	keyword -prefix -timeout | 	keyword -timeout | ||||||
| } | } | ||||||
|  |  | ||||||
| : ${wipe_tmp:=${WIPE_TMP:-yes}} | : ${wipe_tmp:=${WIPE_TMP:-yes}} | ||||||
| @@ -112,7 +112,7 @@ start() | |||||||
| 		fi | 		fi | ||||||
| 	done | 	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/lock /run/lock | ||||||
| 		migrate_to_run	/var/run /run | 		migrate_to_run	/var/run /run | ||||||
| 	fi | 	fi | ||||||
| @@ -196,5 +196,3 @@ stop() | |||||||
|  |  | ||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
|  |  | ||||||
| # vim: ft=sh |  | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ depend() | |||||||
| { | { | ||||||
| 	need localmount termencoding | 	need localmount termencoding | ||||||
| 	after hotplug bootmisc | 	after hotplug bootmisc | ||||||
| 	keyword -openvz -prefix -uml -vserver -xenu -lxc | 	keyword -openvz -uml -vserver -xenu -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ depend() { | |||||||
| 	need localmount | 	need localmount | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| 	before net.lo0 | 	before net.lo0 | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start_pre() { | start_pre() { | ||||||
|   | |||||||
| @@ -5,9 +5,8 @@ | |||||||
| description="Mount system critical filesystems in /dev." | description="Mount system critical filesystems in /dev." | ||||||
|  |  | ||||||
| depend() { | depend() { | ||||||
| 	use dev-mount | 	use dev | ||||||
| 	before dev | 	keyword -vserver | ||||||
| 	keyword -prefix -vserver |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() { | start() { | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ description="Set the dmesg level for a cleaner boot" | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	before dev modules | 	before dev modules | ||||||
| 	keyword -lxc -prefix -vserver | 	keyword -vserver | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ description="Configures a specific kernel dump device." | |||||||
|  |  | ||||||
| depend() { | depend() { | ||||||
| 	need swap | 	need swap | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start() { | 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() | depend() | ||||||
| { | { | ||||||
| 	use dev clock modules | 	use dev clock modules | ||||||
| 	keyword -jail -openvz -prefix -timeout -vserver -lxc | 	keyword -jail -openvz -timeout -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| _abort() { | _abort() { | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ depend() | |||||||
| { | { | ||||||
| 	use root | 	use root | ||||||
| 	before devd net | 	before devd net | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| _set() | _set() | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| description="Sets the hostname of the machine." | description="Sets the hostname of the machine." | ||||||
|  |  | ||||||
| depend() { | depend() { | ||||||
| 	keyword -prefix -lxc | 	keyword -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ depend() | |||||||
| 	else | 	else | ||||||
| 		before * | 		before * | ||||||
| 	fi | 	fi | ||||||
| 	keyword -openvz -prefix -uml -vserver -xenu -lxc | 	keyword -openvz -uml -vserver -xenu -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| setupopts() | setupopts() | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ depend() | |||||||
| { | { | ||||||
| 	need localmount termencoding | 	need localmount termencoding | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| 	keyword -openvz -prefix -uml -vserver -xenu -lxc | 	keyword -openvz -uml -vserver -xenu -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -4,11 +4,6 @@ | |||||||
|  |  | ||||||
| description="Kill all processes so we can unmount disks cleanly." | description="Kill all processes so we can unmount disks cleanly." | ||||||
|  |  | ||||||
| depend() |  | ||||||
| { |  | ||||||
| 	keyword -prefix |  | ||||||
| } |  | ||||||
|  |  | ||||||
| start() | start() | ||||||
| { | { | ||||||
| 	ebegin "Terminating remaining processes" | 	ebegin "Terminating remaining processes" | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ depend() | |||||||
| 	need fsck | 	need fsck | ||||||
| 	use lvm modules mtab | 	use lvm modules mtab | ||||||
| 	after lvm modules | 	after lvm modules | ||||||
| 	keyword -jail -openvz -prefix -vserver -lxc | 	keyword -jail -openvz -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ extra_commands="restore" | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| restore() | restore() | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules." | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	use isapnp | 	use isapnp | ||||||
| 	keyword -openvz -prefix -vserver -lxc | 	keyword -openvz -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -7,13 +7,11 @@ description="Re-mount filesytems read-only for a clean reboot." | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need killprocs savecache | 	need killprocs savecache | ||||||
| 	keyword -openvz -prefix -vserver -lxc | 	keyword -openvz -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
| { | { | ||||||
| 	local ret=0 |  | ||||||
|  |  | ||||||
| 	# Flush all pending disk writes now | 	# Flush all pending disk writes now | ||||||
| 	sync; sync | 	sync; sync | ||||||
|  |  | ||||||
| @@ -41,9 +39,6 @@ start() | |||||||
| 	do_unmount "umount -r" \ | 	do_unmount "umount -r" \ | ||||||
| 		--skip-point-regex "$m" \ | 		--skip-point-regex "$m" \ | ||||||
| 		"${fs:+--skip-fstype-regex}" $fs --nonetdev | 		"${fs:+--skip-fstype-regex}" $fs --nonetdev | ||||||
| 	ret=$? |  | ||||||
|  |  | ||||||
| 	eoutdent | 	eoutdent | ||||||
|  | 	eend $? | ||||||
| 	eend $ret |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ depend() | |||||||
| { | { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -7,7 +7,6 @@ description="Update /etc/mtab to match what the kernel knows about" | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need root | 	need root | ||||||
| 	keyword -prefix |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -19,14 +19,14 @@ depend() | |||||||
| 	local IFVAR=$(shell_var "${IFACE}") | 	local IFVAR=$(shell_var "${IFACE}") | ||||||
|  |  | ||||||
| 	need localmount | 	need localmount | ||||||
| 	if [ "$RC_UNAME" = Linux -a "$IFACE" != lo ]; then | 	if [ "$RC_UNAME" = Linux ]; then | ||||||
| 		need sysfs | 		need sysfs | ||||||
| 	fi | 	fi | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| 	keyword -jail -prefix -vserver | 	keyword -jail -vserver | ||||||
|  |  | ||||||
| 	case "${IFACE}" in | 	case "${IFACE}" in | ||||||
| 		lo|lo0) ;; | 		lo|lo0) provide lo;; | ||||||
| 		*) | 		*) | ||||||
| 			after net.lo net.lo0 dbus | 			after net.lo net.lo0 dbus | ||||||
| 			provide net | 			provide net | ||||||
|   | |||||||
| @@ -2,27 +2,62 @@ | |||||||
| # Copyright (c) 2007-2009 Roy Marples <roy@marples.name> | # Copyright (c) 2007-2009 Roy Marples <roy@marples.name> | ||||||
| # Released under the 2-clause BSD license. | # Released under the 2-clause BSD license. | ||||||
|  |  | ||||||
| description="Mounts network shares, other than NFS, according to /etc/fstab." | description="Mounts network shares according to /etc/fstab." | ||||||
| # We skip all NFS shares in this script because they require extra |  | ||||||
| # daemons to be running on the client in order to work correctly. | need_portmap() | ||||||
| # It is best to allow nfs-utils to handle all nfs shares. | { | ||||||
|  | 	local opts= | ||||||
|  | 	local IFS=" | ||||||
|  | " | ||||||
|  | 	set -- $(fstabinfo --options --fstype nfs,nfs4) | ||||||
|  | 	for opts; do | ||||||
|  | 		case ,$opts, in | ||||||
|  | 			*,noauto,*|*,nolock,*);; | ||||||
|  | 			*) return 0;; | ||||||
|  | 		esac | ||||||
|  | 	done | ||||||
|  | 	return 1 | ||||||
|  | } | ||||||
|  |  | ||||||
| depend() | depend() | ||||||
| { | { | ||||||
|  | 	# Only have portmap as a dependency if there is a nfs mount in fstab | ||||||
|  | 	# that is set to mount at boot | ||||||
|  | 	local pmap= | ||||||
|  | 	if need_portmap; then | ||||||
|  | 		pmap="rpc.statd" | ||||||
|  | 		[ -x @SYSCONFDIR@/init.d/rpcbind ] \ | ||||||
|  | 			&& pmap="$pmap rpcbind" \ | ||||||
|  | 			|| pmap="$pmap portmap" | ||||||
|  | 	fi | ||||||
|  |  | ||||||
| 	config /etc/fstab | 	config /etc/fstab | ||||||
| 	need net | 	need net $pmap | ||||||
| 	use afc-client amd autofs openvpn | 	use afc-client amd autofs openvpn | ||||||
| 	use dns | 	use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd | ||||||
| 	keyword -jail -prefix -vserver | 	keyword -jail -vserver | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
| { | { | ||||||
|  | 	local myneed= myuse= pmap="portmap" nfsmounts= | ||||||
|  | 	[ -x @SYSCONFDIR@/init.d/rpcbind ] && pmap="rpcbind" | ||||||
|  |  | ||||||
| 	local x= fs= rc= | 	local x= fs= rc= | ||||||
| 	for x in $net_fs_list $extra_net_fs_list; do | 	for x in $net_fs_list $extra_net_fs_list; do | ||||||
| 		case "$x" in | 		case "$x" in | ||||||
| 			nfs|nfs4) | 			nfs|nfs4) | ||||||
| 			continue | 			# If the nfsmount script took care of the nfs | ||||||
|  | 			# filesystems, then there's no point in trying | ||||||
|  | 			# them twice | ||||||
|  | 			service_started nfsmount && continue | ||||||
|  |  | ||||||
|  | 			# Only try to mount NFS filesystems if portmap was | ||||||
|  | 			# started. This is to fix "hang" problems for new | ||||||
|  | 			# users who do not add portmap to the default runlevel. | ||||||
|  | 			if need_portmap && ! service_started "$pmap"; then | ||||||
|  | 				continue | ||||||
|  | 			fi | ||||||
| 			;; | 			;; | ||||||
| 		esac | 		esac | ||||||
| 		fs="$fs${fs:+,}$x" | 		fs="$fs${fs:+,}$x" | ||||||
| @@ -47,14 +82,7 @@ stop() | |||||||
| 	. "$RC_LIBEXECDIR"/sh/rc-mount.sh | 	. "$RC_LIBEXECDIR"/sh/rc-mount.sh | ||||||
|  |  | ||||||
| 	for x in $net_fs_list $extra_net_fs_list; do | 	for x in $net_fs_list $extra_net_fs_list; do | ||||||
| 		case "$x" in | 		fs="$fs${fs:+,}$x" | ||||||
| 			nfs|nfs4) |  | ||||||
| 				continue |  | ||||||
| 				;; |  | ||||||
| 			*) |  | ||||||
| 				fs="$fs${fs:+,}$x" |  | ||||||
| 				;; |  | ||||||
| 		esac |  | ||||||
| 	done | 	done | ||||||
| 	if [ -n "$fs" ]; then | 	if [ -n "$fs" ]; then | ||||||
| 		umount -at $fs || eerror "Failed to simply unmount filesystems" | 		umount -at $fs || eerror "Failed to simply unmount filesystems" | ||||||
| @@ -63,14 +91,7 @@ stop() | |||||||
| 	eindent | 	eindent | ||||||
| 	fs= | 	fs= | ||||||
| 	for x in $net_fs_list $extra_net_fs_list; do | 	for x in $net_fs_list $extra_net_fs_list; do | ||||||
| 		case "$x" in | 		fs="$fs${fs:+|}$x" | ||||||
| 			nfs|nfs4) |  | ||||||
| 				continue |  | ||||||
| 				;; |  | ||||||
| 			*) |  | ||||||
| 				fs="$fs${fs:+|}$x" |  | ||||||
| 				;; |  | ||||||
| 		esac |  | ||||||
| 	done | 	done | ||||||
| 	[ -n "$fs" ] && fs="^($fs)$" | 	[ -n "$fs" ] && fs="^($fs)$" | ||||||
| 	do_unmount umount ${fs:+--fstype-regex} $fs --netdev | 	do_unmount umount ${fs:+--fstype-regex} $fs --netdev | ||||||
|   | |||||||
| @@ -12,10 +12,8 @@ depend() | |||||||
| { | { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| 	if [ -n "$(interfaces)" ]; then | 	provide net | ||||||
| 		provide net | 	keyword -jail -vserver | ||||||
| 	fi |  | ||||||
| 	keyword -jail -prefix -vserver |  | ||||||
| } | } | ||||||
|  |  | ||||||
| uniqify() | uniqify() | ||||||
| @@ -221,6 +219,12 @@ start() | |||||||
| 		eend $? | 		eend $? | ||||||
| 	fi | 	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" | 	einfo "Starting network" | ||||||
| 	routeflush | 	routeflush | ||||||
| 	if [ "$RC_UNAME" = "Linux" ]; then | 	if [ "$RC_UNAME" = "Linux" ]; then | ||||||
|   | |||||||
| @@ -7,7 +7,6 @@ required_files="/etc/newsyslog.conf" | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -prefix |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -openvz -prefix -vserver -lxc | 	keyword -openvz -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| _setleds() | _setleds() | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ extra_started_commands="reload" | |||||||
|  |  | ||||||
| depend() { | depend() { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ depend() | |||||||
| 	need localmount | 	need localmount | ||||||
| 	use logger | 	use logger | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start_pre() | start_pre() | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ depend() | |||||||
| { | { | ||||||
| 	use modules devfs | 	use modules devfs | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -openvz -prefix -vserver -lxc | 	keyword -openvz -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -7,7 +7,6 @@ depend() | |||||||
| 	need localmount net | 	need localmount net | ||||||
| 	after * | 	after * | ||||||
| 	before local | 	before local | ||||||
| 	keyword -prefix |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ description="Mount the root fs read/write" | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need fsck | 	need fsck | ||||||
| 	keyword -jail -openvz -prefix -vserver -lxc | 	keyword -jail -openvz -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -13,14 +13,6 @@ start() | |||||||
| 			return 1 | 			return 1 | ||||||
| 		fi | 		fi | ||||||
| 	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" | 	ebegin "Saving dependency cache" | ||||||
| 	local rc= | 	local rc= | ||||||
| 	if [ ! -d "$RC_LIBEXECDIR"/cache ]; then | 	if [ ! -d "$RC_LIBEXECDIR"/cache ]; then | ||||||
|   | |||||||
| @@ -6,9 +6,8 @@ description="Saves a kernel dump." | |||||||
|  |  | ||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need dumpon localmount | 	need localmount | ||||||
| 	before encswap | 	keyword -jail | ||||||
| 	keyword -jail -prefix |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ depend() | |||||||
| { | { | ||||||
| 	provide net | 	provide net | ||||||
| 	use network | 	use network | ||||||
| 	keyword -jail -prefix -vserver | 	keyword -jail -vserver | ||||||
| } | } | ||||||
|  |  | ||||||
| pre_flight_checks() | pre_flight_checks() | ||||||
| @@ -93,6 +93,11 @@ do_routes() | |||||||
|  |  | ||||||
| start() | 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" | 	do_routes "Adding" "add" | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	before fsck | 	before fsck | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	before localmount | 	before localmount | ||||||
| 	keyword -jail -openvz -prefix -vserver -lxc | 	keyword -jail -openvz -vserver -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -31,16 +31,14 @@ stop() | |||||||
|  |  | ||||||
| 	case "$RC_UNAME" in | 	case "$RC_UNAME" in | ||||||
| 		Linux) | 		Linux) | ||||||
| 			if [ -e /proc/swaps ]; then | 			while read filename type rest; do | ||||||
| 				while read filename type rest; do | 				case "$type" in | ||||||
| 					case "$type" in | 					file) swapoff $filename >/dev/null;; | ||||||
| 						file) swapoff $filename >/dev/null;; | 				esac | ||||||
| 					esac | 				case "$filename" in | ||||||
| 					case "$filename" in | 					/dev/loop*) swapoff $filename >/dev/null;; | ||||||
| 						/dev/loop*) swapoff $filename >/dev/null;; | 				esac | ||||||
| 					esac | 			done < /proc/swaps | ||||||
| 				done < /proc/swaps |  | ||||||
| 			fi |  | ||||||
| 			;; | 			;; | ||||||
| 	esac | 	esac | ||||||
| 	eend 0 | 	eend 0 | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ depend() | |||||||
| { | { | ||||||
| 	before * | 	before * | ||||||
| 	provide clock | 	provide clock | ||||||
| 	keyword -openvz -prefix -uml -vserver -xenu -lxc | 	keyword -openvz -uml -vserver -xenu -lxc | ||||||
| } | } | ||||||
|  |  | ||||||
| # swclock is an OpenRC built in | # swclock is an OpenRC built in | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|  |  | ||||||
| depend() { | depend() { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -jail -prefix | 	keyword -jail | ||||||
| } | } | ||||||
|  |  | ||||||
| start() { | start() { | ||||||
|   | |||||||
| @@ -5,7 +5,6 @@ | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	before bootmisc logger | 	before bootmisc logger | ||||||
| 	keyword -prefix |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	before bootmisc logger | 	before bootmisc logger | ||||||
| 	keyword -lxc -prefix -vserver | 	keyword -lxc -vserver | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ description="Mount the sys filesystem." | |||||||
|  |  | ||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	keyword -lxc -prefix -vserver | 	keyword -vserver | ||||||
| } | } | ||||||
|  |  | ||||||
| mount_sys() | mount_sys() | ||||||
| @@ -74,6 +74,7 @@ mount_misc() | |||||||
|  |  | ||||||
| mount_cgroups() | mount_cgroups() | ||||||
| { | { | ||||||
|  | 	yesno ${rc_cgroups:-YES} && [ -e /proc/cgroups ] && \ | ||||||
| 		mountinfo -q /sys/fs/cgroup || return 0 | 		mountinfo -q /sys/fs/cgroup || return 0 | ||||||
|  |  | ||||||
| 	local agent="@LIBEXECDIR@/sh/cgroup-release-agent.sh" | 	local agent="@LIBEXECDIR@/sh/cgroup-release-agent.sh" | ||||||
| @@ -82,8 +83,6 @@ mount_cgroups() | |||||||
| 		-o none,nodev,noexec,nosuid,name=openrc,release_agent="$agent" \ | 		-o none,nodev,noexec,nosuid,name=openrc,release_agent="$agent" \ | ||||||
| 		openrc /sys/fs/cgroup/openrc | 		openrc /sys/fs/cgroup/openrc | ||||||
| 	echo 1 > /sys/fs/cgroup/openrc/notify_on_release | 	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 | 	while read name hier groups enabled rest; do | ||||||
| 		case "${enabled}" in | 		case "${enabled}" in | ||||||
| 			1)	mkdir /sys/fs/cgroup/${name} | 			1)	mkdir /sys/fs/cgroup/${name} | ||||||
|   | |||||||
| @@ -16,5 +16,4 @@ depend() | |||||||
| 	use net newsyslog | 	use net newsyslog | ||||||
| 	need localmount | 	need localmount | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| 	keyword -prefix |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} | |||||||
|  |  | ||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	keyword -lxc -openvz -prefix -uml -vserver -xenu | 	keyword -lxc -openvz -uml -vserver -xenu | ||||||
| 	use root | 	use root | ||||||
| 	after bootmisc | 	after bootmisc | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,18 +0,0 @@ | |||||||
| #!@PREFIX@/sbin/runscript |  | ||||||
| # Copyright 1999-2012 Gentoo Foundation |  | ||||||
| # Released under the 2-clause BSD license. |  | ||||||
|  |  | ||||||
| description="Create tmpfiles.d entries (boot)" |  | ||||||
|  |  | ||||||
| depend() |  | ||||||
| { |  | ||||||
| 	need localmount |  | ||||||
| } |  | ||||||
|  |  | ||||||
| start() |  | ||||||
| { |  | ||||||
| 	ebegin "Creating ${description#Create }" |  | ||||||
| 	@LIBEXECDIR@/sh/tmpfiles.sh --create ${tmpfiles_opts} |  | ||||||
| 	eend $? |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| #!@PREFIX@/sbin/runscript |  | ||||||
| # Copyright 1999-2012 Gentoo Foundation |  | ||||||
| # Released under the 2-clause BSD license. |  | ||||||
|  |  | ||||||
| description="Create tmpfiles.d entries (sysinit)" |  | ||||||
|  |  | ||||||
| depend() |  | ||||||
| { |  | ||||||
| 	# Convert to 'need dev' when the new udev is ready, for OpenRC 0.11 |  | ||||||
| 	#need dev-mount |  | ||||||
| 	use dev |  | ||||||
| } |  | ||||||
|  |  | ||||||
| start() |  | ||||||
| { |  | ||||||
| 	ebegin "Creating ${description#Create }" |  | ||||||
| 	@LIBEXECDIR@/sh/tmpfiles.sh --create ${tmpfiles_opts} |  | ||||||
| 	eend $? |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
| @@ -5,7 +5,6 @@ | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	after fsck | 	after fsck | ||||||
| 	keyword -prefix |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ description="Initializes the random number generator." | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -jail -lxc -openvz -prefix | 	keyword -jail -openvz | ||||||
| } | } | ||||||
|  |  | ||||||
| save_seed() | save_seed() | ||||||
|   | |||||||
| @@ -5,7 +5,6 @@ | |||||||
| depend() | depend() | ||||||
| { | { | ||||||
| 	need localmount | 	need localmount | ||||||
| 	keyword -prefix |  | ||||||
| } | } | ||||||
|  |  | ||||||
| start() | start() | ||||||
|   | |||||||
| @@ -46,7 +46,7 @@ Show all runlevels and their services. | |||||||
| List all services that have crashed. | List all services that have crashed. | ||||||
| .It Fl l , -list | .It Fl l , -list | ||||||
| List all defined runlevels. | List all defined runlevels. | ||||||
| .It Fl r , -runlevel | .It fl r , -runlevel | ||||||
| Print the current runlevel name. | Print the current runlevel name. | ||||||
| .It Fl s , -servicelist | .It Fl s , -servicelist | ||||||
| Show all services. | Show all services. | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ | |||||||
| .Op Ar command ... | .Op Ar command ... | ||||||
| .Sh DESCRIPTION | .Sh DESCRIPTION | ||||||
| .Nm | .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. | to the often complex system commands and daemons. | ||||||
| When a service runs a command it first loads its multiplexed configuration | When a service runs a command it first loads its multiplexed configuration | ||||||
| file, then its master configuration file, then | file, then its master configuration file, then | ||||||
| @@ -156,7 +156,7 @@ We provide this virtual service. For example, named provides dns. | |||||||
| .It Ic config | .It Ic config | ||||||
| We should recalculate our dependencies if the listed files have changed. | We should recalculate our dependencies if the listed files have changed. | ||||||
| .It Ic keyword | .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 | .Bl -tag -width indent | ||||||
| .It Dv -shutdown | .It Dv -shutdown | ||||||
| Don't stop this service when shutting the system down. | Don't stop this service when shutting the system down. | ||||||
| @@ -180,8 +180,6 @@ in | |||||||
| Same as -jail, but for Linux Resource Containers (LXC). | Same as -jail, but for Linux Resource Containers (LXC). | ||||||
| .It Dv -openvz | .It Dv -openvz | ||||||
| Same as -jail, but for OpenVZ systems. | Same as -jail, but for OpenVZ systems. | ||||||
| .It Dv -prefix |  | ||||||
| Same as -jail, but for Prefix systems. |  | ||||||
| .It Dv -uml | .It Dv -uml | ||||||
| Same as -jail, but for UML systems. | Same as -jail, but for UML systems. | ||||||
| .It Dv -vserver | .It Dv -vserver | ||||||
| @@ -352,14 +350,8 @@ Default runlevel chosen. Default is default. | |||||||
| .It Va RC_SYS | .It Va RC_SYS | ||||||
| A special variable to describe the system more. | A special variable to describe the system more. | ||||||
| Possible values are OPENVZ, XENU, XEN0, UML and VSERVER. | 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 | .It Va RC_UNAME | ||||||
| The result of `uname -s`. | 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 | .El | ||||||
| .Sh FILES | .Sh FILES | ||||||
| .Pp | .Pp | ||||||
| @@ -396,9 +388,8 @@ rc_provide_tap1="!net" | |||||||
| # To put in in /etc/rc.conf you would do it like this | # To put in in /etc/rc.conf you would do it like this | ||||||
| rc_net_tap1_provide="!net" | rc_net_tap1_provide="!net" | ||||||
|  |  | ||||||
| # It's also possible to negate keywords. This is mainly useful for prefix | # It's also possible to negate keywords. | ||||||
| # users testing OpenRC. | rc_keyword="-keyword" | ||||||
| rc_keyword="!-prefix" |  | ||||||
| .Ed | .Ed | ||||||
| .Sh EXAMPLES | .Sh EXAMPLES | ||||||
| .Pp | .Pp | ||||||
| @@ -447,22 +438,8 @@ depend() | |||||||
|     need ${_need} |     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() | 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 |     # Ensure that our dirs are correct | ||||||
|     checkpath --dir --owner foo:foo --mode 0664 \\ |     checkpath --dir --owner foo:foo --mode 0664 \\ | ||||||
| 	/var/run/foo /var/cache/foo | 	/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:= 		$(shell ${_OS_SH}) | ||||||
| OS?= 		${_OS} | OS?= 		${_OS} | ||||||
| include ${MK}/os-${OS}.mk | include ${MK}/os-${OS}.mk | ||||||
| include ${MK}/os-prefix.mk |  | ||||||
|  |  | ||||||
| RC_LIB=		/$(LIBNAME)/rc | RC_LIB=		/$(LIBNAME)/rc | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								mk/sys.mk
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								mk/sys.mk
									
									
									
									
									
								
							| @@ -11,14 +11,9 @@ SED?=			sed | |||||||
| SH=			/bin/sh | SH=			/bin/sh | ||||||
|  |  | ||||||
| PREFIX?= | PREFIX?= | ||||||
| ifeq (${PREFIX},) | _UPREFIX_SH=		case "${PREFIX}" in "") echo /usr;; *) echo "${PREFIX}";; esac | ||||||
| UPREFIX= /usr | _UPREFIX:=		$(shell ${_UPREFIX_SH}) | ||||||
| else | UPREFIX=		${_UPREFIX} | ||||||
| UPREFIX= ${PREFIX} |  | ||||||
| ifeq (${MKPREFIX},yes) |  | ||||||
| UPREFIX= ${PREFIX}/usr |  | ||||||
| endif |  | ||||||
| endif |  | ||||||
| LOCAL_PREFIX=		/usr/local | LOCAL_PREFIX=		/usr/local | ||||||
|  |  | ||||||
| PICFLAG?=		-fPIC | PICFLAG?=		-fPIC | ||||||
|   | |||||||
| @@ -4,12 +4,6 @@ | |||||||
| bonding_depend() | bonding_depend() | ||||||
| { | { | ||||||
| 	before interface macchanger | 	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" | _config_vars="$_config_vars slaves" | ||||||
| @@ -29,9 +23,6 @@ bonding_pre_start() | |||||||
| 	eval primary="\$primary_${IFVAR}" | 	eval primary="\$primary_${IFVAR}" | ||||||
| 	unset primary_${IFVAR} | 	unset primary_${IFVAR} | ||||||
|  |  | ||||||
| 	eval subsume="\$subsume_${IFVAR}" |  | ||||||
| 	unset subsume_${IFVAR} |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	[ -z "${slaves}" ] && return 0 | 	[ -z "${slaves}" ] && return 0 | ||||||
|  |  | ||||||
| @@ -43,10 +34,6 @@ bonding_pre_start() | |||||||
| 		fi | 		fi | ||||||
| 	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 | 	# We can create the interface name we like now, but this | ||||||
| 	# requires sysfs | 	# requires sysfs | ||||||
| 	if ! _exists && [ -d /sys/class/net ]; then | 	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 | 	# Configure the bond mode, then we can reloop to ensure we configure | ||||||
| 	# All other options | 	# All other options | ||||||
| 	[ -d /sys/class/net ] && for x in /sys/class/net/"${IFACE}"/bonding/mode; do | 	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 | 		[ -f "${x}" ] || continue | ||||||
| 		n=${x##*/} | 		n=${x##*/} | ||||||
| 		eval s=\$${n}_${IFVAR} | 		eval s=\$${n}_${IFVAR} | ||||||
| @@ -86,11 +62,11 @@ bonding_pre_start() | |||||||
| 		fi | 		fi | ||||||
| 	done | 	done | ||||||
| 	# Nice and dynamic for remaining options:) | 	# 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 | 		[ -f "${x}" ] || continue | ||||||
| 		n=${x##*/} | 		n=${x##*/} | ||||||
| 		eval s=\$${n}_${IFVAR} | 		eval s=\$${n}_${IFVAR} | ||||||
| 		[ "${n}" != "mode" -o "${n}" != "miimon" ] || continue | 		[ "${n}" != "mode" ] || continue | ||||||
| 		if [ -n "${s}" ]; then | 		if [ -n "${s}" ]; then | ||||||
| 			einfo "Setting ${n}: ${s}" | 			einfo "Setting ${n}: ${s}" | ||||||
| 			echo "${s}" >"${x}" || \ | 			echo "${s}" >"${x}" || \ | ||||||
| @@ -108,44 +84,15 @@ bonding_pre_start() | |||||||
| 		_exists true || return 1 | 		_exists true || return 1 | ||||||
| 	done | 	done | ||||||
|  |  | ||||||
| 	# Unless we are subsuming an existing interface (NFS root), we down | 	# Must force the slaves to a particular state before adding them | ||||||
| 	# slave interfaces to work around bugs supposedly in some chipsets | 	for IFACE in ${slaves}; do | ||||||
| 	# that cause failure to enslave from other states. | 		_delete_addresses | ||||||
| 	if [ -z "${subsume}" ]; then | 		_down | ||||||
| 		for IFACE in ${slaves}; do | 	done | ||||||
| 			_delete_addresses |  | ||||||
| 			_down |  | ||||||
| 		done |  | ||||||
| 	fi |  | ||||||
| 	) | 	) | ||||||
|  |  | ||||||
| 	# Now force the master to up | 	# now force the master to up | ||||||
| 	#  - First test for interface subsume request (required for NFS root) | 	_up | ||||||
| 	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 | 	# finally add in slaves | ||||||
| 	# things needed in the process, and if they are done by ifenslave, openrc, and/or the kernel. | 	# 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 | 			fi | ||||||
| 		done | 		done | ||||||
| 	else | 	else | ||||||
| 		ifenslave "${IFACE}" ${slaves} >/dev/null | 		/sbin/ifenslave "${IFACE}" ${slaves} >/dev/null | ||||||
| 	fi | 	fi | ||||||
| 	eend $? | 	eend $? | ||||||
|  |  | ||||||
| @@ -185,11 +132,6 @@ bonding_stop() | |||||||
| { | { | ||||||
| 	_is_bond || return 0 | 	_is_bond || return 0 | ||||||
|  |  | ||||||
| 	# Wipe subsumed interface |  | ||||||
| 	if [ -n "${subsume}" ]; then |  | ||||||
| 		ifconfig ${subsume} 0.0.0.0 |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| 	local slaves= s= | 	local slaves= s= | ||||||
| 	slaves=$( \ | 	slaves=$( \ | ||||||
| 		sed -n -e 's/^Slave Interface: //p' "/proc/net/bonding/${IFACE}" \ | 		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 | 			echo -"${s}" > /sys/class/net/"${IFACE}"/bonding/slaves | ||||||
| 		done | 		done | ||||||
| 	else | 	else | ||||||
| 		ifenslave -d "${IFACE}" ${slaves} | 		/sbin/ifenslave -d "${IFACE}" ${slaves} | ||||||
| 	fi | 	fi | ||||||
|  |  | ||||||
| 	# reset all slaves | 	# reset all slaves | ||||||
|   | |||||||
| @@ -119,8 +119,10 @@ bridge_pre_start() | |||||||
| 				return 1 | 				return 1 | ||||||
| 			fi | 			fi | ||||||
| 			# The interface is known to exist now | 			# The interface is known to exist now | ||||||
|  | 			_set_flag promisc | ||||||
| 			_up | 			_up | ||||||
| 			if ! brctl addif "${BR_IFACE}" "${x}"; then | 			if ! brctl addif "${BR_IFACE}" "${x}"; then | ||||||
|  | 				_set_flag -promisc | ||||||
| 				eend 1 | 				eend 1 | ||||||
| 				return 1 | 				return 1 | ||||||
| 			fi | 			fi | ||||||
| @@ -142,7 +144,6 @@ bridge_pre_start() | |||||||
| 	) || return 1 | 	) || return 1 | ||||||
|  |  | ||||||
| 	# Bring up the bridge | 	# Bring up the bridge | ||||||
| 	_set_flag promisc |  | ||||||
| 	_up | 	_up | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,12 +10,12 @@ iproute2_depend() | |||||||
|  |  | ||||||
| _up() | _up() | ||||||
| { | { | ||||||
| 	ip link set dev "${IFACE}" up | 	ip link set "${IFACE}" up | ||||||
| } | } | ||||||
|  |  | ||||||
| _down() | _down() | ||||||
| { | { | ||||||
| 	ip link set dev "${IFACE}" down | 	ip link set "${IFACE}" down | ||||||
| } | } | ||||||
|  |  | ||||||
| _exists() | _exists() | ||||||
| @@ -57,7 +57,7 @@ _set_flag() | |||||||
| 		flag=${flag#-} | 		flag=${flag#-} | ||||||
| 		opt="off" | 		opt="off" | ||||||
| 	fi | 	fi | ||||||
| 	ip link set dev "${IFACE}" "${flag}" "${opt}" | 	ip link set "${IFACE}" "${flag}" "${opt}" | ||||||
| } | } | ||||||
|  |  | ||||||
| _get_mac_address() | _get_mac_address() | ||||||
| @@ -79,7 +79,7 @@ _get_mac_address() | |||||||
|  |  | ||||||
| _set_mac_address() | _set_mac_address() | ||||||
| { | { | ||||||
| 	ip link set dev "${IFACE}" address "$1" | 	ip link set "${IFACE}" address "$1" | ||||||
| } | } | ||||||
|  |  | ||||||
| _get_inet_addresses() | _get_inet_addresses() | ||||||
| @@ -212,7 +212,7 @@ _delete_addresses() | |||||||
|  |  | ||||||
| _has_carrier() | _has_carrier() | ||||||
| { | { | ||||||
| 	LC_ALL=C ip link show dev "${IFACE}" | grep -q "LOWER_UP" | 	return 0 | ||||||
| } | } | ||||||
|  |  | ||||||
| _tunnel() | _tunnel() | ||||||
| @@ -274,12 +274,12 @@ iproute2_pre_start() | |||||||
| 	# MTU support | 	# MTU support | ||||||
| 	local mtu= | 	local mtu= | ||||||
| 	eval mtu=\$mtu_${IFVAR} | 	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 | 	# TX Queue Length support | ||||||
| 	local len= | 	local len= | ||||||
| 	eval len=\$txqueuelen_${IFVAR} | 	eval len=\$txqueuelen_${IFVAR} | ||||||
| 	[ -n "${len}" ] && ip link set dev "${IFACE}" txqueuelen "${len}" | 	[ -n "${len}" ] && ip link set "${IFACE}" txqueuelen "${len}" | ||||||
|  |  | ||||||
| 	return 0 | 	return 0 | ||||||
| } | } | ||||||
| @@ -287,7 +287,7 @@ iproute2_pre_start() | |||||||
| _iproute2_ipv6_tentative() | _iproute2_ipv6_tentative() | ||||||
| { | { | ||||||
| 	# Only check tentative when we have a carrier. | 	# 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}" | \ | 	LC_ALL=C ip addr show dev "${IFACE}" | \ | ||||||
| 		grep -q "^[[:space:]]*inet6 .* tentative" | 		grep -q "^[[:space:]]*inet6 .* tentative" | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										31
									
								
								net/vlan.sh
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								net/vlan.sh
									
									
									
									
									
								
							| @@ -66,41 +66,26 @@ vlan_post_start() | |||||||
| 		einfo "Adding VLAN ${vlan} to ${IFACE}" | 		einfo "Adding VLAN ${vlan} to ${IFACE}" | ||||||
| 		# We need to gather all interface configuration options | 		# We need to gather all interface configuration options | ||||||
| 		# 1) naming. Default to the standard "${IFACE}.${vlan}" but it can be anything | 		# 1) naming. Default to the standard "${IFACE}.${vlan}" but it can be anything | ||||||
| 		eval vname=\$${IFACE}_vlan${vlan}_name | 		eval vname=\$vlan${vlan}_name | ||||||
| 		[ -z "${vname}" ] && eval vname=\$vlan${vlan}_name |  | ||||||
| 		[ -z "${vname}" ] && vname="${IFACE}.${vlan}" | 		[ -z "${vname}" ] && vname="${IFACE}.${vlan}" | ||||||
| 		# 2) flags | 		# 2) flags | ||||||
| 		eval vflags=\$${IFACE}_vlan${vlan}_flags | 		eval vflags=\$vlan${vlan}_flags | ||||||
| 		[ -z "${vname}" ] && eval vflags=\$vlan${vlan}_flags |  | ||||||
| 		# 3) ingress/egress map | 		# 3) ingress/egress map | ||||||
| 		eval vingress=\$${IFACE}_vlan${vlan}_ingress | 		eval vingress=\$vlan${vlan}_ingress | ||||||
| 		[ -z "${vingress}" ] && eval vingress=\$vlan${vlan}_ingress |  | ||||||
| 		[ -z "${vingress}" ] || vingress="ingress-qos-map ${vingress}" | 		[ -z "${vingress}" ] || vingress="ingress-qos-map ${vingress}" | ||||||
| 		eval vegress=\$${IFACE}_vlan${vlan}_egress | 		eval vegress=\$vlan${vlan}_egress | ||||||
| 		[ -z "${vegress}" ] && eval vegress=\$vlan${vlan}_egress |  | ||||||
| 		[ -z "${vegress}" ] || vegress="egress-qos-map ${vegress}" | 		[ -z "${vegress}" ] || vegress="egress-qos-map ${vegress}" | ||||||
|  |  | ||||||
| 		# txqueue |  | ||||||
| 		local txqueuelen= | 		local txqueuelen= | ||||||
| 		eval txqueuelen=\$txqueuelen_${IFACE}_vlan${vlan} | 		eval txqueuelen=\$txqueuelen_vlan${vlan} | ||||||
| 		[ -z "${txqueuelen}" ] && eval txqueuelen=\$txqueuelen_vlan${vlan} |  | ||||||
| 		# mac |  | ||||||
| 		local mac= | 		local mac= | ||||||
| 		eval mac=\$mac_${IFACE}_vlan${vlan} | 		eval mac=\$mac_vlan${vlan} | ||||||
| 		[ -z "${mac}" ] && eval mac=\$mac_vlan${vlan} |  | ||||||
| 		# broadcast |  | ||||||
| 		local broadcast= | 		local broadcast= | ||||||
| 		eval broadcast=\$broadcast_${IFACE}_vlan${vlan} | 		eval broadcast=\$broadcast_vlan${vlan} | ||||||
| 		[ -z "${broadcast}" ] && eval broadcast=\$broadcast_vlan${vlan} |  | ||||||
| 		# mtu |  | ||||||
| 		local mtu= | 		local mtu= | ||||||
| 		eval mtu=\$mtu_${IFACE}_vlan${vlan} | 		eval mtu=\$mtu_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}" | 		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)" | 		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 | 		if [ -n "${e}" ]; then | ||||||
| 			eend 1 "${e}" | 			eend 1 "${e}" | ||||||
|   | |||||||
| @@ -10,12 +10,6 @@ BOOTDIR=	${LEVELDIR}/boot | |||||||
| DEFAULTDIR=	${LEVELDIR}/default | DEFAULTDIR=	${LEVELDIR}/default | ||||||
| SHUTDOWNDIR=	${LEVELDIR}/shutdown | SHUTDOWNDIR=	${LEVELDIR}/shutdown | ||||||
|  |  | ||||||
| ifeq (${MKNET},) |  | ||||||
| BOOT+= network staticroute |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| INITFILES=	../init.d |  | ||||||
|  |  | ||||||
| MK=		../mk | MK=		../mk | ||||||
| include ${MK}/sys.mk | include ${MK}/sys.mk | ||||||
| include ${MK}/os.mk | include ${MK}/os.mk | ||||||
| @@ -25,25 +19,19 @@ BOOT-${OS}= | |||||||
| SHUTDOWN-${OS}= | SHUTDOWN-${OS}= | ||||||
| SYSINIT-${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 | BOOT-BSD=	hostid newsyslog savecore syslogd swap-blk | ||||||
|  |  | ||||||
| # Generic BSD stuff | # Generic BSD stuff | ||||||
| BOOT-FreeBSD+=	hostid newsyslog savecore syslogd | BOOT-FreeBSD=	hostid net.lo0 newsyslog savecore syslogd | ||||||
| # FreeBSD specific stuff | # FreeBSD specific stuff | ||||||
| BOOT-FreeBSD+=	adjkerntz dumpon syscons | BOOT-FreeBSD+=	adjkerntz dumpon syscons | ||||||
|  |  | ||||||
| BOOT-Linux+=	hwclock keymaps modules mtab procfs termencoding tmpfilesd.boot | BOOT-Linux=	hwclock keymaps modules mtab net.lo procfs termencoding | ||||||
| SHUTDOWN-Linux=	killprocs mount-ro | SHUTDOWN-Linux=	killprocs mount-ro | ||||||
| SYSINIT-Linux=	devfs dmesg sysfs tmpfilesd.sysinit | SYSINIT-Linux=	devfs dmesg | ||||||
|  |  | ||||||
| # Generic BSD stuff | # Generic BSD stuff | ||||||
| BOOT-NetBSD+=	hostid newsyslog savecore syslogd | BOOT-NetBSD=	hostid net.lo0 newsyslog savecore syslogd | ||||||
| # NetBSD specific stuff | # NetBSD specific stuff | ||||||
| BOOT-NetBSD+=	devdb swap-blk ttys wscons | BOOT-NetBSD+=	devdb swap-blk ttys wscons | ||||||
|  |  | ||||||
| @@ -53,35 +41,25 @@ install: | |||||||
| 	if ! test -d "${SYSINITDIR}"; then \ | 	if ! test -d "${SYSINITDIR}"; then \ | ||||||
| 		${INSTALL} -d ${SYSINITDIR} || exit $$?; \ | 		${INSTALL} -d ${SYSINITDIR} || exit $$?; \ | ||||||
| 		for x in ${SYSINIT}; do \ | 		for x in ${SYSINIT}; do \ | ||||||
| 			if test -n "${PREFIX}"; then \ | 			ln -snf ${PREFIX}/etc/init.d/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; \ | ||||||
| 				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \ | 		done \ | ||||||
| 			fi; \ |  | ||||||
| 			ln -snf ${INITDIR}/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; done \ |  | ||||||
| 	fi | 	fi | ||||||
| 	if ! test -d "${BOOTDIR}"; then \ | 	if ! test -d "${BOOTDIR}"; then \ | ||||||
| 		${INSTALL} -d ${BOOTDIR} || exit $$?; \ | 		${INSTALL} -d ${BOOTDIR} || exit $$?; \ | ||||||
| 		for x in ${BOOT}; do \ | 		for x in ${BOOT}; do \ | ||||||
| 			if test -n "${PREFIX}"; then \ | 			ln -snf ${PREFIX}/etc/init.d/"$$x" ${BOOTDIR}/"$$x" || exit $$?; \ | ||||||
| 				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \ |  | ||||||
| 			fi; \ |  | ||||||
| 			ln -snf ${INITDIR}/"$$x" ${BOOTDIR}/"$$x" || exit $$?; \ |  | ||||||
| 		done \ | 		done \ | ||||||
| 	fi | 	fi | ||||||
| 	if ! test -d "${DEFAULTDIR}"; then \ | 	if ! test -d "${DEFAULTDIR}"; then \ | ||||||
| 		${INSTALL} -d ${DEFAULTDIR} || exit $$?; \ | 		${INSTALL} -d ${DEFAULTDIR} || exit $$?; \ | ||||||
| 		for x in ${DEFAULT}; do \ | 		for x in ${DEFAULT}; do \ | ||||||
| 			if test -n "${PREFIX}"; then \ | 			ln -snf ${PREFIX}/etc/init.d/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; \ | ||||||
| 				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \ | 		done \ | ||||||
| 			fi; \ |  | ||||||
| 			ln -snf ${INITDIR}/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; done \ |  | ||||||
| 	fi | 	fi | ||||||
| 	if ! test -d "${SHUTDOWNDIR}"; then \ | 	if ! test -d "${SHUTDOWNDIR}"; then \ | ||||||
| 		${INSTALL} -d ${SHUTDOWNDIR} || exit $$?; \ | 		${INSTALL} -d ${SHUTDOWNDIR} || exit $$?; \ | ||||||
| 		for x in ${SHUTDOWN}; do \ | 		for x in ${SHUTDOWN}; do \ | ||||||
| 			if test -n "${PREFIX}"; then \ | 			ln -snf ${PREFIX}/etc/init.d/"$$x" ${SHUTDOWNDIR}/"$$x" || exit $$?; done \ | ||||||
| 				grep -q "keyword .*-prefix" ${INITFILES}/"$$x" && continue; \ |  | ||||||
| 			fi; \ |  | ||||||
| 			ln -snf ${INITDIR}/"$$x" ${SHUTDOWNDIR}/"$$x" || exit $$?; done \ |  | ||||||
| 	fi | 	fi | ||||||
|  |  | ||||||
| check test:: | check test:: | ||||||
|   | |||||||
| @@ -105,7 +105,7 @@ else | |||||||
| 	# the last ecmd | 	# the last ecmd | ||||||
| 	for _e in ebegin eend error errorn einfo einfon ewarn ewarnn ewend \ | 	for _e in ebegin eend error errorn einfo einfon ewarn ewarnn ewend \ | ||||||
| 		vebegin veend veinfo vewarn vewend; do | 		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; }" | 		export EINFO_LASTCMD=$_e; return \$_r; }" | ||||||
| 	done | 	done | ||||||
| 	unset _e | 	unset _e | ||||||
|   | |||||||
| @@ -13,29 +13,21 @@ | |||||||
| # This script should match the manpage as of 2012/03/12 | # This script should match the manpage as of 2012/03/12 | ||||||
| # | # | ||||||
|  |  | ||||||
| DRYRUN=0 |  | ||||||
|  |  | ||||||
| warninvalid() { | warninvalid() { | ||||||
| 	printf "tmpfiles: ignoring invalid entry on line %d of \`%s'\n" "$LINENUM" "$FILE" | 	printf "tmpfiles: ignoring invalid entry on line %d of \`%s'\n" "$LINENUM" "$FILE" | ||||||
| 	error=$(( error+1 )) | 	error=$(( error+1 )) | ||||||
| } >&2 | } >&2 | ||||||
|  |  | ||||||
| dryrun_or_real() { |  | ||||||
| 	local dryrun= |  | ||||||
| 	[ $DRYRUN -eq 1 ] && dryrun=echo |  | ||||||
| 	$dryrun "$@" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| relabel() { | relabel() { | ||||||
| 	local path | 	local path | ||||||
| 	local paths=$1 mode=$2 uid=$3 gid=$4 | 	local paths=$1 mode=$2 uid=$3 gid=$4 | ||||||
|  |  | ||||||
| 	for path in ${paths}; do | 	for path in ${paths}; do | ||||||
| 		if [ -e "$path" ]; then | 		if [ -e "$path" ]; then | ||||||
| 			[ $uid != '-' ] && dryrun_or_real chown $CHOPTS "$uid" "$path" | 			[ $uid != '-' ] && chown $CHOPTS "$uid" "$path" | ||||||
| 			[ $gid != '-' ] && dryrun_or_real chgrp $CHOPTS "$gid" "$path" | 			[ $gid != '-' ] && chgrp $CHOPTS "$gid" "$path" | ||||||
| 			[ $mode != '-' ] && dryrun_or_real chmod $CHOPTS "$mode" "$path" | 			[ $mode != '-' ] && chmod $CHOPTS "$mode" "$path" | ||||||
| 			[ -x /sbin/restorecon ] && dryrun_or_real restorecon $CHOPTS "$path" | 			[ -x /sbin/restorecon ] && restorecon $CHOPTS "$path" | ||||||
| 		fi | 		fi | ||||||
| 	done | 	done | ||||||
| } | } | ||||||
| @@ -43,13 +35,13 @@ relabel() { | |||||||
| _b() { | _b() { | ||||||
| 	# Create a block device node if it doesn't exist yet | 	# Create a block device node if it doesn't exist yet | ||||||
| 	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6 | 	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() { | _c() { | ||||||
| 	# Create a character device node if it doesn't exist yet | 	# Create a character device node if it doesn't exist yet | ||||||
| 	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6 | 	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 | 	[ $CREATE -gt 0 ] || return 0 | ||||||
|  |  | ||||||
| 	if [ ! -e "$path" ]; then | 	if [ ! -e "$path" ]; then | ||||||
| 		dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path" | 		install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path" | ||||||
| 		[ -z "$arg" ] || _w "$@" | 		[ -n "$arg" ] && _w "$@" | ||||||
| 	fi | 	fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -71,8 +63,8 @@ _F() { | |||||||
|  |  | ||||||
| 	[ $CREATE -gt 0 ] || return 0 | 	[ $CREATE -gt 0 ] || return 0 | ||||||
|  |  | ||||||
| 	dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path" | 	install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path" | ||||||
| 	[ -z "$arg" ] || _w "$@" | 	[ -n "$arg" ] && _w "$@" | ||||||
| } | } | ||||||
|  |  | ||||||
| _d() { | _d() { | ||||||
| @@ -82,7 +74,7 @@ _d() { | |||||||
| 	[ $CREATE -gt 0 ] || return 0 | 	[ $CREATE -gt 0 ] || return 0 | ||||||
|  |  | ||||||
| 	if [ ! -d "$path" ]; then | 	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 | 	fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -91,18 +83,18 @@ _D() { | |||||||
| 	local path=$1 mode=$2 uid=$3 gid=$4 | 	local path=$1 mode=$2 uid=$3 gid=$4 | ||||||
|  |  | ||||||
| 	if [ -d "$path" ] && [ $REMOVE -gt 0 ]; then | 	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 | 	fi | ||||||
|  |  | ||||||
| 	if [ $CREATE -gt 0 ]; then | 	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 | 	fi | ||||||
| } | } | ||||||
|  |  | ||||||
| _L() { | _L() { | ||||||
| 	# Create a symlink if it doesn't exist yet | 	# Create a symlink if it doesn't exist yet | ||||||
| 	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6 | 	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() { | _p() { | ||||||
| @@ -112,8 +104,8 @@ _p() { | |||||||
| 	[ $CREATE -gt 0 ] || return 0 | 	[ $CREATE -gt 0 ] || return 0 | ||||||
|  |  | ||||||
| 	if [ ! -p "$path" ]; then | 	if [ ! -p "$path" ]; then | ||||||
| 		dryrun_or_real mkfifo -m$mode "$path" | 		mkfifo -m$mode "$path" | ||||||
| 		dryrun_or_real chown "$uid:$gid" "$path" | 		chown "$uid:$gid" "$path" | ||||||
| 	fi | 	fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -137,9 +129,9 @@ _r() { | |||||||
|  |  | ||||||
| 	for path in ${paths}; do | 	for path in ${paths}; do | ||||||
| 		if [ -f "$path" ]; then | 		if [ -f "$path" ]; then | ||||||
| 			dryrun_or_real rm -f "$path" | 			rm -f "$path" | ||||||
| 		elif [ -d "$path" ]; then | 		elif [ -d "$path" ]; then | ||||||
| 			dryrun_or_real rmdir "$path" | 			rmdir "$path" | ||||||
| 		fi | 		fi | ||||||
| 	done | 	done | ||||||
| } | } | ||||||
| @@ -153,20 +145,14 @@ _R() { | |||||||
| 	[ $REMOVE -gt 0 ] || return 0 | 	[ $REMOVE -gt 0 ] || return 0 | ||||||
|  |  | ||||||
| 	for path in ${paths}; do | 	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 | 	done | ||||||
| } | } | ||||||
|  |  | ||||||
| _w() { | _w() { | ||||||
| 	# Write the argument parameter to a file, if it exists. | 	# Write the argument parameter to a file, if it exists. | ||||||
| 	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6 | 	local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6 | ||||||
| 	if [ -f "$path" ]; then | 	[ -f "$path" ] && echo "$arg" >>"$path" | ||||||
| 		if [ $DRYRUN -eq 1 ]; then |  | ||||||
| 			echo "echo \"$arg\" >>\"$path\"" |  | ||||||
| 		else |  | ||||||
| 			echo "$arg" >>"$path" |  | ||||||
| 		fi |  | ||||||
| 	fi |  | ||||||
| } | } | ||||||
|  |  | ||||||
| _z() { | _z() { | ||||||
| @@ -201,7 +187,6 @@ tmpfiles_d='' | |||||||
| # `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf' | # `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf' | ||||||
| for d in ${tmpfiles_dirs} ; do | for d in ${tmpfiles_dirs} ; do | ||||||
| 	[ -d $d ] && for f in ${d}/*.conf ; do | 	[ -d $d ] && for f in ${d}/*.conf ; do | ||||||
| 		[ "$f" = "$d/systemd.conf" ] && continue |  | ||||||
| 		[ -f $f ] && tmpfiles_basenames="${tmpfiles_basenames}\n${f##*/}" | 		[ -f $f ] && tmpfiles_basenames="${tmpfiles_basenames}\n${f##*/}" | ||||||
| 	done # for f in ${d} | 	done # for f in ${d} | ||||||
| done # for d in ${tmpfiles_dirs} | done # for d in ${tmpfiles_dirs} | ||||||
| @@ -227,11 +212,6 @@ while [ $# -gt 0 ]; do | |||||||
| 	shift | 	shift | ||||||
| done | done | ||||||
|  |  | ||||||
| if [ $(( CLEAN )) -eq 1 ] ; then |  | ||||||
| 	printf '%s clean mode is not implemented\n' "${0##*/}" |  | ||||||
| 	exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ $(( CREATE + REMOVE )) -ne 1 ] ; then | if [ $(( CREATE + REMOVE )) -ne 1 ] ; then | ||||||
| 	printf 'usage: %s [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}" | 	printf 'usage: %s [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}" | ||||||
| 	exit 1 | 	exit 1 | ||||||
| @@ -253,40 +233,51 @@ for FILE in $tmpfiles_d ; do | |||||||
|  |  | ||||||
| 	# XXX: Upstream says whitespace is NOT permitted in the Path argument. | 	# 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. | 	# 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 )) | 		LINENUM=$(( LINENUM+1 )) | ||||||
|  |  | ||||||
|  | 		# This will skip over comments and empty lines | ||||||
|  | 		set -- $line | ||||||
|  |  | ||||||
| 		# Unless we have both command and path, skip this 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 | 			continue | ||||||
| 		fi | 		fi | ||||||
|  |  | ||||||
| 		# whine about invalid entries | 		# whine about invalid entries | ||||||
| 		case $cmd in | 		case $1 in | ||||||
| 			f|F|w|d|D|p|L|c|b|x|r|R|z|Z) ;; | 			f|F|w|d|D|p|L|c|b|x|r|R|z|Z) ;; | ||||||
| 			\#) continue ;; |  | ||||||
| 			*) warninvalid ; continue ;; | 			*) warninvalid ; continue ;; | ||||||
| 		esac | 		esac | ||||||
|  |  | ||||||
|  | 		cmd=$1 | ||||||
|  | 		path=$2 | ||||||
|  |  | ||||||
| 		# fall back on defaults when parameters are passed as '-' | 		# fall back on defaults when parameters are passed as '-' | ||||||
| 		if [ "$mode" = '-' -o "$mode" = '' ]; then | 		if [ "$3" = '-' -o "$3" = '' ]; then | ||||||
| 			case "$cmd" in | 			case ${1} in | ||||||
| 				p|f|F) mode=0644 ;; | 				p|f|F) mode=0644 ;; | ||||||
| 				d|D) mode=0755 ;; | 				d|D) mode=0755 ;; | ||||||
| 				z|Z|x|r|R|L) ;; | 				z|Z|x|r|R|L) ;; | ||||||
| 			esac | 			esac | ||||||
|  | 		else | ||||||
|  | 			mode=$3 | ||||||
| 		fi | 		fi | ||||||
|  | 		uid=$4 | ||||||
|  | 		gid=$5 | ||||||
|  | 		age=$6 | ||||||
|  | 		arg=$7 | ||||||
|  |  | ||||||
| 		[ "$uid" = '-' -o "$uid" = '' ] && uid=0 | 		[ ${4} = '-' ] && uid=0 | ||||||
| 		[ "$gid" = '-' -o "$gid" = '' ] && gid=0 | 		[ ${5} = '-' ] && gid=0 | ||||||
| 		[ "$age" = '-' -o "$age" = '' ] && age=0 | 		[ ${6} = '-' ] && age=0 | ||||||
| 		[ "$arg" = '-' -o "$arg" = '' ] && arg='' | 		[ ${7} = '-' ] && arg='' | ||||||
| 		set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg" | 		set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg" | ||||||
|  |  | ||||||
| 		[ "$VERBOSE" -eq "1" ] && echo _$cmd "$@" | 		[ "$VERBOSE" -eq "1" ] && echo _$cmd "$@" | ||||||
| 		_$cmd "$@" |  | ||||||
| 		rc=$? |  | ||||||
| 		if [ "${DRYRUN}" -eq "0" ]; then | 		if [ "${DRYRUN}" -eq "0" ]; then | ||||||
|  | 			_$cmd "$@" | ||||||
|  | 			rc=$? | ||||||
| 			[ $rc -ne 0 ] && error=$((error + 1)) | 			[ $rc -ne 0 ] && error=$((error + 1)) | ||||||
| 		fi | 		fi | ||||||
| 	done <$FILE | 	done <$FILE | ||||||
|   | |||||||
| @@ -28,8 +28,6 @@ | |||||||
|  * SUCH DAMAGE. |  * SUCH DAMAGE. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <sys/utsname.h> |  | ||||||
|  |  | ||||||
| #include "librc.h" | #include "librc.h" | ||||||
|  |  | ||||||
| #define GENDEP          RC_LIBEXECDIR "/sh/gendepends.sh" | #define GENDEP          RC_LIBEXECDIR "/sh/gendepends.sh" | ||||||
| @@ -749,15 +747,12 @@ rc_deptree_update(void) | |||||||
| 	size_t i, k, l; | 	size_t i, k, l; | ||||||
| 	bool retval = true; | 	bool retval = true; | ||||||
| 	const char *sys = rc_sys(); | 	const char *sys = rc_sys(); | ||||||
| 	struct utsname uts; |  | ||||||
|  |  | ||||||
| 	/* Some init scripts need RC_LIBEXECDIR to source stuff | 	/* Some init scripts need RC_LIBEXECDIR to source stuff | ||||||
| 	   Ideally we should be setting our full env instead */ | 	   Ideally we should be setting our full env instead */ | ||||||
| 	if (!getenv("RC_LIBEXECDIR")) | 	if (!getenv("RC_LIBEXECDIR")) | ||||||
| 		setenv("RC_LIBEXECDIR", RC_LIBEXECDIR, 0); | 		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 */ | 	/* Phase 1 - source all init scripts and print dependencies */ | ||||||
| 	if (!(fp = popen(GENDEP, "r"))) | 	if (!(fp = popen(GENDEP, "r"))) | ||||||
| 		return false; | 		return false; | ||||||
|   | |||||||
| @@ -216,7 +216,6 @@ rc_sys_v2(void) | |||||||
| 		} | 		} | ||||||
| 		/* Now do detection */ | 		/* Now do detection */ | ||||||
| 		__STRING_SWITCH(systype) | 		__STRING_SWITCH(systype) | ||||||
| 		__STRING_CASE(RC_SYS_PREFIX)	{ return RC_SYS_PREFIX; } |  | ||||||
| #ifdef __FreeBSD__ | #ifdef __FreeBSD__ | ||||||
| 		__STRING_CASE(RC_SYS_JAIL) { return RC_SYS_JAIL; } | 		__STRING_CASE(RC_SYS_JAIL) { return RC_SYS_JAIL; } | ||||||
| #endif /* __FreeBSD__ */ | #endif /* __FreeBSD__ */ | ||||||
| @@ -246,10 +245,6 @@ librc_hidden_def(rc_sys_v2) | |||||||
| const char * | const char * | ||||||
| rc_sys_v1(void) | rc_sys_v1(void) | ||||||
| { | { | ||||||
| #ifdef PREFIX |  | ||||||
| 	return RC_SYS_PREFIX; |  | ||||||
| #else |  | ||||||
|  |  | ||||||
| #ifdef __FreeBSD__ | #ifdef __FreeBSD__ | ||||||
| 	int jailed = 0; | 	int jailed = 0; | ||||||
| 	size_t len = sizeof(jailed); | 	size_t len = sizeof(jailed); | ||||||
| @@ -286,7 +281,6 @@ rc_sys_v1(void) | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| 	return NULL; | 	return NULL; | ||||||
| #endif /* PREFIX */ |  | ||||||
| } | } | ||||||
| librc_hidden_def(rc_sys_v1) | librc_hidden_def(rc_sys_v1) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -33,13 +33,10 @@ | |||||||
|  |  | ||||||
| __BEGIN_DECLS | __BEGIN_DECLS | ||||||
|  |  | ||||||
| #define RC_PREFIX "@PREFIX@" |  | ||||||
| #define RC_SYSCONFDIR		"@SYSCONFDIR@" | #define RC_SYSCONFDIR		"@SYSCONFDIR@" | ||||||
| #define RC_LIBDIR               "@PREFIX@/@LIB@/rc" | #define RC_LIBDIR               "@PREFIX@/@LIB@/rc" | ||||||
| #define RC_LIBEXECDIR           "@LIBEXECDIR@" | #define RC_LIBEXECDIR           "@LIBEXECDIR@" | ||||||
| #if defined(PREFIX) | #ifdef __linux__ | ||||||
| #define RC_SVCDIR               RC_LIBEXECDIR "/init.d" |  | ||||||
| #elif defined(__linux__) |  | ||||||
| #define RC_SVCDIR               "@PREFIX@/run/openrc" | #define RC_SVCDIR               "@PREFIX@/run/openrc" | ||||||
| #else | #else | ||||||
| #define RC_SVCDIR               RC_LIBEXECDIR "/init.d" | #define RC_SVCDIR               RC_LIBEXECDIR "/init.d" | ||||||
| @@ -283,7 +280,6 @@ bool rc_service_daemons_crashed(const char *); | |||||||
| #define RC_SYS_JAIL    "JAIL" | #define RC_SYS_JAIL    "JAIL" | ||||||
| #define RC_SYS_OPENVZ  "OPENVZ" | #define RC_SYS_OPENVZ  "OPENVZ" | ||||||
| #define RC_SYS_LXC     "LXC" | #define RC_SYS_LXC     "LXC" | ||||||
| #define RC_SYS_PREFIX  "PREFIX" |  | ||||||
| #define RC_SYS_UML     "UML" | #define RC_SYS_UML     "UML" | ||||||
| #define RC_SYS_VSERVER "VSERVER" | #define RC_SYS_VSERVER "VSERVER" | ||||||
| #define RC_SYS_XEN0    "XEN0" | #define RC_SYS_XEN0    "XEN0" | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ | |||||||
| 	"Disable color output",						      \ | 	"Disable color output",						      \ | ||||||
| 	"Display software version",			              \ | 	"Display software version",			              \ | ||||||
| 	"Run verbosely",						      \ | 	"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_C  setenv ("EINFO_COLOR", "NO", 1); | ||||||
| #define case_RC_COMMON_getopt_case_h  usage (EXIT_SUCCESS); | #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 |  * See systemd's src/label.c:label_mkdir | ||||||
|  */ |  */ | ||||||
| static int | static int | ||||||
| do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type, | do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type, bool trunc) | ||||||
| 		bool trunc, bool chowner) |  | ||||||
| { | { | ||||||
| 	struct stat st; | 	struct stat st; | ||||||
| 	int fd, flags; | 	int fd, flags; | ||||||
| @@ -140,7 +139,7 @@ do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type, | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	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) | 		if (st.st_dev || st.st_ino) | ||||||
| 			einfo("%s: correcting owner", path); | 			einfo("%s: correcting owner", path); | ||||||
| 		if (chown(path, uid, gid)) { | 		if (chown(path, uid, gid)) { | ||||||
| @@ -223,20 +222,19 @@ checkpath(int argc, char **argv) | |||||||
| 	struct group *gr = NULL; | 	struct group *gr = NULL; | ||||||
| 	inode_t type = inode_unknown; | 	inode_t type = inode_unknown; | ||||||
| 	int retval = EXIT_SUCCESS; | 	int retval = EXIT_SUCCESS; | ||||||
| 	bool trunc = false; | 	bool trunc = 0; | ||||||
| 	bool chowner = false; |  | ||||||
|  |  | ||||||
| 	while ((opt = getopt_long(argc, argv, getoptstring, | 	while ((opt = getopt_long(argc, argv, getoptstring, | ||||||
| 		    longopts, (int *) 0)) != -1) | 		    longopts, (int *) 0)) != -1) | ||||||
| 	{ | 	{ | ||||||
| 		switch (opt) { | 		switch (opt) { | ||||||
| 		case 'D': | 		case 'D': | ||||||
| 			trunc = true; | 			trunc = 1; | ||||||
| 		case 'd': | 		case 'd': | ||||||
| 			type = inode_dir; | 			type = inode_dir; | ||||||
| 			break; | 			break; | ||||||
| 		case 'F': | 		case 'F': | ||||||
| 			trunc = true; | 			trunc = 1; | ||||||
| 		case 'f': | 		case 'f': | ||||||
| 			type = inode_file; | 			type = inode_file; | ||||||
| 			break; | 			break; | ||||||
| @@ -249,7 +247,6 @@ checkpath(int argc, char **argv) | |||||||
| 				    applet, optarg); | 				    applet, optarg); | ||||||
| 			break; | 			break; | ||||||
| 		case 'o': | 		case 'o': | ||||||
| 			chowner = true; |  | ||||||
| 			if (parse_owner(&pw, &gr, optarg) != 0) | 			if (parse_owner(&pw, &gr, optarg) != 0) | ||||||
| 				eerrorx("%s: owner `%s' not found", | 				eerrorx("%s: owner `%s' not found", | ||||||
| 				    applet, optarg); | 				    applet, optarg); | ||||||
| @@ -275,7 +272,7 @@ checkpath(int argc, char **argv) | |||||||
| 		gid = gr->gr_gid; | 		gid = gr->gr_gid; | ||||||
|  |  | ||||||
| 	while (optind < argc) { | 	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; | 			retval = EXIT_FAILURE; | ||||||
| 		optind++; | 		optind++; | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -282,7 +282,7 @@ fstabinfo(int argc, char **argv) | |||||||
| 		END_ENT; | 		END_ENT; | ||||||
|  |  | ||||||
| 		if (!TAILQ_FIRST(files)) | 		if (!TAILQ_FIRST(files)) | ||||||
| 			eerrorx("%s: empty fstab", argv[0]); | 			eerrorx("%s: emtpy fstab", argv[0]); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (!TAILQ_FIRST(files)) { | 	if (!TAILQ_FIRST(files)) { | ||||||
|   | |||||||
| @@ -393,7 +393,8 @@ mountinfo(int argc, char **argv) | |||||||
| 	bool quiet; | 	bool quiet; | ||||||
| 	char *this_path; | 	char *this_path; | ||||||
|  |  | ||||||
| 	quiet = rc_yesno(getenv("EINFO_QUIET")); | 	/* Ensure that we are only quiet when explicitly told to be */ | ||||||
|  | 	unsetenv("EINFO_QUIET"); | ||||||
|  |  | ||||||
| #define DO_REG(_var)							      \ | #define DO_REG(_var)							      \ | ||||||
| 	if (_var) free(_var);						      \ | 	if (_var) free(_var);						      \ | ||||||
| @@ -474,6 +475,7 @@ mountinfo(int argc, char **argv) | |||||||
| 	REG_FREE(args.skip_options_regex); | 	REG_FREE(args.skip_options_regex); | ||||||
|  |  | ||||||
| 	result = EXIT_FAILURE; | 	result = EXIT_FAILURE; | ||||||
|  | 	quiet = rc_yesno(getenv("EINFO_QUIET")); | ||||||
|  |  | ||||||
| 	/* We should report the mounts in reverse order to ease unmounting */ | 	/* We should report the mounts in reverse order to ease unmounting */ | ||||||
| 	TAILQ_FOREACH_REVERSE(s, nodes, rc_stringlist, entries) { | 	TAILQ_FOREACH_REVERSE(s, nodes, rc_stringlist, entries) { | ||||||
|   | |||||||
| @@ -191,10 +191,6 @@ env_config(void) | |||||||
| 	if (sys) | 	if (sys) | ||||||
| 		setenv("RC_SYS", sys, 1); | 		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 | 	/* Some scripts may need to take a different code path if | ||||||
| 	   Linux/FreeBSD, etc | 	   Linux/FreeBSD, etc | ||||||
| 	   To save on calling uname, we store it in an environment variable */ | 	   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 ((fp = fopen(pidfile, "r")) == NULL) { | ||||||
| 		if (!quiet) | 		if (!quiet) | ||||||
| 			eerror("%s: fopen `%s': %s", applet, pidfile, strerror(errno)); | 			eerror("%s: fopen `%s': %s", | ||||||
|  | 			    applet, pidfile, strerror(errno)); | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -354,7 +355,8 @@ do_stop(const char *exec, const char *const *argv, | |||||||
| 	LIST_FOREACH_SAFE(pi, pids, entries, np) { | 	LIST_FOREACH_SAFE(pi, pids, entries, np) { | ||||||
| 		if (test) { | 		if (test) { | ||||||
| 			if (!quiet) | 			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++; | 			nkilled++; | ||||||
| 		} else { | 		} else { | ||||||
| 			if (verbose) | 			if (verbose) | ||||||
| @@ -415,7 +417,7 @@ run_stop_schedule(const char *exec, const char *const *argv, | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (pidfile) { | 	if (pidfile) { | ||||||
| 		pid = get_pid(pidfile, false); | 		pid = get_pid(pidfile, quiet); | ||||||
| 		if (pid == -1) | 		if (pid == -1) | ||||||
| 			return 0; | 			return 0; | ||||||
| 	} | 	} | ||||||
| @@ -434,7 +436,9 @@ run_stop_schedule(const char *exec, const char *const *argv, | |||||||
| 				if (tkilled == 0) { | 				if (tkilled == 0) { | ||||||
| 					if (progressed) | 					if (progressed) | ||||||
| 						printf("\n"); | 						printf("\n"); | ||||||
| 						eerror("%s: no matching processes found", applet); | 					if (! quiet) | ||||||
|  | 						eerror("%s: no matching " | ||||||
|  | 						    "processes found", applet); | ||||||
| 				} | 				} | ||||||
| 				return tkilled; | 				return tkilled; | ||||||
| 			} | 			} | ||||||
| @@ -504,10 +508,14 @@ run_stop_schedule(const char *exec, const char *const *argv, | |||||||
|  |  | ||||||
| 	if (progressed) | 	if (progressed) | ||||||
| 		printf("\n"); | 		printf("\n"); | ||||||
| 	if (nrunning == 1) | 	if (! quiet) { | ||||||
| 		eerror("%s: %d process refused to stop", applet, nrunning); | 		if (nrunning == 1) | ||||||
| 	else | 			eerror("%s: %d process refused to stop", | ||||||
| 		eerror("%s: %d process(es) refused to stop", applet, nrunning); | 			    applet, nrunning); | ||||||
|  | 		else | ||||||
|  | 			eerror("%s: %d process(es) refused to stop", | ||||||
|  | 			    applet, nrunning); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	return -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 */ | 		/* We don't redirect stdin as some daemons may need it */ | ||||||
| 		if (background || quiet || redirect_stdout) | 		if (background || quiet || redirect_stdout) | ||||||
| 			dup2(stdout_fd, STDOUT_FILENO); | 			dup2(stdout_fd, STDOUT_FILENO); | ||||||
| 		if (background || redirect_stderr) | 		if (background || quiet || redirect_stderr) | ||||||
| 			dup2(stderr_fd, STDERR_FILENO); | 			dup2(stderr_fd, STDERR_FILENO); | ||||||
|  |  | ||||||
| 		for (i = getdtablesize() - 1; i >= 3; --i) | 		for (i = getdtablesize() - 1; i >= 3; --i) | ||||||
| @@ -1318,9 +1326,12 @@ start_stop_daemon(int argc, char **argv) | |||||||
| 				return -1; | 				return -1; | ||||||
| 			} | 			} | ||||||
| 		} while (!WIFEXITED(i) && !WIFSIGNALED(i)); | 		} while (!WIFEXITED(i) && !WIFSIGNALED(i)); | ||||||
| 		if (!WIFEXITED(i) || WEXITSTATUS(i) != 0) | 		if (!WIFEXITED(i) || WEXITSTATUS(i) != 0) { | ||||||
| 			eerrorx("%s: failed to start `%s'", applet, exec); | 			if (!quiet) | ||||||
|  | 				eerrorx("%s: failed to start `%s'", | ||||||
|  | 				    applet, exec); | ||||||
|  | 			exit(EXIT_FAILURE); | ||||||
|  | 		} | ||||||
| 		pid = spid; | 		pid = spid; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -1354,7 +1365,7 @@ start_stop_daemon(int argc, char **argv) | |||||||
| 				alive = true; | 				alive = true; | ||||||
| 		} else { | 		} else { | ||||||
| 			if (pidfile) { | 			if (pidfile) { | ||||||
| 				pid = get_pid(pidfile, false); | 				pid = get_pid(pidfile, true); | ||||||
| 				if (pid == -1) { | 				if (pid == -1) { | ||||||
| 					eerrorx("%s: did not " | 					eerrorx("%s: did not " | ||||||
| 					    "create a valid" | 					    "create a valid" | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ l3:3:wait:/sbin/rc default | |||||||
| l4:4:wait:/sbin/rc default | l4:4:wait:/sbin/rc default | ||||||
| l5:5:wait:/sbin/rc default | l5:5:wait:/sbin/rc default | ||||||
| l6:6:wait:/sbin/rc reboot | l6:6:wait:/sbin/rc reboot | ||||||
| l6r:6:wait:/sbin/reboot -d | l6r:6:wait:/sbin/reboot -dk | ||||||
| #z6:6:respawn:/sbin/sulogin | #z6:6:respawn:/sbin/sulogin | ||||||
|  |  | ||||||
| # new-style single-user | # new-style single-user | ||||||
|   | |||||||
| @@ -9,6 +9,10 @@ srcdir=${srcdir:-.} | |||||||
| top_builddir=${top_builddir:-${top_srcdir}} | top_builddir=${top_builddir:-${top_srcdir}} | ||||||
| builddir=${builddir:-${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 | if [ ! -f ${top_srcdir}/sh/functions.sh ] ; then | ||||||
| 	echo "functions.sh not yet created !?" 1>&2 | 	echo "functions.sh not yet created !?" 1>&2 | ||||||
| 	exit 1 | 	exit 1 | ||||||
| @@ -17,9 +21,6 @@ elif ! . ${top_srcdir}/sh/functions.sh; then | |||||||
| 	exit 1 | 	exit 1 | ||||||
| fi | 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 | cd ${top_srcdir}/src/rc | ||||||
| ${MAKE:-make} links >/dev/null | ${MAKE:-make} links >/dev/null | ||||||
| cd - | cd - | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user