Skip to contentSkip to conversation

libglib2: bump to version 2.58.1

PATCH New Fabrice Fontaine 3 participants 7 messages Oct 14, 2018 – Dec 3, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libglib2: bump to version 2.58.1

- Update second patch
- Remove third and fifth patches (already in version)
- Add a new patch to fix a missing header
- Add LIBGLIB2_GTK_DOC_HOOK so autoreconf do not fail on the following error:
automake: error: cannot open < gtk-doc.make: No such file or directory

---
 package/libglib2/0002-disable-tests.patch     |  8 +--
 ...code-python-path-into-various-tools.patch} |  0
 ...gobject-fix-compilation-with-gcc-4.7.patch | 50 ------------------
 ...0004-grefcount-add-missing-gatomic.h.patch | 38 ++++++++++++++
 ...compilation-without-F_-S-G-ETPIPE_SZ.patch | 52 -------------------
 package/libglib2/libglib2.hash                |  4 +-
 package/libglib2/libglib2.mk                  | 11 +++-
 7 files changed, 55 insertions(+), 108 deletions(-)
 rename package/libglib2/{0004-Do-not-hardcode-python-path-into-various-tools.patch => 0003-Do-not-hardcode-python-path-into-various-tools.patch} (100%)
 delete mode 100644 package/libglib2/0003-gobject-fix-compilation-with-gcc-4.7.patch
 create mode 100644 package/libglib2/0004-grefcount-add-missing-gatomic.h.patch
 delete mode 100644 package/libglib2/0005-gio-fix-compilation-without-F_-S-G-ETPIPE_SZ.patch
package/libglib2/0002-disable-tests.patch +5 -3
index 523ebb35ac..e03dc2fee2 100644
@@ -8,6 +8,8 @@ gets mixed with distro python leading to build failures.
 
 Signed-off-by: Gustavo Zacarias <[email protected]>
 Signed-off-by: Adam Duskett <[email protected]>
+Signed-off-by: Fabrice Fontaine <[email protected]>
+[Update for version 2.58.1]
 ---
  Makefile.am      | 2 +-
  gio/Makefile.am  | 2 +-
@@ -22,9 +24,9 @@ index 008ad58..007332d 100644
  
  ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
  
--SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests
-+SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs
- DIST_SUBDIRS = $(SUBDIRS) build win32
+-SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests subprojects
++SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs subprojects
+ DIST_SUBDIRS = $(SUBDIRS) build
  
  bin_SCRIPTS = glib-gettextize
 diff --git a/gio/Makefile.am b/gio/Makefile.am
package/libglib2/0003-Do-not-hardcode-python-path-into-various-tools.patch renamed from package/libglib2/0004-Do-not-hardcode-python-path-into-various-tools.patch +0 -0
similarity index 100%
rename from package/libglib2/0004-Do-not-hardcode-python-path-into-various-tools.patch
rename to package/libglib2/0003-Do-not-hardcode-python-path-into-various-tools.patch
package/libglib2/0003-gobject-fix-compilation-with-gcc-4.7.patch deleted +0 -50

50 lines not on this page · raw message

package/libglib2/0004-grefcount-add-missing-gatomic.h.patch new file +38 -0
new file mode 100644
index 0000000000..165c0baf96
@@ -0,0 +1,38 @@
+From 09c149453ac969dedb1cb2d15d489d1dd81412bf Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <[email protected]>
+Date: Sat, 13 Oct 2018 23:10:33 +0200
+Subject: [PATCH] grefcount: add missing gatomic.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Without gatomic.h, build fails on:
+In file included from garcbox.c:24:0:
+garcbox.c: In function ?g_atomic_rc_box_acquire?:
+grefcount.h:101:13: error: implicit declaration of function ?g_atomic_int_get?; did you mean ?__atomic_store?? [-Werror=implicit-function-declaration]
+     (void) (g_atomic_int_get (rc) == G_MAXINT ? 0 : g_atomic_int_inc ((rc))); \
+             ^
+garcbox.c:292:3: note: in expansion of macro ?g_atomic_ref_count_inc?
+   g_atomic_ref_count_inc (&real_box->ref_count);
+
+Signed-off-by: Fabrice Fontaine <[email protected]>
+[Upstream status: https://gitlab.gnome.org/GNOME/glib/merge_requests/400]
+---
+ glib/grefcount.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/glib/grefcount.h b/glib/grefcount.h
+index dec9a5ffb..b6eced1b7 100644
+--- a/glib/grefcount.h
++++ b/glib/grefcount.h
+@@ -23,6 +23,7 @@
+ #error "Only <glib.h> can be included directly."
+ #endif
+ 
++#include <glib/gatomic.h>
+ #include <glib/gtypes.h>
+ 
+ G_BEGIN_DECLS
+-- 
+2.17.1
+
package/libglib2/0005-gio-fix-compilation-without-F_-S-G-ETPIPE_SZ.patch deleted +0 -52

52 lines not on this page · raw message

package/libglib2/libglib2.hash +2 -2
index 7ce031aa89..ff325432a0 100644
@@ -1,4 +1,4 @@
-# https://download.gnome.org/sources/glib/2.56/glib-2.56.1.sha256sum
-sha256  40ef3f44f2c651c7a31aedee44259809b6f03d3d20be44545cd7d177221c0b8d  glib-2.56.1.tar.xz
+# https://download.gnome.org/sources/glib/2.58/glib-2.58.1.sha256sum
+sha256  97d6a9d926b6aa3dfaadad3077cfb43eec74432ab455dff14250c769d526d7d6  glib-2.58.1.tar.xz
 # License files, locally calculated
 sha256	dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551  COPYING
package/libglib2/libglib2.mk +10 -1
index 67db5ac359..8b2277bd2e 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBGLIB2_VERSION_MAJOR = 2.56
+LIBGLIB2_VERSION_MAJOR = 2.58
 LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).1
 LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz
 LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR)
@@ -13,6 +13,15 @@ LIBGLIB2_LICENSE_FILES = COPYING
 # 0002-disable-tests.patch
 LIBGLIB2_AUTORECONF = YES
 
+# Copy what is done in autogen.sh when gtk-doc is not available
+define LIBGLIB2_GTK_DOC_HOOK
+	echo "EXTRA_DIST=" > $(@D)/gtk-doc.make
+	echo "CLEANFILES=" >> $(@D)/gtk-doc.make
+endef
+
+LIBGLIB2_PRE_CONFIGURE_HOOKS += LIBGLIB2_GTK_DOC_HOOK
+HOST_LIBGLIB2_PRE_CONFIGURE_HOOKS += LIBGLIB2_GTK_DOC_HOOK
+
 LIBGLIB2_INSTALL_STAGING = YES
 LIBGLIB2_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LDFLAGS=-L$(STAGING_DIR)/usr/lib install
 
Signature · 1 line
2.17.1
#1 lore raw

PATCH 1/1 libglib2: bump to version 2.58.1

Hello,

Quoted 8 lines · Fabrice Fontaine

- Update second patch
- Remove third and fifth patches (already in version)
- Add a new patch to fix a missing header
- Add LIBGLIB2_GTK_DOC_HOOK so autoreconf do not fail on the following error:
automake: error: cannot open < gtk-doc.make: No such file or directory

Quoted 13 lines
---
 package/libglib2/0002-disable-tests.patch     |  8 +--
 ...code-python-path-into-various-tools.patch} |  0
 ...gobject-fix-compilation-with-gcc-4.7.patch | 50 ------------------
 ...0004-grefcount-add-missing-gatomic.h.patch | 38 ++++++++++++++
 ...compilation-without-F_-S-G-ETPIPE_SZ.patch | 52 -------------------
 package/libglib2/libglib2.hash                |  4 +-
 package/libglib2/libglib2.mk                  | 11 +++-
 7 files changed, 55 insertions(+), 108 deletions(-)
 rename package/libglib2/{0004-Do-not-hardcode-python-path-into-various-tools.patch => 0003-Do-not-hardcode-python-path-into-various-tools.patch} (100%)
 delete mode 100644 package/libglib2/0003-gobject-fix-compilation-with-gcc-4.7.patch
 create mode 100644 package/libglib2/0004-grefcount-add-missing-gatomic.h.patch
 delete mode 100644 package/libglib2/0005-gio-fix-compilation-without-F_-S-G-ETPIPE_SZ.patch

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#2 lore raw

PATCH 1/1 libglib2: bump to version 2.58.1

Fabrice, Thomas, All,

On 2018-12-02 14:00 +0100, Thomas Petazzoni spake thusly:

Quoted 23 lines · Fabrice Fontaine
Quoted 8 lines

- Update second patch
- Remove third and fifth patches (already in version)
- Add a new patch to fix a missing header
- Add LIBGLIB2_GTK_DOC_HOOK so autoreconf do not fail on the following error:
automake: error: cannot open < gtk-doc.make: No such file or directory

Quoted 13 lines
---
 package/libglib2/0002-disable-tests.patch     |  8 +--
 ...code-python-path-into-various-tools.patch} |  0
 ...gobject-fix-compilation-with-gcc-4.7.patch | 50 ------------------
 ...0004-grefcount-add-missing-gatomic.h.patch | 38 ++++++++++++++
 ...compilation-without-F_-S-G-ETPIPE_SZ.patch | 52 -------------------
 package/libglib2/libglib2.hash                |  4 +-
 package/libglib2/libglib2.mk                  | 11 +++-
 7 files changed, 55 insertions(+), 108 deletions(-)
 rename package/libglib2/{0004-Do-not-hardcode-python-path-into-various-tools.patch => 0003-Do-not-hardcode-python-path-into-various-tools.patch} (100%)
 delete mode 100644 package/libglib2/0003-gobject-fix-compilation-with-gcc-4.7.patch
 create mode 100644 package/libglib2/0004-grefcount-add-missing-gatomic.h.patch
 delete mode 100644 package/libglib2/0005-gio-fix-compilation-without-F_-S-G-ETPIPE_SZ.patch
Quoted 1 line

Applied to master, thanks.

As you can see on the autobuilders, thius breaks all glib-using packages:

libsoup-2.62.3
http://autobuild.buildroot.org/results/e44/e449948077bc03cee57c567332c17f51371b6086//
/bin/sh: /usr/bin/glib-mkenums: No such file or directory

atk-2.28.1
http://autobuild.buildroot.org/results/e9e/e9ebc4f7d6ccf90a9a0800511472367312432137/
/bin/bash: /usr/bin/glib-genmarshal: No such file or directory

dbus-glib-0.110
http://autobuild.buildroot.org/results/2e4/2e4285d47f6295e1b9f9c05abe34df443cad7f9e/
/bin/sh: /usr/bin/glib-genmarshal: No such file or directory

And so on...

I've investigated a bit, and glib-2.0.pc contains (excerpt):

    exec_prefix=/usr
    bindir=${exec_prefix}/bin
    glib_genmarshal=${bindir}/glib-genmarshal
    glib_mkenums=${bindir}/glib-mkenums

And, for example dbus-glib, use pkg-config to get the path to, e.g., glib_genmarshal:

    GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
    AC_SUBST(GLIB_GENMARSHAL)

And if one does exaectly that:

    $ /home/ymorin/dev/buildroot/O/host/bin/pkgconf --variable=glib_genmarshal glib-2.0
    /usr/bin/glib-genmarshal

Of course, on my mach8ine, that one did exist, so the build succeed. But most autobuilders don't have it, and the build fails.

The situation is similar for the two other tools, gobject-query and glib-mkenums.

So, the solutions I have for now are:

1- fix each package and pass them GLIB_GENMARSHAL=$(STAGING_DIR)/bin/glib-genmarshal
(similarly for the two other tools)

2- teach pkgconf to replace even more variables. This is not very
satisfying, and we won't be able to keep up in the long term. We hould at least teach pkgconf to look for that list in an environment variable, at least, to avoid tweaking the code over-and-over again.

However, (1) is not totally free: dbus-glib does not accept it from the environment, because they borked the way to call glib-genmarshal (it's basically hard-coded). I have fixed it and submitted upstream [0], so at least we have that one fixed, but we still have the others, the numerous croud of glib-dependent packages, to test and fix one by one...

[0] https://gitlab.freedesktop.org/dbus/dbus-glib/merge_requests/2

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH 1/1 libglib2: bump to version 2.58.1

Dear Yann,
Le dim. 2 d?c. 2018 ? 18:23, Yann E. MORIN <[email protected]> a ?crit :

Quoted 79 lines

Fabrice, Thomas, All,

On 2018-12-02 14:00 +0100, Thomas Petazzoni spake thusly:

Quoted 23 lines · Fabrice Fontaine
Quoted 8 lines

- Update second patch
- Remove third and fifth patches (already in version)
- Add a new patch to fix a missing header
- Add LIBGLIB2_GTK_DOC_HOOK so autoreconf do not fail on the following error:
automake: error: cannot open < gtk-doc.make: No such file or directory

Quoted 13 lines
---
 package/libglib2/0002-disable-tests.patch     |  8 +--
 ...code-python-path-into-various-tools.patch} |  0
 ...gobject-fix-compilation-with-gcc-4.7.patch | 50 ------------------
 ...0004-grefcount-add-missing-gatomic.h.patch | 38 ++++++++++++++
 ...compilation-without-F_-S-G-ETPIPE_SZ.patch | 52 -------------------
 package/libglib2/libglib2.hash                |  4 +-
 package/libglib2/libglib2.mk                  | 11 +++-
 7 files changed, 55 insertions(+), 108 deletions(-)
 rename package/libglib2/{0004-Do-not-hardcode-python-path-into-various-tools.patch => 0003-Do-not-hardcode-python-path-into-various-tools.patch} (100%)
 delete mode 100644 package/libglib2/0003-gobject-fix-compilation-with-gcc-4.7.patch
 create mode 100644 package/libglib2/0004-grefcount-add-missing-gatomic.h.patch
 delete mode 100644 package/libglib2/0005-gio-fix-compilation-without-F_-S-G-ETPIPE_SZ.patch
Quoted 1 line

Applied to master, thanks.

As you can see on the autobuilders, thius breaks all glib-using packages:

libsoup-2.62.3
http://autobuild.buildroot.org/results/e44/e449948077bc03cee57c567332c17f51371b6086//
/bin/sh: /usr/bin/glib-mkenums: No such file or directory

atk-2.28.1
http://autobuild.buildroot.org/results/e9e/e9ebc4f7d6ccf90a9a0800511472367312432137/
/bin/bash: /usr/bin/glib-genmarshal: No such file or directory

dbus-glib-0.110
http://autobuild.buildroot.org/results/2e4/2e4285d47f6295e1b9f9c05abe34df443cad7f9e/
/bin/sh: /usr/bin/glib-genmarshal: No such file or directory

And so on...

I've investigated a bit, and glib-2.0.pc contains (excerpt):

    exec_prefix=/usr
    bindir=${exec_prefix}/bin
    glib_genmarshal=${bindir}/glib-genmarshal
    glib_mkenums=${bindir}/glib-mkenums

And, for example dbus-glib, use pkg-config to get the path to, e.g., glib_genmarshal:

    GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
    AC_SUBST(GLIB_GENMARSHAL)

And if one does exaectly that:

    $ /home/ymorin/dev/buildroot/O/host/bin/pkgconf --variable=glib_genmarshal glib-2.0
    /usr/bin/glib-genmarshal

Of course, on my mach8ine, that one did exist, so the build succeed. But most autobuilders don't have it, and the build fails.

The situation is similar for the two other tools, gobject-query and glib-mkenums.

So, the solutions I have for now are:

1- fix each package and pass them GLIB_GENMARSHAL=$(STAGING_DIR)/bin/glib-genmarshal
(similarly for the two other tools)

2- teach pkgconf to replace even more variables. This is not very
satisfying, and we won't be able to keep up in the long term. We hould at least teach pkgconf to look for that list in an environment variable, at least, to avoid tweaking the code over-and-over again.

Quoted 7 lines

However, (1) is not totally free: dbus-glib does not accept it from the environment, because they borked the way to call glib-genmarshal (it's basically hard-coded). I have fixed it and submitted upstream [0], so at least we have that one fixed, but we still have the others, the numerous croud of glib-dependent packages, to test and fix one by one...

[0] https://gitlab.freedesktop.org/dbus/dbus-glib/merge_requests/2

Thanks a lot for investigating, I'm more in favor of (2) because most of the glib packages don't have any environment variables. However, it should be noted that a lot of glib packages (libsoup, gdk-pixpuf, atk, pango) have switched to meson in their latest upstream versions.
Meson has a gnome module to find and call genmarshal, mkenums, etc ... and this module does not use the pkgconfig file to find the path of these binaries.
I'll start with atk.

Quoted 11 lines

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

'------------------------------^-------^------------------^--------------------'

Best Regards,

Fabrice

#4 lore raw

PATCH 1/1 libglib2: bump to version 2.58.1

Fabrice, All,

On 2018-12-03 08:23 +0100, Fabrice Fontaine spake thusly:

Quoted 4 lines

Le dim. 2 d?c. 2018 ? 18:23, Yann E. MORIN <[email protected]> a ?crit :

Quoted 3 lines

On 2018-12-02 14:00 +0100, Thomas Petazzoni spake thusly:

Quoted 1 line · Fabrice Fontaine

As you can see on the autobuilders, thius breaks all glib-using packages:

[--SNIP--]

Quoted 9 lines
Quoted 9 lines

So, the solutions I have for now are:

1- fix each package and pass them GLIB_GENMARSHAL=$(STAGING_DIR)/bin/glib-genmarshal
(similarly for the two other tools)

2- teach pkgconf to replace even more variables. This is not very
satisfying, and we won't be able to keep up in the long term. We hould at least teach pkgconf to look for that list in an environment variable, at least, to avoid tweaking the code over-and-over again.

[--SNIP--]

Quoted 8 lines

Thanks a lot for investigating, I'm more in favor of (2) because most of the glib packages don't have any environment variables. However, it should be noted that a lot of glib packages (libsoup, gdk-pixpuf, atk, pango) have switched to meson in their latest upstream versions.
Meson has a gnome module to find and call genmarshal, mkenums, etc ... and this module does not use the pkgconfig file to find the path of these binaries.

Well, dbus-glib is in maintenance-mode only, so it's not going to be updated to meson I am afraid (or should I say, relieved?). So we still have some fixing to do.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#5 lore raw

PATCH 1/1 libglib2: bump to version 2.58.1

In reply to Yann E. MORIN

Hello,

Quoted 4 lines · Yann E. MORIN

2- teach pkgconf to replace even more variables. This is not very
satisfying, and we won't be able to keep up in the long term. We hould at least teach pkgconf to look for that list in an environment variable, at least, to avoid tweaking the code over-and-over again.

Note that we have a pkg-config bump in the pending patches:
http://patchwork.ozlabs.org/patch/967653/. The bump is quite major, and potentially affects how pkg-config behaves with variables. It might be worth testing what happens, and in any case, if a solution is designed, it should be based on this newer version of pkg-config.

For now, I will revert this libglib2 bump. I'll wait a bit for the dust to settle, and then I will apply this pkg-config bump, which is another risky change. The kind of stuff that is good to do early in the development cycle :-)

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#6 lore raw

PATCH 1/1 libglib2: bump to version 2.58.1

Thomas, Fabrice, All,

On 2018-12-03 08:38 +0100, Thomas Petazzoni spake thusly:

Quoted 13 lines · Yann E. MORIN
Quoted 5 lines

2- teach pkgconf to replace even more variables. This is not very
satisfying, and we won't be able to keep up in the long term. We hould at least teach pkgconf to look for that list in an environment variable, at least, to avoid tweaking the code over-and-over again.

Note that we have a pkg-config bump in the pending patches:
http://patchwork.ozlabs.org/patch/967653/. The bump is quite major, and potentially affects how pkg-config behaves with variables. It might be worth testing what happens, and in any case, if a solution is designed, it should be based on this newer version of pkg-config.

Quoted 4 lines

For now, I will revert this libglib2 bump. I'll wait a bit for the dust to settle, and then I will apply this pkg-config bump, which is another risky change. The kind of stuff that is good to do early in the development cycle :-)

So, I tested your pkgconf bump, and indeed it solves this particular glib-genmarshal et al. issues, by now returning the sysrooted path:

    $ /home/ymorin/dev/buildroot/O/host/bin/pkg-config --variable=glib_genmarshal glib-2.0
    /home/ymorin/dev/buildroot/O/host/bin/../m68k-buildroot-linux-uclibc/sysroot/usr/bin/glib-genmarshal

Wee! :-)

Of course, do not take that as a tested-by tag for the bump, it is too limited to be so.

I'll kick-start two biggish build this morning, with just the new pkgconf and see how it behaves across the tree, once without the libglib2, andother with.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'