Difference between revisions of "Creating Debian packages from Cabal package"
Jump to navigation
Jump to search
(I was bitten.) |
(Separating packaging of libraries and programs (no info on the latter though), and some beautification) |
||
Line 1: | Line 1: | ||
− | == Packaging a Cabal package in 10 easy steps == |
+ | == Packaging a Cabal library package in 10 easy steps == |
''This process requires the <tt>haskell-utils</tt> package.'' |
''This process requires the <tt>haskell-utils</tt> package.'' |
||
− | Here is an example on was created a new Debian package out of an Haskell [[Cabal]] package: [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mtl-1.0 mtl]. |
+ | Here is an example on was created a new Debian package out of an Haskell [[Cabal]] library package: [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mtl-1.0 mtl]. |
+ | <ol> |
||
− | + | <li><tt>wget http://hackage.haskell.org/packages/archive/mtl/1.0/mtl-1.0.tar.gz -O haskell-mtl_1.0.1.orig.tar.gz</tt></li> |
|
− | |||
− | + | <li><tt>tar -zxf haskell-mtl_1.0.1.orig.tar.gz</tt></li> |
|
+ | <li><tt>cd mtl-1.0</tt>`</li> |
||
− | |||
− | + | <li><tt>mkdir -p debian/varfiles</tt></li> |
|
⚫ | |||
− | |||
⚫ | |||
− | 4. <tt>mkdir -p debian/varfiles</tt> |
||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
+ | <li>Create <tt>debian/copyright</tt> with your favorite editor: |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | |||
+ | EOF</pre></li> |
||
⚫ | |||
⚫ | |||
− | |||
− | + | <li><tt>update-debian-haskell-files</tt></li> |
|
⚫ | |||
− | <pre> |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | EOF |
||
− | </pre> |
||
− | |||
⚫ | |||
− | |||
− | 8. <tt>update-debian-haskell-files</tt> |
||
− | |||
⚫ | |||
− | |||
⚫ | |||
With luck the <tt>.cabal</tt> file will provide most of the text for steps 5 and 6. |
With luck the <tt>.cabal</tt> file will provide most of the text for steps 5 and 6. |
||
Line 49: | Line 38: | ||
Please subscribe to the [http://urchin.earth.li/mailman/listinfo/debian-haskell debian-haskell] mailling-list if you are interested in creating new Haskell packages for Debian. |
Please subscribe to the [http://urchin.earth.li/mailman/listinfo/debian-haskell debian-haskell] mailling-list if you are interested in creating new Haskell packages for Debian. |
||
+ | |||
+ | == Packaging a Cabal program package in N easy steps == |
||
+ | |||
+ | TBD |
Revision as of 07:02, 1 April 2008
Packaging a Cabal library package in 10 easy steps
This process requires the haskell-utils package.
Here is an example on was created a new Debian package out of an Haskell Cabal library package: mtl.
- wget http://hackage.haskell.org/packages/archive/mtl/1.0/mtl-1.0.tar.gz -O haskell-mtl_1.0.1.orig.tar.gz
- tar -zxf haskell-mtl_1.0.1.orig.tar.gz
- cd mtl-1.0`
- mkdir -p debian/varfiles
- Create debian/varfiles/varfile with your favorite editor:
maintainer="Ian Lynagh (wibble) <igloo@debian.org>" short_description="Haskell monad transformer library for GHC" long_description=" MTL is a monad transformer library, inspired by the paper \"Functional Programming with Overloading and Higher-Order Polymorphism\", by Mark P Jones (<http://www.cse.ogi.edu/~mpj/>), Advanced School of Functional Programming, 1995." c_dev_libs="" extra_build_deps=""
(Pay attention to the leading space in long_description. It's necessary due to the format of Debian's control file.) - Create debian/copyright with your favorite editor:
Debianised by ... Author ... Copyright: BSD ... /usr/share/common-licenses/BSD ... EOF
- dch --create -D unstable --package haskell-mtl --newversion 1.0.1-1
- update-debian-haskell-files
- debian/rules update-generated-files
- debuild -us -uc
With luck the .cabal file will provide most of the text for steps 5 and 6.
When making future changes, apart from adding a changelog entry (use dch), only steps 9 and 10 need to be repeated.
Even if packaging Haskell libraries seems easy, the Debian Policy and the Developers Reference contains a lot of valuable informations on how to create a policy compliant Debian package.
Please subscribe to the debian-haskell mailling-list if you are interested in creating new Haskell packages for Debian.
Packaging a Cabal program package in N easy steps
TBD