[bug#75966] gnu: qtwebengine: Set default path for QtWebEngineProcess.
Commit Message
From: 宋文武 <iyzsong@member.fsf.org>
* gnu/packages/qt.scm (qtwebengine-5, qtwebengine)[arguments]:
Substitute 'QLibraryInfo::LibraryExecutablesPath' in 'substitute-source phase.
[native-search-paths]: Remove QTWEBENGINEPROCESS_PATH.
* gnu/packages/ebook.scm (calibre)
* gnu/packages/education.scm (anki)
* gnu/packages/kde-internet.scm (falkon)
* gnu/packages/kde-systemtools.scm (khelpcenter)
* gnu/packages/kde.scm (akregator)
* gnu/packages/video.scm (openshot)
* gnu/packages/vpn.scm (openconnect-sso)
* gnu/packages/web-browsers.scm (qutebrowser)
* gnu/packages/web.scm (kiwix-desktop): Remove wrapper for QTWEBENGINEPROCESS_PATH.
Change-Id: I43745969ce80daa0f077da37671d1b44a468c953
---
gnu/packages/ebook.scm | 21 +--------------------
gnu/packages/education.scm | 13 +++----------
gnu/packages/kde-internet.scm | 13 -------------
gnu/packages/kde-systemtools.scm | 10 +---------
gnu/packages/kde.scm | 13 +------------
gnu/packages/qt.scm | 22 ++++++++--------------
gnu/packages/video.scm | 14 +-------------
gnu/packages/vpn.scm | 12 +-----------
gnu/packages/web-browsers.scm | 10 ++--------
gnu/packages/web.scm | 10 +---------
10 files changed, 19 insertions(+), 119 deletions(-)
base-commit: bdd6760b8c46e59f86415d67981acb6f77e9ed22
Comments
iyzsong@envs.net writes:
> * gnu/packages/qt.scm (qtwebengine-5, qtwebengine)[arguments]:
> Substitute 'QLibraryInfo::LibraryExecutablesPath' in 'substitute-source phase.
> [native-search-paths]: Remove QTWEBENGINEPROCESS_PATH.
Haven't build qtwebengine, so not tested, but I think it should work..
Hi,
iyzsong@envs.net writes:
> From: 宋文武 <iyzsong@member.fsf.org>
>
> * gnu/packages/qt.scm (qtwebengine-5, qtwebengine)[arguments]:
> Substitute 'QLibraryInfo::LibraryExecutablesPath' in 'substitute-source phase.
> [native-search-paths]: Remove QTWEBENGINEPROCESS_PATH.
> * gnu/packages/ebook.scm (calibre)
> * gnu/packages/education.scm (anki)
> * gnu/packages/kde-internet.scm (falkon)
> * gnu/packages/kde-systemtools.scm (khelpcenter)
> * gnu/packages/kde.scm (akregator)
> * gnu/packages/video.scm (openshot)
> * gnu/packages/vpn.scm (openconnect-sso)
> * gnu/packages/web-browsers.scm (qutebrowser)
> * gnu/packages/web.scm (kiwix-desktop): Remove wrapper for QTWEBENGINEPROCESS_PATH.
Could you mention what is the rationale in the commit message? Is the
QTWEBENGINEPROCESS_PATH environment variable problematic is some ways
(perhaps mixing Qt5 and Qt6 qtwebengine?).
Shouldn't we keep the native-search-path for it? Perhaps not all
software are patched yet, and it shouldn't hurt? Or would it defeat the
aim of this series?
Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
> Could you mention what is the rationale in the commit message? Is the
> QTWEBENGINEPROCESS_PATH environment variable problematic is some ways
> (perhaps mixing Qt5 and Qt6 qtwebengine?).
It seems fine to mixing QtWebEngineProcess from Qt5 and Qt6, but the
default path is wrong due to we have different install prefixes,
normally there is no need to set QTWEBENGINEPROCESS_PATH ourself.
>
> Shouldn't we keep the native-search-path for it? Perhaps not all
> software are patched yet, and it shouldn't hurt? Or would it defeat the
> aim of this series?
The rationale is to drop the wrapping for QTWEBENGINEPROCESS_PATH, as
there is no need to use it if the default path is working from the beginning.
v2 patches send, thanks.
Hi,
宋文武 <iyzsong@envs.net> writes:
> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>
>> Could you mention what is the rationale in the commit message? Is the
>> QTWEBENGINEPROCESS_PATH environment variable problematic is some ways
>> (perhaps mixing Qt5 and Qt6 qtwebengine?).
>
> It seems fine to mixing QtWebEngineProcess from Qt5 and Qt6, but the
> default path is wrong due to we have different install prefixes,
> normally there is no need to set QTWEBENGINEPROCESS_PATH ourself.
>
>>
>> Shouldn't we keep the native-search-path for it? Perhaps not all
>> software are patched yet, and it shouldn't hurt? Or would it defeat the
>> aim of this series?
>
> The rationale is to drop the wrapping for QTWEBENGINEPROCESS_PATH, as
> there is no need to use it if the default path is working from the beginning.
>
> v2 patches send, thanks.
Makes sense now, thank your for the explanation.
@@ -320,26 +320,7 @@ (define-public calibre
(string-append #$(this-package-input "font-liberation")
"/share/fonts/truetype")))
(delete-file-recursively font-dest)
- (symlink font-src font-dest))))
- ;; Make run-time dependencies available to the binaries.
- (add-after 'wrap 'wrap-program
- (lambda* (#:key inputs #:allow-other-keys)
- (with-directory-excursion (string-append #$output "/bin")
- (for-each
- (lambda (binary)
- (wrap-program binary
- ;; Make QtWebEngineProcess available.
- `("QTWEBENGINEPROCESS_PATH" =
- ,(list
- (search-input-file
- inputs "/lib/qt5/libexec/QtWebEngineProcess")))))
- ;; Wrap all the binaries shipping with the package, except
- ;; for the wrappings created during the 'wrap standard
- ;; phase. This extends existing .calibre-real wrappers
- ;; rather than create ..calibre-real-real-s. For more
- ;; information see: https://issues.guix.gnu.org/43249.
- (find-files "." (lambda (file stat)
- (not (wrapped-program? file)))))))))))
+ (symlink font-src font-dest)))))))
(home-page "https://calibre-ebook.com/")
(synopsis "E-book library management software")
(description "Calibre is an e-book library manager. It can view, convert
@@ -836,18 +836,11 @@ (define-public anki
(filter (match-lambda
((label . _)
(string-prefix? "python-" label)))
- inputs)))
- (qtwebengineprocess
- (search-input-file inputs
- "lib/qt5/libexec/QtWebEngineProcess")))
- ;; The program fails to find the QtWebEngineProcess program, so
- ;; we set QTWEBENGINEPROCESS_PATH to help it. PYTHONPATH is
- ;; wrapped to avoid declaring Python libraries as propagated
- ;; inputs.
+ inputs))))
+ ;; PYTHONPATH is wrapped to avoid declaring Python libraries as
+ ;; propagated inputs.
(for-each (lambda (program)
(wrap-program program
- `("QTWEBENGINEPROCESS_PATH" =
- (,qtwebengineprocess))
`("PATH" prefix (,(string-append
(assoc-ref inputs "mpv")
"/bin")))
@@ -130,19 +130,6 @@ (define-public falkon
(base32
"0j930i2nvg71p05z881inbk59c54gx8dzhyjb8iaqkw8i5s5r983"))))
(build-system qt-build-system)
- (arguments
- (list #:phases
- #~(modify-phases %standard-phases
- (add-after 'install 'wrap
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((qtwebengineprocess
- (search-input-file inputs
- "lib/qt6/libexec/QtWebEngineProcess")))
- ;; The program fails to find the QtWebEngineProcess program, so
- ;; we set QTWEBENGINEPROCESS_PATH to help it.
- (wrap-program (string-append #$output "/bin/falkon")
- `("QTWEBENGINEPROCESS_PATH" =
- (,qtwebengineprocess)))))))))
(native-inputs
(list extra-cmake-modules pkg-config qttools))
(inputs
@@ -178,15 +178,7 @@ (define-public khelpcenter
PrintSupport")
(("Qt6::WebEngineWidgets")
"Qt6::PrintSupport
- Qt6::WebEngineWidgets"))))
- (add-after 'install 'wrap-executable
- (lambda* (#:key inputs #:allow-other-keys)
- (wrap-program (string-append #$output
- "/bin/khelpcenter")
- `("QTWEBENGINEPROCESS_PATH" =
- (,(search-input-file
- inputs
- "lib/qt6/libexec/QtWebEngineProcess")))))))))
+ Qt6::WebEngineWidgets")))))))
(home-page "https://apps.kde.org/khelpcenter/")
(synopsis "KDE documentation viewer")
(description "KHelpCenter uses meta data files which describe the
@@ -205,18 +205,7 @@ (define-public akregator
(base32 "07flc3617px9w1c729p0lsixf1g0h297hkbip259ykkbwxizn71q"))))
(build-system qt-build-system)
(arguments
- (list #:qtbase qtbase
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'install 'wrap-qt-process-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin/akregator"))
- (qt-process-path
- (search-input-file
- inputs "/lib/qt6/libexec/QtWebEngineProcess")))
- (wrap-program bin
- `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))))))))
+ (list #:qtbase qtbase))
(native-inputs
(list extra-cmake-modules kdoctools))
(inputs
@@ -3415,7 +3415,10 @@ (define-public qtwebengine-5
"/share/qt5/translations\")"))
(("QLibraryInfo::location\\(QLibraryInfo::DataPath\\)")
(string-append "QLatin1String(\"" #$output
- "/share/qt5\")")))
+ "/share/qt5\")"))
+ (("QLibraryInfo::location\\(QLibraryInfo::LibraryExecutablesPath)")
+ (string-append "QLatin1String(\"" #$output
+ "/lib/qt5/libexec\")")))
;; Substitute full dynamic library path for nss.
(substitute* "src/3rdparty/chromium/crypto/nss_util.cc"
(("libnssckbi.so")
@@ -3453,12 +3456,6 @@ (define-public qtwebengine-5
;; It's possible this can be fixed by setting QTWEBENGINEPROCESS_PATH
;; before running tests.
((#:tests? _ #f) #f)))
- (native-search-paths
- (list (search-path-specification
- (file-type 'regular)
- (separator #f)
- (variable "QTWEBENGINEPROCESS_PATH")
- (files '("lib/qt5/libexec/QtWebEngineProcess")))))
(home-page "https://wiki.qt.io/QtWebEngine")
(synopsis "Qt WebEngine module")
(description "The Qt5WebEngine module provides support for web applications
@@ -3824,7 +3821,10 @@ (define-public qtwebengine
"/share/qt6/translations\")"))
(("QLibraryInfo::path\\(QLibraryInfo::DataPath)")
(string-append "QLatin1String(\"" #$output
- "/share/qt6\")")))
+ "/share/qt6\")"))
+ (("QLibraryInfo::path\\(QLibraryInfo::LibraryExecutablesPath)")
+ (string-append "QLatin1String(\"" #$output
+ "/lib/qt6/libexec\")")))
;; Substitute full dynamic library path for nss.
(substitute* "src/3rdparty/chromium/crypto/nss_util.cc"
(("libnssckbi.so")
@@ -3884,12 +3884,6 @@ (define-public qtwebengine
(replace "qtbase" qtbase)
(replace "qtdeclarative" qtdeclarative)
(replace "qtwebchannel" qtwebchannel)))
- (native-search-paths
- (list (search-path-specification
- (file-type 'regular)
- (separator #f)
- (variable "QTWEBENGINEPROCESS_PATH")
- (files '("lib/qt6/libexec/QtWebEngineProcess")))))
(home-page "https://wiki.qt.io/QtWebEngine")
(synopsis "Qt WebEngine module")
(description "The Qt WebEngine module provides support for web
@@ -6049,19 +6049,7 @@ (define-public openshot
(lambda _
;; src/classes/info.py "needs" to create several
;; directories in $HOME when loaded during build
- (setenv "HOME" "/tmp")))
- (add-after 'install 'wrap-program
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (qtwebengine-process-path
- (search-input-file
- inputs "/lib/qt5/libexec/QtWebEngineProcess")))
- (wrap-qt-program "openshot-qt"
- #:output out #:inputs inputs)
- ;; Help the program discover QtWebEngine at runtime.
- (wrap-program (string-append out "/bin/openshot-qt")
- `("QTWEBENGINEPROCESS_PATH" =
- (,qtwebengine-process-path)))))))))
+ (setenv "HOME" "/tmp"))))))
(home-page "https://www.openshot.org/")
(synopsis "Video editor")
(description "OpenShot takes your videos, photos, and music files and
@@ -800,17 +800,7 @@ (define-public openconnect-sso
(("\"openconnect\"")
(string-append "\""
(search-input-file inputs "/sbin/openconnect")
- "\"")))))
- (add-after 'check 'wrap-qt-process-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin/openconnect-sso"))
- (qt-process-path
- (search-input-file inputs
- "/lib/qt5/libexec/QtWebEngineProcess")))
- (wrap-program bin
- #:sh (search-input-file inputs "bin/bash")
- `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))))))))
+ "\""))))))))
(inputs
(list openconnect
poetry
@@ -490,10 +490,7 @@ (define-public qutebrowser
python-pyyaml
python-pyqt-6
python-pyqtwebengine-6
- python-tldextract
- ;; While qtwebengine is provided by python-pyqtwebengine-6, it's
- ;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
- qtwebengine))
+ python-tldextract))
(arguments
`(;; FIXME: With the existence of qtwebengine, tests can now run. But
;; they are still disabled because test phase hangs. It's not readily
@@ -547,10 +544,7 @@ (define-public qutebrowser
(wrap-program (search-input-file outputs "bin/qutebrowser")
`("QTWEBENGINE_RESOURCES_PATH" =
(,(search-input-directory
- inputs "/share/qt6/resources")))
- `("QTWEBENGINEPROCESS_PATH" =
- (,(search-input-file
- inputs "/lib/qt6/libexec/QtWebEngineProcess")))))))))
+ inputs "/share/qt6/resources")))))))))
(home-page "https://qutebrowser.org/")
(synopsis "Minimal, keyboard-focused, vim-like web browser")
(description "qutebrowser is a keyboard-focused browser with a minimal
@@ -9404,15 +9404,7 @@ (define-public kiwix-desktop
(lambda* (#:key outputs #:allow-other-keys)
(invoke "qmake"
(string-append "PREFIX="
- (assoc-ref outputs "out")))))
- (add-after 'install 'wrap-qt-process-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin/kiwix-desktop"))
- (qt-process-path (search-input-file
- inputs "/lib/qt5/libexec/QtWebEngineProcess")))
- (wrap-program bin
- `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))))))))
+ (assoc-ref outputs "out"))))))))
(inputs
(list bash-minimal
curl