Xiyue Deng <manp...@gmail.com> writes:

> Control: tags -1 patch
>
> Hi,
>
> It looks like the gsettings-backend dependency was introduced since
> Emacs 29.1.  Tried to debug this a little, and it looks like the
> dependencies was pulled in through ${misc:Depends} due to the GSettings
> schema file[1].  With helps from folks on IRC, we found that this file
> was installed only in PGTK mode[2], so technically this is not required
> by other modes and should be safe to be moved from emacs-common to
> emacs-pgtk.
>
> I have prepared a MR[3] (patch also attached) as an attempt and verified
> that it moved the "dconf-gsettings-backend | gsettings-backend" from
> emacs-common to emacs-pgtk.  I'll try to use this locally with emacs-nox
> to further verify that it doesn't cause any issues.
>
> Meanwhile, would be great to have people review the patch.  TIA!
>
> [1] Search for
>     "/usr/share/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml" on
>     https://packages.debian.org/sid/all/emacs-common/filelist
>
> [2] 
> https://salsa.debian.org/rlb/deb-emacs/-/blob/deb/emacs/d/sid/master/Makefile.in?ref_type=heads#L1334-1337
>
> [3] https://salsa.debian.org/rlb/deb-emacs/-/merge_requests/12

I have made a few updates to the merge request, and please see the
updated patch attached.  Do refer to the merge request[1] for the latest
updates.

[1] https://salsa.debian.org/rlb/deb-emacs/-/merge_requests/12
-- 
Xiyue Deng
>From 5fbec288a2c0c3fa54e100362155268ed40373e3 Mon Sep 17 00:00:00 2001
From: Xiyue Deng <manp...@gmail.com>
Date: Wed, 13 Mar 2024 10:22:46 -0700
Subject: [PATCH] Install GSettings schema in pgtk build only (Closes:
 #1050393)

* In PGTK build it generates the GSettings schema file
"/usr/share/glib-2.0/schemas/org.gnu.emacs.defaults.gschema.xml" which
is not needed in other variant.
* Move the file from emacs-common to emacs-pgtk, and adds proper
breaks/replaces/conflicts to ensure a smooth upgrade.
---
 debian/changelog |  7 +++++++
 debian/control   | 12 ++++++++++--
 debian/rules     |  9 ++++++++-
 3 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index c53984fc648..960672b6297 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+emacs (1:29.2+1-3) UNRELEASED; urgency=medium
+
+  * Team upload.
+  * Install GSettings schema in pgtk build only (Closes: #1050393)
+
+ -- Xiyue Deng <manp...@gmail.com>  Wed, 13 Mar 2024 10:22:10 -0700
+
 emacs (1:29.2+1-2) unstable; urgency=medium
 
   * Fix Breaks/Replaces by prepending missing epoch (Closes: #1064851)
diff --git a/debian/control b/debian/control
index e168717089f..0c6fab0bfeb 100644
--- a/debian/control
+++ b/debian/control
@@ -138,8 +138,15 @@ Provides: editor, emacs, emacsen, info-browser, mail-reader, news-reader
 Recommends: fonts-noto-color-emoji
 Suggests: emacs-common-non-dfsg
 Conflicts: emacs-gtk, emacs-lucid, emacs-nox
-Replaces: emacs-gtk, emacs-lucid, emacs-nox, emacs-bin-common (<< 1:29.2)
-Breaks: emacs-bin-common (<< 1:29.2)
+Replaces:
+ emacs-gtk,
+ emacs-lucid,
+ emacs-nox,
+ emacs-bin-common (<< 1:29.2),
+ emacs-common (<< 1:29.2+1-3~),
+Breaks:
+ emacs-bin-common (<< 1:29.2),
+ emacs-common (<< 1:29.2+1-3~),
 Description: GNU Emacs editor (with GTK+ Wayland GUI support)
  GNU Emacs is the extensible self-documenting text editor.  This
  package contains a version of Emacs with a graphical user interface
@@ -184,6 +191,7 @@ Breaks:
  emacs-gtk (<< 1:25),
  emacs-lucid (<< 1:25),
  emacs-nox (<< 1:25),
+ emacs-pgtk (<< 1:29.2+1-3~),
 Replaces:
  emacs-bin-common (<< 1:28)
 Description: GNU Emacs editor's shared, architecture independent infrastructure
diff --git a/debian/rules b/debian/rules
index 38965316f3d..8448d7c9be3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -425,6 +425,9 @@ override_dh_auto_install: $(autogen_install_files)
 	  cp -a $(install_dir_pgtk)/* $(pkgdir_common)
 
 	  rm -r $(pkgdir_common)/usr/bin
+	  # PGTK builds a GSettings schema that is PGTK specific and
+	  # should not be shipped in emacs-common
+	  rm -r $(pkgdir_common)/usr/share/glib-2.0
 	  rm \
 	    $(pkgdir_common)/$(libexec_dir_emacs)/hexl \
 	    $(pkgdir_common)/$(libexec_dir_emacs)/emacs-*.pdmp \
@@ -548,7 +551,7 @@ override_dh_auto_install: $(autogen_install_files)
 
         ##################################################
         # emacs-pgtk
-        ifneq (,$(findstring emacs, $(shell dh_listpackages)))
+        ifneq (,$(findstring emacs-pgtk, $(shell dh_listpackages)))
 	  $(call install_common_binpkg_bits,$(install_dir_pgtk),$(pkgdir_pgtk),emacs-pgtk,pgtk)
 
           # install desktop entries
@@ -557,6 +560,10 @@ override_dh_auto_install: $(autogen_install_files)
 	    debian/emacs.desktop \
 	    debian/emacs-term.desktop \
 	    $(pkgdir_pgtk)/usr/share/applications/
+	  # install GSettings schema
+	  install -d $(pkgdir_pgtk)/usr/share/glib-2.0
+	  cp -a $(install_dir_pgtk)/usr/share/glib-2.0/* \
+	    $(pkgdir_pgtk)/usr/share/glib-2.0
         endif
 
         ##################################################
-- 
2.39.2

Reply via email to