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

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: