Compare commits

..

27 Commits

Author SHA1 Message Date
William Hubbs
eedafe0f1a version 0.43.5 2021-08-20 11:33:49 -05:00
William Hubbs
7f634589f1 update ChangeLog 2021-08-20 11:33:16 -05:00
Matt Whitlock
291cddb72b supervise-daemon: implement SSD_IONICELEVEL
supervise-daemon was apparently overlooked when support for the
SSD_IONICELEVEL environment variable was added. This commit brings
supervise-daemon up to parity with start-stop-daemon with respect to
this environment variable.
2021-08-20 11:28:08 -05:00
William Hubbs
002e25a74a update ChangeLog 2021-08-15 14:20:08 -05:00
William Hubbs
2ac620cf53 update travis ci irc notifications
- move to libera network
- always notify on successful build
2021-08-14 15:11:42 -05:00
William Hubbs
e9fb5f81cc man/supervise-daemon.8: document --pidfile option 2021-08-13 23:09:23 -05:00
Sven Wegener
67dfdec43f on_ac_power: support multiple power_supply devices in sysfs
Newer devices have multiple power_supply devices in sysfs:

$ grep ^ /sys/class/power_supply/*/type
/sys/class/power_supply/AC/type:Mains
/sys/class/power_supply/BAT0/type:Battery
/sys/class/power_supply/ucsi-source-psy-USBC000:001/type:USB
/sys/class/power_supply/ucsi-source-psy-USBC000:002/type:USB

There are two "USB" Type-C ports than can supply power and both are
aggregated into the "Mains" power supply by the firmware. The "Battery"
also counts as a power supply, but is missing the online attribute.

The -f check with a wildcard pattern results in an error, when multiple
devices are present:

/lib/rc/bin/on_ac_power: line 21: [: too many arguments

When the power_supply class is registered, check for a "Mains" device.

Fixes #427.
2021-08-13 15:06:51 -05:00
Alex Xu
fa88750060 conf.d/hostname: clarify hostname variable usage
https://gitlab.alpinelinux.org/alpine/aports/-/issues/9744

This fixes #433.
2021-08-13 15:06:51 -05:00
William Hubbs
223550f676 Revert "openrc-init: ignore an empty string in argv[1]"
This reverts commit 7a15323822.
    This check is no longer needed since rc_runlevel_exists() is fixed.

        X-Gentoo-Bug: 803536
        X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536
        Closes: https://github.com/OpenRC/openrc/pull/431
2021-08-13 11:37:12 -05:00
William Hubbs
d6295768ea librc: fix rc_runlevel_exists return for empty string
This function should return false if the runlevel is an empty string.

    X-Gentoo-Bug: 803536
    X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536
    Closes: https://github.com/OpenRC/openrc/pull/431
2021-08-13 11:35:21 -05:00
Mike Gilbert
7a15323822 openrc-init: ignore an empty string in argv[1]
X-Gentoo-Bug: 803536
X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536
Closes: https://github.com/OpenRC/openrc/pull/431
2021-08-12 15:22:24 -05:00
William Hubbs
edb07278af sh/rc-cgroup.sh: fix case in starting message
X-Gentoo-Bug: 804193
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=804193
2021-08-12 15:22:24 -05:00
William Hubbs
d07d896aa8 sh/rc-cgroup.sh: fix cgroup_cleanup
X-Gentoo-Bug: 804193
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=804193
2021-08-12 15:22:24 -05:00
William Hubbs
80955a691b version 0.43.4 2021-06-02 10:29:49 -05:00
William Hubbs
2413f487e2 update ChangeLog 2021-06-02 10:26:12 -05:00
William Hubbs
32a8a202d0 move the irc channel to the libera network 2021-06-01 17:17:18 -05:00
Lars Wendler
803ed1badd init.d/modules.in: Avoid loading modules twice in Linux with dash shell
Since commit 6b475ab269, openrc tries to load
modules twice which have been defined in /etc/conf.d/modules via modules=
variable when /bin/sh points to dash shell.
The reason is that when the "modules-load" service was merged into "modules"
service, the "modules" variable name got used in both, load_modules()
function and in Linux_modules() function which both get called when modules
service is started. Although "modules" variable is marked as local in
load_modules(), dash simply ignores this.

Avoid the issue by renaming "modules" variable to "_modules" in
load_modules() function.

This fixes #419.
2021-06-01 17:17:18 -05:00
William Hubbs
8a6f9d943b README: convert references to markdown links 2021-06-01 17:17:18 -05:00
William Hubbs
ee8c0c1cc1 version 0.43.3 2021-04-15 21:12:06 -05:00
William Hubbs
f61e44d110 update ChangeLog 2021-04-15 21:11:12 -05:00
William Hubbs
55ceac775c checkpath: fix code to walk the directory path
X-Gentoo-Bug: 782808
X-Gentoo-Bug-URL: https://bugs.gentoo.org/782808
2021-04-15 21:09:46 -05:00
William Hubbs
7b07c55c86 version 0.43.2 2021-04-13 17:34:50 -05:00
William Hubbs
793673df3c update ChangeLog 2021-04-13 17:32:26 -05:00
William Hubbs
6219d87071 checkpath: remove extra slashes from paths
This fixes #418.
2021-04-13 17:25:23 -05:00
William Hubbs
72b5c74290 version 0.43.1 2021-04-04 22:09:32 -05:00
William Hubbs
aad77d0267 update ChangeLog 2021-04-04 22:07:49 -05:00
William Hubbs
99565e359f cgroup2_set_limits: fix harmless error message
In legacy cgroups mode, we were running `mountinfo -q ""` which was
generating an error message. If we return immediately when
cgroup2_find_path returns an empty value, we avoid this message.
2021-04-04 22:05:09 -05:00
46 changed files with 99 additions and 1635 deletions

389
ChangeLog
View File

@@ -1,263 +1,6 @@
commit c300c180a2a7dbefb46272c2acac6462372b8eb0
Author: Natanael Copa <ncopa@alpinelinux.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
hide error when migrating /var/run to /run
The script tries to copy non-existing files. We simply hide the error
http://bugs.alpinelinux.org/issues/3160
This fixes #451.
commit be8d2ee6e35a6ea504e6a3cf725b8804dd2da617
Author: Natanael Copa <ncopa@alpinelinux.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
force root to be rw before localmount
The original service that pulled in root remount was mtab which
is not part of OpenRC.
This fixes #449.
commit d9ef1bb6355c62e335a972f203806210de68912f
Author: Aaditya Bagga <aaditya_gnulinux@zoho.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
[runit integration] give a bit of time to start the service
Currently, we run sv start immediately after linking the service.
The runsv process may not be up at the moment, as a result of which
openrc will mark the service as stopped, even though it may be brought up
by runit at the next scan.
This is documented in the gentoo wiki:
https://wiki.gentoo.org/wiki/Runit#OpenRC.27s_runit_integration_feature
This PR adds a timeout so that correct process state can be reported.
Before:
* Starting netdata-runit ...
fail: /run/openrc/sv/netdata: runsv not running
* Failed to start netdata-runit
After:
* Starting netdata-runit ...
fail: /run/openrc/sv/netdata: runsv not running
ok: run: /run/openrc/sv/netdata: (pid 9042) 0s
This fixes #253.
commit cfc699121960a8298c8e9519239c149f31a35ef0
Author: Jakub Jirutka <jakub@jirutka.cz>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Fix undeclared UT_LINESIZE
Fix the following error:
broadcast.c:41:21: error: '__UT_LINESIZE' undeclared (first use in this function); did you mean 'UT_LINESIZE'?
#define UT_LINESIZE __UT_LINESIZE
^~~~~~~~~~
Constant UT_LINESIZE is defined in <utmp.h> provided by musl.
commit 97ae5af2017df2667e0c79d7dac3706b3a93c6cc
Author: Sören Tempel <soeren+git@soeren-tempel.net>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rc-mount: make timeout invocation compatible with busybox timeout
Busybox timeout does not support the `-k` flag. As such, invoking fuser
from do_unmount never worked without this patch. This went unnoticed as
standard error is redirected to /dev/null. This patch fixes this by
simply removing the incompatible `-k` flag.
[Ariadne: the `-k` is redundant anyway, since we are sending the KILL
signal to begin with.]
commit 4c820a0e48301f997911a196d6159670dad68296
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.44.3
commit 9c39b381a5185325dc1359b6001f00e60732ec71
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 321bb2cd90cf673d03175c56bf1cecfcef02bd49
Author: Ariadne Conill <ariadne@dereferenced.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix build under musl 1.2 on 32 bit systems
Since musl 1.2 time_t is a 64 bit value, even on 32 bit systems. A
hotfix for printing the value is simply using PRIu64 from inttypes.h
in the format string.
This fixes #446.
commit 8c99d817d48bc879504b8973d868e1718f4e7d12
Author: Ariadne Conill <ariadne@dereferenced.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix trailing whitespace in tools/meson_runlevels.sh
commit 2e1fb4d02b1ad294394107642aed07f057e6a8b9
Author: artoo <artoo@artixlinux.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
meson: fix symlinks with sysvinit
commit a2f0afb8bcb024c8d532d8be8b855d72f999aab8
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.44.2
commit 430fa132f2596de126f8461f361333c89b794945
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 12cd7ce9dea73926c203c5d64e425d51e209425a
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: install pam files
commit 167acac1407782d454be2cc413431c00498e94ed
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
meson: typo fix
commit f839ba27c5e52990ca9c6431bba4455a1124f81d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.44.1
commit 80dd6aac5fcb1f17b86d35db2babe487b90d7081
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 0d00b8d8abe33c4d824446ed989e8cc3166590b4
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: fix sysvinit script installation
commit 551bdff2fbe61452187d5d492377b876e868a9fb
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: fix symlinks
commit 803aa1c637c42352c05a520dbb02bee6c03ccf75
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.44
commit fb186a38673201a7a25d6a7c1516fcb734020ee1
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit c9b64b64fa9b2d2ee31684e8d35375f4c5bddba1
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update README
commit 9cce9f8ce8d2624ac5fa1cf12d0b4b00de5bcde2
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
news typo fix
commit 5a41f1ef201def94392f06d3b294e5e0c2c8432f
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
add discussion about removing old build system to NEWS
commit 6e3afc29f3005bca7c86e3faa7b8b2d9ede08efb
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update NEWS
commit 7c29fbd36f87426b78fe4baa6eb1a68661fc1374
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: install bash and zsh completions
commit 593be166d16e371837d85ff4e963cf8c71b569c7
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: fix libexecdir
commit ca0270967c880ef87dbaea04c267c5c463377b2e
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
tools/meson_final.sh: typo fix
commit 3a187f88f47517b1fb0ee1247c79ab06899928f6
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: typo fix
commit f2362cc277023550b2482215b4a1cd7142639427
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: add split-usr option
commit 444e44eb9da303c6614034a3558daceca15e0315
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: change root_prefix to rootprefix
commit c0f8313164fb60fcf41313b273b21f3079e93c1e
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
sync meson build version with makefiles
commit d6622a1156929294b909d08273fd227c7d817bb9
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
add meson build files
Closes #116.
Closes #171.
Closes #172.
Closes #175.
commit 92004a2ed65045b7ca79063dda8fc5b4ac761606
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
README: add note about github discussions
commit 5f6d7ac028b4e3c208a74465c54f235d5bf34a93
commit 291cddb72b1e00c0708e2b4c2278f9fbd0db007e
Author: Matt Whitlock <gentoo@mattwhitlock.name>
Commit: Mike Frysinger <vapier@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
supervise-daemon: implement SSD_IONICELEVEL
@@ -266,7 +9,13 @@ Commit: Mike Frysinger <vapier@gmail.com>
supervise-daemon up to parity with start-stop-daemon with respect to
this environment variable.
commit 7cedc4942b8e52d9bab6f4aa7bb595c53aa6fdb1
commit 002e25a74ac8eff31f9aa804fbda77b97f2ef944
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 2ac620cf53fbbd201927055b771d59f16086ddc4
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -275,13 +24,13 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
- move to libera network
- always notify on successful build
commit 091cd8015f25d283760c39dcb9bd7e9d56eef7c4
commit e9fb5f81cc862001bcc10a4ce0f18a7cd6cd6df3
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
man/supervise-daemon.8: document --pidfile option
commit 63955056ecb98faa1a02d90d5a4742515f0299c8
commit 67dfdec43ffe9160f4d63394c6334fc10c6992c8
Author: Sven Wegener <sven.wegener@stealer.net>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -308,7 +57,7 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
Fixes #427.
commit 1e975be89670f53db47aeef3dbb3361166517c26
commit fa88750060effe4a23a14d7e70517e475fd11b39
Author: Alex Xu <351006+Hello71@users.noreply.github.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -318,31 +67,20 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
This fixes #433.
commit 18e53f7fed1a92dd6dc91e79ab620d22fee1e195
Author: kyoreln <57618278+kyoreln@users.noreply.github.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
move supervise-daemon out of experimental status
supervise-daemon is no longer experimental so remove the statements to
that affect.
This fixes #434.
commit b5e4c2c2db3d32dcc70426e058132c52e32603f1
commit 223550f6765a89254f978c2007612e5be7d308a6
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
Revert "openrc-init: ignore an empty string in argv[1]"
This reverts commit dec9ef200b0d7e96993e2725792a9e7abe9c5f1f.
This check is no longer needed since rc_runlevel_exists() is fixed.
This reverts commit 7a1532382284d9d3d0f1e31d89ff1ca0d3199cb5.
This check is no longer needed since rc_runlevel_exists() is fixed.
X-Gentoo-Bug: 803536
X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536
Closes: https://github.com/OpenRC/openrc/pull/431
X-Gentoo-Bug: 803536
X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536
Closes: https://github.com/OpenRC/openrc/pull/431
commit 0a97bad6c9ba77285477aef8713e088eea4ab106
commit d6295768eaa886d7cf296e5d7f94711ec1f08038
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -354,7 +92,7 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536
Closes: https://github.com/OpenRC/openrc/pull/431
commit dec9ef200b0d7e96993e2725792a9e7abe9c5f1f
commit 7a1532382284d9d3d0f1e31d89ff1ca0d3199cb5
Author: Mike Gilbert <floppym@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -364,7 +102,7 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
X-Gentoo-Bug-URL: https://bugs.gentoo.org/803536
Closes: https://github.com/OpenRC/openrc/pull/431
commit 7f47539fb1992fa4f1c9ae7d039d21404d2eae71
commit edb07278af2f5e05873da99d4a80bfbb6f08812b
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -373,7 +111,7 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
X-Gentoo-Bug: 804193
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=804193
commit 9c7bedca9e0a51343058b9e44ed8e3b5b9d337be
commit d07d896aa82a789c558876ee3257b785df1e7946
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -382,13 +120,25 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
X-Gentoo-Bug: 804193
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=804193
commit 1d282ddc80b2dcd9adbff7d662822fcd7e0c10e5
commit 80955a691bfb151b92d04c12b5d138bafdedf532
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.43.4
commit 2413f487e2d556a657bca8c873828873c650f995
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 32a8a202d0728e3e550050069da3e27de2d98d7f
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
move the irc channel to the libera network
commit 0d86c4903bdc68d2d4704ab6c2d4fc8f2c054276
commit 803ed1badddb3edfc78f4346d8d059253a334cd9
Author: Lars Wendler <polynomial-c@gentoo.org>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -408,7 +158,25 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
This fixes #419.
commit 791322d7fa9d5bbceed558258baeff51a39787c5
commit 8a6f9d943bf7256630a37ea9e3a8421e079f05b9
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
README: convert references to markdown links
commit ee8c0c1cc1edb4959845e5bc487ce6e83ad9f2b3
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.43.3
commit f61e44d110d3ceb96c06bf7dbdd07b8ab85166e3
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 55ceac775c388191090fe37aef489d721ee9299d
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -417,7 +185,19 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
X-Gentoo-Bug: 782808
X-Gentoo-Bug-URL: https://bugs.gentoo.org/782808
commit 63db2d99e730547339d1bdd28e8437999c380cae
commit 7b07c55c86cf356a832fe2975c9f8e164bcb2b7b
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.43.2
commit 793673df3ca3ad8692e135bd5c77b21bae3ebbe2
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 6219d87071d07acf4d6b3e99ec58134acf129d8e
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -425,13 +205,19 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
This fixes #418.
commit 8400e7d3025a2957960e3f4ee3cb37a376235886
commit 72b5c7429011e0d20c450fe06dc4b645e36eecb0
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
style fix
version 0.43.1
commit 533a8c70b3b757d2ca06de7392805ab5d1698a53
commit aad77d0267426edef6a568e26c9bae11c2367db4
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit 99565e359f3081e053573d10756e1a756c56342b
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
@@ -441,27 +227,6 @@ Commit: William Hubbs <w.d.hubbs@gmail.com>
generating an error message. If we return immediately when
cgroup2_find_path returns an empty value, we avoid this message.
commit 852a3c86f66829864d5c0b7d0bd88841ac6b23a8
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
NEWNET.md: fix the title
commit b3e8072403759d6cf0d89acc41443ea9ab6bd908
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
rename README.newnet to a markdown file
All of our documentation is in markdown, so rename this file to be
consistent.
commit b7c03dea27bc0a4474702f2c7fedd753c560ae2e
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
README: convert references to markdown links
commit ee05403c501b5f0c0a955b1f8d67b2d88f0ede7a
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.44.4
VERSION= 0.43.5
PKG= ${NAME}-${VERSION}

11
NEWS.md
View File

@@ -4,20 +4,11 @@ OpenRC NEWS
This file will contain a list of notable changes for each release. Note
the information in this file is in reverse order.
## OpenRC 0.44
This version is the first to use a meson-based build system.
The gnu make build system should now be considered deprecated; it will
be removed sometime after 0.44.x.
I have opened a [discussion](https://github.com/OpenRC/openrc/discussions/441)
where you can voice concerns about removing it.
## OpenRC 0.43
This version changes the behavior of the checkpath helper to address
CVE-2018-21269. on Linux systems, We require non-terminal symbolic links
to be owned by root. Since we can't do this on non-linux systems, we do
to be owned by root. Since we can't do this on non-linux xystems, we do
not dereference non-terminal symbolic links by default. If you need them
dereferenced, you should add the "-s" switch to the appropriate
checkpath calls.

View File

@@ -4,16 +4,7 @@ OpenRC README
OpenRC is a dependency-based init system that works with the
system-provided init program, normally `/sbin/init`.
## building and installing
OpenRC uses the [meson](http://mesonbuild.com) build system, so use the
usual methods for this build system to build and install.
The old build system is still available for the 0.44.x branch, but it is
considered deprecated and will be removed. The previous documentation is
below.
## Installation (historical)
## Installation
OpenRC requires GNU make.
@@ -22,7 +13,7 @@ executed using this command:
`make install`
## Configuration (historical)
## Configuration
You may wish to configure the installation by passing one or more of the
below arguments to the make command
@@ -53,11 +44,9 @@ SH=/bin/sh
We don't support building a static OpenRC with PAM.
You may need to use `PROGLDFLAGS=-Wl,-Bstatic` on glibc instead of just `-static`
(This is now handled by the meson build system).
You may need to use `PROGLDFLAGS=-Wl,-Bstatic` on glibc instead of just `-static`.
If you are building OpenRC for a Gentoo Prefix installation, add `MKPREFIX=yes`
(this is not supported in the meson build currently, but patches are welcome).
If you are building OpenRC for a Gentoo Prefix installation, add `MKPREFIX=yes`.
`PKG_PREFIX` should be set to where packages install to by default.
@@ -87,11 +76,6 @@ Obviously, if you're installing this onto a system that does not use
OpenRC by default then you may wish to backup the above listed files,
remove them and then install so that the OS hooks into OpenRC.
## Discussions
We are testing [discussions](https://github.com/OpenRC/openrc/discussions), so
feel free to open topics there.
## Reporting Bugs
Please report bugs on our [bug tracker](http://github.com/OpenRC/openrc/issues).

View File

@@ -1,5 +1,5 @@
OpenRC Network Ideals
=====================
---------------------
The new style networking for OpenRC is very simplistic - provide a basic means
of configuring static interface address and routes whilst allowing the

View File

@@ -1,10 +0,0 @@
bash_completions = [
'openrc',
'openrc-service-script',
'rc-service',
'rc-status',
'rc-update',
]
install_data(bash_completions,
install_dir : get_option('datadir') / 'bash-completion/completions')

View File

@@ -1,59 +0,0 @@
conf_d_dir = get_option('sysconfdir') / 'conf.d'
conf_common = [
'bootmisc',
'fsck',
'hostname',
'localmount',
'netmount',
'swap',
'urandom',
]
conf_net = [
'network',
'staticroute',
]
conf_FreeBSD = [
'ipfw',
'modules',
'moused',
'powerd',
'rarpd',
'savecore',
'syscons',
]
conf_Linux = [
'agetty',
'consolefont',
'devfs',
'dmesg',
'hwclock',
'keymaps',
'killprocs',
'modules',
'mtab',
'net-online',
]
conf_NetBSD = [
'moused',
'rarpd',
'savecore',
]
conf_data = conf_common
if get_option('newnet')
conf_data = conf_data + conf_net
endif
if os == 'FreeBSD'
conf_data = conf_data + conf_FreeBSD
elif os == 'Linux'
conf_data = conf_data + conf_Linux
elif os == 'NetBSD'
conf_data = conf_data + conf_NetBSD
endif
install_data(conf_data, install_dir : conf_d_dir)

View File

@@ -1,44 +0,0 @@
etc_conf_data = configuration_data()
if os == 'FreeBSD'
etc_conf_data.set('TERM', 'cons25')
elif os == 'Linux'
etc_conf_data.set('TERM', 'wsvt25')
endif
etc_conf_common = [
'rc.conf',
]
etc_bin_FreeBSD = [
'rc.devd',
]
etc_conf_FreeBSD = [
'devd.conf',
]
etc_bin_NetBSD = [
'rc.in',
'rc.shutdown.in',
]
install_data(etc_conf_common,
install_dir : get_option('sysconfdir'))
if os == 'FreeBSD'
install_data(etc_bin_FreeBSD,
install_dir : get_option('sysconfdir'),
install_mode: 'rwxr-xr-x')
install_data(etc_conf_FreeBSD,
install_dir : get_option('sysconfdir'))
endif
if os == 'FreeBSD' or os == 'NetBSD'
foreach file : etc_bin_NetBSD
configure_file(input : file,
output : '@BASENAME@',
configuration : etc_conf_data,
install_dir: get_option('sysconfdir'),
install_mode: 'rwxr-xr-x')
endforeach
endif

View File

@@ -113,10 +113,8 @@ migrate_to_run()
rm $src
elif [ ! -L $src -a -d $src ]; then
ebegin "Migrating $src to $dst"
if ! rmdir $src 2>/dev/null; then
cp -a $src/* $dst/
rm -rf $src
fi
cp -a $src/* $dst/
rm -rf $src
eend $?
fi
# If $src doesn't exist at all, just run this

View File

@@ -13,9 +13,9 @@ description="Mounts disks and swap according to /etc/fstab."
depend()
{
need fsck root
use lvm modules
after clock lvm modules
need fsck
use lvm modules root
after clock lvm modules root
keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver
}

View File

@@ -1,100 +0,0 @@
init_d_dir = get_option('sysconfdir') / 'init.d'
init_common = [
'bootmisc.in',
'fsck.in',
'hostname.in',
'local.in',
'localmount.in',
'loopback.in',
'netmount.in',
'osclock.in',
'root.in',
'savecache.in',
'swap.in',
'swclock.in',
'sysctl.in',
'runsvdir.in',
'urandom.in',
's6-svscan.in',
]
if get_option('newnet')
init_common = init_common + [
'network.in',
'staticroute.in',
]
endif
init_Linux = [
'agetty.in',
'binfmt.in',
'cgroups.in',
'consolefont.in',
'devfs.in',
'dmesg.in',
'hwclock.in',
'keymaps.in',
'killprocs.in',
'modules.in',
'mount-ro.in',
'mtab.in',
'numlock.in',
'procfs.in',
'net-online.in',
'save-keymaps.in',
'save-termencoding.in',
'sysfs.in',
'termencoding.in',
]
init_BSD = [
'hostid.in',
'moused.in',
'newsyslog.in',
'pf.in',
'rarpd.in',
'rc-enabled.in',
'rpcbind.in',
'savecore.in',
'syslogd.in',
]
init_FreeBSD = [
'adjkerntz.in',
'devd .in',
'dumpon.in',
'encswap.in',
'ipfw.in',
'modules.in',
'mixer.in',
'nscd.in',
'powerd.in',
'syscons.in',
]
init_NetBSD = [
'devdb.in',
'swap-blk.in',
'ttys.in',
'wscons.in',
]
init_data = init_common
if os == 'Dragonfly'
init_data = init_data + init_BSD
elif os == 'FreeBSD' or os == 'Gnu-kFreeBSD'
init_data = init_data + init_BSD + init_FreeBSD
elif os == 'Linux'
init_data = init_data + init_Linux
elif os == 'NetBSD'
init_data = init_data + init_BSD + init_NetBSD
endif
foreach init_d_file : init_data
configure_file(input : init_d_file,
output : '@BASENAME@',
configuration : init_d_conf_data,
install_dir: init_d_dir,
install_mode: 'rwxr-xr-x')
endforeach

View File

@@ -1,7 +0,0 @@
local_d_dir = get_option('sysconfdir') / 'local.d'
local_data = [
'README'
]
install_data(local_data, install_dir : local_d_dir)

View File

@@ -1,34 +0,0 @@
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 = [
'openrc.8',
'openrc-run.8',
'rc-service.8',
'rc-status.8',
'rc-update.8',
'start-stop-daemon.8',
'supervise-daemon.8',
]
if os == 'Linux'
man8 = man8 + [
'rc-sstat.8',
'openrc-init.8',
'openrc-shutdown.8',
]
endif
install_data(man3,
install_dir : get_option('mandir') / 'man3')
install_data(man8,
install_dir : get_option('mandir') / 'man8')
meson.add_install_script('meson_man_links.sh', get_option('mandir'), man3 + man8)

View File

@@ -1,20 +0,0 @@
#!/bin/sh
get_links() {
sed -e 's/ ,//g' \
-e '/^\.Sh NAME$/,/\.Sh/ s/\.Nm //p' \
-n ${MESON_SOURCE_ROOT}/man/${1}
}
MANDIR="$1"
shift
for man in $@; do
prefix=${man%%.*}
suffix=${man#*.}
links=$(get_links ${man})
for link in ${links}; do
if [ "${link}" != "${prefix}" ]; then
ln -sf ${man} ${MESON_INSTALL_DESTDIR_PREFIX}/${MANDIR}/man${suffix}/${link}.${suffix}
fi
done
done

View File

@@ -104,6 +104,8 @@ supervisor=s6.
or set
supervisor=supervise-daemon
to use supervise-daemon.
Note that supervise-daemon is still in early development, so it is
considered experimental.
.It Ar s6_service_path
The path to the s6 service directory if you are monitoring this service
with S6. The default is /var/svc.d/${RC_SVCNAME}.

View File

@@ -1,190 +0,0 @@
project('OpenRC', 'c',
version : '0.44.4',
license: 'BSD-2',
default_options : [
'c_std=c99',
'prefix=/usr',
'warning_level=3',
],
meson_version : '>=0.49.0')
cc = meson.get_compiler('c')
audit_dep = dependency('audit', required : get_option('audit'))
if audit_dep.found()
cc_audit_flags = '-DHAVE_AUDIT'
else
cc_audit_flags = []
endif
if get_option('branding') != ''
cc_branding_flags = '-DBRANDING=' + get_option('branding')
else
cc_branding_flags = []
endif
libname = get_option('libdir').split('/')[-1]
option_local_prefix = get_option('local_prefix')
if option_local_prefix == ''
local_prefix = get_option('prefix') / 'usr' / 'local'
else
local_prefix = option_local_prefix
endif
option_os = get_option('os')
if option_os == ''
uname = find_program('uname')
r = run_command(uname, '-s')
os = r.stdout().strip()
os = '-'.join(os.split('/'))
else
os = option_os
endif
pam = get_option('pam')
if pam
libpam = cc.find_library('pam')
libpam_misc = cc.find_library('pam_misc')
cc_pam_flags = '-DHAVE_PAM'
else
libpam = []
libpam_misc = []
cc_pam_flags = []
endif
option_pkg_prefix = get_option('pkg_prefix')
if option_pkg_prefix == ''
if os == 'Dragonfly' or os == 'FreeBSD'
pkg_prefix = '/usr/local'
elif os == 'GNU' or os == 'GNU-kFreeBSD' or os == 'Linux'
pkg_prefix = '/usr'
elif os == 'NetBSD'
pkg_prefix = '/usr/pkg'
endif
else
pkg_prefix = option_pkg_prefix
endif
if get_option('split-usr') == 'auto'
split_usr = run_command('test', '-L', '/bin').returncode() != 0
else
split_usr = get_option('split-usr') == 'true'
endif
rootprefix_default = split_usr ? '/' : '/usr'
rootprefix_path = get_option('rootprefix')
rootprefix = rootprefix_path != '' ? rootprefix_path : rootprefix_default
bindir = rootprefix / get_option('bindir')
libdir = rootprefix / get_option('libdir')
if os == 'Linux' and split_usr
libexecpath = 'lib'
else
libexecpath = get_option('libexecdir')
endif
libexecdir = split_usr ? rootprefix / libexecpath :
get_option('prefix') / libexecpath
rc_libexecdir = libexecdir / 'rc'
sbindir = rootprefix / get_option('sbindir')
selinux_dep = dependency('libselinux', required : get_option('selinux'))
if selinux_dep.found()
cc_selinux_flags = '-DHAVE_SELINUX'
else
cc_selinux_flags = []
endif
termcap = get_option('termcap')
if termcap != ''
termcap_dep = dependency(termcap)
termcap_flags = '-DHAVE_TERMCAP'
else
termcap_dep = []
termcap_flags = []
endif
if get_option('buildtype').startswith('debug')
cc_debug_flags = ['-DRC_DEBUG']
else
cc_debug_flags = []
endif
if os == 'Linux' or os == 'GNU-kFreeBSD'
cc_os_flags = ['-D_DEFAULT_SOURCE']
elif os == 'FreeBSD'
cc_os_flags = ['-D_BSD_SOURCE']
elif os == 'GNU'
cc_os_flags = ['-D_DEFAULT_SOURCE', '-DMAXPATHLEN=4096', '-DPATH_MAX=4096']
endif
# Try and use some good cc flags if we're building from git. We don't use
# -pedantic as it will warn about our perfectly valid use of %m in our logger.
# We should be using -Wredundant-decls, but our library hidden proto stuff gives
# loads of warnings. I don't fully understand it (the hidden proto, not the
# warning) so we just silence the warning.
cc_warning_flags_test = [
'-Wcast-align',
'-Wcast-qual',
'-Wdeclaration-after-statement',
'-Wformat=2',
'-Winline',
'-Wmissing-declarations',
'-Wmissing-format-attribute',
'-Wmissing-noreturn',
'-Wmissing-prototypes',
'-Wnested-externs',
'-Wpointer-arith',
'-Wsequence-point',
'-Wshadow',
'-Wwrite-strings',
'-Werror=implicit-function-declaration',
]
cc_warning_flags = cc.get_supported_arguments(cc_warning_flags_test)
cc_flags = [cc_debug_flags, cc_os_flags, cc_warning_flags]
add_project_arguments(cc_flags, language : 'c')
incdir = include_directories('src/includes')
einfo_incdir = include_directories('src/libeinfo')
rc_incdir = include_directories('src/librc')
init_d_conf_data = configuration_data()
init_d_conf_data.set('SBINDIR', sbindir)
init_d_conf_data.set('PKG_PREFIX', pkg_prefix)
init_d_conf_data.set('SYSCONFDIR', get_option('sysconfdir'))
dl_dep = cc.find_library('dl', required: false)
util_dep = cc.find_library('util', required: false)
if get_option('bash-completions')
subdir('bash-completion')
endif
subdir('conf.d')
subdir('etc')
subdir('init.d')
subdir('local.d')
subdir('man')
if get_option('pam')
subdir('pam')
endif
if get_option('pkgconfig')
subdir('pkgconfig')
endif
subdir('scripts')
subdir('sh')
subdir('src')
subdir('support')
subdir('sysctl.d')
if get_option('zsh-completions')
subdir('zsh-completion')
endif
meson.add_install_script('tools/meson_runlevels.sh',
os,
get_option('newnet') ? 'yes' : 'no',
rc_libexecdir,
get_option('sysconfdir'),
get_option('sysvinit') ? 'yes' : 'no')
meson.add_install_script('tools/meson_final.sh',
rc_libexecdir,
os)

View File

@@ -1,37 +0,0 @@
option('audit', type : 'feature', value : 'auto',
description : 'enable libaudit support')
option('bash-completions', type : 'boolean',
description : 'install bash completions')
option('branding', type : 'string',
description : 'Add branding to OpenRC')
option('local_prefix', type : 'string', value : '/usr/local',
description : 'default location of user maintained packages')
option('newnet', type : 'boolean',
description : 'build and install our networking scripts')
option('os', type : 'combo',
choices :
[ '', 'DragonFly', 'FreeBSD', 'GNU', 'GNU-kFreeBSD', 'Linux', 'NetBSD' ],
description : 'Operating System (autodetected if not specified)')
option('pam', type : 'boolean',
description : 'enable PAM support')
option('pkg_prefix', type : 'string',
description : 'default location where packages are installed')
option('pkgconfig', type : 'boolean',
description : 'build PKGConfig files')
option('rootprefix', type : 'string',
description : 'override the root prefix')
option('selinux', type : 'feature', value : 'auto',
description : 'enable SELinux support')
option('shell', type : 'string', value : '/bin/sh',
description : 'Default posix compatible shell')
option('split-usr', type : 'combo',
choices : ['auto', 'true', 'false'],
description : '''/bin, /sbin aren't symlinks into /usr''')
option('sysvinit', type : 'boolean', value : false,
description : 'enable SysVinit compatibility (linux only)')
option('termcap', type : 'combo',
choices :
[ '', 'ncurses', 'termcap' ],
description : 'the termcap library to use')
option('zsh-completions', type : 'boolean',
description : 'install zsh completions')

View File

@@ -1,9 +0,0 @@
pam_dir = get_option('sysconfdir') / 'pam.d'
pam_files = [
'start-stop-daemon',
'supervise-daemon',
]
install_data(pam_files,
install_dir : pam_dir)

View File

@@ -1,6 +0,0 @@
#%PAM-1.0
auth required pam_permit.so
account required pam_permit.so
password required pam_deny.so
session optional pam_limits.so

View File

@@ -1,6 +0,0 @@
#%PAM-1.0
auth required pam_permit.so
account required pam_permit.so
password required pam_deny.so
session optional pam_limits.so

View File

@@ -1,22 +0,0 @@
pkgconfig_dir = get_option('libdir') / 'pkgconfig'
pkgconfig_conf_data = configuration_data()
if rootprefix != '/'
pkgconfig_conf_data.set('PREFIX', rootprefix)
else
pkgconfig_conf_data.set('PREFIX', '')
endif
pkgconfig_conf_data.set('LIB', get_option('libdir'))
pkgconfig_conf_data.set('VERSION', meson.project_version())
pkgconfig_files = [
'einfo.pc.in',
'openrc.pc.in',
]
foreach file : pkgconfig_files
configure_file(input : file,
output : '@BASENAME@',
configuration : pkgconfig_conf_data,
install_dir : pkgconfig_dir)
endforeach

View File

@@ -1,45 +0,0 @@
script_conf_data = configuration_data()
script_conf_data.set('SBINDIR', sbindir)
script_dir = rc_libexecdir / 'bin'
scripts_internal = [
'on_ac_power',
]
scripts_Linux = [
'rc-sstat.in',
]
scripts_sysvinit = [
'halt.in',
'poweroff.in',
'shutdown.in',
'reboot.in',
]
install_data(scripts_internal,
install_dir : script_dir,
install_mode: 'rwxr-xr-x')
if os == 'Linux'
foreach file : scripts_Linux
configure_file(input : file,
output : '@BASENAME@',
configuration : script_conf_data,
install_dir: script_dir,
install_mode: 'rwxr-xr-x')
endforeach
if get_option('sysvinit')
foreach file : scripts_sysvinit
configure_file(input : file,
output : '@BASENAME@',
configuration : script_conf_data,
install_dir: script_dir,
install_mode: 'rwxr-xr-x')
endforeach
endif
endif
meson.add_install_script('meson_script_links.sh', rc_libexecdir,
sbindir)

View File

@@ -1,19 +0,0 @@
#!/bin/sh
set -e
set -u
rc_libexecdir="$1"
sbindir="$2"
binaries=" halt poweroff rc-sstat reboot shutdown"
for f in $binaries; do
if [ -x "${DESTDIR}${rc_libexecdir}/bin/${f}" ]; then
ln -snf "${rc_libexecdir}/bin/${f}" \
"${DESTDIR}${sbindir}/${f}"
fi
done
# sysvinit is active when halt exits
if [ -x "${DESTDIR}${rc_libexecdir}/bin/halt" ]; then
ln -snf "${sbindir}/openrc-init" \
"${DESTDIR}${sbindir}/init"
fi

View File

@@ -1,84 +0,0 @@
sh_conf_data = configuration_data()
if rootprefix == '/'
sh_conf_data.set('PREFIX', '')
else
sh_conf_data.set('PREFIX', rootprefix)
endif
sh_conf_data.set('BINDIR', bindir)
sh_conf_data.set('LIBEXECDIR', rc_libexecdir)
sh_conf_data.set('LOCAL_PREFIX', local_prefix)
sh_conf_data.set('PKG_PREFIX', pkg_prefix)
sh_conf_data.set('SBINDIR', sbindir)
sh_conf_data.set('SHELL', get_option('shell'))
sh_conf_data.set('SYSCONFDIR', get_option('sysconfdir'))
sh_dir = rc_libexecdir / 'sh'
sh = [
'rc-functions.sh',
'rc-mount.sh',
'runit.sh',
's6.sh',
'start-stop-daemon.sh',
'supervise-daemon.sh',
]
sh_config = [
'functions.sh.in',
]
scripts_config = [
'gendepends.sh.in',
'openrc-run.sh.in',
]
if os == 'Linux'
sh += [
'rc-cgroup.sh',
]
scripts_config += [
'binfmt.sh.in',
'cgroup-release-agent.sh.in',
]
scripts_config_os = [
['init-early.sh.Linux.in', 'init-early.sh'],
['init.sh.Linux.in', 'init.sh'],
]
elif os == 'GNU'
scripts_config_os = [
['init.sh.GNU.in', 'init.sh'],
]
elif os == 'Gnu-KFreeBSD'
scripts_config_os = [
['init.sh.GNU-kFreeBSD.in', 'init.sh'],
]
else
scripts_config_os = [
['init.sh.BSD.in', 'init.sh'],
]
endif
install_data(sh,
install_dir : sh_dir)
foreach file : sh_config
configure_file(input : file,
output : '@BASENAME@',
configuration : sh_conf_data,
install_dir : sh_dir)
endforeach
foreach file : scripts_config
configure_file(input : file,
output : '@BASENAME@',
configuration : sh_conf_data,
install_dir : sh_dir,
install_mode : 'rwxr-xr-x')
endforeach
foreach file : scripts_config_os
configure_file(input : file.get(0),
output : file.get(1),
configuration : sh_conf_data,
install_dir : sh_dir,
install_mode : 'rwxr-xr-x')
endforeach

View File

@@ -48,7 +48,7 @@ do_unmount()
retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1
while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do
if command -v fuser >/dev/null 2>&1; then
pids="$(timeout -s KILL "${rc_fuser_timeout:-60}" \
pids="$(timeout -k 10 -s KILL "${rc_fuser_timeout:-60}" \
fuser $f_opts "$mnt" 2>/dev/null)"
fi
case " $pids " in

View File

@@ -20,20 +20,8 @@ runit_start()
service_link="${RC_SVCDIR}/sv/${service_path##*/}"
ebegin "Starting ${name:-$RC_SVCNAME}"
ln -snf "${service_path}" "${service_link}"
local i=0 retval=1
# it can take upto 5 seconds for runsv to start
while [ $i -lt 6 ] ; do
if sv start "${service_link}" > /dev/null 2>&1; then
retval=0
break
fi
sleep 1 && i=$(expr $i + 1)
done
if [ $retval -eq 1 ]; then
# clean up the link else sv will keep on trying
rm "${service_link}"
fi
eend $retval "Failed to start ${name:-$RC_SVCNAME}"
sv start "${service_link}" > /dev/null 2>&1
eend $? "Failed to start ${name:-$RC_SVCNAME}"
}
runit_stop()

View File

@@ -1,6 +0,0 @@
version_h = vcs_tag(
input : 'version.h.in',
output : 'version.h')
version_f = vcs_tag(
input : 'version.in',
output : 'version')

View File

@@ -1,18 +0,0 @@
/*
* Copyright (c) 2007-2015 The OpenRC Authors.
* See the Authors file at the top-level directory of this distribution and
* https://github.com/OpenRC/openrc/blob/master/AUTHORS
*
* This file is part of OpenRC. It is subject to the license terms in
* the LICENSE file found in the top-level directory of this
* distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
* This file may not be copied, modified, propagated, or distributed
* except according to the terms contained in the LICENSE file.
*/
#ifndef _VERSION_H_
#define _VERSION_H_
#define VERSION "@VCS_TAG@"
#endif

View File

@@ -1 +0,0 @@
@VCS_TAG@

View File

@@ -1,12 +0,0 @@
libeinfo_version = '1'
libeinfo = library('einfo', ['libeinfo.c'],
c_args : termcap_flags,
include_directories : incdir,
dependencies : termcap_dep,
link_depends : 'einfo.map',
version : libeinfo_version,
install : true,
install_dir : libdir)
install_headers('einfo.h')

View File

@@ -1,33 +0,0 @@
rc_h_conf_data = configuration_data()
if rootprefix == '/'
rc_h_conf_data.set('PREFIX', '')
else
rc_h_conf_data.set('PREFIX', rootprefix)
endif
rc_h_conf_data.set('LIB', libname)
rc_h_conf_data.set('LIBEXECDIR', rc_libexecdir)
rc_h_conf_data.set('LOCAL_PREFIX', local_prefix)
rc_h_conf_data.set('PKG_PREFIX', pkg_prefix)
rc_h_conf_data.set('SYSCONFDIR', get_option('sysconfdir'))
librc_version = '1'
librc_sources = [
'librc.c',
'librc-daemon.c',
'librc-depend.c',
'librc-misc.c',
'librc-stringlist.c',
]
rc_h = configure_file(input : 'rc.h.in', output : 'rc.h',
configuration : rc_h_conf_data)
librc = library('rc', librc_sources,
include_directories : [incdir, einfo_incdir],
link_depends : 'rc.map',
version : librc_version,
install : true,
install_dir : libdir)
install_headers(rc_h)

View File

@@ -1,4 +0,0 @@
subdir('common')
subdir('libeinfo')
subdir('librc')
subdir('rc')

View File

@@ -22,7 +22,6 @@
#include <time.h>
#include <unistd.h>
#include <stdio.h>
#include <utmp.h>
#include <utmpx.h>
#include <pwd.h>
#include <fcntl.h>

View File

@@ -73,8 +73,7 @@ const char * const longopts_help[] = {
};
const char *usagestring = NULL;
static int get_dirfd(char *path, bool symlinks)
{
static int get_dirfd(char *path, bool symlinks) {
char *ch;
char *item;
char *linkpath = NULL;
@@ -277,7 +276,7 @@ static int do_check(char *path, uid_t uid, gid_t gid, mode_t mode,
if (mode && (st.st_mode & 0777) != mode) {
if ((type != inode_dir) && (st.st_nlink > 1)) {
eerror("%s: chmod: Too many hard links to %s", applet, path);
eerror("%s: chmod: %s %s", applet, "Too many hard links to", path);
close(readfd);
return -1;
}

View File

@@ -1,302 +0,0 @@
rc_misc_c = files([
'rc-misc.c',
])
rc_plugin_c = files([
'rc-plugin.c',
])
rc_schedules_c = files([
'rc-schedules.c',
])
usage_c = files([
'_usage.c',
])
if get_option('selinux').enabled()
rc_selinux_c = files([
'rc-selinux.c',
])
else
rc_selinux_c = []
endif
rc_wtmp_c = files([
'rc-wtmp.c',
])
rc_bindir = rc_libexecdir / 'bin'
rc_sbindir = rc_libexecdir / 'sbin'
executable('rc-status',
['rc-status.c', rc_misc_c, usage_c, version_h],
c_args : cc_branding_flags,
link_with: [libeinfo, librc],
dependencies: [util_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: bindir)
executable('openrc',
['rc.c', 'rc-logger.c', rc_misc_c, rc_plugin_c, usage_c,
version_h],
c_args : cc_branding_flags,
link_with: [libeinfo, librc],
dependencies: [dl_dep, util_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
executable('openrc-run',
['openrc-run.c', rc_misc_c, rc_plugin_c, usage_c,
rc_selinux_c, version_h],
c_args : [cc_audit_flags, cc_branding_flags, cc_pam_flags, cc_selinux_flags],
link_with: [libeinfo, librc],
dependencies: [dl_dep, libpam, selinux_dep, util_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
executable('rc',
['rc.c', 'rc-logger.c', rc_misc_c, rc_plugin_c, usage_c, version_h],
c_args : cc_branding_flags,
link_with: [libeinfo, librc],
dependencies: [dl_dep, util_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
executable('rc-service',
['rc-service.c', rc_misc_c, usage_c, version_h],
c_args : cc_branding_flags,
link_with: [libeinfo, librc],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
executable('rc-update',
['rc-update.c', rc_misc_c, usage_c, version_h],
c_args : cc_branding_flags,
link_with: [libeinfo, librc],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
executable('runscript',
['openrc-run.c', rc_misc_c, usage_c, 'rc-plugin.c',
rc_selinux_c, version_h],
c_args : [cc_audit_flags, cc_branding_flags, cc_pam_flags, cc_selinux_flags],
link_with: [libeinfo, librc],
dependencies: [dl_dep, libpam, util_dep, selinux_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
executable('start-stop-daemon',
['start-stop-daemon.c', 'rc-pipes.c', rc_misc_c, rc_schedules_c,
rc_selinux_c, usage_c, version_h],
c_args : [cc_audit_flags, cc_branding_flags, cc_pam_flags, cc_selinux_flags],
link_with: [libeinfo, librc],
dependencies: [dl_dep, libpam, util_dep, selinux_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
executable('supervise-daemon',
['supervise-daemon.c', rc_misc_c, rc_plugin_c, rc_schedules_c,
usage_c, version_h],
c_args : [cc_branding_flags, cc_pam_flags, cc_selinux_flags],
link_with: [libeinfo, librc],
dependencies: [dl_dep, libpam, util_dep, selinux_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
if os == 'Linux'
executable('openrc-init',
['openrc-init.c', rc_plugin_c, rc_wtmp_c, version_h],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
dependencies: [dl_dep],
install: true,
install_dir: sbindir)
executable('openrc-shutdown',
['openrc-shutdown.c', 'broadcast.c', 'rc-sysvinit.c', rc_misc_c,
usage_c, rc_wtmp_c, version_h],
c_args : cc_branding_flags,
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: sbindir)
endif
einfo_execs = [
'einfon',
'einfo',
'ewarnn',
'ewarn',
'eerrorn',
'eerror',
'ebegin',
'eend',
'ewend',
'eindent',
'eoutdent',
'esyslog',
'eval_ecolors',
'ewaitfile',
'veinfo',
'vewarn',
'vebegin',
'veend',
'vewend',
'veindent',
'veoutdent',
]
foreach exec: einfo_execs
executable(exec,
['do_e.c', rc_misc_c, version_h],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
endforeach
executable('checkpath',
['checkpath.c', rc_misc_c, usage_c, rc_selinux_c,
version_h],
c_args : [cc_audit_flags, cc_branding_flags, cc_pam_flags, cc_selinux_flags],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
dependencies: [libpam, selinux_dep],
install: true,
install_dir: rc_bindir)
executable('fstabinfo',
['fstabinfo.c', rc_misc_c, usage_c, version_h],
c_args : cc_branding_flags,
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
executable('mountinfo',
['mountinfo.c', rc_misc_c, usage_c, version_h],
c_args : cc_branding_flags,
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
executable('rc-depend',
['rc-depend.c', rc_misc_c, usage_c, version_h],
c_args : cc_branding_flags,
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
executable('is_newer_than',
['is_newer_than.c', rc_misc_c, version_h],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
executable('is_older_than',
['is_older_than.c', rc_misc_c, version_h],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
service_execs = [
'service_starting',
'service_started',
'service_stopping',
'service_stopped',
'service_inactive',
'service_wasinactive',
'service_hotplugged',
'service_started_daemon',
'service_crashed',
]
foreach exec : service_execs
executable(exec,
['do_service.c', rc_misc_c, version_h],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
endforeach
value_execs = [
'service_get_value',
'service_set_value',
'get_options',
'save_options',
]
foreach exec : value_execs
executable(exec,
['do_value.c', rc_misc_c, version_h],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo, librc],
install: true,
install_dir: rc_bindir)
endforeach
if os == 'Linux'
executable('kill_all',
['kill_all.c', usage_c, version_h],
c_args : cc_branding_flags,
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo,librc],
install: true,
install_dir: rc_bindir)
endif
executable('shell_var',
['shell_var.c'],
install: true,
install_dir: rc_bindir)
mark_service_execs = [
'mark_service_starting',
'mark_service_started',
'mark_service_stopping',
'mark_service_stopped',
'mark_service_inactive',
'mark_service_wasinactive',
'mark_service_hotplugged',
'mark_service_failed',
'mark_service_crashed',
]
foreach exec : mark_service_execs
executable(exec,
['do_mark_service.c', rc_misc_c, version_h],
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo,librc],
install: true,
install_dir: rc_sbindir)
endforeach
executable('rc-abort',
'rc-abort.c',
include_directories: [einfo_incdir],
link_with: [libeinfo],
install: true,
install_dir: rc_sbindir)
executable('swclock',
['swclock.c', rc_misc_c, usage_c, version_h],
c_args : cc_branding_flags,
include_directories: [incdir, einfo_incdir, rc_incdir],
link_with: [libeinfo,librc],
install: true,
install_dir: rc_sbindir)

View File

@@ -20,7 +20,6 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <inttypes.h>
#include "einfo.h"
#include "queue.h"
@@ -129,12 +128,12 @@ static char *get_uptime(const char *service)
}
if (diff_days > 0)
xasprintf(&uptime,
"%"PRId64" day(s) %02"PRId64":%02"PRId64":%02"PRId64" (%s)",
"%ld day(s) %02ld:%02ld:%02ld (%s)",
diff_days, diff_hours, diff_mins, diff_secs,
start_count);
else
xasprintf(&uptime,
"%02"PRId64":%02"PRId64":%02"PRId64" (%s)",
"%02ld:%02ld:%02ld (%s)",
diff_hours, diff_mins, diff_secs, start_count);
}
}

View File

@@ -1,6 +1,6 @@
/*
* supervise-daemon
* This is a supervisor for daemons.
* This is an experimental supervisor for daemons.
* It will start a deamon and make sure it restarts if it crashes.
*/

View File

@@ -1,11 +0,0 @@
deptree2dot_dir = support_dir / 'deptree2dot'
deptree2dot_bin = ['deptree2dot']
deptree2dot_data = ['README.md']
install_data(deptree2dot_bin,
install_dir : deptree2dot_dir,
install_mode : 'rwxr-xr-x')
install_data(deptree2dot_data,
install_dir : deptree2dot_dir)

View File

@@ -1,30 +0,0 @@
init_d_examples_dir = support_dir / 'init.d.examples'
init_d_examples = [
'avahi-dnsconfd.in',
'avahid.in',
'dhcpcd.in',
'dbus.in',
'hald.in',
'named.in',
'ntpd.in',
'openvpn.in',
'polkitd.in',
'sshd.in',
'wpa_supplicant.in',
]
init_d_examples_data = [
'README.md',
]
foreach init_d_example: init_d_examples
configure_file(input : init_d_example,
output : '@BASENAME@',
configuration : init_d_conf_data,
install_dir : init_d_examples_dir,
install_mode : 'rwxr-xr-x')
endforeach
install_data(init_d_examples_data,
install_dir : init_d_examples_dir)

View File

@@ -1,7 +0,0 @@
support_dir = get_option('datadir') / meson.project_name().to_lower()
support_dir = support_dir / 'support'
subdir('deptree2dot')
subdir('init.d.examples')
subdir('openvpn')
subdir('sysvinit')

View File

@@ -1,10 +0,0 @@
openvpn_dir = support_dir / 'openvpn'
openvpn_bin = ['down.sh', 'up.sh']
openvpn_data = ['README.md']
install_data(openvpn_bin,
install_dir : openvpn_dir,
install_mode : 'rwxr-xr-x')
install_data(openvpn_data,
install_dir : openvpn_dir)

View File

@@ -1,6 +0,0 @@
sysvinit_dir = support_dir / 'sysvinit'
sysvinit_data = ['halt.sh', 'inittab', 'README.md']
install_data(sysvinit_data,
install_dir : sysvinit_dir)

View File

@@ -1,6 +0,0 @@
sysctl_data = [
'README',
]
sysctldir = get_option('sysconfdir') / 'sysctl.d'
install_data(sysctl_data, install_dir : sysctldir)

View File

@@ -1,13 +0,0 @@
#!/bin/sh
set -e
set -u
rc_libexecdir="$1"
os="$2"
if [ ${os} != Linux ]; then
install -d "${DESTDIR}/${rc_libexecdir}"/init.d
fi
install -d "${DESTDIR}/${rc_libexecdir}"/tmp
install "${MESON_BUILD_ROOT}/src/common/version" "${DESTDIR}/${rc_libexecdir}"

View File

@@ -1,101 +0,0 @@
#!/bin/sh
set -e
set -u
os="$1"
net="$2"
rc_libexecdir="$3"
sysconfdir="$4"
sysvinit="$5"
init_d_dir="${sysconfdir}/init.d"
leveldir="${sysconfdir}/runlevels"
sysinitdir="${leveldir}/sysinit"
bootdir="${leveldir}/boot"
defaultdir="${leveldir}/default"
nonetworkdir="${leveldir}/nonetwork"
shutdowndir="${leveldir}/shutdown"
sysinit=
case "${os}" in
Linux)
sysinit="${sysinit} cgroups devfs dmesg sysfs"
;;
esac
boot="bootmisc fsck hostname localmount loopback root swap sysctl urandom"
if [ "${net}" = yes ]; then
boot="${boot} network staticroute"
fi
boot_BSD="hostid newsyslog savecore syslogd"
case "${os}" in
DragonFly)
boot="${boot} ${boot_BSD}"
;;
FreeBSD|GNU-kFreeBSD)
boot="${boot} ${boot_BSD} adjkerntz dumpon modules syscons"
;;
Linux)
boot="${boot} binfmt hwclock keymaps modules mtab procfs
save-keymaps save-termencoding termencoding"
;;
NetBSD)
boot="${boot} ${boot_BSD} devdb swap-blk tys wscons"
;;
esac
default="local netmount"
nonetwork="local"
shutdown="savecache"
case "${os}" in
Linux)
shutdown="${shutdown} killprocs mount-ro"
;;
esac
if ! test -d "${DESTDIR}${sysinitdir}"; then
install -d "${DESTDIR}${sysinitdir}"
for x in ${sysinit}; do
ln -snf "${init_d_dir}/$x" "${DESTDIR}${sysinitdir}/$x"
done
fi
if ! test -d "${DESTDIR}${bootdir}"; then
install -d "${DESTDIR}${bootdir}"
for x in ${boot}; do
ln -snf "${init_d_dir}/$x" "${DESTDIR}${bootdir}/$x"
done
fi
if ! test -d "${DESTDIR}${defaultdir}"; then
install -d "${DESTDIR}${defaultdir}"
for x in ${default}; do
ln -snf "${init_d_dir}/$x" "${DESTDIR}${defaultdir}/$x"
done
fi
if ! test -d "${DESTDIR}${nonetworkdir}"; then
install -d "${DESTDIR}${nonetworkdir}"
for x in ${nonetwork}; do
ln -snf "${init_d_dir}/$x" "${DESTDIR}${nonetworkdir}/$x"
done
fi
if ! test -d "${DESTDIR}${shutdowndir}"; then
install -d "${DESTDIR}${shutdowndir}"
for x in ${shutdown}; do
ln -snf "${init_d_dir}/$x" "${DESTDIR}${shutdowndir}/$x"
done
fi
if test "${sysvinit}" = yes && test "${os}" = Linux; then \
for x in tty1 tty2 tty3 tty4 tty5 tty6; do
ln -snf "${init_d_dir}/agetty" "${DESTDIR}/${init_d_dir}/agetty.$x"
ln -snf "${init_d_dir}/agetty.$x" "${DESTDIR}/${defaultdir}/agetty.$x"
done;
fi
ln -snf "${rc_libexecdir}"/sh/functions.sh "${DESTDIR}/${init_d_dir}"

View File

@@ -1,9 +0,0 @@
zsh_completions = [
'_openrc',
'_rc-service',
'_rc-status',
'_rc-update',
]
install_data(zsh_completions,
install_dir : get_option('datadir') / 'zsh/site-functions')