From 43376af452bcf65479075078a6b4001f2f6b78a7 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sat, 30 May 2026 15:02:38 +0200 Subject: [PATCH 01/15] update d/copyright copied from Debian packaging --- debian/copyright | 91 +++++++++--------------------------------------- 1 file changed, 16 insertions(+), 75 deletions(-) diff --git a/debian/copyright b/debian/copyright index 48dacfb..f32aabb 100644 --- a/debian/copyright +++ b/debian/copyright @@ -4,21 +4,26 @@ Upstream-Contact: Linux Mint Project Source: https://github.com/linuxmint/cinnamon-session Files: * - 1998-2012, Free Software Foundation, Inc +Copyright: 1998-2012, Free Software Foundation, Inc + 2002-2003, George Lebl + 2008, Lucas Rocha 2000, Miguel de Icaza - 2006-2011, Novell, Inc + 2006-2010, Novell, Inc + 2001, Queen of England + 2005, Raffaele Sandrini 2005-2012, Red Hat, Inc 2009-2010, Vincent Untz + 2007-2008, William Jon McCann License: GPL-2+ -Files: cinnamon-session/csm-inhibit-dialog.* - cinnamon-session/csm-store.* +Files: cinnamon-session/csm-store.* cinnamon-session/mdm-log.* cinnamon-session/mdm-signal-handler.h cinnamon-session/csm-consolekit.* cinnamon-session/csm-manager.h cinnamon-session/csm-xsmp-server.h cinnamon-session/csm-system.h + doc/dbus/spec-to-docbook.xsl Copyright: 2007-2008, William Jon McCann License: GPL-2+ @@ -41,95 +46,31 @@ Copyright: 2007, Novell, Inc 2008, William Jon McCann License: GPL-2+ -Files: cinnamon-session/csm-logout-dialog.c -Copyright: 2006, Vincent Untz - 2008, Red Hat, Inc -License: GPL-2+ - -Files: tools/cinnamon-session-quit.c -Copyright: 1998, Tom Tromey - 2008, Red Hat, Inc -License: GPL-2+ - Files: cinnamon-session/mdm-signal-handler.c Copyright: 2006, Red Hat, Inc 2007, William Jon McCann License: GPL-2+ -Files: cinnamon-session/csm-logout-dialog.h -Copyright: 2006, Vincent Untz -License: GPL-2+ - -Files: egg/* -Copyright: 2007, Novell, Inc -License: LGPL-2+ - -Files: egg/eggsmclient-xsmp.c -Copyright: 1998, Carsten Schaar, and twm - 1998, The Open Group - 2007, Novell, Inc -License: LGPL-2+ - -Files: egg/eggdesktopfile.c -Copyright: 1999-2000, Red Hat Inc - 2001, George Lebl - 2007, Novell, Inc -License: LGPL-2+ - -Files: po/Makefile.in.in -Copyright: 2004-2008, Rodney Dawes - 1995-1997, Ulrich Drepper -License: Permissive - Files: debian/* Copyright: 2013-2014, Linux Mint Project - 2014-2018, Debian Cinnamon Team + 2014-2026, Debian Cinnamon Team License: GPL-2+ -License: GPL - This file is distributed under the terms of GNU General Public License (GPL) - . - On Debian systems, the complete text of the GNU General Public License can be - found in `/usr/share/common-licenses/GPL'. - License: GPL-2+ - This package is free software; you can redistribute it and/or modify + SPDX "GPL-2.0-or-later": https://spdx.org/licenses/GPL-2.0-or-later.html + . + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . - This package is distributed in the hope that it will be useful, + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + along with this program. If not, see . . On Debian systems, the complete text of the GNU General Public License - version 2 can be found in `/usr/share/common-licenses/GPL-2'. - -License: LGPL-2+ - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - . - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - . - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the - Free Software Foundation, Inc., 51 Franklin Street - Suite 500, - Boston, MA 02110-1335, USA. - . - On Debian systems, the complete text of the GNU Lesser General Public License - version 2 can be found in `/usr/share/common-licenses/LGPL-2'. - -License: Permissive - This file is free software; the Free Software Foundation gives - unlimited permission to copy and/or distribute it, with or without - modifications, as long as this notice is preserved. + version 2 can be found in /usr/share/common-licenses/GPL-2. From addd3ccd2eacf4131f06dab44c5305e26532ec7a Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 14:30:51 +0200 Subject: [PATCH 02/15] d/control: remove unused build dependencies Drop build dependencies that are no longer referenced by the build system or the source code: - intltool: po/meson.build is empty and the build uses no i18n.gettext() - libjson-glib-dev: no dependency('json-glib-*') in meson.build, unused in the code - libupower-glib-dev: upower support was removed from csm-consolekit.c upstream (commit 97bcafd, #185); no dependency('upower-*') remains - libxt-dev: no dependency('xt') and no libXt usage anywhere in the source Verified with a clean build in a Mint 22.x (noble) chroot using the reduced set of build dependencies. Assisted-by: Claude Code (Opus 4.8) --- debian/control | 4 ---- 1 file changed, 4 deletions(-) diff --git a/debian/control b/debian/control index 6eaaaed..aa01a85 100644 --- a/debian/control +++ b/debian/control @@ -6,24 +6,20 @@ Build-Depends: debhelper (>= 11.1~), dh-sequence-python3, gnome-pkg-tools (>= 0.13), - intltool (>= 0.40.6), libcanberra-dev, libcinnamon-desktop-dev (>= 6.0), libgl1-mesa-dev, libglib2.0-dev (>= 2.37.3), libgtk-3-dev (>= 3.0.0), libice-dev, - libjson-glib-dev (>= 0.10), libsm-dev, libsystemd-dev [linux-any], - libupower-glib-dev (>= 0.99.11), libx11-dev, libxapp-dev (>= 1.0.4), libxau-dev, libxcomposite-dev, libxext-dev, libxrender-dev, - libxt-dev, libxtst-dev, meson, xtrans-dev, From 65648a137ad9b2db2b316cf1af89fc5973c01680 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 14:35:55 +0200 Subject: [PATCH 03/15] d/control: stop using gnome-pkg-tools See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1122833 --- debian/control | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/control b/debian/control index aa01a85..3d67f28 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Maintainer: Linux Mint Build-Depends: debhelper (>= 11.1~), dh-sequence-python3, - gnome-pkg-tools (>= 0.13), libcanberra-dev, libcinnamon-desktop-dev (>= 6.0), libgl1-mesa-dev, From 55635d1812a48c87c03b64f00cc75c3a8c9db19d Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 14:38:02 +0200 Subject: [PATCH 04/15] d/control: add libpango1.0-dev to build dependencies meson.build calls dependency('pango') unconditionally (and dependency('pangoxft', required: false)), both provided by libpango1.0-dev. So far pango.pc was only pulled in transitively via libgtk-3-dev; declare it explicitly as a direct build dependency. Assisted-by: Claude Code (Opus 4.8) --- debian/control | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/control b/debian/control index 3d67f28..1218922 100644 --- a/debian/control +++ b/debian/control @@ -11,6 +11,7 @@ Build-Depends: libglib2.0-dev (>= 2.37.3), libgtk-3-dev (>= 3.0.0), libice-dev, + libpango1.0-dev, libsm-dev, libsystemd-dev [linux-any], libx11-dev, From 2267d5db10023eca089045c7262e49c406bad801 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 14:41:53 +0200 Subject: [PATCH 05/15] d/control: add gir1.2-gdk-3.0 and gir1.2-gio-2.0 to cinnamon-session depends add deps to other gir packages that will be splitted in future see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1059940 --- debian/control | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/control b/debian/control index 1218922..a9934b8 100644 --- a/debian/control +++ b/debian/control @@ -31,6 +31,8 @@ Depends: cinnamon-desktop-data (>= 6.0), cinnamon-session-common (= ${source:Version}), default-dbus-session-bus | dbus-session-bus, + gir1.2-gdk-3.0, + gir1.2-gio-2.0, gir1.2-glib-2.0, gir1.2-gtk-3.0, gir1.2-xapp-1.0, From 535d2c52de56bf2546e7b2b12edefc5968bf61c7 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 14:45:09 +0200 Subject: [PATCH 06/15] d/control: build-depend on libgl-dev instead of transitional libgl1-mesa-dev libgl1-mesa-dev is a transitional dummy package. meson.build needs gl.pc (dependency('gl')), which is provided by libgl-dev (libglvnd); depend on it directly. Assisted-by: Claude Code (Opus 4.8) --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index a9934b8..f09db85 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Build-Depends: dh-sequence-python3, libcanberra-dev, libcinnamon-desktop-dev (>= 6.0), - libgl1-mesa-dev, + libgl-dev, libglib2.0-dev (>= 2.37.3), libgtk-3-dev (>= 3.0.0), libice-dev, From 0a1b0c04edbac422cadc0e8023268fa0a4b04a9d Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 15:00:16 +0200 Subject: [PATCH 07/15] d/control: add Homepage field Point to the upstream repository at https://github.com/linuxmint/cinnamon-session. Assisted-by: Claude Code (Opus 4.8) --- debian/control | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/control b/debian/control index f09db85..88dbfb3 100644 --- a/debian/control +++ b/debian/control @@ -24,6 +24,7 @@ Build-Depends: meson, xtrans-dev, Standards-Version: 3.9.6 +Homepage: https://github.com/linuxmint/cinnamon-session Package: cinnamon-session Architecture: any From d2255f909949280ba1b646c4389cdb282dd15d52 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 15:04:05 +0200 Subject: [PATCH 08/15] d/control: drop obsolete Breaks/Replaces on cinnamon-session-common The Breaks/Replaces on cinnamon-session-common (<< 2.2.2-5~) covered an old file move between the two binary packages. Version 2.2.2-5 is ancient enough that no supported upgrade path (not even from earlier major releases) can still hit it, so the relationship is no longer needed. Assisted-by: Claude Code (Opus 4.8) --- debian/control | 2 -- 1 file changed, 2 deletions(-) diff --git a/debian/control b/debian/control index 88dbfb3..d87a79c 100644 --- a/debian/control +++ b/debian/control @@ -45,8 +45,6 @@ Depends: ${python3:Depends}, ${shlibs:Depends}, Recommends: cinnamon-l10n -Breaks: cinnamon-session-common (<< 2.2.2-5~) -Replaces: cinnamon-session-common (<< 2.2.2-5~) Provides: x-session-manager Description: Cinnamon Session Manager - Minimal runtime The Cinnamon Session Manager is in charge of starting the core components From ec835139ade6f905a9af1c51e35a077c39b3db04 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 15:34:46 +0200 Subject: [PATCH 09/15] d/control: replace debian/compat with debhelper-compat, migrating compat 11 to 13 Drop the deprecated debian/compat file and declare the level through a debhelper-compat build dependency, bumping the compatibility level from 11 to 13. Reviewed every compatibility change from 11 to 13 against this package: it ships no systemd units, registers no meson tests and builds no shared libraries, so the dh_installsystemd, "meson test" (compat 13) and dh_makeshlibs changes have no effect here. The dh_missing override keeps the lenient --list-missing behaviour (compat 13 would otherwise default to --fail-missing); its comment is updated accordingly. Verified with a before/after binary build in a Mint 22.x (noble) chroot: the installed file lists, maintainer scripts, conffiles and control fields are identical. The only difference is that dh_dwz, added to the default sequence in compat 12, adds a .gnu_debugaltlink section to the executables; their code (text/data/bss) is byte-identical, so this is the expected debug-info optimisation rather than a content change. Assisted-by: Claude Code (Opus 4.8) --- debian/compat | 1 - debian/control | 2 +- debian/rules | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 debian/compat diff --git a/debian/compat b/debian/compat deleted file mode 100644 index b4de394..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -11 diff --git a/debian/control b/debian/control index d87a79c..1108006 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: x11 Priority: optional Maintainer: Linux Mint Build-Depends: - debhelper (>= 11.1~), + debhelper-compat (= 13), dh-sequence-python3, libcanberra-dev, libcinnamon-desktop-dev (>= 6.0), diff --git a/debian/rules b/debian/rules index d35d041..1df551e 100755 --- a/debian/rules +++ b/debian/rules @@ -13,7 +13,7 @@ override_dh_auto_configure: -Dipv6=true \ -Dxtrans=true -# --list-missing will be default in compat 12 +# keep the lenient --list-missing instead of compat 13's default --fail-missing override_dh_missing: dh_missing --list-missing From 7480c9b3cc18ba29f01c388a037f2aaa68971e65 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 15:39:52 +0200 Subject: [PATCH 10/15] d/rules: let dh_missing default to --fail-missing Drop the override_dh_missing target so dh_missing uses the compat 13 default of --fail-missing instead of the lenient --list-missing. The build now fails if meson installs a file that is neither picked up by a *.install file nor listed in debian/not-installed, catching files silently left out of the packages (as seen in a recent PR). All meson-installed files are already covered by the *.install files and debian/not-installed, so the build still succeeds. Assisted-by: Claude Code (Opus 4.8) --- debian/rules | 4 ---- 1 file changed, 4 deletions(-) diff --git a/debian/rules b/debian/rules index 1df551e..84221ac 100755 --- a/debian/rules +++ b/debian/rules @@ -13,7 +13,3 @@ override_dh_auto_configure: -Dipv6=true \ -Dxtrans=true -# keep the lenient --list-missing instead of compat 13's default --fail-missing -override_dh_missing: - dh_missing --list-missing - From 77ee3090d75d6dd8dd195f9c02f46230a82b5556 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 15:53:54 +0200 Subject: [PATCH 11/15] d/rules: drop redundant -Wl,--as-needed linker flag --as-needed has been the linker default on Debian/Ubuntu for years, so passing it explicitly via DEB_LDFLAGS_MAINT_APPEND is redundant. lintian flags it as debian-rules-uses-as-needed-linker-flag. Assisted-by: Claude Code (Opus 4.8) --- debian/rules | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/rules b/debian/rules index 84221ac..115043c 100755 --- a/debian/rules +++ b/debian/rules @@ -1,6 +1,5 @@ #!/usr/bin/make -f -export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow %: From 9c6272728ca5ef9d520ee80b2f4c1dcac17cef9c Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 15:55:40 +0200 Subject: [PATCH 12/15] d/rules: enable all hardening build flags Switch DEB_BUILD_MAINT_OPTIONS from hardening=+bindnow to hardening=+all, turning on the full set of hardening flags instead of just bindnow on top of the defaults. Assisted-by: Claude Code (Opus 4.8) --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 115043c..97c1f34 100755 --- a/debian/rules +++ b/debian/rules @@ -1,6 +1,6 @@ #!/usr/bin/make -f -export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow +export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ From b476f185eff4102c112158c674c5c79e2630f0ae Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 16:11:26 +0200 Subject: [PATCH 13/15] d/lrc.config: add licenserecon configuration Add the licenserecon (lrc) config so that running lrc on this tree skips the usual false positives out of the box: the generic license-like filenames (about, authors, copying, ...) and specific ones spotted in Debian packaging. Helps keeping debian/copyright in check. Assisted-by: Claude Code (Opus 4.8) --- debian/lrc.config | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 debian/lrc.config diff --git a/debian/lrc.config b/debian/lrc.config new file mode 100644 index 0000000..0e20f50 --- /dev/null +++ b/debian/lrc.config @@ -0,0 +1,29 @@ +# licenserecon +# +# This file lists files and directories to be excluded from checking, +# to avoid false positives. +# +# Lines starting with # are treated as comments. +# Blank lines are ignored. +# Lines starting with minus sign(s) are treated as command line options +# +# Additional files may be excluded on a per package basis by creating an optional file +# debian/lrc.config in the package source. +# File names may include a partial path. +# Wildcards '*' not supported +# +# These files often contain licenses for other files. +# (File foo also treated as foo.*) +about +authors +copying +copyright +dep5 +readme + +# Directories identified by trailing slash / +# Entire contents will be (recursively) excluded. +debian/patches/ + +# contain a "generic" GPL but is really GPL-2+ like other files from the same author and year +doc/dbus/spec-to-docbook.xsl From 72c8dc895895faa5ab3c96d4f441d70933360409 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 16:16:56 +0200 Subject: [PATCH 14/15] d/control: bump Standards-Version to 4.7.0 Update from the very old 3.9.6 to 4.7.0, the debian-policy version shipped by the oldest still-supported target (Ubuntu 24.04 noble / Mint 22). No further changes needed. Assisted-by: Claude Code (Opus 4.8) --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 1108006..d2ea80e 100644 --- a/debian/control +++ b/debian/control @@ -23,7 +23,7 @@ Build-Depends: libxtst-dev, meson, xtrans-dev, -Standards-Version: 3.9.6 +Standards-Version: 4.7.0 Homepage: https://github.com/linuxmint/cinnamon-session Package: cinnamon-session From 3837e883e12ef2b9ee9a625e1873158ec6a3c167 Mon Sep 17 00:00:00 2001 From: Fabio Fantoni Date: Sun, 31 May 2026 18:27:15 +0200 Subject: [PATCH 15/15] d/rules: install the libexec helpers in a private directory Configure meson with --libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH)/cinnamon-session so the helper executables (cinnamon-session-binary, cinnamon-session-check-accelerated and its helper) land in a package-private directory instead of directly in the multiarch libdir. meson propagates the path to LIBEXECDIR, so the helpers are still found at runtime. Verified with a binary build in a Mint 22.x (noble) chroot: the existing usr/lib/*/cinnamon-session* glob in cinnamon-session.install still picks the binaries up in the new subdirectory and dh_missing (--fail-missing) reports nothing missing. Debian have it since 2018: https://salsa.debian.org/cinnamon-team/cinnamon-session/-/commit/07ffe1d63cd7fe5bd21e86f01537984e9f34dd08 Assisted-by: Claude Code (Opus 4.8) --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 97c1f34..e387810 100755 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all override_dh_auto_configure: dh_auto_configure -- \ - --libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ + --libexecdir=/usr/lib/$(DEB_HOST_MULTIARCH)/cinnamon-session \ -Dfrequent_warnings=true \ -Dipv6=true \ -Dxtrans=true