From 135271c12dda487556a7e36fb7f3256a2d2e3c90 Mon Sep 17 00:00:00 2001 From: dequis Date: Sun, 12 Jun 2016 05:34:56 -0300 Subject: debian: install systemd units and use dh_systemd I'm using the debhelper version (9.20131227) to avoid depending on dh_systemd for debian wheezy and ubuntu precise. If it's older than that, it's probably a distro without dh_systemd. --- debian/control | 2 +- debian/rules | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 9da8ce9d..d83f089e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Priority: optional Maintainer: Wilmer van der Gaast Uploaders: Jelmer Vernooij Standards-Version: 3.9.8 -Build-Depends: libglib2.0-dev (>= 2.4), libevent-dev, libgnutls28-dev | libgnutls-dev | gnutls-dev, po-debconf, libpurple-dev, libotr5-dev, debhelper (>= 6.0.7~) +Build-Depends: libglib2.0-dev (>= 2.4), libevent-dev, libgnutls28-dev | libgnutls-dev | gnutls-dev, po-debconf, libpurple-dev, libotr5-dev, debhelper (>= 6.0.7~), dh-systemd (>= 1.5) | debhelper (<< 9.20131227) Homepage: http://www.bitlbee.org/ Vcs-Git: https://github.com/bitlbee/bitlbee Vcs-Browser: https://github.com/bitlbee/bitlbee diff --git a/debian/rules b/debian/rules index febb1922..b1b3bd5c 100755 --- a/debian/rules +++ b/debian/rules @@ -39,6 +39,8 @@ LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) CONFIGURE_OVERRIDES:=CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" +HAS_DH_SYSTEMD:=$(shell dpkg-query -W -f='$${Status}' dh-systemd 2>/dev/null | grep -c "ok installed") + build: build-stamp build-stamp: dh_testdir @@ -80,6 +82,10 @@ install: build $(MAKE) -C debian/build-native install-plugin-otr DESTDIR=`pwd`/debian/bitlbee-plugin-otr $(MAKE) -C debian/build-native install-plugin-skype DESTDIR=`pwd`/debian/skyped +ifeq ($(HAS_DH_SYSTEMD),1) + $(MAKE) -C debian/build-native install-systemd DESTDIR=`pwd`/debian/bitlbee-common +endif + ifneq ($(BITLBEE_SKYPE),0) mkdir -p debian/bitlbee-plugin-skype/usr mv debian/skyped/usr/lib debian/bitlbee-plugin-skype/usr @@ -107,7 +113,13 @@ binary-common: # Hardy and Lenny are deprecated. for p in bitlbee bitlbee-libpurple bitlbee-dev bitlbee-plugin-otr; do rm -r debian/$$p/usr/share/doc/$$p && ln -s bitlbee-common debian/$$p/usr/share/doc/$$p || true; done dh_installdebconf +ifeq ($(HAS_DH_SYSTEMD),1) + dh_systemd_enable dh_installinit --init-script=bitlbee + dh_systemd_start +else + dh_installinit --init-script=bitlbee +endif dh_installman dh_lintian dh_strip -- cgit v1.2.3 From 5dbf66ed84bc44ff44a2471355601f619087cafb Mon Sep 17 00:00:00 2001 From: dequis Date: Sun, 12 Jun 2016 21:55:26 -0300 Subject: purple: add $plugindir/purple to the plugin search path This allows adding bitlbee-specific purple plugins in a directory controlled by the user who starts bitlbee (as it can be defined in bitlbee.conf, PluginDir). Pidgin and finch have something similar allowing users to place plugins in ~/.purple/plugins: path = g_build_filename(purple_user_dir(), "plugins", NULL); The direct equivalent would be to use our config dir, but i'd rather not put executable modules there. --- protocols/purple/purple.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c index 6ea2d7d8..db553407 100644 --- a/protocols/purple/purple.c +++ b/protocols/purple/purple.c @@ -1453,6 +1453,10 @@ void purple_initmodule() purple_util_set_user_dir(dir); g_free(dir); + dir = g_strdup_printf("%s/purple", global.conf->plugindir); + purple_plugins_add_search_path(dir); + g_free(dir); + purple_debug_set_enabled(FALSE); purple_core_set_ui_ops(&bee_core_uiops); purple_eventloop_set_ui_ops(&glib_eventloops); -- cgit v1.2.3 From ad5a9078ff68c2556a2b692855f04938efc06e3d Mon Sep 17 00:00:00 2001 From: dequis Date: Tue, 14 Jun 2016 03:16:02 -0300 Subject: systemd: Stop murdering the whole control group on stop With this change, restarting or upgrading bitlbee doesn't kill child processes anymore, keeping the behavior of sysv scripts. This is desirable in public servers, where you probably want to upgrade the master process without disconnecting everyone. --- init/bitlbee.service.in | 1 + 1 file changed, 1 insertion(+) diff --git a/init/bitlbee.service.in b/init/bitlbee.service.in index 64117fcf..c89d52fd 100644 --- a/init/bitlbee.service.in +++ b/init/bitlbee.service.in @@ -4,6 +4,7 @@ After=syslog.target [Service] ExecStart=@sbindir@bitlbee -F -n +KillMode=process [Install] WantedBy=multi-user.target -- cgit v1.2.3 From 60d6c033a27aec3f4172e3eb8a048fc150e4ae83 Mon Sep 17 00:00:00 2001 From: dequis Date: Tue, 14 Jun 2016 04:30:09 -0300 Subject: debian: add #DEBHELPER# tag to maintscripts So that the systemd debhelper stuff can do its job. Also fixes a lintian warning. --- debian/bitlbee-common.postinst | 6 +----- debian/bitlbee-common.postrm | 15 +++++---------- debian/bitlbee-common.prerm | 4 ++-- debian/bitlbee.prerm | 2 ++ 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/debian/bitlbee-common.postinst b/debian/bitlbee-common.postinst index 4587ce7a..de814011 100644 --- a/debian/bitlbee-common.postinst +++ b/debian/bitlbee-common.postinst @@ -9,8 +9,6 @@ PORT="$RET" CONFDIR=/var/lib/bitlbee/ -update-rc.d bitlbee defaults > /dev/null 2>&1 - ## Load default option. Don't want to put this in debconf (yet?) BITLBEE_OPTS=-F BITLBEE_DISABLED=0 @@ -91,6 +89,4 @@ else chown bitlbee /etc/bitlbee/bitlbee.conf fi -if [ -z "$2" ]; then - invoke-rc.d bitlbee start -fi +#DEBHELPER# diff --git a/debian/bitlbee-common.postrm b/debian/bitlbee-common.postrm index 92465c4a..79e621a1 100644 --- a/debian/bitlbee-common.postrm +++ b/debian/bitlbee-common.postrm @@ -2,15 +2,10 @@ set -e -[ "$1" = "purge" ] || exit 0 - -if [ -e /usr/share/debconf/confmodule ]; then - . /usr/share/debconf/confmodule; - db_purge; +if [ "$1" = "purge" ]; then + rm -f /etc/default/bitlbee + deluser --system bitlbee || true + rm -rf /var/lib/bitlbee ## deluser doesn't seem to do this for homedirs in /var fi -update-rc.d bitlbee remove > /dev/null 2>&1 || true -rm -f /etc/default/bitlbee - -deluser --system bitlbee || true -rm -rf /var/lib/bitlbee ## deluser doesn't seem to do this for homedirs in /var +#DEBHELPER# diff --git a/debian/bitlbee-common.prerm b/debian/bitlbee-common.prerm index ea96180f..ba46e981 100644 --- a/debian/bitlbee-common.prerm +++ b/debian/bitlbee-common.prerm @@ -10,6 +10,6 @@ if [ "$1" = "upgrade" ]; then rm -f /usr/share/bitlbee/help.upgrading mv /usr/share/bitlbee/help.txt /usr/share/bitlbee/help.upgrading fi -else - invoke-rc.d bitlbee stop fi + +#DEBHELPER# diff --git a/debian/bitlbee.prerm b/debian/bitlbee.prerm index e5d03404..2c9f6ab9 100644 --- a/debian/bitlbee.prerm +++ b/debian/bitlbee.prerm @@ -5,3 +5,5 @@ set -e if [ "$1" != "upgrade" ]; then invoke-rc.d bitlbee stop fi + +#DEBHELPER# -- cgit v1.2.3