QtWebEngine-6.8.0

Introduksjon til QtWebEngine

QtWebEngine integrerer chromium sin nettfunksjoner i Qt. Den sender med sin egen kopi av ninja som den bruker til byggingen hvis den ikke kan finne en systemkopi og forskjellige kopier av biblioteker fra ffmpeg, icu, libvpx, og zlib (inkludert libminizip) som har blitt skilt ut av chromium utviklere.

Denne pakken og nettlesere som bruker den kan være nyttig hvis du trenger å bruke et nettsted utviklet for google chrome, eller chromium, nettlesere.

[Advarsel]

Advarsel

QtWebEngine bruker en utskilt kopi av chromium, og er derfor sårbar for mange problemer som finnes der. Qt-utviklerne ser ut til å forgrene en nyere versjon for mindre Qt-versjoner, men fordi krom flyttes til nyere versjoner veldig ofte, når Qt-utviklerne får en forgrenet versjon for å bestå deres utvidede tester er det alltid en gammel versjon og sikkerhet reparasjoner fra krom (hvorav noen har et CVE-nummer) kan ta flere måneder for å vises i en QtWebengine-utgivelse, selv om alvorlighetsgraden har vært vurdert som kritisk.

Derfor bør du være forsiktig med å bruke QtWebEngine i en sensitiv kontekst og bør alltid oppdatere til neste utgivelse så snart den vises i denne boken, selv om den ikke er merket som en sikkerhetsoppdatering. Identifisere hvilke sårbarheter som er fikset i en bestemt utgivelsen krever å trekke den riktige 'baserte NNN'-grenen rett før tidligere og nåværende utgivelser og er ofte upraktisk. Rapporter om faste QTBUG-elementer ser ikke ut til å være tilgjengelige, og det er ikke noen dokumentasjon i tarball for endringer etter qt-5 versjonene.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

[Advarsel]

Advarsel

Som standard vil ninja bruke alle online CPUer +2 (hvis minst 4 finnes), selv om de ikke er tilgjengelige for gjeldende oppgave på grunn av at byggeterminalen har blitt begrenset med 'oppgavesett'. I BLFS, denne pakken tar mer tid å bygge enn noen annen. I ett eksempel, konstruksjonen av denne pakken krasjet ved omtrent 90 prosent punktet på grunn av et lite minneproblem på et system med 24 kjerner og 32 GB av minne.

For å omgå dette, se kommandoforklaringene nedenfor.

Pakkeinformasjon

qtwebengine Avhengigheter

Påkrevd

Cups-2.4.11, html5lib-1.1, nodejs-20.18.0, nss-3.106, pciutils-3.13.0, og Qt-6.8.0

Anbefalt

[Notat]

Notat

Hvis disse pakkene ikke er installert, vil byggeprosessen kompilere og installere sin egen (kanskje eldre) versjon, med bivirkning av økt bygg og installert diskplass og byggetid.

Valgfri

libevent-2.1.12, MIT Kerberos V5-1.21.3, pipewire-1.2.6, Poppler-24.11.0, jsoncpp, libsrtp, snappy

Installasjon av qtwebengine

Først fikser du en byggefeil som oppstår fordi BLFS bygget til ffmpeg ikke bruker OpenH264:

sed -e '189 s/=/& false/' \
    -e '190 d'            \
    -i.orig src/3rdparty/chromium/third_party/webrtc/webrtc.gni

Installer qtwebengine ved å kjøre følgende kommandoer:

mkdir build &&
cd    build &&

cmake -D CMAKE_MESSAGE_LOG_LEVEL=STATUS             \
      -D QT_FEATURE_webengine_system_ffmpeg=ON      \
      -D QT_FEATURE_webengine_system_icu=ON         \
      -D QT_FEATURE_webengine_system_libevent=ON    \
      -D QT_FEATURE_webengine_proprietary_codecs=ON \
      -D QT_FEATURE_webengine_webrtc_pipewire=ON    \
      -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF           \
      -G Ninja .. &&

ninja

Denne pakken kommer ikke med en testpakke.

Nå, som root bruker:

ninja install

Parameterforklaringer

CMAKE_MESSAGE_LOG_LEVEL=STATUS: Sender ut interessante meldinger som prosjektbrukere kan være interessert i. Ideelt sett bør disse være konsise, ikke mer enn en enkelt linje, men fortsatt informativ.

QT_FEATURE_webengine_system_*: Spesifiser hvilke eksterne pakker systemet skal bruke.

