Creating Debian packages from Cabal package
From HaskellWiki
(Difference between revisions)
(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> | |
| - | + | <li>Create <tt>debian/varfiles/varfile</tt> with your favorite editor: | |
| - | + | <pre> 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 | |
| - | <pre>maintainer="Ian Lynagh (wibble) <igloo@debian.org>" | + | Programming with Overloading and Higher-Order Polymorphism\", |
| - | short_description="Haskell monad transformer library for GHC" | + | by Mark P Jones (<http://www.cse.ogi.edu/~mpj/>), Advanced School |
| - | long_description=" MTL is a monad transformer library, inspired by the paper \"Functional | + | of Functional Programming, 1995." |
| - | Programming with Overloading and Higher-Order Polymorphism\", | + | c_dev_libs="" |
| - | by Mark P Jones (<http://www.cse.ogi.edu/~mpj/>), Advanced School | + | extra_build_deps=""</pre> |
| - | of Functional Programming, 1995." | + | (Pay attention to the leading space in <tt>long_description</tt>. It's necessary due to the format of Debian's <tt>control</tt> file.)</li> |
| - | c_dev_libs="" | + | <li>Create <tt>debian/copyright</tt> with your favorite editor: |
| - | extra_build_deps="" | + | <pre> Debianised by ... |
| - | </pre> | + | Author ... |
| - | + | Copyright: BSD ... /usr/share/common-licenses/BSD ... | |
| - | (Pay attention to the leading space in <tt>long_description</tt>. It's necessary due to the format of Debian's <tt>control</tt> file.) | + | EOF</pre></li> |
| - | + | <li><tt>dch --create -D unstable --package haskell-mtl --newversion 1.0.1-1</tt></li> | |
| - | + | <li><tt>update-debian-haskell-files</tt></li> | |
| - | <pre> | + | <li><tt>debian/rules update-generated-files</tt></li> |
| - | Debianised by ... | + | <li><tt>debuild -us -uc</tt></li> |
| - | Author ... | + | </ol> |
| - | Copyright: BSD ... /usr/share/common-licenses/BSD ... | + | |
| - | EOF | + | |
| - | </pre> | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
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
1 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.
2 Packaging a Cabal program package in N easy steps
TBD
