* [bug#28719] [PATCH 0/6] Qt: Use a more standard directory layout. @ 2017-10-06 11:59 Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 1/6] gnu: qtbase: " Hartmut Goebel 0 siblings, 1 reply; 14+ messages in thread From: Hartmut Goebel @ 2017-10-06 11:59 UTC (permalink / raw) To: 28719 This patch series makes Qt install libs, plugins, etc into a standard directory layout. See http://lists.gnu.org/archive/html/guix-devel/2017-09/msg00092.html and the related thread for details. The three patches by Sou Bunnbu (宋文武) are unchanged from what he posted earlier on guix-devel. Hartmut Goebel (3): gnu: qtwebkit: Fix rpath for the qmlwebkit plugins. gnu: qscintilla: Adjust installation directory layout. gnu: kde-framworks: Fix installation directories. Sou Bunnbu (宋文武) (3): gnu: qtbase: Use a more standard directory layout. gnu: qt: Fix install paths in submodules. gnu: qwt: Adjust installation directory layout. gnu/packages/kde-frameworks.scm | 16 +++- gnu/packages/qt.scm | 164 +++++++++++++++++++++++++++++----------- 2 files changed, 134 insertions(+), 46 deletions(-) -- 2.13.5 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 1/6] gnu: qtbase: Use a more standard directory layout. 2017-10-06 11:59 [bug#28719] [PATCH 0/6] Qt: Use a more standard directory layout Hartmut Goebel @ 2017-10-06 12:02 ` Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 2/6] gnu: qt: Fix install paths in submodules Hartmut Goebel ` (4 more replies) 0 siblings, 5 replies; 14+ messages in thread From: Hartmut Goebel @ 2017-10-06 12:02 UTC (permalink / raw) To: 28719 From: 宋文武 <iyzsong@member.fsf.org> * gnu/packages/qt.scm (qtbase)[arguments]: Pass docdir, headerdir, archdatadir, datadir and examplesdir to 'configure'. Ajdust the patch-qt_config.prf phase accordingly. [native-search-paths]: Adjust accordingly. (qtwayland)[arguments]: New field. Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com> --- gnu/packages/qt.scm | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index bc275ebb0..e276eb05b 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -460,6 +460,12 @@ developers using C++ or QML, a CSS & JavaScript like language.") "./configure" "-verbose" "-prefix" out + "-docdir" (string-append out "/share/doc/qt5") + "-headerdir" (string-append out "/include/qt5") + "-archdatadir" (string-append out "/lib/qt5") + "-datadir" (string-append out "/share/qt5") + "-examplesdir" (string-append + out "/share/doc/qt5/examples") "-opensource" "-confirm-license" ;; Do not build examples; if desired, these could go @@ -489,38 +495,31 @@ developers using C++ or QML, a CSS & JavaScript like language.") (add-after 'install 'patch-qt_config.prf (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) + (mkspecs (string-append out "/lib/qt5/mkspecs")) (qt_config.prf (string-append - out "/mkspecs/features/qt_config.prf"))) + mkspecs "/features/qt_config.prf"))) ;; For each Qt module, let `qmake' uses search paths in the ;; module directory instead of all in QT_INSTALL_PREFIX. (substitute* qt_config.prf (("\\$\\$\\[QT_INSTALL_HEADERS\\]") - "$$replace(dir, mkspecs/modules, include)") + "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt5))") (("\\$\\$\\[QT_INSTALL_LIBS\\]") - "$$replace(dir, mkspecs/modules, lib)") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") (("\\$\\$\\[QT_HOST_LIBS\\]") - "$$replace(dir, mkspecs/modules, lib)") - (("\\$\\$\\[QT_INSTALL_PLUGINS\\]") - "$$replace(dir, mkspecs/modules, plugins)") - (("\\$\\$\\[QT_INSTALL_LIBEXECS\\]") - "$$replace(dir, mkspecs/modules, libexec)") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") (("\\$\\$\\[QT_INSTALL_BINS\\]") - "$$replace(dir, mkspecs/modules, bin)") - (("\\$\\$\\[QT_INSTALL_IMPORTS\\]") - "$$replace(dir, mkspecs/modules, imports)") - (("\\$\\$\\[QT_INSTALL_QML\\]") - "$$replace(dir, mkspecs/modules, qml)")) + "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))")) #t)))))) (native-search-paths (list (search-path-specification (variable "QMAKEPATH") - (files '(""))) + (files '("lib/qt5"))) (search-path-specification (variable "QML2_IMPORT_PATH") - (files '("qml"))) + (files '("lib/qt5/qml"))) (search-path-specification (variable "QT_PLUGIN_PATH") - (files '("plugins"))) + (files '("lib/qt5/plugins"))) (search-path-specification (variable "XDG_DATA_DIRS") (files '("share"))) @@ -817,6 +816,18 @@ developers using C++ or QML, a CSS & JavaScript like language.") (snippet ;; The examples try to build and cause the build to fail '(delete-file-recursively "examples")))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'set-ld-library-path + ;; <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00019.html> + ;; + ;; Make the uninstalled libQt5WaylandClient.so.5 available to the + ;; wayland platform plugin. + (lambda _ + (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/lib")) + #t)))))) (native-inputs `(("glib" ,glib) ("perl" ,perl) -- 2.13.5 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 2/6] gnu: qt: Fix install paths in submodules. 2017-10-06 12:02 ` [bug#28719] [PATCH 1/6] gnu: qtbase: " Hartmut Goebel @ 2017-10-06 12:02 ` Hartmut Goebel 2017-10-10 11:01 ` 宋文武 2017-10-06 12:02 ` [bug#28719] [PATCH 3/6] gnu: qwt: Adjust installation directory layout Hartmut Goebel ` (3 subsequent siblings) 4 siblings, 1 reply; 14+ messages in thread From: Hartmut Goebel @ 2017-10-06 12:02 UTC (permalink / raw) To: 28719 From: 宋文武 <iyzsong@member.fsf.org> Before this, the paths in pkg-config (.pc) and libtool (.la) files of submodules are all pointing to qtbase. * gnu/packages/qt.scm (qtbase)[native-inputs]: Move 'which' to 'propagated-inputs'. [arguments]: Rename 'patch-mkspecs' phase to 'patch-mkspecs' and patch more qmake spec files there. (qtsvg)[arguments]: Add 'configure-qmake' phase. --- gnu/packages/qt.scm | 86 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 63 insertions(+), 23 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index e276eb05b..88e0011b1 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -376,7 +376,8 @@ developers using C++ or QML, a CSS & JavaScript like language.") #t)))) (build-system gnu-build-system) (propagated-inputs - `(("mesa" ,mesa))) + `(("mesa" ,mesa) + ("which" ,(@ (gnu packages base) which)))) (inputs `(("alsa-lib" ,alsa-lib) ("cups" ,cups) @@ -427,8 +428,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("perl" ,perl) ("pkg-config" ,pkg-config) ("python" ,python-2) - ("ruby" ,ruby) - ("which" ,(@ (gnu packages base) which)))) + ("ruby" ,ruby))) (arguments `(#:phases (modify-phases %standard-phases @@ -492,10 +492,11 @@ developers using C++ or QML, a CSS & JavaScript like language.") '("-no-sse2")) "-no-mips_dsp" "-no-mips_dspr2"))))) - (add-after 'install 'patch-qt_config.prf + (add-after 'install 'patch-mkspecs (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (mkspecs (string-append out "/lib/qt5/mkspecs")) + (archdata (string-append out "/lib/qt5")) + (mkspecs (string-append archdata "/mkspecs")) (qt_config.prf (string-append mkspecs "/features/qt_config.prf"))) ;; For each Qt module, let `qmake' uses search paths in the @@ -509,6 +510,20 @@ developers using C++ or QML, a CSS & JavaScript like language.") "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") (("\\$\\$\\[QT_INSTALL_BINS\\]") "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))")) + + ;; Searches Qt tools in the current PATH instead of QT_HOST_BINS. + (substitute* (string-append mkspecs "/features/qt_functions.prf") + (("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2") + "cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})")) + + ;; Resolve qmake spec files within qtbase by absolute paths. + (substitute* + (map (lambda (file) + (string-append mkspecs "/features/" file)) + '("device_config.prf" "moc.prf" "qt_build_config.prf" + "qt_config.prf" "winrt/package_manifest.prf")) + (("\\$\\$\\[QT_HOST_DATA/get\\]") archdata) + (("\\$\\$\\[QT_HOST_DATA/src\\]") archdata)) #t)))))) (native-search-paths (list (search-path-specification @@ -554,26 +569,51 @@ developers using C++ or QML, a CSS & JavaScript like language.") (arguments `(#:phases (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; Valid QT_BUILD_PARTS variables are: - ;; libs tools tests examples demos docs translations - (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests" - (string-append "PREFIX=" out)))))) - (add-before 'install 'fix-Makefiles + (add-before 'configure 'configure-qmake (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (qtbase (assoc-ref inputs "qtbase"))) - (substitute* (find-files "." "Makefile") - (((string-append "INSTALL_ROOT)" qtbase)) - (string-append "INSTALL_ROOT)" out))) + (let* ((out (assoc-ref outputs "out")) + (qtbase (assoc-ref inputs "qtbase")) + (tmpdir (string-append (getenv "TMPDIR"))) + (qmake (string-append tmpdir "/qmake")) + (qt.conf (string-append tmpdir "/qt.conf"))) + ;; Use qmake with a customized qt.conf to override install + ;; paths to $out. + (symlink (which "qmake") qmake) + (setenv "PATH" (string-append tmpdir ":" (getenv "PATH"))) + (with-output-to-file qt.conf + (lambda () + (format #t "[Paths] +Prefix=~a +ArchData=lib/qt5 +Data=share/qt5 +Documentation=share/doc/qt5 +Headers=include/qt5 +Libraries=lib +LibraryExecutables=lib/qt5/libexec +Binaries=bin +Tests=tests +Plugins=lib/qt5/plugins +Imports=lib/qt5/imports +Qml2Imports=lib/qt5/qml +Translations=share/qt5/translations +Settings=etc/xdg +Examples=share/doc/qt5/examples +HostPrefix=~a +HostData=lib/qt5 +HostBinaries=bin +HostLibraries=lib +" out out))) #t))) - (add-before 'check 'set-display - (lambda _ - ;; make Qt render "offscreen", required for tests - (setenv "QT_QPA_PLATFORM" "offscreen") - #t))))))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Valid QT_BUILD_PARTS variables are: + ;; libs tools tests examples demos docs translations + (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests")))) + (add-before 'check 'set-display + (lambda _ + ;; make Qt render "offscreen", required for tests + (setenv "QT_QPA_PLATFORM" "offscreen") + #t))))))) (define-public qtimageformats (package (inherit qtsvg) -- 2.13.5 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 2/6] gnu: qt: Fix install paths in submodules. 2017-10-06 12:02 ` [bug#28719] [PATCH 2/6] gnu: qt: Fix install paths in submodules Hartmut Goebel @ 2017-10-10 11:01 ` 宋文武 0 siblings, 0 replies; 14+ messages in thread From: 宋文武 @ 2017-10-10 11:01 UTC (permalink / raw) To: Hartmut Goebel; +Cc: 28719 Hartmut Goebel <h.goebel@crazy-compilers.com> writes: > From: 宋文武 <iyzsong@member.fsf.org> > > Before this, the paths in pkg-config (.pc) and libtool (.la) files of > submodules are all pointing to qtbase. > > * gnu/packages/qt.scm (qtbase)[native-inputs]: Move 'which' to > 'propagated-inputs'. > [arguments]: Rename 'patch-mkspecs' phase to 'patch-mkspecs' and patch > more qmake spec files there. Typo.. Should be: Rename 'patch-qt_config.prf' phase to 'patch-mkspecs' ... ^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 3/6] gnu: qwt: Adjust installation directory layout. 2017-10-06 12:02 ` [bug#28719] [PATCH 1/6] gnu: qtbase: " Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 2/6] gnu: qt: Fix install paths in submodules Hartmut Goebel @ 2017-10-06 12:02 ` Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 4/6] gnu: qtwebkit: Fix rpath for the qmlwebkit plugins Hartmut Goebel ` (2 subsequent siblings) 4 siblings, 0 replies; 14+ messages in thread From: Hartmut Goebel @ 2017-10-06 12:02 UTC (permalink / raw) To: 28719 From: 宋文武 <iyzsong@member.fsf.org> * gnu/packages/qt.scm (qwt)[arguments]<#:phases>: Modify 'qwtconfig.pri' to use a directory layout that matching qtbase. Modify 'doc/doc.pro' to remove the misplaced installation of man pages. Rename phase 'install-documentation' to 'install-man-pages'. --- gnu/packages/qt.scm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 88e0011b1..f9f1278c7 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1600,11 +1600,27 @@ securely. It will not store any data unencrypted unless explicitly requested.") (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) + (let* ((out (assoc-ref outputs "out")) + (docdir (string-append out "/share/doc/qwt")) + (incdir (string-append out "/include/qwt")) + (pluginsdir (string-append out "/lib/qt5/plugins/designer")) + (featuresdir (string-append out "/lib/qt5/mkspecs/features"))) (substitute* '("qwtconfig.pri") - (("/usr/local/qwt-\\$\\$QWT\\_VERSION") out)) + (("^(\\s*QWT_INSTALL_PREFIX)\\s*=.*" _ x) + (format #f "~a = ~a\n" x out)) + (("^(QWT_INSTALL_DOCS)\\s*=.*" _ x) + (format #f "~a = ~a\n" x docdir)) + (("^(QWT_INSTALL_HEADERS)\\s*=.*" _ x) + (format #f "~a = ~a\n" x incdir)) + (("^(QWT_INSTALL_PLUGINS)\\s*=.*" _ x) + (format #f "~a = ~a\n" x pluginsdir)) + (("^(QWT_INSTALL_FEATURES)\\s*=.*" _ x) + (format #f "~a = ~a\n" x featuresdir))) + (substitute* '("doc/doc.pro") + ;; We'll install them in the 'install-man-pages' phase. + (("^unix:doc\\.files.*") "")) (zero? (system* "qmake"))))) - (add-after 'install 'install-documentation + (add-after 'install 'install-man-pages (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (man (string-append out "/share/man"))) -- 2.13.5 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 4/6] gnu: qtwebkit: Fix rpath for the qmlwebkit plugins. 2017-10-06 12:02 ` [bug#28719] [PATCH 1/6] gnu: qtbase: " Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 2/6] gnu: qt: Fix install paths in submodules Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 3/6] gnu: qwt: Adjust installation directory layout Hartmut Goebel @ 2017-10-06 12:02 ` Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 6/6] gnu: kde-framworks: Fix installation directories Hartmut Goebel 4 siblings, 0 replies; 14+ messages in thread From: Hartmut Goebel @ 2017-10-06 12:02 UTC (permalink / raw) To: 28719 After the qtbase installation directories have been changed, the relative RPATH in the libs no longer matched the sructure. * gnu/packages/qt.scm(qtwebkit)[arguments]: New phase fix-qmlwebkit-plugins-rpath. --- gnu/packages/qt.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index f9f1278c7..1b5058ba1 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1684,6 +1684,15 @@ different kinds of sliders, and much more.") (arguments `(#:phases (modify-phases %standard-phases + (add-before 'configure 'fix-qmlwebkit-plugins-rpath + (lambda _ + (substitute* "Source/WebKit/qt/declarative/experimental/experimental.pri" + (("RPATHDIR_RELATIVE_TO_DESTDIR = \\.\\./\\.\\./lib") + "RPATHDIR_RELATIVE_TO_DESTDIR = ../../../../../lib")) + (substitute* "Source/WebKit/qt/declarative/public.pri" + (("RPATHDIR_RELATIVE_TO_DESTDIR = \\.\\./\\.\\./lib") + "RPATHDIR_RELATIVE_TO_DESTDIR = ../../../../lib")) + #t)) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) -- 2.13.5 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout. 2017-10-06 12:02 ` [bug#28719] [PATCH 1/6] gnu: qtbase: " Hartmut Goebel ` (2 preceding siblings ...) 2017-10-06 12:02 ` [bug#28719] [PATCH 4/6] gnu: qtwebkit: Fix rpath for the qmlwebkit plugins Hartmut Goebel @ 2017-10-06 12:02 ` Hartmut Goebel 2017-10-10 11:05 ` 宋文武 2017-10-06 12:02 ` [bug#28719] [PATCH 6/6] gnu: kde-framworks: Fix installation directories Hartmut Goebel 4 siblings, 1 reply; 14+ messages in thread From: Hartmut Goebel @ 2017-10-06 12:02 UTC (permalink / raw) To: 28719 * gnu/packages/qt.scm (qscintilla)[#:phase configure]: Set QT_INSTALL_DATA and QT_HOST_DATA to $OUT/lib/qt5. --- gnu/packages/qt.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 1b5058ba1..775982757 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1467,8 +1467,10 @@ contain over 620 classes.") (string-append out "/include")) (("\\$\\$\\[QT_INSTALL_TRANSLATIONS\\]") (string-append out "/translations")) - (("\\$\\$\\[QT_INSTALL_DATA\\]") out) - (("\\$\\$\\[QT_HOST_DATA\\]") out)) + (("\\$\\$\\[QT_INSTALL_DATA\\]") + (string-append out "/lib/qt$${QT_MAJOR_VERSION}")) + (("\\$\\$\\[QT_HOST_DATA\\]") + (string-append out "/lib/qt$${QT_MAJOR_VERSION}"))) (zero? (system* "qmake")))))))) (native-inputs `(("qtbase" ,qtbase))) (home-page "http://www.riverbankcomputing.co.uk/software/qscintilla/intro") -- 2.13.5 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout. 2017-10-06 12:02 ` [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout Hartmut Goebel @ 2017-10-10 11:05 ` 宋文武 2017-10-10 14:43 ` Hartmut Goebel 2017-10-10 15:39 ` Hartmut Goebel 0 siblings, 2 replies; 14+ messages in thread From: 宋文武 @ 2017-10-10 11:05 UTC (permalink / raw) To: Hartmut Goebel; +Cc: 28719 Hartmut Goebel <h.goebel@crazy-compilers.com> writes: > * gnu/packages/qt.scm (qscintilla)[#:phase configure]: Set QT_INSTALL_DATA and > QT_HOST_DATA to $OUT/lib/qt5. > --- > gnu/packages/qt.scm | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm > index 1b5058ba1..775982757 100644 > --- a/gnu/packages/qt.scm > +++ b/gnu/packages/qt.scm > @@ -1467,8 +1467,10 @@ contain over 620 classes.") > (string-append out "/include")) > (("\$\$\[QT_INSTALL_TRANSLATIONS\]") > (string-append out "/translations")) > - (("\$\$\[QT_INSTALL_DATA\]") out) > - (("\$\$\[QT_HOST_DATA\]") out)) > + (("\$\$\[QT_INSTALL_DATA\]") > + (string-append out "/lib/qt$${QT_MAJOR_VERSION}")) > + (("\$\$\[QT_HOST_DATA\]") > + (string-append out "/lib/qt$${QT_MAJOR_VERSION}"))) > (zero? (system* "qmake")))))))) > (native-inputs `(("qtbase" ,qtbase))) > (home-page "http://www.riverbankcomputing.co.uk/software/qscintilla/intro") Idelly, With the previous "Fix install paths" patch, this substitute for qscintilla.pro could be removed. Can you check it? Thanks! ^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout. 2017-10-10 11:05 ` 宋文武 @ 2017-10-10 14:43 ` Hartmut Goebel 2017-10-10 15:39 ` Hartmut Goebel 1 sibling, 0 replies; 14+ messages in thread From: Hartmut Goebel @ 2017-10-10 14:43 UTC (permalink / raw) To: 宋文武; +Cc: 28719 Am 10.10.2017 um 13:05 schrieb 宋文武: > Idelly, With the previous "Fix install paths" patch, this substitute for > qscintilla.pro could be removed. Can you check it? Yes, I'll check it in the next days. -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | ^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout. 2017-10-10 11:05 ` 宋文武 2017-10-10 14:43 ` Hartmut Goebel @ 2017-10-10 15:39 ` Hartmut Goebel 2017-10-12 11:27 ` 宋文武 1 sibling, 1 reply; 14+ messages in thread From: Hartmut Goebel @ 2017-10-10 15:39 UTC (permalink / raw) To: 宋文武; +Cc: 28719 Am 10.10.2017 um 13:05 schrieb 宋文武: > Idelly, With the previous "Fix install paths" patch, this substitute for > qscintilla.pro could be removed. Can you check it? Thanks! Found time to test it earlier :-) I tested it and this substitute is still needed. The reason AFAICT is that QScintilla - is referring to variables defined in qmake, while the other packages are using some definition-file in qtbase. The variables are set as follows: $ /gnu/store/…-qtbase-5.9.1/bin/qmake -query QT_SYSROOT: QT_INSTALL_PREFIX:/gnu/store/…-qtbase-5.9.1 QT_INSTALL_ARCHDATA:/gnu/store/…-qtbase-5.9.1/lib/qt5 … I tried qmake -set QT_INSTALL_PREFIX /gnu/store/…-qtbase-5.9.1 without success. This - only set QT_INSTALL_PREFIX but not the other variables. - stores this setting tin the users home and thus effects all projects (not much of a problem in guix build, though). -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | ^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout. 2017-10-10 15:39 ` Hartmut Goebel @ 2017-10-12 11:27 ` 宋文武 2017-10-13 13:37 ` bug#28719: " Hartmut Goebel 0 siblings, 1 reply; 14+ messages in thread From: 宋文武 @ 2017-10-12 11:27 UTC (permalink / raw) To: Hartmut Goebel; +Cc: 28719 Hartmut Goebel <h.goebel@crazy-compilers.com> writes: > Am 10.10.2017 um 13:05 schrieb 宋文武: >> Idelly, With the previous "Fix install paths" patch, this substitute for >> qscintilla.pro could be removed. Can you check it? Thanks! > > Found time to test it earlier :-) > > I tested it and this substitute is still needed. The reason AFAICT is > that QScintilla - is referring to variables defined in qmake, while the > other packages are using some definition-file in qtbase. The variables > are set as follows: > > $ /gnu/store/…-qtbase-5.9.1/bin/qmake -query > QT_SYSROOT: > QT_INSTALL_PREFIX:/gnu/store/…-qtbase-5.9.1 > QT_INSTALL_ARCHDATA:/gnu/store/…-qtbase-5.9.1/lib/qt5 > … > Oh, my bad. I forget that those variables will only be correct when qmake is using the customized qt.conf (like qtsvg), you can make qscintilla inherit from qtsvg to use its 'configure-qmake' phase. ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#28719: [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout. 2017-10-12 11:27 ` 宋文武 @ 2017-10-13 13:37 ` Hartmut Goebel 2017-10-14 6:30 ` [bug#28719] " 宋文武 0 siblings, 1 reply; 14+ messages in thread From: Hartmut Goebel @ 2017-10-13 13:37 UTC (permalink / raw) To: 宋文武; +Cc: 28719-close I pushed the changes as 5430732b22dcee5ae162826ee1dfefb9510eaeca, including the fixed commit-message for "qt: Fix install paths in submodules". Thanks for the review. Am 12.10.2017 um 13:27 schrieb 宋文武: > Oh, my bad. I forget that those variables will only be correct when > qmake is using the customized qt.conf (like qtsvg), you can make > qscintilla inherit from qtsvg to use its 'configure-qmake' phase. I did not implement this for two reasons: - qtsvg is unrelated to QScintilla, so I would find it confusing to inherit it. - Creating a qt.conf file is much more code than just chaining some variable in an existing file. - I want to get it finished :-) So I somebody wants to implement a 'configure-qmake' phase I will not object. -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | ^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout. 2017-10-13 13:37 ` bug#28719: " Hartmut Goebel @ 2017-10-14 6:30 ` 宋文武 0 siblings, 0 replies; 14+ messages in thread From: 宋文武 @ 2017-10-14 6:30 UTC (permalink / raw) To: Hartmut Goebel; +Cc: 28719-close Hartmut Goebel <h.goebel@crazy-compilers.com> writes: > I pushed the changes as 5430732b22dcee5ae162826ee1dfefb9510eaeca, > including the fixed commit-message for "qt: Fix install paths in > submodules". > > Thanks for the review. > Cool, thanks for the work! ^ permalink raw reply [flat|nested] 14+ messages in thread
* [bug#28719] [PATCH 6/6] gnu: kde-framworks: Fix installation directories. 2017-10-06 12:02 ` [bug#28719] [PATCH 1/6] gnu: qtbase: " Hartmut Goebel ` (3 preceding siblings ...) 2017-10-06 12:02 ` [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout Hartmut Goebel @ 2017-10-06 12:02 ` Hartmut Goebel 4 siblings, 0 replies; 14+ messages in thread From: Hartmut Goebel @ 2017-10-06 12:02 UTC (permalink / raw) To: 28719 After the qtbase installation directories have been changed, kf5's plugins etc. need to be install into lib/qt5/…, too. We change the global definitions in "KDEInstallDirs.cmake", so this changes will apply to all packages without these to need to define the paths. THis is okay, since "KDEInstallDirs.cmake" defines the directory-layout guix is using. * gnu/packages/kde-frameworks.scm (extra-cmake-modules)[#:phase fix-lib-path]: In modules/KDEInstallDirs.cmake also patch QTPLUGINDIR, QTQUICKIMPORTSDIR, QMLDIR. (kwindowsystem)[#:phase check]: Adjust QT_PLUGIN_PATH. (kfilemetadata)[#:phase check-setup]: dito. --- gnu/packages/kde-frameworks.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 58bc74236..a503226d6 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -92,7 +92,17 @@ (lambda _ ;; Always install into /lib and not into /lib64. (substitute* "kde-modules/KDEInstallDirs.cmake" - (("\"lib64\"") "\"lib\"")))) + (("\"lib64\"") "\"lib\"") + ;; TODO: Base the following on values taken from Qt + ;; Install plugins into lib/qt5/plugins + (("_define_relative\\(QTPLUGINDIR LIBDIR \"plugins\"") + "_define_relative(QTPLUGINDIR LIBDIR \"qt5/plugins\"") + ;; Install imports into lib/qt5/imports + (("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"") + "_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\"") + ;; Install qml-files into lib/qt5/qml + (("_define_relative\\(QMLDIR LIBDIR \"qml\"") + "_define_relative(QMLDIR LIBDIR \"qt5/qml\"")))) ;; install and check phase are swapped to prevent install from failing ;; after testsuire has run (add-after 'install 'check-post-install @@ -1042,7 +1052,7 @@ configuration pages, message boxes, and password requests.") (begin (let ((out (assoc-ref outputs "out"))) (setenv "QT_PLUGIN_PATH" - (string-append out "/lib/plugins:" + (string-append out "/lib/qt5/plugins:" (getenv "QT_PLUGIN_PATH")))) ;; The test suite requires a running X server, setting ;; QT_QPA_PLATFORM=offscreen does not suffice and even make @@ -1485,7 +1495,7 @@ from DocBook files.") (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (setenv "QT_PLUGIN_PATH" - (string-append out "/lib/plugins:" + (string-append out "/lib/qt5/plugins:" (getenv "QT_PLUGIN_PATH")))) #t))))) (native-inputs -- 2.13.5 ^ permalink raw reply related [flat|nested] 14+ messages in thread
end of thread, other threads:[~2017-10-14 6:31 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-10-06 11:59 [bug#28719] [PATCH 0/6] Qt: Use a more standard directory layout Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 1/6] gnu: qtbase: " Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 2/6] gnu: qt: Fix install paths in submodules Hartmut Goebel 2017-10-10 11:01 ` 宋文武 2017-10-06 12:02 ` [bug#28719] [PATCH 3/6] gnu: qwt: Adjust installation directory layout Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 4/6] gnu: qtwebkit: Fix rpath for the qmlwebkit plugins Hartmut Goebel 2017-10-06 12:02 ` [bug#28719] [PATCH 5/6] gnu: qscintilla: Adjust installation directory layout Hartmut Goebel 2017-10-10 11:05 ` 宋文武 2017-10-10 14:43 ` Hartmut Goebel 2017-10-10 15:39 ` Hartmut Goebel 2017-10-12 11:27 ` 宋文武 2017-10-13 13:37 ` bug#28719: " Hartmut Goebel 2017-10-14 6:30 ` [bug#28719] " 宋文武 2017-10-06 12:02 ` [bug#28719] [PATCH 6/6] gnu: kde-framworks: Fix installation directories Hartmut Goebel
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.