aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/parse_debian_packages.mdwn
blob: 266686605428bf3e555e80f7e9558c1f05595f6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
A parser, similar in functionality to [[plugins/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](http://php-apt-parser.alioth.debian.org/)
(for an example of the output, see
[my repository](http://debian.camrdale.org/)). 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.

--Cameron

> 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.

[[tag wishlist]]