unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / Atom feed
* [bug#50582] [PATCH 0/4] Julia-documenter
@ 2021-09-14 13:08 Efraim Flashner
  2021-09-14 13:11 ` [bug#50582] [PATCH 1/4] gnu: Add julia-libsass-jll Efraim Flashner
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 13:08 UTC (permalink / raw)
  To: 50582

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

Julia-documenter is a bit hard because there's a lot of javascript
packages which it expects to download at runtime.

The julia-documenter patch adds 4 packages in one go, julia-documenter
depends on two of them, and those two depend on julia-documenter. I was
able to use an older version of julia-documenter to bootstrap the
process, but it doesn't make a nice chain to apply that one separately.

Efraim Flashner (4):
  gnu: Add julia-libsass-jll.
  gnu: Add julia-sass.
  gnu: Add julia-ansicoloredprinters.
  gnu: Add julia-documenter.

 gnu/packages/julia-jll.scm |  43 +++++++++
 gnu/packages/julia-xyz.scm | 188 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 230 insertions(+), 1 deletion(-)


base-commit: e4f8bfb3488cca0593327a983a368acceae6b352
-- 
2.33.0


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

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

* [bug#50582] [PATCH 1/4] gnu: Add julia-libsass-jll.
  2021-09-14 13:08 [bug#50582] [PATCH 0/4] Julia-documenter Efraim Flashner
@ 2021-09-14 13:11 ` Efraim Flashner
  2021-09-14 18:19   ` [bug#50490] " Efraim Flashner
  2021-09-14 13:12 ` [bug#50582] [PATCH 2/4] gnu: Add julia-sass Efraim Flashner
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 13:11 UTC (permalink / raw)
  To: 50582

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

* gnu/packages/julia-jll.scm (julia-libsass-jll): New variable.
---
 gnu/packages/julia-jll.scm | 43 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index d18971ad48..d3677d0a33 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -1064,6 +1064,49 @@ (define-public julia-libpng-jll
     (description "This package provides a wrapper for the libpng library.")
     (license license:expat)))
 
+(define-public julia-libsass-jll
+  (let ((commit "69bf10603aad0ebf1f6df088c5fd7c4a5d1eb0ca"))
+    (package
+      (name "julia-libsass-jll")
+      (version "3.5.5+0")                 ;tag not created upstream
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1fb6rf422533bsmfslvc20ag1hr50bf9xaj32rvh7nv593sbiygn"))))
+      (build-system julia-build-system)
+      (arguments
+       `(#:tests? #f                      ; no runtests.jl
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'override-binary-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (map
+                (lambda (wrapper)
+                  (substitute* wrapper
+                    (("generate_wrapper_header.*")
+                     (string-append
+                      "generate_wrapper_header(\"libsass\", \""
+                      (assoc-ref inputs "libsass") "\")\n"))))
+                ;; There's a Julia file for each platform, override them all
+                (find-files "src/wrappers/" "\\.jl$"))
+               #t)))))
+      (inputs
+       `(("libsass" ,libsass)))
+      (propagated-inputs
+       `(("julia-jllwrappers" ,julia-jllwrappers)))
+      (home-page "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+      (synopsis "Julia wrapper for libsass")
+      (description "This package provides a wrapper for libsass.  It is an
+autogenerated source package constructed using @code{BinaryBuilder.jl}.  The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+      (license license:expat))))
+
 (define-public julia-libtiff-jll
   (package
     (name "julia-libtiff-jll")
-- 
2.33.0


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

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

* [bug#50582] [PATCH 2/4] gnu: Add julia-sass.
  2021-09-14 13:08 [bug#50582] [PATCH 0/4] Julia-documenter Efraim Flashner
  2021-09-14 13:11 ` [bug#50582] [PATCH 1/4] gnu: Add julia-libsass-jll Efraim Flashner
@ 2021-09-14 13:12 ` Efraim Flashner
  2021-09-14 18:19   ` [bug#50490] " Efraim Flashner
  2021-09-14 18:19 ` [bug#50490] [PATCH 3/4] gnu: Add julia-ansicoloredprinters Efraim Flashner
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 13:12 UTC (permalink / raw)
  To: 50582

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

* gnu/packages/julia-xyz.scm (julia-sass): New variable.
---
 gnu/packages/julia-xyz.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index a80964c2b0..2f953a33b7 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -3403,6 +3403,28 @@ (define-public julia-safetestsets
 a loadable module.")
       (license license:expat))))
 
+(define-public julia-sass
+  (package
+    (name "julia-sass")
+    (version "0.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/piever/Sass.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0y7kkkj717h5cj659ssry89i5r64symr6pvhr6vv4qmaxrnjxj92"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-libsass-jll" ,julia-libsass-jll)))
+    (home-page "https://github.com/piever/Sass.jl")
+    (synopsis "Compile scss and sass file to css in Julia")
+    (description "This library provides a simple Julian API to use the
+@code{libsass} library to compile scss and sass files to css.")
+    (license license:expat)))
+
 (define-public julia-scratch
   (package
     (name "julia-scratch")
-- 
2.33.0


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

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

* [bug#50490] [PATCH 1/4] gnu: Add julia-libsass-jll.
  2021-09-14 13:11 ` [bug#50582] [PATCH 1/4] gnu: Add julia-libsass-jll Efraim Flashner
@ 2021-09-14 18:19   ` Efraim Flashner
  0 siblings, 0 replies; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 18:19 UTC (permalink / raw)
  To: 50490; +Cc: Efraim Flashner

* gnu/packages/julia-jll.scm (julia-libsass-jll): New variable.
---
 gnu/packages/julia-jll.scm | 43 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index d18971ad48..d3677d0a33 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -1064,6 +1064,49 @@ (define-public julia-libpng-jll
     (description "This package provides a wrapper for the libpng library.")
     (license license:expat)))
 
+(define-public julia-libsass-jll
+  (let ((commit "69bf10603aad0ebf1f6df088c5fd7c4a5d1eb0ca"))
+    (package
+      (name "julia-libsass-jll")
+      (version "3.5.5+0")                 ;tag not created upstream
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1fb6rf422533bsmfslvc20ag1hr50bf9xaj32rvh7nv593sbiygn"))))
+      (build-system julia-build-system)
+      (arguments
+       `(#:tests? #f                      ; no runtests.jl
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'override-binary-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (map
+                (lambda (wrapper)
+                  (substitute* wrapper
+                    (("generate_wrapper_header.*")
+                     (string-append
+                      "generate_wrapper_header(\"libsass\", \""
+                      (assoc-ref inputs "libsass") "\")\n"))))
+                ;; There's a Julia file for each platform, override them all
+                (find-files "src/wrappers/" "\\.jl$"))
+               #t)))))
+      (inputs
+       `(("libsass" ,libsass)))
+      (propagated-inputs
+       `(("julia-jllwrappers" ,julia-jllwrappers)))
+      (home-page "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+      (synopsis "Julia wrapper for libsass")
+      (description "This package provides a wrapper for libsass.  It is an
+autogenerated source package constructed using @code{BinaryBuilder.jl}.  The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+      (license license:expat))))
+
 (define-public julia-libtiff-jll
   (package
     (name "julia-libtiff-jll")
-- 
2.33.0





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

* [bug#50490] [PATCH 2/4] gnu: Add julia-sass.
  2021-09-14 13:12 ` [bug#50582] [PATCH 2/4] gnu: Add julia-sass Efraim Flashner
@ 2021-09-14 18:19   ` Efraim Flashner
  0 siblings, 0 replies; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 18:19 UTC (permalink / raw)
  To: 50490; +Cc: Efraim Flashner

* gnu/packages/julia-xyz.scm (julia-sass): New variable.
---
 gnu/packages/julia-xyz.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index a80964c2b0..2f953a33b7 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -3403,6 +3403,28 @@ (define-public julia-safetestsets
 a loadable module.")
       (license license:expat))))
 
+(define-public julia-sass
+  (package
+    (name "julia-sass")
+    (version "0.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/piever/Sass.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0y7kkkj717h5cj659ssry89i5r64symr6pvhr6vv4qmaxrnjxj92"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-libsass-jll" ,julia-libsass-jll)))
+    (home-page "https://github.com/piever/Sass.jl")
+    (synopsis "Compile scss and sass file to css in Julia")
+    (description "This library provides a simple Julian API to use the
+@code{libsass} library to compile scss and sass files to css.")
+    (license license:expat)))
+
 (define-public julia-scratch
   (package
     (name "julia-scratch")
-- 
2.33.0





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

* [bug#50490] [PATCH 3/4] gnu: Add julia-ansicoloredprinters.
  2021-09-14 13:08 [bug#50582] [PATCH 0/4] Julia-documenter Efraim Flashner
  2021-09-14 13:11 ` [bug#50582] [PATCH 1/4] gnu: Add julia-libsass-jll Efraim Flashner
  2021-09-14 13:12 ` [bug#50582] [PATCH 2/4] gnu: Add julia-sass Efraim Flashner
@ 2021-09-14 18:19 ` Efraim Flashner
  2021-09-14 18:19 ` [bug#50490] [PATCH 4/4] gnu: Add julia-documenter Efraim Flashner
       [not found] ` <handler.50582.B.163162505210361.ack@debbugs.gnu.org>
  4 siblings, 0 replies; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 18:19 UTC (permalink / raw)
  To: 50490; +Cc: Efraim Flashner

* gnu/packages/julia-xyz.scm (julia-ansicoloredprinters): New variable.
---
 gnu/packages/julia-xyz.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 2f953a33b7..309687019d 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -98,6 +98,26 @@ (define-public julia-adapt
 be GPU compatible without throwing away the wrapper.")
     (license license:expat)))
 
+(define-public julia-ansicoloredprinters
+  (package
+    (name "julia-ansicoloredprinters")
+    (version "0.0.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/ANSIColoredPrinters.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0dp5agljr0g50s5gn0pr70wrz01ggck6pb40ay3l4szhswq7mqzf"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaDocs/ANSIColoredPrinters.jl")
+    (synopsis "ANSI escape code translator")
+    (description "@code{ANSIColoredPrinters.jl} converts a text qualified by
+ANSI escape codes to another format.")
+    (license license:expat)))
+
 (define-public julia-aqua
   (package
     (name "julia-aqua")
-- 
2.33.0





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

* [bug#50490] [PATCH 4/4] gnu: Add julia-documenter.
  2021-09-14 13:08 [bug#50582] [PATCH 0/4] Julia-documenter Efraim Flashner
                   ` (2 preceding siblings ...)
  2021-09-14 18:19 ` [bug#50490] [PATCH 3/4] gnu: Add julia-ansicoloredprinters Efraim Flashner
@ 2021-09-14 18:19 ` Efraim Flashner
       [not found] ` <handler.50582.B.163162505210361.ack@debbugs.gnu.org>
  4 siblings, 0 replies; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 18:19 UTC (permalink / raw)
  To: 50490; +Cc: Efraim Flashner

* gnu/packages/julia-xyz.scm (julia-documenter,
julia-documentermarkdown, julia-documentertools): New variables.
(julia-documenter-0.22): New hidden variable.
---
 gnu/packages/julia-xyz.scm | 146 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 145 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 309687019d..e7e7680cca 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -26,7 +26,9 @@ (define-module (gnu packages julia-xyz)
   #:use-module (guix git-download)
   #:use-module (guix build-system julia)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages julia-jll))
+  #:use-module (gnu packages julia-jll)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages version-control))
 
 (define-public julia-abstractffts
   (package
@@ -990,6 +992,148 @@ (define-public julia-docstringextensions
 valuable enough at this time.")
     (license license:expat)))
 
+;; By removing all the javascript and css downloads any HTML documentation
+;; produced by this package will not be very useful.
+(define-public julia-documenter
+  (package
+    (name "julia-documenter")
+    (version "0.27.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/Documenter.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1y6rql7cxc7hfhc8rfq1mdmffp70sqzyh4vnnq93fziwrc8c8sbj"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/Deps.jl"
+               (("pip install")
+                (string-append (assoc-ref inputs "python")
+                               "/bin/pip install")))
+             #t))
+         (add-after 'unpack 'remove-javascript-downloads
+           (lambda _
+             (substitute* "src/Writers/HTMLWriter.jl"
+               (("cdnjs.cloudflare.com") "example.com"))
+             ;; Removing the javascript downloads causes these tests fail.
+             (substitute* "test/examples/tests.jl"
+               ((".*Main\\.examples_html_doc.*") "")
+               ((".*Main\\.examples_html_mathjax3_doc.*") ""))
+             #t)))))
+    (propagated-inputs
+     `(("julia-ansicoloredprinters" ,julia-ansicoloredprinters)
+       ("julia-docstringextensions" ,julia-docstringextensions)
+       ("julia-iocapture" ,julia-iocapture)
+       ("julia-json" ,julia-json)))
+    (inputs
+     `(("python" ,python-wrapper)))
+    (native-inputs
+     `(("git" ,git-minimal)
+       ("julia-documentermarkdown" ,julia-documentermarkdown)
+       ("julia-documentertools" ,julia-documentertools)))
+    (home-page "https://juliadocs.github.io/Documenter.jl")
+    (synopsis "Documentation generator for Julia")
+    (description "This package provides a documentation generator for Julia.")
+    (license license:expat)))
+
+(define-public julia-documenter-0.22
+  (package
+    (inherit julia-documenter)
+    (name "julia-documenter")
+    (version "0.22.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/Documenter.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1z8b7267y7yn5nx8sjwkmc0ph97vmv42q52jg7s89ghqb9xx3wv5"))))
+    (arguments
+     `(#:tests? #f      ; Some tests require network.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-javascript-downloads
+           (lambda _
+             ;; This isn't problematic because we only use
+             ;; this package for bootstrapping.
+             (substitute* '("assets/html/documenter.js"
+                            "assets/html/search.js"
+                            "src/Writers/HTMLWriter.jl")
+               (("cdnjs.cloudflare.com") "example.com"))
+             #t)))))
+    (propagated-inputs
+     `(("julia-docstringextensions" ,julia-docstringextensions)
+       ("julia-json" ,julia-json)))
+    (inputs `())
+    (native-inputs `())
+    (properties '((hidden? . #t)))))
+
+(define-public julia-documentermarkdown
+  (package
+    (name "julia-documentermarkdown")
+    (version "0.2.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/DocumenterMarkdown.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0sx89hi5p2f8zi2rp5qrv06m270d90pxj5d2y5cxls1spax7wqx8"))))
+    (build-system julia-build-system)
+    (inputs
+     ;; We don't want to propagate the bootstrap version.
+     ;; Cycle with Documenter.jl in later versions.
+     `(("julia-documenter" ,julia-documenter-0.22)))
+    (home-page "https://github.com/JuliaDocs/DocumenterMarkdown.jl")
+    (synopsis "Documenter's Markdown")
+    (description "This package enables the Markdown / MkDocs backend of
+@code{Documenter.jl}.")
+    (license license:expat)))
+
+(define-public julia-documentertools
+  (package
+    (name "julia-documentertools")
+    (version "0.1.13")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/DocumenterTools.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "05p57p8xlkn42m1lv9gq4hl96vp7hpj19d51p828ai1rbpcpi3a6"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Tests require network.
+    (inputs
+     ;; We don't want to propagate the bootstrap version.
+     ;; Cycle with Documenter.jl in later versions.
+     `(("julia-documenter" ,julia-documenter-0.22)))
+    (propagated-inputs
+     `(("julia-docstringextensions" ,julia-docstringextensions)
+       ("julia-gumbo" ,julia-gumbo)
+       ("julia-sass" ,julia-sass)))
+    (native-inputs
+     `(("julia-example" ,julia-example)))
+    (home-page "https://github.com/JuliaDocs/DocumenterTools.jl")
+    (synopsis "Extra tools for setting up Documenter")
+    (description "This package contains utilities for setting up documentation
+generation with @code{Documenter.jl}.")
+    (license license:expat)))
+
 (define-public julia-diffresults
   (package
     (name "julia-diffresults")
-- 
2.33.0





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

* [bug#50582] Acknowledgement ([PATCH 0/4] Julia-documenter)
       [not found] ` <handler.50582.B.163162505210361.ack@debbugs.gnu.org>
@ 2021-09-14 18:31   ` Efraim Flashner
  0 siblings, 0 replies; 8+ messages in thread
From: Efraim Flashner @ 2021-09-14 18:31 UTC (permalink / raw)
  To: 50582


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

I seem to be having a hard time sending the patches so I'm attaching
them to this email.

-- 
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 #1.2: 0001-gnu-Add-julia-libsass-jll.patch --]
[-- Type: text/plain, Size: 2945 bytes --]

From 60b1c99f84e660d692abbb480f3a1ee7f40c2a90 Mon Sep 17 00:00:00 2001
Message-Id: <60b1c99f84e660d692abbb480f3a1ee7f40c2a90.1631624546.git.efraim@flashner.co.il>
In-Reply-To: <cover.1631624546.git.efraim@flashner.co.il>
References: <cover.1631624546.git.efraim@flashner.co.il>
From: Efraim Flashner <efraim@flashner.co.il>
Date: Tue, 14 Sep 2021 15:43:00 +0300
Subject: [PATCH 1/4] gnu: Add julia-libsass-jll.

* gnu/packages/julia-jll.scm (julia-libsass-jll): New variable.
---
 gnu/packages/julia-jll.scm | 43 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index d18971ad48..d3677d0a33 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -1064,6 +1064,49 @@ (define-public julia-libpng-jll
     (description "This package provides a wrapper for the libpng library.")
     (license license:expat)))
 
+(define-public julia-libsass-jll
+  (let ((commit "69bf10603aad0ebf1f6df088c5fd7c4a5d1eb0ca"))
+    (package
+      (name "julia-libsass-jll")
+      (version "3.5.5+0")                 ;tag not created upstream
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1fb6rf422533bsmfslvc20ag1hr50bf9xaj32rvh7nv593sbiygn"))))
+      (build-system julia-build-system)
+      (arguments
+       `(#:tests? #f                      ; no runtests.jl
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'override-binary-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (map
+                (lambda (wrapper)
+                  (substitute* wrapper
+                    (("generate_wrapper_header.*")
+                     (string-append
+                      "generate_wrapper_header(\"libsass\", \""
+                      (assoc-ref inputs "libsass") "\")\n"))))
+                ;; There's a Julia file for each platform, override them all
+                (find-files "src/wrappers/" "\\.jl$"))
+               #t)))))
+      (inputs
+       `(("libsass" ,libsass)))
+      (propagated-inputs
+       `(("julia-jllwrappers" ,julia-jllwrappers)))
+      (home-page "https://github.com/JuliaBinaryWrappers/libsass_jll.jl")
+      (synopsis "Julia wrapper for libsass")
+      (description "This package provides a wrapper for libsass.  It is an
+autogenerated source package constructed using @code{BinaryBuilder.jl}.  The
+originating @code{build_tarballs.jl} script can be found on the community
+build tree Yggdrasil.")
+      (license license:expat))))
+
 (define-public julia-libtiff-jll
   (package
     (name "julia-libtiff-jll")
-- 
2.33.0


[-- Attachment #1.3: 0002-gnu-Add-julia-sass.patch --]
[-- Type: text/plain, Size: 1801 bytes --]

From eca237a402eef4f1c053a937ea24138e366e33d3 Mon Sep 17 00:00:00 2001
Message-Id: <eca237a402eef4f1c053a937ea24138e366e33d3.1631624546.git.efraim@flashner.co.il>
In-Reply-To: <cover.1631624546.git.efraim@flashner.co.il>
References: <cover.1631624546.git.efraim@flashner.co.il>
From: Efraim Flashner <efraim@flashner.co.il>
Date: Tue, 14 Sep 2021 15:43:30 +0300
Subject: [PATCH 2/4] gnu: Add julia-sass.

* gnu/packages/julia-xyz.scm (julia-sass): New variable.
---
 gnu/packages/julia-xyz.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index a80964c2b0..2f953a33b7 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -3403,6 +3403,28 @@ (define-public julia-safetestsets
 a loadable module.")
       (license license:expat))))
 
+(define-public julia-sass
+  (package
+    (name "julia-sass")
+    (version "0.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/piever/Sass.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0y7kkkj717h5cj659ssry89i5r64symr6pvhr6vv4qmaxrnjxj92"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-libsass-jll" ,julia-libsass-jll)))
+    (home-page "https://github.com/piever/Sass.jl")
+    (synopsis "Compile scss and sass file to css in Julia")
+    (description "This library provides a simple Julian API to use the
+@code{libsass} library to compile scss and sass files to css.")
+    (license license:expat)))
+
 (define-public julia-scratch
   (package
     (name "julia-scratch")
-- 
2.33.0


[-- Attachment #1.4: 0003-gnu-Add-julia-ansicoloredprinters.patch --]
[-- Type: text/plain, Size: 1798 bytes --]

From 0bfad7f4ecde531573c6c7cf957301ab49306876 Mon Sep 17 00:00:00 2001
Message-Id: <0bfad7f4ecde531573c6c7cf957301ab49306876.1631624546.git.efraim@flashner.co.il>
In-Reply-To: <cover.1631624546.git.efraim@flashner.co.il>
References: <cover.1631624546.git.efraim@flashner.co.il>
From: Efraim Flashner <efraim@flashner.co.il>
Date: Tue, 14 Sep 2021 15:48:23 +0300
Subject: [PATCH 3/4] gnu: Add julia-ansicoloredprinters.

* gnu/packages/julia-xyz.scm (julia-ansicoloredprinters): New variable.
---
 gnu/packages/julia-xyz.scm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 2f953a33b7..309687019d 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -98,6 +98,26 @@ (define-public julia-adapt
 be GPU compatible without throwing away the wrapper.")
     (license license:expat)))
 
+(define-public julia-ansicoloredprinters
+  (package
+    (name "julia-ansicoloredprinters")
+    (version "0.0.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/ANSIColoredPrinters.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0dp5agljr0g50s5gn0pr70wrz01ggck6pb40ay3l4szhswq7mqzf"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaDocs/ANSIColoredPrinters.jl")
+    (synopsis "ANSI escape code translator")
+    (description "@code{ANSIColoredPrinters.jl} converts a text qualified by
+ANSI escape codes to another format.")
+    (license license:expat)))
+
 (define-public julia-aqua
   (package
     (name "julia-aqua")
-- 
2.33.0


[-- Attachment #1.5: 0004-gnu-Add-julia-documenter.patch --]
[-- Type: text/plain, Size: 7259 bytes --]

From eeb8e3dfcaf3040232e9d53f07ace058f72510bf Mon Sep 17 00:00:00 2001
Message-Id: <eeb8e3dfcaf3040232e9d53f07ace058f72510bf.1631624546.git.efraim@flashner.co.il>
In-Reply-To: <cover.1631624546.git.efraim@flashner.co.il>
References: <cover.1631624546.git.efraim@flashner.co.il>
From: Efraim Flashner <efraim@flashner.co.il>
Date: Tue, 14 Sep 2021 15:49:51 +0300
Subject: [PATCH 4/4] gnu: Add julia-documenter.

* gnu/packages/julia-xyz.scm (julia-documenter,
julia-documentermarkdown, julia-documentertools): New variables.
(julia-documenter-0.22): New hidden variable.
---
 gnu/packages/julia-xyz.scm | 146 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 145 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 309687019d..e7e7680cca 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -26,7 +26,9 @@ (define-module (gnu packages julia-xyz)
   #:use-module (guix git-download)
   #:use-module (guix build-system julia)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages julia-jll))
+  #:use-module (gnu packages julia-jll)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages version-control))
 
 (define-public julia-abstractffts
   (package
@@ -990,6 +992,148 @@ (define-public julia-docstringextensions
 valuable enough at this time.")
     (license license:expat)))
 
+;; By removing all the javascript and css downloads any HTML documentation
+;; produced by this package will not be very useful.
+(define-public julia-documenter
+  (package
+    (name "julia-documenter")
+    (version "0.27.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/Documenter.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1y6rql7cxc7hfhc8rfq1mdmffp70sqzyh4vnnq93fziwrc8c8sbj"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/Deps.jl"
+               (("pip install")
+                (string-append (assoc-ref inputs "python")
+                               "/bin/pip install")))
+             #t))
+         (add-after 'unpack 'remove-javascript-downloads
+           (lambda _
+             (substitute* "src/Writers/HTMLWriter.jl"
+               (("cdnjs.cloudflare.com") "example.com"))
+             ;; Removing the javascript downloads causes these tests fail.
+             (substitute* "test/examples/tests.jl"
+               ((".*Main\\.examples_html_doc.*") "")
+               ((".*Main\\.examples_html_mathjax3_doc.*") ""))
+             #t)))))
+    (propagated-inputs
+     `(("julia-ansicoloredprinters" ,julia-ansicoloredprinters)
+       ("julia-docstringextensions" ,julia-docstringextensions)
+       ("julia-iocapture" ,julia-iocapture)
+       ("julia-json" ,julia-json)))
+    (inputs
+     `(("python" ,python-wrapper)))
+    (native-inputs
+     `(("git" ,git-minimal)
+       ("julia-documentermarkdown" ,julia-documentermarkdown)
+       ("julia-documentertools" ,julia-documentertools)))
+    (home-page "https://juliadocs.github.io/Documenter.jl")
+    (synopsis "Documentation generator for Julia")
+    (description "This package provides a documentation generator for Julia.")
+    (license license:expat)))
+
+(define-public julia-documenter-0.22
+  (package
+    (inherit julia-documenter)
+    (name "julia-documenter")
+    (version "0.22.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/Documenter.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1z8b7267y7yn5nx8sjwkmc0ph97vmv42q52jg7s89ghqb9xx3wv5"))))
+    (arguments
+     `(#:tests? #f      ; Some tests require network.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-javascript-downloads
+           (lambda _
+             ;; This isn't problematic because we only use
+             ;; this package for bootstrapping.
+             (substitute* '("assets/html/documenter.js"
+                            "assets/html/search.js"
+                            "src/Writers/HTMLWriter.jl")
+               (("cdnjs.cloudflare.com") "example.com"))
+             #t)))))
+    (propagated-inputs
+     `(("julia-docstringextensions" ,julia-docstringextensions)
+       ("julia-json" ,julia-json)))
+    (inputs `())
+    (native-inputs `())
+    (properties '((hidden? . #t)))))
+
+(define-public julia-documentermarkdown
+  (package
+    (name "julia-documentermarkdown")
+    (version "0.2.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/DocumenterMarkdown.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0sx89hi5p2f8zi2rp5qrv06m270d90pxj5d2y5cxls1spax7wqx8"))))
+    (build-system julia-build-system)
+    (inputs
+     ;; We don't want to propagate the bootstrap version.
+     ;; Cycle with Documenter.jl in later versions.
+     `(("julia-documenter" ,julia-documenter-0.22)))
+    (home-page "https://github.com/JuliaDocs/DocumenterMarkdown.jl")
+    (synopsis "Documenter's Markdown")
+    (description "This package enables the Markdown / MkDocs backend of
+@code{Documenter.jl}.")
+    (license license:expat)))
+
+(define-public julia-documentertools
+  (package
+    (name "julia-documentertools")
+    (version "0.1.13")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDocs/DocumenterTools.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "05p57p8xlkn42m1lv9gq4hl96vp7hpj19d51p828ai1rbpcpi3a6"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Tests require network.
+    (inputs
+     ;; We don't want to propagate the bootstrap version.
+     ;; Cycle with Documenter.jl in later versions.
+     `(("julia-documenter" ,julia-documenter-0.22)))
+    (propagated-inputs
+     `(("julia-docstringextensions" ,julia-docstringextensions)
+       ("julia-gumbo" ,julia-gumbo)
+       ("julia-sass" ,julia-sass)))
+    (native-inputs
+     `(("julia-example" ,julia-example)))
+    (home-page "https://github.com/JuliaDocs/DocumenterTools.jl")
+    (synopsis "Extra tools for setting up Documenter")
+    (description "This package contains utilities for setting up documentation
+generation with @code{Documenter.jl}.")
+    (license license:expat)))
+
 (define-public julia-diffresults
   (package
     (name "julia-diffresults")
-- 
2.33.0


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

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

end of thread, other threads:[~2021-09-14 18:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-14 13:08 [bug#50582] [PATCH 0/4] Julia-documenter Efraim Flashner
2021-09-14 13:11 ` [bug#50582] [PATCH 1/4] gnu: Add julia-libsass-jll Efraim Flashner
2021-09-14 18:19   ` [bug#50490] " Efraim Flashner
2021-09-14 13:12 ` [bug#50582] [PATCH 2/4] gnu: Add julia-sass Efraim Flashner
2021-09-14 18:19   ` [bug#50490] " Efraim Flashner
2021-09-14 18:19 ` [bug#50490] [PATCH 3/4] gnu: Add julia-ansicoloredprinters Efraim Flashner
2021-09-14 18:19 ` [bug#50490] [PATCH 4/4] gnu: Add julia-documenter Efraim Flashner
     [not found] ` <handler.50582.B.163162505210361.ack@debbugs.gnu.org>
2021-09-14 18:31   ` [bug#50582] Acknowledgement ([PATCH 0/4] Julia-documenter) Efraim Flashner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).