Compare commits

..

155 Commits

Author SHA1 Message Date
Dantrell B
7447c63e02 Replace space with tab in conf.d/hostname 2014-08-16 02:23:49 -04:00
Dantrell B
6b78f4c8e0 FL-227: Change how /etc/hosts is generated 2014-08-13 18:09:34 -04:00
Dantrell B
e8b4dc22cb FL-227: Add comment to conf.d/hostname about setting aliases 2014-08-13 18:09:06 -04:00
Dantrell B
5fb4b03366 FL-28: Add comment to conf.d/hostname about setting nisdomainname 2014-08-13 12:44:39 -04:00
Dantrell B
76581025ea FL-967: Improve comment in conf.d/hostname about setting hostname 2014-08-13 12:15:51 -04:00
Daniel Robbins
a559af4ff9 remove trailing whitespace in sysctl.Linux.in, which produces a warning during build 2014-08-12 13:35:09 -04:00
Daniel Robbins
35fe25ab06 FL-786: funtoo hostname changes 2014-08-12 13:35:09 -04:00
Daniel Robbins
a2e4cb2f89 FL-786: sysctl.Linux.in: set System V SHM to 25% of RAM 2014-08-12 13:35:09 -04:00
Oleg Vinichenko
0490a83134 FL-786: openrc: remove loopback interface 2014-08-12 13:35:08 -04:00
Steven Chamberlain
0853c110e5 Begin port to GNU/kFreeBSD
This is just a minimal port to get Debian up and running; the rest will
be done later.
2013-10-30 15:00:40 -05:00
William Hubbs
1a43ce11d0 bootmisc: do not run clean_run on VSERVER systems
X-Gentoo-Bug: 489370
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=489370
2013-10-28 15:40:47 -05:00
William Hubbs
46e504b403 loopback: do not run in a prefix or vserver
X-Gentoo-Bug: 489370
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=489370
2013-10-28 15:40:16 -05:00
William Hubbs
fc1f3d14f4 start 0.12.4 2013-10-28 15:39:19 -05:00
Alexander V Vershilov
b8a016aaba Add uml keyword to fsck service.
Fix relevant an issue mentioned by Toralf Förster.

X-Gentoo-Bug: 481096.
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=481096
2013-10-18 15:22:24 -05:00
William Hubbs
63f5256b59 start work on OpenRC-0.12.3 2013-10-18 15:19:52 -05:00
Daniel Robbins
c420f56856 FL-786: localmount: support filesystem mounting on openvz 2013-10-08 12:06:09 -05:00
Natanael Copa
5b0f323da9 librc: fix off-by-one bug
We need allocate space for both the added leading '-' and the trailing
'\0'.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
2013-10-08 12:06:09 -05:00
Natanael Copa
d86853538a librc: fix a read off-by-one bug
We should first check if we are within bounds and then read rather than
the opposite.

This makes valgrind happy.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
2013-10-08 12:06:09 -05:00
William Hubbs
f2c0e700c6 netmount: add -lxc keyword
Netmount should not run on lxc, thanks to Mark van Dijk <funtoo@internecto.net>.
2013-10-08 12:06:09 -05:00
William Hubbs
b1de9d7324 start-stop-daemon: fix do_stop calls
Several calls to do_stop were forcing the test parameter to be true,
which was causing extra output to the terminal, such as:

* Would send signal 0 to pid xxxxx

This should only happen if the --test command line option was used.

Conflicts:
	src/rc/start-stop-daemon.c
2013-10-08 12:06:09 -05:00
William Hubbs
5b4886d23e start-stop-daemon: fix eerorr calls in get_pid
The eerror calls in this function make it too verbose, so change them to
ewarnv() calls instead. This means that they will only print if the
--verbose option is used or EINFO_VERBOSE=yes is set in the environment.
2013-10-08 12:06:09 -05:00
William Hubbs
2a53efbc07 start work on OpenRC-0.12.2 2013-10-08 12:03:47 -05:00
William Hubbs
a530722f65 fix cgroup_cleanup function
The yesno test for rc_cgroup_cleanup belongs at the point where this
function is called from runscript, not in the function itself.

X-Gentoo-Bug: 486210
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=486210
2013-10-02 05:43:51 -05:00
William Hubbs
661e9cf002 start work on OpenRC 0.12.1 2013-10-02 05:40:18 -05:00
William Hubbs
df9d1c25a7 typo fix 2013-08-14 01:08:12 -05:00
William Hubbs
3811ac30db add note to README about the net.* scripts moving to their own package 2013-08-14 00:15:12 -05:00
William Hubbs
838c9efb36 Remove gentoo's net.* scripts
It has been determined that it will be best for gentoo's net.* scripts
to be in a separate package to allow independent development.
This package will be called netifrc and maintained by Gentoo.
2013-08-13 16:33:41 -05:00
William Hubbs
b2f8ac9382 Clarify the documentation about the restart function
Restart has never been able to be overridden in OpenRc, but there is a
way to make your service script behave differently when restart is being
executed.

X-Gentoo-Bug: 480866
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=480866
2013-08-13 12:12:43 -05:00
Fedja Beader
6b0ffd3103 Fix Permission Denied on reading dmesg in an LXC container 2013-08-06 00:27:30 +02:00
Alexander V Vershilov
1c94d793c0 devfs: Add -lxc keyword
Devfs is not needed for LXC, as LXC mounts all required fs on
it's own. Reported by specing.
2013-07-31 12:40:56 -05:00
Dirk Sondermann
e90dcf39dd tmpfiles: do not signal an error if device nodes already exist
X-Gentoo-Bug: 478336
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=478336
2013-07-27 10:53:32 -05:00
William Hubbs
e942e88b8c swapfiles: do not try to unmount all tmpfs mounts
This is handled in the swap script, so it should not be done here as
well.

X-Gentoo-Bug: 477534
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=477534
2013-07-26 12:15:29 -05:00
Gary
9ebd5a6aff Add support for DragonFly BSD 2013-07-25 22:33:24 -05:00
William Hubbs
bee59c68c5 rc-cgroup: make sure the tasks file exists before adding the pid 2013-07-25 20:33:51 -05:00
William Hubbs
35f2f1ec73 Introduce the tmpfiles.dev service
This service handles setting up the tmpfiles entries for the /dev
directory for Linux systems which needs to be run in the sysinit
runlevel.
2013-07-25 13:53:44 -05:00
William Hubbs
e9189cd8a2 tmpfiles: add --prefix and --exclude-prefix options 2013-07-25 00:58:38 -05:00
William Hubbs
19579687fd tmpfiles: make b and c commands set ownership and permissions
The b and c commands in tmpfiles.sh were not setting ownership and
permissions for the device nodes.
2013-07-23 17:58:42 -05:00
Alexander V Vershilov
c18d623dc0 rc-status: fix typo
X-Gentoo-Bug: 477318
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=477318
2013-07-19 15:30:28 -05:00
Hank Leininger
3af434a4e9 typo fix
X-Gentoo-Bug: 477006
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=477006
2013-07-16 17:12:45 -05:00
Alexander V Vershilov
0f70cd067f rc-status: fix -a to show all services
We need to unset rc_svcname so that all of the services are added to the
list to display.

X-Gentoo-Bug: 409787
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=409787
2013-07-16 12:53:03 -05:00
William Hubbs
a7a6092f01 cgroups: change '$$' to 0 for consistency 2013-07-05 11:04:45 -05:00
William Hubbs
88cdcc145e Merge branch 'cgroup.systemd'
Conflicts:
	sh/rc-cgroup.sh.in
2013-07-05 10:38:51 -05:00
Alexander V Vershilov
992807de55 Put a service on into a top hierarchy of each cgroup
This change will fix unwanted cgroup inheriting from user cgroups,
and fixes issues with systemd cgroup tracking by logind.

However this fix can lead to incorrect work for some user cgroup
controllers - so more advanced solution, that coveres such cases
will be created later.

Thanks to Fabio Erculiani (lxnay) for testing and general idea.
2013-07-01 09:18:02 +04:00
William Hubbs
00caa1431a Merge branch 'gentoo'
This syncs the gentoo master branch to github.
2013-06-25 12:11:23 -05:00
William Hubbs
2391ddff77 cgroups: add support for systemd cgroup hierarchy
The systemd cgroup hierarchy support is being added so we can run
logind outside of systemd. This is needed because software that was
using consolekit is now migrating to logind.
We do not create this hierarchy, we just add services to it if it
exists.
2013-06-25 10:58:27 -05:00
Robin H. Johnson
ccb8c5835c Merge branch 'master' of git+ssh://git.overlays.gentoo.org/proj/openrc 2013-06-24 21:30:43 +00:00
Robin H. Johnson
02a7d3573d efivarfs: Support EFI variable access in 3.10 kernels.
In the 3.10 kernel, EFI variables are now provided by a dedicated
filesystem that needs to be mounted.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2013-06-24 15:42:56 -05:00
Robin H. Johnson
29f0f55c0e efivarfs: Support EFI variable access in 3.10 kernels.
In the 3.10 kernel, EFI variables are now provided by a dedicated
filesystem that needs to be mounted.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2013-06-24 19:31:58 +00:00
Alexander V Vershilov
9f14fd7ae1 Fix quoting in cgroup-release-agent 2013-06-16 14:22:23 -05:00
Alexander V Vershilov
dce989e96d cgroups: hide messages about non-existent processes 2013-06-16 14:14:30 -05:00
William Hubbs
e451d173fa runscript.sh: run cgroup_cleanup automatically after stop 2013-05-25 21:04:10 -05:00
Alexander V Vershilov
b5cb1f5020 rc_cgroup.sh: fix typo
This fixes an incorrect variable assignment in cgroup_get_pids
2013-05-25 19:58:08 -05:00
Alexander Berntsen
829c969f9b Fix wrong wording in STYLE 2013-05-07 17:07:33 -05:00
William Hubbs
ac00934ecd Document busybox applet incompatibilities
Reported-by: slong@rathaus.eclipse.co.uk
X-Gentoo-Bug: 468396
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=468396
2013-05-07 14:25:19 -05:00
William Hubbs
248434329b fix setfont detection in early startup on Linux
Most of the time, setfont is an external command (part of the kbd
package), but it can also be a builtin if busybox is being used. This
corrects the test in early startup to work for both cases. I would like
to thank Steve L. for pointing this out.
2013-05-05 13:47:45 -05:00
William Hubbs
a09a60c4cf Add service applet
The service applet is equivalent to rc-service. This was added so that
we will be more compatible with Debian and Fedora.

Reported-by: cardoe@gentoo.org
X-Gentoo-Bug: 468168
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=468168
2013-05-02 13:52:27 -05:00
William Hubbs
70628a875b fix the build for non-selinux systems
The symlinks should be created only if MKSELINUX=yes, not if it just has
a value.
2013-05-01 18:20:01 -05:00
William Hubbs
10a4385e40 rc: allow switching runlevels without stopping services
OpenRC, by default, stops all services that are not listed in a runlevel
when rc is used to switch runlevels. This adds a -n/--no-stop command
line option to rc which tells it to skip stopping the services which are
not in the runlevel.

Reported-by: gentoo@thoth.purplefrog.com
X-Gentoo-Bug: 372585
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=372585
2013-04-28 12:51:12 -05:00
Eugeny Shkrigunov
10eabd4d92 fsck: fix typo
X-Gentoo-Bug: 467158
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=467158
2013-04-27 10:26:37 -05:00
Alexander Vershilov
c984506537 add cgroup cleanup support
This adds the ability to kill all processes within a service's cgroup
when that service is stopped or restarted.
2013-04-25 16:59:19 -05:00
Natanael Copa
e4668a5061 Fix autodetection of lxc
The /proc/1/environ contains various \0 terminated strings. The current
code will only work when the search string is in the first of those.

To fix this we look for strings in entire buffer.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
2013-04-09 02:25:26 -05:00
William Hubbs
56f1752ce1 create loopback service
The loopback service handles the basic settings for the loopback
interface, regardless of the network manager you are using.
2013-04-08 12:46:51 -05:00
William Hubbs
9314ac64ea migrate-to-run: fix test for successful migration
This script originally tested the file system type for the source
location of the data we were migrating to determine if the migration was
complete. Now we test the destination, and if the softlevel file is
there the migration was successful.

Reported-by: Piotr Karbowski <piotr.karbowski@gmail.com>
2013-04-03 11:25:19 -05:00
William Hubbs
19fa20832c localmount: add "no" in front of network file system types
On Linux, this was not an issue, but we may have been attempting to
mount network file systems twice on *bsd.

Reported-by: powerman-asdf@yandex.ru
x-Gentoo-Bug: 462210
x-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=462210
2013-03-22 14:50:27 -05:00
William Hubbs
879c7f04ec runscript: update documentation for the provide function
Explain that virtual services take precedence over real services and
recommend that virtual services have different names from real services.

