Subject: Packaging Hugo

From: Ryan Prior <[email-masked]>
Date: Sun, 04 Oct 2020 05:16:42 +0000

Hugo is a popular static site generator. I use it for my own website and love that it has great support for authoring web content using Emacs org-mode files. I've been working on packaging it for Guix.

A particularly interesting reason to package Hugo in Guix is that, historically, Hugo has been considered difficult to build with its full set of features and dependencies. That's because, although maybe 98% of Hugo is written in pure Go, its SASS parser is written in C++ and so the full Hugo package requires both Go and C++ toolchains to build. That is widely considered too much work to set up, and so many Hugo hackers only build the part of the app that's pure Go, while the full version is referred to as "hugo-extended" and relatively neglected. Thus, bugs tend to crop up more in that part of the codebase than others.

Of course, I think it would be sweet if you could get a fully working toolchain for Hugo just by typing `git environment hugo`. That's the dream, right?

Hugo has many dependencies so this has ended up being a big project. I'm opening this issue so that I can use it to track progress and provide visibility into the process.

So far I've packaged about 60 dependencies and I expect there may be another 20 to go. My packages so far: https://github.com/ryanprior/guix-packages/blob/master/testing/hugo.scm
Big checklist file which I keep up-to-date as I work: https://raw.githubusercontent.com/ryanprior/guix-packages/master/testing/new-hugo-deps.org

Expect more messages in this thread as I start sending series of related patches!
Ryan