]> git.donarmstrong.com Git - deb_pkgs/autorandr.git/commitdiff
Added Makefile target to create a deb archive
authorPhillip Berndt <phillip.berndt@googlemail.com>
Mon, 19 Sep 2016 12:32:20 +0000 (14:32 +0200)
committerPhillip Berndt <phillip.berndt@googlemail.com>
Mon, 19 Sep 2016 12:32:28 +0000 (14:32 +0200)
This largely ignores all Debian packaging standards, and simply creates
a Debian package which contains the files that would be installed if the
user typed `sudo make install' on his (Debian) system.

Makefile
contrib/packaging/debian/debian/control [new file with mode: 0644]
contrib/packaging/debian/make_deb.sh [new file with mode: 0755]

index 10570e48618fdd98b8166c5ffc329751c72446a1..65d4708a0d7a562b4568ea25284115f9fb435c70 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,10 @@ all:
        @echo "The following components were autodetected and will be installed:"
        @echo " "$(DEFAULT_TARGETS)
        @echo "You can use the TARGETS variable to override, e.g. \"make install TAGETS='autorandr pmutils'\"."
+       @echo
+       @echo "The following additional targets are available:"
+       @echo
+       @echo "    make deb        creates a Debian package"
 
 # Rules for autorandr itself
 DEFAULT_TARGETS=autorandr
@@ -21,49 +25,53 @@ uninstall_autorandr:
        rm -f ${DESTDIR}${PREFIX}/bin/autorandr
 
 # Rules for bash_completion
+BASH_COMPLETION_DIR=/etc/bash_completion.d
 HAVE_BASH_COMPLETION=$(shell [ -d /etc/bash_completion.d/ ] && echo "y")
 ifeq ($(HAVE_BASH_COMPLETION),y)
 DEFAULT_TARGETS+=bash_completion
 endif
 
 install_bash_completion:
-       install -D -m 644 contrib/bash_completion/autorandr ${DESTDIR}/etc/bash_completion.d/autorandr
+       install -D -m 644 contrib/bash_completion/autorandr ${DESTDIR}/${BASH_COMPLETION_DIR}/autorandr
 
 uninstall_bash_completion:
-       rm -f ${DESTDIR}/etc/bash_completion.d/autorandr
+       rm -f ${DESTDIR}/${BASH_COMPLETION_DIR}/autorandr
 
 # Rules for pmutils
+PM_UTILS_DIR=/etc/pm/sleep.d
 HAVE_PMUTILS=$(shell [ -x /usr/sbin/pm-suspend ] && echo "y")
 ifeq ($(HAVE_PMUTILS),y)
 DEFAULT_TARGETS+=pmutils
 endif
 
 install_pmutils:
-       install -D -m 755 contrib/pm-utils/40autorandr ${DESTDIR}/etc/pm/sleep.d/40autorandr
+       install -D -m 755 contrib/pm-utils/40autorandr ${DESTDIR}/${PM_UTILS_DIR}/40autorandr
 
 uninstall_pmutils:
-       rm -f ${DESTDIR}/etc/pm/sleep.d/40autorandr
+       rm -f ${DESTDIR}/${PM_UTILS_DIR}/40autorandr
 
 # Rules for systemd
+SYSTEMD_UNIT_DIR=/etc/systemd/system/
 HAVE_SYSTEMD=$(shell grep -q systemd /proc/1/comm && echo "y")
 ifeq ($(HAVE_SYSTEMD),y)
 DEFAULT_TARGETS+=systemd
 endif
 
 install_systemd:
-       install -D -m 644 contrib/systemd/autorandr-resume.service ${DESTDIR}/etc/systemd/system/autorandr-resume.service
+       install -D -m 644 contrib/systemd/autorandr-resume.service ${DESTDIR}/${SYSTEMD_UNIT_DIR}/autorandr-resume.service
 
 uninstall_systemd:
-       rm -f ${DESTDIR}/etc/systemd/system/autorandr-resume.service
+       rm -f ${DESTDIR}/${SYSTEMD_UNIT_DIR}/autorandr-resume.service
 
 # Rules for udev
-HAVE_UDEV=$(shell [ -d /etc/udev/rules.d/ ] && echo "y")
+UDEV_RULES_DIR=/etc/udev/rules.d
+HAVE_UDEV=$(shell [ -d "${UDEV_RULES_DIR}" ] && echo "y")
 ifeq ($(HAVE_UDEV),y)
 DEFAULT_TARGETS+=udev
 endif
 
 install_udev:
-       install -D -m 644 contrib/udev/40-monitor-hotplug.rules ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules
+       install -D -m 644 contrib/udev/40-monitor-hotplug.rules ${DESTDIR}/${UDEV_RULES_DIR}/40-monitor-hotplug.rules
 ifeq (${USER},root)
        udevadm control --reload-rules
 else
@@ -72,9 +80,12 @@ else
 endif
 
 uninstall_udev:
-       rm -f ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules
+       rm -f ${DESTDIR}/${UDEV_RULES_DIR}/40-monitor-hotplug.rules
 
 
 TARGETS=$(DEFAULT_TARGETS)
 install: $(patsubst %,install_%,$(TARGETS))
 uninstall: $(patsubst %,uninstall_%,$(TARGETS))
+
+deb:
+       ./contrib/packaging/debian/make_deb.sh
diff --git a/contrib/packaging/debian/debian/control b/contrib/packaging/debian/debian/control
new file mode 100644 (file)
index 0000000..7fb2be8
--- /dev/null
@@ -0,0 +1,14 @@
+Package: autorandr
+Version: 1.0
+Section: x11
+Priority: optional
+Maintainer: Phillip Berndt <phillip.berndt@googlemail.com>
+Build-Depends: debhelper (>=9)
+Standards-Version: 3.9.6
+Homepage: https://github.com/phillipberndt/autorandr
+Architecture: all
+Depends: x11-xserver-utils, python
+Description: Automatically select a display configuration for connected devices
+ Autorandr is a script for managing xrandr configurations based on the
+ connected devices. It can be set up to automatically switch to a stored
+ configuration whenever a change in the configuration is detected.
diff --git a/contrib/packaging/debian/make_deb.sh b/contrib/packaging/debian/make_deb.sh
new file mode 100755 (executable)
index 0000000..404aaef
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+
+# Determine version
+if git rev-parse --git-dir >/dev/null 2>&1; then
+       V="$(git describe --tags 2>/dev/null)"
+       if [ "$?" -ne 0 ]; then
+               V=0.1
+       fi
+else
+       V=0.1
+fi
+
+# Create/determine working directory
+P="`dirname $(readlink -f "$0")`"
+LD="autorandr-$V"
+D="$P/$LD"
+O="`pwd`/$LD.deb"
+
+if [ -d "$D" ]; then
+       echo "Directory $D does already exist. Aborting.."
+       exit 1
+fi
+
+# Error handling: On error, abort and clear $D
+_cleanup() {
+       rm -rf "$D"
+}
+trap _cleanup EXIT
+set -e
+
+mkdir $D
+
+# Debian(ish) specific part
+make -C "$P/../../../" \
+       DESTDIR="$D" \
+       TARGETS="autorandr bash_completion pmutils systemd udev" \
+       BASH_COMPLETION_DIR=/usr/share/bash-completion/completions \
+       SYSTEMD_UNIT_DIR=/lib/systemd/system \
+       PM_UTILS_DIR=/usr/lib/pm-utils/sleep.d \
+       UDEV_RULES_DIR=/lib/udev/rules.d/ \
+       install
+
+SIZE=$(du -s $D | awk '{print $1}')
+
+cp -r "$P/debian" "$D/DEBIAN"
+[ -d "$D/etc" ] && (cd $D; find etc) > "$D/DEBIAN/conffiles"
+sed -i -re "s#Version:.+#Version: $V#" "$D/DEBIAN/control"
+echo "Installed-Size: $SIZE" >> "$D/DEBIAN/control"
+fakeroot dpkg-deb -b "$D" "$O"