From a47577d2d488ade4f400c4e777ae6d8690053329 Mon Sep 17 00:00:00 2001 From: Benedict Lau Date: Tue, 30 Jan 2018 01:37:52 +0100 Subject: [PATCH 1/2] Take systemd service files from the yggdrasil project --- src/debian-packages/yggdrasil-go/Makefile | 4 ++++ .../yggdrasil-go/debian/DEBIAN/postrm | 2 +- .../lib/systemd/system/yggdrasil.service | 20 ------------------- 3 files changed, 5 insertions(+), 21 deletions(-) delete mode 100644 src/debian-packages/yggdrasil-go/debian/lib/systemd/system/yggdrasil.service diff --git a/src/debian-packages/yggdrasil-go/Makefile b/src/debian-packages/yggdrasil-go/Makefile index 2b0e320..44fae72 100644 --- a/src/debian-packages/yggdrasil-go/Makefile +++ b/src/debian-packages/yggdrasil-go/Makefile @@ -27,6 +27,8 @@ package_deb_armhf: build_bin_armhf sed -i "s|__SOURCE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/armhf/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __SOURCE__ macro in copyright file cp $(BUILD_DIR)/bin/armhf/yggdrasil $(BUILD_DIR)/debian/armhf/debian/usr/bin/ # Copy binary chmod +x $(BUILD_DIR)/debian/armhf/debian/usr/bin/yggdrasil # Make executable (not sure why it lost execution perm after copy) + mkdir -p $(BUILD_DIR)/debian/armhf/debian/lib/systemd/system # Make directories for systemd service files + cp $(BUILD_DIR)/src/contrib/systemd/* $(BUILD_DIR)/debian/armhf/debian/lib/systemd/system/ # Copy systemd service files cd $(BUILD_DIR)/debian/armhf; \ dpkg-deb --build debian; \ cp debian.deb $(OUTPUT_DIR)/$(PACKAGE_NAME)_$(VERSION)-$(DEBIAN_REVISION)_armhf.deb @@ -44,6 +46,8 @@ package_deb_amd64: build_bin_amd64 sed -i "s|__SOURCE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/amd64/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __SOURCE__ macro in copyright file cp $(BUILD_DIR)/bin/amd64/yggdrasil $(BUILD_DIR)/debian/amd64/debian/usr/bin/ # Copy binary chmod +x $(BUILD_DIR)/debian/amd64/debian/usr/bin/yggdrasil # Make executable (not sure why it lost execution perm after copy) + mkdir -p $(BUILD_DIR)/debian/amd64/debian/lib/systemd/system # Make directories for systemd service files + cp $(BUILD_DIR)/src/contrib/systemd/* $(BUILD_DIR)/debian/amd64/debian/lib/systemd/system/ # Copy systemd service files cd $(BUILD_DIR)/debian/amd64; \ dpkg-deb --build debian; \ cp debian.deb $(OUTPUT_DIR)/$(PACKAGE_NAME)_$(VERSION)-$(DEBIAN_REVISION)_amd64.deb diff --git a/src/debian-packages/yggdrasil-go/debian/DEBIAN/postrm b/src/debian-packages/yggdrasil-go/debian/DEBIAN/postrm index 60649f3..437fe9f 100755 --- a/src/debian-packages/yggdrasil-go/debian/DEBIAN/postrm +++ b/src/debian-packages/yggdrasil-go/debian/DEBIAN/postrm @@ -15,7 +15,7 @@ if [ "$1" = "purge" ]; then fi # Remove user configurations - rm -rf /etc/yggdrasil-go/conf.json + rm -rf /etc/yggdrasil.conf fi exit 0 diff --git a/src/debian-packages/yggdrasil-go/debian/lib/systemd/system/yggdrasil.service b/src/debian-packages/yggdrasil-go/debian/lib/systemd/system/yggdrasil.service deleted file mode 100644 index 3f17900..0000000 --- a/src/debian-packages/yggdrasil-go/debian/lib/systemd/system/yggdrasil.service +++ /dev/null @@ -1,20 +0,0 @@ -[Unit] -Description=yggdrasil: an experiment in scalable routing as an encrypted IPv6 overlay network -Wants=network.target -After=network.target - -[Service] -ProtectHome=true -ProtectSystem=true -SyslogIdentifier=yggdrasil -ExecStartPre=/bin/sh -ec "if ! test -s /etc/yggdrasil-go/conf.json; \ - then umask 077; \ - mkdir -p /etc/yggdrasil-go; \ - /usr/bin/yggdrasil --genconf > /etc/yggdrasil-go/conf.json; \ - echo 'WARNING: A new /etc/yggdrasil-go/conf.json file has been generated.'; \ - fi" -ExecStart=/bin/sh -c "exec yggdrasil --useconf < /etc/yggdrasil-go/conf.json" -Restart=always - -[Install] -WantedBy=multi-user.target From 67b72bda328516b9426d145ed01e22e05ce6a97a Mon Sep 17 00:00:00 2001 From: Benedict Lau Date: Tue, 30 Jan 2018 02:32:25 +0100 Subject: [PATCH 2/2] Collect duplicate code in yggdrasil-go Makefile --- src/debian-packages/yggdrasil-go/Makefile | 75 ++++++++++------------- 1 file changed, 31 insertions(+), 44 deletions(-) diff --git a/src/debian-packages/yggdrasil-go/Makefile b/src/debian-packages/yggdrasil-go/Makefile index 44fae72..5d30473 100644 --- a/src/debian-packages/yggdrasil-go/Makefile +++ b/src/debian-packages/yggdrasil-go/Makefile @@ -9,55 +9,35 @@ MAINTAINER = Benedict Lau SOURCE_URL = https://github.com/Arceliar/yggdrasil-go TAG = master +ARCHS = amd64 armhf BUILD_DIR = /tmp/$(PACKAGE_NAME) OUTPUT_DIR = /vagrant/output/debian-packages -package_deb: package_deb_armhf package_deb_amd64 - -package_deb_armhf: build_bin_armhf - mkdir -p $(BUILD_DIR)/debian/armhf - cp -r debian $(BUILD_DIR)/debian/armhf/ # Copy deb package files - sed -i "s|__PACKAGE__|$(PACKAGE_NAME)|g" $(BUILD_DIR)/debian/armhf/debian/DEBIAN/control # Replace __PACKAGE__ macro in control file - sed -i "s|__VERSION__|$(VERSION)-$(DEBIAN_REVISION)|g" $(BUILD_DIR)/debian/armhf/debian/DEBIAN/control # Replace __VERSION__ macro in control file - sed -i "s|__ARCHITECTURE__|armhf|g" $(BUILD_DIR)/debian/armhf/debian/DEBIAN/control # Replace __ARCHITECTURE__ macro in control file - sed -i "s|__MAINTAINER__|$(MAINTAINER)|g" $(BUILD_DIR)/debian/armhf/debian/DEBIAN/control # Replace __MAINTAINER__ macro in control file - sed -i "s|__HOMEPAGE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/armhf/debian/DEBIAN/control # Replace __HOMEPAGE__ macro in control file - sed -i "s|__PACKAGE__|$(PACKAGE_NAME)|g" $(BUILD_DIR)/debian/armhf/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __PACKAGE__ macro in copyright file - sed -i "s|__MAINTAINER__|$(MAINTAINER)|g" $(BUILD_DIR)/debian/armhf/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __MAINTAINER__ macro in copyright file - sed -i "s|__SOURCE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/armhf/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __SOURCE__ macro in copyright file - cp $(BUILD_DIR)/bin/armhf/yggdrasil $(BUILD_DIR)/debian/armhf/debian/usr/bin/ # Copy binary - chmod +x $(BUILD_DIR)/debian/armhf/debian/usr/bin/yggdrasil # Make executable (not sure why it lost execution perm after copy) - mkdir -p $(BUILD_DIR)/debian/armhf/debian/lib/systemd/system # Make directories for systemd service files - cp $(BUILD_DIR)/src/contrib/systemd/* $(BUILD_DIR)/debian/armhf/debian/lib/systemd/system/ # Copy systemd service files - cd $(BUILD_DIR)/debian/armhf; \ +# Package deb for a particular architecture +# +# $1 is the architecture +define package_deb_arch + mkdir -p $(BUILD_DIR)/debian/$(1) + cp -r debian $(BUILD_DIR)/debian/$(1)/ # Copy deb package files + sed -i "s|__PACKAGE__|$(PACKAGE_NAME)|g" $(BUILD_DIR)/debian/$(1)/debian/DEBIAN/control # Replace __PACKAGE__ macro in control file + sed -i "s|__VERSION__|$(VERSION)-$(DEBIAN_REVISION)|g" $(BUILD_DIR)/debian/$(1)/debian/DEBIAN/control # Replace __VERSION__ macro in control file + sed -i "s|__ARCHITECTURE__|$(1)|g" $(BUILD_DIR)/debian/$(1)/debian/DEBIAN/control # Replace __ARCHITECTURE__ macro in control file + sed -i "s|__MAINTAINER__|$(MAINTAINER)|g" $(BUILD_DIR)/debian/$(1)/debian/DEBIAN/control # Replace __MAINTAINER__ macro in control file + sed -i "s|__HOMEPAGE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/$(1)/debian/DEBIAN/control # Replace __HOMEPAGE__ macro in control file + sed -i "s|__PACKAGE__|$(PACKAGE_NAME)|g" $(BUILD_DIR)/debian/$(1)/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __PACKAGE__ macro in copyright file + sed -i "s|__MAINTAINER__|$(MAINTAINER)|g" $(BUILD_DIR)/debian/$(1)/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __MAINTAINER__ macro in copyright file + sed -i "s|__SOURCE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/$(1)/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __SOURCE__ macro in copyright file + cp $(BUILD_DIR)/bin/$(1)/yggdrasil $(BUILD_DIR)/debian/$(1)/debian/usr/bin/ # Copy binary + chmod +x $(BUILD_DIR)/debian/$(1)/debian/usr/bin/yggdrasil # Make executable (not sure why it lost execution perm after copy) + mkdir -p $(BUILD_DIR)/debian/$(1)/debian/lib/systemd/system # Make directories for systemd service files + cp $(BUILD_DIR)/src/contrib/systemd/* $(BUILD_DIR)/debian/$(1)/debian/lib/systemd/system/ # Copy systemd service files + cd $(BUILD_DIR)/debian/$(1); \ dpkg-deb --build debian; \ - cp debian.deb $(OUTPUT_DIR)/$(PACKAGE_NAME)_$(VERSION)-$(DEBIAN_REVISION)_armhf.deb + cp debian.deb $(OUTPUT_DIR)/$(PACKAGE_NAME)_$(VERSION)-$(DEBIAN_REVISION)_$(1).deb +endef -package_deb_amd64: build_bin_amd64 - mkdir -p $(BUILD_DIR)/debian/amd64 - cp -r debian $(BUILD_DIR)/debian/amd64/ # Copy deb package files - sed -i "s|__PACKAGE__|$(PACKAGE_NAME)|g" $(BUILD_DIR)/debian/amd64/debian/DEBIAN/control # Replace __PACKAGE__ macro in control file - sed -i "s|__VERSION__|$(VERSION)-$(DEBIAN_REVISION)|g" $(BUILD_DIR)/debian/amd64/debian/DEBIAN/control # Replace __VERSION__ macro in control file - sed -i "s|__ARCHITECTURE__|amd64|g" $(BUILD_DIR)/debian/amd64/debian/DEBIAN/control # Replace __ARCHITECTURE__ macro in control file - sed -i "s|__MAINTAINER__|$(MAINTAINER)|g" $(BUILD_DIR)/debian/amd64/debian/DEBIAN/control # Replace __MAINTAINER__ macro in control file - sed -i "s|__HOMEPAGE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/amd64/debian/DEBIAN/control # Replace __HOMEPAGE__ macro in control file - sed -i "s|__PACKAGE__|$(PACKAGE_NAME)|g" $(BUILD_DIR)/debian/amd64/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __PACKAGE__ macro in copyright file - sed -i "s|__MAINTAINER__|$(MAINTAINER)|g" $(BUILD_DIR)/debian/amd64/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __MAINTAINER__ macro in copyright file - sed -i "s|__SOURCE__|$(SOURCE_URL)|g" $(BUILD_DIR)/debian/amd64/debian/usr/share/doc/$(PACKAGE_NAME)/copyright # Replace __SOURCE__ macro in copyright file - cp $(BUILD_DIR)/bin/amd64/yggdrasil $(BUILD_DIR)/debian/amd64/debian/usr/bin/ # Copy binary - chmod +x $(BUILD_DIR)/debian/amd64/debian/usr/bin/yggdrasil # Make executable (not sure why it lost execution perm after copy) - mkdir -p $(BUILD_DIR)/debian/amd64/debian/lib/systemd/system # Make directories for systemd service files - cp $(BUILD_DIR)/src/contrib/systemd/* $(BUILD_DIR)/debian/amd64/debian/lib/systemd/system/ # Copy systemd service files - cd $(BUILD_DIR)/debian/amd64; \ - dpkg-deb --build debian; \ - cp debian.deb $(OUTPUT_DIR)/$(PACKAGE_NAME)_$(VERSION)-$(DEBIAN_REVISION)_amd64.deb - -build_bin_armhf: download_source - mkdir -p $(BUILD_DIR)/bin/armhf - cd $(BUILD_DIR)/src; \ - ./clean; \ - GOARCH=arm GOARM=7 ./build; \ - cp yggdrasil $(BUILD_DIR)/bin/armhf/ +package_deb: build_bin_amd64 build_bin_armhf + $(foreach arch,$(ARCHS),$(call package_deb_arch,$(arch));) build_bin_amd64: download_source mkdir -p $(BUILD_DIR)/bin/amd64 @@ -66,6 +46,13 @@ build_bin_amd64: download_source ./build; \ cp yggdrasil $(BUILD_DIR)/bin/amd64/ +build_bin_armhf: download_source + mkdir -p $(BUILD_DIR)/bin/armhf + cd $(BUILD_DIR)/src; \ + ./clean; \ + GOARCH=arm GOARM=7 ./build; \ + cp yggdrasil $(BUILD_DIR)/bin/armhf/ + download_source: mkdir_build git clone https://github.com/Arceliar/yggdrasil-go.git -b $(TAG) $(BUILD_DIR)/src