about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner2021-10-04 10:00:10 +0300
committerEfraim Flashner2021-10-04 10:00:10 +0300
commita57961ff6192bf33f2c9c1fae995f3b2ef620c87 (patch)
tree2f2adbb6e0bae89df5881427216ee037b7ad539f
parentdd13ae09c669a8af2360eede90e2b9cc453fe82d (diff)
downloadguix-bioinformatics-a57961ff6192bf33f2c9c1fae995f3b2ef620c87.tar.gz
gn: kaleido code clean-up
-rw-r--r--gn/packages/kaleido.scm184
1 files changed, 24 insertions, 160 deletions
diff --git a/gn/packages/kaleido.scm b/gn/packages/kaleido.scm
index f5df225..c8719e3 100644
--- a/gn/packages/kaleido.scm
+++ b/gn/packages/kaleido.scm
@@ -374,28 +374,6 @@
                   "openh264" "opus" "snappy" "zlib")
           #t))))
 
-(define (make-lld-wrapper lld)
-  (define lld-as-ld
-    (computed-file "lld-ld"
-                   #~(begin
-                       (mkdir #$output)
-                       (mkdir (string-append #$output "/bin"))
-                       (symlink #$(file-append lld "/bin/lld")
-                                (string-append #$output "/bin/ld")))))
-
-  ;; Create a wrapper for LLD that inserts appropriate -rpath entries.
-  (define lld-wrapper
-    (make-ld-wrapper "lld-wrapper"
-                     #:binutils lld-as-ld))
-
-  ;; Clang looks for an 'ld.lld' executable, so we need to symlink it back.
-  (computed-file "lld-wrapped"
-                 #~(begin
-                     (mkdir #$output)
-                     (mkdir (string-append #$output "/bin"))
-                     (symlink #$(file-append lld-wrapper "/bin/ld")
-                              (string-append #$output "/bin/lld"))
-                     (symlink "lld" (string-append #$output "/bin/ld.lld")))))
 
 ;; Now lets start the package definition.
 (define-public kaleido
@@ -405,9 +383,6 @@
     (name "kaleido")
     (version "0.2.1")
     (source (origin
-    ;          (inherit (package-source ungoogled-chromium))
-    ;          (modules '())
-    ;          (snippet #f)))
               (method url-fetch)
               (uri (string-append "https://commondatastorage.googleapis.com"
                                   "/chromium-browser-official/chromium-"
@@ -426,45 +401,31 @@
           ,@modules))
        ((#:tests? _ #f) #f)             ; TODO: enable after successfully building.
        ;; As inherited from ungoogled-chromium.
-       ;((#:validate-runpath? _ #f) #f)
+       ((#:validate-runpath? _ #f) #f)
        ((#:configure-flags flags)
-        ;`(list
-        ;   "import(\"//build/args/headless.gn\")"
-        ;   "enable_nacl=false"
-        ;   "is_component_build=false"
-        ;   "symbol_level=0"
-        ;   "blink_symbol_level=0"
-        ;   "is_debug=false"
-        ;   "use_sysroot=false"
-        ;   "safe_browsing_mode=0"
-        ;   )
         `(append
            ;; First we modify the inherited configure-flags.
            (fold delete ,flags
-                 '(
-                   "use_pulseaudio=true"
+                 '("use_pulseaudio=true"
                    "link_pulseaudio=true"
                    "use_vaapi=true"
                    "rtc_use_pipewire=true"
-                   "rtc_link_pipewire=true"
-                   ))
-        ;   ,flags
-           (list
-             "import(\"//build/args/headless.gn\")"
-             ;"enable_nacl=false"           ; duplicate
-             "is_component_build=false"
-             "symbol_level=0"
-             "blink_symbol_level=0"
-             ;"is_debug=false"              ; duplicate
-             )
-           )
-        )
+                   "rtc_link_pipewire=true"))
+           (list "import(\"//build/args/headless.gn\")"
+                 "is_component_build=false"
+                 "symbol_level=0"
+                 "blink_symbol_level=0"
+                 ;; These two for locales.
+                 ;; Note to self: not correct
+                 ;"import(\"//build/config/locales.gni\")"
+                 ;"is_android=0"
+                 )))
        ((#:phases phases)
         `(modify-phases ,phases
            (add-after 'unpack 'unpack-kaleido-source
              (lambda* (#:key inputs #:allow-other-keys)
                (copy-recursively (assoc-ref inputs "kaleido-source") ".")
-               ))
+               #t))
            (add-before 'configure 'prepare-kaleido-build-environment
              (lambda _
                (with-output-to-file "repos/kaleido/version"
@@ -490,20 +451,7 @@ executable(\"kaleido\") {
 
                (mkdir-p "headless/app")
                (copy-recursively "repos/kaleido/cc" "headless/app")
-               ;(with-output-to-file "out/Release/args.gn"
-               ;(lambda _
-               ;  (format #t
-               ;          "import(\"//build/args/headless.gn\")~@
-               ;          enable_nacl=false~@
-               ;          is_component_build=false~@
-               ;          ~@
-               ;          symbol_level=0~@
-               ;          blink_symbol_level=0~@
-               ;          is_debug=false~@
-               ;          ~@
-               ;          target_cpu=\"~a\"~%"
-               ;          "x64")))   ; x86_64 -> x64, aarch64 -> arm64, armhf -> arm
-               ))
+               #t))
            (replace 'configure
              (lambda* (#:key configure-flags #:allow-other-keys)
                (let ((args (string-join configure-flags " ")))
@@ -551,10 +499,7 @@ executable(\"kaleido\") {
 
                ;; This part isn't strictly necessary.
                (with-directory-excursion "repos/kaleido/py"
-                 ;(invoke "python3" "setup.py" "package")    ; builds wheels
-                 (invoke "python3" "setup.py" "package_source")
-                 )
-               ))
+                 (invoke "python3" "setup.py" "package_source"))))
            ;; Move this after 'install?
            (replace 'check
              (lambda* (#:key tests? #:allow-other-keys)
@@ -570,40 +515,8 @@ executable(\"kaleido\") {
                       (exe            (string-append bin "/kaleido"))
                       (lib            (string-append out "/lib"))
                       (python3        (string-append (assoc-ref inputs "python3") "/bin/python3"))
-                      ;(man            (string-append out "/share/man/man1"))
-                      ;(applications   (string-append out "/share/applications"))
-                      (libs           '(
-                                        "headless_lib.pak"
-                                        ;"chrome_100_percent.pak"
-                                        ;"chrome_200_percent.pak"
-                                        ;"resources.pak"
-                                        ;"v8_context_snapshot.bin"
-
-                                        ;; Chromium ships its own libGL
-                                        ;; implementation called ANGLE.
-                                        ;"libEGL.so" "libGLESv2.so"
-                                        ))
                       (locales        (string-append lib "/locales"))
-                      (resources      (string-append lib "/resources"))
-                      ;(preferences    (assoc-ref inputs "master-preferences"))
-                      ;(gtk+           (assoc-ref inputs "gtk+"))
-                      ;(xdg-utils      (assoc-ref inputs "xdg-utils"))
-                      ;(sh             (which "sh"))
-                      )
-
-                 ;(substitute* '("chrome/app/resources/manpage.1.in"
-                 ;               "chrome/installer/linux/common/desktop.template")
-                 ;  (("@@MENUNAME@@") "Chromium")
-                 ;  (("@@PACKAGE@@") "chromium")
-                 ;  (("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
-
-                 ;(mkdir-p man)
-                 ;(copy-file "chrome/app/resources/manpage.1.in"
-                 ;           (string-append man "/chromium.1"))
-
-                 ;(mkdir-p applications)
-                 ;(copy-file "chrome/installer/linux/common/desktop.template"
-                 ;           (string-append applications "/chromium.desktop"))
+                      (resources      (string-append lib "/resources")))
 
                  (with-directory-excursion "repos/kaleido/py"
                    (invoke python3 "setup.py" "install"
@@ -611,13 +524,8 @@ executable(\"kaleido\") {
                            "--single-version-externally-managed"
                            "--root=/"))
 
-                 ;(mkdir-p lib)
-                 ;(copy-file preferences (string-append lib "/master_preferences"))
-
                  (with-directory-excursion "out/Release"
-                   ;(for-each (cut install-file <> lib) libs)
                    (install-file "headless_lib.pak" lib)
-                   ;(copy-file "kaleido" (string-append lib "/kaleido"))
                    (install-file "kaleido" lib)
 
                    ;; locales need to be built!
@@ -627,37 +535,16 @@ executable(\"kaleido\") {
                    (mkdir-p bin)
                    ;; Does this need to be replaced with a wrapper script?
                    (symlink "../lib/kaleido" exe)
-                   ;(install-file "chromedriver" bin)
 
                    (for-each (lambda (so)
                                (install-file so (string-append lib "/swiftshader")))
-                             (find-files "swiftshader" "\\.so$"))
-
-                   ;(wrap-program exe
-                   ;  ;; Avoid file manager crash.  See <https://bugs.gnu.org/26593>.
-                   ;  `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
-                   ;  `("PATH" ":" prefix (,(string-append xdg-utils "/bin"))))
-                   )
-
-                 ;(with-directory-excursion "chrome/app/theme/chromium"
-                 ;  (for-each
-                 ;   (lambda (size)
-                 ;     (let ((icons (string-append out "/share/icons/hicolor/"
-                 ;                                 size "x" size "/apps")))
-                 ;       (mkdir-p icons)
-                 ;       (copy-file (string-append "product_logo_" size ".png")
-                 ;                  (string-append icons "/chromium.png"))))
-                 ;   '("24" "48" "64" "128" "256")))
-                 )))
-           ))
-        ))
+                             (find-files "swiftshader" "\\.so$")))
+                 #t)))))))
     (native-inputs
      `(
        ;("gn" ,gn)
        ("poppler" ,poppler)
        ("python3" ,python)
-       ("python-pandas" ,python-pandas)
-       ("python-plotly" ,python-plotly)
        ("python-pytest" ,python-pytest)
        ("kaleido-source"
         ,(origin
@@ -673,37 +560,14 @@ executable(\"kaleido\") {
        ;,@(inferior-package-native-inputs inferior-ungoogled-chromium)
        ;,@(package-native-inputs inferior-ungoogled-chromium)
        ,@(package-native-inputs ungoogled-chromium)
-
-       ;("bison" ,(first (lookup-inferior-packages inferior "bison")))
-       ;("clang" ,(first (lookup-inferior-packages inferior "clang" "11")))
-       ;("gn" ,(first (lookup-inferior-packages inferior "gn")))
-       ;("gperf" ,(first (lookup-inferior-packages inferior "gperf")))
-       ;("ld-wrapper" ,(make-lld-wrapper (first (lookup-inferior-packages inferior "lld"))))
-       ;;("ld-wrapper" ,(make-lld-wrapper lld))
-       ;("ninja" ,(first (lookup-inferior-packages inferior "ninja")))
-       ;("node" ,(first (lookup-inferior-packages inferior "node")))
-       ;("pkg-config" ,(specification->package "pkg-config"))
-       ;;("pkg-config" ,(first (lookup-inferior-packages inferior "pkg-config")))
-       ;("which" ,(first (lookup-inferior-packages inferior "which")))
-
-       ;; This file contains defaults for new user profiles.
-       ;("master-preferences" ,(local-file "../../master-preferences.json"))
-       ;,(origin
-       ;   (method url-fetch)
-       ;   (uri (string-append "https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/aux-files/chromium/master-preferences.json?id=a58f9966a50b6cb558fa57b369a5b16de02af255")
-       ;        (file-name "master-preferences.json")
-       ;        (sha256 (base32 "1f12zq17865alydizg3457rvn350kkxa89zsk94bbbg49dmb8ab6"))))
-       ;("python2-beautifulsoup4" ,(first (lookup-inferior-packages inferior "python2-beautifulsoup4")))
-       ;("python2-html5lib" ,(first (lookup-inferior-packages inferior "python2-html5lib")))
-       ;("python" ,(first (lookup-inferior-packages inferior "python2")))
-       ;("wayland-scanner" ,(first (lookup-inferior-packages inferior "wayland")))
        ))
-    (inputs
+    (propagated-inputs
      `(
-       ;("nspr" ,(first (lookup-inferior-packages inferior "nspr")))
-       ;,@(inferior-package-inputs inferior-ungoogled-chromium)
-       ;,@(package-inputs inferior-ungoogled-chromium)
-       ,@(package-inputs ungoogled-chromium)
+       ("python-pandas" ,python-pandas)
+       ("python-plotly" ,python-plotly)
+       ;,@(inferior-package-native-inputs inferior-ungoogled-chromium)
+       ;,@(package-native-inputs inferior-ungoogled-chromium)
+       ,@(package-propagated-inputs ungoogled-chromium)
        ))
     (home-page "https://github.com/plotly/Kaleido")
     (synopsis "Static image export for web-based visualization libraries")