[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Small package or big dependencies?



Hi.

Il 02/08/2010 20:49, John MacFarlane ha scritto:
> I'm the upstream maintainer for both gitit and filestore.

Thanks for clarifying things.

> The file is a git hook. It causes the git working directory to be updated
> when someone pushes to the repository. This is required for git filestores
> to work correctly, so the gitInit function in Data.FileStore.Git installs
> it when a new git filestore is created.
> 
> It is installed by filestore as a Cabal data file and accessed using
> getDataFileName from Paths_filestore.
> 
> Now, I guess the problem is this:  gitit statically links with filestore,
> so you don't need the filestore package installed for gitit to run, but
> the post-update file *does* need to be where filestore expects it to be,
> and it won't be unless filestore has been installed.

Yep. :-)

> The solution being discussed, I take it, is to have the gitit debian package
> (not the cabal package) install the post-update file to the location filestore
> expects it in. However, there are a couple of problems with this:
> 
> - the gitit and filestore packages will both be supplying this file --
>   I don't know enough about debian to know if this will cause problems,
>   but wouldn't you get a warning that the package you're installing
>   is overwriting an existing file?

Yes, of course. But gitit would install it in another location, that of
course has the problem that filestore doesn't know it. Making gitit to
install a file in /usr/share/filestore-... is of course not possible,
because if there were two packages doing the same they would conflict
(and they both would conflict with libghc6-filestore-dev).

> - it's going to be a maintenance headache, since the maintainer of
>   the gitit package will have to make sure that the post-update file
>   is updated in gitit whenever it is changed in filestore.

This wouldn't be a big problem: the maintainers of the two packages are
the same person (me), so communication shouldn't be that difficult. Of
course, having a thing less to care of would be even better! :-)

> In addition, I think there's good reason not to address this problem
> in a way that is specific to gitit.  After all, the same problem will
> affect any package that (a) supplies an executable that should be installable
> without Haskell libraries, and (b) depends on libraries that rely on data
> files. I'm sure there are other examples than gitit. If there aren't now,
> there will be soon. So it might be worth putting some thought into how to
> proceed.

+1

> One possible solution, which would require modifying haskell-devscripts,
> would be this. If a library (say, filestore) has data files
> that it accesses via Paths_filestore, then there could be an additional debian
> package for it that just installs the data files, so we'd have:
> 
> libghc6-filestore-dev
> libghc6-filestore-prof
> libghc6-filestore-data
> 
> libghc6-filestore-dev and gitit could both depend on libghc6-filestore-data,
> which would have no further dependencies of its own.
> 
> It seems to me that this would be a clean solution to the problem.

I think so too. The only problem is that you need a whole package for a
very little file, but I think that all other solutions have
significantly bigger problems.

Any other comments from Debian people? Can you see a better solution
which address all the problems (other than making dynamic libraries
working in GHC ;-) )?

Thanks, Giovanni.
-- 
Giovanni Mascellani <mascellani@poisson.phc.unipi.it>
Pisa, Italy

Web: http://poisson.phc.unipi.it/~mascellani
Jabber: g.mascellani@jabber.org / giovanni@elabor.homelinux.org

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: