#67082 closed enhancement (fixed)

qt5-qtwebengine: add webengine-proprietary-codecs option

Reported by: kaamui Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: qt5-qtwebengine

Description (last modified by kaamui)

Without this option, the webengine is unable to read videos on some major platforms like Vimeo, PeerTube, even some HTML5 videos like on this page : https://www.w3schools.com/html/html5_video.asp

The option is always turned ON on linux distros, even in Debian. I built qtwebengine myself and didn't see any dependency related to this option that could explain why it is not currently enabled via the port.

I tried to edit the portfile to submit a pull request but I'm facing a non-related issue with the SDK ("could not resolve sdk macosx12.3" where I only have macosx13.1 SDK), but I can't see why it would be more complicated to do via MacPort than it was by myself :

sudo port install bison
sudo port install flex
sudo port install nodejs12
sudo port install ninja

python3 -m pip install html5lib

git clone https://code.qt.io/cgit/qt/qtwebengine.git
cd qtwebengine
git checkout 6.4.2
git submodule update --init --progress
mkdir build
cd build
qt-configure-module .. -webengine-proprietary-codecs -- -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
cmake --build . --parallel
sudo cmake --install .

Note that the same is possible using Qt 5.15, that is based on qmake instead of cmake (tested on Linux, but as I already said, could not confirm it on OSX as I'm stuck by this SDK issue) :

qmake .. -- -proprietary-codecs

On a side note, being new to MacPorts, I read the doc but could not find a direct answer on how to simply rebuild a port where you just modified the Portfile. I tested to edit it and to run sudo port build qt5-qtwebengine. Is it the right way to do so ?

Change History (7)

comment:1 in reply to:  description ; Changed 14 months ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to MarcusCalhoun-Lopez
Status: newassigned
Summary: qt5-qtwebengine : add webengine-proprietary-codecs optionqt5-qtwebengine: add webengine-proprietary-codecs option

Replying to kaamui:

On a side note, being new to MacPorts, I read the doc but could not find a direct answer on how to simply rebuild a port where you just modified the Portfile. I tested to edit it and to run sudo port build qt5-qtwebengine. Is it the right way to do so ?

Sure, if the Portfile you've modified is in a ports tree that's mentioned in your sources.conf file, then you can refer to it by name as you did with sudo port build qt5-qtwebengine.

Another option that works whether or not the port is in a known ports tree is tocd to the directory that contains the Portfile and then run e.g. sudo port install (without adding a port name). However in this case you're dealing with a subport. (qt5-qtwebengine is defined as a subport in the qt5 Portfile.) So after you cd to the qt5 directory you'd have to tell MacPorts which subport to install, e.g. sudo port install subport=qt5-qtwebengine.

comment:2 Changed 14 months ago by kaamui

Description: modified (diff)

comment:3 in reply to:  1 Changed 14 months ago by kaamui

Replying to ryandesign:

Another option that works whether or not the port is in a known ports tree is tocd to the directory that contains the Portfile and then run e.g. sudo port install (without adding a port name). However in this case you're dealing with a subport. (qt5-qtwebengine is defined as a subport in the qt5 Portfile.) So after you cd to the qt5 directory you'd have to tell MacPorts which subport to install, e.g. sudo port install subport=qt5-qtwebengine.

Thank you for your quick reply ! I tried your suggestion, but it's acting like if nothing had to be done :

cd $(port dir qt5-qtwebengine)
sudo port install subtport=qt5-qtwebengine
--->  Computing dependencies for qt5-qtwebengine
--->  Cleaning qt5-qtwebengine
--->  Scanning binaries for linking errors
--->  No broken files found.
--->  No broken ports found.

While with the sudo port build qt5-qtwebengine, the sources were downloaded, some dependencies requested. It's still ending with the error described above, but I was expecting to see the same process and error with sudo port install subport=qt5-qtwebengine

Edit : to be more precise, the first time, it did install qt5-qtwebengine, but it was way too quick to be a rebuild with my option.

sudo port install subport=qt5-qtwebengine
--->  Computing dependencies for qt5-qtwebengine
--->  Fetching archive for qt5-qtwebengine
--->  Attempting to fetch qt5-qtwebengine-5.15.12_0.darwin_21.arm64.tbz2 from https://fra.de.packages.macports.org/qt5-qtwebengine
--->  Attempting to fetch qt5-qtwebengine-5.15.12_0.darwin_21.arm64.tbz2.rmd160 from https://fra.de.packages.macports.org/qt5-qtwebengine
--->  Installing qt5-qtwebengine @5.15.12_0
--->  Activating qt5-qtwebengine @5.15.12_0
--->  Cleaning qt5-qtwebengine
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.
--->  No broken ports found.
Last edited 14 months ago by kaamui (previous) (diff)

comment:4 Changed 14 months ago by reneeotten (Renee Otten)

Did you increase the “revision” in the portfile - if not, you likely just got the binary file. Alternatively, you should be ably to install it from source with the -s flag and then ideally it should take your changes as well.

comment:5 Changed 14 months ago by kaamui

Ok I dit it and it led to the same issue about the SDK. I managed to fix the issue about the SDK (deleted the corresponding folder and symlink in /Library/Developer/CommandLineTools/SDKs (also changed some values in qdevice.pri and qconfig.pri but not sure it really helped)). I tried with adding the webengine-proprietary-codecs option under the webengine-kerberos one, launched sudo port install -s qt5-qtwebengine and it worked !

Didn't retry with the proprietary-codecs option, maybe both work.

Last edited 14 months ago by kaamui (previous) (diff)

comment:6 Changed 14 months ago by kaamui

I didn't thought I could fix the SDK Issue, so I created this ticket. Just saw, during the PR submission process, that you're not supposed to do both.

So maybe this ticket should be closed now ?

comment:7 Changed 14 months ago by chrstphrchvz (Christopher Chavez)

Resolution: fixed
Status: assignedclosed

In cdd205fb8fd9da41f18fe7cf8227f811c38392f6/macports-ports (master):

qt5-qtwebengine: update to 5.15.13

Fix patch phase under trace mode

nodejs18 is latest LTS

Drop patch-qt5-qtwebengine-CGRect-undefined.diff
as it was needed for patch-qt5-qtwebengine-RectF-ambiguous.diff
which was dropped in favor of upstream’s approach in 5.15.12.

Enable proprietary codecs
Closes: #67082

[skip ci]

Note: See TracTickets for help on using tickets.