Subject: [PATCH] gnu: sbcl-aserve: Add HTML5 elements to htmlgen.
From: Foo Chuan Wei <[email-masked]>
To: [email-masked]
Date: Sat, 11 Dec 2021 08:09:01 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/lisp-xyz.scm (sbcl-aserve)[origin]: Add patches.
* gnu/patches/sbcl-aserve-rfe12668-add-HTML-5-elements-to-htmlgen.patch:
  New file.
* gnu/patches/sbcl-aserve-fix-bugs-in-rfe12668-implementation.patch:
  New file.
---
sbcl-aserve's upstream, Portable AllegroServe, only supports HTML 4
elements. This patch adds support for HTML 5 elements by using patches
obtained from Portable AllegroServe's upstream —
https://github.com/franzinc/aserve/

 gnu/packages/lisp-xyz.scm                     | 14 ++++-
 ...-fix-bugs-in-rfe12668-implementation.patch | 43 +++++++++++++
 ...12668-add-HTML-5-elements-to-htmlgen.patch | 63 +++++++++++++++++++
 3 files changed, 117 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/sbcl-aserve-fix-bugs-in-rfe12668-implementation.patch
 create mode 100644 gnu/packages/patches/sbcl-aserve-rfe12668-add-HTML-5-elements-to-htmlgen.patch

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 635f8e48cb..273e65dacd 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -17905,10 +17905,11 @@ functions allow Lisp programs to explore the web.")
 
 (define-public sbcl-aserve
   ;; There does not seem to be proper releases.
-  (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5"))
+  (let ((commit "cac1d6920998ddcbee8310a873414732e707d8e5")
+        (revision "2"))
     (package
       (name "sbcl-aserve")
-      (version (git-version "1.2.50" "1" commit))
+      (version (git-version "1.2.50" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -17919,7 +17920,14 @@ functions allow Lisp programs to explore the web.")
                (commit commit)))
          (file-name (git-file-name "aserve" version))
          (sha256
-          (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))))
+          (base32 "0ak6mqp84sjr0a7h5svr16vra4bf4fcx6wpir0n88dc1vjwy5xqa"))
+         (patches (search-patches
+                   ;; Add HTML5 elements to htmlgen.
+                   ;; Adapted from https://github.com/franzinc/aserve/ commits:
+                   ;; * e47bd763: "rfe12668: add HTML 5 elements to htmlgen"
+                   ;; * 7371ce59: "fix bugs in rfe12668 implementation"
+                   "sbcl-aserve-rfe12668-add-HTML-5-elements-to-htmlgen.patch"
+                   "sbcl-aserve-fix-bugs-in-rfe12668-implementation.patch"))))
       (build-system asdf-build-system/sbcl)
       (arguments
        `(#:phases
diff --git a/gnu/packages/patches/sbcl-aserve-fix-bugs-in-rfe12668-implementation.patch b/gnu/packages/patches/sbcl-aserve-fix-bugs-in-rfe12668-implementation.patch
new file mode 100644
index 0000000000..c7a8e05aae
--- /dev/null
+++ b/gnu/packages/patches/sbcl-aserve-fix-bugs-in-rfe12668-implementation.patch
@@ -0,0 +1,43 @@
+From 8110ebd55d5bf659cd40dab2df59d80dafdb367a Mon Sep 17 00:00:00 2001
+From: Kevin Layer <[email-masked]>
+Date: Mon, 10 Feb 2014 11:10:42 -0800
+Subject: [PATCH 2/2] fix bugs in rfe12668 implementation
+
+The previous commit added :embed and :keygen but they were already
+there.  Resolve this issue.
+
+Change-Id: Ieb962a12880394e67d973835945005446833fab7
+---
+ aserve/htmlgen/htmlgen.cl | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/aserve/htmlgen/htmlgen.cl b/aserve/htmlgen/htmlgen.cl
+index 0c0d6e8..f77d6de 100644
+--- a/aserve/htmlgen/htmlgen.cl
++++ b/aserve/htmlgen/htmlgen.cl
+@@ -658,7 +658,6 @@
+ (def-std-html :dt        t nil)
+ 
+ (def-std-html :em        t nil)
+-(def-std-html :embed     t nil)
+ 
+ (def-std-html :fieldset        t nil)
+ (def-std-html :font        t nil)
+@@ -685,7 +684,6 @@
+ (def-std-html :isindex    nil nil)
+ 
+ (def-std-html :kbd  	t nil)
+-(def-std-html :keygen  	nil nil)
+ 
+ (def-std-html :label  	t nil)
+ (def-std-html :layer  	t nil)
+@@ -782,5 +780,5 @@
+ (def-std-html :menuitem	 	t nil)
+ (def-std-html :details	 	t nil)
+ (def-std-html :datalist	 	t nil)
+-(def-std-html :keygen	 	t nil)
++(def-std-html :keygen	 	nil nil)
+ (def-std-html :output	 	t nil)
+-- 
+2.25.1
+
diff --git a/gnu/packages/patches/sbcl-aserve-rfe12668-add-HTML-5-elements-to-htmlgen.patch b/gnu/packages/patches/sbcl-aserve-rfe12668-add-HTML-5-elements-to-htmlgen.patch
new file mode 100644
index 0000000000..93962e10ec
--- /dev/null
+++ b/gnu/packages/patches/sbcl-aserve-rfe12668-add-HTML-5-elements-to-htmlgen.patch
@@ -0,0 +1,63 @@
+From 940679fb75073a59186099e3dd7fb381e727db6b Mon Sep 17 00:00:00 2001
+From: Kevin Layer <[email-masked]>
+Date: Thu, 31 Oct 2013 04:27:29 -0700
+Subject: [PATCH 1/2] rfe12668: add HTML 5 elements to htmlgen
+
+Add the new elements listed here:
+  http://www.w3.org/TR/html5-diff/#new-elements
+
+Change-Id: I7f64363751130644caf90ecdd65c13175d77ae97
+---
+ aserve/htmlgen/htmlgen.cl | 38 ++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 36 insertions(+), 2 deletions(-)
+
+diff --git a/aserve/htmlgen/htmlgen.cl b/aserve/htmlgen/htmlgen.cl
+index 59248ef..0c0d6e8 100644
+--- a/aserve/htmlgen/htmlgen.cl
++++ b/aserve/htmlgen/htmlgen.cl
+@@ -747,6 +747,40 @@
+ 
+ (def-std-html :var 	t nil)
+ 
+-(def-std-html :wbr  	nil nil)
+-
+ (def-std-html :xmp 	t nil)
++
++;; html 5
++
++(def-std-html :section		t nil)
++(def-std-html :article		t nil)
++(def-std-html :main		t nil)
++(def-std-html :aside		t nil)
++(def-std-html :hgroup		t nil)
++(def-std-html :header		t nil)
++(def-std-html :footer		t nil)
++(def-std-html :nav		t nil)
++(def-std-html :figure		t nil)
++(def-std-html :figcaption 	t nil)
++
++(def-std-html :video	 	t nil)
++(def-std-html :audio	 	t nil)
++(def-std-html :source	 	t nil)
++(def-std-html :track	 	t nil)
++(def-std-html :embed	 	t nil)
++(def-std-html :mark	 	t nil)
++(def-std-html :progress	 	t nil)
++(def-std-html :meter	 	t nil)
++(def-std-html :time	 	t nil)
++(def-std-html :data	 	t nil)
++(def-std-html :dialog	 	t nil)
++(def-std-html :ruby	 	t nil)
++(def-std-html :rt	 	t nil)
++(def-std-html :rp	 	t nil)
++(def-std-html :bdi	 	t nil)
++(def-std-html :wbr		nil nil)
++(def-std-html :canvas	 	t nil)
++(def-std-html :menuitem	 	t nil)
++(def-std-html :details	 	t nil)
++(def-std-html :datalist	 	t nil)
++(def-std-html :keygen	 	t nil)
++(def-std-html :output	 	t nil)
+-- 
+2.25.1
+

base-commit: cfdf66e6bfc463b041965b64fc95174c90f046e0
-- 
2.25.1