Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: sitesumm...@packages.debian.org
Control: affects -1 + src:sitesummary

While working on the initial Debian Edu release, Guido Berhöster has
worked on the sitesummary package. All changes target Debian Edu 12, so
we want to release the current version (0.1.55) to Debian bookworm (as
0.1.55~deb12u1).

[ Reason ]
Various slightly security relevant issues have been discovered in
sitesummary that have been resolved (between 0.1.54 and 0.1.55).

Also, a workaround is included for an issue with certain PC hardware
implementations when collecting system data via lspci (screen blackouts
during lspci run).

Furthermore, more SysV -> systemd work was needed.

[ Impact ]
The sitesummary in Debian Edu 12 will be broken if this bookworm-pu gets 
rejected.

[ Tests ]
Manual tests on two test systems running a pre-version of Debian Edu 12.

[ Risks ]

As sitesummary is probably not used by anyone except from Debian Edu, the
risk will probably be very minimal to Debian users.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]

+sitesummary (0.1.55~deb12u1) bookworm; urgency=medium
+
+  * Release to bookworm as 0.1.55~deb12u1.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Wed, 23 Aug 2023 13:02:51 +0200
+
+sitesummary (0.1.55) unstable; urgency=medium
+
+  [ Guido Berhoerster ]
+  * Fix insecure temporary file and directory creation, error checking.
+    Seurely create a temporary directory using mktemp and check for errors both
+    when creating the directory and wehn changing the current working 
directory.
+    Place the tarball inside the temporary directory instead of using a 
predictable
+    file name in /tmp which may lead to a symlink attack. Ensure the temporary
+    directory is always removed. (Closes: #1050289).
+  * Use quoting for fragments.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Wed, 23 Aug 2023 10:43:16 +0200
+
+sitesummary (0.1.54) unstable; urgency=medium
+
+  [ Guido Berhoerster ]
+  * Disable usage of lspci on clients by default
+    This works around a bug that turns off the screen on certain Intel NUC
+    models. It can be re-enabled by setting the environment variable
+    ENABLE_LSPCI to an arbitrary value.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Tue, 22 Aug 2023 15:31:03 +0200
+
+sitesummary (0.1.53) unstable; urgency=medium
+
+  [ Dominik George ]
+  * Remove myself from Uploaders.
+
+  [ Guido Berhoerster ]
+  * Place munin configuration in include file. (Closes: #762652).
+  * Add systemd timer unit for sitesummary-client. (Closes: #1039369).
+  * Add systemd timer for sitesummary maintenance.
+
+  [ Debian Janitor ]
+  * Apply multi-arch hints. + libsitesummary-perl: Add Multi-Arch: foreign.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Thu, 10 Aug 2023 18:00:37 +0200
+
+sitesummary (0.1.52) unstable; urgency=medium
+
+  * debian/control:
+    + Update R: (sitesummary-client): 'cron' -> 'cron | cron-daemon'. (Closes:
+      #1038956).
+
+ -- Mike Gabriel <sunwea...@debian.org>  Thu, 29 Jun 2023 20:55:33 +0200

[ Other info ]
None. Feel free to ask for more details, if needed.
diff -Nru sitesummary-0.1.51/collect.d/system 
sitesummary-0.1.55~deb12u1/collect.d/system
--- sitesummary-0.1.51/collect.d/system 2019-04-06 15:59:51.000000000 +0200
+++ sitesummary-0.1.55~deb12u1/collect.d/system 2023-08-23 13:01:58.000000000 
+0200
@@ -13,7 +13,7 @@
     dmidecode   > dmidecode 2> /dev/null
 fi
 
-if [ -d /proc/bus/pci ] && type lspci >/dev/null 2>&1; then
+if [ -d /proc/bus/pci ] && [ -n "${ENABLE_LSPCI}" ] && type lspci >/dev/null 
2>&1; then
     lspci       > lspci
     lspci -n    > lspci-n
 fi
diff -Nru sitesummary-0.1.51/debian/changelog 
sitesummary-0.1.55~deb12u1/debian/changelog
--- sitesummary-0.1.51/debian/changelog 2022-02-13 09:41:47.000000000 +0100
+++ sitesummary-0.1.55~deb12u1/debian/changelog 2023-08-23 13:02:51.000000000 
+0200
@@ -1,3 +1,55 @@
+sitesummary (0.1.55~deb12u1) bookworm; urgency=medium
+
+  * Release to bookworm as 0.1.55~deb12u1.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Wed, 23 Aug 2023 13:02:51 +0200
+
+sitesummary (0.1.55) unstable; urgency=medium
+
+  [ Guido Berhoerster ]
+  * Fix insecure temporary file and directory creation, error checking.
+    Seurely create a temporary directory using mktemp and check for errors both
+    when creating the directory and wehn changing the current working 
directory.
+    Place the tarball inside the temporary directory instead of using a 
predictable
+    file name in /tmp which may lead to a symlink attack. Ensure the temporary
+    directory is always removed. (Closes: #1050289).
+  * Use quoting for fragments.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Wed, 23 Aug 2023 10:43:16 +0200
+
+sitesummary (0.1.54) unstable; urgency=medium
+
+  [ Guido Berhoerster ]
+  * Disable usage of lspci on clients by default
+    This works around a bug that turns off the screen on certain Intel NUC
+    models. It can be re-enabled by setting the environment variable
+    ENABLE_LSPCI to an arbitrary value.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Tue, 22 Aug 2023 15:31:03 +0200
+
+sitesummary (0.1.53) unstable; urgency=medium
+
+  [ Dominik George ]
+  * Remove myself from Uploaders.
+
+  [ Guido Berhoerster ]
+  * Place munin configuration in include file. (Closes: #762652).
+  * Add systemd timer unit for sitesummary-client. (Closes: #1039369).
+  * Add systemd timer for sitesummary maintenance.
+
+  [ Debian Janitor ]
+  * Apply multi-arch hints. + libsitesummary-perl: Add Multi-Arch: foreign.
+
+ -- Mike Gabriel <sunwea...@debian.org>  Thu, 10 Aug 2023 18:00:37 +0200
+
+sitesummary (0.1.52) unstable; urgency=medium
+
+  * debian/control:
+    + Update R: (sitesummary-client): 'cron' -> 'cron | cron-daemon'. (Closes:
+      #1038956).
+
+ -- Mike Gabriel <sunwea...@debian.org>  Thu, 29 Jun 2023 20:55:33 +0200
+
 sitesummary (0.1.51) unstable; urgency=medium
 
   * Source only upload for migration to testing.
diff -Nru sitesummary-0.1.51/debian/control 
sitesummary-0.1.55~deb12u1/debian/control
--- sitesummary-0.1.51/debian/control   2022-02-13 09:39:22.000000000 +0100
+++ sitesummary-0.1.55~deb12u1/debian/control   2023-08-23 13:01:58.000000000 
+0200
@@ -5,8 +5,6 @@
 Uploaders: Petter Reinholdtsen <p...@debian.org>
  , Holger Levsen <hol...@debian.org>
  , Mike Gabriel <sunwea...@debian.org>
- , Dominik George <n...@naturalnet.de>
- , Wolfgang Schweer <wschw...@arcor.de>
 Build-Depends: debhelper-compat (= 13)
 Standards-Version: 4.6.0
 Rules-Requires-Root: binary-targets
@@ -38,6 +36,7 @@
  sitesummary (<< 0.1.50~),
 Replaces:
  sitesummary (<< 0.1.50~),
+Multi-Arch: foreign
 Description: Generate site summary of submitting hosts (Perl module)
  The sitesummary system makes it easier to keep track of a lot of
  machines, by allowing each machine to report their existence once a
@@ -49,7 +48,7 @@
 Package: sitesummary-client
 Architecture: all
 Depends: ${misc:Depends}, ${perl:Depends}, lsb-base, gnupg, net-tools
-Recommends: cron, dmidecode, pciutils, usbutils, lsscsi, iproute2, hdparm
+Recommends: cron | cron-daemon, dmidecode, pciutils, usbutils, lsscsi, 
iproute2, hdparm
 Suggests: sitesummary, munin-node, nagios-nrpe-server, 
monitoring-plugins-standard, cdpr, ipmitool, zfsutils-linux
 Description: Generate site summary of submitting hosts (client part)
  The sitesummary system makes it easier to keep track of a lot of
diff -Nru sitesummary-0.1.51/debian/rules 
sitesummary-0.1.55~deb12u1/debian/rules
--- sitesummary-0.1.51/debian/rules     2021-10-31 14:56:20.000000000 +0100
+++ sitesummary-0.1.55~deb12u1/debian/rules     2023-08-23 13:01:58.000000000 
+0200
@@ -7,3 +7,7 @@
 # No need to submit information when the package is installed
 override_dh_installinit:
        dh_installinit --no-start
+
+override_dh_installsystemd:
+       dh_installsystemd --no-start --name sitesummary
+       dh_installsystemd --no-start --name sitesummary-client
diff -Nru 
sitesummary-0.1.51/debian/sitesummary-client.sitesummary-client.service 
sitesummary-0.1.55~deb12u1/debian/sitesummary-client.sitesummary-client.service
--- sitesummary-0.1.51/debian/sitesummary-client.sitesummary-client.service     
1970-01-01 01:00:00.000000000 +0100
+++ 
sitesummary-0.1.55~deb12u1/debian/sitesummary-client.sitesummary-client.service 
    2023-08-23 13:01:58.000000000 +0200
@@ -0,0 +1,10 @@
+[Unit]
+Description=Report status to sitesummary server after boot
+After=network-online.target
+
+[Service]
+Type=oneshot
+EnvironmentFile=-/etc/environment
+EnvironmentFile=-/etc/default/sitesummary-client
+Nice=10
+ExecStart=/usr/sbin/sitesummary-client
diff -Nru sitesummary-0.1.51/debian/sitesummary-client.sitesummary-client.timer 
sitesummary-0.1.55~deb12u1/debian/sitesummary-client.sitesummary-client.timer
--- sitesummary-0.1.51/debian/sitesummary-client.sitesummary-client.timer       
1970-01-01 01:00:00.000000000 +0100
+++ 
sitesummary-0.1.55~deb12u1/debian/sitesummary-client.sitesummary-client.timer   
    2023-08-23 13:01:58.000000000 +0200
@@ -0,0 +1,8 @@
+[Unit]
+Description=Timer for sitesummary reporting after boot
+
+[Timer]
+OnBootSec=5min
+
+[Install]
+WantedBy=timers.target
diff -Nru sitesummary-0.1.51/debian/sitesummary.cron.daily 
sitesummary-0.1.55~deb12u1/debian/sitesummary.cron.daily
--- sitesummary-0.1.51/debian/sitesummary.cron.daily    2015-05-13 
16:43:09.000000000 +0200
+++ sitesummary-0.1.55~deb12u1/debian/sitesummary.cron.daily    2023-08-23 
13:01:58.000000000 +0200
@@ -1,39 +1,8 @@
 #!/bin/sh
-#
-# Author: Petter Reinholdtsen
 
-set -e
-
-daylimit=120
-makewebreport=/usr/sbin/sitesummary-makewebreport
-nodes=/usr/sbin/sitesummary-nodes
-
-[ -f /etc/sitesummary/collector.cfg ] && . /etc/sitesummary/collector.cfg
-
-# Exit imediately if the package is removed but nor purged
-if [ ! -x $nodes ] ; then
-    exit 0
+# Do not run on systemd-based installations or if the package is removed but
+# not purged
+if [ -x /usr/lib/sitesummary/sitesummary-maintenance ] && \
+    [ ! -d /run/systemd/system ]; then
+    /usr/lib/sitesummary/sitesummary-maintenance
 fi
-
-# The storage area is not configurable, because too many scripts have
-# it hardcoded
-entriesdir=/var/lib/sitesummary/entries
-
-remove_old_entries() {
-    find $entriesdir/. -mindepth 1 -maxdepth 1 -type d \
-       -daystart -mtime +$daylimit \
-       -exec /usr/lib/sitesummary/expire-entry '{}' \;
-}
-
-[ -d $entriesdir ] && remove_old_entries
-
-if [ -x /usr/sbin/sitesummary-update-nagios ] ; then
-    /usr/sbin/sitesummary-update-nagios
-fi
-
-if [ -x /usr/sbin/sitesummary-update-munin ] ; then
-    /usr/sbin/sitesummary-update-munin
-fi
-
-# Update the web report once a day
-[ -x $makewebreport ] && nice $makewebreport
diff -Nru sitesummary-0.1.51/debian/sitesummary.install 
sitesummary-0.1.55~deb12u1/debian/sitesummary.install
--- sitesummary-0.1.51/debian/sitesummary.install       2022-02-13 
09:39:22.000000000 +0100
+++ sitesummary-0.1.55~deb12u1/debian/sitesummary.install       2023-08-23 
13:01:58.000000000 +0200
@@ -8,3 +8,4 @@
 usr/sbin/sitesummary-update-munin
 usr/sbin/sitesummary-update-nagios
 usr/share/munin/plugins
+debian/sitesummary-maintenance usr/lib/sitesummary/sitesummary-maintenance
diff -Nru sitesummary-0.1.51/debian/sitesummary-maintenance 
sitesummary-0.1.55~deb12u1/debian/sitesummary-maintenance
--- sitesummary-0.1.51/debian/sitesummary-maintenance   1970-01-01 
01:00:00.000000000 +0100
+++ sitesummary-0.1.55~deb12u1/debian/sitesummary-maintenance   2023-08-23 
13:01:58.000000000 +0200
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# Author: Petter Reinholdtsen
+
+set -e
+
+daylimit=120
+makewebreport=/usr/sbin/sitesummary-makewebreport
+nodes=/usr/sbin/sitesummary-nodes
+
+[ -f /etc/sitesummary/collector.cfg ] && . /etc/sitesummary/collector.cfg
+
+# Exit imediately if the package is removed but nor purged
+if [ ! -x $nodes ] ; then
+    exit 0
+fi
+
+# The storage area is not configurable, because too many scripts have
+# it hardcoded
+entriesdir=/var/lib/sitesummary/entries
+
+remove_old_entries() {
+    find $entriesdir/. -mindepth 1 -maxdepth 1 -type d \
+       -daystart -mtime +$daylimit \
+       -exec /usr/lib/sitesummary/expire-entry '{}' \;
+}
+
+[ -d $entriesdir ] && remove_old_entries
+
+if [ -x /usr/sbin/sitesummary-update-nagios ] ; then
+    /usr/sbin/sitesummary-update-nagios
+fi
+
+if [ -x /usr/sbin/sitesummary-update-munin ] ; then
+    /usr/sbin/sitesummary-update-munin
+fi
+
+# Update the web report once a day
+[ -x $makewebreport ] && nice $makewebreport
diff -Nru sitesummary-0.1.51/debian/sitesummary.postrm 
sitesummary-0.1.55~deb12u1/debian/sitesummary.postrm
--- sitesummary-0.1.51/debian/sitesummary.postrm        2015-05-13 
16:43:09.000000000 +0200
+++ sitesummary-0.1.55~deb12u1/debian/sitesummary.postrm        2023-08-23 
13:01:58.000000000 +0200
@@ -4,8 +4,8 @@
 
 if [ "$1" = "purge" ] ; then
     cd /var/lib/sitesummary
-    rm -rf entries tmpstorage www
-    rm -f munin.conf munin.conf.pre munin.conf.post
+    rm -rf entries tmpstorage www munin-conf.d
+    rm -f munin.conf
     rm -f nagios-generated.cfg
 fi
 
diff -Nru sitesummary-0.1.51/debian/sitesummary.sitesummary.service 
sitesummary-0.1.55~deb12u1/debian/sitesummary.sitesummary.service
--- sitesummary-0.1.51/debian/sitesummary.sitesummary.service   1970-01-01 
01:00:00.000000000 +0100
+++ sitesummary-0.1.55~deb12u1/debian/sitesummary.sitesummary.service   
2023-08-23 13:01:58.000000000 +0200
@@ -0,0 +1,6 @@
+[Unit]
+Description=Regular sitesummary maintenance
+
+[Service]
+Type=oneshot
+ExecStart=/usr/lib/sitesummary/sitesummary-maintenance
diff -Nru sitesummary-0.1.51/debian/sitesummary.sitesummary.timer 
sitesummary-0.1.55~deb12u1/debian/sitesummary.sitesummary.timer
--- sitesummary-0.1.51/debian/sitesummary.sitesummary.timer     1970-01-01 
01:00:00.000000000 +0100
+++ sitesummary-0.1.55~deb12u1/debian/sitesummary.sitesummary.timer     
2023-08-23 13:01:58.000000000 +0200
@@ -0,0 +1,9 @@
+[Unit]
+Description=Timer for regular sitesummary maintenance
+
+[Timer]
+OnCalendar=daily
+Persistent=true
+
+[Install]
+WantedBy=timers.target
diff -Nru sitesummary-0.1.51/README sitesummary-0.1.55~deb12u1/README
--- sitesummary-0.1.51/README   2017-04-28 13:07:25.000000000 +0200
+++ sitesummary-0.1.55~deb12u1/README   2023-08-23 13:01:58.000000000 +0200
@@ -11,9 +11,8 @@
 statistics from all sitesummary clients with the Munin packages
 installed.  To enable it, install the munin package and make sure
 /etc/sitesummary/collector.cfg include 'MUNINDIR=/etc/munin' to get
-sitesummary to replace the default munin configuration with the
-generated one.  Running these commands as root normally does the
-trick.
+sitesummary to add an include file to the default munin configuration.
+Running these commands as root normally does the trick:
 
   aptitude install munin munin-node
   echo MUNINDIR=/etc/munin >> /etc/sitesummary/collector.cfg
diff -Nru sitesummary-0.1.51/sitesummary-client 
sitesummary-0.1.55~deb12u1/sitesummary-client
--- sitesummary-0.1.51/sitesummary-client       2015-05-13 16:43:09.000000000 
+0200
+++ sitesummary-0.1.55~deb12u1/sitesummary-client       2023-08-23 
13:01:58.000000000 +0200
@@ -14,9 +14,12 @@
 LC_ALL=C
 export LC_ALL
 
+umask 0077
+
 # Make sure to store files in a ramfs backed
 # storage area on diskless clients, so use /tmp/.
-tmpdir=/tmp/sitesummary-$$
+tmpdir="$(mktemp -d -p /tmp)"
+trap 'rm -rf "${tmpdir}"' EXIT
 
 log() {
     msg="$@"
@@ -54,22 +57,23 @@
 do
     [ -d $confdir ] || continue
     for config in $confdir/* ; do
-       [ -f $config ] && . $config
+       [ -f "$config" ] && . "$config"
     done
 done
 
-mkdir $tmpdir && cd $tmpdir
+mkdir "${tmpdir}/output"
+cd "${tmpdir}/output"
 
 for fragdir in $fragdirs ; do
-    [ -d $fragdir ] || continue 
-    for frag in $fragdir/*; do 
-       [ -x $frag ] && $frag || true
+    [ -d "$fragdir" ] || continue 
+    for frag in "$fragdir/"*; do 
+       [ -x "$frag" ] && "$frag" || true
     done
 done
 
 # Wrap up the package
-hostsummaryfile=$tmpdir.tar.gz
-tar zcf $hostsummaryfile .
+hostsummaryfile="${tmpdir}/output.tar.gz"
+tar zcf "${hostsummaryfile}" .
 
 for url in $serverurls ; do
     if [ "$gpgencrypt" != false ] ; then
@@ -88,6 +92,3 @@
        error "unable to submit to '$url'"
     fi
 done
-
-rm $hostsummaryfile
-rm -r $tmpdir
diff -Nru sitesummary-0.1.51/sitesummary-update-munin 
sitesummary-0.1.55~deb12u1/sitesummary-update-munin
--- sitesummary-0.1.51/sitesummary-update-munin 2015-05-13 16:43:09.000000000 
+0200
+++ sitesummary-0.1.55~deb12u1/sitesummary-update-munin 2023-08-23 
13:01:58.000000000 +0200
@@ -4,76 +4,49 @@
 
 set -e
 
+umask 022
+
 nodes=/usr/sbin/sitesummary-nodes
 muninopts=""
 
-# Modify this in collector.cfg to /etc/munin/ to automatically replace
-# the default munin configuration.
-MUNINDIR=/var/lib/sitesummary
-
-if [ -d /var/cache/munin/www ] ; then
-    # Used since munin version 1.4.0-1
-    muninhtmldir="/var/cache/munin/www"
-else
-    muninhtmldir="/var/www/munin"
-fi
-# Based on of active config from munin version 1.2.5-1
-munindbdir=/var/lib/munin
-muninlogdir=/var/log/munin
-muninrundir=/var/run/munin
-munintmpldir=/etc/munin/templates
-
+# Set MUNINDIR in collector.cfg to /etc/munin/ to automatically add hosts to
+# the default munin configuration via include files.
 [ -f /etc/sitesummary/collector.cfg ] && . /etc/sitesummary/collector.cfg
 
+# Default to /var/lib/sitesummary and canonicalize path.
+MUNINDIR="$(realpath -mqs "${MUNINDIR:-/var/lib/sitesummary}")"
+
 # The storage area is not configurable, because too many scripts have
 # it hardcoded
 entriesdir=/var/lib/sitesummary/entries
 
 generate_munin_config() {
     # Generate munin config.  Edit /etc/cron.d/munin to enable it.
-    # Add -c /var/lib/sitesummary/sitesummary-munin.conf to the calls
-    # to the munin scripts, or change MUNINDIR above.
-    (
-       if [ -f $MUNINDIR/munin.conf.pre ] ; then
-           cat $MUNINDIR/munin.conf.pre
-       else
-           cat <<EOF
-# Munin server configuration generated from cron using sitesummary
-# data by $0
-# Do not edit, it will be overwritten. 
-# Edit $MUNINDIR/munin.conf.pre and
-# $MUNINDIR/munin.conf.post instead.
-
-dbdir  $munindbdir
-htmldir        $muninhtmldir
-logdir $muninlogdir
-rundir $muninrundir
-tmpldir        $munintmpldir
+    # Add -c /var/lib/sitesummary/munin.conf to the calls to the munin scripts,
+    # or change MUNINDIR as described above.
 
-EOF
+    mkdir -p "${MUNINDIR}/munin-conf.d"
+    chmod a+rx "${MUNINDIR}/munin-conf.d"
 
-            # Munin supports the includedir statement since Squeeze
-            muninver=$(dpkg -l munin|grep munin|awk '{print $3}')
-            if dpkg --compare-versions "1.4.5" le "$muninver" ; then
-               cat <<EOF
+    if [ ! -f "${MUNINDIR}/munin.conf" ]; then
+        cat > "${MUNINDIR}/munin.conf" <<EOF
 # (Exactly one) directory to include all files from.
 #
-includedir /etc/munin/munin-conf.d
-
+includedir "${MUNINDIR}/munin-conf.d"
 EOF
-            fi
-       fi
-
-       $nodes -m $muninopts
+        chown root:root "${MUNINDIR}/munin.conf"
+    fi
 
-       [ -f $MUNINDIR/munin.conf.post ] && cat $MUNINDIR/munin.conf.post
+    (
+        cat <<EOF
+# Munin server configuration generated from cron using sitesummary
+# data by $0
+# Do not edit, it will be overwritten.
+EOF
 
-        # Make sure the subshell return true to trigger the mv below.
-       true
-    ) > $MUNINDIR/munin.conf.new && \
-       chown root:root $MUNINDIR/munin.conf.new && \
-       chmod a+r $MUNINDIR/munin.conf.new && \
-       mv $MUNINDIR/munin.conf.new $MUNINDIR/munin.conf
+        $nodes -m $muninopts
+    ) >"${MUNINDIR}/munin-conf.d/sitesummary.conf" &&
+        chown root:root "${MUNINDIR}/munin-conf.d/sitesummary.conf"
 }
 
 # Only enable if munin and sitesummary is installed.

Reply via email to