Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gtk: migrate, split into 3.x and 4.x subfolders, add all deps and components, introspection support #25090

Draft
wants to merge 21 commits into
base: master
Choose a base branch
from

Conversation

valgur
Copy link
Contributor

@valgur valgur commented Aug 31, 2024

Summary

Changes to recipe: gtk/[*]

Motivation

The GTK library is a quite significant one, but is yet to be migrated to Conan 2.x.

The recipe details for GTK 4 have diverged from GTK 3 enough that squeezing them into a single recipe file hurts more than helps. Even more so, GTK 3 seems to be more or less frozen on version 3.24.x while 4.x is getting frequent updates.

Details

This PR:

  • Migrates the GTK recipe to 2.x.
  • Adds the latest 3.x and 4.x versions and drops old ones.
  • Carefully reproduces the .pc components and their details so they match the logic in the Meson build files. Avoids overlinking by using the exact dependency components.
  • Adds an option for building the Broadway (HTML5) GTK backend.
  • Adds support for all optional dependencies, which is actually not that many.
    • Dependencies that are not yet available on CCI or are currently incompatible (GStreamer) are provided as system dependencies.
  • Deprecates the with_pango option and sets it to always enabled. The Pango dependency is mostly assumed by the project to be available and disentangling it did not seem to be worth the effort.
  • Deprecates with_cloudproviders which never had any effect.
  • Added optional gobject-introspection support.

This PR depends on fixes and updates to a number of other recipes:

All of the fixes have been already applied in my personal fork, if you're interested in testing or using the recipe before all of the related ones have been merged: https://github.com/valgur/conan-center-index


@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 2 (ae13b3deda765d4ba953e68ba2af50d5d18d8b5c):

  • gtk/3.24.43:
    Error running command conan info gtk/3.24.43@#98466d8f728e0de302cd15a43105b854 --json {jsonName} --dry-build -pr {profileName}:

    [settings]
    arch=x86_64
    build_type=Release
    compiler=gcc
    compiler.libcxx=libstdc++11
    compiler.version=5
    os=Linux
    [options]
    gtk:shared=False
    
    ...
    WARN: pcre2/10.42: requirement zlib/[>=1.2.11 <2] overridden by glib/2.78.3 to zlib/1.3.1 
    ERROR: Failed requirement 'pango/1.54.0' from 'gtk/3.24.43'
    ERROR: Unable to find 'pango/1.54.0' in remotes
    
  • gtk/4.7.0:
    Didn't run or was cancelled before finishing

  • gtk/3.24.24:
    Didn't run or was cancelled before finishing

  • gtk/4.15.6:
    Didn't run or was cancelled before finishing


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline ❌

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

