]> git.ameliathe1st.gay Git - site-web.git/commitdiff
Correction du paquet guix
authorAmélia Coutard-Sander <git@ameliathe1st.gay>
Sat, 20 Sep 2025 09:35:49 +0000 (11:35 +0200)
committerAmélia Coutard-Sander <git@ameliathe1st.gay>
Sat, 20 Sep 2025 09:35:49 +0000 (11:35 +0200)
Makefile
guix/site-web.scm

index bf61492649422b7dbe318ca21f8c4802a69f536d..0d261ce69a094d5e42218ad41277faa5bbaa3b61 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,9 @@
 .PHONY: build clean
 
-ESH=$(patsubst html/%.ml,out/%,$(shell find html -name '*.ml'))
-STATIC=$(patsubst html/%,out/%,$(shell find html -type f -and -not -name '*.ml'))
-DOCS=$(patsubst %,out/docs/%,$(shell ocaml docs/meta.ml print-doc-files))
+ESH:=$(patsubst html/%.ml,out/%,$(shell find html -name '*.ml'))
+STATIC:=$(patsubst html/%,out/%,$(shell find html -type f -and -not -name '*.ml'))
+DOCS:=$(patsubst %,out/docs/%,$(shell ocaml docs/meta.ml print-doc-files))
+OCAMLFLAGS:=$(OCAMLFLAGS)
 
 build: $(ESH) $(STATIC) $(DOCS)
 clean:
@@ -23,7 +24,7 @@ out/%: html/%
        cp "$<" "$@"
 out/%: html/%.ml
        mkdir -p "$(@D)"
-       cd html; ocaml "$*.ml" > "../$@"
+       cd html; ocaml $(OCAMLFLAGS) "$*.ml" > "../$@"
 
 # Deps
 
index aec9af5a0ab2448103486ef4f63303bd5fe52fb0..f8cfac686171480704f9c37d41c279d74ac5a760 100644 (file)
 ; not, see <https://www.gnu.org/licenses/>.
 
 (define-module (site-web)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages music)
   #:use-module (gnu packages ocaml)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages web)
+  #:use-module (guix build-system dune)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system ocaml)
   #:use-module (guix download)
   #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:export (site-web))
 
