I've been working on a darcs repo of tools for XMonad, and I ran into a problem with making an sdist tarball.
The repo is pretty standard: in a src/ directory, it contains 7 files, of which 6 are executables with 'module Main where' headers. The cabal file looks like this: http://hpaste.org/5239
name: xmonad-utils
version: 0.1
homepage: http://www.haskell.org/haskellwiki/Xmonad-utils
synopsis: A small collection of X utilities
description: A small collection of X utilities useful when
running XMonad. It includes: hxsel, which returns
the text currently in the X selection; hslock, a
simple X screen lock; hmanage: an utility to
toggle the override-redirect property of any
window; and hhp, a simple utility to hide the
pointer, similar to unclutter.
category: System
license: BSD3
license-file: LICENSE
author: Andrea Rossato
maintainer: andrea.rossato@unibz.it
build-depends: base>=2.0, X11>=1.3, ghc>=6.8, unix, random>=1.0
build-type: Simple
tested-with: GHC==6.8.2
extra-source-files: src/Heval.hs, src/Hhp.hs, src/Hmanage.hs,
src/Hxput.hs, src/Hxsel.hs, src/Utils.hs
executable: hxsel
main-is: Hxsel.hs
hs-source-dirs: src/
ghc-options: -funbox-strict-fields -O2 -Wall -optl-Wl,-s
ghc-prof-options: -prof -auto-all
executable: hxput
main-is: Hxput.hs
hs-source-dirs: src/
ghc-options: -funbox-strict-fields -O2 -Wall -optl-Wl,-s
ghc-prof-options: -prof -auto-all
executable: hslock
main-is: Hslock.hsc
other-modules: Hslock
extensions: ForeignFunctionInterface
hs-source-dirs: src/
ghc-options: -funbox-strict-fields -O2 -Wall -lcrypt -optl-Wl,-s
ghc-prof-options: -prof -auto-all
executable: hmanage
main-is: Hmanage.hs
hs-source-dirs: src/
ghc-options: -funbox-strict-fields -O2 -Wall -optl-Wl,-s
ghc-prof-options: -prof -auto-all
executable: hhp
main-is: Hhp.hs
hs-source-dirs: src/
ghc-options: -funbox-strict-fields -O2 -Wall -optl-Wl,-s
ghc-prof-options: -prof -auto-all
executable: heval
main-is: Heval.hs
hs-source-dirs: src/
ghc-options: -funbox-strict-fields -O2 -Wall -optl-Wl,-s
ghc-prof-options: -prof -auto-all
gwern@localhost:1008~/bin/xmonad-utils>ls src
Heval.hs Hhp.hs Hmanage.hs Hslock.hsc Hxput.hs Hxsel.hs Utils.hs
This package compiles fine, the binaries run fine, but if you should then try to create an sdist tarball, it errors and cannot find Hslock.hs (which is generated by hsc2hs from src/Hslock.hsc:
gwern@localhost:1010~/bin/xmonad-utils>haskell
cleaning...
Configuring xmonad-utils-0.1...
Dependency base>=2.0: using base-3.0.1.0
Dependency X11>=1.3: using X11-1.4.1
Dependency ghc>=6.8: using ghc-6.8.2
Dependency unix-any: using unix-2.3.0.0
Dependency random>=1.0: using random-1.0.0.0
Pulling from "http://gorgias.mine.nu/repos/xmonad-utils"...
We have the following new (to them) patches:
Sat Jan 26 12:10:12 EST 2008 gwern0@gmail.com
* .cabal: small tweak for faster installation via cabal install
They have the following patches to pull:
No remote changes to pull in!
Using compiler: ghc-6.8.2
Using install prefix: /home/gwern/bin
Binaries installed in: /home/gwern/bin/bin
Libraries installed in: /home/gwern/bin/lib/xmonad-utils-0.1/ghc-6.8.2
Private binaries installed in: /home/gwern/bin/libexec
Data files installed in: /home/gwern/bin/share/xmonad-utils-0.1
Documentation installed in: /home/gwern/bin/share/doc/xmonad-utils-0.1
Using alex version 2.2 found on system at: /usr/bin/alex
Using ar found on system at: /usr/bin/ar
Using c2hs version 0.15.1 found on system at: /usr/bin/c2hs
Using cpphs version 1.5 found on system at: /usr/bin/cpphs
No ffihugs found
Using ghc version 6.8.2 found on system at: /usr/bin/ghc
Using ghc-pkg version 6.8.2 found on system at: /usr/bin/ghc-pkg
No greencard found
Using haddock version 2.0.0.0 found on system at: /usr/bin/haddock
Using happy version 1.17 found on system at: /usr/bin/happy
No hmake found
Using hsc2hs version 0.66-ghc found on system at: /usr/bin/hsc2hs
Using hscolour version 1.9 found on system at: /usr/bin/HsColour
No hugs found
No jhc found
Using ld found on system at: /usr/bin/ld
No nhc98 found
No pfesetup found
Using pkg-config version 0.22 found on system at: /usr/bin/pkg-config
Using ranlib found on system at: /usr/bin/ranlib
Using tar found on system at: /bin/tar
Preprocessing executables for xmonad-utils-0.1...
Building xmonad-utils-0.1...
[1 of 1] Compiling Main ( src/Hxsel.hs, dist/build/hxsel/hxsel-tmp/Main.o )
Linking dist/build/hxsel/hxsel ...
[1 of 1] Compiling Main ( src/Hxput.hs, dist/build/hxput/hxput-tmp/Main.o )
Linking dist/build/hxput/hxput ...
[1 of 2] Compiling Utils ( src/Utils.hs, dist/build/hslock/hslock-tmp/Utils.o )
[2 of 2] Compiling Main ( dist/build/hslock/hslock-tmp/Hslock.hs, dist/build/hslock/hslock-tmp/Main.o )
Linking dist/build/hslock/hslock ...
[1 of 1] Compiling Main ( src/Hmanage.hs, dist/build/hmanage/hmanage-tmp/Main.o )
Linking dist/build/hmanage/hmanage ...
[1 of 2] Compiling Utils ( src/Utils.hs, dist/build/hhp/hhp-tmp/Utils.o )
[2 of 2] Compiling Main ( src/Hhp.hs, dist/build/hhp/hhp-tmp/Main.o )
Linking dist/build/hhp/hhp ...
[1 of 1] Compiling Main ( src/Heval.hs, dist/build/heval/heval-tmp/Main.o )
Linking dist/build/heval/heval ...
Installing: /home/gwern/bin/bin
Building source dist for xmonad-utils-0.1.20080126...
Setup: Hslock.hs doesn't exist
Somewhat related pages might be #14 or #161.