QT_BUILD_EXAMPLES_BY_DEFAULT=OFF: Ikke bygg eksempler som standard.

NINJAJOBS=4 make: Hvis du oppdaterte system ninja i LFS til å gjenkjenne miljøvariabelen NINJAJOBS, vil denne kommandoen kjøre systemets ninja med det angitte antall jobber (dvs. 4). Det er flere grunner til at du kanskje vil bruke alternativer som dette:

  • Å bygge på et undersett av CPUer gjør det mulig å måle byggetiden for et mindre antall prosessorer, og/eller kjører andre CPU intensive oppgaver samtidig. For en redaktør på en maskin med mange CPUer, å prøve å måle byggetiden for en 4-CPU maskin, NINJAJOBS=4 make vil gi en rimelig tilnærming (det er en kort periode hvor N+2 python og node jobber kjøres).

  • På en maskin med bare 4 CPUer tilgjengelig, standard planlegging med N+2 jobber for qtwebengine er tregere med mellom 3% og 7%, sannsynligvis på grunn av størrelsen på C++ filene og deres mange inkluderinger og maler. Derfor, hvis du er i tvil, sett NINJAJOBS til antall CPUer.

  • Å redusere antall kjerner som brukes på langvarig CPU intensive pakker kan hjelpe på varmeproblemer.

  • Redusering av antall kjerner vil forhindre potensielt tomt minne problemer på systemer som ikke har nok minne (eller vekselminne) når alle kjerner er aktive. En foreslått tilnærming er å begrense antall kjerner til omtrent en kjerne for hver 1,5 GB av kombinert RAM og vekselminne.

Konfigurere QtWebEngine

Konfigurasjonsinformasjon

Hvis du oppgraderer fra en eldre mindre versjon av denne applikasjon, for at enkelte nettsider skal lastes, må du kanskje fjerne nettleseren sin mellomlagring, f.eks. til falkon vil de bli funnet i ~/.cache/falkon/. Du må gjøre dette hvis nettleseren begynner å gjengi siden og endres deretter til en tom fane med en melding at noe gikk galt, og en knapp for å prøve på nytt. Til og med etter at du har fjernet de gamle mellomlagrene, kan det hende du må prøve noen ganger for hver berørt fane.

Hvis en nettleser som bruker denne pakken ikke klarer å kjøre og når den kjøres fra en term rapporterer det 'Trace/breakpoint trap', dvs sannsynligvis et problem med kjernekonfigurasjon - det er ikke nødvendig å gjenoppbygge QtWebEngine, se neste avsnitt, kompiler på nytt kjernen og start på nytt til den nye kjernen.

Kjernekonfigurasjon

Denne pakken krever ingen av de valgfrie kjernenavneromselementene, men hvis brukernavneområdet er aktivert PID navneområde må også være aktivert. Aktiver i så fall følgende alternativer i kjernekonfigurasjonen og kompiler kjernen på nytt om nødvendig:

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    # Enable or disable *both* of them:
    [ /*] User namespace                                               [USER_NS]
    [ /*] PID Namespaces                                                [PID_NS]

Innhold

Installerte Programmer: qtwebengine_convert_dict og QtWebEngineProcess (begge i $QT6DIR/libexec)
Installerte Biblioteker: libQt6Pdf.so, libQt6PdfQuick.so, libQt6PdfWidgets.so, libQt6WebEngineCore.so, libQt6WebEngineiQuick.so, libQt6WebEngineQuickDelegatesQml.so, og libQt6WebEngineWidgets.so
Installerte Mapper: $QT6DIR/include/QtPdf, $QT6DIR/include/QtPdfQuick, $QT6DIR/include/QtPdfWidgets, $QT6DIR/include/QtWebEngineCore, $QT6DIR/include/QtWebEngineQuick, $QT6DIR/include/QtWebEngineWidgets, $QT6DIR/qml/QtWebEngine, og $QT6DIR/translations/qtwebengine_locales

Korte Beskrivelser

qtwebengine_convert_dict

konverterer hunspell ordbøker (.dic) til chromium format (.bdic)

QtWebEngineProcess

er et libexec program som kjører en zygote prosess (en som lytter for spawn forespørsler fra en masterprosess, og vil gå inn i respons)

libQtWebEngineCore.so

gir offentlig API som deles av både QtWebEngine og QtWebEngineWidgets

libQtWebEngineWidgets.so

gir en nettlesermotor samt C++ klasser for å gjengi og samhandle med nettinnhold