Package static content like website?

The question came up if static content like websites should be packaged.

I created a package for anarchism which is basically a website scraped as HTML and also converted to Markdown. Debian and AUR has it packaged and it’s quiet popular, but more as a meme. Some people wear t-shirts with “apt install anarchism” and the funny part is that the package actually exists.

https://github.com/NixOS/nixpkgs/pull/77009

I have always found it strange that Debian packages this. Can’t someone just browse the website?

But the same question can apply to documentation like the NixOS manual or man pages.

I actually always use the online NixOS manual instead of the locally installed.

What do you think?

Do we need a policy if such resources should be packaged? Would it bother you if someone packaged such resources?

I guess these packages can be useful when you are on a plane, train, etc. and want to have some reading material. There are some other nice resources that are not bundled with a software package (e.g. Frank Brokken’s C++ Annotations). If this PR is accepted, I’ll probably submit a PR for that, since it is so useful as a reference :wink: .

First of all thank you @davidak for making me discover this package, very interesting stuff! I’ve been reading it bit by bit for the last few weeks. I’ve added a bookmark to it in my browser, but since the location of the pages changes every time the package is upgraded, it breaks almost every time I run nixos-rebuild switch.

Is there a way to prevent this from happening, apart from pinning the package? Like having a symlink just like it’s done for binaries?

If you’re on NixOS you can do something like (untested)

{
  environment.etc."anarchism".source = pkgs.anarchism.outPath;
}

which links the package contents to /etc/anarchism so you can access it at

/etc/anarchism/share/doc/anarchism/html/index.html

Alternatively you can install it into your user environment and then access the content at

~/.nix-profile/share/doc/anarchism/html/index.html
1 Like

Thanks! I used the user environment solution and it worked fine.