From d93124693544952603ecaeb4c6429a21c3651b34 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Fri, 21 Feb 2025 14:29:55 +0100 Subject: [PATCH] Remove sysvinit support on Debian --- CHANGELOG.md | 1 + .../project_data.yaml.mustache | 2 - .../global/ext/debian/ezbake.init.erb | 187 ------------------ .../template/global/ext/debian/postinst.erb | 3 - .../template/global/ext/debian/prerm.erb | 3 - .../template/global/install.sh.erb | 12 +- 6 files changed, 3 insertions(+), 205 deletions(-) delete mode 100755 resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e09daef..11171ddb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ This changelog adheres to [Keep a CHANGELOG](http://keepachangelog.com/). * Add Debian 12 bookworm as a FOSS build target * Use systemd's PrivateTmp feature for improved security * Test ezbake on Java 11, 17 and 21 +* Drop sysvinit support on Debian ## [2.6.1] * Fix the ability to add a resources directory to a project with :include-dir by copying the resources to the staging directory directly. diff --git a/resources/puppetlabs/lein-ezbake/staging-templates/project_data.yaml.mustache b/resources/puppetlabs/lein-ezbake/staging-templates/project_data.yaml.mustache index 3b86281f..c5dd00f0 100644 --- a/resources/puppetlabs/lein-ezbake/staging-templates/project_data.yaml.mustache +++ b/resources/puppetlabs/lein-ezbake/staging-templates/project_data.yaml.mustache @@ -25,8 +25,6 @@ templates: target: ext/redhat/{{{project}}}.service - source: ext/default.erb target: ext/debian/{{{project}}}.default_file - - source: ext/debian/ezbake.init.erb - target: ext/debian/{{{project}}}.init_script - source: ext/debian/ezbake.service.erb target: ext/debian/{{{project}}}.service_file - source: ext/ezbake.logrotate.conf.erb diff --git a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb deleted file mode 100755 index 18a0b2c6..00000000 --- a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/ezbake.init.erb +++ /dev/null @@ -1,187 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: <%= EZBake::Config[:project] %> -# Required-Start: $remote_fs $syslog -# Required-Stop: $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -<% if EZBake::Config[:start_after].any? -%> -# Should-Start: <%= EZBake::Config[:start_after].join(" ") %> -# Should-Stop: <%= EZBake::Config[:start_after].join(" ") %> -<% end -%> -<% if EZBake::Config[:start_before].any? -%> -# X-Start-Before: <%= EZBake::Config[:start_before].join(" ") %> -# X-Stop-After: <%= EZBake::Config[:start_before].join(" ") %> -<% end -%> -# Short-Description: <%= EZBake::Config[:project] %> -# Description: Start <%= EZBake::Config[:project] %> daemon placed in /etc/init.d. -### END INIT INFO - -# Copyright 2014 Puppet Labs, 2025 Vox Pupuli - -#set default privileges to -rw-r----- -umask 027 - -# You should only need to edit the default/<%= EZBake::Config[:project] %> file and not -# this init script directly -if [ -r "/etc/default/<%= EZBake::Config[:project] %>" ] ; then - . /etc/default/<%= EZBake::Config[:project] %> -else - exit 1 -fi - -[ -e "$INSTALL_DIR/ezbake-functions.sh" ] && . "$INSTALL_DIR/ezbake-functions.sh" - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -NAME=<%= EZBake::Config[:project] %> -REALNAME=<%= EZBake::Config[:real_name] %> -USER=<%= EZBake::Config[:user] %> -GROUP=<%= EZBake::Config[:group] %> -DESC="<%= EZBake::Config[:project] %> Vox Pupuli version-checking backend" -JARFILE="<%= EZBake::Config[:uberjar_name] %>" -PIDFILE=/run/puppetlabs/${REALNAME}/${REALNAME}.pid -SCRIPTNAME=/etc/init.d/$NAME -START_TIMEOUT=${START_TIMEOUT:-<%= EZBake::Config[:start_timeout] %>} - -# Exit if the package is not installed -[ -x "$JAVA_BIN" ] || exit 0 - -# Load the VERBOSE setting and other rcS variables -. /lib/init/vars.sh - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.2-14) to ensure that this file is present -# and status_of_proc is working. -. /lib/lsb/init-functions - -# -# Function that starts the daemon/service -# -do_start() -{ - <% if EZBake::Config[:open_file_limit] -%> - [ -n "$OPEN_FILE_LIMIT" ] && ulimit -n $OPEN_FILE_LIMIT - <% end -%> - - <% EZBake::Config[:debian][:pre_start_action].each do |action| -%> - <%= action %> - <% end -%> - - /usr/bin/install --directory --owner=${USER} --group=${GROUP} --mode=755 "/run/puppetlabs/${REALNAME}" - start-stop-daemon --start --quiet --chuid $USER --oknodo --pidfile $PIDFILE --chdir $INSTALL_DIR \ - --startas "${INSTALL_DIR}/bin/${REALNAME}" -- start >> /var/log/puppetlabs/${REALNAME}/${REALNAME}-daemon.log 2>&1 - retval=$? - - <% if not EZBake::Config[:debian][:post_start_action].empty? -%> - if [ "$retval" -eq 0 ]; then - <% EZBake::Config[:debian][:post_start_action].each do |action| -%> - <%= action %> - <% end -%> - fi - <% end -%> - - return $retval -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - "${INSTALL_DIR}/bin/${REALNAME}" stop -} - -# -# Function that gets the status of the daemon/service -# -get_status() -{ - status_of_proc -p $PIDFILE "$JAVA_BIN" "$NAME" - return $? -} - -# -# Function that gets the status of the daemon/service -# and makes no output -# -get_status_q() -{ - get_status >/dev/null 2>&1 -} - -# -# Function that restarts the daemon/service -# -do_restart() -{ - do_stop - if [ "$?" -eq 0 ]; then - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - else - # Failed to stop - log_end_msg 1 - fi -} - -# -# Function that sends a SIGHUP to the daemon/service -# -do_reload() { - "${INSTALL_DIR}/bin/${REALNAME}" reload - return $? -} - -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - do_start - RETVAL="$?" - case "$RETVAL" in - 0) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 1|2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - exit "$RETVAL" - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - RETVAL="$?" - if [ "$RETVAL" -eq 0 ]; then - [ "$VERBOSE" != no ] && log_end_msg 0 - else - [ "$VERBOSE" != no ] && log_end_msg 1 - fi - exit "$RETVAL" - ;; - status) - get_status - exit $? - ;; - condrestart|try-restart) - get_status_q || exit 0 - do_restart - ;; - restart) - [ "$VERBOSE" != no ] && log_daemon_msg "Restarting $DESC" "$NAME" - do_restart - ;; - force-reload|reload) - [ "$VERBOSE" != no ] && log_daemon_msg "Reloading $DESC" "$NAME" - do_reload - RETVAL="$?" - [ "$VERBOSE" != no ] && log_end_msg $RETVAL - exit "$RETVAL" - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|condrestart|try-restart|restart|force-reload|reload}" >&2 - exit 3 - ;; -esac - -exit $? diff --git a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/postinst.erb b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/postinst.erb index 9953c541..bd555a4a 100644 --- a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/postinst.erb +++ b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/postinst.erb @@ -13,9 +13,6 @@ if [ $1 = 'configure' -a -n $2 ] ; then # Using systemd systemctl daemon-reload >/dev/null 2>&1 || : systemctl try-restart <%= EZBake::Config[:project] %>.service ||: - else - # Using sysv - invoke-rc.d <%= EZBake::Config[:project] %> try-restart || : fi fi diff --git a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/prerm.erb b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/prerm.erb index 0a7e49b1..8f8a63f3 100755 --- a/resources/puppetlabs/lein-ezbake/template/global/ext/debian/prerm.erb +++ b/resources/puppetlabs/lein-ezbake/template/global/ext/debian/prerm.erb @@ -5,8 +5,5 @@ if [ "$1" = "failed-upgrade" ] || [ "$1" = "remove" ] ; then # Using systemd systemctl --no-reload disable <%= EZBake::Config[:project] -%>.service > /dev/null 2>&1 || : systemctl stop <%= EZBake::Config[:project] -%>.service > /dev/null 2>&1 || : - else - # Using sysv - invoke-rc.d <%= EZBake::Config[:project] -%> stop || : fi fi diff --git a/resources/puppetlabs/lein-ezbake/template/global/install.sh.erb b/resources/puppetlabs/lein-ezbake/template/global/install.sh.erb index be436a33..1f944f61 100755 --- a/resources/puppetlabs/lein-ezbake/template/global/install.sh.erb +++ b/resources/puppetlabs/lein-ezbake/template/global/install.sh.erb @@ -235,17 +235,9 @@ function task_systemd_redhat { install -m 0644 ext/<%= EZBake::Config[:project] %>.tmpfiles.conf "${DESTDIR}${tmpfilesdir}/<%= EZBake::Config[:project] %>.conf" } -# Install the sysv and defaults configuration for Debian. -function task_sysv_init_deb { - task defaults_deb - install -d -m 0755 "${DESTDIR}${initdir}" - install -m 0755 ext/debian/<%= EZBake::Config[:project] %>.init_script "${DESTDIR}${initdir}/<%= EZBake::Config[:project] %>" - install -d -m 0755 "${DESTDIR}${rundir}" -} - -# Install the systemd/sysv and defaults configuration for Debian. +# Install the systemd and defaults configuration for Debian. function task_systemd_deb { - task sysv_init_deb + task defaults_deb install -d -m 0755 "${DESTDIR}${unitdir_debian}" install -m 0644 ext/debian/<%= EZBake::Config[:project] %>.service_file "${DESTDIR}${unitdir_debian}/<%= EZBake::Config[:project] %>.service" install -d -m 0755 "${DESTDIR}${tmpfilesdir}"