[arch-haskell] RFC: A new tool for dependencies
Magnus Therning
magnus at therning.org
Sat Oct 12 07:37:58 UTC 2013
The last few days I've been thinking a bit about dependencies among our
packages in HABS. My belief is that it would be beneficial to be able
to very
quickly see whether a set of packages is consistent in dependencies and
therefore ought to compile. Now I may be wrong about this, which is why I'm
asking for comments early on. I've only spent about an hour hacking on this
so far, I'm confident such a tool is possible (actually rather easy) to
make. So, please comment before I waste too much time on something that in
fact is useless!
The central part is a database of tuples: <name, version, dependencies>.
Initially it's populated with the packages that GHC come with (base, array,
etc). After that it would basically be used something like this:
% pkgdb add
http://hackage.haskell.org/packages/archive/dataenc/0.13.0.1/dataenc.cabal
Package added, all dependencies satisfied.
% pkgdb add
http://hackage.haskell.org/packages/archive/dataenc/0.13.0.4/dataenc.cabal
Package added, all dependencies satisfied.
% pkgdb add
http://hackage.haskell.org/packages/archive/nanoparsec/0.1/nanoparsec.cabal
Package not added, the following dependencies not satisfied
ListLike ==2.0.*
base >=4.3 && <5
% pkgdb deps dataenc
array >=0.1.0 && <0.4
base >=3.0.0 && <4.4
containers >=0.1.0 && <0.5
% pkgdb reqby base
dataenc
In short, it would make sure that the set of packages in the database is
consistent at all times, and it would offer some querying functionality.
Some problems:
- not all CABAL files specify the complete set of dependencies (as
highlighted in a few bug on cabal2arch[1])
- dependencies on non-Haskell packages isn't tracked, so it's very
possible
to add a package to the database that wouldn't actually compile on
an Arch
system because a C library is of the wrong version
Possible extensions:
- hooking it up to cabal2arch (e.g. by generating output that can be
consumed by it) for generating PKGBUILDs and .install files
So, what are your thoughts. Should I continue hacking on this?
/M
[1] https://github.com/archhaskell/cabal2arch/issues#issue/22
--
Magnus Therning OpenPGP: 0xAB4DFBA4
email: magnus at therning.org jabber: magnus at therning.org
twitter: magthe http://therning.org/magnus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://www.haskell.org/pipermail/arch-haskell/attachments/20131012/2baa5f89/attachment.sig>
More information about the arch-haskell
mailing list