Github messages for voidlinux
 help / color / mirror / Atom feed
From: mobinmob <mobinmob@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [WIP] New package: boot-66serv-2.3.1.
Date: Wed, 15 Sep 2021 15:15:39 +0200	[thread overview]
Message-ID: <20210915131539.xAuqWbm8hOA_BwPiKl6pBR02ooh_cF47sW6IDFnVfg4@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-25743@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 945 bytes --]

There is an updated pull request by mobinmob against master on the void-packages repository

https://github.com/mobinmob/void-packages boot-66serv
https://github.com/void-linux/void-packages/pull/25743

[WIP] New package: boot-66serv-2.3.1.
This PR is the continuation of the packaging and integration work @teldra has done on https://github.com/void-linux/void-packages/pull/23122, which is based on the work @zenfailure has done on https://github.com/void-linux/void-packages/pull/21142. They have  done pretty much all the basic work needed -and then some- to integrate @Obarun 's work with void's packaging.

In this PR I will continue their work, try to make the configuration and switch from one init to the other as smooth as possible and package the frontend service files from https://github.com/mobinmob/void-66-services once they are ready.

A patch file from https://github.com/void-linux/void-packages/pull/25743.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-boot-66serv-25743.patch --]
[-- Type: text/x-diff, Size: 123948 bytes --]

From 50da28ca7507b71cf8d955ef9100f66becf000ae Mon Sep 17 00:00:00 2001
From: teldra <teldra@rotce.de>
Date: Mon, 22 Jun 2020 01:43:05 +0200
Subject: [PATCH 01/32] New package: boot-66serv-2.2.1

based on:
https://github.com/void-linux/void-packages/pull/23122
https://github.com/void-linux/void-packages/pull/21142

[ci-skip]
---
 srcpkgs/boot-66serv/files/66               |  2 ++
 srcpkgs/boot-66serv/files/runit            | 16 ++++++++++++
 srcpkgs/boot-66serv/files/switch-initutils | 22 ++++++++++++++++
 srcpkgs/boot-66serv/files/tty@             | 12 +++++++++
 srcpkgs/boot-66serv/template               | 30 ++++++++++++++++++++++
 5 files changed, 82 insertions(+)
 create mode 100644 srcpkgs/boot-66serv/files/66
 create mode 100644 srcpkgs/boot-66serv/files/runit
 create mode 100755 srcpkgs/boot-66serv/files/switch-initutils
 create mode 100644 srcpkgs/boot-66serv/files/tty@
 create mode 100644 srcpkgs/boot-66serv/template

