Pandoc is a lovely utility that converts between various document formats. Markdown to pdf, docx to latex, so on – it was quite useful to me in undergrad and I still use it to generate this website (markdown to html!).
And yet, if you let this creature into your system, you’ll be opening the door to a pandemonium of haskell packages!
Packages (219) haskell-aeson-2.1.2.1-179 haskell-aeson-pretty-0.8.10-139 haskell-ansi-terminal-1.0.2-148
...
haskell-zlib-0.7.0.0-63 hslua-cli-1.4.3-77 libyaml-0.2.5-3 lua-lpeg-1.1.0-4 pandoc-cli-3.4-15
Total Installed Size: 376.12 MiB
219 new packages! Okay, disk space is cheap, no big deal. Perhaps you forget about it in some time, but no! This Legion of haskell packages won’t simply be cast into a pig off a cliff and be forgotten since it will show up on every other system upgrade.
That said, complaining is easy and being a package maintainer on an open source project is not! Felix has given some insight on the situation here. Much love to distro maintainers sacrificing their time and cpu cycles building packages for the ungrateful users that we are.
The alternative of the AUR package which essentially just downloads the pre-built binary from pandoc’s github releases page is easy enough:
Packages (2) pandoc-bin-3.8.2-1 pandoc-bin-debug-3.8.2-1
Total Installed Size: 153.95 MiB
Not only does it take less space to install, my upgrades are now using less bandwidth and are triggered less frequently. Faster too – here is how long it took to clean-build the website with the dynamically linked package:
time make -j32
real 0m7.454s
user 1m9.923s
sys 0m6.874s
And the statically linked package:
time make -j32
real 0m1.384s
user 0m2.912s
sys 0m2.525s
95% performance improvement just from statically linking!
Assuming my measurements above are representative, the resulting power waste from the arch package repository serving hundreds of extra haskell packages to 16% of the arch installations, and the users using 24x the CPU to build their documents is probably non trivial but ultimately such is life.