diff options
author | Pierre Neidhardt <mail@ambrevar.xyz> | 2021-11-16 11:53:02 +0100 |
---|---|---|
committer | Pierre Neidhardt <mail@ambrevar.xyz> | 2021-11-19 11:06:50 +0100 |
commit | 0f2a6fa49c4fa49532ed4216937b0bf9f08ab516 (patch) | |
tree | 0c63749d0dccfe344f5e059abddd58e1ee523704 | |
parent | 56db786591f14488656b099aef04539a90821993 (diff) |
gnu: Add cl-https-everywhere.
* gnu/packages/lisp-xyz.scm (cl-https-everywhere, sbcl-cl-https-everywhere):
New variables.
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 541af9b7a8..b6e33bb1c3 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -19574,3 +19574,85 @@ Vernacular builds on Overlord and is inspired by Racket.") (define-public cl-vernacular (sbcl-package->cl-source-package sbcl-vernacular)) + +(define-public sbcl-cl-https-everywhere + ;; No release. + ;; Don't forget to update the https-everywhere input. + (let ((commit "cbcc73b985a5b1c0ce0d4ec38bc982a0538d4bd8")) + (package + (name "sbcl-cl-https-everywhere") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruricolist/cl-https-everywhere/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wcvx1icwym1ncd6wl1wxzkyyndrm796caalbklvjd4a2cbl3xxi")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("global-vars" ,sbcl-global-vars) + ("parenscript" ,sbcl-parenscript) + ("cl-markdown" ,sbcl-cl-markdown) + ("cl-tld" ,sbcl-cl-tld) + ("fxml" ,sbcl-fxml) + ("overlord" ,sbcl-overlord) + ("ppcre" ,sbcl-cl-ppcre) + ("serapeum" ,sbcl-serapeum) + ("trivial-gray-streams" ,sbcl-trivial-gray-streams) + ("vernacular" ,sbcl-vernacular))) + (native-inputs + `(("fiveam" ,sbcl-fiveam) + ("https-everywhere" + ,(let ((version "2021.7.13")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/EFForg/https-everywhere") + (commit version))) + (file-name (git-file-name "https-everywhere" version)) + (sha256 + (base32 + "1k5gj29imhxf47sv3d8rxyrgr6k65scp2fm040va3nfshayslzia"))))))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'link-https-everywhere-repo + (lambda* (#:key inputs #:allow-other-keys) + (let ((https-everywhere (assoc-ref inputs "https-everywhere"))) + (symlink https-everywhere "https-everywhere")))) + (add-after 'unpack 'fix-overlord-build + ;; Upstream bugs? See + ;; https://github.com/ruricolist/cl-https-everywhere/issues/1. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (rulesets.xml (string-append out "/share/common-lisp/" (%lisp-type) + "/cl-https-everywhere/rulesets.xml"))) + (substitute* "build.lisp" + (("\\(depends-on https-everywhere-version\\)") "") + ;; Don't rebuild the rulesets just because the timestamp is epoch. + (("\\(vernacular:require-default :cl-https-everywhere/rulesets-file \"rulesets.xml\"\\)") + (format #f "(if (uiop:file-exists-p ~s) + (compile-rulesets ~s) + (vernacular:require-default :cl-https-everywhere/rulesets-file \"rulesets.xml\"))" + rulesets.xml + rulesets.xml)) + (("\\(uiop:parse-unix-namestring \"https-everywhere/src/chrome/content/rules/\\*\\.xml\")") + "\"https-everywhere/src/chrome/content/rules/*.xml\"") + (("\\(out temp :external-format :utf-8\\)") + "(out temp :external-format :utf-8 :if-exists :supersede)"))) + #t))))) + (home-page "https://github.com/ruricolist/cl-https-everywhere/") + (synopsis "Use HTTPS Everywhere rules from Lisp") + (description + "CL-HTTPS-EVERYWHERE parses HTTPS Everywhere rulesets and makes them +available for use in Lisp programs.") + (license (list license:expat + ;; For the ruleset + license:gpl2+))))) + +(define-public cl-https-everywhere + (sbcl-package->cl-source-package sbcl-cl-https-everywhere)) |