Safe Haskell | None |
---|
- data Atoms
- verbosity :: Lens Atoms Int
- dryRun :: Lens Atoms Bool
- validate :: Lens Atoms Bool
- debAction :: Lens Atoms DebAction
- flags :: Lens Atoms Flags
- warning :: Lens Atoms (Set Text)
- compilerVersion :: Lens Atoms (Maybe Version)
- packageDescription :: Lens Atoms (Maybe PackageDescription)
- buildDir :: Lens Atoms (Maybe FilePath)
- dataDir :: Lens Atoms (Maybe FilePath)
- compiler :: Lens Atoms (Maybe Compiler)
- extraLibMap :: Lens Atoms (Map String (Set Relations))
- execMap :: Lens Atoms (Map String Relations)
- cabalFlagAssignments :: Lens Atoms (Set (FlagName, Bool))
- debianNameMap :: Lens Atoms (Map PackageName VersionSplits)
- epochMap :: Lens Atoms (Map PackageName Int)
- description :: Lens Atoms (Map BinPkgName Text)
- executable :: Lens Atoms (Map BinPkgName InstallFile)
- serverInfo :: Lens Atoms (Map BinPkgName Server)
- website :: Lens Atoms (Map BinPkgName Site)
- backups :: Lens Atoms (Map BinPkgName String)
- apacheSite :: Lens Atoms (Map BinPkgName (String, FilePath, Text))
- missingDependencies :: Lens Atoms (Set BinPkgName)
- utilsPackageName :: Lens Atoms (Maybe BinPkgName)
- sourcePackageName :: Lens Atoms (Maybe SrcPkgName)
- revision :: Lens Atoms (Maybe String)
- debVersion :: Lens Atoms (Maybe DebianVersion)
- maintainer :: Lens Atoms (Maybe NameAddr)
- packageInfo :: Lens Atoms (Map PackageName PackageInfo)
- omitLTDeps :: Lens Atoms Bool
- noProfilingLibrary :: Lens Atoms Bool
- noDocumentationLibrary :: Lens Atoms Bool
- copyright :: Lens Atoms (Maybe (Either License Text))
- sourceArchitecture :: Lens Atoms (Maybe PackageArchitectures)
- binaryArchitectures :: Lens Atoms (Map BinPkgName PackageArchitectures)
- sourcePriority :: Lens Atoms (Maybe PackagePriority)
- binaryPriorities :: Lens Atoms (Map BinPkgName PackagePriority)
- sourceSection :: Lens Atoms (Maybe Section)
- binarySections :: Lens Atoms (Map BinPkgName Section)
- buildDeps :: Lens Atoms (Set Relations)
- buildDepsIndep :: Lens Atoms (Set Relations)
- depends :: Lens Atoms (Map BinPkgName (Set Relation))
- conflicts :: Lens Atoms (Map BinPkgName (Set Relation))
- replaces :: Lens Atoms (Map BinPkgName (Set Relation))
- provides :: Lens Atoms (Map BinPkgName (Set Relation))
- extraDevDeps :: Lens Atoms (Set Relation)
- rulesHead :: Lens Atoms (Maybe Text)
- rulesFragments :: Lens Atoms (Set Text)
- postInst :: Lens Atoms (Map BinPkgName Text)
- postRm :: Lens Atoms (Map BinPkgName Text)
- preInst :: Lens Atoms (Map BinPkgName Text)
- preRm :: Lens Atoms (Map BinPkgName Text)
- compat :: Lens Atoms (Maybe Int)
- sourceFormat :: Lens Atoms (Maybe SourceFormat)
- watch :: Lens Atoms (Maybe Text)
- changelog :: Lens Atoms (Maybe ChangeLog)
- comments :: Lens Atoms (Maybe [[Text]])
- control :: Lens Atoms SourceDebDescription
- standards :: Lens Atoms (Maybe StandardsVersion)
- logrotateStanza :: Lens Atoms (Map BinPkgName (Set Text))
- link :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))
- install :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))
- installTo :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))
- installData :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))
- file :: Lens Atoms (Map BinPkgName (Set (FilePath, Text)))
- installCabalExec :: Lens Atoms (Map BinPkgName (Set (String, FilePath)))
- installCabalExecTo :: Lens Atoms (Map BinPkgName (Set (String, FilePath)))
- installDir :: Lens Atoms (Map BinPkgName (Set FilePath))
- installInit :: Lens Atoms (Map BinPkgName Text)
- intermediateFiles :: Lens Atoms (Set (FilePath, Text))
Documentation
Bits and pieces of information about the mapping from cabal package
names and versions to debian package names and versions. In essence,
an Atoms
value represents a package's debianization. The lenses in
this module are used to get and set the values hidden in this Atoms
value. Many of the values should be left alone to be set when the
debianization is finalized.
Modes of operation
dryRun :: Lens Atoms BoolSource
Don't write anything, just output a description of what would have happened
validate :: Lens Atoms BoolSource
Make sure the version number and package names of the supplied and generated debianizations match.
debAction :: Lens Atoms DebActionSource
Debianize, SubstVars, or Usage. I'm no longer sure what SubstVars does, but someone may still be using it.
flags :: Lens Atoms FlagsSource
Obsolete record containing verbosity, dryRun, validate, and debAction.
Cabal info
compilerVersion :: Lens Atoms (Maybe Version)Source
Set the compiler version, this is used when loading the cabal file to
packageDescription :: Lens Atoms (Maybe PackageDescription)Source
The information loaded from the cabal file.
buildDir :: Lens Atoms (Maybe 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.
dataDir :: Lens Atoms (Maybe FilePath)Source
The data directory for the package, generated from the packageDescription
compiler :: Lens Atoms (Maybe Compiler)Source
The Compiler value returned when the cabal file was loaded.
extraLibMap :: Lens Atoms (Map String (Set Relations))Source
Map from cabal Extra-Lib names to debian binary package names.
execMap :: Lens Atoms (Map String Relations)Source
Map from cabal Build-Tool names to debian binary package names.
cabalFlagAssignments :: Lens Atoms (Set (FlagName, Bool))Source
Cabal flag assignments to use when loading the cabal file.
Global debian info
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 packages can.
epochMap :: Lens Atoms (Map PackageName Int)Source
Map of Debian epoch numbers assigned to cabal packages.
High level information about the debianization
description :: Lens Atoms (Map BinPkgName Text)Source
Map of binary deb descriptions.
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 an operating service using the given executable
website :: Lens Atoms (Map BinPkgName Site)Source
Create a package for a website using the given executable as the server
backups :: Lens Atoms (Map BinPkgName String)Source
Generate a backups package using the given cabal executable
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.
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.
utilsPackageName :: Lens Atoms (Maybe BinPkgName)Source
Override the package name used to hold left over data files and executables
sourcePackageName :: Lens Atoms (Maybe SrcPkgName)Source
Override the debian source package name constructed from the cabal name
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
maintainer :: Lens Atoms (Maybe NameAddr)Source
Maintainer field. Overrides any value found in the cabal file, or in the DEBIANMAINTAINER environment variable.
packageInfo :: Lens Atoms (Map PackageName PackageInfo)Source
No longer sure what the purpose of this lens is.
omitLTDeps :: Lens Atoms BoolSource
Set this to filter any less-than dependencies out of the generated debian dependencies. (Not sure if this is implemented.)
noProfilingLibrary :: Lens Atoms BoolSource
Set this to omit the prof library deb.
noDocumentationLibrary :: Lens Atoms BoolSource
Set this to omit the doc library deb.
sourceArchitecture :: Lens Atoms (Maybe PackageArchitectures)Source
The source package architecture - Any
, All
, or some list of specific architectures.
binaryArchitectures :: Lens Atoms (Map BinPkgName PackageArchitectures)Source
Map of the binary package architectures
sourcePriority :: Lens Atoms (Maybe PackagePriority)Source
The source package priority
binaryPriorities :: Lens Atoms (Map BinPkgName PackagePriority)Source
Map of the binary package priorities
binarySections :: Lens Atoms (Map BinPkgName Section)Source
Map of the binary deb section assignments
buildDeps :: Lens Atoms (Set Relations)Source
Build dependencies. FIXME: This should be a Set (Set Relation) so we can build or relations, right now we just assume that each Relation is a singleton set.
depends :: Lens Atoms (Map BinPkgName (Set Relation))Source
Map of extra install dependencies for the package's binary debs. This should be [[Relation]] for full generality, or Set (Set Relation)
conflicts :: Lens Atoms (Map BinPkgName (Set Relation))Source
Map of extra install conflicts for the package's binary debs. We should support all the other dependency fields - provides, replaces, etc.
replaces :: Lens Atoms (Map BinPkgName (Set Relation))Source
Map of extra install replaces for the package's binary debs. We should support all the other dependency fields - provides, replaces, etc.
provides :: Lens Atoms (Map BinPkgName (Set Relation))Source
Map of extra install provides for the package's binary debs. We should support all the other dependency fields - provides, replaces, etc.
extraDevDeps :: Lens Atoms (Set Relation)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.
Debianization files and file fragments
compat :: Lens Atoms (Maybe Int)Source
The debian/compat
file, contains the minimum compatible version of the debhelper
package
sourceFormat :: Lens Atoms (Maybe SourceFormat)Source
The debiansourceformat
file.
comments :: Lens Atoms (Maybe [[Text]])Source
Comment entries for the latest changelog entry (DebLogComments [[Text]])
control :: Lens Atoms SourceDebDescriptionSource
The debian/control
file.
standards :: Lens Atoms (Maybe StandardsVersion)Source
The Standards-Version
field of the debian/control
file
logrotateStanza :: Lens Atoms (Map BinPkgName (Set Text))Source
Add a stanza to the binary package's logrotate script.
link :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))Source
Add entries to a binary deb's debian/foo.links file.
install :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))Source
Install files into directories by adding entries to the binary deb's debian/foo.install file.
installTo :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))Source
Rename and install files. This is done by adding rules to debian/rules.
installData :: Lens Atoms (Map BinPkgName (Set (FilePath, FilePath)))Source
Install files into the a binary deb's data directory, usrshare/packagename-version. This expands to either an install or an installTo.
file :: Lens Atoms (Map BinPkgName (Set (FilePath, Text)))Source
Create a file in the binary deb with the given text. This is done by writing the file into the cabalInstall directory and adding an entry to the binary deb's .install file.
installCabalExec :: Lens Atoms (Map BinPkgName (Set (String, FilePath)))Source
Install a cabal executable into a binary deb.
installCabalExecTo :: Lens Atoms (Map BinPkgName (Set (String, FilePath)))Source
Rename and install a cabal executable
installDir :: Lens Atoms (Map BinPkgName (Set FilePath))Source
Create directories in the package
installInit :: Lens Atoms (Map BinPkgName Text)Source
Create an etcinit.d file in the package