aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile14
-rw-r--r--debian/control3
-rw-r--r--debian/postinst50
-rw-r--r--debian/postrm37
-rw-r--r--debian/preinst46
-rw-r--r--debian/prerm13
-rwxr-xr-xdebian/rules7
-rw-r--r--debian/templates11
-rw-r--r--scripts/naskconf24
9 files changed, 62 insertions, 143 deletions
diff --git a/Makefile b/Makefile
index 60e27a6..e2ffc96 100644
--- a/Makefile
+++ b/Makefile
@@ -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"; }