Compare commits

...

18 Commits

Author SHA1 Message Date
William Hubbs
8046427d7f increment version
This sets up for the release of openrc-0.11.3. The release will be
tagged when it is ready.
2012-11-02 18:56:53 -05:00
William Hubbs
c73173ae53 Tmpfiles: create and delete entries once in the boot runlevel.
Initially, we were creating tmpfiles entries in the sysinit runlevel and
again in the boot runlevel. Systemd runs the --create and --remove
options in one service called systemd-tmpfiles-setup after the local
file systems are mounted. Now we have a service called tmpfiles.setup
which emulates this.

This also closes the bug mentioned below, since we were originally
writing to files that were on read-only file systems and that were not
available.

Reported-by: <devurandom@gmx.net>
X-Gentoo-Bug: 439012
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=439012
2012-10-31 17:38:41 -05:00
William Hubbs
2964fc47f1 Expand the documentation for service configuration variables
The original documentation for these variables did not give an example
of what to do if the service had a name that had illegal characters in
it, so this commit adds an example. There was no bug report; this was
suggested by Tobias Klausmann.
2012-10-30 11:19:53 -05:00
William Hubbs
0396f0ea7c Oldnet: make carrier timeout documentation consistent 2012-10-28 15:02:41 -05:00
William Hubbs
78a25883f3 Checkpath: print the path when correcting the owner
Checkpath was printing the path it was working with unless it was
correcting the owner. In this case, it was printing "checkpath", which
is not very useful.

Reported-by: <devurandom@gmx.net>
X-Gentoo-Bug: 439014
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=439014
2012-10-28 15:02:41 -05:00
William Hubbs
18dc0efa52 netmount: drop need net from dependencies
Reported-by: <mattsch@gmail.com>
X-Gentoo-Bug: 439658
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=439658
2012-10-28 15:02:41 -05:00
William Hubbs
f53645b7c7 mountinfo: respect the -q command line option
Previously, we were setting the quiet flag before the command line was
parsed. Since the flag is only used once, we can just read the
environment variable which is set by the parsing process.

Reported-by: <devurandom@gmx.net>
X-Gentoo-Bug: 439010
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=439010
2012-10-28 15:02:41 -05:00
William Hubbs
a75a9940b0 oldnet: document the carrier_timeout option 2012-10-28 15:02:41 -05:00
William Hubbs
e27f0acc60 oldnet: make the default carrier timeout 0
Some types of interfaces do not have a carrier, so it doesn't make sense
to automatically wait for one.

Reported-by: <rose@rz.uni-potsdam.de>
X-Gentoo-Bug: 438970
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=438970
2012-10-22 16:30:34 -05:00
William Hubbs
5c8ba80ea7 release openrc-0.11.2 2012-10-22 02:38:31 -05:00
Andrew Gregory
e8ad6d2423 fix typo in rc-status.8
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2012-10-22 00:12:27 -05:00
Andrew Gregory
aa34435cc8 tmpfilesd: parse arguments with spaces
systemd allows the final arg in tmpfiles to contain spaces.  Using the read()
call to set the variables includes all trailing components in $arg so it
doesn't get cut off.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2012-10-22 00:12:27 -05:00
Andrew Gregory
68f8e8aac2 tmpfiles: return success from _f/_F on empty $arg
'[ -n "$arg" ] && _w' causes _f/_F to return the failure from the test when
$arg is empty.  Inverting the test causes the test and _f/_F to return success.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2012-10-21 22:37:39 -05:00
William Hubbs
ee54bfef05 tmpfiles: do not process systemd.conf
This file contains definitions specific to systemd, so we should not
process it.

Reported-by: <andrew.gregory.8@gmail.com>
2012-10-21 14:52:37 -05:00
William Hubbs
7279b469ec release openrc-0.11.1 2012-10-19 22:30:40 -05:00
William Hubbs
8482008559 tmfiles: change need dev to use dev.
This is being changed to use for the reason I stated in the previous
commit. There is no guarantee that someone is using a device manager.
2012-10-19 21:52:20 -05:00
William Hubbs
463d4ef00a devfs: Remove references to specific device managers
There were references in the devfs script to mdev, udev and
udev-mount. These all provide the virtuals dev and dev-mount; that is
how we should refer to them.

I believe in the discussion I had with Tony and Robin about this, we
were going to change the "use" line to "need". However, after thinking
that over, I'm not comfortable doing so because someone could be running
a static /dev with no device manager.

Reported-by: <tokiclover@gmail.com>
X-Gentoo-Bug: 438932
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=438932
2012-10-19 21:50:51 -05:00
William Hubbs
b5629d4ea0 Fix bashism in tmpfilesd scripts
Reported-by: <pesa@gentoo.org>
2012-10-19 13:09:58 -05:00
19 changed files with 69 additions and 67 deletions

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.11
VERSION= 0.11.3
PKG= ${NAME}-${VERSION}

View File

@@ -1,5 +1,6 @@
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount urandom tmpfilesd ${CONF-${OS}}
CONF= bootmisc fsck hostname localmount netmount urandom tmpfiles \
${CONF-${OS}}
ifeq (${MKNET},)
CONF+= network staticroute

20
conf.d/netmount Normal file
View File

@@ -0,0 +1,20 @@
# Depending on how mounting your network file systems behaves when your
# network interfaces are down, you may need to set the netmount script to
# require specific network interfaces to be active. This file gives
# examples of how to do this:
#
# If you are using newnet and configuring the interface with a static
# address with the network script:
# rc_need="network"
#
# If you are using oldnet, you must list the specific net.* services you
# need:
#
# rc_need="net.eth0"
# rc_need="net.eth1 net.eth2"
#
# If you are using a dynamic network management tool like
# networkmanager, dhcpcd, etc, you should list that tool here.
#
# rc_need="networkmanager"
# rc_need="dhcpcd"

View File

@@ -80,9 +80,9 @@
# Most drivers that report carrier status function correctly, but some do not
# One of these faulty drivers is for the Intel e1000 network card, but only
# at boot time. To get around this you may alter the carrier_timeout value for
# the interface. -1 is disable, 0 is infinite and any other number of seconds
# is how long we wait for carrier. The current default is 3 seconds
#carrier_timeout_eth0=-1
# the interface. 0 is disable and any other number of seconds is how
# long we wait for carrier. The current default is disabled.
#carrier_timeout_eth0=0
# You may wish to disable the interface being brought down when stopping.
# This is only of use for WakeOnLan.

View File

@@ -126,6 +126,13 @@
# tables you may have to set a global metric as the due to a simple read of
# the routing table taking over a minute at a time.
# Most drivers that report carrier status function correctly, but some do not
# One of these faulty drivers is for the Intel e1000 network card, but only
# at boot time. To get around this you may alter the carrier_timeout value for
# the interface. 0 is disable and any other number of seconds is how
# long we wait for carrier. The current default is disabled.
#carrier_timeout_eth0=0
# You may wish to disable the interface being brought down when stopping.
# This is only of use for WakeOnLan.
#ifdown_eth0="NO"

View File

@@ -94,6 +94,10 @@
# These variables are documented here, but should be configured in
# /etc/conf.d/foo for service foo and NOT enabled here unless you
# really want them to work on a global basis.
# If your service has characters in its name which are not legal in
# shell variable names and you configure the variables for it in this
# file, those characters should be replaced with underscores in the
# variable names as shown below.
# Some daemons are started and stopped via start-stop-daemon.
# We can set some things on a per service basis, like the nicelevel.
@@ -116,6 +120,13 @@
#rc_foo_need="openvpn"
#rc_foo_after="clock"
# Below is an example for service foo-bar. Note that the '-' is illegal
# in a shell variable name, so we convert it to an underscore.
# example for service foo-bar.
#rc_foo_bar_config="/etc/foo-bar"
#rc_foo_bar_need="openvpn"
#rc_foo_bar_after="clock"
# You can also remove dependencies.
# This is mainly used for saying which servies do NOT provide net.
#rc_net_tap0_provide="!net"

3
init.d/.gitignore vendored
View File

@@ -41,5 +41,4 @@ syslogd
termencoding
ttys
wscons
tmpfilesd.boot
tmpfilesd.sysinit
tmpfiles.setup

View File

@@ -1,8 +1,7 @@
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
root.in savecache.in swap.in swapfiles.in \
tmpfilesd.boot.in tmpfilesd.sysinit.in \
swclock.in sysctl.in urandom.in ${SRCS-${OS}}
tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
BIN= ${OBJS}
# Build our old net foo or not

View File

@@ -5,8 +5,8 @@
description="Mount system critical filesystems in /dev."
depend() {
use dev-mount udev-mount
before udev mdev
use dev-mount
before dev
keyword -prefix -vserver
}

View File

@@ -108,7 +108,7 @@ _wait_for_carrier()
_has_carrier && return 0
eval timeout=\$carrier_timeout_${IFVAR}
timeout=${timeout:-${carrier_timeout:-5}}
timeout=${timeout:-${carrier_timeout:-0}}
# Incase users don't want this nice feature ...
[ ${timeout} -le 0 ] && return 0

View File

@@ -10,7 +10,6 @@ description="Mounts network shares, other than NFS, according to /etc/fstab."
depend()
{
config /etc/fstab
need net
use afc-client amd autofs openvpn
use dns
keyword -jail -prefix -vserver

View File

@@ -2,7 +2,7 @@
# Copyright 1999-2012 Gentoo Foundation
# Released under the 2-clause BSD license.
description="Create tmpfiles.d entries (boot)"
description="set up tmpfiles.d entries"
depend()
{
@@ -11,8 +11,8 @@ depend()
start()
{
ebegin "${description/Create/Creating}"
@LIBEXECDIR@/sh/tmpfiles.sh --create ${tmpfiles_opts}
ebegin "setting up tmpfiles.d entries"
@LIBEXECDIR@/sh/tmpfiles.sh --create --remove ${tmpfiles_opts}
eend $?
return 0
}

View File

@@ -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
need dev
}
start()
{
ebegin "${description/Create/Creating}"
@LIBEXECDIR@/sh/tmpfiles.sh --create ${tmpfiles_opts}
eend $?
return 0
}

View File

@@ -46,7 +46,7 @@ Show all runlevels and their services.
List all services that have crashed.
.It Fl l , -list
List all defined runlevels.
.It fl r , -runlevel
.It Fl r , -runlevel
Print the current runlevel name.
.It Fl s , -servicelist
Show all services.

View File

@@ -38,9 +38,9 @@ BOOT-FreeBSD+= hostid newsyslog savecore syslogd
# FreeBSD specific stuff
BOOT-FreeBSD+= adjkerntz dumpon syscons
BOOT-Linux+= hwclock keymaps modules mtab procfs termencoding tmpfilesd.boot
BOOT-Linux+= hwclock keymaps modules mtab procfs termencoding tmpfiles.setup
SHUTDOWN-Linux= killprocs mount-ro
SYSINIT-Linux= devfs dmesg sysfs tmpfilesd.sysinit
SYSINIT-Linux= devfs dmesg sysfs
# Generic BSD stuff
BOOT-NetBSD+= hostid newsyslog savecore syslogd

View File

@@ -61,7 +61,7 @@ _f() {
if [ ! -e "$path" ]; then
dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
[ -n "$arg" ] && _w "$@"
[ -z "$arg" ] || _w "$@"
fi
}
@@ -72,7 +72,7 @@ _F() {
[ $CREATE -gt 0 ] || return 0
dryrun_or_real install -m"$mode" -o"$uid" -g"$gid" /dev/null "$path"
[ -n "$arg" ] && _w "$@"
[ -z "$arg" ] || _w "$@"
}
_d() {
@@ -201,6 +201,7 @@ tmpfiles_d=''
# `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
for d in ${tmpfiles_dirs} ; do
[ -d $d ] && for f in ${d}/*.conf ; do
[ "$f" = "$d/systemd.conf" ] && continue
[ -f $f ] && tmpfiles_basenames="${tmpfiles_basenames}\n${f##*/}"
done # for f in ${d}
done # for d in ${tmpfiles_dirs}
@@ -252,46 +253,34 @@ for FILE in $tmpfiles_d ; do
# XXX: Upstream says whitespace is NOT permitted in the Path argument.
# But IS allowed when globs are expanded for the x/r/R/z/Z types.
while read line; do
while read cmd path mode uid gid age arg; do
LINENUM=$(( LINENUM+1 ))
# This will skip over comments and empty lines
set -- $line
# Unless we have both command and path, skip this line.
if [ -z "$1" -o -z "$2" ]; then
if [ -z "$cmd" -o -z "$path" ]; then
continue
fi
# whine about invalid entries
case $1 in
case $cmd in
f|F|w|d|D|p|L|c|b|x|r|R|z|Z) ;;
\#) continue ;;
*) warninvalid ; continue ;;
esac
cmd=$1
path=$2
# fall back on defaults when parameters are passed as '-'
if [ "$3" = '-' -o "$3" = '' ]; then
case ${1} in
if [ "$mode" = '-' -o "$mode" = '' ]; then
case "$cmd" in
p|f|F) mode=0644 ;;
d|D) mode=0755 ;;
z|Z|x|r|R|L) ;;
esac
else
mode=$3
fi
uid=$4
gid=$5
age=$6
arg=$7
[ "${4}" = '-' -o "${4}" = '' ] && uid=0
[ "${5}" = '-' -o "${5}" = '' ] && gid=0
[ "${6}" = '-' -o "${6}" = '' ] && age=0
[ "${7}" = '-' -o "${7}" = '' ] && arg=''
[ "$uid" = '-' -o "$uid" = '' ] && uid=0
[ "$gid" = '-' -o "$gid" = '' ] && gid=0
[ "$age" = '-' -o "$age" = '' ] && age=0
[ "$arg" = '-' -o "$arg" = '' ] && arg=''
set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg"
[ "$VERBOSE" -eq "1" ] && echo _$cmd "$@"

View File

@@ -133,7 +133,7 @@ do_check(char *path, uid_t uid, gid_t gid, mode_t mode, inode_t type,
}
if (mode && (st.st_mode & 0777) != mode) {
einfo("%s: correcting mode", applet);
einfo("%s: correcting mode", path);
if (chmod(path, mode)) {
eerror("%s: chmod: %s", applet, strerror(errno));
return -1;

View File

@@ -390,11 +390,8 @@ mountinfo(int argc, char **argv)
char real_path[PATH_MAX + 1];
int opt;
int result;
bool quiet;
char *this_path;
quiet = rc_yesno(getenv("EINFO_QUIET"));
#define DO_REG(_var) \
if (_var) free(_var); \
_var = get_regex(optarg);
@@ -483,7 +480,7 @@ mountinfo(int argc, char **argv)
if (skip_point_regex &&
regexec(skip_point_regex, s->value, 0, NULL, 0) == 0)
continue;
if (! quiet)
if (! rc_yesno(getenv("EINFO_QUIET")))
printf("%s\n", s->value);
result = EXIT_SUCCESS;
}