Reported-by: me@2gw.net
X-Gentoo-Bug: 461818
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=461818
2013-03-20 15:42:09 -05:00
William Hubbs
66dd88d6f6 config: move rc_fuser_timeout to rc.conf
I was told that fuser does exist on *bsd, so this will need to bee
supported there. This moves the timeout setting to rc.conf.
2013-03-12 14:16:41 -05:00
William Hubbs
6794441224 Make fuser command time out
This avoids situations in which fuser hangs because of open files on
remote file systems when the remote system goes down.
I have also passed this bug on to the maintainers of psmisc since it
should really be fixed in fuser.
This is based on a patch submitted by evermind@tuxfamily.org

Reported-by: evermind@tuxfamily.org
X-Gentoo-Bug: 455458
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=455458
2013-03-12 12:57:44 -05:00
William Hubbs
274d6eee66 tmpfiles: add support for the new X line type
tmpfiles now has a new line type, X, which is similar to the x line type
used by the cleanup function.
This is not supported yet by OpenRc, because we do not have the cleanup
function in tmpfiles.sh, so I have added a dummy procedure for it so
we don't get complaints about this line type.

Reported-by: mgorny@gentoo.org
X-Gentoo-Bug: 460880
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=460880
2013-03-11 01:03:06 -05:00
Yuta SATOH
f1ae8963c9 oldnet: convert netmask to decimal numbers in _netmask2cidr
Free BSD's ifconfig outputs a netmask in the form 0xffffff00, which
was translating to 0xff.0xff.0xff.0x00,. Now we convert this to decimal
numbers before we convert it to cidr notation.

Reported-by: 4glitch@gmail.com
X-Gentoo-Bug: 460268
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=460268
2013-03-08 15:30:36 -06:00
William Hubbs
3b05586a73 ipfw: change opts variable to extra_commands
Reported-by: 4glitch@gmail.com
X-Gentoo-Bug: 459694
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=459694
2013-03-06 12:48:20 -06:00
William Hubbs
ceb88fc465 local.d: update README
Remind users that if they put a long-running process in /etc/local.d,
they can delay their boot or shutdown processing.

Reported-by: toralf.foerster@gmx.de
X-Gentoo-Bug: 456650
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=456650
2013-02-25 16:04:25 -06:00
Andrew Gregory
fb10b97172 rc-service: add usage message
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-25 14:45:39 -06:00
Andrew Gregory
927207c1b7 rc-status: improve usage message accuracy and consistency
This makes it more clear that many of the options are used as an
alternative to a runlevel.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-25 14:44:04 -06:00
Andrew Gregory
5872bf1333 rc-update: improve usage message accuracy and consistency
The old message did not indicate that the runlevel argument was optional
for add and del or that it could be used with show.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-25 14:41:30 -06:00
Andrew Gregory
67377cc09f rc: add usage message
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-25 14:39:50 -06:00
Andrew Gregory
a82a2b5f7c include BINDIR and SBINDIR in the sanitized PATH
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-23 20:30:40 -06:00
Andrew Gregory
8a44067838 Fix shebangs in services to point to the correct location of runscript
SBINDIR and BINDIR can be set independently of PREFIX.  This fixes
broken shebangs in service files when SBINDIR is set to something other
than PREFIX/sbin

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-23 20:30:39 -06:00
Andrew Gregory
8c90042dee make BINDIR and SBINDIR available to input files
BINDIR and SBINDIR can be set independently of PREFIX and may not be set
to PREFIX/bin as scripts currently assume.

Note from William Hubbs:

This adds @BINDIR@ and @SBINDIR@ macros to the sed commands run to
convert *.in files to the executable form.
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-23 20:30:39 -06:00
Andrew Gregory
9eb0674512 add SBINDIR variable to sys.mk
BINDIR was pointing to PREFIX/sbin which was confusing and inconsistent
with src/rc/Makefile.  Add SBINDIR and redefine BINDIR appropriately.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-23 20:30:39 -06:00
William Hubbs
549cbadd2c build: use pkg-config to find ncurses libraries if it is available
If ncurses was built with the --with-termlib switch enabled, tgoto, tgetent
and tgetstr move to libtinfo. Fortunately, ncurses provides a pkg-config
file which we can use if pkg-config is installed. If it is not, we still
link to -lncurses for now, so pkg-config is not a hard requirement.

Reported-by: jan.paesmans@gmail.com
X-Gentoo-Bug: 455912
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=455912
2013-02-23 17:10:35 -06:00
William Hubbs
fac96b4df4 cgroups: major update to cgroups support
This reworks cgroups support so we have one variable in rc.conf for each
controller instead of each setting.

Also we add support for all of the possible cgroup controllers.

I would like to thank Alexander Vershilov for his help with testing and
reworking this code.
2013-02-19 17:09:30 -06:00
William Hubbs
ebf85d598e cgroups: fix shebang line in rc-cgroup.sh 2013-02-19 16:52:49 -06:00
William Hubbs
f36f8fb1be Typo Fix
Reported-by: vitalyb@telenet.dn.ua
X-Gentoo-Bug: 452544
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=452544
2013-02-17 15:37:27 -06:00
William Hubbs
a55eb3965e cgroups: remove comment about suspend for cpu_shares setting 2013-02-17 11:09:02 -06:00
Andrew Gregory
89bb04a01a do not use SYSCONFDIR for binfmt.d
This makes binfmt.d consistent with tmpfiles.d and systemd which uses
hard coded paths for both.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-16 20:46:34 -06:00
Andrew Gregory
414ef64661 disable default -prefix services if MKPREFIX = yes
Certain services were not being enabled by default if PREFIX was set.
This appears to have been intended for Gentoo Prefix systems which are
indicated by MKPREFIX not PREFIX.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-16 20:46:34 -06:00
Andrew Gregory
cd4becf6cd make init.sh and init-early.sh honor SYSCONFDIR
Fixes hardcoded paths that break when built with SYSCONFDIR
set to anything other than /etc/

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-16 19:56:47 -06:00
Andrew Gregory
746bf5f783 consolefont: use setfont to save the current font
Using setfont directly to save the font prevents breakage
when a distro stores consolefonts in a location other than
/usr/share/consolefonts such as Arch which stores them in
/usr/share/kbd/consolefonts

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-02-16 19:51:15 -06:00
William Hubbs
405dfea7ad cgroups: document kernel requirement for cpu controller settings 2013-02-16 16:11:33 -06:00
William Hubbs
1831e433a0 bootmisc: Skip cleaning /var/run or tmp directories if they are tmpfs
Reported-by: walter@pratyeka.org
X-Gentoo-Bug: 454338
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=454338
2013-02-16 02:06:26 -06:00
Alexander Vershilov
b46747f998 Add module for cgroup processing
sh/rc-cgroup.sh.in: new script to handle cgroup processing
sh/rc-cgroup.sh.in: do not use grep or cut (modification by William Hubbs)
sh/runscript.sh.in: use the cgroup script
2013-02-16 01:28:35 -06:00
William Hubbs
86dbd757e9 keymaps: fix the use of loadkeys in the euro fix
The loadkeys man page states that if you don't pass a filename loadkeys
will read from stdin. However, this is not correct, so we now pass "-"
as the filename to explicitly request stdin.

Reported-by: andi@grois.info
X-Gentoo-Bug: 457524
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=457524
2013-02-15 16:09:49 -06:00
Alexander Mezin
970893adf3 runscript: retry prefix flock if it is interrupted by a signal
Reported-by: Pacho Ramos <pacho2@gentoo.org>
X-Gentoo-Bug: 434800
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=434800
2013-02-15 13:28:35 -06:00
William Hubbs
f30eec03ce devfs: Mount the posix message queue file system
Reported-by: reuben.m@gmail.com
X-Gentoo-Bug: 456998
X-Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=456998
2013-02-14 17:53:53 -06:00
William Hubbs
5bfebbecea Rename shutdown_network setting to keep_network
We were telling users that setting shutdown_network=YES would shut down
the network interfaces during shutdown, but this was exactly the
opposite of what we were doing. The default was YES, which was keeping
the interfaces active.

This keeps the default behavior, but renames the setting to keep_network
which more accurately describes its function, and instructs users to set
it to NO if they want the network interfaces to go down.
2013-02-11 09:45:14 -06:00
William Hubbs
1280b97749 oldnet: add support for shutdown_network from newnet
This setting, already in use in newnet, allows the user to control
whether network interfaces are stopped when the system shuts down. By
default, under newnet, they are not, so I am making oldnet have the same
default.

A side-affect of this is that in the default configuration this fixes
bugs like the one below.

Reported-by: jerryfleming2006@gmail.com
X-Gentoo-Bug: 259183
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=259183
2013-02-11 09:08:34 -06:00
William Hubbs
bbc6b96a40 oldnet: accomodate rkhunter false positive
rkhunter thinks OpenRC is a rootkit because of the hidefirstrout
variable. This has been renamed to hideFirstroute in order to get past
rkhunter.

I realize this is not an openrc bug. In this case though I do not have a
problem renaming the variable.

Reported-by: ago@gentoo.org
X-Gentoo-Bug: 339714
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=339714
2013-02-09 17:39:32 -06:00
William Hubbs
8a6c3391bd sysfs: mount the fusectl file system
Reported-by: vapier@gentoo.org
X-Gentoo-Bug: 453740
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=453740
2013-02-01 13:49:02 -06:00
William Hubbs
8be072628c remove cruft from /run directory
The /run directory is a mount point for a tmpfs and should not contain
any files or directories.  This cleans out the /run/openrc
symlink and any other files which were incorrectly placed in /run.
Thanks to Ian Stakenvicius for pointing out this solution.
2013-01-31 12:11:53 -06:00
Mike Frysinger
8328b88360 rc-functions.sh: add ceph to net fs list
X-Gentoo-Bug: 452552
X-Gentoo-Bug-URL: https://bugs.gentoo.org/452552
Reported-by: Tomas Mozes <hydrapolic@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-16 22:17:45 -05:00
William Hubbs
cb31b13276 typo fix 2013-01-15 12:36:12 -06:00
William Hubbs
6b3a4110cc runscript: fix stopping changed service issues
If an init script or service was upgraded while it was running and the
settings for the pid file, command and process name were changed, it
would not be possible to stop the old service.

Runscript now saves the values it used to start the service and re-uses
them to stop the service.

Reported-by: flameeyes@gentoo.org
X-Gentoo-Bug: 434032
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=434032
2013-01-15 12:14:05 -06:00
Andrew Gregory
3896b9d55c libeinfo: check for "color" in the terminal name
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2013-01-04 08:48:08 -06:00
William Hubbs
630d23283a Add tools directory
This directory will contain tools which are not necessary for OpenRC to
run, but which some users have found useful.

The first of these is deptree2dot, which converts /run/openrc/deptree to
a .dot file for use with graphviz. This can assist in finding circular
dependencies.
2013-01-02 18:00:04 -06:00
William Hubbs
7bda62d844 udhcpc: fix resolv.conf setting for domain
The value that was supposed to be in the domain setting was being added
incorrectly to search.

Reported-by: bug@mejor.pl
X-Gentoo-Bug: 446862
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=446862
2012-12-22 09:38:38 -06:00
William Hubbs
b00f85864d Set a default size for /run on Linux
Reported-by: alpiturchi@gmail.com
X-Gentoo-Bug: 447076
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=447076
2012-12-22 08:37:45 -06:00
Alexander Tsoy
a8ab9d63f5 ifconfig.sh.Linux.in: fix ipv6 routes and default route
Do not add -net or -host to ipv6 routes or to the default route when
using route from net-tools.

X-Gentoo-Bug: 442594
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=442594
2012-12-21 16:36:20 -06:00
Alexander Tsoy
2b0ff6f669 net.lo: add ipv6 net and host patterns
X-Gentoo-Bug: 442594
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=442594
2012-12-21 14:24:27 -06:00
Mihai Moldovan
a61fdd019e net.lo: allow address families to be set on routes
X-Gentoo-Bug: 447310
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?d=447310
2012-12-20 16:02:11 -06:00
Robin H. Johnson
e0bbe8d0bd net/bonding: ensure mode & miimon are handled correctly.
miimon & mode must be set before other parameters, and then not changed
again. Prior commit f671e0a28 per bug #421757 introduced a small logic
error. Fixed & refactored to prevent it happening as easily.

X-Gentoo-Bug: 447790
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=447790
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-12-20 21:28:23 +00:00
William Hubbs
b44f96ac9b init.sh.Linux: do not try to remove the /run/openrc symlink
In order to make migration from /lib*/rc/init.d to /run/openrc possible
without rebooting, the migration script creates a symlink from
/run/openrc to /lib*/rc/init.d. We were trying to remove it on the next
reboot, but this is not possible since / is ro when /run is mounted.

