conda-forge / qt-webengine-feedstock

A conda-smithy repository for qt-webengine.
BSD 3-Clause "New" or "Revised" License
1 stars 15 forks source link

Rebuild for icu70 #6

Closed regro-cf-autotick-bot closed 2 years ago

regro-cf-autotick-bot commented 2 years ago

This PR has been triggered in an effort to update icu70.

Notes and instructions for merging this PR:

  1. Please merge the PR only after the tests have passed.
  2. Feel free to push to the bot's branch to update this PR if needed.

Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.

If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/2270837907, please use this URL for debugging.

conda-forge-linter commented 2 years ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

hmaarrfk commented 2 years ago

I don't htink the tests are being run because you are corss compiling (at least on azure).

Tobias-Fischer commented 2 years ago

osx-arm64 log: https://www.dropbox.com/s/ig6ckeg83kdznh2/qt-webengine-osx-arm64-py2-fixed.log?dl=0

Package on https://anaconda.org/TobiasRobotics/qt-webengine

I'm not sure what's going on in CI for the osx-arm64 build though - for some reason CONDA_BUILD_CROSS_COMPILATION is not defined. But seeing CI doesn't work anyhow I'm not sure how urgent it is to fix.

Tobias-Fischer commented 2 years ago

On an unrelated note to the above, but related to this particular PR on rebuilding icu (on any of the platforms):

  Optional system libraries used:
icu .................................. no

Not sure whether this should be of concern.

hmaarrfk commented 2 years ago

Definitely a concern for me. Was it like this before?

Tobias-Fischer commented 2 years ago

Yes, seems like this was the case before, too: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=469192&view=logs&jobId=656edd35-690f-5c53-9ba3-09c10d0bea97&j=656edd35-690f-5c53-9ba3-09c10d0bea97&t=e5c8ab1d-8ff9-5cae-b332-e15ae582ed2d

Note again that this is not an osx-arm64 specific problem. It happens on linux and osx-64, too.

Win-64 is a bit harder to tell, but I can see the flag -DUSE_CHROMIUM_ICU=1, which to me indicates that the system icu is not being used, either.

hmaarrfk commented 2 years ago

maybe we should just remove the ICU dependency here and rebuild without the pin.

It is conceivable that webengine was never built with the icu system dependency. Not sure if somebody else can confirm / reject.

Tobias-Fischer commented 2 years ago

This enables using the system icu:

diff --git a/recipe/build.sh b/recipe/build.sh
index 02d4ab2..62a74a0 100644
--- a/recipe/build.sh
+++ b/recipe/build.sh
@@ -108,7 +108,7 @@ if [[ $(uname) == "Darwin" ]]; then
         $EXTRA_FLAGS \
         QMAKE_LFLAGS+="-Wno-everything -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib" \
         PKG_CONFIG_EXECUTABLE=$(which pkg-config) \
-        ..
+        .. -- -webengine-icu

     # find . -type f -exec sed -i '' -e 's/-Wl,-fatal_warnings//g' {} +
     # sed -i '' -e 's/-Werror//' $PREFIX/mkspecs/features/qt_module_headers.prf

Leading to:

    icu .................................. yes

Complete config summary after this change, just in case there are other system libs that should be pulled in but are not currently:

Configure summary:

Qt WebEngine Build Tools:
  Use System Ninja ....................... yes
  Jumbo Build Merge Limit ................ 8
  Developer build ........................ no
  Sanitizer .............................. no
  Optional system libraries used:
    re2 .................................. yes
    icu .................................. yes
    libwebp, libwebpmux and libwebpdemux . yes
    opus ................................. yes
    ffmpeg ............................... no
    libvpx ............................... yes
    snappy ............................... no
    glib ................................. no
    zlib ................................. yes
    minizip .............................. no
    libevent ............................. yes
    libxml2 and libxslt .................. no
    lcms2 ................................ yes
    png .................................. yes
    JPEG ................................. no
    harfbuzz ............................. no
    freetype ............................. no
Qt WebEngineCore:
  Embedded build ......................... yes
  Full debug information ................. no
  Pepper Plugins ......................... no
  Printing and PDF ....................... no
  Proprietary Codecs ..................... no
  Spellchecker ........................... yes
  Native Spellchecker .................... no
  WebRTC ................................. no
  PipeWire over GIO ...................... no
  Geolocation ............................ yes
  WebChannel support ..................... yes
  Kerberos Authentication ................ no
  Extensions ............................. no
  Support qpa-xcb ........................ no
  Building v8 snapshot supported ......... yes
  Use ALSA ............................... no
  Use PulseAudio ......................... no
  macOS version .......................... 12.3.1
  Xcode version .......................... 12.2
  Clang version .......................... clang version 13.0.1
  macOS SDK version ...................... 12.1
  macOS minimum deployment target ........ 10.13
Qt WebEngineQml:
  Support Qt WebEngine Qml ............... yes
  UI Delegates ........................... yes
  Test Support ........................... no
Qt WebEngineWidgets:
  Support Qt WebEngine Widgets ........... yes
