Compare commits
	
		
			3 Commits
		
	
	
		
			openrc-0.6
			...
			openrc-0.5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 79fe5af027 | ||
|   | 401def2b8f | ||
|   | be3dd0b8e4 | 
							
								
								
									
										14
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Makefile
									
									
									
									
									
								
							| @@ -2,9 +2,11 @@ | ||||
| # Copyright (c) 2007-2009 Roy Marples <roy@marples.name> | ||||
| # All rights reserved. Released under the 2-clause BSD license. | ||||
|  | ||||
| include Makefile.inc | ||||
| NAME=		openrc | ||||
| VERSION=	0.5.0 | ||||
| PKG=		${NAME}-${VERSION} | ||||
|  | ||||
| SUBDIR=		conf.d etc init.d man scripts sh src | ||||
| SUBDIR=		conf.d etc init.d man sh src | ||||
|  | ||||
| # Build our old net foo or not | ||||
| _OLDNET_SH=	case "${MKOLDNET}" in \ | ||||
| @@ -14,14 +16,6 @@ _OLDNET_SH=	case "${MKOLDNET}" in \ | ||||
| _OLDNET!=	${_OLDNET_SH} | ||||
| SUBDIR+=	${_OLDNET}$(shell ${_OLDNET_SH}) | ||||
|  | ||||
| # Build pkgconfig or not | ||||
| _PKGCONFIG_SH=	case "${MKPKGCONFIG}" in \ | ||||
| 		[Yy][Ee][Ss]|"") echo "pkgconfig";; \ | ||||
| 		*) echo "";; \ | ||||
| 		esac | ||||
| _PKGCONFIG!=	${_PKGCONFIG_SH} | ||||
| SUBDIR+=	${_PKGCONFIG}$(shell ${_PKGCONFIG_SH}) | ||||
|  | ||||
| # We need to ensure that runlevels is done last | ||||
| SUBDIR+=	runlevels | ||||
|  | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| NAME=		openrc | ||||
| VERSION=	0.6.1 | ||||
| PKG=		${NAME}-${VERSION} | ||||
							
								
								
									
										8
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								README
									
									
									
									
									
								
							| @@ -11,7 +11,6 @@ PROGLDFLAGS=-static | ||||
| LIBNAME=lib64 | ||||
| DESTDIR=/tmp/openrc-image | ||||
| MKPAM=pam | ||||
| MKPKGCONFIG=no | ||||
| MKTERMCAP=ncurses | ||||
| MKTERMCAP=termcap | ||||
| MKOLDNET=yes | ||||
| @@ -41,7 +40,7 @@ If any of the following files exist then we do not overwrite them | ||||
| rc and rc.shutdown are the hooks from the BSD init into OpenRC. | ||||
| devd.conf is modified from FreeBSD to call /etc/rc.devd which is a generic | ||||
| hook into OpenRC. | ||||
| inittab is the same, but for SysVInit as used by most Linux distributions. | ||||
| inittab is the same, but for SysVInit as used by most Linux distrubtions. | ||||
| This can be found in the support folder. | ||||
| Obviously, if you're installing this onto a system that does not use OpenRC | ||||
| by default then you may wish to backup the above listed files, remove them | ||||
| @@ -58,15 +57,14 @@ If you installed OpenRC from your chosen distribution, you should report | ||||
| bugs directly to them. For example, if you use Gentoo and emerged OpenRC | ||||
| then you should reports bugs to http://bugs.gentoo.org. | ||||
|  | ||||
| Otherwise, you can report them directly to me at | ||||
| http://roy.marples.name/projects/openrc | ||||
| Otherwise, you can report them directly to me at http://bugs.marples.name | ||||
|  | ||||
|  | ||||
| History - by Roy Marples | ||||
| ------------------------ | ||||
| I became a Gentoo/Linux developer in 2004 and wrote the modular network | ||||
| scripts for the Gentoo baselayout package. baselayout is a collection of | ||||
| bash scripts to bring up your computer and its services. | ||||
| bash scripts to bring up your computer and it's services. | ||||
| Then towards the end of 2005 I found myself as the primary maintainer | ||||
| for baselayout. | ||||
|  | ||||
|   | ||||
							
								
								
									
										36
									
								
								README.net
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								README.net
									
									
									
									
									
								
							| @@ -1,36 +0,0 @@ | ||||
| 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
									
								
								conf.d/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								conf.d/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1 @@ | ||||
| network | ||||
| staticroute | ||||
|   | ||||
| @@ -1,19 +1,14 @@ | ||||
| DIR=	${CONFDIR} | ||||
| CONF=	bootmisc fsck hostname local localmount network staticroute urandom | ||||
| CONF=	bootmisc fsck hostname local localmount network urandom | ||||
|  | ||||
| TARGETS+=	network staticroute | ||||
| CLEANFILES+=	network staticroute | ||||
| TARGETS+=	network | ||||
| CLEANFILES+=	network | ||||
|  | ||||
| MK=	../mk | ||||
| include ${MK}/os.mk | ||||
| include Makefile.${OS} | ||||
| include ${MK}/scripts.mk | ||||
|  | ||||
| SOS?=	BSD | ||||
|  | ||||
| network: network.in network.${SOS} | ||||
| 	cp $@.in $@ | ||||
| 	[ -e $@.${SOS} ] && cat $@.${SOS} >> $@ || true | ||||
|  | ||||
| staticroute: staticroute.${SOS} | ||||
| 	cp $@.${SOS} $@ | ||||
| network: network.in network.${OS} | ||||
| 	cp network.in network | ||||
| 	[ -e network.${OS} ] && cat network.${OS} >> network || true | ||||
|   | ||||
| @@ -1 +1,3 @@ | ||||
| CONF+=	ipfw moused powerd rarpd savecore syscons | ||||
|  | ||||
| network.${OS}: | ||||
|   | ||||
| @@ -1,2 +1 @@ | ||||
| CONF+=	consolefont dmesg hwclock keymaps modules | ||||
| SOS=	Linux | ||||
|   | ||||
| @@ -1 +1,3 @@ | ||||
| CONF+=	moused rarpd savecore | ||||
|  | ||||
| network.${OS}: | ||||
|   | ||||
| @@ -13,11 +13,6 @@ | ||||
| #fsck_passno=">1" | ||||
| #fsck_passno="<2" | ||||
|  | ||||
| # Most modern fs's don't require a full fsck on boot, but for those that do | ||||
| # it may be advisable to skip this when running on battery. | ||||
| # WARNING: Do not turn this off if you have any JFS partitions. | ||||
| fsck_on_battery="YES" | ||||
|  | ||||
| # fsck_shutdown causes fsck to trigger during shutdown as well as startup. | ||||
| # The end result of this is that if any periodic non-root filesystem checks are | ||||
| # scheduled, under normal circumstances the actual check will happen during | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| # Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as | ||||
| # Greenwich Mean Time).  If that clock is set to the local time, then  | ||||
| # Set CLOCK to "UTC" if your system clock is set to UTC (also known as | ||||
| # Greenwich Mean Time).  If your clock is set to the local time, then  | ||||
| # set CLOCK to "local".  Note that if you dual boot with Windows, then  | ||||
| # you should set it to "local". | ||||
| clock="UTC" | ||||
|  | ||||
| # If you want to set the Hardware Clock to the current System Time  | ||||
| # (software clock) during shutdown, then say "YES" here. | ||||
| # during shutdown, then say "YES" here. | ||||
| # You normally don't need to do this if you run a ntp daemon. | ||||
| clock_systohc="NO" | ||||
|  | ||||
|   | ||||
| @@ -1,4 +0,0 @@ | ||||
|  | ||||
| # You can assign a default route | ||||
| #defaultroute="192.168.0.1" | ||||
| #defaultroute6="2001:a:b:c" | ||||
| @@ -1,20 +1,8 @@ | ||||
|  | ||||
| # You can assign a default route | ||||
| #defaultroute="gw 192.168.0.1" | ||||
| #defaultroute6="gw 2001:a:b:c" | ||||
|  | ||||
| # ifconfig under Linux is not that powerful and doesn't easily handle | ||||
| # multiple addresses | ||||
| # On the other hand, ip (iproute2) is quite powerful and is also supported | ||||
| #ip_eth0="192.168.0.10/24; 192.168.10.10/24" | ||||
|  | ||||
| # You can also use ip to add the default route. | ||||
| #defaultiproute="via 192.168.0.1" | ||||
| #defaultiproute6="via 2001:a:b:c" | ||||
|  | ||||
| # ip doesn't handle MTU like ifconfig, but we can do it like so | ||||
| #ifup_eth0="ip link set \$int mtu 1500" | ||||
|  | ||||
| # Create a bonded interface | ||||
| #interfaces="bond0" | ||||
| #ifup_bond0="modprobe bonding; ifconfig \$int up; ifenslave \$int bge0" | ||||
|   | ||||
| @@ -9,6 +9,8 @@ | ||||
| # You should note that we don't stop the network at system shutdown by default. | ||||
| # If you really need this, then set shutdown_network=YES | ||||
|  | ||||
| # You can assign a default route | ||||
| #defaultroute="192.168.0.1" | ||||
| # Lastly, the interfaces variable pulls in virtual interfaces that cannot | ||||
| # be automatically detected. | ||||
| #interfaces="br0 bond0 vlan0" | ||||
| @@ -24,5 +26,3 @@ | ||||
| # If you require DHCP, you should install dhcpcd and it to the boot or | ||||
| # default runlevel. | ||||
|  | ||||
| # NIS users can set the domain name here | ||||
| #domainname="foobar" | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| # Separate multiple routes using ; or new lines. | ||||
| # /etc/route.conf(5) takes precedence over this configuration. | ||||
|  | ||||
| # Example static routes. See route(8) for syntax. | ||||
| #staticroute="net 192.168.0.0 -netmask 255.255.255.0 10.73.1.1 | ||||
| #net 192.168.1.0 -netmask 255.255.255.0 10.73.1.1" | ||||
| @@ -1,8 +0,0 @@ | ||||
| # Separate multiple routes using ; or new lines. | ||||
|  | ||||
| # Example static routes. See route(8) for syntax. | ||||
| #staticroute="net 192.168.0.0 netmask 255.255.255.0 gw 10.73.1.1 | ||||
| #net 192.168.1.0 netmask 255.255.255.0 gw 10.73.1.1" | ||||
|  | ||||
| # Example static routes using iproute2. See ip(8) for syntax. | ||||
| #staticiproute="192.168.0.0/24 via 10.73.1.1; 192.168.1.0/24 via 10.73.1.1" | ||||
| @@ -12,7 +12,7 @@ | ||||
| # kernel then remove the IPv6 address from your config. | ||||
|  | ||||
| # If you want to use a static address or use DHCP explicitly, jump | ||||
| # down to the section labeled INTERFACE HANDLERS. | ||||
| # down to the section labelled INTERFACE HANDLERS. | ||||
| # | ||||
| # If you want to do anything more fancy, you should take the time to | ||||
| # read through the rest of this file. | ||||
| @@ -22,10 +22,10 @@ | ||||
| # | ||||
| # We now support modular networking scripts which means we can easily | ||||
| # add support for new interface types and modules while keeping | ||||
| # compatibility with existing ones. | ||||
| # compatability with existing ones. | ||||
| #  | ||||
| # Modules load by default if the package they need is installed.  If | ||||
| # you specify a module here that doesn't have its package installed | ||||
| # you specify a module here that doesn't have it's package installed | ||||
| # then you get an error stating which package you need to install. | ||||
| # Ideally, you only use the modules setting when you have two or more | ||||
| # packages installed that supply the same service. | ||||
| @@ -43,6 +43,11 @@ | ||||
| #       (eth0:1, eth0:2, etc) | ||||
| #       iproute2 does not do this as there is no need to | ||||
| #config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24" | ||||
| # Or you can use sequence expressions | ||||
| #config_eth0="192.168.0.{2..4}/24"  FIXME - may not work with baselayout2 | ||||
| # which does the same as above. Be careful though as if you use this and | ||||
| # fallbacks, you have to ensure that both end up with the same number of | ||||
| # values otherwise your fallback won't work correctly. | ||||
|  | ||||
| # You can also use IPv6 addresses | ||||
| # (you should always specify a prefix length with IPv6 here) | ||||
| @@ -96,8 +101,8 @@ | ||||
| #modules="iwconfig" | ||||
|  | ||||
| # ifconfig (iwconig) support is a one shot script - wpa_supplicant is daemon | ||||
| # that scans, associates and re-configures if association is lost. | ||||
| # We call it iwconfig to separate the wireless setup from ifconfig. | ||||
| # that scans, assoicates and re-configures if assocation is lost. | ||||
| # We call it iwconfig to seperate the wireless setup from ifconfig. | ||||
| #################################### | ||||
| # HINTS | ||||
| # | ||||
| @@ -182,7 +187,7 @@ | ||||
| #dns_servers_001122334455="192.168.0.1 192.168.0.2" | ||||
|  | ||||
| # Map a MAC address to an SSID | ||||
| # This is used when the Access Point is not broadcasting its SSID | ||||
| # This is used when the Access Point is not broadcasting it's SSID | ||||
| # WARNING: This will override the SSID being broadcast due to some | ||||
| # Access Points sending an SSID even when they have been configured | ||||
| # not to! | ||||
| @@ -193,7 +198,7 @@ | ||||
| # This lists the preferred SSIDs to connect to in order | ||||
| # SSID's can contain any characters here as they must match the broadcast | ||||
| # SSID exactly. | ||||
| # Surround each SSID with the " character and separate them with a space | ||||
| # Surround each SSID with the " character and seperate them with a space | ||||
| # If the first SSID isn't found then it moves onto the next | ||||
| # If this isn't defined then it connects to the first one found | ||||
| #preferred_aps="SSID1 SSID2" | ||||
| @@ -208,9 +213,9 @@ | ||||
| # any other available AP | ||||
| # "preferredonly" means it will only connect to visible APs in the preferred | ||||
| # list | ||||
| # "forcepreferred" means it will forcibly connect to APs in order if it does | ||||
| # "forcepreferred" means it will forceably connect to APs in order if it does | ||||
| # not find them in a scan | ||||
| # "forcepreferredonly" means it forcibly connects to the APs in order and | ||||
| # "forcepreferredonly" means it forceably connects to the APs in order and | ||||
| # does not bother to scan | ||||
| # "forceany" does the same as forcepreferred + connects to any other  | ||||
| # available AP | ||||
| @@ -237,12 +242,12 @@ | ||||
|  | ||||
| ################################################## | ||||
| # wpa_supplicant | ||||
| # emerge net-wireless/wpa_supplicant | ||||
| # emerge net-wireless/wpa-supplicant | ||||
| # Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf | ||||
| # Consult the wpa_supplicant.conf.example that is installed in | ||||
| # Console the wpa_supplicant.conf.example that is installed in | ||||
| # /usr/share/doc/wpa_supplicant | ||||
|  | ||||
| # By default we don't wait for wpa_supplicant to associate and authenticate. | ||||
| # By default we don't wait for wpa_suppliant to associate and authenticate. | ||||
| # If you would like to, so can specify how long in seconds | ||||
| #associate_timeout_eth0=60 | ||||
| # A value of 0 means wait forever. | ||||
| @@ -320,7 +325,7 @@ | ||||
| # Set generic DHCP options like so | ||||
| #dhcp_eth0="release nodns nontp nonis nogateway nosendhost" | ||||
|  | ||||
| # This tells the dhcp client to release its lease when it stops, not to | ||||
| # This tells the dhcp client to release it's lease when it stops, not to | ||||
| # overwrite dns, ntp and nis settings, not to set a default route and not to | ||||
| # send the current hostname to the dhcp server and when it starts. | ||||
| # You can use any combination of the above options - the default is not to | ||||
|   | ||||
| @@ -12,7 +12,7 @@ | ||||
| # kernel then remove the IPv6 address from your config. | ||||
|  | ||||
| # If you want to use a static address or use DHCP explicitly, jump | ||||
| # down to the section labeled INTERFACE HANDLERS. | ||||
| # down to the section labelled INTERFACE HANDLERS. | ||||
| # | ||||
| # If you want to do anything more fancy, you should take the time to | ||||
| # read through the rest of this file. | ||||
| @@ -23,10 +23,10 @@ | ||||
| # | ||||
| # We now support modular networking scripts which means we can easily | ||||
| # add support for new interface types and modules while keeping | ||||
| # compatibility with existing ones. | ||||
| # compatability with existing ones. | ||||
| #  | ||||
| # Modules load by default if the package they need is installed.  If | ||||
| # you specify a module here that doesn't have its package installed | ||||
| # you specify a module here that doesn't have it's package installed | ||||
| # then you get an error stating which package you need to install. | ||||
| # Ideally, you only use the modules setting when you have two or more | ||||
| # packages installed that supply the same service. | ||||
| @@ -70,6 +70,11 @@ | ||||
| #       iproute2 does not do this as there is no need to | ||||
| #config_eth0="192.168.0.2/24 192.168.0.3/24 192.168.0.4/24" | ||||
| # However, that only works with CIDR addresses, so you can't use netmask. | ||||
| # Or you can use sequence expressions | ||||
| #config_eth0="192.168.0.{2..4}/24" | ||||
| # which does the same as above. Be careful though as if you use this and | ||||
| # fallbacks, you have to ensure that both end up with the same number of | ||||
| # values otherwise your fallback won't work correctly. | ||||
|  | ||||
| # You can also use IPv6 addresses | ||||
| # (you should always specify a prefix length with IPv6 here) | ||||
| @@ -106,7 +111,7 @@ | ||||
|  | ||||
| # Each module described below can set a default base metric, lower is | ||||
| # preferred over higher. This is so we can prefer a wired route over a | ||||
| # wireless route automatically. You can override this by setting | ||||
| # wireless route automaticaly. You can override this by setting | ||||
| #metric_eth0="100" | ||||
| # or on a global basis | ||||
| #metric="100" | ||||
| @@ -253,7 +258,7 @@ | ||||
| #key_SSID="s:foobar enc open" | ||||
| #key_SSID="1234-5678-9012 enc open" | ||||
|  | ||||
| # You may want to set multiple keys - here's an example | ||||
| # You may want to set muliple keys - here's an example | ||||
| # It sets 4 keys on the card and instructs to use key 2 by default | ||||
| #key_SSID="[1] s:passkey1 key [2] s:passkey2 key [3] s:passkey3 key [4] s:passkey4 key [2]" | ||||
|  | ||||
| @@ -283,7 +288,7 @@ | ||||
| #dns_servers_001122334455="192.168.0.1 192.168.0.2" | ||||
|  | ||||
| # Map a MAC address to an SSID | ||||
| # This is used when the Access Point is not broadcasting its SSID | ||||
| # This is used when the Access Point is not broadcasting it's SSID | ||||
| # WARNING: This will override the SSID being broadcast due to some | ||||
| # Access Points sending an SSID even when they have been configured | ||||
| # not to! | ||||
| @@ -294,7 +299,7 @@ | ||||
| # This lists the preferred SSIDs to connect to in order | ||||
| # SSID's can contain any characters here as they must match the broadcast | ||||
| # SSID exactly. | ||||
| # Surround each SSID with the " character and separate them with a space | ||||
| # Surround each SSID with the " character and seperate them with a space | ||||
| # If the first SSID isn't found then it moves onto the next | ||||
| # If this isn't defined then it connects to the first one found | ||||
| #preferred_aps="SSID1 SSID2"  | ||||
| @@ -307,9 +312,9 @@ | ||||
| # "any" means it will connect to visible APs in the preferred list and then any | ||||
| # other available AP | ||||
| # "preferredonly" means it will only connect to visible APs in the preferred list | ||||
| # "forcepreferred" means it will forcibly connect to APs in order if it does not find | ||||
| # "forcepreferred" means it will forceably connect to APs in order if it does not find | ||||
| # them in a scan | ||||
| # "forcepreferredonly" means it forcibly connects to the APs in order and does not bother | ||||
| # "forcepreferredonly" means it forceably connects to the APs in order and does not bother | ||||
| # to scan | ||||
| # "forceany" does the same as forcepreferred + connects to any other available AP | ||||
| # Default is "any" | ||||
| @@ -336,16 +341,16 @@ | ||||
|  | ||||
| ############################################################ | ||||
| # wpa_supplicant | ||||
| # emerge net-wireless/wpa_supplicant | ||||
| # emerge net-wireless/wpa-supplicant | ||||
| # Wireless options are held in /etc/wpa_supplicant/wpa_supplicant.conf | ||||
| # Consult the wpa_supplicant.conf.example that is installed in | ||||
| # Console the wpa_supplicant.conf.example that is installed in | ||||
| # /usr/share/doc/wpa_supplicant | ||||
| # To configure wpa_supplicant | ||||
| #wpa_supplicant_ath0="-Dmadwifi" # For Atheros based cards | ||||
| # Consult wpa_supplicant for more drivers - the default is -Dwext which should | ||||
| # work for most cards. | ||||
|  | ||||
| # By default we don't wait for wpa_supplicant to associate and authenticate. | ||||
| # By default we don't wait for wpa_suppliant to associate and authenticate. | ||||
| # If you need to change this behaviour then you don't know how our scripts work | ||||
| # and setting this value could cause strange things to happen. | ||||
| # If you would like to, so can specify how long in seconds. | ||||
| @@ -448,7 +453,7 @@ | ||||
| # Set generic DHCP options like so | ||||
| #dhcp_eth0="release nodns nontp nonis nogateway nosendhost" | ||||
|  | ||||
| # This tells the dhcp client to release its lease when it stops, not to | ||||
| # This tells the dhcp client to release it's lease when it stops, not to | ||||
| # overwrite dns, ntp and nis settings, not to set a default route and not to | ||||
| # send the current hostname to the dhcp server and when it starts. | ||||
| # You can use any combination of the above options - the default is not to | ||||
| @@ -572,7 +577,7 @@ | ||||
| #config_bond0="null" # You may not want to assign an IP the the bond | ||||
|  | ||||
| # You can also configure the bond here, which must be done via sysfs on 2.6 | ||||
| # kernels or newer. See the kernel bonding documentation for a description of | ||||
| # kernels or newer. See the kernel bonding documention for a description of | ||||
| # these options. | ||||
| #arp_ip_target_bond0="+26.0.0.0" | ||||
|  | ||||
| @@ -658,7 +663,7 @@ | ||||
| # | ||||
| # Dead peer detection | ||||
| #	lcp-echo-interval 15	# Send a LCP echo every 15 seconds | ||||
| #	lcp-echo-failure 3	# Make peer dead after 3 consecutive | ||||
| #	lcp-echo-failure 3	# Make peer dead after 3 consective | ||||
| #				# echo-requests | ||||
| #	 | ||||
| # Compression options - use these to completely disable compression | ||||
| @@ -822,8 +827,8 @@ | ||||
| #config_nas0="'192.168.0.1/24'" | ||||
|  | ||||
| #----------------------------------------------------------------------------- | ||||
| # Tunneling | ||||
| # WARNING: For tunneling it is highly recommended that you | ||||
| # Tunnelling | ||||
| # WARNING: For tunnelling it is highly recommended that you | ||||
| # emerge sys-apps/iproute2 | ||||
| # | ||||
| # For GRE tunnels | ||||
| @@ -838,7 +843,7 @@ | ||||
|  | ||||
| # 6to4 Tunnels allow IPv6 to work over IPv4 addresses, provided you | ||||
| # have a non-private address configured on an interface. | ||||
| # link_6to4="eth0"		# Interface to base its addresses on | ||||
| # link_6to4="eth0"		# Interface to base it's addresses on | ||||
| # config_6to4="ip6to4" | ||||
| # You may want to depend on eth0 like so | ||||
| #rc_need_6to4="net.eth0" | ||||
| @@ -848,7 +853,7 @@ | ||||
| # sit0 - otherwise use a different name like 6to4 in the example above. | ||||
|  | ||||
| # You can also specify a relay and suffix if you like. | ||||
| # The default relay is 192.88.99.1 and the default suffix is :1 | ||||
| # The default relay is 192.88.99.1 and the defualt suffix is :1 | ||||
| #relay_6to4="192.168.3.2" | ||||
| #suffix_6to4=":ff" | ||||
|  | ||||
| @@ -987,7 +992,7 @@ | ||||
| #	#	'from 24.80.102.112/32 to 192.168.1.0/24 table localnet priority 100' \ | ||||
| #	#	'from 216.113.223.51/32 to 192.168.1.0/24 table localnet priority 100' \ | ||||
| #	#" | ||||
| #	eval set -- \$rules_${IFVAR} | ||||
| #	eval set -- $\rules_${IFVAR} | ||||
| #	if [ $# != 0 ]; then | ||||
| #		einfo "Adding IP policy routing rules" | ||||
| #		eindent | ||||
| @@ -998,7 +1003,7 @@ | ||||
| #		else | ||||
| #			for x; do | ||||
| #				ebegin "${x}" | ||||
| #				ip rule add ${x} | ||||
| #				ip rule add ${x} dev "${IFACE}" | ||||
| #				eend $? | ||||
| #			done | ||||
| #		fi | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| # Set to "YES" if you want the rc system to try and start services | ||||
| # in parallel for a slight speed improvement. When running in parallel we | ||||
| # prefix the service output with its name as the output will get | ||||
| # prefix the service output with it's name as the output will get | ||||
| # jumbled up. | ||||
| # WARNING: whilst we have improved parallel, it can still potentially lock | ||||
| # the boot process. Don't file bugs about this unless you can supply | ||||
| @@ -76,7 +76,7 @@ | ||||
| #unicode="NO" | ||||
|  | ||||
| # Network fstypes. Below is the default. | ||||
| net_fs_list="afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs nfs nfs4 ocfs2 shfs smbfs" | ||||
| net_fs_list="afs cifs coda davfs fuse gfs ncpfs nfs nfs4 ocfs2 shfs smbfs" | ||||
|  | ||||
| ############################################################################## | ||||
| # SERVICE CONFIGURATION VARIABLES | ||||
|   | ||||
							
								
								
									
										11
									
								
								init.d.misc/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								init.d.misc/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,11 +0,0 @@ | ||||