Reported-by: fturco@fastmail.fm
X-Gentoo-Bug: 447678
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=447678
2012-12-19 11:42:32 -06:00
Mike Frysinger
7557d62870 net.lo: sleep *after* carrier check
For devices that are always connected (e.g. ethernet cards), the current
carrier always wastes time by sleeping for 1 second.  This is because the
code sleeps first, then checks for carrier.  Invert the order so that we
return quickly for devices already active.  For devices which are not yet
up, there shouldn't be any real difference.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-12-18 00:24:02 -05:00
Mike Frysinger
2c60282ba9 fsck: simplify skiplist setup
Use printf rather than a manual for loop.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-12-18 00:24:02 -05:00
Steve L
8d61d03e27 localmount: quoting fixes
X-Gentoo-Bug: 446556
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=446556
2012-12-16 20:00:01 -06:00
William Hubbs
230a678824 init-linux: Do not remove the $rc_libexecdir/init.d directory
Reported-by: toralf.foerster@gmx.de
X-Gentoo-Bug: 446342
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=446342
2012-12-07 09:39:12 -06:00
William Hubbs
e5173b9127 migrate-to-run: do not require a reboot
The script that migrates the @libexecdir@/rc/init.d directory to
/run/openrc should not require a reboot.

Reported-by: chainsaw@gentoo.org
2012-12-06 16:43:24 -06:00
William Hubbs
a9272f50f7 Do not add a prefix to the /run directory
This doesn't affect us on gentoo, but on archlinux, which has done the
/usr merge, OpenRC was looking for /run under PREFIX. /run is always at
the root level, so it shouldn't have prefix appended to it.

Reported-by: udeved@openrc4arch.site40.net
2012-12-03 18:33:21 -06:00
William Hubbs
31bcc6bee4 Typo Fix 2012-12-03 14:59:22 -06:00
William Hubbs
c5e163cffc typo fixes 2012-11-30 12:05:26 -06:00
William Hubbs
8661af3223 netmount: make "net" the default network option for now
Currently, we have the net virtual, so we should use it as the default
in this instance so that netmount comes up after it thinks the network
is up. However, this is technically eroneous, because there is no way to
know from the init system that we really have network connectivity.

Reported-by: cheepeero@gmx.net
X-Gentoo-Bug: 445116
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=445116
2012-11-29 12:34:34 -06:00
William Hubbs
5cce37837b localmount: only skip unmounting /usr if it was premounted
Add a test when localmount is started to determine if /usr is mounted
from inside an initramfs for Linux systems. If it is not, we can unmount it when
localmount stops.

On *bsd systems, we always unmount /usr if it is separate.

Reported-by: ryao@gentoo.org
2012-11-29 10:19:20 -06:00
William Hubbs
0a72893c8b migrate-to-run: Remove old RC_SVCDIR after unmounting tmpfs
reporrrrted-by: netfab@gmail.com
X-Gentoo-Bug: 443996
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=443996
2012-11-25 21:27:36 -06:00
Alexander Vershilov
4f19c2f512 Support cpu usage management for Linux
This commit was modified by William Hubbs as follows:

- The paths in the cgroup fs were put into variables to ease
  maintenance.
- Documentation was added to rc.conf.Linux.
- The services were added originally to openrc/svcname cgroups under the
  controller cgroups, but this left an "openrc" cgroup which was unused.
  Now they are added to individual cgroups with the name openrc_${RC_SVCNAME}.
2012-11-12 10:58:00 -06:00
William Hubbs
cf7b904704 firewalld: fix firewall-cmd dependency
This should be "program" instead of "program start".
2012-11-10 14:56:33 -06:00
Robin H. Johnson
23f975dfcd checkbashisms: Fix redirection order.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-07 01:44:56 +00:00
Robin H. Johnson
ca6019031a net/apipa: checkbashisms false positive.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-07 01:44:26 +00:00
Robin H. Johnson
4ec1edc1f8 Whitespace.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-07 00:32:09 +00:00
Robin H. Johnson
1b0130961e checkbashisms: clean up export statements.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-07 00:22:33 +00:00
Robin H. Johnson
3809eac54d net/iwconfig: Even more bashism fun.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-07 00:13:58 +00:00
Robin H. Johnson
dabd8b22ca checkbashisms: export syntax.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-06 23:21:40 +00:00
Robin H. Johnson
54562d3525 net/vlan: checkbashisms.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-06 23:18:32 +00:00
Robin H. Johnson
ed3b0c66f9 net/bonding: checkbashisms.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-06 23:18:08 +00:00
Robin H. Johnson
91e28ab775 init.d/hostname: Document checkbashism false positive.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-06 23:12:24 +00:00
Robin H. Johnson
87daa26ca7 init.d/mtab: Another instance of the same pattern matching case.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-06 23:02:56 +00:00
Robin H. Johnson
670589571e init.d/bootmisc: Another instance of the same pattern matching case.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-06 23:01:42 +00:00
Robin H. Johnson
f6c3896087 init.d/bootmisc: POSIX XSI shellism.
In a pathname expansion, specifically single-character match, the pure
POSIX specification uses '!' as the Negation character where a regular
expression would normally be '^'.

Regular expression: "a[^a]a"
Pathname expansion pattern: "a[!a]a"

Reference:
IEEE Std 1003.1, 2004 Edition
2. Shell Command Language
2.13 Pattern Matching Notation
2.13.1 Patterns Matching a Single Character

> The description of basic regular expression bracket expressions in the
> Base Definitions volume of IEEE Std 1003.1-2001, Section 9.3.5, RE
> Bracket Expression shall also apply to the pattern bracket expression,
> except that the exclamation mark character ( '!' ) shall replace the
> circumflex character ( '^' ) in its role in a "non-matching list" in
> the regular expression notation. A bracket expression starting with an
> unquoted circumflex character produces unspecified results.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-06 22:49:49 +00:00
William Hubbs
ec60e20331 tmpfiles: fix bashism
reported-by: <pesa@gentoo.org>
2012-11-06 16:32:59 -06:00
Doug Goldstein
5657fa7975 oldnet: add firewalld support 2012-11-05 17:20:08 -06:00
Robin H. Johnson
4936b72e0f tmpfilesd: Doing both create+remove at the same time is valid.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
2012-11-05 21:25:32 +00:00
William Hubbs
5cf5308ab4 increment version
I have learned that it is better to increment the version early. This
way keeps track of the version that is being worked on on the branch and
the tag marks when the release actually happens.
2012-11-02 16:38:57 -05:00
William Hubbs
1a8cd5ff9d 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:33:14 -05:00
William Hubbs
eff07c48b7 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:12:20 -05:00
William Hubbs
ff2e1d42a2 Oldnet: make carrier timeout documentation consistent 2012-10-28 14:29:33 -05:00
William Hubbs
e634376482 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-27 12:59:58 -05:00
William Hubbs
5148047f89 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-25 16:33:56 -05:00
William Hubbs
978dbe0284 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-24 12:29:29 -05:00
William Hubbs
8df18defe1 oldnet: document the carrier_timeout option 2012-10-22 09:35:14 -05:00
William Hubbs
8d17c634db 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 09:23:04 -05:00
Andrew Gregory
06658d1038 fix typo in rc-status.8
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2012-10-21 19:51:09 -05:00
Andrew Gregory
525c731f0e 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-21 19:50:54 -05:00
Andrew Gregory
5647946e61 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 19:49:42 -05:00
William Hubbs
74c6b554bc 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:50:29 -05:00
William Hubbs
e8acdc6f85 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:45:14 -05:00
William Hubbs
2a9de2df58 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 20:53:46 -05:00
William Hubbs
2ee3e9d952 Fix bashism in tmpfilesd scripts
Reported-by: <pesa@gentoo.org>
2012-10-19 13:02:30 -05:00
177 changed files with 866 additions and 8347 deletions

View File

@@ -6,11 +6,6 @@ include Makefile.inc
SUBDIR= conf.d etc init.d local.d man scripts sh src sysctl.d
# Build our old net foo or not
ifeq (${MKNET},oldnet)
SUBDIR+= net doc
endif
# Build pkgconfig or not
MKPKGCONFIG?= yes
ifeq (${MKPKGCONFIG},yes)

View File

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

6
README
View File

@@ -10,7 +10,7 @@ You may wish to tweak the installation with the below arguments
PROGLDFLAGS=-static
LIBNAME=lib64
DESTDIR=/tmp/openrc-image
MKNET=oldnet
MKNET=no
MKPAM=pam
MKPREFIX=yes
MKPKGCONFIG=no
@@ -18,6 +18,7 @@ MKSELINUX=yes
MKSTATICLIBS=no
MKTERMCAP=ncurses
MKTERMCAP=termcap
MKTOOLS=yes
PKG_PREFIX=/usr/pkg
LOCAL_PREFIX=/usr/local
PREFIX=/usr/local
@@ -56,6 +57,9 @@ init.d.misc is not installed by default as the scripts will need
tweaking on a per distro basis. They are also non essential to the operation
of the system.
As of OpenRC-0.12, the net.* scripts, originally from Gentoo Linux, have
been removed. If you need these scripts, look for a package called
netifrc, which is maintained by them.
Reporting Bugs
--------------

28
README.busybox Normal file
View File

@@ -0,0 +1,28 @@
Using Busybox as your Default Shell
-----------------------------------
If you have/bin/sh linked to busybox, you need to be aware of several
incompatibilities between busybox's applets and the standalone
counterparts. Since it is possible to configure busybox to not include
these applets or to prefer the standalone counterparts, OpenRC does not
attempt to support the busybox applets.
All of these apply to busybox 1.20.2, which is the current version of
busybox as of this writing.
1. The start-stop-daemon applet is not compatible with start-stop-daemon
in OpenRC. Please make sure CONFIG_START_STOP_DAEMON is not set to y in
the configuration file you use to build busybox.
2. The -O option for the mount applet does not support the [no]_netdev
options from util-linux for handling network file systems.
3. The umount applet does not support the -O option from util-linux.
4. The swapon applet does not support the -e option from util-linux.
5. the setfont applet does not support the -u option from kbd.
There is work to get most of these supported by busybox, so this file
will be updated as things change.

View File

@@ -1,7 +1,3 @@
The following applies only to the newnet stack, which is not presently
maintained in OpenRC. The oldnet stack is maintained instead.
- Robin H. Johnson <robbat2@gentoo.org>, 2011/02/21
OpenRC Network Ideals
---------------------

2
STYLE
View File

@@ -51,7 +51,7 @@ line separating the summary from the body is critical (unless you omit
the body entirely); tools like rebase can get confused if you run the
two together.
Write your commit message in the present tense: "Fix bug" and not "Fixed
Write your commit message in the imperative: "Fix bug" and not "Fixed
bug." This convention matches up with commit messages generated by
commands like git merge and git revert.

View File

@@ -1,8 +1,10 @@
include ../mk/net.mk
DIR= ${CONFDIR}
CONF= bootmisc fsck hostname localmount netmount urandom tmpfiles \
${CONF-${OS}}
ifeq (${MKNET},)
ifeq (${MKNET},yes)
CONF+= network staticroute
TARGETS+= network staticroute
CLEANFILES+= network staticroute

View File

@@ -1,2 +1,15 @@
# Set to the hostname of this machine
# Set to the fully qualified domain name (e.g. "mybox.example.com") of
# this machine, if it has one, otherwise set to the machine name
# (e.g. "mybox").
hostname="localhost"
# Set to the NIS domain name of this machine, if it has one, otherwise
# leave commented out.
#nisdomainname="localdomain.com"
# Set other alias-to-address mappings, if needed, otherwise leave
# commented out.
#aliases="127.0.0.1 mybox
#10.0.0.1 mylaptop
#172.16.0.1 myserver
#192.168.0.1 myworkstation"

View File

@@ -1,4 +0,0 @@
# This blank configuration will automatically use DHCP for any net.*
# scripts in /etc/init.d. To create a more complete configuration,
# please review /usr/share/doc/openrc*/net.example* and save your configuration
# in /etc/conf.d/net (this file :]!).

View File

@@ -1,20 +1,40 @@
# 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:
# You will need to set the dependencies in the netmount script to match
# the network configuration tools you are using. This should be done in
# this file by following the examples below, and not by changing the
# service script itself.
#
# If you are using newnet and configuring the interface with a static
# address with the network script:
# rc_need="network"
# Each of these examples is meant to be used separately. So, for
# example, do not set rc_need to something like "net.eth0 dhcpcd".
#
# If you are using newnet and configuring your interfaces with static
# addresses with the network script, you should use this setting.
#
#rc_need="network"
#
# If you are using oldnet, you must list the specific net.* services you
# need:
# need.
#
# rc_need="net.eth0"
# rc_need="net.eth1 net.eth2"
# This example assumes all of your netmounts can be reached on
# eth0.
#
#rc_need="net.eth0"
#
# This example assumes some of your netmounts are on eth1 and some
# are on eth2.
#
#rc_need="net.eth1 net.eth2"
#
# If you are using a dynamic network management tool like
# networkmanager, dhcpcd, etc, you should list that tool here.
# networkmanager, dhcpcd in standalone mode, wicd, badvpn-ncd, etc, to
# manage the network interfaces with the routes to your netmounts, you
# should list that tool.
#
# rc_need="networkmanager"
# rc_need="dhcpcd"
#rc_need="networkmanager"
#rc_need="dhcpcd"
#rc_need="wicd"
#
# The default setting is designed to be backward compatible with our
# current setup, but you are highly discouraged from using this. In
# other words, please change it to be more suited to your system.
#
rc_need="net"

