A parser, similar in functionality to inline that would find and parse debian packages from a repository and include links to them. Functionality would be similar to the PHP Apt-file parser (for an example of the output, see my repository). This would create a helpful index page to a small repository, listing all the packages, and possibly their descriptions as well, with links to download them or their sources.


It's a good idea, I think there are probably several ways to approach it that would all yeild good, though differing results. Maybe with something like this I'd actually get around to posting ikiwiki debs to the repo. ;-) --Joey

I think this is easily possible (and I might be able to work on it myself, though Perl is not my strong suit). The trickiest part is probably figuring out how and when to parse the packages. The packages could be included in the ikiwiki RCS repository, which might be difficult when the Packages/Release files need to be generated (especially if it's via an external tool like reprepro/debarchiver/etc.). Or, the packages could be kept separate, with only a link given to the plugin, though changes would then not be picked up until the ikiwiki is recompiled.

This could be done by adding a hook to reprepro/whatever that calls ikiwiki --refresh at the end of updating a repo. (I don't remember if reprepro has such hooks; mini-dinstall certianly does.)

reprepro doesn't seem to have one, :( though of course creating a script to do both would work (but it's not optimal). --Cameron

reprepro has two kind of hooks that could be used. One is called whenever a Packages file is changed (normaly used to generate Packages.diff files, but it does not need to add new files). The other (though only available since 2.1) is called whenever a package is added or removed (there is an example in the docs for extracting changelogs using this).

For ikiwiki to notice that the Packages file outside its tree has changed and things need to be updated, a needsbuild hook could be used. This seems very doable.

Perhaps a better (though infinitely more complicated) solution would be to include the reprepro/debarchiver functionality in ikiwiki. Packages could be posted, like blog entries, and tagged with the target distribution (sid/lenny/etc.). Then compiling ikiwiki would generate the needed Packages/Release files automatically.

I like the idea of using packages as "source" and spitting out apt repos, though I'd not want to use it for a big repo, and I'd ideally want to keep the packages in a different svn repo, pulled in via svn:externals.

I like it too, more than the easier options, why are the most interesting solutions always the most complicated? ;)

Parsing the files sounds like it might require some outside dependencies, and given the complexity maybe this should be a separate package from ikiwiki. Is it possible to package plugins separately? --Cameron

Sure, a plugin is just a perl library so can easily be packaged separately.