Opened 13 months ago

Closed 11 months ago

Last modified 8 months ago

#22075 closed enhancement (fixed)

Add glycin and let gdk-pixbuf use it

Reported by: Xi Ruoyao Owned by: blfs-book
Priority: normal Milestone: 13.0
Component: BOOK Version: git
Severity: medium Keywords:
Cc:

Description (last modified by Xi Ruoyao)

The release note of new gdk-pixbuf recommends to use glycin (​https://download.gnome.org/sources/glycin/2.0/) on Linux, and non-glycin loaders will be removed (moving into a separate repo that nobody will maintain) in the future.

The problematic part about glycin is for AVIF it only supports libheif, not libavif that we already have. And libheif needs libde265 in turn (because it supports both HEIF that uses a x265 decoder, i.e. libde265 and AVIF that uses an AV1 decoder, i.e. libaom or libdav1d).

So one approach for the book is:

+ libde265
+ libheif
+ glycin
- webp-pixbuf-loader (can be completely superseded by the glycin loader)

libde265 and libheif can also be used by gimp, gst-plugins-bad, and imagemagick. We cannot remove libavif as many packages only support it, not libheif.

Another approach is not to add libheif, but leaving AVIF to be loaded by the current loader in the book (the one bundled in libavif), we'd have:

+ glycin
- webp-pixbuf-loader

Change History (12)

comment:1 by Xi Ruoyao, 13 months ago

Description: modified (diff)

comment:2 by Xi Ruoyao, 13 months ago

I get a very dirty test result from gdk-pixbuf built with glycin... I don't dare to install it at all :(.

Last edited 13 months ago by Xi Ruoyao (previous) (diff)

comment:3 by Xi Ruoyao, 13 months ago

Milestone: 12.5 → 99-Waiting

Need to triage all the test failures before switching to it.

comment:4 by Douglas R. Reno, 12 months ago

Xi, can you check on this again with the new gdk-pixbuf version?

comment:5 by Bruce Dubbs, 12 months ago

For now I've disabled glycin in gdk-pixbuf.

comment:6 by Douglas R. Reno, 12 months ago

That sounds like a good plan, but we definitely should address this again soon as this approach will not be supported in the future; especially since most other distros are using glycin now. The reasoning makes a lot of sense too, the decoders are all sandboxed... which is huge for security

comment:7 by Xi Ruoyao, 12 months ago

Still no better with latest glycin and gdk-pixbuf.

I like switching to glycin, but the in-explainable test failures are too troubling. Especially:

gdk-pixbuf:slow / pixbuf-randomly-modified time out (After 300 seconds)

IMO this is not good. The gdk-pixbuf loader should not hang on *any* input as it may be used on random online images.

comment:8 by Xi Ruoyao, 12 months ago

And I know the upstream seems considering truncated files like bug696331.png or the animated GIF no longer valid, but why they cannot just remove them or update the test expectation? Are they thinking "hey we are just a wrapper of glycin now so the test result does not matter?"

comment:9 by Xi Ruoyao, 11 months ago

I'm running gdk-pixbuf built with glycin on my system now to see if there's some issue.

in reply to:  description comment:10 by Xi Ruoyao, 11 months ago

Replying to Xi Ruoyao:

Another approach is not to add libheif, but leaving AVIF to be loaded by the current loader in the book (the one bundled in libavif), we'd have:

+ glycin
- webp-pixbuf-loader

It turns out the approach doesn't work: gdk-pixbuf will always attempt to use glycin to load AVIF if glycin is enabled, and it won't fall back to the loader from libavif if glycin fails.

I've edited the book at the xry111/glycin branch. I've been using the new gdk-pixbuf for two days and there seems no issue except the gdk-pixbuf test suite. I've marked it "the test suite does not provide a meaningful result" in the branch for now.

comment:11 by Xi Ruoyao, 11 months ago

Milestone: 99-Waiting → 12.5
Resolution: → fixed
Status: new → closed

comment:12 by Bruce Dubbs, 8 months ago

Milestone: 12.5 → 13.0

Milestone renamed

Note: See TracTickets for help on using tickets.