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
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
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
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
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.
enten alsa-lib-1.2.13 eller PulseAudio-17.0 (eller begge), FFmpeg-7.1, ICU-76.1, libwebp-1.4.0, libxslt-1.1.42, og Opus-1.5.2
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]