diff options
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | debian/control | 3 | ||||
-rw-r--r-- | debian/postinst | 50 | ||||
-rw-r--r-- | debian/postrm | 37 | ||||
-rw-r--r-- | debian/preinst | 46 | ||||
-rw-r--r-- | debian/prerm | 13 | ||||
-rwxr-xr-x | debian/rules | 7 | ||||
-rw-r--r-- | debian/templates | 11 | ||||
-rw-r--r-- | scripts/naskconf | 24 |
9 files changed, 62 insertions, 143 deletions
@@ -1,8 +1,8 @@ -CFLAGS ?= $(shell ncurses5-config --cflags) -Wall -D_GNU_SOURCE=1 -g +CFLAGS ?= $(shell ncurses5-config --cflags) -Wall -D_GNU_SOURCE=1 LDFLAGS ?= $(shell ncurses5-config --libs) -pthread CC := gcc INSTALL ?= install -VERSION = $(shell if [ -d ./.git ]; then echo -n "git-"; git rev-parse --short HEAD; else echo "1.1a"; fi) +VERSION ?= $(shell if [ -d ./.git ]; then echo -n "git-"; git rev-parse --short HEAD; else echo "1.1a"; fi) BIN = naskpass SOURCES = status.c ui_ani.c ui_input.c ui_statusbar.c ui.c main.c @@ -13,13 +13,15 @@ $(BIN): $(SOURCES) install: $(INSTALL) -D -m 0755 $(BIN) $(DESTDIR)/lib/cryptsetup/naskpass - $(INSTALL) -D -m 0755 scripts/naskpass.inithook $(DESTDIR)/usr/share/initramfs-tools/hooks/naskpass + $(INSTALL) -D -m 0755 scripts/naskpass.inithook $(DESTDIR)/usr/share/naskpass/naskpass.hook.initramfs $(INSTALL) -D -m 0755 scripts/naskpass.initscript $(DESTDIR)/usr/share/naskpass/naskpass.script.initramfs + $(INSTALL) -D -m 0755 scripts/naskconf $(DESTDIR)/usr/share/naskpass/naskconf uninstall: rm -f $(DESTDIR)/lib/cryptsetup/naskpass rm -f $(DESTDIR)/usr/share/initramfs-tools/hooks/naskpass rm -f $(DESTDIR)/usr/share/naskpass/naskpass.script.initramfs + rm -f $(DESTDIR)/usr/share/naskpass/naskconf rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/naskpass clean: @@ -28,10 +30,4 @@ clean: source: -dh_make --createorig -p naskpass_$(VERSION) -s -y -deb-clean: - -rm ../naskpass_$(VERSION)* - -deb: deb-clean source - dpkg-buildpackage -tc -us -uc - .PHONY: all install clean diff --git a/debian/control b/debian/control index e39bd4a..6956421 100644 --- a/debian/control +++ b/debian/control @@ -10,6 +10,7 @@ Homepage: https://github.com/freecoding/naskpass.git Package: naskpass Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libncurses5, libtinfo5 +Depends: ${shlibs:Depends}, ${misc:Depends}, cryptsetup (= 2:1.4.3-4), libncurses5, libtinfo5 +Conflicts: plymouth Description: Ncurses based cryptsetup askpass replacement NULL. diff --git a/debian/postinst b/debian/postinst index 95897c1..b951d83 100644 --- a/debian/postinst +++ b/debian/postinst @@ -5,56 +5,28 @@ set -e - -export RDSUM="5924c70e5c9fabf0398050349c3f4f283ab80091b23ea8c677249ee7bdd41f6e4910ce5e1bc32577e67763dc30d9b96cc3528256e1cc63dba959a5e3866ec21f" -export ORGFILE="/usr/share/initramfs-tools/scripts/local-top/cryptroot" -export DIVFILE="/usr/share/naskpass/cryptroot.orig" -export BCKFILE="/var/backups/cryptroot.naskpass" - +. /usr/share/debconf/confmodule +. /usr/share/naskpass/naskconf case "$1" in install) ;; configure|upgrade) - if [ ${RDSUM} = "$(sha512sum ${ORGFILE} | grep -Eo '^[0-9a-zA-Z]*')" ]; then - active=0 - text="NOT active. Activate?" + db_input high naskpass/activate || true + db_go + db_get naskpass/activate + if [ "$RET" = "true" ]; then + nask_activate else - active=1 - text="active. Deactivate?" + nask_deactivate fi - set +e - whiptail --yesno "naskpass is $text" --defaultno 10 70 - choice=$? - set -e - case ${choice} in - 0) - if [ ${active} -eq 0 ]; then - echo "Activating naskpass .." >&2 - mv ${ORGFILE} ${DIVFILE} || true - mv ${BCKFILE} ${ORGFILE} || true - update-initramfs -u - elif [ ${active} -eq 1 ]; then - echo "Deactivating naskpass .." >&2 - mv ${ORGFILE} ${BCKFILE} || true - cp ${DIVFILE} ${ORGFILE} || true - update-initramfs -u - else - echo "Doin' nothing .." >&2 - fi - ;; - 1) - echo "Keeping naskpass' status .." >&2 - update-initramfs -u - ;; - *) - echo "Unknown whiptail error occured .." >&2 - ;; - esac + echo + update-initramfs -u ;; abort-upgrade) + db_purge ;; *) diff --git a/debian/postrm b/debian/postrm deleted file mode 100644 index 6de4a05..0000000 --- a/debian/postrm +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# postrm script for naskpass -# -# see: dh_installdeb(1) - -set -e - - -export ORGFILE="/usr/share/initramfs-tools/scripts/local-top/cryptroot" -export BCKFILE="/var/backup/cryptroot.naskpass" - -case "$1" in - purge) - rm -f ${BCKFILE} - ;; - remove) - dpkg-divert --package naskpass --remove --rename ${ORGFILE} || true - update-initramfs -u - ;; - upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) - if [ -d /usr/share/naskpass ]; then - rmdir --ignore-fail-on-non-empty /usr/share/naskpass - fi - ;; - - *) - echo "postrm called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/preinst b/debian/preinst deleted file mode 100644 index f50aa9f..0000000 --- a/debian/preinst +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -# postinst script for naskpass -# -# see: dh_installdeb(1) - -set -e - - -export RDSUM="5924c70e5c9fabf0398050349c3f4f283ab80091b23ea8c677249ee7bdd41f6e4910ce5e1bc32577e67763dc30d9b96cc3528256e1cc63dba959a5e3866ec21f" -export ORGFILE="/usr/share/initramfs-tools/scripts/local-top/cryptroot" -export DIVFILE="/usr/share/naskpass/cryptroot.orig" -export BCKFILE="/var/backups/cryptroot.naskpass" - -case "$1" in - upgrade) - if [ -f ${BCKFILE} ]; then - mv ${BCKFILE} ${ORGFILE} || true - fi - ;; - install) - mkdir -p /usr/share/naskpass - if [ ! -f ${ORGFILE} ]; then - whiptail --title "Missing file" --msgbox "/usr/share/initramfs-tools/scripts/local-top/cryptroot is missing!\nabort .." 9 70 - else - if [ ${RDSUM} = "$(sha512sum ${ORGFILE} | grep -Eo '^[0-9a-zA-Z]*')" ]; then - dpkg-divert --package naskpass --divert ${DIVFILE} --rename --add ${ORGFILE} - update-initramfs -u - fi - fi - ;; - - abort-upgrade) - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/prerm b/debian/prerm index 1ac5ae3..5b1c46d 100644 --- a/debian/prerm +++ b/debian/prerm @@ -6,16 +6,13 @@ set -e -export ORGFILE="/usr/share/initramfs-tools/scripts/local-top/cryptroot" -export DIVFILE="/usr/share/naskpass/cryptroot.orig" -export BCKFILE="/var/backup/cryptroot.naskpass" +. /usr/share/debconf/confmodule +. /usr/share/naskpass/naskconf case "$1" in - purge|remove) - dpkg-divert --package naskpass --divert ${DIVFILE} --rename --add ${ORGFILE} || true - if [ -r ${BCKFILE} ]; then - mv ${BCKFILE} ${ORGFILE} - fi + remove|purge) + nask_deactivate + db_purge ;; upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) ;; diff --git a/debian/rules b/debian/rules index 3f5e541..532ed81 100755 --- a/debian/rules +++ b/debian/rules @@ -2,12 +2,13 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 +DEBVERS := $(shell dpkg-parsechangelog | sed -n -e 's/^Version: //p') %: dh $@ +override_dh_auto_build: + $(MAKE) VERSION="$(DEBVERS)" all + override_dh_auto_install: - echo "*** REDIRECT INITRAMFS SCRIPT" >&2 $(MAKE) DESTDIR=$(CURDIR)/debian/naskpass install - mkdir -p $(CURDIR)/debian/naskpass/usr/share/initramfs-tools/scripts/local-top - mv $(CURDIR)/debian/naskpass/usr/share/naskpass/naskpass.script.initramfs $(CURDIR)/debian/naskpass/usr/share/initramfs-tools/scripts/local-top/cryptroot diff --git a/debian/templates b/debian/templates new file mode 100644 index 0000000..aecdded --- /dev/null +++ b/debian/templates @@ -0,0 +1,11 @@ +Template: naskpass/activate +Type: boolean +Default: false +Description: Do you want to activate naskpass? + Activate or Deactivate the naskpass initramfs replacement + for askpass. You can activate/deactivate it later with + 'dpkg-reconfigure naskpass'. + +Template: naskpass/active +Type: boolean +Default: false diff --git a/scripts/naskconf b/scripts/naskconf new file mode 100644 index 0000000..8c66b77 --- /dev/null +++ b/scripts/naskconf @@ -0,0 +1,24 @@ +#!/bin/sh + +. /usr/share/debconf/confmodule + +_nask_cmd () { + db_get naskpass/active + if [ "x$1" = "xACTV" ] && [ "$RET" = "false" ]; then + dpkg-divert --package naskpass --add --rename --divert /var/backups/cryptroot.initramfs.bak \ + /usr/share/initramfs-tools/scripts/local-top/cryptroot + ln -s /usr/share/naskpass/naskpass.script.initramfs \ + /usr/share/initramfs-tools/scripts/local-top/cryptroot + ln -s /usr/share/naskpass/naskpass.hook.initramfs \ + /usr/share/initramfs-tools/hooks/naskpass + db_set naskpass/active true + elif [ "x$1" = "xDCTV" ] && [ "$RET" = "true" ]; then + rm /usr/share/initramfs-tools/scripts/local-top/cryptroot + rm /usr/share/initramfs-tools/hooks/naskpass + dpkg-divert --package naskpass --rename --remove /usr/share/initramfs-tools/scripts/local-top/cryptroot + db_set naskpass/active false + fi +} + +nask_activate () { _nask_cmd "ACTV"; } +nask_deactivate () { _nask_cmd "DCTV"; } |