Bug#842442: libglib2.0-dev: move glib-genmarshal to a Multi-Arch: foreign package

Helmut Grohne helmut at subdivi.de
Sat Oct 29 09:35:57 UTC 2016


Package: libglib2.0-dev
Version: 2.50.1-1
Tags: patch
User: helmutg at debian.org
Usertags: rebootstrap
Control: affects -1 + src:cinnamon-session src:clutter-imcontext src:goocanvas src:gtksourceview2 src:libgnomecanvas src:libindicator src:libunique3 src:libunique src:tumbler src:vino

The packages listed under affects fail to cross build from source,
because they fail executing glib-genmarshal. I conducted some
experiments with glib-genmarshal and conclude that its output solely
depends on the input and command line switches and does not depend on
the architecture of the glib-genmarshal binary. Thus I believe that
glib-genmarshal should be moved to a Multi-Arch: foreign package. A
quick google indicates that using a native glib-genmarshal for cross
compiling glib users is a common technique further supporting my view.

Thus, I propose adding a new package libglib2.0-dev-bin. glib-genmarshal
and other shared components are moved from libglib2.0-dev into the new
package. It will be Architecture: any (due to containing
glib-genmarshal) and Multi-Arch: foreign. In order to not break any
current uses of libglib2.0-dev, it gains a dependency on the new
package.

Please review the suggested change and apply the patch if appropriate.