diff --git a/srcpkgs/boot-66serv/files/66 b/srcpkgs/boot-66serv/files/66
new file mode 100644
index 000000000000..c82ece19fc5e
--- /dev/null
+++ b/srcpkgs/boot-66serv/files/66
@@ -0,0 +1,2 @@
+#!/usr/bin/execlineb -P
+66-boot -b "Booting Voidlinux" -m
diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
new file mode 100644
index 000000000000..9c25c7dff436
--- /dev/null
+++ b/srcpkgs/boot-66serv/files/runit
@@ -0,0 +1,16 @@
+[main]
+@type = longrun
+@version = @VERSION@
+@description = "runit"
+@user = (root)
+@options = ( log )
+
+[start]
+@execute = ( /etc/runit/2 )
+
+[stop]
+@execute = ( exec-cmdline -s { sv force-stop /var/service/*; sv exit /var/service/* } )
+
+[logger]
+@backup = 3 
+@maxsize = 1000000
diff --git a/srcpkgs/boot-66serv/files/switch-initutils b/srcpkgs/boot-66serv/files/switch-initutils
new file mode 100755
index 000000000000..3919274b0f7f
--- /dev/null
+++ b/srcpkgs/boot-66serv/files/switch-initutils
@@ -0,0 +1,22 @@
+# This service automatically moves 
+# /usr/bin/{reboot,poweroff,halt,shutdown}
+# so that if started with 66, users can shutdown etc. with it.
+# It automatically moves everything back if started with
+# runit again.
+# This is run by runit and 66
+
+if grep -q "init=/usr/bin/66" /proc/cmdline; then
+	for i in reboot poweroff halt shutdown; do
+		if ! test -e /usr/bin/${i}.runit; then
+			mv /usr/bin/${i} /usr/bin/${i}.runit
+			ln -s /etc/66/${i} /usr/bin/${i}
+		fi
+	done
+else
+	for i in reboot poweroff halt shutdown; do
+		if test -e /usr/bin/${i}.runit; then
+			rm /usr/bin/${i}
+			mv /usr/bin/${i}.runit /usr/bin/${i} 
+		fi
+	done
+fi
diff --git a/srcpkgs/boot-66serv/files/tty@ b/srcpkgs/boot-66serv/files/tty@
new file mode 100644
index 000000000000..7b72f625d84f
--- /dev/null
+++ b/srcpkgs/boot-66serv/files/tty@
@@ -0,0 +1,12 @@
+[main]
+@type = classic
+@version = @VERSION@
+@description = "Launch @I"
+@user = ( root )
+@options = ( env )
+
+[start]
+@execute = ( execl-cmdline -s { agetty ${cmd_args} @I } )
+
+[environment]
+cmd_args=!-J 38400
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
new file mode 100644
index 000000000000..1a57510f3cfb
--- /dev/null
+++ b/srcpkgs/boot-66serv/template
@@ -0,0 +1,30 @@
+# Template file for 'boot-66serv'
+pkgname=boot-66serv
+version=2.2.1
+revision=1
+wrksrc=${pkgname}-v${version}
+build_style=gnu-configure
+configure_args="--HOSTNAME=voidlinux --TTY=!4
+	--KEYMAP=!us --TZ=Europe/Madrid"
+make_install_target="install install-man install-html"
+hostmakedepends="lowdown"
+makedepends="file"
+depends="s6 s6-rc s6-linux-utils s6-portable-utils 66 66-tools"
+short_desc="Stage 1 boot for 66"
+maintainer="mobinmob <mobinmob@disroot.org>"
+# previous maintainer="teldra <teldra@rotce.de>"
+license="ISC"
+homepage="https://framagit.org/Obarun/boot-66serv"
+conf_files="/etc/66/rc.local"
+distfiles="https://framagit.org/Obarun/${pkgname}/-/archive/v${version}/${pkgname}-v${version}.tar.gz"
+checksum=34eac7f84dd9cafda78a7b5a21eed484e9d6b52e8fba0ade6dbb5f1567def84d
+
+post_install() {
+	vinstall ${FILESDIR}/switch-initutils 644 etc/runit/core-services 99-switch-initutils.sh
+	vbin ${FILESDIR}/66
+	vlicense LICENSE
+	vinstall ${FILESDIR}/tty@ 644 usr/share/66/service/
+	vsed -i "s/@VERSION@/${version}/" "${DESTDIR}/usr/share/66/service/tty@"
+	vinstall ${FILESDIR}/runit 644 usr/share/66/service/
+	vsed -i "s/@VERSION@/${version}/" "${DESTDIR}/usr/share/66/service/runit"
+}

From aa8542b1354b3f01d331b00c1b6465ba4561c62a Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sun, 8 Nov 2020 17:08:32 +0200
Subject: [PATCH 02/32] improve runit service frontend file.

---
 srcpkgs/boot-66serv/files/runit | 18 ++++++++++++++++--
 srcpkgs/boot-66serv/template    |  2 ++
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index 9c25c7dff436..c5e36bbfa4fe 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -6,10 +6,24 @@
 @options = ( log )
 
 [start]
-@execute = ( /etc/runit/2 )
+@build = custom
+@shebang = ( "/bin/sh" )
+@execute = ( 
+PATH=/usr/bin:/usr/sbin
+
+runlevel=66
+
+runsvchdir "${runlevel}"
+mkdir -p /run/runit/runsvdir
+ln -s /etc/runit/runsvdir/current /run/runit/runsvdir/current
+
+exec env - PATH=$PATH \
+    runsvdir -P /run/runit/runsvdir/current 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'
+
+ )
 
 [stop]
-@execute = ( exec-cmdline -s { sv force-stop /var/service/*; sv exit /var/service/* } )
+@execute = ( execl-cmdline -s { sv force-stop /var/service/*; sv exit /var/service/* } )
 
 [logger]
 @backup = 3 
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 1a57510f3cfb..f953ead216ec 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -19,6 +19,8 @@ conf_files="/etc/66/rc.local"
 distfiles="https://framagit.org/Obarun/${pkgname}/-/archive/v${version}/${pkgname}-v${version}.tar.gz"
 checksum=34eac7f84dd9cafda78a7b5a21eed484e9d6b52e8fba0ade6dbb5f1567def84d
 
+make_dirs="/etc/runit/runsvdir/66 0750 root root"
+
 post_install() {
 	vinstall ${FILESDIR}/switch-initutils 644 etc/runit/core-services 99-switch-initutils.sh
 	vbin ${FILESDIR}/66

From b4988814a8dc0e903dc98b3106ea6c2b93703c5c Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Tue, 24 Nov 2020 01:54:26 +0200
Subject: [PATCH 03/32] make [stop] do its job :P

---
 srcpkgs/boot-66serv/files/runit | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index c5e36bbfa4fe..fe741ff2bd8f 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -23,7 +23,11 @@ exec env - PATH=$PATH \
  )
 
 [stop]
-@execute = ( execl-cmdline -s { sv force-stop /var/service/*; sv exit /var/service/* } )
+@build = custom
+@shebang = ( "/bin/sh" )
+@execute = ( 
+ sv force-stop /var/service/*
+ sv exit /var/service/* )
 
 [logger]
 @backup = 3 

From c8fba02ab65c99a4043bca564b6dd5dd17a2c402 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Wed, 25 Nov 2020 21:24:43 +0200
Subject: [PATCH 04/32] Separate switch-initutils code for runit and 66, and
 document both consistently.

---
 srcpkgs/boot-66serv/files/switch-initutils | 34 +++++++++-------------
 1 file changed, 13 insertions(+), 21 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/switch-initutils b/srcpkgs/boot-66serv/files/switch-initutils
index 3919274b0f7f..b596b3ba95f6 100755
--- a/srcpkgs/boot-66serv/files/switch-initutils
+++ b/srcpkgs/boot-66serv/files/switch-initutils
@@ -1,22 +1,14 @@
-# This service automatically moves 
-# /usr/bin/{reboot,poweroff,halt,shutdown}
-# so that if started with 66, users can shutdown etc. with it.
-# It automatically moves everything back if started with
-# runit again.
-# This is run by runit and 66
+# This core service checks for /usr/bin/{reboot,poweroff,halt,shutdown}
+# and if they are part of 66 it deletes them and moves the runit 
+# utilities in their place. It runs by default. There is a similar 
+# oneshot service for 66 that does the opposite and should be enabled.
+# The script make sure that the user has the proper utilities for the 
+# init system they are currently running.
+
+for i in reboot poweroff halt shutdown; do
+	if test -e /usr/bin/${i}.runit; then
+		rm /usr/bin/${i}
+		mv /usr/bin/${i}.runit /usr/bin/${i} 
+	fi
+done
 
-if grep -q "init=/usr/bin/66" /proc/cmdline; then
-	for i in reboot poweroff halt shutdown; do
-		if ! test -e /usr/bin/${i}.runit; then
-			mv /usr/bin/${i} /usr/bin/${i}.runit
-			ln -s /etc/66/${i} /usr/bin/${i}
-		fi
-	done
-else
-	for i in reboot poweroff halt shutdown; do
-		if test -e /usr/bin/${i}.runit; then
-			rm /usr/bin/${i}
-			mv /usr/bin/${i}.runit /usr/bin/${i} 
-		fi
-	done
-fi

From aa8361310f7b9675ec63e819152b2986a3b3f197 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Tue, 15 Dec 2020 23:47:29 +0200
Subject: [PATCH 05/32] add the 66 frontend file in the package.

---
 srcpkgs/boot-66serv/files/switch-initutils-66 | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 srcpkgs/boot-66serv/files/switch-initutils-66

diff --git a/srcpkgs/boot-66serv/files/switch-initutils-66 b/srcpkgs/boot-66serv/files/switch-initutils-66
new file mode 100644
index 000000000000..1bf6c7247455
--- /dev/null
+++ b/srcpkgs/boot-66serv/files/switch-initutils-66
@@ -0,0 +1,28 @@
+
+# This oneshot service checks for /usr/bin/{reboot,poweroff,halt,shutdown}
+# and if they are part of runit-void it renames them and copies the 66 
+# utilities in their place. It must be enabled, especially if one
+# changes between the two init systems. There is a similar script for
+# runit core-services that does the opposite and runs by default with runit. 
+# The service makes sure that the user has the proper utilities for the 
+# init system they are currently running. 
+
+[main]
+@type = oneshot
+@version = @VERSION@
+@description = "Switch initutils"
+@user = ( root )
+
+[start]
+@build = custom
+@shebang = "/bin/sh -c"
+@execute = ( 
+if grep -q "init=/usr/bin/66" /proc/cmdline; then
+       for i in reboot poweroff halt shutdown; do
+               if ! test -e /usr/bin/${i}.runit; then
+                       mv /usr/bin/${i} /usr/bin/${i}.runit
+                       cp /etc/66/${i} /usr/bin/${i}
+               fi
+       done
+fi
+)

From 65d238a1422a498e4d43719d115f982bff54fc42 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Tue, 15 Dec 2020 23:51:22 +0200
Subject: [PATCH 06/32] install switch-initutils for 66 and change how the
 '@version' key is set.

---
 srcpkgs/boot-66serv/template | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index f953ead216ec..fa659c37010d 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -25,8 +25,12 @@ post_install() {
 	vinstall ${FILESDIR}/switch-initutils 644 etc/runit/core-services 99-switch-initutils.sh
 	vbin ${FILESDIR}/66
 	vlicense LICENSE
+	# @version should be incremented only when there is a change in the specific
+	# frontend service file.
 	vinstall ${FILESDIR}/tty@ 644 usr/share/66/service/
-	vsed -i "s/@VERSION@/${version}/" "${DESTDIR}/usr/share/66/service/tty@"
+	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/tty@"
 	vinstall ${FILESDIR}/runit 644 usr/share/66/service/
-	vsed -i "s/@VERSION@/${version}/" "${DESTDIR}/usr/share/66/service/runit"
+	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/runit"
+	vinstall ${FILESDIR}/switch-initutils-66 644 usr/share/66/service/ switch-initutils
+	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/switch-initutils"
 }

From 72e5e8ffd3063b60ba018f3b5682ab4af5aea1bb Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 28 Dec 2020 23:57:01 +0200
Subject: [PATCH 07/32] New package: void-66-services-0.0.1

---
 srcpkgs/void-66-services/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/void-66-services/template

diff --git a/srcpkgs/void-66-services/template b/srcpkgs/void-66-services/template
new file mode 100644
index 000000000000..7ed84c937134
--- /dev/null
+++ b/srcpkgs/void-66-services/template
@@ -0,0 +1,17 @@
+# Template file for 'void-66-services'
+pkgname=void-66-services
+version=0.0.1
+revision=1
+build_style=gnu-makefile
+depends="66"
+short_desc="66 service frontend files for voidlinux"
+maintainer="mobinmob <mobinmob@disroot.org>"
+license="BSD-2-Clause"
+homepage="https://github.com/mobinmob/void-66-services/"
+distfiles="https://github.com/mobinmob/void-66-services/archive/v${version}.tar.gz"
+checksum=ca223594ebae8e7a79e16f150bbebd44878143c07b928c9985020b5183175b95
+
+post_install() {
+	vlicense LICENSE
+	vlicense AUTHORS
+}

From 128695569ec9142dbc4c138c9fdd2fa10d6d1ffc Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sun, 3 Jan 2021 16:22:47 +0200
Subject: [PATCH 08/32] more work on the runit service.

---
 srcpkgs/boot-66serv/files/runit | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index fe741ff2bd8f..d3d60bb82dd8 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -1,5 +1,5 @@
 [main]
-@type = longrun
+@type = classic
 @version = @VERSION@
 @description = "runit"
 @user = (root)
@@ -14,20 +14,19 @@ PATH=/usr/bin:/usr/sbin
 runlevel=66
 
 runsvchdir "${runlevel}"
-mkdir -p /run/runit/runsvdir
-ln -s /etc/runit/runsvdir/current /run/runit/runsvdir/current
-
-exec env - PATH=$PATH \
-    runsvdir -P /run/runit/runsvdir/current 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'
+s6-mkdir -v -p /run/runit/runsvdir
+s6-ln -s /etc/runit/runsvdir/current /run/runit/runsvdir/current
 
+exec s6-env PATH=$PATH \
+    runsvdir -P /run/runit/runsvdir/current
  )
 
 [stop]
 @build = custom
 @shebang = ( "/bin/sh" )
 @execute = ( 
- sv force-stop /var/service/*
- sv exit /var/service/* )
+	sv force-stop /var/service/*
+	sv exit /var/service/* )
 
 [logger]
 @backup = 3 

From 4b04791a0c776c9429f195ccef323f1bc2c86085 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sun, 3 Jan 2021 17:13:57 +0200
Subject: [PATCH 09/32] add -i switch to s6-env: the /etc/runit/2 script uses -
 which is non-standard but in gnu coreutils and busybox does the same as -i.

---
 srcpkgs/boot-66serv/files/runit | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index d3d60bb82dd8..362266bad06a 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -17,7 +17,7 @@ runsvchdir "${runlevel}"
 s6-mkdir -v -p /run/runit/runsvdir
 s6-ln -s /etc/runit/runsvdir/current /run/runit/runsvdir/current
 
-exec s6-env PATH=$PATH \
+exec s6-env -i PATH=$PATH \
     runsvdir -P /run/runit/runsvdir/current
  )
 

From b84b021f6cebb5a6f08ed3fbb3a0401d98c8078c Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sat, 23 Jan 2021 22:07:22 +0200
Subject: [PATCH 10/32] boot-66serv: update to 2.3.0 adapt to new 66 version.

---
 srcpkgs/boot-66serv/files/runit | 10 ++++------
 srcpkgs/boot-66serv/files/tty@  |  1 -
 srcpkgs/boot-66serv/template    |  8 ++++----
 3 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index 362266bad06a..3a0f89f87077 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -3,12 +3,11 @@
 @version = @VERSION@
 @description = "runit"
 @user = (root)
-@options = ( log )
 
 [start]
 @build = custom
 @shebang = ( "/bin/sh" )
-@execute = ( 
+@execute = (
 PATH=/usr/bin:/usr/sbin
 
 runlevel=66
@@ -24,10 +23,9 @@ exec s6-env -i PATH=$PATH \
 [stop]
 @build = custom
 @shebang = ( "/bin/sh" )
-@execute = ( 
-	sv force-stop /var/service/*
-	sv exit /var/service/* )
+@execute = ( sv force-stop /var/service/* }
+ sv exit /var/service/* )
 
 [logger]
-@backup = 3 
+@backup = 3
 @maxsize = 1000000
diff --git a/srcpkgs/boot-66serv/files/tty@ b/srcpkgs/boot-66serv/files/tty@
index 7b72f625d84f..f4a783bde6c2 100644
--- a/srcpkgs/boot-66serv/files/tty@
+++ b/srcpkgs/boot-66serv/files/tty@
@@ -3,7 +3,6 @@
 @version = @VERSION@
 @description = "Launch @I"
 @user = ( root )
-@options = ( env )
 
 [start]
 @execute = ( execl-cmdline -s { agetty ${cmd_args} @I } )
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index fa659c37010d..c088b82dd9e2 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -1,6 +1,6 @@
 # Template file for 'boot-66serv'
 pkgname=boot-66serv
-version=2.2.1
+version=2.3.0
 revision=1
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
@@ -14,10 +14,10 @@ short_desc="Stage 1 boot for 66"
 maintainer="mobinmob <mobinmob@disroot.org>"
 # previous maintainer="teldra <teldra@rotce.de>"
 license="ISC"
-homepage="https://framagit.org/Obarun/boot-66serv"
+homepage="https://framagit.org/pkg/obmods/boot-66serv"
 conf_files="/etc/66/rc.local"
-distfiles="https://framagit.org/Obarun/${pkgname}/-/archive/v${version}/${pkgname}-v${version}.tar.gz"
-checksum=34eac7f84dd9cafda78a7b5a21eed484e9d6b52e8fba0ade6dbb5f1567def84d
+distfiles="https://framagit.org/pkg/obmods/boot-66serv/-/archive/v${version}/boot-66serv-v${version}.tar.bz2"
+checksum=03b692700030eaae1e882b6df97e84cbbf0180e067291342d5ed9117047475ba
 
 make_dirs="/etc/runit/runsvdir/66 0750 root root"
 

From f28c6ed310c012ed2bb9b79180d1ae97fa5ade4d Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 1 Feb 2021 19:20:01 +0200
Subject: [PATCH 11/32] remove tty@ frontend service file - no longer needed.

---
 srcpkgs/boot-66serv/files/tty@ | 11 -----------
 srcpkgs/boot-66serv/template   |  2 --
 2 files changed, 13 deletions(-)
 delete mode 100644 srcpkgs/boot-66serv/files/tty@

diff --git a/srcpkgs/boot-66serv/files/tty@ b/srcpkgs/boot-66serv/files/tty@
deleted file mode 100644
index f4a783bde6c2..000000000000
--- a/srcpkgs/boot-66serv/files/tty@
+++ /dev/null
@@ -1,11 +0,0 @@
-[main]
-@type = classic
-@version = @VERSION@
-@description = "Launch @I"
-@user = ( root )
-
-[start]
-@execute = ( execl-cmdline -s { agetty ${cmd_args} @I } )
-
-[environment]
-cmd_args=!-J 38400
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index c088b82dd9e2..4747249557de 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -27,8 +27,6 @@ post_install() {
 	vlicense LICENSE
 	# @version should be incremented only when there is a change in the specific
 	# frontend service file.
-	vinstall ${FILESDIR}/tty@ 644 usr/share/66/service/
-	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/tty@"
 	vinstall ${FILESDIR}/runit 644 usr/share/66/service/
 	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/runit"
 	vinstall ${FILESDIR}/switch-initutils-66 644 usr/share/66/service/ switch-initutils

From 08f6d924c77f17717a980f9ca1d9a6262a739a4b Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Wed, 3 Feb 2021 02:13:34 +0200
Subject: [PATCH 12/32] create symlink in /etc/66conf.rc that points to the
 conf file of boot@system.

---
 srcpkgs/boot-66serv/template | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 4747249557de..4fce1c84b8a0 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -24,6 +24,8 @@ make_dirs="/etc/runit/runsvdir/66 0750 root root"
 post_install() {
 	vinstall ${FILESDIR}/switch-initutils 644 etc/runit/core-services 99-switch-initutils.sh
 	vbin ${FILESDIR}/66
+	# Create symlink for the boot@system service configuration file
+	ln -s /etc/66/conf/boot@system/version/boot@system "${DESTDIR}/etc/66rc.conf"
 	vlicense LICENSE
 	# @version should be incremented only when there is a change in the specific
 	# frontend service file.

From 949d862d9288e4458a7d3410e7d83faa166d797c Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Thu, 4 Feb 2021 21:47:25 +0200
Subject: [PATCH 13/32] add 66boot-initial-setup script, small fixes in the
 template.

---
 .../boot-66serv/files/66boot-initial-setup    | 33 +++++++++++++++++++
 srcpkgs/boot-66serv/template                  | 19 ++++++++---
 2 files changed, 47 insertions(+), 5 deletions(-)
 create mode 100644 srcpkgs/boot-66serv/files/66boot-initial-setup

diff --git a/srcpkgs/boot-66serv/files/66boot-initial-setup b/srcpkgs/boot-66serv/files/66boot-initial-setup
new file mode 100644
index 000000000000..8d289de798bf
--- /dev/null
+++ b/srcpkgs/boot-66serv/files/66boot-initial-setup
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# Script must run as root, otherwise it creates trees
+# as the user.
+user=$(id -u)
+s6-test "$user" -ne 0 && printf "You need to run this script as root! \n" && exit 1
+
+# Infromataion for the user, in case of failure. 66 output is informative, this
+# is just a pointer to the docs.
+msg_trees() {
+	printf "Some trees and/or files are already present in the system.\nIf you want to remove them, consult the 66-tree documentation.\n"
+	exit 1
+}
+
+# Create the mandatory boot tree.
+66-tree -n boot || msg_trees 
+# Enable the boot@system service in the boot tree.
+66-enable -F -t boot boot@system || msg_trees
+# Copy the default boot@conf so that is will survive updates and be accesible
+#  though /etc/66rc.conf.
+cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system || msg_trees
+
+# Create default tree, enable it and make it current.
+66-tree -nEc default || msg_trees
+# Enable switch-initutils oneshot service in the default tree.
+66-enable switch-initutils || msg_trees
+
+# Create and enable runit tree.
+66-tree -nE runit || msg_trees
+# Enable the runit service in the runit tree.
+66-enable -t runit runit || msg_trees
+# Start runit tree after the default tree.
+66-tree -S default runit || msg_trees
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 4fce1c84b8a0..4c3e1f5cca76 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -22,15 +22,24 @@ checksum=03b692700030eaae1e882b6df97e84cbbf0180e067291342d5ed9117047475ba
 make_dirs="/etc/runit/runsvdir/66 0750 root root"
 
 post_install() {
-	vinstall ${FILESDIR}/switch-initutils 644 etc/runit/core-services 99-switch-initutils.sh
-	vbin ${FILESDIR}/66
+
+	# Install the switch-initutils core service for runit.
+	vinstall "${FILESDIR}"/switch-initutils 644 etc/runit/core-services 99-switch-initutils.sh
+	# Install the 66 wrapper for 66-boot
+	vbin "${FILESDIR}"/66
+	# Install the 66boot-initial-setup utility
+	vbin "${FILESDIR}"/66boot-initial-setup
 	# Create symlink for the boot@system service configuration file
 	ln -s /etc/66/conf/boot@system/version/boot@system "${DESTDIR}/etc/66rc.conf"
-	vlicense LICENSE
+
+	# Install runit and switch-initutils services for 66
 	# @version should be incremented only when there is a change in the specific
 	# frontend service file.
-	vinstall ${FILESDIR}/runit 644 usr/share/66/service/
+	vinstall "${FILESDIR}"/runit 644 usr/share/66/service/
 	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/runit"
-	vinstall ${FILESDIR}/switch-initutils-66 644 usr/share/66/service/ switch-initutils
+	vinstall "${FILESDIR}"/switch-initutils-66 644 usr/share/66/service/ switch-initutils
 	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/switch-initutils"
+
+	# Install license file
+	vlicense LICENSE
 }

From 2e2ba60cc7291c713e42d2fbb8eaa5dd3102dc5b Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Thu, 4 Feb 2021 22:20:01 +0200
Subject: [PATCH 14/32] Fixes proposed by @ericonr.

---
 srcpkgs/boot-66serv/files/66    | 2 +-
 srcpkgs/boot-66serv/files/runit | 2 +-
 srcpkgs/boot-66serv/template    | 1 -
 3 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/66 b/srcpkgs/boot-66serv/files/66
index c82ece19fc5e..2e5bb6a10a5f 100644
--- a/srcpkgs/boot-66serv/files/66
+++ b/srcpkgs/boot-66serv/files/66
@@ -1,2 +1,2 @@
 #!/usr/bin/execlineb -P
-66-boot -b "Booting Voidlinux" -m
+66-boot -b "Booting Void Linux" -m
diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index 3a0f89f87077..9f0f36d73c3c 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -8,7 +8,7 @@
 @build = custom
 @shebang = ( "/bin/sh" )
 @execute = (
-PATH=/usr/bin:/usr/sbin
+PATH=/usr/bin
 
 runlevel=66
 
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 4c3e1f5cca76..0efd5480a012 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -12,7 +12,6 @@ makedepends="file"
 depends="s6 s6-rc s6-linux-utils s6-portable-utils 66 66-tools"
 short_desc="Stage 1 boot for 66"
 maintainer="mobinmob <mobinmob@disroot.org>"
-# previous maintainer="teldra <teldra@rotce.de>"
 license="ISC"
 homepage="https://framagit.org/pkg/obmods/boot-66serv"
 conf_files="/etc/66/rc.local"

From 796af008a9a8141f6315875b275d9a8a93aa5d4d Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Fri, 5 Feb 2021 01:24:11 +0200
Subject: [PATCH 15/32] fixes in the template, 66boot-initial-setup and the
 runit service

---
 srcpkgs/boot-66serv/files/66boot-initial-setup | 2 +-
 srcpkgs/boot-66serv/files/runit                | 7 +++++--
 srcpkgs/boot-66serv/template                   | 5 +++--
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/66boot-initial-setup b/srcpkgs/boot-66serv/files/66boot-initial-setup
index 8d289de798bf..4d1e42ee7472 100644
--- a/srcpkgs/boot-66serv/files/66boot-initial-setup
+++ b/srcpkgs/boot-66serv/files/66boot-initial-setup
@@ -18,7 +18,7 @@ msg_trees() {
 66-enable -F -t boot boot@system || msg_trees
 # Copy the default boot@conf so that is will survive updates and be accesible
 #  though /etc/66rc.conf.
-cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system || msg_trees
+if test ! -f /etc/66/conf/boot@system/version/boot@system; then  cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system ; fi 
 
 # Create default tree, enable it and make it current.
 66-tree -nEc default || msg_trees
diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index 9f0f36d73c3c..9c0c16f5c1d4 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -8,13 +8,16 @@
 @build = custom
 @shebang = ( "/bin/sh" )
 @execute = (
-PATH=/usr/bin
+exec 2>&1
 
+PATH=/usr/bin
 runlevel=66
 
 runsvchdir "${runlevel}"
 s6-mkdir -v -p /run/runit/runsvdir
-s6-ln -s /etc/runit/runsvdir/current /run/runit/runsvdir/current
+ln -s /etc/runit/runsvdir/current /run/runit/runsvdir/current
+s6-rmrf /var/service/current
+s6-rmrf /var/service/supervise
 
 exec s6-env -i PATH=$PATH \
     runsvdir -P /run/runit/runsvdir/current
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 0efd5480a012..f4467c0f0c0e 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -4,8 +4,9 @@ version=2.3.0
 revision=1
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
-configure_args="--HOSTNAME=voidlinux --TTY=!4
-	--KEYMAP=!us --TZ=Europe/Madrid"
+configure_args="--HOSTNAME=!voidlinux --TTY=!4
+	--KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no
+	--SWAP=!yes"
 make_install_target="install install-man install-html"
 hostmakedepends="lowdown"
 makedepends="file"

From 4777209288cccad05120136a93caf618220d98bf Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sat, 6 Feb 2021 02:46:03 +0200
Subject: [PATCH 16/32] do not enable swap in the template - created problems
 when no classic swap partition/file is available (trident/zfs).

---
 srcpkgs/boot-66serv/template | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index f4467c0f0c0e..2192a410f9cd 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -5,8 +5,7 @@ revision=1
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
 configure_args="--HOSTNAME=!voidlinux --TTY=!4
-	--KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no
-	--SWAP=!yes"
+	--KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no"
 make_install_target="install install-man install-html"
 hostmakedepends="lowdown"
 makedepends="file"

From d55e6562a506cca13bfd9d7764a2edb97b051a4b Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 8 Feb 2021 13:12:25 +0200
Subject: [PATCH 17/32] files/66boot-initial-setup : small change to make more
 readable.

---
 srcpkgs/boot-66serv/files/66boot-initial-setup | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/boot-66serv/files/66boot-initial-setup b/srcpkgs/boot-66serv/files/66boot-initial-setup
index 4d1e42ee7472..e8679bd7de02 100644
--- a/srcpkgs/boot-66serv/files/66boot-initial-setup
+++ b/srcpkgs/boot-66serv/files/66boot-initial-setup
@@ -18,7 +18,7 @@ msg_trees() {
 66-enable -F -t boot boot@system || msg_trees
 # Copy the default boot@conf so that is will survive updates and be accesible
 #  though /etc/66rc.conf.
-if test ! -f /etc/66/conf/boot@system/version/boot@system; then  cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system ; fi 
+[ ! -f /etc/66/conf/boot@system/version/boot@system ] && cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system
 
 # Create default tree, enable it and make it current.
 66-tree -nEc default || msg_trees

From b7b1d657e9953bf8b9a6b00ed5311db6a2f2c0e7 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 8 Feb 2021 19:05:47 +0200
Subject: [PATCH 18/32] change the default zfs import method to zpoolcache -
 thanks @gspe!

---
 srcpkgs/boot-66serv/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 2192a410f9cd..1876f0852b68 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -5,7 +5,8 @@ revision=1
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
 configure_args="--HOSTNAME=!voidlinux --TTY=!4
-	--KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no"
+ --KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no
+ --ZFS_IMPORT=!zpoolcache"
 make_install_target="install install-man install-html"
 hostmakedepends="lowdown"
 makedepends="file"

From ce7c6af9a72490636532305f2cc0f1e48ecfbd1c Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 15 Feb 2021 00:50:04 +0200
Subject: [PATCH 19/32] void-66-services: update to 0.0.2.

---
 srcpkgs/void-66-services/template | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/void-66-services/template b/srcpkgs/void-66-services/template
index 7ed84c937134..343809e845e4 100644
--- a/srcpkgs/void-66-services/template
+++ b/srcpkgs/void-66-services/template
@@ -1,17 +1,19 @@
 # Template file for 'void-66-services'
 pkgname=void-66-services
-version=0.0.1
+version=0.0.2
 revision=1
-build_style=gnu-makefile
 depends="66"
 short_desc="66 service frontend files for voidlinux"
 maintainer="mobinmob <mobinmob@disroot.org>"
 license="BSD-2-Clause"
 homepage="https://github.com/mobinmob/void-66-services/"
 distfiles="https://github.com/mobinmob/void-66-services/archive/v${version}.tar.gz"
-checksum=ca223594ebae8e7a79e16f150bbebd44878143c07b928c9985020b5183175b95
+checksum=020b3a2cc5c1bafa7328a5d2db7be8baf08ecef8d4a9c8440c78c3db7f342678
 
-post_install() {
+do_install() {
+	vmkdir usr
+	vcopy usr /
+	chmod +x "${DESTDIR}/usr/share/66/service/dbus/data/check"
 	vlicense LICENSE
 	vlicense AUTHORS
 }

From d9ea518340597331905f23acf8012c9ac1cf4a4a Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 15 Feb 2021 00:53:45 +0200
Subject: [PATCH 20/32] files/66boot-initial-setup: small typo fix.

---
 srcpkgs/boot-66serv/files/66boot-initial-setup | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/boot-66serv/files/66boot-initial-setup b/srcpkgs/boot-66serv/files/66boot-initial-setup
index e8679bd7de02..513f614df7de 100644
--- a/srcpkgs/boot-66serv/files/66boot-initial-setup
+++ b/srcpkgs/boot-66serv/files/66boot-initial-setup
@@ -5,7 +5,7 @@
 user=$(id -u)
 s6-test "$user" -ne 0 && printf "You need to run this script as root! \n" && exit 1
 
-# Infromataion for the user, in case of failure. 66 output is informative, this
+# Information for the user, in case of failure. 66 output is informative, this
 # is just a pointer to the docs.
 msg_trees() {
 	printf "Some trees and/or files are already present in the system.\nIf you want to remove them, consult the 66-tree documentation.\n"

From 4d77ebae9124976c4dfc344c8e8fdab4272be4fe Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Tue, 16 Feb 2021 17:13:44 +0200
Subject: [PATCH 21/32] files/runit: add /usr/sbin to PATH again...

---
 srcpkgs/boot-66serv/files/runit | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/boot-66serv/files/runit b/srcpkgs/boot-66serv/files/runit
index 9c0c16f5c1d4..35890b9fe7b7 100644
--- a/srcpkgs/boot-66serv/files/runit
+++ b/srcpkgs/boot-66serv/files/runit
@@ -10,7 +10,7 @@
 @execute = (
 exec 2>&1
 
-PATH=/usr/bin
+PATH=/usr/bin:/usr/sbin
 runlevel=66
 
 runsvchdir "${runlevel}"

From cb984e2723e7f99320413000c9ea50b9f4330344 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sun, 28 Feb 2021 00:22:41 +0100
Subject: [PATCH 22/32] 66boot-initial-setup: remove the warning from the conf
 file.

---
 srcpkgs/boot-66serv/files/66boot-initial-setup | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/66boot-initial-setup b/srcpkgs/boot-66serv/files/66boot-initial-setup
index 513f614df7de..0d809c8f2f6d 100644
--- a/srcpkgs/boot-66serv/files/66boot-initial-setup
+++ b/srcpkgs/boot-66serv/files/66boot-initial-setup
@@ -17,8 +17,10 @@ msg_trees() {
 # Enable the boot@system service in the boot tree.
 66-enable -F -t boot boot@system || msg_trees
 # Copy the default boot@conf so that is will survive updates and be accesible
-#  though /etc/66rc.conf.
-[ ! -f /etc/66/conf/boot@system/version/boot@system ] && cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system
+# though /etc/66rc.conf. Also, remove the warning in the first lines of the file.
+[ ! -f /etc/66/conf/boot@system/version/boot@system ] && cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system && \
+warn=$( sed -n -e "/##\ \[STARTWARN\]/p" /etc/66rc.conf | tr -d '[:space:]') && \
+ [ "$warn" = "##[STARTWARN]" ] && sed -i '1,5d' /etc/66rc.conf
 
 # Create default tree, enable it and make it current.
 66-tree -nEc default || msg_trees

From c430a4f71b3be83ff55d13f77cc77dd95ebb492c Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sun, 28 Feb 2021 00:23:54 +0100
Subject: [PATCH 23/32] use upstream patches for local-iptables and
 devices-crypttab.

---
 ...202f5583369daa6f2ccbc0bafab3738e47d66.diff | 13 ++++++
 ...6e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff | 40 +++++++++++++++++++
 srcpkgs/boot-66serv/template                  |  1 +
 3 files changed, 54 insertions(+)
 create mode 100644 srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff
 create mode 100644 srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff

diff --git a/srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff b/srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff
new file mode 100644
index 000000000000..b4fe592ea5a1
--- /dev/null
+++ b/srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff
@@ -0,0 +1,13 @@
+diff --git a/module/boot@/service/system/devices/devices-crypttab b/module/boot@/service/system/devices/devices-crypttab
+index 5b808f288a2d2f780b7966485ddb9cd561f856ba..80f4c031d9f35515aef6b10f27fd067ee75d0f90 100644
+--- a/module/boot@/service/system/devices/devices-crypttab
++++ b/module/boot@/service/system/devices/devices-crypttab
+@@ -4,7 +4,7 @@
+ @description = "Active encrypted devices"
+ @user = ( root )
+ @options = ( !log )
+-@depends = ( udevadm )
++@depends = ( udevadm devices-brtfs devices-dmraid devices-lvm )
+ 
+ [start]
+ @execute =
diff --git a/srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff b/srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff
new file mode 100644
index 000000000000..a560272de2c6
--- /dev/null
+++ b/srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff
@@ -0,0 +1,40 @@
+diff --git a/module/boot@/service/local/firewall/local-iptables b/module/boot@/service/local/firewall/local-iptables
+index 2ba35fb7e02b122b93f00c023ee673fbbb7b1bbe..27e224344d3c70be674a018124d1f5490a43f8f2 100644
+--- a/module/boot@/service/local/firewall/local-iptables
++++ b/module/boot@/service/local/firewall/local-iptables
+@@ -20,19 +20,28 @@
+ )
+ 
+ [stop]
++@build = custom
++@shebang = "/usr/bin/bash -c"
+ @execute =
+ (
+-    if { 66-yeller -cdp local-iptables -1 /dev/console stops... }
+-    if -nt {
+ 
+-        execl-toc -x ${script_file}
+-        ${script_file}
++    exec 2>&1
+ 
+-    }
+-    66-yeller -fcdp local-iptables -1 /dev/console crashed!
++    66-yeller -cdp local-iptables -1 /dev/console stops...
++
++    if ! type -p iptables &>/dev/null; then
++      66-yeller -fcdp local-iptables -1 /dev/console "unable to find iptables program"
++    fi
++
++    while read -r table; do
++        tables+=("/usr/share/iptables/empty-$table.rules")
++    done <"/proc/net/ip_tables_names"
++
++    if (( ${#tables[*]} )); then
++        cat "${tables[@]}" | iptables-restore
++    fi
+ )
+ 
+ [environment]
+ script_conf=!/etc/iptables/iptables.rules
+-script_file=!/usr/lib/iptables/scripts/iptables-flush
+ 
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 1876f0852b68..c61af8843800 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -18,6 +18,7 @@ homepage="https://framagit.org/pkg/obmods/boot-66serv"
 conf_files="/etc/66/rc.local"
 distfiles="https://framagit.org/pkg/obmods/boot-66serv/-/archive/v${version}/boot-66serv-v${version}.tar.bz2"
 checksum=03b692700030eaae1e882b6df97e84cbbf0180e067291342d5ed9117047475ba
+patch_args=" -Np1"
 
 make_dirs="/etc/runit/runsvdir/66 0750 root root"
 

From 2480aa6811ec6e6563c030bb72f42b70d9e929d5 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Wed, 3 Mar 2021 22:22:43 +0200
Subject: [PATCH 24/32] template: Create the log dir with proper permissions at
 installation: normally it is created on first run, but it can fail.

---
 srcpkgs/boot-66serv/template | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index c61af8843800..ed10d74a67e9 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -20,7 +20,8 @@ distfiles="https://framagit.org/pkg/obmods/boot-66serv/-/archive/v${version}/boo
 checksum=03b692700030eaae1e882b6df97e84cbbf0180e067291342d5ed9117047475ba
 patch_args=" -Np1"
 
-make_dirs="/etc/runit/runsvdir/66 0750 root root"
+make_dirs="/etc/runit/runsvdir/66 0750 root root
+	/var/log/66 0750 _s6log _s6log"
 
 post_install() {
 

From da5f5c58ee57a74e3f76f3a66fac52586644ed59 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Wed, 3 Mar 2021 22:23:39 +0200
Subject: [PATCH 25/32] files/66boot-initial-setup: clean and improve the
 script: -use a variable for the new configuration file.

---
 srcpkgs/boot-66serv/files/66boot-initial-setup | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/66boot-initial-setup b/srcpkgs/boot-66serv/files/66boot-initial-setup
index 0d809c8f2f6d..d466a1b88658 100644
--- a/srcpkgs/boot-66serv/files/66boot-initial-setup
+++ b/srcpkgs/boot-66serv/files/66boot-initial-setup
@@ -18,9 +18,10 @@ msg_trees() {
 66-enable -F -t boot boot@system || msg_trees
 # Copy the default boot@conf so that is will survive updates and be accesible
 # though /etc/66rc.conf. Also, remove the warning in the first lines of the file.
-[ ! -f /etc/66/conf/boot@system/version/boot@system ] && cp /etc/66/conf/boot@system/version/.boot@system /etc/66/conf/boot@system/version/boot@system && \
+new_conf="/etc/66/conf/boot@system/version/boot@system"
+[ ! -f "$new_conf" ] && cp /etc/66/conf/boot@system/version/.boot@system "$new_conf" && \
 warn=$( sed -n -e "/##\ \[STARTWARN\]/p" /etc/66rc.conf | tr -d '[:space:]') && \
- [ "$warn" = "##[STARTWARN]" ] && sed -i '1,5d' /etc/66rc.conf
+ [ "$warn" = "##[STARTWARN]" ] && sed -i '1,5d' "$new_conf"
 
 # Create default tree, enable it and make it current.
 66-tree -nEc default || msg_trees

From 334bee01cd7ca8b64be4f9eb410b2f193cf839a7 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Tue, 16 Mar 2021 21:18:44 +0200
Subject: [PATCH 26/32] New package: scandir-66serv-0.3.1.

---
 srcpkgs/scandir-66serv/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/scandir-66serv/template

diff --git a/srcpkgs/scandir-66serv/template b/srcpkgs/scandir-66serv/template
new file mode 100644
index 000000000000..a064a1c9b962
--- /dev/null
+++ b/srcpkgs/scandir-66serv/template
@@ -0,0 +1,17 @@
+# Template file for 'scandir-66serv'
+pkgname=scandir-66serv
+version=0.3.1
+revision=1
+wrksrc="${pkgname}-v${version}"
+build_style=configure
+depends="66 66-tools"
+short_desc="66 module that enables user services"
+maintainer="mobinmob <mobinmob@disroot.org>"
+license="ISC"
+homepage="https://framagit.org/pkg/obmods/scandir-66serv"
+distfiles="https://framagit.org/pkg/obmods/scandir-66serv/-/archive/v${version}/scandir-66serv-v${version}.tar.bz2"
+checksum=2a5bb9ff80f7bf8e6caaccd243eb1f077a4e7ef12314aeca539673fbc92b9756
+
+post_install() {
+	vlicense LICENSE
+}

From d503db4f94ab25efeb17b40a6534b39277288a28 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sun, 21 Mar 2021 17:22:00 +0200
Subject: [PATCH 27/32] files/switch-initutils-66: make the service more
 robust.

---
 srcpkgs/boot-66serv/files/switch-initutils-66 | 15 +++++++++------
 srcpkgs/boot-66serv/template                  |  2 +-
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/switch-initutils-66 b/srcpkgs/boot-66serv/files/switch-initutils-66
index 1bf6c7247455..4239b7b53cc3 100644
--- a/srcpkgs/boot-66serv/files/switch-initutils-66
+++ b/srcpkgs/boot-66serv/files/switch-initutils-66
@@ -17,12 +17,15 @@
 @build = custom
 @shebang = "/bin/sh -c"
 @execute = ( 
+
+poweroff_util=$(readlink -f /usr/bin/poweroff)
+
 if grep -q "init=/usr/bin/66" /proc/cmdline; then
-       for i in reboot poweroff halt shutdown; do
-               if ! test -e /usr/bin/${i}.runit; then
-                       mv /usr/bin/${i} /usr/bin/${i}.runit
-                       cp /etc/66/${i} /usr/bin/${i}
-               fi
-       done
+        if [ "$poweroff_util" != /usr/bin/poweroff ]; then
+		for i in reboot poweroff halt shutdown; do
+            mv /usr/bin/${i} /usr/bin/${i}.runit
+            cp /etc/66/${i} /usr/bin/${i}
+            done
+            fi
 fi
 )
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index ed10d74a67e9..26e9dada5db4 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -40,7 +40,7 @@ post_install() {
 	vinstall "${FILESDIR}"/runit 644 usr/share/66/service/
 	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/runit"
 	vinstall "${FILESDIR}"/switch-initutils-66 644 usr/share/66/service/ switch-initutils
-	vsed -i "s/@VERSION@/0.0.1/" "${DESTDIR}/usr/share/66/service/switch-initutils"
+	vsed -i "s/@VERSION@/0.0.2/" "${DESTDIR}/usr/share/66/service/switch-initutils"
 
 	# Install license file
 	vlicense LICENSE

From e2c16fc9ae375bafb6c75fd97b7204611fda3a50 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 22 Mar 2021 22:48:57 +0200
Subject: [PATCH 28/32] remove unneeded lines in template, use upstream fixes.

---
 ...202f5583369daa6f2ccbc0bafab3738e47d66.diff |  13 -
 ...6e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff |  40 ----
 .../patches/upstream-20210322.diff            | 222 ++++++++++++++++++
 srcpkgs/boot-66serv/template                  |   6 +-
 4 files changed, 224 insertions(+), 57 deletions(-)
 delete mode 100644 srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff
 delete mode 100644 srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff
 create mode 100644 srcpkgs/boot-66serv/patches/upstream-20210322.diff

diff --git a/srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff b/srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff
deleted file mode 100644
index b4fe592ea5a1..000000000000
--- a/srcpkgs/boot-66serv/patches/d41202f5583369daa6f2ccbc0bafab3738e47d66.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/module/boot@/service/system/devices/devices-crypttab b/module/boot@/service/system/devices/devices-crypttab
-index 5b808f288a2d2f780b7966485ddb9cd561f856ba..80f4c031d9f35515aef6b10f27fd067ee75d0f90 100644
---- a/module/boot@/service/system/devices/devices-crypttab
-+++ b/module/boot@/service/system/devices/devices-crypttab
-@@ -4,7 +4,7 @@
- @description = "Active encrypted devices"
- @user = ( root )
- @options = ( !log )
--@depends = ( udevadm )
-+@depends = ( udevadm devices-brtfs devices-dmraid devices-lvm )
- 
- [start]
- @execute =
diff --git a/srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff b/srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff
deleted file mode 100644
index a560272de2c6..000000000000
--- a/srcpkgs/boot-66serv/patches/f046e12f7e07a1874cdcd2b791b68b3c8e1e7f85.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/module/boot@/service/local/firewall/local-iptables b/module/boot@/service/local/firewall/local-iptables
-index 2ba35fb7e02b122b93f00c023ee673fbbb7b1bbe..27e224344d3c70be674a018124d1f5490a43f8f2 100644
---- a/module/boot@/service/local/firewall/local-iptables
-+++ b/module/boot@/service/local/firewall/local-iptables
-@@ -20,19 +20,28 @@
- )
- 
- [stop]
-+@build = custom
-+@shebang = "/usr/bin/bash -c"
- @execute =
- (
--    if { 66-yeller -cdp local-iptables -1 /dev/console stops... }
--    if -nt {
- 
--        execl-toc -x ${script_file}
--        ${script_file}
-+    exec 2>&1
- 
--    }
--    66-yeller -fcdp local-iptables -1 /dev/console crashed!
-+    66-yeller -cdp local-iptables -1 /dev/console stops...
-+
-+    if ! type -p iptables &>/dev/null; then
-+      66-yeller -fcdp local-iptables -1 /dev/console "unable to find iptables program"
-+    fi
-+
-+    while read -r table; do
-+        tables+=("/usr/share/iptables/empty-$table.rules")
-+    done <"/proc/net/ip_tables_names"
-+
-+    if (( ${#tables[*]} )); then
-+        cat "${tables[@]}" | iptables-restore
-+    fi
- )
- 
- [environment]
- script_conf=!/etc/iptables/iptables.rules
--script_file=!/usr/lib/iptables/scripts/iptables-flush
- 
diff --git a/srcpkgs/boot-66serv/patches/upstream-20210322.diff b/srcpkgs/boot-66serv/patches/upstream-20210322.diff
new file mode 100644
index 000000000000..16f93d1ee8d1
--- /dev/null
+++ b/srcpkgs/boot-66serv/patches/upstream-20210322.diff
@@ -0,0 +1,222 @@
+diff --git a/configure b/configure
+index fba297a..7a0a8da 100755
+--- a/configure
++++ b/configure
+@@ -23,8 +23,8 @@ Fine tuning of the installation directories:
+   --with-system-module=DIR         66 module intallation directory [DATAROOTDIR/$package_macro_dir/module]
+   --with-system-script=DIR         66 script installation directory of scripts [DATAROOTDIR/$package_macro_dir/script]
+   --with-sysadmin-service-conf=DIR 66 sysadmin service configuration file directory [SYSDIR/$package_macro_dir/conf]
+-  --with-skeleton=DIR              66 skeleton files directory installation [SYSDIR/$package_macro_dir]	
+-  
++  --with-skeleton=DIR              66 skeleton files directory installation [SYSDIR/$package_macro_dir]
++
+ Fine tunning of boot configuration:
+   --HOSTNAME=VALUE                 hostname of the system [obarunS6]
+   --HARDWARECLOCK=VALUE            set the hardware clock [UTC]
+@@ -50,7 +50,7 @@ Fine tunning of boot configuration:
+   --DMRAID=BOOLEAN                 mount dmraid devices [!no]
+   --BTRFS=BOOLEAN                  mount btrfs devices [!no]
+   --ZFS=BOOLEAN                    mount zfs devices [!no]
+-  --ZFS_IMPORT=VALUE               use scan or zpoolcache method for zfs pools importation [!scan]
++  --ZFS_IMPORT=VALUE               use scan or zpoolcache method for zfs pools importation [!zpoolcache]
+   --CRYPTTAB=BOOLEAN               use crypttab by default [!no]
+   --FIREWALL=VALUE                 use iptables|ip6tables|nftables|ebtables|arptables []
+   --CGROUPS=BOOLEAN                mount cgroups [!yes]
+@@ -66,17 +66,17 @@ Fine tunning of boot configuration:
+   --POPULATE_DEV=BOOLEAN           populate dev directory [!yes]
+   --POPULATE_RUN=BOOLEAN           populate run directory [!yes]
+   --POPULATE_TMP=BOOLEAN           populate tmp directory [!yes]
+-  
+- 
++
++
+  Use yes or no with lowercase character to set BOOLEAN values.
+- 
++
+  Empty value is a commented one and not used at all.
+ 
+  An exclamation mark '!' at the begin of the value unexport the variable
+  for the environment after the use. This is avoid to poluate the environment
+  with tempory variables. You need to single-quote the options as
+  follow:
+-	./configure --KEYMAP='!us'
++    ./configure --KEYMAP='!us'
+ 
+ EOF
+ exit 0
+@@ -120,9 +120,9 @@ stripdir () {
+ 
+ testval () {
+  if test -z ${1}; then
+-	return 0 ;
++    return 0 ;
+  else
+-	return 1 ;
++    return 1 ;
+  fi
+ }
+ 
+@@ -165,7 +165,7 @@ LVM='!no'
+ DMRAID='!no'
+ BTRFS='!no'
+ ZFS='!no'
+-ZFS_IMPORT='!scan'
++ZFS_IMPORT='!zpoolcache'
+ CRYPTTAB='!no'
+ FIREWALL=
+ CGROUPS='!yes'
+@@ -256,20 +256,20 @@ fi
+ 
+ if test -z "$sysconfdir" ; then
+   if test "$sysconfdir" = '$sysconfdir' ; then
+-	sysconfdir = '/etc'
++    sysconfdir = '/etc'
+   fi
+   if test "$adm_conf" = '$sysconfdir/$package_macro_dir/conf' ; then
+-	adm_conf = '$sysconfdir/$package_macro_dir/conf'
++    adm_conf = '$sysconfdir/$package_macro_dir/conf'
+   fi
+   if test "$skel_directory" = '$sysconfdir/$package_macro_dir' ; then
+-	skel_directory = '$sysconfdir/$package_macro_dir'
++    skel_directory = '$sysconfdir/$package_macro_dir'
+   fi
+ fi
+ 
+ # Expand installation directories
+ stripdir prefix
+ for i in exec_prefix bindir libdir sysconfdir datarootdir mandir livedir \
+-		service_directory module_directory script_directory skel_directory adm_conf ; do
++        service_directory module_directory script_directory skel_directory adm_conf ; do
+   eval tmp=\${$i}
+   eval $i=$tmp
+   stripdir $i
+@@ -290,12 +290,12 @@ for i in service_directory module_directory script_directory mandir; do
+ done
+ 
+ for i in HOSTNAME HARDWARECLOCK TZ SETUPCONSOLE TTY \
+-		KEYMAP FONT FONT_MAP FONT_UNIMAP UDEV SYSCTL FORCECHCK LOCAL CONTAINER \
+-		TMPFILE MODULE_KERNEL MODULE_SYSTEM RANDOMSEED \
+-		FSTAB SWAP LVM DMRAID BTRFS ZFS ZFS_IMPORT \
+-		CRYPTTAB FIREWALL \
+-		CGROUPS MNT_PROC MNT_SYS MNT_DEV MNT_RUN MNT_TMP \
+-		MNT_PTS MNT_SHM MNT_NETFS POPULATE_SYS POPULATE_DEV POPULATE_RUN POPULATE_TMP ; do
++        KEYMAP FONT FONT_MAP FONT_UNIMAP UDEV SYSCTL FORCECHCK LOCAL CONTAINER \
++        TMPFILE MODULE_KERNEL MODULE_SYSTEM RANDOMSEED \
++        FSTAB SWAP LVM DMRAID BTRFS ZFS ZFS_IMPORT \
++        CRYPTTAB FIREWALL \
++        CGROUPS MNT_PROC MNT_SYS MNT_DEV MNT_RUN MNT_TMP \
++        MNT_PTS MNT_SHM MNT_NETFS POPULATE_SYS POPULATE_DEV POPULATE_RUN POPULATE_TMP ; do
+   eval tmp=\${$i}
+   if testval $tmp; then
+     eval $i='${i}=\"\\#${i}=\"'
+diff --git a/module/boot@/service/local/firewall/local-iptables b/module/boot@/service/local/firewall/local-iptables
+index 2ba35fb..4364a2f 100644
+--- a/module/boot@/service/local/firewall/local-iptables
++++ b/module/boot@/service/local/firewall/local-iptables
+@@ -20,19 +20,29 @@
+ )
+ 
+ [stop]
++@build = custom
++@shebang = "/usr/bin/bash -c"
+ @execute =
+ (
+-    if { 66-yeller -cdp local-iptables -1 /dev/console stops... }
+-    if -nt {
+ 
+-        execl-toc -x ${script_file}
+-        ${script_file}
++    exec 2>&1
+ 
+-    }
+-    66-yeller -fcdp local-iptables -1 /dev/console crashed!
++    66-yeller -cdp local-iptables -1 /dev/console stops...
++
++    if ! type -p iptables &>/dev/null; then
++      66-yeller -fcdp local-iptables -1 /dev/console unable to find iptables program
++      exit 111
++    fi
++
++    while read -r table; do
++        tables+=("/usr/share/iptables/empty-$table.rules")
++    done <"/proc/net/ip_tables_names"
++
++    if (( ${#tables[*]} )); then
++        cat "${tables[@]}" | iptables-restore
++    fi
+ )
+ 
+ [environment]
+ script_conf=!/etc/iptables/iptables.rules
+-script_file=!/usr/lib/iptables/scripts/iptables-flush
+ 
+diff --git a/module/boot@/service/local/local-dmesg b/module/boot@/service/local/local-dmesg
+index 934cd9f..fe38ef4 100644
+--- a/module/boot@/service/local/local-dmesg
++++ b/module/boot@/service/local/local-dmesg
+@@ -34,5 +34,5 @@ local-rc )
+ )
+ 
+ [environment]
+-cmd_args=!--console-off -T
++cmd_args=!-T
+ cmd_log=!/var/log/dmesg.log
+diff --git a/module/boot@/service/mount/mount-swap b/module/boot@/service/mount/mount-swap
+index fc7e2db..1b5b4e8 100644
+--- a/module/boot@/service/mount/mount-swap
++++ b/module/boot@/service/mount/mount-swap
+@@ -10,12 +10,16 @@
+ @execute =
+ (
+     if { 66-yeller -cdp mount-swap -1 /dev/console starts... }
+-    if -nt {
+ 
+-        swapon -a
++    foreground {
++
++        if -nt {
+ 
++            swapon -a
++
++        }
++        66-yeller -cdp mount-swap -1 /dev/console unable to activate the swap!
+     }
+-    66-yeller -fcdp mount-swap -1 /dev/console crashed!
+ )
+ 
+ [stop]
+diff --git a/module/boot@/service/system/devices/devices-crypttab b/module/boot@/service/system/devices/devices-crypttab
+index 5b808f2..76ef6d5 100644
+--- a/module/boot@/service/system/devices/devices-crypttab
++++ b/module/boot@/service/system/devices/devices-crypttab
+@@ -4,7 +4,7 @@
+ @description = "Active encrypted devices"
+ @user = ( root )
+ @options = ( !log )
+-@depends = ( udevadm )
++@depends = ( udevadm devices-btrfs devices-dmraid devices-lvm )
+ 
+ [start]
+ @execute =
+@@ -15,13 +15,16 @@
+         execl-toc -e ${script_conf}
+         if { execl-cmdline -s { 66-olexec awk -f ${script_file} ${script_conf} } }
+ 
+-        if { 66-which -q vgchange }
+-        if { 66-yeller -cdp devices-crypttab -1 /dev/console LVM detected -- activates... }
+-        if -nt {
++        foreground {
+ 
+-            vgchange --sysinit -a y
++            if { 66-which -q vgchange }
++            if { 66-yeller -cdp devices-crypttab -1 /dev/console LVM detected -- activates... }
++            if -nt {
++
++                vgchange --sysinit -a y
++            }
++            66-yeller -cdp devices-crypttab -1 /dev/console unable to activate LVM devices
+         }
+-        66-yeller -cdp devices-crypttab -1 /dev/console unable to activate LVM devices
+     }
+     66-yeller -fcdp devices-crypttab -1 /dev/console crashed!
+ )
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 26e9dada5db4..2ba5a8e6c63a 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -5,8 +5,7 @@ revision=1
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
 configure_args="--HOSTNAME=!voidlinux --TTY=!4
- --KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no
- --ZFS_IMPORT=!zpoolcache"
+ --KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no"
 make_install_target="install install-man install-html"
 hostmakedepends="lowdown"
 makedepends="file"
@@ -20,8 +19,7 @@ distfiles="https://framagit.org/pkg/obmods/boot-66serv/-/archive/v${version}/boo
 checksum=03b692700030eaae1e882b6df97e84cbbf0180e067291342d5ed9117047475ba
 patch_args=" -Np1"
 
-make_dirs="/etc/runit/runsvdir/66 0750 root root
-	/var/log/66 0750 _s6log _s6log"
+make_dirs="/etc/runit/runsvdir/66 0750 root root"
 
 post_install() {
 

From c9e5b12e0b1ebcc73360a3d20f0899af8cdb86f0 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Fri, 28 May 2021 23:24:18 +0300
Subject: [PATCH 29/32] update boot-66serv to 2.3.1.

---
 .../patches/upstream-20210322.diff            | 222 ------------------
 srcpkgs/boot-66serv/template                  |   5 +-
 2 files changed, 2 insertions(+), 225 deletions(-)
 delete mode 100644 srcpkgs/boot-66serv/patches/upstream-20210322.diff

diff --git a/srcpkgs/boot-66serv/patches/upstream-20210322.diff b/srcpkgs/boot-66serv/patches/upstream-20210322.diff
deleted file mode 100644
index 16f93d1ee8d1..000000000000
--- a/srcpkgs/boot-66serv/patches/upstream-20210322.diff
+++ /dev/null
@@ -1,222 +0,0 @@
-diff --git a/configure b/configure
-index fba297a..7a0a8da 100755
---- a/configure
-+++ b/configure
-@@ -23,8 +23,8 @@ Fine tuning of the installation directories:
-   --with-system-module=DIR         66 module intallation directory [DATAROOTDIR/$package_macro_dir/module]
-   --with-system-script=DIR         66 script installation directory of scripts [DATAROOTDIR/$package_macro_dir/script]
-   --with-sysadmin-service-conf=DIR 66 sysadmin service configuration file directory [SYSDIR/$package_macro_dir/conf]
--  --with-skeleton=DIR              66 skeleton files directory installation [SYSDIR/$package_macro_dir]	
--  
-+  --with-skeleton=DIR              66 skeleton files directory installation [SYSDIR/$package_macro_dir]
-+
- Fine tunning of boot configuration:
-   --HOSTNAME=VALUE                 hostname of the system [obarunS6]
-   --HARDWARECLOCK=VALUE            set the hardware clock [UTC]
-@@ -50,7 +50,7 @@ Fine tunning of boot configuration:
-   --DMRAID=BOOLEAN                 mount dmraid devices [!no]
-   --BTRFS=BOOLEAN                  mount btrfs devices [!no]
-   --ZFS=BOOLEAN                    mount zfs devices [!no]
--  --ZFS_IMPORT=VALUE               use scan or zpoolcache method for zfs pools importation [!scan]
-+  --ZFS_IMPORT=VALUE               use scan or zpoolcache method for zfs pools importation [!zpoolcache]
-   --CRYPTTAB=BOOLEAN               use crypttab by default [!no]
-   --FIREWALL=VALUE                 use iptables|ip6tables|nftables|ebtables|arptables []
-   --CGROUPS=BOOLEAN                mount cgroups [!yes]
-@@ -66,17 +66,17 @@ Fine tunning of boot configuration:
-   --POPULATE_DEV=BOOLEAN           populate dev directory [!yes]
-   --POPULATE_RUN=BOOLEAN           populate run directory [!yes]
-   --POPULATE_TMP=BOOLEAN           populate tmp directory [!yes]
--  
-- 
-+
-+
-  Use yes or no with lowercase character to set BOOLEAN values.
-- 
-+
-  Empty value is a commented one and not used at all.
- 
-  An exclamation mark '!' at the begin of the value unexport the variable
-  for the environment after the use. This is avoid to poluate the environment
-  with tempory variables. You need to single-quote the options as
-  follow:
--	./configure --KEYMAP='!us'
-+    ./configure --KEYMAP='!us'
- 
- EOF
- exit 0
-@@ -120,9 +120,9 @@ stripdir () {
- 
- testval () {
-  if test -z ${1}; then
--	return 0 ;
-+    return 0 ;
-  else
--	return 1 ;
-+    return 1 ;
-  fi
- }
- 
-@@ -165,7 +165,7 @@ LVM='!no'
- DMRAID='!no'
- BTRFS='!no'
- ZFS='!no'
--ZFS_IMPORT='!scan'
-+ZFS_IMPORT='!zpoolcache'
- CRYPTTAB='!no'
- FIREWALL=
- CGROUPS='!yes'
-@@ -256,20 +256,20 @@ fi
- 
- if test -z "$sysconfdir" ; then
-   if test "$sysconfdir" = '$sysconfdir' ; then
--	sysconfdir = '/etc'
-+    sysconfdir = '/etc'
-   fi
-   if test "$adm_conf" = '$sysconfdir/$package_macro_dir/conf' ; then
--	adm_conf = '$sysconfdir/$package_macro_dir/conf'
-+    adm_conf = '$sysconfdir/$package_macro_dir/conf'
-   fi
-   if test "$skel_directory" = '$sysconfdir/$package_macro_dir' ; then
--	skel_directory = '$sysconfdir/$package_macro_dir'
-+    skel_directory = '$sysconfdir/$package_macro_dir'
-   fi
- fi
- 
- # Expand installation directories
- stripdir prefix
- for i in exec_prefix bindir libdir sysconfdir datarootdir mandir livedir \
--		service_directory module_directory script_directory skel_directory adm_conf ; do
-+        service_directory module_directory script_directory skel_directory adm_conf ; do
-   eval tmp=\${$i}
-   eval $i=$tmp
-   stripdir $i
-@@ -290,12 +290,12 @@ for i in service_directory module_directory script_directory mandir; do
- done
- 
- for i in HOSTNAME HARDWARECLOCK TZ SETUPCONSOLE TTY \
--		KEYMAP FONT FONT_MAP FONT_UNIMAP UDEV SYSCTL FORCECHCK LOCAL CONTAINER \
--		TMPFILE MODULE_KERNEL MODULE_SYSTEM RANDOMSEED \
--		FSTAB SWAP LVM DMRAID BTRFS ZFS ZFS_IMPORT \
--		CRYPTTAB FIREWALL \
--		CGROUPS MNT_PROC MNT_SYS MNT_DEV MNT_RUN MNT_TMP \
--		MNT_PTS MNT_SHM MNT_NETFS POPULATE_SYS POPULATE_DEV POPULATE_RUN POPULATE_TMP ; do
-+        KEYMAP FONT FONT_MAP FONT_UNIMAP UDEV SYSCTL FORCECHCK LOCAL CONTAINER \
-+        TMPFILE MODULE_KERNEL MODULE_SYSTEM RANDOMSEED \
-+        FSTAB SWAP LVM DMRAID BTRFS ZFS ZFS_IMPORT \
-+        CRYPTTAB FIREWALL \
-+        CGROUPS MNT_PROC MNT_SYS MNT_DEV MNT_RUN MNT_TMP \
-+        MNT_PTS MNT_SHM MNT_NETFS POPULATE_SYS POPULATE_DEV POPULATE_RUN POPULATE_TMP ; do
-   eval tmp=\${$i}
-   if testval $tmp; then
-     eval $i='${i}=\"\\#${i}=\"'
-diff --git a/module/boot@/service/local/firewall/local-iptables b/module/boot@/service/local/firewall/local-iptables
-index 2ba35fb..4364a2f 100644
---- a/module/boot@/service/local/firewall/local-iptables
-+++ b/module/boot@/service/local/firewall/local-iptables
-@@ -20,19 +20,29 @@
- )
- 
- [stop]
-+@build = custom
-+@shebang = "/usr/bin/bash -c"
- @execute =
- (
--    if { 66-yeller -cdp local-iptables -1 /dev/console stops... }
--    if -nt {
- 
--        execl-toc -x ${script_file}
--        ${script_file}
-+    exec 2>&1
- 
--    }
--    66-yeller -fcdp local-iptables -1 /dev/console crashed!
-+    66-yeller -cdp local-iptables -1 /dev/console stops...
-+
-+    if ! type -p iptables &>/dev/null; then
-+      66-yeller -fcdp local-iptables -1 /dev/console unable to find iptables program
-+      exit 111
-+    fi
-+
-+    while read -r table; do
-+        tables+=("/usr/share/iptables/empty-$table.rules")
-+    done <"/proc/net/ip_tables_names"
-+
-+    if (( ${#tables[*]} )); then
-+        cat "${tables[@]}" | iptables-restore
-+    fi
- )
- 
- [environment]
- script_conf=!/etc/iptables/iptables.rules
--script_file=!/usr/lib/iptables/scripts/iptables-flush
- 
-diff --git a/module/boot@/service/local/local-dmesg b/module/boot@/service/local/local-dmesg
-index 934cd9f..fe38ef4 100644
---- a/module/boot@/service/local/local-dmesg
-+++ b/module/boot@/service/local/local-dmesg
-@@ -34,5 +34,5 @@ local-rc )
- )
- 
- [environment]
--cmd_args=!--console-off -T
-+cmd_args=!-T
- cmd_log=!/var/log/dmesg.log
-diff --git a/module/boot@/service/mount/mount-swap b/module/boot@/service/mount/mount-swap
-index fc7e2db..1b5b4e8 100644
---- a/module/boot@/service/mount/mount-swap
-+++ b/module/boot@/service/mount/mount-swap
-@@ -10,12 +10,16 @@
- @execute =
- (
-     if { 66-yeller -cdp mount-swap -1 /dev/console starts... }
--    if -nt {
- 
--        swapon -a
-+    foreground {
-+
-+        if -nt {
- 
-+            swapon -a
-+
-+        }
-+        66-yeller -cdp mount-swap -1 /dev/console unable to activate the swap!
-     }
--    66-yeller -fcdp mount-swap -1 /dev/console crashed!
- )
- 
- [stop]
-diff --git a/module/boot@/service/system/devices/devices-crypttab b/module/boot@/service/system/devices/devices-crypttab
-index 5b808f2..76ef6d5 100644
---- a/module/boot@/service/system/devices/devices-crypttab
-+++ b/module/boot@/service/system/devices/devices-crypttab
-@@ -4,7 +4,7 @@
- @description = "Active encrypted devices"
- @user = ( root )
- @options = ( !log )
--@depends = ( udevadm )
-+@depends = ( udevadm devices-btrfs devices-dmraid devices-lvm )
- 
- [start]
- @execute =
-@@ -15,13 +15,16 @@
-         execl-toc -e ${script_conf}
-         if { execl-cmdline -s { 66-olexec awk -f ${script_file} ${script_conf} } }
- 
--        if { 66-which -q vgchange }
--        if { 66-yeller -cdp devices-crypttab -1 /dev/console LVM detected -- activates... }
--        if -nt {
-+        foreground {
- 
--            vgchange --sysinit -a y
-+            if { 66-which -q vgchange }
-+            if { 66-yeller -cdp devices-crypttab -1 /dev/console LVM detected -- activates... }
-+            if -nt {
-+
-+                vgchange --sysinit -a y
-+            }
-+            66-yeller -cdp devices-crypttab -1 /dev/console unable to activate LVM devices
-         }
--        66-yeller -cdp devices-crypttab -1 /dev/console unable to activate LVM devices
-     }
-     66-yeller -fcdp devices-crypttab -1 /dev/console crashed!
- )
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 2ba5a8e6c63a..01f7cdd1beaf 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -1,6 +1,6 @@
 # Template file for 'boot-66serv'
 pkgname=boot-66serv
-version=2.3.0
+version=2.3.1
 revision=1
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
@@ -16,8 +16,7 @@ license="ISC"
 homepage="https://framagit.org/pkg/obmods/boot-66serv"
 conf_files="/etc/66/rc.local"
 distfiles="https://framagit.org/pkg/obmods/boot-66serv/-/archive/v${version}/boot-66serv-v${version}.tar.bz2"
-checksum=03b692700030eaae1e882b6df97e84cbbf0180e067291342d5ed9117047475ba
-patch_args=" -Np1"
+checksum=b6fd72c1a662bb4ee15a27885e2967196966772a02595006730f56a87f85a679
 
 make_dirs="/etc/runit/runsvdir/66 0750 root root"
 

From a139fe97dbf712b6ef47cab907c0bea1b9a4a12c Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Wed, 14 Jul 2021 00:32:05 +0300
Subject: [PATCH 30/32] remove tmpfiles.d support.

---
 .../patches/remove_tmpfiles.d_support.diff    | 748 ++++++++++++++++++
 srcpkgs/boot-66serv/template                  |   4 +-
 2 files changed, 750 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff

diff --git a/srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff b/srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff
new file mode 100644
index 000000000000..79e6af9de99c
--- /dev/null
+++ b/srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff
@@ -0,0 +1,748 @@
+diff --git a/Makefile b/Makefile
+index f6141c57be6e868ef3957f5e53469587779f0381..a461615cce22e40de642e32965e3dfb25c078219 100644
+--- a/Makefile
++++ b/Makefile
+@@ -71,7 +71,6 @@ $(DESTDIR)$(service_directory)/%: service/%
+    -e "s,@FORCECHCK@,$(FORCECHCK)," \
+    -e "s,@LOCAL@,$(LOCAL)," \
+    -e "s,@CONTAINER@,$(CONTAINER)," \
+-   -e "s,@TMPFILE@,$(TMPFILE)," \
+    -e "s,@MODULE_KERNEL@,$(MODULE_KERNEL)," \
+    -e "s,@MODULE_SYSTEM@,$(MODULE_SYSTEM)," \
+    -e "s,@RANDOMSEED@,$(RANDOMSEED)," \
+diff --git a/configure b/configure
+index 7a0a8da702c35d2d1c456430e927fb3cb635a21f..308868bea02b95ebeda70eaf5205c7f8c28c0257 100755
+--- a/configure
++++ b/configure
+@@ -40,7 +40,6 @@ Fine tunning of boot configuration:
+   --FORCECHCK=BOOLEAN              force a check of the filesystem [!no]
+   --LOCAL=BOOLEAN                  use rc.local scripts [!no]
+   --CONTAINER=BOOLEAN              boot inside a container [!no]
+-  --TMPFILE=BOOLEAN                use tmpfiles.d files [!yes]
+   --MODULE_KERNEL=BOOLEAN          load modules kernel [!yes]
+   --MODULE_SYSTEM=BOOLEAN          load modules from modules.d files [!yes]
+   --RANDOMSEED=BOOLEAN             set random seed [!yes]
+@@ -155,7 +154,6 @@ SYSCTL='!yes'
+ FORCECHCK='!no'
+ LOCAL='!no'
+ CONTAINER='!no'
+-TMPFILE='!yes'
+ MODULE_KERNEL='!yes'
+ MODULE_SYSTEM='!yes'
+ RANDOMSEED='!yes'
+@@ -212,7 +210,6 @@ for arg ; do
+     --FORCECHCK=*) FORCECHCK=${arg#*=} ;;
+     --LOCAL=*) LOCAL=${arg#*=} ;;
+     --CONTAINER=*) CONTAINER=${arg#*=} ;;
+-    --TMPFILE=*) TMPFILE=${arg#*=} ;;
+     --MODULE_KERNEL=*) MODULE_KERNEL=${arg#*=} ;;
+     --MODULE_SYSTEM=*) MODULE_SYSTEM=${arg#*=} ;;
+     --RANDOMSEED=*) RANDOMSEED=${arg#*=} ;;
+@@ -291,7 +288,7 @@ done
+ 
+ for i in HOSTNAME HARDWARECLOCK TZ SETUPCONSOLE TTY \
+         KEYMAP FONT FONT_MAP FONT_UNIMAP UDEV SYSCTL FORCECHCK LOCAL CONTAINER \
+-        TMPFILE MODULE_KERNEL MODULE_SYSTEM RANDOMSEED \
++        MODULE_KERNEL MODULE_SYSTEM RANDOMSEED \
+         FSTAB SWAP LVM DMRAID BTRFS ZFS ZFS_IMPORT \
+         CRYPTTAB FIREWALL \
+         CGROUPS MNT_PROC MNT_SYS MNT_DEV MNT_RUN MNT_TMP \
+@@ -356,7 +353,6 @@ $SYSCTL
+ $FORCECHCK
+ $LOCAL
+ $CONTAINER
+-$TMPFILE
+ $MODULE_KERNEL
+ $MODULE_SYSTEM
+ $RANDOMSEED
+diff --git a/doc/boot@.md b/doc/boot@.md
+index 43f6480c6586a2afe141cc7e6b40e518574b4e45..a0b333e1fb06ca4551ff280b5afb226490675569 100644
+--- a/doc/boot@.md
++++ b/doc/boot@.md
+@@ -136,10 +136,6 @@ Two different kinds of variables are used:
+  - type: boolean.
+  - description: convenient variable used to boot inside a container. Some services will not work or be unnecessary when you boot inside a container. This variable provides you a safe default for this purpose. If set to yes the `HARDWARECLOCK`, `SETUPCONSOLE`, `KEYMAP`, `FONT`, `FONT_MAP`, `FONT_UNIMAP`, `CRYPTTAB`, `SWAP`, `LVM`, `DMRAID`, `BTRFS`, `ZFS`, `UDEV`, `SYSCTL`, `FORCECHCK`, `CGROUPS`, `MODULE_SYSTEM`, `RANDOMSEED`, `MNT_NETFS` variables have no effect.
+ 
+-- **TMPFILES**:
+- - type: boolean.
+- - description: read, parse and apply a systemd-style tmpfiles.d files usually found at `/usr/lib/tmpfiles.d` directory to handle volatile and temporary files.
+-
+ - **MODULE_KERNEL**:
+  - type: boolean.
+  - description: load the kernel modules returned by the `kmod static-nodes` command.
+diff --git a/module/boot@/configure/configure b/module/boot@/configure/configure
+index e6fed96bddf9d2ada8bba10c450471a5bed654d6..18d27366d29cd5d850d4c261ce71aaab54f8ede8 100755
+--- a/module/boot@/configure/configure
++++ b/module/boot@/configure/configure
+@@ -11,7 +11,7 @@ service_dir="${MOD_MODULE_DIR}/service"
+ SV_REAL=
+ 
+ sv_boolean_list="CRYPTTAB SETUPCONSOLE FSTAB SWAP LVM \
+-DMRAID BTRFS ZFS UDEV SYSCTL LOCAL CONTAINER TMPFILE MODULE_KERNEL \
++DMRAID BTRFS ZFS UDEV SYSCTL LOCAL CONTAINER MODULE_KERNEL \
+ MODULE_SYSTEM RANDOMSEED MNT_PROC MNT_SYS MNT_DEV MNT_RUN MNT_TMP CGROUPS \
+ MNT_PTS MNT_SHM MNT_NETFS POPULATE_SYS POPULATE_DEV POPULATE_RUN POPULATE_TMP"
+ 
+@@ -46,7 +46,6 @@ retrieve_sv_name(){
+         SYSCTL) SV_REAL="system-sysctl" ;;
+         FORCECHCK) SV_REAL="system-fsck" ;;
+         LOCAL) SV_REAL="local-rc" ;;
+-        TMPFILE) SV_REAL="local-tmpfiles" ;;
+         MODULE_KERNEL) SV_REAL="modules-kernel" ;;
+         MODULE_SYSTEM) SV_REAL="modules-system" ;;
+         RANDOMSEED) SV_REAL="system-random" ;;
+diff --git a/module/boot@/configure/tmpfiles.sh b/module/boot@/configure/tmpfiles.sh
+deleted file mode 100755
+index 4b684365a0dc76466a190aea292e1ea2bf24684a..0000000000000000000000000000000000000000
+--- a/module/boot@/configure/tmpfiles.sh
++++ /dev/null
+@@ -1,569 +0,0 @@
+-#!@BINDIR@/sh
+-# This is a reimplementation of the systemd tmpfiles.d code
+-# Control creation, deletion, and cleaning of volatile and temporary files
+-#
+-# Copyright (c) 2012 Gentoo Foundation
+-# Released under the 2-clause BSD license.
+-#
+-# This instance is a pure-POSIX sh version, written by Robin H Johnson
+-# <robbat2@gentoo.org>, based on the Arch Linux version as of 2012/01/01:
+-# http://projects.archlinux.org/initscripts.git/tree/arch-tmpfiles
+-#
+-# See the tmpfiles.d manpage as well:
+-# https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
+-# This script should match the old manpage
+-# http://0pointer.de/public/systemd-man/tmpfiles.d.html
+-# as of 2012/03/12 and also implements some more recent features
+-#
+-
+-DRYRUN=0
+-
+-checkprefix() {
+-    n=$1
+-    shift
+-    for x in $@; do
+-        case $n in
+-            ${x}*) return 0 ;;
+-    esac
+-    done
+-    return 1
+-}
+-
+-warninvalid() {
+-    printf "tmpfiles: ignoring invalid entry on line %d of \`%s'\n" "$LINENUM" "$FILE"
+-    error=$(( error+1 ))
+-} >&2
+-
+-invalid_option() {
+-    printf "tmpfiles: invalid option '%s'\n" "$1" >&2
+-    exit 1
+-}
+-
+-dryrun_or_real() {
+-    local dryrun=
+-    if [ $DRYRUN -eq 1 ]; then
+-        dryrun=echo
+-    fi
+-    $dryrun "$@"
+-}
+-
+-_chattr() {
+-    local attr="$2"
+-    case $attr in
+-        [+-=]*) : ;;
+-        '') return ;;
+-        *) attr="+$attr" ;;
+-    esac
+-    local IFS=
+-    dryrun_or_real chattr $1 "$attr" -- $3
+-}
+-
+-relabel() {
+-    local path
+-    local paths=$1 mode=$2 uid=$3 gid=$4
+-    local status
+-
+-    status=0
+-    for path in ${paths}; do
+-        if [ -e "$path" ]; then
+-            if [ -x /sbin/restorecon ]; then
+-                dryrun_or_real restorecon $CHOPTS "$path" || status="$?"
+-            fi
+-            if [ $uid != '-' ]; then
+-                dryrun_or_real chown $CHOPTS "$uid" "$path" || status="$?"
+-            fi
+-            if [ $gid != '-' ]; then
+-                dryrun_or_real chgrp $CHOPTS "$gid" "$path" || status="$?"
+-            fi
+-            if [ $mode != '-' ]; then
+-                dryrun_or_real chmod $CHOPTS "$mode" "$path" || status="$?"
+-            fi
+-        fi
+-    done
+-    return $status
+-}
+-
+-splitpath() {
+-    local path=$1
+-    while [ -n "$path" ]; do
+-        echo $path
+-        path=${path%/*}
+-    done
+-}
+-
+-_restorecon() {
+-    local path=$1
+-    if [ -x /sbin/restorecon ]; then
+-        dryrun_or_real restorecon -F $(splitpath "$path")
+-    fi
+-}
+-
+-createdirectory() {
+-    local mode="$1" uid="$2" gid="$3" path="$4"
+-    [ -d "$path" ] || dryrun_or_real mkdir -p "$path"
+-    if [ "$uid" = - ]; then
+-        uid=root
+-    fi
+-    if [ "$gid" = - ]; then
+-        gid=root
+-    fi
+-    if [ "$mode" = - ]; then
+-        mode=0755
+-    fi
+-    dryrun_or_real chown $uid "$path"
+-    dryrun_or_real chgrp $gid "$path"
+-    dryrun_or_real chmod $mode "$path"
+-}
+-
+-createfile() {
+-    local mode="$1" uid="$2" gid="$3" path="$4"
+-    dryrun_or_real touch "$path"
+-    if [ "$uid" = - ]; then
+-        uid=root
+-    fi
+-    if [ "$gid" = - ]; then
+-        gid=root
+-    fi
+-    if [ "$mode" = - ]; then
+-        mode=0644
+-    fi
+-    dryrun_or_real chown $uid "$path"
+-    dryrun_or_real chgrp $gid "$path"
+-    dryrun_or_real chmod $mode "$path"
+-}
+-
+-createpipe() {
+-    local mode="$1" uid="$2" gid="$3" path="$4"
+-    dryrun_or_real mkfifo "$path"
+-    if [ "$uid" = - ]; then
+-        uid=root
+-    fi
+-    if [ "$gid" = - ]; then
+-        gid=root
+-    fi
+-    if [ "$mode" = - ]; then
+-        mode=0644
+-    fi
+-    dryrun_or_real chown $uid "$path"
+-    dryrun_or_real chgrp $gid "$path"
+-    dryrun_or_real chmod $mode "$path"
+-}
+-
+-_b() {
+-    # Create a block device node if it doesn't exist yet
+-    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
+-    if [ "$uid" = - ]; then
+-        uid=root
+-    fi
+-    if [ "$gid" = - ]; then
+-        gid=root
+-    fi
+-    if [ "$mode" = - ]; then
+-        mode=0644
+-    fi
+-    if [ ! -e "$path" ]; then
+-        dryrun_or_real mknod -m $mode $path b ${arg%:*} ${arg#*:}
+-        _restorecon "$path"
+-        dryrun_or_real chown $uid "$path"
+-        dryrun_or_real chgrp $gid "$path"
+-    fi
+-}
+-
+-_c() {
+-    # Create a character device node if it doesn't exist yet
+-    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
+-    if [ "$uid" = - ]; then
+-        uid=root
+-    fi
+-    if [ "$gid" = - ]; then
+-        gid=root
+-    fi
+-    if [ "$mode" = - ]; then
+-        mode=0644
+-    fi
+-    if [ ! -e "$path" ]; then
+-        dryrun_or_real mknod -m $mode $path c ${arg%:*} ${arg#*:}
+-        _restorecon "$path"
+-        dryrun_or_real chown $uid "$path"
+-        dryrun_or_real chgrp $gid "$path"
+-    fi
+-}
+-
+-_C() {
+-    # recursively copy a file or directory
+-    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
+-    if [ ! -e "$path" ]; then
+-        dryrun_or_real cp -r "$arg" "$path"
+-        _restorecon "$path"
+-        if [ $uid != '-' ]; then
+-            dryrun_or_real chown "$uid" "$path"
+-        fi
+-        if [ $gid != '-' ]; then
+-            dryrun_or_real chgrp "$gid" "$path"
+-        fi
+-        if [ $mode != '-' ]; then
+-            dryrun_or_real chmod "$mode" "$path"
+-        fi
+-    fi
+-}
+-
+-_f() {
+-    # Create a file if it doesn't exist yet
+-    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
+-
+-    [ $CREATE -gt 0 ] || return 0
+-
+-    if [ ! -e "$path" ]; then
+-        createfile "$mode" "$uid" "$gid" "$path"
+-        if [ -n "$arg" ]; then
+-            _w "$@"
+-        fi
+-    fi
+-}
+-
+-_F() {
+-    # Create or truncate a file
+-    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
+-
+-    [ $CREATE -gt 0 ] || return 0
+-
+-    dryrun_or_real rm -f "$path"
+-    createfile "$mode" "$uid" "$gid" "$path"
+-    if [ -n "$arg" ]; then
+-        _w "$@"
+-    fi
+-}
+-
+-_d() {
+-    # Create a directory if it doesn't exist yet
+-    local path=$1 mode=$2 uid=$3 gid=$4
+-
+-    if [ $CREATE -gt 0 ]; then
+-        createdirectory "$mode" "$uid" "$gid" "$path"
+-        _restorecon "$path"
+-    fi
+-}
+-
+-_D() {
+-    # Create or empty a directory
+-    local path=$1 mode=$2 uid=$3 gid=$4
+-
+-    if [ -d "$path" ] && [ $REMOVE -gt 0 ]; then
+-        dryrun_or_real find "$path" -mindepth 1 -maxdepth 1 -xdev -exec rm -rf {} +
+-        _restorecon "$path"
+-    fi
+-
+-    if [ $CREATE -gt 0 ]; then
+-        createdirectory "$mode" "$uid" "$gid" "$path"
+-        _restorecon "$path"
+-    fi
+-}
+-
+-_v() {
+-    # Create a subvolume if the path does not exist yet and the file system
+-    # supports this (btrfs). Otherwise create a normal directory.
+-    # TODO: Implement btrfs subvol creation.
+-    _d "$@"
+-}
+-
+-_q() {
+-    # Similar to _v. However, make sure that the subvolume will be assigned
+-    # to the same higher-level quota groups as the subvolume it has
+-    # been created in.
+-    # TODO: Implement btrfs subvol creation.
+-    _d "$@"
+-}
+-
+-_Q() {
+-    # Similar to q. However, instead of copying the higher-level quota
+-    # group assignments from the parent as-is, the lowest quota group
+-    # of the parent subvolume is determined that is not the
+-    # leaf quota group.
+-    # TODO: Implement btrfs subvol creation.
+-    _d "$@"
+-}
+-
+-_h() {
+-    # Set file/directory attributes. Lines of this type accept
+-    # shell-style globs in place of normal path names.
+-    # The format of the argument field matches chattr
+-    _chattr '' "$6" "$1"
+-}
+-
+-_H() {
+-    # Recursively set file/directory attributes. Lines of this type accept
+-    # shell-syle globs in place of normal path names.
+-    # Does not follow symlinks
+-    _chattr -R "$6" "$1"
+-}
+-
+-_L() {
+-    # Create a symlink if it doesn't exist yet
+-    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
+-    if [ ! -e "$path" ]; then
+-        dryrun_or_real ln -s "$arg" "$path"
+-    fi
+-    _restorecon "$path"
+-}
+-
+-_p() {
+-    # Create a named pipe (FIFO) if it doesn't exist yet
+-    local path=$1 mode=$2 uid=$3 gid=$4
+-
+-    [ $CREATE -gt 0 ] || return 0
+-
+-    if [ ! -p "$path" ]; then
+-        createpipe "$mode" "$uid" "$gid" "$path"
+-    fi
+-}
+-
+-_x() {
+-    # Ignore a path during cleaning. Use this type to exclude paths from clean-up as
+-    # controlled with the Age parameter. Note that lines of this type do not
+-    # influence the effect of r or R lines. Lines of this type accept shell-style
+-    # globs in place of of normal path names.
+-    :
+-    # XXX: we don't implement this
+-}
+-
+-_X() {
+-    # Ignore a path during cleanup. Use this type to prevent path
+-    # removal as controled with the age parameter. Note that if path is
+-    # a directory, the content of the directory is not excluded from
+-    # clean-up, only the directory itself.
+-    # Lines of this type accept shell-style globs in place of normal path names.
+-    :
+-    # XXX: we don't implement this
+-}
+-
+-_r() {
+-    # Remove a file or directory if it exists. This may not be used to remove
+-    # non-empty directories, use R for that. Lines of this type accept shell-style
+-    # globs in place of normal path names.
+-    local path
+-    local paths=$1
+-    local status
+-
+-    [ $REMOVE -gt 0 ] || return 0
+-
+-    status=0
+-    for path in ${paths}; do
+-        if [ -f "$path" ]; then
+-            dryrun_or_real rm -f "$path" || status="$?"
+-        elif [ -d "$path" ]; then
+-            dryrun_or_real rmdir "$path" || status="$?"
+-        fi
+-    done
+-    return $status
+-}
+-
+-_R() {
+-    # Recursively remove a path and all its subdirectories (if it is a directory).
+-    # Lines of this type accept shell-style globs in place of normal path names.
+-    local path
+-    local paths=$1
+-    local status
+-
+-    [ $REMOVE -gt 0 ] || return 0
+-
+-    status=0
+-    for path in ${paths}; do
+-        if [ -d "$path" ]; then
+-            dryrun_or_real rm -rf --one-file-system "$path" || status="$?"
+-    fi
+-    done
+-    return $status
+-}
+-
+-_w() {
+-    # Write the argument parameter to a file, if it exists.
+-    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
+-    if [ -f "$path" ]; then
+-        if [ $DRYRUN -eq 1 ]; then
+-            echo "echo \"$arg\" >>\"$path\""
+-        else
+-            echo "$arg" >>"$path"
+-        fi
+-    fi
+-}
+-
+-_z() {
+-    # Set ownership, access mode and relabel security context of a file or
+-    # directory if it exists. Lines of this type accept shell-style globs in
+-    # place of normal path names.
+-    [ $CREATE -gt 0 ] || return 0
+-
+-    relabel "$@"
+-}
+-
+-_Z() {
+-    # Recursively set ownership, access mode and relabel security context of a
+-    # path and all its subdirectories (if it is a directory). Lines of this type
+-    # accept shell-style globs in place of normal path names.
+-    [ $CREATE -gt 0 ] || return 0
+-
+-    CHOPTS=-R relabel "$@"
+-}
+-
+-usage() {
+-    printf 'usage: %s [--exclude-prefix=path] [--prefix=path] [--boot] [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"
+-    exit ${1:-0}
+-}
+-
+-version() {
+-    # We don't record the version info anywhere currently.
+-    echo "opentmpfiles"
+-    exit 0
+-}
+-
+-BOOT=0 CREATE=0 REMOVE=0 CLEAN=0 VERBOSE=0 DRYRUN=0 error=0 LINENO=0
+-EXCLUDE=
+-PREFIX=
+-FILES=
+-
+-while [ $# -gt 0 ]; do
+-    case $1 in
+-        --boot) BOOT=1 ;;
+-        --create) CREATE=1 ;;
+-        --remove) REMOVE=1 ;;
+-        --clean) CLEAN=1 ;; # TODO: Not implemented
+-        --verbose) VERBOSE=1 ;;
+-        --dryrun|--dry-run) DRYRUN=1 ;;
+-        --exclude-prefix=*) EXCLUDE="${EXCLUDE}${1##--exclude-prefix=} " ;;
+-        --prefix=*) PREFIX="${PREFIX}${1##--prefix=} " ;;
+-        -h|--help) usage ;;
+-        --version) version ;;
+-        -*) invalid_option "$1" ;;
+-        *) FILES="${FILES} $1"
+-    esac
+-    shift
+-done
+-
+-if [ $(( CLEAN )) -eq 1 ] ; then
+-    printf '%s clean mode is not implemented\n' "${0##*/}"
+-    exit 1
+-fi
+-
+-if [ "$CREATE$REMOVE" = '00' ]; then
+-    usage 1 >&2
+-fi
+-
+-# XXX: The harcoding of /usr/lib/ is an explicit choice by upstream
+-tmpfiles_dirs='/usr/lib/tmpfiles.d /run/tmpfiles.d /etc/tmpfiles.d'
+-tmpfiles_basenames=''
+-
+-if [ -z "${FILES}" ]; then
+-    # Build a list of sorted unique basenames
+-    # directories declared later in the tmpfiles_d array will override earlier
+-    # directories, on a per file basename basis.
+-    # `/etc/tmpfiles.d/foo.conf' supersedes `/usr/lib/tmpfiles.d/foo.conf'.
+-    # `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
+-    for d in ${tmpfiles_dirs} ; do
+-        [ -d $d ] && for f in ${d}/*.conf ; do
+-            case "${f##*/}" in
+-                systemd.conf|systemd-*.conf) continue;;
+-            esac
+-            [ -f $f ] && tmpfiles_basenames="${tmpfiles_basenames}\n${f##*/}"
+-        done # for f in ${d}
+-    done # for d in ${tmpfiles_dirs}
+-    FILES="$(printf "${tmpfiles_basenames}\n" | sort -u )"
+-fi
+-
+-tmpfiles_d=''
+-
+-for b in ${FILES} ; do
+-    if [ "${b##*/}" != "${b}" ]; then
+-        # The user specified a path on the command line
+-        # Just pass it through unaltered
+-        tmpfiles_d="${tmpfiles_d} ${b}"
+-    else
+-        real_f=''
+-        for d in $tmpfiles_dirs ; do
+-            f=${d}/${b}
+-            [ -f "${f}" ] && real_f=$f
+-        done
+-        [ -f "${real_f}" ] && tmpfiles_d="${tmpfiles_d} ${real_f}"
+-    fi
+-done
+-
+-error=0
+-
+-# loop through the gathered fragments, sorted globally by filename.
+-# `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
+-FILE=
+-for FILE in $tmpfiles_d ; do
+-    LINENUM=0
+-
+-    ### FILE FORMAT ###
+-    # XXX: We ignore the 'Age' parameter
+-    # 1    2              3    4    5    6   7
+-    # Cmd  Path           Mode UID  GID  Age Argument
+-    # d    /run/user      0755 root root 10d -
+-    # Mode, UID, GID, Age, Argument may be omitted!
+-    # If Cmd ends with !, the line is only processed if --boot is passed
+-
+-    # XXX: Upstream says whitespace is NOT permitted in the Path argument.
+-    # But IS allowed when globs are expanded for the x/r/R/z/Z types.
+-    while read cmd path mode uid gid age arg; do
+-        LINENUM=$(( LINENUM+1 ))
+-        FORCE=0
+-
+-        # Unless we have both command and path, skip this line.
+-        if [ -z "$cmd" -o -z "$path" ]; then
+-            continue
+-        fi
+-
+-        case $cmd in
+-            \#*) continue ;;
+-        esac
+-
+-        while [ ${#cmd} -gt 1 ]; do
+-            case $cmd in
+-                *!) cmd=${cmd%!}; [ "$BOOT" -eq "1" ] || continue 2 ;;
+-                *+) cmd=${cmd%+}; FORCE=1; ;;
+-                *) warninvalid ; continue 2 ;;
+-            esac
+-        done
+-
+-        # whine about invalid entries
+-        case $cmd in
+-            f|F|w|d|D|v|p|L|c|C|b|x|X|r|R|z|Z|q|Q|h|H) ;;
+-            *) warninvalid ; continue ;;
+-        esac
+-
+-        # fall back on defaults when parameters are passed as '-'
+-        if [ "$mode" = '-' -o "$mode" = '' ]; then
+-            case "$cmd" in
+-                p|f|F) mode=0644 ;;
+-                d|D|v) mode=0755 ;;
+-                C|z|Z|x|r|R|L) ;;
+-            esac
+-        fi
+-
+-        [ "$uid" = '-' -o "$uid" = '' ] && uid=0
+-        [ "$gid" = '-' -o "$gid" = '' ] && gid=0
+-        [ "$age" = '-' -o "$age" = '' ] && age=0
+-        [ "$arg" = '-' -o "$arg" = '' ] && arg=''
+-        set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg"
+-
+-        [ -n "$EXCLUDE" ] && checkprefix $path $EXCLUDE && continue
+-        [ -n "$PREFIX" ] && ! checkprefix $path $PREFIX && continue
+-
+-        if [ $FORCE -gt 0 ]; then
+-            case $cmd in
+-                p|L|c|b) [ -f "$path" ] && dryrun_or_real rm -f "$path"
+-            esac
+-        fi
+-
+-        [ "$VERBOSE" -eq "1" ] && echo _$cmd "$@"
+-        _$cmd "$@"
+-        rc=$?
+-        if [ "${DRYRUN}" -eq "0" ]; then
+-            [ $rc -ne 0 ] && error=$((error + 1))
+-        fi
+-    done <$FILE
+-done
+-
+-exit $error
+-
+-# vim: set ts=2 sw=2 sts=2 noet ft=sh:
+diff --git a/module/boot@/service/all-Local b/module/boot@/service/all-Local
+index 95a2a1b37042aa5718e4f626e4b823057820fff9..2e08187f6838241a524ff79a97f888f22d25a662 100644
+--- a/module/boot@/service/all-Local
++++ b/module/boot@/service/all-Local
+@@ -17,7 +17,6 @@ local-loop
+ local-sethostname
+ local-time
+ local-authfiles
+-local-tmpfiles
+ local-rc
+ local-dmesg
+ )
+diff --git a/module/boot@/service/local/local-dmesg b/module/boot@/service/local/local-dmesg
+index fe38ef4ba439197759780579326ed055a0cc1afb..ed87f7ee6f0595d037d1ed1c56c1f102ed663618 100644
+--- a/module/boot@/service/local/local-dmesg
++++ b/module/boot@/service/local/local-dmesg
+@@ -13,7 +13,6 @@ local-arptables
+ local-loop
+ local-sethostname
+ local-time
+-local-tmpfiles
+ local-authfiles
+ local-rc )
+ @user = ( root )
+diff --git a/module/boot@/service/local/local-tmpfiles b/module/boot@/service/local/local-tmpfiles
+deleted file mode 100644
+index 4b471408a3efac3734c0a8ed76c4529bf2241b83..0000000000000000000000000000000000000000
+--- a/module/boot@/service/local/local-tmpfiles
++++ /dev/null
+@@ -1,23 +0,0 @@
+-[main]
+-@type = oneshot
+-@version = @vers@
+-@description = "Create temporary files"
+-@depends = ( mount-rw )
+-@user = ( root )
+-@options = ( !log )
+-
+-[start]
+-@execute =
+-(
+-    if { 66-yeller -cdp local-tmpfiles -1 /dev/console starts... }
+-    if -nt {
+-
+-        execl-cmdline -s { ${script_file} ${script_args} }
+-
+-    }
+-    66-yeller -Fcdp local-tmpfiles -1 /dev/console something went wrong!
+-)
+-
+-[environment]
+-script_file=!@scripts@/tmpfiles.sh
+-script_args=!--create --verbose --boot
+diff --git a/package/targets.mak b/package/targets.mak
+index 366f2f45b0cfc7839500c1505749a7990e9323db..376b312f9838824620603a986f87b03b9ac1e07b 100644
+--- a/package/targets.mak
++++ b/package/targets.mak
+@@ -1,7 +1,6 @@
+ SCRIPT_TARGET := \
+ module/boot@/configure/crypt.awk \
+-module/boot@/configure/modules.sh \
+-module/boot@/configure/tmpfiles.sh
++module/boot@/configure/modules.sh
+ 
+ SERVICE_TARGET := service/boot@
+ MODULE_TARGET := $(shell find module/boot@/service -type f)
+diff --git a/service/boot@ b/service/boot@
+index 306359e210564922dbd58e5a92ecdb802ec8183f..da67f147f4278338cec746b4d03cf50b58aa0e86 100644
+--- a/service/boot@
++++ b/service/boot@
+@@ -147,9 +147,6 @@
+ 
+ @CONTAINER@
+ 
+-## Apply tmpfiles.d configuration file [yes|no].
+-
+-@TMPFILE@
+ 
+ ## Load kernel modules [yes|no].
+ 
\ No newline at end of file
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index 01f7cdd1beaf..a88e8b4ed5c0 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -1,7 +1,7 @@
 # Template file for 'boot-66serv'
 pkgname=boot-66serv
 version=2.3.1
-revision=1
+revision=2
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
 configure_args="--HOSTNAME=!voidlinux --TTY=!4
@@ -17,7 +17,7 @@ homepage="https://framagit.org/pkg/obmods/boot-66serv"
 conf_files="/etc/66/rc.local"
 distfiles="https://framagit.org/pkg/obmods/boot-66serv/-/archive/v${version}/boot-66serv-v${version}.tar.bz2"
 checksum=b6fd72c1a662bb4ee15a27885e2967196966772a02595006730f56a87f85a679
-
+patch_args=" -Np1"
 make_dirs="/etc/runit/runsvdir/66 0750 root root"
 
 post_install() {

From 0274602625b1949bb2a3d98a7cfb0c2a7e6c5166 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Wed, 14 Jul 2021 00:42:55 +0300
Subject: [PATCH 31/32] remove trailing spaces, thanx @paper42

---
 srcpkgs/boot-66serv/files/switch-initutils    | 11 +++++------
 srcpkgs/boot-66serv/files/switch-initutils-66 |  8 ++++----
 2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/boot-66serv/files/switch-initutils b/srcpkgs/boot-66serv/files/switch-initutils
index b596b3ba95f6..9876234ddaa3 100755
--- a/srcpkgs/boot-66serv/files/switch-initutils
+++ b/srcpkgs/boot-66serv/files/switch-initutils
@@ -1,14 +1,13 @@
 # This core service checks for /usr/bin/{reboot,poweroff,halt,shutdown}
-# and if they are part of 66 it deletes them and moves the runit 
-# utilities in their place. It runs by default. There is a similar 
+# and if they are part of 66 it deletes them and moves the runit
+# utilities in their place. It runs by default. There is a similar
 # oneshot service for 66 that does the opposite and should be enabled.
-# The script make sure that the user has the proper utilities for the 
+# The script make sure that the user has the proper utilities for the
 # init system they are currently running.
 
 for i in reboot poweroff halt shutdown; do
 	if test -e /usr/bin/${i}.runit; then
 		rm /usr/bin/${i}
-		mv /usr/bin/${i}.runit /usr/bin/${i} 
+		mv /usr/bin/${i}.runit /usr/bin/${i}
 	fi
-done
-
+	done
diff --git a/srcpkgs/boot-66serv/files/switch-initutils-66 b/srcpkgs/boot-66serv/files/switch-initutils-66
index 4239b7b53cc3..42aa4ed2390c 100644
--- a/srcpkgs/boot-66serv/files/switch-initutils-66
+++ b/srcpkgs/boot-66serv/files/switch-initutils-66
@@ -1,11 +1,11 @@
 
 # This oneshot service checks for /usr/bin/{reboot,poweroff,halt,shutdown}
-# and if they are part of runit-void it renames them and copies the 66 
+# and if they are part of runit-void it renames them and copies the 66
 # utilities in their place. It must be enabled, especially if one
 # changes between the two init systems. There is a similar script for
-# runit core-services that does the opposite and runs by default with runit. 
-# The service makes sure that the user has the proper utilities for the 
-# init system they are currently running. 
+# runit core-services that does the opposite and runs by default with runit.
+# The service makes sure that the user has the proper utilities for the
+# init system they are currently running.
 
 [main]
 @type = oneshot

From 63fefaf2b374f812241c2c9a7b5bf75491402de2 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Wed, 15 Sep 2021 16:06:57 +0300
Subject: [PATCH 32/32] boot-66serv: update to 2.4.0.

Also:
- add back modules.sh (it has moved to a separate repo), add a new
configuration for it
- rebase the patch to remove tmpfiles, add a fix for complete removal
- rebase all commits to master.
---
 srcpkgs/boot-66serv/files/modules.sh          |  85 +++
 .../patches/remove_tmpfiles.d_support.diff    | 654 ++----------------
 srcpkgs/boot-66serv/template                  |  12 +-
 3 files changed, 134 insertions(+), 617 deletions(-)
 create mode 100644 srcpkgs/boot-66serv/files/modules.sh

diff --git a/srcpkgs/boot-66serv/files/modules.sh b/srcpkgs/boot-66serv/files/modules.sh
new file mode 100644
index 000000000000..0cc4d1a79729
--- /dev/null
+++ b/srcpkgs/boot-66serv/files/modules.sh
@@ -0,0 +1,85 @@
+#!/bin/sh
+#
+# This scripts is a pure-POSIX sh version
+#
+# Copyright (c) 2015-2021 Eric Vidal <eric@obarun.org>
+# All rights reserved.
+#
+# This file is part of Obarun. It is subject to the license terms in
+# the LICENSE file found in the top-level directory of this
+# distribution.
+# This file may not be copied, modified, propagated, or distributed
+# except according to the terms contained in the LICENSE file.
+
+
+# Configuration files are read from directories in
+# /etc/modules-load.d, /run/modules-load.d, and /usr/lib/modules-load.d,
+# in order of precedence
+
+MODULES_PATH='/etc/modules-load.d /run/modules-load.d /usr/lib/modules-load.d'
+MODULES_NAME=""
+MODULES_RESULT=""
+
+check_elements(){
+    for e in $2; do [ "$e" = "$1" ] && return 0; done; return 1;
+}
+
+build_array() {
+    printf "%s %s" "$1" "$2"
+}
+
+check_file(){
+
+    tidy_loop="" conf=""
+
+    for tidy_loop in $MODULES_PATH; do
+        if [ -d "${tidy_loop}" ]; then
+            for conf in "${tidy_loop}"/*.conf ; do
+                if [ -f "${conf}" ]; then
+                    if ! check_elements "${conf##*/}" "${MODULES_NAME}"; then
+                        MODULES_NAME=$(build_array "${MODULES_NAME}" "${conf##*/}")
+                    fi
+                fi
+            done
+        fi
+    done
+
+    unset tidy_loop conf
+}
+
+check_path(){
+    path="" tidy_loop=""
+    for path in ${MODULES_PATH}; do
+        for tidy_loop in ${MODULES_NAME}; do
+            if [ -f "${path}/${tidy_loop}" ]; then
+                if ! check_elements "${tidy_loop}" "${MODULES_RESULT##*/}";then
+                    MODULES_RESULT=$(build_array "${MODULES_RESULT}" "${path}/${tidy_loop}")
+                fi
+            fi
+        done
+    done
+    unset path tidy_loop
+}
+
+check_file
+
+if [ -n "${MODULES_NAME}" ]; then
+    check_path
+else
+    printf "$0: %s\n" "No modules found -- nothing to do"
+    exit 0
+fi
+
+for mod in ${MODULES_RESULT}; do
+    while read -r line; do
+        comment=$(printf "%s" "$line" | awk  '{ string=substr($0, 0, 1); print string; }' )
+        if [ "${comment}" = "#" ] || [ -z "${line}" ];then
+            continue
+        fi
+        for check in ${line};do
+            modprobe -b "${check}" -v | sed 's:insmod [^ ]*/:Load modules :g; s:\.ko\(\.gz\)\? ::g'
+        done
+    done < "${mod}"
+done
+
+exit 0
diff --git a/srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff b/srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff
index 79e6af9de99c..6ed257fc2d39 100644
--- a/srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff
+++ b/srcpkgs/boot-66serv/patches/remove_tmpfiles.d_support.diff
@@ -1,20 +1,28 @@
 diff --git a/Makefile b/Makefile
-index f6141c57be6e868ef3957f5e53469587779f0381..a461615cce22e40de642e32965e3dfb25c078219 100644
+index f137878ddd68d8da9c28bee8ec9df7d1165cb073..066d8d888755d442d8f7c28efb16e2c934a6faed 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -71,7 +71,6 @@ $(DESTDIR)$(service_directory)/%: service/%
-    -e "s,@FORCECHCK@,$(FORCECHCK)," \
-    -e "s,@LOCAL@,$(LOCAL)," \
-    -e "s,@CONTAINER@,$(CONTAINER)," \
--   -e "s,@TMPFILE@,$(TMPFILE)," \
-    -e "s,@MODULE_KERNEL@,$(MODULE_KERNEL)," \
-    -e "s,@MODULE_SYSTEM@,$(MODULE_SYSTEM)," \
-    -e "s,@RANDOMSEED@,$(RANDOMSEED)," \
+@@ -56,7 +56,6 @@ $(DESTDIR)$(service_directory)/%: service/%
+        -e "s,@script_directory@,$(script_directory)," \
+        -e "s,@skel_directory@,$(skel_directory)," \
+        -e "s,@livedir@,$(livedir)," \
+-       -e "s,@tmpfiles_path@,$(tmpfiles)," \
+        -e "s,@modules_path@,$(modules)," \
+        -e "s,@VERSION@,$(version)," \
+        -e "s,@HOSTNAME@,$(HOSTNAME)," \
+@@ -73,7 +72,6 @@ $(DESTDIR)$(service_directory)/%: service/%
+        -e "s,@FORCECHCK@,$(FORCECHCK)," \
+        -e "s,@LOCAL@,$(LOCAL)," \
+        -e "s,@CONTAINER@,$(CONTAINER)," \
+-       -e "s,@TMPFILE@,$(TMPFILE)," \
+        -e "s,@MODULE_KERNEL@,$(MODULE_KERNEL)," \
+        -e "s,@MODULE_SYSTEM@,$(MODULE_SYSTEM)," \
+        -e "s,@RANDOMSEED@,$(RANDOMSEED)," \
 diff --git a/configure b/configure
-index 7a0a8da702c35d2d1c456430e927fb3cb635a21f..308868bea02b95ebeda70eaf5205c7f8c28c0257 100755
+index 9622be37e2d6414b0f7b3c3a034a9dce6f09bc19..2d26020df61da8b3dc3441db9a52c16cfa4d6363 100755
 --- a/configure
 +++ b/configure
-@@ -40,7 +40,6 @@ Fine tunning of boot configuration:
+@@ -42,7 +42,6 @@ Fine tunning of boot configuration:
    --FORCECHCK=BOOLEAN              force a check of the filesystem [!no]
    --LOCAL=BOOLEAN                  use rc.local scripts [!no]
    --CONTAINER=BOOLEAN              boot inside a container [!no]
@@ -22,7 +30,7 @@ index 7a0a8da702c35d2d1c456430e927fb3cb635a21f..308868bea02b95ebeda70eaf5205c7f8
    --MODULE_KERNEL=BOOLEAN          load modules kernel [!yes]
    --MODULE_SYSTEM=BOOLEAN          load modules from modules.d files [!yes]
    --RANDOMSEED=BOOLEAN             set random seed [!yes]
-@@ -155,7 +154,6 @@ SYSCTL='!yes'
+@@ -159,7 +158,6 @@ SYSCTL='!yes'
  FORCECHCK='!no'
  LOCAL='!no'
  CONTAINER='!no'
@@ -30,7 +38,7 @@ index 7a0a8da702c35d2d1c456430e927fb3cb635a21f..308868bea02b95ebeda70eaf5205c7f8
  MODULE_KERNEL='!yes'
  MODULE_SYSTEM='!yes'
  RANDOMSEED='!yes'
-@@ -212,7 +210,6 @@ for arg ; do
+@@ -218,7 +216,6 @@ for arg ; do
      --FORCECHCK=*) FORCECHCK=${arg#*=} ;;
      --LOCAL=*) LOCAL=${arg#*=} ;;
      --CONTAINER=*) CONTAINER=${arg#*=} ;;
@@ -38,7 +46,7 @@ index 7a0a8da702c35d2d1c456430e927fb3cb635a21f..308868bea02b95ebeda70eaf5205c7f8
      --MODULE_KERNEL=*) MODULE_KERNEL=${arg#*=} ;;
      --MODULE_SYSTEM=*) MODULE_SYSTEM=${arg#*=} ;;
      --RANDOMSEED=*) RANDOMSEED=${arg#*=} ;;
-@@ -291,7 +288,7 @@ done
+@@ -297,7 +294,7 @@ done
  
  for i in HOSTNAME HARDWARECLOCK TZ SETUPCONSOLE TTY \
          KEYMAP FONT FONT_MAP FONT_UNIMAP UDEV SYSCTL FORCECHCK LOCAL CONTAINER \
@@ -47,7 +55,7 @@ index 7a0a8da702c35d2d1c456430e927fb3cb635a21f..308868bea02b95ebeda70eaf5205c7f8
          FSTAB SWAP LVM DMRAID BTRFS ZFS ZFS_IMPORT \
          CRYPTTAB FIREWALL \
          CGROUPS MNT_PROC MNT_SYS MNT_DEV MNT_RUN MNT_TMP \
-@@ -356,7 +353,6 @@ $SYSCTL
+@@ -364,7 +361,6 @@ $SYSCTL
  $FORCECHCK
  $LOCAL
  $CONTAINER
@@ -60,16 +68,16 @@ index 43f6480c6586a2afe141cc7e6b40e518574b4e45..a0b333e1fb06ca4551ff280b5afb2264
 --- a/doc/boot@.md
 +++ b/doc/boot@.md
 @@ -136,10 +136,6 @@ Two different kinds of variables are used:
-  - type: boolean.
-  - description: convenient variable used to boot inside a container. Some services will not work or be unnecessary when you boot inside a container. This variable provides you a safe default for this purpose. If set to yes the `HARDWARECLOCK`, `SETUPCONSOLE`, `KEYMAP`, `FONT`, `FONT_MAP`, `FONT_UNIMAP`, `CRYPTTAB`, `SWAP`, `LVM`, `DMRAID`, `BTRFS`, `ZFS`, `UDEV`, `SYSCTL`, `FORCECHCK`, `CGROUPS`, `MODULE_SYSTEM`, `RANDOMSEED`, `MNT_NETFS` variables have no effect.
+    - type: boolean.
+    - description: convenient variable used to boot inside a container. Some services will not work or be unnecessary when you boot inside a container. This variable provides you a safe default for this purpose. If set to yes the `HARDWARECLOCK`, `SETUPCONSOLE`, `KEYMAP`, `FONT`, `FONT_MAP`, `FONT_UNIMAP`, `CRYPTTAB`, `SWAP`, `LVM`, `DMRAID`, `BTRFS`, `ZFS`, `UDEV`, `SYSCTL`, `FORCECHCK`, `CGROUPS`, `MODULE_SYSTEM`, `RANDOMSEED`, `MNT_NETFS` variables have no effect.
  
 -- **TMPFILES**:
-- - type: boolean.
-- - description: read, parse and apply a systemd-style tmpfiles.d files usually found at `/usr/lib/tmpfiles.d` directory to handle volatile and temporary files.
+-   - type: boolean.
+-   - description: read, parse and apply a systemd-style tmpfiles.d files usually found at `/usr/lib/tmpfiles.d` directory to handle volatile and temporary files.
 -
  - **MODULE_KERNEL**:
-  - type: boolean.
-  - description: load the kernel modules returned by the `kmod static-nodes` command.
+    - type: boolean.
+    - description: load the kernel modules returned by the `kmod static-nodes` command.
 diff --git a/module/boot@/configure/configure b/module/boot@/configure/configure
 index e6fed96bddf9d2ada8bba10c450471a5bed654d6..18d27366d29cd5d850d4c261ce71aaab54f8ede8 100755
 --- a/module/boot@/configure/configure
@@ -91,581 +99,6 @@ index e6fed96bddf9d2ada8bba10c450471a5bed654d6..18d27366d29cd5d850d4c261ce71aaab
          MODULE_KERNEL) SV_REAL="modules-kernel" ;;
          MODULE_SYSTEM) SV_REAL="modules-system" ;;
          RANDOMSEED) SV_REAL="system-random" ;;
-diff --git a/module/boot@/configure/tmpfiles.sh b/module/boot@/configure/tmpfiles.sh
-deleted file mode 100755
-index 4b684365a0dc76466a190aea292e1ea2bf24684a..0000000000000000000000000000000000000000
---- a/module/boot@/configure/tmpfiles.sh
-+++ /dev/null
-@@ -1,569 +0,0 @@
--#!@BINDIR@/sh
--# This is a reimplementation of the systemd tmpfiles.d code
--# Control creation, deletion, and cleaning of volatile and temporary files
--#
--# Copyright (c) 2012 Gentoo Foundation
--# Released under the 2-clause BSD license.
--#
--# This instance is a pure-POSIX sh version, written by Robin H Johnson
--# <robbat2@gentoo.org>, based on the Arch Linux version as of 2012/01/01:
--# http://projects.archlinux.org/initscripts.git/tree/arch-tmpfiles
--#
--# See the tmpfiles.d manpage as well:
--# https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html
--# This script should match the old manpage
--# http://0pointer.de/public/systemd-man/tmpfiles.d.html
--# as of 2012/03/12 and also implements some more recent features
--#
--
--DRYRUN=0
--
--checkprefix() {
--    n=$1
--    shift
--    for x in $@; do
--        case $n in
--            ${x}*) return 0 ;;
--    esac
--    done
--    return 1
--}
--
--warninvalid() {
--    printf "tmpfiles: ignoring invalid entry on line %d of \`%s'\n" "$LINENUM" "$FILE"
--    error=$(( error+1 ))
--} >&2
--
--invalid_option() {
--    printf "tmpfiles: invalid option '%s'\n" "$1" >&2
--    exit 1
--}
--
--dryrun_or_real() {
--    local dryrun=
--    if [ $DRYRUN -eq 1 ]; then
--        dryrun=echo
--    fi
--    $dryrun "$@"
--}
--
--_chattr() {
--    local attr="$2"
--    case $attr in
--        [+-=]*) : ;;
--        '') return ;;
--        *) attr="+$attr" ;;
--    esac
--    local IFS=
--    dryrun_or_real chattr $1 "$attr" -- $3
--}
--
--relabel() {
--    local path
--    local paths=$1 mode=$2 uid=$3 gid=$4
--    local status
--
--    status=0
--    for path in ${paths}; do
--        if [ -e "$path" ]; then
--            if [ -x /sbin/restorecon ]; then
--                dryrun_or_real restorecon $CHOPTS "$path" || status="$?"
--            fi
--            if [ $uid != '-' ]; then
--                dryrun_or_real chown $CHOPTS "$uid" "$path" || status="$?"
--            fi
--            if [ $gid != '-' ]; then
--                dryrun_or_real chgrp $CHOPTS "$gid" "$path" || status="$?"
--            fi
--            if [ $mode != '-' ]; then
--                dryrun_or_real chmod $CHOPTS "$mode" "$path" || status="$?"
--            fi
--        fi
--    done
--    return $status
--}
--
--splitpath() {
--    local path=$1
--    while [ -n "$path" ]; do
--        echo $path
--        path=${path%/*}
--    done
--}
--
--_restorecon() {
--    local path=$1
--    if [ -x /sbin/restorecon ]; then
--        dryrun_or_real restorecon -F $(splitpath "$path")
--    fi
--}
--
--createdirectory() {
--    local mode="$1" uid="$2" gid="$3" path="$4"
--    [ -d "$path" ] || dryrun_or_real mkdir -p "$path"
--    if [ "$uid" = - ]; then
--        uid=root
--    fi
--    if [ "$gid" = - ]; then
--        gid=root
--    fi
--    if [ "$mode" = - ]; then
--        mode=0755
--    fi
--    dryrun_or_real chown $uid "$path"
--    dryrun_or_real chgrp $gid "$path"
--    dryrun_or_real chmod $mode "$path"
--}
--
--createfile() {
--    local mode="$1" uid="$2" gid="$3" path="$4"
--    dryrun_or_real touch "$path"
--    if [ "$uid" = - ]; then
--        uid=root
--    fi
--    if [ "$gid" = - ]; then
--        gid=root
--    fi
--    if [ "$mode" = - ]; then
--        mode=0644
--    fi
--    dryrun_or_real chown $uid "$path"
--    dryrun_or_real chgrp $gid "$path"
--    dryrun_or_real chmod $mode "$path"
--}
--
--createpipe() {
--    local mode="$1" uid="$2" gid="$3" path="$4"
--    dryrun_or_real mkfifo "$path"
--    if [ "$uid" = - ]; then
--        uid=root
--    fi
--    if [ "$gid" = - ]; then
--        gid=root
--    fi
--    if [ "$mode" = - ]; then
--        mode=0644
--    fi
--    dryrun_or_real chown $uid "$path"
--    dryrun_or_real chgrp $gid "$path"
--    dryrun_or_real chmod $mode "$path"
--}
--
--_b() {
--    # Create a block device node if it doesn't exist yet
--    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
--    if [ "$uid" = - ]; then
--        uid=root
--    fi
--    if [ "$gid" = - ]; then
--        gid=root
--    fi
--    if [ "$mode" = - ]; then
--        mode=0644
--    fi
--    if [ ! -e "$path" ]; then
--        dryrun_or_real mknod -m $mode $path b ${arg%:*} ${arg#*:}
--        _restorecon "$path"
--        dryrun_or_real chown $uid "$path"
--        dryrun_or_real chgrp $gid "$path"
--    fi
--}
--
--_c() {
--    # Create a character device node if it doesn't exist yet
--    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
--    if [ "$uid" = - ]; then
--        uid=root
--    fi
--    if [ "$gid" = - ]; then
--        gid=root
--    fi
--    if [ "$mode" = - ]; then
--        mode=0644
--    fi
--    if [ ! -e "$path" ]; then
--        dryrun_or_real mknod -m $mode $path c ${arg%:*} ${arg#*:}
--        _restorecon "$path"
--        dryrun_or_real chown $uid "$path"
--        dryrun_or_real chgrp $gid "$path"
--    fi
--}
--
--_C() {
--    # recursively copy a file or directory
--    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
--    if [ ! -e "$path" ]; then
--        dryrun_or_real cp -r "$arg" "$path"
--        _restorecon "$path"
--        if [ $uid != '-' ]; then
--            dryrun_or_real chown "$uid" "$path"
--        fi
--        if [ $gid != '-' ]; then
--            dryrun_or_real chgrp "$gid" "$path"
--        fi
--        if [ $mode != '-' ]; then
--            dryrun_or_real chmod "$mode" "$path"
--        fi
--    fi
--}
--
--_f() {
--    # Create a file if it doesn't exist yet
--    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
--
--    [ $CREATE -gt 0 ] || return 0
--
--    if [ ! -e "$path" ]; then
--        createfile "$mode" "$uid" "$gid" "$path"
--        if [ -n "$arg" ]; then
--            _w "$@"
--        fi
--    fi
--}
--
--_F() {
--    # Create or truncate a file
--    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
--
--    [ $CREATE -gt 0 ] || return 0
--
--    dryrun_or_real rm -f "$path"
--    createfile "$mode" "$uid" "$gid" "$path"
--    if [ -n "$arg" ]; then
--        _w "$@"
--    fi
--}
--
--_d() {
--    # Create a directory if it doesn't exist yet
--    local path=$1 mode=$2 uid=$3 gid=$4
--
--    if [ $CREATE -gt 0 ]; then
--        createdirectory "$mode" "$uid" "$gid" "$path"
--        _restorecon "$path"
--    fi
--}
--
--_D() {
--    # Create or empty a directory
--    local path=$1 mode=$2 uid=$3 gid=$4
--
--    if [ -d "$path" ] && [ $REMOVE -gt 0 ]; then
--        dryrun_or_real find "$path" -mindepth 1 -maxdepth 1 -xdev -exec rm -rf {} +
--        _restorecon "$path"
--    fi
--
--    if [ $CREATE -gt 0 ]; then
--        createdirectory "$mode" "$uid" "$gid" "$path"
--        _restorecon "$path"
--    fi
--}
--
--_v() {
--    # Create a subvolume if the path does not exist yet and the file system
--    # supports this (btrfs). Otherwise create a normal directory.
--    # TODO: Implement btrfs subvol creation.
--    _d "$@"
--}
--
--_q() {
--    # Similar to _v. However, make sure that the subvolume will be assigned
--    # to the same higher-level quota groups as the subvolume it has
--    # been created in.
--    # TODO: Implement btrfs subvol creation.
--    _d "$@"
--}
--
--_Q() {
--    # Similar to q. However, instead of copying the higher-level quota
--    # group assignments from the parent as-is, the lowest quota group
--    # of the parent subvolume is determined that is not the
--    # leaf quota group.
--    # TODO: Implement btrfs subvol creation.
--    _d "$@"
--}
--
--_h() {
--    # Set file/directory attributes. Lines of this type accept
--    # shell-style globs in place of normal path names.
--    # The format of the argument field matches chattr
--    _chattr '' "$6" "$1"
--}
--
--_H() {
--    # Recursively set file/directory attributes. Lines of this type accept
--    # shell-syle globs in place of normal path names.
--    # Does not follow symlinks
--    _chattr -R "$6" "$1"
--}
--
--_L() {
--    # Create a symlink if it doesn't exist yet
--    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
--    if [ ! -e "$path" ]; then
--        dryrun_or_real ln -s "$arg" "$path"
--    fi
--    _restorecon "$path"
--}
--
--_p() {
--    # Create a named pipe (FIFO) if it doesn't exist yet
--    local path=$1 mode=$2 uid=$3 gid=$4
--
--    [ $CREATE -gt 0 ] || return 0
--
--    if [ ! -p "$path" ]; then
--        createpipe "$mode" "$uid" "$gid" "$path"
--    fi
--}
--
--_x() {
--    # Ignore a path during cleaning. Use this type to exclude paths from clean-up as
--    # controlled with the Age parameter. Note that lines of this type do not
--    # influence the effect of r or R lines. Lines of this type accept shell-style
--    # globs in place of of normal path names.
--    :
--    # XXX: we don't implement this
--}
--
--_X() {
--    # Ignore a path during cleanup. Use this type to prevent path
--    # removal as controled with the age parameter. Note that if path is
--    # a directory, the content of the directory is not excluded from
--    # clean-up, only the directory itself.
--    # Lines of this type accept shell-style globs in place of normal path names.
--    :
--    # XXX: we don't implement this
--}
--
--_r() {
--    # Remove a file or directory if it exists. This may not be used to remove
--    # non-empty directories, use R for that. Lines of this type accept shell-style
--    # globs in place of normal path names.
--    local path
--    local paths=$1
--    local status
--
--    [ $REMOVE -gt 0 ] || return 0
--
--    status=0
--    for path in ${paths}; do
--        if [ -f "$path" ]; then
--            dryrun_or_real rm -f "$path" || status="$?"
--        elif [ -d "$path" ]; then
--            dryrun_or_real rmdir "$path" || status="$?"
--        fi
--    done
--    return $status
--}
--
--_R() {
--    # Recursively remove a path and all its subdirectories (if it is a directory).
--    # Lines of this type accept shell-style globs in place of normal path names.
--    local path
--    local paths=$1
--    local status
--
--    [ $REMOVE -gt 0 ] || return 0
--
--    status=0
--    for path in ${paths}; do
--        if [ -d "$path" ]; then
--            dryrun_or_real rm -rf --one-file-system "$path" || status="$?"
--    fi
--    done
--    return $status
--}
--
--_w() {
--    # Write the argument parameter to a file, if it exists.
--    local path=$1 mode=$2 uid=$3 gid=$4 age=$5 arg=$6
--    if [ -f "$path" ]; then
--        if [ $DRYRUN -eq 1 ]; then
--            echo "echo \"$arg\" >>\"$path\""
--        else
--            echo "$arg" >>"$path"
--        fi
--    fi
--}
--
--_z() {
--    # Set ownership, access mode and relabel security context of a file or
--    # directory if it exists. Lines of this type accept shell-style globs in
--    # place of normal path names.
--    [ $CREATE -gt 0 ] || return 0
--
--    relabel "$@"
--}
--
--_Z() {
--    # Recursively set ownership, access mode and relabel security context of a
--    # path and all its subdirectories (if it is a directory). Lines of this type
--    # accept shell-style globs in place of normal path names.
--    [ $CREATE -gt 0 ] || return 0
--
--    CHOPTS=-R relabel "$@"
--}
--
--usage() {
--    printf 'usage: %s [--exclude-prefix=path] [--prefix=path] [--boot] [--create] [--remove] [--clean] [--verbose] [--dry-run]\n' "${0##*/}"
--    exit ${1:-0}
--}
--
--version() {
--    # We don't record the version info anywhere currently.
--    echo "opentmpfiles"
--    exit 0
--}
--
--BOOT=0 CREATE=0 REMOVE=0 CLEAN=0 VERBOSE=0 DRYRUN=0 error=0 LINENO=0
--EXCLUDE=
--PREFIX=
--FILES=
--
--while [ $# -gt 0 ]; do
--    case $1 in
--        --boot) BOOT=1 ;;
--        --create) CREATE=1 ;;
--        --remove) REMOVE=1 ;;
--        --clean) CLEAN=1 ;; # TODO: Not implemented
--        --verbose) VERBOSE=1 ;;
--        --dryrun|--dry-run) DRYRUN=1 ;;
--        --exclude-prefix=*) EXCLUDE="${EXCLUDE}${1##--exclude-prefix=} " ;;
--        --prefix=*) PREFIX="${PREFIX}${1##--prefix=} " ;;
--        -h|--help) usage ;;
--        --version) version ;;
--        -*) invalid_option "$1" ;;
--        *) FILES="${FILES} $1"
--    esac
--    shift
--done
--
--if [ $(( CLEAN )) -eq 1 ] ; then
--    printf '%s clean mode is not implemented\n' "${0##*/}"
--    exit 1
--fi
--
--if [ "$CREATE$REMOVE" = '00' ]; then
--    usage 1 >&2
--fi
--
--# XXX: The harcoding of /usr/lib/ is an explicit choice by upstream
--tmpfiles_dirs='/usr/lib/tmpfiles.d /run/tmpfiles.d /etc/tmpfiles.d'
--tmpfiles_basenames=''
--
--if [ -z "${FILES}" ]; then
--    # Build a list of sorted unique basenames
--    # directories declared later in the tmpfiles_d array will override earlier
--    # directories, on a per file basename basis.
--    # `/etc/tmpfiles.d/foo.conf' supersedes `/usr/lib/tmpfiles.d/foo.conf'.
--    # `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
--    for d in ${tmpfiles_dirs} ; do
--        [ -d $d ] && for f in ${d}/*.conf ; do
--            case "${f##*/}" in
--                systemd.conf|systemd-*.conf) continue;;
--            esac
--            [ -f $f ] && tmpfiles_basenames="${tmpfiles_basenames}\n${f##*/}"
--        done # for f in ${d}
--    done # for d in ${tmpfiles_dirs}
--    FILES="$(printf "${tmpfiles_basenames}\n" | sort -u )"
--fi
--
--tmpfiles_d=''
--
--for b in ${FILES} ; do
--    if [ "${b##*/}" != "${b}" ]; then
--        # The user specified a path on the command line
--        # Just pass it through unaltered
--        tmpfiles_d="${tmpfiles_d} ${b}"
--    else
--        real_f=''
--        for d in $tmpfiles_dirs ; do
--            f=${d}/${b}
--            [ -f "${f}" ] && real_f=$f
--        done
--        [ -f "${real_f}" ] && tmpfiles_d="${tmpfiles_d} ${real_f}"
--    fi
--done
--
--error=0
--
--# loop through the gathered fragments, sorted globally by filename.
--# `/run/tmpfiles/foo.conf' will always be read after `/etc/tmpfiles.d/bar.conf'
--FILE=
--for FILE in $tmpfiles_d ; do
--    LINENUM=0
--
--    ### FILE FORMAT ###
--    # XXX: We ignore the 'Age' parameter
--    # 1    2              3    4    5    6   7
--    # Cmd  Path           Mode UID  GID  Age Argument
--    # d    /run/user      0755 root root 10d -
--    # Mode, UID, GID, Age, Argument may be omitted!
--    # If Cmd ends with !, the line is only processed if --boot is passed
--
--    # XXX: Upstream says whitespace is NOT permitted in the Path argument.
--    # But IS allowed when globs are expanded for the x/r/R/z/Z types.
--    while read cmd path mode uid gid age arg; do
--        LINENUM=$(( LINENUM+1 ))
--        FORCE=0
--
--        # Unless we have both command and path, skip this line.
--        if [ -z "$cmd" -o -z "$path" ]; then
--            continue
--        fi
--
--        case $cmd in
--            \#*) continue ;;
--        esac
--
--        while [ ${#cmd} -gt 1 ]; do
--            case $cmd in
--                *!) cmd=${cmd%!}; [ "$BOOT" -eq "1" ] || continue 2 ;;
--                *+) cmd=${cmd%+}; FORCE=1; ;;
--                *) warninvalid ; continue 2 ;;
--            esac
--        done
--
--        # whine about invalid entries
--        case $cmd in
--            f|F|w|d|D|v|p|L|c|C|b|x|X|r|R|z|Z|q|Q|h|H) ;;
--            *) warninvalid ; continue ;;
--        esac
--
--        # fall back on defaults when parameters are passed as '-'
--        if [ "$mode" = '-' -o "$mode" = '' ]; then
--            case "$cmd" in
--                p|f|F) mode=0644 ;;
--                d|D|v) mode=0755 ;;
--                C|z|Z|x|r|R|L) ;;
--            esac
--        fi
--
--        [ "$uid" = '-' -o "$uid" = '' ] && uid=0
--        [ "$gid" = '-' -o "$gid" = '' ] && gid=0
--        [ "$age" = '-' -o "$age" = '' ] && age=0
--        [ "$arg" = '-' -o "$arg" = '' ] && arg=''
--        set -- "$path" "$mode" "$uid" "$gid" "$age" "$arg"
--
--        [ -n "$EXCLUDE" ] && checkprefix $path $EXCLUDE && continue
--        [ -n "$PREFIX" ] && ! checkprefix $path $PREFIX && continue
--
--        if [ $FORCE -gt 0 ]; then
--            case $cmd in
--                p|L|c|b) [ -f "$path" ] && dryrun_or_real rm -f "$path"
--            esac
--        fi
--
--        [ "$VERBOSE" -eq "1" ] && echo _$cmd "$@"
--        _$cmd "$@"
--        rc=$?
--        if [ "${DRYRUN}" -eq "0" ]; then
--            [ $rc -ne 0 ] && error=$((error + 1))
--        fi
--    done <$FILE
--done
--
--exit $error
--
--# vim: set ts=2 sw=2 sts=2 noet ft=sh:
 diff --git a/module/boot@/service/all-Local b/module/boot@/service/all-Local
 index 95a2a1b37042aa5718e4f626e4b823057820fff9..2e08187f6838241a524ff79a97f888f22d25a662 100644
 --- a/module/boot@/service/all-Local
@@ -692,7 +125,7 @@ index fe38ef4ba439197759780579326ed055a0cc1afb..ed87f7ee6f0595d037d1ed1c56c1f102
  @user = ( root )
 diff --git a/module/boot@/service/local/local-tmpfiles b/module/boot@/service/local/local-tmpfiles
 deleted file mode 100644
-index 4b471408a3efac3734c0a8ed76c4529bf2241b83..0000000000000000000000000000000000000000
+index 35a58e7281473d9ce808000c855bf448589b267e..0000000000000000000000000000000000000000
 --- a/module/boot@/service/local/local-tmpfiles
 +++ /dev/null
 @@ -1,23 +0,0 @@
@@ -717,26 +150,21 @@ index 4b471408a3efac3734c0a8ed76c4529bf2241b83..00000000000000000000000000000000
 -)
 -
 -[environment]
--script_file=!@scripts@/tmpfiles.sh
+-script_file=!@tmpfiles@/opentmpfiles.sh
 -script_args=!--create --verbose --boot
-diff --git a/package/targets.mak b/package/targets.mak
-index 366f2f45b0cfc7839500c1505749a7990e9323db..376b312f9838824620603a986f87b03b9ac1e07b 100644
---- a/package/targets.mak
-+++ b/package/targets.mak
-@@ -1,7 +1,6 @@
- SCRIPT_TARGET := \
- module/boot@/configure/crypt.awk \
--module/boot@/configure/modules.sh \
--module/boot@/configure/tmpfiles.sh
-+module/boot@/configure/modules.sh
- 
- SERVICE_TARGET := service/boot@
- MODULE_TARGET := $(shell find module/boot@/service -type f)
 diff --git a/service/boot@ b/service/boot@
-index 306359e210564922dbd58e5a92ecdb802ec8183f..da67f147f4278338cec746b4d03cf50b58aa0e86 100644
+index f08eac1d2f3d480ceffe41bb0b7890931d838607..da3e5e957d31deb8597279ecd72dbb268319d90a 100644
 --- a/service/boot@
 +++ b/service/boot@
-@@ -147,9 +147,6 @@
+@@ -11,7 +11,6 @@
+ ::@initconf@=@skel_directory@/init.conf
+ ::@skeldir@=@skel_directory@
+ ::@live_dir@=@livedir@
+-::@tmpfiles@=@tmpfiles_path@
+ ::@modules@=@modules_path@
+ ::@vers@=@VERSION@
+ )
+@@ -149,9 +148,6 @@
  
  @CONTAINER@
  
diff --git a/srcpkgs/boot-66serv/template b/srcpkgs/boot-66serv/template
index a88e8b4ed5c0..e49ced874a37 100644
--- a/srcpkgs/boot-66serv/template
+++ b/srcpkgs/boot-66serv/template
@@ -1,11 +1,12 @@
 # Template file for 'boot-66serv'
 pkgname=boot-66serv
-version=2.3.1
-revision=2
+version=2.4.0
+revision=1
 wrksrc=${pkgname}-v${version}
 build_style=gnu-configure
 configure_args="--HOSTNAME=!voidlinux --TTY=!4
- --KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no"
+ --KEYMAP=!us --TZ=!Europe/Madrid --TMPFILE=!no
+ --modules-script=/usr/share/66/script/"
 make_install_target="install install-man install-html"
 hostmakedepends="lowdown"
 makedepends="file"
@@ -16,7 +17,7 @@ license="ISC"
 homepage="https://framagit.org/pkg/obmods/boot-66serv"
 conf_files="/etc/66/rc.local"
 distfiles="https://framagit.org/pkg/obmods/boot-66serv/-/archive/v${version}/boot-66serv-v${version}.tar.bz2"
-checksum=b6fd72c1a662bb4ee15a27885e2967196966772a02595006730f56a87f85a679
+checksum=db2de4a1ad10fb8ea199665c31075f9ddf96121d4c9c9272b33b5ec678630819
 patch_args=" -Np1"
 make_dirs="/etc/runit/runsvdir/66 0750 root root"
 
@@ -39,6 +40,9 @@ post_install() {
 	vinstall "${FILESDIR}"/switch-initutils-66 644 usr/share/66/service/ switch-initutils
 	vsed -i "s/@VERSION@/0.0.2/" "${DESTDIR}/usr/share/66/service/switch-initutils"
 
+	# Install modules.sh in /usr/share/66/script/
+	vinstall "${FILESDIR}"/modules.sh 755 usr/share/66/script/
+
 	# Install license file
 	vlicense LICENSE
 }

  parent reply	other threads:[~2021-09-15 13:15 UTC|newest]

Thread overview: 173+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-19 19:14 [PR PATCH] [WIP] New package: boot-66serv-2.2.0 mobinmob
2020-10-19 19:16 ` mobinmob
2020-10-19 19:18 ` [PR PATCH] [Updated] " mobinmob
2020-11-08 15:10 ` [PR PATCH] [Updated] [WIP] New package: boot-66serv-2.2.1 mobinmob
2020-11-08 15:24 ` mobinmob
2020-11-08 15:26 ` mobinmob
2020-11-08 15:27 ` mobinmob
2020-11-08 15:31 ` mobinmob
2020-11-23 23:55 ` [PR PATCH] [Updated] " mobinmob
2020-11-23 23:58 ` mobinmob
2020-11-25 19:25 ` [PR PATCH] [Updated] " mobinmob
2020-11-25 19:29 ` mobinmob
2020-12-15 21:54 ` mobinmob
2020-12-15 22:01 ` mobinmob
2020-12-28 21:58 ` [PR PATCH] [Updated] " mobinmob
2020-12-28 22:00 ` mobinmob
2020-12-29  7:47 ` travankor
2020-12-29  9:54 ` mobinmob
2020-12-29  9:55 ` mobinmob
2020-12-29 10:03 ` mobinmob
2021-01-03 14:24 ` [PR PATCH] [Updated] " mobinmob
2021-01-03 14:30 ` mobinmob
2021-01-03 14:31 ` mobinmob
2021-01-03 14:32 ` mobinmob
2021-01-03 14:32 ` mobinmob
2021-01-03 14:35 ` mobinmob
2021-01-03 15:14 ` [PR PATCH] [Updated] " mobinmob
2021-01-23 20:07 ` mobinmob
2021-01-23 20:14 ` mobinmob
2021-01-23 20:17 ` mobinmob
2021-02-01 17:22 ` [PR PATCH] [Updated] [WIP] New package: boot-66serv-2.3.0 mobinmob
2021-02-01 17:24 ` mobinmob
2021-02-03  0:14 ` [PR PATCH] [Updated] " mobinmob
2021-02-03  0:16 ` mobinmob
2021-02-03  0:25 ` mobinmob
2021-02-04 19:48 ` [PR PATCH] [Updated] " mobinmob
2021-02-04 19:50 ` mobinmob
2021-02-04 20:01 ` mobinmob
2021-02-04 20:08 ` [PR REVIEW] " ericonr
2021-02-04 20:08 ` ericonr
2021-02-04 20:08 ` ericonr
2021-02-04 20:08 ` ericonr
2021-02-04 20:12 ` mobinmob
2021-02-04 20:16 ` mobinmob
2021-02-04 20:17 ` mobinmob
2021-02-04 20:19 ` mobinmob
2021-02-04 20:20 ` [PR PATCH] [Updated] " mobinmob
2021-02-04 20:20 ` [PR REVIEW] " mobinmob
2021-02-04 20:21 ` mobinmob
2021-02-04 20:23 ` [PR PATCH] [Updated] " mobinmob
2021-02-04 20:24 ` [PR REVIEW] " mobinmob
2021-02-04 23:24 ` [PR PATCH] [Updated] " mobinmob
2021-02-04 23:52 ` mobinmob
2021-02-06  0:46 ` mobinmob
2021-02-06  0:47 ` mobinmob
2021-02-06  0:55 ` mobinmob
2021-02-06  1:01 ` mobinmob
2021-02-06  1:08 ` mobinmob
2021-02-08 11:13 ` [PR PATCH] [Updated] " mobinmob
2021-02-08 17:06 ` mobinmob
2021-02-14 18:11 ` mobinmob
2021-02-14 22:54 ` [PR PATCH] [Updated] " mobinmob
2021-02-14 22:59 ` mobinmob
2021-02-14 22:59 ` mobinmob
2021-02-14 23:01 ` mobinmob
2021-02-16 15:14 ` [PR PATCH] [Updated] " mobinmob
2021-02-27 23:24 ` mobinmob
2021-02-27 23:31 ` mobinmob
2021-02-27 23:31 ` mobinmob
2021-02-27 23:31 ` mobinmob
2021-03-02 21:50 ` [PR PATCH] [Updated] " mobinmob
2021-03-03 20:24 ` mobinmob
2021-03-03 22:37 ` mobinmob
2021-03-03 22:39 ` mobinmob
2021-03-05 17:56 ` mobinmob
2021-03-05 17:57 ` mobinmob
2021-03-05 17:58 ` mobinmob
2021-03-05 18:01 ` mobinmob
2021-03-16 19:19 ` [PR PATCH] [Updated] " mobinmob
2021-03-16 19:22 ` mobinmob
2021-03-21 15:22 ` [PR PATCH] [Updated] " mobinmob
2021-03-22 20:49 ` mobinmob
2021-03-22 20:55 ` mobinmob
2021-05-28 20:24 ` [PR PATCH] [Updated] " mobinmob
2021-05-28 20:30 ` [WIP] New package: boot-66serv-2.3.1 mobinmob
2021-05-29 23:13 ` paper42
2021-05-30 14:14 ` mobinmob
2021-05-30 14:16 ` mobinmob
2021-05-30 14:24 ` mobinmob
2021-07-13 21:35 ` [PR PATCH] [Updated] " mobinmob
2021-07-13 21:36 ` mobinmob
2021-07-13 21:43 ` [PR PATCH] [Updated] " mobinmob
2021-09-15 13:07 ` mobinmob
2021-09-15 13:09 ` mobinmob
2021-09-15 13:10 ` mobinmob
2021-09-15 13:15 ` mobinmob [this message]
2021-09-15 19:19 ` [PR PATCH] [Updated] [WIP] New package: boot-66serv-2.4.0 mobinmob
2021-09-15 19:23 ` mobinmob
2021-11-19 18:01 ` [PR PATCH] [Updated] " mobinmob
2021-11-19 18:04 ` mobinmob
2021-11-24  2:09 ` thegarlynch
2021-11-24  5:39 ` mobinmob
2021-11-24 13:51 ` mobinmob
2022-02-20 10:37 ` [PR PATCH] [Updated] " mobinmob
2022-02-20 10:37 ` mobinmob
2022-02-20 10:41 ` mobinmob
2022-02-20 19:29 ` mobinmob
2022-02-21 17:51 ` [PR PATCH] [Updated] " mobinmob
2022-02-21 17:56 ` mobinmob
2022-02-22 14:31 ` mobinmob
2022-03-11 10:07 ` thegarlynch
2022-03-12  9:30 ` mobinmob
2022-03-12  9:30 ` mobinmob
2022-03-12  9:34 ` mobinmob
2022-03-12  9:37 ` mobinmob
2022-05-14 10:49 ` [PR PATCH] [Updated] " mobinmob
2022-05-14 10:49 ` mobinmob
2022-05-14 10:52 ` [PR PATCH] [Updated] " mobinmob
2022-05-14 10:53 ` mobinmob
2022-05-14 13:02 ` mobinmob
2022-05-14 13:02 ` mobinmob
2022-05-15 13:44 ` mobinmob
2022-05-15 13:45 ` mobinmob
2022-06-18 10:43 ` mobinmob
2022-06-18 10:43 ` mobinmob
2022-08-22 15:18 ` NymanMatthias
2022-08-22 15:18 ` NymanMatthias
2022-08-22 16:11 ` mobinmob
2022-10-01 15:49 ` mobinmob
2022-10-16 13:08 ` [PR PATCH] [Updated] [WIP] New package: boot-66serv-2.4.1 mobinmob
2022-10-16 13:11 ` mobinmob
2022-10-16 13:19 ` [PR PATCH] [Updated] " mobinmob
2022-10-16 13:21 ` mobinmob
2022-10-16 14:16 ` mobinmob
2022-10-16 22:27 ` NymanMatthias
2022-10-17  3:00 ` mobinmob
2022-10-17  3:05 ` mobinmob
2022-10-17  3:23 ` mobinmob
2022-10-17 12:54 ` mobinmob
2023-01-16  1:58 ` github-actions
2023-01-18 17:05 ` mobinmob
2023-01-18 17:07 ` mobinmob
2023-02-05 18:41 ` [PR PATCH] [Updated] " mobinmob
2023-02-05 19:06 ` mobinmob
2023-02-05 19:08 ` mobinmob
2023-03-11 18:37 ` [PR PATCH] [Updated] " mobinmob
2023-03-11 18:53 ` mobinmob
2023-03-11 18:57 ` mobinmob
2023-03-11 18:58 ` mobinmob
2023-03-11 18:58 ` mobinmob
2023-03-11 18:59 ` mobinmob
2023-03-11 19:00 ` mobinmob
2023-04-12 16:33 ` sonnysighedup
2023-04-12 16:45 ` mobinmob
2023-04-12 16:46 ` mobinmob
2023-04-12 16:48 ` mobinmob
2023-04-12 17:35 ` mobinmob
2023-04-12 17:50 ` sonnysighedup
2023-04-12 17:59 ` mobinmob
2023-04-12 17:59 ` mobinmob
2023-07-12  2:06 ` github-actions
2023-07-27  1:46 ` [PR PATCH] [Closed]: " github-actions
2023-07-29 17:42 ` mobinmob
2023-07-29 17:43 ` mobinmob
2023-07-29 17:43 ` mobinmob
2023-08-05  7:55 ` mobinmob
2023-08-05  8:08 ` mobinmob
2023-08-05  9:08 ` mobinmob
2023-08-06 18:55 ` mobinmob
2023-08-06 19:15 ` mobinmob
2023-08-13 14:46 ` mobinmob
2023-08-14  8:07 ` mobinmob
2023-08-14  8:07 ` mobinmob

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210915131539.xAuqWbm8hOA_BwPiKl6pBR02ooh_cF47sW6IDFnVfg4@z \
    --to=mobinmob@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).