Compare commits

...

28 Commits

Author SHA1 Message Date
William Hubbs
930e69017f version 0.44.6 2021-10-04 10:36:14 -05:00
William Hubbs
44912434cf update ChangeLog 2021-10-04 10:31:46 -05:00
William Hubbs
c7fde9a3da fix build for selinux
I would like to thank jpds@protonmail.com for the patch.

X-Gentoo-Bug: 815847
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=815847
2021-10-04 10:26:53 -05:00
William Hubbs
ffededbf95 version 0.44.5 2021-09-21 11:21:17 -05:00
William Hubbs
b0efb663f9 update ChangeLog 2021-09-21 11:12:35 -05:00
William Hubbs
aa69e48125 build: fix rootprefix
This fixes #438.
2021-09-21 11:10:36 -05:00
William Hubbs
4ba10f1d50 link runscript with audit 2021-09-18 17:06:19 -05:00
William Hubbs
38a9e2ff63 link openrc-run with audit and libpam_misc 2021-09-18 17:06:19 -05:00
William Hubbs
783af5abac version 0.44.4 2021-09-15 10:27:48 -05:00
William Hubbs
75c3b53e31 update ChangeLog 2021-09-15 10:25:47 -05:00
Natanael Copa
c300c180a2 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.
2021-09-15 10:23:59 -05:00
Natanael Copa
be8d2ee6e3 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.
2021-09-14 11:51:40 -05:00
Aaditya Bagga
d9ef1bb635 [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.
2021-09-12 13:28:20 -05:00
Jakub Jirutka
cfc6991219 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.
2021-09-09 22:42:51 -05:00
Sören Tempel
97ae5af201 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.]
2021-09-09 22:18:22 -05:00
William Hubbs
4c820a0e48 version 0.44.3 2021-09-09 12:56:50 -05:00
William Hubbs
9c39b381a5 update ChangeLog 2021-09-09 12:53:42 -05:00
Ariadne Conill
321bb2cd90 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.
2021-09-09 12:49:03 -05:00
Ariadne Conill
8c99d817d4 fix trailing whitespace in tools/meson_runlevels.sh 2021-09-09 12:49:03 -05:00
2e1fb4d02b meson: fix symlinks with sysvinit 2021-09-08 18:18:39 -05:00
William Hubbs
a2f0afb8bc version 0.44.2 2021-09-08 15:36:20 -05:00
William Hubbs
430fa132f2 update ChangeLog 2021-09-08 15:33:46 -05:00
William Hubbs
12cd7ce9de build: install pam files 2021-09-08 15:31:42 -05:00
William Hubbs
167acac140 meson: typo fix 2021-09-08 15:31:42 -05:00
William Hubbs
f839ba27c5 version 0.44.1 2021-09-08 13:41:39 -05:00
William Hubbs
80dd6aac5f update ChangeLog 2021-09-08 13:41:20 -05:00
William Hubbs
0d00b8d8ab build: fix sysvinit script installation 2021-09-08 13:37:36 -05:00
William Hubbs
551bdff2fb build: fix symlinks 2021-09-08 13:37:36 -05:00
16 changed files with 315 additions and 39 deletions

235
ChangeLog
View File

@@ -1,3 +1,232 @@
commit c7fde9a3dab01d30d16f9907f7cce00799f92821
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
fix build for selinux
I would like to thank jpds@protonmail.com for the patch.
X-Gentoo-Bug: 815847
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=815847
commit ffededbf955e39add0fbbacc22f2c0d7a8901b35
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.44.5
commit b0efb663f9ed84627c302a2d051fc5a74fb0c2b6
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
commit aa69e48125df7684ab3b77eaf9013f8c126b1fca
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
build: fix rootprefix
This fixes #438.
commit 4ba10f1d5074a45b4ddd96d2d404842fa3b38e63
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
link runscript with audit
commit 38a9e2ff630b0e0bd261afb2e66072f904b5d608
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
link openrc-run with audit and libpam_misc
commit 783af5abac209c7745fd5c06dc89b2f5dfa3b313
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
version 0.44.4
commit 75c3b53e3195f2d3541a7d83920667d1c4b14337
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
update ChangeLog
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>
@@ -697,9 +926,3 @@ Commit: Mike Frysinger <vapier@gmail.com>
Update user-guide.md
Add missing underscore.
commit 2355f1a3f2a4fd62cac6d9af0e94c8731acd4c0f
Author: William Hubbs <w.d.hubbs@gmail.com>
Commit: William Hubbs <w.d.hubbs@gmail.com>
supervise-daemon: only log debug logs when verbose mode is active

View File

@@ -1,3 +1,3 @@
NAME= openrc
VERSION= 0.44
VERSION= 0.44.6
PKG= ${NAME}-${VERSION}

View File

