Haskell debhelper build system
Hello!
As I mentioned several times, I am working on dh-haskell, pure debhelper
replacement for our haskell-devscripts.
What is it?
It is buildsystem for debhelper. With it dh_auto_{configure,build,install}
do right thing for haskell packages.
Why it is good thing?
* it is based only on debhelper, no cdbs
* it's implementation is 500 perl sloc vs 1279 of shell haskell-devscripts
* it is simplier to use:
Here is trivial debian/rules in style of haskell-devscripts:
DEB_CABAL_PACKAGE = bool-extras
HC = ghc
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/hlibrary.mk
and here is same debian/rules in dh-haskell style:
%:
dh $@ --with haskell --buildsystem=haskell
* in many cases it provides almost identical binary packages
Almost?
Yes. Unfortunately, dh_buildinfo will generate different
`buildinfo_all.gz', so we will have different `md5sums' file
and Installed-Size: field.
So there is no way to make sure?
There is. There is script to compare binary packages and show
only significant difference. Get it from my scripts repository:
https://anonscm.debian.org/cgit/users/kaction-guest/broken-scripts.git/tree/shell/binalt.sh
In fact, there is also script to migrate package to dh-haskell, build both variants
and show difference, if any.
https://anonscm.debian.org/cgit/users/kaction-guest/broken-scripts.git/tree/haskell
Unlike previous script, this one is pretty complex and is in fact cabalized
haskell program. So `stack install` is your friend.
All these scripts (and some of others) can be fetched from my git repository:
git://anonscm.debian.org/users/kaction-guest/broken-scripts.git
Okay. Usually there is difference, and if it is, there is tools to see it.
I buy it. Where is it?
git://anonscm.debian.org/users/kaction-guest/dh-haskell.git
And how can I put it in Build-Depends, if it is not in sid yet?
Build it locally and use `sbuild --extra-package /path/to/dh-haskell_0.1_all.deb'
Okay. What now? Migrate all DHG_packages in one big step?
If it would be possible. Many packages have overrides, that need to be
ported. Most of them are trivial, but still not trivial enough to be handled
automatically. So I propose to upload dh-haskell into sid and migrate
one-by-one.
--
Accept: text/plain, text/x-diff
Accept-Language: eo,en,ru
X-Keep-In-CC: yes
X-Web-Site: sinsekvu.github.io
Reply to: