Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 777675 (glib-2.68) - [TRACKER] dev-libs/glib-2.68.0 breakage (e.g. type_traits:56:3: error: template with C linkage)
Summary: [TRACKER] dev-libs/glib-2.68.0 breakage (e.g. type_traits:56:3: error: templa...
Status: RESOLVED FIXED
Alias: glib-2.68
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords: Tracker
Depends on: 777477 777534 777660 777663 777690 777693 777711 777759 777765 777864 784077 784089 784110 784383 784395 784974 785244 787155
Blocks:
  Show dependency tree
 
Reported: 2021-03-22 08:51 UTC by Joonas Niilola
Modified: 2021-07-15 07:05 UTC (History)
12 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
kde-plasma/discover (failed) build log. (build.log,942.85 KB, text/x-log)
2021-06-04 13:15 UTC, admin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joonas Niilola gentoo-dev 2021-03-22 08:51:59 UTC
After updating to glib-2.68.0 we're seeing lots of errors with
  type_traits:56:3: error: template with C linkage

Apparently the offensive commit to glib is 
  https://gitlab.gnome.org/GNOME/glib/-/commit/552b8fd862061e74b5ad2ffe6a700f850a76f797
that made into glib-2.68.0.

Let's try to find all packages broken by this update. Currently it needs to be updated by upstream (see the GNOME/glib/-/commit above).
Fast fix (not recommended for long-term) is to depend on <glib-2.68.0.
Comment 1 Joonas Niilola gentoo-dev 2021-03-22 08:55:18 UTC
* Need to be fixed by the respected downstream consumers of glib, as shown by the commit linked here.
Comment 2 Larry the Git Cow gentoo-dev 2021-03-22 19:42:43 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bf9e561bb612ebcb32eb94df5df74dfeb7b7e45

commit 6bf9e561bb612ebcb32eb94df5df74dfeb7b7e45
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2021-03-22 19:36:25 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2021-03-22 19:37:38 +0000

    profiles: mask =dev-libs/glib-2.68.0 due to reverse dependency breakage
    
    Errors like "type_traits:56:3: error: template with C linkage". See linked
    bug for information.
    
    Consumers need to port to the new glib.
    
    URL: https://gitlab.gnome.org/GNOME/glib/-/commit/552b8fd862061e74b5ad2ffe6a700f850a76f797
    Bug: https://bugs.gentoo.org/777675
    Signed-off-by: Sam James <sam@gentoo.org>

 profiles/package.mask | 12 ++++++++++++
 1 file changed, 12 insertions(+)
Comment 3 tt_1 2021-03-22 20:01:38 UTC
this might be relevant, couldn't find any bug linked to it though: https://src.fedoraproject.org/rpms/firefox/blob/rawhide/f/icecat-78.7.1-fix_error_template_with_C_linkage.patch
Comment 4 Paweł Metelski 2021-03-23 18:33:21 UTC
I claim that media-sound/ardour is also affected.
Comment 5 Kobboi 2021-03-24 19:16:21 UTC
(In reply to Paweł Metelski from comment #4)
> I claim that media-sound/ardour is also affected.

Which is why I logged and linked bug #777711 the day before your comment :)
Comment 6 Joonas Niilola gentoo-dev 2021-04-23 06:08:05 UTC
This week I've attempted to test glib-2.68.0 against all of its reverse dependencies that are listed in here:
https://qa-reports.gentoo.org/output/genrdeps/dindex/dev-libs/glib
note: DEPEND only.

I've finished the run and filed every breakage I could find, while confirming in another environment with glib-2.66.7 that such compilation failure didn't happen.  

Now a small disclaimer: Not everything could be tested. There's ~1800 rdeps in total, although at some point I stopped testing -9999 packages because they pretty much always failed one reason or another. Then other scenarios involve:
 - deps not compiling (not related to glib),
 - automation can't get past some annoying REQUIRED_USE, 
 - portage's own blockers (systemd, weird < > dependencies, nvidia),
 - my inexperience with handling this many atoms to be tested (it was chaotic), 
 - packages failing to non-glib related issues.
 
I made sure to test at least the latest versions of the biggest packages, like chromium, firefox, libreoffice, qtwebengine and thunderbird. 

Overall I'm rather confident about the coverage and willing to say this is it. At least after fixing the most important blockers, unmasking glib-2.68.0 shouldn't have any devastating effect on users.
Comment 7 Joonas Niilola gentoo-dev 2021-04-23 15:03:11 UTC
^ Hmm, maybe another run against glibmm-2.68.0 is needed then...
Comment 8 Matt Turner gentoo-dev 2021-04-27 14:14:44 UTC
Unmasked:

commit 75fe56f89850c7ce77920fb2b682d631f19c46c6
Author: Matt Turner <mattst88@gentoo.org>
Date:   Tue Apr 27 10:10:13 2021 -0400

    profiles: Unmask dev-libs/glib-2.68
    
    Signed-off-by: Matt Turner <mattst88@gentoo.org>
Comment 9 admin 2021-06-04 00:37:55 UTC
Here is another lib that I've found to have this problem:

https://bugs.gentoo.org/794076

On the most updated branch of this app (https://github.com/ximion/appstream/blob/master/src/appstream.h), it seems that they removed completely the external stuff.

I've added the patch inside the package, however I'm not sure if that's the right way (it should be).
Comment 10 admin 2021-06-04 13:15:20 UTC
Created attachment 713619 [details]
kde-plasma/discover (failed) build log.

This is the build log while compiling kde-plasma/discover with the flatpak backend.
The issue is the same.

emerge --info:

Portage 3.0.18 (python 3.9.4-final-0, default/linux/amd64/17.1/hardened, gcc-10.3.0, glibc-2.33, 5.12.0-pf2-xkmod x86_64)
=================================================================
System uname: Linux-5.12.0-pf2-xkmod-x86_64-Intel-R-_Core-TM-_i7-9700K_CPU_@_3.60GHz-with-glibc2.33
KiB Mem:    32815428 total,  29121504 free
KiB Swap:   67108860 total,  67105788 free
Timestamp of repository gentoo: Thu, 03 Jun 2021 18:00:01 +0000
Head commit of repository gentoo: 5a43f33c9e4d6a632439a218c450174b9c96b2d2
Timestamp of repository monero: Tue, 25 May 2021 15:10:22 +0000
Head commit of repository monero: 8ca47cc9c2c04d085667b264b88707b21dcb1034

sh bash 5.1_p8
ld GNU ld (Gentoo 2.35.2 p1) 2.35.2
app-shells/bash:          5.1_p8::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.32.1::gentoo
dev-lang/python:          2.7.18_p9::gentoo, 3.8.9_p2::gentoo, 3.9.4_p1::gentoo
dev-lang/rust:            1.51.0-r2::gentoo
dev-util/cmake:           3.18.5::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.42.1-r1::gentoo
sys-apps/sandbox:         2.23::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.16.3-r1::gentoo
sys-devel/binutils:       2.35.2::gentoo
sys-devel/gcc:            10.3.0::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.33::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 
    sync-rsync-verify-jobs: 1

monero
    location: /var/db/repos/monero
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/monero.git
    masters: gentoo

crossdev
    location: /var/db/repos/localrepo-crossdev
    masters: gentoo
    priority: 10

flow
    location: /var/lib/layman/flow
    masters: gentoo
    priority: 50

pf4public
    location: /var/lib/layman/pf4public
    masters: gentoo
    priority: 50

steam-overlay
    location: /var/lib/layman/steam-overlay
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -mtune=native -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -mtune=native -march=native"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe -mtune=native -march=native"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -mtune=native -march=native"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j16"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac accessibility acl acpi afs alsa amd64 atm bash-completion bluetooth bzip2 calendars canna caps cjk colord cracklib crypt cups curl cvs cxx dbus dedicated dga dri dv elogind emacs encode exif fbcon ffmpeg flac fontconfig fortran freewnn ftp gdbm geoip gif gimp git gles2 gnuplot gnutls graphicsmagick graphviz gsl gsm gstreamer gui handbook hardened hddtemp iconv icu imagemagick imap imlib inotify ipv6 java javascript jbig jit jpeg kde kerberos ladspa lame latex lcms ldap libass libcaca libglvnd libnotify libtirpc lm-sensors lua luajit lz4 lzma lzo m17n-lib man matroska memcached mhash mmap mng mp3 mp4 mpeg mpi mplayer mtp multilib musepack mysql nas ncurses netcdf networkmanager nls nntp nptl ocaml ocamlopt ofx ogg openal openexr opengl openmp opus osc pcmcia pcre pda pdf perl php pie plasma plotutils portaudio posix postgres postscript profile python qdbm qmail-spp qt5 quicktime radius raw rdp readline recode rss ruby samba sasl screencast sctp sdl seccomp semantic-desktop session skey slang slp smartcard smp snappy sndfile sockets socks5 sound source sox speex spell split-usr sqlite ssl ssp startup-notification static-libs subversion svg syslog szip tcl tcmalloc tcpd theora threads tidy tiff truetype udev unicode unpn unpn-av upower usb v4l vaapi vala vcd vdpau verify-sig vhosts videos vim-syntax vnc vorbis wavpack wayland webkit webp wifi wmf wxwidgets x264 xattr xcomposite xemacs xft xine xinerama xml xmpp xosd xpm xscreensaver xtpax xv xvid zeroconf zip zlib zsh-completion zstd" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3 3dnow" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" QEMU_SOFTMMU_TARGETS="arm x86_64 sparc mips ppc" QEMU_USER_TARGETS="x86_64" RUBY_TARGETS="ruby26" USERLAND="GNU" VIDEO_CARDS="iris i965 intel nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS