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