packages feed

cabal-debian 3.0.5 → 3.0.7

raw patch · 7 files changed

+608/−28 lines, 7 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Debian.Debianize.Input: inputCopyright :: PackageDescription -> IO Text
+ Debian.Debianize.Input: inputCopyright :: PackageDescription -> IO (Maybe Text)

Files

cabal-debian.cabal view
@@ -1,5 +1,5 @@ Name:           cabal-debian-Version:        3.0.5+Version:        3.0.7 License:        BSD3 License-File:   debian/copyright Author:         David Fox <dsf@seereason.com>@@ -9,6 +9,9 @@ Build-Type:     Simple Synopsis:       Create a debianization for a cabal package Cabal-Version: >= 1.8+Extra-Source-Files:+  debian/changelog,+  debian/Debianize.hs Description:  Tool for creating debianizations of Haskell packages based on the .cabal  file.  If apt-file is installed it will use it to discover what is the
+ debian/Debianize.hs view
@@ -0,0 +1,55 @@+{-# LANGUAGE OverloadedStrings #-}+import Data.Lens.Lazy+import Data.Map as Map (insertWith)+import Data.Maybe (fromMaybe)+import Data.Set as Set (insert, union, singleton)+import Data.Text as Text (intercalate)+import Debian.Debianize as Atoms+import Debian.Changes (ChangeLog(..), ChangeLogEntry(..))+import Debian.Relation (BinPkgName(BinPkgName), Relation(Rel), VersionReq(SLT))+import Debian.Version (parseDebianVersion)+import Prelude hiding (log)++main :: IO ()+main =+    do log <- inputChangeLog "debian"+       new <- debianization "."+               (modL control (\ y -> y {homepage = Just "http://src.seereason.com/cabal-debian"}) $+                setL changelog (Just log) $+                setL compat (Just 7) $+                setL standards (Just (StandardsVersion 3 9 3 Nothing)) $+                setL sourceFormat (Just Native3) $+                -- modL extraDevDeps (Set.insert (BinPkgName "debian-policy")) $+                setL utilsPackageName (Just (BinPkgName "cabal-debian")) $+                modL depends (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "apt-file") Nothing Nothing))) $+                modL Atoms.depends (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "debian-policy") Nothing Nothing))) $+                modL Atoms.depends (Map.insertWith union (BinPkgName "libghc-cabal-debian-dev") (singleton (Rel (BinPkgName "debian-policy") Nothing Nothing))) $+                modL conflicts (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "haskell-debian-utils") (Just (SLT (parseDebianVersion ("3.59" :: String)))) Nothing))) $+                modL description (Map.insertWith (error "test7") (BinPkgName "cabal-debian")+                                        (Text.intercalate "\n"+                                         [ "Create a debianization for a cabal package"+                                         , " Tool for creating debianizations of Haskell packages based on the .cabal"+                                         , " file.  If apt-file is installed it will use it to discover what is the"+                                         , " debian package name of a C library."+                                         , " ."+                                         , "  Author: David Fox <dsf@seereason.com>"+                                         , "  Upstream-Maintainer: David Fox <dsf@seereason.com>" ])) $+                defaultAtoms)+       old <- inputDebianization "."+       case compareDebianization old (copyFirstLogEntry old new) of+         "" -> return ()+         s -> error $ "Debianization mismatch:\n" ++ s++       -- This would overwrite the existing debianization rather than+       -- just make sure it matches:+       -- writeDebianization "." new++-- | This copies the first log entry of deb1 into deb2.  Because the+-- debianization process updates that log entry, we need to undo that+-- update in order to get a clean comparison.+copyFirstLogEntry :: Atoms -> Atoms -> Atoms+copyFirstLogEntry deb1 deb2 =+    modL changelog (const (Just (ChangeLog (hd1 : tl2)))) deb2+    where+      ChangeLog (hd1 : _) = fromMaybe (error "Missing debian/changelog") (getL changelog deb1)+      ChangeLog (_ : tl2) = fromMaybe (error "Missing debian/changelog") (getL changelog deb2)
+ debian/changelog view
@@ -0,0 +1,512 @@+haskell-cabal-debian (3.0.7) unstable; urgency=low++  * Fix to copyright/license code+  * have the init script load /etc/default/packagename if available+  * Add an alternative function to showCommandForUser (called showCommand)+    that uses double quotes instead of single quotes so you can reference+    shell variables.++ -- David Fox <dsf@seereason.com>  Wed, 20 Feb 2013 09:29:11 -0800++haskell-cabal-debian (3.0.6) unstable; urgency=low++  * When packaging a web site or server, don't add code to the postinst+    to start a server, it gets generated by debhelper.+  * Add the changelog and the Debianize.hs file to extra-source-files.+  * Add HTTP=1 to the list of known epoch mappings.++ -- David Fox <dsf@seereason.com>  Thu, 14 Feb 2013 14:41:17 -0800++haskell-cabal-debian (3.0.5) unstable; urgency=low++  * Compatibility with ghc-7.4++ -- David Fox <dsf@seereason.com>  Wed, 13 Feb 2013 10:48:19 -0800++haskell-cabal-debian (3.0.4) unstable; urgency=low++  * Add dependency on debian-policy, so we can compute the latest+    standards-version.+  * Documentation improvements+  * Test case improvements+  * Error message improvements++ -- David Fox <dsf@seereason.com>  Sun, 10 Feb 2013 11:03:55 -0800++haskell-cabal-debian (3.0.3) unstable; urgency=low++  * Due to a typo, the noDocumentationLibrary lens was turning off+    profiling rather than documentation.++ -- David Fox <dsf@seereason.com>  Fri, 08 Feb 2013 17:14:09 -0800++haskell-cabal-debian (3.0.2) unstable; urgency=low++  * Fix argument and exception handling in cabal-debian+  * Make Standards-Version field non-mandatory+  * Make sure every binary deb paragraph has a non-empty description++ -- David Fox <dsf@seereason.com>  Thu, 07 Feb 2013 10:03:25 -0800++haskell-cabal-debian (3.0.1) unstable; urgency=low++  * Don't build Debian version numbers with revision (Just "").+  * Output the descriptions of the binary packages.++ -- David Fox <dsf@seereason.com>  Tue, 05 Feb 2013 14:48:33 -0800++haskell-cabal-debian (3.0) unstable; urgency=low++  * Moved the Distribution.Debian modules to Debian.Cabal and+    Debian.Debianize.+  * Refactored the debianize function for easier testing+  * Added test cases.+  * Add a Debianization type that intends to fully describe a debian+    package, with functions to read, build, modify, and write a+    Debianization.++ -- David Fox <dsf@seereason.com>  Wed, 26 Dec 2012 05:45:35 -0800++haskell-cabal-debian (2.6.3) unstable; urgency=low++  * Fix pretty printing of Relations (i.e. dependency lists.)  There+    is an instance for printing lists in ansi-wl-pprint which prevents+    us from writing customized Pretty instances for type aliases like+    Relations, AndRelation, and OrRelation.++ -- David Fox <dsf@seereason.com>  Fri, 04 Jan 2013 09:30:48 -0800++haskell-cabal-debian (2.6.2) unstable; urgency=low++  * Fix a bug constructing the destination pathnames that was dropping+    files that were supposed to be installed into packages.++ -- David Fox <dsf@seereason.com>  Thu, 20 Dec 2012 06:49:25 -0800++haskell-cabal-debian (2.6.1) unstable; urgency=low++  * Remove the modifyAtoms field from the Flags record, we want to+    be able to create instances like Read and Show for this type.+    The modifyAtoms function is now passed separately to debianize.+  * The flags field of Server was renamed serverFlags because the+    newly exported Config record has a flags field.++ -- David Fox <dsf@seereason.com>  Wed, 19 Dec 2012 09:45:22 -0800++haskell-cabal-debian (2.5.10) unstable; urgency=low++  * Filter cabal self dependencies out before generating+    Build-Depends-Indep, just as we added code to filter them out+    of Build-Depends in version 2.5.7.++ -- David Fox <dsf@seereason.com>  Tue, 18 Dec 2012 13:23:39 -0800++haskell-cabal-debian (2.5.9) unstable; urgency=low++  * Always add +RTS -IO -RTS to server flags.++ -- David Fox <dsf@seereason.com>  Sun, 16 Dec 2012 10:40:52 -0800++haskell-cabal-debian (2.5.8) unstable; urgency=low++  * Add a builtin list for ghc-7.6.1.++ -- David Fox <dsf@seereason.com>  Sat, 15 Dec 2012 07:04:49 -0800++haskell-cabal-debian (2.5.7) unstable; urgency=low++  * Filter out cabal self-dependencies before building the debian+    dependencies.  In cabal a self dependency means you need the library+    to build an executable, while in debian it means you need an older+    version installed to build the current version.++ -- David Fox <dsf@seereason.com>  Thu, 29 Nov 2012 08:42:30 -0800++haskell-cabal-debian (2.5.6) unstable; urgency=low++  * Don't add --base-uri and --http-port arguments automatically, they can be+    computed by calling the oldClckwrksFlags function and adding the value to+    the flags field.  Clckwrks-0.3 no longer needs the --base-uri argument.++ -- David Fox <dsf@seereason.com>  Tue, 27 Nov 2012 13:34:31 -0800++haskell-cabal-debian (2.5.5) unstable; urgency=low++  * Have the debianize function return False if there is no debian/Debianize.hs file,+    but throw an exception if running it failed, so we notice bad debianization code.++ -- David Fox <dsf@seereason.com>  Tue, 27 Nov 2012 07:34:51 -0800++haskell-cabal-debian (2.5.4) unstable; urgency=low++  * Insert "SetEnv proxy-sendcl 1" line into Apache config.++ -- David Fox <dsf@seereason.com>  Tue, 20 Nov 2012 13:43:54 -0800++haskell-cabal-debian (2.5.3) unstable; urgency=low++  * Remove extra copy of binary from the executable debs+  * Add a sourcePackageName field to Flags, and a --source-package-name+    command line option.++ -- David Fox <dsf@seereason.com>  Sat, 17 Nov 2012 00:16:21 -0800++haskell-cabal-debian (2.5.2) unstable; urgency=low++  * Fix the path to where the DHInstallTo and DHInstallCabalExecTo+    DebAtoms put their files.++ -- David Fox <dsf@seereason.com>  Fri, 16 Nov 2012 18:11:45 -0800++haskell-cabal-debian (2.5.1) unstable; urgency=low++  * Add a destName field to Executable so we can give installed+    executables a different name than they had in the build.++ -- David Fox <dsf@seereason.com>  Fri, 16 Nov 2012 15:37:16 -0800++haskell-cabal-debian (2.5) unstable; urgency=low++  * Add a debName field to the Executable record, before the deb+    package name had to equal the executable name.++ -- David Fox <dsf@seereason.com>  Fri, 16 Nov 2012 12:32:39 -0800++haskell-cabal-debian (2.4.2) unstable; urgency=low++  * Move location of cabal install files from dist/build/install to+    debian/cabalInstall, the dist directory was getting wiped at bad+    moments.+  * Split the autobuilder function autobuilderDebianize into two+    new functions in cabal-debian: runDebianize and callDebianize.+  * Custom debianization code now goes in debian/Debianize.hs rather than+    in setup, so we can distinguish it failing from it not existing more+    easily.++ -- David Fox <dsf@seereason.com>  Thu, 15 Nov 2012 11:00:08 -0800++haskell-cabal-debian (2.4.1) unstable; urgency=low++  * We need to verify that debian/compat was created after running the+    debianize function, because ghc still exits with ExitSuccess++ -- David Fox <dsf@seereason.com>  Thu, 15 Nov 2012 06:34:02 -0800++haskell-cabal-debian (2.4.0) unstable; urgency=low++  * You can run a function in Setup.hs other than main using ghc -e, so we+    will use this trick to run the debianize function directly rather than+    running main.+  * Eliminate the autobuilderDebianize function.++ -- David Fox <dsf@seereason.com>  Thu, 15 Nov 2012 04:05:49 -0800++haskell-cabal-debian (2.3.4) unstable; urgency=low++  * Fix the builddir used when running the cabal-debian standalone+    executable - it was dist-cabal/build, so the resulting debianization+    had files in places where cabal didn't expect them.++ -- David Fox <dsf@seereason.com>  Tue, 13 Nov 2012 06:20:51 -0800++haskell-cabal-debian (2.3.3) unstable; urgency=low++  * Eliminate class MonadBuild and the BuildT monad.++ -- David Fox <dsf@seereason.com>  Sun, 11 Nov 2012 17:46:31 -0800++haskell-cabal-debian (2.3.2) unstable; urgency=low++  * Fix exception that was keeping changelogs from being preserved.++ -- David Fox <dsf@seereason.com>  Sat, 10 Nov 2012 10:07:50 -0800++haskell-cabal-debian (2.3.1) unstable; urgency=low++  * Fix the extension of the debhelper links files+  * Add a general mechanism for installing a file into a deb when+    we have the file's text in a String (rather than in a file.)++ -- David Fox <dsf@seereason.com>  Sat, 10 Nov 2012 07:35:09 -0800++haskell-cabal-debian (2.3) unstable; urgency=low++  * Add MonadBuild.++ -- David Fox <dsf@seereason.com>  Fri, 09 Nov 2012 12:21:14 -0800++haskell-cabal-debian (2.2.1) unstable; urgency=low++  * Add a modifyAtoms function to Flags that is applied to final list of+    DebAtom before writing the debianization.+  * Add DHApacheSite and DHInstallCabalExec atoms so atoms don't depend on+    the build directory+  * Add #DEBHELPER# and exit 0 to default web server postinst.++ -- David Fox <dsf@seereason.com>  Fri, 09 Nov 2012 10:25:32 -0800++haskell-cabal-debian (2.2.0) unstable; urgency=low++  * Append a trailing slash to the --base-uri argument passed to the+    server.  This is required by Web.Routes.Site.runSite.++ -- David Fox <dsf@seereason.com>  Thu, 08 Nov 2012 04:40:08 -0800++haskell-cabal-debian (2.1.4) unstable; urgency=low++  * Merge the Executable and Script constructors of the Executable type+  * Add a destDir field to Executable to specify the destination.++ -- David Fox <dsf@seereason.com>  Tue, 06 Nov 2012 13:24:25 -0800++haskell-cabal-debian (2.1.3) unstable; urgency=low++  * Don't append a slash to the base-uri.+  * Construct the name of the data directory in /usr/share from the cabal+    package name rather than the debian source package name.+  * Add a --self-depend flag to include a build dependency on this library+    in all generated debianizations.++ -- David Fox <dsf@seereason.com>  Tue, 06 Nov 2012 07:07:57 -0800++haskell-cabal-debian (2.1.2) unstable; urgency=low++  * Output the server support files.++ -- David Fox <dsf@seereason.com>  Tue, 06 Nov 2012 06:37:18 -0800++haskell-cabal-debian (2.1.1) unstable; urgency=low++  * Restore code that checks for version number match when validating+    a debianization.  The autobuilder can now pass the version number+    to cabal-debian, so it should match.++ -- David Fox <dsf@seereason.com>  Mon, 05 Nov 2012 17:42:32 -0800++haskell-cabal-debian (2.1.0) unstable; urgency=low++  * Enable processing of Script, Server and WebSite executables.++ -- David Fox <dsf@seereason.com>  Mon, 05 Nov 2012 12:45:42 -0800++haskell-cabal-debian (2.0.9) unstable; urgency=low++  * Add a Library section, export all the modules.++ -- David Fox <dsf@seereason.com>  Mon, 05 Nov 2012 06:41:25 -0800++haskell-cabal-debian (2.0.8) unstable; urgency=low++  * Bypass abandoned versions.++ -- David Fox <dsf@seereason.com>  Sat, 03 Nov 2012 06:13:27 -0700++haskell-cabal-debian (1.26) unstable; urgency=low++  * Don't try to update the existing debianization, except for the+    changelog where we retain entries that look older than the one+    we generate.+  * Use .install files instead of adding rules to debian/rules+  * Add --depends and --conflicts options++ -- David Fox <dsf@seereason.com>  Thu, 25 Oct 2012 12:03:49 -0700++haskell-cabal-debian (1.25) unstable; urgency=low++  * If the --disable-haddock flag is given omit the doc package from the+    control file.+  * The tarball that was uploaded to Hackage as version 1.24 had a (buggy)+    change which was not pushed to darcs.  This resolves that confusion.++ -- David Fox <dsf@seereason.com>  Sat, 16 Jun 2012 14:42:12 -0700++haskell-cabal-debian (1.24) unstable; urgency=low++  * No wonder it doesn't build on hackage - none of the source+    modules were shipped.++ -- David Fox <dsf@seereason.com>  Thu, 14 Jun 2012 08:19:19 -0700++haskell-cabal-debian (1.23) unstable; urgency=low++  * Add a --quilt option to switch from native to quilt format.+    Without this option the file debian/source/format will contain+    '3.0 (native)', with it '3.0 (quilt)'.++ -- David Fox <dsf@seereason.com>  Fri, 01 Jun 2012 05:53:36 -0700++haskell-cabal-debian (1.22) unstable; urgency=low++  * Bump version to make sure all changes are uploaded.++ -- David Fox <dsf@seereason.com>  Wed, 23 May 2012 19:54:17 -0700++haskell-cabal-debian (1.21) unstable; urgency=low++  * fix conversion of wildcards into intersected ranges++ -- David Fox <dsf@seereason.com>  Wed, 23 May 2012 19:51:34 -0700++haskell-cabal-debian (1.20) unstable; urgency=low++  * Fix generation of debian library dependencies from the Extra-Libraries+    field of the cabal file.++ -- David Fox <dsf@seereason.com>  Wed, 23 May 2012 19:50:39 -0700++haskell-cabal-debian (1.19) unstable; urgency=low++  * Handle cabal equals dependencies.++ -- David Fox <dsf@seereason.com>  Tue, 20 Mar 2012 14:34:58 -0700++haskell-cabal-debian (1.18) unstable; urgency=low++  * High level of confidence this time.  Interesting new Interspersed+    class, and an implementation of invertVersionRanges which should be+    forwarded to the Cabal folks.+  * Removes dependency on logic-classes++ -- David Fox <dsf@seereason.com>  Tue, 20 Mar 2012 08:17:25 -0700++haskell-cabal-debian (1.17) unstable; urgency=low++  * Restore code to downcase cabal package name before using it as the+    base of the debian package name.++ -- David Fox <dsf@seereason.com>  Sun, 18 Mar 2012 15:32:04 -0700++haskell-cabal-debian (1.16) unstable; urgency=low++  * Remove code that implements a special case for the debian name of the+    haskell-src-exts package.++ -- David Fox <dsf@seereason.com>  Sun, 18 Mar 2012 14:11:21 -0700++haskell-cabal-debian (1.15) unstable; urgency=low++  * Yet another stab at fixing the code for converting cabal dependencies+    to debian dependencies, with support for splitting version ranges of+    cabal files among different debian packages.++ -- David Fox <dsf@seereason.com>  Fri, 16 Mar 2012 17:59:28 -0700++haskell-cabal-debian (1.14) unstable; urgency=low++  * Don't try to strip data files+  * Use permissions 644 for data files, not 755.++ -- David Fox <dsf@seereason.com>  Wed, 07 Mar 2012 14:46:04 -0800++haskell-cabal-debian (1.13) unstable; urgency=low++  * Append the version number when constructing the directory for data+    files.++ -- David Fox <dsf@seereason.com>  Wed, 07 Mar 2012 08:56:39 -0800++haskell-cabal-debian (1.12) unstable; urgency=low++  * Include any files listed in the Data-Files field of the cabal file+    in the utils package.++ -- David Fox <dsf@seereason.com>  Tue, 06 Mar 2012 11:31:47 -0800++haskell-cabal-debian (1.11) unstable; urgency=low++  * Replace --epoch flag with --epoch-map, so we can specify epoch numbers+    for both the package being built and for dependency packages.++ -- David Fox <dsf@seereason.com>  Thu, 09 Feb 2012 07:01:19 -0800++haskell-cabal-debian (1.10) unstable; urgency=low++  * Add bundled package list for ghc 7.4.1.++ -- David Fox <dsf@seereason.com>  Sat, 04 Feb 2012 14:44:33 -0800++haskell-cabal-debian (1.9) unstable; urgency=low++  * Add --dep-map flag to allow mapping of cabal package names to the base+    of a debian package name.  This modifies the name to which the prefix+    "lib" and the suffix "-dev" are added.+  * Fix dependency generation bug introduced in 1.8.++ -- David Fox <dsf@seereason.com>  Mon, 23 Jan 2012 14:13:05 -0800++haskell-cabal-debian (1.8) unstable; urgency=low++  * Add a --dev-dep flag to make one or more packages install dependencies+    of the dev package.++ -- David Fox <dsf@seereason.com>  Mon, 23 Jan 2012 05:00:46 -0800++haskell-cabal-debian (1.7) unstable; urgency=low++  * Add info about ghc 7.4.0 pre-release.++ -- David Fox <dsf@seereason.com>  Wed, 11 Jan 2012 09:57:45 -0800++haskell-cabal-debian (1.6) unstable; urgency=low++  * Don't omit dependencies built into ghc, they should be satisfied by+    the Provides in the compiler if they are not available in the+    repository.  However, we do need to make ghc an alterantive to any+    versioned dependencies that are bundled with the compiler, since the+    built in dependencies are virtual packages and thus unversioned.++ -- David Fox <dsf@seereason.com>  Wed, 07 Dec 2011 06:10:17 -0800++haskell-cabal-debian (1.5) unstable; urgency=low++  * Fix the generation of build dependency version ranges by using an+    intermediate version range type.+  * If the version range for the cabal file touches two different debian+    package, don't try to write build dependencies that allow either one,+    it can't really be done.  Just give the allowable versions of the+    newer package (e.g. libghc-parsec3-dev rather than libghc-parsec2-dev.)++ -- David Fox <dsf@seereason.com>  Sun, 04 Dec 2011 05:59:25 -0800++haskell-cabal-debian (1.4) unstable; urgency=low++  * Add a --revision <suffix> flag which appends a (perhaps empty) string+    cabal version number to get the debian version number.  Without this+    flag the string "-1~hackage1" is appended.+  * Make it an error to specify a debian version via --deb-version that is+    older than the current cabal version.++ -- David Fox <dsf@seereason.com>  Sun, 20 Nov 2011 06:45:33 -0800++haskell-cabal-debian (1.3) unstable; urgency=low++  * Fix error message when compiler version is not in bundled package list.+  * Add bundled package list for compiler 7.0.4 (same as 7.0.3.)++ -- David Fox <dsf@seereason.com>  Sat, 08 Oct 2011 07:58:19 -0700++haskell-cabal-debian (1.2) unstable; urgency=low++  * When computing the debian name from a package's cabal name, if we+    have no particular version number we are comparing to, use the name+    from the version split that corresponds to newer version numbers.+  * Add code to make the cabal package haskell-src-exts map to the debian+    packages libghc-src-exts-dev etc.  Normally it would map to+    libghc-haskell-src-exts-dev.++ -- David Fox <dsf@seereason.com>  Thu, 06 Oct 2011 09:27:02 -0700++haskell-cabal-debian (1.1) unstable; urgency=low++  * Use propositional logic package to compute normal form for dependencies+  * Make sure to correct format of cabal package synopsis before using as debian+    package description.++ -- David Fox <dsf@seereason.com>  Fri, 30 Sep 2011 06:16:34 -0700++haskell-cabal-debian (1.0) unstable; urgency=low++  * Debianization generated by cabal-debian++ -- David Fox <dsf@seereason.com>  Sun, 18 Sep 2011 06:40:21 -0700+
src/Debian/Debianize/Debianize.hs view
@@ -153,20 +153,20 @@        return $ debianization' date copyright maint level log atoms'  debianization' :: String              -- ^ current date-               -> Text                -- ^ copyright+               -> Maybe Text          -- ^ copyright                -> NameAddr            -- ^ maintainer-               -> Int		-- ^ Default standards version+               -> Int		      -- ^ Default standards version                -> Maybe ChangeLog-               -> Atoms      -- ^ Debianization specification-               -> Atoms      -- ^ New debianization-debianization' date copyright' maint level log deb =+               -> Atoms               -- ^ Debianization specification+               -> Atoms               -- ^ New debianization+debianization' date copy maint level log deb =     finalizeDebianization $     modL compat (maybe (Just level) Just) $     modL changelog (maybe log Just) $     setL sourcePriority (Just Optional) $     setL sourceSection (Just (MainSection "haskell")) $     setL watch (Just (watchAtom (pkgName $ Cabal.package $ pkgDesc)))  $-    setL copyright (Just (Right copyright')) $+    modL copyright (maybe (finalizeCopyright copy) Just) $     versionInfo maint date $     addExtraLibDependencies $     -- Do we want to replace the atoms in the old deb, or add these?@@ -176,6 +176,8 @@     deb     where       pkgDesc = fromMaybe (error "debianization") $ getL packageDescription deb+      finalizeCopyright (Just x) = Just (Right x)+      finalizeCopyright Nothing = Just (Left (Cabal.license pkgDesc))  -- | Set the debianization's version info - everything that goes into -- the new changelog entry, source package name, exact debian version,
src/Debian/Debianize/Finalize.hs view
@@ -42,23 +42,17 @@ -- debianization in other ways, so be careful not to do this twice, -- this function is not idempotent.  (Exported for use in unit tests.) finalizeDebianization  :: Atoms -> Atoms-finalizeDebianization deb0 =-    deb'''''+finalizeDebianization atoms =+    g $ finalizeAtoms $ makeUtilsPackage $ librarySpecs $ putBuildDeps $ f $ finalizeAtoms $ atoms     where-      -- Fixme - makeUtilsPackage does stuff that needs to go through foldAtomsFinalized-      deb' = finalizeAtoms deb0-      deb'' = f deb'-      deb''' = makeUtilsPackage $ librarySpecs $ putBuildDeps $ deb''-      deb'''' = finalizeAtoms deb'''-      deb''''' = g deb'''' -- Apply tweaks to the debianization -      -- Create the binary packages+      -- Create the binary packages for the web sites, servers, backup packges, and other executables       f :: Atoms -> Atoms       f atoms = (\ atoms' -> Map.foldWithKey (\ b _ atoms'' -> cabalExecBinaryPackage b atoms'') atoms' (getL website atoms)) .                 (\ atoms' -> Map.foldWithKey (\ b _ atoms'' -> cabalExecBinaryPackage b atoms'') atoms' (getL serverInfo atoms)) .                 (\ atoms' -> Map.foldWithKey (\ b _ atoms'' -> modL binaryArchitectures (Map.insertWith (flip const) b Any) . cabalExecBinaryPackage b $ atoms'') atoms' (getL backups atoms)) .                 (\ atoms' -> Map.foldWithKey (\ b _ atoms'' -> cabalExecBinaryPackage b atoms'') atoms' (getL executable atoms)) $ atoms-      -- Apply the hints in the atoms to the debianization+      -- Turn atoms related to priority, section, and description into debianization elements       g :: Atoms -> Atoms       g atoms = (\ atoms' -> maybe atoms' (\ x -> modL control (\ y -> y {priority = Just x}) atoms') (getL sourcePriority atoms)) .                 (\ atoms' -> maybe atoms' (\ x -> modL control (\ y -> y {section = Just x}) atoms') (getL sourceSection atoms)) .
src/Debian/Debianize/Goodies.hs view
@@ -44,9 +44,18 @@ import Distribution.Text (display) import Prelude hiding (writeFile, init, unlines, log, map) import System.FilePath ((</>))-import System.Process (showCommandForUser) import Text.PrettyPrint.ANSI.Leijen (Pretty(pretty)) +showCommand cmd args =+    unwords (map translate (cmd : args))++translate :: String -> String+translate str =+    '"' : foldr escape "\"" str+    where+      escape '"' = showString "\\\""+      escape c = showChar c+ -- | This may not look like a goodie, but it incorporates knowledge -- about the debian repository - what the epoch number of HaXml is, -- the fact that the debian package name of parsec changed, etc.@@ -76,7 +85,7 @@ -- knownVersionSplits. knownEpochMappings :: Map PackageName Int knownEpochMappings =-    Map.fromList [(PackageName "HaXml", 1)]+    Map.fromList [(PackageName "HaXml", 1), (PackageName "HTTP", 1)]  -- | Create equals dependencies.  For each pair (A, B), use dpkg-query -- to find out B's version number, version B.  Then write a rule into@@ -271,6 +280,7 @@                    [ "#! /bin/sh -e"                    , ""                    , ". /lib/lsb/init-functions"+                   , ". /etc/default/" <> pack (destName exec) <> " || true"                    , ""                    , "case \"$1\" in"                    , "  start)"@@ -291,8 +301,8 @@                    , "esac"                    , ""                    , "exit 0" ]-      startCommand = pack $ showCommandForUser "start-stop-daemon" (startOptions ++ commonOptions ++ ["--"] ++ serverOptions)-      stopCommand = pack $ showCommandForUser "start-stop-daemon" (stopOptions ++ commonOptions)+      startCommand = pack $ showCommand "start-stop-daemon" (startOptions ++ commonOptions ++ ["--"] ++ serverOptions)+      stopCommand = pack $ showCommand "start-stop-daemon" (stopOptions ++ commonOptions)       commonOptions = ["--pidfile", "/var/run/" ++ destName exec]       startOptions = ["--start", "-b", "--make-pidfile", "-d", databaseDirectory b, "--exec", "/usr/bin" </> destName exec]       stopOptions = ["--stop", "--oknodo"] ++ if retry server /= "" then ["--retry=" ++ retry server ] else []@@ -314,8 +324,9 @@                           , "    /usr/sbin/a2enmod proxy_http"                           , "    service apache2 restart" ]                      else []) ++-                    [ "    service " <> pack (show (pretty b)) <> " start"-                    , "    ;;"+                    [ -- This gets done by the #DEBHELPER# code below.+                      {- "    service " <> pack (show (pretty b)) <> " start", -}+                      "    ;;"                     , "esac"                     , ""                     , "#DEBHELPER#"
src/Debian/Debianize/Input.hs view
@@ -11,6 +11,7 @@  import Debug.Trace (trace) +import Control.Applicative ((<$>)) import Control.Exception (bracket) import Control.Monad (when, foldM, filterM) import Control.Monad.Trans (MonadIO, liftIO)@@ -36,9 +37,9 @@ import Debian.Policy (Section(..), parseStandardsVersion, readPriority, readSection, parsePackageArchitectures, parseMaintainer,                       parseUploaders, readSourceFormat, getDebianMaintainer, haskellMaintainer) import Debian.Relation (Relations, BinPkgName(..), SrcPkgName(..), parseRelations)-import Distribution.License (License(..))+--import Distribution.License (License(..)) import Distribution.Package (Package(packageId))-import Distribution.PackageDescription as Cabal (PackageDescription(licenseFile, license, maintainer))+import Distribution.PackageDescription as Cabal (PackageDescription(licenseFile, maintainer)) import Distribution.PackageDescription.Configuration (finalizePackageDescription) import Distribution.PackageDescription.Parse (readPackageDescription) import Distribution.Simple.Compiler (CompilerId(..), CompilerFlavor(..), Compiler(..))@@ -270,9 +271,10 @@  -- | Try to read the license file specified in the cabal package, -- otherwise return a text representation of the License field.-inputCopyright :: PackageDescription -> IO Text-inputCopyright pkgDesc = readFile' (licenseFile pkgDesc) `catchIOError` handle-    where handle _e =+inputCopyright :: PackageDescription -> IO (Maybe Text)+inputCopyright pkgDesc = (Just <$> readFile' (licenseFile pkgDesc)) `catchIOError` (\ _ -> return Nothing)+{-+    where handle _e = return Nothing               do -- here <- getCurrentDirectory                  -- hPutStrLn stderr ("Error reading " ++ licenseFile pkgDesc ++ " from " ++ here ++ ": " ++ show _e)                  return . pack . showLicense . license $ pkgDesc@@ -291,6 +293,7 @@ showLicense OtherLicense = "Non-distributable" showLicense MIT = "MIT" showLicense (UnknownLicense _) = "Unknown"+-}  -- | Try to compute the debian maintainer from the maintainer field of the -- cabal package, or from the value returned by getDebianMaintainer.