# shellcheck source="./advanced/Scripts/utils.sh"
source "${utilsfile}"
-SKIP_INSTALL="true"
-# shellcheck source="./automated install/basic-install.sh"
-source "${PI_HOLE_FILES_DIR}/automated install/basic-install.sh"
-# stop_service() is defined in basic-install.sh
-# restart_service() is defined in basic-install.sh
-
# In case we're running at the same time as a system logrotate, use a
# separate logrotate state file to prevent stepping on each other's
# toes.
fi
# Stop FTL to make sure it doesn't write to the database while we're deleting data
- stop_service pihole-FTL >/dev/null
-
+ service pihole-FTL stop
# Delete most recent 24 hours from FTL's database, leave even older data intact (don't wipe out all history)
deleted=$(pihole-FTL sqlite3 -ni "${DBFILE}" "DELETE FROM query_storage WHERE timestamp >= strftime('%s','now')-86400; select changes() from query_storage limit 1")
# Restart FTL
- restart_service pihole-FTL >/dev/null
+ service pihole-FTL restart
if [[ "$*" != *"quiet"* ]]; then
echo -e "${OVER} ${TICK} Deleted ${deleted} queries from long-term query database"
fi
PIHOLE_META_PACKAGE_CONTROL_APT=$(
cat <<EOM
Package: pihole-meta
-Version: 0.4
+Version: 0.3
Maintainer: Pi-hole team <adblock@pi-hole.net>
Architecture: all
Description: Pi-hole dependency meta package
-Depends: awk,bash-completion,binutils,ca-certificates,cron|cron-daemon,curl,dialog,dnsutils,dns-root-data,git,grep,iproute2,iputils-ping,jq,libcap2,libcap2-bin,lshw,netcat-openbsd,procps,psmisc,sudo,unzip
+Depends: grep,dnsutils,binutils,git,iproute2,dialog,ca-certificates,cron | cron-daemon,curl,iputils-ping,psmisc,sudo,unzip,libcap2-bin,dns-root-data,libcap2,netcat-openbsd,procps,jq,lshw,bash-completion
Section: contrib/metapackages
Priority: optional
EOM
PIHOLE_META_PACKAGE_CONTROL_RPM=$(
cat <<EOM
Name: pihole-meta
-Version: 0.2
+Version: 0.1
Release: 1
License: EUPL
BuildArch: noarch
Summary: Pi-hole dependency meta package
-Requires: bash-completion,bind-utils,binutils,ca-certificates,chkconfig,cronie,curl,dialog,findutils,gawk,git,grep,iproute,jq,libcap,lshw,nmap-ncat,procps-ng,psmisc,sudo,unzip
+Requires: grep,curl,psmisc,sudo, unzip,jq,git,dialog,ca-certificates, bind-utils, iproute, procps-ng, chkconfig, binutils, cronie, findutils, libcap, nmap-ncat, lshw, bash-completion
%description
Pi-hole dependency meta package
%prep
%files
%install
%changelog
-* Wed May 28 2025 Pi-hole Team - 0.2
-- Add gawk to the list of dependencies
-
* Sun Sep 29 2024 Pi-hole Team - 0.1
- First version being packaged
EOM
command -v "${check_command}" >/dev/null 2>&1
}
-is_pid1() {
- # Checks to see if the given command runs as PID 1
- local is_pid1="$1"
-
- # select PID 1, format output to show only CMD column without header
- # quietly grep for a match on the function passed parameter
- ps --pid 1 --format comm= | grep -q "${is_pid1}"
-}
-
# Compatibility
package_manager_detect() {
fi
# Install pihole-FTL systemd or init.d service, based on whether systemd is the init system or not
- if is_pid1 systemd; then
+ if ps -p 1 -o comm= | grep -q systemd; then
install -T -m 0644 "${PI_HOLE_LOCAL_REPO}/advanced/Templates/pihole-FTL.systemd" '/etc/systemd/system/pihole-FTL.service'
# Remove init.d service if present
# Can softfail, as process may not be installed when this is called
local str="Stopping ${1} service"
printf " %b %s..." "${INFO}" "${str}"
- # If systemd is PID 1,
- if is_pid1 systemd; then
- # use that to restart the service
+ if is_command systemctl; then
systemctl -q stop "${1}" || true
else
- # Otherwise, fall back to the service command
service "${1}" stop >/dev/null || true
fi
printf "%b %b %s...\\n" "${OVER}" "${TICK}" "${str}"
# Local, named variables
local str="Restarting ${1} service"
printf " %b %s..." "${INFO}" "${str}"
- # If systemd is PID 1,
- if is_pid1 systemd; then
+ # If systemctl exists,
+ if is_command systemctl; then
# use that to restart the service
systemctl -q restart "${1}"
else
# Local, named variables
local str="Enabling ${1} service to start on reboot"
printf " %b %s..." "${INFO}" "${str}"
- # If systemd is PID1,
- if is_pid1 systemd; then
+ # If systemctl exists,
+ if is_command systemctl; then
# use that to enable the service
systemctl -q enable "${1}"
else
# Local, named variables
local str="Disabling ${1} service"
printf " %b %s..." "${INFO}" "${str}"
- # If systemd is PID1,
- if is_pid1 systemd; then
+ # If systemctl exists,
+ if is_command systemctl; then
# use that to disable the service
systemctl -q disable "${1}"
else
}
check_service_active() {
- # If systemd is PID1,
- if is_pid1 systemd; then
+ # If systemctl exists,
+ if is_command systemctl; then
# use that to check the status of the service
systemctl -q is-enabled "${1}" 2>/dev/null
else
mock_command("dialog", {"*": ("", "0")}, host)
# mock git pull
mock_command_passthrough("git", {"pull": ("", "0")}, host)
- # mock PID 1 to pretend to be systemd
- mock_command_2(
- "ps",
- {
- "--pid 1": ("systemd", "0"),
- },
- host,
- )
# mock systemctl to not start FTL
mock_command_2(
"systemctl",
"enable pihole-FTL": ("", "0"),
"restart pihole-FTL": ("", "0"),
"start pihole-FTL": ("", "0"),
- "stop pihole-FTL": ("", "0"),
"*": ('echo "systemctl call with $@"', "0"),
},
host,
check_macvendor = test_cmd.format("r", "/etc/pihole/macvendor.db", piholeuser)
actual_rc = host.run(check_macvendor).rc
assert exit_status_success == actual_rc
+ # check readable and executable /etc/init.d/pihole-FTL
+ check_init = test_cmd.format("x", "/etc/init.d/pihole-FTL", piholeuser)
+ actual_rc = host.run(check_init).rc
+ assert exit_status_success == actual_rc
+ check_init = test_cmd.format("r", "/etc/init.d/pihole-FTL", piholeuser)
+ actual_rc = host.run(check_init).rc
+ assert exit_status_success == actual_rc
# check readable and executable manpages
if maninstalled is True:
check_man = test_cmd.format("x", "/usr/local/share/man", piholeuser)