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

> 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

I have attached the refreshed patches after the release of 29.3+1-1.  TIA!

(Note that merge requests were closed so the salsa link is no longer valid.)

-- 
Xiyue Deng

>From 2ce769b9ea45d72ed54d6168875626b10c8e7321 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 6ffab5c7af8..18c502de26d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+emacs (1:29.3+1-2) 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.3+1-1) unstable; urgency=high
 
   * Merge upstream version 29.3.  Thanks to David Bremner for the
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