|
|
Subscribe / Log in / New account

New online man pages for Debian

By Jake Edge
February 1, 2017

The announcement of a modernized version of the online Debian man pages was met with well-deserved acclaim, but also with some concerns about the development tools being used. The man pages themselves are handy and are organized by Debian release; each page provides navigation links to pages for each release and in languages other than what is set in the browser. But the use of GitHub for development and bug tracking was questioned by some.

Michael Stapelberg posted the announcement of the updated service in mid-January to the debian-devel mailing list. Instead of a CGI script, the man pages are statically generated "and therefore blazingly fast". Stapelberg implemented the debiman tool that is used to create the static web pages from the man pages in Debian packages. He also worked with the Debian system administrators to deploy the service. As described on the About page, others were instrumental in getting the service up and running as well.

The CGI-based version ran aground in August 2016 due to excessive load that was at least partly caused by traffic from robots and web spiders. Default Apache installs on Debian linked to manpages.debian.org, which apparently exacerbated the problem. That led to the creation of debiman and the new site, which can withstand much more traffic because of its static nature.

The debiman program runs regularly to pick up new packages or changes to the man pages. It takes less than ten minutes for debiman to create the whole set of pages for Debian unstable and less than fifteen seconds to do an incremental update, according to the project page. It tracks multiple Debian repositories; as Stapelberg put it:

Much like the Debian package tracker, manpages.debian.org includes packages from Debian oldstable, oldstable-backports, stable, stable-backports, testing and unstable. New manpages should make their way onto manpages.debian.org within a few hours.

[crontab(5)]

The debiman page notes that the crontab(5) man page (seen at right) is a particularly good test case because it "is present in multiple Debian versions, multiple languages, multiple sections and multiple conflicting packages". The page for the "Jessie" (Debian 8.x) version has links to man pages for three different packages (cron, bcron-run, and systemd-cron), several different versions ("Wheezy", testing, unstable, and experimental), the crontab(1) man page, and the page in five different languages.

The response was generally quite positive. Various folks replied to offer congratulations and thanks. There were, of course, some bug reports and feature requests as well. Henrique de Moraes Holschuh asked that man pages from the contrib repository be added, since those are all freely licensed (unlike non-free). Stapelberg added an issue to the GitHub tracker, which was closed as fixed shortly thereafter.

Paul Wise posted a laundry list of suggestions and bugs, most of which were either already addressed or had new GitHub issues opened for them. But Debian has its own bug tracker, of course. Ian Jackson was concerned about the use of GitHub both for hosting the code and for bug tracking. He suggested creating a pseudopackage in the Debian bug tracker so that users can report bugs that way. He also would like to see a way to automatically get the source code from the debiman program:

Also, I think the exact running version of Debian services should be publicly available. And, unless this is made so easy that the service operators don't have to think about it, it will always fall behind. So I think this should be done automatically.

Would you accept a patch to make debiman copy its own source code, including git history, to its output ?

Stapelberg pointed out that each of the pages has the Git revision used to generate it in the page footer ("debiman c17f615, see github.com/Debian/debiman"). That should allow anyone to check out the exact code that was run to create the page. There are some other ancillary files that need to be checked into Git, but that was already on his to-do list. He said that while he agreed with Jackson's concerns about using a proprietary service like GitHub, he was being pragmatic about it:

I prioritize "free software needs people who work on it", and by using GitHub, contributions are made significantly easier for a large number of people.

In my personal experience, I can say that I would not be able to spend _nearly_ as much of my time on FOSS if it weren't for GitHub's convenient web interface.

Even though the commit ID is available on each page, Jackson said, he would "like to be able to check out the running version without interacting with a proprietary online service". To that end, Stapelberg created a mirror of the GitHub repository for debiman and a repository for the Debian-specific pieces on Debian's infrastructure. That way, anyone who wants the source, but doesn't want to deal with GitHub, can get it.

Creating a pseudopackage for the Debian bug tracker would allow users to report bugs in debiman using that system. Stapelberg is not entirely happy with that plan, but is willing to go along:

I personally find the Debian bug system very uncomfortable to use. I will begrudgingly accept reports made via the BTS, as I do for the Debian packages I maintain. I don't want to give up using GitHub's issue tracker, though, for my convenience and the convenience of our users.

The underlying problem is that there is no free alternative to GitHub that is as full-featured. Various posters in the thread noted that problem (including Jackson in his original response). The ease of use of GitHub, along with its widespread adoption, simply makes it far easier for new contributors to get involved. It is not at all surprising that Debian developers, in particular, would be disinclined toward GitHub, but alternatives need to arise. As Alec Leamas put it:

That said, the very idea with debian is about free software; free as in Open Source. And github is certainly not free. So, we should try hard to push for the free alternatives. If we had applied the github thinking "use what works, free or not" we shouldn't be where we are.

But, we cannot just say "our tools are as good as github". Because they are not. We need to understand it, and see what can be done. It's an uphill battle, but also uphill battles can be won.

There was a suggestion to look at using a free version of GitLab for hosting Debian projects. The fact that there is a free version may be a sticking point, however. GitLab the company has two separate versions of its code, a community edition and closed-source enterprise edition, which is the classic "open core" model. Lars Wirzenius was not particularly interested in using GitLab because of that:

I personally don't find "open core" projects to be fully free software, even if they follow current DFSG, OSI, and FSF criteria. I may be in a minority with that view, of course.

So it would seem that things have worked out amicably at this point, though it is unlikely that the GitHub question has gone away. But there are much nicer, faster man pages online and Debian users can get the source and file bugs using Debian infrastructure. The "move" to GitHub is one we are seeing recur with some frequency (e.g. for Python) and will likely see more of in the coming years. A free alternative that eventually attracts a large following is what is needed, but nothing has really reared its head at this point.



to post comments

New online man pages for Debian

Posted Feb 2, 2017 19:42 UTC (Thu) by anarcat (subscriber, #66354) [Link]

The underlying problem is that there is no free alternative to GitHub that is as full-featured[...]A free alternative that eventually attracts a large following is what is needed, but nothing has really reared its head at this point.

Really, I'm not sure about that. I use Gitlab a lot, both the commercial version on Gitlab.com and a private instance, "community edition", and I feel it's actually the opposite: there's a bunch of features from Gitlab missing in Github. CI is fully integrated and you can download artifacts straight from the gitlab interface, you can hook up your own runners in the CI - and since it's free software, it's only a matter of running the right apt-get install... Sure, there are *some* things in Github that are missing in Gitlab, but these days I feel it's just a matter of time before the free software alternative catches up...

And yes, there's less people on Gitlab. That's a significant problem. It's the same problem we have with social networking free software alternatives to Facebook and Twitter. But we can't actually blame Gitlab for this: Gitlab supports mirroring (and pushing to!) other git repositories, so it doesn't force you to centralize. Github on the other hand, centralizes everything: while you can mirror your repository on github, you can't automatically push from Github to other repositories. In other words, Github is one way in, no way out. And that's why everyone is centralizing there. That is completely against the free software and distributed spirit of git, but we can hardly blame that situation on alternatives like Gitlab: the blame resides on Github here.

Now. As one of the people that worked on replacing manpages.debian.org, I find it's a shame that the relaunch of the service is obscured by yet another Github debate. I'm a stark free software promoter and defender, but I also think we need to respect the work of our volunteers. Michael put a lot of hours, of his own time, to not only write debiman, but also put the service in production. He has been very responsive to requests, and you don't actually need to use github to get his help: I found him on IRC and he gladly fixed the redirector for dman to work, quite quickly.

I happen to know how much work this is, because before Michael wrote debiman, I wrote debmans, in Python. We worked in parallel, which is unfortunate, but Michael's implementation was so superior and complete that I was happy to let him take the lead (more details on that in this blog post). But if people prefer a manpage generator that's fully hosted on free software, they should look at debmans. It's hosted on Gitlab, but it's synchronized with Alioth (two ways) so you don't *actually* have to use Gitlab either. You just need to finish implementing i18n, conflicting manpages, and the redirector. Then make sure it runs as fast as debiman, support it (through the Debian BTS, of course) and put it in production. Then your ethical dilemma is solved.

But I guess it's easier to complain about another volunteer's ethical choices than to do the work yourself. The "Github issue" in the Debian community is just strange to me considering that the Debian logo itself was built with proprietary software and a even a proprietary font. The Debian stretch artwork was also produced with proprietary software as well, and while there was the usual noise when the choice was made, it was stated by some that, while we prefer that they are produced with free software, but accept they are not, provided they are released under a free license and they work with free software tools. That seeems to be the consensus for artwork, why is that a problem with debmans.

Debiman is free software. Heck, it's fair to assume that debiman was *produced* with free software (e.g. the golang compiler is free, although nobody actually asked what editor Michael was using to produce it, maybe no one actually cares?) That it's hosted on a proprietary service shouldn't matter. Anyways, there are plans to package it in Debian at which point Debiman will become just another upstream, for which we obviously don't (and can't) enforce free software hosting...

So I raise my hat to to Michael and Javier who put all this hard work in making manpages.d.o real again. It looks sexy and it's super fast. Congratulations and thanks for restoring the service!

New online man pages for Debian

Posted Feb 2, 2017 20:06 UTC (Thu) by flussence (guest, #85566) [Link] (8 responses)

I recently discovered man(1) itself is capable of displaying a given page in the user's default $BROWSER. Unfortunately, it looks like nobody who wrote that feature ever used it to see if it works — the HTML rendering of gcc's manpage is unreadable, and due to a race condition sometimes it deletes the file before the browser can open it.

I wouldn't mind installing something like debiman if it could be used offline similarly. I've missed having something like Konqueror back in the day (which had really nice native man/info page rendering).

New online man pages for Debian

Posted Feb 2, 2017 22:00 UTC (Thu) by lsl (subscriber, #86508) [Link]

The varying font size in the HTML output for gcc(1) looks interesting.

For nice-looking man pages I prefer the Postscript (or PDF) version combined with an unobtrusive viewer program.

New online man pages for Debian

Posted Feb 3, 2017 7:37 UTC (Fri) by mstapelberg (subscriber, #66308) [Link]

> Unfortunately, it looks like nobody who wrote that feature ever used it to see if it works

There’s actually a paper about the grohtml backend which man(1) uses: https://www.gnu.org/software/groff/grohtml.pdf

I can assure you that the authors have actually taken great care to ensure it looks good on the manpages they checked at the time — more than 10 years ago! What you’re seeing likely is the usual bitrot.

> I wouldn't mind installing something like debiman if it could be used offline similarly. I've missed having something like Konqueror back in the day (which had really nice native man/info page rendering).

debiman can easily be used offline, provided you don’t mind the bandwidth, disk space (3GB for Debian unstable, about 10GB for all suites) and CPU hours to generate/update the corpus (see https://github.com/Debian/debiman/blob/master/PERFORMANCE.md for details).

See https://github.com/Debian/debiman/#development-quick-start for instructions on how to install, run and browse the output. If you run into any issues or have any questions, a GitHub issue is the best way to get them resolved :).

If all you’re interested in is browsing locally available manpages in HTML, you can use the same renderer which manpages.debian.org uses: install the “mandoc” Debian package and use mandoc -Thtml <file>, possibly in a little script to directly open the result in your browser.

Hope that helps!

New online man pages for Debian

Posted Feb 3, 2017 17:37 UTC (Fri) by ianmcc (subscriber, #88379) [Link] (5 responses)

I used to use konqeror a lot for the info: browsing. The only usable 'info' browser I have ever encountered. I haven't used it recently though, and I've switched distros in the meantime. Unfortunately it doesn't work on kubuntu 16.10 :-( Pretty hard to google for 'info', so not obvious how to get it working again. Sooner or later I'll miss it a lot.

New online man pages for Debian

Posted Feb 3, 2017 18:57 UTC (Fri) by flussence (guest, #85566) [Link] (4 responses)

You might like "pinfo" - it uses a lynx-like keyboard setup (and palette), which makes for a much nicer experience than the default info program, imho.

New online man pages for Debian

Posted Feb 3, 2017 23:11 UTC (Fri) by mathstuf (subscriber, #69389) [Link] (3 responses)

There was a script I found a while ago called "ilm" for "info like man" which took info pages and made them act like man (that is, with a sensible pager).

New online man pages for Debian

Posted Feb 3, 2017 23:20 UTC (Fri) by jwilk (subscriber, #63328) [Link] (2 responses)

This one?
https://lists.fedoraproject.org/pipermail/devel/2013-May/...

I hoped for something more sophisticated...

New online man pages for Debian

Posted Feb 3, 2017 23:35 UTC (Fri) by mathstuf (subscriber, #69389) [Link] (1 responses)

Looks like it. I don't use it much, but it's better than info at least.

New online man pages for Debian

Posted Jan 14, 2023 20:38 UTC (Sat) by jwilk (subscriber, #63328) [Link]

After 5 years of sweet procrastination, I wrote my own info viewer with man(1)-like UI:

https://github.com/jwilk/informan

New online man pages for Debian

Posted Feb 9, 2017 21:22 UTC (Thu) by IanKelling (subscriber, #89418) [Link]

Shoutout to phabricator. It's not open core. It has a bunch of features not in gitlab. I'm sure gitlab has a few not in phabricator, and phabricator's ui is a bit more complicated.

Open Core or not Open Core, that is the question

Posted Feb 11, 2017 0:16 UTC (Sat) by seneca6 (guest, #63916) [Link]

If we want to have "mass-compatible" (and even mass-attracting!*) Free Software alternatives to large web services, I fear we have to look closer at that "Open Core" dilemma. It's a business model that has the potential of helping *some* Free Software. Needless to say, neither is it the only or always the best business model nor does the potential always get realised. It does catch some of the economics of scale, particularly from the "enterprise" world, that proprietary services get showered with but which more often than not the Free Software alternatives lack in a shameful kind of way.

When I see an "Open Core" model, I ask myself some questions:
* Is the software decent, if I completely forget about the commercial option? Would it be viable on its own? documentation, build path, code quality, features etc.
* Are there any foreseeable conflicts between features users would want for the Free version and what the company wants to keep proprietary?
* Do they eventually liberate proprietary features?
* What's the company's track record?

When the answer to all of the above is positive, I have no big problem in using it; it's still a large advantage over the proprietary web service. And myself, I call it "open core" rather if the answers are not positive. I like GitLab, and on another note, Jitsi Meet provides the best videoconferencing I've ever used - and I can install it in one "apt-get" on my server.

* For me, "mass-attracting" is important but not the most important point of Free Software *developer tools*, but how else should one interpret the often-touted importance of GitHub's audience...

New online man pages for Debian

Posted Feb 12, 2017 10:33 UTC (Sun) by catalinuxboie (guest, #112452) [Link]

Hello!

(Disclaimer: I am the author of RocketGit)

RocketGit (https://rocketgit.com) is not known yet.
But, it is the only AGPL (Affero GPL) Git hosting solution on the market, as far as I know, after Gitorios "gitexit".
In my opinion, the best license for contributors to the project.

I will work hard on RocketGit project to become the best Git hosting solution and I hope it will beat all proprietary and open-core solutions in the not so distant future.


Copyright © 2017, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds