Skip to content
Snippets Groups Projects
Commit 52513e53 authored by Laurent Bercot's avatar Laurent Bercot :sleeping: Committed by Natanael Copa
Browse files

New package: main/utmps

 A secure utmp/wtmp implementation, from skarnet.org.
parent de7b0b39
No related merge requests found
# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: Laurent Bercot <ska-devel@skarnet.org>
pkgname=utmps
pkgver=0.0.1.0
pkgrel=0
pkgdesc="A secure utmp/wtmp implementation"
url="https://skarnet.org/software/$pkgname/"
arch="all"
license="ISC"
depends="execline s6"
depends_dev="skalibs-dev"
makedepends="skalibs-dev"
options="!check"
subpackages="$pkgname-dev $pkgname-doc"
source="https://skarnet.org/software/$pkgname/$pkgname-$pkgver.tar.gz $pkgname.initd utmpd.run wtmpd.run"
builddir="$srcdir/$pkgname-$pkgver"
install="$pkgname.pre-install $pkgname.pre-upgrade"
build() {
cd "$builddir"
./configure \
--enable-shared \
--enable-static \
--disable-allstatic \
--libdir=/usr/lib \
--libexecdir="/lib/$pkgname" \
--with-dynlib=/lib
make
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
mkdir -p "$pkgdir/etc/init.d" "$pkgdir/var/lib/$pkgname/services/utmpd" "$pkgdir/var/lib/$pkgname/services/wtmpd"
cp -f "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
cp -f "$srcdir/utmpd.run" "$pkgdir/var/lib/$pkgname/services/utmpd/run"
echo 3 > "$pkgdir/var/lib/$pkgname/services/utmpd/notification-fd"
s6-mkfifodir -g0 -- "$pkgdir/var/lib/$pkgname/services/utmpd/event"
cp -f "$srcdir/wtmpd.run" "$pkgdir/var/lib/$pkgname/services/wtmpd/run"
echo 3 > "$pkgdir/var/lib/$pkgname/services/wtmpd/notification-fd"
s6-mkfifodir -g 0 -- "$pkgdir/var/lib/$pkgname/services/wtmpd/event"
chmod 0755 "$pkgdir/etc/init.d/$pkgname" "$pkgdir/var/lib/$pkgname/services/utmpd/run" "$pkgdir/var/lib/$pkgname/services/wtmpd/run"
mkdir -m 0700 "$pkgdir/var/lib/$pkgname/services/utmpd/supervise" "$pkgdir/var/lib/$pkgname/services/wtmpd/supervise"
dd if=/dev/zero of="$pkgdir/var/lib/$pkgname/services/utmpd/supervise/status" bs=35 count=1
dd if=/dev/zero of="$pkgdir/var/lib/$pkgname/services/wtmpd/supervise/status" bs=35 count=1
}
# Remove this dev() override when musl-dev doesn't own /usr/include/utmpx.h anymore.
dev() {
default_dev
rm -f "$subpkgdir/usr/include/utmpx.h"
}
doc() {
default_doc
mkdir -p "$subpkgdir/usr/share/doc"
cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname"
}
sha512sums="289d745647c01e550b37198c88d6ed5c3a80b3278ff85d6ce4ec066a044877aa7dba85509956dc469169276b606b2d5ac8ea7284b7f043ff798b3c23214ac8a8 utmps-0.0.1.0.tar.gz
437d0c52ef1ecd23775990225647c2a6ca53691fb5688ffa866a0e6db177a08fe465f2e683e8b98ba668d8ddcd4ffa0fe3939f23ded276f4ca7acaa2553b10e6 utmps.initd
0ec30284c64c6ea9f25142c5f4a643bd48b137fe85781b650104f5137ffa4dfc35ca7be3e41e3acd3403ebe1d8c5378073afa4e2f3607d3d794fcd9f98ed51c4 utmpd.run
cba4f2ec3b8f5becf3ae57eecf584745d783046ee6cf5d116322421ad5ffd074d2955da22d31d2b5b1d05f906378aae92f221d2ac95ac21b54a361fbdc0566e7 wtmpd.run"
#!/bin/execlineb -P
fdmove -c 2 1
s6-setuidgid utmp
cd /run/utmps
fdmove 1 3
s6-ipcserver -1 -- .utmpd-socket
utmps-utmpd
#!/sbin/openrc-run
# Copyright 2018 Laurent Bercot
# Distributed under the terms of the ISC License.
#
# OpenRC is only used here to trigger the s6 mechanisms.
depend() {
need s6
}
start() {
ebegin "Starting utmpd and wtmpd services"
mkdir -p -m 0755 /run/utmps
chown utmp:utmp /run/utmps
# OpenRC has no readiness notification framework, so it can run this before s6 is ready.
# To avoid the race (yes, I have hit it), do a polling check here.
# If you want to avoid unnecessary delays, switch to a real service manager like s6-rc.
until test -e /run/service/.s6-svscan/control ; do sleep 1 ; done
ln -nsf /var/lib/utmps/services/utmpd /run/service/utmpd
ln -nsf /var/lib/utmps/services/wtmpd /run/service/wtmpd
s6-svlisten -U -t 5000 -- /var/lib/utmps/services/utmpd /var/lib/utmps/services/wtmpd "" s6-svscanctl -an /run/service
eend $?
}
stop() {
ebegin "Stopping utmpd and wtmpd services"
rm -f /run/service/utmpd /run/service/wtmpd
s6-svlisten -d -t 5000 -- /var/lib/utmps/services/utmpd /var/lib/utmps/services/wtmpd "" s6-svscanctl -an /run/service
eend $?
}
#!/bin/sh
addgroup -S utmp 2>/dev/null
adduser -S -D -H -s /bin/false -G utmp -g utmp utmp 2>/dev/null
echo 'Run "rc-update add s6 default; rc-update add utmps default" to automatically start the utmpd and wtmpd services at boot time.' 1>&2
exit 0
#!/bin/sh
addgroup -S utmp 2>/dev/null
adduser -S -D -H -s /bin/false -G utmp -g utmp utmp 2>/dev/null
echo 'Run "rc-update add s6 default; rc-update add utmps default" to automatically start the utmpd and wtmpd services at boot time.' 1>&2
exit 0
#!/bin/execlineb -P
fdmove -c 2 1
s6-setuidgid utmp
cd /run/utmps
fdmove 1 3
s6-ipcserver -1 -- .wtmpd-socket
utmps-wtmpd
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment