#!/bin/bash set -x set -e TAG_NAME=${TAG_NAME:-$(git -c "core.abbrev=8" show -s "--format=%cd-%h" "--date=format:%Y.%m.%d")} HERE=$(pwd) # If not specified, build the package as `kumomta-dev`. # When we're building from a tag (REF_TYPE is set to tag) we set 'DEB_NAME=kumomta' [[ "${REF_TYPE}" == "tag" ]] && DEB_NAME=kumomta DEB_NAME=${DEB_NAME:-kumomta-dev} CONFLICTS=kumomta [[ ${DEB_NAME} == "kumomta" ]] && CONFLICTS=kumomta-dev KUMO_DEB_VERSION=$(git -c "core.abbrev=8" show -s "--format=%cd.%h" "--date=format:%Y.%m.%d.%H%M%S") distro=$(lsb_release -is 2>/dev/null || sh -c "source /etc/os-release && echo \$NAME") distver=$(lsb_release -rs 2>/dev/null || sh -c "source /etc/os-release && echo \$VERSION_ID") export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) rm -rf pkg || true trap "rm -rf pkg" EXIT mkdir -p pkg/debian/ pkg/debian/DEBIAN cat > pkg/debian/control < Section: utils Priority: optional Homepage: https://github.com/KumoCorp/kumomta Description: A high performance, modern MTA Source: https://github.com/KumoCorp/kumomta EOF ./assets/install.sh pkg/debian/opt/kumomta install -Dm644 ./assets/kumomta.service -t pkg/debian/usr/lib/systemd/system cat > pkg/debian/DEBIAN/preinst </dev/null || groupadd --system kumod getent passwd kumod >/dev/null || \ useradd --system -g kumod -d /var/spool/kumod -s /sbin/nologin \ -c "Service account for kumomta" kumod for dir in /opt/kumomta/etc /opt/kumomta/etc/policy ; do [ -d "\$dir" ] || install -d --mode 755 --owner kumod --group kumod \$dir done for dir in /var/spool/kumomta /var/log/kumomta /opt/kumomta/etc/dkim ; do [ -d "\$dir" ] || install -d --mode 2770 --owner kumod --group kumod \$dir done exit 0 EOF chmod 0775 pkg/debian/DEBIAN/preinst cat > pkg/debian/DEBIAN/postinst </dev/null fi fi exit 0 EOF chmod 0775 pkg/debian/DEBIAN/postinst cat > pkg/debian/DEBIAN/postrm </dev/null || true fi if [ "\$1" = "remove" ]; then if [ -x "/usr/bin/deb-systemd-helper" ]; then deb-systemd-helper mask kumomta.service >/dev/null fi fi if [ "\$1" = "purge" ]; then if [ -x "/usr/bin/deb-systemd-helper" ]; then deb-systemd-helper purge kumomta.service >/dev/null deb-systemd-helper unmask kumomta.service >/dev/null fi fi exit 0 EOF chmod 0775 pkg/debian/DEBIAN/postrm cat > pkg/debian/DEBIAN/prerm </dev/null fi exit 0 EOF chmod 0775 pkg/debian/DEBIAN/prerm deps=$(cd pkg && dpkg-shlibdeps -O -e debian/opt/kumomta/*bin/*) mv pkg/debian/control pkg/debian/DEBIAN/control sed -i '/^Source:/d' pkg/debian/DEBIAN/control # The `Source:` field needs to be valid in a binary package echo $deps | sed -e 's/shlibs:Depends=/Depends: /' >> pkg/debian/DEBIAN/control cat pkg/debian/DEBIAN/control debname=${DEB_NAME}.$distro$distver find pkg -ls FAKEROOT=fakeroot if test "$EUID" -eq 0 ; then FAKEROOT="" fi $FAKEROOT dpkg-deb --verbose --build pkg/debian $debname.deb