public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/bind] rawhide: Update systemd unit files with %name and %program_suffix
Date: Wed, 01 Jul 2026 09:47:25 GMT [thread overview]
Message-ID: <178289924543.1.7977340838595400038.rpms-bind-8d6979fcf3db@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/bind
Branch : rawhide
Commit : 8d6979fcf3db0b078819ba7a7c8b94e2407a5292
Author : Petr Menšík <pemensik@redhat.com>
Date : 2026-06-24T15:26:57+02:00
Stats : +113/-98 in 9 file(s)
URL : https://src.fedoraproject.org/rpms/bind/c/8d6979fcf3db0b078819ba7a7c8b94e2407a5292?branch=rawhide
Log:
Update systemd unit files with %name and %program_suffix
Move creation of systemd units into build phase. Replace not only %name,
also program_suffix.
Change services to use template for systemd unit files
To execute correctly systemd services, make them templates fixed at the
build time. Still conflicts with potential alternatives.
Solve also filter plugins to have suffix also.
---
diff --git a/bind.spec b/bind.spec
index 61844a0..eec79dd 100644
--- a/bind.spec
+++ b/bind.spec
@@ -119,12 +119,12 @@ Source25: named.conf.sample
Source27: named.root.key
Source35: bind.tmpfiles.d
Source36: trusted-key.key
-Source37: named.service
-Source38: named-chroot.service
+Source37: named.service.in
+Source38: named-chroot.service.in
Source41: setup-named-chroot.sh
Source42: generate-rndc-key.sh
-Source44: named-chroot-setup.service
-Source46: named-setup-rndc.service
+Source44: named-chroot-setup.service.in
+Source46: named-setup-rndc.service.in
Source48: setup-named-softhsm.sh
Source49: named-chroot.files
Source50: named.sysusers
@@ -355,6 +355,8 @@ in HTML and PDF format.
# use this suffix for binaries
%global program_suffix -%{mver}
+# preparation scripts directory
+%global bind_libexecdir %{_libexecdir}/%{name}
%prep
@@ -475,6 +477,18 @@ fmtutil-user --missing || :
popd # build
+# Prepare unit files
+for SERVICEFILE in %{SOURCE37} %{SOURCE38} %{SOURCE44} %{SOURCE46}; do
+ NEWNAME="$(basename -- "$SERVICEFILE" .in)"
+ sed -e "s|%%{program_suffix}|%{program_suffix}|g" \
+ -e "s|%%{name}|%{name}|g" \
+ -e "s|%%{bind_libexecdir}|%{bind_libexecdir}|g" \
+ -e "s|%%{_bindir}|%{_bindir}|g" \
+ -e "s|%%{_sbindir}|%{_sbindir}|g" \
+ "$SERVICEFILE" > "$NEWNAME"
+ touch -r "$SERVICEFILE" "$NEWNAME" # Set change time to time of template
+done
+
%unit_prepare_build build
%systemtest_prepare_build build
@@ -589,13 +603,8 @@ popd
rm -f ${RPM_BUILD_ROOT}/etc/bind.keys
# Systemd unit files
-mkdir -p ${RPM_BUILD_ROOT}%{_unitdir}
-install -p -m 644 %{SOURCE37} ${RPM_BUILD_ROOT}%{_unitdir}
-install -p -m 644 %{SOURCE38} ${RPM_BUILD_ROOT}%{_unitdir}
-install -p -m 644 %{SOURCE44} ${RPM_BUILD_ROOT}%{_unitdir}
-install -p -m 644 %{SOURCE46} ${RPM_BUILD_ROOT}%{_unitdir}
-
-sed -e "s|\%{name}|%{name}|" -i ${RPM_BUILD_ROOT}%{_unitdir}/named-*.service
+mkdir -p "${RPM_BUILD_ROOT}%{_unitdir}"
+install -p -m 644 *.service "${RPM_BUILD_ROOT}%{_unitdir}"
mkdir -p ${RPM_BUILD_ROOT}%{_sysusersdir}
install -p -m 644 %{SOURCE50} ${RPM_BUILD_ROOT}%{_sysusersdir}/%{name}.conf
@@ -605,7 +614,9 @@ install -p -m 755 %{SOURCE41} ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/setup-name
install -p -m 755 %{SOURCE42} ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/generate-rndc-key.sh
install -p -m 755 %{SOURCE48} ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/setup-named-softhsm.sh
-install -m 644 %SOURCE3 ${RPM_BUILD_ROOT}/etc/logrotate.d/named
+mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d
+install -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/named
+
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
install -p -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/named
install -p -m 644 %{SOURCE49} ${RPM_BUILD_ROOT}%{_sysconfdir}/named-chroot.files
@@ -620,7 +631,11 @@ find ${RPM_BUILD_ROOT}/%{_libdir} -name '*.la' -exec '/bin/rm' '-f' '{}' ';';
pushd ${RPM_BUILD_ROOT}/%{_libdir}
for LIB in isccc ns dns isc isccfg irs bind9; do
- mv "lib${LIB}.so" "lib${LIB}-%{mver}.so"
+ mv "lib${LIB}.so" "lib${LIB}%{program_suffix}.so"
+ done
+ for PLUGIN in bind/*.so; do
+ TARGET="$(echo "$PLUGIN" | sed -e "s/\.so$/%{program_suffix}&/")"
+ mv "${PLUGIN}" "${TARGET}"
done
popd
@@ -633,13 +648,10 @@ rm -f ${RPM_BUILD_ROOT}%{_mandir}/man8/named-nzd2nzf%{program_suffix}.8* || true
%endif
pushd ${RPM_BUILD_ROOT}%{_mandir}/man8
-ln -s ddns-confgen%{program_suffix}.8.gz tsig-keygen%{program_suffix}.8.gz
+ ln -s ddns-confgen%{program_suffix}.8.gz tsig-keygen%{program_suffix}.8.gz
popd
pushd ${RPM_BUILD_ROOT}%{_mandir}/man1
-ln -s named-checkzone%{program_suffix}.1.gz named-compilezone%{program_suffix}.1.gz
-popd
-pushd ${RPM_BUILD_ROOT}%{_mandir}/man5
- mv named.conf%{program_suffix}.5 named.conf.5
+ ln -s named-checkzone%{program_suffix}.1.gz named-compilezone%{program_suffix}.1.gz
popd
%if %{with DOC}
@@ -667,7 +679,7 @@ cp -p build/doc/arm/_build/latex/Bv9ARM.pdf ${RPM_BUILD_ROOT}%{_pkgdocdir}
touch ${RPM_BUILD_ROOT}%{_localstatedir}/log/named.log
# configuration files:
-install -m 640 %{SOURCE16} ${RPM_BUILD_ROOT}%{_sysconfdir}/named%{program_suffix}.conf
+install -m 640 %{SOURCE16} ${RPM_BUILD_ROOT}%{_sysconfdir}/named.conf
touch ${RPM_BUILD_ROOT}%{_sysconfdir}/rndc.{key,conf}
install -m 644 %{SOURCE27} ${RPM_BUILD_ROOT}%{_sysconfdir}/named.root.key
install -m 644 %{SOURCE36} ${RPM_BUILD_ROOT}%{_sysconfdir}/trusted-key.key
@@ -818,21 +830,21 @@ fi;
%{_libexecdir}/%{name}/setup-named-softhsm.sh
%{_mandir}/man1/mdig%{program_suffix}.1*
%{_mandir}/man1/named-rrchecker%{program_suffix}.1*
-%{_mandir}/man5/named.conf.5*
+%{_mandir}/man5/named.conf%{program_suffix}.5*
%{_mandir}/man5/rndc.conf%{program_suffix}.5*
%{_mandir}/man8/rndc%{program_suffix}.8*
%{_mandir}/man8/named%{program_suffix}.8*
%{_mandir}/man1/named-checkconf%{program_suffix}.1*
%{_mandir}/man8/rndc-confgen%{program_suffix}.8*
%{_mandir}/man1/named-journalprint%{program_suffix}.1*
-%{_mandir}/man8/filter-*.8.gz
+%{_mandir}/man8/filter-*%{program_suffix}.8.gz
%doc README.md named.conf.default
%doc sample/
# Hide configuration
%defattr(0640,root,named,0750)
%dir %{_sysconfdir}/named
-%config(noreplace) %verify(not link) %{_sysconfdir}/named%{program_suffix}.conf
+%config(noreplace) %verify(not link) %{_sysconfdir}/named.conf
%config(noreplace) %verify(not link) %{_sysconfdir}/named.rfc1912.zones
%defattr(0660,root,named,01770)
%dir %{_localstatedir}/named
diff --git a/named-chroot-setup.service b/named-chroot-setup.service
deleted file mode 100644
index 1aae6e4..0000000
--- a/named-chroot-setup.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Set-up/destroy chroot environment for named (DNS)
-BindsTo=named-chroot.service
-Wants=named-setup-rndc.service
-After=named-setup-rndc.service
-
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/usr/libexec/%{name}/setup-named-chroot.sh /var/named/chroot on /etc/named-chroot.files
-ExecStop=/usr/libexec/%{name}/setup-named-chroot.sh /var/named/chroot off /etc/named-chroot.files
diff --git a/named-chroot-setup.service.in b/named-chroot-setup.service.in
new file mode 100644
index 0000000..1aae6e4
--- /dev/null
+++ b/named-chroot-setup.service.in
@@ -0,0 +1,12 @@
+[Unit]
+Description=Set-up/destroy chroot environment for named (DNS)
+BindsTo=named-chroot.service
+Wants=named-setup-rndc.service
+After=named-setup-rndc.service
+
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/libexec/%{name}/setup-named-chroot.sh /var/named/chroot on /etc/named-chroot.files
+ExecStop=/usr/libexec/%{name}/setup-named-chroot.sh /var/named/chroot off /etc/named-chroot.files
diff --git a/named-chroot.service b/named-chroot.service
deleted file mode 100644
index 4c38601..0000000
--- a/named-chroot.service
+++ /dev/null
@@ -1,31 +0,0 @@
-# Don't forget to add "$AddUnixListenSocket /var/named/chroot/dev/log"
-# line to your /etc/rsyslog.conf file. Otherwise your logging becomes
-# broken when rsyslogd daemon is restarted (due update, for example).
-
-[Unit]
-Description=Berkeley Internet Name Domain (DNS)
-Wants=nss-lookup.target
-Requires=named-chroot-setup.service
-Before=nss-lookup.target
-After=named-chroot-setup.service
-After=network.target
-
-[Service]
-Type=forking
-Environment=NAMEDCONF=/etc/named.conf
-EnvironmentFile=-/etc/sysconfig/named
-Environment=KRB5_KTNAME=/etc/named.keytab
-PIDFile=/var/named/chroot/run/named/named.pid
-
-ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/bin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
-ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS
-
-ExecReload=/bin/sh -c 'if /usr/sbin/rndc null > /dev/null 2>&1; then /usr/sbin/rndc reload; else /bin/kill -HUP $MAINPID; fi'
-
-ExecStop=/bin/sh -c '/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID'
-
-PrivateTmp=false
-Restart=on-abnormal
-
-[Install]
-WantedBy=multi-user.target
diff --git a/named-chroot.service.in b/named-chroot.service.in
new file mode 100644
index 0000000..f9f2a3e
--- /dev/null
+++ b/named-chroot.service.in
@@ -0,0 +1,32 @@
+# Don't forget to add "$AddUnixListenSocket /var/named/chroot/dev/log"
+# line to your /etc/rsyslog.conf file. Otherwise your logging becomes
+# broken when rsyslogd daemon is restarted (due update, for example).
+
+[Unit]
+Description=Berkeley Internet Name Domain (DNS)
+Wants=nss-lookup.target
+Requires=named-chroot-setup.service
+Before=nss-lookup.target
+After=named-chroot-setup.service
+After=network.target
+
+[Service]
+Type=forking
+Environment=OPTIONS=
+Environment=NAMEDCONF=/etc/named.conf
+EnvironmentFile=-/etc/sysconfig/named
+Environment=KRB5_KTNAME=/etc/named.keytab
+PIDFile=/var/named/chroot/run/named/named.pid
+
+ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then %{_bindir}/named-checkconf%{program_suffix} -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
+ExecStart=%{_sbindir}/named%{program_suffix} -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS
+
+ExecReload=/bin/sh -c 'if %{_sbindir}/rndc%{program_suffix} null > /dev/null 2>&1; then %{_sbindir}/rndc%{program_suffix} reload; else %{_bindir}/kill -HUP $MAINPID; fi'
+
+ExecStop=/bin/sh -c '%{_sbindir}/rndc%{program_suffix} stop > /dev/null 2>&1 || %{_bindir}/kill -TERM $MAINPID'
+
+PrivateTmp=false
+Restart=on-abnormal
+
+[Install]
+WantedBy=multi-user.target
diff --git a/named-setup-rndc.service b/named-setup-rndc.service
deleted file mode 100644
index 9abab08..0000000
--- a/named-setup-rndc.service
+++ /dev/null
@@ -1,7 +0,0 @@
-[Unit]
-Description=Generate rndc key for BIND (DNS)
-
-[Service]
-Type=oneshot
-
-ExecStart=/usr/libexec/%{name}/generate-rndc-key.sh
diff --git a/named-setup-rndc.service.in b/named-setup-rndc.service.in
new file mode 100644
index 0000000..9abab08
--- /dev/null
+++ b/named-setup-rndc.service.in
@@ -0,0 +1,7 @@
+[Unit]
+Description=Generate rndc key for BIND (DNS)
+
+[Service]
+Type=oneshot
+
+ExecStart=/usr/libexec/%{name}/generate-rndc-key.sh
diff --git a/named.service b/named.service
deleted file mode 100644
index 5c32fc5..0000000
--- a/named.service
+++ /dev/null
@@ -1,26 +0,0 @@
-[Unit]
-Description=Berkeley Internet Name Domain (DNS)
-Wants=nss-lookup.target
-Wants=named-setup-rndc.service
-Before=nss-lookup.target
-After=named-setup-rndc.service
-After=network.target
-
-[Service]
-Type=forking
-Environment=NAMEDCONF=/etc/named.conf
-EnvironmentFile=-/etc/sysconfig/named
-Environment=KRB5_KTNAME=/etc/named.keytab
-PIDFile=/run/named/named.pid
-
-ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/bin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
-ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS
-ExecReload=/bin/sh -c 'if /usr/sbin/rndc null > /dev/null 2>&1; then /usr/sbin/rndc reload; else /bin/kill -HUP $MAINPID; fi'
-
-ExecStop=/bin/sh -c '/usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID'
-
-PrivateTmp=true
-Restart=on-abnormal
-
-[Install]
-WantedBy=multi-user.target
diff --git a/named.service.in b/named.service.in
new file mode 100644
index 0000000..de9a915
--- /dev/null
+++ b/named.service.in
@@ -0,0 +1,28 @@
+[Unit]
+Description=Berkeley Internet Name Domain (DNS)
+Wants=nss-lookup.target
+Wants=named-setup-rndc.service
+Before=nss-lookup.target
+After=named-setup-rndc.service
+After=network.target
+
+[Service]
+Type=forking
+Environment=OPTIONS=
+Environment=NAMEDCONF=/etc/named.conf
+EnvironmentFile=-/etc/sysconfig/named
+Environment=KRB5_KTNAME=/etc/named.keytab
+PIDFile=/run/named/named.pid
+
+ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then %{_sbindir}/named-checkconf%{program_suffix} -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
+ExecStart=%{_sbindir}/named%{program_suffix} -u named -c ${NAMEDCONF} $OPTIONS
+
+ExecReload=/bin/sh -c 'if %{_sbindir}/rndc%{program_suffix} null > /dev/null 2>&1; then %{_sbindir}/rndc%{program_suffix} reload; else %{_bindir}/kill -HUP $MAINPID; fi'
+
+ExecStop=/bin/sh -c '%{_sbindir}/rndc%{program_suffix} stop > /dev/null 2>&1 || %{_bindir}/kill -TERM $MAINPID'
+
+PrivateTmp=true
+Restart=on-abnormal
+
+[Install]
+WantedBy=multi-user.target
reply other threads:[~2026-07-01 9:47 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178289924543.1.7977340838595400038.rpms-bind-8d6979fcf3db@fedoraproject.org \
--to=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox