Skip to content
Haskell Cabal RPM packaging tool
Haskell Other
Latest commit 47a0d90 Jul 1, 2016 @juhp bump version to 0.10.0
Failed to load latest commit information.
man update Changelog, description, manpage, and help Dec 9, 2014
src Refresh: 2 lines of context less ambiguous Jul 1, 2016
.gitignore bump to 0.9 and update ChangeLog Jul 17, 2014
Makefile Makefile: quieten version target Mar 3, 2014
NEWS update docs for dnf and ChangeLog for 0.9.4 Feb 17, 2015
README.orig rename Bryan's README to README.orig for now Jul 7, 2012
TODO bump version to 0.10.0 Jul 1, 2016
cabal-rpm.cabal bump version to 0.10.0 Jul 1, 2016
make-dist make-dist: seems ok to make git hardlinks for temp branch checkout Oct 4, 2013

Build Status Hackage


cabal-rpm is a tool for RPM packaging of Haskell Cabal-based packages. It interacts with yum/dnf to install build dependencies and can also act as a cabal-install wrapper installing dependencies packaged in Fedora before running "cabal install".

Cabal-rpm was originally created by Bryan O'Sullivan (see README.orig) but has since been updated to work with current Cabal and Fedora Packaging Guidelines replacing cabal2spec. It is used by Fedora and OpenSuSE. It is licensed under the terms of the GPL version 3 (see the COPYING file).

You can build from source as normal by running cabal install or via Hackage with cabal install cabal-rpm.


cabal-rpm assumes you are using ghc-rpm-macros for Haskell RPM packaging. It currently needs Cabal 1.10 or later to build (ie ghc7), but it should not be hard to patch it to build at least for ghc-6.12.


The package is on Hackage. If you have cabal-install (part of Haskell Platform) you can install simply with

$ cabal install cabal-rpm


To create a .spec file for a Haskell src package in the current dir:

$ cblrpm spec

or directly on a .cabal file:

$ cblrpm spec path/to/mypkg.cabal

or on a package source dir:

$ cblrpm spec mypkg-0.1

You can also package directly from hackage:

$ cblrpm srpm somepkg


$ cblrpm local somepkg-0.1

will unpack the (latest) 'somepkg' package from hackage (if the dir does not exist, otherwise it uses the existing dir), create a spec file for it, and build it.

cblrpm creates .spec files in the current dir and if a .spec file already exists it will append .cblrpm to the generated filename to avoid overwriting an existing file.

$ cblrpm install [pkg][-ver]

will yum/dnf install available missing dependencies and run "cabal install" to build the package.


The latest source code is available from:


More features are planned and patches welcome. See the TODO file for more details.

Something went wrong with that request. Please try again.