Message ID | 20230308141221.7825-1-arunisaac@systemreboot.net |
---|---|
State | New |
Headers | show |
Series | [bug#62050] gnu: Add tissue. | expand |
Hi! Arun Isaac <arunisaac@systemreboot.net> skribis: > * gnu/packages/web.scm (tissue): New variable. [...] > + (source (origin > + (method url-fetch) > + (uri (string-append "https://tissue.systemreboot.net/releases/tissue-" > + version ".tar.lz")) Note that Disarchive does not support lzip (yet). Thus it’s be a bit more archival-friendly if you would instead either refer to a gzip tarball or refer to the Git repo. It’s not a blocker though. > + (list #:make-flags #~(list (string-append "prefix=" #$output)) > + #:modules `(((guix build guile-build-system) > + #:select (target-guile-effective-version)) > + ,@%gnu-build-system-modules) You can change the last line to just (guix build gnu-build-system). The rest LGTM! Next step is a system service I guess? :-) Thanks, Ludo’.
Hi Ludo, > Note that Disarchive does not support lzip (yet). > > Thus it’s be a bit more archival-friendly if you would instead either > refer to a gzip tarball or refer to the Git repo. It’s not a blocker > though. I really like lzip due to its supposedly better design. https://www.nongnu.org/lzip/safety_of_the_lzip_format.html I've been speaking to Timothy Sample about supporting lzip in disarchive. It's a non-trivial amount of work, but I'll try to get it done. >> + (list #:make-flags #~(list (string-append "prefix=" #$output)) >> + #:modules `(((guix build guile-build-system) >> + #:select (target-guile-effective-version)) >> + ,@%gnu-build-system-modules) > > You can change the last line to just (guix build gnu-build-system). Replacing %gnu-build-system-modules with (guix build gnu-build-system) does not work since we also need (guix build utils). I could replace %gnu-build-system-modules with (guix build gnu-build-system) and (guix build utils), but is there something wrong with using %gnu-build-system-modules? > Next step is a system service I guess? :-) Yep! I have a service in the guix-forge channel, but it uses a few guix-forge specific constructs. I'll try and adapt it. Regards, Arun
Howdy! Arun Isaac <arunisaac@systemreboot.net> skribis: >> Note that Disarchive does not support lzip (yet). >> >> Thus it’s be a bit more archival-friendly if you would instead either >> refer to a gzip tarball or refer to the Git repo. It’s not a blocker >> though. > > I really like lzip due to its supposedly better > design. https://www.nongnu.org/lzip/safety_of_the_lzip_format.html I've > been speaking to Timothy Sample about supporting lzip in > disarchive. It's a non-trivial amount of work, but I'll try to get it > done. Yeah, I imagine it’s not trivial. >>> + (list #:make-flags #~(list (string-append "prefix=" #$output)) >>> + #:modules `(((guix build guile-build-system) >>> + #:select (target-guile-effective-version)) >>> + ,@%gnu-build-system-modules) >> >> You can change the last line to just (guix build gnu-build-system). > > Replacing %gnu-build-system-modules with (guix build gnu-build-system) > does not work since we also need (guix build utils). I could replace > %gnu-build-system-modules with (guix build gnu-build-system) and (guix > build utils), but is there something wrong with using > %gnu-build-system-modules? ‘%gnu-build-system-modules’ is documented as the set of “modules imported and used by default”, whereas here you just want to specify modules in scope. So I would have a slight preference for an explicit list here. It’s really cosmetic though, no big deal. >> Next step is a system service I guess? :-) > > Yep! I have a service in the guix-forge channel, but it uses a few > guix-forge specific constructs. I'll try and adapt it. Neat! Ludo’.
> ‘%gnu-build-system-modules’ is documented as the set of “modules > imported and used by default”, whereas here you just want to specify > modules in scope. So I would have a slight preference for an explicit > list here. It’s really cosmetic though, no big deal. Done! Pushed, thank you! :-)
Hi Arun, On Fri, 17 Mar 2023 at 13:43, Arun Isaac <arunisaac@systemreboot.net> wrote: > I really like lzip due to its supposedly better > design. https://www.nongnu.org/lzip/safety_of_the_lzip_format.html I've > been speaking to Timothy Sample about supporting lzip in > disarchive. It's a non-trivial amount of work, but I'll try to get it > done. It would be really great! :-) Cheers, simon
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index cc206722a9..580f92f156 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2016, 2023 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> -;;; Copyright © 2016–2022 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2016–2023 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> @@ -184,6 +184,7 @@ (define-module (gnu packages web) #:use-module (gnu packages readline) #:use-module (gnu packages search) #:use-module (gnu packages serialization) + #:use-module (gnu packages skribilo) #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) @@ -7979,6 +7980,59 @@ (define-public buku-run "This package provides a rofi frontend for the buku bookmark manager.") (license license:gpl3+))) +(define-public tissue + (package + (name "tissue") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://tissue.systemreboot.net/releases/tissue-" + version ".tar.lz")) + (sha256 + (base32 + "0vsybgnzv8nnwf58pnxrs4101xczl8jvxd1wzmk4vmdyrp8a2kkm")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags #~(list (string-append "prefix=" #$output)) + #:modules `(((guix build guile-build-system) + #:select (target-guile-effective-version)) + ,@%gnu-build-system-modules) + #:phases + (with-imported-modules '((guix build guile-build-system)) + #~(modify-phases %standard-phases + (replace 'patch-source-shebangs + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "bin/tissue" + (("^exec guile") + (string-append "exec " + (search-input-file inputs "/bin/guile")))))) + (delete 'configure) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (effective-version (target-guile-effective-version))) + (wrap-program (string-append out "/bin/tissue") + `("GUILE_LOAD_PATH" prefix + (,(string-append out "/share/guile/site/" effective-version) + ,(getenv "GUILE_LOAD_PATH"))) + `("GUILE_LOAD_COMPILED_PATH" prefix + (,(string-append out "/lib/guile/" + effective-version "/site-ccache") + ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))))))) + (inputs (list bash-minimal guile-3.0 guile-filesystem guile-git guile-xapian)) + (native-inputs (list lzip)) + (propagated-inputs (list skribilo)) + (home-page "https://tissue.systemreboot.net") + (synopsis "Text based project information management system") + (description "tissue is an issue tracker and project information +management system built on plain text files and git. It is specifically +intended for small free software projects. It features a static site +generator to build a project website and a powerful search interface to search +through project issues and documentation. The search interface is built on +the Xapian search engine library, and is available both as a command-line +program and as a web server.") + (license license:gpl3+))) + (define-public anonip (package (name "anonip")