summaryrefslogtreecommitdiffstats
path: root/conf.d/packaging/deb/debian.rules
diff options
context:
space:
mode:
authorRonan Le Martret <ronan.lemartret@iot.bzh>2018-05-15 18:10:19 +0200
committerRonan Le Martret <ronan.lemartret@iot.bzh>2018-05-15 18:10:45 +0200
commit78c901ea7029ad6c60b03ad0b20f8152854fac09 (patch)
tree623a749f966db09384040fa57f8129cceba376de /conf.d/packaging/deb/debian.rules
parente8a81fabbb36771125426454a6ba3b1e47e3a753 (diff)
Add packaging files
* it's easier to manage native build package. Change-Id: I358a07f2569ac52c792443345244d3294a1c3b8b Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
Diffstat (limited to 'conf.d/packaging/deb/debian.rules')
-rw-r--r--conf.d/packaging/deb/debian.rules116
1 files changed, 116 insertions, 0 deletions
diff --git a/conf.d/packaging/deb/debian.rules b/conf.d/packaging/deb/debian.rules
new file mode 100644
index 0000000..2be0c7e
--- /dev/null
+++ b/conf.d/packaging/deb/debian.rules
@@ -0,0 +1,116 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+endif
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ #
+ touch configure-stamp
+
+build: build-stamp
+build-stamp: configure-stamp
+ dh_testdir
+ touch build-stamp
+
+clean:
+ #dh_testdir
+ dh_testroot
+ rm -f configure-stamp build-stamp
+ [ ! -f Makefile ] || $(MAKE) distclean
+ #dh_clean
+
+NAME=agl-xds-server
+INSTALL_XDS_DIR=/opt/AGL/xds/server
+INSTALL_BIN_DIR=/opt/AGL/bin
+
+DEB_BASE_DIR=debian/$(NAME)
+DEB_INSTALL_XDS_DIR=$(DEB_BASE_DIR)/$(INSTALL_XDS_DIR)
+DEB_INSTALL_BIN_DIR=$(DEB_BASE_DIR)/$(INSTALL_BIN_DIR)
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs
+
+ # Install xds-server into /opt/AGL/xds/server
+ mkdir -p $(DEB_INSTALL_XDS_DIR) $(DEB_INSTALL_BIN_DIR)
+ find . -maxdepth 1 ! -name debian -exec cp -r {} $(DEB_INSTALL_XDS_DIR) \;
+ rm -fr $(DEB_INSTALL_XDS_DIR)/debian $(DEB_INSTALL_XDS_DIR)/*-stamp
+ cd $(DEB_INSTALL_BIN_DIR) && ln -s ../xds/server/xds-server
+ cd $(DEB_INSTALL_BIN_DIR) && ln -s ../xds/server/syncthing
+ cd $(DEB_INSTALL_BIN_DIR) && ln -s ../xds/server/syncthing-inotify
+
+ # Install service files
+ mkdir -p $(DEB_BASE_DIR)/usr/lib/systemd/user
+ cp $(DEB_INSTALL_XDS_DIR)/conf.d/usr/lib/systemd/user/xds-server.service $(DEB_BASE_DIR)/usr/lib/systemd/user
+ mkdir -p $(DEB_BASE_DIR)/etc/default $(DEB_BASE_DIR)/etc/xds/server
+ cp $(DEB_INSTALL_XDS_DIR)/conf.d/etc/default/xds-server $(DEB_BASE_DIR)/etc/default/
+ cp $(DEB_INSTALL_XDS_DIR)/conf.d/etc/xds/server/* $(DEB_BASE_DIR)/etc/xds/server/
+ mkdir -p $(DEB_BASE_DIR)/etc/systemd/user/multi-user.target.wants
+ ln -s /usr/lib/systemd/user/xds-server.service $(DEB_BASE_DIR)/etc/systemd/user/multi-user.target.wants/
+ mkdir -p $(DEB_BASE_DIR)/etc/profile.d
+ sed -e "s;@XDS_INSTALL_BIN_DIR@;$(INSTALL_BIN_DIR);g" $(DEB_INSTALL_XDS_DIR)/conf.d/etc/profile.d/xds-server.sh > $(DEB_BASE_DIR)/etc/profile.d/$(NAME).sh
+
+ # Auto-enable xds-server systemd service
+ mkdir -p $(DEB_BASE_DIR)/usr/lib/systemd/user/default.target.wants && ln -s ../xds-server.service $(DEB_BASE_DIR)/usr/lib/systemd/user/default.target.wants/
+
+ # Cleanup
+ rm -rf $(DEB_INSTALL_XDS_DIR)/conf.d
+
+ # Move all files in their corresponding package
+ dh_install --list-missing -s --sourcedir=debian/tmp
+
+postinst: install
+ if [ -f "/etc/xds-server/config.json" ]; then
+ install -b -S .rpmsave /etc/xds-server/config.json /etc/xds/server/server-config.json
+ fi
+ echo "[XDS Server] To enable the service with your user session: systemctl --user enable xds-server"
+
+prerm:
+ rm -f /etc/xds-server/*.rpm*
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+ dh_makeshlibs -V
+ dh_installdeb
+ #dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install