
Hi all, I uploaded to Hackage a little program I wrote to organize my music file collection in the hopes that someone else might find it useful too: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/wavconvert I had a directory tree full of .wav files that I ripped from CDs at times when I didn't want to wait for an .mp3 or .ogg encoder to run. The trouble is that .wav files don't have metadata (ID3 tags) that specify artist, album and track names. So, wavconvert takes a directory tree as an argument, and converts any .wav files in it to .ogg (using an external OGG encoder) while filling in the ID3 tags based on the directory names. The name is a bit misleading, since this is not an OGG encoder written in Haskell; it just handles invoking an existing encoder with the right flags to set the metadata. I'd welcome any patches to make this more generally useful (as it is, it assumes a particular file structure and OGG encoder.) Cheers, Tim -- Tim Chevalier * http://cs.pdx.edu/~tjc * Often in error, never in doubt "Research is what I'm doing when I don't know what I'm doing."--Wernher von Braun

catamorphism:
Hi all,
I uploaded to Hackage a little program I wrote to organize my music file collection in the hopes that someone else might find it useful too:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/wavconvert
Tim wins the prize for the 500th Haskell package in Arch Linux, http://aur.archlinux.org/packages.php?ID=19205 -- Don

On Mon, 2008-08-18 at 18:22 -0700, Don Stewart wrote:
Tim wins the prize for the 500th Haskell package in Arch Linux,
Which, I should like to note, demonstrates why the original Cabal design[1] was basically right[2] in that it allows this kind of automated translation into native packages. You cannot do that with autoconf. The other distros are following a similar course though not yet quite as successfully as Don has demonstrated for Arch. There are similar translation tools for Gentoo, Debian and RPM-based distros with varying levels of sophistication and automation. I think the folks who hack on these translation tools should get together and share code and experience so we can all achieve better levels of automation. The highest levels of automation will also require more centralised QA on hackage. That's where we should be going. Duncan [1] http://haskell.org/cabal/proposal/index.html [2] I'm not at all claiming credit for that design. That was decided well before I started hacking on Cabal.

duncan.coutts:
On Mon, 2008-08-18 at 18:22 -0700, Don Stewart wrote:
Tim wins the prize for the 500th Haskell package in Arch Linux,
Which, I should like to note, demonstrates why the original Cabal design[1] was basically right[2] in that it allows this kind of automated translation into native packages.
You cannot do that with autoconf.
The other distros are following a similar course though not yet quite as successfully as Don has demonstrated for Arch. There are similar translation tools for Gentoo, Debian and RPM-based distros with varying levels of sophistication and automation. I think the folks who hack on these translation tools should get together and share code and experience so we can all achieve better levels of automation. The highest levels of automation will also require more centralised QA on hackage. That's where we should be going.
Duncan
[1] http://haskell.org/cabal/proposal/index.html [2] I'm not at all claiming credit for that design. That was decided well before I started hacking on Cabal.
Yes, I want to write something about this soon, but essentially, having a pure, declarative specifcation language for build dependencies -- with no runtime initialisation (yes, I'm looking at you, autoconf!) to define how the package is constructed -- enables analysis and translation tools like cabal2arch, which are an order of magnitude more productive. Use build-type: Simple! One person can maintain 500 packages with minimal manual intervention, while our competitors (6 erlang packages, 21 ocaml packages, 494 python packages :) have to waste a lot more manpower keeping things in shape. Cabal is going to benefit Haskell a lot in the long term -- this kind of productivity improvement is game changing. This leads nicely into the question of where we go from here. We have central hosting, a declarative build system of the first order, and native packages that are easy to construct. The next phase is a standard, comprehensive platform of packages, we can rely on, built upon the automation Cabal enables. See the Batteries Included proposal[1] for more info. -- Don [1] http://www.cse.unsw.edu.au/~dons/papers/CPJS08.html

Duncan Coutts
The other distros are following a similar course though not yet quite as successfully as Don has demonstrated for Arch. There are similar translation tools for Gentoo, Debian and RPM-based distros
What is the current recommended way to build debian packages? I notice there's a step-by-step description at http://www.haskell.org/haskellwiki/Creating_Debian_packages_from_Cabal_packa... Any reason the manual steps here aren't automated? There's also a different script posted at http://urchin.earth.li/pipermail/debian-haskell/2008-January/000370.html and I distinctly remember other recipes as well, although I can't find them at the moment. For RPM, there seems to be a tool at http://www.serpentine.com/blog/software/cabal-rpm/ Should we (i.e. haskell.org) provide apt- and yummable repositories for (source?) packages for .rpm and .deb? -k -- If I haven't seen further, it is by standing in the footprints of giants

On Tue, Aug 19, 2008 at 08:51:04AM +0200, Ketil Malde wrote:
What is the current recommended way to build debian packages? I notice there's a step-by-step description at
http://www.haskell.org/haskellwiki/Creating_Debian_packages_from_Cabal_packa...
That's the way I recommend.
Any reason the manual steps here aren't automated?
There's not much benefit from automating them (although if someone did so, with a nice way to edit the description etc, then it would be handy). The vast majority of the time in creating Debian packages is: Collecting the copyright info to put in debian/copyright. In theory this is just taking the "copyright" field from the cabal file, but it's often not that simple, e.g. the latest (1.4.2) X11 package claims: 1999-2003, Alastair Reid 2003-2007, libraries@haskell.org but when packaging it I found: 1997-2003, Alastair Reid 2006, Frederik Eaton 2007, Spencer Janssen 2003-2007, libraries@haskell.org in the sources, plus the copyright for the configure script. Checking the Cabal package description is suitable, or writing a suitable description. Testing the package. Thanks Ian, who has no idea what "libraries@haskell.org" claiming copyright actually means, if anything

At Tue, 19 Aug 2008 14:06:23 +0100, Ian Lynagh wrote:
Any reason the manual steps here aren't automated?
There's not much benefit from automating them (although if someone did so, with a nice way to edit the description etc, then it would be handy). The vast majority of the time in creating Debian packages is:
We (at seereason) have a tool, cabal-debian, for automating the process. It has the following features: 1. automatically generates a working debian directory from the .cabal file with no user intervention (most of the time). It copies as much information from the .cabal file to the debian directory as possible. 2. automatically calculates build-depends during initial (or subsequent) debianization 3. checks that .cabal build-depends and debian build-depends are in-sync during dpkg-buildpackage run. 4. automatically calculates install dependencies of binary .debs during dpkg-buildpackage run. (by writing substvar files and using ${haskell:Depends} in debian/control). 5. can be used to create new debian/control and debian/changelog for an already debianized package. (Useful when information copied from the .cabal file changes in the .cabal file). As you state, most generated packages would need additional polish before they could be uploaded to Debian. The Future ---------- cabal-debian seems good enough for general release. I can imagine cabal-debian being used in three ways: 1. a way for users to quickly debianize a cabal library for local use (because going around the debian package system often leads to pain in the long run). 2. a way for debian/ubuntu developers to create a starting point for a real Debian package. 3. a way to standardize on policy issues, by encapsulating them in a tool which "Does It Right". 4. a way to create an unofficial Haskell repository with lots of packages In my opinion, cabal-debian is quite suitable for (1) already. (2) and (3) require agreement from the Haskell Debian community as to what the best practices really are, and patches to make that happen. cabal-debian currently uses: - haskell-devscripts - the cdbs extension for supporting haskell (the one posted on debian-haskell mailing list a while ago) - haskell-utils The basic build is done using the cdbs extension for Haskell (which uses haskell-devscripts). But the version dependencies are updated during the build process using a script from haskell-utils. For (4), it should be pretty easy to use cabal-debian plus this autobuilder: http://src.seereason.com/autobuilder/ to easily create a repository of debian packages that not quite up to debian standards. Whether you would *want* such a thing is obviously an issue for debate: quantity vs quality. But the technology already exists if the desire is there. What's Next? ------------ We are working on getting cabal-debian uploaded to hackage, but we have some patches against haskell-devscripts, and a patch against haskell-utils. The patch against haskell-utils has not been accepted, and may possibly be rejected due to some issue with the way Debian's autobuilders work? It does not make much sense to upload cabal-debian to hackage until the supporting tools are up-to-date. So I guess we need to get our patches accepted upstream. (modifying them if needed). We have also started a tool that is essentially cabal-install + cabal-debian. It has the same purpose as cabal-install, but it debianizes the packages on-the-fly. How You Can Help ---------------- We, (at seereason), make no claims that cabal-debian does anything the right way, the best way, or even a sensible way. Our primary requirements are: 1. that cabal-debian generates sane debianization with minimal pain 2. that the generated debian packages can be built by our autobuilder. This essentially means that you should be able to build them in three steps: i. check out the source ii. install the build-depends listed in debian/control iii. run dpkg-buildpackage I believe this is slight issue with haskell-utils based packages which have a procedure more like: i. check out the source ii. run update-haskell-control iii. install build-dependencies iv. run dpkg-buildpackage If update-haskell-control generated >= build-depends instead of = build-depends, then things would work ok with our autobuilder, but possibly not with Debian's?. Anyway, the point is, we are wide open to suggestions and improvements to cabal-debian. In fact, nothing would make us happier than someone coming along and taking over the whole thing ;) Obtaining --------- cabal-debian can be obtained (via darcs get) here: http://src.seereason.com/cabal-debian/ but you will need other dependencies from here: http://src.seereason.com/ and you will need a patch to haskell-devscripts from here: http://src.seereason.com/quilt/haskell-devscripts-quilt/ and haskell-utils from here: http://src.seereason.com/quilt/haskell-utils-quilt/ Example ------- Here is an example debian directory generated by cabal-debian (which no manual modifications or intervention, AFAIK): http://src.seereason.com/debian/shellac-debian/debian/ You would need the patched haskell-devscripts/haskell-utils and possibly cabal-debian to actually build it though. j.

On Tue, Aug 19, 2008 at 02:28:36PM -0700, Jeremy Shaw wrote:
- the cdbs extension for supporting haskell (the one posted on debian-haskell mailing list a while ago)
I keep the newest version of that at http://people.debian.org/~kaol/repos/hlibrary/ One thing that it doesn't do yet is to register the -doc packages.

kaol:
On Tue, Aug 19, 2008 at 02:28:36PM -0700, Jeremy Shaw wrote:
- the cdbs extension for supporting haskell (the one posted on debian-haskell mailing list a while ago)
I keep the newest version of that at http://people.debian.org/~kaol/repos/hlibrary/
One thing that it doesn't do yet is to register the -doc packages.
Can the Debian/Haskell interest parties say something about who's doing what in this area? Is there hope for a concrete effort to import large numbers of hackage apps and tools into Debian? -- Don

On Thu, Aug 21, 2008 at 11:19 AM, Don Stewart
Can the Debian/Haskell interest parties say something about who's doing what in this area? Is there hope for a concrete effort to import large numbers of hackage apps and tools into Debian?
I made a stab at it, but ran into issues with build dependencies that I didn't have the time to solve, so I switched to just importing the packages I needed. Currently, we at SeeReason are building packages for our own use based on Ubuntu Hardy Heron. People are welcome to use them at their own risk. If it breaks your computer, you get to keep both halves. People are also welcome to use our autobuilder, which we use to build the packages. All packages can be found at deb.seereason.com. We are trying to limit the amount of time we spend on these tools, but would be happy to provide pointers to self-starters and/or discuss options for other people to work on them. Cliff

Can the Debian/Haskell interest parties say something about who's doing what in this area? Is there hope for a concrete effort to import large numbers of hackage apps and tools into Debian?
-- Don
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at. Having a debianized cabal-install would be the biggest win in my book. If there were an unofficial debianized mirror of hackage, I probably wouldn't use it anyway. --Lane

At Thu, 21 Aug 2008 20:52:00 -0400 (EDT), Christopher Lane Hinson wrote:
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at.
Fundamentally I think Lane is correct, but it is worth noting that the debian perl team maintains 938 CPAN modules. The effort involved is not trivial, but the number of consistently active people involved is not so huge (maybe 5 core people, and lots of people who are interested in one or two packages). Now, there are only 1217 registered installs of ghc6 on debian, compared to 74000+ perl installs (essentially everyone installs perl I guess), so it is not clear that the critical mass exists for a debian perl style team. David

On Fri, Aug 22, 2008 at 2:32 AM, David Bremner
At Thu, 21 Aug 2008 20:52:00 -0400 (EDT), Christopher Lane Hinson wrote:
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at.
Fundamentally I think Lane is correct, but it is worth noting that the debian perl team maintains 938 CPAN modules. The effort involved is not trivial, but the number of consistently active people involved is not so huge (maybe 5 core people, and lots of people who are interested in one or two packages).
Now, there are only 1217 registered installs of ghc6 on debian, compared to 74000+ perl installs (essentially everyone installs perl I guess), so it is not clear that the critical mass exists for a debian perl style team.
To add to this I suspect that there are more people involved in the perl team than there even are DDs with ghc6 installed, but maybe I'm just being negative. Maybe the time is ripe for a Debian haskell team? I know the idea has been floated before on the Debian Haskell list but I don't think it's ever gained any momentum. /M

magnus:
On Fri, Aug 22, 2008 at 2:32 AM, David Bremner
wrote: At Thu, 21 Aug 2008 20:52:00 -0400 (EDT), Christopher Lane Hinson wrote:
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at.
Fundamentally I think Lane is correct, but it is worth noting that the debian perl team maintains 938 CPAN modules. The effort involved is not trivial, but the number of consistently active people involved is not so huge (maybe 5 core people, and lots of people who are interested in one or two packages).
Now, there are only 1217 registered installs of ghc6 on debian, compared to 74000+ perl installs (essentially everyone installs perl I guess), so it is not clear that the critical mass exists for a debian perl style team.
To add to this I suspect that there are more people involved in the perl team than there even are DDs with ghc6 installed, but maybe I'm just being negative. Maybe the time is ripe for a Debian haskell team? I know the idea has been floated before on the Debian Haskell list but I don't think it's ever gained any momentum.
And good integration will only serve to increase the number of users, and build further critical mass. It has to start somewhere people! -- Don

Hi, Am Freitag, den 22.08.2008, 10:13 +0100 schrieb Magnus Therning:
On Fri, Aug 22, 2008 at 2:32 AM, David Bremner
wrote: At Thu, 21 Aug 2008 20:52:00 -0400 (EDT), Christopher Lane Hinson wrote:
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at.
Fundamentally I think Lane is correct, but it is worth noting that the debian perl team maintains 938 CPAN modules. The effort involved is not trivial, but the number of consistently active people involved is not so huge (maybe 5 core people, and lots of people who are interested in one or two packages).
Now, there are only 1217 registered installs of ghc6 on debian, compared to 74000+ perl installs (essentially everyone installs perl I guess), so it is not clear that the critical mass exists for a debian perl style team.
To add to this I suspect that there are more people involved in the perl team than there even are DDs with ghc6 installed, but maybe I'm just being negative. Maybe the time is ripe for a Debian haskell team? I know the idea has been floated before on the Debian Haskell list but I don't think it's ever gained any momentum.
I had it floated to the debian-haskell mailing list once, but as you said, there were not much responses. The Debian Perl Group (which was started by me some years ago) is indeed a good example for good library package maintenance. What made it successful was, in my opinion, people with constant devotion (that was not me :-)) and a faible for developing tools for the team. Have a look at http://pkg-perl.alioth.debian.org/cgi-bin/qareport.cgi and you see how it was possible to maintain this number of packages with just a few people. Incidentally, a few days ago Ian Lynagh was asking if someone wants to take over his haskell packages, so if there were a group to be formed, it could start with all the base packages. OTOH, this leaves the question open of who will maintain the compiler itself. Of course, this is a totally different thing than maintaining cabalized libraries and so far, no one has stepped up to give it a shot. 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

nomeata:
Hi,
Am Freitag, den 22.08.2008, 10:13 +0100 schrieb Magnus Therning:
On Fri, Aug 22, 2008 at 2:32 AM, David Bremner
wrote: At Thu, 21 Aug 2008 20:52:00 -0400 (EDT), Christopher Lane Hinson wrote:
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at.
Fundamentally I think Lane is correct, but it is worth noting that the debian perl team maintains 938 CPAN modules. The effort involved is not trivial, but the number of consistently active people involved is not so huge (maybe 5 core people, and lots of people who are interested in one or two packages).
Now, there are only 1217 registered installs of ghc6 on debian, compared to 74000+ perl installs (essentially everyone installs perl I guess), so it is not clear that the critical mass exists for a debian perl style team.
To add to this I suspect that there are more people involved in the perl team than there even are DDs with ghc6 installed, but maybe I'm just being negative. Maybe the time is ripe for a Debian haskell team? I know the idea has been floated before on the Debian Haskell list but I don't think it's ever gained any momentum.
I had it floated to the debian-haskell mailing list once, but as you said, there were not much responses.
The Debian Perl Group (which was started by me some years ago) is indeed a good example for good library package maintenance. What made it successful was, in my opinion, people with constant devotion (that was not me :-)) and a faible for developing tools for the team. Have a look at http://pkg-perl.alioth.debian.org/cgi-bin/qareport.cgi and you see how it was possible to maintain this number of packages with just a few people.
Incidentally, a few days ago Ian Lynagh was asking if someone wants to take over his haskell packages, so if there were a group to be formed, it could start with all the base packages.
OTOH, this leaves the question open of who will maintain the compiler itself. Of course, this is a totally different thing than maintaining cabalized libraries and so far, no one has stepped up to give it a shot.
Yes, the key is to find a motivated Debian maintainer who can build a coalition around them. -- Don

At Thu, 21 Aug 2008 20:52:00 -0400 (EDT), Christopher Lane Hinson wrote:
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at.
Fundamentally I think Lane is correct, but it is worth noting that the debian perl team maintains 938 CPAN modules. The effort involved is not trivial, but the number of consistently active people involved is not so huge (maybe 5 core people, and lots of people who are interested in one or two packages). Now, there are only 1217 registered installs of ghc6 on debian, compared to 74000+ perl installs (essentially everyone installs perl I guess), so it is not clear that the critical mass exists for a debian perl style team. One of the main tools that makes this possible is dh-make-perl, which is the moral equivalent of cabal-debian, I guess. Just as important is the shared version control setup and team procedures. David

At Thu, 21 Aug 2008 20:52:00 -0400 (EDT), Christopher Lane Hinson wrote:
I'm not a DD, but I think uploading ~500 hackage packages to debian would be a bit of a no-no. Debian packages are expected to have active maintainers both upstream and on the debian side, and to build without a hitch on ten different architectures, or they don't make it into stable and the DD responsible gets whined at.
Fundamentally I think Lane is correct, but it is worth noting that the debian perl team maintains 938 CPAN modules. The effort involved is not trivial, but the number of consistently active people involved is not so huge (maybe 5 core people, and lots of people who are interested in one or two packages). Now, there are only 1217 registered installs of ghc6 on debian, compared to 74000+ perl installs (essentially everyone installs perl I guess), so it is not clear that the critical mass exists for a debian perl style team. One of the main tools that makes this possible is dh-make-perl, which is the moral equivalent of cabal-debian, I guess. Just as important is the shared version control setup and team procedures. David

Christopher Lane Hinson
Having a debianized cabal-install would be the biggest win in my book. If there were an unofficial debianized mirror of hackage, I probably wouldn't use it anyway.
I might. I generally want to use newer versions of development stuff (i.e. Haskell libraries etc) than is available in official repos. Were there an unofficial, cutting edge repo at hackage, I could just add it to my sources.list, instead of compiling stuff myself from darcs repos or hackage tarballs. Even if we only get a handful of users, this would be an important testing stage for packages before submitting them to official Debian (and Ubuntu) repos. I'm all for it. -k -- If I haven't seen further, it is by standing in the footprints of giants

Ketil Malde wrote:
Christopher Lane Hinson
writes: Having a debianized cabal-install would be the biggest win in my book. If there were an unofficial debianized mirror of hackage, I probably wouldn't use it anyway.
I might.
I would. (I run Ubuntu at home, Debian on my personal mail/web server, and Debian at work.) I'd rather have all my software maintained by the distro's package-management system (if I can do it and still have access to the most recent versions). One of the things that made me tear my hair out when I first tried to learn Plone was that my Plone book, the Plone website, and Ubuntu all recommended different systems for installing Plone and all its dependencies, and IIRC they defaulted to different versions as well.

At Thu, 21 Aug 2008 20:10:08 +0300, Kari Pahula wrote:
On Tue, Aug 19, 2008 at 02:28:36PM -0700, Jeremy Shaw wrote:
- the cdbs extension for supporting haskell (the one posted on debian-haskell mailing list a while ago)
I keep the newest version of that at http://people.debian.org/~kaol/repos/hlibrary/
One thing that it doesn't do yet is to register the -doc packages.
Cool. We made some modifications including some patches for the -doc stuff I believe. I'll try to do a merge and get some patches back to you. j.

I've had an interested user, who tried to get one of my programs to run on a Debian machine - running Debian Etch, released a couple of months ago. Here are some of the hurdles stumbled upon in the process: 1. Etch comes with ghc-6.6, and that didn't work with my .cabal file. 2. ghc-6.8.3, presumably the binary snapshots, didn't work, neither in i386 nor in x86_64 incarnation. 3. ghc 6.8.1-i386 appears to work, but some of the dependencies failed to compile (tagsoup, in this case) 4. A precompiled (by me), statically linked binary refuses to run with a message of "FATAL: kernel too old". Granted, not all of this is our fault, but it won't help users to start charging the windmills of Debian conservativism. We really need to make this process smoother, and ideally, provide debs for Etch backports. I'm not sure how to go about any of this, beyond debianizing my own packages. But that's why I'm telling you. :-) -k -- If I haven't seen further, it is by standing in the footprints of giants

Ketil Malde wrote:
I've had an interested user, who tried to get one of my programs to run on a Debian machine - running Debian Etch, released a couple of months ago.
Your user is pretty much at the pessimal point in the release cycle. Etch is more than a year old, and lenny (the next release) is in pre-release freeze. None of which helps your users, of course. Perhaps things will improve once lenny is out. [non-working versions snipped]
Granted, not all of this is our fault, but it won't help users to start charging the windmills of Debian conservativism. We really need to make this process smoother, and ideally, provide debs for Etch backports.
Another option is to try installing the version from lenny (6.8.2). This may or may not pull in a wack of dependencies, but is not difficult to try out [1].
I'm not sure how to go about any of this, beyond debianizing my own packages. But that's why I'm telling you. :-)
There was some discussion on the list recently about a tool to semi-automatically debianize haskell packages. Perhaps this is of interest to you. There is also a debian-haskell [2] list, which might be relevant. David [1]: http://wiki.debian.org/AptPinning [2]: currently at http://urchin.earth.li/mailman/listinfo/debian-haskell but possible moving.

Hi Ketil Malde wrote:
I've had an interested user, who tried to get one of my programs to run on a Debian machine - running Debian Etch, released a couple of months ago. Here are some of the hurdles stumbled upon in the process:
Debian Etch were released in April 8th, 2007. 16 months ago. Hardly "a copule of months ago". See http://www.debian.org/News/2007/20070408.en.html . Sure, there have been updates since then, but they are mainly concerned with security and drivers for new hardware.
1. Etch comes with ghc-6.6, and that didn't work with my .cabal file. 2. ghc-6.8.3, presumably the binary snapshots, didn't work, neither in i386 nor in x86_64 incarnation. 3. ghc 6.8.1-i386 appears to work, but some of the dependencies failed to compile (tagsoup, in this case) 4. A precompiled (by me), statically linked binary refuses to run with a message of "FATAL: kernel too old".
Granted, not all of this is our fault, but it won't help users to start charging the windmills of Debian conservativism. We really need to make this process smoother, and ideally, provide debs for Etch backports.
I'm not sure how to go about any of this, beyond debianizing my own packages. But that's why I'm telling you. :-)
There are several options: 1) Use the testing or unstable branch of Debian. They got newer packages. Testing (aka. Lenny) has GHC 6.8.2 http://packages.debian.org/lenny/ghc6 . 2) Compile GHC yourself. You can even compile and install GHC (and most Haskell software) on a dedicated user account. In this way you avoid messing up you Debian installation if something goes wrong. 3) If testing/unstable is too risky, then use backports to stable. See http://www.backports.org/dokuwiki/doku.php . Unfortunately, they do not have GHC in their repository. Maybe somebody else has. 4) Wait for the next release of Debian. It should not be too far into the future, as the next release is now frozon http://www.debian.org/News/weekly/2008/08/ . But with a project like Debian that releases when ready, not on a deadline, you never quite know when the next release will be there.
-k
Greetings, Mads Lindstrøm

On Mon, Aug 25, 2008 at 9:10 AM, Mads Lindstrøm
Hi
Ketil Malde wrote:
I've had an interested user, who tried to get one of my programs to run on a Debian machine - running Debian Etch, released a couple of months ago. Here are some of the hurdles stumbled upon in the process:
Debian Etch were released in April 8th, 2007. 16 months ago. Hardly "a copule of months ago". See http://www.debian.org/News/2007/20070408.en.html . Sure, there have been updates since then, but they are mainly concerned with security and drivers for new hardware.
1. Etch comes with ghc-6.6, and that didn't work with my .cabal file. 2. ghc-6.8.3, presumably the binary snapshots, didn't work, neither in i386 nor in x86_64 incarnation. 3. ghc 6.8.1-i386 appears to work, but some of the dependencies failed to compile (tagsoup, in this case) 4. A precompiled (by me), statically linked binary refuses to run with a message of "FATAL: kernel too old".
Granted, not all of this is our fault, but it won't help users to start charging the windmills of Debian conservativism. We really need to make this process smoother, and ideally, provide debs for Etch backports.
I'm not sure how to go about any of this, beyond debianizing my own packages. But that's why I'm telling you. :-)
There are several options:
1) Use the testing or unstable branch of Debian. They got newer packages. Testing (aka. Lenny) has GHC 6.8.2 http://packages.debian.org/lenny/ghc6 .
I'd stay away from 6.8.2 if I were you. It has at least one annoying bug that was fixed in 6.8.3. The one I'm thinking of is getSymbolicLinkStatus returning bogus mtimes on some 32bit platforms.
2) Compile GHC yourself. You can even compile and install GHC (and most Haskell software) on a dedicated user account. In this way you avoid messing up you Debian installation if something goes wrong.
I find with Debian this is the way to go. Install your system and use Debian's packages for everything, and then install your own copy of anything for which you care what version you're running. Not everyone will like this option, but I find it's a decent balance between using what Debian provides and getting the satisfaction of using the versions of things I care about. Jason

"Jason Dagit"
2) Compile GHC yourself.
I find with Debian this is the way to go.
Ouch. Okay, I've compiled GHC once. But I would like end-users to be able to use my software, and I simply cannot require them to go through this.
Install your system and use Debian's packages for everything, and then install your own copy of anything for which you care what version you're running.
Right, I generally do this too. But even Ubuntu's GHC is recent enough that I make do with it. I had a look at cabal-debian, but installation was a bit complex, and I'm not even sure with what or how to apply various patches needed. It'd be great if this worked OOB on Lenny and Hardy. Another Debian question, once I've populated the debian/ directory one way or another, how should this be integrated with the rest of the project? Should it be part of the darcs archive, or a separate archive (foo-debian), or what? How do people organize this? -k -- If I haven't seen further, it is by standing in the footprints of giants

ketil:
"Jason Dagit"
writes: 2) Compile GHC yourself.
I find with Debian this is the way to go.
Ouch. Okay, I've compiled GHC once. But I would like end-users to be able to use my software, and I simply cannot require them to go through this.
Yes, scary and unacceptable. -- Don

Ketil Malde wrote:
Another Debian question, once I've populated the debian/ directory one way or another, how should this be integrated with the rest of the project? Should it be part of the darcs archive, or a separate archive (foo-debian), or what? How do people organize this?
debian-mentors@lists.debian.org is a good place for generic debian packaging questions. After you have a package which works, and which hopefully lintian (a tool for checking debian packages) does not complain about, you can ask on debian-mentors for a sponsor, who will check over the package and hopefully upload it. Right now there is not too much interest in uploading new packages, because people are trying to get lenny out the door. If you like irc, there is also #debian-mentors on irc.oftc.net In general the debian packaging should be maintained separately. There are many different ways to implement this, but the end product (a debian source package) consists of blah.orig.tar.gz, and a blah.diff.gz file that contains all of the debian specific changes. In practice people maintain a seperate version control repo (or branch) for the debian version. John Goerzen has written a tool called darcs-buildpackage, which I haven't used, but which might be helpful for you (there is also git-buildpackage, and svn-buildpackage). David

On Wed, Aug 27, 2008 at 10:20 PM, David Bremner
Ketil Malde wrote:
Another Debian question, once I've populated the debian/ directory one way or another, how should this be integrated with the rest of the project? Should it be part of the darcs archive, or a separate archive (foo-debian), or what? How do people organize this?
debian-mentors@lists.debian.org is a good place for generic debian packaging questions. After you have a package which works, and which hopefully lintian (a tool for checking debian packages) does not complain about, you can ask on debian-mentors for a sponsor, who will check over the package and hopefully upload it. Right now there is not too much interest in uploading new packages, because people are trying to get lenny out the door.
I've personally had _very_ limited success in getting any haskell packages (both libs and apps) to attract any interest on debian-mentors. This is very unfortunate. I suspect this is due to haskell being an unknown language to most people on that list, and I also suspect that the rather strict (but completely called for) rules about dependencies and versions for haskell packages are unknown to most DDs. I've long thought that the DDs who are on debian-haskell are in an excellent position to change all of this, but I've never pushed very much on this. I've only ever gotten a single comment on an RFS for a haskell package. The comment was "scary looking package" (http://lists.debian.org/debian-mentors/2007/10/msg00389.html). AFAICS there is great room for improvement here, but this conversation should probably move to debian-haskell or debian-mentor... /M

On Wed, Aug 27, 2008 at 1:58 AM, Jason Dagit
2) Compile GHC yourself. You can even compile and install GHC (and most Haskell software) on a dedicated user account. In this way you avoid messing up you Debian installation if something goes wrong.
I find with Debian this is the way to go. Install your system and use Debian's packages for everything, and then install your own copy of anything for which you care what version you're running.
Not everyone will like this option, but I find it's a decent balance between using what Debian provides and getting the satisfaction of using the versions of things I care about.
I've always used the version of ghc that comes with debian. Part of creating decent software is making sure that it compiles with a stable non-bleeding-edge compiler that is readily available to users. But that's probably because I'm lazy, and would rather write software that just works than play with the latest bells and whistles. I have had to compile ghc myself on a few occasions to help the ghc folks track down compiler bugs (i.e. to check behavior under a different compiler), but for normal use, I would say the sane thing is to stick with the debian version of ghc. David

2008/8/25 Ketil Malde
1. Etch comes with ghc-6.6, and that didn't work with my .cabal file.
Is it not an option to make your software work with the not-quite-latest compiler? 6.8 is less than a year old, so I imagine 6.6 is still in quite a few major distro's stable repositories. I don't know the details of what changed with Cabal between 6.6 and 6.8, and you didn't provide any details of what broke, so this might not be an option. But something to consider. -- -David

"David House"
1. Etch comes with ghc-6.6, and that didn't work with my .cabal file.
Is it not an option to make your software work with the not-quite-latest compiler?
Yes it is, although I don't have the details either. Neither do I have an Etch system around, but I should probably install a virtual machine or something. Ideally, I should work out the minimal requirements (including for dependencies, and for dependencies' dependencies), but in practice, I end up depending on whatever is installed on the computer I use. Lazyness bites again. :-) Would it be an idea for hackage to have various "build hosts", automatically trying to compile things on less-than-current installs? -k -- If I haven't seen further, it is by standing in the footprints of giants

Ketil Malde wrote:
Neither do I have an Etch system around, but I should probably install a virtual machine or something. Ideally, I should work out the minimal requirements (including for dependencies, and for dependencies' dependencies), but in practice, I end up depending on whatever is installed on the computer I use. Lazyness bites again. :-)
If you have a Debian (or presumably Ubuntu) machine of some kind, then the package "pbuilder" makes it reasonably easy to set up build environments for particular releases. It is oriented towards building debian packages, but you can "login" to the environment. This is a lot lighter weight than a virtual machine (it uses chroot). David

Tim Chevalier wrote:
The trouble is that .wav files don't have metadata (ID3 tags) that specify artist, album and track names.
WAV files can't have ID3 tags, but they most definitely can support metadata including all the ones you mention and much more in an LIST/INFO chunk. libsndfile (http://www.mega-nerd.com/libsndfile) supports TITLE, COPYRIGHT, SOFTWARE, ARTIST, COMMENY, DATE, ALBUM and LICENSE fields. Erik -- ----------------------------------------------------------------- Erik de Castro Lopo ----------------------------------------------------------------- "XML is not a language in the sense of a programming language any more than sketches on a napkin are a language." -- Charles Simonyi

On 8/19/08, Erik de Castro Lopo
Tim Chevalier wrote:
The trouble is that .wav files don't have metadata (ID3 tags) that specify artist, album and track names.
WAV files can't have ID3 tags, but they most definitely can support metadata including all the ones you mention and much more in an LIST/INFO chunk.
libsndfile (http://www.mega-nerd.com/libsndfile) supports TITLE, COPYRIGHT, SOFTWARE, ARTIST, COMMENY, DATE, ALBUM and LICENSE fields.
I stand corrected. However, some CD ripping programs don't fill in the metadata when creating WAV files. Cheers, Tim -- Tim Chevalier * http://cs.pdx.edu/~tjc * Often in error, never in doubt "Being a nerd, which is to say going too far and caring too much about a subject, is the best way to make friends I know." --Sarah Vowell

Tim Chevalier wrote:
I stand corrected. However, some CD ripping programs don't fill in the metadata when creating WAV files.
Its not just some, its the vast majority of them :-). Erik -- ----------------------------------------------------------------- Erik de Castro Lopo ----------------------------------------------------------------- "The one thing that reading these five books has hammered home is how much C++ has turned into 3 languages stuck in a bag fighting to get out. Low C++, High C++, and Generic C++."
participants (18)
-
Christopher Lane Hinson
-
Clifford Beshers
-
David Bremner
-
David House
-
David Roundy
-
Don Stewart
-
Duncan Coutts
-
Erik de Castro Lopo
-
Ian Lynagh
-
Jason Dagit
-
Jeremy Shaw
-
Joachim Breitner
-
Kari Pahula
-
Ketil Malde
-
Mads Lindstrøm
-
Magnus Therning
-
Seth Gordon
-
Tim Chevalier