@@ -113,8 +113,10 @@ migrate_to_run()
rm $src
elif [ ! -L $src -a -d $src ]; then
ebegin "Migrating $src to $dst"
cp -a $src/* $dst/
rm -rf $src
if ! rmdir $src 2>/dev/null; then
cp -a $src/* $dst/
rm -rf $src
fi
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
use lvm modules root
after clock lvm modules root
need fsck root
use lvm modules
after clock lvm modules
keyword -docker -jail -lxc -prefix -systemd-nspawn -vserver
}

View File

@@ -1,5 +1,5 @@
project('OpenRC', 'c',
version : '0.44',
version : '0.44.6',
license: 'BSD-2',
default_options : [
'c_std=c99',
@@ -72,19 +72,19 @@ 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
rootprefix = get_option('rootprefix')
rootprefix_default = '/'
if rootprefix == ''
rootprefix = rootprefix_default
endif
bindir = rootprefix / get_option('bindir')
libdir = rootprefix / get_option('libdir')
if os == 'Linux' and split_usr
libexecpath = 'lib'
else
libexecpath = get_option('libexecdir')
libexecdir = get_option('libexecdir')
if os == 'Linux' and libexecdir == 'libexec'
libexecdir = 'lib'
endif
libexecdir = split_usr ? rootprefix / libexecpath :
get_option('prefix') / libexecpath
libexecdir = rootprefix / libexecdir
rc_libexecdir = libexecdir / 'rc'
sbindir = rootprefix / get_option('sbindir')
@@ -164,6 +164,9 @@ subdir('etc')
subdir('init.d')
subdir('local.d')
subdir('man')
if get_option('pam')
subdir('pam')
endif
if get_option('pkgconfig')
subdir('pkgconfig')
endif
@@ -180,7 +183,8 @@ meson.add_install_script('tools/meson_runlevels.sh',
os,
get_option('newnet') ? 'yes' : 'no',
rc_libexecdir,
get_option('sysconfdir'))
get_option('sysconfdir'),
get_option('sysvinit') ? 'yes' : 'no')
meson.add_install_script('tools/meson_final.sh',
rc_libexecdir,
os)

9
pam/meson.build Normal file
View File

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

6
pam/start-stop-daemon Normal file
View File

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

6
pam/supervise-daemon Normal file
View File

@@ -0,0 +1,6 @@
#%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

@@ -12,10 +12,10 @@ scripts_Linux = [
]
scripts_sysvinit = [
'halt',
'poweroff',
'shutdown',
'reboot',
'halt.in',
'poweroff.in',
'shutdown.in',
'reboot.in',
]
install_data(scripts_internal,

View File

@@ -8,7 +8,12 @@ sbindir="$2"
binaries=" halt poweroff rc-sstat reboot shutdown"
for f in $binaries; do
if [ -x "${DESTDIR}${rc_libexecdir}/bin/${f}" ]; then
ln -snf "${DESTDIR}${rc_libexecdir}/bin/${f}" \
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

@@ -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 -k 10 -s KILL "${rc_fuser_timeout:-60}" \
pids="$(timeout -s KILL "${rc_fuser_timeout:-60}" \
fuser $f_opts "$mnt" 2>/dev/null)"
fi
case " $pids " in

View File

@@ -20,8 +20,20 @@ runit_start()
service_link="${RC_SVCDIR}/sv/${service_path##*/}"
ebegin "Starting ${name:-$RC_SVCNAME}"
ln -snf "${service_path}" "${service_link}"
sv start "${service_link}" > /dev/null 2>&1
eend $? "Failed to start ${name:-$RC_SVCNAME}"
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}"
}
runit_stop()

View File

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

View File

@@ -2,7 +2,7 @@ rc_misc_c = files([
'rc-misc.c',
])
rc_plugin_c = ([
rc_plugin_c = files([
'rc-plugin.c',
])
@@ -53,7 +53,7 @@ executable('openrc-run',
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],
dependencies: [audit_dep, dl_dep, libpam, libpam_misc, selinux_dep, util_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
@@ -88,7 +88,7 @@ executable('runscript',
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],
dependencies: [audit_dep, dl_dep, libpam, libpam_misc, util_dep, selinux_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
@@ -98,7 +98,7 @@ executable('start-stop-daemon',
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],
dependencies: [audit_dep, dl_dep, libpam, libpam_misc, util_dep, selinux_dep],
include_directories: [incdir, einfo_incdir, rc_incdir],
install: true,
install_dir: sbindir)
@@ -171,7 +171,7 @@ executable('checkpath',
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],
dependencies: [audit_dep, libpam, libpam_misc, selinux_dep],
install: true,
install_dir: rc_bindir)

View File

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

View File

@@ -7,6 +7,7 @@ os="$1"
net="$2"
rc_libexecdir="$3"
sysconfdir="$4"
sysvinit="$5"
init_d_dir="${sysconfdir}/init.d"
leveldir="${sysconfdir}/runlevels"
@@ -52,7 +53,7 @@ nonetwork="local"
shutdown="savecache"
case "${os}" in
Linux)
shutdown="${shutdown} killprocs mount-ro"
shutdown="${shutdown} killprocs mount-ro"
;;
esac
@@ -90,5 +91,11 @@ if ! test -d "${DESTDIR}${shutdowndir}"; then
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}"