Commit f5938bc4 authored by jan.koester's avatar jan.koester
Browse files

test

parent 5dc2790c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -39,8 +39,8 @@ case "$1" in
        fi

        # Ensure container state directory ownership
        if [ -d /opt/blogi-editor/var/lib/blogi-editor ]; then
            chown 998:998 /opt/blogi-editor/var/lib/blogi-editor
        if [ -d /opt/blogi/var/lib/blogi-editor ]; then
            chown 998:998 /opt/blogi/var/lib/blogi-editor
        fi
        ;;
esac
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ After=network.target
Type=simple
ExecStart=/usr/bin/systemd-nspawn \
    --machine=blogi-editor \
    --directory=/opt/blogi-editor \
    --directory=/opt/blogi \
    --settings=override \
    --keep-unit \
    --as-pid2 \
+46 −46
Original line number Diff line number Diff line
@@ -37,76 +37,76 @@ endif
override_dh_install:
	dh_install
ifneq ($(IS_NSPAWN),)
	@echo "Nspawn build — assembling chroot at /opt/blogi-editor (musl)"
	@echo "Nspawn build — assembling chroot at /opt/blogi (musl)"
	# musl dynamic linker
	mkdir -p debian/blogi-editor/opt/blogi-editor/lib
	cp -a /usr/local/musl/lib/ld-musl-x86_64.so.1 debian/blogi-editor/opt/blogi-editor/lib/
	mkdir -p debian/blogi-editor/opt/blogi/lib
	cp -a /usr/local/musl/lib/ld-musl-x86_64.so.1 debian/blogi-editor/opt/blogi/lib/
	# musl libc
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/local/musl/lib
	cp -a /usr/local/musl/lib/libc.so debian/blogi-editor/opt/blogi-editor/usr/local/musl/lib/
	chmod +x debian/blogi-editor/opt/blogi-editor/usr/local/musl/lib/libc.so
	mkdir -p debian/blogi-editor/opt/blogi/usr/local/musl/lib
	cp -a /usr/local/musl/lib/libc.so debian/blogi-editor/opt/blogi/usr/local/musl/lib/
	chmod +x debian/blogi-editor/opt/blogi/usr/local/musl/lib/libc.so
	# musl-built shared libraries
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/local/lib
	cp -a /usr/local/lib/*.so* debian/blogi-editor/opt/blogi-editor/usr/local/lib/
	mkdir -p debian/blogi-editor/opt/blogi/usr/local/lib
	cp -a /usr/local/lib/*.so* debian/blogi-editor/opt/blogi/usr/local/lib/
	# confplus config backend plugins
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/local/lib/confplus/backend
	cp -a /usr/local/lib/confplus/backend/*.cfg.so debian/blogi-editor/opt/blogi-editor/usr/local/lib/confplus/backend/
	mkdir -p debian/blogi-editor/opt/blogi/usr/local/lib/confplus/backend
	cp -a /usr/local/lib/confplus/backend/*.cfg.so debian/blogi-editor/opt/blogi/usr/local/lib/confplus/backend/
	# dbpp database backend plugins
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/local/lib/dbpp
	cp -a /usr/local/lib/dbpp/*.so debian/blogi-editor/opt/blogi-editor/usr/local/lib/dbpp/
	mkdir -p debian/blogi-editor/opt/blogi/usr/local/lib/dbpp
	cp -a /usr/local/lib/dbpp/*.so debian/blogi-editor/opt/blogi/usr/local/lib/dbpp/
else
	@echo "System build — assembling chroot at /opt/blogi-editor (glibc)"
	@echo "System build — assembling chroot at /opt/blogi (glibc)"
	# glibc dynamic linker
	mkdir -p debian/blogi-editor/opt/blogi-editor/lib64
	cp -a /lib64/ld-linux-x86-64.so.2 debian/blogi-editor/opt/blogi-editor/lib64/ || true
	mkdir -p debian/blogi-editor/opt/blogi/lib64
	cp -a /lib64/ld-linux-x86-64.so.2 debian/blogi-editor/opt/blogi/lib64/ || true
	# Copy all shared library dependencies into chroot
	mkdir -p debian/blogi-editor/opt/blogi-editor/lib/x86_64-linux-gnu
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/lib/x86_64-linux-gnu
	mkdir -p debian/blogi-editor/opt/blogi/lib/x86_64-linux-gnu
	mkdir -p debian/blogi-editor/opt/blogi/usr/lib/x86_64-linux-gnu
	for lib in $$(ldd debian/blogi-editor/usr/bin/blogi-editor | grep -o '/[^ ]*'); do \
		dir=$$(dirname "$$lib"); \
		mkdir -p "debian/blogi-editor/opt/blogi-editor$$dir"; \
		cp -aL "$$lib" "debian/blogi-editor/opt/blogi-editor$$dir/" 2>/dev/null || true; \
		mkdir -p "debian/blogi-editor/opt/blogi$$dir"; \
		cp -aL "$$lib" "debian/blogi-editor/opt/blogi$$dir/" 2>/dev/null || true; \
	done
	# confplus config backend plugins
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/lib/x86_64-linux-gnu/confplus/backend
	-cp -a /usr/lib/x86_64-linux-gnu/confplus/backend/*.cfg.so debian/blogi-editor/opt/blogi-editor/usr/lib/x86_64-linux-gnu/confplus/backend/
	mkdir -p debian/blogi-editor/opt/blogi/usr/lib/x86_64-linux-gnu/confplus/backend
	-cp -a /usr/lib/x86_64-linux-gnu/confplus/backend/*.cfg.so debian/blogi-editor/opt/blogi/usr/lib/x86_64-linux-gnu/confplus/backend/
	# dbpp database backend plugins
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/lib/x86_64-linux-gnu/dbpp
	-cp -a /usr/lib/x86_64-linux-gnu/dbpp/*.so debian/blogi-editor/opt/blogi-editor/usr/lib/x86_64-linux-gnu/dbpp/
	mkdir -p debian/blogi-editor/opt/blogi/usr/lib/x86_64-linux-gnu/dbpp
	-cp -a /usr/lib/x86_64-linux-gnu/dbpp/*.so debian/blogi-editor/opt/blogi/usr/lib/x86_64-linux-gnu/dbpp/
	# Also copy backend deps (each .so may have its own deps)
	for lib in $$(find debian/blogi-editor/opt/blogi-editor/usr/lib/x86_64-linux-gnu/confplus debian/blogi-editor/opt/blogi-editor/usr/lib/x86_64-linux-gnu/dbpp -name '*.so' 2>/dev/null); do \
	for lib in $$(find debian/blogi-editor/opt/blogi/usr/lib/x86_64-linux-gnu/confplus debian/blogi-editor/opt/blogi/usr/lib/x86_64-linux-gnu/dbpp -name '*.so' 2>/dev/null); do \
		for dep in $$(ldd "$$lib" 2>/dev/null | grep -o '/[^ ]*'); do \
			dir=$$(dirname "$$dep"); \
			mkdir -p "debian/blogi-editor/opt/blogi-editor$$dir"; \
			cp -anL "$$dep" "debian/blogi-editor/opt/blogi-editor$$dir/" 2>/dev/null || true; \
			mkdir -p "debian/blogi-editor/opt/blogi$$dir"; \
			cp -anL "$$dep" "debian/blogi-editor/opt/blogi$$dir/" 2>/dev/null || true; \
		done; \
	done
endif
	# editor binary
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/bin
	cp -a debian/blogi-editor/usr/bin/blogi-editor debian/blogi-editor/opt/blogi-editor/usr/bin/
	mkdir -p debian/blogi-editor/opt/blogi/usr/bin
	cp -a debian/blogi-editor/usr/bin/blogi-editor debian/blogi-editor/opt/blogi/usr/bin/
	# editor widget plugins
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/lib/blogi/plugins/webedit
	-cp -a debian/blogi-editor/usr/lib/blogi/plugins/webedit/*.so debian/blogi-editor/opt/blogi-editor/usr/lib/blogi/plugins/webedit/
	mkdir -p debian/blogi-editor/opt/blogi/usr/lib/blogi/plugins/webedit
	-cp -a debian/blogi-editor/usr/lib/blogi/plugins/webedit/*.so debian/blogi-editor/opt/blogi/usr/lib/blogi/plugins/webedit/
	# blogidev library (plugin runtime dependency)
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/lib/blogi
	-cp -a debian/blogi-editor/usr/lib/blogi/libblogidev.* debian/blogi-editor/opt/blogi-editor/usr/lib/blogi/
	mkdir -p debian/blogi-editor/opt/blogi/usr/lib/blogi
	-cp -a debian/blogi-editor/usr/lib/blogi/libblogidev.* debian/blogi-editor/opt/blogi/usr/lib/blogi/
	# Static content (HTML, CSS, JS)
	mkdir -p debian/blogi-editor/opt/blogi-editor/usr/share/blogi-editor
	-cp -a debian/blogi-editor/usr/share/blogi-editor/* debian/blogi-editor/opt/blogi-editor/usr/share/blogi-editor/
	mkdir -p debian/blogi-editor/opt/blogi/usr/share/blogi-editor
	-cp -a debian/blogi-editor/usr/share/blogi-editor/* debian/blogi-editor/opt/blogi/usr/share/blogi-editor/
	# Minimal container filesystem
	mkdir -p debian/blogi-editor/opt/blogi-editor/etc/blogi-editor/ssl
	mkdir -p debian/blogi-editor/opt/blogi-editor/var/lib/blogi-editor
	mkdir -p debian/blogi-editor/opt/blogi-editor/proc
	mkdir -p debian/blogi-editor/opt/blogi-editor/sys
	mkdir -p debian/blogi-editor/opt/blogi-editor/dev
	mkdir -p debian/blogi-editor/opt/blogi-editor/run
	mkdir -p debian/blogi-editor/opt/blogi-editor/tmp
	mkdir -p debian/blogi-editor/opt/blogi/etc/blogi-editor/ssl
	mkdir -p debian/blogi-editor/opt/blogi/var/lib/blogi-editor
	mkdir -p debian/blogi-editor/opt/blogi/proc
	mkdir -p debian/blogi-editor/opt/blogi/sys
	mkdir -p debian/blogi-editor/opt/blogi/dev
	mkdir -p debian/blogi-editor/opt/blogi/run
	mkdir -p debian/blogi-editor/opt/blogi/tmp
	# Container user database
	echo "root:x:0:0:root:/root:/bin/false" > debian/blogi-editor/opt/blogi-editor/etc/passwd
	echo "blogi-editor:x:998:998:blogi-editor:/var/lib/blogi-editor:/bin/false" >> debian/blogi-editor/opt/blogi-editor/etc/passwd
	echo "root:x:0:" > debian/blogi-editor/opt/blogi-editor/etc/group
	echo "blogi-editor:x:998:" >> debian/blogi-editor/opt/blogi-editor/etc/group
	echo "root:x:0:0:root:/root:/bin/false" > debian/blogi-editor/opt/blogi/etc/passwd
	echo "blogi-editor:x:998:998:blogi-editor:/var/lib/blogi-editor:/bin/false" >> debian/blogi-editor/opt/blogi/etc/passwd
	echo "root:x:0:" > debian/blogi-editor/opt/blogi/etc/group
	echo "blogi-editor:x:998:" >> debian/blogi-editor/opt/blogi/etc/group
	# nspawn and systemd config
	install -D -m 644 debian/blogi-editor.nspawn debian/blogi-editor/etc/systemd/nspawn/blogi-editor.nspawn
	install -D -m 644 debian/blogi-editor.default-config.yaml debian/blogi-editor/usr/share/blogi-editor/blogi-editor.default-config.yaml
@@ -116,5 +116,5 @@ endif
override_dh_fixperms:
	dh_fixperms
ifneq ($(IS_NSPAWN),)
	chmod +x debian/blogi-editor/opt/blogi-editor/usr/local/musl/lib/libc.so
	chmod +x debian/blogi-editor/opt/blogi/usr/local/musl/lib/libc.so
endif