From 2f10c858ea8bc579414b3a8d8b6eced4a94a5114 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 12 Sep 2021 11:30:45 +0200 Subject: Adding debian packaging. Signed-off-by: Daniel Baumann --- debian/changelog | 5 + debian/control | 25 ++++ debian/copyright | 25 ++++ debian/open-infrastructure-ddns-client.config | 50 ++++++++ debian/open-infrastructure-ddns-client.postinst | 146 +++++++++++++++++++++++ debian/open-infrastructure-ddns-client.postrm | 23 ++++ debian/open-infrastructure-ddns-client.templates | 47 ++++++++ debian/rules | 21 ++++ debian/source/format | 1 + debian/upstream/signing-key.asc | 64 ++++++++++ debian/watch | 3 + 11 files changed, 410 insertions(+) create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/open-infrastructure-ddns-client.config create mode 100755 debian/open-infrastructure-ddns-client.postinst create mode 100755 debian/open-infrastructure-ddns-client.postrm create mode 100644 debian/open-infrastructure-ddns-client.templates create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 debian/upstream/signing-key.asc create mode 100644 debian/watch diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..98d3688 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +open-infrastructure-network-tools (20210912-0.1) sid; urgency=medium + + * Initial upload to sid (Closes: #nnnnnn). + + -- Daniel Baumann Sun, 12 Sep 2021 11:23:03 +0200 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..8c5761b --- /dev/null +++ b/debian/control @@ -0,0 +1,25 @@ +Source: open-infrastructure-network-tools +Section: admin +Priority: optional +Maintainer: Daniel Baumann +Build-Depends: + debhelper-compat (= 13), + python3-docutils, +Rules-Requires-Root: no +Standards-Version: 4.6.0 +Homepage: https://open-infrastructure.net/software/network-tools +Vcs-Browser: https://git.progress-linux.org/users/daniel.baumann/debian/packages/open-infrastructure-network-tools +Vcs-Git: https://git.progress-linux.org/users/daniel.baumann/debian/packages/open-infrastructure-network-tools + +Package: open-infrastructure-ddns-client +Section: admin +Architecture: all +Depends: + jq, + knot-dnsutils | bind9-dnsutils, + wget | curl, + ${misc:Depends}, +Provides: + ddns-client, +Description: Dynamic DDNS client + This package contains additional a Dynamic DDNS client. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..210bce8 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,25 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: network-tools +Upstream-Contact: Open Infrastructure +Source: https://git.open-infrastructure.net/software/network-tools + +Files: * +Copyright: 2014-2021 Daniel Baumann +License: GPL-3+ + +License: GPL-3+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + The full text of the GNU General Public License version 3 + can be found in the file /usr/share/common-licenses/GPL-3. diff --git a/debian/open-infrastructure-ddns-client.config b/debian/open-infrastructure-ddns-client.config new file mode 100644 index 0000000..0c97be5 --- /dev/null +++ b/debian/open-infrastructure-ddns-client.config @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +CONFFILE="/etc/network-tools/config/ddns-client.conf" + +if [ -e "${CONFFILE}" ] +then + . ${CONFFILE} || true + + db_set open-infrastructure-ddns-client/nameservers "${NAMESERVERS}" + db_fset open-infrastructure-ddns-client/nameservers seen false || true + db_go + + db_set open-infrastructure-ddns-client/zone "${ZONE}" + db_fset open-infrastructure-ddns-client/zone seen false || true + db_go + + db_set open-infrastructure-ddns-client/record "${RECORD}" + db_fset open-infrastructure-ddns-client/record seen false || true + db_go + + db_set open-infrastructure-ddns-client/ttl "${TTL}" + db_fset open-infrastructure-ddns-client/ttl seen false || true + db_go +fi + +db_settitle open-infrastructure-ddns-client/title +db_input low open-infrastructure-ddns-client/nameservers "${NAMESERVERS}" || true +db_go + +db_settitle open-infrastructure-ddns-client/title +db_input low open-infrastructure-ddns-client/zone "${ZONE}" || true +db_go + +db_settitle open-infrastructure-ddns-client/title +db_input low open-infrastructure-ddns-client/record "${RECORD}" || true +db_go + +db_settitle open-infrastructure-ddns-client/title +db_input low open-infrastructure-ddns-client/ttl "${TTL}" || true +db_go + +db_settitle open-infrastructure-ddns-client/title +db_input low open-infrastructure-ddns-client/tsig "${TSIG}" || true +db_go + +db_stop diff --git a/debian/open-infrastructure-ddns-client.postinst b/debian/open-infrastructure-ddns-client.postinst new file mode 100755 index 0000000..afbda6c --- /dev/null +++ b/debian/open-infrastructure-ddns-client.postinst @@ -0,0 +1,146 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +CONFFILE="/etc/network-tools/config/ddns-client.conf" + +case "${1}" in + configure) + db_get open-infrastructure-ddns-client/nameservers + NAMESERVERS="${RET}" # string + + db_get open-infrastructure-ddns-client/zone + ZONE="${RET}" # string + + db_get open-infrastructure-ddns-client/record + RECORD="${RET}" # string + + db_get open-infrastructure-ddns-client/ttl + TTL="${RET:-60}" # string (w/o empty) + + db_get open-infrastructure-ddns-client/tsig + TSIG="${RET}" # string (w/ empty) + + db_stop + + if [ ! -e "${CONFFILE}" ] + then + mkdir -p /etc/network-tools/config + +cat > "${CONFFILE}" << EOF +# /etc/network-tools/config/ddns-client.conf + +NAMESERVERS="${NAMESERVERS}" +ZONE="${ZONE}" +RECORD="${RECORD}" +TTL="${TTL}" +TSIG_KEYFILE="" +EOF + + fi + + cp -a -f "${CONFFILE}" "${CONFFILE}.tmp" + + # If the admin deleted or commented some variables but then set + # them via debconf, (re-)add them to the config file. + + test -z "${NAMESERVERS}" || \ + grep -Eq '^ *NAMESERVERS=' "${CONFFILE}" || \ + echo "NAMESERVERS=" >> "${CONFFILE}" + + test -z "${ZONE}" || \ + grep -Eq '^ *ZONE=' "${CONFFILE}" || \ + echo "ZONE=" >> "${CONFFILE}" + + test -z "${RECORD}" || \ + grep -Eq '^ *RECORD=' "${CONFFILE}" || \ + echo "RECORD=" >> "${CONFFILE}" + + test -z "${TTL}" || \ + grep -Eq '^ *TTL=' "${CONFFILE}" || \ + echo "TTL=" >> "${CONFFILE}" + + sed -e "s|^ *NAMESERVERS=.*|NAMESERVERS=\"${NAMESERVERS}\"|" \ + -e "s|^ *ZONE=.*|ZONE=\"${ZONE}\"|" \ + -e "s|^ *RECORD=.*|RECORD=\"${RECORD}\"|" \ + -e "s|^ *TTL=.*|TTL=\"${TTL}\"|" \ + < "${CONFFILE}" > "${CONFFILE}.tmp" + + mv -f "${CONFFILE}.tmp" "${CONFFILE}" + + if [ -n "${TSIG}" ] + then + case "${TSIG}" in + http*) + # tsig is a URL + if command -v wget "${TSIG}" -O /dev/null > /dev/null 2>&1 + then + rm -f /etc/network-tools/tsig.key + + wget "${TSIG}" -O /etc/network-tools/tsig.key + chmod 0600 /etc/network-tools/tsig.key + + TSIG_FILE="/etc/network-tools/tsig.key" + elif command -v curl "${TSIG}" -o /dev/null > /dev/null 2>&1 + then + rm -f /etc/network-tools/tsig.key + + curl "${TSIG}" -o /etc/network-tools/tsig.key + chmod 0600 /etc/network-tools/tsig.key + + TSIG_FILE="/etc/network-tools/tsig.key" + fi + ;; + + *:*) + # tsig is a string + echo "${TSIG}" > /etc/network-tools/tsig.key + chmod 0600 /etc/network-tools/tsig.key + + TSIG_FILE="/etc/network-tools/tsig.key" + ;; + + */*) + # tsig is a path + TSIG_FILE="${TSIG}" + ;; + + *) + echo "'${TSIG}' is neither a valid tsig, nor a path or URL to an existing file - ignoring" + ;; + esac + fi + + if [ -n "${TSIG_FILE}" ] + then + cp -a -f "${CONFFILE}" "${CONFFILE}.tmp" + + # If the admin deleted or commented some variables but then set + # them via debconf, (re-)add them to the config file. + + test -z "${TSIG_FILE}" || \ + grep -Eq '^ *TSIG_KEYFILE=' "${CONFFILE}" || \ + echo "TSIG_KEYFILE=" >> "${CONFFILE}" + + sed -e "s|^ *TSIG_KEYFILE=.*|TSIG_KEYFILE=\"${TSIG_FILE}\"|" \ + < "${CONFFILE}" > "${CONFFILE}.tmp" + + mv -f "${CONFFILE}.tmp" "${CONFFILE}" + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + + ;; + + *) + echo "postinst called with unknown argument \`${1}'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/open-infrastructure-ddns-client.postrm b/debian/open-infrastructure-ddns-client.postrm new file mode 100755 index 0000000..309a3c8 --- /dev/null +++ b/debian/open-infrastructure-ddns-client.postrm @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +case "${1}" in + purge) + rm -rf /etc/network-tools + rm -rf /var/log/network-tools + ;; + + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + + ;; + + *) + echo "postrm called with unknown argument \`${1}'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/open-infrastructure-ddns-client.templates b/debian/open-infrastructure-ddns-client.templates new file mode 100644 index 0000000..7f4d937 --- /dev/null +++ b/debian/open-infrastructure-ddns-client.templates @@ -0,0 +1,47 @@ +Template: open-infrastructure-ddns-client/title +Type: title +Description: ddns-client: Setup + +Template: open-infrastructure-ddns-client/nameservers +Type: string +Default: +Description: DDNS nameservers: + Please enter (whitespace separated) the list of nameservers to send the + nsupdates to. + . + Example: ns1.example.org ns2.example.org + +Template: open-infrastructure-ddns-client/zone +Type: string +Default: +Description: DDNS zone: + Please enter the zone you'd like to update. + . + Example: foo.example.org + +Template: open-infrastructure-ddns-client/record +Type: string +Default: +Description: DDNS record: + Please enter the record you'd like to update, *without* the zone. + . + Example: bar + +Template: open-infrastructure-ddns-client/ttl +Type: string +Default: 60 +Description: DDNS TTL: + Please enter the default TTL (in seconds). + . + If unsure, use '60' (default). + +Template: open-infrastructure-ddns-client/tsig +Type: string +Default: +Description: DDNS TSIG: + When using the ddns-client, a TSIG must be used to authenticate to the + nameservers. + . + Please enter either the path to the TSIG file or the TSIG string itself + (format as used by nsupdate -y in algorithm:name:base64), or the URL to + download it from. diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..331c58c --- /dev/null +++ b/debian/rules @@ -0,0 +1,21 @@ +#!/usr/bin/make -f + +PACKAGES := $(shell dh_listpackages | cut -d '-' -f 3-) + +%: + dh ${@} + +override_dh_auto_build: + # disabled + +override_dh_auto_clean: + for PACKAGE in $(PACKAGES); \ + do \ + $(MAKE) -C $${PACKAGE} clean; \ + done + +override_dh_auto_install: + for PACKAGE in $(PACKAGES); \ + do \ + $(MAKE) -C $${PACKAGE} DESTDIR=$(CURDIR)/debian/open-infrastructure-$${PACKAGE} install; \ + done diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc new file mode 100644 index 0000000..09df62b --- /dev/null +++ b/debian/upstream/signing-key.asc @@ -0,0 +1,64 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +cpQlFP9BkBNUyXjn218uHOJ20k5VgncS +=0dto +-----END PGP PUBLIC KEY BLOCK----- diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..6cfdd1d --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=4 +opts="pgpmode=auto" \ +https://get.open-infrastructure.net/software/network-tools/upstream/network-tools-(.+)\.tar\.lz -- cgit v1.2.3