Skip to content

Update to GTK+ 3.22.26 and glib mesalib #544

Merged
merged 30 commits into from
Dec 15, 2017

Conversation

pmenzel
Copy link
Collaborator

@pmenzel pmenzel commented Dec 7, 2017

  1. Update to GTK+ 3.22.26 fixing [Bug 114281] AutoFilter drop-down menu items invisible
  2. Update related packages like GLIB
  3. Fix typo in Mesa configure switch
  4. Enable Wayland backend

Install with the commands below.

$ sudo bee install libxkbcommon wayland wayland-protocols
$ sudo bee update mesalib glib2 colord gtk3
$ sudo gtk-query-immodules-3.0 --update-cache
$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Tested on keineahnung and theinternet.

@donald
Copy link
Collaborator

donald commented Dec 8, 2017

test on the internet ( more or less)... updated... started a few applications... worked some time... log out, log in.... no problem found.

@donald
Copy link
Collaborator

donald commented Dec 8, 2017

why not ready for merge?

@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 8, 2017 via email

@pmenzel pmenzel force-pushed the update-to-gtk-3.22.26-and-glib-mesalib branch from 685125c to b244b84 Compare December 11, 2017 08:37
From [1]:

> Wayland is a project to define a protocol for a compositor to talk to
> its clients as well as a library implementation of the protocol.

Create the versionless bee file with the commands below.

```
$ bee init https://wayland.freedesktop.org/releases/wayland-1.14.0.tar.xz
creating wayland-1.14.0-0.bee from template '/etc/default/bee/templates/fallback'
$ mv wayland-1.14.0-0.bee wayland.be0
$ vim wayland.be0
$ git add $_
```

[1] http://www.linuxfromscratch.org/blfs/view/svn/general/wayland.html
From [1]:

> The Wayland-Protocols package contains additional Wayland protocols
> that add functionality outside of protocols already in the Wayland
> core.

Create the versionless bee file with the commands below.

```
$ bee init https://wayland.freedesktop.org/releases/wayland-protocols-1.12.tar.xz
creating wayland-protocols-1.12-0.bee from template '/etc/default/bee/templates/fallback'
$ mv wayland-protocols-1.12-0.bee wayland-protocols.be0
$ git add $_
$ vim $_
$ git commit -a
```

[1] http://www.linuxfromscratch.org/blfs/view/svn/general/wayland-protocols.html
Fixes: 08b94df (mesalib: Replace deprecated switch name)
GTK+ 3.22.26 requires a newer GLIB version, so update it.

Change-log is available online [1].

[1] https://git.gnome.org/browse/glib/tree/NEWS?h=glib-2-54
From [1]:

> libxkbcommon is a keymap compiler and support library which processes
> a reduced subset of keymaps as defined by the XKB specification.

Create the versionless bee file with the commands below.

```
$ bee init https://xkbcommon.org/download/libxkbcommon-0.7.2.tar.xz
creating libxkbcommon-0.7.2-0.bee from template '/etc/default/bee/templates/fallback'
$ mv libxkbcommon-0.7.2-0.bee libxkbcommon.be0
$ git add $_
$ vim $_
```

[1] http://www.linuxfromscratch.org/blfs/view/svn/general/libxkbcommon.html
Use HTTPS to securely download the source archive.
Update to GTK+ 3.22.26 fixing [\[Bug 114281\] AutoFilter drop-down menu
items invisible]
(https://bugs.documentfoundation.org/show_bug.cgi?id=114281) reported by
Thomas R..

Announcement from September 2016 [1]:

> What's new in 3.22
> ==================
>
> The 3.22 release is the last development release in the GTK+ 3. series.
> GTK+ 3.22 will be maintained as the long-term stable version of GTK+ 3,
> and new development will move to the GTK+ 3.90.x releases. To learn more
> about the GTK+ roadmap, read:
>
>  https://blog.gtk.org/2016/09/01/versioning-and-long-term-stability-promise-in-gtk
>
> Major new features include:
>
> * The Wayland backend has support for drawing tablets
>
> * The Wayland backend requires xdg-shell v6
>
> * We have a gesture API for tablet support, GtkPadController
>
> * GdkMonitor offers an API for richer information about connected outputs
>
> * GdkGLContext supports GLES
>
> * GtkScrolledWindow has new max-content-width/height properties that can
>   affect the sizing behavior
>
> * GtkShortcutLabel is a new widget that can display keyboard shortcuts
>   in the same way that GtkShortcutWindow does
>
> * A number of GTK+ APIs will now transparently use portals when used
>   in a Flatpak sandbox, including GtkFileChooserNative, GtkPrintOperation,
>   gtk_show_uri.
>
> For more details and lists of fixed bugs, see the NEWS file that is
> included in the tarball, or see:
>
>  http://git.gnome.org/browse/gtk+/plain/NEWS?id=3.22.0
>
> For concerns about porting from older GTK+ releases, see the README file
> that is included in the tarball, or see:
>
>  http://git.gnome.org/browse/gtk+/plain/README.in?id=3.22.0

GTK+ 3.22.26 was released in November 2017.

[1] https://mail.gnome.org/archives/gnome-announce-list/2016-September/msg00044.html
@pmenzel pmenzel force-pushed the update-to-gtk-3.22.26-and-glib-mesalib branch from b244b84 to a6bde07 Compare December 11, 2017 09:42
@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 11, 2017

Should be ready now.

@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 11, 2017

I added the two commands below as documented in the BLFS book.

$ sudo gtk-query-immodules-3.0 --update-cache
$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas

@donald
Copy link
Collaborator

donald commented Dec 11, 2017

/usr/bin/mp3x from lame-398_2-0.x86_64 ist linked against libgtk-1.2.so.0. Not sure, if we need the package. Its kind of lame anyway. But it can just be rebuilded. Do you want to add lame-398_2-1 ? I can do it, too.

@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 11, 2017

It’s a different package, isn’t it? This package name is gtk3.

$ sudo bee query libgtk-1.2.so.
gtk+-1.2.10-0.x86_64
  /usr/lib/libgtk-1.2.so.0//libgtk-1.2.so.0.9.1
  /usr/lib/libgtk-1.2.so.0.9.1
  /usr/lib/libgtk.so//libgtk-1.2.so.0.9.1

@donald
Copy link
Collaborator

donald commented Dec 11, 2017

sudo bee update mesalib glib2 gtk+ removes gtk+-1.2.10-0.x86_64 which owns the two libraries

/usr/lib/libgdk-1.2.so.0.9.1
/usr/lib/libgtk-1.2.so.0.9.1

required by the lame thing.

@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 11, 2017

Oh, that’s a typo in my instructions then. Sorry.

$ sudo bee update mesalib glib2 gtk3

@pmenzel pmenzel changed the title Update to gtk 3.22.26 and glib mesalib Update to GTK+ 3.22.26 and glib mesalib Dec 11, 2017
@donald
Copy link
Collaborator

donald commented Dec 11, 2017

After ´bee update gtk3´, several applications (evince, firefox,... started after the update) no longer offer any printer on the printer dialog.

@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 11, 2017

colord is updated from 0.1.19 to 1.3.5 to fix the missing printer issue.

gtk3.be0 Outdated
@@ -0,0 +1,89 @@
#!/usr/bin/env beesh

# BEE_VERSION gtk+-3.22.26-0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this change of the package name intended? It asks for a lot of trouble. ./gtk3.be0 creates gtk+-3.22.26-0.x86_64, which bee update gtk3 wouldn't find. bee update gtk+-3.22.26-0.x86_64 wouldn't remove the installed gkt3. If I were to search for the source file of the gkt+ package, I wouldn't look into gtk3.be0....

I wonder, why I didn't make beeversion reject a change of package name.

Recreate bee file with the command below, and convert it to a
versionless bee file.

```
$ bee init https://ftp.acc.umu.se/pub/gnome/sources/gtk+/3.22/gtk+-3.22.26.tar.xz
creating gtk+-3.22.26-0.bee from template '/etc/default/bee/templates/fallback'
```

Add the configure switches back.
Use the domain name used in the book *Linux from Scratch* [1].

It’s the same system.

```
$ host ftp.acc.umu.se
ftp.acc.umu.se has address 194.71.11.165
ftp.acc.umu.se has address 194.71.11.173
ftp.acc.umu.se has IPv6 address 2001:6b0:19::173
ftp.acc.umu.se has IPv6 address 2001:6b0:19::165
ftp.acc.umu.se mail is handled by 0 mail.acc.umu.se.
$ host ftp.gnome.org
ftp.gnome.org is an alias for ftp.acc.umu.se.
ftp.acc.umu.se has address 194.71.11.165
ftp.acc.umu.se has address 194.71.11.173
ftp.acc.umu.se has IPv6 address 2001:6b0:19::173
ftp.acc.umu.se has IPv6 address 2001:6b0:19::165
ftp.acc.umu.se mail is handled by 0 mail.acc.umu.se.
```

[1] http://www.linuxfromscratch.org/blfs/view/svn/x/gtk3.html
Because we can.

> This switch enables the Wayland GDK backend. Replace with
> --disable-wayland-backend if you do not have Wayland-1.14.0 and
> wayland-protocols-1.12 or you do not wish to build GNOME with Wayland
> support. Other changes may be needed to allow the build to complete
> without the wayland-backend enabled.

[1] http://www.linuxfromscratch.org/blfs/view/svn/x/gtk3.html
Use HTTPS to securely download the source archive.
Currently, updating to GTK+ 3.22.26, the GTK+ printer dialog doesn’t
list any printers.

```
(evince:7186): Gtk-WARNING **: libcolord.so.2: cannot open shared object file: No such file or directory
```

So, update colord. Do not use colord 1.4.1 as that requires Meson.
```
[…]
checking for GUSB... no
configure: error: Package requirements (gusb >= 0.2.7) were not met:

No package 'gusb' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GUSB_CFLAGS
and GUSB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
[…]
```
```
[…]
checking for LIBSYSTEMD... no
checking for LIBSYSTEMD_LOGIN... no
configure: error: Package requirements (libsystemd-login >= 44) were not met:

No package 'libsystemd-login' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBSYSTEMD_LOGIN_CFLAGS
and LIBSYSTEMD_LOGIN_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
[…]
```
```
[…]
checking for spotread... no
configure: error: argyllcms sensor requires spotread, not found
[…]
```
The build currently fails with the errors below. So disable GUDEV support.

```
[…]
  CC       libcolord_la-cd-sensor-sync.lo
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c: In function ‘cd_edid_convert_pnp_id_to_string’:
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:126:9: error: implicit declaration of function ‘udev_hwdb_new’ [-Werror=implicit-function-declaration]
  hwdb = udev_hwdb_new (udev);
         ^
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:126:2: warning: nested extern declaration of ‘udev_hwdb_new’ [-Wnested-externs]
  hwdb = udev_hwdb_new (udev);
  ^
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:126:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
  hwdb = udev_hwdb_new (udev);
       ^
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:132:6: error: implicit declaration of function ‘udev_hwdb_get_properties_list_entry’ [-Werror=implicit-function-declaration]
  e = udev_hwdb_get_properties_list_entry (hwdb, modalias, 0);
      ^
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:132:2: warning: nested extern declaration of ‘udev_hwdb_get_properties_list_entry’ [-Wnested-externs]
  e = udev_hwdb_get_properties_list_entry (hwdb, modalias, 0);
  ^
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:132:4: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
  e = udev_hwdb_get_properties_list_entry (hwdb, modalias, 0);
    ^
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:145:3: error: implicit declaration of function ‘udev_hwdb_unref’ [-Werror=implicit-function-declaration]
   udev_hwdb_unref (hwdb);
   ^
/dev/shm/bee-root/colord/colord-1.3.5-0/source/lib/colord/cd-edid.c:145:3: warning: nested extern declaration of ‘udev_hwdb_unref’ [-Wnested-externs]
cc1: some warnings being treated as errors
Makefile:1171: recipe for target 'libcolordprivate_la-cd-edid.lo' failed
[…]
```
>  --with-daemon-user=colord: This switch is used so the colord daemon
>  will run as an unprivileged user instead of root user.

[1] http://www.linuxfromscratch.org/blfs/view/8.1/general/colord.html
> --with-systemdsystemunitdir=no: Disables attempting to build with
> systemd libraries.

[1] http://www.linuxfromscratch.org/blfs/view/8.1/general/colord.html
Recreate bee file with the command below, and convert it to a
versionless bee file.

```
$ bee init https://www.freedesktop.org/software/colord/releases/colord-1.3.5.tar.xz
creating colord-1.3.5-0.bee from template '/etc/default/bee/templates/fallback'
$ mv colord-1.3.5-0.bee colord.be0
$ vim colord.be0
$ git add colord.be0
```
@pmenzel pmenzel force-pushed the update-to-gtk-3.22.26-and-glib-mesalib branch from 47e789a to 818f71f Compare December 13, 2017 15:46
@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 13, 2017

@donald, thank you for spotting this. That means I tested with GTK+ 3.20.6 (gtk3-3.20.6-0.x86_64) the whole time. I fixed the name.

This reverts commit 43cbd6d.

Programs using the GTK+ printing dialog print warnings to the terminal
about the missing service file.

```
** (evince:4561): WARNING **: failed to contact colord: Error calling StartServiceByName for org.freedesktop.ColorManager: GDBus.Error:org.freedesktop.systemd1.LoadFailed: Unit colord.service failed to load: No such file or directory. See system logs and 'systemctl status' for details.
```
@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 15, 2017

@donald, please do bee update -f colord, and notice the missing warnings.

@donald
Copy link
Collaborator

donald commented Dec 15, 2017

Did some tests. Works for me. Ready for merge or do you want to squash the revert?

@pmenzel
Copy link
Collaborator Author

pmenzel commented Dec 15, 2017

I’d leave the revert in as documentation.

@donald
Copy link
Collaborator

donald commented Dec 15, 2017

Good job

@donald donald merged commit e9d2c00 into master Dec 15, 2017
@donald donald deleted the update-to-gtk-3.22.26-and-glib-mesalib branch December 15, 2017 12:59
Sign in to join this conversation on GitHub.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants