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

Re: Small package or big dependencies?



+++ Joachim Breitner [Aug 03 10 17:05 ]:
> Hi,
> 
> Am Dienstag, den 03.08.2010, 16:53 +0200 schrieb Giovanni Mascellani:
> > Il 03/08/2010 14:10, Joachim Breitner ha scritto:
> > > The dependency of the -dev package on
> > > 	libghc6-filestore-data (= ${source:Version})
> > > is not really required, as the files are not needed during package
> > > build. (It does not do much harm, though).
> > 
> > I choose to add this dependency because I think that someone installing
> > libghc6-filestore-dev expects it to work correctly without adding any
> > other package. If -data isn't installed the program compiles, but then
> > doesn't execute correctly, which is to be considered a bug in my opinion.
> 
> ah, correct. I only had the Debian package build perspecitve in mind,
> but there is also the library-for-own-programs-user :-)

I still think a general and automatic solution, in which haskell-devscripts
makes a separate -data package containing all the 'data-files' specified
in the cabal file, is better than baking in blobs (as hsb2hs would do).
Baking in blobs would work okay for filestore, since it's just one
short text file, but if you had, say, a graphics library that had
lots of image data files, you might not want to bake those all into
the binary -- it would make the binary very large. So this doesn't
seem a general solution to the general problem.  It also requires
cooperation of the upstream packager, who must decide to use hsb2hs
instead of cabal data files.

But I still don't see a good solution to the versioning problem.
Let me just summarize the problem to make sure I understand it correctly.

* If gitit were to depend on an exact version of libghc6-filestore-data, then
  it would also have to depend on an exact version of libghc6-filestore-dev.
  And this would be inconvenient because you'd have to update the gitit
  package every time you updated the filestore package, no matter how
  minor the change.

* If gitit did not depend on an exact version of libghc6-filestore-data,
  then there would be a potential for breakage, because gitit would be
  using the old filestore code (that it was compiled with) together with the
  new filestore data.

Do I understand correctly?

John


Reply to: