diff --git a/CMakeLists.txt b/CMakeLists.txt index 07d2ac9ba..beb2648d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -635,8 +635,14 @@ set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) set(CPACK_PACKAGE_INSTALL_DIRECTORY "EternalTerminal") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") -SET(CPACK_GENERATOR "STGZ;TGZ;TZ;DEB") +if(NOT CPACK_GENERATOR) + SET(CPACK_GENERATOR "STGZ;TGZ;TZ;DEB") +endif() +SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/debian/postinst;${CMAKE_SOURCE_DIR}/debian/postrm;${CMAKE_SOURCE_DIR}/debian/prerm") +SET(CPACK_INSTALLED_DIRECTORIES "${CMAKE_SOURCE_DIR}/systemctl;/lib/systemd/system" "${CMAKE_SOURCE_DIR}/etc;/etc") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Unmaintained") +SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libprotobuf-dev, libc6 (>= 2.34), libgcc-s1 (>= 3.3.1), libstdc++6 (>= 12), libutempter0 (>= 1.1.5)") +SET(CPACK_DEBIAN_PACKAGE_SUGGESTS "systemd") # This must always be last! include(CPack) diff --git a/README.md b/README.md index 3d48ba888..9cbab7209 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,7 @@ Debian/Ubuntu Dependencies: ``` sudo apt install libsodium-dev autoconf libtool \ libprotobuf-dev protobuf-compiler libutempter-dev libcurl4-openssl-dev \ - build-essential ninja-build cmake git zip + build-essential ninja-build cmake git zip pkg-config ``` Fetch source, build and install: @@ -241,7 +241,7 @@ mkdir build cd build # For ARM (including OS/X with apple silicon): if [[ $(uname -a | grep 'arm\|aarch64') ]]; then export VCPKG_FORCE_SYSTEM_BINARIES=1; fi -cmake ../ +cmake -DCPACK_GENERATOR=DEB ../ make -j$(nproc) package sudo dpkg --install *.deb sudo cp ../etc/et.cfg /etc/ diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 000000000..ce9d7525d --- /dev/null +++ b/debian/postinst @@ -0,0 +1,32 @@ +#!/bin/sh +set -e +# Automatically added by dh_installsystemd/13.6ubuntu1 +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'et.service' >/dev/null || true + + # was-enabled defaults to true, so new installations run enable. + if deb-systemd-helper --quiet was-enabled 'et.service'; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable 'et.service' >/dev/null || true + else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'et.service' >/dev/null || true + fi +fi +# End automatically added section +# Automatically added by dh_installsystemd/13.6ubuntu1 +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then + if [ -d /run/systemd/system ]; then + systemctl --system daemon-reload >/dev/null || true + if [ -n "$2" ]; then + _dh_action=restart + else + _dh_action=start + fi + deb-systemd-invoke $_dh_action 'et.service' >/dev/null || true + fi +fi +# End automatically added section diff --git a/debian/postrm b/debian/postrm new file mode 100755 index 000000000..676d30ce0 --- /dev/null +++ b/debian/postrm @@ -0,0 +1,21 @@ +#!/bin/sh +set -e +# Automatically added by dh_installsystemd/13.6ubuntu1 +if [ "$1" = remove ] && [ -d /run/systemd/system ] ; then + systemctl --system daemon-reload >/dev/null || true +fi +# End automatically added section +# Automatically added by dh_installsystemd/13.6ubuntu1 +if [ "$1" = "remove" ]; then + if [ -x "/usr/bin/deb-systemd-helper" ]; then + deb-systemd-helper mask 'et.service' >/dev/null || true + fi +fi + +if [ "$1" = "purge" ]; then + if [ -x "/usr/bin/deb-systemd-helper" ]; then + deb-systemd-helper purge 'et.service' >/dev/null || true + deb-systemd-helper unmask 'et.service' >/dev/null || true + fi +fi +# End automatically added section diff --git a/debian/prerm b/debian/prerm new file mode 100755 index 000000000..aceccd45e --- /dev/null +++ b/debian/prerm @@ -0,0 +1,7 @@ +#!/bin/sh +set -e +# Automatically added by dh_installsystemd/13.6ubuntu1 +if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system ] ; then + deb-systemd-invoke stop 'et.service' >/dev/null || true +fi +# End automatically added section