all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
@ 2019-10-24 19:20 Hartmut Goebel
  2019-10-24 19:23 ` [bug#37908] [PATCH 1/2] gnu: Remove qtdeclarative-render2d Hartmut Goebel
  2019-10-25 10:34 ` [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package) Efraim Flashner
  0 siblings, 2 replies; 12+ messages in thread
From: Hartmut Goebel @ 2019-10-24 19:20 UTC (permalink / raw)
  To: 37908

The monolithic `qt` package was only used as a base to inhert `qt-4` from.

For testing this change does not change qt-4 in any way:
- run ./pre-inst-env guix build qt@4.8.7
- apply patch
- again run ./pre-inst-env guix build qt@4.8.7

-> qt@4.8.7 will *not* be build again. To avoid any rebuilds, I even refrined
from sorting the inputs. :-)

The other patch removes a package which has been merged into qtdeclarative as
of Qt 5.8.0 and is not used anywhere.


Hartmut Goebel (2):
  gnu: Remove qtdeclarative-render2d.
  gnu: Remove monolithic qt5.

 gnu/packages/qt.scm | 328 +++++++-------------------------------------
 1 file changed, 49 insertions(+), 279 deletions(-)

-- 
2.21.0

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 1/2] gnu: Remove qtdeclarative-render2d.
  2019-10-24 19:20 [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package) Hartmut Goebel
@ 2019-10-24 19:23 ` Hartmut Goebel
  2019-10-24 19:23   ` [bug#37908] [PATCH 2/2] gnu: Remove monolithic qt5 Hartmut Goebel
  2019-10-25 10:34 ` [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package) Efraim Flashner
  1 sibling, 1 reply; 12+ messages in thread
From: Hartmut Goebel @ 2019-10-24 19:23 UTC (permalink / raw)
  To: 37908

This module has been merged into qtdeclarative as of Qt 5.8.0
and is not used anywhere.
---
 gnu/packages/qt.scm | 28 ----------------------------
 1 file changed, 28 deletions(-)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 929144f30d..e9dc406328 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1434,34 +1434,6 @@ components.  The API consists of over 20 effects provided as separate QML
 types.  The effects cover functional areas such as blending, masking, blurring,
 coloring, and many more.")))
 
-(define-public qtdeclarative-render2d
-  ;; As of Qt-5.8.0 this module has been merged into qtdeclarative
-  (package (inherit qtsvg)
-    (name "qtdeclarative-render2d")
-    (version "5.7.1")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "https://download.qt.io/official_releases/qt/"
-                                 (version-major+minor version) "/" version
-                                 "/submodules/" name "-everywhere-src-"
-                                 version ".tar.xz"))
-             (sha256
-              (base32
-               "0zwch9vn17f3bpy300jcfxx6cx9qymk5j7khx0x9k1xqid4166c3"))
-             (modules '((guix build utils)))
-             (snippet
-              '(begin
-                 (delete-file-recursively "tools/opengldummy/3rdparty")
-                 #t))))
-    (native-inputs `())
-    (inputs
-     `(("qtbase" ,qtbase)
-       ("qtdeclarative" ,qtdeclarative)))
-    (synopsis "Qt Declarative Render module")
-    (description "The Qt Declarative Render 2D module provides a Raster
-backend for QtQuick scene graph.")
-    (properties `((superseded . ,qtdeclarative)))))
-
 (define-public qtgamepad
   (package (inherit qtsvg)
     (name "qtgamepad")
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 2/2] gnu: Remove monolithic qt5.
  2019-10-24 19:23 ` [bug#37908] [PATCH 1/2] gnu: Remove qtdeclarative-render2d Hartmut Goebel
@ 2019-10-24 19:23   ` Hartmut Goebel
  0 siblings, 0 replies; 12+ messages in thread
From: Hartmut Goebel @ 2019-10-24 19:23 UTC (permalink / raw)
  To: 37908

This package was not used anywhere but as a based for qt-4.

* gnu/packages/qt.scm (qt): Remove, after moving all relevant parts to …
  (qt-4): here.
---
 gnu/packages/qt.scm | 300 ++++++++------------------------------------
 1 file changed, 49 insertions(+), 251 deletions(-)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index e9dc406328..1bcd1d7eba 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -126,66 +126,26 @@ other text such as code.  The syntax uses the syntax of the Django template
 system, and the core design of Django is reused in Grantlee.")
     (license license:lgpl2.0+)))
 
-(define-public qt
+(define-public qt-4
   (package
     (name "qt")
-    (version "5.11.3")
-    (outputs '("out" "examples"))
+    (version "4.8.7")
     (source (origin
              (method url-fetch)
-             (uri
-               (string-append
-                 "http://download.qt.io/official_releases/qt/"
-                 (version-major+minor version)
-                 "/" version
-                 "/single/qt-everywhere-src-"
-                 version ".tar.xz"))
+             (uri (string-append "http://download.qt-project.org/official_releases/qt/"
+                                 (string-copy version 0 (string-rindex version #\.))
+                                 "/" version
+                                 "/qt-everywhere-opensource-src-"
+                                 version ".tar.gz"))
              (sha256
               (base32
-               "0kgzy32s1fr22fxxfhcyncfryb3qxrznlr737r4y5khk4xj1g545"))
+               "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
+             (patches (search-patches "qt4-ldflags.patch"))
              (modules '((guix build utils)))
              (snippet
-              '(begin
-                ;; Remove qtwebengine, which relies on a bundled copy of
-                ;; chromium. Not only does it fail compilation in qt 5.5:
-                ;;    3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc:362:10:
-                ;;    error: cannot convert ‘bool’ to ‘boolean’ in return
-                ;; it might also pose security problems.
-                ;; Alternatively, we could use the "-skip qtwebengine"
-                ;; configuration option.
-                (delete-file-recursively "qtwebengine")
-                ;; The following snippets are copied from their mondular-qt counterparts.
-                (for-each
-                  (lambda (dir)
-                    (delete-file-recursively (string-append "qtbase/src/3rdparty/" dir)))
-                  (list "double-conversion" "freetype" "harfbuzz-ng"
-                        "libpng" "libjpeg" "pcre2" "sqlite" "xcb"
-                        "xkbcommon" "zlib"))
-                (for-each
-                  (lambda (dir)
-                    (delete-file-recursively dir))
-                  (list "qtimageformats/src/3rdparty"
-                        "qtmultimedia/examples/multimedia/spectrum/3rdparty"
-                        "qtwayland/examples"
-                        "qtscxml/tests/3rdparty"
-                        "qtcanvas3d/examples/canvas3d/3rdparty"))
-                ;; Tests depend on this example, which depends on the 3rd party code.
-                (substitute* "qtmultimedia/examples/multimedia/multimedia.pro"
-                  (("spectrum") "#"))
-                (substitute* "qtxmlpatterns/tests/auto/auto.pro"
-                  (("qxmlquery") "# qxmlquery")
-                  (("xmlpatterns ") "# xmlpatterns"))
-                (substitute* "qtwebglplugin/tests/plugins/platforms/platforms.pro"
-                  (("webgl") "# webgl"))
-                (substitute* "qtscxml/tests/auto/auto.pro"
-                  (("scion") "#"))
-                (substitute* "qtnetworkauth/tests/auto/auto.pro"
-                  (("oauth1 ") "# oauth1 "))
-                (substitute* "qtremoteobjects/tests/auto/qml/qml.pro"
-                  (("integration") "# integration")
-                  (("usertypes") "# usertypes"))
-                #t))))
-    (build-system gnu-build-system)
+              ;; Remove webkit module, which is not built.
+              '(begin (delete-file-recursively "src/3rdparty/webkit")
+                      #t))))
     (propagated-inputs
      `(("mesa" ,mesa)))
     (inputs
@@ -200,11 +160,9 @@ system, and the core design of Django is reused in Grantlee.")
        ("glib" ,glib)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
-       ("harfbuzz" ,harfbuzz)
        ("icu4c" ,icu4c)
        ("jasper" ,jasper)
        ("libinput" ,libinput-minimal)
-       ("libjpeg" ,libjpeg)
        ("libmng" ,libmng)
        ("libpci" ,pciutils)
        ("libpng" ,libpng)
@@ -226,7 +184,6 @@ system, and the core design of Django is reused in Grantlee.")
        ("mtdev" ,mtdev)
        ("mariadb" ,mariadb)
        ("nss" ,nss)
-       ("openssl" ,openssl)
        ("postgresql" ,postgresql)
        ("pulseaudio" ,pulseaudio)
        ("pcre2" ,pcre2)
@@ -239,197 +196,7 @@ system, and the core design of Django is reused in Grantlee.")
        ("xcb-util-keysyms" ,xcb-util-keysyms)
        ("xcb-util-renderutil" ,xcb-util-renderutil)
        ("xcb-util-wm" ,xcb-util-wm)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2)
-       ("ruby" ,ruby)
-       ("vulkan-headers" ,vulkan-headers)
-       ("which" ,(@ (gnu packages base) which))))
-    (arguments
-     `(#:parallel-build? #f ; Triggers race condition in qtbase module on Hydra.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'patch-bin-sh
-           (lambda _
-             (substitute* '("qtbase/configure"
-                            "qtbase/mkspecs/features/qt_functions.prf"
-                            "qtbase/qmake/library/qmakebuiltins.cpp")
-                          (("/bin/sh") (which "sh")))
-             #t))
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out      (assoc-ref outputs "out"))
-                   (examples (assoc-ref outputs "examples")))
-               (substitute* '("configure" "qtbase/configure")
-                 (("/bin/pwd") (which "pwd")))
-               (substitute* "qtbase/src/corelib/global/global.pri"
-                 (("/bin/ls") (which "ls")))
-               ;; do not pass "--enable-fast-install", which makes the
-               ;; configure process fail
-               (invoke
-                 "./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
-                                  examples "/share/doc/qt5/examples") ; 151MiB
-                 "-opensource"
-                 "-confirm-license"
-
-                 ;; These features require higher versions of Linux than the
-                 ;; minimum version of the glibc.  See
-                 ;; src/corelib/global/minimum-linux_p.h.  By disabling these
-                 ;; features Qt5 applications can be used on the oldest
-                 ;; kernels that the glibc supports, including the RHEL6
-                 ;; (2.6.32) and RHEL7 (3.10) kernels.
-                 "-no-feature-getentropy"  ; requires Linux 3.17
-                 "-no-feature-renameat2"   ; requires Linux 3.16
-
-                 ;; Do not build examples; for the time being, we
-                 ;; prefer to save the space and build time.
-                 "-no-compile-examples"
-                 ;; Most "-system-..." are automatic, but some use
-                 ;; the bundled copy by default.
-                 "-system-sqlite"
-                 "-system-harfbuzz"
-                 "-system-pcre"
-                 ;; explicitly link with openssl instead of dlopening it
-                 "-openssl-linked"
-                 ;; explicitly link with dbus instead of dlopening it
-                 "-dbus-linked"
-                 ;; don't use the precompiled headers
-                 "-no-pch"
-                 ;; drop special machine instructions not supported
-                 ;; on all instances of the target
-                 ,@(if (string-prefix? "x86_64"
-                                       (or (%current-target-system)
-                                           (%current-system)))
-                       '()
-                       '("-no-sse2"))
-                 "-no-mips_dsp"
-                 "-no-mips_dspr2"))))
-           (add-after 'install 'patch-mkspecs
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (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
-                 ;; module directory instead of all in QT_INSTALL_PREFIX.
-                 (substitute* qt_config.prf
-                   (("\\$\\$\\[QT_INSTALL_HEADERS\\]")
-                    "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt5))")
-                   (("\\$\\$\\[QT_INSTALL_LIBS\\]")
-                    "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
-                   (("\\$\\$\\[QT_HOST_LIBS\\]")
-                    "$$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)))
-           (add-after 'unpack 'patch-paths
-             ;; Use the absolute paths for dynamically loaded libs, otherwise
-             ;; the lib will be searched in LD_LIBRARY_PATH which typically is
-             ;; not set in guix.
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; libresolve
-               (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
-                                                   "cross-libc" "libc"))))
-                 (substitute* '("qtbase/src/network/kernel/qdnslookup_unix.cpp"
-                                "qtbase/src/network/kernel/qhostinfo_unix.cpp")
-                   (("^\\s*(lib.setFileName\\(QLatin1String\\(\")(resolv\"\\)\\);)" _ a b)
-                  (string-append a glibc "/lib/lib" b))))
-               ;; X11/locale (compose path)
-               (substitute* "qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp"
-                 ;; Don't search in /usr/…/X11/locale, …
-                 (("^\\s*m_possibleLocations.append\\(QStringLiteral\\(\"/usr/.*/X11/locale\"\\)\\);" line)
-                  (string-append "// " line))
-                 ;; … but use libx11's path
-                 (("^\\s*(m_possibleLocations.append\\(QStringLiteral\\()X11_PREFIX \"(/.*/X11/locale\"\\)\\);)" _ a b)
-                  (string-append a "\"" (assoc-ref inputs "libx11") b)))
-               ;; libGL
-               (substitute* "qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp"
-                 (("^\\s*(QLibrary lib\\(QLatin1String\\(\")(GL\"\\)\\);)" _ a b)
-                  (string-append a (assoc-ref inputs "mesa") "/lib/lib" b)))
-               ;; libXcursor
-               (substitute* "qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp"
-                 (("^\\s*(QLibrary xcursorLib\\(QLatin1String\\(\")(Xcursor\"\\), 1\\);)" _ a b)
-                  (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b))
-                 (("^\\s*(xcursorLib.setFileName\\(QLatin1String\\(\")(Xcursor\"\\)\\);)" _ a b)
-                  (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b)))
-               #t)))))
-      (native-search-paths
-       (list (search-path-specification
-              (variable "QMAKEPATH")
-              (files '("lib/qt5")))
-             (search-path-specification
-              (variable "QML2_IMPORT_PATH")
-              (files '("lib/qt5/qml")))
-             (search-path-specification
-              (variable "QT_PLUGIN_PATH")
-              (files '("lib/qt5/plugins")))
-             (search-path-specification
-              (variable "XDG_DATA_DIRS")
-              (files '("share")))
-             (search-path-specification
-              (variable "XDG_CONFIG_DIRS")
-              (files '("etc/xdg")))))
-      (home-page "https://www.qt.io/")
-      (synopsis "Cross-platform GUI library")
-      (description "Qt is a cross-platform application and UI framework for
-  developers using C++ or QML, a CSS & JavaScript like language.")
-      (license (list license:lgpl2.1 license:lgpl3))
-
-    ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS;
-    ;; see <http://hydra.gnu.org/build/112828>.
-    ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
-    (supported-systems (delete "mips64el-linux" %supported-systems))))
-
-(define-public qt-4
-  (package (inherit qt)
-    (version "4.8.7")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "http://download.qt-project.org/official_releases/qt/"
-                                 (string-copy version 0 (string-rindex version #\.))
-                                 "/" version
-                                 "/qt-everywhere-opensource-src-"
-                                 version ".tar.gz"))
-             (sha256
-              (base32
-               "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
-             (patches (search-patches "qt4-ldflags.patch"))
-             (modules '((guix build utils)))
-             (snippet
-              ;; Remove webkit module, which is not built.
-              '(begin (delete-file-recursively "src/3rdparty/webkit")
-                      #t))))
-    (inputs
-     `(,@(fold alist-delete
-               (package-inputs qt)
-               '("harfbuzz" "libjpeg" "openssl"))
+       ("zlib" ,zlib)
        ("libjpeg" ,libjpeg-8)
        ("libsm" ,libsm)
        ("openssl" ,openssl-1.0)))
@@ -438,15 +205,20 @@ system, and the core design of Django is reused in Grantlee.")
        ;; We could build it with -std=gnu++98, but then we'll get in trouble with
        ;; ICU later.  Just keep using GCC 5 for now.
        ("gcc" ,gcc-5)
-       ,@(fold alist-delete
-               (package-native-inputs qt)
-               '("vulkan-headers"))))
-
+       ("bison" ,bison)
+       ("flex" ,flex)
+       ("gperf" ,gperf)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2)
+       ("ruby" ,ruby)
+       ("which" ,(@ (gnu packages base) which))))
     ;; Note: there are 37 MiB of examples and a '-exampledir' configure flags,
     ;; but we can't make them a separate output because "out" and "examples"
     ;; would refer to each other.
     (outputs '("out"                             ;112MiB core + 37MiB examples
                "doc"))                           ;280MiB of HTML + code
+    (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -519,7 +291,33 @@ system, and the core design of Django is reused in Grantlee.")
               ;; different "devices" due to bind-mounts.
               (copy-recursively olddoc docdir)
               (delete-file-recursively olddoc)
-              #t))))))))
+              #t))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "QMAKEPATH")
+            (files '("lib/qt5")))
+           (search-path-specification
+            (variable "QML2_IMPORT_PATH")
+            (files '("lib/qt5/qml")))
+           (search-path-specification
+            (variable "QT_PLUGIN_PATH")
+            (files '("lib/qt5/plugins")))
+           (search-path-specification
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc/xdg")))))
+    (home-page "https://www.qt.io/")
+    (synopsis "Cross-platform GUI library")
+    (description "Qt is a cross-platform application and UI framework for
+developers using C++ or QML, a CSS & JavaScript like language.")
+    (license (list license:lgpl2.1 license:lgpl3))
+
+    ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS;
+    ;; see <http://hydra.gnu.org/build/112828>.
+    ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
+    (supported-systems (delete "mips64el-linux" %supported-systems))))
 
 (define-public qtbase
   (package
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-10-24 19:20 [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package) Hartmut Goebel
  2019-10-24 19:23 ` [bug#37908] [PATCH 1/2] gnu: Remove qtdeclarative-render2d Hartmut Goebel
@ 2019-10-25 10:34 ` Efraim Flashner
  2019-10-25 10:43   ` Efraim Flashner
  1 sibling, 1 reply; 12+ messages in thread
From: Efraim Flashner @ 2019-10-25 10:34 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: 37908

[-- Attachment #1: Type: text/plain, Size: 1261 bytes --]

On Thu, Oct 24, 2019 at 09:20:56PM +0200, Hartmut Goebel wrote:
> The monolithic `qt` package was only used as a base to inhert `qt-4` from.
> 
> For testing this change does not change qt-4 in any way:
> - run ./pre-inst-env guix build qt@4.8.7
> - apply patch
> - again run ./pre-inst-env guix build qt@4.8.7
> 
> -> qt@4.8.7 will *not* be build again. To avoid any rebuilds, I even refrined
> from sorting the inputs. :-)
> 
> The other patch removes a package which has been merged into qtdeclarative as
> of Qt 5.8.0 and is not used anywhere.
> 
> 
> Hartmut Goebel (2):
>   gnu: Remove qtdeclarative-render2d.
>   gnu: Remove monolithic qt5.
> 
>  gnu/packages/qt.scm | 328 +++++++-------------------------------------
>  1 file changed, 49 insertions(+), 279 deletions(-)
> 

On qtdeclarative-render2d, I think the only reason to possibly keep it
is Debian old-stable (or old-old stable, not sure) packaged the 5.7
series, but I don't think they even used it for anything.

Very much vote yes on monolithic qt-5.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-10-25 10:34 ` [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package) Efraim Flashner
@ 2019-10-25 10:43   ` Efraim Flashner
  2019-10-25 21:33     ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Efraim Flashner @ 2019-10-25 10:43 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: 37908

[-- Attachment #1: Type: text/plain, Size: 1607 bytes --]

On Fri, Oct 25, 2019 at 01:34:49PM +0300, Efraim Flashner wrote:
> On Thu, Oct 24, 2019 at 09:20:56PM +0200, Hartmut Goebel wrote:
> > The monolithic `qt` package was only used as a base to inhert `qt-4` from.
> > 
> > For testing this change does not change qt-4 in any way:
> > - run ./pre-inst-env guix build qt@4.8.7
> > - apply patch
> > - again run ./pre-inst-env guix build qt@4.8.7
> > 
> > -> qt@4.8.7 will *not* be build again. To avoid any rebuilds, I even refrined
> > from sorting the inputs. :-)
> > 
> > The other patch removes a package which has been merged into qtdeclarative as
> > of Qt 5.8.0 and is not used anywhere.
> > 
> > 
> > Hartmut Goebel (2):
> >   gnu: Remove qtdeclarative-render2d.
> >   gnu: Remove monolithic qt5.
> > 
> >  gnu/packages/qt.scm | 328 +++++++-------------------------------------
> >  1 file changed, 49 insertions(+), 279 deletions(-)
> > 
> 
> On qtdeclarative-render2d, I think the only reason to possibly keep it
> is Debian old-stable (or old-old stable, not sure) packaged the 5.7
> series, but I don't think they even used it for anything.
> 
> Very much vote yes on monolithic qt-5.
> 

Actually, we should probably depreciate it and mark it superseded by
qtbase for a while. Packages in channels won't have it ripped out, but
if/when they fail to build they'll find out that its modular qt only
now.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-10-25 10:43   ` Efraim Flashner
@ 2019-10-25 21:33     ` Ludovic Courtès
  2019-10-28  9:06       ` Hartmut Goebel
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2019-10-25 21:33 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: Hartmut Goebel, 37908

Hello,

Efraim Flashner <efraim@flashner.co.il> skribis:

> On Fri, Oct 25, 2019 at 01:34:49PM +0300, Efraim Flashner wrote:

[...]

>> Very much vote yes on monolithic qt-5.
>> 
>
> Actually, we should probably depreciate it and mark it superseded by
> qtbase for a while.

Yeah, I think we should do that and remove in one or two months.  (We
can also use ‘define-deprecated’ for the variable itself, like I did for
‘guile-json’, to make sure channel authors notice.)

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-10-25 21:33     ` Ludovic Courtès
@ 2019-10-28  9:06       ` Hartmut Goebel
  2019-11-01 10:49         ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Hartmut Goebel @ 2019-10-28  9:06 UTC (permalink / raw)
  To: Ludovic Courtès, Efraim Flashner; +Cc: 37908

Hi,

Efraim Flashner <efraim@flashner.co.il> wrote:

> On qtdeclarative-render2d, I think the only reason to possibly keep it
> is Debian old-stable (or old-old stable, not sure) packaged the 5.7
> series, but I don't think they even used it for anything.

We don't have any qt 5.7 package anymore and this package is deprecated
since long. I'm in favor of removing it.


Am 25.10.19 um 23:33 schrieb Ludovic Courtès:

>> Actually, we should probably depreciate it and mark it superseded by
>> qtbase for a while.
> Yeah, I think we should do that and remove in one or two months.  (We
> can also use ‘define-deprecated’ for the variable itself, like I did for
> ‘guile-json’, to make sure channel authors notice.)

Okay for me.

But I don't understand how to use  ‘define-deprecated’. Documentations says:

    "Define a deprecated variable or procedure, along these lines:

  (define-deprecated foo bar 42)
  (define-deprecated (baz x y) qux (qux y x))

And for guile json it is:

   (define-deprecated guile-json guile-json-1 guile-json-1)

Given this, I have *no* clue how to use this function. can anybody
please explain?!

-- 
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] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-10-28  9:06       ` Hartmut Goebel
@ 2019-11-01 10:49         ` Ludovic Courtès
  2019-11-01 12:18           ` Hartmut Goebel
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2019-11-01 10:49 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: 37908, Efraim Flashner

Hi Hartmut,

> Am 25.10.19 um 23:33 schrieb Ludovic Courtès:
>
>>> Actually, we should probably depreciate it and mark it superseded by
>>> qtbase for a while.
>> Yeah, I think we should do that and remove in one or two months.  (We
>> can also use ‘define-deprecated’ for the variable itself, like I did for
>> ‘guile-json’, to make sure channel authors notice.)
>
> Okay for me.
>
> But I don't understand how to use  ‘define-deprecated’.

If you write:

  (define-deprecated qt qtbase qtbase)

then every user of variable ‘qt’ will get a warning saying that ‘qt’ is
deprecated and that they should use ‘qtbase’ instead; furthermore, ‘qt’
will be an alias for ‘qtbase’ (which is maybe not a great idea.)

HTH!

Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-11-01 10:49         ` Ludovic Courtès
@ 2019-11-01 12:18           ` Hartmut Goebel
  2019-11-01 14:14             ` Ludovic Courtès
  0 siblings, 1 reply; 12+ messages in thread
From: Hartmut Goebel @ 2019-11-01 12:18 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 37908, Efraim Flashner

[-- Attachment #1: Type: text/plain, Size: 340 bytes --]

Am 01.11.19 um 11:49 schrieb Ludovic Courtès:
>   (define-deprecated qt qtbase qtbase)

Thanks. Attached please find the updated patch deprecating monolithic qt5.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |


[-- Attachment #2: 0002-gnu-Deprecate-monolithic-qt5.patch --]
[-- Type: text/x-patch, Size: 18226 bytes --]

From b412a8d72ea5dc3db70c3082b520eda9959c8624 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel <h.goebel@crazy-compilers.com>
Date: Thu, 24 Oct 2019 20:28:26 +0200
Subject: [Patch v2 2/2] gnu: Deprecate monolithic qt5.

This package was not used anywhere but as a based for qt-4.

* gnu/packages/qt.scm (qt-4): Copy all relevant package definition
  parts from 'qt'.
  (qt): Define as a deprecated alias for 'qtbase`.
---
 gnu/packages/qt.scm | 302 ++++++++------------------------------------
 1 file changed, 51 insertions(+), 251 deletions(-)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index e9dc406328..b1ee8bf559 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -126,66 +126,28 @@ other text such as code.  The syntax uses the syntax of the Django template
 system, and the core design of Django is reused in Grantlee.")
     (license license:lgpl2.0+)))
 
-(define-public qt
+(define-deprecated qt qtbase qtbase)
+
+(define-public qt-4
   (package
     (name "qt")
-    (version "5.11.3")
-    (outputs '("out" "examples"))
+    (version "4.8.7")
     (source (origin
              (method url-fetch)
-             (uri
-               (string-append
-                 "http://download.qt.io/official_releases/qt/"
-                 (version-major+minor version)
-                 "/" version
-                 "/single/qt-everywhere-src-"
-                 version ".tar.xz"))
+             (uri (string-append "http://download.qt-project.org/official_releases/qt/"
+                                 (string-copy version 0 (string-rindex version #\.))
+                                 "/" version
+                                 "/qt-everywhere-opensource-src-"
+                                 version ".tar.gz"))
              (sha256
               (base32
-               "0kgzy32s1fr22fxxfhcyncfryb3qxrznlr737r4y5khk4xj1g545"))
+               "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
+             (patches (search-patches "qt4-ldflags.patch"))
              (modules '((guix build utils)))
              (snippet
-              '(begin
-                ;; Remove qtwebengine, which relies on a bundled copy of
-                ;; chromium. Not only does it fail compilation in qt 5.5:
-                ;;    3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc:362:10:
-                ;;    error: cannot convert ‘bool’ to ‘boolean’ in return
-                ;; it might also pose security problems.
-                ;; Alternatively, we could use the "-skip qtwebengine"
-                ;; configuration option.
-                (delete-file-recursively "qtwebengine")
-                ;; The following snippets are copied from their mondular-qt counterparts.
-                (for-each
-                  (lambda (dir)
-                    (delete-file-recursively (string-append "qtbase/src/3rdparty/" dir)))
-                  (list "double-conversion" "freetype" "harfbuzz-ng"
-                        "libpng" "libjpeg" "pcre2" "sqlite" "xcb"
-                        "xkbcommon" "zlib"))
-                (for-each
-                  (lambda (dir)
-                    (delete-file-recursively dir))
-                  (list "qtimageformats/src/3rdparty"
-                        "qtmultimedia/examples/multimedia/spectrum/3rdparty"
-                        "qtwayland/examples"
-                        "qtscxml/tests/3rdparty"
-                        "qtcanvas3d/examples/canvas3d/3rdparty"))
-                ;; Tests depend on this example, which depends on the 3rd party code.
-                (substitute* "qtmultimedia/examples/multimedia/multimedia.pro"
-                  (("spectrum") "#"))
-                (substitute* "qtxmlpatterns/tests/auto/auto.pro"
-                  (("qxmlquery") "# qxmlquery")
-                  (("xmlpatterns ") "# xmlpatterns"))
-                (substitute* "qtwebglplugin/tests/plugins/platforms/platforms.pro"
-                  (("webgl") "# webgl"))
-                (substitute* "qtscxml/tests/auto/auto.pro"
-                  (("scion") "#"))
-                (substitute* "qtnetworkauth/tests/auto/auto.pro"
-                  (("oauth1 ") "# oauth1 "))
-                (substitute* "qtremoteobjects/tests/auto/qml/qml.pro"
-                  (("integration") "# integration")
-                  (("usertypes") "# usertypes"))
-                #t))))
-    (build-system gnu-build-system)
+              ;; Remove webkit module, which is not built.
+              '(begin (delete-file-recursively "src/3rdparty/webkit")
+                      #t))))
     (propagated-inputs
      `(("mesa" ,mesa)))
     (inputs
@@ -200,11 +162,9 @@ system, and the core design of Django is reused in Grantlee.")
        ("glib" ,glib)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
-       ("harfbuzz" ,harfbuzz)
        ("icu4c" ,icu4c)
        ("jasper" ,jasper)
        ("libinput" ,libinput-minimal)
-       ("libjpeg" ,libjpeg)
        ("libmng" ,libmng)
        ("libpci" ,pciutils)
        ("libpng" ,libpng)
@@ -226,7 +186,6 @@ system, and the core design of Django is reused in Grantlee.")
        ("mtdev" ,mtdev)
        ("mariadb" ,mariadb)
        ("nss" ,nss)
-       ("openssl" ,openssl)
        ("postgresql" ,postgresql)
        ("pulseaudio" ,pulseaudio)
        ("pcre2" ,pcre2)
@@ -239,197 +198,7 @@ system, and the core design of Django is reused in Grantlee.")
        ("xcb-util-keysyms" ,xcb-util-keysyms)
        ("xcb-util-renderutil" ,xcb-util-renderutil)
        ("xcb-util-wm" ,xcb-util-wm)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2)
-       ("ruby" ,ruby)
-       ("vulkan-headers" ,vulkan-headers)
-       ("which" ,(@ (gnu packages base) which))))
-    (arguments
-     `(#:parallel-build? #f ; Triggers race condition in qtbase module on Hydra.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'patch-bin-sh
-           (lambda _
-             (substitute* '("qtbase/configure"
-                            "qtbase/mkspecs/features/qt_functions.prf"
-                            "qtbase/qmake/library/qmakebuiltins.cpp")
-                          (("/bin/sh") (which "sh")))
-             #t))
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out      (assoc-ref outputs "out"))
-                   (examples (assoc-ref outputs "examples")))
-               (substitute* '("configure" "qtbase/configure")
-                 (("/bin/pwd") (which "pwd")))
-               (substitute* "qtbase/src/corelib/global/global.pri"
-                 (("/bin/ls") (which "ls")))
-               ;; do not pass "--enable-fast-install", which makes the
-               ;; configure process fail
-               (invoke
-                 "./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
-                                  examples "/share/doc/qt5/examples") ; 151MiB
-                 "-opensource"
-                 "-confirm-license"
-
-                 ;; These features require higher versions of Linux than the
-                 ;; minimum version of the glibc.  See
-                 ;; src/corelib/global/minimum-linux_p.h.  By disabling these
-                 ;; features Qt5 applications can be used on the oldest
-                 ;; kernels that the glibc supports, including the RHEL6
-                 ;; (2.6.32) and RHEL7 (3.10) kernels.
-                 "-no-feature-getentropy"  ; requires Linux 3.17
-                 "-no-feature-renameat2"   ; requires Linux 3.16
-
-                 ;; Do not build examples; for the time being, we
-                 ;; prefer to save the space and build time.
-                 "-no-compile-examples"
-                 ;; Most "-system-..." are automatic, but some use
-                 ;; the bundled copy by default.
-                 "-system-sqlite"
-                 "-system-harfbuzz"
-                 "-system-pcre"
-                 ;; explicitly link with openssl instead of dlopening it
-                 "-openssl-linked"
-                 ;; explicitly link with dbus instead of dlopening it
-                 "-dbus-linked"
-                 ;; don't use the precompiled headers
-                 "-no-pch"
-                 ;; drop special machine instructions not supported
-                 ;; on all instances of the target
-                 ,@(if (string-prefix? "x86_64"
-                                       (or (%current-target-system)
-                                           (%current-system)))
-                       '()
-                       '("-no-sse2"))
-                 "-no-mips_dsp"
-                 "-no-mips_dspr2"))))
-           (add-after 'install 'patch-mkspecs
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (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
-                 ;; module directory instead of all in QT_INSTALL_PREFIX.
-                 (substitute* qt_config.prf
-                   (("\\$\\$\\[QT_INSTALL_HEADERS\\]")
-                    "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt5))")
-                   (("\\$\\$\\[QT_INSTALL_LIBS\\]")
-                    "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
-                   (("\\$\\$\\[QT_HOST_LIBS\\]")
-                    "$$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)))
-           (add-after 'unpack 'patch-paths
-             ;; Use the absolute paths for dynamically loaded libs, otherwise
-             ;; the lib will be searched in LD_LIBRARY_PATH which typically is
-             ;; not set in guix.
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; libresolve
-               (let ((glibc (assoc-ref inputs ,(if (%current-target-system)
-                                                   "cross-libc" "libc"))))
-                 (substitute* '("qtbase/src/network/kernel/qdnslookup_unix.cpp"
-                                "qtbase/src/network/kernel/qhostinfo_unix.cpp")
-                   (("^\\s*(lib.setFileName\\(QLatin1String\\(\")(resolv\"\\)\\);)" _ a b)
-                  (string-append a glibc "/lib/lib" b))))
-               ;; X11/locale (compose path)
-               (substitute* "qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp"
-                 ;; Don't search in /usr/…/X11/locale, …
-                 (("^\\s*m_possibleLocations.append\\(QStringLiteral\\(\"/usr/.*/X11/locale\"\\)\\);" line)
-                  (string-append "// " line))
-                 ;; … but use libx11's path
-                 (("^\\s*(m_possibleLocations.append\\(QStringLiteral\\()X11_PREFIX \"(/.*/X11/locale\"\\)\\);)" _ a b)
-                  (string-append a "\"" (assoc-ref inputs "libx11") b)))
-               ;; libGL
-               (substitute* "qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp"
-                 (("^\\s*(QLibrary lib\\(QLatin1String\\(\")(GL\"\\)\\);)" _ a b)
-                  (string-append a (assoc-ref inputs "mesa") "/lib/lib" b)))
-               ;; libXcursor
-               (substitute* "qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp"
-                 (("^\\s*(QLibrary xcursorLib\\(QLatin1String\\(\")(Xcursor\"\\), 1\\);)" _ a b)
-                  (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b))
-                 (("^\\s*(xcursorLib.setFileName\\(QLatin1String\\(\")(Xcursor\"\\)\\);)" _ a b)
-                  (string-append a (assoc-ref inputs "libxcursor") "/lib/lib" b)))
-               #t)))))
-      (native-search-paths
-       (list (search-path-specification
-              (variable "QMAKEPATH")
-              (files '("lib/qt5")))
-             (search-path-specification
-              (variable "QML2_IMPORT_PATH")
-              (files '("lib/qt5/qml")))
-             (search-path-specification
-              (variable "QT_PLUGIN_PATH")
-              (files '("lib/qt5/plugins")))
-             (search-path-specification
-              (variable "XDG_DATA_DIRS")
-              (files '("share")))
-             (search-path-specification
-              (variable "XDG_CONFIG_DIRS")
-              (files '("etc/xdg")))))
-      (home-page "https://www.qt.io/")
-      (synopsis "Cross-platform GUI library")
-      (description "Qt is a cross-platform application and UI framework for
-  developers using C++ or QML, a CSS & JavaScript like language.")
-      (license (list license:lgpl2.1 license:lgpl3))
-
-    ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS;
-    ;; see <http://hydra.gnu.org/build/112828>.
-    ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
-    (supported-systems (delete "mips64el-linux" %supported-systems))))
-
-(define-public qt-4
-  (package (inherit qt)
-    (version "4.8.7")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "http://download.qt-project.org/official_releases/qt/"
-                                 (string-copy version 0 (string-rindex version #\.))
-                                 "/" version
-                                 "/qt-everywhere-opensource-src-"
-                                 version ".tar.gz"))
-             (sha256
-              (base32
-               "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
-             (patches (search-patches "qt4-ldflags.patch"))
-             (modules '((guix build utils)))
-             (snippet
-              ;; Remove webkit module, which is not built.
-              '(begin (delete-file-recursively "src/3rdparty/webkit")
-                      #t))))
-    (inputs
-     `(,@(fold alist-delete
-               (package-inputs qt)
-               '("harfbuzz" "libjpeg" "openssl"))
+       ("zlib" ,zlib)
        ("libjpeg" ,libjpeg-8)
        ("libsm" ,libsm)
        ("openssl" ,openssl-1.0)))
@@ -438,15 +207,20 @@ system, and the core design of Django is reused in Grantlee.")
        ;; We could build it with -std=gnu++98, but then we'll get in trouble with
        ;; ICU later.  Just keep using GCC 5 for now.
        ("gcc" ,gcc-5)
-       ,@(fold alist-delete
-               (package-native-inputs qt)
-               '("vulkan-headers"))))
-
+       ("bison" ,bison)
+       ("flex" ,flex)
+       ("gperf" ,gperf)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2)
+       ("ruby" ,ruby)
+       ("which" ,(@ (gnu packages base) which))))
     ;; Note: there are 37 MiB of examples and a '-exampledir' configure flags,
     ;; but we can't make them a separate output because "out" and "examples"
     ;; would refer to each other.
     (outputs '("out"                             ;112MiB core + 37MiB examples
                "doc"))                           ;280MiB of HTML + code
+    (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -519,7 +293,33 @@ system, and the core design of Django is reused in Grantlee.")
               ;; different "devices" due to bind-mounts.
               (copy-recursively olddoc docdir)
               (delete-file-recursively olddoc)
-              #t))))))))
+              #t))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "QMAKEPATH")
+            (files '("lib/qt5")))
+           (search-path-specification
+            (variable "QML2_IMPORT_PATH")
+            (files '("lib/qt5/qml")))
+           (search-path-specification
+            (variable "QT_PLUGIN_PATH")
+            (files '("lib/qt5/plugins")))
+           (search-path-specification
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc/xdg")))))
+    (home-page "https://www.qt.io/")
+    (synopsis "Cross-platform GUI library")
+    (description "Qt is a cross-platform application and UI framework for
+developers using C++ or QML, a CSS & JavaScript like language.")
+    (license (list license:lgpl2.1 license:lgpl3))
+
+    ;; Qt 4: 'QBasicAtomicPointer' leads to build failures on MIPS;
+    ;; see <http://hydra.gnu.org/build/112828>.
+    ;; Qt 5: assembler error; see <http://hydra.gnu.org/build/112526>.
+    (supported-systems (delete "mips64el-linux" %supported-systems))))
 
 (define-public qtbase
   (package
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-11-01 12:18           ` Hartmut Goebel
@ 2019-11-01 14:14             ` Ludovic Courtès
  2019-11-01 14:39               ` Efraim Flashner
  0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2019-11-01 14:14 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: 37908, Efraim Flashner

Hi Hartmut,

Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:

> From: Hartmut Goebel <h.goebel@crazy-compilers.com>
> Date: Thu, 24 Oct 2019 20:28:26 +0200
> Subject: [Patch v2 2/2] gnu: Deprecate monolithic qt5.
>
> This package was not used anywhere but as a based for qt-4.
>
> * gnu/packages/qt.scm (qt-4): Copy all relevant package definition
>   parts from 'qt'.
>   (qt): Define as a deprecated alias for 'qtbase`.

Please ensure that “guix build qt@4 -nd” returns the same derivation
before and after the change.

> +(define-deprecated qt qtbase qtbase)

Perhaps add a comment above saying that ‘qt’ used to refer to the
monolithic Qt 5.x package?

Otherwise LGTM!  Efraim, can you say if this is fine with you?
When Efraim agrees to the change, I guess you can go ahead.

Thank you,
Ludo’.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-11-01 14:14             ` Ludovic Courtès
@ 2019-11-01 14:39               ` Efraim Flashner
  2019-11-01 16:09                 ` bug#37908: " Hartmut Goebel
  0 siblings, 1 reply; 12+ messages in thread
From: Efraim Flashner @ 2019-11-01 14:39 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Hartmut Goebel, 37908

[-- Attachment #1: Type: text/plain, Size: 1352 bytes --]

On Fri, Nov 01, 2019 at 03:14:08PM +0100, Ludovic Courtès wrote:
> Hi Hartmut,
> 
> Hartmut Goebel <h.goebel@crazy-compilers.com> skribis:
> 
> > From: Hartmut Goebel <h.goebel@crazy-compilers.com>
> > Date: Thu, 24 Oct 2019 20:28:26 +0200
> > Subject: [Patch v2 2/2] gnu: Deprecate monolithic qt5.
> >
> > This package was not used anywhere but as a based for qt-4.
> >
> > * gnu/packages/qt.scm (qt-4): Copy all relevant package definition
> >   parts from 'qt'.
> >   (qt): Define as a deprecated alias for 'qtbase`.
> 
> Please ensure that “guix build qt@4 -nd” returns the same derivation
> before and after the change.
> 
> > +(define-deprecated qt qtbase qtbase)
> 
> Perhaps add a comment above saying that ‘qt’ used to refer to the
> monolithic Qt 5.x package?
> 
> Otherwise LGTM!  Efraim, can you say if this is fine with you?
> When Efraim agrees to the change, I guess you can go ahead.
> 

I didn't apply it locally, I can do it in about 36 hours, but it looks
good. IIRC we have qt4 inheriting from qt5, and qtbase was its own
definition so nothing should change on that side.

LGTM

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#37908: [PATCH 0/2] Remove monolithic qt5 (and other unused package)
  2019-11-01 14:39               ` Efraim Flashner
@ 2019-11-01 16:09                 ` Hartmut Goebel
  0 siblings, 0 replies; 12+ messages in thread
From: Hartmut Goebel @ 2019-11-01 16:09 UTC (permalink / raw)
  To: Efraim Flashner, Ludovic Courtès; +Cc: 37908-close


[-- Attachment #1.1: Type: text/plain, Size: 942 bytes --]

Am 01.11.19 um 15:39 schrieb Efraim Flashner:
>> Please ensure that “guix build qt@4 -nd” returns the same derivation
>> before and after the change.


Done already before submitting the patch :-) But I repeated it now and
this revealed some error. So many thanks for nagging :-)

>>
>> Perhaps add a comment above saying that ‘qt’ used to refer to the
>> monolithic Qt 5.x package?
Done.

> I didn't apply it locally, I can do it in about 36 hours, but it looks
> good. IIRC we have qt4 inheriting from qt5, and qtbase was its own
> definition so nothing should change on that side.


Correct. I added some more explanation to the commit message to make
this more clear.

Pushed as  02511196d99ebc5e385e9dc7f733ffbe848e25ca

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2019-11-01 16:10 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-24 19:20 [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package) Hartmut Goebel
2019-10-24 19:23 ` [bug#37908] [PATCH 1/2] gnu: Remove qtdeclarative-render2d Hartmut Goebel
2019-10-24 19:23   ` [bug#37908] [PATCH 2/2] gnu: Remove monolithic qt5 Hartmut Goebel
2019-10-25 10:34 ` [bug#37908] [PATCH 0/2] Remove monolithic qt5 (and other unused package) Efraim Flashner
2019-10-25 10:43   ` Efraim Flashner
2019-10-25 21:33     ` Ludovic Courtès
2019-10-28  9:06       ` Hartmut Goebel
2019-11-01 10:49         ` Ludovic Courtès
2019-11-01 12:18           ` Hartmut Goebel
2019-11-01 14:14             ` Ludovic Courtès
2019-11-01 14:39               ` Efraim Flashner
2019-11-01 16:09                 ` bug#37908: " 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.