cabal-debian-4.31.9: Create a Debianization for a Cabal package

Safe HaskellNone




data CommandLineOptions Source

This data type is an abomination. It represent information, provided on command line. Part of such information provides means to create initial CabalT state and is stored in _flags field. See newCabalInfo.

Other, much greater part represent changes to already created state. They are stored in _adjustment field.

All this can be understood from (simplified) types:

type CabalT m a = StateT CabalInfo m a
newCabalInfo :: Flags -> IO CabalInfo
handleBehaviorAdjustment :: BehaviorAdjustment -> CabalT IO ()

data BehaviorAdjustment Source

This data type represents changes to CabalT state, requested at command line.

data Flags Source

This record supplies enough information to locate and load a debianization or a cabal file from the IO monad.




_verbosity :: Int

Run with progress messages at the given level of verboseness.

_dryRun :: Bool

Don't write any files or create any directories, just explain what would have been done.

_upgrade :: Bool

Carefully upgrade the packaging

_roundtrip :: Bool

Normalize a debianization (field order, whitespace) by round-tripping it.

_validate :: Bool

Fail if the debianization already present doesn't match the one we are going to generate closely enough that it is safe to debianize during the run of dpkg-buildpackage, when Setup configure is run. Specifically, the version number in the top changelog entry must match, and the sets of package names in the control file must match.

_compilerFlavor :: CompilerFlavor

Which compiler should we generate library packages for? In theory a single deb could handle multiple compiler flavors, but the support tools are not ready for this as of right now (28 Jan 2015.)

_cabalFlagAssignments :: Set (FlagName, Bool)

Flags to pass to Cabal function finalizePackageDescription, this can be used to control the flags in the cabal file. It can be supplied to the cabal-debian binary using the --flags option.

_buildEnv :: EnvSet

Directory containing the build environment for which the debianization will be generated. This determines which compiler will be available, which in turn determines which basic libraries can be provided by the compiler. By default all the paths in EnvSet are "/".