+(define-public ocaml-merlin-extend
+  (package
+    (name "ocaml-merlin-extend")
+    (version "0.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        "https://github.com/let-def/merlin-extend/releases/download/v0.6.2/merlin-extend-0.6.2.tbz")
+       (sha256
+        (base32 "0yfpyjqf0j3qmnv5490ksnhcyfhkhzvvfby8p7r64i5n61zqwma7"))))
+    (build-system dune-build-system)
+    (native-inputs (list ocaml-cppo))
+    (home-page "https://github.com/let-def/merlin-extend")
+    (synopsis "A protocol to provide custom frontend to Merlin")
+    (description
+     "This protocol allows to replace the OCaml frontend of Merlin.  It extends what
+used to be done with the `-pp flag to handle a few more cases.")
+    (license license:expat)))
+
+(define-public ocaml-reason
+  (package
+    (name "ocaml-reason")
+    (version "3.17.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        "https://github.com/reasonml/reason/releases/download/3.17.0/reason-3.17.0.tbz")
+       (sha256
+        (base32 "1sx5z269sry2xbca3d9sw7mh9ag773k02r9cgrz5n8gxx6f83j42"))))
+    (build-system dune-build-system)
+    (propagated-inputs (list ocaml-cmdliner
+                             ocaml-dune-build-info
+                             ocaml-menhir
+                             ocaml-merlin-extend
+                             ocaml-fix
+                             ocaml-cppo
+                             ocaml-ppxlib
+                             ocaml-odoc
+                             ocaml-utop))
+    (native-inputs (list ocaml-findlib git))
+    (home-page "https://reasonml.github.io/")
+    (synopsis "Reason: Syntax & Toolchain for OCaml")
+    (description
+     "Reason gives OCaml a new syntax that is remniscient of languages like
+@code{JavaScript}.  It's also the umbrella project for a set of tools for the
+OCaml & @code{JavaScript} ecosystem.")
+    (license license:expat)))
+
+(define-public ocaml-tyxml-syntax
+  (package
+    (name "ocaml-tyxml-syntax")
+    (version "4.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        "https://github.com/ocsigen/tyxml/releases/download/4.6.0/tyxml-4.6.0.tbz")
+       (sha256
+        (base32 "1p82r68lxk6wzxihzd620a6kzp27vn548j2cr970l4jfdcy6gsxz"))))
+    (build-system dune-build-system)
+    (propagated-inputs (list ocaml-ppxlib ocaml-re ocaml-uutf ocaml-odoc))
+    (arguments `(#:package "tyxml-syntax"))
+    (native-inputs (list ocaml-alcotest))
+    (home-page "https://github.com/ocsigen/tyxml")
+    (synopsis "Common layer for the JSX and PPX syntaxes for Tyxml")
+    (description #f)
+    (license #f)))
+
+(define-public ocaml-tyxml-ppx
+  (package
+    (name "ocaml-tyxml-ppx")
+    (version "4.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        "https://github.com/ocsigen/tyxml/releases/download/4.6.0/tyxml-4.6.0.tbz")
+       (sha256
+        (base32 "1p82r68lxk6wzxihzd620a6kzp27vn548j2cr970l4jfdcy6gsxz"))))
+    (build-system dune-build-system)
+    (propagated-inputs (list ocaml-tyxml ocaml-tyxml-syntax ocaml-markup
+                             ocaml-ppxlib ocaml-odoc))
+    (arguments `(#:package "tyxml-ppx" #:tests? #f))
+    (native-inputs (list ocaml-alcotest))
+    (home-page "https://github.com/ocsigen/tyxml")
+    (synopsis "PPX to write TyXML documents with the HTML syntax")
+    (description
+     "```ocaml open Tyxml let%html to_ocaml = \"<a href='ocaml.org'>OCaml!</a>\" ``` The
+@code{TyXML} PPX allow to write @code{TyXML} documents using the traditional
+HTML syntax.  It works with textual trees, virtual DOM trees, or any
+@code{TyXML} module.")
+    (license #f)))
+
+(define-public ocamlnet
+  (package
+    (name "ocamlnet")
+    (version "4.1.9-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        "https://github.com/ocaml/opam-source-archives/raw/main/ocamlnet-4.1.9.tar.gz")
+       (sha256
+        (base32 "1vlwxjxr946gdl61a1d7yk859cijq45f60dhn54ik3w4g6cx33pr"))))
+    (build-system ocaml-build-system)
+    (arguments
+       (list #:tests? #f)
+      )
+    (inputs (list which))
+    (native-inputs (list ocamlbuild))
+    (home-page "http://projects.camlcity.org/projects/ocamlnet.html")
+    (synopsis
+     "Internet protocols (HTTP, CGI, e-mail etc.) and helper data structures")
+    (description
+     "(mail messages, character sets, etc.) Ocamlnet is an enhanced system platform
+library for Ocaml.  As the name suggests, large parts of it have to do with
+network programming, but it is actually not restricted to this.  Other parts
+deal with the management of multiple worker processes, and the interaction with
+other programs running on the same machine.  You can also view Ocamlnet as an
+extension of the system interface as provided by the Unix module of the standard
+library.")
+    (license #f)))
+
+(define vcs-file?
+  (or (git-predicate (dirname (current-source-directory)))
+      (const #t)))
+
 (define site-web
   (package
     (name "site-web")
     (version "1.0-git")
-    (source (local-file ".." "site-web-checkout" #:recursive? #t))
+    (source (local-file ".." "site-web-checkout" #:recursive? #t #:select? vcs-file?))
     (build-system gnu-build-system)
-    (inputs (list fontforge jq lilypond recutils ocaml ocaml-tyxml))
+    (inputs (list fontforge jq lilypond recutils ocaml ocaml-findlib ocaml-re ocaml-tyxml ocaml-uutf ocaml-tyxml-ppx ocamlnet))
     (arguments
      (list
       #:phases #~(modify-phases %standard-phases
                    (replace 'install
                      (lambda* (#:key output #:allow-other-keys)
                        (mkdir-p (string-append #$output "/share/"))
-                       (invoke "cp" "-r" "out" (string-append #$output "/share/site-web")))))))
+                       (invoke "cp" "-r" "out" (string-append #$output "/share/site-web")))))
+      #:make-flags #~(list (string-append "OCAMLFLAGS=-I " #$ocaml-findlib "/lib/ocaml/site-lib"))))
     (synopsis "Mon site web")
     (description "Mon site web statique, implémenté en OCaml.")
     (home-page "https://www.ameliathe1st.gay")