View File

@@ -7,7 +7,7 @@
# You also have ifup_eth0 and ifdown_eth0 to run other commands when
# eth0 is started and stopped.
# 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
# If you really need this, then set keep_network=NO
# Lastly, the interfaces variable pulls in virtual interfaces that cannot
# be automatically detected.

1
doc/.gitignore vendored
View File

@@ -1 +0,0 @@
net.example

View File

@@ -1,11 +0,0 @@
DIR= ${DOCDIR}/openrc
SRCS= net.example.in
INC= net.example
MK= ../mk
include ${MK}/os.mk
%.example.in: %.example${SFX}
${CP} $< $@
include ${MK}/scripts.mk

View File

@@ -1,442 +0,0 @@
##############################################################################
# QUICK-START
#
# The quickest start is if you want to use DHCP.
# In that case, everything should work out of the box, no configuration
# necessary, though the startup script will warn you that you haven't
# specified anything.
# WARNING :- some examples have a mixture of IPv4 (ie 192.168.0.1) and IPv6
# (ie 4321:0:1:2:3:4:567:89ab) internet addresses. They only work if you have
# the relevant kernel option enabled. So if you don't have an IPv6 enabled
# 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.
#
# If you want to do anything more fancy, you should take the time to
# read through the rest of this file.
##############################################################################
# MODULES
#
# 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.
#
# Modules load by default if the package they need is installed. If
# you specify a module here that doesn't have its 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.
#
# In other words, you probably should DO NOTHING HERE...
##############################################################################
# INTERFACE HANDLERS
# For a static configuration, use something like this
#config_eth0="192.168.0.2/24"
# If you need more than one address, you can use something like this
# NOTE: ifconfig creates an aliased device for each extra IPv4 address
# (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"
# You can also use IPv6 addresses
# (you should always specify a prefix length with IPv6 here)
#config_eth0="192.168.0.2/24 4321:0:1:2:3:4:567:89ab/64 4321:0:1:2:3:4:567:89ac/64"
# If you wish to keep existing addresses + routing and the interface is up,
# you can specify a noop (no operation). If the interface is down or there
# are no addresses assigned, then we move onto the next step (default dhcp)
# This is useful when configuring your interface with a kernel command line
# or similar
#config_eth0="noop 192.168.0.2/24"
# If you don't want ANY address (only useful when calling for advanced stuff)
#config_eth0="null"
# Here's how to do routing if you need it
# We add an IPv4 default route, IPv4 subnet route and an IPv6 unicast route
#routes_eth0="default via 192.168.0.1
#10.0.0.0/8 via 192.168.0.1
#::/0"
# If a specified module fails (like dhcp - see below), you can specify a
# fallback like so
#fallback_eth0="192.168.0.2 netmask 255.255.255.0"
#fallback_routes_eth0="default via 192.168.0.1"
# NOTE: fallback entry must match the entry location in config_eth0
# As such you can only have one fallback route.
# Also, if you do not set a fallback_routes entry for an interface, the
# routes entry will be used if that is set.
# Some users may need to alter the MTU - here's how
#mtu_eth0="1500"
# 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"
##############################################################################
# OPTIONAL MODULES
#-----------------------------------------------------------------------------
# WIRELESS (802.11 support)
# Wireless can be provided by BSDs ifconfig (iwconfig) or wpa_supplicant
# wpa_supplicant is preferred, use the modules directive to prefer iwconfig.
#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.
####################################
# HINTS
#
# Most users will just need to set the following options
# key_SSID1="s:yourkeyhere enc open" # s: means a text key
# key_SSID2="aaaa-bbbb-cccc-dd" # no s: means a hex key
# preferred_aps="SSID1 SSID2"
#
# Clear? Good. Now configure your wireless network below
####################################
# SETTINGS
# Hard code an SSID to an interface - leave this unset if you wish the driver
# to scan for available Access Points
# I would only set this as a last resort really - use the preferred_aps
# setting at the bottom of this file
#essid_eth0='foo'
# Some drivers/hardware don't scan all that well. We have no control over this
# but we can say how many scans we want to do to try and get a better sweep of
# the area. The default is 1.
#scans_eth0="1"
#Channel can be set (1-14), but defaults to 3 if not set.
#
# The below is taken verbatim from the BSD wavelan documentation found at
# http://www.netbsd.org/Documentation/network/wavelan.html
# There are 14 channels possible; We are told that channels 1-11 are legal for
# North America, channels 1-13 for most of Europe, channels 10-13 for France,
# and only channel 14 for Japan. If in doubt, please refer to the documentation
# that came with your card or access point. Make sure that the channel you
# select is the same channel your access point (or the other card in an ad-hoc
# network) is on. The default for cards sold in North America and most of Europe
# is 3; the default for cards sold in France is 11, and the default for cards
# sold in Japan is 14.
#channel_eth0="3"
# Setup any other config commands. This is basically the ifconfig argument
# without the ifconfig $iface.
#ifconfig_eth0=""
# You can do the same per SSID too.
#ifconfig_SSID=""
# Seconds to wait until associated. The default is to wait 10 seconds.
# 0 means wait indefinitely. WARNING: this can cause an infinite delay when
# booting.
#associate_timeout_eth0="5"
# Define a WEP key per SSID or MAC address (of the AP, not your card)
# The encryption type (open or restricted) must match the
# encryption type on the Access Point.
# To set a hex key, prefix with 0x
#key_SSID="0x12341234123412341234123456"
# or you can use strings. Passphrase IS NOT supported
#key_SSID="foobar"
#key_SSID="foobar"
# WEP key for the AP with MAC address 001122334455
#mac_key_001122334455="foobar"
# You can also override the interface settings found in /etc/conf.d/net
# per SSID - which is very handy if you use different networks a lot
#config_SSID="dhcp"
#routes_SSID=
#fallback_SSID=
# Setting name/domain server causes /etc/resolv.conf to be overwritten
# Note that if DHCP is used, and you want this to take precedence then
# please put -R in your dhcpcd options
#dns_servers_SSID="192.168.0.1 192.168.0.2"
#dns_domain_SSID="some.domain"
#dns_search_SSID="search.this.domain search.that.domain"
# Please check the man page for resolv.conf for more information
# as domain and search (searchdomains) are mutually exclusive and
# searchdomains takes precedence
# You can also set any of the /etc/conf.d/net variables per MAC address
# incase you use Access Points with the same SSID but need different
# networking configs. Below is an example - of course you use the same
# method with other variables
#config_001122334455="dhcp"
#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
# WARNING: This will override the SSID being broadcast due to some
# Access Points sending an SSID even when they have been configured
# not to!
# Change 001122334455 to the MAC address and SSID to the SSID
# it should map to
#mac_essid_001122334455="SSID"
# 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
# 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"
# You can also define a preferred_aps list per interface
#preferred_aps_eth0="SSID3 SSID4"
# You can also say whether we only connect to preferred APs or not
# Values are "any", "preferredonly", "forcepreferred", "forcepreferredonly"
# and "forceany"
# "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 them in a scan
# "forcepreferredonly" means it forcibly 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"
#associate_order="any"
#associate_order_eth0="any"
# You can define blacklisted Access Points in the same way
#blacklist_aps="SSID1 SSID2"
#blacklist_aps_eth0="SSID3 SSID4"
# If you have more than one wireless card, you can say if you want
# to allow each card to associate with the same Access Point or not
# Values are "yes" and "no"
# Default is "yes"
#unique_ap="yes"
#unique_ap_eth0="yes"
# IMPORTANT: preferred_only, blacklisted_aps and unique_ap only work when
# essid_eth0 is not set and your card is capable of scanning
# NOTE: preferred_aps list ignores blacklisted_aps - so if you have
# the same SSID in both, well, you're a bit silly :p
##################################################
# 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
# /usr/share/doc/wpa_supplicant
# By default we don't wait for wpa_supplicant 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.
# You can also override any settings found here per SSID - which is very
# handy if you use different networks a lot. See below for using the SSID
# in our variables
#config_SSID="dhcp"
# See the System module below for setting dns/nis/ntp per SSID
# You can also override any settings found here per MAC address of the AP
# in case you use Access Points with the same SSID but need different
# networking configs. Below is an example - of course you use the same
# method with other variables
#mac_config_001122334455="dhcp"
#mac_dns_servers_001122334455="192.168.0.1 192.168.0.2"
# When an interface has been associated with an Access Point, a global
# variable called SSID is set to the Access Point's SSID for use in the
# pre/post user functions below (although it's not available in preup as you
# won't have associated then)
# If you're using anything else to configure wireless on your interface AND
# you have installed wpa_supplicant, you need to disable wpa_supplicant
#modules="!iwconfig !wpa_supplicant"
#or
#modules="!wireless"
##############################################################################
# WIRELESS SSID IN VARIABLES
##############################################################################
# Remember to change SSID to your SSID.
# Say that your SSID is My NET - the line
# #key_SSID="s:passkey"
# becomes
# #key_My_NET="s:passkey"
# Notice that the space has changed to an underscore - do the same with all
# characters not in a-z A-Z (English alphabet) 0-9. This only applies to
# variables and not values.
#
# Any SSID's in values like essid_eth0="My NET" may need to be escaped
# This means placing the character \ before the character
# \" need to be escaped for example
# So if your SSID is
# My "\ NET
# it becomes
# My \"\\ NET
# for example
# #essid_eth0="My\"\\NET"
#
# So using the above we can use
# #dns_domain_My____NET="My\"\\NET"
# which is an invalid dns domain, but shows the how to use the variable
# structure
#########################################################
#-----------------------------------------------------------------------------
# DHCP
# DHCP can be provided by dhclient.
#
# dhcpcd: emerge net-misc/dhcpcd
# dhclient: emerge net-misc/dhcp
# Regardless of which DHCP client you prefer, you configure them the
# same way using one of following depending on which interface modules
# you're using.
#config_eth0="dhcp"
# For passing custom options to dhcpcd use something like the following. This
# example reduces the timeout for retrieving an address from 60 seconds (the
# default) to 10 seconds.
#dhcpcd_eth0="-t 10"
# GENERIC DHCP OPTIONS
# 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
# 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
# use any of them.
#-----------------------------------------------------------------------------
# System
# For configuring system specifics such as domain, dns, ntp and nis servers
# It's rare that you would need todo this, but you can anyway.
# This is most benefit to wireless users who don't use DHCP so they can change
# their configs based on SSID.
# If you omit the _eth0 suffix, then it applies to all interfaces unless
# overridden by the interface suffix.
#dns_domain_eth0="your.domain"
#dns_servers_eth0="192.168.0.2 192.168.0.3"
#dns_search_eth0="this.domain that.domain"
#dns_options_eth0="timeout:1 rotate"
#dns_sortlist_eth0="130.155.160.0/255.255.240.0 130.155.0.0"
# See the man page for resolv.conf for details about the options and sortlist
# directives
#ntp_servers_eth0="192.168.0.2 192.168.0.3"
#nis_domain_eth0="domain"
#nis_servers_eth0="192.168.0.2 192.168.0.3"
# NOTE: Setting any of these will stamp on the files in question. So if you
# don't specify dns_servers but you do specify dns_domain then no nameservers
# will be listed in /etc/resolv.conf even if there were any there to start
# with.
# If this is an issue for you then maybe you should look into a resolv.conf
# manager like resolvconf-gentoo to manage this file for you. All packages
# that baselayout supports use resolvconf-gentoo if installed.
#-----------------------------------------------------------------------------
# Cable in/out detection
# Sometimes the cable is in, others it's out. Obviously you don't want to
# restart net.eth0 every time when you plug it in either.
# BSD has the Device State Change Daemon - or devd for short
# To enable this, simple add devd to the boot runlevel
#rc-update add devd boot
#rc
##############################################################################
# ADVANCED CONFIGURATION
#
# Four functions can be defined which will be called surrounding the
# start/stop operations. The functions are called with the interface
# name first so that one function can control multiple adapters. An extra two
# functions can be defined when an interface fails to start or stop.
#
# The return values for the preup and predown functions should be 0
# (success) to indicate that configuration or deconfiguration of the
# interface can continue. If preup returns a non-zero value, then
# interface configuration will be aborted. If predown returns a
# non-zero value, then the interface will not be allowed to continue
# deconfiguration.
#
# The return values for the postup, postdown, failup and faildown functions are
# ignored since there's nothing to do if they indicate failure.
#
# ${IFACE} is set to the interface being brought up/down
# ${IFVAR} is ${IFACE} converted to variable name bash allows
#
# For historical and compatibility reasons, preup is actually normally called
# in the following sequence: up ; preup ; up.
# The first up causes the kernel to initialize the device, so
# that it is available for use in the preup function. However, for some
# hardware, e.g. CAN devices, some configuration is needed before trying to up
# the interface will actually work. For such hardware, the
# up_before_preup variables will allow skipping the first up call if set
# to yes.
#up_before_preup_IFVAR="NO"
#up_before_preup="NO"
#preup() {
# # Remember to return 0 on success
# return 0
#}
#predown() {
# # The default in the script is to test for NFS root and disallow
# # downing interfaces in that case. Note that if you specify a
# # predown() function you will override that logic. Here it is, in
# # case you still want it...
# if is_net_fs /; then
# eerror "root filesystem is network mounted -- can't stop ${IFACE}"
# return 1
# fi
#
# # Remember to return 0 on success
# return 0
#}
#postup() {
# # This function could be used, for example, to register with a
# # dynamic DNS service. Another possibility would be to
# # send/receive mail once the interface is brought up.
#}
#postdown() {
# # Return 0 always
# return 0
#}
#failup() {
# # This function is mostly here for completeness... I haven't
# # thought of anything nifty to do with it yet ;-)
#}
#faildown() {
# # This function is mostly here for completeness... I haven't
# # thought of anything nifty to do with it yet ;-)
#}

