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

Draft: [qtwebengine] fix dyn builds #38681

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

Conversation

Neumann-A
Copy link
Contributor

No description provided.

Neumann-A and others added 22 commits April 4, 2024 16:21
# Conflicts:
#	ports/qtbase/vcpkg.json
#	ports/qttools/vcpkg.json
#	versions/baseline.json
#	versions/q-/qtbase.json
#	versions/q-/qttools.json
# Conflicts:
#	ports/opencv4/vcpkg.json
#	ports/pulseaudio/portfile.cmake
#	ports/qt/vcpkg.json
#	ports/qt3d/vcpkg.json
#	ports/qt5compat/vcpkg.json
#	ports/qtactiveqt/vcpkg.json
#	ports/qtapplicationmanager/vcpkg.json
#	ports/qtbase/cmake/qt_port_data.cmake
#	ports/qtbase/cmake/qt_port_details.cmake
#	ports/qtbase/vcpkg.json
#	ports/qtcharts/vcpkg.json
#	ports/qtcoap/vcpkg.json
#	ports/qtconnectivity/vcpkg.json
#	ports/qtdatavis3d/vcpkg.json
#	ports/qtdeclarative/vcpkg.json
#	ports/qtdeviceutilities/vcpkg.json
#	ports/qtdoc/vcpkg.json
#	ports/qtgraphs/vcpkg.json
#	ports/qtgrpc/vcpkg.json
#	ports/qthttpserver/vcpkg.json
#	ports/qtimageformats/vcpkg.json
#	ports/qtinterfaceframework/vcpkg.json
#	ports/qtlanguageserver/vcpkg.json
#	ports/qtlocation/vcpkg.json
#	ports/qtlottie/vcpkg.json
#	ports/qtmqtt/vcpkg.json
#	ports/qtmultimedia/remove_export_macro.patch
#	ports/qtmultimedia/remove_unistd.patch
#	ports/qtmultimedia/vcpkg.json
#	ports/qtnetworkauth/vcpkg.json
#	ports/qtopcua/vcpkg.json
#	ports/qtpositioning/vcpkg.json
#	ports/qtquick3d/vcpkg.json
#	ports/qtquick3dphysics/vcpkg.json
#	ports/qtquickeffectmaker/vcpkg.json
#	ports/qtquicktimeline/vcpkg.json
#	ports/qtremoteobjects/vcpkg.json
#	ports/qtscxml/vcpkg.json
#	ports/qtsensors/vcpkg.json
#	ports/qtserialbus/vcpkg.json
#	ports/qtserialport/vcpkg.json
#	ports/qtshadertools/vcpkg.json
#	ports/qtspeech/vcpkg.json
#	ports/qtsvg/vcpkg.json
#	ports/qttools/vcpkg.json
#	ports/qttranslations/vcpkg.json
#	ports/qtvirtualkeyboard/vcpkg.json
#	ports/qtwayland/vcpkg.json
#	ports/qtwebchannel/vcpkg.json
#	ports/qtwebengine/vcpkg.json
#	ports/qtwebsockets/vcpkg.json
#	ports/qtwebview/vcpkg.json
#	ports/vtk/portfile.cmake
#	ports/vtk/vcpkg.json
#	versions/baseline.json
#	versions/o-/opencv4.json
#	versions/p-/pulseaudio.json
#	versions/q-/qt.json
#	versions/q-/qtmultimedia.json
#	versions/v-/vtk.json
# Conflicts:
#	ports/qtimageformats/vcpkg.json
#	versions/baseline.json
#	versions/q-/qtimageformats.json
@Neumann-A
Copy link
Contributor Author

  • I think nss/nspr can remove the dependency on mozbuild completly and just use msys from vcpkg directly. I don't see mozbuild bringing anything other to the table than that.
  • Add cups as a port ?!? A lot of absolute paths to deal with
  • ffmpeg patch?
  • changes to vcpkg-cmake to setup PKG_CONFIG_PATH and LD_LIBRARY_PATH in vcpkg_cmake_build|install

@Cheney-W Cheney-W added category:port-bug The issue is with a library, which is something the port should already support category:new-port The issue is requesting a new library to be added; consider making a PR! labels May 11, 2024
@tsondergaard
Copy link
Contributor

tsondergaard commented May 15, 2024

  • Add cups as a port ?!? A lot of absolute paths to deal with

Are there any problems with using a separate libcups.so from the one provided by the host? Is the CUPS protocol that libcups uses to speak to cupsd properly versioned? Are there any problems with regards to authentication when contacting cups when using a separate libcups?

conan-center-index also doesn't have a cups port, so I am just wondering if there is some reason a separate libcups version could be a problem.

In #38682 there are cups-related changes. I think it might be best to make adding cups a separate effort and simply patch qtwebengine to disable cups. This can be achived with this simple patch:

diff --git a/chromium/printing/buildflags/buildflags.gni b/chromium/printing/buildflags/buildflags.gni
index fa9004e2ec3..025545f33c6 100644
--- a/src/3rdparty/chromium/printing/buildflags/buildflags.gni
+++ b/src/3rdparty/chromium/printing/buildflags/buildflags.gni
@@ -36,8 +36,7 @@ declare_args() {
     # For fuzzing, just restrict to chromeos and linux.
     use_cups = true
   } else {
-    use_cups = (is_chromeos_device || (is_linux && !is_castos) || is_mac) &&
-               !is_fuchsia
+    use_cups = false
   }

   # Enables out-of-process printing. While this definition matches

@tsondergaard
Copy link
Contributor

This PR fixes #38497

@Neumann-A
Copy link
Contributor Author

@tsondergaard thought you were stuck with readelf failing? I still have not found a way to introduce the rpath setting into the build of the genex generator.

@tsondergaard
Copy link
Contributor

tsondergaard commented May 17, 2024

@tsondergaard thought you were stuck with readelf failing? I still have not found a way to introduce the rpath setting into the build of the genex generator.

I am. If you are referring to my previous comment referencing #38497 I just added that to link the issues together. I can work around the issue with readelf by putting a readelf bash script like the following first in the PATH with this content:

#!/bin/sh
unset LD_LIBRARY_PATH
exec /usr/bin/readelf "$@"

That's not a solution, I only did that to see if there were more problems related to setting LD_LIBRARY_PATH, but this is the only one that pops up. I found out that this happens with readelf on RHEL 9 because readelf has started linking libdebuginfod.so which links a ton of libraries that make it especially susceptible to problems when running in a context with LD_LIBRARY_PATH set.

Btw regarding the problem with injecting rpath into the chromium build, I have asked that very question here: https://cpplang.slack.com/archives/C29936TQC/p1715976523641689. The Qt channel in the cpplang slack seems to be more active than Discord #include.

I'm currently testing if it works dropping the vcpkg'ed icu dependency. If it does that I may drop that dependency in an overlay as an intermediate solution for my own project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! category:port-bug The issue is with a library, which is something the port should already support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants