More sensible comments on cabal-debian

First of all I decided to make this a new post rather then answer in the comment section in my previous post. I think that this way the chance is greater that both David and Jeremy will read this :-)

So, first let’s set the stage… It’s almost midnight and I’ve just spent somewhere between 30 and 45 minutes hunting down packages on Haskell and navigating the directory listings on src.seereason.com. I’ve been sent in the wrong direction once (downloading a Debian package that seems to be from Linspire instead of grabbing the identically named package from the seereason site. I’m tired and slightly frustrated. I run cabal-debian, it works, then I run debuild just to be told that I really should have build cabal-debian itself into a Debian package and installed it that way and I also need another package that isn’t in Debian at all.

Anyway, having slept and let almost 24 pass by I’ve come to my senses somewhat ;-)

Here’s what think is a slightly more tempered whishlist:

  1. Remove haskell-devscripts-cdbs and include hlibrary.mk in haskell-devscripts.
  2. Modify dh_haskell* so that the two snippets for -doc are automatically generated instead (just like the script snippets for -dev already are).

I think it would be easy to stick that in seereason’s repos for public consumption. Then interested people, like me, can start thinking about how to use that as a base to make Debian the best Haskell platform in the world, or at least making it better than Arch ;-)

Completely unrelated question for seereason people

I have the following line in my source.list:

deb     http://deb.seereason.com/debian sid-seereason main

Why don’t I see the seereason-keyring package?

Share

4 Comments

  1. You definitely have the right to feel frustrated, we have not really made things as obvious or accessible as they should be. I am working on correcting this.

    This first step is to get all the required packages uploaded to hackagedb.(The debian package on hackage is the right debian package, it’s just version 1.x and you need 3.x. I uploaded a newer version but it failed to build, I am tracking that down now).

    The second step is to figure out what to do about haskell-devscripts-cdbs. The difficulty is that haskell-devscripts is maintained by John Goerzen in a git repo while hlibrary.mk is maintained by Kari Pahula in a darcs repository. We could host our own version of haskell-devscripts on src.seereason.com, which includes hlibrary.mk plus our changes, but then it will be hard for people to recognize that the version of haskell-devscripts in debian and ubuntu is not going to work. That was the supposed advantage of introducing a new package, haskell-devscripts-cdbs — we could depend on a different package to ensure we got a version that had our changes.

    We had some discussion among ourselves today came up with one possibility:

    1. send our changes to haskell-devscripts back to J. Goerzen. They should not break any existing users of haskell-devscripts, and may in fact make things better.
    2. convince Kari Pahula to take our changes to hlibrary.mk and to also debianize hlibrary.mk in it’s own debian package so that it can be installed system-wide.

    I think the only issue is that we added some hooks to hlibrary.mk (and possibly haskell-devscripts) which are only used by cabal-debian, or which call cabal-debian. But I believe these hooks detect if cabal-debian is present and everything works normally if you don’t have cabal-debian installed. So this should not have any negative implications for existing users of haskell-devscripts and hlibrary.mk.

    In any case, we need to divide the code up, and sweet talk the other maintainers.

    Regarding the seereason-keyring package — that is an oversight. I will add seereason-keyring to the autobuilder for the debian repo. I will also let david comment on the freshness of the debian packages. We primarily use the ubuntu hardy stuff right now, but I know david tries to get everything built occasionally. I suspect that after he gets everything building with ghc 6.10 on ubuntu, he will also update debian.

    I am going to refrain from commenting on your second wishlist item, because I am not familiar with the internals of what is going on, so I don’t really know what it means.

    Anyway, thanks for your feedback! I’ll will keep you posted as we get things into shape.

    • jeremy
  2. @Jeremy,

    First of all, thanks for commenting on this at all :-)

    I think the best route is to get things into Debian. The haskell-devscripts I have on my Sid system is maintained by Arjan Oosting though, not by John Goerzen. I don’t know if I can help in any way in convincing the maintainer to include your changes, and ideally to also upload cabal-debian itself to Debian proper, but I’d be more than willing to chip in if you want me to. Arjan, if you are reading this, please help out a poor Debian user here! ;-)

    I’ll try to explain what I mean with the second item. During building of the package dh_haskell_prep is called and it generates two snippets, libghc6-dataenc-dev.postinst.debhelper and libghc6-dataenc-dev.prerm.debhelper. The former has the following contents (taken from my use of cabal-debian on dataenc):

    # Automatically added by dh_haskell_prep
    GHC_PKG=/usr/lib/ghc-6.8.2/bin/ghc-pkg 
    CONFIGFILE=/usr/lib/haskell-packages/ghc6/lib/dataenc-0.12/installed-pkg-config
    
    
    case "$1" in
        abort-deconfigure|abort-remove|abort-upgrade|configure)
        OLDVERSIONS=`$GHC_PKG --global field dataenc version 2> /dev/null | sed "s/version: //"`
        for VERSION in $OLDVERSIONS ; do
            $GHC_PKG --global hide dataenc-$VERSION || true
        done
        $GHC_PKG --global --auto-ghci-libs register $CONFIGFILE
        ;;
        *)
            echo "postinst called with unknown argument \`$1'" >&2
            exit 1
        ;;
    esac
    
    
    
    # arch-tag: haskell-devscripts generic GHC postinst template
    # End automatically added section
    

    I think it should be possible to get dh_haskell_prep to also generate the libghc6-X-doc.post{inst,rm}. To me that seems like an improvement that it’d be very easy to sell to the maintainer of haskell-devscripts.

  3. Hello,

    Sorry, we are using the version of haskell-devscripts that is maintained by Arjan Oosting as well — I forgot that the maintainer for that package had changed.

    Here is the current state of things:

    • I have uploaded a newer version of the debian library to hackage (version 3.18.1). (the cabal-debian binary is part of this cabal package. The darcs repo named cabal-debian is obsolete, and is being moved into the attic).

    • the patches to haskell-devscripts are now split into some quilt patches.

    • we have debianized the latest version of hlibrary.mk so that it gets installed globally, (similar to gnome.mk, kde.mk, etc). We also added some patches so that it can use cabal-debian to generate binary dependencies, and do some other checks.

    http://src.seereason.com/ghc610/quilt/haskell-devscripts-quilt/ http://src.seereason.com/ghc610/haskell-cdbs/

    There are still some unresolved issues though — such as cabal-debian build-depending on itself.

    I’ll keep you posted.

  4. Well, I’ve seen that information generated from a source build (debuild -S is what I tend to use). I suppose it could be incomplete if the rules file modifies the control file. I would hope that’s a fairly rare setup though. Surely it isn’t something that cabal-debian engages in, right?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>