Last week was pretty much completely about fixing bugs in the info page handling code. I worked for about 45 hours on my project. The most significant change was that I decided to use primary.xml too, so that I could reliably find the source RPM for corresponding to each binary RPM with info pages. Before I just tried to “guess” the SRPM file name from the RPM file name but that wasn’t working too well.
I also noticed that makeinfo –docbook wasn’t working too well for a lot of Texinfo pages, so I had to make sure that my import code doesn’t crash or do anything weird, no matter what the output of makeinfo is. Now my code checks the XML data for well-formedness before putting it into the wiki, because badly formed XML data was causing a lot of problems.
But after all this, I can finally say that the man/info importing works. That took a lot more time than I expected, mainly because of the problems I had with repository handling and info page handling. The code still needs some testing, especially the updates handling part, I’ll do that today. Also it still doesn’t have support for localized man pages, but that shouldn’t be too hard to add.
I have 5 weeks left now before Summercode Finland ends and technically I’m 2 weeks behind schedule which does sound bad, but it’s hopefully not that bad really. This is where last summer’s DocBook branch comes into the picture.
I’ve briefly talked about it with Thomas Waldmann and Alexander Schremmer and the DocBook branch can import DocBook XML so that it looks exactly like a normal wiki page to the user, even while editing, but you can still export a complete DocBook XML document of the page. I’ll base my editing implementation on these features, so that the users can edit the man/info pages normally, then I’ll use the DocBook export to get the pages as DocBook and then run them through docbook2x to produce either man or Texinfo files.
Producing diffs for upstream is still an open question, but it shouldn’t be impossible to store the original man/info files while doing the import and then do diffs with those and the corresponding docbook2x output.
So this week I’ll do some (hopefully) final touches on the import code and then I’ll start testing the DocBook branch and porting it to my branch.