File diff suppressed because it is too large Load Diff

13
etc/rc.conf.DragonFly Normal file
View File

@@ -0,0 +1,13 @@
##############################################################################
# DragonFly BSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on DragonFly BSD:
# "" - nothing special
# "jail" - DragonFly BSD jails
# "prefix" - Prefix
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""

11
etc/rc.conf.GNU-kFreeBSD Normal file
View File

@@ -0,0 +1,11 @@
##############################################################################
# GNU/kFreeBSD SPECIFIC OPTIONS
# This is the subsystem type. Valid options on GNU/kFreeBSD:
# "" - nothing special
# "jail" - FreeBSD jails (not yet implemented)
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
# PRESENTLY in, not the virtualization the environment is capable of.
#rc_sys=""

View File

@@ -20,10 +20,59 @@
# consolefont, numlock, etc ...)
rc_tty_number=12
##############################################################################
# CGROUPS RESOURCE MANAGEMENT
# If you have cgroups turned on in your kernel, this switch controls
# whether or not a group for each controler is mounted under
# whether or not a group for each controller is mounted under
# /sys/fs/cgroup.
# Support for process management by cgroups is planned in the future,
# so if you turn this off, be aware that you may not be able to use that
# feature.
# None of the other options in this section work if this is set to "NO".
#rc_controller_cgroups="YES"
# The following settings allow you to set up values for the cgroup
# controllers for your services.
# They can be set in this file;, however, if you do this, the settings
# will apply to all of your services.
# If you want different settings for each service, place the settings in
# /etc/conf.d/foo for service foo.
# The format is to specify the names of the settings followed by their
# values. Each variable can hold multiple settings.
# For example, you would use this to set the cpu.shares setting in the
# cpu controller to 512 for your service.
# rc_cgroup_cpu="
# cpu.shares 512
# "
#
#For more information about the adjustments that can be made with
#cgroups, see Documentation/cgroups/* in the linux kernel source tree.
# Set the blkio controller settings for this service.
#rc_cgroup_blkio=""
# Set the cpu controller settings for this service.
#rc_cgroup_cpu=""
# Add this service to the cpuacct controller (any value means yes).
#rc_cgroup_cpuacct=""
# Set the cpuset controller settings for this service.
#rc_cgroup_cpuset=""
# Set the devices controller settings for this service.
#rc_cgroup_devices=""
# Set the memory controller settings for this service.
#rc_cgroup_memory=""
# Set the net_prio controller settings for this service.
#rc_cgroup_net_prio=""
# Set this to YES if yu want all of the processes in a service's cgroup
# killed when the service is stopped or restarted.
# This should not be set globally because it kills all of the service's
# child processes, and most of the time this is undesirable. Please set
# it in /etc/conf.d/<service>.
# To perform this cleanup manually for a stopped service, you can
# execute cgroup_cleanup with /etc/init.d/<service> cgroup_cleanup or
# rc-service <service> cgroup_cleanup.
# rc_cgroup_cleanup="NO"

View File

@@ -80,6 +80,10 @@
# Set unicode to YES to turn on unicode support for keyboards and screens.
#unicode="NO"
# This is how long fuser should wait for a remote server to respond. The
# default is 60 seconds, but it can be adjusted here.
#rc_fuser_timeout=60
# Below is the default list of network fstypes.
#
# afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
@@ -101,7 +105,7 @@
# Some daemons are started and stopped via start-stop-daemon.
# We can set some things on a per service basis, like the nicelevel.
#export SSD_NICELEVEL="-19"
#SSD_NICELEVEL="-19"
# Pass ulimit parameters
#rc_ulimit="-u 30"

View File