| avahi-dnsconfd | ||||
| avahid | ||||
| dhcpcd | ||||
| dbus | ||||
| hald | ||||
| named | ||||
| ntpd | ||||
| openvpn | ||||
| polkitd | ||||
| sshd | ||||
| wpa_supplicant | ||||
| @@ -14,7 +14,7 @@ depend() | ||||
| 	use logger | ||||
| 	after bootmisc modules | ||||
| 	before dns dhcpcd net | ||||
| 	keyword -shutdown | ||||
| 	keyword noshutdown | ||||
| } | ||||
|  | ||||
| find_wireless() | ||||
| @@ -24,9 +24,7 @@ find_wireless() | ||||
| 	case "$RC_UNAME" in | ||||
| 	Linux) | ||||
| 		for iface in /sys/class/net/*; do | ||||
| 			if [ -e "$iface"/wireless -o \ | ||||
| 				-e "$iface"/phy80211 ] | ||||
| 			then | ||||
| 			if [ -e "$iface"/wireless ]; then | ||||
| 				echo "${iface##*/}" | ||||
| 				return 0 | ||||
| 			fi | ||||
|   | ||||
							
								
								
									
										3
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								init.d/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -24,7 +24,6 @@ mount-ro | ||||
| mtab | ||||
| numlock | ||||
| procfs | ||||
| staticroute | ||||
| sysfs | ||||
| devdb | ||||
| hostid | ||||
| @@ -35,8 +34,6 @@ rc-enabled | ||||
| rpcbind | ||||
| savecore | ||||
| swap-blk | ||||
| swclock | ||||
| syslogd | ||||
| termencoding | ||||
| ttys | ||||
| wscons | ||||
|   | ||||
| @@ -1,7 +1,6 @@ | ||||
| DIR=	${INITDIR} | ||||
| SRCS=	bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \ | ||||
| 	network.in root.in savecache.in staticroute.in swap.in swclock.in \ | ||||
| 	sysctl.in urandom.in | ||||
| 	network.in root.in savecache.in swap.in sysctl.in urandom.in | ||||
| BIN=	${OBJS} | ||||
|  | ||||
| # Build our old net foo or not | ||||
|   | ||||
| @@ -22,7 +22,7 @@ depend() | ||||
| 	   [ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then | ||||
| 		need root | ||||
| 	fi | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -8,7 +8,7 @@ depend() | ||||
| 	need localmount | ||||
| 	before logger | ||||
| 	after clock sysctl | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| dir_writeable() | ||||
| @@ -26,7 +26,7 @@ cleanup_tmp_dir() | ||||
| 		mkdir -p "$dir" || return $? | ||||
| 	fi | ||||
| 	dir_writeable "$dir" || return 1 | ||||
| 	chmod a+rwt "$dir" | ||||
| 	chmod +t "$dir" | ||||
| 	cd "$dir" | ||||
| 	if yesno $wipe_tmp; then | ||||
| 		ebegin "Wiping $dir directory" | ||||
| @@ -76,10 +76,9 @@ start() | ||||
| 	# Remove any added console dirs | ||||
| 	rm -rf "$RC_LIBEXECDIR"/console | ||||
|  | ||||
| 	local logw=false runw=false extra= | ||||
| 	local logw=false runw=false | ||||
| 	# Ensure that our basic dirs exist | ||||
| 	[ "$RC_UNAME" = Linux ] && extra=/var/lib/misc # Satisfy Linux FHS | ||||
| 	for x in /var/log /var/run /tmp $extra; do | ||||
| 	for x in /var/log /var/run /tmp; do | ||||
| 		if ! [ -d $x ]; then | ||||
| 			if ! mkdir -p $x; then | ||||
| 				eend 1 "failed to create needed directory $x" | ||||
| @@ -95,7 +94,7 @@ start() | ||||
| 		for x in "" $xtra; do | ||||
| 			mkutmp /var/run/utmp$x | ||||
| 		done | ||||
| 		[ -e /var/log/wtmp ] || mkutmp /var/log/wtmp | ||||
| 		[ -e /var/log/wtmp ] && mkutmp /var/log/wtmp | ||||
| 		eend 0 | ||||
|  | ||||
| 		ebegin "Cleaning /var/run" | ||||
| @@ -106,7 +105,7 @@ start() | ||||
| 			# Clean stale sockets | ||||
| 			if [ -S "$x" ]; then | ||||
| 				if type fuser >/dev/null 2>&1; then | ||||
| 					fuser "$x" >/dev/null 2>&1 || rm -- "$x" | ||||
| 					fuser "$x" 2>/dev/null || rm -- "$x" | ||||
| 				else | ||||
| 					rm -- "$x" | ||||
| 				fi | ||||
| @@ -150,7 +149,7 @@ start() | ||||
| 		fi | ||||
| 	fi | ||||
|  | ||||
| 	[ -w /etc/nologin ] && rm -f /etc/nologin | ||||
| 	rm -f /etc/nologin | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ depend() | ||||
| { | ||||
| 	need localmount termencoding | ||||
| 	after hotplug bootmisc | ||||
| 	keyword -openvz -prefix -uml -vserver -xenu | ||||
| 	keyword noopenvz noprefix nouml novserver noxenu | ||||
| } | ||||
|  | ||||
| start() | ||||
| @@ -45,10 +45,8 @@ start() | ||||
| 	[ -d /dev/vc ] && ttydev=/dev/vc/ | ||||
| 	x=1 | ||||
| 	while [ $x -le $ttyn ]; do | ||||
| 		if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then | ||||
| 			retval=1 | ||||
| 			break | ||||
| 		fi | ||||
| 		setfont $consolefont $param -C $ttydev$x >/dev/null  | ||||
| 		retval=$(($retval + $?)) | ||||
| 		x=$(($x + 1)) | ||||
| 	done | ||||
| 	eend $retval | ||||
|   | ||||
| @@ -10,7 +10,7 @@ depend() { | ||||
| 	need localmount | ||||
| 	after bootmisc | ||||
| 	before net.lo0 | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start_pre() { | ||||
|   | ||||
| @@ -6,7 +6,7 @@ description="Mount system critical filesystems in /dev." | ||||
|  | ||||
| depend() { | ||||
| 	use dev | ||||
| 	keyword -prefix -vserver | ||||
| 	keyword noprefix novserver | ||||
| } | ||||
|  | ||||
| start() { | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Set the dmesg level for a cleaner boot" | ||||
| depend() | ||||
| { | ||||
| 	before dev modules | ||||
| 	keyword -vserver | ||||
| 	keyword novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -6,7 +6,7 @@ description="Configures a specific kernel dump device." | ||||
|  | ||||
| depend() { | ||||
| 	need swap | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start() { | ||||
|   | ||||
| @@ -9,7 +9,7 @@ _IFS=" | ||||
| depend() | ||||
| { | ||||
| 	use dev clock modules | ||||
| 	keyword -jail -openvz -prefix -timeout -vserver -lxc | ||||
| 	keyword nojail noopenvz noprefix notimeout novserver | ||||
| } | ||||
|  | ||||
| _abort() { | ||||
| @@ -30,6 +30,33 @@ _forcefsck() | ||||
| 	[ -e /forcefsck ] || get_bootparam forcefsck | ||||
| } | ||||
|  | ||||
| _on_ac_power() | ||||
| { | ||||
| 	if [ -f /proc/acpi/ac_adapter/AC/state ]; then | ||||
| 		cat /proc/acpi/ac_adapter/AC/state | while read line; do | ||||
| 			case "$line" in | ||||
| 			"state:"*"off-line") return 128;; | ||||
| 			esac | ||||
| 		done | ||||
| 	elif [ -f /proc/pmu/info ]; then | ||||
| 		cat /proc/pmu/info | while read line; do | ||||
| 			case "$line" in | ||||
| 			"AC Power"*": 0") return 128;; | ||||
| 			esac | ||||
| 		done | ||||
| 	elif type envstat >/dev/null 2>&1; then | ||||
| 		# NetBSD has envstat | ||||
| 		envstat -d acpiacad0 2>/dev/null | while read line; do | ||||
| 			case "$line" in | ||||
| 			"connected:"*"OFF") return 128;; | ||||
| 			esac | ||||
| 		done | ||||
| 	else | ||||
| 		return 0 | ||||
| 	fi | ||||
| 	[ $? != 128 ] | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	local fsck_opts= p= check_extra= | ||||
| @@ -41,7 +68,7 @@ start() | ||||
| 	if _forcefsck; then | ||||
| 		fsck_opts="$fsck_opts -f" | ||||
| 		check_extra="(check forced)" | ||||
| 	elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then | ||||
| 	elif ! _on_ac_power; then | ||||
| 		ewarn "Skipping fsck due to not being on AC power" | ||||
| 		return 0 | ||||
| 	fi | ||||
|   | ||||
| @@ -9,7 +9,7 @@ depend() | ||||
| { | ||||
| 	use root | ||||
| 	before devd net | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| _set() | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| description="Sets the hostname of the machine." | ||||
|  | ||||
| depend() { | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -28,7 +28,7 @@ depend() | ||||
| 	else | ||||
| 		before * | ||||
| 	fi | ||||
| 	keyword -openvz -prefix -uml -vserver -xenu -lxc | ||||
| 	keyword noopenvz noprefix nouml novserver noxenu | ||||
| } | ||||
|  | ||||
| setupopts() | ||||
| @@ -118,7 +118,7 @@ stop() | ||||
|  | ||||
| 	if ! yesno $clock_adjfile; then | ||||
| 		# Some implementations don't handle adjustments | ||||
| 		if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then | ||||
| 		if LC_ALL=C hwclock --help | grep -q "\-\-noadjfile"; then | ||||
| 			utc_cmd="$utc_cmd --noadjfile" | ||||
| 		fi | ||||
| 	fi | ||||
|   | ||||
| @@ -13,7 +13,7 @@ opts="panic showstatus" | ||||
| depend() { | ||||
| 	before net | ||||
| 	provide firewall | ||||
| 	keyword -jail | ||||
| 	keyword nojail | ||||
| } | ||||
|  | ||||
| ipfw() { | ||||
|   | ||||
| @@ -8,14 +8,14 @@ depend() | ||||
| { | ||||
| 	need localmount termencoding | ||||
| 	after bootmisc | ||||
| 	keyword -openvz -prefix -uml -vserver -xenu | ||||
| 	keyword noopenvz noprefix nouml novserver noxenu | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} | ||||
| 	: ${unicode:=$UNICODE} | ||||
| 	: ${keymap:=$KEYMAP} | ||||
| 	: =${keymap:=$KEYMAP} | ||||
| 	: ${extended_keymaps:=$EXTENDED_KEYMAPS} | ||||
| 	: ${windowkeys:=$SET_WINDOWSKEYS}  | ||||
| 	: ${fix_euro:=$FIX_EURO} | ||||
| @@ -34,25 +34,15 @@ start() | ||||
| 		echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes | ||||
| 	fi | ||||
|  | ||||
| 	local wkeys= kmode="-a" msg="ASCII" | ||||
| 	ebegin "Loading key mappings [$keymap]" | ||||
| 	local loadkeys_uni= wkeys= kmode="-a" msg="ASCII" | ||||
| 	if yesno $unicode; then | ||||
| 		loadkeys_uni="--unicode" | ||||
| 		kmode="-u" | ||||
| 		msg="UTF-8" | ||||
| 	fi | ||||
| 	yesno $windowkeys && wkeys="windowkeys" | ||||
|  | ||||
| 	# Set terminal encoding to either ASCII or UNICODE. | ||||
| 	# See utf-8(7) for more information. | ||||
| 	ebegin "Setting keyboard mode [$msg]" | ||||
| 	n=1 | ||||
| 	while [ $n -le $ttyn ]; do | ||||
| 		kbd_mode $kmode -C $ttydev$n | ||||
| 		n=$(($n + 1)) | ||||
| 	done | ||||
| 	eend 0 | ||||
|  | ||||
| 	ebegin "Loading key mappings [$keymap]" | ||||
| 	loadkeys -q $wkeys $keymap $extended_keymaps | ||||
| 	loadkeys -q $loadkeys_uni $wkeys $keymap $extended_keymaps | ||||
| 	eend $? "Error loading key mappings" || return $? | ||||
|  | ||||
| 	if yesno $fix_euro; then | ||||
| @@ -62,6 +52,20 @@ start() | ||||
| 		eend $? | ||||
| 	fi | ||||
|  | ||||
| 	# Set terminal encoding to either ASCII or UNICODE. | ||||
| 	# See utf-8(7) for more information. | ||||
| 	ebegin "Setting keyboard mode [$msg]" | ||||
| 	if yesno $unicode; then | ||||
| 		dumpkeys ${dumpkeys_charset:+-c} \ | ||||
| 			$dumpkeys_charset | loadkeys --unicode | ||||
| 	fi | ||||
| 	n=1 | ||||
| 	while [ $n -le $ttyn ]; do | ||||
| 		kbd_mode $kmode -C $ttydev$n | ||||
| 		n=$(($n + 1)) | ||||
| 	done | ||||
| 	eend 0 | ||||
|  | ||||
| 	# Save the keymapping for use immediately at boot | ||||
| 	if [ -w "$RC_LIBEXECDIR" ]; then | ||||
| 		mkdir -p "$RC_LIBEXECDIR"/console | ||||
|   | ||||
| @@ -6,7 +6,7 @@ description="Kill all processes so we can unmount disks cleanly." | ||||
|  | ||||
| depend() | ||||
| { | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Executes user commands in /etc/conf.d/local" | ||||
| depend() | ||||
| { | ||||
| 	after * | ||||
| 	keyword -timeout | ||||
| 	keyword notimeout | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -8,7 +8,7 @@ depend() | ||||
| { | ||||
| 	need fsck | ||||
| 	use lvm modules mtab | ||||
| 	keyword -jail -openvz -prefix -vserver -lxc | ||||
| 	keyword nojail noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ extra_commands="restore" | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| restore() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules." | ||||
| depend() | ||||
| { | ||||
| 	use isapnp | ||||
| 	keyword -openvz -prefix -vserver -lxc | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Re-mount filesytems read-only for a clean reboot." | ||||
| depend() | ||||
| { | ||||
| 	need killprocs savecache | ||||
| 	keyword -prefix -openvz -vserver -lxc | ||||
| 	keyword noprefix noopenvz novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -16,7 +16,7 @@ depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	after bootmisc | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -7,17 +7,11 @@ description="Update /etc/mtab to match what the kernel knows about" | ||||
| depend() | ||||
| { | ||||
| 	need root | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	# /etc/mtab could be a symlink to /proc/mounts | ||||
| 	if [ ! -w /etc/mtab -a -L /etc/mtab ]; then | ||||
| 		eeinfo "Skipping mtab update (non writeable symlink)" | ||||
| 		return 0 | ||||
| 	fi | ||||
|  | ||||
| 	ebegin "Updating /etc/mtab" | ||||
| 	if ! echo 2>/dev/null >/etc/mtab; then | ||||
| 		ewend 1 "/etc/mtab is not updateable" | ||||
|   | ||||
| @@ -21,7 +21,7 @@ depend() | ||||
| 	need localmount | ||||
| 	after bootmisc | ||||
| 	provide net | ||||
| 	keyword -jail -prefix -vserver | ||||
| 	keyword nojail noprefix novserver | ||||
|  | ||||
| 	case "${IFACE}" in | ||||
| 		lo|lo0);; | ||||
|   | ||||
| @@ -35,7 +35,7 @@ depend() | ||||
| 	need net $pmap | ||||
| 	use afc-client amd autofs openvpn | ||||
| 	use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd | ||||
| 	keyword -jail -prefix -vserver | ||||
| 	keyword nojail noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -13,7 +13,7 @@ depend() | ||||
| 	need localmount | ||||
| 	after bootmisc | ||||
| 	provide net | ||||
| 	keyword -jail -prefix -vserver | ||||
| 	keyword nojail noprefix novserver | ||||
| } | ||||
|  | ||||
| uniqify() | ||||
| @@ -57,40 +57,6 @@ sys_interfaces() | ||||
| 	esac | ||||
| } | ||||
|  | ||||
| tentative() | ||||
| { | ||||
| 	local inet= address= rest= | ||||
|  | ||||
| 	case "$RC_UNAME" in | ||||
| 	Linux) | ||||
| 		[ -x /sbin/ip ] || return 1 | ||||
| 		LC_ALL=C ip addr show | while read inet address rest; do | ||||
| 	 		case "${inet}" in | ||||
| 			inet6) | ||||
| 				case "${rest}" in | ||||
| 				*" "tentative*) return 2;; | ||||
| 				esac | ||||
| 				;; | ||||
| 			esac | ||||
| 		done | ||||
| 		[ $? = 2 ] | ||||
| 	*) | ||||
| 		local inet= address= rest= | ||||
| 		LC_ALL=C ifconfig -a | while read inet address rest; do | ||||
| 	 		case "${inet}" in | ||||
| 			inet6) | ||||
| 				case "${rest}" in | ||||
| 				*" "tentative*) return 2;; | ||||
| 				esac | ||||
| 				;; | ||||
| 			esac | ||||
| 		done | ||||
| 		[ $? = 2 ] | ||||
| 		;; | ||||
| 	esac | ||||
| } | ||||
|  | ||||
|  | ||||
| auto_interfaces() | ||||
| { | ||||
| 	local ifs= c= f= | ||||
| @@ -137,28 +103,13 @@ dumpargs() | ||||
| 	esac | ||||
| } | ||||
|  | ||||
| intup=false | ||||
| runip() | ||||
| { | ||||
| 	local int="$1" err= | ||||
|  | ||||
| 	shift | ||||
|  | ||||
| 	# Ensure we have a valid broadcast address | ||||
| 	case "$@" in | ||||
| 	*" broadcast "*|*" brd "*) ;; | ||||
| 	*:*) ;; # Ignore IPv6 | ||||
| 	*) set -- "$@" brd +;; | ||||
| 	esac | ||||
|  | ||||
| 	err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1) | ||||
| 	if [ -z "$err" ]; then | ||||
| 		# ip does not bring up the interface when adding addresses | ||||
| 		if ! $intup; then | ||||
| 			ip link set "$int" up | ||||
| 			intup=true | ||||
| 		fi | ||||
| 		return 0 | ||||
| 	fi | ||||
| 	[ -z "$err" ] && return 0 | ||||
| 	if [ "$err" = "RTNETLINK answers: File exists" ]; then | ||||
| 		ip address del "$@" dev "$int" 2>/dev/null | ||||
| 	fi | ||||
| @@ -171,7 +122,6 @@ routeflush() | ||||
| 	if [ "$RC_UNAME" = Linux ]; then | ||||
| 		if [ -x /sbin/ip ]; then | ||||
| 			ip route flush scope global | ||||
| 			ip route delete default 2>/dev/null | ||||
| 		else | ||||
| 			# Sadly we also delete some link routes, but | ||||
| 			# this cannot be helped | ||||
| @@ -191,8 +141,6 @@ routeflush() | ||||
| 				esac | ||||
| 				route del $flags $dest $netmask $xtra | ||||
| 			done | ||||
| 			# Erase any default dev eth0 routes | ||||
| 			route del default 2>/dev/null | ||||
| 		fi | ||||
| 	else | ||||
| 		route -qn flush | ||||
| @@ -217,16 +165,6 @@ runargs() | ||||
| start() | ||||
| { | ||||
| 	local cr=0 r= int= intv= cmd= args= upcmd= | ||||
|  | ||||
| 	if [ -z "$domainname" -a -s /etc/defaultdomain ]; then | ||||
| 		domainname=$(cat /etc/defaultdomain) | ||||
| 	fi | ||||
| 	if [ -n "$domainname" ]; then | ||||
| 		ebegin "Setting NIS domainname: $domainname" | ||||
| 		domainname "$domainname" | ||||
| 		eend $? | ||||
| 	fi | ||||
|  | ||||
| 	einfo "Starting network" | ||||
| 	routeflush | ||||
| 	if [ "$RC_UNAME" = "Linux" ]; then | ||||
| @@ -256,7 +194,7 @@ start() | ||||
| 			-f /etc/ifup."$int" -o -f "$cf" ] || continue | ||||
| 		veinfo "$int" | ||||
| 		case "$func" in | ||||
| 		ip)	func=runip; intup=false;; | ||||
| 		ip)	func=runip;; | ||||
| 		esac | ||||
| 		eindent | ||||
| 		runargs /etc/ifup."$int" "$upcmd" | ||||
| @@ -285,36 +223,13 @@ start() | ||||
| 	eoutdent | ||||
| 	eend $cr | ||||
|  | ||||
| 	# Wait for any inet6 tentative addresses | ||||
| 	r=5 | ||||
| 	while [ $r -gt 0 ]; do | ||||
| 		tentative || break | ||||
| 		sleep 1 | ||||
| 		r=$(($r - 1)) | ||||
| 	done | ||||
| 	 | ||||
| 	if [ -n "$defaultroute" ]; then | ||||
| 		ebegin "Setting default route $defaultroute" | ||||
| 		route add default $defaultroute | ||||
| 		eend $? | ||||
| 	elif [ -n "$defaultiproute" ]; then | ||||
| 		ebegin "Setting default route $defaultiproute" | ||||
| 		ip route add default $defaultiproute | ||||
| 		eend $? | ||||
| 	fi | ||||
|  | ||||
| 	if [ -n "$defaultroute6" ]; then | ||||
| 		ebegin "Setting default route $defaultroute6" | ||||
| 		if [ "$RC_UNAME" = Linux ]; then | ||||
| 			routecmd="route -A inet6 add" | ||||
| 			route add default gw $defaultroute | ||||
| 		else | ||||
| 			routecmd="route -inet6 add" | ||||
| 			route add default $defaultroute | ||||
| 		fi | ||||
| 		$routecmd default $defaultroute6 | ||||
| 		eend $? | ||||
| 	elif [ -n "$defaultiproute6" ]; then | ||||
| 		ebegin "Setting default route $defaultiproute6" | ||||
| 		ip -f inet6 route add default $defaultiproute6 | ||||
| 		eend $? | ||||
| 	fi | ||||
|  | ||||
| @@ -343,11 +258,6 @@ stop() | ||||
| 		then | ||||
| 			veinfo "$int" | ||||
| 			runargs /etc/ifdown."$int" "$downcmd" | ||||
| 			if [ -x /sbin/ip ]; then | ||||
| 				# We need to do this, otherwise we may | ||||
| 				# fail to add things correctly on restart | ||||
| 				ip address flush dev "$int" 2>/dev/null | ||||
| 			fi | ||||
| 			ifconfig "$int" down 2>/dev/null | ||||
| 			ifconfig "$int" destroy 2>/dev/null | ||||
| 		fi | ||||
|   | ||||
| @@ -7,7 +7,7 @@ required_files="/etc/newsyslog.conf" | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword -openvz -prefix -vserver -lxc | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| _setleds() | ||||
|   | ||||
| @@ -11,7 +11,7 @@ extra_started_commands="reload" | ||||
|  | ||||
| depend() { | ||||
| 	need localmount | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -12,7 +12,7 @@ depend() | ||||
| 	need localmount | ||||
| 	use logger | ||||
| 	after bootmisc | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start_pre() | ||||
|   | ||||
| @@ -8,12 +8,12 @@ depend() | ||||
| { | ||||
| 	use modules devfs | ||||
| 	need localmount | ||||
| 	keyword -openvz -prefix -vserver -lxc | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	# Make sure we insert usbcore if it's a module | ||||
| 	# Make sure we insert usbcore if its a module | ||||
| 	if [ -f /proc/modules -a ! -d /proc/bus/usb ]; then | ||||
| 		modprobe -q usbcore | ||||
| 	fi | ||||
|   | ||||
| @@ -7,7 +7,7 @@ depend() | ||||
| 	need localmount net | ||||
| 	after * | ||||
| 	before local | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Mount the root fs read/write" | ||||
| depend() | ||||
| { | ||||
| 	need fsck | ||||
| 	keyword -jail -openvz -prefix -vserver -lxc | ||||
| 	keyword nojail noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -22,7 +22,7 @@ start() | ||||
| 		fi | ||||
| 	fi | ||||
| 	local save= | ||||
| 	for x in deptree depconfig shutdowntime softlevel nettree rc.log; do | ||||
| 	for x in deptree depconfig softlevel nettree rc.log; do | ||||
| 		[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x" | ||||
| 	done | ||||
| 	if [ -n "$save" ]; then | ||||
|   | ||||
| @@ -7,7 +7,7 @@ description="Saves a kernel dump." | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -1,104 +0,0 @@ | ||||
| #!@PREFIX@/sbin/runscript | ||||
| # Copyright (c) 2009 Roy Marples <roy@marples.name> | ||||
| # All rights reserved. Released under the 2-clause BSD license. | ||||
|  | ||||
| # This script was inspired by the equivalent rc.d staticroute from NetBSD. | ||||
|  | ||||
| description="Configures static routes." | ||||
| __nl=" | ||||
| " | ||||
|  | ||||
| depend() | ||||
| { | ||||
| 	provide net | ||||
| 	use network | ||||
| 	keyword -jail -prefix -vserver | ||||
| } | ||||
|  | ||||
| pre_flight_checks() | ||||
| { | ||||
| 	route=route | ||||
| 	[ -s /etc/route.conf ] && return 0 | ||||
|  | ||||
| 	if [ -n "$staticiproute" ]; then | ||||
| 		route="ip route" | ||||
| 		staticroute="$staticiproute" | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| dump_args() | ||||
| { | ||||
| 	# Route configuration file, as used by the NetBSD RC system | ||||
| 	if [ -s /etc/route.conf ]; then | ||||
| 		cat /etc/route.conf | ||||
| 		return $? | ||||
| 	fi | ||||
|  | ||||
| 	case "$staticroute" in | ||||
| 	*"$__nl"*) | ||||
| 		echo "$staticroute" | ||||
| 		;; | ||||
| 	*) | ||||
| 		( | ||||
| 			set -o noglob | ||||
| 			IFS=';'; set -- $staticroute | ||||
| 			IFS="$__nl"; echo "$*" | ||||
| 		) | ||||
| 		;; | ||||
| 	esac | ||||
| } | ||||
|  | ||||
| do_routes() | ||||
| { | ||||
| 	local xtra= family= | ||||
| 	[ "$RC_UNAME" != Linux ] && xtra=-q | ||||
|  | ||||
| 	ebegin "$1 static routes" | ||||
| 	eindent | ||||
| 	pre_flight_checks | ||||
| 	dump_args | while read args; do | ||||
| 		[ -z "$args" ] && continue | ||||
| 		case "$args" in | ||||
| 		"#"*) | ||||
| 			;; | ||||
| 		"+"*) | ||||
| 			[ $2 = "add" ] && eval ${args#*+} | ||||
| 			;; | ||||
| 		"-"*) | ||||
| 			[ $2 = "del" -o $2 = "delete" ] && eval ${args#*-} | ||||
| 			;; | ||||
| 		*) | ||||
| 			veinfo "$args" | ||||
| 			case "$route" in | ||||
| 			"ip route") | ||||
| 				ip route $2 $args | ||||
| 				;; | ||||
| 			*) | ||||
| 				# Linux route does cannot work it out ... | ||||
| 				if [ "$RC_UNAME" = Linux ]; then | ||||
| 					case "$args" in | ||||
| 					*:*) family="-A inet6";; | ||||
| 					*) family=;; | ||||
| 					esac | ||||
| 				fi | ||||
| 				route $famly $xtra $2 -$args | ||||
| 				;; | ||||
| 			esac | ||||
| 			veend $? | ||||
| 		esac | ||||
| 	done | ||||
| 	eoutdent | ||||
| 	eend 0 | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	do_routes "Adding" "add" | ||||
| } | ||||
|  | ||||
| stop() | ||||
| { | ||||
| 	local cmd="delete" | ||||
| 	[ "$RC_UNAME" = Linux ] && cmd="del" | ||||
| 	do_routes "Deleting" "$cmd" | ||||
| } | ||||
| @@ -5,7 +5,7 @@ | ||||
| depend() | ||||
| { | ||||
| 	before fsck | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword -jail -openvz -prefix -vserver -lxc | ||||
| 	keyword nojail noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -1,28 +0,0 @@ | ||||
| #!@PREFIX@/sbin/runscript | ||||
| # Copyright (c) 2009 Roy Marples <roy@marples.name> | ||||
| # All rights reserved. Released under the 2-clause BSD license. | ||||
|  | ||||
| description="Sets the local clock to the mtime of a given file." | ||||
|  | ||||
| depend() | ||||
| { | ||||
| 	before * | ||||
| 	provide clock | ||||
| 	keyword -openvz -prefix -uml -vserver -xenu -lxc | ||||
| } | ||||
|  | ||||
| # swclock is an OpenRC built in | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	ebegin "Setting the local clock based on last shutdown time" | ||||
| 	swclock --warn | ||||
| 	eend $? | ||||
| } | ||||
|  | ||||
| stop() | ||||
| { | ||||
| 	ebegin "Saving the shutdown time" | ||||
| 	swclock --save | ||||
| 	eend $? | ||||
| } | ||||
| @@ -4,7 +4,7 @@ | ||||
|  | ||||
| depend() { | ||||
| 	need localmount | ||||
| 	keyword -jail -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| start() { | ||||
|   | ||||
| @@ -6,27 +6,19 @@ depend() | ||||
| { | ||||
| 	use hostname | ||||
| 	before bootmisc logger | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	[ -e /etc/sysctl.conf ] || return 0 | ||||
| 	local retval=0 var= comments= conf= | ||||
| 	local retval=0 var= comments= | ||||
| 	ebegin "Configuring kernel parameters" | ||||
| 	eindent | ||||
| 	for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do | ||||
| 		if [ -r "$conf" ]; then | ||||
| 			vebegin "applying $conf" | ||||
| 	while read var comments; do | ||||
| 		case "$var" in | ||||
| 			""|"#"*) continue;; | ||||
| 		esac | ||||
| 		sysctl -w "$var" >/dev/null || retval=1 | ||||
| 			done < "$conf" | ||||
| 			veend $retval | ||||
| 		fi | ||||
| 	done | ||||
| 	eoutdent | ||||
| 	done < /etc/sysctl.conf | ||||
| 	eend $retval "Some errors were encountered" | ||||
| } | ||||
|   | ||||
| @@ -6,21 +6,13 @@ depend() | ||||
| { | ||||
| 	use hostname | ||||
| 	before bootmisc logger | ||||
| 	keyword -openvz -prefix -vserver | ||||
| 	keyword noopenvz noprefix novserver | ||||
| } | ||||
|  | ||||
| start() | ||||
| { | ||||
| 	local conf= retval=0 | ||||
| 	[ -e /etc/sysctl.conf ] || return 0 | ||||
| 	ebegin "Configuring kernel parameters" | ||||
| 	eindent | ||||
| 	for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do | ||||
| 		if [ -r "$conf" ]; then | ||||
| 			vebegin "applying $conf" | ||||
| 			sysctl -p "$conf" >/dev/null | ||||
| 			veend $? || retval=1 | ||||
| 		fi | ||||
| 	done | ||||
| 	eoutdent | ||||
| 	eend $retval "Some errors were encountered" | ||||
| 	sysctl -p >/dev/null | ||||
| 	eend $? "Some errors were encountered" | ||||
| } | ||||
|   | ||||
| @@ -6,7 +6,7 @@ description="Mount the sys filesystem." | ||||
|  | ||||
| depend() | ||||
| { | ||||
| 	keyword -prefix -vserver | ||||
| 	keyword noprefix novserver | ||||
| } | ||||
|  | ||||
| mount_sys() | ||||
|   | ||||
| @@ -16,5 +16,5 @@ depend() | ||||
| 	use net newsyslog | ||||
| 	need localmount | ||||
| 	after bootmisc | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} | ||||
|  | ||||
| depend() | ||||
| { | ||||
| 	keyword -openvz -prefix -uml -vserver -xenu | ||||
| 	keyword noopenvz noprefix nouml novserver noxenu | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| depend()  | ||||
| { | ||||
| 	after fsck | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -8,7 +8,7 @@ description="Initializes the random number generator." | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword -jail -openvz -prefix | ||||
| 	keyword nojail noprefix | ||||
| } | ||||
|  | ||||
| save_seed() | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| depend() | ||||
| { | ||||
| 	need localmount | ||||
| 	keyword -prefix | ||||
| 	keyword noprefix | ||||
| } | ||||
|  | ||||
| start() | ||||
|   | ||||
| @@ -39,7 +39,7 @@ | ||||
| .Nm eprefix | ||||
| .Nd colorful informational output | ||||
| .Sh LIBRARY | ||||
| Enhanced Information output library (libeinfo, -leinfo) | ||||
| Enhanced Informatation output library (libeinfo, -leinfo) | ||||
| .Sh SYNOPSIS | ||||
| .In einfo.h | ||||
| .Ft int Fn einfo "const char * restrict format" ... | ||||
|   | ||||
| @@ -36,7 +36,7 @@ | ||||
| .Nm | ||||
| gathers and displays information about the status of services  | ||||
| in different runlevels.  The default behavior is to show information  | ||||
| about the current runlevel and any unassigned services that are not stopped, | ||||
| about the current runlevel and any unassgined services that are not stopped, | ||||
| but any runlevel can be quickly examined. | ||||
| .Pp | ||||
| The options are as follows: | ||||
|   | ||||
| @@ -54,7 +54,7 @@ owned by | ||||
| .Fa uid , | ||||
| all of which are optional. | ||||
| .Pp | ||||
| The returned list should be freed when done. | ||||
| The retuned list should be freed when done. | ||||
| .Sh IMPLEMENTATION NOTES | ||||
| On BSD systems we use | ||||
| .Lb libkvm | ||||
|   | ||||
| @@ -42,7 +42,7 @@ is set to the hook running, and | ||||
| .Fa name | ||||
| is set to the name of the runlevel or name of the service. | ||||
| .Pp | ||||
| Plugins can affect the parent environment by writing NULL separated strings to | ||||
| Plugins can affect the parent environemnt by writing NULL separated strings to | ||||
| .Va rc_environ_fd . | ||||
| .Sh SEE ALSO | ||||
| .Xr rc 8 , | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
| .\" SUCH DAMAGE. | ||||
| .\" | ||||
| .Dd November 4, 2009 | ||||
| .Dd April 30, 2009 | ||||
| .Dt RUNSCRIPT 8 SMM | ||||
| .Os OpenRC | ||||
| .Sh NAME | ||||
| @@ -39,8 +39,8 @@ | ||||
| .Nm | ||||
| is basically an interpreter for shell scripts which provide an easy interface | ||||
| to the often complex system commands and daemons. | ||||
| When a service runs a command it first loads its multiplexed configuration | ||||
| file, then its master configuration file, then | ||||
| When a service runs a command it first loads it's mulitplexed configuration | ||||
| file, then it's master configuration file, then | ||||
| .Pa /etc/rc.conf | ||||
| and finally the script itself. At this point | ||||
| .Nm | ||||
| @@ -79,7 +79,7 @@ Ignore all dependency information the service supplies. | ||||
| Only run the command if the service has been started. | ||||
| .It Fl q , -quiet | ||||
| Turns off all informational output the service generates. | ||||
| Output from any non OpenRC commands is not affected. | ||||
| Output from any non OpenRC comands is not affected. | ||||
| .It Fl v , -verbose | ||||
| Turns on any extra informational output the service generates. | ||||
| .It Fl Z , -dry-run | ||||
| @@ -90,9 +90,9 @@ or stopping them. | ||||
| The following variables affect the service script: | ||||
| .Bl -tag -width "RC_DEFAULTLEVEL" | ||||
| .It Ar extra_commands | ||||
| Space separated list of extra commands the service defines. | ||||
| Space seperated list of extra commands the service defines. | ||||
| .It Ar extra_started_commands | ||||
| Space separated list of extra commands the service defines. These only work if | ||||
| Space seperated list of extra commands the service defines. These only work if | ||||
| the service has already been started. | ||||
| .It Ar description | ||||
| String describing the service. | ||||
| @@ -128,7 +128,7 @@ will refuse to stop until any services that need it have stopped. | ||||
| The service will attempt to start any services we use that have been added | ||||
| to the runlevel. | ||||
| .It Ic after | ||||
| The service will start after these services and stop before these services. | ||||
| The service will start after thse services and stop before these services. | ||||
| .It Ic before | ||||
| The service will start before these services and stop after these services. | ||||
| .It Ic provide | ||||
| @@ -138,32 +138,30 @@ We should recalculate our dependencies if the listed files have changed. | ||||
| .It Ic keyword | ||||
| Tags a service with a keyword. Here's the keywords we currently understand:- | ||||
| .Bl -tag -width indent | ||||
| .It Dv -jail | ||||
| .It Dv nojail | ||||
| When in a jail, exclude this service from any dependencies. The service can | ||||
| still be run directly. | ||||
| .It Dv -openvz | ||||
| Same as -jail, but for OpenVZ systems. | ||||
| .It Dv -lxc | ||||
| Same as -jail, but for Linux Resource Containers (LXC). | ||||
| .It Dv -shutdown | ||||
| .It Dv noopenvz | ||||
| Same as nojail, but for OpenVZ systems. | ||||
| .It Dv noshutdown | ||||
| Don't stop this service when shutting the system down. | ||||
| This normally quite safe as remaining daemons will be sent a SIGTERM just | ||||
| before final shutdown. | ||||
| Network related services such as the network and dhcpcd init scripts normally | ||||
| have this keyword. | ||||
| .It Dv -stop | ||||
| .It Dv nostop | ||||
| Don't stop this service when changing runlevels, even if not present. | ||||
| This includes shutting the system down. | ||||
| .It Dv -timeout | ||||
| .It Dv notimeout | ||||
| Do not time out waiting for that service. | ||||
| .It Dv -uml | ||||
| Same as -jail, but for UML systems. | ||||
| .It Dv -vserver | ||||
| Same as -jail, but for VServer systems. | ||||
| .It Dv -xen0 | ||||
| Same as -jail, but for Xen DOM0 systems. | ||||
| .It Dv -xenu | ||||
| Same as -jail, but for Xen DOMU systems. | ||||
| .It Dv nouml | ||||
| Same as nojail, but for UML systems. | ||||
| .It Dv novserver | ||||
| Same as nojail, but for VServer systems. | ||||
| .It Dv noxen0 | ||||
| Same as nojail, but for Xen DOM0 systems. | ||||
| .It Dv noxenu | ||||
| Same as nojail, but for Xen DOMU systems. | ||||
| .El | ||||
| .El | ||||
| .Pp | ||||
| @@ -225,7 +223,7 @@ is newer than | ||||
| return 0, otherwise 1. | ||||
| If | ||||
| .Ar file2 | ||||
| is a directory, then check all its contents too. | ||||
| is a directory, then check all it's contents too. | ||||
| .It Ic is_older_than Ar file1 Ar file2 ... | ||||
| If | ||||
| .Ar file1 | ||||
| @@ -234,7 +232,7 @@ is newer than | ||||
| return 0, otherwise 1. | ||||
| If | ||||
| .Ar file2 | ||||
| is a directory, then check all its contents too. | ||||
| is a directory, then check all it's contents too. | ||||
| .It Ic service_set_value Ar name Ar value | ||||
| Saves the | ||||
| .Ar name | ||||
| @@ -320,7 +318,7 @@ Configuration files, relative to the location of the service. | ||||
| If a file ending with .${RC_RUNLEVEL} exists then we use that instead. | ||||
| .Bl -ohang | ||||
| .It Pa ../conf.d/${RC_SVCNAME%%.*} | ||||
| multiplexed configuration file. | ||||
| mulitplexed configuration file. | ||||
| Example: if ${RC_SVCNAME} is net.eth1 then look for | ||||
| .Pa ../conf.d/net . | ||||
| .It Pa ../conf.d/${RC_SVCNAME} | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
| .\" SUCH DAMAGE. | ||||
| .\" | ||||
| .Dd December 14, 2009 | ||||
| .Dd April 22, 2009 | ||||
| .Dt START-STOP-DAEMON 8 SMM | ||||
| .Os OpenRC | ||||
| .Sh NAME | ||||
| @@ -43,7 +43,7 @@ | ||||
| .Ar daemon | ||||
| .Sh DESCRIPTION | ||||
| .Nm | ||||
| provides a consistent method of starting, stopping and signaling daemons. | ||||
| provides a consistent method of starting, stopping and signalling daemons. | ||||
| If neither | ||||
| .Fl K , -stop | ||||
| nor | ||||
| @@ -85,7 +85,7 @@ then | ||||
| .Nm | ||||
| matches the process | ||||
| .D1 /usr/bin/perl -w foo | ||||
| If an interpreted daemon changes its process name then this won't work. | ||||
| If an interpreted daemon changes it's process name then this won't work. | ||||
| .It Fl u , -user Ar user Ns Op : Ns Ar group | ||||
| Start the daemon as the | ||||
| .Ar user | ||||
| @@ -98,8 +98,6 @@ Print the action(s) that would be taken, but don't actually do anything. | ||||
| The return value is set as if the command was taken and worked. | ||||
| .It Fl v , -verbose | ||||
| Print the action(s) that are taken just before doing them. | ||||
| .It Fl P , -progress | ||||
| Echo a . to the console for each second elapsed whilst waiting. | ||||
| .El | ||||
| .Pp | ||||
| These options are only used for starting daemons: | ||||
| @@ -136,10 +134,6 @@ option. Only useful when used with daemons that run in the foreground and | ||||
| forced into the background with the | ||||
| .Fl -b , -background | ||||
| option. | ||||
| .It Fl I , -ionice Ar class Ns Op : Ns Ar data | ||||
| Modifies the IO scheduling priority of the daemon. | ||||
| Class can be 0 for none, 1 for real time, 2 for best effort and 3 for idle. | ||||
| Data can be from 0 to 7 inclusive. | ||||
| .It Fl N , -nice Ar level | ||||
| Modifies the scheduling priority of the daemon. | ||||
| .It Fl 1 , -stdout Ar logfile | ||||
| @@ -148,9 +142,9 @@ Redirect the standard output of the process to logfile when started with | ||||
| Must be an absolute pathname, but relative to the path optionally given with | ||||
| .Fl r , -chroot . | ||||
| The logfile can also be a named pipe. | ||||
| .It Fl w , -wait Ar milliseconds | ||||
| .It Fl w , -wait Ar seconds | ||||
| Wait | ||||
| .Ar milliseconds | ||||
| .Ar seconds | ||||
| after starting and check that daemon is still running. | ||||
| Useful for daemons that check configuration after forking or stopping race | ||||
| conditions where the pidfile is written out after forking. | ||||
|   | ||||
| @@ -11,8 +11,7 @@ _config_vars="$_config_vars bridge bridge_add brctl" | ||||
|  | ||||
| _is_bridge() | ||||
| { | ||||
| 	# Ignore header line so as to allow for bridges named 'bridge' | ||||
| 	brctl show 2>/dev/null | sed '1,1d' | grep -q "^${IFACE}[[:space:]]" | ||||
| 	brctl show 2>/dev/null | grep -q "^${IFACE}[[:space:]]" | ||||
| } | ||||
|  | ||||
| bridge_pre_start() | ||||
| @@ -89,16 +88,14 @@ bridge_post_stop() | ||||
| 	if _is_bridge; then | ||||
| 		ebegin "Destroying bridge ${IFACE}" | ||||
| 		_down | ||||
| 		# Ignore header line so as to allow for bridges named 'bridge' | ||||
| 		ports="$(brctl show 2>/dev/null | \ | ||||
| 			sed -n -e '1,1d' -e '/^'"${IFACE}"'[[:space:]]/,/^\S/ { /^\('"${IFACE}"'[[:space:]]\|\t\)/s/^.*\t//p }')" | ||||
| 			sed -n -e '/^'"${IFACE}"'[[:space:]]/,/^\S/ { /^\('"${IFACE}"'[[:space:]]\|\t\)/s/^.*\t//p }')" | ||||
| 		delete=true | ||||
| 		iface=${IFACE} | ||||
| 		eindent | ||||
| 	else | ||||
| 		# Work out if we're added to a bridge for removal or not | ||||
| 		# Ignore header line so as to allow for bridges named 'bridge' | ||||
| 		eval set -- $(brctl show 2>/dev/null | sed -e '1,1d' -e "s/'/'\\\\''/g" -e "s/$/'/g" -e "s/^/'/g") | ||||
| 		eval set -- $(brctl show 2>/dev/null | sed -e "s/'/'\\\\''/g" -e "s/$/'/g" -e "s/^/'/g") | ||||
| 		local line= | ||||
| 		for line; do | ||||
| 			set -- ${line} | ||||
|   | ||||
| @@ -56,11 +56,8 @@ dhcpcd_start() | ||||
| 		esac | ||||
| 	done | ||||
|  | ||||
| 	# Add our route metric if not given | ||||
| 	case " $args " in | ||||
| 	*" -m "*) ;; | ||||
| 	*) [ "${metric:-0}" != 0 ] && args="$args -m $metric";; | ||||
| 	esac | ||||
| 	# Add our route metric | ||||
| 	[ "${metric:-0}" != "0" ] && args="${args} -m ${metric}" | ||||
|  | ||||
| 	# Bring up DHCP for this interface | ||||
| 	ebegin "Running dhcpcd" | ||||
|   | ||||
| @@ -42,8 +42,7 @@ _ifindex() | ||||
| _is_wireless() | ||||
| { | ||||
| 	# Support new sysfs layout | ||||
| 	[ -d /sys/class/net/"${IFACE}"/wireless -o \ | ||||
| 		-d /sys/class/net/"${IFACE}"/phy80211 ] && return 0 | ||||
| 	[ -d /sys/class/net/"${IFACE}"/wireless ] && return 0 | ||||
|  | ||||
| 	[ ! -e /proc/net/wireless ] && return 1 | ||||
| 	grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless | ||||
| @@ -262,17 +261,6 @@ _tunnel() | ||||
|  | ||||
| ifconfig_pre_start() | ||||
| { | ||||
| 	local tunnel= | ||||
| 	eval tunnel=\$iptunnel_${IFVAR} | ||||
| 	if [ -n "${tunnel}" ]; then | ||||
| 		# Set our base metric to 1000 | ||||
| 		metric=1000 | ||||
| 		ebegin "Creating tunnel ${IFVAR}" | ||||
| 		iptunnel add ${tunnel} | ||||
| 		eend $? || return 1 | ||||
| 		_up | ||||
| 	fi | ||||
|  | ||||
| 	# MTU support | ||||
| 	local mtu= | ||||
| 	eval mtu=\$mtu_${IFVAR} | ||||
| @@ -283,7 +271,17 @@ ifconfig_pre_start() | ||||
| 	eval len=\$txqueuelen_${IFVAR} | ||||
| 	[ -n "${len}" ] && ifconfig "${IFACE}" txqueuelen "${len}" | ||||
|  | ||||
| 	return 0 | ||||
| 	local tunnel= | ||||
|  | ||||
| 	eval tunnel=\$iptunnel_${IFVAR} | ||||
| 	[ -z "${tunnel}" ] && return 0 | ||||
|  | ||||
| 	# Set our base metric to 1000 | ||||
| 	metric=1000 | ||||
| 	 | ||||
| 	ebegin "Creating tunnel ${IFVAR}" | ||||
| 	iptunnel add ${tunnel} | ||||
| 	eend $? | ||||
| } | ||||
|  | ||||
| ifconfig_post_stop() | ||||
|   | ||||
| @@ -43,8 +43,7 @@ _ifindex() | ||||
| _is_wireless() | ||||
| { | ||||
| 	# Support new sysfs layout | ||||
| 	[ -d /sys/class/net/"${IFACE}"/wireless -o \ | ||||
| 		-d /sys/class/net/"${IFACE}"/phy80211 ] && return 0 | ||||
| 	[ -d /sys/class/net/"${IFACE}"/wireless ] && return 0 | ||||
|  | ||||
| 	[ ! -e /proc/net/wireless ] && return 1 | ||||
| 	grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless | ||||
| @@ -158,10 +157,7 @@ _add_route() | ||||
| 		shift | ||||
| 	done | ||||
|  | ||||
| 	# We cannot use a metric if we're using a nexthop | ||||
| 	if ! ${have_metric} && \ | ||||
| 		[ -n "${metric}" -a -z "${cmd##* nexthop }" ] | ||||
| 	then | ||||
| 	if ! ${have_metric} && [ -n "${metric}" ]; then | ||||
| 		cmd="${cmd} metric ${metric}" | ||||
| 	fi | ||||
|  | ||||
| @@ -191,6 +187,16 @@ _tunnel() | ||||
|  | ||||
| iproute2_pre_start() | ||||
| { | ||||
| 	# MTU support | ||||
| 	local mtu= | ||||
| 	eval mtu=\$mtu_${IFVAR} | ||||
| 	[ -n "${mtu}" ] && ip link set "${IFACE}" mtu "${mtu}" | ||||
|  | ||||
| 	# TX Queue Length support | ||||
| 	local len= | ||||
| 	eval len=\$txqueuelen_${IFVAR} | ||||
| 	[ -n "${len}" ] && ip link set "${IFACE}" txqueuelen "${len}" | ||||
|  | ||||
| 	local tunnel= | ||||
| 	eval tunnel=\$iptunnel_${IFVAR} | ||||
| 	if [ -n "${tunnel}" ]; then | ||||
| @@ -203,16 +209,6 @@ iproute2_pre_start() | ||||
| 		_up	 | ||||
| 	fi | ||||
|  | ||||
| 	# MTU support | ||||
| 	local mtu= | ||||
| 	eval mtu=\$mtu_${IFVAR} | ||||
| 	[ -n "${mtu}" ] && ip link set "${IFACE}" mtu "${mtu}" | ||||
|  | ||||
| 	# TX Queue Length support | ||||
| 	local len= | ||||
| 	eval len=\$txqueuelen_${IFVAR} | ||||
| 	[ -n "${len}" ] && ip link set "${IFACE}" txqueuelen "${len}" | ||||
|  | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| @@ -226,8 +222,6 @@ _iproute2_ipv6_tentative() | ||||
|  | ||||
| iproute2_post_start() | ||||
| { | ||||
| 	local n=5 | ||||
|  | ||||
| 	# Kernel may not have IP built in | ||||
| 	if [ -e /proc/net/route ]; then | ||||
| 		ip route flush table cache dev "${IFACE}" | ||||
| @@ -235,16 +229,11 @@ iproute2_post_start() | ||||
|  | ||||
| 	if _iproute2_ipv6_tentative; then | ||||
| 		ebegin "Waiting for IPv6 addresses" | ||||
| 		while [ $n -ge 0 ]; do | ||||
| 		while true; do | ||||
| 			_iproute2_ipv6_tentative || break | ||||
| 			sleep 1 | ||||
| 			n=$(($n - 1)) | ||||
| 		done | ||||
| 		[ $n -ge 0 ] | ||||
| 		eend $? | ||||
| 		eend 0 | ||||
| 	fi | ||||
|  | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| iproute2_post_stop() | ||||
|   | ||||
| @@ -90,7 +90,7 @@ pppd_pre_start() | ||||
| 	eval passwordset=\$\{password_${IFVAR}-x\} | ||||
| 	if [ -n "${username}" ] \ | ||||
| 	&& [ -n "${password}" -o -z "${passwordset}" ]; then | ||||
| 		opts="plugin passwordfd.so ${opts} passwordfd 0" | ||||
| 		opts="${opts} plugin passwordfd.so passwordfd 0" | ||||
| 	fi | ||||
| 	 | ||||
| 	if ! ${hasdefaultmetric}; then | ||||
| @@ -155,7 +155,7 @@ pppd_pre_start() | ||||
| 			opts="${opts} connect true" | ||||
| 			set -- "$@" "${link}" | ||||
| 		fi | ||||
| 		opts="plugin $1.so ${opts}" | ||||
| 		opts="${opts} plugin $1.so" | ||||
| 		shift | ||||
| 		opts="${opts} $@" | ||||
| 	done | ||||
|   | ||||
| @@ -26,7 +26,7 @@ tuntap_pre_start() | ||||
| 			return 1 | ||||
| 		fi | ||||
| 		vebegin "Waiting for /dev/net/tun" | ||||
| 		# /dev/net/tun can take its time to appear | ||||
| 		# /dev/net/tun can take it's time to appear | ||||
| 		local timeout=10 | ||||
| 		while [ ! -e /dev/net/tun -a ${timeout} -gt 0 ]; do | ||||
| 			sleep 1 | ||||
|   | ||||
| @@ -87,7 +87,7 @@ vlan_post_start() | ||||
|  | ||||
| 		# We need to work out the interface name of our new vlan id | ||||
| 		local ifname="$(sed -n -e \ | ||||
| 			's/^\([^[:space:]]*\) *| '"${vlan}"' *| .*'"${IFACE}"'$/\1/p' \ | ||||
| 			's/^\([^[:space:]]*\) *| '"${vlan}"' *| .*'"${iface}"'$/\1/p' \ | ||||
| 			/proc/net/vlan/config )" | ||||
| 		mark_service_started "net.${ifname}" | ||||
| 		( | ||||
|   | ||||
							
								
								
									
										2
									
								
								pkgconfig/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								pkgconfig/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +0,0 @@ | ||||
| einfo.pc | ||||
| openrc.pc | ||||
| @@ -1,11 +0,0 @@ | ||||
| DIR=	${LIBDIR}/pkgconfig | ||||
| SRCS=	einfo.pc.in openrc.pc.in | ||||
| INC=	einfo.pc openrc.pc | ||||
|  | ||||
| sed -n -e 's/^VERSION=[[:space:]]*\([^[:space:]]*\).*/#define VERSION "\1${GITVER}\"/p' ../../Makefile > version.h | ||||
|  | ||||
| SED_EXTRA=	-e 's:@VERSION@:${VERSION}:g' | ||||
|  | ||||
| MK=	../mk | ||||
| include ../Makefile.inc | ||||
| include ${MK}/scripts.mk | ||||
| @@ -1,9 +0,0 @@ | ||||
| prefix=@PREFIX@ | ||||
| exec_prefix=${prefix} | ||||
| libdir=${prefix}/@LIB@ | ||||
| includedir=/usr/include | ||||
|  | ||||
| Name: einfo | ||||
| Description: Pretty console informational display | ||||
| Version: @VERSION@ | ||||
| Libs: -L${libdir} -leinfo | ||||
| @@ -1,10 +0,0 @@ | ||||
| prefix=@PREFIX@ | ||||
| exec_prefix=${prefix} | ||||
| libdir=${prefix}/@LIB@ | ||||
| includedir=/usr/include | ||||
|  | ||||
| Name: OpenRC | ||||
| Description: Universal init system | ||||
| Version: @VERSION@ | ||||
| Cflags: -I${includedir} | ||||
| Libs: -L${libdir} -lrc | ||||
| @@ -1,5 +1,5 @@ | ||||
| BOOT=		bootmisc fsck hostname localmount network \ | ||||
| 		root staticroute swap sysctl urandom | ||||
| 		root swap sysctl urandom | ||||
| DEFAULT=	local netmount | ||||
| SHUTDOWN=	savecache | ||||
|  | ||||
|   | ||||
| @@ -1,5 +0,0 @@ | ||||
| DIR=	${LIBEXECDIR}/bin | ||||
| BIN=	on_ac_power | ||||
|  | ||||
| MK=	../mk | ||||
| include ${MK}/scripts.mk | ||||
| @@ -1,33 +0,0 @@ | ||||
| #!/bin/sh | ||||
| # Detect AC power or not in a portable way | ||||
| # Copyright (c) 2007-2009 Roy Marples <roy@marples.name> | ||||
|  | ||||
| # Exit 0 if on AC power, 1 if not and 255 if we don't know how to work it out | ||||
| if [ -f /proc/acpi/ac_adapter/AC*/state ]; then | ||||
| 	cat /proc/acpi/ac_adapter/AC*/state | while read line; do | ||||
| 		case "$line" in | ||||
| 		"state:"*"off-line") return 128;; | ||||
| 		esac | ||||
| 	done | ||||
| elif [ -f /proc/pmu/info ]; then | ||||
| 	cat /proc/pmu/info | while read line; do | ||||
| 		case "$line" in | ||||
| 		"AC Power"*": 0") return 128;; | ||||
| 		esac | ||||
| 	done | ||||
| elif type envstat >/dev/null 2>&1; then | ||||
| 	# NetBSD has envstat | ||||
| 	envstat -d acpiacad0 2>/dev/null | while read line; do | ||||
| 		case "$line" in | ||||
| 		"connected:"*"OFF") return 128;; | ||||
| 		esac | ||||
| 	done | ||||
| elif sysctl -q hw.acpi.acline >/dev/null 2>/dev/null; then | ||||
| 	case $(sysctl -n hw.acpi.acline) in | ||||
| 	0) return 1;; | ||||
| 	*) return 0;; | ||||
| 	esac | ||||
| else | ||||
| 	exit 255 | ||||
| fi | ||||
| [ $? != 128 ] | ||||
| @@ -5,7 +5,6 @@ | ||||
| # All rights reserved. Released under the 2-clause BSD license. | ||||
|  | ||||
| . @SYSCONFDIR@/init.d/functions.sh | ||||
| . @LIBEXECDIR@/sh/rc-functions.sh | ||||
|  | ||||
| config() { | ||||
| 	[ -n "$*" ] && echo "$RC_SVCNAME config $*" >&3 | ||||
| @@ -83,7 +82,24 @@ do | ||||
|  | ||||
| 		if . "$_dir/$RC_SVCNAME"; then | ||||
| 			echo "$RC_SVCNAME" >&3 | ||||
| 			_depend | ||||
| 			depend | ||||
| 			_rc_svcname=$(shell_var "$RC_SVCNAME") | ||||
|  | ||||
| 			# Add any user defined depends | ||||
| 			for _deptype in config:CONFIG need:NEED use:USE \ | ||||
| 			after:AFTER before:BEFORE \ | ||||
| 			provide:PROVIDE keyword:KEYWORD; do | ||||
| 				IFS=: | ||||
| 				set -- $_deptype | ||||
| 				unset IFS | ||||
| 				eval _depends=\$rc_$_rc_svcname_$1 | ||||
| 				[ -z "$_depends" ] && eval _depends=\$rc_$1 | ||||
| 				[ -z "$_depends" ] && \ | ||||
| 					eval _depends=\$RC_$_rc_svcname_$2 | ||||
| 				[ -z "$_depends" ] && eval _depends=\$RC_$2 | ||||
|  | ||||
| 				$1 ${_depends} | ||||
| 			done | ||||
| 		fi | ||||
| 		) | ||||
| 	done | ||||
|   | ||||
| @@ -8,19 +8,14 @@ | ||||
| # tmpfs and ramfs are easy, so force one or the other. | ||||
| mount_svcdir() | ||||
| { | ||||
| 	# mount from fstab if we can | ||||
| 	fstabinfo --mount "$RC_SVCDIR" && return 0 | ||||
|  | ||||
| 	local fs= fsopts="-o rw,noexec,nodev,nosuid" | ||||
| 	local devdir="rc-svcdir" x= | ||||
| 	local svcsize=${rc_svcsize:-1024} | ||||
|  | ||||
| 	# Some buggy kernels report tmpfs even when not present :( | ||||
| 	if grep -Eq "[[:space:]]+tmpfs$" /proc/filesystems; then | ||||
| 		mount -n -t tmpfs $fsopts,mode=755,size=${svcsize}k \ | ||||
| 			rc-svcdir "$RC_SVCDIR" && return 0 | ||||
| 	fi | ||||
| 	 | ||||
| 	if grep -Eq "[[:space:]]+ramfs$" /proc/filesystems; then | ||||
| 		fs="tmpfs" | ||||
| 		fsopts="$fsopts,mode=0755,size=${svcsize}k" | ||||
| 	elif grep -Eq "[[:space:]]+ramfs$" /proc/filesystems; then | ||||
| 		fs="ramfs" | ||||
| 		# ramfs has no special options | ||||
| 	elif [ -e /dev/ram0 ] \ | ||||
| @@ -37,7 +32,10 @@ mount_svcdir() | ||||
| 		return 1 | ||||
| 	fi | ||||
|  | ||||
| 	mount -n -t "$fs" $fsopts rc-svcdir "$RC_SVCDIR" | ||||
| 	# If we have no entry in fstab for $RC_SVCDIR, provide our own | ||||
| 	if ! fstabinfo --mount "$RC_SVCDIR"; then | ||||
| 		mount -n -t "$fs" $fsopts "$devdir" "$RC_SVCDIR" | ||||
| 	fi | ||||
| } | ||||
|  | ||||
| . "$RC_LIBEXECDIR"/sh/functions.sh | ||||
| @@ -70,14 +68,4 @@ if $mountproc; then | ||||
| 	eend $? | ||||
| fi | ||||
|  | ||||
| # Try to mount xenfs as early as possible, otherwise rc_sys() will always | ||||
| # return RC_SYS_XENU and will think that we are in a domU while it's not. | ||||
| if grep -Eq "[[:space:]]+xenfs$" /proc/filesystems; then | ||||
| 	ebegin "Mounting xenfs" | ||||
| 	if ! fstabinfo --mount /proc/xen; then | ||||
| 		mount -n -t xenfs xenfs /proc/xen -o nosuid,nodev,noexec | ||||
| 	fi | ||||
| 	eend $? | ||||
| fi | ||||
|  | ||||
| . "$RC_LIBEXECDIR"/sh/init-common-post.sh | ||||
|   | ||||
| @@ -84,27 +84,6 @@ get_bootparam() | ||||
| 	return 1 | ||||
| } | ||||
|  | ||||
| # Called from runscript.sh or gendepends.sh | ||||
| _depend() { | ||||
| 	depend | ||||
| 	local _rc_svcname=$(shell_var "$RC_SVCNAME") _deptype= _depends= | ||||
|  | ||||
| 	# Add any user defined depends | ||||
| 	for _deptype in config:CONFIG need:NEED use:USE \ | ||||
| 	after:AFTER before:BEFORE \ | ||||
| 	provide:PROVIDE keyword:KEYWORD; do | ||||
| 		IFS=: | ||||
| 		set -- $_deptype | ||||
| 		unset IFS | ||||
| 		eval _depends=\$rc_${_rc_svcname}_$1 | ||||
| 		[ -z "$_depends" ] && eval _depends=\$rc_$1 | ||||
| 		[ -z "$_depends" ] && eval _depends=\$RC_${_rc_svcname}_$2 | ||||
| 		[ -z "$_depends" ] && eval _depends=\$RC_$2 | ||||
|  | ||||
| 		$1 $_depends | ||||
| 	done | ||||
| } | ||||
|  | ||||
| # Add our sbin to $PATH | ||||
| case "$PATH" in | ||||
| 	"$RC_LIBEXECDIR"/sbin|"$RC_LIBEXECDIR"/sbin:*);; | ||||
|   | ||||
| @@ -36,7 +36,7 @@ do_unmount() | ||||
| 				;; | ||||
| 		esac | ||||
|  | ||||
| 		retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1 | ||||
| 		retry=3 | ||||
| 		while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do | ||||
| 			if type fuser >/dev/null 2>&1; then | ||||
| 				pids="$(fuser $f_opts "$mnt" 2>/dev/null)" | ||||
| @@ -53,16 +53,13 @@ do_unmount() | ||||
| 					eend 1 "in use but fuser finds nothing" | ||||
| 					retry=0;; | ||||
| 				*) | ||||
| 					if [ $retry -le 0 ]; then | ||||
| 						eend 1 | ||||
| 					else | ||||
| 						local sig="TERM" | ||||
| 						retry=$(($retry - 1)) | ||||
| 						[ $retry = 1 ] && sig="KILL" | ||||
| 					local sig="KILL" | ||||
| 					[ $retry -gt 0 ] && sig="TERM" | ||||
| 					fuser $f_kill$sig -k $f_opts \ | ||||
| 						"$mnt" >/dev/null 2>&1 | ||||
| 					sleep 1 | ||||
| 					fi | ||||
| 					retry=$(($retry - 1)) | ||||
| 					[ $retry -le 0 ] && eend 1 | ||||
| 					;; | ||||
| 			esac | ||||
| 			[ $retry -le 0 ] && break | ||||
|   | ||||
| @@ -25,29 +25,6 @@ shift | ||||
| # Compat | ||||
| export SVCNAME=$RC_SVCNAME | ||||
|  | ||||
| # Dependency function | ||||
| config() { | ||||
| 	[ -n "$*" ] && echo "config $*" | ||||
| } | ||||
| need() { | ||||
| 	[ -n "$*" ] && echo "need $*" | ||||
| } | ||||
| use() { | ||||
| 	[ -n "$*" ] && echo "use $*" | ||||
| } | ||||
| before() { | ||||
| 	[ -n "$*" ] && echo "before $*" | ||||
| } | ||||
| after() { | ||||
| 	[ -n "$*" ] && echo "after $*" | ||||
| } | ||||
| provide() { | ||||
| 	[ -n "$*" ] && echo "provide $*" | ||||
| } | ||||
| keyword() { | ||||
| 	[ -n "$*" ] && echo "keyword $*" | ||||
| } | ||||
|  | ||||
| # Descript the init script to the user | ||||
| describe() | ||||
| { | ||||
| @@ -187,12 +164,6 @@ done | ||||
| unset _f | ||||
|  | ||||
| while [ -n "$1" ]; do | ||||
| 	# Sepcial case depend | ||||
| 	if [ "$1" = depend ]; then | ||||
| 		shift | ||||
| 		_depend | ||||
| 		continue | ||||
| 	fi | ||||
| 	# See if we have the required function and run it | ||||
| 	for _cmd in describe start stop status ${extra_commands:-$opts} \ | ||||
| 		$extra_started_commands | ||||
|   | ||||
| @@ -35,7 +35,6 @@ | ||||
| #include <sys/stat.h> | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
|  | ||||
| #define RC_LEVEL_BOOT           "boot" | ||||
|   | ||||
| @@ -346,9 +346,8 @@ get_provided(const RC_DEPINFO *depinfo, const char *runlevel, int options) | ||||
| 	    get_provided1(runlevel, providers, dt, bootlevel, false, RC_SERVICE_STOPPED)) | ||||
| 		return providers; | ||||
|  | ||||
| 	/* Still nothing? OK, list our first provided service. */ | ||||
| 	service = TAILQ_FIRST(dt->services); | ||||
| 	if (service != NULL) | ||||
| 	/* Still nothing? OK, list all services */ | ||||
| 	TAILQ_FOREACH(service, dt->services, entries) | ||||
| 		rc_stringlist_add(providers, service->value); | ||||
|  | ||||
| 	return providers; | ||||
| @@ -739,7 +738,7 @@ rc_deptree_update(void) | ||||
| 	RC_STRING *s, *s2, *s2_np, *s3, *s4; | ||||
| 	char *line = NULL; | ||||
| 	size_t len = 0; | ||||
| 	char *depend, *depends, *service, *type, *nosys, *onosys; | ||||
| 	char *depend, *depends, *service, *type, *nosys; | ||||
| 	size_t i, k, l; | ||||
| 	bool retval = true; | ||||
| 	const char *sys = rc_sys(); | ||||
| @@ -803,11 +802,6 @@ rc_deptree_update(void) | ||||
| 				continue; | ||||
| 			} | ||||
|  | ||||
| 			/* Don't provide ourself */ | ||||
| 			if (strcmp(type, "iprovide") == 0 && | ||||
| 			    strcmp(depend, service) == 0) | ||||
| 				continue; | ||||
|  | ||||
| 			/* .sh files are not init scripts */ | ||||
| 			l = strlen(depend); | ||||
| 			if (l > 2 && | ||||
| @@ -847,25 +841,17 @@ rc_deptree_update(void) | ||||
| 	 * work for them. This doesn't stop them from being run directly. */ | ||||
| 	if (sys) { | ||||
| 		len = strlen(sys); | ||||
| 		nosys = xmalloc(len + 1); | ||||
| 		nosys[0] = '-'; | ||||
| 		nosys = xmalloc(len + 3); | ||||
| 		nosys[0] = 'n'; | ||||
| 		nosys[1] = 'o'; | ||||
| 		for (i = 0; i < len; i++) | ||||
| 			nosys[i + 1] = (char)tolower((unsigned char)sys[i]); | ||||
| 		nosys[i + 1] = '\0'; | ||||
|  | ||||
| 		onosys = xmalloc(len + 3); | ||||
| 		onosys[0] = 'n'; | ||||
| 		onosys[1] = 'o'; | ||||
| 		for (i = 0; i < len; i++) | ||||
| 			onosys[i + 2] = (char)tolower((unsigned char)sys[i]); | ||||
| 		onosys[i + 2] = '\0'; | ||||
| 			nosys[i + 2] = (char)tolower((unsigned char)sys[i]); | ||||
| 		nosys[i + 2] = '\0'; | ||||
|  | ||||
| 		TAILQ_FOREACH_SAFE(depinfo, deptree, entries, depinfo_np) | ||||
| 			if ((deptype = get_deptype(depinfo, "keyword"))) | ||||
| 				TAILQ_FOREACH(s, deptype->services, entries) | ||||
| 					if (strcmp(s->value, nosys) == 0 || | ||||
| 					    strcmp(s->value, onosys) == 0) | ||||
| 					{ | ||||
| 					if (strcmp(s->value, nosys) == 0) { | ||||
| 						provide = get_deptype(depinfo, "iprovide"); | ||||
| 						TAILQ_REMOVE(deptree, depinfo, entries); | ||||
| 						TAILQ_FOREACH(di, deptree, entries) { | ||||
| @@ -884,7 +870,6 @@ rc_deptree_update(void) | ||||
| 						} | ||||
| 					} | ||||
| 		free(nosys); | ||||
| 		free(onosys); | ||||
| 	} | ||||
|  | ||||
| 	/* Phase 3 - add our providers to the tree */ | ||||
|   | ||||
| @@ -233,8 +233,6 @@ rc_sys(void) | ||||
| 		return RC_SYS_VSERVER; | ||||
| 	else if (exists("/proc/vz/veinfo") && !exists("/proc/vz/version")) | ||||
| 		return RC_SYS_OPENVZ; | ||||
| 	else if (file_regex("/proc/self/cgroup", ":/.+$")) | ||||
| 		return RC_SYS_LXC; | ||||
| 	else if (file_regex("/proc/self/status", | ||||
| 		"envID:[[:space:]]*[1-9]")) | ||||
| 		return RC_SYS_OPENVZ; /* old test */ | ||||
| @@ -377,7 +375,7 @@ rc_runlevel_stacks(const char *runlevel) | ||||
| } | ||||
| librc_hidden_def(rc_runlevel_stacks) | ||||
|  | ||||
| /* Resolve a service name to its full path */ | ||||
| /* Resolve a service name to it's full path */ | ||||
| char * | ||||
| rc_service_resolve(const char *service) | ||||
| { | ||||
| @@ -470,7 +468,7 @@ rc_service_exists(const char *service) | ||||
| } | ||||
| librc_hidden_def(rc_service_exists) | ||||
|  | ||||
| #define OPTSTR ". '%s'; echo $opts" | ||||
| #define OPTSTR ". '%s'; echo \"${opts}\"" | ||||
| RC_STRINGLIST * | ||||
| rc_service_extra_commands(const char *service) | ||||
| { | ||||
|   | ||||
| @@ -72,6 +72,8 @@ | ||||
| #define librc_hidden_proto(x) hidden_proto(x) | ||||
| #define librc_hidden_def(x) hidden_def(x) | ||||
|  | ||||
| ssize_t rc_getline(char **, size_t *, FILE *); | ||||
|  | ||||
| librc_hidden_proto(rc_config_list) | ||||
| librc_hidden_proto(rc_config_load) | ||||
| librc_hidden_proto(rc_config_value) | ||||
|   | ||||
| @@ -117,7 +117,7 @@ bool rc_runlevel_stopping(void); | ||||
|  | ||||
| /*! @name RC | ||||
|  * A service can be given as a full path or just its name. | ||||
|  * If it's just a name then we try to resolve the service to a full path. | ||||
|  * If its just a name then we try to resolve the service to a full path. | ||||
|  * This should allow the use if local init.d directories in the future. */ | ||||
|  | ||||
| /*! @brief States a service can be in */ | ||||
| @@ -268,7 +268,6 @@ bool rc_service_daemons_crashed(const char *); | ||||
|  * Some services cannot work in these systems, or we do something else. */ | ||||
| #define RC_SYS_JAIL    "JAIL" | ||||
| #define RC_SYS_OPENVZ  "OPENVZ" | ||||
| #define RC_SYS_LXC     "LXC" | ||||
| #define RC_SYS_PREFIX  "PREFIX" | ||||
| #define RC_SYS_UML     "UML" | ||||
| #define RC_SYS_VSERVER "VSERVER" | ||||
| @@ -326,7 +325,7 @@ typedef void *RC_DEPTREE; | ||||
| #endif | ||||
|  | ||||
| /*! Check to see if source is newer than target. | ||||
|  * If target is a directory then we traverse it and its children. | ||||
|  * If target is a directory then we traverse it and it's children. | ||||
|  * @param source | ||||
|  * @param target | ||||
|  * @param mtime of newest target | ||||
| @@ -335,7 +334,7 @@ typedef void *RC_DEPTREE; | ||||
| bool rc_newer_than(const char *, const char *, time_t *, char *); | ||||
|  | ||||
| /*! Check to see if source is older than target. | ||||
|  * If target is a directory then we traverse it and its children. | ||||
|  * If target is a directory then we traverse it and it's children. | ||||
|  * @param source | ||||
|  * @param target | ||||
|  * @param mtime of oldest target | ||||
| @@ -446,7 +445,7 @@ RC_STRINGLIST *rc_config_load(const char *); | ||||
| /*! Return the value of the entry from a key=value list. */ | ||||
| char *rc_config_value(RC_STRINGLIST *, const char *); | ||||
|  | ||||
| /*! Check if a variable is a boolean and return its value. | ||||
| /*! Check if a variable is a boolean and return it's value. | ||||
|  * If variable is not a boolean then we set errno to be ENOENT when it does | ||||
|  * not exist or EINVAL if it's not a boolean. | ||||
|  * @param variable to check | ||||
| @@ -485,9 +484,9 @@ bool rc_stringlist_delete(RC_STRINGLIST *, const char *); | ||||
|  * @return pointer to item */ | ||||
| RC_STRING *rc_stringlist_find(RC_STRINGLIST *, const char *); | ||||
|  | ||||
| /*! Split a string into a stringlist based on separator. | ||||
| /*! Split a string into a stringlist based on seperator. | ||||
|  * @param string to split | ||||
|  * @param separator | ||||
|  * @param seperator | ||||
|  * @return new list */ | ||||
| RC_STRINGLIST *rc_stringlist_split(const char *, const char *); | ||||
|  | ||||
| @@ -518,9 +517,5 @@ typedef LIST_HEAD(rc_pidlist, rc_pid) RC_PIDLIST; | ||||
|  * @return NULL terminated list of pids */ | ||||
| RC_PIDLIST *rc_find_pids(const char *, const char *const *, uid_t, pid_t); | ||||
|  | ||||
| /* getline is a handy glibc function that not all libcs have, so | ||||
|  * we have our own */ | ||||
| ssize_t rc_getline(char **, size_t *, FILE *); | ||||
|  | ||||
| __END_DECLS | ||||
| #endif | ||||
|   | ||||
| @@ -12,7 +12,6 @@ global: | ||||
| 	rc_deptree_update_needed; | ||||
| 	rc_environ_fd; | ||||
| 	rc_find_pids; | ||||
| 	rc_getline; | ||||
| 	rc_newer_than; | ||||
| 	rc_older_than; | ||||
| 	rc_runlevel_exists; | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user