Helmut
-------------- next part --------------
diff --minimal -Nru glib2.0-2.50.1/debian/changelog glib2.0-2.50.1/debian/changelog
--- glib2.0-2.50.1/debian/changelog
+++ glib2.0-2.50.1/debian/changelog
@@ -1,3 +1,11 @@
+glib2.0 (2.50.1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Move glib-genmarshal and related files to a new M-A:foreign package
+    libglib2.0-dev-bin (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de>  Sat, 29 Oct 2016 11:27:41 +0200
+
 glib2.0 (2.50.1-1) unstable; urgency=medium
 
   [ Jason Crain ]
diff --minimal -Nru glib2.0-2.50.1/debian/control glib2.0-2.50.1/debian/control
--- glib2.0-2.50.1/debian/control
+++ glib2.0-2.50.1/debian/control
@@ -112,6 +112,7 @@
          ${python3:Depends},
          libglib2.0-0 (= ${binary:Version}),
          libglib2.0-bin (= ${binary:Version}),
+         libglib2.0-dev-bin (= ${binary:Version}),
          libpcre3-dev (>= 1:8.31),
          pkg-config,
          zlib1g-dev
@@ -125,6 +126,23 @@
  as only it includes the header files and static libraries (optionally)
  needed for compiling.
 
+Package: libglib2.0-dev-bin
+Section: libdevel
+Architecture: any
+Depends: ${misc:Depends},
+         ${shlibs:Depends},
+Breaks: libglib2.0-dev (<< 2.50.1-1.1~)
+Replaces: libglib2.0-dev (<< 2.50.1-1.1~)
+Multi-Arch: foreign
+Description: Development utilities for the GLib library
+ GLib is a library containing many useful C routines for things such
+ as trees, hashes, lists, and strings.  It is a useful general-purpose
+ C library used by projects such as GTK+, GIMP, and GNOME.
+ .
+ This package is needed to compile programs against libglib2.0-0. It contains
+ development utilities typically run during compilation and should not be
+ installed directly. Use libglib2.0-dev instead.
+
 Package: libglib2.0-0-dbg
 Section: debug
 Priority: extra
diff --minimal -Nru glib2.0-2.50.1/debian/control.in glib2.0-2.50.1/debian/control.in
--- glib2.0-2.50.1/debian/control.in
+++ glib2.0-2.50.1/debian/control.in
@@ -112,6 +112,7 @@
          ${python3:Depends},
          @SHARED_PKG@ (= ${binary:Version}),
          @BIN_PKG@ (= ${binary:Version}),
+         @DEVBIN_PKG@ (= ${binary:Version}),
          libpcre3-dev (>= 1:8.31),
          pkg-config,
          zlib1g-dev
@@ -125,6 +126,23 @@
  as only it includes the header files and static libraries (optionally)
  needed for compiling.
 
+Package: @DEVBIN_PKG@
+Section: libdevel
+Architecture: any
+Depends: ${misc:Depends},
+         ${shlibs:Depends},
+Breaks: libglib2.0-dev (<< 2.50.1-1.1~)
+Replaces: libglib2.0-dev (<< 2.50.1-1.1~)
+Multi-Arch: foreign
+Description: Development utilities for the GLib library
+ GLib is a library containing many useful C routines for things such
+ as trees, hashes, lists, and strings.  It is a useful general-purpose
+ C library used by projects such as GTK+, GIMP, and GNOME.
+ .
+ This package is needed to compile programs against libglib2.0-0. It contains
+ development utilities typically run during compilation and should not be
+ installed directly. Use libglib2.0-dev instead.
+
 Package: @DEBUG_PKG@
 Section: debug
 Priority: extra
diff --minimal -Nru glib2.0-2.50.1/debian/libglib2.0-dev-bin.install glib2.0-2.50.1/debian/libglib2.0-dev-bin.install
--- glib2.0-2.50.1/debian/libglib2.0-dev-bin.install
+++ glib2.0-2.50.1/debian/libglib2.0-dev-bin.install
@@ -0,0 +1,8 @@
+usr/share/aclocal
+usr/share/glib-2.0/gettext
+usr/share/man/man1/glib-genmarshal.1*
+usr/share/man/man1/glib-mkenums.1*
+usr/share/man/man1/glib-gettextize.1*
+usr/bin/glib-genmarshal
+usr/bin/glib-mkenums
+usr/bin/glib-gettextize
diff --minimal -Nru glib2.0-2.50.1/debian/libglib2.0-dev.install glib2.0-2.50.1/debian/libglib2.0-dev.install
--- glib2.0-2.50.1/debian/libglib2.0-dev.install
+++ glib2.0-2.50.1/debian/libglib2.0-dev.install
@@ -6,21 +6,13 @@
 usr/lib/*/libgio*.so
 usr/lib/*/glib-2.0
 usr/lib/*/pkgconfig
-usr/share/aclocal
 usr/share/glib-2.0/codegen/*.py
-usr/share/glib-2.0/gettext
 usr/share/glib-2.0/schemas
-usr/share/man/man1/glib-genmarshal.1*
-usr/share/man/man1/glib-mkenums.1*
 usr/share/man/man1/gobject-query.1*
-usr/share/man/man1/glib-gettextize.1*
 usr/share/man/man1/gtester.1*
 usr/share/man/man1/gtester-report.1*
 usr/share/man/man1/gdbus-codegen.1*
-usr/bin/glib-genmarshal
 usr/bin/gobject-query
-usr/bin/glib-mkenums
 usr/bin/gtester-report
-usr/bin/glib-gettextize
 usr/bin/gtester
 usr/bin/gdbus-codegen
diff --minimal -Nru glib2.0-2.50.1/debian/rules glib2.0-2.50.1/debian/rules
--- glib2.0-2.50.1/debian/rules
+++ glib2.0-2.50.1/debian/rules
@@ -35,6 +35,7 @@
 DATA_PKG := libglib$(APIVER)-data
 TEST_PKG := libglib$(APIVER)-tests
 DEV_PKG := libglib$(APIVER)-dev
+DEVBIN_PKG := libglib$(APIVER)-dev-bin
 BIN_PKG := libglib$(APIVER)-bin
 UDEB_PKG := libglib$(APIVER)-udeb
 DOC_PKG := libglib$(APIVER)-doc
@@ -135,6 +136,7 @@
 		-e "s#@BIN_PKG@#$(BIN_PKG)#g" \
 		-e "s#@DATA_PKG@#$(DATA_PKG)#g" \
 		-e "s#@DEV_PKG@#$(DEV_PKG)#g" \
+		-e "s#@DEVBIN_PKG@#$(DEVBIN_PKG)#g" \
 		-e "s#@UDEB_PKG@#$(UDEB_PKG)#g" \
 		-e "s#@DOC_PKG@#$(DOC_PKG)#g" \
 		-e "s#@DEBUG_PKG@#$(DEBUG_PKG)#g" \


More information about the pkg-gnome-maintainers mailing list