@@ -3,8 +3,9 @@
# Released under the 2-clause BSD license.
# Inform RC that we are in the background and hotplugged
export IN_BACKGROUND=yes
export IN_HOTPLUG=yes
IN_BACKGROUND=yes
IN_HOTPLUG=yes
export IN_BACKGROUND IN_HOTPLUG
getmedia() {
ifconfig "$1" | while read line; do

View File

@@ -4,7 +4,7 @@
# If $TERM is not set then assume default of @TERM@
# This gives us a nice colour boot :)
[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="@TERM@"
[ -z "$TERM" -o "$TERM" = "dumb" ] && TERM="@TERM@" && export TERM
# Handle interrupts
trap : SIGINT

View File

@@ -7,11 +7,11 @@ trap : SIGINT SIGQUIT
# Try and use stuff in /lib over anywhere else so we can shutdown
# local mounts correctly.
export LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LDLIBRARY_PATH}"
LD_LIBRARY_PATH="/lib${LD_LIBRARY_PATH:+:}${LDLIBRARY_PATH}" ; export LD_LIBRARY_PATH
# If $TERM is not set then assume default of @TERM@
# This gives us a nice colour boot :)
[ -z "$TERM" -o "$TERM" = "dumb" ] && export TERM="@TERM@"
[ -z "$TERM" -o "$TERM" = "dumb" ] && TERM="@TERM@" && export TERM
action=${1:-shutdown}
exec /sbin/rc "${action}"

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,23 +1,19 @@
include ../mk/net.mk
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
root.in savecache.in swap.in swapfiles.in \
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in \
netmount.in root.in savecache.in swap.in swapfiles.in \
tmpfiles.setup.in swclock.in sysctl.in urandom.in ${SRCS-${OS}}
BIN= ${OBJS}
# Build our old net foo or not
ifeq (${MKNET},)
# Are we installing our network scripts?
ifeq (${MKNET},yes)
SRCS+= network.in staticroute.in
endif
ifeq (${MKNET},oldnet)
INSTALLAFTER= _installafter_net.lo
SRCS+= net.lo.in
endif
MK= ../mk
include ${MK}/os.mk
NET_LO-FreeBSD= net.lo0
# Generic BSD scripts
SRCS-FreeBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
@@ -25,12 +21,10 @@ SRCS-FreeBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \
mixer.in nscd.in powerd.in syscons.in
NET_LO-Linux= net.lo
SRCS-Linux= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
killprocs.in modules.in mount-ro.in mtab.in numlock.in \
procfs.in sysfs.in termencoding.in
procfs.in sysfs.in termencoding.in tmpfiles.dev.in
NET_LO-NetBSD= net.lo0
# Generic BSD scripts
SRCS-NetBSD= hostid.in moused.in newsyslog.in pf.in rarpd.in rc-enabled.in \
rpcbind.in savecore.in syslogd.in
@@ -43,6 +37,3 @@ SRCS-NetBSD+= devdb.in swap-blk.in ttys.in wscons.in
include ${MK}/scripts.mk
_installafter_: realinstall
_installafter_net.lo: realinstall
${INSTALL} -m ${BINMODE} net.lo ${DESTDIR}/${INITDIR}/${NET_LO-${OS}}

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -27,9 +27,9 @@ cleanup_tmp_dir()
ebegin "Wiping $dir directory"
# Faster than raw find
if ! rm -rf -- [^ajlq\.]* 2>/dev/null ; then
if ! rm -rf -- [!ajlq\.]* 2>/dev/null ; then
# Blah, too many files
find . -maxdepth 1 -name '[^ajlq\.]*' -exec rm -rf -- {} +
find . -maxdepth 1 -name '[!ajlq\.]*' -exec rm -rf -- {} +
fi
# pam_mktemp creates a .private directory within which
@@ -59,6 +59,34 @@ cleanup_tmp_dir()
fi
}
cleanup_var_run_dir()
{
ebegin "Cleaning /var/run"
for x in $(find /var/run ! -type d ! -name utmp \
! -name random-seed ! -name dev.db \
! -name ld-elf.so.hints ! -name ld.so.hints);
do
# Clean stale sockets
if [ -S "$x" ]; then
if type fuser >/dev/null 2>&1; then
fuser "$x" >/dev/null 2>&1 || rm -- "$x"
else
rm -- "$x"
fi
fi
[ ! -f "$x" ] && continue
# Do not remove pidfiles of already running daemons
case "$x" in
*.pid)
start-stop-daemon --test --quiet \
--stop --pidfile "$x" && continue
;;
esac
rm -f -- "$x"
done
eend 0
}
mkutmp()
{
: >"$1"
@@ -87,6 +115,17 @@ migrate_to_run()
fi
}
clean_run()
{
[ "$RC_SYS" = VSERVER ] && return 0
local dir
dir=$(mktemp -d)
mount --bind / $dir
rm -rf $dir/run/*
umount $dir
rm -rf $dir
}
start()
{
# Remove any added console dirs
@@ -115,6 +154,7 @@ start()
if [ "$RC_UNAME" = Linux -a -d /run ]; then
migrate_to_run /var/lock /run/lock
migrate_to_run /var/run /run
clean_run
fi
if checkpath -W /var/run; then
@@ -127,36 +167,13 @@ start()
[ -e /var/log/wtmp ] || mkutmp /var/log/wtmp
eend 0
ebegin "Cleaning /var/run"
for x in $(find /var/run ! -type d ! -name utmp \
! -name random-seed ! -name dev.db \
! -name ld-elf.so.hints ! -name ld.so.hints);
do
# Clean stale sockets
if [ -S "$x" ]; then
if type fuser >/dev/null 2>&1; then
fuser "$x" >/dev/null 2>&1 || rm -- "$x"
else
rm -- "$x"
fi
fi
[ ! -f "$x" ] && continue
# Do not remove pidfiles of already running daemons
case "$x" in
*.pid)
start-stop-daemon --test --quiet \
--stop --pidfile "$x" && continue
;;
esac
rm -f -- "$x"
done
eend 0
mountinfo -q -f tmpfs /var/run || cleanup_var_run_dir
fi
# Clean up /tmp directories
local tmp=
for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do
cleanup_tmp_dir "$tmp"
mountinfo -q -f tmpfs "$tmp" || cleanup_tmp_dir "$tmp"
done
if checkpath -W /tmp; then
@@ -174,7 +191,7 @@ start()
if yesno $log_dmesg; then
if $logw || checkpath -W /var/log; then
# Create an 'after-boot' dmesg log
if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ -a "$RC_SYS" != LXC ]; then
dmesg > /var/log/dmesg
chmod 640 /var/log/dmesg
fi

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -53,14 +53,10 @@ start()
done
eend $retval
# Store the last font so we can use it ASAP on boot
# Store the font so we can use it ASAP on boot
if [ $retval -eq 0 ] && checkpath -W "$RC_LIBEXECDIR"; then
mkdir -p "$RC_LIBEXECDIR"/console
for font in /usr/share/consolefonts/"$consolefont".*; do
:
done
cp "$font" "$RC_LIBEXECDIR"/console
echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font
setfont -O "$RC_LIBEXECDIR"/console/font
fi
return $retval

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -7,12 +7,13 @@ description="Mount system critical filesystems in /dev."
depend() {
use dev-mount
before dev
keyword -prefix -vserver
keyword -prefix -vserver -lxc
}
start() {
# Mount required stuff as user may not have then in /etc/fstab
for x in \
"mqueue /dev/mqueue 1777 ,nodev mqueue" \
"devpts /dev/pts 0755 ,gid=5,mode=0620 devpts" \
"tmpfs /dev/shm 1777 ,nodev shm" \
; do

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright 1992-2012 FreeBSD Project
# Released under the 2-clause BSD license

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -9,7 +9,7 @@ _IFS="
depend()
{
use dev clock modules
keyword -jail -openvz -prefix -timeout -vserver -lxc
keyword -jail -openvz -prefix -timeout -vserver -lxc -uml
}
_abort() {
@@ -71,14 +71,12 @@ start()
done
if [ "$RC_UNAME" = Linux ]; then
local skiptypes x
for x in $net_fs_list $extra_net_fs_list; do
skiptypes="${skiptypes}no${x},"
done
skiptypes="${skiptypes}noopts=_netdev"
fsck_opts="$fsck_opts -C0 -T -t $skiptypes"
local skiptypes
skiptypes=$(printf 'no%s,' ${net_fs_list} ${extra_net_fs_list})
[ "${skiptypes}" = "no," ] && skiptypes=""
fsck_opts="$fsck_opts -C0 -T -t ${skiptypes}noopts=_netdev"
if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
fsck_args=${fsck_args--A -p}
fsck_args=${fsck_args:--A -p}
if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$
fsck_opts="$fsck_opts -R"
@@ -87,7 +85,7 @@ start()
fi
trap : INT QUIT
fsck ${fsck_args--p} $fsck_opts "$@"
fsck ${fsck_args:--p} $fsck_opts "$@"
case $? in
0) eend 0; return 0;;
1) ewend 1 "Filesystems repaired"; return 0;;

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -5,12 +5,53 @@
description="Sets the hostname of the machine."
depend() {
keyword -prefix -lxc
need root
}
start()
{
hostname=${hostname-${HOSTNAME-localhost}}
out=$hostname
short=${hostname%%.*}
if [ "$short" != "$hostname" ]; then
out="$out $short"
fi
if [ "$nisdomainname" != "" ]; then
ebegin "Setting NIS domain name to $nisdomainname"
nisdomainname $nisdomainname
eend $? "Failed to set the NIS domain name"
fi
if [ "$short" != "localhost" ]; then
out="$out localhost"
fi
if [ "$hostname" != "localhost.localdomain" ]; then
out="$out localhost.localdomain"
fi
[ -n "$aliases" ] && out2="$aliases"
ebegin "Configuring /etc/hosts"
cat << END > /etc/hosts
# Local Host Database
#
# This AUTOMATICALLY-GENERATED file describes a number of aliases-to-address
# mappings for the local hosts that share this file.
#
# In the presence of the domain name service or NIS, this file may not be
# consulted at all; see /etc/host.conf for the resolution order.
#
# DO NOT EDIT THIS FILE BY HAND; YOUR CHANGES WILL BE OVERWRITTEN
#
# Define alias-to-address mappings in /etc/conf.d/hostname
# IPv4 and IPv6 localhost aliases
127.0.0.1 $out
::1 $out
# Other aliases
$out2
END
chmod 0644 /etc/hosts
eend $?
[ "$RC_SYS" = "LXC" ] && return 0
ebegin "Setting hostname to $hostname"
hostname "$hostname"
eend $? "Failed to set the hostname"

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -8,7 +8,7 @@ ipfw_ip_in=${ipfw_ip_in-any}
ipfw_ports_in=${ipfw_ports_in-auth ssh}
ipfw_ports_nolog=${ipfw_ports_nolog-135-139,445 1026,1027 1433,1434}
opts="panic showstatus"
extra_commands="panic showstatus"
depend() {
before net

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -58,7 +58,7 @@ start()
if yesno $fix_euro; then
ebegin "Fixing font for euro symbol"
# Fix some fonts displaying the Euro, #173528.
echo "altgr keycode 18 = U+20AC" | loadkeys -q
echo "altgr keycode 18 = U+20AC" | loadkeys -q -
eend $?
fi

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -9,7 +9,7 @@ depend()
need fsck
use lvm modules mtab
after lvm modules
keyword -jail -openvz -prefix -vserver -lxc
keyword -jail -prefix -vserver -lxc
}
start()
@@ -17,11 +17,14 @@ start()
# Mount local filesystems in /etc/fstab.
local types="noproc" x= no_netdev=
for x in $net_fs_list $extra_net_fs_list; do
types="${types},${x}"
types="${types},no${x}"
done
if [ "$RC_UNAME" = Linux ]; then
no_netdev="-O no_netdev"
if mountinfo -q /usr; then
touch "$RC_SVCDIR"/usr_premounted
fi
fi
ebegin "Mounting local filesystems"
mount -at "$types" $no_netdev
@@ -37,7 +40,7 @@ stop()
# We never unmount / or /dev or $RC_SVCDIR
# Bug 381783
local rc_svcdir=$(echo $RC_SVCDIR | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
local rc_svcdir=$(printf '%s\n' "$RC_SVCDIR" | sed 's:/lib\(32\|64\)\?/:/lib(32|64)?/:g')
local x= no_umounts_r="/|/dev|/dev/.*|${rc_svcdir}"
no_umounts_r="${no_umounts_r}|/bin|/sbin|/lib(32|64)?|/libexec"
@@ -48,7 +51,10 @@ stop()
done
if [ "$RC_UNAME" = Linux ]; then
no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*|/usr"
no_umounts_r="$no_umounts_r|/proc|/proc/.*|/run|/sys|/sys/.*"
if [ -e "$rc_svcdir"/usr_premounted ]; then
no_umounts_r="$no_umounts_r|/usr"
fi
fi
no_umounts_r="^($no_umounts_r)$"

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -28,7 +28,7 @@ start()
# makes / readonly and dismounts all tmpfs even if in use which is
# not good. Luckily, umount uses /etc/mtab instead of /proc/mounts
# which allows this hack to work.
grep -v "^[^ ]* / tmpfs " /proc/mounts > /etc/mtab
grep -v "^[! ]* / tmpfs " /proc/mounts > /etc/mtab
# Remove stale backups
rm -f /etc/mtab~ /etc/mtab~~

View File

@@ -1,772 +0,0 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
MODULESDIR="${RC_LIBEXECDIR}/net"
MODULESLIST="${RC_SVCDIR}/nettree"
_config_vars="config routes"
[ -z "${IN_BACKGROUND}" ] && IN_BACKGROUND="NO"
description="Configures network interfaces."
# Handy var so we don't have to embed new lines everywhere for array splitting
__IFS="
"
depend()
{
local IFACE=${RC_SVCNAME#*.}
local IFVAR=$(shell_var "${IFACE}")
need localmount
if [ "$RC_UNAME" = Linux -a "$IFACE" != lo ]; then
need sysfs
fi
after bootmisc
keyword -jail -prefix -vserver
case "${IFACE}" in
lo|lo0) ;;
*)
after net.lo net.lo0 dbus
provide net
;;
esac
if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
depend_${IFVAR}
fi
local dep= prov=
for dep in need use before after provide keyword; do
eval prov=\$rc_${dep}_${IFVAR}
if [ -n "${prov}" ]; then
${dep} ${prov}
ewarn "rc_${dep}_${IFVAR} is deprecated."
ewarn "Please use rc_net_${IFVAR}_${dep} instead."
fi
done
}
# Support bash arrays - sigh
_array_helper()
{
local _a=
eval _a=\$$1
_a=$(echo "${_a}" | sed -e 's:^[[:space:]]*::' -e 's:[[:space:]]*$::' -e '/^$/d' -e 's:[[:space:]]\{1,\}: :g')
[ -n "${_a}" ] && printf "%s\n" "${_a}"
}
_get_array()
{
local _a=
if [ -n "${BASH}" ]; then
case "$(declare -p "$1" 2>/dev/null)" in
"declare -a "*)
ewarn "You are using a bash array for $1."
ewarn "This feature will be removed in the future."
ewarn "Please see net.example for the correct format for $1."
eval "set -- \"\${$1[@]}\""
for _a; do
printf "%s\n" "${_a}"
done
return 0
;;
esac
fi
_array_helper $1
}
# Flatten bash arrays to simple strings
_flatten_array()
{
if [ -n "${BASH}" ]; then
case "$(declare -p "$1" 2>/dev/null)" in
"declare -a "*)
ewarn "You are using a bash array for $1."
ewarn "This feature will be removed in the future."
ewarn "Please see net.example for the correct format for $1."
eval "set -- \"\${$1[@]}\""
for x; do
printf "'%s' " "$(printf "$x" | sed "s:':'\\\'':g")"
done
return 0
;;
esac
fi
_array_helper $1
}
_wait_for_carrier()
{
local timeout= efunc=einfon
_has_carrier && return 0
eval timeout=\$carrier_timeout_${IFVAR}
timeout=${timeout:-${carrier_timeout:-0}}
# Incase users don't want this nice feature ...
[ ${timeout} -le 0 ] && return 0
yesno ${RC_PARALLEL} && efunc=einfo
${efunc} "Waiting for carrier (${timeout} seconds) "
while [ ${timeout} -gt 0 ]; do
sleep 1
if _has_carrier; then
[ "${efunc}" = "einfon" ] && echo
eend 0
return 0
fi
: $(( timeout -= 1 ))
[ "${efunc}" = "einfon" ] && printf "."
done
[ "${efunc}" = "einfon" ] && echo
eend 1
return 1
}
_netmask2cidr()
{
# Some shells cannot handle hex arithmetic, so we massage it slightly
# Buggy shells include FreeBSD sh, dash and busybox.
# bash and NetBSD sh don't need this.
case $1 in
0x*)
local hex=${1#0x*} quad=
while [ -n "${hex}" ]; do
local lastbut2=${hex#??*}
quad=${quad}${quad:+.}0x${hex%${lastbut2}*}
hex=${lastbut2}
done
set -- ${quad}
;;
esac
local i= len=
local IFS=.
for i in $1; do
while [ ${i} -ne 0 ]; do
: $(( len += i % 2 ))
: $(( i >>= 1 ))
done
done
echo "${len}"
}
_configure_variables()
{
local var= v= t=
for var in ${_config_vars}; do
local v=
for t; do
eval v=\$${var}_${t}
if [ -n "${v}" ]; then
eval ${var}_${IFVAR}=\$${var}_${t}
continue 2
fi
done
done
}
_which()
{
local i OIFS
# Empty
[ -z "$1" ] && return
# check paths
OIFS="$IFS"
IFS=:
for i in $PATH ; do
[ -x $i/$1 ] && echo $i/$1 && break
done
IFS=$OIFS
}
# Like _which, but also consider shell builtins, and multiple alternatives
_program_available()
{
[ -z "$1" ] && return 0
local x=
for x; do
case "${x}" in
/*) [ -x "${x}" ] && break;;
*) type "${x}" >/dev/null 2>&1 && break;;
esac
unset x
done
[ -n "${x}" ] && echo $x && return 0
return 1
}
_show_address()
{
einfo "received address $(_get_inet_address "${IFACE}")"
}
# Basically sorts our modules into order and saves the list
_gen_module_list()
{
local x= f= force=$1
if ! ${force} && [ -s "${MODULESLIST}" -a "${MODULESLIST}" -nt "${MODULESDIR}" ]; then
local update=false
for x in "${MODULESDIR}"/*.sh; do
[ -e "${x}" ] || continue
if [ "${x}" -nt "${MODULESLIST}" ]; then
update=true
break
fi
done
${update} || return 0
fi
einfo "Caching network module dependencies"
# Run in a subshell to protect the main script
(
after() {
eval ${MODULE}_after="\"\${${MODULE}_after}\${${MODULE}_after:+ }$*\""
}
before() {
local mod=${MODULE}
local MODULE=
for MODULE; do
after "${mod}"
done
}
program() {
if [ "$1" = "start" -o "$1" = "stop" ]; then
local s="$1"
shift
eval ${MODULE}_program_${s}="\"\${${MODULE}_program_${s}}\${${MODULE}_program_${s}:+ }$*\""
else
eval ${MODULE}_program="\"\${${MODULE}_program}\${${MODULE}_program:+ }$*\""
fi
}
provide() {
eval ${MODULE}_provide="\"\${${MODULE}_provide}\${${MODULE}_provide:+ }$*\""
local x
for x in $*; do
eval ${x}_providedby="\"\${${MODULE}_providedby}\${${MODULE}_providedby:+ }${MODULE}\""
done
}
for MODULE in "${MODULESDIR}"/*.sh; do
sh -n "${MODULE}" || continue
. "${MODULE}" || continue
MODULE=${MODULE#${MODULESDIR}/}
MODULE=${MODULE%.sh}
eval ${MODULE}_depend
MODULES="${MODULES} ${MODULE}"
done
VISITED=
SORTED=
visit() {
case " ${VISITED} " in
*" $1 "*) return;;
esac
VISITED="${VISITED} $1"
eval AFTER=\$${1}_after
for MODULE in ${AFTER}; do
eval PROVIDEDBY=\$${MODULE}_providedby
if [ -n "${PROVIDEDBY}" ]; then
for MODULE in ${PROVIDEDBY}; do
visit "${MODULE}"
done
else
visit "${MODULE}"
fi
done
eval PROVIDE=\$${1}_provide
for MODULE in ${PROVIDE}; do
visit "${MODULE}"
done
eval PROVIDEDBY=\$${1}_providedby
[ -z "${PROVIDEDBY}" ] && SORTED="${SORTED} $1"
}
for MODULE in ${MODULES}; do
visit "${MODULE}"
done
printf "" > "${MODULESLIST}"
i=0
for MODULE in ${SORTED}; do
eval PROGRAM=\$${MODULE}_program
eval PROGRAM_START=\$${MODULE}_program_start
eval PROGRAM_STOP=\$${MODULE}_program_stop
eval PROVIDE=\$${MODULE}_provide
echo "module_${i}='${MODULE}'" >> "${MODULESLIST}"
echo "module_${i}_program='${PROGRAM}'" >> "${MODULESLIST}"
echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"
echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"
echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"
: $(( i += 1 ))
done
echo "module_${i}=" >> "${MODULESLIST}"
)
return 0
}
_load_modules()
{
local starting=$1 mymods=
# Ensure our list is up to date
_gen_module_list false
if ! . "${MODULESLIST}"; then
_gen_module_list true
. "${MODULESLIST}"
fi
MODULES=
if [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
eval mymods=\$modules_${IFVAR}
[ -z "${mymods}" ] && mymods=${modules}
fi
local i=-1 x= mod= f= provides=
while true; do
: $(( i += 1 ))
eval mod=\$module_${i}
[ -z "${mod}" ] && break
[ -e "${MODULESDIR}/${mod}.sh" ] || continue
eval set -- \$module_${i}_program
if [ -n "$1" ]; then
if ! _program_available "$@" >/dev/null; then
vewarn "Skipping module $mod due to missing program: $@"
continue
fi
fi
if ${starting}; then
eval set -- \$module_${i}_program_start
else
eval set -- \$module_${i}_program_stop
fi
if [ -n "$1" ]; then
if ! _program_available "$@" >/dev/null; then
vewarn "Skipping module $mod due to missing program: $@"
continue
fi
fi
eval provides=\$module_${i}_provide
if ${starting}; then
case " ${mymods} " in
*" !${mod} "*) continue;;
*" !${provides} "*) [ -n "${provides}" ] && continue;;
esac
fi
MODULES="${MODULES}${MODULES:+ }${mod}"
# Now load and wrap our functions
if ! . "${MODULESDIR}/${mod}.sh"; then
eend 1 "${RC_SVCNAME}: error loading module \`${mod}'"
exit 1
fi
[ -z "${provides}" ] && continue
# Wrap our provides
local f=
for f in pre_start start post_start; do
eval "${provides}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done
eval module_${mod}_provides="${provides}"
eval module_${provides}_providedby="${mod}"
done
# Wrap our preferred modules
for mod in ${mymods}; do
case " ${MODULES} " in
*" ${mod} "*)
eval x=\$module_${mod}_provides
[ -z "${x}" ] && continue
for f in pre_start start post_start; do
eval "${x}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
done
eval module_${x}_providedby="${mod}"
;;
esac
done
# Finally remove any duplicated provides from our list if we're starting
# Otherwise reverse the list
local LIST="${MODULES}" p=
MODULES=
if ${starting}; then
for mod in ${LIST}; do
eval x=\$module_${mod}_provides
if [ -n "${x}" ]; then
eval p=\$module_${x}_providedby
[ "${mod}" != "${p}" ] && continue
fi
MODULES="${MODULES}${MODULES:+ }${mod}"
done
else
for mod in ${LIST}; do
MODULES="${mod}${MODULES:+ }${MODULES}"
done
fi
veinfo "Loaded modules: ${MODULES}"
}
_load_config()
{
local config="$(_get_array "config_${IFVAR}")"
local fallback="$(_get_array fallback_${IFVAR})"
config_index=0
local IFS="$__IFS"
set -- ${config}
# We should support a space separated array for cidr configs
# But only as long as they do not contain other parameters for the address
if [ $# = 1 ]; then
unset IFS
set -- ${config}
# Of course, we may have a single address added old style.
# If the NEXT argument is a v4 or v6 address, it's the next config.
# Otherwise, it's arguments to the first config...
if [ "${2#*.*}" = "${2}" -a "${2#*:*}" = "${2}" ]; then
# Not an IPv4/IPv6
local IFS="$__IFS"
set -- ${config}
fi
fi
# Ensure that loopback has the correct address
if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
if [ "$1" != "null" ]; then
config_0="127.0.0.1/8"
config_index=1
fi
else
if [ -z "$1" ]; then
ewarn "No configuration specified; defaulting to DHCP"
config_0="dhcp"
config_index=1
fi
fi
# We store our config in an array like vars
# so modules can influence it
for cmd; do
eval config_${config_index}="'${cmd}'"
: $(( config_index += 1 ))
done
# Terminate the list
eval config_${config_index}=
config_index=0
for cmd in ${fallback}; do
eval fallback_${config_index}="'${cmd}'"
: $(( config_index += 1 ))
done
# Terminate the list
eval fallback_${config_index}=
# Don't set to zero, so any net modules don't have to do anything extra
config_index=-1
}
# Support functions
_run_if()
{
local cmd=$1 iface=$2 ifr=${IFACE} ifv=${IFVAR}
# Ensure that we don't stamp on real values
local IFACE= IFVAR=
shift
if [ -n "${iface}" ]; then
IFACE="${iface}"
[ "${iface}" != "${ifr}" ] && IFVAR=$(shell_var "${IFACE}")
else
IFACE=${ifr}
IFVAR=${ifv}
fi
${cmd}
}
interface_exists()
{
_run_if _exists "$@"
}
interface_up()
{
_run_if _up "$@"
}
interface_down()
{
_run_if _down "$@"
}
start()
{
local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=
local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
local metric=0 _up_before_preup
eval _up_before_preup="\$up_before_preup_${IFVAR}"
[ -z "${_up_before_preup}" ] && _up_before_preup=$up_before_preup
einfo "Bringing up interface ${IFACE}"
eindent
if [ -z "${MODULES}" ]; then
local MODULES=
_load_modules true
fi
# We up the iface twice if we have a preup to ensure it's up if
# available in preup and afterwards incase the user inadvertently
# brings it down
if [ "$(command -v preup)" = "preup" ]; then
yesno "${_up_before_preup:-yes}" && _up 2>/dev/null
ebegin "Running preup"
eindent
preup || return 1
eoutdent
fi
_up 2>/dev/null
for module in ${MODULES}; do
if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then
${module}_pre_start || exit $?
fi
done
if ! _exists; then
eerror "ERROR: interface ${IFACE} does not exist"
eerror "Ensure that you have loaded the correct kernel module for your hardware"
return 1
fi
if ! _wait_for_carrier; then
if service_started devd; then
ewarn "no carrier, but devd will start us when we have one"
mark_service_inactive "${RC_SVCNAME}"
else
eerror "no carrier"
fi
return 1
fi
local config= config_index=
_load_config
config_index=0
eval our_metric=\$metric_${IFVAR}
if [ -n "${our_metric}" ]; then
metric=${our_metric}
elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
: $(( metric += $(_ifindex) ))
fi
while true; do
eval config=\$config_${config_index}
[ -z "${config}" ] && break
set -- ${config}
if [ "$1" != "null" -a "$1" != "noop" ]; then
ebegin "$1"
fi
eindent
case "$1" in
noop)
if [ -n "$(_get_inet_address)" ]; then
oneworked=true
break
fi
;;
null) :;;
[0-9]*|*:*) _add_address ${config};;
*)
if [ "$(command -v "${config}_start")" = "${config}_start" ]; then
"${config}"_start
else
eerror "nothing provides \`${config}'"
fi
;;
esac
if eend $?; then
oneworked=true
else
eval config=\$fallback_${config_index}
if [ -n "${config}" ]; then
fallback=true
eoutdent
ewarn "Trying fallback configuration ${config}"
eindent
eval config_${config_index}=\$config
unset fallback_${config_index}
: $(( config_index -= 1 ))
fi
fi
eoutdent
: $(( config_index += 1 ))
done
if ! ${oneworked}; then
if [ "$(command -v failup)" = "failup" ]; then
ebegin "Running failup"
eindent
failup
eoutdent
fi
return 1
fi
local hidefirstroute=false first=true routes=
if ${fallback}; then
routes="$(_get_array "fallback_routes_${IFVAR}")"
fi
if [ -z "${routes}" ]; then
routes="$(_get_array "routes_${IFVAR}")"
fi
if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
if [ "${config_0}" != "null" ]; then
routes="127.0.0.0/8 via 127.0.0.1
${routes}"
hidefirstroute=true
fi
fi
local OIFS="${IFS}" SIFS="${IFS-y}"
local IFS="$__IFS"
for cmd in ${routes}; do
unset IFS
if ${first}; then
first=false
einfo "Adding routes"
fi
eindent
ebegin ${cmd}
# Work out if we're a host or a net if not told
case ${cmd} in
-net" "*|-host" "*);;
*" "netmask" "*) cmd="-net ${cmd}";;
*.*.*.*/32*) cmd="-host ${cmd}";;
*.*.*.*/*|0.0.0.0|0.0.0.0" "*) cmd="-net ${cmd}";;
default|default" "*) cmd="-net ${cmd}";;
*) cmd="-host ${cmd}";;
esac
if ${hidefirstroute}; then
_add_route ${cmd} >/dev/null 2>&1
hidefirstroute=false
else
_add_route ${cmd} >/dev/null
fi
eend $?
eoutdent
done
if [ "${SIFS}" = "y" ]; then
unset IFS
else
IFS="${OIFS}"
fi
for module in ${MODULES}; do
if [ "$(command -v "${module}_post_start")" = "${module}_post_start" ]; then
${module}_post_start || exit $?
fi
done
if [ "$(command -v postup)" = "postup" ]; then
ebegin "Running postup"
eindent
postup
eoutdent
fi
return 0
}
stop()
{
local IFACE=${RC_SVCNAME#*.} module=
local IFVAR=$(shell_var "${IFACE}") opts=
einfo "Bringing down interface ${IFACE}"
eindent
if [ -z "${MODULES}" ]; then
local MODULES=
_load_modules false
fi
if [ "$(command -v predown)" = "predown" ]; then
ebegin "Running predown"
eindent
predown || return 1
eoutdent
else
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
fi
for module in ${MODULES}; do
if [ "$(command -v "${module}_pre_stop")" = "${module}_pre_stop" ]; then
${module}_pre_stop || exit $?
fi
done
for module in ${MODULES}; do
if [ "$(command -v "${module}_stop")" = "${module}_stop" ]; then
${module}_stop
fi
done
# Only delete addresses for interfaces that exist
if _exists; then
# PPP can manage it's own addresses when IN_BACKGROUND
# Important in case "demand" set on the ppp link
if ! (yesno ${IN_BACKGROUND} && is_ppp) ; then
_delete_addresses "${IFACE}"
fi
fi
for module in ${MODULES}; do
if [ "$(command -v "${module}_post_stop")" = "${module}_post_stop" ]; then
${module}_post_stop
fi
done
# If not in background, and not loopback then bring the interface down
# unless overridden.
if ! yesno ${IN_BACKGROUND} && \
[ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
eval module=\$ifdown_${IFVAR}
module=${module:-${ifdown:-YES}}
yesno ${module} && _down 2>/dev/null
fi
type resolvconf >/dev/null 2>&1 && resolvconf -d "${IFACE}" 2>/dev/null
if [ "$(command -v "postdown")" = "postdown" ]; then
ebegin "Running postdown"
eindent
postdown
eoutdent
fi
return 0
}

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -12,7 +12,7 @@ depend()
config /etc/fstab
use afc-client amd autofs openvpn
use dns
keyword -jail -prefix -vserver
keyword -jail -prefix -vserver -lxc
}
start()

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -223,15 +223,6 @@ start()
einfo "Starting network"
routeflush
if [ "$RC_UNAME" = "Linux" ]; then
ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1
route add -net 127.0.0.0 netmask 255.0.0.0 \
gw 127.0.0.1 reject 2>/dev/null
else
ifconfig lo0 127.0.0.1 netmask 255.0.0.0 || cr=1
route -q add -inet 127.0.0.0 -netmask 255.0.0.0 \
127.0.0.1 -reject || cr=1
fi
eindent
for int in $(interfaces); do
local func= cf=
@@ -323,13 +314,17 @@ stop()
# Don't stop the network at shutdown.
# We don't use the noshutdown keyword so that we are started again
# correctly if we go back to multiuser.
yesno ${shutdown_network:-YES} && yesno $RC_GOINGDOWN && return 0
yesno ${keep_network:-YES} && yesno $RC_GOINGDOWN && return 0
local int= intv= cmd= downcmd= r=
einfo "Stopping network"
routeflush
eindent
for int in $(reverse $(interfaces u)); do
case "$int" in
lo|lo0) continue ;;
*) ;;
esac
intv=$(shell_var "$int")
eval downcmd=\$ifdown_$intv
eval cmd=\$ip_$intv

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -31,7 +31,7 @@ start()
ebegin "Loading custom binary format handlers"
fmts=$(grep -hsv -e '^[#;]' -e '^[[:space:]]*$' \
/run/binfmt.d/*.conf \
@SYSCONFDIR@/binfmt.d/*.conf \
/etc/binfmt.d/*.conf \
""/usr/lib/binfmt.d/*.conf)
if [ -n "${fmts}" ]; then
echo "${fmts}" > /proc/sys/fs/binfmt_misc/register

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -21,14 +21,6 @@ start()
stop()
{
ebegin "Deactivating additional swap space"
# Try to unmount all tmpfs filesystems not in use, else a deadlock may
# occur. As $RC_SVCDIR may also be tmpfs we cd to it to lock it
# fixme: Do we need this here since we are only unmounting swap files
# and loopback swap?
cd "$RC_SVCDIR"
umount -a -t tmpfs 2>/dev/null
case "$RC_UNAME" in
Linux)
if [ -e /proc/swaps ]; then

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
@@ -17,7 +17,7 @@ start()
{
ebegin "Setting the local clock based on last shutdown time"
if ! swclock 2> /dev/null; then
swclock --warn @PREFIX@/sbin/runscript
swclock --warn @SBINDIR@/runscript
fi
eend $?
}

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -5,7 +5,7 @@
depend()
{
before bootmisc logger
keyword -lxc -prefix -vserver
keyword -lxc -vserver
}
start()
@@ -15,6 +15,14 @@ start()
ebegin "Configuring kernel parameters"
eindent
# default sysctl System V max shared memory to 1/4 of RAM:
mem_bytes=`awk '/MemTotal:/ { printf "%0.f",$2 * 1024}' /proc/meminfo`
mem_max=`expr $mem_bytes / 4`
page_size=`getconf PAGE_SIZE`
shmall=`expr $mem_bytes / $page_size`
sysctl kernel.shmmax=$mem_max > /dev/null
sysctl kernel.shmall=$shmall > /dev/null
for conf in @SYSCONFDIR@/sysctl.conf @SYSCONFDIR@/sysctl.d/*.conf; do
if [ -r "$conf" ]; then
vebegin "applying $conf"

View File

@@ -1,9 +1,11 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Mount the sys filesystem."
sysfs_opts=nodev,noexec,nosuid
depend()
{
keyword -lxc -prefix -vserver
@@ -23,7 +25,7 @@ mount_sys()
ebegin "Mounting /sys"
if ! fstabinfo --mount /sys; then
mount -n -t sysfs -o noexec,nosuid,nodev sysfs /sys
mount -n -t sysfs -o ${sysfs_opts} sysfs /sys
fi
eend $?
}
@@ -35,7 +37,7 @@ mount_misc()
! mountinfo -q /sys/kernel/security; then
if grep -qs securityfs /proc/filesystems; then
ebegin "Mounting security filesystem"
mount -n -t securityfs -o nodev,noexec,nosuid \
mount -n -t securityfs -o ${sysfs_opts} \
securityfs /sys/kernel/security
eend $?
fi
@@ -45,8 +47,7 @@ mount_misc()
if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug; then
if grep -qs debugfs /proc/filesystems; then
ebegin "Mounting debug filesystem"
mount -n -t debugfs -o nodev,noexec,nosuid \
debugfs /sys/kernel/debug
mount -n -t debugfs -o ${sysfs_opts} debugfs /sys/kernel/debug
eend $?
fi
fi
@@ -55,8 +56,7 @@ mount_misc()
if [ -d /sys/kernel/config ] && ! mountinfo -q /sys/kernel/config; then
if grep -qs configfs /proc/filesystems; then
ebegin "Mounting config filesystem"
mount -n -t configfs -o nodev,noexec,nosuid \
configfs /sys/kernel/config
mount -n -t configfs -o ${sysfs_opts} configfs /sys/kernel/config
eend $?
fi
fi
@@ -65,11 +65,36 @@ mount_misc()
if [ -d /sys/fs/cgroup ] && ! mountinfo -q /sys/fs/cgroup; then
if grep -qs cgroup /proc/filesystems; then
ebegin "Mounting cgroup filesystem"
local opts="nodev,noexec,nosuid,mode=755,size=${rc_cgroupsize:-10m}"
local opts="${sysfs_opts},mode=755,size=${rc_cgroupsize:-10m}"
mount -n -t tmpfs -o ${opts} cgroup_root /sys/fs/cgroup
eend $?
fi
fi
# set up kernel support for fusectl
if [ -d /sys/fs/fuse/connections ] \
&& ! mountinfo -q /sys/fs/fuse/connections; then
if grep -qs fusectl /proc/filesystems; then
ebegin "Mounting fuse control filesystem"
mount -n -t fusectl -o ${sysfs_opts} \
fusectl /sys/fs/fuse/connections
eend $?
fi
fi
# setup up kernel support for efivarfs
# slightly complicated, as if it's build as a module but NOT yet loaded,
# it will NOT appear in /proc/filesystems yet
if [ -d /sys/firmware/efi/efivars ] \
&& ! mountinfo -q /sys/firmware/efi/efivars; then
modprobe -q efivarfs
if grep -qs efivarfs /proc/filesystems; then
ebegin "Mounting efivarfs filesystem"
mount -n -t efivarfs -o ${sysfs_opts} \
efivarfs /sys/firmware/efi/efivars
eend $?
fi
fi
}
mount_cgroups()
@@ -79,7 +104,7 @@ mount_cgroups()
local agent="@LIBEXECDIR@/sh/cgroup-release-agent.sh"
mkdir /sys/fs/cgroup/openrc
mount -n -t cgroup \
-o none,nodev,noexec,nosuid,name=openrc,release_agent="$agent" \
-o none,${sysfs_opts},name=openrc,release_agent="$agent" \
openrc /sys/fs/cgroup/openrc
echo 1 > /sys/fs/cgroup/openrc/notify_on_release
@@ -87,7 +112,7 @@ mount_cgroups()
while read name hier groups enabled rest; do
case "${enabled}" in
1) mkdir /sys/fs/cgroup/${name}
mount -n -t cgroup -o nodev,noexec,nosuid,${name} \
mount -n -t cgroup -o ${sysfs_opts},${name} \
${name} /sys/fs/cgroup/${name}
;;
esac

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2008-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

21
init.d/tmpfiles.dev.in Normal file
View File

@@ -0,0 +1,21 @@
#!@SBINDIR@/runscript
# Copyright 1999-2012 Gentoo Foundation
# Released under the 2-clause BSD license.
description="set up tmpfiles.d entries"
depend()
{
use dev-mount
before dev
keyword -prefix -vserver
}
start()
{
ebegin "setting up tmpfiles.d entries for /dev"
@LIBEXECDIR@/sh/tmpfiles.sh --prefix=/dev --create --remove \
${tmpfiles_opts}
eend $?
return 0
}

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright 1999-2012 Gentoo Foundation
# Released under the 2-clause BSD license.
@@ -12,7 +12,8 @@ depend()
start()
{
ebegin "setting up tmpfiles.d entries"
@LIBEXECDIR@/sh/tmpfiles.sh --create --remove ${tmpfiles_opts}
@LIBEXECDIR@/sh/tmpfiles.sh --exclude-prefix=/dev --create --remove \
${tmpfiles_opts}
eend $?
return 0
}

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -1,4 +1,4 @@
#!@PREFIX@/sbin/runscript
#!@SBINDIR@/runscript
# Copyright (c) 2008-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.

View File

@@ -7,3 +7,8 @@ executable and it has a .stop extension, it will be run when the local
service is stopped.
All files are processed in lexical order.
Keep in mind that files in this directory are processed sequencially,
and the local service is not considered started or stopped until
everything is processed, so if you have a process which takes a long
time to run, it can delay your boot or shutdown processing.

View File

@@ -2,7 +2,7 @@ MAN3= einfo.3 \
rc_config.3 rc_deptree.3 rc_find_pids.3 rc_plugin_hook.3 \
rc_runlevel.3 rc_service.3 rc_stringlist.3
MAN8= rc-service.8 rc-status.8 rc-update.8 rc.8 runscript.8 \
start-stop-daemon.8
service.8 start-stop-daemon.8
# Handy macro to create symlinks
# This does rely on correctly formatting our manpages!

View File

@@ -29,16 +29,17 @@
.Nd stops and starts services for the specified runlevel
.Sh SYNOPSIS
.Nm
.Op Fl n , -no-stop
.Op Fl o , -override
.Op Ar runlevel
.Sh DESCRIPTION
.Nm
first stops any services that are not for the runlevel and then starts any
services in the runlevel and from stacked runlevels added by
first stops any services that are not in the specified runlevel unless
--no-stop is specified, then starts any services in the runlevel and
stacked runlevels added by
.Nm rc-update
that are not currently started.
If no runlevel is specified then we use the current runlevel the system
is currently in.
If no runlevel is specified, we use the current runlevel.
.Pp
There are some special runlevels that you should be aware of:
.Bl -tag -width "shutdown"

View File

@@ -60,7 +60,10 @@ First we ensure that any services that depend on us are stopped. If any
services that need us fail to stop then we exit with a suitable error,
otherwise call the supplied stop function if it exists.
.It Ar restart
Stop and start the service, including dependencies.
Stop and start the service, including dependencies. This cannot be
overridden. See the description of the RC_CMD variable below for the
method to make your service behave differently when restart is being
executed.
.It Ar status
Show the status of the service. The return code matches the status, with the
exception of "started" returning 0 to match standard command behaviour.
@@ -153,6 +156,9 @@ The service will start after these services and stop before these services.
The service will start before these services and stop after these services.
.It Ic provide
We provide this virtual service. For example, named provides dns.
Virtual services take precedence over real services, so it is highly
recommended that you do not have a real service that has the same name
as a virtual service.
.It Ic config
We should recalculate our dependencies if the listed files have changed.
.It Ic keyword
@@ -359,7 +365,8 @@ offset. Otherwise it is undefined.
The result of `uname -s`.
.It Va RC_CMD
This contains the name of the command the service script is executing, such
as start, stop, restart etc.
as start, stop, restart etc. One example of using this is to make a
service script behave differently when restart is being executed.
.El
.Sh FILES
.Pp

1
man/service.8 Normal file
View File

@@ -0,0 +1 @@
.so rc-service.8

1
mk/net.mk Normal file
View File

@@ -0,0 +1 @@
MKNET?= no

6
mk/os-DragonFly.mk Normal file
View File

@@ -0,0 +1,6 @@
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
# Generic definitions
include ${MK}/os-BSD.mk

9
mk/os-GNU-kFreeBSD.mk Normal file
View File

@@ -0,0 +1,9 @@
# Copyright (c) 2008 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
# Generic definitions
CPPFLAGS+= -D_BSD_SOURCE -D_XOPEN_SOURCE=700
LIBDL= -Wl,-Bdynamic -ldl
LIBKVM?=
include ${MK}/os-BSD.mk

View File

@@ -3,7 +3,7 @@
# Generic definitions
_OS_SH= uname -s
_OS_SH= uname -s | tr '/' '-'
_OS:= $(shell ${_OS_SH})
OS?= ${_OS}
include ${MK}/os-${OS}.mk

View File

@@ -12,7 +12,7 @@ _PKG_SED:= $(shell ${_PKG_SED_SH})
_LCL_SED_SH= if test "${PREFIX}" = "${LOCAL_PREFIX}"; then echo "-e 's:@LOCAL_PREFIX@::g'"; else echo "-e 's:@LOCAL_PREFIX@:${LOCAL_PREFIX}:g'"; fi
_LCL_SED:= $(shell ${_LCL_SED_SH})
SED_REPLACE= -e 's:@SHELL@:${SH}:g' -e 's:@LIB@:${LIBNAME}:g' -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g' -e 's:@PREFIX@:${PREFIX}:g' ${_PKG_SED} ${_LCL_SED}
SED_REPLACE= -e 's:@SHELL@:${SH}:g' -e 's:@LIB@:${LIBNAME}:g' -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g' -e 's:@PREFIX@:${PREFIX}:g' -e 's:@BINDIR@:${BINDIR}:g' -e 's:@SBINDIR@:${SBINDIR}:g' ${_PKG_SED} ${_LCL_SED}
# Tweak our shell scripts
%.sh: %.sh.in

View File

@@ -29,9 +29,12 @@ CONFDIR?= ${SYSCONFDIR}/conf.d
LOCALDIR?= ${SYSCONFDIR}/local.d
SYSCTLDIR?= ${SYSCONFDIR}/sysctl.d
BINDIR?= ${PREFIX}/sbin
BINDIR?= ${PREFIX}/bin
BINMODE?= 0755
SBINDIR?= ${PREFIX}/sbin
SBINMODE?= 0755
INCDIR?= ${UPREFIX}/include
INCMODE?= 0444

Some files were not shown because too many files have changed in this diff Show More