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

Re: dh-ocaml-like checksum-based dependency adoption for Haskell?



Hi Zack,

Am Dienstag, den 15.06.2010, 13:31 +0200 schrieb Stefano Zacchiroli:
>   on the OCaml half of Debian, we are kind of aware that you've
> implemented a solution similar to ours [1] for enforcing sound
> dependencies among OCaml libraries and programs.
> 
> That is just great, and we're happy that the solution/architecture we
> developed has been helpful to you too, even if only as an inspiration.
> 
> However, most of us are a bit puzzled about our poor knowledge of your
> solution. I don't remember any contact on the debian-ocaml-maint@l.d.o
> list, and it has only been rumored :-) on our side that some of you
> contacted us via our IRC channel, but nothing more.
> 
> Do you have any pointers to some document/tool/... that describes what
> you did and maybe the relationship with what we did?
> 
> We are just eager to know more about that, as we're excited at the idea
> that our architecture was more general than we initially expected :)

since the academical harvest has already been brought in I did not write
a paper :-)

The idea of hash-based dependencies has been floating around on the
Haskell list even before we know of dh-ocaml. At that time, rumors were
that such a large number of virtual packages would slow down dpkg too
much and not accepted by ftp-master, therefore we did not pursue this at
first and went by strict-up-to-upstream-version dependencies.

At the last DebConf I was closely observing what you were doing with
OCaml, and I also had a look at the paper. I think I also talked to some
of the OCaml guys about this. My idea at that time was to see if it
works out well for you and then implement it for Haskell as well.

Then ghc6 (the compiler) started to introduce ABI hashes for the
management of packages (in the Haskell sense). That was the point at
which I decided that it’s time to use them in Debian as well. IIRC this
is a minor difference to your approach: While you have to calculate a
hash of the interface yourself, we can just use the hash provided by
ghc6 (but shortened to 5 chars, just as yours)

$ ghc-pkg describe  mtl
name: mtl
version: 1.1.0.2
id: mtl-1.1.0.2-23ca4de7c573fd4df309067199a40634
[..]


I’m still looking for a better tool to notice that some packages have
become uninstallable and need to be binNMUed, and that can even forsee
that some packages will become uninstallable (e.g. a dependency has been
updated to a new upstream version but not built on that architecture). I
have a somewhat hackish tool, but I’m not satisfied. How do you handle
that?
http://darcs.debian.org/pkg-haskell/tools/haskell-pkg-debcheck.hs

Greetings,
Joachim

-- 
Joachim "nomeata" Breitner
Debian Developer
  nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: