Package: piuparts
Severity: wishlist

This is in relation to https://bugs.debian.org/850917, where we added
code to log update-alternatives calls.

Now that the calls are logged, we need to somehow make Debiman aware
of the calls. To that end, I wrote a program which will read all
available logs, parse all LOG-ALTERNATIVES lines, and generate a JSON
file with the links created by the various binary packages.

Find the source of that program at
https://github.com/Debian/debiman/blob/b4d79f84b34abfc59effcd85c78541ce8f572b4b/cmd/debiman-piuparts-distill/piuparts.go

I then ran the program like so on piuparts.debian.org:

% debiman-piuparts-distill \
    -logs_dir=/srv/piuparts.debian.org/htdocs/stretch \
    -output=debiman/testing.json.gz

% debiman-piuparts-distill \
  -logs_dir=/srv/piuparts.debian.org/htdocs/sid \
  -output=debiman/unstable.json.gz

% debiman-piuparts-distill \
  -logs_dir=/srv/piuparts.debian.org/htdocs/experimental \
  -output=debiman/experimental.json.gz

% debiman-piuparts-distill \
  -logs_dir=/srv/piuparts.debian.org/htdocs/jessie \
  -output=debiman/stable.json.gz

I then copied debiman/*.json.gz over to manziarly.debian.org,
re-generated the entire site, and slave alternative manpages now work
as expected :).

Obviously, the above was a one-off manual effort, so now we should
discuss how we’d like to set things up for a more permanent export.

Here’s a strawman proposal. We could:

1. Add a crontab entry, which triggers a shell script, which will
   update debiman-piuparts-distill, then run it on the logs
   directories.

2. Store the resulting *.json.gz files in a directory called
   /srv/piuparts.debian.org/htdocs/for-manpages.d.o

3. Download the files via HTTPS on manziarly.d.o.

Step ① requires installing the Go compiler
(https://packages.debian.org/stretch/golang-go) on piuparts.d.o. We
could avoid this if we’re all okay with just copying the
debiman-piuparts-distill binary onto piuparts.d.o, but referring to
e.g. /home/stapelberg/debiman-piuparts-distill from a cronjob within
the piuparts git repository feels somewhat unclean.

Any thoughts? Would you be okay with my strawman? If so, I’ll prepare
a patch.

Reply via email to