Opened 5 months ago

Closed 5 months ago

#15466 closed defect (fixed)

gdk-pixbuf and pango: add '--wrap-mode=nofallback'

Reported by: ken@… Owned by: ken@…
Priority: normal Milestone: 11.0
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

Ryan Marsaw has reported that gdk-pixbuf and pango attempt to download 'gi-docgen', and that this can be avoided by passing ' --wrap-mode=nodownload'.

In my own builds I can see tests for gi-docgen, but in my case the subproject is disabled because certain python3 modules are not installed when I build these packages.

Will try adding that switch.

Change History (12)

comment:1 by ken@…, 5 months ago

Looking at my pango script, I'm already using that switch (I never removed it)! Not sure if the results from adding it to gdk-pixbuf will be clear.

comment:2 by ken@…, 5 months ago

From https://bugs.gentoo.org/788091 perhaps nofallback might be better (I can't get to the link from that bug to see how they fixed it, server overloaded).

comment:3 by Xi Ruoyao, 5 months ago

Maybe we can make nofallback a default by patching meson, in the next release (11.1).

comment:4 by pierre, 5 months ago

According to a comment in the book, gi-docgen is included in pango-1.48.4, so should not be downloaded whatever the settings...

Note that there is an xinclude for the command explanation.

It seems that right now, the only package where this switch is used is gstreamer base plugins

comment:5 by pierre, 5 months ago

Hmmm, isn't this gi-docgen only used if -Dgtk_doc is passed?

in reply to:  5 comment:6 by ken@…, 5 months ago

Replying to pierre:

Hmmm, isn't this gi-docgen only used if -Dgtk_doc is passed?

No, I've just tested this on pango (I don't have gtk-doc, maybe it is now clever enough to notice that)

meson --prefix=/usr \
      --wrap-mode=nofallback \
      -Dbuildtype=release \
      ..

and the output now says

Dependency sysprof-capture-4 skipped: feature sysprof disabled
Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
Not looking for a fallback subproject for the dependency gi-docgen because:
Use of fallback dependencies is disabled.

which I think is what we want.

comment:7 by Douglas R. Reno, 5 months ago

gi-docgen is a complete replacement for gtk-doc that uses Gobject-Introspection files to generate API documentation based off available interfaces.

comment:8 by ken@…, 5 months ago

And for gdk_pixbuf

Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
Not looking for a fallback subproject for the dependency gi-docgen because:
Use of fallback dependencies is disabled.
Configuring gdk-pixbuf.toml using configuration
Configuring gdk-pixdata.toml using configuration
Program gi-docgen found: NO

comment:9 by ken@…, 5 months ago

Summary: gdk-pixbuf and pango: add '--wrap-mode=nodownload'gdk-pixbuf and pango: add '--wrap-mode=nofallback'

comment:10 by ken@…, 5 months ago

What a can of worms meson can be. From https://mesonbuild.com/Subprojects.html

Obtaining subprojects

Meson ships with a dependency system to automatically obtain dependency subprojects. It is documented in the Wrap dependency system manual.
Command-line options

The usage of subprojects can be controlled by users and distros with the following command-line options:

    --wrap-mode=nodownload

    Meson will not use the network to download any subprojects or fetch any wrap information. Only pre-existing sources will be used. This is useful (mostly for distros) when you want to only use the sources provided by a software release, and want to manually handle or provide missing dependencies.

    --wrap-mode=nofallback

    Meson will not use subproject fallbacks for any dependency declarations in the build files, and will only look for them in the system. Note that this does not apply to unconditional subproject() calls, and those are meant to be used for sources that cannot be provided by the system, such as copylibs.

    This option may be overridden by --force-fallback-for for specific dependencies.

(there are other options for using subprojects and their wrap files)

I'll create meson-wrap-nofallback.xml as a new xinclude, with slightly different wording, although I do not grok the difference.

in reply to:  7 comment:11 by ken@…, 5 months ago

Replying to Douglas R. Reno:

gi-docgen is a complete replacement for gtk-doc that uses Gobject-Introspection files to generate API documentation based off available interfaces.

Thanks, I'll comment-out gtk-doc from these two packages.

comment:12 by ken@…, 5 months ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.