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

Safe HaskellNone




Modes of operation

verbosity :: Lens Atoms Int Source

Set how much progress messages get generated.

dryRun :: Lens Atoms Bool Source

Don't write anything, just output a description of what would have happened

debAction :: Lens Atoms DebAction Source

Debianize, SubstVars, or Usage. I'm no longer sure what SubstVars does, but someone may still be using it.

cabalFlagAssignments :: Lens Atoms (Set (FlagName, Bool)) Source

Cabal flag assignments to use when loading the cabal file.

Cabal package info

packageDescription :: Lens Atoms (Maybe PackageDescription) Source

The result of loading a .cabal file

Repository info

execMap :: Lens Atoms (Map String Relations) Source

Map from cabal Build-Tool names to debian binary package names.

epochMap :: Lens Atoms (Map PackageName Int) Source

Map of Debian epoch numbers assigned to cabal packages.

missingDependencies :: Lens Atoms (Set BinPkgName) Source

List if packages that should be omitted from any dependency list - e.g. a profiling package missing due to use of noProfilingPackage lens elsewhere.

extraLibMap :: Lens Atoms (Map String Relations) Source

Map from cabal Extra-Lib names to debian binary package names.

debianNameMap :: Lens Atoms (Map PackageName VersionSplits) Source

Map from cabal version number ranges to debian package names. This is a result of the fact that only one version of a debian package can be installed at a given time, while multiple versions of a cabal package can.

Source Package Info

sourcePackageName :: Lens Atoms (Maybe SrcPkgName) Source

Override the debian source package name constructed from the cabal name

overrideDebianNameBase :: Lens Atoms (Maybe DebBase) Source

Override the default base of the debian binary package names.

revision :: Lens Atoms (Maybe String) Source

Revision string used in constructing the debian verison number from the cabal version

debVersion :: Lens Atoms (Maybe DebianVersion) Source

Exact debian version number, overrides the version generated from the cabal version

copyright :: Lens Atoms CopyrightDescription Source

The copyright information from the cabal file

sourceArchitectures :: Lens Atoms (Maybe PackageArchitectures) Source

The architectures supported by this source package - Any, All, or some list of specific architectures.

compat :: Lens Atoms (Maybe Int) Source

The debian/compat file, contains the minimum compatible version of the debhelper package. If not given the version number of the installed debhelper package is used.

sourceFormat :: Lens Atoms (Maybe SourceFormat) Source

The debian/source/format file.

changelog :: Lens Atoms (Maybe ChangeLog) Source

the debian/changelog file

comments :: Lens Atoms (Maybe [[Text]]) Source

Comment entries for the latest changelog entry (DebLogComments [[Text]])

rulesHead :: Lens Atoms (Maybe Text) Source

The rules file header

rulesSettings :: Lens Atoms [Text] Source

The rules file assignments

rulesIncludes :: Lens Atoms [Text] Source

The rules file include directives

rulesFragments :: Lens Atoms (Set Text) Source

Additional fragments of the rules file

official :: Lens Atoms Bool Source

Set this to apply offical Debian settings

noProfilingLibrary :: Lens Atoms Bool Source

Set this to omit the prof library deb.

noDocumentationLibrary :: Lens Atoms Bool Source

Set this to omit the doc library deb.

utilsPackageNameBase :: Lens Atoms (Maybe String) Source

Override the package name used to hold left over data files and executables.

buildDir :: Lens Atoms (Set FilePath) Source

The build directory. This can be set by an argument to the Setup script. When Setup is run manually it is just dist, when it is run by dpkg-buildpackage the compiler name is appended, so it is typically dist-ghc. Cabal-debian needs the correct value of buildDir to find the build results.

watch :: Lens Atoms (Maybe Text) Source

the debian/watch file

Source Package Build Dependencies

omitProfVersionDeps :: Lens Atoms Bool Source

Do not put the version dependencies on the prof packages that we put on the dev packages.

omitLTDeps :: Lens Atoms Bool Source

Set this to filter any less-than dependencies out of the generated debian dependencies. (Not sure if this is implemented.)

Binary Package Info

binaryArchitectures :: BinPkgName -> Lens Atoms (Maybe PackageArchitectures) Source

The architectures supported by a binary package

executable :: Lens Atoms (Map BinPkgName InstallFile) Source

Create a package to hold a cabal executable

serverInfo :: Lens Atoms (Map BinPkgName Server) Source

Create a package for a server

website :: Lens Atoms (Map BinPkgName Site) Source

Create a package for a website

backups :: Lens Atoms (Map BinPkgName String) Source

Create a package for a timed backup script

apacheSite :: Lens Atoms (Map BinPkgName (String, FilePath, Text)) Source

Create an apache configuration file with the given (domain, logdir, filetext). This is called when expanding the result of the website lens above.

extraDevDeps :: Lens Atoms Relations Source

Extra install dependencies for the devel library. Redundant with depends, but kept for backwards compatibility. Also, I think maybe this is or was needed because it can be set before the exact name of the library package is known.

postInst :: Lens Atoms (Map BinPkgName Text) Source

Map of debian/postinst scripts

postRm :: Lens Atoms (Map BinPkgName Text) Source

Map of debian/postrm scripts

preInst :: Lens Atoms (Map BinPkgName Text) Source

Map of debian/preinst scripts

preRm :: Lens Atoms (Map BinPkgName Text) Source

Map of debian/prerm scripts

binaryPriority :: BinPkgName -> Lens Atoms (Maybe PackagePriority) Source

Map of the binary package priorities (FIXME: redundant with BinaryDebDescription)

binarySection :: BinPkgName -> Lens Atoms (Maybe Section) Source

Map of the binary deb section assignments (FIXME: redundant with BinaryDebDescription)

installInit :: Lens Atoms (Map BinPkgName Text) Source

Create an etcinit.d file in the package FIXME: change signature to BinPkgName -> Lens Atoms Text

packageType :: BinPkgName -> Lens Atoms (Maybe PackageType) Source

Lens onto one of several PackageType values of which we have specific knowledge how to package.

debianDescription :: BinPkgName -> Lens Atoms (Maybe Text) Source

Lens into the description field of a BinaryDebDescription.

depends :: BinPkgName -> Lens Atoms Relations Source relations :: BinPkgName -> Lens Atoms B.PackageRelations relations b = B.relations . binaryDebDescription b

The Depends: relations for each binary deb -

Binary package Files

logrotateStanza :: Lens Atoms (Map BinPkgName (Set Text)) Source

Add a stanza to the binary package's logrotate script.

Unknown, obsolete, internal

flags :: Lens Atoms Flags Source

Obsolete record containing verbosity, dryRun, validate, and debAction.

validate :: Lens Atoms Bool Source

Make sure the version number and package names of the supplied and generated debianizations match.

intermediateFiles :: Lens Atoms (Set (FilePath, Text)) Source

Create a file in the debianization. This is used to implement the file lens above. FIXME: change signature to BinPkgName -> Lens Atoms (Set (FilePath, Text))

packageInfo :: Lens Atoms (Map PackageName PackageInfo) Source

No longer sure what the purpose of this lens is.

control :: Lens Atoms SourceDebDescription Source

The debian/control file. Many of the following lenses access parts of the SourceDebDescription.