cabal-debian 5.4.3 → 5.4.4
raw patch · 8 files changed
+32/−39 lines, 8 filesdep ~CabalPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: Cabal
API changes (from Hackage documentation)
- Debian.Debianize: Names :: [String] -> PackageArchitectures
+ Debian.Debianize: Names :: [Arch] -> PackageArchitectures
- Debian.Policy: Names :: [String] -> PackageArchitectures
+ Debian.Policy: Names :: [Arch] -> PackageArchitectures
Files
- Tests.hs +10/−3
- cabal-debian.cabal +3/−3
- src/Debian/Debianize/Bundled.hs +2/−0
- src/Debian/Debianize/CabalInfo.hs +0/−6
- src/Debian/Debianize/CopyrightDescription.hs +0/−6
- src/Debian/Debianize/Finalize.hs +0/−10
- src/Debian/Debianize/Output.hs +3/−3
- src/Debian/Policy.hs +14/−8
Tests.hs view
@@ -645,7 +645,9 @@ new <- withCurrentDirectory inTop $ newFlags >>= newCabalInfo >>= either (error "test9 - newCabalInfo failed") (execCabalT (debianize (defaultAtoms >> customize)))- let Just (ChangeLog (entry : _)) = view (debInfo . D.changelog) new+ let entry = case view (debInfo . D.changelog) new of+ Just (ChangeLog (x : _)) -> x+ _ -> error "unexpected changelog" old <- withCurrentDirectory outTop $ newFlags >>= execDebianT (inputDebianization >> copyChangelogDate (logDate entry)) . D.makeDebInfo diff <- diffDebianizations old (view debInfo new) assertEmptyDiff label diff)@@ -683,7 +685,9 @@ TestCase (do let inTop = "test-data/archive/input" outTop = "test-data/archive/output" old <- withCurrentDirectory outTop $ newFlags >>= execDebianT inputDebianization . D.makeDebInfo- let Just (ChangeLog (entry : _)) = view D.changelog old+ let entry = case view D.changelog old of+ Just (ChangeLog (x : _)) -> x+ _ -> error "unexpected changelog" new <- withCurrentDirectory inTop $ newFlags >>= newCabalInfo >>= react entry diff <- diffDebianizations old (view debInfo new)@@ -707,7 +711,10 @@ copyChangelogDate :: Monad m => String -> DebianT m () copyChangelogDate date =- D.changelog %= (\ (Just (ChangeLog (entry : older))) -> Just (ChangeLog (entry {logDate = date} : older)))+ D.changelog %= (mapped %~ substDate)+ where+ substDate (ChangeLog (entry : older)) = ChangeLog (entry {logDate = date} : older)+ substDate (ChangeLog []) = ChangeLog [] data Change k a = Created k a
cabal-debian.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 Name: cabal-debian-Version: 5.4.3+Version: 5.4.4 Copyright: Copyright (c) 2007-2014, David Fox, Jeremy Shaw; 2017-2026 Clint Adams License: BSD-3-Clause License-File: LICENSE@@ -140,7 +140,7 @@ GHC-Options: -Wall Build-Depends: base >= 4.17 && < 5,- Cabal >= 3.0 && < 3.17,+ Cabal >= 3.2 && < 3.17, containers, data-default, Diff >= 0.3.1 && < 2,@@ -218,7 +218,7 @@ Build-Depends: base >= 4.17 && < 5, cabal-debian,- Cabal >= 3.0 && < 3.17,+ Cabal >= 3.2 && < 3.17, containers, debian >= 3.95, Diff >= 0.3.1 && < 2,
src/Debian/Debianize/Bundled.hs view
@@ -167,6 +167,7 @@ missing (Just "9.0.2") = Set.fromList ["bin-package-db", "hoopl"] missing (Just "9.4.6") = Set.fromList ["bin-package-db", "hoopl"] missing (Just "9.6.6") = Set.fromList ["bin-package-db", "hoopl"]+ missing (Just "9.10.3") = Set.fromList ["bin-package-db", "hoopl"] missing _ = mempty extra (Just "7.8.4") = Set.fromList ["haskell2010","haskell98","old-locale","old-time"] extra (Just "8.0.1") = Set.fromList ["ghc-boot","ghc-boot-th","ghci"]@@ -175,6 +176,7 @@ extra (Just "9.0.2") = Set.fromList ["exceptions", "ghc-bignum", "ghc-boot", "ghc-boot-th", "ghc-compact", "ghc-heap", "ghci", "libiserv", "mtl", "parsec", "stm", "text"] extra (Just "9.4.6") = Set.fromList ["exceptions", "ghc-bignum", "ghc-boot", "ghc-boot-th", "ghc-compact", "ghc-heap", "ghci", "libiserv", "mtl", "parsec", "stm", "text"] extra (Just "9.6.6") = Set.fromList ["Cabal-syntax","exceptions","ghc-bignum","ghc-boot","ghc-boot-th","ghc-compact","ghc-heap","ghci","libiserv","mtl","parsec","rts","stm","system-cxx-std-lib","text"]+ extra (Just "9.10.3") = Set.fromList ["Cabal-syntax","exceptions","ghc-bignum","ghc-boot","ghc-boot-th","ghc-compact","ghc-experimental","ghc-heap","ghc-internal","ghc-platform","ghc-toolchain","ghci","mtl","os-string","parsec","rts","semaphore-compat","stm","system-cxx-std-lib","text"] extra _ = mempty assertEqual "Bundled4" (missing ver, extra ver)
src/Debian/Debianize/CabalInfo.hs view
@@ -36,9 +36,7 @@ import Debian.Version (DebianVersion) import Distribution.Package (PackageName) import Distribution.PackageDescription as Cabal (PackageDescription(homepage))-#if MIN_VERSION_Cabal(3,2,0) import qualified Distribution.Utils.ShortText as ST-#endif import Prelude hiding (init, init, log, log, null) -- | Bits and pieces of information about the mapping from cabal package@@ -88,11 +86,7 @@ x | Text.null x -> Nothing x -> Just x) (makeCabalInfo flags' pkgDesc)-#if MIN_VERSION_Cabal(3,2,0) toText = pack . ST.fromShortText-#else- toText = pack-#endif makeCabalInfo :: Flags -> PackageDescription -> CabalInfo makeCabalInfo fs pkgDesc =
src/Debian/Debianize/CopyrightDescription.hs view
@@ -52,9 +52,7 @@ import qualified Distribution.License as Cabal (License(UnknownLicense)) import qualified Distribution.Package as Cabal import qualified Distribution.PackageDescription as Cabal (PackageDescription(licenseFiles, copyright, licenseRaw, package, maintainer))-#if MIN_VERSION_Cabal(3,2,0) import qualified Distribution.Utils.ShortText as ST-#endif #if MIN_VERSION_Cabal(3,6,0) import qualified Distribution.Utils.Path as DUP #endif@@ -292,11 +290,7 @@ } where toText =-#if MIN_VERSION_Cabal(3,2,0) pack . ST.fromShortText-#else- pack-#endif {- -- We don't really have a way to associate licenses with
src/Debian/Debianize/Finalize.hs view
@@ -53,9 +53,7 @@ import Distribution.PackageDescription as Cabal (allBuildInfo, author, BuildInfo(buildable, extraLibs), Executable(buildInfo, exeName), FlagName, mkFlagName, unFlagName, maintainer, PackageDescription(testSuites, description)) import Distribution.Types.UnqualComponentName import Distribution.PackageDescription as Cabal (PackageDescription(dataFiles, {-description,-} executables, library, package, synopsis))-#if MIN_VERSION_Cabal(3,2,0) import qualified Distribution.Utils.ShortText as ST-#endif import Prelude hiding (init, log, map, unlines, unlines, writeFile) import System.Directory (doesFileExist) import System.FilePath ((<.>), (</>), makeRelative, splitFileName, takeDirectory, takeFileName)@@ -261,11 +259,7 @@ pkgDesc <- use A.packageDescription maintainerOption <- use (A.debInfo . D.maintainerOption) uploadersOption <- use (A.debInfo . D.uploadersOption)-#if MIN_VERSION_Cabal(3,2,0) let toString = ST.fromShortText-#else- let toString = id-#endif cabalAuthorString = takeWhile (\ c -> c /= ',' && c /= '\n') (toString (Cabal.author pkgDesc)) cabalMaintainerString = takeWhile (\ c -> c /= ',' && c /= '\n') (toString (Cabal.maintainer pkgDesc)) cabalMaintainerString' = cabalAuthorString <> " <" <> cabalMaintainerString <> ">"@@ -377,11 +371,7 @@ desc' :: [String] desc' = List.map addDot . stripWith List.null $ fmap (dropWhileEnd isSpace) $ lines $ toString $ Cabal.description p addDot line = if List.null line then "." else line-#if MIN_VERSION_Cabal(3,2,0) toString = ST.fromShortText-#else- toString = id-#endif -- | Make sure there is a changelog entry with the version number and -- source package name implied by the debianization. This means
src/Debian/Debianize/Output.hs view
@@ -29,7 +29,7 @@ import Data.Algorithm.DiffContext (getContextDiff, prettyContextDiff) #endif import Data.Map as Map (elems, toList)-import Data.Maybe (fromMaybe)+import Data.Maybe (fromMaybe, fromJust) import Data.Text as Text (split, Text, unpack) import Debian.Debianize.CabalInfo (newCabalInfo) import Debian.Changes (ChangeLog(..), ChangeLogEntry(..))@@ -166,8 +166,8 @@ -- describing the differences. compareDebianization :: D.DebInfo -> D.DebInfo -> [String] compareDebianization old new =- let ~(Just oldFiles) = evalDebianT debianizationFileMap (canonical old)- ~(Just newFiles) = evalDebianT debianizationFileMap (canonical new) in+ let ~(oldFiles) = fromJust $ evalDebianT debianizationFileMap (canonical old)+ ~(newFiles) = fromJust $ evalDebianT debianizationFileMap (canonical new) in elems $ zipMaps doFile oldFiles newFiles where doFile :: FilePath -> Maybe Text -> Maybe Text -> Maybe String
src/Debian/Policy.hs view
@@ -48,9 +48,11 @@ import Control.Monad (mplus) import Data.Char (isSpace, toLower) import Data.Generics (Data, Typeable)-import Data.List (groupBy, intercalate)+import Data.List (groupBy) import Data.Maybe (fromMaybe, mapMaybe) import Data.Text (pack, strip, Text, unpack)+import Debian.Arch (parseArch, prettyArch)+import qualified Debian.Arch as Arch import Debian.Debianize.Prelude (read') import Debian.Pretty (PP(..)) import Debian.Relation (BinPkgName)@@ -64,7 +66,7 @@ import System.Process (readProcess) import Text.Parsec (parse) import Text.Parsec.Rfc2822 (address, NameAddr(..))-import Text.PrettyPrint.HughesPJClass (text)+import Text.PrettyPrint.HughesPJClass (text, (<+>)) import Distribution.Pretty (Pretty(pretty)) import Text.Read (readMaybe) @@ -181,20 +183,21 @@ -- | The architectures for which a binary deb can be built. data PackageArchitectures- = All -- ^ The package is architecture independenct- | Any -- ^ The package can be built for any architecture- | Names [String] -- ^ The list of suitable architectures+ = All -- ^ The package is architecture independenct+ | Any -- ^ The package can be built for any architecture+ | Names [Arch.Arch] -- ^ The list of suitable architectures deriving (Read, Eq, Ord, Show, Data, Typeable) instance Pretty (PP PackageArchitectures) where pretty (PP All) = text "all" pretty (PP Any) = text "any"- pretty (PP (Names xs)) = text $ intercalate " " xs+ pretty (PP (Names xs)) = foldr ((<+>) . prettyArch) mempty xs parsePackageArchitectures :: String -> PackageArchitectures parsePackageArchitectures "all" = All parsePackageArchitectures "any" = Any-parsePackageArchitectures s = error $ "FIXME: parsePackageArchitectures " ++ show s+parsePackageArchitectures "source" = error $ "'source' does not make sense here"+parsePackageArchitectures s = Names . map parseArch . words $ s data Section = MainSection String -- Equivalent to AreaSection Main s?@@ -313,7 +316,10 @@ -- | Maintainer is a mandatory field, so we need a value we can use -- when all else fails. maintainerOfLastResort :: NameAddr-Right maintainerOfLastResort = parseMaintainer "nobody <nobody@nowhere>"+maintainerOfLastResort =+ case parseMaintainer "nobody <nobody@nowhere>" of+ Left _ -> error "fatal error in parseMaintainer"+ Right na -> na -- | Official Debian license types as described in -- <https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/#license-specification>.