c9a81d2806
This change converts the appliances from openrc to systemd. In addition, systemd needs to at least be be installed on the build machine as we now use systemd-nspawn instead of chroot/bind mounts do to the fact that systemd-nspawn is much more robust and lese prone to errors. In addition: * All stage4 tarballs and images are now stored in the images/ directory by default. * A package dir is now required and is set up in the packages/ directory by default. * The portage directory is not unpacked in the chroot every time anymore and is instead bind-mounted from a directory by systemd-nspawn. This is the portage/ directory by default. * In addition there is a distfiles/ directory (by default) which is bind-mounted in the chroot. It does what you'd probably expect. * The Makefile learned new target, eclean, which will run eclean-dist and eclean-pkg to clean out obsolete distfiles and binary packages. * The REMOVE_PORTAGE_TREE option is removed as portage is no longer installed. * The unused/untested PRUNE_CRITICAL functionality has been removed. I have no idea if it worked and if it didn't I didn't want to fix it. * As appliances are always using systemd, UDEV is no longer optional. * Timezones and hostnames are now handled by systemd (systemd-firstboot). * Stage4 tarballs are now directly importable as systemd containers (and probably docker too though I haven't tested that yet). * A number of packages (for example dhcpd, acpid) have been removed from the appliances when systemd provides equivalent functionality. * We no longer override etc-update.conf. There's no reason. * A number of Makefile targets, checkpoints, temp files, etc have been removed as they are no longer needed.
55 lines
2.2 KiB
Makefile
55 lines
2.2 KiB
Makefile
APP_ROOT := /var/airport
|
|
AIRPORT_REPO ?= https://bitbucket.org/marduk/airport
|
|
AIRPORT_BRANCH ?= default
|
|
PGVER := 9.4
|
|
|
|
rcdefault := /etc/runlevels/default
|
|
|
|
preinstall:
|
|
|
|
|
|
postinstall: airport.service settings.py local.start local.stop issue nginx.conf start-airport stop-airport stop-game
|
|
sed -i 's/^PG_INITDB_OPTS.*/PG_INITDB_OPTS="--locale=en_US.UTF-8"/' $(CHROOT)/etc/conf.d/postgresql-$(PGVER)
|
|
$(inroot) eselect postgresql set $(PGVER)
|
|
rm -rf $(CHROOT)/var/lib/postgresql/$(PGVER)
|
|
$(inroot) bash -c "echo y |$(EMERGE) --config postgresql:$(PGVER)"
|
|
$(inroot) systemctl enable postgresql-$(PGVER)
|
|
$(inroot) chsh -s /bin/sh postgres
|
|
$(inroot) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv
|
|
rm -rf $(CHROOT)/$(APP_ROOT)
|
|
hg clone -u $(AIRPORT_BRANCH) $(AIRPORT_REPO) $(CHROOT)/$(APP_ROOT)
|
|
chroot $(CHROOT) virtualenv -p /usr/bin/python3 $(APP_ROOT)
|
|
$(inroot) bash -c ". $(APP_ROOT)/bin/activate ; pip install -r $(APP_ROOT)/requirements.txt"
|
|
$(inroot) bash -c ". $(APP_ROOT)/bin/activate ; pip install psycopg2 uwsgi"
|
|
mkdir -p $(CHROOT)/$(APP_ROOT)/etc
|
|
touch $(CHROOT)/$(APP_ROOT)/etc/__init__.py
|
|
cp settings.py $(CHROOT)/$(APP_ROOT)/etc
|
|
$(inroot) id -u airport >/dev/null || $(inroot) useradd -d $(APP_ROOT) -M -U -G postgres airport
|
|
mkdir -p $(CHROOT)/$(APP_ROOT)/bin
|
|
cp start-airport $(CHROOT)/$(APP_ROOT)/bin/start-airport
|
|
cp stop-airport $(CHROOT)/$(APP_ROOT)/bin/stop-airport
|
|
cp stop-game $(CHROOT)/$(APP_ROOT)/bin/stop-game
|
|
$(inroot) chown -R airport:airport $(APP_ROOT)
|
|
cp local.start $(CHROOT)/etc/local.d/airport.start
|
|
cp local.stop $(CHROOT)/etc/local.d/airport.stop
|
|
ifdef AIRPORT_SERIES
|
|
cat settings_$(AIRPORT_SERIES).py >> $(CHROOT)/$(APP_ROOT)/etc/settings.py
|
|
cp $(CHROOT)/$(APP_ROOT)/djangoproject/airport/fixtures/$(AIRPORT_SERIES).json \
|
|
$(CHROOT)/$(APP_ROOT)/djangoproject/airport/fixtures/initial_data.json
|
|
endif
|
|
cp issue $(CHROOT)/etc/issue
|
|
$(M4) -D HOSTNAME=$(HOSTNAME) nginx.conf > $(CHROOT)/etc/nginx/nginx.conf
|
|
$(inroot) gpasswd -a nginx airport
|
|
$(inroot) systemctl enable nginx
|
|
ifeq ($(AVAHI),YES)
|
|
$(inroot) $(EMERGE) -n $(USEPKG) net-dns/avahi
|
|
$(inroot) rm -f /etc/avahi/services/*
|
|
cp airport.service $(CHROOT)/etc/avahi/services
|
|
$(inroot) systemctl enable avahi-daemon
|
|
endif
|
|
$(inroot) $(EMERGE) --depclean --with-bdeps=n
|
|
|
|
|
|
clean:
|
|
|