Qt PDF:
  Support V8 ............................. no
  Support XFA ............................ no
  Support XFA-BMP ........................ no
  Support XFA-GIF ........................ no
  Support XFA-PNG ........................ no
  Support XFA-TIFF ....................... no
Qt PDF Widgets:
  Support Qt PDF Widgets ................. yes
Tobias-Fischer commented 2 years ago

I can build osx-64 and osx-arm64 with this change if you want, but I guess we should also rebuild linux (not sure about win).

hmaarrfk commented 2 years ago

It seems ok at a high level.

This is for linux-amd64

2022-05-05T00:43:24.0858094Z Configure summary:
2022-05-05T00:43:24.0858928Z 
2022-05-05T00:43:24.0859578Z Qt WebEngine Build Tools:
2022-05-05T00:43:24.0860113Z   Use System Ninja ....................... yes
2022-05-05T00:43:24.0860642Z   Jumbo Build Merge Limit ................ 8
2022-05-05T00:43:24.0861126Z   Developer build ........................ no
2022-05-05T00:43:24.0861627Z   Sanitizer .............................. no
2022-05-05T00:43:24.0862119Z   QtWebEngine required system libraries:
2022-05-05T00:43:24.0862596Z     fontconfig ........................... yes
2022-05-05T00:43:24.0863086Z     dbus ................................. yes
2022-05-05T00:43:24.0863552Z     nss .................................. yes
2022-05-05T00:43:24.0864062Z     khr .................................. yes
2022-05-05T00:43:24.0864530Z     glibc ................................ yes
2022-05-05T00:43:24.0865931Z   QtWebEngine required system libraries for qpa-xcb:
2022-05-05T00:43:24.0866546Z     x11 .................................. yes
2022-05-05T00:43:24.0867068Z     libdrm ............................... yes
2022-05-05T00:43:24.0867568Z     xcomposite ........................... yes
2022-05-05T00:43:24.0868040Z     xcursor .............................. yes
2022-05-05T00:43:24.0868538Z     xi ................................... yes
2022-05-05T00:43:24.0869004Z     xproto (glproto) ..................... yes
2022-05-05T00:43:24.0869503Z     xtst ................................. yes
2022-05-05T00:43:24.0869955Z   Optional system libraries used:
2022-05-05T00:43:24.0870439Z     re2 .................................. no
2022-05-05T00:43:24.0871151Z     icu .................................. no
2022-05-05T00:43:24.0871593Z     libwebp, libwebpmux and libwebpdemux . yes
2022-05-05T00:43:24.0872064Z     opus ................................. yes
2022-05-05T00:43:24.0872504Z     ffmpeg ............................... no
2022-05-05T00:43:24.0873006Z     libvpx ............................... no
2022-05-05T00:43:24.0873453Z     snappy ............................... no
2022-05-05T00:43:24.0873911Z     glib ................................. no
2022-05-05T00:43:24.0874363Z     zlib ................................. yes
2022-05-05T00:43:24.0874800Z     minizip .............................. no
2022-05-05T00:43:24.0875263Z     libevent ............................. yes
2022-05-05T00:43:24.0875701Z     libxml2 and libxslt .................. no
2022-05-05T00:43:24.0876417Z     lcms2 ................................ no
2022-05-05T00:43:24.0876885Z     png .................................. yes
2022-05-05T00:43:24.0877372Z     JPEG ................................. no
2022-05-05T00:43:24.0877837Z     harfbuzz ............................. no
2022-05-05T00:43:24.0878336Z     freetype ............................. yes
2022-05-05T00:43:24.0878782Z Qt WebEngineCore:
2022-05-05T00:43:24.0879216Z   Embedded build ......................... no
2022-05-05T00:43:24.0879708Z   Full debug information ................. no
2022-05-05T00:43:24.0880182Z   Pepper Plugins ......................... yes
2022-05-05T00:43:24.0880685Z   Printing and PDF ....................... yes
2022-05-05T00:43:24.0881156Z   Proprietary Codecs ..................... no
2022-05-05T00:43:24.0881656Z   Spellchecker ........................... yes
2022-05-05T00:43:24.0882154Z   Native Spellchecker .................... no
2022-05-05T00:43:24.0882630Z   WebRTC ................................. yes
2022-05-05T00:43:24.0883131Z   PipeWire over GIO ...................... no
2022-05-05T00:43:24.0883603Z   Geolocation ............................ yes
2022-05-05T00:43:24.0884102Z   WebChannel support ..................... yes
2022-05-05T00:43:24.0884685Z   Kerberos Authentication ................ no
2022-05-05T00:43:24.0885371Z   Extensions ............................. yes
2022-05-05T00:43:24.0886260Z   Support qpa-xcb ........................ yes
2022-05-05T00:43:24.0886809Z   Use ALSA ............................... yes
2022-05-05T00:43:24.0887259Z   Use PulseAudio ......................... no
2022-05-05T00:43:24.0887689Z Qt WebEngineQml:
2022-05-05T00:43:24.0888148Z   Support Qt WebEngine Qml ............... yes
2022-05-05T00:43:24.0888623Z   UI Delegates ........................... yes
2022-05-05T00:43:24.0889119Z   Test Support ........................... no
2022-05-05T00:43:24.0889553Z Qt WebEngineWidgets:
2022-05-05T00:43:24.0890012Z   Support Qt WebEngine Widgets ........... yes
2022-05-05T00:43:24.0890445Z Qt PDF:
2022-05-05T00:43:24.0890848Z   Support V8 ............................. no
2022-05-05T00:43:24.0891344Z   Support XFA ............................ no
2022-05-05T00:43:24.0892042Z   Support XFA-BMP ........................ no
2022-05-05T00:43:24.0893027Z   Support XFA-GIF ........................ no
2022-05-05T00:43:24.0893765Z   Support XFA-PNG ........................ no
2022-05-05T00:43:24.0894520Z   Support XFA-TIFF ....................... no
2022-05-05T00:43:24.0895121Z Qt PDF Widgets:
2022-05-05T00:43:24.0895625Z   Support Qt PDF Widgets ................. yes

Can you add the patch so that this becomes a yes?

Tobias-Fischer commented 2 years ago

The little patch in https://github.com/conda-forge/qt-webengine-feedstock/pull/6#issuecomment-1119091944 changes it to a "yes", but I think it's still not using the system icu:

WARNING (qt-webengine): run-exports library package conda-forge::icu-70.1-h6b3803e_0 in requirements/run but it is not used (i.e. it is overdepending or perhaps statically linked? If that is what you want then add it to `build/ignore_run_exports`)

Getting this to work is beyond my capacity though .. if someone else has any ideas that'd be appreciated.

Tobias-Fischer commented 2 years ago

I changed the meta.yaml so that a few more of the "no's" are turned into "yes's". However I'm not a qt expert, so it would be great if someone who has a better understanding could have a look over the changes.

Thanks @ccordoba12 for already having a look, I'm happy to undo the fontconfig change.

hmaarrfk commented 2 years ago

I think one consideration that was made before for qt was to intentionally not depend on so many system libraries to avoid churn due to requiring the build on external machines.

If we can shorten the bulid time to make it feasible on azure, then that changes things instantly.

ccordoba12 commented 2 years ago

I don't know the details of this very well, I was just asking about the reason for the change. I think @andfoy should take a look at this because he knows much better how this package is compiled.

Tobias-Fischer commented 2 years ago

FYI - I triggered a build on linux-64 to see whether the system icu is correctly pulled in.

hmaarrfk commented 2 years ago

@conda-forge-admin please rerender

Tobias-Fischer commented 2 years ago

Seems like it did the trick on linux-64, output now e.g.:

   INFO (qt-webengine,bin/qwebengine_convert_dict): Needed DSO lib/libicui18n.so.70 found in conda-forge::icu-70.1-h27087fc_0
   INFO (qt-webengine,bin/qwebengine_convert_dict): Needed DSO lib/libicuuc.so.70 found in conda-forge::icu-70.1-h27087fc_0
   INFO (qt-webengine,bin/qwebengine_convert_dict): Needed DSO lib/libevent-2.1.so.6 found in conda-forge::libevent-2.1.10-h9b69904_4

It does not seem like other platforms (besides linux-64 and linux-aarch64) need rebuilding as the system icu is only used on linux (https://github.com/qt/qtwebengine/blob/dev/config_help.txt).

Tobias-Fischer commented 2 years ago

Does anyone have more thoughts on this PR @conda-forge/qt-webengine @andfoy? I'm happy to build linux-64 once reviewers are happy. I would also be willing to build osx-64 and osx-arm64 after pulling in the additional packages in the meta.yaml.

hmaarrfk commented 2 years ago

@Tobias-Fischer just a friendly reminder that you still have an account on the cf aarch server. if you could delete your artifacts and run

mamba update --all --yes
mamba clean --all --yes
mamba build purge
# rm whatever files you don't need from qt-webengine

that would be appreciated!

Tobias-Fischer commented 2 years ago

mamba update --all --yes

@Tobias-Fischer just a friendly reminder that you still have an account on the cf aarch server. if you could delete your artifacts and run

mamba update --all --yes
mamba clean --all --yes
mamba build purge
# rm whatever files you don't need from qt-webengine

that would be appreciated!

Done

Tobias-Fischer commented 2 years ago

@hmaarrfk - any ideas on how to proceed with this PR?

hmaarrfk commented 2 years ago

personally, i'm not very excited about rebuilding manually so often with all the system dependencies mingwandroid once told me that it was the very reason for the exception.

Do we lose any features if we use the built-in depencies?

ccordoba12 commented 2 years ago

Perhaps @andfoy could help here (not really sure though)

Tobias-Fischer commented 2 years ago

As I said, more than happy to undo these changes (anything getting this PR in so we can tackle the qt migration ..). How about icu, though? Do you want to use the system dependencies there, or also change to use the inbuilt icu?

hmaarrfk commented 2 years ago

inbuilt icu would be preferred for me. happy to rebuild this one time instead of makgin a repo-data patch (i dislike those even more!)

hmaarrfk commented 2 years ago

done!