summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPS <p@0x53.net>2026-02-01 12:02:03 +0100
committerPS <p@0x53.net>2026-02-01 12:02:03 +0100
commit980c5408489a3a3a56e49c3873f1bce6a0155cad (patch)
tree91df5fa62e7eca03d04b8ed114b20b337b99a556
downloadgoetia-base-980c5408489a3a3a56e49c3873f1bce6a0155cad.tar.gz
goetia-base-980c5408489a3a3a56e49c3873f1bce6a0155cad.tar.bz2
goetia-base-980c5408489a3a3a56e49c3873f1bce6a0155cad.zip
version 0.2.0.0
-rw-r--r--AUTHORS10
-rw-r--r--CONTRIBUTING5
-rw-r--r--COPYING13
-rw-r--r--DCO37
-rw-r--r--INSTALL83
-rw-r--r--Makefile87
-rw-r--r--NEWS6
-rwxr-xr-xconfigure196
-rw-r--r--package/deps.mak420
-rw-r--r--package/extras.mak21
-rw-r--r--package/info4
-rw-r--r--package/modes35
-rw-r--r--package/targets.mak446
-rwxr-xr-xsrc/bin/compile-db27
-rwxr-xr-xsrc/bin/longrun-make36
-rwxr-xr-xsrc/bin/oneshot-make22
-rwxr-xr-xsrc/bin/prepare-svscan37
-rwxr-xr-xsrc/bin/system-db7
-rwxr-xr-xsrc/bin/system-ml31
-rwxr-xr-xsrc/bin/system-rc5
-rwxr-xr-xsrc/bin/system-run6
-rwxr-xr-xsrc/bin/system-shutdown-daemon31
-rwxr-xr-xsrc/bin/user-db13
-rwxr-xr-xsrc/bin/user-init26
-rwxr-xr-xsrc/bin/user-ml33
-rwxr-xr-xsrc/bin/user-rc11
-rwxr-xr-xsrc/bin/user-run12
-rwxr-xr-xsrc/bin/user-shutdown23
-rwxr-xr-xsrc/bin/user-tmpfs17
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGINT5
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGPWR5
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGQUIT2
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGTERM2
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGUSR15
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGUSR25
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/SIGWINCH2
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/crash10
-rwxr-xr-xsrc/lib/service/system/.s6-svscan/finish9
-rw-r--r--src/lib/service/system/goetia-runner/notification-fd1
-rwxr-xr-xsrc/lib/service/system/goetia-runner/run10
-rw-r--r--src/lib/service/system/s6-svscan-log-console/notification-fd1
-rwxr-xr-xsrc/lib/service/system/s6-svscan-log-console/run16
-rw-r--r--src/lib/service/system/s6-svscan-log/notification-fd1
-rwxr-xr-xsrc/lib/service/system/s6-svscan-log/run15
-rwxr-xr-xsrc/lib/service/user/.s6-svscan/SIGTERM5
-rw-r--r--src/lib/service/user/goetia-runner/notification-fd1
-rwxr-xr-xsrc/lib/service/user/goetia-runner/run10
-rw-r--r--src/lib/service/user/s6-svscan-log/notification-fd1
-rwxr-xr-xsrc/lib/service/user/s6-svscan-log/run17
-rw-r--r--src/lib/source/system/admin/greetd-srv/dependencies.d/mount-run0
-rw-r--r--src/lib/source/system/admin/greetd-srv/dependencies.d/seat-manager0
-rw-r--r--src/lib/source/system/admin/greetd-srv/dependencies.d/udev0
-rw-r--r--src/lib/source/system/admin/greetd-srv/producer-for1
-rw-r--r--src/lib/source/system/admin/greetd-srv/run8
-rw-r--r--src/lib/source/system/admin/greetd-srv/type1
-rw-r--r--src/lib/source/system/admin/seatd-srv/dependencies.d/mount-dev0
-rw-r--r--src/lib/source/system/admin/seatd-srv/dependencies.d/mount-run0
-rw-r--r--src/lib/source/system/admin/seatd-srv/notification-fd1
-rw-r--r--src/lib/source/system/admin/seatd-srv/producer-for1
-rw-r--r--src/lib/source/system/admin/seatd-srv/run13
-rw-r--r--src/lib/source/system/admin/seatd-srv/type1
-rw-r--r--src/lib/source/system/bundle/default/type1
-rw-r--r--src/lib/source/system/bundle/firewall/type1
-rw-r--r--src/lib/source/system/bundle/mount/type1
-rw-r--r--src/lib/source/system/bundle/networking/type1
-rw-r--r--src/lib/source/system/bundle/seat-manager/type1
-rw-r--r--src/lib/source/system/bundle/system-bus/type1
-rw-r--r--src/lib/source/system/bundle/udev/type1
-rw-r--r--src/lib/source/system/cron/dcron-srv/producer-for1
-rw-r--r--src/lib/source/system/cron/dcron-srv/run13
-rw-r--r--src/lib/source/system/cron/dcron-srv/type1
-rw-r--r--src/lib/source/system/db/mariadbd-srv/producer-for1
-rw-r--r--src/lib/source/system/db/mariadbd-srv/run8
-rw-r--r--src/lib/source/system/db/mariadbd-srv/type1
-rw-r--r--src/lib/source/system/db/mysqld-srv/producer-for1
-rw-r--r--src/lib/source/system/db/mysqld-srv/run8
-rw-r--r--src/lib/source/system/db/mysqld-srv/type1
-rw-r--r--src/lib/source/system/net/dhcpcd-srv/dependencies.d/udev0
-rw-r--r--src/lib/source/system/net/dhcpcd-srv/producer-for1
-rw-r--r--src/lib/source/system/net/dhcpcd-srv/run9
-rw-r--r--src/lib/source/system/net/dhcpcd-srv/type1
-rw-r--r--src/lib/source/system/net/wpa_supplicant-srv/dependencies.d/system-bus0
-rw-r--r--src/lib/source/system/net/wpa_supplicant-srv/producer-for1
-rw-r--r--src/lib/source/system/net/wpa_supplicant-srv/run10
-rw-r--r--src/lib/source/system/net/wpa_supplicant-srv/type1
-rw-r--r--src/lib/source/system/ntp/chronyd-srv/dependencies.d/networking0
-rw-r--r--src/lib/source/system/ntp/chronyd-srv/producer-for1
-rw-r--r--src/lib/source/system/ntp/chronyd-srv/run12
-rw-r--r--src/lib/source/system/ntp/chronyd-srv/type1
-rw-r--r--src/lib/source/system/other/cupsd-srv/producer-for1
-rw-r--r--src/lib/source/system/other/cupsd-srv/run11
-rw-r--r--src/lib/source/system/other/cupsd-srv/type1
-rw-r--r--src/lib/source/system/other/dbus-daemon-srv/notification-fd1
-rw-r--r--src/lib/source/system/other/dbus-daemon-srv/producer-for1
-rw-r--r--src/lib/source/system/other/dbus-daemon-srv/run15
-rw-r--r--src/lib/source/system/other/dbus-daemon-srv/type1
-rw-r--r--src/lib/source/system/other/sshd-srv/dependencies.d/networking0
-rw-r--r--src/lib/source/system/other/sshd-srv/producer-for1
-rw-r--r--src/lib/source/system/other/sshd-srv/run17
-rw-r--r--src/lib/source/system/other/sshd-srv/type1
-rw-r--r--src/lib/source/system/web/gate-srv/dependencies.d/udev0
-rw-r--r--src/lib/source/system/web/gate-srv/producer-for1
-rw-r--r--src/lib/source/system/web/gate-srv/run9
-rw-r--r--src/lib/source/system/web/gate-srv/type1
-rw-r--r--src/lib/source/system/web/nginx-srv/producer-for1
-rw-r--r--src/lib/source/system/web/nginx-srv/run9
-rw-r--r--src/lib/source/system/web/nginx-srv/type1
-rw-r--r--src/lib/source/system/web/radicale-srv/dependencies.d/mount0
-rw-r--r--src/lib/source/system/web/radicale-srv/producer-for1
-rw-r--r--src/lib/source/system/web/radicale-srv/run10
-rw-r--r--src/lib/source/system/web/radicale-srv/type1
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire0
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir0
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-pulse-srv/producer-for1
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-pulse-srv/run10
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-pulse-srv/type1
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir0
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-srv/notification-fd1
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-srv/producer-for1
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-srv/run10
-rw-r--r--src/lib/source/user/audio-daemon/pipewire-srv/type1
-rw-r--r--src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire0
-rw-r--r--src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/audio-daemon/wireplumber-srv/producer-for1
-rw-r--r--src/lib/source/user/audio-daemon/wireplumber-srv/run8
-rw-r--r--src/lib/source/user/audio-daemon/wireplumber-srv/type1
-rw-r--r--src/lib/source/user/bundle/audio/type1
-rw-r--r--src/lib/source/user/bundle/compositor/type1
-rw-r--r--src/lib/source/user/bundle/default/type1
-rw-r--r--src/lib/source/user/bundle/session-bus/type1
-rw-r--r--src/lib/source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/clipboard-manager/wl-clip-persist-srv/producer-for1
-rw-r--r--src/lib/source/user/clipboard-manager/wl-clip-persist-srv/run9
-rw-r--r--src/lib/source/user/clipboard-manager/wl-clip-persist-srv/type1
-rw-r--r--src/lib/source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir0
-rw-r--r--src/lib/source/user/compositor/Hyprland-srv/finish8
-rw-r--r--src/lib/source/user/compositor/Hyprland-srv/producer-for1
-rw-r--r--src/lib/source/user/compositor/Hyprland-srv/run8
-rw-r--r--src/lib/source/user/compositor/Hyprland-srv/type1
-rw-r--r--src/lib/source/user/desktop-widget/waybar-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/desktop-widget/waybar-srv/notification-fd1
-rw-r--r--src/lib/source/user/desktop-widget/waybar-srv/producer-for1
-rw-r--r--src/lib/source/user/desktop-widget/waybar-srv/run8
-rw-r--r--src/lib/source/user/desktop-widget/waybar-srv/type1
-rw-r--r--src/lib/source/user/desktop-widget/yambar-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/desktop-widget/yambar-srv/notification-fd1
-rw-r--r--src/lib/source/user/desktop-widget/yambar-srv/producer-for1
-rw-r--r--src/lib/source/user/desktop-widget/yambar-srv/run10
-rw-r--r--src/lib/source/user/desktop-widget/yambar-srv/type1
-rw-r--r--src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/notification-daemon/dunst-srv/notification-fd1
-rw-r--r--src/lib/source/user/notification-daemon/dunst-srv/producer-for1
-rw-r--r--src/lib/source/user/notification-daemon/dunst-srv/run8
-rw-r--r--src/lib/source/user/notification-daemon/dunst-srv/type1
-rw-r--r--src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/notification-daemon/fnott-srv/notification-fd1
-rw-r--r--src/lib/source/user/notification-daemon/fnott-srv/producer-for1
-rw-r--r--src/lib/source/user/notification-daemon/fnott-srv/run10
-rw-r--r--src/lib/source/user/notification-daemon/fnott-srv/type1
-rw-r--r--src/lib/source/user/notification-daemon/mako-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/notification-daemon/mako-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/notification-daemon/mako-srv/notification-fd1
-rw-r--r--src/lib/source/user/notification-daemon/mako-srv/producer-for1
-rw-r--r--src/lib/source/user/notification-daemon/mako-srv/run8
-rw-r--r--src/lib/source/user/notification-daemon/mako-srv/type1
-rw-r--r--src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/notification-daemon/swaync-srv/notification-fd1
-rw-r--r--src/lib/source/user/notification-daemon/swaync-srv/producer-for1
-rw-r--r--src/lib/source/user/notification-daemon/swaync-srv/run8
-rw-r--r--src/lib/source/user/notification-daemon/swaync-srv/type1
-rw-r--r--src/lib/source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/other/at-spi-bus-launcher-srv/producer-for1
-rw-r--r--src/lib/source/user/other/at-spi-bus-launcher-srv/run8
-rw-r--r--src/lib/source/user/other/at-spi-bus-launcher-srv/type1
-rw-r--r--src/lib/source/user/other/at-spi2-registryd-srv/producer-for1
-rw-r--r--src/lib/source/user/other/at-spi2-registryd-srv/run8
-rw-r--r--src/lib/source/user/other/at-spi2-registryd-srv/type1
-rw-r--r--src/lib/source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir0
-rw-r--r--src/lib/source/user/other/dbus-daemon-srv/notification-fd1
-rw-r--r--src/lib/source/user/other/dbus-daemon-srv/producer-for1
-rw-r--r--src/lib/source/user/other/dbus-daemon-srv/run16
-rw-r--r--src/lib/source/user/other/dbus-daemon-srv/type1
-rw-r--r--src/lib/source/user/other/dconf-service-srv/producer-for1
-rw-r--r--src/lib/source/user/other/dconf-service-srv/run8
-rw-r--r--src/lib/source/user/other/dconf-service-srv/type1
-rw-r--r--src/lib/source/user/other/foot-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/other/foot-srv/notification-fd1
-rw-r--r--src/lib/source/user/other/foot-srv/producer-for1
-rw-r--r--src/lib/source/user/other/foot-srv/run11
-rw-r--r--src/lib/source/user/other/foot-srv/type1
-rw-r--r--src/lib/source/user/other/mpd-srv/dependencies.d/audio0
-rw-r--r--src/lib/source/user/other/mpd-srv/producer-for1
-rw-r--r--src/lib/source/user/other/mpd-srv/run10
-rw-r--r--src/lib/source/user/other/mpd-srv/type1
-rw-r--r--src/lib/source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/wallpaper-daemon/hyprpaper-srv/producer-for1
-rw-r--r--src/lib/source/user/wallpaper-daemon/hyprpaper-srv/run8
-rw-r--r--src/lib/source/user/wallpaper-daemon/hyprpaper-srv/type1
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for1
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/run8
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/type1
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor0
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-srv/producer-for1
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-srv/run8
-rw-r--r--src/lib/source/user/xdg/xdg-desktop-portal-srv/type1
-rw-r--r--src/lib/source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus0
-rw-r--r--src/lib/source/user/xdg/xdg-document-portal-srv/producer-for1
-rw-r--r--src/lib/source/user/xdg/xdg-document-portal-srv/run8
-rw-r--r--src/lib/source/user/xdg/xdg-document-portal-srv/type1
-rw-r--r--src/lib/source/user/xdg/xdg-permission-store-srv/producer-for1
-rw-r--r--src/lib/source/user/xdg/xdg-permission-store-srv/run8
-rw-r--r--src/lib/source/user/xdg/xdg-permission-store-srv/type1
-rw-r--r--src/lib/source/user/xdg/xdg-runtime-dir/down10
-rw-r--r--src/lib/source/user/xdg/xdg-runtime-dir/type1
-rw-r--r--src/lib/source/user/xdg/xdg-runtime-dir/up10
-rwxr-xr-xtools/gen-deps.sh35
-rwxr-xr-xtools/gen-targets.sh56
-rwxr-xr-xtools/install.sh69
224 files changed, 2456 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..1d835d3
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,10 @@
+Main author:
+ Paul Sopka <psopka@sopka.ch>
+
+Contributors:
+
+Thanks to:
+ Laurent Bercot <ska-skaware@skarnet.org>
+ Dan J. Bernstein <djb@cr.yp.to>
+ Paul Jarc <prj@dogmap.org>
+ Jonathan de Boyne Pollard <J.deBoynePollard@NTLWorld.com>
diff --git a/CONTRIBUTING b/CONTRIBUTING
new file mode 100644
index 0000000..6279422
--- /dev/null
+++ b/CONTRIBUTING
@@ -0,0 +1,5 @@
+ Please add a Signed-Off-By: line at the end of your commit,
+which certifies that you have the right and authority to pass
+it on as an open-source patch, as explicited in the Developer's
+Certificate of Origin available in this project's DCO file,
+or at https://developercertificate.org/
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..2dec60d
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,13 @@
+Copyright (c) 2024-2025 Paul Sopka <psopka@sopka.ch>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/DCO b/DCO
new file mode 100644
index 0000000..8201f99
--- /dev/null
+++ b/DCO
@@ -0,0 +1,37 @@
+Developer Certificate of Origin
+Version 1.1
+
+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
+1 Letterman Drive
+Suite D4700
+San Francisco, CA, 94129
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+
+Developer's Certificate of Origin 1.1
+
+By making a contribution to this project, I certify that:
+
+(a) The contribution was created in whole or in part by me and I
+ have the right to submit it under the open source license
+ indicated in the file; or
+
+(b) The contribution is based upon previous work that, to the best
+ of my knowledge, is covered under an appropriate open source
+ license and I have the right under that license to submit that
+ work with modifications, whether created in whole or in part
+ by me, under the same open source license (unless I am
+ permitted to submit under a different license), as indicated
+ in the file; or
+
+(c) The contribution was provided directly to me by some other
+ person who certified (a), (b) or (c) and I have not modified
+ it.
+
+(d) I understand and agree that this project and the contribution
+ are public and that a record of the contribution (including all
+ personal information I submit with it, including my sign-off) is
+ maintained indefinitely and may be redistributed consistent with
+ this project or the open source license(s) involved.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..19c0276
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,83 @@
+Build Instructions
+------------------
+
+* Requirements
+ ------------
+
+ - A POSIX-compliant set of utils
+ - A set of OS specific utils
+ - s6 https://skarnet.org/software/s6/
+ - s6-rc https://skarnet.org/software/s6-rc/
+ - execline https://skarnet.org/software/execline/
+
+ This software will run on any operating system that implements
+POSIX.1-2008, available at:
+ https://pubs.opengroup.org/onlinepubs/9699919799/
+
+
+* Standard usage
+ --------------
+
+ ./configure && make && sudo make install
+
+ will work for most users.
+
+
+* Customization
+ -------------
+
+ You can customize paths via flags given to configure.
+ See ./configure --help for a list of all available configure options.
+
+* Make variables
+ --------------
+
+ You can invoke make with a few variables for more configuration.
+
+ INSTALL can be overridden on the make command line. This is
+an even bigger hammer than running ./configure with environment
+variables, so it is advised to only do this when it is the only way of
+obtaining the behaviour you want.
+
+ DESTDIR can be given on the "make install" command line in order to
+install to a staging directory.
+
+* The slashpackage convention
+ ---------------------------
+
+ The slashpackage convention (http://cr.yp.to/slashpackage.html)
+is a package installation scheme that provides a few guarantees
+over other conventions such as the FHS, for instance fixed
+absolute pathnames. skarnet.org packages support it: use the
+--enable-slashpackage option to configure, or
+--enable-slashpackage=DIR for a prefixed DIR/package tree.
+This option will activate slashpackage support during the build
+and set slashpackage-compatible installation directories.
+If $package_home is the home of the package, defined as
+DIR/package/$category/$package-$version with the variables
+read from the package/info file, then:
+
+ --bindir is set to $package_home/command
+ --sbindir is also set to $package_home/command (slashpackage
+differentiates root-only binaries by their Unix rights, not their
+location in the filesystem)
+ --libdir is set to $package_home/
+
+ --prefix is pretty much ignored when you use --enable-slashpackage.
+You should probably not use both --enable-slashpackage and --prefix.
+
+ When using slashpackage, two additional Makefile targets are
+available after "make install":
+ - "make update" changes the default version of the software to the
+freshly installed one. (This is useful when you have several installed
+versions of the same software, which slashpackage supports.)
+ - "make global-links" adds links from /command and /library.so to the
+default version of the binaries and shared libraries.
+
+
+* Out-of-tree builds
+ ------------------
+
+ This package does not support out-of-tree builds. It
+is small, so it does not cost much to duplicate the entire
+source tree if parallel builds are needed.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..0e68c25
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,87 @@
+#
+# This makefile requires make compliant with POSIX Issue 8.
+# It also reliably works with modern GNU make.
+# Do not make changes here.
+# Use the included .mak files.
+#
+
+.POSIX:
+
+IT = conferror
+
+-include config.mak
+
+it: $(IT)
+
+conferror:
+ @echo "Please use ./configure first." ; exit 1
+
+ALL_EXTRAS ::=
+INSTALL_EXTRAS ::=
+
+-include package/extras.mak
+
+include package/targets.mak
+include package/deps.mak
+
+INSTALL ::= ./tools/install.sh
+
+all: $(ALL_BINS) $(ALL_LIBS) $(ALL_EXTRAS)
+
+clean:
+ @exec rm -rf -- $(ALL_BINS) service source bundle etc
+
+distclean: clean
+ @exec rm -f -- config.mak
+
+tgz: distclean
+ @. package/info && \
+ rm -rf /tmp/$$package-$$version && \
+ cp -a . /tmp/$$package-$$version && \
+ cd /tmp && \
+ tar -zpcv --owner=0 --group=0 --numeric-owner --exclude=.git* -f /tmp/$$package-$$version.tar.gz $$package-$$version && \
+ exec rm -rf /tmp/$$package-$$version
+
+install: $(INSTALL_BINS) $(INSTALL_LIBS) $(INSTALL_EXTRAS)
+
+$(ALL_BINS) $(ALL_LIBS):
+ @test -z $$(dirname "$@") || mkdir -p -- $$(dirname "$@")
+ exec sed \
+ -e 's/@syslogdir@/$(syslogdir)/g' \
+ -e 's/@usrlogdir@/$(usrlogdir)/g' \
+ -e 's/@logdep@/$(logdep)/g' \
+ -e 's/@logconfig@/$(logconfig)/g' \
+ -e 's/@loguser@/$(loguser)/g' \
+ -e 's/@sysconfdir@/$(sysconfdir)/g' \
+ -e 's/@usrconfdir@/$(usrconfdir)/g' \
+ -e 's/@tmpfsdir@/$(tmpfsdir)/g' \
+ -e 's/@sysrundir@/$(sysrundir)/g' \
+ -e 's/@usrrundir@/$(usrrundir)/g' \
+ -e 's/@timeout@/$(timeout)/g' \
+ -e 's/@shebangdir@/$(shebangdir)/g' \
+ -- $^ > $@
+
+$(INSTALL_BINS) $(INSTALL_LIBS):
+ exec $(INSTALL) -D -m 644 $^ $@
+ grep -F -- $^ - < package/modes | { read name mode owner && \
+ if [ x$${mode} != x ] ; then chmod $${mode} $@ ; fi && \
+ if [ x$${owner} != x ] ; then chown -- $${owner} $@ ; fi ; } || exit 0
+
+
+$(DESTDIR)$(exthome):
+ exec $(INSTALL) -D -l $(package)-$(version) $@
+
+$(SLASHCOMMAND_BINS):
+ exec $(INSTALL) -D -l $(exthome)/command/$$(basename $@) $@
+
+update: $(DESTDIR)$(exthome)
+global-links: $(SLASHCOMMAND_BINS)
+
+uninstall:
+ exec rm -f $(INSTALL_BINS) $(SLASHCOMMAND_BINS)
+ exec rm -Rf $(libdir)
+
+.PHONY: \
+ it all clean distclean tgz update global-links \
+ install uninstall \
+ $(DESTDIR)$(exthome) $(SLASHCOMMAND_BINS)
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..843464f
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,6 @@
+Changelog for goetia-base.
+
+In 0.0.0.1
+----------
+
+ - Initial release
diff --git a/configure b/configure
new file mode 100755
index 0000000..5facfc0
--- /dev/null
+++ b/configure
@@ -0,0 +1,196 @@
+#!/bin/sh
+
+cd `dirname "$0"`
+. package/info
+
+usage () {
+cat <<EOF
+Usage: $0 [OPTION]... [TARGET]
+
+Defaults for the options are specified in brackets.
+
+Installation directories:
+ --prefix=PREFIX main installation prefix [/]
+ --exec-prefix=EPREFIX installation prefix for executable files [PREFIX]
+
+Fine tuning of the installation directories:
+ --libdir=DIR service and source directories [PREFIX/lib/$package]
+ --bindir=BINDIR user executables [EPREFIX/bin]
+
+Binaries
+ --shebangdir=SHEBANGDIR dir used to find interpreters for scripts [PREFIX/bin]
+
+Logging
+ --syslogdir=LOGDIR system logdir [PREFIX/var/log/goetia]
+ --usrlogdir=LOGDIR user logdir appended to \${HOME} [.local/state/log]
+
+ --logconfig=LOGCONFIG directives for autogenerated s6-log scripts [n3 T]
+ --loguser=LOGUSER user running all system s6-log processes [logger]
+ --logdep=LOGDEP dependencies for autogenerated system s6-log processes [mount]
+
+Other
+ --sysconfdir=CONFIGDIR systemtree configdir [PREFIX/etc/goetia/system]
+ --usrconfdir=CONFIGDIR usertree configdir appended to \${HOME} [.config/goetia]
+
+ --tmpfsdir=TMPFSDIR tmpfs dir used for supervision trees [/run]
+ --sysrundir=SYSRUNDIR systemtree runtime dir appended to TMPFSDIR [system]
+ --usrrundir=USRRUNDIR usertree runtime dir appended to TMPFSDIR [user]
+
+ --timeout=TIMEOUT Timeout in ms for s6-rc invocations in init and shutdown scripts [60000]
+
+Optional features:
+ --enable-slashpackage[=ROOT] assume /package installation at ROOT [disabled]
+
+EOF
+exit 0
+}
+
+# Helper functions
+
+# If your system does not have printf, you can comment this, but it is
+# generally not a good idea to use echo.
+# See http://www.etalabs.net/sh_tricks.html
+echo () {
+ printf %s\\n "$*"
+}
+
+quote () {
+ tr '\n' ' ' <<EOF | grep '^[-[:alnum:]_=,./:]* $' >/dev/null 2>&1 && { echo "$1" ; return 0 ; }
+$1
+EOF
+ echo "$1" | sed -e "s/'/'\\\\''/g" -e "1s/^/'/" -e "\$s/\$/'/" -e "s#^'\([-[:alnum:]_,./:]*\)=\(.*\)\$#\1='\2#" -e "s|\*/|* /|g"
+}
+
+fail () {
+ echo "$*"
+ exit 1
+}
+
+fnmatch () {
+ eval "case \"\$2\" in $1) return 0 ;; *) return 1 ;; esac"
+}
+
+stripdir () {
+ while eval "fnmatch '*/' \"\${$1}\"" ; do
+ eval "$1=\${$1%/}"
+ done
+}
+
+escapeslash () {
+ echo "$1" | sed -e 's/\//\\\//g'
+}
+
+# Actual script
+
+prefix=
+exec_prefix='$prefix'
+bindir='$exec_prefix/bin'
+libdir='$prefix/lib/$package'
+
+shebangdir='$prefix/bin'
+
+syslogdir='$prefix/var/log/goetia'
+usrlogdir='.local/state/log'
+
+logconfig='n3 T'
+loguser='logger'
+logdep='mount'
+
+sysconfdir='$prefix/etc/goetia/system'
+usrconfdir='.config/goetia'
+
+tmpfsdir='$prefix/run'
+sysrundir='system'
+usrrundir='user'
+
+timeout=60000
+
+slashpackage=false
+sproot=
+home=
+exthome=
+build=
+
+for arg ; do
+ case "$arg" in
+ --help) usage ;;
+ --prefix=*) prefix=${arg#*=} ;;
+ --exec-prefix=*) exec_prefix=${arg#*=} ;;
+ --bindir=*) bindir=${arg#*=} ;;
+ --libdir=*) libdir=${arg#*=} ;;
+ --shebangdir=*) shebangdir=${arg#*=} ;;
+ --syslogdir=*) syslogdir=${arg#*=} ;;
+ --usrlogdir=*) usrlogdir=${arg#*=} ;;
+ --logconfig=*) logconfig=${arg#*=} ;;
+ --loguser=*) loguser=${arg#*=} ;;
+ --logdep=*) logdep=${arg#*=} ;;
+ --sysconfdir=*) sysconfdir=${arg#*=} ;;
+ --usrconfdir=*) usrconfdir=${arg#*=} ;;
+ --tmpfsdir=*) tmpfsdir=${arg#*=} ;;
+ --sysrundir=*) sysrundir=${arg#*=} ;;
+ --usrrundir=*) usrrundir=${arg#*=} ;;
+ --timeout=*) timeout=${arg#*=} ;;
+ --enable-slashpackage=*) sproot=${arg#*=} ; slashpackage=true ; ;;
+ --enable-slashpackage) sproot= ; slashpackage=true ;;
+ --disable-slashpackage) sproot= ; installtype=fhs ;;
+ --enable-*|--disable-*|--with-*|--without-*|--*dir=*) ;;
+ -* ) echo "$0: unknown option $arg" ;;
+ *=*) eval "${arg%%=*}=\${arg#*=}" ;;
+ *) target=$arg ;;
+ esac
+done
+
+# Expand installation directories
+stripdir prefix
+for i in exec_prefix bindir libdir shebangdir syslogdir usrlogdir sysconfdir usrconfdir tmpfsdir sysrundir usrrundir sproot ; do
+ eval tmp=\${$i}
+ eval $i=$tmp
+ stripdir $i
+done
+
+# Set slashpackage values
+if $slashpackage ; then
+ home=${sproot}/package/${category}/${package}-${version}
+ exthome=${sproot}/package/${category}/${package}
+ extbinprefix=${exthome}/command
+ bindir=${home}/command
+ libdir=${home}
+fi
+
+echo "Creating config.mak..."
+cmdline=$(quote "$0")
+for i ; do cmdline="$cmdline $(quote "$i")" ; done
+exec 3>&1 1>config.mak
+cat << EOF
+# This file was generated by:
+# $cmdline
+# Any changes made here will be lost if configure is re-run.
+
+IT ::= all
+
+package ::= $package
+prefix ::= $prefix
+exec_prefix ::= $exec_prefix
+bindir ::= $bindir
+libdir ::= $libdir
+shebangdir ::= $(escapeslash "$shebangdir")
+syslogdir ::= $(escapeslash "$syslogdir")
+usrlogdir ::= $(escapeslash "$usrlogdir")
+logconfig ::= $(escapeslash "$logconfig")
+loguser ::= $(escapeslash "$loguser")
+logdep ::= $(escapeslash "$logdep")
+sysconfdir ::= $(escapeslash "$sysconfdir")
+usrconfdir ::= $(escapeslash "$usrconfdir")
+tmpfsdir ::= $(escapeslash "$tmpfsdir")
+sysrundir ::= $(escapeslash "$sysrundir")
+usrrundir ::= $(escapeslash "$usrrundir")
+timeout ::= $timeout
+slashpackage ::= $slashpackage
+sproot ::= $sproot
+version ::= $version
+home ::= $home
+exthome ::= $exthome
+EOF
+
+exec 1>&3 3>&-
+echo " ... done."
diff --git a/package/deps.mak b/package/deps.mak
new file mode 100644
index 0000000..255ecdc
--- /dev/null
+++ b/package/deps.mak
@@ -0,0 +1,420 @@
+#
+# This file has been generated by tools/gen-deps.sh
+#
+
+compile-db: src/bin/compile-db
+$(DESTDIR)$(bindir)/compile-db: compile-db
+longrun-make: src/bin/longrun-make
+$(DESTDIR)$(bindir)/longrun-make: longrun-make
+oneshot-make: src/bin/oneshot-make
+$(DESTDIR)$(bindir)/oneshot-make: oneshot-make
+prepare-svscan: src/bin/prepare-svscan
+$(DESTDIR)$(bindir)/prepare-svscan: prepare-svscan
+system-db: src/bin/system-db
+$(DESTDIR)$(bindir)/system-db: system-db
+system-ml: src/bin/system-ml
+$(DESTDIR)$(bindir)/system-ml: system-ml
+system-rc: src/bin/system-rc
+$(DESTDIR)$(bindir)/system-rc: system-rc
+system-run: src/bin/system-run
+$(DESTDIR)$(bindir)/system-run: system-run
+system-shutdown-daemon: src/bin/system-shutdown-daemon
+$(DESTDIR)$(bindir)/system-shutdown-daemon: system-shutdown-daemon
+user-db: src/bin/user-db
+$(DESTDIR)$(bindir)/user-db: user-db
+user-init: src/bin/user-init
+$(DESTDIR)$(bindir)/user-init: user-init
+user-ml: src/bin/user-ml
+$(DESTDIR)$(bindir)/user-ml: user-ml
+user-rc: src/bin/user-rc
+$(DESTDIR)$(bindir)/user-rc: user-rc
+user-run: src/bin/user-run
+$(DESTDIR)$(bindir)/user-run: user-run
+user-shutdown: src/bin/user-shutdown
+$(DESTDIR)$(bindir)/user-shutdown: user-shutdown
+user-tmpfs: src/bin/user-tmpfs
+$(DESTDIR)$(bindir)/user-tmpfs: user-tmpfs
+service/system/s6-svscan-log/run: src/lib/service/system/s6-svscan-log/run
+$(DESTDIR)$(libdir)/service/system/s6-svscan-log/run: service/system/s6-svscan-log/run
+service/system/s6-svscan-log/notification-fd: src/lib/service/system/s6-svscan-log/notification-fd
+$(DESTDIR)$(libdir)/service/system/s6-svscan-log/notification-fd: service/system/s6-svscan-log/notification-fd
+service/system/.s6-svscan/crash: src/lib/service/system/.s6-svscan/crash
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/crash: service/system/.s6-svscan/crash
+service/system/.s6-svscan/SIGUSR1: src/lib/service/system/.s6-svscan/SIGUSR1
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR1: service/system/.s6-svscan/SIGUSR1
+service/system/.s6-svscan/finish: src/lib/service/system/.s6-svscan/finish
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/finish: service/system/.s6-svscan/finish
+service/system/.s6-svscan/SIGQUIT: src/lib/service/system/.s6-svscan/SIGQUIT
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGQUIT: service/system/.s6-svscan/SIGQUIT
+service/system/.s6-svscan/SIGINT: src/lib/service/system/.s6-svscan/SIGINT
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGINT: service/system/.s6-svscan/SIGINT
+service/system/.s6-svscan/SIGUSR2: src/lib/service/system/.s6-svscan/SIGUSR2
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR2: service/system/.s6-svscan/SIGUSR2
+service/system/.s6-svscan/SIGWINCH: src/lib/service/system/.s6-svscan/SIGWINCH
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGWINCH: service/system/.s6-svscan/SIGWINCH
+service/system/.s6-svscan/SIGTERM: src/lib/service/system/.s6-svscan/SIGTERM
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGTERM: service/system/.s6-svscan/SIGTERM
+service/system/.s6-svscan/SIGPWR: src/lib/service/system/.s6-svscan/SIGPWR
+$(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGPWR: service/system/.s6-svscan/SIGPWR
+service/system/s6-svscan-log-console/run: src/lib/service/system/s6-svscan-log-console/run
+$(DESTDIR)$(libdir)/service/system/s6-svscan-log-console/run: service/system/s6-svscan-log-console/run
+service/system/s6-svscan-log-console/notification-fd: src/lib/service/system/s6-svscan-log-console/notification-fd
+$(DESTDIR)$(libdir)/service/system/s6-svscan-log-console/notification-fd: service/system/s6-svscan-log-console/notification-fd
+service/system/goetia-runner/run: src/lib/service/system/goetia-runner/run
+$(DESTDIR)$(libdir)/service/system/goetia-runner/run: service/system/goetia-runner/run
+service/system/goetia-runner/notification-fd: src/lib/service/system/goetia-runner/notification-fd
+$(DESTDIR)$(libdir)/service/system/goetia-runner/notification-fd: service/system/goetia-runner/notification-fd
+service/user/s6-svscan-log/run: src/lib/service/user/s6-svscan-log/run
+$(DESTDIR)$(libdir)/service/user/s6-svscan-log/run: service/user/s6-svscan-log/run
+service/user/s6-svscan-log/notification-fd: src/lib/service/user/s6-svscan-log/notification-fd
+$(DESTDIR)$(libdir)/service/user/s6-svscan-log/notification-fd: service/user/s6-svscan-log/notification-fd
+service/user/.s6-svscan/SIGTERM: src/lib/service/user/.s6-svscan/SIGTERM
+$(DESTDIR)$(libdir)/service/user/.s6-svscan/SIGTERM: service/user/.s6-svscan/SIGTERM
+service/user/goetia-runner/run: src/lib/service/user/goetia-runner/run
+$(DESTDIR)$(libdir)/service/user/goetia-runner/run: service/user/goetia-runner/run
+service/user/goetia-runner/notification-fd: src/lib/service/user/goetia-runner/notification-fd
+$(DESTDIR)$(libdir)/service/user/goetia-runner/notification-fd: service/user/goetia-runner/notification-fd
+source/system/other/dbus-daemon-srv/run: src/lib/source/system/other/dbus-daemon-srv/run
+$(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/run: source/system/other/dbus-daemon-srv/run
+source/system/other/dbus-daemon-srv/type: src/lib/source/system/other/dbus-daemon-srv/type
+$(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/type: source/system/other/dbus-daemon-srv/type
+source/system/other/dbus-daemon-srv/notification-fd: src/lib/source/system/other/dbus-daemon-srv/notification-fd
+$(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/notification-fd: source/system/other/dbus-daemon-srv/notification-fd
+source/system/other/dbus-daemon-srv/producer-for: src/lib/source/system/other/dbus-daemon-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/producer-for: source/system/other/dbus-daemon-srv/producer-for
+source/system/other/sshd-srv/run: src/lib/source/system/other/sshd-srv/run
+$(DESTDIR)$(libdir)/source/system/other/sshd-srv/run: source/system/other/sshd-srv/run
+source/system/other/sshd-srv/type: src/lib/source/system/other/sshd-srv/type
+$(DESTDIR)$(libdir)/source/system/other/sshd-srv/type: source/system/other/sshd-srv/type
+source/system/other/sshd-srv/dependencies.d/networking: src/lib/source/system/other/sshd-srv/dependencies.d/networking
+$(DESTDIR)$(libdir)/source/system/other/sshd-srv/dependencies.d/networking: source/system/other/sshd-srv/dependencies.d/networking
+source/system/other/sshd-srv/producer-for: src/lib/source/system/other/sshd-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/other/sshd-srv/producer-for: source/system/other/sshd-srv/producer-for
+source/system/other/cupsd-srv/run: src/lib/source/system/other/cupsd-srv/run
+$(DESTDIR)$(libdir)/source/system/other/cupsd-srv/run: source/system/other/cupsd-srv/run
+source/system/other/cupsd-srv/type: src/lib/source/system/other/cupsd-srv/type
+$(DESTDIR)$(libdir)/source/system/other/cupsd-srv/type: source/system/other/cupsd-srv/type
+source/system/other/cupsd-srv/producer-for: src/lib/source/system/other/cupsd-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/other/cupsd-srv/producer-for: source/system/other/cupsd-srv/producer-for
+source/system/admin/seatd-srv/run: src/lib/source/system/admin/seatd-srv/run
+$(DESTDIR)$(libdir)/source/system/admin/seatd-srv/run: source/system/admin/seatd-srv/run
+source/system/admin/seatd-srv/type: src/lib/source/system/admin/seatd-srv/type
+$(DESTDIR)$(libdir)/source/system/admin/seatd-srv/type: source/system/admin/seatd-srv/type
+source/system/admin/seatd-srv/notification-fd: src/lib/source/system/admin/seatd-srv/notification-fd
+$(DESTDIR)$(libdir)/source/system/admin/seatd-srv/notification-fd: source/system/admin/seatd-srv/notification-fd
+source/system/admin/seatd-srv/dependencies.d/mount-dev: src/lib/source/system/admin/seatd-srv/dependencies.d/mount-dev
+$(DESTDIR)$(libdir)/source/system/admin/seatd-srv/dependencies.d/mount-dev: source/system/admin/seatd-srv/dependencies.d/mount-dev
+source/system/admin/seatd-srv/dependencies.d/mount-run: src/lib/source/system/admin/seatd-srv/dependencies.d/mount-run
+$(DESTDIR)$(libdir)/source/system/admin/seatd-srv/dependencies.d/mount-run: source/system/admin/seatd-srv/dependencies.d/mount-run
+source/system/admin/seatd-srv/producer-for: src/lib/source/system/admin/seatd-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/admin/seatd-srv/producer-for: source/system/admin/seatd-srv/producer-for
+source/system/admin/greetd-srv/run: src/lib/source/system/admin/greetd-srv/run
+$(DESTDIR)$(libdir)/source/system/admin/greetd-srv/run: source/system/admin/greetd-srv/run
+source/system/admin/greetd-srv/type: src/lib/source/system/admin/greetd-srv/type
+$(DESTDIR)$(libdir)/source/system/admin/greetd-srv/type: source/system/admin/greetd-srv/type
+source/system/admin/greetd-srv/dependencies.d/mount-run: src/lib/source/system/admin/greetd-srv/dependencies.d/mount-run
+$(DESTDIR)$(libdir)/source/system/admin/greetd-srv/dependencies.d/mount-run: source/system/admin/greetd-srv/dependencies.d/mount-run
+source/system/admin/greetd-srv/dependencies.d/udev: src/lib/source/system/admin/greetd-srv/dependencies.d/udev
+$(DESTDIR)$(libdir)/source/system/admin/greetd-srv/dependencies.d/udev: source/system/admin/greetd-srv/dependencies.d/udev
+source/system/admin/greetd-srv/dependencies.d/seat-manager: src/lib/source/system/admin/greetd-srv/dependencies.d/seat-manager
+$(DESTDIR)$(libdir)/source/system/admin/greetd-srv/dependencies.d/seat-manager: source/system/admin/greetd-srv/dependencies.d/seat-manager
+source/system/admin/greetd-srv/producer-for: src/lib/source/system/admin/greetd-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/admin/greetd-srv/producer-for: source/system/admin/greetd-srv/producer-for
+source/system/cron/dcron-srv/run: src/lib/source/system/cron/dcron-srv/run
+$(DESTDIR)$(libdir)/source/system/cron/dcron-srv/run: source/system/cron/dcron-srv/run
+source/system/cron/dcron-srv/type: src/lib/source/system/cron/dcron-srv/type
+$(DESTDIR)$(libdir)/source/system/cron/dcron-srv/type: source/system/cron/dcron-srv/type
+source/system/cron/dcron-srv/producer-for: src/lib/source/system/cron/dcron-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/cron/dcron-srv/producer-for: source/system/cron/dcron-srv/producer-for
+source/system/ntp/chronyd-srv/run: src/lib/source/system/ntp/chronyd-srv/run
+$(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/run: source/system/ntp/chronyd-srv/run
+source/system/ntp/chronyd-srv/type: src/lib/source/system/ntp/chronyd-srv/type
+$(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/type: source/system/ntp/chronyd-srv/type
+source/system/ntp/chronyd-srv/dependencies.d/networking: src/lib/source/system/ntp/chronyd-srv/dependencies.d/networking
+$(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/dependencies.d/networking: source/system/ntp/chronyd-srv/dependencies.d/networking
+source/system/ntp/chronyd-srv/producer-for: src/lib/source/system/ntp/chronyd-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/producer-for: source/system/ntp/chronyd-srv/producer-for
+source/system/db/mariadbd-srv/run: src/lib/source/system/db/mariadbd-srv/run
+$(DESTDIR)$(libdir)/source/system/db/mariadbd-srv/run: source/system/db/mariadbd-srv/run
+source/system/db/mariadbd-srv/type: src/lib/source/system/db/mariadbd-srv/type
+$(DESTDIR)$(libdir)/source/system/db/mariadbd-srv/type: source/system/db/mariadbd-srv/type
+source/system/db/mariadbd-srv/producer-for: src/lib/source/system/db/mariadbd-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/db/mariadbd-srv/producer-for: source/system/db/mariadbd-srv/producer-for
+source/system/db/mysqld-srv/run: src/lib/source/system/db/mysqld-srv/run
+$(DESTDIR)$(libdir)/source/system/db/mysqld-srv/run: source/system/db/mysqld-srv/run
+source/system/db/mysqld-srv/type: src/lib/source/system/db/mysqld-srv/type
+$(DESTDIR)$(libdir)/source/system/db/mysqld-srv/type: source/system/db/mysqld-srv/type
+source/system/db/mysqld-srv/producer-for: src/lib/source/system/db/mysqld-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/db/mysqld-srv/producer-for: source/system/db/mysqld-srv/producer-for
+source/system/bundle/networking/type: src/lib/source/system/bundle/networking/type
+$(DESTDIR)$(libdir)/source/system/bundle/networking/type: source/system/bundle/networking/type
+source/system/bundle/system-bus/type: src/lib/source/system/bundle/system-bus/type
+$(DESTDIR)$(libdir)/source/system/bundle/system-bus/type: source/system/bundle/system-bus/type
+source/system/bundle/udev/type: src/lib/source/system/bundle/udev/type
+$(DESTDIR)$(libdir)/source/system/bundle/udev/type: source/system/bundle/udev/type
+source/system/bundle/firewall/type: src/lib/source/system/bundle/firewall/type
+$(DESTDIR)$(libdir)/source/system/bundle/firewall/type: source/system/bundle/firewall/type
+source/system/bundle/seat-manager/type: src/lib/source/system/bundle/seat-manager/type
+$(DESTDIR)$(libdir)/source/system/bundle/seat-manager/type: source/system/bundle/seat-manager/type
+source/system/bundle/default/type: src/lib/source/system/bundle/default/type
+$(DESTDIR)$(libdir)/source/system/bundle/default/type: source/system/bundle/default/type
+source/system/bundle/mount/type: src/lib/source/system/bundle/mount/type
+$(DESTDIR)$(libdir)/source/system/bundle/mount/type: source/system/bundle/mount/type
+source/system/net/wpa_supplicant-srv/run: src/lib/source/system/net/wpa_supplicant-srv/run
+$(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/run: source/system/net/wpa_supplicant-srv/run
+source/system/net/wpa_supplicant-srv/type: src/lib/source/system/net/wpa_supplicant-srv/type
+$(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/type: source/system/net/wpa_supplicant-srv/type
+source/system/net/wpa_supplicant-srv/dependencies.d/system-bus: src/lib/source/system/net/wpa_supplicant-srv/dependencies.d/system-bus
+$(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/dependencies.d/system-bus: source/system/net/wpa_supplicant-srv/dependencies.d/system-bus
+source/system/net/wpa_supplicant-srv/producer-for: src/lib/source/system/net/wpa_supplicant-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/producer-for: source/system/net/wpa_supplicant-srv/producer-for
+source/system/net/dhcpcd-srv/run: src/lib/source/system/net/dhcpcd-srv/run
+$(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/run: source/system/net/dhcpcd-srv/run
+source/system/net/dhcpcd-srv/type: src/lib/source/system/net/dhcpcd-srv/type
+$(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/type: source/system/net/dhcpcd-srv/type
+source/system/net/dhcpcd-srv/dependencies.d/udev: src/lib/source/system/net/dhcpcd-srv/dependencies.d/udev
+$(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/dependencies.d/udev: source/system/net/dhcpcd-srv/dependencies.d/udev
+source/system/net/dhcpcd-srv/producer-for: src/lib/source/system/net/dhcpcd-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/producer-for: source/system/net/dhcpcd-srv/producer-for
+source/system/web/gate-srv/run: src/lib/source/system/web/gate-srv/run
+$(DESTDIR)$(libdir)/source/system/web/gate-srv/run: source/system/web/gate-srv/run
+source/system/web/gate-srv/type: src/lib/source/system/web/gate-srv/type
+$(DESTDIR)$(libdir)/source/system/web/gate-srv/type: source/system/web/gate-srv/type
+source/system/web/gate-srv/dependencies.d/udev: src/lib/source/system/web/gate-srv/dependencies.d/udev
+$(DESTDIR)$(libdir)/source/system/web/gate-srv/dependencies.d/udev: source/system/web/gate-srv/dependencies.d/udev
+source/system/web/gate-srv/producer-for: src/lib/source/system/web/gate-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/web/gate-srv/producer-for: source/system/web/gate-srv/producer-for
+source/system/web/nginx-srv/run: src/lib/source/system/web/nginx-srv/run
+$(DESTDIR)$(libdir)/source/system/web/nginx-srv/run: source/system/web/nginx-srv/run
+source/system/web/nginx-srv/type: src/lib/source/system/web/nginx-srv/type
+$(DESTDIR)$(libdir)/source/system/web/nginx-srv/type: source/system/web/nginx-srv/type
+source/system/web/nginx-srv/producer-for: src/lib/source/system/web/nginx-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/web/nginx-srv/producer-for: source/system/web/nginx-srv/producer-for
+source/system/web/radicale-srv/run: src/lib/source/system/web/radicale-srv/run
+$(DESTDIR)$(libdir)/source/system/web/radicale-srv/run: source/system/web/radicale-srv/run
+source/system/web/radicale-srv/type: src/lib/source/system/web/radicale-srv/type
+$(DESTDIR)$(libdir)/source/system/web/radicale-srv/type: source/system/web/radicale-srv/type
+source/system/web/radicale-srv/dependencies.d/mount: src/lib/source/system/web/radicale-srv/dependencies.d/mount
+$(DESTDIR)$(libdir)/source/system/web/radicale-srv/dependencies.d/mount: source/system/web/radicale-srv/dependencies.d/mount
+source/system/web/radicale-srv/producer-for: src/lib/source/system/web/radicale-srv/producer-for
+$(DESTDIR)$(libdir)/source/system/web/radicale-srv/producer-for: source/system/web/radicale-srv/producer-for
+source/user/audio-daemon/pipewire-pulse-srv/run: src/lib/source/user/audio-daemon/pipewire-pulse-srv/run
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/run: source/user/audio-daemon/pipewire-pulse-srv/run
+source/user/audio-daemon/pipewire-pulse-srv/type: src/lib/source/user/audio-daemon/pipewire-pulse-srv/type
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/type: source/user/audio-daemon/pipewire-pulse-srv/type
+source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire: src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire: source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire
+source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir: src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir: source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir
+source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus: src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus: source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus
+source/user/audio-daemon/pipewire-pulse-srv/producer-for: src/lib/source/user/audio-daemon/pipewire-pulse-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/producer-for: source/user/audio-daemon/pipewire-pulse-srv/producer-for
+source/user/audio-daemon/pipewire-srv/run: src/lib/source/user/audio-daemon/pipewire-srv/run
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/run: source/user/audio-daemon/pipewire-srv/run
+source/user/audio-daemon/pipewire-srv/type: src/lib/source/user/audio-daemon/pipewire-srv/type
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/type: source/user/audio-daemon/pipewire-srv/type
+source/user/audio-daemon/pipewire-srv/notification-fd: src/lib/source/user/audio-daemon/pipewire-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/notification-fd: source/user/audio-daemon/pipewire-srv/notification-fd
+source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir: src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir: source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir
+source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus: src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus: source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus
+source/user/audio-daemon/pipewire-srv/producer-for: src/lib/source/user/audio-daemon/pipewire-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/producer-for: source/user/audio-daemon/pipewire-srv/producer-for
+source/user/audio-daemon/wireplumber-srv/run: src/lib/source/user/audio-daemon/wireplumber-srv/run
+$(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/run: source/user/audio-daemon/wireplumber-srv/run
+source/user/audio-daemon/wireplumber-srv/type: src/lib/source/user/audio-daemon/wireplumber-srv/type
+$(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/type: source/user/audio-daemon/wireplumber-srv/type
+source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire: src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire
+$(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire: source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire
+source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus: src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus: source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus
+source/user/audio-daemon/wireplumber-srv/producer-for: src/lib/source/user/audio-daemon/wireplumber-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/producer-for: source/user/audio-daemon/wireplumber-srv/producer-for
+source/user/xdg/xdg-document-portal-srv/run: src/lib/source/user/xdg/xdg-document-portal-srv/run
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/run: source/user/xdg/xdg-document-portal-srv/run
+source/user/xdg/xdg-document-portal-srv/type: src/lib/source/user/xdg/xdg-document-portal-srv/type
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/type: source/user/xdg/xdg-document-portal-srv/type
+source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus: src/lib/source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus: source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus
+source/user/xdg/xdg-document-portal-srv/producer-for: src/lib/source/user/xdg/xdg-document-portal-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/producer-for: source/user/xdg/xdg-document-portal-srv/producer-for
+source/user/xdg/xdg-desktop-portal-hyprland-srv/run: src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/run
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/run: source/user/xdg/xdg-desktop-portal-hyprland-srv/run
+source/user/xdg/xdg-desktop-portal-hyprland-srv/type: src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/type
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/type: source/user/xdg/xdg-desktop-portal-hyprland-srv/type
+source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor: src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor: source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor
+source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for: src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for: source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for
+source/user/xdg/xdg-runtime-dir/up: src/lib/source/user/xdg/xdg-runtime-dir/up
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-runtime-dir/up: source/user/xdg/xdg-runtime-dir/up
+source/user/xdg/xdg-runtime-dir/type: src/lib/source/user/xdg/xdg-runtime-dir/type
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-runtime-dir/type: source/user/xdg/xdg-runtime-dir/type
+source/user/xdg/xdg-runtime-dir/down: src/lib/source/user/xdg/xdg-runtime-dir/down
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-runtime-dir/down: source/user/xdg/xdg-runtime-dir/down
+source/user/xdg/xdg-permission-store-srv/run: src/lib/source/user/xdg/xdg-permission-store-srv/run
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-permission-store-srv/run: source/user/xdg/xdg-permission-store-srv/run
+source/user/xdg/xdg-permission-store-srv/type: src/lib/source/user/xdg/xdg-permission-store-srv/type
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-permission-store-srv/type: source/user/xdg/xdg-permission-store-srv/type
+source/user/xdg/xdg-permission-store-srv/producer-for: src/lib/source/user/xdg/xdg-permission-store-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-permission-store-srv/producer-for: source/user/xdg/xdg-permission-store-srv/producer-for
+source/user/xdg/xdg-desktop-portal-srv/run: src/lib/source/user/xdg/xdg-desktop-portal-srv/run
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/run: source/user/xdg/xdg-desktop-portal-srv/run
+source/user/xdg/xdg-desktop-portal-srv/type: src/lib/source/user/xdg/xdg-desktop-portal-srv/type
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/type: source/user/xdg/xdg-desktop-portal-srv/type
+source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor: src/lib/source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor: source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor
+source/user/xdg/xdg-desktop-portal-srv/producer-for: src/lib/source/user/xdg/xdg-desktop-portal-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/producer-for: source/user/xdg/xdg-desktop-portal-srv/producer-for
+source/user/notification-daemon/dunst-srv/run: src/lib/source/user/notification-daemon/dunst-srv/run
+$(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/run: source/user/notification-daemon/dunst-srv/run
+source/user/notification-daemon/dunst-srv/type: src/lib/source/user/notification-daemon/dunst-srv/type
+$(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/type: source/user/notification-daemon/dunst-srv/type
+source/user/notification-daemon/dunst-srv/notification-fd: src/lib/source/user/notification-daemon/dunst-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/notification-fd: source/user/notification-daemon/dunst-srv/notification-fd
+source/user/notification-daemon/dunst-srv/dependencies.d/compositor: src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/dependencies.d/compositor: source/user/notification-daemon/dunst-srv/dependencies.d/compositor
+source/user/notification-daemon/dunst-srv/dependencies.d/session-bus: src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/dependencies.d/session-bus: source/user/notification-daemon/dunst-srv/dependencies.d/session-bus
+source/user/notification-daemon/dunst-srv/producer-for: src/lib/source/user/notification-daemon/dunst-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/producer-for: source/user/notification-daemon/dunst-srv/producer-for
+source/user/notification-daemon/fnott-srv/run: src/lib/source/user/notification-daemon/fnott-srv/run
+$(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/run: source/user/notification-daemon/fnott-srv/run
+source/user/notification-daemon/fnott-srv/type: src/lib/source/user/notification-daemon/fnott-srv/type
+$(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/type: source/user/notification-daemon/fnott-srv/type
+source/user/notification-daemon/fnott-srv/notification-fd: src/lib/source/user/notification-daemon/fnott-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/notification-fd: source/user/notification-daemon/fnott-srv/notification-fd
+source/user/notification-daemon/fnott-srv/dependencies.d/compositor: src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/dependencies.d/compositor: source/user/notification-daemon/fnott-srv/dependencies.d/compositor
+source/user/notification-daemon/fnott-srv/dependencies.d/session-bus: src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/dependencies.d/session-bus: source/user/notification-daemon/fnott-srv/dependencies.d/session-bus
+source/user/notification-daemon/fnott-srv/producer-for: src/lib/source/user/notification-daemon/fnott-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/producer-for: source/user/notification-daemon/fnott-srv/producer-for
+source/user/notification-daemon/mako-srv/run: src/lib/source/user/notification-daemon/mako-srv/run
+$(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/run: source/user/notification-daemon/mako-srv/run
+source/user/notification-daemon/mako-srv/type: src/lib/source/user/notification-daemon/mako-srv/type
+$(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/type: source/user/notification-daemon/mako-srv/type
+source/user/notification-daemon/mako-srv/notification-fd: src/lib/source/user/notification-daemon/mako-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/notification-fd: source/user/notification-daemon/mako-srv/notification-fd
+source/user/notification-daemon/mako-srv/dependencies.d/compositor: src/lib/source/user/notification-daemon/mako-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/dependencies.d/compositor: source/user/notification-daemon/mako-srv/dependencies.d/compositor
+source/user/notification-daemon/mako-srv/dependencies.d/session-bus: src/lib/source/user/notification-daemon/mako-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/dependencies.d/session-bus: source/user/notification-daemon/mako-srv/dependencies.d/session-bus
+source/user/notification-daemon/mako-srv/producer-for: src/lib/source/user/notification-daemon/mako-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/producer-for: source/user/notification-daemon/mako-srv/producer-for
+source/user/notification-daemon/swaync-srv/run: src/lib/source/user/notification-daemon/swaync-srv/run
+$(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/run: source/user/notification-daemon/swaync-srv/run
+source/user/notification-daemon/swaync-srv/type: src/lib/source/user/notification-daemon/swaync-srv/type
+$(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/type: source/user/notification-daemon/swaync-srv/type
+source/user/notification-daemon/swaync-srv/notification-fd: src/lib/source/user/notification-daemon/swaync-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/notification-fd: source/user/notification-daemon/swaync-srv/notification-fd
+source/user/notification-daemon/swaync-srv/dependencies.d/compositor: src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/dependencies.d/compositor: source/user/notification-daemon/swaync-srv/dependencies.d/compositor
+source/user/notification-daemon/swaync-srv/dependencies.d/session-bus: src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/dependencies.d/session-bus: source/user/notification-daemon/swaync-srv/dependencies.d/session-bus
+source/user/notification-daemon/swaync-srv/producer-for: src/lib/source/user/notification-daemon/swaync-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/producer-for: source/user/notification-daemon/swaync-srv/producer-for
+source/user/other/foot-srv/run: src/lib/source/user/other/foot-srv/run
+$(DESTDIR)$(libdir)/source/user/other/foot-srv/run: source/user/other/foot-srv/run
+source/user/other/foot-srv/type: src/lib/source/user/other/foot-srv/type
+$(DESTDIR)$(libdir)/source/user/other/foot-srv/type: source/user/other/foot-srv/type
+source/user/other/foot-srv/notification-fd: src/lib/source/user/other/foot-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/other/foot-srv/notification-fd: source/user/other/foot-srv/notification-fd
+source/user/other/foot-srv/dependencies.d/compositor: src/lib/source/user/other/foot-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/other/foot-srv/dependencies.d/compositor: source/user/other/foot-srv/dependencies.d/compositor
+source/user/other/foot-srv/producer-for: src/lib/source/user/other/foot-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/other/foot-srv/producer-for: source/user/other/foot-srv/producer-for
+source/user/other/mpd-srv/run: src/lib/source/user/other/mpd-srv/run
+$(DESTDIR)$(libdir)/source/user/other/mpd-srv/run: source/user/other/mpd-srv/run
+source/user/other/mpd-srv/type: src/lib/source/user/other/mpd-srv/type
+$(DESTDIR)$(libdir)/source/user/other/mpd-srv/type: source/user/other/mpd-srv/type
+source/user/other/mpd-srv/dependencies.d/audio: src/lib/source/user/other/mpd-srv/dependencies.d/audio
+$(DESTDIR)$(libdir)/source/user/other/mpd-srv/dependencies.d/audio: source/user/other/mpd-srv/dependencies.d/audio
+source/user/other/mpd-srv/producer-for: src/lib/source/user/other/mpd-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/other/mpd-srv/producer-for: source/user/other/mpd-srv/producer-for
+source/user/other/dconf-service-srv/run: src/lib/source/user/other/dconf-service-srv/run
+$(DESTDIR)$(libdir)/source/user/other/dconf-service-srv/run: source/user/other/dconf-service-srv/run
+source/user/other/dconf-service-srv/type: src/lib/source/user/other/dconf-service-srv/type
+$(DESTDIR)$(libdir)/source/user/other/dconf-service-srv/type: source/user/other/dconf-service-srv/type
+source/user/other/dconf-service-srv/producer-for: src/lib/source/user/other/dconf-service-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/other/dconf-service-srv/producer-for: source/user/other/dconf-service-srv/producer-for
+source/user/other/dbus-daemon-srv/run: src/lib/source/user/other/dbus-daemon-srv/run
+$(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/run: source/user/other/dbus-daemon-srv/run
+source/user/other/dbus-daemon-srv/type: src/lib/source/user/other/dbus-daemon-srv/type
+$(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/type: source/user/other/dbus-daemon-srv/type
+source/user/other/dbus-daemon-srv/notification-fd: src/lib/source/user/other/dbus-daemon-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/notification-fd: source/user/other/dbus-daemon-srv/notification-fd
+source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir: src/lib/source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir
+$(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir: source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir
+source/user/other/dbus-daemon-srv/producer-for: src/lib/source/user/other/dbus-daemon-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/producer-for: source/user/other/dbus-daemon-srv/producer-for
+source/user/other/at-spi-bus-launcher-srv/run: src/lib/source/user/other/at-spi-bus-launcher-srv/run
+$(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/run: source/user/other/at-spi-bus-launcher-srv/run
+source/user/other/at-spi-bus-launcher-srv/type: src/lib/source/user/other/at-spi-bus-launcher-srv/type
+$(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/type: source/user/other/at-spi-bus-launcher-srv/type
+source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus: src/lib/source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus
+$(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus: source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus
+source/user/other/at-spi-bus-launcher-srv/producer-for: src/lib/source/user/other/at-spi-bus-launcher-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/producer-for: source/user/other/at-spi-bus-launcher-srv/producer-for
+source/user/other/at-spi2-registryd-srv/run: src/lib/source/user/other/at-spi2-registryd-srv/run
+$(DESTDIR)$(libdir)/source/user/other/at-spi2-registryd-srv/run: source/user/other/at-spi2-registryd-srv/run
+source/user/other/at-spi2-registryd-srv/type: src/lib/source/user/other/at-spi2-registryd-srv/type
+$(DESTDIR)$(libdir)/source/user/other/at-spi2-registryd-srv/type: source/user/other/at-spi2-registryd-srv/type
+source/user/other/at-spi2-registryd-srv/producer-for: src/lib/source/user/other/at-spi2-registryd-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/other/at-spi2-registryd-srv/producer-for: source/user/other/at-spi2-registryd-srv/producer-for
+source/user/compositor/Hyprland-srv/run: src/lib/source/user/compositor/Hyprland-srv/run
+$(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/run: source/user/compositor/Hyprland-srv/run
+source/user/compositor/Hyprland-srv/type: src/lib/source/user/compositor/Hyprland-srv/type
+$(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/type: source/user/compositor/Hyprland-srv/type
+source/user/compositor/Hyprland-srv/finish: src/lib/source/user/compositor/Hyprland-srv/finish
+$(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/finish: source/user/compositor/Hyprland-srv/finish
+source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir: src/lib/source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir
+$(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir: source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir
+source/user/compositor/Hyprland-srv/producer-for: src/lib/source/user/compositor/Hyprland-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/producer-for: source/user/compositor/Hyprland-srv/producer-for
+source/user/clipboard-manager/wl-clip-persist-srv/run: src/lib/source/user/clipboard-manager/wl-clip-persist-srv/run
+$(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/run: source/user/clipboard-manager/wl-clip-persist-srv/run
+source/user/clipboard-manager/wl-clip-persist-srv/type: src/lib/source/user/clipboard-manager/wl-clip-persist-srv/type
+$(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/type: source/user/clipboard-manager/wl-clip-persist-srv/type
+source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor: src/lib/source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor: source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor
+source/user/clipboard-manager/wl-clip-persist-srv/producer-for: src/lib/source/user/clipboard-manager/wl-clip-persist-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/producer-for: source/user/clipboard-manager/wl-clip-persist-srv/producer-for
+source/user/desktop-widget/waybar-srv/run: src/lib/source/user/desktop-widget/waybar-srv/run
+$(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/run: source/user/desktop-widget/waybar-srv/run
+source/user/desktop-widget/waybar-srv/type: src/lib/source/user/desktop-widget/waybar-srv/type
+$(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/type: source/user/desktop-widget/waybar-srv/type
+source/user/desktop-widget/waybar-srv/notification-fd: src/lib/source/user/desktop-widget/waybar-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/notification-fd: source/user/desktop-widget/waybar-srv/notification-fd
+source/user/desktop-widget/waybar-srv/dependencies.d/compositor: src/lib/source/user/desktop-widget/waybar-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/dependencies.d/compositor: source/user/desktop-widget/waybar-srv/dependencies.d/compositor
+source/user/desktop-widget/waybar-srv/producer-for: src/lib/source/user/desktop-widget/waybar-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/producer-for: source/user/desktop-widget/waybar-srv/producer-for
+source/user/desktop-widget/yambar-srv/run: src/lib/source/user/desktop-widget/yambar-srv/run
+$(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/run: source/user/desktop-widget/yambar-srv/run
+source/user/desktop-widget/yambar-srv/type: src/lib/source/user/desktop-widget/yambar-srv/type
+$(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/type: source/user/desktop-widget/yambar-srv/type
+source/user/desktop-widget/yambar-srv/notification-fd: src/lib/source/user/desktop-widget/yambar-srv/notification-fd
+$(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/notification-fd: source/user/desktop-widget/yambar-srv/notification-fd
+source/user/desktop-widget/yambar-srv/dependencies.d/compositor: src/lib/source/user/desktop-widget/yambar-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/dependencies.d/compositor: source/user/desktop-widget/yambar-srv/dependencies.d/compositor
+source/user/desktop-widget/yambar-srv/producer-for: src/lib/source/user/desktop-widget/yambar-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/producer-for: source/user/desktop-widget/yambar-srv/producer-for
+source/user/bundle/audio/type: src/lib/source/user/bundle/audio/type
+$(DESTDIR)$(libdir)/source/user/bundle/audio/type: source/user/bundle/audio/type
+source/user/bundle/compositor/type: src/lib/source/user/bundle/compositor/type
+$(DESTDIR)$(libdir)/source/user/bundle/compositor/type: source/user/bundle/compositor/type
+source/user/bundle/default/type: src/lib/source/user/bundle/default/type
+$(DESTDIR)$(libdir)/source/user/bundle/default/type: source/user/bundle/default/type
+source/user/bundle/session-bus/type: src/lib/source/user/bundle/session-bus/type
+$(DESTDIR)$(libdir)/source/user/bundle/session-bus/type: source/user/bundle/session-bus/type
+source/user/wallpaper-daemon/hyprpaper-srv/run: src/lib/source/user/wallpaper-daemon/hyprpaper-srv/run
+$(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/run: source/user/wallpaper-daemon/hyprpaper-srv/run
+source/user/wallpaper-daemon/hyprpaper-srv/type: src/lib/source/user/wallpaper-daemon/hyprpaper-srv/type
+$(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/type: source/user/wallpaper-daemon/hyprpaper-srv/type
+source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor: src/lib/source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor
+$(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor: source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor
+source/user/wallpaper-daemon/hyprpaper-srv/producer-for: src/lib/source/user/wallpaper-daemon/hyprpaper-srv/producer-for
+$(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/producer-for: source/user/wallpaper-daemon/hyprpaper-srv/producer-for
diff --git a/package/extras.mak b/package/extras.mak
new file mode 100644
index 0000000..a35439a
--- /dev/null
+++ b/package/extras.mak
@@ -0,0 +1,21 @@
+INSTALL_BUNDLE_CONTENTS ::= \
+ $(DESTDIR)$(libdir)/source/system/bundle/default/contents.d \
+ $(DESTDIR)$(libdir)/source/system/bundle/firewall/contents.d \
+ $(DESTDIR)$(libdir)/source/system/bundle/mount/contents.d \
+ $(DESTDIR)$(libdir)/source/system/bundle/networking/contents.d \
+ $(DESTDIR)$(libdir)/source/system/bundle/seat-manager/contents.d \
+ $(DESTDIR)$(libdir)/source/system/bundle/system-bus/contents.d \
+ $(DESTDIR)$(libdir)/source/system/bundle/udev/contents.d \
+ $(DESTDIR)$(libdir)/source/user/bundle/audio/contents.d \
+ $(DESTDIR)$(libdir)/source/user/bundle/compositor/contents.d \
+ $(DESTDIR)$(libdir)/source/user/bundle/default/contents.d \
+ $(DESTDIR)$(libdir)/source/user/bundle/session-bus/contents.d \
+
+$(INSTALL_BUNDLE_CONTENTS):
+ exec mkdir -p -- $@
+
+ALL_EXTRAS ::= \
+ $(ALL_BUNDLE_CONTENTS)
+
+INSTALL_EXTRAS ::= \
+ $(INSTALL_BUNDLE_CONTENTS)
diff --git a/package/info b/package/info
new file mode 100644
index 0000000..d51a386
--- /dev/null
+++ b/package/info
@@ -0,0 +1,4 @@
+package=goetia-base
+version=0.0.0.1
+category=admin
+package_macro_name=GOETIA-BASE
diff --git a/package/modes b/package/modes
new file mode 100644
index 0000000..4acc933
--- /dev/null
+++ b/package/modes
@@ -0,0 +1,35 @@
+compile-db 0755
+longrun-make 0755
+oneshot-make 0755
+prepare-svscan 0755
+system-db 0755
+system-ml 0755
+system-rc 0755
+system-run 0755
+system-shutdown-daemon 0755
+
+user-db 0755
+user-ml 0755
+user-rc 0755
+user-run 0755
+user-init 0755
+user-shutdown 0755
+user-tmpfs 0755
+
+service/system/goetia-runner/run 0755
+service/system/s6-svscan-log/run 0755
+service/system/s6-svscan-log-console/run 0755
+service/system/.s6-svscan/crash 0755
+service/system/.s6-svscan/finish 0755
+service/system/.s6-svscan/SIGINT 0755
+service/system/.s6-svscan/SIGPWR 0755
+service/system/.s6-svscan/SIGQUIT 0755
+service/system/.s6-svscan/SIGTERM 0755
+service/system/.s6-svscan/SIGUSR1 0755
+service/system/.s6-svscan/SIGUSR2 0755
+service/system/.s6-svscan/SIGWINCH 0755
+
+service/user/goetia-runner/run 0755
+service/user/s6-svscan-log/run 0755
+service/user/s6-svscan-log-console/run 0755
+service/user/.s6-svscan/SIGTERM 0755
diff --git a/package/targets.mak b/package/targets.mak
new file mode 100644
index 0000000..43cbcae
--- /dev/null
+++ b/package/targets.mak
@@ -0,0 +1,446 @@
+#
+# This file has been generated by tools/gen-targets.sh
+#
+
+ALL_BINS ::= \
+ compile-db \
+ longrun-make \
+ oneshot-make \
+ prepare-svscan \
+ system-db \
+ system-ml \
+ system-rc \
+ system-run \
+ system-shutdown-daemon \
+ user-db \
+ user-init \
+ user-ml \
+ user-rc \
+ user-run \
+ user-shutdown \
+ user-tmpfs \
+
+INSTALL_BINS ::= \
+ $(DESTDIR)$(bindir)/compile-db \
+ $(DESTDIR)$(bindir)/longrun-make \
+ $(DESTDIR)$(bindir)/oneshot-make \
+ $(DESTDIR)$(bindir)/prepare-svscan \
+ $(DESTDIR)$(bindir)/system-db \
+ $(DESTDIR)$(bindir)/system-ml \
+ $(DESTDIR)$(bindir)/system-rc \
+ $(DESTDIR)$(bindir)/system-run \
+ $(DESTDIR)$(bindir)/system-shutdown-daemon \
+ $(DESTDIR)$(bindir)/user-db \
+ $(DESTDIR)$(bindir)/user-init \
+ $(DESTDIR)$(bindir)/user-ml \
+ $(DESTDIR)$(bindir)/user-rc \
+ $(DESTDIR)$(bindir)/user-run \
+ $(DESTDIR)$(bindir)/user-shutdown \
+ $(DESTDIR)$(bindir)/user-tmpfs \
+
+SLASHCOMMAND_BINS ::= \
+ $(DESTDIR)$(sproot)/command/compile-db \
+ $(DESTDIR)$(sproot)/command/longrun-make \
+ $(DESTDIR)$(sproot)/command/oneshot-make \
+ $(DESTDIR)$(sproot)/command/prepare-svscan \
+ $(DESTDIR)$(sproot)/command/system-db \
+ $(DESTDIR)$(sproot)/command/system-ml \
+ $(DESTDIR)$(sproot)/command/system-rc \
+ $(DESTDIR)$(sproot)/command/system-run \
+ $(DESTDIR)$(sproot)/command/system-shutdown-daemon \
+ $(DESTDIR)$(sproot)/command/user-db \
+ $(DESTDIR)$(sproot)/command/user-init \
+ $(DESTDIR)$(sproot)/command/user-ml \
+ $(DESTDIR)$(sproot)/command/user-rc \
+ $(DESTDIR)$(sproot)/command/user-run \
+ $(DESTDIR)$(sproot)/command/user-shutdown \
+ $(DESTDIR)$(sproot)/command/user-tmpfs \
+
+ALL_LIBS ::= \
+ service/system/s6-svscan-log/run \
+ service/system/s6-svscan-log/notification-fd \
+ service/system/.s6-svscan/crash \
+ service/system/.s6-svscan/SIGUSR1 \
+ service/system/.s6-svscan/finish \
+ service/system/.s6-svscan/SIGQUIT \
+ service/system/.s6-svscan/SIGINT \
+ service/system/.s6-svscan/SIGUSR2 \
+ service/system/.s6-svscan/SIGWINCH \
+ service/system/.s6-svscan/SIGTERM \
+ service/system/.s6-svscan/SIGPWR \
+ service/system/s6-svscan-log-console/run \
+ service/system/s6-svscan-log-console/notification-fd \
+ service/system/goetia-runner/run \
+ service/system/goetia-runner/notification-fd \
+ service/user/s6-svscan-log/run \
+ service/user/s6-svscan-log/notification-fd \
+ service/user/.s6-svscan/SIGTERM \
+ service/user/goetia-runner/run \
+ service/user/goetia-runner/notification-fd \
+ source/system/other/dbus-daemon-srv/run \
+ source/system/other/dbus-daemon-srv/type \
+ source/system/other/dbus-daemon-srv/notification-fd \
+ source/system/other/dbus-daemon-srv/producer-for \
+ source/system/other/sshd-srv/run \
+ source/system/other/sshd-srv/type \
+ source/system/other/sshd-srv/dependencies.d/networking \
+ source/system/other/sshd-srv/producer-for \
+ source/system/other/cupsd-srv/run \
+ source/system/other/cupsd-srv/type \
+ source/system/other/cupsd-srv/producer-for \
+ source/system/admin/seatd-srv/run \
+ source/system/admin/seatd-srv/type \
+ source/system/admin/seatd-srv/notification-fd \
+ source/system/admin/seatd-srv/dependencies.d/mount-dev \
+ source/system/admin/seatd-srv/dependencies.d/mount-run \
+ source/system/admin/seatd-srv/producer-for \
+ source/system/admin/greetd-srv/run \
+ source/system/admin/greetd-srv/type \
+ source/system/admin/greetd-srv/dependencies.d/mount-run \
+ source/system/admin/greetd-srv/dependencies.d/udev \
+ source/system/admin/greetd-srv/dependencies.d/seat-manager \
+ source/system/admin/greetd-srv/producer-for \
+ source/system/cron/dcron-srv/run \
+ source/system/cron/dcron-srv/type \
+ source/system/cron/dcron-srv/producer-for \
+ source/system/ntp/chronyd-srv/run \
+ source/system/ntp/chronyd-srv/type \
+ source/system/ntp/chronyd-srv/dependencies.d/networking \
+ source/system/ntp/chronyd-srv/producer-for \
+ source/system/db/mariadbd-srv/run \
+ source/system/db/mariadbd-srv/type \
+ source/system/db/mariadbd-srv/producer-for \
+ source/system/db/mysqld-srv/run \
+ source/system/db/mysqld-srv/type \
+ source/system/db/mysqld-srv/producer-for \
+ source/system/bundle/networking/type \
+ source/system/bundle/system-bus/type \
+ source/system/bundle/udev/type \
+ source/system/bundle/firewall/type \
+ source/system/bundle/seat-manager/type \
+ source/system/bundle/default/type \
+ source/system/bundle/mount/type \
+ source/system/net/wpa_supplicant-srv/run \
+ source/system/net/wpa_supplicant-srv/type \
+ source/system/net/wpa_supplicant-srv/dependencies.d/system-bus \
+ source/system/net/wpa_supplicant-srv/producer-for \
+ source/system/net/dhcpcd-srv/run \
+ source/system/net/dhcpcd-srv/type \
+ source/system/net/dhcpcd-srv/dependencies.d/udev \
+ source/system/net/dhcpcd-srv/producer-for \
+ source/system/web/gate-srv/run \
+ source/system/web/gate-srv/type \
+ source/system/web/gate-srv/dependencies.d/udev \
+ source/system/web/gate-srv/producer-for \
+ source/system/web/nginx-srv/run \
+ source/system/web/nginx-srv/type \
+ source/system/web/nginx-srv/producer-for \
+ source/system/web/radicale-srv/run \
+ source/system/web/radicale-srv/type \
+ source/system/web/radicale-srv/dependencies.d/mount \
+ source/system/web/radicale-srv/producer-for \
+ source/user/audio-daemon/pipewire-pulse-srv/run \
+ source/user/audio-daemon/pipewire-pulse-srv/type \
+ source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire \
+ source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir \
+ source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus \
+ source/user/audio-daemon/pipewire-pulse-srv/producer-for \
+ source/user/audio-daemon/pipewire-srv/run \
+ source/user/audio-daemon/pipewire-srv/type \
+ source/user/audio-daemon/pipewire-srv/notification-fd \
+ source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir \
+ source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus \
+ source/user/audio-daemon/pipewire-srv/producer-for \
+ source/user/audio-daemon/wireplumber-srv/run \
+ source/user/audio-daemon/wireplumber-srv/type \
+ source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire \
+ source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus \
+ source/user/audio-daemon/wireplumber-srv/producer-for \
+ source/user/xdg/xdg-document-portal-srv/run \
+ source/user/xdg/xdg-document-portal-srv/type \
+ source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus \
+ source/user/xdg/xdg-document-portal-srv/producer-for \
+ source/user/xdg/xdg-desktop-portal-hyprland-srv/run \
+ source/user/xdg/xdg-desktop-portal-hyprland-srv/type \
+ source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor \
+ source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for \
+ source/user/xdg/xdg-runtime-dir/up \
+ source/user/xdg/xdg-runtime-dir/type \
+ source/user/xdg/xdg-runtime-dir/down \
+ source/user/xdg/xdg-permission-store-srv/run \
+ source/user/xdg/xdg-permission-store-srv/type \
+ source/user/xdg/xdg-permission-store-srv/producer-for \
+ source/user/xdg/xdg-desktop-portal-srv/run \
+ source/user/xdg/xdg-desktop-portal-srv/type \
+ source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor \
+ source/user/xdg/xdg-desktop-portal-srv/producer-for \
+ source/user/notification-daemon/dunst-srv/run \
+ source/user/notification-daemon/dunst-srv/type \
+ source/user/notification-daemon/dunst-srv/notification-fd \
+ source/user/notification-daemon/dunst-srv/dependencies.d/compositor \
+ source/user/notification-daemon/dunst-srv/dependencies.d/session-bus \
+ source/user/notification-daemon/dunst-srv/producer-for \
+ source/user/notification-daemon/fnott-srv/run \
+ source/user/notification-daemon/fnott-srv/type \
+ source/user/notification-daemon/fnott-srv/notification-fd \
+ source/user/notification-daemon/fnott-srv/dependencies.d/compositor \
+ source/user/notification-daemon/fnott-srv/dependencies.d/session-bus \
+ source/user/notification-daemon/fnott-srv/producer-for \
+ source/user/notification-daemon/mako-srv/run \
+ source/user/notification-daemon/mako-srv/type \
+ source/user/notification-daemon/mako-srv/notification-fd \
+ source/user/notification-daemon/mako-srv/dependencies.d/compositor \
+ source/user/notification-daemon/mako-srv/dependencies.d/session-bus \
+ source/user/notification-daemon/mako-srv/producer-for \
+ source/user/notification-daemon/swaync-srv/run \
+ source/user/notification-daemon/swaync-srv/type \
+ source/user/notification-daemon/swaync-srv/notification-fd \
+ source/user/notification-daemon/swaync-srv/dependencies.d/compositor \
+ source/user/notification-daemon/swaync-srv/dependencies.d/session-bus \
+ source/user/notification-daemon/swaync-srv/producer-for \
+ source/user/other/foot-srv/run \
+ source/user/other/foot-srv/type \
+ source/user/other/foot-srv/notification-fd \
+ source/user/other/foot-srv/dependencies.d/compositor \
+ source/user/other/foot-srv/producer-for \
+ source/user/other/mpd-srv/run \
+ source/user/other/mpd-srv/type \
+ source/user/other/mpd-srv/dependencies.d/audio \
+ source/user/other/mpd-srv/producer-for \
+ source/user/other/dconf-service-srv/run \
+ source/user/other/dconf-service-srv/type \
+ source/user/other/dconf-service-srv/producer-for \
+ source/user/other/dbus-daemon-srv/run \
+ source/user/other/dbus-daemon-srv/type \
+ source/user/other/dbus-daemon-srv/notification-fd \
+ source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir \
+ source/user/other/dbus-daemon-srv/producer-for \
+ source/user/other/at-spi-bus-launcher-srv/run \
+ source/user/other/at-spi-bus-launcher-srv/type \
+ source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus \
+ source/user/other/at-spi-bus-launcher-srv/producer-for \
+ source/user/other/at-spi2-registryd-srv/run \
+ source/user/other/at-spi2-registryd-srv/type \
+ source/user/other/at-spi2-registryd-srv/producer-for \
+ source/user/compositor/Hyprland-srv/run \
+ source/user/compositor/Hyprland-srv/type \
+ source/user/compositor/Hyprland-srv/finish \
+ source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir \
+ source/user/compositor/Hyprland-srv/producer-for \
+ source/user/clipboard-manager/wl-clip-persist-srv/run \
+ source/user/clipboard-manager/wl-clip-persist-srv/type \
+ source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor \
+ source/user/clipboard-manager/wl-clip-persist-srv/producer-for \
+ source/user/desktop-widget/waybar-srv/run \
+ source/user/desktop-widget/waybar-srv/type \
+ source/user/desktop-widget/waybar-srv/notification-fd \
+ source/user/desktop-widget/waybar-srv/dependencies.d/compositor \
+ source/user/desktop-widget/waybar-srv/producer-for \
+ source/user/desktop-widget/yambar-srv/run \
+ source/user/desktop-widget/yambar-srv/type \
+ source/user/desktop-widget/yambar-srv/notification-fd \
+ source/user/desktop-widget/yambar-srv/dependencies.d/compositor \
+ source/user/desktop-widget/yambar-srv/producer-for \
+ source/user/bundle/audio/type \
+ source/user/bundle/compositor/type \
+ source/user/bundle/default/type \
+ source/user/bundle/session-bus/type \
+ source/user/wallpaper-daemon/hyprpaper-srv/run \
+ source/user/wallpaper-daemon/hyprpaper-srv/type \
+ source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor \
+ source/user/wallpaper-daemon/hyprpaper-srv/producer-for \
+
+INSTALL_LIBS ::= \
+ $(DESTDIR)$(libdir)/service/system/s6-svscan-log/run \
+ $(DESTDIR)$(libdir)/service/system/s6-svscan-log/notification-fd \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/crash \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR1 \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/finish \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGQUIT \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGINT \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGUSR2 \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGWINCH \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGTERM \
+ $(DESTDIR)$(libdir)/service/system/.s6-svscan/SIGPWR \
+ $(DESTDIR)$(libdir)/service/system/s6-svscan-log-console/run \
+ $(DESTDIR)$(libdir)/service/system/s6-svscan-log-console/notification-fd \
+ $(DESTDIR)$(libdir)/service/system/goetia-runner/run \
+ $(DESTDIR)$(libdir)/service/system/goetia-runner/notification-fd \
+ $(DESTDIR)$(libdir)/service/user/s6-svscan-log/run \
+ $(DESTDIR)$(libdir)/service/user/s6-svscan-log/notification-fd \
+ $(DESTDIR)$(libdir)/service/user/.s6-svscan/SIGTERM \
+ $(DESTDIR)$(libdir)/service/user/goetia-runner/run \
+ $(DESTDIR)$(libdir)/service/user/goetia-runner/notification-fd \
+ $(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/run \
+ $(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/type \
+ $(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/system/other/dbus-daemon-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/other/sshd-srv/run \
+ $(DESTDIR)$(libdir)/source/system/other/sshd-srv/type \
+ $(DESTDIR)$(libdir)/source/system/other/sshd-srv/dependencies.d/networking \
+ $(DESTDIR)$(libdir)/source/system/other/sshd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/other/cupsd-srv/run \
+ $(DESTDIR)$(libdir)/source/system/other/cupsd-srv/type \
+ $(DESTDIR)$(libdir)/source/system/other/cupsd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/admin/seatd-srv/run \
+ $(DESTDIR)$(libdir)/source/system/admin/seatd-srv/type \
+ $(DESTDIR)$(libdir)/source/system/admin/seatd-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/system/admin/seatd-srv/dependencies.d/mount-dev \
+ $(DESTDIR)$(libdir)/source/system/admin/seatd-srv/dependencies.d/mount-run \
+ $(DESTDIR)$(libdir)/source/system/admin/seatd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/admin/greetd-srv/run \
+ $(DESTDIR)$(libdir)/source/system/admin/greetd-srv/type \
+ $(DESTDIR)$(libdir)/source/system/admin/greetd-srv/dependencies.d/mount-run \
+ $(DESTDIR)$(libdir)/source/system/admin/greetd-srv/dependencies.d/udev \
+ $(DESTDIR)$(libdir)/source/system/admin/greetd-srv/dependencies.d/seat-manager \
+ $(DESTDIR)$(libdir)/source/system/admin/greetd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/cron/dcron-srv/run \
+ $(DESTDIR)$(libdir)/source/system/cron/dcron-srv/type \
+ $(DESTDIR)$(libdir)/source/system/cron/dcron-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/run \
+ $(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/type \
+ $(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/dependencies.d/networking \
+ $(DESTDIR)$(libdir)/source/system/ntp/chronyd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/db/mariadbd-srv/run \
+ $(DESTDIR)$(libdir)/source/system/db/mariadbd-srv/type \
+ $(DESTDIR)$(libdir)/source/system/db/mariadbd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/db/mysqld-srv/run \
+ $(DESTDIR)$(libdir)/source/system/db/mysqld-srv/type \
+ $(DESTDIR)$(libdir)/source/system/db/mysqld-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/bundle/networking/type \
+ $(DESTDIR)$(libdir)/source/system/bundle/system-bus/type \
+ $(DESTDIR)$(libdir)/source/system/bundle/udev/type \
+ $(DESTDIR)$(libdir)/source/system/bundle/firewall/type \
+ $(DESTDIR)$(libdir)/source/system/bundle/seat-manager/type \
+ $(DESTDIR)$(libdir)/source/system/bundle/default/type \
+ $(DESTDIR)$(libdir)/source/system/bundle/mount/type \
+ $(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/run \
+ $(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/type \
+ $(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/dependencies.d/system-bus \
+ $(DESTDIR)$(libdir)/source/system/net/wpa_supplicant-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/run \
+ $(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/type \
+ $(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/dependencies.d/udev \
+ $(DESTDIR)$(libdir)/source/system/net/dhcpcd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/web/gate-srv/run \
+ $(DESTDIR)$(libdir)/source/system/web/gate-srv/type \
+ $(DESTDIR)$(libdir)/source/system/web/gate-srv/dependencies.d/udev \
+ $(DESTDIR)$(libdir)/source/system/web/gate-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/web/nginx-srv/run \
+ $(DESTDIR)$(libdir)/source/system/web/nginx-srv/type \
+ $(DESTDIR)$(libdir)/source/system/web/nginx-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/system/web/radicale-srv/run \
+ $(DESTDIR)$(libdir)/source/system/web/radicale-srv/type \
+ $(DESTDIR)$(libdir)/source/system/web/radicale-srv/dependencies.d/mount \
+ $(DESTDIR)$(libdir)/source/system/web/radicale-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/run \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/type \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-pulse-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/run \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/type \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/pipewire-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/run \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/type \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/audio-daemon/wireplumber-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/run \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/type \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-document-portal-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/run \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/type \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-runtime-dir/up \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-runtime-dir/type \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-runtime-dir/down \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-permission-store-srv/run \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-permission-store-srv/type \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-permission-store-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/run \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/type \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/xdg/xdg-desktop-portal-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/run \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/type \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/dunst-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/run \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/type \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/fnott-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/run \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/type \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/mako-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/run \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/type \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/notification-daemon/swaync-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/other/foot-srv/run \
+ $(DESTDIR)$(libdir)/source/user/other/foot-srv/type \
+ $(DESTDIR)$(libdir)/source/user/other/foot-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/other/foot-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/other/foot-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/other/mpd-srv/run \
+ $(DESTDIR)$(libdir)/source/user/other/mpd-srv/type \
+ $(DESTDIR)$(libdir)/source/user/other/mpd-srv/dependencies.d/audio \
+ $(DESTDIR)$(libdir)/source/user/other/mpd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/other/dconf-service-srv/run \
+ $(DESTDIR)$(libdir)/source/user/other/dconf-service-srv/type \
+ $(DESTDIR)$(libdir)/source/user/other/dconf-service-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/run \
+ $(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/type \
+ $(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir \
+ $(DESTDIR)$(libdir)/source/user/other/dbus-daemon-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/run \
+ $(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/type \
+ $(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus \
+ $(DESTDIR)$(libdir)/source/user/other/at-spi-bus-launcher-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/other/at-spi2-registryd-srv/run \
+ $(DESTDIR)$(libdir)/source/user/other/at-spi2-registryd-srv/type \
+ $(DESTDIR)$(libdir)/source/user/other/at-spi2-registryd-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/run \
+ $(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/type \
+ $(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/finish \
+ $(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir \
+ $(DESTDIR)$(libdir)/source/user/compositor/Hyprland-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/run \
+ $(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/type \
+ $(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/clipboard-manager/wl-clip-persist-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/run \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/type \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/waybar-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/run \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/type \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/notification-fd \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/desktop-widget/yambar-srv/producer-for \
+ $(DESTDIR)$(libdir)/source/user/bundle/audio/type \
+ $(DESTDIR)$(libdir)/source/user/bundle/compositor/type \
+ $(DESTDIR)$(libdir)/source/user/bundle/default/type \
+ $(DESTDIR)$(libdir)/source/user/bundle/session-bus/type \
+ $(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/run \
+ $(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/type \
+ $(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor \
+ $(DESTDIR)$(libdir)/source/user/wallpaper-daemon/hyprpaper-srv/producer-for \
+
diff --git a/src/bin/compile-db b/src/bin/compile-db
new file mode 100755
index 0000000..22b63b4
--- /dev/null
+++ b/src/bin/compile-db
@@ -0,0 +1,27 @@
+#!@shebangdir@/execlineb -WS2
+
+# ISC license.
+
+multisubstitute {
+ define CONFIGDIR ${1}
+ define LIVEDIR ${2}
+}
+
+backtick -ED" " OLDDB { realpath ${CONFIGDIR}/compiled }
+backtick -E DATE { date +%s }
+elglob SOURCES ${CONFIGDIR}/src/*
+
+if { s6-rc-compile -v2 ${CONFIGDIR}/compiled-${DATE} ${SOURCES} }
+
+if {
+ if -x0 { eltest -d ${LIVEDIR} }
+ if -n -x0 { s6-rc-update -v2 -l ${LIVEDIR} ${CONFIGDIR}/compiled-${DATE} }
+ if { s6-rc-update -v2 -l ${LIVEDIR} ${CONFIGDIR}/compiled }
+ if { rm -Rf ${CONFIGDIR}/compiled-${DATE} }
+ exit 1
+}
+
+if { ln -sf compiled-${DATE} ${CONFIGDIR}/compiled/compiled }
+if { mv -f ${CONFIGDIR}/compiled/compiled ${CONFIGDIR}/ }
+
+rm -Rf ${OLDDB}
diff --git a/src/bin/longrun-make b/src/bin/longrun-make
new file mode 100755
index 0000000..2b5b433
--- /dev/null
+++ b/src/bin/longrun-make
@@ -0,0 +1,36 @@
+#!@shebangdir@/execlineb -WS5
+
+# ISC license.
+
+multisubstitute {
+ define WORKINGDIR ${1}
+ define NAME ${2}
+ define TYPE ${3}
+ define SCRIPT ${4}
+ define DEPENDENCIES ${5}
+}
+
+if { mkdir -p ${WORKINGDIR}/${NAME}-${TYPE} }
+
+background {
+ if { eltest ${TYPE} = log }
+ s6-setlock ${WORKINGDIR}/${NAME}-log/consumer-for
+ if -n { grep -Fq -- ${NAME}-srv ${WORKINGDIR}/${NAME}-log/consumer-for }
+ background { redirfd -a 1 ${WORKINGDIR}/${NAME}-log/consumer-for echo ${NAME}-srv }
+ background { redirfd -w 1 ${WORKINGDIR}/${NAME}-log/pipeline-name echo ${NAME} }
+}
+
+background {
+ if { eltest ${TYPE} = srv }
+ redirfd -w 1 ${WORKINGDIR}/${NAME}-srv/producer-for echo ${NAME}-log
+}
+
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}-${TYPE}/type echo longrun }
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}-${TYPE}/notification-fd echo 3 }
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}-${TYPE}/run echo ${SCRIPT} }
+background {
+ if { eltest ${DEPENDENCIES} != none }
+ define -s SPLITDEPENDENCIES ${DEPENDENCIES}
+ if { mkdir -p ${WORKINGDIR}/${NAME}-${TYPE}/dependencies.d }
+ touch ${WORKINGDIR}/${NAME}-${TYPE}/dependencies.d/${SPLITDEPENDENCIES}
+}
diff --git a/src/bin/oneshot-make b/src/bin/oneshot-make
new file mode 100755
index 0000000..4d255b2
--- /dev/null
+++ b/src/bin/oneshot-make
@@ -0,0 +1,22 @@
+#!@shebangdir@/execlineb -WS5
+
+# ISC license.
+
+multisubstitute {
+ define WORKINGDIR ${1}
+ define NAME ${2}
+ define UPSCRIPT ${3}
+ define DOWNSCRIPT ${4}
+ define DEPENDENCIES ${5}
+}
+
+if { mkdir -p ${WORKINGDIR}/${NAME} }
+
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}/type echo oneshot }
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}/up echo ${UPSCRIPT} }
+background { redirfd -w 1 ${WORKINGDIR}/${NAME}/down echo ${DOWNSCRIPT} }
+background {
+ if { eltest -v 5 }
+ if { mkdir -p ${WORKINGDIR}/${NAME}/dependencies.d }
+ touch ${WORKINGDIR}/${NAME}/dependencies.d/${DEPENDENCIES}
+}
diff --git a/src/bin/prepare-svscan b/src/bin/prepare-svscan
new file mode 100755
index 0000000..9fe7f8d
--- /dev/null
+++ b/src/bin/prepare-svscan
@@ -0,0 +1,37 @@
+#!@shebangdir@/execlineb -Ws4
+
+# ISC license.
+
+multisubstitute {
+ define WORKINGDIR ${1}
+ define RUNDIR ${2}
+ define BUNDLE ${3}
+ define PROG ${4}
+}
+
+redirfd -r 0 /dev/null
+execline-umask 0022
+
+if { mkdir -p -m750 -- ${RUNDIR} }
+foreground { cp -RfpL -- ${WORKINGDIR}/run-image/. ${RUNDIR}/ }
+
+if { mkfifo -m700 ${RUNDIR}/service/s6-svscan-log/fifo }
+redirfd -wnb 1 ${RUNDIR}/service/s6-svscan-log/fifo
+
+background {
+ redirfd -w 2 ${RUNDIR}/service/s6-svscan-log/fifo
+ if -x0 -n { eltest -d ${RUNDIR}/s6-rc }
+ foreground { echo "\ninit!\n" }
+ if {
+ s6-rc-init
+ -c ${WORKINGDIR}/compiled
+ -l ${RUNDIR}/s6-rc
+ ${RUNDIR}/service
+ }
+ foreground { echo "\nStarting bundle ${BUNDLE}...\n" }
+ s6-rc -l ${RUNDIR}/s6-rc -v2 -b -t@timeout@ -up change ${BUNDLE}
+}
+fdmove -c 2 1
+
+s6-envdir -I ${WORKINGDIR}/env
+${PROG} ${@}
diff --git a/src/bin/system-db b/src/bin/system-db
new file mode 100755
index 0000000..add7d33
--- /dev/null
+++ b/src/bin/system-db
@@ -0,0 +1,7 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+compile-db
+ @sysconfdir@
+ @tmpfsdir@/@sysrundir@/s6-rc
diff --git a/src/bin/system-ml b/src/bin/system-ml
new file mode 100755
index 0000000..1937ac0
--- /dev/null
+++ b/src/bin/system-ml
@@ -0,0 +1,31 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+define LOGSCRIPT "#!@shebangdir@/execlineb -P
+
+# ISC license
+
+fdmove -c 1 2
+
+if { mkdir -p -m750 -- @syslogdir@/${NAME} }
+if { chown @loguser@:@loguser@ @syslogdir@/${NAME} }
+s6-setuidgid @loguser@
+s6-log -bd3 @logconfig@ @syslogdir@/${NAME}"
+
+if { rm -Rf @sysconfdir@/src/generated-logger }
+if { mkdir -p @sysconfdir@/src/generated-logger }
+
+elglob LONGRUNS @sysconfdir@/src/*/*
+forx -pE LONGRUN { ${LONGRUNS} }
+ if -x0 { eltest -f ${LONGRUN}/producer-for }
+ if -x0 -n { eltest -f ${LONGRUN}/no-ml }
+ if { echo Making the logger of ${LONGRUN} }
+ pipeline { sed -e s/-log$// -- ${LONGRUN}/producer-for }
+ withstdinas -E NAME
+ longrun-make
+ @sysconfdir@/src/generated-logger
+ ${NAME}
+ log
+ ${LOGSCRIPT}
+ @logdep@
diff --git a/src/bin/system-rc b/src/bin/system-rc
new file mode 100755
index 0000000..61230ab
--- /dev/null
+++ b/src/bin/system-rc
@@ -0,0 +1,5 @@
+#!@shebangdir@/execlineb -s0
+
+# ISC license.
+
+s6-rc -l @tmpfsdir@/@sysrundir@/s6-rc ${@}
diff --git a/src/bin/system-run b/src/bin/system-run
new file mode 100755
index 0000000..e5b9cec
--- /dev/null
+++ b/src/bin/system-run
@@ -0,0 +1,6 @@
+#!@shebangdir@/execlineb -s0
+
+# ISC license.
+
+s6-sudo @tmpfsdir@/@sysrundir@/service/goetia-runner/s
+ fdmove -c 1 2 ${@}
diff --git a/src/bin/system-shutdown-daemon b/src/bin/system-shutdown-daemon
new file mode 100755
index 0000000..6419bfb
--- /dev/null
+++ b/src/bin/system-shutdown-daemon
@@ -0,0 +1,31 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+tryexec { ./stage3b }
+
+if -n {
+ foreground { echo "\nsystem-shutdown!\n" }
+ foreground { s6-rc -l @tmpfsdir@/@sysrundir@/s6-rc -v2 -b -Da -t@timeout@ change }
+ foreground {
+ pipeline { ls -1 @tmpfsdir@/@sysrundir@/service/ }
+ pipeline {
+ sed
+ -e /s6-svscan-log/d
+ -e /.s6-svscan/d
+ -e /goetia-shutdown/d
+ -e /goetia-rescue/d
+ }
+ forstdin -pE SERVICE
+ s6-svc -T @timeout@ -D @tmpfsdir@/@sysrundir@/service/${SERVICE}
+ }
+
+ foreground { rm -Rf -- @syslogdir@/uncaught-logs }
+ foreground { cp -Rpf -- @tmpfsdir@/@sysrundir@/log/uncaught-logs @syslogdir@/ }
+
+ foreground { chmod u+x ./stage3b }
+ foreground { echo "sending all processes the TERM signal..." }
+ foreground { kill -SIGTERM -- -1 }
+}
+foreground { touch ./down }
+chmod a-x ./stage3b
diff --git a/src/bin/user-db b/src/bin/user-db
new file mode 100755
index 0000000..8c7fb4f
--- /dev/null
+++ b/src/bin/user-db
@@ -0,0 +1,13 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+multisubstitute {
+ importas -Si USER
+ importas -Si HOME
+ importas -Si USERTREE
+}
+
+compile-db
+ ${HOME}/@usrconfdir@/${USERTREE}
+ @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/s6-rc
diff --git a/src/bin/user-init b/src/bin/user-init
new file mode 100755
index 0000000..aa24f9d
--- /dev/null
+++ b/src/bin/user-init
@@ -0,0 +1,26 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+multisubstitute {
+ importas -Si USER
+ importas -Si USERTREE
+ importas -SD default BUNDLE
+ importas -SD
+ /command:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/libexec:/usr/local/libexec
+ PATH
+}
+
+backtick HOME { homeof ${USER} }
+importas -Si HOME
+
+export PATH ${HOME}/.local/bin:${PATH}
+
+s6-envuidgid ${USER}
+
+prepare-svscan
+ ${HOME}/@usrconfdir@/${USERTREE}
+ @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}
+ ${BUNDLE}
+
+s6-svscan @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service
diff --git a/src/bin/user-ml b/src/bin/user-ml
new file mode 100755
index 0000000..60a01ab
--- /dev/null
+++ b/src/bin/user-ml
@@ -0,0 +1,33 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+multisubstitute {
+ importas -Si USER
+ importas -Si HOME
+ importas -Si USERTREE
+}
+
+define LOGSCRIPT "#!@shebangdir@/execlineb -P
+
+fdmove -c 1 2
+
+if { mkdir -p -m750 -- ${HOME}/@usrlogdir@/${USERTREE}/${NAME} }
+s6-log -bd3 @logconfig@ ${HOME}/@usrlogdir@/${USERTREE}/${NAME}"
+
+if { rm -Rf ${HOME}/@usrconfdir@/${USERTREE}/src/generated-logger }
+if { mkdir -p ${HOME}/@usrconfdir@/${USERTREE}/src/generated-logger }
+
+elglob LONGRUNS ${HOME}/@usrconfdir@/${USERTREE}/src/*/*
+forx -pE LONGRUN { ${LONGRUNS} }
+ if -x0 { eltest -f ${LONGRUN}/producer-for }
+ if -x0 -n { eltest -f ${LONGRUN}/no-ml }
+ if { echo Making the logger of ${LONGRUN} }
+ pipeline { sed -e s/-log$// -- ${LONGRUN}/producer-for }
+ withstdinas -E NAME
+ longrun-make
+ ${HOME}/@usrconfdir@/${USERTREE}/src/generated-logger
+ ${NAME}
+ log
+ ${LOGSCRIPT}
+ none
diff --git a/src/bin/user-rc b/src/bin/user-rc
new file mode 100755
index 0000000..bee9930
--- /dev/null
+++ b/src/bin/user-rc
@@ -0,0 +1,11 @@
+#!@shebangdir@/execlineb -s0
+
+# ISC license.
+
+multisubstitute {
+ importas -Si USER
+ importas -Si USERTREE
+}
+backtick -Ei HOME { homeof ${USER} }
+
+s6-rc -l @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/s6-rc ${@}
diff --git a/src/bin/user-run b/src/bin/user-run
new file mode 100755
index 0000000..e110115
--- /dev/null
+++ b/src/bin/user-run
@@ -0,0 +1,12 @@
+#!@shebangdir@/execlineb -s0
+
+# ISC license.
+
+multisubstitute {
+ importas -Si USER
+ importas -Si USERTREE
+}
+backtick -Ei HOME { homeof ${USER} }
+
+s6-sudo @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service/goetia-runner/s
+ fdmove -c 1 2 ${@}
diff --git a/src/bin/user-shutdown b/src/bin/user-shutdown
new file mode 100755
index 0000000..9376f5b
--- /dev/null
+++ b/src/bin/user-shutdown
@@ -0,0 +1,23 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+multisubstitute {
+ importas -Si USER
+ importas -Si USERTREE
+}
+backtick -Ei HOME { homeof ${USER} }
+
+if -x0 { eltest -d @tmpfsdir@/@usrrundir@/${USER}/${USERTREE} }
+
+redirfd -wnb 1 @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service/s6-svscan-log/fifo
+fdmove -c 2 1
+
+foreground {
+ foreground { echo "\nshutdown\n" }
+ s6-rc -l @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/s6-rc -v2 -b -da -t@timeout@ change
+}
+
+foreground { s6-svscanctl -t @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service }
+foreground { s6-svc -h @tmpfsdir@/@usrrundir@/${USER}/${USERTREE}/service/s6-svscan-log }
+foreground { rm -Rf @tmpfsdir@/@usrrundir@/${USER}/${USERTREE} }
diff --git a/src/bin/user-tmpfs b/src/bin/user-tmpfs
new file mode 100755
index 0000000..02deb14
--- /dev/null
+++ b/src/bin/user-tmpfs
@@ -0,0 +1,17 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+importas -Si USER
+importas -SD 64m USER_TMPFSDIR_SIZE
+s6-envuidgid ${USER}
+importas -Si UID
+importas -Si GID
+
+if { mkdir -p @tmpfsdir@/@usrrundir@/${USER} }
+
+mount
+ -t tmpfs
+ -o mode=0755,size=${USER_TMPFSDIR_SIZE},uid=${UID},gid=${GID}
+ ${USER}-tmpfs
+ @tmpfsdir@/@usrrundir@/${USER}
diff --git a/src/lib/service/system/.s6-svscan/SIGINT b/src/lib/service/system/.s6-svscan/SIGINT
new file mode 100755
index 0000000..7b00dd5
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/SIGINT
@@ -0,0 +1,5 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+system-shutdown -r
diff --git a/src/lib/service/system/.s6-svscan/SIGPWR b/src/lib/service/system/.s6-svscan/SIGPWR
new file mode 100755
index 0000000..b7e4956
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/SIGPWR
@@ -0,0 +1,5 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+system-shutdown -p
diff --git a/src/lib/service/system/.s6-svscan/SIGQUIT b/src/lib/service/system/.s6-svscan/SIGQUIT
new file mode 100755
index 0000000..4d6fd2f
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/SIGQUIT
@@ -0,0 +1,2 @@
+#!@shebangdir@/execlineb -P
+
diff --git a/src/lib/service/system/.s6-svscan/SIGTERM b/src/lib/service/system/.s6-svscan/SIGTERM
new file mode 100755
index 0000000..4d6fd2f
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/SIGTERM
@@ -0,0 +1,2 @@
+#!@shebangdir@/execlineb -P
+
diff --git a/src/lib/service/system/.s6-svscan/SIGUSR1 b/src/lib/service/system/.s6-svscan/SIGUSR1
new file mode 100755
index 0000000..b7e4956
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/SIGUSR1
@@ -0,0 +1,5 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+system-shutdown -p
diff --git a/src/lib/service/system/.s6-svscan/SIGUSR2 b/src/lib/service/system/.s6-svscan/SIGUSR2
new file mode 100755
index 0000000..cf21071
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/SIGUSR2
@@ -0,0 +1,5 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+system-shutdown -h
diff --git a/src/lib/service/system/.s6-svscan/SIGWINCH b/src/lib/service/system/.s6-svscan/SIGWINCH
new file mode 100755
index 0000000..4d6fd2f
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/SIGWINCH
@@ -0,0 +1,2 @@
+#!@shebangdir@/execlineb -P
+
diff --git a/src/lib/service/system/.s6-svscan/crash b/src/lib/service/system/.s6-svscan/crash
new file mode 100755
index 0000000..9fa8bd4
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/crash
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+redirfd -w 2 /dev/console
+fdmove -c 1 2
+
+foreground { echo "s6-svscan crashed. Rebooting." }
+
+linux-powertool -r
diff --git a/src/lib/service/system/.s6-svscan/finish b/src/lib/service/system/.s6-svscan/finish
new file mode 100755
index 0000000..fa3654c
--- /dev/null
+++ b/src/lib/service/system/.s6-svscan/finish
@@ -0,0 +1,9 @@
+#!@shebangdir@/execlineb -P
+
+
+redirfd -w 2 /dev/console
+fdmove -c 1 2
+
+foreground { echo "s6-svscan exited. Rebooting." }
+
+linux-powertool -r
diff --git a/src/lib/service/system/goetia-runner/notification-fd b/src/lib/service/system/goetia-runner/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/service/system/goetia-runner/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/service/system/goetia-runner/run b/src/lib/service/system/goetia-runner/run
new file mode 100755
index 0000000..faf8623
--- /dev/null
+++ b/src/lib/service/system/goetia-runner/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+fdmove -c 2 1
+fdmove 1 3
+
+s6-ipcserver -1 -a 0700 -c 1 -- s
+
+s6-sudod -dt30000 --
diff --git a/src/lib/service/system/s6-svscan-log-console/notification-fd b/src/lib/service/system/s6-svscan-log-console/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/service/system/s6-svscan-log-console/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/service/system/s6-svscan-log-console/run b/src/lib/service/system/s6-svscan-log-console/run
new file mode 100755
index 0000000..63d32ba
--- /dev/null
+++ b/src/lib/service/system/s6-svscan-log-console/run
@@ -0,0 +1,16 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+fdmove -c 1 2
+redirfd -a 1 /dev/console
+
+if { mkdir -p -m750 -- @tmpfsdir@/@sysrundir@/log/uncaught-logs }
+# fifo is created in prepare-svscan
+if { chown -R @loguser@:@loguser@ @tmpfsdir@/@sysrundir@/log fifo }
+
+s6-setuidgid @loguser@
+
+redirfd -rnb 0 fifo
+
+s6-log -bpd3 -- 1 @logconfig@ @tmpfsdir@/@sysrundir@/log/uncaught-logs
diff --git a/src/lib/service/system/s6-svscan-log/notification-fd b/src/lib/service/system/s6-svscan-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/service/system/s6-svscan-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/service/system/s6-svscan-log/run b/src/lib/service/system/s6-svscan-log/run
new file mode 100755
index 0000000..e8c4022
--- /dev/null
+++ b/src/lib/service/system/s6-svscan-log/run
@@ -0,0 +1,15 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+fdmove -c 1 2
+
+if { mkdir -p -m750 -- @tmpfsdir@/@sysrundir@/log/uncaught-logs }
+# fifo is created in prepare-svscan
+if { chown -R @loguser@:@loguser@ @tmpfsdir@/@sysrundir@/log fifo }
+
+s6-setuidgid @loguser@
+
+redirfd -rnb 0 fifo
+
+s6-log -bpd3 -- @logconfig@ @tmpfsdir@/@sysrundir@/log/uncaught-logs
diff --git a/src/lib/service/user/.s6-svscan/SIGTERM b/src/lib/service/user/.s6-svscan/SIGTERM
new file mode 100755
index 0000000..2098c8c
--- /dev/null
+++ b/src/lib/service/user/.s6-svscan/SIGTERM
@@ -0,0 +1,5 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+user-shutdown
diff --git a/src/lib/service/user/goetia-runner/notification-fd b/src/lib/service/user/goetia-runner/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/service/user/goetia-runner/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/service/user/goetia-runner/run b/src/lib/service/user/goetia-runner/run
new file mode 100755
index 0000000..abbc6c0
--- /dev/null
+++ b/src/lib/service/user/goetia-runner/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+fdmove -c 2 1
+fdmove 1 3
+
+s6-ipcserver -1 -a 0700 -c 1 -- s
+
+s6-sudod -d -t30000 --
diff --git a/src/lib/service/user/s6-svscan-log/notification-fd b/src/lib/service/user/s6-svscan-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/service/user/s6-svscan-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/service/user/s6-svscan-log/run b/src/lib/service/user/s6-svscan-log/run
new file mode 100755
index 0000000..2c40369
--- /dev/null
+++ b/src/lib/service/user/s6-svscan-log/run
@@ -0,0 +1,17 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+
+fdmove -c 1 2
+
+multisubstitute {
+ importas -Si USER
+ importas -Si HOME
+ importas -Si USERTREE
+}
+
+if { mkdir -p -m 700 -- ${HOME}/@usrlogdir@/${USERTREE}/uncaught-logs }
+
+redirfd -rnb 0 fifo
+
+s6-log -bpd3 -- @logconfig@ ${HOME}/@usrlogdir@/${USERTREE}/uncaught-logs
diff --git a/src/lib/source/system/admin/greetd-srv/dependencies.d/mount-run b/src/lib/source/system/admin/greetd-srv/dependencies.d/mount-run
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/admin/greetd-srv/dependencies.d/mount-run
diff --git a/src/lib/source/system/admin/greetd-srv/dependencies.d/seat-manager b/src/lib/source/system/admin/greetd-srv/dependencies.d/seat-manager
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/admin/greetd-srv/dependencies.d/seat-manager
diff --git a/src/lib/source/system/admin/greetd-srv/dependencies.d/udev b/src/lib/source/system/admin/greetd-srv/dependencies.d/udev
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/admin/greetd-srv/dependencies.d/udev
diff --git a/src/lib/source/system/admin/greetd-srv/producer-for b/src/lib/source/system/admin/greetd-srv/producer-for
new file mode 100644
index 0000000..2c128e2
--- /dev/null
+++ b/src/lib/source/system/admin/greetd-srv/producer-for
@@ -0,0 +1 @@
+greetd-log
diff --git a/src/lib/source/system/admin/greetd-srv/run b/src/lib/source/system/admin/greetd-srv/run
new file mode 100644
index 0000000..e5411fc
--- /dev/null
+++ b/src/lib/source/system/admin/greetd-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://sr.ht/~kennylevinsen/greetd/
+
+fdmove -c 2 1
+
+greetd
diff --git a/src/lib/source/system/admin/greetd-srv/type b/src/lib/source/system/admin/greetd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/admin/greetd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/admin/seatd-srv/dependencies.d/mount-dev b/src/lib/source/system/admin/seatd-srv/dependencies.d/mount-dev
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/admin/seatd-srv/dependencies.d/mount-dev
diff --git a/src/lib/source/system/admin/seatd-srv/dependencies.d/mount-run b/src/lib/source/system/admin/seatd-srv/dependencies.d/mount-run
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/admin/seatd-srv/dependencies.d/mount-run
diff --git a/src/lib/source/system/admin/seatd-srv/notification-fd b/src/lib/source/system/admin/seatd-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/system/admin/seatd-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/system/admin/seatd-srv/producer-for b/src/lib/source/system/admin/seatd-srv/producer-for
new file mode 100644
index 0000000..c2c15c5
--- /dev/null
+++ b/src/lib/source/system/admin/seatd-srv/producer-for
@@ -0,0 +1 @@
+seatd-log
diff --git a/src/lib/source/system/admin/seatd-srv/run b/src/lib/source/system/admin/seatd-srv/run
new file mode 100644
index 0000000..a1101bf
--- /dev/null
+++ b/src/lib/source/system/admin/seatd-srv/run
@@ -0,0 +1,13 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://sr.ht/~kennylevinsen/seatd/
+
+fdmove -c 2 1
+
+if { s6-svperms -g video -E video . }
+
+seatd
+ -n3
+ -u root
+ -g seat
diff --git a/src/lib/source/system/admin/seatd-srv/type b/src/lib/source/system/admin/seatd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/admin/seatd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/bundle/default/type b/src/lib/source/system/bundle/default/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/system/bundle/default/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/system/bundle/firewall/type b/src/lib/source/system/bundle/firewall/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/system/bundle/firewall/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/system/bundle/mount/type b/src/lib/source/system/bundle/mount/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/system/bundle/mount/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/system/bundle/networking/type b/src/lib/source/system/bundle/networking/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/system/bundle/networking/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/system/bundle/seat-manager/type b/src/lib/source/system/bundle/seat-manager/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/system/bundle/seat-manager/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/system/bundle/system-bus/type b/src/lib/source/system/bundle/system-bus/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/system/bundle/system-bus/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/system/bundle/udev/type b/src/lib/source/system/bundle/udev/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/system/bundle/udev/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/system/cron/dcron-srv/producer-for b/src/lib/source/system/cron/dcron-srv/producer-for
new file mode 100644
index 0000000..742632d
--- /dev/null
+++ b/src/lib/source/system/cron/dcron-srv/producer-for
@@ -0,0 +1 @@
+dcron-log
diff --git a/src/lib/source/system/cron/dcron-srv/run b/src/lib/source/system/cron/dcron-srv/run
new file mode 100644
index 0000000..cd8101d
--- /dev/null
+++ b/src/lib/source/system/cron/dcron-srv/run
@@ -0,0 +1,13 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# http://www.jimpryor.net/linux/dcron.html
+
+# Will only work with the new fork (version 4.6 or newer)
+# https://github.com/ptchinster/dcron
+# See issue https://github.com/dubiousjim/dcron/issues/13
+
+fdmove -c 2 1
+
+crond
+ -f
diff --git a/src/lib/source/system/cron/dcron-srv/type b/src/lib/source/system/cron/dcron-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/cron/dcron-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/db/mariadbd-srv/producer-for b/src/lib/source/system/db/mariadbd-srv/producer-for
new file mode 100644
index 0000000..4e3f057
--- /dev/null
+++ b/src/lib/source/system/db/mariadbd-srv/producer-for
@@ -0,0 +1 @@
+mariadbd-log
diff --git a/src/lib/source/system/db/mariadbd-srv/run b/src/lib/source/system/db/mariadbd-srv/run
new file mode 100644
index 0000000..25408cf
--- /dev/null
+++ b/src/lib/source/system/db/mariadbd-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://mariadb.org/
+
+fdmove -c 2 1
+
+mariadbd
diff --git a/src/lib/source/system/db/mariadbd-srv/type b/src/lib/source/system/db/mariadbd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/db/mariadbd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/db/mysqld-srv/producer-for b/src/lib/source/system/db/mysqld-srv/producer-for
new file mode 100644
index 0000000..031e008
--- /dev/null
+++ b/src/lib/source/system/db/mysqld-srv/producer-for
@@ -0,0 +1 @@
+mysqld-log
diff --git a/src/lib/source/system/db/mysqld-srv/run b/src/lib/source/system/db/mysqld-srv/run
new file mode 100644
index 0000000..b3fe24f
--- /dev/null
+++ b/src/lib/source/system/db/mysqld-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.mysql.com/
+
+fdmove -c 2 1
+
+mysqld
diff --git a/src/lib/source/system/db/mysqld-srv/type b/src/lib/source/system/db/mysqld-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/db/mysqld-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/net/dhcpcd-srv/dependencies.d/udev b/src/lib/source/system/net/dhcpcd-srv/dependencies.d/udev
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/net/dhcpcd-srv/dependencies.d/udev
diff --git a/src/lib/source/system/net/dhcpcd-srv/producer-for b/src/lib/source/system/net/dhcpcd-srv/producer-for
new file mode 100644
index 0000000..a8b3dd1
--- /dev/null
+++ b/src/lib/source/system/net/dhcpcd-srv/producer-for
@@ -0,0 +1 @@
+dhcpcd-log
diff --git a/src/lib/source/system/net/dhcpcd-srv/run b/src/lib/source/system/net/dhcpcd-srv/run
new file mode 100644
index 0000000..1da5b0c
--- /dev/null
+++ b/src/lib/source/system/net/dhcpcd-srv/run
@@ -0,0 +1,9 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://roy.marples.name/projects/dhcpcd
+
+fdmove -c 2 1
+
+dhcpcd
+ -B
diff --git a/src/lib/source/system/net/dhcpcd-srv/type b/src/lib/source/system/net/dhcpcd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/net/dhcpcd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/net/wpa_supplicant-srv/dependencies.d/system-bus b/src/lib/source/system/net/wpa_supplicant-srv/dependencies.d/system-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/net/wpa_supplicant-srv/dependencies.d/system-bus
diff --git a/src/lib/source/system/net/wpa_supplicant-srv/producer-for b/src/lib/source/system/net/wpa_supplicant-srv/producer-for
new file mode 100644
index 0000000..17413d8
--- /dev/null
+++ b/src/lib/source/system/net/wpa_supplicant-srv/producer-for
@@ -0,0 +1 @@
+wpa_supplicant-log
diff --git a/src/lib/source/system/net/wpa_supplicant-srv/run b/src/lib/source/system/net/wpa_supplicant-srv/run
new file mode 100644
index 0000000..5585590
--- /dev/null
+++ b/src/lib/source/system/net/wpa_supplicant-srv/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://w1.fi/wpa_supplicant/
+
+fdmove -c 2 1
+
+wpa_supplicant
+ -c /etc/wpa_supplicant/wpa_supplicant.conf
+ -g /run/wpa_supplicant
diff --git a/src/lib/source/system/net/wpa_supplicant-srv/type b/src/lib/source/system/net/wpa_supplicant-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/net/wpa_supplicant-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/ntp/chronyd-srv/dependencies.d/networking b/src/lib/source/system/ntp/chronyd-srv/dependencies.d/networking
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/ntp/chronyd-srv/dependencies.d/networking
diff --git a/src/lib/source/system/ntp/chronyd-srv/producer-for b/src/lib/source/system/ntp/chronyd-srv/producer-for
new file mode 100644
index 0000000..d1c93e7
--- /dev/null
+++ b/src/lib/source/system/ntp/chronyd-srv/producer-for
@@ -0,0 +1 @@
+chronyd-log
diff --git a/src/lib/source/system/ntp/chronyd-srv/run b/src/lib/source/system/ntp/chronyd-srv/run
new file mode 100644
index 0000000..5991339
--- /dev/null
+++ b/src/lib/source/system/ntp/chronyd-srv/run
@@ -0,0 +1,12 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://chrony-project.org/
+
+fdmove -c 2 1
+
+chronyd
+ -d
+ -u ntp
+ -f /etc/chrony/chrony.conf
+ -F 2
diff --git a/src/lib/source/system/ntp/chronyd-srv/type b/src/lib/source/system/ntp/chronyd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/ntp/chronyd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/other/cupsd-srv/producer-for b/src/lib/source/system/other/cupsd-srv/producer-for
new file mode 100644
index 0000000..7a53450
--- /dev/null
+++ b/src/lib/source/system/other/cupsd-srv/producer-for
@@ -0,0 +1 @@
+cupsd-log
diff --git a/src/lib/source/system/other/cupsd-srv/run b/src/lib/source/system/other/cupsd-srv/run
new file mode 100644
index 0000000..f9d84cd
--- /dev/null
+++ b/src/lib/source/system/other/cupsd-srv/run
@@ -0,0 +1,11 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.cups.org/
+
+fdmove -c 2 1
+
+cupsd
+ -f
+ -c /etc/cups/cupsd.conf
+ -s /etc/cups/cups-files.conf
diff --git a/src/lib/source/system/other/cupsd-srv/type b/src/lib/source/system/other/cupsd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/other/cupsd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/other/dbus-daemon-srv/notification-fd b/src/lib/source/system/other/dbus-daemon-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/system/other/dbus-daemon-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/system/other/dbus-daemon-srv/producer-for b/src/lib/source/system/other/dbus-daemon-srv/producer-for
new file mode 100644
index 0000000..f967dcb
--- /dev/null
+++ b/src/lib/source/system/other/dbus-daemon-srv/producer-for
@@ -0,0 +1 @@
+dbus-daemon-log
diff --git a/src/lib/source/system/other/dbus-daemon-srv/run b/src/lib/source/system/other/dbus-daemon-srv/run
new file mode 100644
index 0000000..73c44b6
--- /dev/null
+++ b/src/lib/source/system/other/dbus-daemon-srv/run
@@ -0,0 +1,15 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.freedesktop.org/wiki/Software/dbus/
+
+fdmove -c 2 1
+
+foreground { dbus-uuidgen --ensure=/etc/machine-id }
+foreground { install -m755 -g 81 -o 81 -d /run/dbus }
+
+dbus-daemon
+ --system
+ --nofork
+ --nopidfile
+ --print-pid=3
diff --git a/src/lib/source/system/other/dbus-daemon-srv/type b/src/lib/source/system/other/dbus-daemon-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/other/dbus-daemon-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/other/sshd-srv/dependencies.d/networking b/src/lib/source/system/other/sshd-srv/dependencies.d/networking
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/other/sshd-srv/dependencies.d/networking
diff --git a/src/lib/source/system/other/sshd-srv/producer-for b/src/lib/source/system/other/sshd-srv/producer-for
new file mode 100644
index 0000000..b8ef8c5
--- /dev/null
+++ b/src/lib/source/system/other/sshd-srv/producer-for
@@ -0,0 +1 @@
+sshd-log
diff --git a/src/lib/source/system/other/sshd-srv/run b/src/lib/source/system/other/sshd-srv/run
new file mode 100644
index 0000000..6282b83
--- /dev/null
+++ b/src/lib/source/system/other/sshd-srv/run
@@ -0,0 +1,17 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.openssh.com/
+
+fdmove -c 2 1
+
+foreground { /bin/ssh-keygen -A }
+
+ifelse -n { /bin/sshd -t }
+{
+ exit 125
+}
+
+/bin/sshd
+ -D
+ -e
diff --git a/src/lib/source/system/other/sshd-srv/type b/src/lib/source/system/other/sshd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/other/sshd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/web/gate-srv/dependencies.d/udev b/src/lib/source/system/web/gate-srv/dependencies.d/udev
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/web/gate-srv/dependencies.d/udev
diff --git a/src/lib/source/system/web/gate-srv/producer-for b/src/lib/source/system/web/gate-srv/producer-for
new file mode 100644
index 0000000..7679182
--- /dev/null
+++ b/src/lib/source/system/web/gate-srv/producer-for
@@ -0,0 +1 @@
+gate-log
diff --git a/src/lib/source/system/web/gate-srv/run b/src/lib/source/system/web/gate-srv/run
new file mode 100644
index 0000000..af410c2
--- /dev/null
+++ b/src/lib/source/system/web/gate-srv/run
@@ -0,0 +1,9 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://gate.minekube.com/
+
+fdmove -c 2 1
+
+gate
+ -c /etc/gate.yml
diff --git a/src/lib/source/system/web/gate-srv/type b/src/lib/source/system/web/gate-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/web/gate-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/web/nginx-srv/producer-for b/src/lib/source/system/web/nginx-srv/producer-for
new file mode 100644
index 0000000..307d740
--- /dev/null
+++ b/src/lib/source/system/web/nginx-srv/producer-for
@@ -0,0 +1 @@
+nginx-log
diff --git a/src/lib/source/system/web/nginx-srv/run b/src/lib/source/system/web/nginx-srv/run
new file mode 100644
index 0000000..6336aa7
--- /dev/null
+++ b/src/lib/source/system/web/nginx-srv/run
@@ -0,0 +1,9 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://nginx.org/
+
+fdmove -c 2 1
+
+nginx
+ -g "daemon off;error_log stderr info;user nginx;"
diff --git a/src/lib/source/system/web/nginx-srv/type b/src/lib/source/system/web/nginx-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/web/nginx-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/system/web/radicale-srv/dependencies.d/mount b/src/lib/source/system/web/radicale-srv/dependencies.d/mount
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/system/web/radicale-srv/dependencies.d/mount
diff --git a/src/lib/source/system/web/radicale-srv/producer-for b/src/lib/source/system/web/radicale-srv/producer-for
new file mode 100644
index 0000000..ed237cc
--- /dev/null
+++ b/src/lib/source/system/web/radicale-srv/producer-for
@@ -0,0 +1 @@
+radicale-log
diff --git a/src/lib/source/system/web/radicale-srv/run b/src/lib/source/system/web/radicale-srv/run
new file mode 100644
index 0000000..f2005d5
--- /dev/null
+++ b/src/lib/source/system/web/radicale-srv/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://radicale.org/v3.html
+
+fdmove -c 2 1
+
+s6-setuidgid radicale
+
+radicale
diff --git a/src/lib/source/system/web/radicale-srv/type b/src/lib/source/system/web/radicale-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/system/web/radicale-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/pipewire
diff --git a/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/dependencies.d/xdg-runtime-dir
diff --git a/src/lib/source/user/audio-daemon/pipewire-pulse-srv/producer-for b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/producer-for
new file mode 100644
index 0000000..d7dcdf1
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/producer-for
@@ -0,0 +1 @@
+pipewire-pulse-log
diff --git a/src/lib/source/user/audio-daemon/pipewire-pulse-srv/run b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/run
new file mode 100644
index 0000000..c8dec99
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.pipewire.org/
+
+fdmove -c 2 1
+
+export PIPEWIRE_PULSE_NOTIFICATION_FD 3
+
+pipewire-pulse
diff --git a/src/lib/source/user/audio-daemon/pipewire-pulse-srv/type b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-pulse-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus b/src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir b/src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-srv/dependencies.d/xdg-runtime-dir
diff --git a/src/lib/source/user/audio-daemon/pipewire-srv/notification-fd b/src/lib/source/user/audio-daemon/pipewire-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/audio-daemon/pipewire-srv/producer-for b/src/lib/source/user/audio-daemon/pipewire-srv/producer-for
new file mode 100644
index 0000000..ea63659
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-srv/producer-for
@@ -0,0 +1 @@
+pipewire-log
diff --git a/src/lib/source/user/audio-daemon/pipewire-srv/run b/src/lib/source/user/audio-daemon/pipewire-srv/run
new file mode 100644
index 0000000..c461475
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-srv/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.pipewire.org/
+
+fdmove -c 2 1
+
+export PIPEWIRE_NOTIFICATION_FD 3
+
+pipewire
diff --git a/src/lib/source/user/audio-daemon/pipewire-srv/type b/src/lib/source/user/audio-daemon/pipewire-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/pipewire-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire b/src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/pipewire
diff --git a/src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus b/src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/wireplumber-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/audio-daemon/wireplumber-srv/producer-for b/src/lib/source/user/audio-daemon/wireplumber-srv/producer-for
new file mode 100644
index 0000000..e9cd359
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/wireplumber-srv/producer-for
@@ -0,0 +1 @@
+wireplumber-log
diff --git a/src/lib/source/user/audio-daemon/wireplumber-srv/run b/src/lib/source/user/audio-daemon/wireplumber-srv/run
new file mode 100644
index 0000000..dfeca2b
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/wireplumber-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://pipewire.pages.freedesktop.org/wireplumber/
+
+fdmove -c 2 1
+
+wireplumber
diff --git a/src/lib/source/user/audio-daemon/wireplumber-srv/type b/src/lib/source/user/audio-daemon/wireplumber-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/audio-daemon/wireplumber-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/bundle/audio/type b/src/lib/source/user/bundle/audio/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/user/bundle/audio/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/user/bundle/compositor/type b/src/lib/source/user/bundle/compositor/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/user/bundle/compositor/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/user/bundle/default/type b/src/lib/source/user/bundle/default/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/user/bundle/default/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/user/bundle/session-bus/type b/src/lib/source/user/bundle/session-bus/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/src/lib/source/user/bundle/session-bus/type
@@ -0,0 +1 @@
+bundle
diff --git a/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/producer-for b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/producer-for
new file mode 100644
index 0000000..fd3c6ac
--- /dev/null
+++ b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/producer-for
@@ -0,0 +1 @@
+wl-clip-persist-log
diff --git a/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/run b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/run
new file mode 100644
index 0000000..ef86496
--- /dev/null
+++ b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/run
@@ -0,0 +1,9 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/Linus789/wl-clip-persist
+
+fdmove -c 2 1
+
+wl-clip-persist
+ --clipboard both
diff --git a/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/type b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/clipboard-manager/wl-clip-persist-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir b/src/lib/source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/compositor/Hyprland-srv/dependencies.d/xdg-runtime-dir
diff --git a/src/lib/source/user/compositor/Hyprland-srv/finish b/src/lib/source/user/compositor/Hyprland-srv/finish
new file mode 100644
index 0000000..f0a7d51
--- /dev/null
+++ b/src/lib/source/user/compositor/Hyprland-srv/finish
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://hyprland.org/
+
+background { user-rc stop Hyprland }
+
+exit 125
diff --git a/src/lib/source/user/compositor/Hyprland-srv/producer-for b/src/lib/source/user/compositor/Hyprland-srv/producer-for
new file mode 100644
index 0000000..ed2fbff
--- /dev/null
+++ b/src/lib/source/user/compositor/Hyprland-srv/producer-for
@@ -0,0 +1 @@
+Hyprland-log
diff --git a/src/lib/source/user/compositor/Hyprland-srv/run b/src/lib/source/user/compositor/Hyprland-srv/run
new file mode 100644
index 0000000..eb20b5e
--- /dev/null
+++ b/src/lib/source/user/compositor/Hyprland-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://hyprland.org/
+
+fdmove -c 2 1
+
+Hyprland
diff --git a/src/lib/source/user/compositor/Hyprland-srv/type b/src/lib/source/user/compositor/Hyprland-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/compositor/Hyprland-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/desktop-widget/waybar-srv/dependencies.d/compositor b/src/lib/source/user/desktop-widget/waybar-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/waybar-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/desktop-widget/waybar-srv/notification-fd b/src/lib/source/user/desktop-widget/waybar-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/waybar-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/desktop-widget/waybar-srv/producer-for b/src/lib/source/user/desktop-widget/waybar-srv/producer-for
new file mode 100644
index 0000000..24b4d63
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/waybar-srv/producer-for
@@ -0,0 +1 @@
+waybar-log
diff --git a/src/lib/source/user/desktop-widget/waybar-srv/run b/src/lib/source/user/desktop-widget/waybar-srv/run
new file mode 100644
index 0000000..603a400
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/waybar-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/Alexays/Waybar
+
+fdmove -c 2 1
+
+waybar
diff --git a/src/lib/source/user/desktop-widget/waybar-srv/type b/src/lib/source/user/desktop-widget/waybar-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/waybar-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/desktop-widget/yambar-srv/dependencies.d/compositor b/src/lib/source/user/desktop-widget/yambar-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/yambar-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/desktop-widget/yambar-srv/notification-fd b/src/lib/source/user/desktop-widget/yambar-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/yambar-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/desktop-widget/yambar-srv/producer-for b/src/lib/source/user/desktop-widget/yambar-srv/producer-for
new file mode 100644
index 0000000..34f9cee
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/yambar-srv/producer-for
@@ -0,0 +1 @@
+yambar-log
diff --git a/src/lib/source/user/desktop-widget/yambar-srv/run b/src/lib/source/user/desktop-widget/yambar-srv/run
new file mode 100644
index 0000000..a788f80
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/yambar-srv/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://codeberg.org/dnkl/yambar
+
+fdmove -c 2 1
+
+yambar
+ -s
+ -p3
diff --git a/src/lib/source/user/desktop-widget/yambar-srv/type b/src/lib/source/user/desktop-widget/yambar-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/desktop-widget/yambar-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/compositor b/src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/session-bus b/src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/dunst-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/notification-daemon/dunst-srv/notification-fd b/src/lib/source/user/notification-daemon/dunst-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/dunst-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/notification-daemon/dunst-srv/producer-for b/src/lib/source/user/notification-daemon/dunst-srv/producer-for
new file mode 100644
index 0000000..a55f49b
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/dunst-srv/producer-for
@@ -0,0 +1 @@
+dunst-log
diff --git a/src/lib/source/user/notification-daemon/dunst-srv/run b/src/lib/source/user/notification-daemon/dunst-srv/run
new file mode 100644
index 0000000..cad04b2
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/dunst-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://dunst-project.org/
+
+fdmove -c 2 1
+
+dunst
diff --git a/src/lib/source/user/notification-daemon/dunst-srv/type b/src/lib/source/user/notification-daemon/dunst-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/dunst-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/compositor b/src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/session-bus b/src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/fnott-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/notification-daemon/fnott-srv/notification-fd b/src/lib/source/user/notification-daemon/fnott-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/fnott-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/notification-daemon/fnott-srv/producer-for b/src/lib/source/user/notification-daemon/fnott-srv/producer-for
new file mode 100644
index 0000000..71dd61e
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/fnott-srv/producer-for
@@ -0,0 +1 @@
+fnott-log
diff --git a/src/lib/source/user/notification-daemon/fnott-srv/run b/src/lib/source/user/notification-daemon/fnott-srv/run
new file mode 100644
index 0000000..271f061
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/fnott-srv/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://codeberg.org/dnkl/fnott
+
+fdmove -c 2 1
+
+fnott
+ -s
+ -p3
diff --git a/src/lib/source/user/notification-daemon/fnott-srv/type b/src/lib/source/user/notification-daemon/fnott-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/fnott-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/notification-daemon/mako-srv/dependencies.d/compositor b/src/lib/source/user/notification-daemon/mako-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/mako-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/notification-daemon/mako-srv/dependencies.d/session-bus b/src/lib/source/user/notification-daemon/mako-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/mako-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/notification-daemon/mako-srv/notification-fd b/src/lib/source/user/notification-daemon/mako-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/mako-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/notification-daemon/mako-srv/producer-for b/src/lib/source/user/notification-daemon/mako-srv/producer-for
new file mode 100644
index 0000000..9b15e90
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/mako-srv/producer-for
@@ -0,0 +1 @@
+mako-log
diff --git a/src/lib/source/user/notification-daemon/mako-srv/run b/src/lib/source/user/notification-daemon/mako-srv/run
new file mode 100644
index 0000000..d7a8269
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/mako-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/emersion/mako
+
+fdmove -c 2 1
+
+mako
diff --git a/src/lib/source/user/notification-daemon/mako-srv/type b/src/lib/source/user/notification-daemon/mako-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/mako-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/compositor b/src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/session-bus b/src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/swaync-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/notification-daemon/swaync-srv/notification-fd b/src/lib/source/user/notification-daemon/swaync-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/swaync-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/notification-daemon/swaync-srv/producer-for b/src/lib/source/user/notification-daemon/swaync-srv/producer-for
new file mode 100644
index 0000000..7ab5ae4
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/swaync-srv/producer-for
@@ -0,0 +1 @@
+swaync-log
diff --git a/src/lib/source/user/notification-daemon/swaync-srv/run b/src/lib/source/user/notification-daemon/swaync-srv/run
new file mode 100644
index 0000000..c5bfbe9
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/swaync-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/ErikReider/SwayNotificationCenter
+
+fdmove -c 2 1
+
+swaync
diff --git a/src/lib/source/user/notification-daemon/swaync-srv/type b/src/lib/source/user/notification-daemon/swaync-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/notification-daemon/swaync-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus b/src/lib/source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/other/at-spi-bus-launcher-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/other/at-spi-bus-launcher-srv/producer-for b/src/lib/source/user/other/at-spi-bus-launcher-srv/producer-for
new file mode 100644
index 0000000..ac90fc5
--- /dev/null
+++ b/src/lib/source/user/other/at-spi-bus-launcher-srv/producer-for
@@ -0,0 +1 @@
+at-spi-bus-launcher-log
diff --git a/src/lib/source/user/other/at-spi-bus-launcher-srv/run b/src/lib/source/user/other/at-spi-bus-launcher-srv/run
new file mode 100644
index 0000000..57f4b9c
--- /dev/null
+++ b/src/lib/source/user/other/at-spi-bus-launcher-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/main/bus/README.md
+
+fdmove -c 2 1
+
+at-spi-bus-launcher
diff --git a/src/lib/source/user/other/at-spi-bus-launcher-srv/type b/src/lib/source/user/other/at-spi-bus-launcher-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/other/at-spi-bus-launcher-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/other/at-spi2-registryd-srv/producer-for b/src/lib/source/user/other/at-spi2-registryd-srv/producer-for
new file mode 100644
index 0000000..dbdc009
--- /dev/null
+++ b/src/lib/source/user/other/at-spi2-registryd-srv/producer-for
@@ -0,0 +1 @@
+at-spi2-registryd-log
diff --git a/src/lib/source/user/other/at-spi2-registryd-srv/run b/src/lib/source/user/other/at-spi2-registryd-srv/run
new file mode 100644
index 0000000..7a30a71
--- /dev/null
+++ b/src/lib/source/user/other/at-spi2-registryd-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://gitlab.gnome.org/GNOME/at-spi2-core
+
+fdmove -c 2 1
+
+at-spi2-registryd
diff --git a/src/lib/source/user/other/at-spi2-registryd-srv/type b/src/lib/source/user/other/at-spi2-registryd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/other/at-spi2-registryd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir b/src/lib/source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/other/dbus-daemon-srv/dependencies.d/xdg-runtime-dir
diff --git a/src/lib/source/user/other/dbus-daemon-srv/notification-fd b/src/lib/source/user/other/dbus-daemon-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/other/dbus-daemon-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/other/dbus-daemon-srv/producer-for b/src/lib/source/user/other/dbus-daemon-srv/producer-for
new file mode 100644
index 0000000..f967dcb
--- /dev/null
+++ b/src/lib/source/user/other/dbus-daemon-srv/producer-for
@@ -0,0 +1 @@
+dbus-daemon-log
diff --git a/src/lib/source/user/other/dbus-daemon-srv/run b/src/lib/source/user/other/dbus-daemon-srv/run
new file mode 100644
index 0000000..df3d801
--- /dev/null
+++ b/src/lib/source/user/other/dbus-daemon-srv/run
@@ -0,0 +1,16 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.freedesktop.org/wiki/Software/dbus/
+
+fdmove -c 2 1
+
+importas -Si DBUS_SESSION_BUS_ADDRESS
+
+dbus-daemon
+ --session
+ --nofork
+ --nopidfile
+ --nosyslog
+ --address=${DBUS_SESSION_BUS_ADDRESS}
+ --print-pid=3
diff --git a/src/lib/source/user/other/dbus-daemon-srv/type b/src/lib/source/user/other/dbus-daemon-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/other/dbus-daemon-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/other/dconf-service-srv/producer-for b/src/lib/source/user/other/dconf-service-srv/producer-for
new file mode 100644
index 0000000..6afcfa9
--- /dev/null
+++ b/src/lib/source/user/other/dconf-service-srv/producer-for
@@ -0,0 +1 @@
+dconf-service-log
diff --git a/src/lib/source/user/other/dconf-service-srv/run b/src/lib/source/user/other/dconf-service-srv/run
new file mode 100644
index 0000000..a3a106d
--- /dev/null
+++ b/src/lib/source/user/other/dconf-service-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://gitlab.gnome.org/GNOME/dconf/
+
+fdmove -c 2 1
+
+dconf-service
diff --git a/src/lib/source/user/other/dconf-service-srv/type b/src/lib/source/user/other/dconf-service-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/other/dconf-service-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/other/foot-srv/dependencies.d/compositor b/src/lib/source/user/other/foot-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/other/foot-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/other/foot-srv/notification-fd b/src/lib/source/user/other/foot-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/src/lib/source/user/other/foot-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/src/lib/source/user/other/foot-srv/producer-for b/src/lib/source/user/other/foot-srv/producer-for
new file mode 100644
index 0000000..7830a7f
--- /dev/null
+++ b/src/lib/source/user/other/foot-srv/producer-for
@@ -0,0 +1 @@
+foot-log
diff --git a/src/lib/source/user/other/foot-srv/run b/src/lib/source/user/other/foot-srv/run
new file mode 100644
index 0000000..83f3193
--- /dev/null
+++ b/src/lib/source/user/other/foot-srv/run
@@ -0,0 +1,11 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://codeberg.org/dnkl/foot
+
+fdmove -c 2 1
+
+foot
+ -S
+ -s
+ -p3
diff --git a/src/lib/source/user/other/foot-srv/type b/src/lib/source/user/other/foot-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/other/foot-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/other/mpd-srv/dependencies.d/audio b/src/lib/source/user/other/mpd-srv/dependencies.d/audio
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/other/mpd-srv/dependencies.d/audio
diff --git a/src/lib/source/user/other/mpd-srv/producer-for b/src/lib/source/user/other/mpd-srv/producer-for
new file mode 100644
index 0000000..a7aaae5
--- /dev/null
+++ b/src/lib/source/user/other/mpd-srv/producer-for
@@ -0,0 +1 @@
+mpd-log
diff --git a/src/lib/source/user/other/mpd-srv/run b/src/lib/source/user/other/mpd-srv/run
new file mode 100644
index 0000000..299a956
--- /dev/null
+++ b/src/lib/source/user/other/mpd-srv/run
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://www.musicpd.org/
+
+fdmove -c 2 1
+
+mpd
+ --no-daemon
+ --stderr
diff --git a/src/lib/source/user/other/mpd-srv/type b/src/lib/source/user/other/mpd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/other/mpd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/producer-for b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/producer-for
new file mode 100644
index 0000000..7cf9215
--- /dev/null
+++ b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/producer-for
@@ -0,0 +1 @@
+hyprpaper-log
diff --git a/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/run b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/run
new file mode 100644
index 0000000..9362ce5
--- /dev/null
+++ b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/hyprwm/hyprpaper
+
+fdmove -c 2 1
+
+hyprpaper
diff --git a/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/type b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/wallpaper-daemon/hyprpaper-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for
new file mode 100644
index 0000000..e9d5da6
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/producer-for
@@ -0,0 +1 @@
+xdg-desktop-portal-hyprland-log
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/run b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/run
new file mode 100644
index 0000000..0bb465c
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://wiki.hyprland.org/Hypr-Ecosystem/xdg-desktop-portal-hyprland/
+
+fdmove -c 2 1
+
+xdg-desktop-portal-hyprland
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/type b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-hyprland-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor b/src/lib/source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-srv/dependencies.d/compositor
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-srv/producer-for b/src/lib/source/user/xdg/xdg-desktop-portal-srv/producer-for
new file mode 100644
index 0000000..67fad61
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-srv/producer-for
@@ -0,0 +1 @@
+xdg-desktop-portal-log
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-srv/run b/src/lib/source/user/xdg/xdg-desktop-portal-srv/run
new file mode 100644
index 0000000..39ddd02
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/flatpak/xdg-desktop-portal
+
+fdmove -c 2 1
+
+xdg-desktop-portal
diff --git a/src/lib/source/user/xdg/xdg-desktop-portal-srv/type b/src/lib/source/user/xdg/xdg-desktop-portal-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-desktop-portal-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus b/src/lib/source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-document-portal-srv/dependencies.d/session-bus
diff --git a/src/lib/source/user/xdg/xdg-document-portal-srv/producer-for b/src/lib/source/user/xdg/xdg-document-portal-srv/producer-for
new file mode 100644
index 0000000..a16df5d
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-document-portal-srv/producer-for
@@ -0,0 +1 @@
+xdg-document-portal-log
diff --git a/src/lib/source/user/xdg/xdg-document-portal-srv/run b/src/lib/source/user/xdg/xdg-document-portal-srv/run
new file mode 100644
index 0000000..60196c5
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-document-portal-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/flatpak/xdg-desktop-portal
+
+fdmove -c 2 1
+
+xdg-document-portal
diff --git a/src/lib/source/user/xdg/xdg-document-portal-srv/type b/src/lib/source/user/xdg/xdg-document-portal-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-document-portal-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/xdg/xdg-permission-store-srv/producer-for b/src/lib/source/user/xdg/xdg-permission-store-srv/producer-for
new file mode 100644
index 0000000..62ad397
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-permission-store-srv/producer-for
@@ -0,0 +1 @@
+xdg-permission-store-log
diff --git a/src/lib/source/user/xdg/xdg-permission-store-srv/run b/src/lib/source/user/xdg/xdg-permission-store-srv/run
new file mode 100644
index 0000000..2175f63
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-permission-store-srv/run
@@ -0,0 +1,8 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://github.com/flatpak/xdg-desktop-portal
+
+fdmove -c 2 1
+
+xdg-permission-store
diff --git a/src/lib/source/user/xdg/xdg-permission-store-srv/type b/src/lib/source/user/xdg/xdg-permission-store-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-permission-store-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/src/lib/source/user/xdg/xdg-runtime-dir/down b/src/lib/source/user/xdg/xdg-runtime-dir/down
new file mode 100644
index 0000000..6a12661
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-runtime-dir/down
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://specifications.freedesktop.org/basedir-spec/latest/
+
+fdmove -c 2 1
+
+importas -Si XDG_RUNTIME_DIR
+
+rm -Rf ${XDG_RUNTIME_DIR}
diff --git a/src/lib/source/user/xdg/xdg-runtime-dir/type b/src/lib/source/user/xdg/xdg-runtime-dir/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-runtime-dir/type
@@ -0,0 +1 @@
+oneshot
diff --git a/src/lib/source/user/xdg/xdg-runtime-dir/up b/src/lib/source/user/xdg/xdg-runtime-dir/up
new file mode 100644
index 0000000..518e994
--- /dev/null
+++ b/src/lib/source/user/xdg/xdg-runtime-dir/up
@@ -0,0 +1,10 @@
+#!@shebangdir@/execlineb -P
+
+# ISC license.
+# https://specifications.freedesktop.org/basedir-spec/latest/
+
+fdmove -c 2 1
+
+importas -Si XDG_RUNTIME_DIR
+
+if { mkdir -p -m700 -- ${XDG_RUNTIME_DIR} }
diff --git a/tools/gen-deps.sh b/tools/gen-deps.sh
new file mode 100755
index 0000000..fafb347
--- /dev/null
+++ b/tools/gen-deps.sh
@@ -0,0 +1,35 @@
+#!/bin/sh -e
+
+. package/info
+
+echo '#'
+echo '# This file has been generated by tools/gen-deps.sh'
+echo '#'
+echo
+
+if test -d src/bin
+then
+ cd src/bin
+ for FILE in $(find * -type f 2> /dev/null); do
+ echo "${FILE}: src/bin/${FILE}"
+ echo "\$(DESTDIR)\$(bindir)/${FILE}: ${FILE}"
+ done
+ cd ../..
+fi
+
+if test -d src/lib
+then
+ cd src/lib
+ for FILE in $(find * -type f 2> /dev/null); do
+ echo "${FILE}: src/lib/${FILE}"
+ echo "\$(DESTDIR)\$(libdir)/${FILE}: ${FILE}"
+ done
+ cd ../..
+fi
+
+if test -f package/extras
+then
+ for EXTRA in $(cat package/extras); do
+ echo "\$(DESTDIR)\$(libdir)/${EXTRA}: ${EXTRA}"
+ done
+fi
diff --git a/tools/gen-targets.sh b/tools/gen-targets.sh
new file mode 100755
index 0000000..3280748
--- /dev/null
+++ b/tools/gen-targets.sh
@@ -0,0 +1,56 @@
+#!/bin/sh -e
+
+. package/info
+
+echo '#'
+echo '# This file has been generated by tools/gen-targets.sh'
+echo '#'
+echo
+
+if test -d src/bin
+then
+ cd src/bin
+
+ echo "ALL_BINS ::= \\"
+
+ for FILE in $(find * -type f 2> /dev/null) ; do
+ echo "\t${FILE} \\"
+ done
+
+ echo
+ echo "INSTALL_BINS ::= \\"
+
+ for FILE in $(find * -type f 2> /dev/null) ; do
+ echo "\t\$(DESTDIR)\$(bindir)/${FILE} \\"
+ done
+
+ echo
+ echo "SLASHCOMMAND_BINS ::= \\"
+
+ for FILE in $(find * -type f 2> /dev/null) ; do
+ echo "\t\$(DESTDIR)\$(sproot)/command/${FILE} \\"
+ done
+
+ cd ../..
+ echo
+fi
+
+if test -d src/lib
+then
+ cd src/lib
+
+ echo "ALL_LIBS ::= \\"
+ for FILE in $(find * -type f 2> /dev/null) ; do
+ echo "\t${FILE} \\"
+ done
+
+ echo
+
+ echo "INSTALL_LIBS ::= \\"
+ for FILE in $(find * -type f 2> /dev/null) ; do
+ echo "\t\$(DESTDIR)\$(libdir)/${FILE} \\"
+ done
+
+ cd ../..
+ echo
+fi
diff --git a/tools/install.sh b/tools/install.sh
new file mode 100755
index 0000000..e96dd7b
--- /dev/null
+++ b/tools/install.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+usage() {
+ echo "usage: $0 [ -D ] [ -l ] [ -m mode ] [ -O owner:group ] src dst" 1>&2
+ exit 1
+}
+
+mkdirp=false
+symlink=false
+mode=0755
+og=
+
+while getopts Dlm:O: name ; do
+ case "$name" in
+ D) mkdirp=true ;;
+ l) symlink=true ;;
+ m) mode=$OPTARG ;;
+ O) og=$OPTARG ;;
+ ?) usage ;;
+ esac
+done
+shift $(($OPTIND - 1))
+
+test "$#" -eq 2 || usage
+src=$1
+dst=$2
+tmp="$dst.tmp.$$"
+
+case "$dst" in
+ */) echo "$0: $dst ends in /" 1>&2 ; exit 1 ;;
+esac
+
+set -C
+set -e
+
+if $mkdirp ; then
+ umask 022
+ case "$2" in
+ */*) mkdir -p "${dst%/*}" ;;
+ esac
+fi
+
+trap 'rm -f "$tmp"' EXIT INT QUIT TERM HUP
+
+umask 077
+
+if $symlink ; then
+ ln -s "$src" "$tmp"
+else
+ cat < "$1" > "$tmp"
+ if test -n "$og" ; then
+ chown -- "$og" "$tmp"
+ fi
+ chmod -- "$mode" "$tmp"
+fi
+
+mv -f "$tmp" "$dst"
+if test -d "$dst" ; then
+ rm -f "$dst/$(basename $tmp)"
+ if $symlink ; then
+ mkdir "$tmp"
+ ln -s "$src" "$tmp/$(basename $dst)"
+ mv -f "$tmp/$(basename $dst)" "${dst%/*}"
+ rmdir "$tmp"
+ else
+ echo "$0: $dst is a directory" 1>&2
+ exit 1
+ fi
+fi