diff --git a/.gitignore b/.gitignore index 890669b..304db56 100644 --- a/.gitignore +++ b/.gitignore @@ -4,13 +4,14 @@ out/ # Genie wrapper binsrc/genie-wrapper/genie + +# Genie python modules binsrc/genie/*.dist-info -binsrc/genie/argparse.py binsrc/genie/bin/ -binsrc/genie/contextlib2/ binsrc/genie/nsenter/ -binsrc/genie/pathlib.py binsrc/genie/python_hosts/ + +# Built binaries binsrc/out # Debian build intermediates @@ -23,12 +24,10 @@ debian/systemd-genie.debhelper.log debian/systemd-genie.substvars debian/genie-* -# Arch build intermediates - -package/arch/src/ -package/arch/pkg/ - # Tar build intermediates -package/tar/tarball +tarball + +# Arch build intermediates +genie/ diff --git a/CHANGELOG b/CHANGELOG new file mode 120000 index 0000000..d526672 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1 @@ +debian/changelog \ No newline at end of file diff --git a/Makefile b/Makefile index 9115467..96d8536 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,26 @@ # This Makefile builds and packages genie by invoking relevant sub-makefiles. # +# Genie version +GENIEVERSION = 2.2 + +# Determine this makefile's path. +# Be sure to place this BEFORE `include` directives, if any. +THIS_FILE := $(lastword $(MAKEFILE_LIST)) + +# The values of these variables depend upon DESTDIR, set in the recursive call to +# the internal-package target. +INSTALLDIR = $(DESTDIR)/usr/lib/genie +BINDIR = $(DESTDIR)/usr/bin +ETCDIR = $(DESTDIR)/etc +SVCDIR = $(DESTDIR)/usr/lib/systemd/system +USRLIBDIR = $(DESTDIR)/usr/lib + +# used only by TAR installer +ENVGENDIR = $(DESTDIR)/usr/lib/systemd/system-environment-generators +USRENVGENDIR = $(DESTDIR)/usr/lib/systemd/user-environment-generators +MAN8DIR = $(DESTDIR)/usr/share/man/man8 + # # Default target: list options # @@ -13,23 +33,25 @@ default: # # make build-binaries # - # Package (native) + # Package # # make package # make package-debian - # ? make package-tar + # make package-tar + # make package-arch (requires Arch packaging environment) # # Clean up # - # make clean (does not clean altpacking by default) + # make clean # make clean-debian - # ? make clean-tar + # make clean-tar + # make clean-arch # # Targets: individual end-product build. # -clean: clean-debian +clean: clean-debian clean-tar clean-arch make -C binsrc clean rm -rf out @@ -39,16 +61,6 @@ package: package-debian # Debian packaging # -# Debian installation locations - -DESTDIR=debian/systemd-genie - -INSTALLDIR = $(DESTDIR)/usr/lib/genie -BINDIR = $(DESTDIR)/usr/bin -ETCDIR = $(DESTDIR)/etc -SVCDIR = $(DESTDIR)/usr/lib/systemd/system -USRLIBDIR = $(DESTDIR)/usr/lib - package-debian: make-output-directory mkdir -p out/debian debuild @@ -57,10 +69,56 @@ package-debian: make-output-directory clean-debian: debuild -- clean -# Debian internal functions +package-tar: make-output-directory build-binaries + mkdir -p out/tar + mkdir -p tarball + + fakeroot $(MAKE) -f $(THIS_FILE) DESTDIR=tarball internal-package + + # Do the things that TAR needs that debuild would otherwise do + fakeroot $(MAKE) -f $(THIS_FILE) DESTDIR=tarball internal-supplement + fakeroot $(MAKE) -f $(THIS_FILE) DESTDIR=tarball internal-tar + + mv genie-systemd-*.tar.gz out/tar + +clean-tar: + rm -rf tarball + +package-arch: + mkdir -p out/arch + updpkgsums + BUILDDIR=/tmp PKDEST=$(PWD)/out/arch makepkg + rm -rf $(PWD)/genie + mv *.zst out/arch + +clean-arch: + rm -rf $(PWD)/genie + rm -rf out/arch + +package-fedora: genie_version := $(shell rpmspec -q --qf %{Version} --srpm genie.spec) + +package-fedora: + rpmdev-setuptree + tar zcvf $(shell rpm --eval '%{_sourcedir}')/genie-${genie_version}.tar.gz * --dereference --transform='s/^/genie-${genie_version}\//' + fakeroot rpmbuild -ba -v genie.spec + mkdir -p out/fedora + mv $(shell rpm --eval '%{_rpmdir}')/x86_64/genie* out/fedora + +clean-fedora: + rpmdev-wipetree + rm -rf out/fedora + +# Internal packaging functions internal-debian-package: + mkdir -p debian/systemd-genie + @$(MAKE) -f $(THIS_FILE) DESTDIR=debian/systemd-genie internal-package + +# We can assume DESTDIR is set, due to how the following are called. + +internal-package: + # Binaries. mkdir -p "$(BINDIR)" install -Dm 6755 -o root "binsrc/genie-wrapper/genie" -t "$(BINDIR)" @@ -86,9 +144,30 @@ internal-debian-package: # binfmt.d install -Dm 0644 -o root "othersrc/usr-lib/binfmt.d/WSLInterop.conf" -t "$(USRLIBDIR)/binfmt.d" -internal-debian-clean: +internal-clean: make -C binsrc clean +internal-supplement: + # Fixup symbolic links + mkdir -p $(ENVGENDIR) + mkdir -p $(USRENVGENDIR) + ln -sr $(INSTALLDIR)/80-genie-envar.sh $(ENVGENDIR)/80-genie-envar.sh + ln -sr $(INSTALLDIR)/80-genie-envar.sh $(USRENVGENDIR)/80-genie-envar.sh + ln -sr $(SVCDIR)/wslg-xwayland.socket $(SVCDIR)/sockets.target.wants/wslg-xwayland.socket + + # Man page. + # Make sure directory exists. + mkdir -p "$(MAN8DIR)" + + # this bit would ordinarily be handed by debuild, etc. + cp "othersrc/docs/genie.8" /tmp/genie.8 + gzip -9 "/tmp/genie.8" + install -Dm 0644 -o root "/tmp/genie.8.gz" -t "$(MAN8DIR)" + +internal-tar: + # tar it up + tar zcvf genie-systemd-$(GENIEVERSION).tar.gz tarball/* --transform='s/^tarball//' + # # Helpers: intermediate build stages. # diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..7b852a8 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Ong Yong Xin +# Contributor: Xuanrui Qi +# Contributor: Rayfalling +# Contributor: facekapow, rayfalling, Ducksoft +_pkgname=genie +pkgname=${_pkgname}-systemd +pkgver=2.1.r15.g379869a +pkgrel=1 +pkgdesc="A quick way into a systemd \"bottle\" for WSL" +arch=('x86_64') +url="https://github.com/arkane-systems/genie" +license=('Unlicense') +depends=('daemonize' 'python' 'python-psutil' 'systemd') +makedepends=('git' 'python-pip') +options=(!strip) +source=("git+https://github.com/arkane-systems/genie.git") +sha256sums=('SKIP') +backup=('etc/genie.ini') + +# pkgver() { +# git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//g' +# } + +build() { + cd genie + make build-binaries +} + +package() { + cd genie + make DESTDIR=${pkgdir} internal-package + make DESTDIR=${pkgdir} internal-supplement +} diff --git a/binsrc/Makefile b/binsrc/Makefile index 51ae5e2..3498b14 100644 --- a/binsrc/Makefile +++ b/binsrc/Makefile @@ -8,14 +8,17 @@ build: build-wrapper build-runinwsl build-genie build-wrapper: + mkdir -p out make -C genie-wrapper build-runinwsl: - python -m zipapp -o out/runinwsl -p "/usr/bin/env python3" -c runinwsl + mkdir -p out + python3 -m zipapp -o out/runinwsl -p "/usr/bin/env python3" -c runinwsl build-genie: - python -m pip install -r genie/requirements.txt --target genie - python -m zipapp -o out/genie -p "/usr/bin/env python3" -c genie + mkdir -p out + python3 -m pip install -r genie/requirements.txt --target genie --upgrade + python3 -m zipapp -o out/genie -p "/usr/bin/env python3" -c genie # # clean: clean up after a build/package diff --git a/binsrc/genie/requirements.txt b/binsrc/genie/requirements.txt index 5bd1337..35ee90e 100644 --- a/binsrc/genie/requirements.txt +++ b/binsrc/genie/requirements.txt @@ -1,3 +1,3 @@ -nsenter>=0.2 +git+https://github.com/zalando/python-nsenter@b7fd78fef24c456d88130c75fe734417728e97e8 python_hosts>=1.0.1 # psutil>=5.9.0 (should be handled by apt package) diff --git a/debian/changelog b/debian/changelog index c7d4797..dde1f77 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ systemd-genie (2.2) buster bullseye bookworm sid focal bionic; urgency=medium * Single-file package python scripts. * Man page fixes. + * Fixed building on Python 3.10. + * Dropped the "local" install option (little used; use tarball instead). -- Alistair Young Mon, 28 Feb 2022 18:30:00 -0500 diff --git a/debian/rules b/debian/rules index 289d92b..75006fb 100755 --- a/debian/rules +++ b/debian/rules @@ -17,7 +17,7 @@ override_dh_auto_install: make internal-debian-package override_dh_auto_clean: - make internal-debian-clean + make internal-clean # Allow our setuid executable to pass unfixed. override_dh_fixperms: diff --git a/debian/systemd-genie.links b/debian/systemd-genie.links index 79694c5..7c71f32 100644 --- a/debian/systemd-genie.links +++ b/debian/systemd-genie.links @@ -1,2 +1,3 @@ /usr/lib/genie/80-genie-envar.sh /usr/lib/systemd/system-environment-generators/80-genie-envar.sh /usr/lib/genie/80-genie-envar.sh /usr/lib/systemd/user-environment-generators/80-genie-envar.sh +/usr/lib/systemd/system/wslg-xwayland.socket /usr/lib/systemd/system/sockets.target.wants/wslg-xwayland.socket diff --git a/pending/package/fedora/genie.spec b/genie.spec similarity index 70% rename from pending/package/fedora/genie.spec rename to genie.spec index d379945..6be0f74 100644 --- a/pending/package/fedora/genie.spec +++ b/genie.spec @@ -1,7 +1,6 @@ %global project https://github.com/arkane-systems/genie/ -%global version 1.45 +%global version 2.2 -# debuginfo is 'not supported' for .NET binaries %global debug_package %{nil} %global _enable_debug_package 0 %global __os_install_post /usr/lib/rpm/brp-compress %{nil} @@ -14,10 +13,17 @@ Summary: A quick way into systemd "bottle" for WSL License: Unlicense URL: %{project} Source0: %{project}archive/genie-%{version}.tar.gz -Requires: systemd-container + Requires: daemonize -Requires: dotnet-runtime-5.0 -BuildRequires: dotnet-sdk-5.0 +Requires: dbus +Requires: gawk +Requires: polkit +Requires: python3 +Requires: python3-pip +Requires: python3-psutil +Requires: systemd +Requires: systemd-container +# BuildRequires: git BuildRequires: make ExclusiveArch: x86_64 @@ -29,12 +35,13 @@ A quick way into systemd "bottle" for WSL %setup -q -n %{name}-%{version} %build -make -C binsrc +make build-binaries %install -pwd -install -d -p %{buildroot}%{_exec_prefix}/lib/%{name} +echo %{buildroot}%{_mandir} + install -d -p %{buildroot}%{_sysconfdir} +install -d -p %{buildroot}%{_exec_prefix}/lib/%{name} install -d -p %{buildroot}%{_exec_prefix}/lib/systemd/system-environment-generators install -d -p %{buildroot}%{_exec_prefix}/lib/systemd/user-environment-generators install -d -p %{buildroot}%{_exec_prefix}/lib/tmpfiles.d @@ -43,56 +50,63 @@ install -d -p %{buildroot}%{_bindir} install -d -p %{buildroot}%{_unitdir} install -d -p %{buildroot}%{_unitdir}/user-runtime-dir@.service.d install -d -p %{buildroot}%{_unitdir}/sockets.target.wants -install -m 4755 -vp binsrc/genie/bin/Release/net5.0/linux-x64/publish/genie %{buildroot}%{_libexecdir}/%{name} -install -m 0755 -vp binsrc/runinwsl/bin/Release/net5.0/linux-x64/publish/runinwsl %{buildroot}%{_libexecdir}/%{name} -install -m 0755 -vp othersrc/scripts/80-genie-envar.sh %{buildroot}%{_libexecdir}/%{name} -install -m 0755 "othersrc/scripts/map-user-runtime-dir.sh" %{buildroot}%{_libexecdir}/%{name} -install -m 0755 "othersrc/scripts/unmap-user-runtime-dir.sh" %{buildroot}%{_libexecdir}/%{name} -install -m 0644 -vp othersrc/etc/genie.ini %{buildroot}%{_sysconfdir}/ -install -m 0644 -vp othersrc/lib-systemd-system/wslg-xwayland.service %{buildroot}%{_unitdir} -install -m 0644 -vp othersrc/lib-systemd-system/wslg-xwayland.socket %{buildroot}%{_unitdir} -install -m 0644 -vp othersrc/lib-systemd-system/user-runtime-dir@.service.d/override.conf %{buildroot}%{_unitdir}/user-runtime-dir@.service.d -install -m 0644 -vp othersrc/usr-lib/binfmt.d/WSLInterop.conf %{buildroot}%{_exec_prefix}/lib/binfmt.d/ -ln -sf %{_exec_prefix}/lib/%{name}/%{name} %{buildroot}%{_bindir}/%{name} -ln -sf %{_exec_prefix}/lib/%{name}/80-genie-envar.sh %{buildroot}%{_exec_prefix}/lib/systemd/system-environment-generators/ -ln -sf %{_exec_prefix}/lib/%{name}/80-genie-envar.sh %{buildroot}%{_exec_prefix}/lib/systemd/user-environment-generators/ -ln -sf %{_unitdir}/wslg-xwayland.socket %{buildroot}%{_unitdir}/sockets.target.wants/wslg-xwayland.socket +install -d -p %{buildroot}%{_mandir}/man8 + +make DESTDIR=%{buildroot} internal-package +make DESTDIR=%{buildroot} internal-supplement %postun if [ $1 -eq 0 ]; then -rm -rf %{_libexecdir}/%{name} rm -f %{_bindir}/%{name} -rm -f %{_exec_prefix}/lib/systemd/system-environment-generators/80-genie-envar.sh -rm -f %{_exec_prefix}/lib/systemd/user-environment-generators/80-genie-envar.sh -rm -f %{_unitdir}/sockets.target.wants/wslg-xwayland.socket +rm -rf %{_exec_prefix}/lib/%{name}/* rm -f %{_unitdir}/wslg-xwayland.service rm -f %{_unitdir}/wslg-xwayland.socket rm -f %{_unitdir}/user-runtime-dir@.service.d/override.conf rm -f %{_exec_prefix}/lib/binfmt.d/WSLInterop.conf +rm -f %{_exec_prefix}/lib/systemd/system-environment-generators/80-genie-envar.sh +rm -f %{_exec_prefix}/lib/systemd/user-environment-generators/80-genie-envar.sh +rm -f %{_unitdir}/sockets.target.wants/wslg-xwayland.socket +rm -f ${_mandir}/man8/genie.8.gz fi %clean rm -rf %{buildroot} %files + +%{_bindir}/%{name} %{_exec_prefix}/lib/%{name}/* %config %{_sysconfdir}/genie.ini -%{_bindir}/%{name} -%{_exec_prefix}/lib/systemd/system-environment-generators/80-genie-envar.sh -%{_exec_prefix}/lib/systemd/user-environment-generators/80-genie-envar.sh %{_unitdir}/wslg-xwayland.service %{_unitdir}/wslg-xwayland.socket -%{_unitdir}/sockets.target.wants/wslg-xwayland.socket %{_unitdir}/user-runtime-dir@.service.d/override.conf %{_exec_prefix}/lib/binfmt.d/WSLInterop.conf +%{_exec_prefix}/lib/systemd/system-environment-generators/80-genie-envar.sh +%{_exec_prefix}/lib/systemd/user-environment-generators/80-genie-envar.sh +%{_unitdir}/sockets.target.wants/wslg-xwayland.socket +%doc %{_mandir}/man8/genie.8.gz %changelog -* Sat Aug 07 2021 Alistair Young 1.45-1 +* Mon Feb 28 2022 Alistair Young 2.2-1 +- Single-file package python scripts. +- Man page fixes. +- Fixed building on Python 3.10. +- Dropped the "local" install option (little used; use tarball instead). + +* Mon Feb 28 2022 Alistair Young 2.1-1 +- Documentation updates. +- Update /etc/hosts after hostname update. +- Minor fixes. + +* Tue Feb 22 2022 Alistair Young 2.0b-1 + +- Major rewrite in Python, eliminating .NET dependency. - Moved executables from /usr/libexec/genie to /usr/lib/genie. - Allow configuration of hostname suffix. -- Improved Arch PKGBUILD file. - Support for AppArmor namespaces. -- Add flag files to prevent race conditions. +- Work to better handle simultaneity. +- Extra warnings for problematic states. +- Miscellaneous fixes. * Sat Aug 07 2021 Alistair Young 1.44-1 - Standardized use of /usr/lib rather than /lib. @@ -123,7 +137,7 @@ rm -rf %{buildroot} - Mount user runtime directory only where WSLg is present and user matches. * Thu Apr 22 2021 Alistair Young 1.39-1 -- Better WSLg support, based on the code of Daniel Llewellyn (@diddledan), here: https://github.com/diddledan/one-script-wsl2-systemd. +- Better WSLg support, based on the code of Dani Llewellyn (@diddledani), here: https://github.com/diddledani/one-script-wsl2-systemd. * Thu Apr 22 2021 Alistair Young 1.38-1 - Restored original default systemd startup timeout. diff --git a/othersrc/docs/genie.8 b/othersrc/docs/genie.8 index c7ddeac..d323922 100644 --- a/othersrc/docs/genie.8 +++ b/othersrc/docs/genie.8 @@ -64,6 +64,16 @@ three times within one second. .Pp This follows login semantics, and as such does not preserve the current working directory. +.It Fl c, --command +Sets up the bottle and +.Xr systemd 1 +if they are not already initialized, and then runs the specified command within the +bottle. It is intended as the standard way to run arbitrary commands within a +distribution with +.Nm +installed. +.Pp +Unlike the other options, this preserves the current working directory. .It Fl u, --shutdown Shuts down .Xr systemd 1 diff --git a/othersrc/docs/readme.md b/othersrc/docs/readme.md index fd3ab90..fb2969b 100644 --- a/othersrc/docs/readme.md +++ b/othersrc/docs/readme.md @@ -50,12 +50,13 @@ sudo apt install -y systemd-genie Use the above Debian package. For current Ubuntu releases and the timing-out problem, see the problematic units listed on [the genie wiki](https://github.com/arkane-systems/genie/wiki). - - ## CONFIGURATION FILE That would be the file _/etc/genie.ini_. This defines the secure path (i.e., those directories in which genie will look for the utilities it depends on; make sure _unshare_, in particular, is available here), and seven settings controlling genie behavior. Normally, it looks like this: diff --git a/pending/package/arch/Makefile b/pending/package/arch/Makefile deleted file mode 100644 index 9bdd8ff..0000000 --- a/pending/package/arch/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# -# Debian Makefile. -# - -# -# Default target: package. -# - -package: - # Packaging for Arch. - updpkgsums - makepkg - mkdir -p ../../out/arch - mv genie* ../../out/arch - -clean: - rm -rf src - rm -rf pkg diff --git a/pending/package/arch/PKGBUILD b/pending/package/arch/PKGBUILD deleted file mode 100644 index d4fef5c..0000000 --- a/pending/package/arch/PKGBUILD +++ /dev/null @@ -1,71 +0,0 @@ -# Maintainer: Ong Yong Xin -# Maintainer: Xuanrui Qi -# Contributor: Rayfalling -# Contributor: facekapow, rayfalling, Ducksoft -_pkgname=genie -pkgname=${_pkgname}-systemd -pkgver=1.45 -pkgrel=2 -pkgdesc="A quick way into a systemd \"bottle\" for WSL" -arch=('x86_64') -url="https://github.com/arkane-systems/genie" -license=('Unlicense') -depends=('daemonize' 'dotnet-runtime=5.0' 'dotnet-host=5.0') -makedepends=('dotnet-sdk=5.0') -source=(${_pkgname}-${pkgver}.tar.gz::https://github.com/arkane-systems/${_pkgname}/archive/refs/tags/v${pkgver}.tar.gz) -sha256sums=('SKIP') -backup=('etc/genie.ini') -options=(!strip) - -pkgver() { - git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//g' -} - -build() { - cd "$srcdir/$_pkgname-$pkgver" - make -C binsrc -} - -package() { - cd "$srcdir/$_pkgname-$pkgver" - - # Binaries - install -Dm4755 binsrc/genie/bin/Release/net5.0/linux-x64/publish/genie -t ${pkgdir}/usr/lib/genie - install -Dm0755 binsrc/runinwsl/bin/Release/net5.0/linux-x64/publish/runinwsl -t ${pkgdir}/usr/lib/genie - - # Environment generator. - install -Dm0755 othersrc/scripts/80-genie-envar.sh -t ${pkgdir}/usr/lib/genie - - # Runtime dir mapping - install -Dm0755 othersrc/scripts/map-user-runtime-dir.sh -t ${pkgdir}/usr/lib/genie - install -Dm0755 othersrc/scripts/unmap-user-runtime-dir.sh -t ${pkgdir}/usr/lib/genie - - # Configuration file. - install -Dm0644 othersrc/etc/genie.ini -t ${pkgdir}/etc - - # genie symlink - mkdir -p ${pkgdir}/usr/bin - ln -s /usr/lib/genie/genie ${pkgdir}/usr/bin/genie - - # 10-genie-envar.sh symlinks - mkdir -p ${pkgdir}/usr/lib/systemd/user-environment-generators - mkdir -p ${pkgdir}/usr/lib/systemd/system-environment-generators - ln -s /usr/lib/genie/80-genie-envar.sh ${pkgdir}/usr/lib/systemd/user-environment-generators/80-genie-envar.sh - ln -s /usr/lib/genie/80-genie-envar.sh ${pkgdir}/usr/lib/systemd/system-environment-generators/80-genie-envar.sh - - # Unit files. - install -Dm0644 othersrc/lib-systemd-system/wslg-xwayland.service -t ${pkgdir}/usr/lib/systemd/system - install -Dm0644 othersrc/lib-systemd-system/wslg-xwayland.socket -t ${pkgdir}/usr/lib/systemd/system - mkdir -p ${pkgdir}/usr/lib/systemd/system/sockets.target.wants - ln -s /usr/lib/systemd/system/wslg-xwayland.socket ${pkgdir}/usr/lib/systemd/system/sockets.target.wants/wslg-xwayland.socket - - install -Dm0644 othersrc/lib-systemd-system/user-runtime-dir@.service.d/override.conf -t ${pkgdir}/usr/lib/systemd/system/user-runtime-dir@.service.d - - # binfmt.d - install -Dm0644 othersrc/usr-lib/binfmt.d/WSLInterop.conf -t ${pkgdir}/usr/lib/binfmt.d - - # man page - install -Dm0644 othersrc/docs/genie.8 -t ${pkgdir}/usr/share/man/man8 -} - -# vim:set ts=2 sw=2 et: diff --git a/pending/package/fedora/Makefile b/pending/package/fedora/Makefile deleted file mode 100644 index 08a3b2c..0000000 --- a/pending/package/fedora/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# -# Fedora Makefile. -# - -# -# Default target: package. -# - -genie_version:=$(shell rpmspec -q --qf %{Version} --srpm genie.spec) - -sourcedir=$(shell rpm --eval '%{_sourcedir}') -rpmdir=$(shell rpm --eval '%{_rpmdir}') - -package: - # Packaging for Fedora. - rpmdev-setuptree - tar zcvf $(sourcedir)/genie-${genie_version}.tar.gz * --dereference --transform='s/^/genie-${genie_version}\//' - rpmbuild -ba -v genie.spec - mkdir -p ../../out/fedora - mv $(rpmdir)/x86_64/genie* ../../out/fedora - -clean: - # Clean up temporary tree. - rpmdev-wipetree diff --git a/pending/package/fedora/binsrc b/pending/package/fedora/binsrc deleted file mode 120000 index c5f27eb..0000000 --- a/pending/package/fedora/binsrc +++ /dev/null @@ -1 +0,0 @@ -../../binsrc \ No newline at end of file diff --git a/pending/package/fedora/othersrc b/pending/package/fedora/othersrc deleted file mode 120000 index 142632b..0000000 --- a/pending/package/fedora/othersrc +++ /dev/null @@ -1 +0,0 @@ -../../othersrc \ No newline at end of file diff --git a/pending/package/local/Makefile b/pending/package/local/Makefile deleted file mode 100644 index df5d49d..0000000 --- a/pending/package/local/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# -# Local installation Makefile. -# - -# Installation locations. -INSTALLDIR = /usr/local/lib/genie -BINDIR = /usr/local/bin -ENVGENDIR = /usr/lib/systemd/system-environment-generators -USRENVGENDIR = /usr/lib/systemd/user-environment-generators -ETCDIR = /etc -MAN8DIR = /usr/local/share/man/man8 -SVCDIR = /etc/systemd/system -USRLIBDIR = /usr/lib - -# -# Default target: package. -# - -package: - # Installing locally. - make -C binsrc build-local - - # Just put the bits in the right places. - mkdir -p "$(BINDIR)" - - # Binaries. - install -Dm 4755 -o root "binsrc/genie/bin/ReleaseLocal/net5.0/linux-x64/publish/genie" -t "$(INSTALLDIR)" - install -Dm 0755 -o root "binsrc/runinwsl/bin/Release/net5.0/linux-x64/publish/runinwsl" -t "$(INSTALLDIR)" - ln -s $(INSTALLDIR)/genie $(BINDIR)/genie - - # Environment generator. - install -Dm 0755 -o root "othersrc/scripts/80-genie-envar.sh" -t "$(INSTALLDIR)" - ln -s $(INSTALLDIR)/80-genie-envar.sh $(ENVGENDIR)/80-genie-envar.sh - ln -s $(INSTALLDIR)/80-genie-envar.sh $(USRENVGENDIR)/80-genie-envar.sh - - # Runtime dir mapping - install -Dm 0755 -o root "othersrc/scripts/map-user-runtime-dir.sh" -t "$(INSTALLDIR)" - install -Dm 0755 -o root "othersrc/scripts/unmap-user-runtime-dir.sh" -t "$(INSTALLDIR)" - - # Configuration file. - install -Dm 0644 -o root "othersrc/etc/genie.ini" -t "$(ETCDIR)" - - # Unit files. - install -Dm 0644 -o root "othersrc/lib-systemd-system/wslg-xwayland.service" -t "$(SVCDIR)" - install -Dm 0644 -o root "othersrc/lib-systemd-system/wslg-xwayland.socket" -t "$(SVCDIR)" - - install -Dm 0644 -o root "othersrc/lib-systemd-system/user-runtime-dir@.service.d/override.conf" -t "$(SVCDIR)/user-runtime-dir@.service.d" - - # binfmt.d - install -Dm 0644 -o root "othersrc/usr-lib/binfmt.d/WSLInterop.conf" -t "$(USRLIBDIR)/binfmt.d" - - # enable units - ln -s $(SVCDIR)/wslg-xwayland.socket $(SVCDIR)/sockets.target.wants/wslg-xwayland.socket - - # Man page. - # Make sure directory exists. - mkdir -p "$(MAN8DIR)" - - # this bit would ordinarily be handed by debuild, etc. - cp "othersrc/docs/genie.8" /tmp/genie.8 - gzip -9 "/tmp/genie.8" - install -Dm 0644 -o root "/tmp/genie.8.gz" -t "$(MAN8DIR)" - -clean: - # Nothing to clean in a local installation. diff --git a/pending/package/local/binsrc b/pending/package/local/binsrc deleted file mode 120000 index c5f27eb..0000000 --- a/pending/package/local/binsrc +++ /dev/null @@ -1 +0,0 @@ -../../binsrc \ No newline at end of file diff --git a/pending/package/local/othersrc b/pending/package/local/othersrc deleted file mode 120000 index 142632b..0000000 --- a/pending/package/local/othersrc +++ /dev/null @@ -1 +0,0 @@ -../../othersrc \ No newline at end of file diff --git a/pending/package/tar/Makefile b/pending/package/tar/Makefile deleted file mode 100644 index 1c1ea3c..0000000 --- a/pending/package/tar/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -# -# Tar archive Makefile. -# - -# Installation locations - -DESTDIR=tarball - -INSTALLDIR = $(DESTDIR)/usr/lib/genie -BINDIR = $(DESTDIR)/usr/bin -ENVGENDIR = $(DESTDIR)/usr/lib/systemd/system-environment-generators -USRENVGENDIR = $(DESTDIR)/usr/lib/systemd/user-environment-generators -ETCDIR = $(DESTDIR)/etc -MAN8DIR = $(DESTDIR)/usr/share/man/man8 -SVCDIR = $(DESTDIR)/usr/lib/systemd/system -USRLIBDIR = $(DESTDIR)/usr/lib - -# -# Default target: package. -# - -package: clean - # Packaging TAR archive. - mkdir -p $(DESTDIR) - - make -C binsrc - - fakeroot make package-inner - - mkdir -p ../../out/tar - mv genie-systemd-*.tar.gz ../../out/tar - -package-inner: - # Inner packager, called from within fakeroot. - - # Binaries. - mkdir -p "$(BINDIR)" - install -Dm 4755 -o root "binsrc/genie/bin/Release/net5.0/linux-x64/publish/genie" -t "$(INSTALLDIR)" - install -Dm 0755 -o root "binsrc/runinwsl/bin/Release/net5.0/linux-x64/publish/runinwsl" -t "$(INSTALLDIR)" - ln -s $(INSTALLDIR)/genie $(BINDIR)/genie - - # Environment generator. - install -Dm 0755 -o root "othersrc/scripts/80-genie-envar.sh" -t "$(INSTALLDIR)" - mkdir -p "$(ENVGENDIR)" - mkdir -p "$(USRENVGENDIR)" - ln -s $(INSTALLDIR)/80-genie-envar.sh $(ENVGENDIR)/80-genie-envar.sh - ln -s $(INSTALLDIR)/80-genie-envar.sh $(USRENVGENDIR)/80-genie-envar.sh - - # Runtime dir mapping - install -Dm 0755 -o root "othersrc/scripts/map-user-runtime-dir.sh" -t "$(INSTALLDIR)" - install -Dm 0755 -o root "othersrc/scripts/unmap-user-runtime-dir.sh" -t "$(INSTALLDIR)" - - # Configuration file. - install -Dm 0644 -o root "othersrc/etc/genie.ini" -t "$(ETCDIR)" - - # Unit files. - install -Dm 0644 -o root "othersrc/lib-systemd-system/wslg-xwayland.service" -t "$(SVCDIR)" - install -Dm 0644 -o root "othersrc/lib-systemd-system/wslg-xwayland.socket" -t "$(SVCDIR)" - - install -Dm 0644 -o root "othersrc/lib-systemd-system/user-runtime-dir@.service.d/override.conf" -t "$(SVCDIR)/user-runtime-dir@.service.d" - - # binfmt.d - install -Dm 0644 -o root "othersrc/usr-lib/binfmt.d/WSLInterop.conf" -t "$(USRLIBDIR)/binfmt.d" - - # Man page. - # Make sure directory exists. - mkdir -p "$(MAN8DIR)" - - # this bit would ordinarily be handed by debuild, etc. - cp "othersrc/docs/genie.8" /tmp/genie.8 - gzip -9 "/tmp/genie.8" - install -Dm 0644 -o root "/tmp/genie.8.gz" -t "$(MAN8DIR)" - - # tar it up - tar zcvf genie-systemd-`grep VersionPrefix binsrc/genie/genie.csproj | sed 's/.*\(.*\)<\/VersionPrefix>/\1/' | tr -d "\r\n"`.tar.gz tarball/* --transform='s/^tarball//' - -clean: - rm -rf tarball - touch /tmp/genie-fake - rm /tmp/genie* diff --git a/pending/package/tar/binsrc b/pending/package/tar/binsrc deleted file mode 120000 index c5f27eb..0000000 --- a/pending/package/tar/binsrc +++ /dev/null @@ -1 +0,0 @@ -../../binsrc \ No newline at end of file diff --git a/pending/package/tar/othersrc b/pending/package/tar/othersrc deleted file mode 120000 index 142632b..0000000 --- a/pending/package/tar/othersrc +++ /dev/null @@ -1 +0,0 @@ -../../othersrc \ No newline at end of file