diff options
author | Ronan Le Martret <ronan.lemartret@iot.bzh> | 2018-05-15 18:10:19 +0200 |
---|---|---|
committer | Ronan Le Martret <ronan.lemartret@iot.bzh> | 2018-05-15 18:10:45 +0200 |
commit | 78c901ea7029ad6c60b03ad0b20f8152854fac09 (patch) | |
tree | 623a749f966db09384040fa57f8129cceba376de /conf.d/packaging/deb/debian.rules | |
parent | e8a81fabbb36771125426454a6ba3b1e47e3a753 (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.rules | 116 |
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 |