Newbie question about additional documentation

Alexey Shuvaev shuvaev at physik.uni-wuerzburg.de
Mon Nov 23 20:55:58 UTC 2009


On Mon, Nov 23, 2009 at 09:23:18PM +0100, dave wrote:
> On Mon, 2009-11-23 at 12:21 +0000, Matthew Seaman wrote:
> > David Fries wrote:
> > > Hi everybody
> > > 
> > > I started working on my first port (a Haskell cabal package) over the
> > > last weekend. I read the porter's handbook and then began by looking
> > > at similar ports that already existed in the ports collection (e.g.
> > > archivers/hs-zlib) to get a basic idea of what the port should look
> > > like. I noticed that the only documentation listed in pkg-plist of
> > > these ports is the LICENSE file. So pkg-plist looks something like
> > > this:
> > > 
> > > ... other files..
> > > %%PORTDOCS%%%%DOCSDIR%%/LICENSE
> > > %%PORTDOCS%%@dirrm %%DOCSDIR%%
> > > ... @exec/@unexec...
> > > 
> > > However, when you install the port (assuming NOPORTDOCS is not set),
> > > a HTML documentation will also be generated by the Haskell compiler
> > > and put into %%PORTDOCS%%%%DOCSDIR%%/html/*. So my question is, is it
> > > ok to omit these html files in the pkg-plist? I thought, you should
> > > list those too...
> > 
> > It's not OK to install files without any record in the pkgdb.  If you do
> > things like that, firstly any committer working on the port should bounce
> > it back to you as not fulfilling the required standards, and secondly, if
> > the port does somehow get committed you'll be getting irate e-mails from
> > various QA systems that spend all their time looking for such problems.
> > 
> > Now, explicitly listing all of the files that get installed in pkg-plist
> > in the port directory is one way of dealing with this.  There are alternatives
> > though, which might suit your port better.  Check out the PLIST_FILES and
> > PORTDOCS variables in /usr/ports/Mk/bsd.port.mk -- in short these are:
> > 
> >    PLIST_FILES a way of listing a short pkg_plist entirely from within
> >                the port Makefile, which helps avoid using up inodes for
> >                tiny little files
> >  
> > 
> >    PORTDOCS a way of automatically adding a whole directory tree of
> >             documentation to the pkg pretty much automatically. This is
> >             particularly useful if your docco is generated automatically
> >             and you can't always know exactly what files there will be
> >             beforehand.
> > 
> > 	Cheers,
> > 
> > 	Matthew
> 
> Thanks for the hints. 
> 
> In section 5.14.4 of Porter's Handbook it says:
> [snip]
> 
> After looking at the Makefile again, I noticed that the maintainer of
> hs-zlib defined PORTDOCS= * . If I understand correctly, that means you
> can put as many files in DOCSDIR as you want. The asterisk will match
> everything and you always end up with everything registered in the final
> packing list. Right?
> 
> If so, the line %%PORTDOCS%%%%DOCSDIR%%/LICENSE in pkg-plist would be
> redundant, wouldn't it?
> 
Seems to be so...

There is one bad thing about PORTDOCS method: you don't have static
list of files the port is going to install. Some commiters here don't like
it. This is of course up to you but if it is not hard it is better to
manually list all of the installed files in static pkg-plist.

Just 0.02$,
Alexey.


More information about the freebsd-ports mailing list