d<      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  !"#$%&'()*+,-./0123456789:; Safe-Inferred)This function belongs in Cabal, see http:hackage.haskell.orgtrachackageticket935. None <=>?@ABC <=>?@ABCNone 7The architectures for which a binary deb can be built. #The list of suitable architectures .The package can be built for any architecture )The package is architecture independenct $Assumes debhelper is installed %#Assumes debian-policy is installed 2  !"#$%&'()*+,-.DEFGHI,  !"#$%&'()*+,-.,! "#$%&'( ) *-.+,"    !"#$%&'()*+,-.DEFGHINone0>Read and parse the status file for installed debian packages. 45Write a file which we might still be reading from in % order to compute the text argument. 5BCompute the new file contents from the old. If f returns Nothing  do not write. 8UCreate a map from pathname to the names of the packages that contains that pathname. 4 We need to make sure we consume all the files, so 9;Given a path, return the name of the package that owns it. ?From Darcs.Utils D>If the current value of getL x is Nothing, replace it with f. /0123456JK789:;<=>?@ABCDE/0123456789:;<=>?@ABCDE/012345678:9;<=>?@ABCDE/0123456JK789:;<=>?@ABCDENoneF,A redundant data type, too lazy to expunge. P The name of the executable file Q!where to find it, default is distbuild execName/ Rwhere to put it, default is usrbin execName S"name to give installed executable T/Information about the server we are packaging. V"Host on which the server will run W#Port on which the server will run. & Obviously, this must assign each and % every server package to a different  port. X#A comment that will be inserted to $ explain how the file was generated Y#start-stop-daemon --retry argument Z6Extra flags to pass to the server via the init script [*The hint to install the server executable \1Information about the web site we are packaging. ^(The domain name assigned to the server. . An apache configuration will be generated to 5 redirect requests from this domain to hostname:port _Apache ServerAdmin parameter `#The hint to install the server job $FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi$FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi$ghiabcdef\]^_`TUVWXYZ[NOPQRSFIHGJMLKFIHGJMLKNOPQRSTUVWXYZ[\]^_`abcdefghiNoneL An example jAA class of Bs insterspersed with Cs. It is used when converting - the cabal dependencies to debian, where the around type is the  binary package name and the between type is the version number. AMinimum implementation is a method to return the leftmost B, and B another to return the following (C,B) pairs. Its unfortunate to ? require lists in the implementation, a fold function would be C better (though I find implementing such folds to be a pain in the  you-know-what.) AThe class provides implementations of three folds, each of which / exposes slightly different views of the data. LMjklmnopNOPQjklmnopjklmnopLMjklmnopNOPQNoneqBDescribes a mapping from cabal package name and version to debian ? package names. For example, versions of the cabal QuickCheck # package less than 2 are mapped to  quickcheck1, while version 2 or  greater is mapped to  quickcheck2. R8The name given to versions older than the oldest split. S9Each pair is The version where the split occurs, and the 8 name to use for versions greater than or equal to that 8 version. This list assumed to be in (must be kept in) ! ascending version number order. s@Split the version range and give the older packages a new name. v=These are the instances of debian names changing that I know # about. I know they really shouldn' t be hard coded. Send a patch. B Note that this inherits the lack of type safety of the mkPkgName  function. qTRSrstuvUqrstuvqtrsuvqTRSrstuvUNonex(This is used to construct the value for % DEB_CABAL_PACKAGE in the rules file y0The source package (not a binary deb actually.) z A package that holds the package' s data files + and any executables not assigned to other  packages. {6A package related to a particular executable, perhaps  but not necessarily a server. |The libghc-foo-doc package. }The libghc-foo-prof package. ~The libghc-foo-dev package. BThis type represents a section of the control file other than the C first, which in turn represent one of the binary packages or debs ! produced by this debianization.  Ihttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Package  Nhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture  Khttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Essential  Mhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description  Ehttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s5.6.10 ;Field will be copied to the upload control (.changes) file 9Field will be copied to the source packgae control files 9Field will be copied to the binary packgae control files %User defined fields. Parse the line 6XBS-Comment: I stand between the candle and the star. to get XField (fromList BS)  Comment ) I stand between the candle and the star. This type represents the debian/ control file, which is the core C of the source package debianization. It includes the information D that goes in the first, or source, section, and then a list of the % succeeding binary package sections.  Hhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source  Lhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Maintainer  Lhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Changed-By  Khttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Uploaders  Shttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-DM-Upload-Allowed  Jhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Priority  Ihttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Section  Shttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Standards-Version  Jhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Homepage  Lhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-VCS-fields  Bhttp://www.debian.org/doc/debian-policy/ch-controlfields.html#s5.7 'Package interrelationship information. BModify the description of one of the binary debs without changing  the package order. VIThe different types of binary debs we can produce from a haskell package Dwxyz{|}~VCwxyz{|}~Cw~}|{zyx w~}|{zyx  V NoneWGReturn a list of built in packages for the compiler in an environment. 1 ghcBuiltIns :: FilePath -> IO [PackageIdentifier]  ghcBuiltIns root =  fchroot root (lazyProcess ghc-pkg [list, --simple-output] Nothing Nothing empty) >>= P return . map parsePackageIdentifier . words . unpack . fst . collectStdout  where " parsePackageIdentifier s =  let (v', n') = break (== X) (reverse s) ( (v, n) = (reverse (tail n' ), reverse v') in I PackageIdentifier (PackageName n) (Version (map read (filter (/= . ) (groupBy (  a b -> (a == Y ) == (b == Y )) v))) []) Z(Packages bundled with 7.4.0.20111219-2. [(Packages bundled with 7.4.0.20111219-2. \W]^_`Z[abcdefg\W]^_`Z[abcdefg NoneDBits and pieces of information about the mapping from cabal package G names and versions to debian package names and versions. In essence,  an  value represents a package' s debianization. The lenses in E this module are used to get and set the values hidden in this Atoms D value. Many of the values should be left alone to be set when the  debianization is finalized. h?This record supplies information about the task we want done - 0 debianization, validataion, help message, etc. i>Run with progress messages at the given level of verboseness. jDon':t write any files or create any directories, just explain  what would have been done. k/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. l*What to do - Usage, Debianize or Substvar mAThe smallest pieces of debhelper information. Some of these are ? converted directly into files in the debian directory, others A become fragments of those files, and others are first converted E into different DebAtom values as new information becomes available. nSLimited version of Depends, put a dependency on the dev library package. The only % reason to use this is because we don'0t yet know the name of the dev library package. oCSays that the debian package should have this relation in Replaces pCSays that the debian package should have this relation in Provides qDSays that the debian package should have this relation in Conflicts rBSays that the debian package should have this relation in Depends s3Configure the executable to do incremental backups t8Like DHServer, but configure the server as a web server uDLike DHExecutable, but configure the executable as a server process v3Create a binary package to hold a cabal executable w)Add an init.d file to the binary package x)Create a directory in the binary package yHInstall a cabal executable into the binary package at an exact location z3Install a cabal executable into the binary package {4Create a file with the given text at the given path |6DHInstallTo somewhere relative to DataDir (see above) }BInstall a build file into the binary package at an exact location ~-Install a build file into the binary package (Set the description of source or binary *Set the Section field of source or binary +Set the Priority field of source or binary /Set the Architecture field of source or binary ,Script to run before remove, should contain  DEBHELPER line before exit 0 -Script to run before install, should contain  DEBHELPER line before exit 0 +Script to run after remove, should contain  DEBHELPER line before exit 0 ,Script to run after install, should contain  DEBHELPER line before exit 0 -Create a symbolic link in the binary package 7Add a stanza of a logrotate file to the binary package QHave Apache configure a site using PACKAGE, DOMAIN, LOGDIR, and APACHECONFIGFILE (The parsed contents of the control file :Copyright information, either as a Cabal License value or  the full text. .The debhelper compatibility level, from debian/compat. (Supply some info about a cabal package. >Specify epoch numbers for the debian package generated from a  cabal package. Example: EpochMapping (PackageName HTTP) 1. =Map a cabal Build-Tool name to a debian binary package name,  e.g.  ExecMapping trhsx haskell-hsx-utils adds a build  dependency on haskell-hsx-utils to any package that has trhsx in its  cabal build-tool list. @Map a cabal Extra-Library name to a debian binary package name,  e.g. ExtraLibMapping extraLibMap cryptopp  libcrypto-dev adds a  build dependency on  libcrypto-dev to any package that has cryptopp " in its cabal Extra-Library list. ?Lets cabal-debian know that a package it might expect to exist A actually does not, so omit all uses in resulting debianization. )Add an arch independent build dependency Add a build dependency <Name to give to the debian source package. If not supplied A the name is constructed from the cabal package name. Note that @ DebianNameMap could encode this information if we already knew # the cabal package name, but we can't assume that. =Mapping from cabal package name and version to debian source B package name. This allows different ranges of cabal versions to / map to different debian source package names. ;Specify the exact debian version of the resulting package, : including epoch. One use case is to work around the the  buildN4 versions that are often uploaded to the debian and 7 ubuntu repositories. Say the latest cabal version of = transformers is 0.3.0.0, but the debian repository contains - version 0.3.0.0-1build3, we need to specify  debVersion=0.3.0.0-1build3 or the version we produce will 5 look older than the one already available upstream. If present, don't generate the << dependency when we see a cabal D equals dependency. (The implementation of this was somehow lost.) =Specify the revision string to use when converting the cabal  version to debian. IInformation regarding mode of operation - verbosity, dry-run, usage, etc AFlags to pass to Cabal function finalizePackageDescription, this 5 can be used to control the flags in the cabal file. ?Value for the maintainer field in the control file. Note that D the cabal maintainer field can have multiple addresses, but debian C only one. If this is not explicitly set, it is obtained from the E cabal file, and if it is not there then from the environment. As a > last resort, there is a hard coded string in here somewhere. BEach element is a comment to be added to the changelog, where the  element'.s text elements are the lines of the comment. HThe changelog, first entry contains the source package name and version BName to give the package for left-over data files and executables A warning to be reported later A Fragment of debian/rules The header of the debian/(rules file. The remainder is assembled 0 from DebRulesFragment values in the atom list. DPut this text into a file with the given name in the debianization.  Write debian/watch  Write debiansourceformat the pathname of the package' s data directory, generally the = value of the dataDirectory field in the PackageDescription. 1The build directory used by cabal, typically dist/ build when  building manually or dist-ghc/"build when building using GHC and 9 haskell-devscripts. This value is used to locate files @ produced by cabal so we can move them into the deb. Note that 7 the --builddir option of runhaskell Setup appends the /build = to the value it receives, so, yes, try not to get confused. +The Compiler value returned with the Cabal ; PackageDescription, then used to determine what libraries 3 (i.e. dependencies) are provided by the compiler. %The cabal package description record <Specify the version number of the GHC compiler in the build A environment. The default is to assume that version is the same > as the one in the environment where cabal-debian is running. > This is used to look up hard coded lists of packages bundled ; with the compiler and their version numbers. (This could - certainly be done in a more beautiful way.) *Do not produce a libghc-foo-prof package. )Do not produce a libghc-foo-doc package. .Set how much progress messages get generated. Don'Ht write anything, just output a description of what would have happened ?Make sure the version number and package names of the supplied % and generated debianizations match. "Debianize, SubstVars, or Usage. I'2m no longer sure what SubstVars does, but someone  may still be using it. GObsolete record containing verbosity, dryRun, validate, and debAction. Unused FSet the compiler version, this is used when loading the cabal file to ,The information loaded from the cabal file. <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-buildpackage3 the compiler name is appended, so it is typically  dist-ghc<. Cabal-debian needs the correct value of buildDir to find  the build results. JThe data directory for the package, generated from the packageDescription <The Compiler value returned when the cabal file was loaded. ?Map from cabal Extra-Lib names to debian binary package names. @Map from cabal Build-Tool names to debian binary package names. ;Cabal flag assignments to use when loading the cabal file. IMap from cabal version number ranges to debian package names. This is a E result of the fact that only one version of a debian package can be M installed at a given time, while multiple versions of a cabal packages can. 8Map of Debian epoch numbers assigned to cabal packages.  Map of binary deb descriptions. ,Create a package to hold a cabal executable ECreate a package for an operating service using the given executable HCreate a package for a website using the given executable as the server <Generate a backups package using the given cabal executable 3Create an apache configuration file with the given < (domain, logdir, filetext). This is called when expanding ' the result of the website lens above. 1List if packages that should be omitted from any 8 dependency list - e.g. a profiling package missing due . to use of noProfilingPackage lens elsewhere. LOverride the package name used to hold left over data files and executables HOverride the debian source package name constructed from the cabal name VRevision string used in constructing the debian verison number from the cabal version TExact debian version number, overrides the version generated from the cabal version CMaintainer field. Overrides any value found in the cabal file, or / in the DEBIANMAINTAINER environment variable. 1No longer sure what the purpose of this lens is. JSet this to filter any less-than dependencies out of the generated debian 3 dependencies. (Not sure if this is implemented.) 'Set this to omit the prof library deb. &Set this to omit the doc library deb. The copyright information "The source package architecture - Any, All*, or some list of specific architectures. (Map of the binary package architectures The source package priority %Map of the binary package priorities The source package's section assignment *Map of the binary deb section assignments @Build dependencies. FIXME: This should be a Set (Set Relation) B so we can build or relations, right now we just assume that each  Relation is a singleton set. Architecture independent 1Map of extra install dependencies for the package's binary debs.  This should be [[Relation]], for full generality, or Set (Set Relation) .Map of extra install conflicts for the package's binary debs. N We should support all the other dependency fields - provides, replaces, etc. -Map of extra install replaces for the package's binary debs. N We should support all the other dependency fields - provides, replaces, etc. -Map of extra install provides for the package's binary debs. N We should support all the other dependency fields - provides, replaces, etc. =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 1 the exact name of the library package is known.  The beginning of the rules file 'Additional fragments of the rules file Map of debian/postinst scripts Map of debian/postrm scripts Map of debian/preinst scripts Map of debian/prerm scripts The debian/compat6 file, contains the minimum compatible version of the  debhelper package The debiansourceformat file. the debian/watch file the debian/ changelog file EComment entries for the latest changelog entry (DebLogComments [[Text]]) The debian/control file. The Standards-Version field of the debian/control file "Add a stanza to the binary package's logrotate script. Add entries to a binary deb's debian/foo.links file. ?Install files into directories by adding entries to the binary  deb's debian/foo.install file. ARename and install files. This is done by adding rules to debian/rules. #Install files into the a binary deb's data directory,  usrshare/8packagename-version. This expands to either an install  or an installTo. FCreate a file in the binary deb with the given text. This is done by F writing the file into the cabalInstall directory and adding an entry  to the binary deb's .install file. .Install a cabal executable into a binary deb. &Rename and install a cabal executable "Create directories in the package  Create an etcinit.d file in the package TCreate a file in the debianization. This is used to implement the file lens above. *Split atoms out of an Atoms by predicate. )Split atoms out of a Atoms by predicate. Like modifyAtoms, but... hijklmnopqrstuvwxyz{|}~GGShijklm>~}|{zyxwvutsrqpon None @In cabal a self dependency probably means the library is needed C while building the executables. In debian it would mean that the E package needs an earlier version of itself to build, so we use this " to filter such dependencies out. Debian packages don'.t have per binary package build dependencies, % so we just gather them all up here. 9The documentation dependencies for a package include the 9 documentation package for any libraries which are build > dependencies, so we have access to all the cross references. BThe Debian build dependencies for a package include the profiling C libraries and the documentation packages, used for creating cross A references. Also the packages associated with extra libraries. >Turn a cabal dependency into debian dependencies. The result A needs to correspond to a single debian package to be installed, ' so we will return just an OrRelation. return and of ors of rel  =Function that applies the mapping from cabal names to debian C names based on version numbers. If a version split happens at v,  this will return the ltName if <# v, and the geName if the relation  is >= v.  AGiven a control file and a DebType, look for the binary deb with / the corresponding suffix and return its name. <Build a debian package name from a cabal package name and a @ debian package type. Unfortunately, this does not enforce the D correspondence between the PackageType value and the name type, so ) it can return nonsense like (SrcPkgName libghc-debian-dev). *                      None;Assemble all the links by package and output one file each BTurn the Debianization into a list of files, making sure the text 4 associated with each path is unique. Assumes that 8 finalizeDebianization has already been called. (Yes, I'm E considering building one into the other, but it is handy to look at A the Debianization produced by finalizeDebianization in the unit  tests.)  NoneBCreate equals dependencies. For each pair (A, B), use dpkg-query  to find out B'5s version number, version B. Then write a rule into  P'?s .substvar that makes P require that that exact version of A, @ and another that makes P conflict with any older version of A. UAdd a debian binary package to the debianization containing a cabal executable file. kAdd a debian binary package to the debianization containing a cabal executable file set up to be a server. mAdd a debian binary package to the debianization containing a cabal executable file set up to be a web site. rAdd a debian binary package to the debianization containing a cabal executable file set up to be a backup script. =The Cabal package has one synopsis and one description field > for the entire package, while in a Debian package there is a < description field (of which the first line is synopsis) in ? each binary package. So the cabal description forms the base 6 of the debian description, each of which is amended. FA configuration file for the logrotate facility, installed via a line  in debianFiles. None ?Now that we know the build and data directories, we can expand ? some atoms into sets of simpler atoms which can eventually be E turned into the files of the debianization. The original atoms are > not removed from the list because they may contribute to the B debianization in other ways, so be careful not to do this twice, E this function is not idempotent. (Exported for use in unit tests.) <Create a package to hold any executables and data files not ! assigned to some other package.     None"CTry to input a file and if successful add it to the debianization. 3Look for a field and apply a function to its value Run the package's configuration script. %=Try to read the license file specified in the cabal package, > otherwise return a text representation of the License field. &FTry to compute the debian maintainer from the maintainer field of the C cabal package, or from the value returned by getDebianMaintainer. !"#$%&!"#$%&!"#$%&!"#$%&None(!Options that modify other atoms. -Process a --executable command line argument '( '('('( None)BExpand the contents of the .substvars file for a library package. / Each cabal package corresponds to a directory  name- version,  either in usr lib or in usrlibhaskell-packagesghc/ lib. In B that directory is a compiler subdirectory such as ghc-6.8.2. In > the ghc subdirectory is one or two library files of the form  libHS name- version .a and libHS name- version_p.a. We can @ determine the debian package names by running dpkg -S on these  names, or examining the varlibdpkginfo/*.list files. From C these we can determine the source package name, and from that the  documentation package name. )CThe type of deb we want to write substvars for - Dev, Prof, or Doc    )))   None*Add a VersionSplits value to atoms that maps the given cabal  name pname to the given debian name dname. +Map the versions of pname less than ver to the given debian  name ltname. *+*+*+*+ Safe-Inferred,Format the output of  contextDiff to look approximately like the " output of the unix diff command. ,,,, Safe-Inferred-?Do a grouped diff and then turn it into a list of hunks, where ? each hunk is a grouped diff with at most N elements of common  context around each one. .?Group the elements whose adjacent pairs satisfy the predicate. D Differs from groupBy because the predicate does not have to define  a total ordering. -.-.-.-.None /3The main function for the cabal-debian executable. 0<Compile the given arguments into an Atoms value and run the 6 debianize function. This is basically equivalent to  cabal-debian  --debianize7, except that the command line arguments come from the  function parameter. 1Put an argument list into the  CABALDEBIAN environment variable " and then run the script in debian/"Debianize.hs. If this exists and = succeeds the return value is True, it may be assumed that a E debianization was created in the debian subdirectory of the current C directory. This is used to create customized debianizations that > are to sophisticated for the command line argument interface + available to the cabal-debian executable.  =Insert a value for CABALDEBIAN into the environment that the ; withEnvironment* functions above will find and use. E.g.  putEnvironmentFlags [ --dry-run,  --validate] (debianize defaultFlags) 24Call runDebianize with the given working directory. 3Depending on the options in atoms, either validate, describe, ' or write the generated debianization. 47Given an Atoms value, get any additional configuration : information from the environment, read the cabal package $ description and possibly the debian/changelog file, then generate A and return the new debianization (along with the data directory / computed from the cabal package description.) Set the debianization'+s version info - everything that goes into E the new changelog entry, source package name, exact debian version, / log comments, maintainer name, revision date. BCombine various bits of information to produce the debian version = which will be used for the debian package. If the override E parameter is provided this exact version will be used, but an error B will be thrown if that version is unusably old - i.e. older than D the cabal version of the package. Otherwise, the cabal version is D combined with the given epoch number and revision string to create  a version. @Convert the extraLibs field of the cabal build info into debian B binary package names and make them dependendencies of the debian " devel package (if there is one.) 5%Write the files of the debianization d to the directory top. 7&Compare the existing debianization in top to the generated one  new1, returning a string describing the differences. 8Don'8t change anything, just make sure the new debianization = matches the existing debianization in several particulars - D specifically, version number, and source and binary package names. /01 234 current date  copyright  maintainer Default standards version Debianization specification New debianization 5678 /012345678 /012345678/01 2345678None9A suitable defaultAtoms value for the debian repository. @Create a Debianization based on a changelog entry and a license @ value. Uses the currently installed versions of debhelper and 0 debian-policy to set the compatibility levels. 9 !"#$%&'()*+999 !"#$%&'()*+None'  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopwxyz{|}~      !"#$%&'()/0123456789None:;:;:;:;, !"#$%&'()*+,-./00123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeffghijkklmnopqrrstuvvwxyz{{|}~                                   ! " # $ % & ' ( ) *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWXYZ[\]^_ `abcade f g h i j k l m n o p q r s t u v w x y z { | } ~                                                              t                                                                !"#$%&'()*+,-./01cabal-debian-3.4Distribution.Version.InvertDebian.Orphans Debian.PolicyDebian.Debianize.UtilityDebian.Debianize.TypesDebian.Debianize.Interspersed$Debian.Debianize.Types.VersionSplitsDebian.Debianize.ControlFileDebian.Debianize.BundledDebian.Debianize.AtomsDebian.Debianize.DependenciesDebian.Debianize.FilesDebian.Debianize.GoodiesDebian.Debianize.FinalizeDebian.Debianize.InputDebian.Debianize.OptionsDebian.Debianize.SubstVarsDebian.Debianize.VersionSplitsData.Algorithm.Diff.PrettyData.Algorithm.Diff.ContextDebian.Debianize.DebianizeDebian.Debianize.TestsDebian.Debianize.DetailsDebian.DebianizeinvertVersionRangeinvertVersionIntervals dropPrefixAreaNonFreeContribMainSection AreaSection MainSectionPackageArchitecturesNamesAnyAllPackagePriorityExtraOptionalStandard ImportantRequired SourceFormatQuilt3Native3StandardsVersiondatabaseDirectoryapacheLogDirectoryapacheErrorLogapacheAccessLogserverLogDirectory serverAppLogserverAccessLogappLogBaseNameerrorLogBaseNameaccessLogBaseNamedebianPackageVersiongetDebhelperCompatLevelgetDebianStandardsVersionparseStandardsVersionreadSourceFormat readPriorityparsePackageArchitectures readSectiongetDebianMaintainerhaskellMaintainerparseUploadersparseMaintainerDebMapbuildDebVersionMap!trim strictReadF replaceFile modifyFilediffFileremoveIfExists dpkgFileMap debOfFilecond readFile' readFileMaybeshowDeps showDeps'withCurrentDirectorygetDirectoryContents' setMapMaybezipMaps foldEmptymaybeLindentDebTypeDocProfDev DebActionSubstVar DebianizeUsage InstallFileexecName sourceDirdestDirdestNameServerhostnameport headerMessageretry serverFlags installFileSitedomain serverAdminserver PackageInfo cabalNamedevDebprofDebdocDebTopunTop Interspersedleftmostpairs foldTriples foldInverted foldArounds foldBetweens VersionSplits makePackage insertSplitpackageRangesFromVersionSplitsdoSplitsknownVersionSplits PackageTypeCabalSource' UtilitiesExec Documentation Profiling DevelopmentPackageRelationsdepends recommendssuggests preDependsbreaks conflicts provides_ replaces_ builtUsingBinaryDebDescriptionpackage architecture binarySectionbinaryPriority essential description relations XFieldDestCSBXFieldVersionControlSpecVCSSvnVCSMtnVCSHgVCSGitVCSDarcsVCSCvsVCSBzrVCSArch VCSBrowserSourceDebDescriptionsource maintainer changedBy uploadersdmUploadAllowedprioritysectionstandardsVersionhomepage vcsFieldsxFields buildDependsbuildConflictsbuildDependsIndepbuildConflictsIndepbinaryPackagesnewSourceDebDescriptionnewSourceDebDescription'newBinaryDebDescriptionmodifyBinaryDeb packageArch ghcBuiltInAtoms verbositydryRunvalidate debActionflagswarningcompilerVersionpackageDescriptionbuildDirdataDircompiler extraLibMapexecMapcabalFlagAssignments debianNameMapepochMap executable serverInfowebsitebackups apacheSitemissingDependenciesutilsPackageNamesourcePackageNamerevision debVersion packageInfo omitLTDepsnoProfilingLibrarynoDocumentationLibrary copyrightsourceArchitecturebinaryArchitecturessourcePrioritybinaryPriorities sourceSectionbinarySections buildDepsbuildDepsIndepreplacesprovides extraDevDeps rulesHeadrulesFragmentspostInstpostRmpreInstpreRmcompat sourceFormatwatch changelogcommentscontrol standardslogrotateStanzalinkinstall installTo installDatafileinstallCabalExecinstallCabalExecTo installDir installInitintermediateFilesselfDependencydebDepscabalDependenciesallBuildDepends putBuildDeps dependencies debianName debianName'debNameFromType getRulesHead filterMissingbinaryPackageDepsbinaryPackageConflictsbinaryPackageReplacesbinaryPackageProvides toFileMaptightDependencyFixup doExecutabledoServer doWebsite doBackupsdescribedebianDescriptionoldClckwrksSiteFlagsoldClckwrksServerFlags watchAtom siteAtoms serverAtoms backupAtoms execAtomsfinalizeDebianizationinputDebianizationinputDebianizationFileinputChangeLoginputCabalizationinputLicenseFileinputMaintainer compileArgsoptions substvarsmapCabal splitCabal prettyDiff contextDiffgroups cabalDebian callDebianize runDebianize runDebianize' debianize debianizationwriteDebianizationdescribeDebianizationcompareDebianizationvalidateDebianizationtestsdebianDefaultAtomsseereasonDefaultAtoms$fPrettyDebianVersion$fPrettyVersion$fPrettyVersionRange$fPrettyNameAddr$fPrettyLicense $fPrettyText$fOrdPackageDescription$fOrdExecutable $fPrettyArea$fPrettySection$fPrettyPackageArchitectures$fPrettyPackagePriority$fPrettySourceFormat$fPrettyStandardsVersionremoveFileIfExistsremoveDirectoryIfExistsSplits_splits_test1_test2$fInterspersedSplitsDouble[] oldestPackagesplits$$fInterspersedVersionSplits[]VersionnewPackageRelations ghcBuiltInsbaseGHC.Num-GHC.Base.ghc741BuiltInsghc740BuiltInsBundledvghc763BuiltInsghc762BuiltInsghc761BuiltInsghc721BuiltInsghc701BuiltInsghc683BuiltInsghc682BuiltInsghc681BuiltInsghc661BuiltIns ghc66BuiltInsFlags verbosity_dryRun_ validate_ debAction_DebAtom DevDependsReplacesProvides ConflictsDepends DHBackups DHWebsiteDHServer DHExecutable DHInstallInit DHInstallDirDHInstallCabalExecToDHInstallCabalExecDHFile DHInstallData DHInstallTo DHInstall DHDescription DHSection DHPriorityDHArchDHPreRm DHPreInstDHPostRm DHPostInstDHLinkDHLogrotateStanza DHApacheSite DebControl DebCopyright DebCompatDebPackageInfo EpochMapping ExecMappingExtraLibMappingMissingDependency BuildDepIndepBuildDepSourcePackageName DebianNameMap DebVersion OmitLTDeps DebRevisionDHFlagsDHCabalFlagAssignments DHMaintainerDebLogComments DebChangeLogUtilsPackageNameWarningDebRulesFragment DebRulesHeadDHIntermediateDebWatchDebSourceFormatDataDirBuildDir DHCompilerDHPackageDescriptionCompilerVersionNoProfilingLibraryNoDocumentationLibrarypartitionAtomspartitionAtoms' modifyAtoms' DebAtomKeyBinarySource defaultFlags insertAtom insertAtoms foldAtoms deleteAtoms $fMonoidAtomsdocDependenciesbuildDependencies canonical mkPkgNameRelsRelunRelOrunOrAndunAnd Dependency_ ExtraLibsPkgConfigDepends BuildTools BuildDependsunboxDependencydebianBuildDepsdebianBuildDepsIndep dependencyadaptaptFileanyrelanyrel'convert' mkPkgName'debianBaseNamelinkssourceFormatFiles watchFile intermediatesinstallsdirsinit logrotate postinstFiles postrmFiles preinstFiles prermFilesrules controlFile relFieldsdepFielddebianDescriptionBaseserverLogrotate' showCommand translate fileAtoms fileAtoms'makeUtilsPackagecabalExecBinaryPackagebinaryPackageRelations librarySpecsdocSpecsParagraph librarySpecmakeUtilsAtoms finalizeAtoms expandAtomsfindMap autoreconfinputSourceDebDescriptionparseSourceDebDescriptionparseBinaryDebDescriptionread' stripFieldrelsyesinputAtomsFromDirectory inputAtomsreadLink readInstallreadDirintToVerbosity'executableOption parseDepsflagListb substvars'libPaths packageInfo'putEnvironmentArgs versionInfoconvertVersionaddExtraLibDependenciescompileEnvironmentArgscompileCommandlineArgsdebianization' defaultAtomsnewDebianizationChange UnchangedModifiedDeletedCreatednewDebianization'test1test2test3test4test5copyFirstLogEntry copyChangelogtest6test7test8test9diffMapsdiffDebianizations testEntry