diff options
| author | davidovski <david@davidovski.xyz> | 2022-05-04 23:52:30 +0100 | 
|---|---|---|
| committer | davidovski <david@davidovski.xyz> | 2022-05-04 23:52:30 +0100 | 
| commit | 739c65c54cb0e957df5e9b76f93fb02554e5cac3 (patch) | |
| tree | 09ddfa0a342f3ea9de136cb50abdd79821bf1b53 /repo/system/utmps | |
| parent | 4c585ad54388285500fd18a6aaa516894e0f2c16 (diff) | |
moved everything to new file formatting
Diffstat (limited to 'repo/system/utmps')
| -rw-r--r-- | repo/system/utmps/btmpd.initd | 24 | ||||
| -rw-r--r-- | repo/system/utmps/btmpd.logrotate | 6 | ||||
| -rw-r--r-- | repo/system/utmps/utmp-init.initd | 21 | ||||
| -rw-r--r-- | repo/system/utmps/utmp-prepare.initd | 25 | ||||
| -rw-r--r-- | repo/system/utmps/utmpd.initd | 23 | ||||
| -rw-r--r-- | repo/system/utmps/utmps.xibuild | 75 | ||||
| -rw-r--r-- | repo/system/utmps/wtmpd.initd | 24 | ||||
| -rw-r--r-- | repo/system/utmps/wtmpd.logrotate | 6 | 
8 files changed, 204 insertions, 0 deletions
| diff --git a/repo/system/utmps/btmpd.initd b/repo/system/utmps/btmpd.initd new file mode 100644 index 0000000..b9acc72 --- /dev/null +++ b/repo/system/utmps/btmpd.initd @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +# Copyright 2020-2021 Laurent Bercot for Alpine Linux +# Distributed under the terms of the ISC License. +# +name=btmpd +description="utmps daemon for the btmp service" + +command=/bin/s6-ipcserver +command_args="/run/utmps/.btmpd-socket utmps-wtmpd btmp" +command_user=utmp +command_background=yes +directory=/var/log/btmpd +pidfile=/run/utmps/btmpd.pid + +depend() { +	need localmount utmp-prepare +	after bootmisc +	before networking +} + +start_pre() { +	checkpath -d -o utmp:utmp -m 0755 /run/utmps +	checkpath -d -o utmp:utmp -m 2755 /var/log/btmpd +} diff --git a/repo/system/utmps/btmpd.logrotate b/repo/system/utmps/btmpd.logrotate new file mode 100644 index 0000000..b681d90 --- /dev/null +++ b/repo/system/utmps/btmpd.logrotate @@ -0,0 +1,6 @@ +/var/log/btmpd/btmp { +    missingok +    monthly +    create 0644 utmp utmp +    rotate 3 +} diff --git a/repo/system/utmps/utmp-init.initd b/repo/system/utmps/utmp-init.initd new file mode 100644 index 0000000..acb4dbe --- /dev/null +++ b/repo/system/utmps/utmp-init.initd @@ -0,0 +1,21 @@ +#!/sbin/openrc-run +# Copyright 2020-2022 Laurent Bercot for Alpine Linux +# Distributed under the terms of the ISC License. +# +description="clearing and initialization of the utmp database" + +depend() { +	need utmp-prepare utmpd wtmpd +	before networking +	after clock +} + +start() { +	# Create an empty utmp file +	checkpath -F -f -m 0644 -o utmp:utmp /run/utmps/utmp + +	# Write the initial records as sysvinit/busybox init would do. +	# 20018 = 256 * 'N' + '2'. Don't ask. +	utmps-write -t 2000 -uw -l reboot -p 0 -h "$(uname -r)" -- '~~' BOOT_TIME '~' +	utmps-write -t 2000 -uw -l runlevel -p 20018 -h "$(uname -r)" -- '~~' RUN_LVL '~' +} diff --git a/repo/system/utmps/utmp-prepare.initd b/repo/system/utmps/utmp-prepare.initd new file mode 100644 index 0000000..9f61249 --- /dev/null +++ b/repo/system/utmps/utmp-prepare.initd @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 2020-2022 Laurent Bercot for Alpine Linux +# Distributed under the terms of the ISC License. +# +description="preparation of the utmp databases" + +depend() { +	before networking +	after clock +} + +start() { +	if ! test -L /var/log/utmp || test "$(readlink /var/log/utmp)" != /run/utmps/utmp ; then +		rm -f /var/log/utmp +		ln -s /run/utmps/utmp /var/log/utmp +	fi +	if ! test -L /var/log/wtmp || test "$(readlink /var/log/wtmp)" != wtmpd/wtmp ; then +		rm -f /var/log/wtmp +		ln -s wtmpd/wtmp /var/log/wtmp +	fi +	if ! test -L /var/log/btmp || test "$(readlink /var/log/btmp)" != btmpd/btmp ; then +		rm -f /var/log/btmp +		ln -s btmpd/btmp /var/log/btmp +	fi +} diff --git a/repo/system/utmps/utmpd.initd b/repo/system/utmps/utmpd.initd new file mode 100644 index 0000000..d04c6b9 --- /dev/null +++ b/repo/system/utmps/utmpd.initd @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 2020-2021 Laurent Bercot for Alpine Linux +# Distributed under the terms of the ISC License. +# +name="utmpd" +description="utmps daemon for the utmp service" + +command=/bin/s6-ipcserver +command_args="/run/utmps/.utmpd-socket utmps-utmpd" +command_user=utmp +command_background=yes +directory=/run/utmps +pidfile=/run/utmps/utmpd.pid + +depend() { +	need utmp-prepare +	after bootmisc +	before networking +} + +start_pre() { +	checkpath -d -o utmp:utmp -m 0755 /run/utmps +} diff --git a/repo/system/utmps/utmps.xibuild b/repo/system/utmps/utmps.xibuild new file mode 100644 index 0000000..900aae8 --- /dev/null +++ b/repo/system/utmps/utmps.xibuild @@ -0,0 +1,75 @@ +#!/bin/sh + +MAKEDEPS="" +DEPS="skalibs" + +PKG_VER=0.1.1.0 +SOURCE=https://skarnet.org/software/utmps/utmps-$PKG_VER.tar.gz + +ADDITIONAL=" +btmpd.initd +btmpd.logrotate +utmpd.initd +utmp-init.initd +utmp-prepare.initd +wtmpd.initd +wtmpd.logrotate +" + +DESC="Library implementing utmpx.h family of functions" + +build () { +    ./configure \ +            --enable-shared      \ +            --libdir=/usr/lib    \ +            --with-dynlib=/lib   \ +            --libexecdir="/lib/utmps" \ +            --with=dynlib=/lib +    make +} + +package () { +    make DESTDIR=$PKG_DEST install +    ln -s utmps/utmpx.h $PKG_DEST/usr/include/utmpx.h +    install -d $PKG_DEST/usr/lib/pkgconfig +    cat > $PKG_DEST/usr/lib/pkgconfig/utmps.pc << EOF +Name: utmps +Description: A secure implementation of the utmp mechanism. +URL: https://skarnet.org/software/utmps/ +Version: $PKG_VER  +Requires.private: skalibs +Libs: -lutmps +Cflags: -I/usr/include/utmps +EOF +	install -D -m755 utmp-prepare.initd "$PKG_DEST/etc/init.d/utmp-prepare" +	install -D -m755 utmpd.initd "$PKG_DEST/etc/init.d/utmpd" +	install -D -m755 wtmpd.initd "$PKG_DEST/etc/init.d/wtmpd" +	install -D -m755 btmpd.initd "$PKG_DEST/etc/init.d/btmpd" +	install -D -m755 utmp-init.initd "$PKG_DEST/etc/init.d/utmp-init" +	install -D -m644 wtmpd.logrotate "$PKG_DEST/etc/logrotate.d/wtmpd" +	install -D -m644 btmpd.logrotate "$PKG_DEST/etc/logrotate.d/btmpd" +} + +postinstall () { +    # check that shadow exists +    command -v useradd || exit 1 +    command -v chown || exit 1 + +    grep -q "utmps" /etc/passwd || useradd -c "utmps user" -d /run/utmps \ +        -u 984 -g utmp -s /bin/false utmp +    [ -d /var/log/utmps ] || mkdir -p /var/log/utmps +    [ -d /var/log/wtmp ] && mv /var/log/wtmp /var/log/utmps +    chown -R utmp:utmp /var/log/utmps +    [ -e /var/log/wtmp ] || ln -s utmps/wtmp /var/log/wtmp + +# utmps is broken, dont try to make services with it without s6 ipc +#    rc-update add utmp-prepare boot +#    rc-update add utmpd boot +#    rc-update add wtmpd boot +#    rc-update add btmpd boot +#    rc-update add utmp-init boot +#    rc-service utmp-prepare start +#    rc-service utmpd start +#    rc-service wtmpd start +#    rc-service btmpd start +} diff --git a/repo/system/utmps/wtmpd.initd b/repo/system/utmps/wtmpd.initd new file mode 100644 index 0000000..8d3f624 --- /dev/null +++ b/repo/system/utmps/wtmpd.initd @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +# Copyright 2020-2021 Laurent Bercot for Alpine Linux +# Distributed under the terms of the ISC License. +# +name=wtmpd +description="utmps daemon for the wtmp service" + +command=/bin/s6-ipcserver +command_args="/run/utmps/.wtmpd-socket utmps-wtmpd wtmp" +command_user=utmp +command_background=yes +directory=/var/log/wtmpd +pidfile=/run/utmps/wtmpd.pid + +depend() { +	need localmount utmp-prepare +	after bootmisc +	before networking +} + +start_pre() { +	checkpath -d -o utmp:utmp -m 0755 /run/utmps +	checkpath -d -o utmp:utmp -m 2755 /var/log/wtmpd +} diff --git a/repo/system/utmps/wtmpd.logrotate b/repo/system/utmps/wtmpd.logrotate new file mode 100644 index 0000000..bb23536 --- /dev/null +++ b/repo/system/utmps/wtmpd.logrotate @@ -0,0 +1,6 @@ +/var/log/wtmpd/wtmp { +    missingok +    monthly +    create 0644 utmp utmp +    rotate 3 +} | 