Failure in build 2 (ae13b3deda765d4ba953e68ba2af50d5d18d8b5c):

  • gtk/3.24.43:
    Didn't run or was cancelled before finishing

  • gtk/3.24.24:
    Error running command conan graph info --requires gtk/3.24.24@#7628da798e2447c69069b64cd3118c75 --build gtk/3.24.24@#7628da798e2447c69069b64cd3118c75 -f json -pr:h /home/conan/workspace/prod-v2/bsr/83852/dbcfb/profile_linux_11_libstdcpp11_17_gcc_release_64.-shared-False.txt -pr:b /home/conan/workspace/prod-v2/bsr/83852/dbcfb/profile_linux_11_libstdcpp11_17_gcc_release_64..txt:

    ======== Computing dependency graph ========
    glib/2.78.3: Not found in local cache, looking in remotes...
    glib/2.78.3: Checking remote: conan-center
    glib/2.78.3: Downloaded recipe revision 0d214f34a22088571a43892d3fd41093
    zlib/1.3.1: Not found in local cache, looking in remotes...
    zlib/1.3.1: Checking remote: conan-center
    zlib/1.3.1: Downloaded recipe revision f52e03ae3d251dec704634230cd806a2
    libffi/3.4.4: Not found in local cache, looking in remotes...
    libffi/3.4.4: Checking remote: conan-center
    libffi/3.4.4: Downloaded recipe revision 72cccac6139293b6e97ec9cd676547ff
    pcre2/10.42: Not found in local cache, looking in remotes...
    pcre2/10.42: Checking remote: conan-center
    pcre2/10.42: Downloaded recipe revision 576680686b88a4dadf6d382d6d6351d9
    bzip2/1.0.8: Not found in local cache, looking in remotes...
    bzip2/1.0.8: Checking remote: conan-center
    bzip2/1.0.8: Downloaded recipe revision d00dac990f08d991998d624be81a9526
    libelf/0.8.13: Not found in local cache, looking in remotes...
    libelf/0.8.13: Checking remote: conan-center
    libelf/0.8.13: Downloaded recipe revision 4f70a3555809ae50cc8add44f0f84288
    autoconf/2.71: Not found in local cache, looking in remotes...
    autoconf/2.71: Checking remote: conan-center
    autoconf/2.71: Downloaded recipe revision f9307992909d7fb3df459340f1932809
    m4/1.4.19: Not found in local cache, looking in remotes...
    m4/1.4.19: Checking remote: conan-center
    m4/1.4.19: Downloaded recipe revision b38ced39a01e31fef5435bc634461fd2
    gnu-config/cci.20210814: Not found in local cache, looking in remotes...
    gnu-config/cci.20210814: Checking remote: conan-center
    gnu-config/cci.20210814: Downloaded recipe revision dc430d754f465e8c74463019672fb97b
    libmount/2.39: Not found in local cache, looking in remotes...
    libmount/2.39: Checking remote: conan-center
    libmount/2.39: Downloaded recipe revision 8a95198b2547a8ca7685eb7a1d002903
    libselinux/3.6: Not found in local cache, looking in remotes...
    libselinux/3.6: Checking remote: conan-center
    libselinux/3.6: Downloaded recipe revision 5a78ff6ae5034eeaac8da723361a8ce4
    flex/2.6.4: Not found in local cache, looking in remotes...
    flex/2.6.4: Checking remote: conan-center
    flex/2.6.4: Downloaded recipe revision e35bc44b3fcbcd661e0af0dc5b5b1ad4
    pkgconf/2.2.0: Not found in local cache, looking in remotes...
    pkgconf/2.2.0: Checking remote: conan-center
    pkgconf/2.2.0: Downloaded recipe revision 6462942a22803086372db44689ba825f
    meson/1.2.2: Not found in local cache, looking in remotes...
    meson/1.2.2: Checking remote: conan-center
    meson/1.2.2: Downloaded recipe revision 29cf77c283f6af08818f6fd8068c37e8
    ninja/1.12.1: Not found in local cache, looking in remotes...
    ninja/1.12.1: Checking remote: conan-center
    ninja/1.12.1: Downloaded recipe revision fd583651bf0c6a901943495d49878803
    meson/1.5.1: Not found in local cache, looking in remotes...
    meson/1.5.1: Checking remote: conan-center
    meson/1.5.1: Downloaded recipe revision 6a2a0af06a61b57f6e6f0fe88491f0e3
    pkgconf/2.0.3: Not found in local cache, looking in remotes...
    pkgconf/2.0.3: Checking remote: conan-center
    pkgconf/2.0.3: Downloaded recipe revision f996677e96e61e6552d85e83756c328b
    gdk-pixbuf/2.42.10: Not found in local cache, looking in remotes...
    gdk-pixbuf/2.42.10: Checking remote: conan-center
    gdk-pixbuf/2.42.10: Downloaded recipe revision de41f295e47b7a9502fdd8bb64108f65
    libpng/1.6.43: Not found in local cache, looking in remotes...
    libpng/1.6.43: Checking remote: conan-center
    libpng/1.6.43: Downloaded recipe revision c219d8f01983bac10c404fc613605eef
    libtiff/4.6.0: Not found in local cache, looking in remotes...
    libtiff/4.6.0: Checking remote: conan-center
    libtiff/4.6.0: Downloaded recipe revision 51d0e7e15d032aeec1b64e65c44ecd9f
    libdeflate/1.19: Not found in local cache, looking in remotes...
    libdeflate/1.19: Checking remote: conan-center
    libdeflate/1.19: Downloaded recipe revision 3ea74a4549efc14d4b1202dc4bfbf602
    xz_utils/5.4.5: Not found in local cache, looking in remotes...
    xz_utils/5.4.5: Checking remote: conan-center
    xz_utils/5.4.5: Downloaded recipe revision b885d1d79c9d30cff3803f7f551dbe66
    libjpeg/9e: Not found in local cache, looking in remotes...
    libjpeg/9e: Checking remote: conan-center
    libjpeg/9e: Downloaded recipe revision 3cd27a78643419450ee6d3739514d25c
    jbig/20160605: Not found in local cache, looking in remotes...
    jbig/20160605: Checking remote: conan-center
    jbig/20160605: Downloaded recipe revision 2d29fa02aacd76902e0d2cbbc24631ef
    zstd/1.5.5: Not found in local cache, looking in remotes...
    zstd/1.5.5: Checking remote: conan-center
    zstd/1.5.5: Downloaded recipe revision 1f239731dc45147c7fc2f54bfbde73df
    libwebp/1.3.2: Not found in local cache, looking in remotes...
    libwebp/1.3.2: Checking remote: conan-center
    libwebp/1.3.2: Downloaded recipe revision 52f69c4a31c5cf033fdd9230d77a8e38
    cmake/3.30.1: Not found in local cache, looking in remotes...
    cmake/3.30.1: Checking remote: conan-center
    cmake/3.30.1: Downloaded recipe revision 6d832cf2d46f6ec969ca5ed5b41f91eb
    gettext/0.22.5: Not found in local cache, looking in remotes...
    gettext/0.22.5: Checking remote: conan-center
    gettext/0.22.5: Downloaded recipe revision 909a6ca9b6d4062e9b6ccf25c8461cda
    libiconv/1.17: Not found in local cache, looking in remotes...
    libiconv/1.17: Checking remote: conan-center
    libiconv/1.17: Downloaded recipe revision 73fefc1b696e069df90fd1d18aa63edd
    automake/1.16.5: Not found in local cache, looking in remotes...
    automake/1.16.5: Checking remote: conan-center
    automake/1.16.5: Downloaded recipe revision 058bda3e21c36c9aa8425daf3c1faf50
    pango/1.54.0: Not found in local cache, looking in remotes...
    pango/1.54.0: Checking remote: conan-center
    pango/1.54.0: Checking remote: c3i_PR-v2-25090
    Graph root
        cli
    Requirements
        bzip2/1.0.8#d00dac990f08d991998d624be81a9526 - Downloaded (conan-center)
        gdk-pixbuf/2.42.10#de41f295e47b7a9502fdd8bb64108f65 - Downloaded (conan-center)
        glib/2.78.3#0d214f34a22088571a43892d3fd41093 - Downloaded (conan-center)
        gtk/3.24.24#7628da798e2447c69069b64cd3118c75 - Cache
        jbig/20160605#2d29fa02aacd76902e0d2cbbc24631ef - Downloaded (conan-center)
        libdeflate/1.19#3ea74a4549efc14d4b1202dc4bfbf602 - Downloaded (conan-center)
        libelf/0.8.13#4f70a3555809ae50cc8add44f0f84288 - Downloaded (conan-center)
        libffi/3.4.4#72cccac6139293b6e97ec9cd676547ff - Downloaded (conan-center)
        libjpeg/9e#3cd27a78643419450ee6d3739514d25c - Downloaded (conan-center)
        libmount/2.39#8a95198b2547a8ca7685eb7a1d002903 - Downloaded (conan-center)
        libpng/1.6.43#c219d8f01983bac10c404fc613605eef - Downloaded (conan-center)
        libselinux/3.6#5a78ff6ae5034eeaac8da723361a8ce4 - Downloaded (conan-center)
        libtiff/4.6.0#51d0e7e15d032aeec1b64e65c44ecd9f - Downloaded (conan-center)
        libwebp/1.3.2#52f69c4a31c5cf033fdd9230d77a8e38 - Downloaded (conan-center)
        pcre2/10.42#576680686b88a4dadf6d382d6d6351d9 - Downloaded (conan-center)
        xz_utils/5.4.5#b885d1d79c9d30cff3803f7f551dbe66 - Downloaded (conan-center)
        zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Downloaded (conan-center)
        zstd/1.5.5#1f239731dc45147c7fc2f54bfbde73df - Downloaded (conan-center)
    Build requirements
        autoconf/2.71#f9307992909d7fb3df459340f1932809 - Downloaded (conan-center)
        automake/1.16.5#058bda3e21c36c9aa8425daf3c1faf50 - Downloaded (conan-center)
        bzip2/1.0.8#d00dac990f08d991998d624be81a9526 - Downloaded (conan-center)
        cmake/3.30.1#6d832cf2d46f6ec969ca5ed5b41f91eb - Downloaded (conan-center)
        flex/2.6.4#e35bc44b3fcbcd661e0af0dc5b5b1ad4 - Downloaded (conan-center)
        gettext/0.22.5#909a6ca9b6d4062e9b6ccf25c8461cda - Downloaded (conan-center)
        glib/2.78.3#0d214f34a22088571a43892d3fd41093 - Downloaded (conan-center)
        gnu-config/cci.20210814#dc430d754f465e8c74463019672fb97b - Downloaded (conan-center)
        libelf/0.8.13#4f70a3555809ae50cc8add44f0f84288 - Downloaded (conan-center)
        libffi/3.4.4#72cccac6139293b6e97ec9cd676547ff - Downloaded (conan-center)
        libiconv/1.17#73fefc1b696e069df90fd1d18aa63edd - Downloaded (conan-center)
        libmount/2.39#8a95198b2547a8ca7685eb7a1d002903 - Downloaded (conan-center)
        libselinux/3.6#5a78ff6ae5034eeaac8da723361a8ce4 - Downloaded (conan-center)
        m4/1.4.19#b38ced39a01e31fef5435bc634461fd2 - Downloaded (conan-center)
        meson/1.2.2#29cf77c283f6af08818f6fd8068c37e8 - Downloaded (conan-center)
        meson/1.5.1#6a2a0af06a61b57f6e6f0fe88491f0e3 - Downloaded (conan-center)
        ninja/1.12.1#fd583651bf0c6a901943495d49878803 - Downloaded (conan-center)
        pcre2/10.42#576680686b88a4dadf6d382d6d6351d9 - Downloaded (conan-center)
        pkgconf/2.0.3#f996677e96e61e6552d85e83756c328b - Downloaded (conan-center)
        pkgconf/2.2.0#6462942a22803086372db44689ba825f - Downloaded (conan-center)
        zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Downloaded (conan-center)
    Resolved version ranges
        cmake/[>=3.18 <4]: cmake/3.30.1
        libpng/[>=1.6 <2]: libpng/1.6.43
        meson/[>=1.2.3 <2]: meson/1.5.1
        ninja/[>=1.10.2 <2]: ninja/1.12.1
        pkgconf/[>=2.2 <3]: pkgconf/2.2.0
        zlib/[>=1.2.11 <2]: zlib/1.3.1
    ERROR: Package 'pango/1.54.0' not resolved: Unable to find 'pango/1.54.0' in remotes.
    
  • gtk/4.15.6:
    Didn't run or was cancelled before finishing

  • gtk/4.7.0:
    Didn't run or was cancelled before finishing


Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants