cabal-debian 4.31.4 → 4.31.6
raw patch · 33 files changed
+173/−102 lines, 33 filesdep ~basedep ~debianPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, debian
API changes (from Hackage documentation)
+ Debian.Apt.Dependencies: CSP :: PackageNameMap a -> Relations -> (a -> Relations) -> (a -> Relations) -> (a -> (BinPkgName, DebianVersion)) -> CSP a
+ Debian.Apt.Dependencies: Complete :: Status
+ Debian.Apt.Dependencies: MissingDep :: Relation -> Status
+ Debian.Apt.Dependencies: Remaining :: AndRelation -> Status
+ Debian.Apt.Dependencies: bj :: CSP p -> Tree (State p, ConflictSet) -> Tree (State p, ConflictSet)
+ Debian.Apt.Dependencies: bt :: Labeler a
+ Debian.Apt.Dependencies: combine :: CSP p -> [(State p, ConflictSet)] -> [ConflictSet] -> ConflictSet
+ Debian.Apt.Dependencies: complete :: State a -> Bool
+ Debian.Apt.Dependencies: conflict :: CSP p -> p -> p -> Bool
+ Debian.Apt.Dependencies: conflict' :: (BinPkgName, DebianVersion) -> Relation -> Bool
+ Debian.Apt.Dependencies: conflicts :: CSP a -> a -> Relations
+ Debian.Apt.Dependencies: controlCSP :: Control -> Relations -> (Paragraph -> Relations) -> CSP Paragraph
+ Debian.Apt.Dependencies: data CSP a
+ Debian.Apt.Dependencies: data Status
+ Debian.Apt.Dependencies: depF :: Paragraph -> Relations
+ Debian.Apt.Dependencies: depFunction :: CSP a -> (a -> Relations)
+ Debian.Apt.Dependencies: distrTree :: (a -> [b]) -> b -> Tree a -> Tree b
+ Debian.Apt.Dependencies: earliestInconsistency :: CSP a -> State a -> Maybe ((BinPkgName, DebianVersion), (BinPkgName, DebianVersion))
+ Debian.Apt.Dependencies: foldTree :: (a -> [b] -> b) -> Tree a -> b
+ Debian.Apt.Dependencies: gutsyPackages :: [Char]
+ Debian.Apt.Dependencies: inhTree :: (b -> a -> b) -> b -> Tree a -> Tree b
+ Debian.Apt.Dependencies: initTree :: (a -> [a]) -> a -> Tree a
+ Debian.Apt.Dependencies: instance Eq Status
+ Debian.Apt.Dependencies: isConflict :: ConflictSet -> Bool
+ Debian.Apt.Dependencies: label :: Tree a -> a
+ Debian.Apt.Dependencies: leaves :: Tree a -> [a]
+ Debian.Apt.Dependencies: mapTree :: (a -> b) -> Tree a -> Tree b
+ Debian.Apt.Dependencies: mkSearchTree :: CSP a -> Tree (State a)
+ Debian.Apt.Dependencies: mkTree :: a -> [Tree a] -> Tree a
+ Debian.Apt.Dependencies: packageVersion :: CSP a -> a -> (BinPkgName, DebianVersion)
+ Debian.Apt.Dependencies: packageVersionParagraph :: Paragraph -> (BinPkgName, DebianVersion)
+ Debian.Apt.Dependencies: pnm :: CSP a -> PackageNameMap a
+ Debian.Apt.Dependencies: prune :: (a -> Bool) -> Tree a -> Tree a
+ Debian.Apt.Dependencies: relations :: CSP a -> Relations
+ Debian.Apt.Dependencies: search :: Labeler a -> CSP a -> [State a]
+ Debian.Apt.Dependencies: sidPackages :: [Char]
+ Debian.Apt.Dependencies: solutions :: Tree (State a, ConflictSet) -> [State a]
+ Debian.Apt.Dependencies: test :: FilePath -> String -> Labeler Paragraph -> IO ()
+ Debian.Apt.Dependencies: testCSP :: FilePath -> (Paragraph -> Relations) -> String -> (CSP Paragraph -> IO a) -> IO a
+ Debian.Apt.Dependencies: type ConflictSet = ([(BinPkgName, DebianVersion)], [Relation])
+ Debian.Apt.Dependencies: type Labeler a = CSP a -> Tree (State a) -> Tree (State a, ConflictSet)
+ Debian.Apt.Dependencies: type State a = (Status, [a])
+ Debian.Apt.Dependencies: unionCS :: [ConflictSet] -> ConflictSet
+ Debian.Apt.Dependencies: zipTreesWith :: (a -> b -> c) -> Tree a -> Tree b -> Tree c
+ Debian.Apt.Index: BZ2 :: Compression
+ Debian.Apt.Index: CheckSums :: Maybe String -> Maybe String -> Maybe String -> CheckSums
+ Debian.Apt.Index: GZ :: Compression
+ Debian.Apt.Index: Uncompressed :: Compression
+ Debian.Apt.Index: controlFromIndex :: Compression -> FilePath -> ByteString -> Either ParseError (Control' Text)
+ Debian.Apt.Index: controlFromIndex' :: Compression -> FilePath -> IO (Either ParseError (Control' Text))
+ Debian.Apt.Index: data CheckSums
+ Debian.Apt.Index: data Compression
+ Debian.Apt.Index: findContentsFiles :: (FilePath -> Bool) -> FilePath -> IO [FilePath]
+ Debian.Apt.Index: findIndexes :: FilePath -> String -> [FileTuple] -> IO [(FileTuple, Compression)]
+ Debian.Apt.Index: indexesInRelease :: (FilePath -> Bool) -> Control' Text -> [(CheckSums, Integer, FilePath)]
+ Debian.Apt.Index: instance Bounded Compression
+ Debian.Apt.Index: instance Enum Compression
+ Debian.Apt.Index: instance Eq CheckSums
+ Debian.Apt.Index: instance Eq Compression
+ Debian.Apt.Index: instance Ord Compression
+ Debian.Apt.Index: instance Read CheckSums
+ Debian.Apt.Index: instance Read Compression
+ Debian.Apt.Index: instance Show CheckSums
+ Debian.Apt.Index: instance Show Compression
+ Debian.Apt.Index: md5sum :: CheckSums -> Maybe String
+ Debian.Apt.Index: sha1 :: CheckSums -> Maybe String
+ Debian.Apt.Index: sha256 :: CheckSums -> Maybe String
+ Debian.Apt.Index: tupleFromFilePath :: FilePath -> FilePath -> IO (Maybe FileTuple)
+ Debian.Apt.Index: type Fetcher = URI -> FilePath -> Maybe UTCTime -> IO Bool
+ Debian.Apt.Index: type FileTuple = (CheckSums, Size, FilePath)
+ Debian.Apt.Index: type Size = Integer
+ Debian.Apt.Index: update :: Fetcher -> FilePath -> String -> [DebSource] -> IO [Maybe (FilePath, Compression)]
+ Debian.Apt.Methods: AuthorizationCredentials :: Site -> User -> Password -> Command
+ Debian.Apt.Methods: AuthorizationRequired :: Site -> Status
+ Debian.Apt.Methods: Capabilities :: String -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Status
+ Debian.Apt.Methods: Configuration :: [ConfigItem] -> Command
+ Debian.Apt.Methods: FetchCallbacks :: (Message -> IO ()) -> (URI -> Message -> IO ()) -> (URI -> Maybe Integer -> Maybe UTCTime -> Maybe Integer -> IO ()) -> (URI -> Maybe Integer -> Maybe UTCTime -> Maybe Integer -> Maybe FilePath -> Hashes -> Bool -> IO ()) -> (URI -> Message -> IO ()) -> (Message -> IO ()) -> (Site -> IO (Maybe (User, Password))) -> (Media -> Drive -> IO ()) -> (String -> IO ()) -> FetchCallbacks
+ Debian.Apt.Methods: GeneralFailure :: Message -> Status
+ Debian.Apt.Methods: LogMsg :: Message -> Status
+ Debian.Apt.Methods: MediaChanged :: Media -> (Maybe Bool) -> Command
+ Debian.Apt.Methods: MediaFailure :: Media -> Drive -> Status
+ Debian.Apt.Methods: Status :: URI -> Message -> Status
+ Debian.Apt.Methods: URIAcquire :: URI -> FilePath -> (Maybe UTCTime) -> Command
+ Debian.Apt.Methods: URIDone :: URI -> Maybe Integer -> Maybe UTCTime -> Maybe Integer -> Maybe FilePath -> Hashes -> Bool -> Status
+ Debian.Apt.Methods: URIFailure :: URI -> Message -> Status
+ Debian.Apt.Methods: URIStart :: URI -> Maybe Integer -> Maybe UTCTime -> Maybe Integer -> Status
+ Debian.Apt.Methods: authorizationRequiredCB :: FetchCallbacks -> Site -> IO (Maybe (User, Password))
+ Debian.Apt.Methods: cliFetchCallbacks :: FetchCallbacks
+ Debian.Apt.Methods: closeMethod :: MethodHandle -> IO ExitCode
+ Debian.Apt.Methods: data Command
+ Debian.Apt.Methods: data FetchCallbacks
+ Debian.Apt.Methods: data Status
+ Debian.Apt.Methods: debugCB :: FetchCallbacks -> String -> IO ()
+ Debian.Apt.Methods: emptyFetchCallbacks :: FetchCallbacks
+ Debian.Apt.Methods: fetch :: FetchCallbacks -> [ConfigItem] -> URI -> FilePath -> Maybe UTCTime -> IO Bool
+ Debian.Apt.Methods: filename :: Status -> Maybe FilePath
+ Debian.Apt.Methods: generalFailureCB :: FetchCallbacks -> Message -> IO ()
+ Debian.Apt.Methods: getLastModified :: FilePath -> IO (Maybe UTCTime)
+ Debian.Apt.Methods: hashes :: Status -> Hashes
+ Debian.Apt.Methods: imsHit :: Status -> Bool
+ Debian.Apt.Methods: instance Eq Command
+ Debian.Apt.Methods: instance Eq Hashes
+ Debian.Apt.Methods: instance Eq Status
+ Debian.Apt.Methods: instance Show Command
+ Debian.Apt.Methods: instance Show Hashes
+ Debian.Apt.Methods: instance Show Status
+ Debian.Apt.Methods: lastModified :: Status -> Maybe UTCTime
+ Debian.Apt.Methods: localOnly :: Status -> Bool
+ Debian.Apt.Methods: logCB :: FetchCallbacks -> Message -> IO ()
+ Debian.Apt.Methods: mediaFailureCB :: FetchCallbacks -> Media -> Drive -> IO ()
+ Debian.Apt.Methods: message :: Status -> Message
+ Debian.Apt.Methods: needsCleanup :: Status -> Bool
+ Debian.Apt.Methods: openMethod :: FilePath -> IO MethodHandle
+ Debian.Apt.Methods: pipeline :: Status -> Bool
+ Debian.Apt.Methods: preScan :: Status -> Bool
+ Debian.Apt.Methods: recvStatus :: MethodHandle -> IO Status
+ Debian.Apt.Methods: resumePoint :: Status -> Maybe Integer
+ Debian.Apt.Methods: sendCommand :: MethodHandle -> Command -> IO ()
+ Debian.Apt.Methods: sendConfig :: Status -> Bool
+ Debian.Apt.Methods: simpleFetch :: [ConfigItem] -> URI -> FilePath -> Maybe UTCTime -> IO Bool
+ Debian.Apt.Methods: singleInstance :: Status -> Bool
+ Debian.Apt.Methods: size :: Status -> Maybe Integer
+ Debian.Apt.Methods: statusCB :: FetchCallbacks -> URI -> Message -> IO ()
+ Debian.Apt.Methods: type ConfigItem = (String, String)
+ Debian.Apt.Methods: type Drive = String
+ Debian.Apt.Methods: type Header = (String, String)
+ Debian.Apt.Methods: type Media = String
+ Debian.Apt.Methods: type Message = String
+ Debian.Apt.Methods: type Password = String
+ Debian.Apt.Methods: type Site = String
+ Debian.Apt.Methods: type User = String
+ Debian.Apt.Methods: uri :: Status -> URI
+ Debian.Apt.Methods: uriDoneCB :: FetchCallbacks -> URI -> Maybe Integer -> Maybe UTCTime -> Maybe Integer -> Maybe FilePath -> Hashes -> Bool -> IO ()
+ Debian.Apt.Methods: uriFailureCB :: FetchCallbacks -> URI -> Message -> IO ()
+ Debian.Apt.Methods: uriStartCB :: FetchCallbacks -> URI -> Maybe Integer -> Maybe UTCTime -> Maybe Integer -> IO ()
+ Debian.Apt.Methods: version :: Status -> String
+ Debian.Apt.Methods: whichMethodPath :: URI -> IO (Maybe FilePath)
+ Debian.Apt.Methods: withMethodPath :: FilePath -> (MethodHandle -> IO a) -> IO a
+ Debian.Apt.Methods: withMethodURI :: URI -> (MethodHandle -> IO a) -> IO a
+ Debian.Apt.Package: addProvides :: (p -> [BinPkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p
+ Debian.Apt.Package: findProvides :: (p -> [BinPkgName]) -> [p] -> [(BinPkgName, p)]
+ Debian.Apt.Package: lookupPackageByRel :: PackageNameMap a -> (a -> (BinPkgName, DebianVersion)) -> Relation -> [a]
+ Debian.Apt.Package: packageNameMap :: (a -> BinPkgName) -> [a] -> PackageNameMap a
+ Debian.Apt.Package: type PackageNameMap a = Map BinPkgName [a]
+ Debian.Arch: All :: Arch
+ Debian.Arch: ArchCPU :: String -> ArchCPU
+ Debian.Arch: ArchCPUAny :: ArchCPU
+ Debian.Arch: ArchOS :: String -> ArchOS
+ Debian.Arch: ArchOSAny :: ArchOS
+ Debian.Arch: Binary :: ArchOS -> ArchCPU -> Arch
+ Debian.Arch: Source :: Arch
+ Debian.Arch: data Arch
+ Debian.Arch: data ArchCPU
+ Debian.Arch: data ArchOS
+ Debian.Arch: instance Data Arch
+ Debian.Arch: instance Data ArchCPU
+ Debian.Arch: instance Data ArchOS
+ Debian.Arch: instance Eq Arch
+ Debian.Arch: instance Eq ArchCPU
+ Debian.Arch: instance Eq ArchOS
+ Debian.Arch: instance Ord Arch
+ Debian.Arch: instance Ord ArchCPU
+ Debian.Arch: instance Ord ArchOS
+ Debian.Arch: instance Read Arch
+ Debian.Arch: instance Read ArchCPU
+ Debian.Arch: instance Read ArchOS
+ Debian.Arch: instance Show Arch
+ Debian.Arch: instance Show ArchCPU
+ Debian.Arch: instance Show ArchOS
+ Debian.Arch: instance Typeable Arch
+ Debian.Arch: instance Typeable ArchCPU
+ Debian.Arch: instance Typeable ArchOS
+ Debian.Arch: parseArch :: String -> Arch
+ Debian.Arch: prettyArch :: Arch -> Doc
+ Debian.Changes: ChangeLog :: [ChangeLogEntry] -> ChangeLog
+ Debian.Changes: ChangedFileSpec :: String -> String -> String -> FileOffset -> SubSection -> String -> FilePath -> ChangedFileSpec
+ Debian.Changes: Changes :: FilePath -> String -> DebianVersion -> ReleaseName -> Arch -> Paragraph' Text -> ChangeLogEntry -> [ChangedFileSpec] -> ChangesFile
+ Debian.Changes: Entry :: String -> DebianVersion -> [ReleaseName] -> String -> String -> String -> String -> ChangeLogEntry
+ Debian.Changes: WhiteSpace :: String -> ChangeLogEntry
+ Debian.Changes: changeArch :: ChangesFile -> Arch
+ Debian.Changes: changeDir :: ChangesFile -> FilePath
+ Debian.Changes: changeEntry :: ChangesFile -> ChangeLogEntry
+ Debian.Changes: changeFiles :: ChangesFile -> [ChangedFileSpec]
+ Debian.Changes: changeInfo :: ChangesFile -> Paragraph' Text
+ Debian.Changes: changePackage :: ChangesFile -> String
+ Debian.Changes: changeRelease :: ChangesFile -> ReleaseName
+ Debian.Changes: changeVersion :: ChangesFile -> DebianVersion
+ Debian.Changes: changedFileMD5sum :: ChangedFileSpec -> String
+ Debian.Changes: changedFileName :: ChangedFileSpec -> FilePath
+ Debian.Changes: changedFilePriority :: ChangedFileSpec -> String
+ Debian.Changes: changedFileSHA1sum :: ChangedFileSpec -> String
+ Debian.Changes: changedFileSHA256sum :: ChangedFileSpec -> String
+ Debian.Changes: changedFileSection :: ChangedFileSpec -> SubSection
+ Debian.Changes: changedFileSize :: ChangedFileSpec -> FileOffset
+ Debian.Changes: changesFileName :: ChangesFile -> String
+ Debian.Changes: data ChangeLogEntry
+ Debian.Changes: data ChangedFileSpec
+ Debian.Changes: data ChangesFile
+ Debian.Changes: instance Eq ChangeLog
+ Debian.Changes: instance Eq ChangeLogEntry
+ Debian.Changes: instance Eq ChangedFileSpec
+ Debian.Changes: instance Eq ChangesFile
+ Debian.Changes: instance Pretty (PP ChangeLog)
+ Debian.Changes: instance Pretty (PP ChangeLogEntry)
+ Debian.Changes: instance Pretty (PP ChangedFileSpec)
+ Debian.Changes: instance Pretty (PP ChangesFile)
+ Debian.Changes: instance Pretty (PP [ChangeLogEntry])
+ Debian.Changes: instance Read ChangeLog
+ Debian.Changes: instance Read ChangeLogEntry
+ Debian.Changes: instance Read ChangedFileSpec
+ Debian.Changes: instance Read ChangesFile
+ Debian.Changes: instance Show ChangeLog
+ Debian.Changes: instance Show ChangeLogEntry
+ Debian.Changes: instance Show ChangedFileSpec
+ Debian.Changes: instance Show ChangesFile
+ Debian.Changes: logComments :: ChangeLogEntry -> String
+ Debian.Changes: logDate :: ChangeLogEntry -> String
+ Debian.Changes: logDists :: ChangeLogEntry -> [ReleaseName]
+ Debian.Changes: logPackage :: ChangeLogEntry -> String
+ Debian.Changes: logUrgency :: ChangeLogEntry -> String
+ Debian.Changes: logVersion :: ChangeLogEntry -> DebianVersion
+ Debian.Changes: logWho :: ChangeLogEntry -> String
+ Debian.Changes: newtype ChangeLog
+ Debian.Changes: parseChangeLog :: String -> ChangeLog
+ Debian.Changes: parseChanges :: Text -> Maybe ChangeLogEntry
+ Debian.Changes: parseEntries :: String -> [Either [String] ChangeLogEntry]
+ Debian.Changes: parseEntry :: String -> Either [String] (ChangeLogEntry, String)
+ Debian.Control: Comment :: a -> Field' a
+ Debian.Control: Control :: [Paragraph' a] -> Control' a
+ Debian.Control: Field :: (a, a) -> Field' a
+ Debian.Control: IOError :: [Loc] -> IOError -> ControlFileError
+ Debian.Control: MissingField :: [Loc] -> String -> ControlFileError
+ Debian.Control: NoBinaryParagraphs :: [Loc] -> ControlFileError
+ Debian.Control: NoParagraphs :: [Loc] -> ControlFileError
+ Debian.Control: Paragraph :: [Field' a] -> Paragraph' a
+ Debian.Control: ParseControlError :: [Loc] -> ParseError -> ControlFileError
+ Debian.Control: ParseRelationsError :: [Loc] -> ParseError -> ControlFileError
+ Debian.Control: appendFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control: asString :: ControlFunctions a => a -> String
+ Debian.Control: class ControlFunctions a
+ Debian.Control: class HasDebianControl a
+ Debian.Control: data ControlFileError
+ Debian.Control: data Field' a
+ Debian.Control: debianBinaryPackageNames :: HasDebianControl a => a -> [BinPkgName]
+ Debian.Control: debianBinaryParagraphs :: HasDebianControl a => a -> [Paragraph' Text]
+ Debian.Control: debianBuildDeps :: HasDebianControl a => a -> Maybe Relations
+ Debian.Control: debianBuildDepsIndep :: HasDebianControl a => a -> Maybe Relations
+ Debian.Control: debianControl :: HasDebianControl a => a -> DebianControl
+ Debian.Control: debianPackageNames :: HasDebianControl a => a -> (SrcPkgName, [BinPkgName])
+ Debian.Control: debianPackageParagraphs :: HasDebianControl a => a -> (Paragraph' Text, [Paragraph' Text])
+ Debian.Control: debianRelations :: HasDebianControl a => String -> a -> Either ControlFileError (Maybe Relations)
+ Debian.Control: debianSourcePackageName :: HasDebianControl a => a -> SrcPkgName
+ Debian.Control: debianSourceParagraph :: HasDebianControl a => a -> Paragraph' Text
+ Debian.Control: field :: ControlFileError -> String
+ Debian.Control: fieldValue :: ControlFunctions a => String -> Paragraph' a -> Maybe a
+ Debian.Control: formatControl :: Control' Text -> [Text]
+ Debian.Control: formatField :: Field' Text -> Text
+ Debian.Control: formatParagraph :: Paragraph' Text -> Text
+ Debian.Control: ioError :: ControlFileError -> IOError
+ Debian.Control: locs :: ControlFileError -> [Loc]
+ Debian.Control: lookupP :: ControlFunctions a => String -> (Paragraph' a) -> Maybe (Field' a)
+ Debian.Control: mergeControls :: [Control' a] -> Control' a
+ Debian.Control: modifyField :: Eq a => a -> (a -> a) -> Paragraph' a -> Paragraph' a
+ Debian.Control: newtype Control' a
+ Debian.Control: newtype Paragraph' a
+ Debian.Control: pControl :: ControlParser Control
+ Debian.Control: packField :: Field' String -> Field' Text
+ Debian.Control: packParagraph :: Paragraph -> Paragraph
+ Debian.Control: parseControl :: ControlFunctions a => String -> a -> (Either ParseError (Control' a))
+ Debian.Control: parseControlFromFile :: ControlFunctions a => FilePath -> IO (Either ParseError (Control' a))
+ Debian.Control: parseControlFromHandle :: ControlFunctions a => String -> Handle -> IO (Either ParseError (Control' a))
+ Debian.Control: parseDebianControlFromFile :: FilePath -> IO (Either ControlFileError DebianControl)
+ Debian.Control: parseError :: ControlFileError -> ParseError
+ Debian.Control: prependFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control: protectFieldText :: ControlFunctions a => a -> a
+ Debian.Control: raiseFields :: Eq a => (a -> Bool) -> Paragraph' a -> Paragraph' a
+ Debian.Control: removeField :: Eq a => a -> Paragraph' a -> Paragraph' a
+ Debian.Control: renameField :: Eq a => a -> a -> Paragraph' a -> Paragraph' a
+ Debian.Control: stripWS :: ControlFunctions a => a -> a
+ Debian.Control: type Control = Control' String
+ Debian.Control: type ControlParser a = CharParser () a
+ Debian.Control: type Field = Field' String
+ Debian.Control: type Paragraph = Paragraph' String
+ Debian.Control: unControl :: Control' a -> [Paragraph' a]
+ Debian.Control: unsafeDebianControl :: Control' Text -> DebianControl
+ Debian.Control: validateDebianControl :: MonadCatch m => Control' Text -> m (Either ControlFileError DebianControl)
+ Debian.Control.ByteString: Comment :: a -> Field' a
+ Debian.Control.ByteString: Control :: [Paragraph' a] -> Control' a
+ Debian.Control.ByteString: Field :: (a, a) -> Field' a
+ Debian.Control.ByteString: Paragraph :: [Field' a] -> Paragraph' a
+ Debian.Control.ByteString: appendFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.ByteString: asString :: ControlFunctions a => a -> String
+ Debian.Control.ByteString: class ControlFunctions a
+ Debian.Control.ByteString: data Field' a
+ Debian.Control.ByteString: fieldValue :: ControlFunctions a => String -> Paragraph' a -> Maybe a
+ Debian.Control.ByteString: instance Alternative (Parser state)
+ Debian.Control.ByteString: instance Applicative (Parser state)
+ Debian.Control.ByteString: instance ControlFunctions ByteString
+ Debian.Control.ByteString: instance Functor (Parser state)
+ Debian.Control.ByteString: instance Monad (Parser state)
+ Debian.Control.ByteString: instance MonadPlus (Parser state)
+ Debian.Control.ByteString: instance Show a => Show (Result a)
+ Debian.Control.ByteString: lookupP :: ControlFunctions a => String -> (Paragraph' a) -> Maybe (Field' a)
+ Debian.Control.ByteString: mergeControls :: [Control' a] -> Control' a
+ Debian.Control.ByteString: modifyField :: Eq a => a -> (a -> a) -> Paragraph' a -> Paragraph' a
+ Debian.Control.ByteString: newtype Control' a
+ Debian.Control.ByteString: newtype Paragraph' a
+ Debian.Control.ByteString: parseControl :: ControlFunctions a => String -> a -> (Either ParseError (Control' a))
+ Debian.Control.ByteString: parseControlFromFile :: ControlFunctions a => FilePath -> IO (Either ParseError (Control' a))
+ Debian.Control.ByteString: parseControlFromHandle :: ControlFunctions a => String -> Handle -> IO (Either ParseError (Control' a))
+ Debian.Control.ByteString: prependFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.ByteString: protectFieldText :: ControlFunctions a => a -> a
+ Debian.Control.ByteString: raiseFields :: Eq a => (a -> Bool) -> Paragraph' a -> Paragraph' a
+ Debian.Control.ByteString: removeField :: Eq a => a -> Paragraph' a -> Paragraph' a
+ Debian.Control.ByteString: renameField :: Eq a => a -> a -> Paragraph' a -> Paragraph' a
+ Debian.Control.ByteString: stripWS :: ControlFunctions a => a -> a
+ Debian.Control.ByteString: type Control = Control' ByteString
+ Debian.Control.ByteString: type Field = Field' ByteString
+ Debian.Control.ByteString: type Paragraph = Paragraph' ByteString
+ Debian.Control.ByteString: unControl :: Control' a -> [Paragraph' a]
+ Debian.Control.Common: Comment :: a -> Field' a
+ Debian.Control.Common: Control :: [Paragraph' a] -> Control' a
+ Debian.Control.Common: Field :: (a, a) -> Field' a
+ Debian.Control.Common: Paragraph :: [Field' a] -> Paragraph' a
+ Debian.Control.Common: appendFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.Common: asString :: ControlFunctions a => a -> String
+ Debian.Control.Common: class ControlFunctions a
+ Debian.Control.Common: data Field' a
+ Debian.Control.Common: fieldValue :: ControlFunctions a => String -> Paragraph' a -> Maybe a
+ Debian.Control.Common: instance (ControlFunctions a, Pretty (PP a)) => Pretty (Control' a)
+ Debian.Control.Common: instance (ControlFunctions a, Pretty (PP a)) => Pretty (Field' a)
+ Debian.Control.Common: instance (ControlFunctions a, Pretty (PP a)) => Pretty (Paragraph' a)
+ Debian.Control.Common: instance Eq a => Eq (Control' a)
+ Debian.Control.Common: instance Eq a => Eq (Field' a)
+ Debian.Control.Common: instance Eq a => Eq (Paragraph' a)
+ Debian.Control.Common: instance Ord a => Ord (Control' a)
+ Debian.Control.Common: instance Ord a => Ord (Field' a)
+ Debian.Control.Common: instance Ord a => Ord (Paragraph' a)
+ Debian.Control.Common: instance Read a => Read (Control' a)
+ Debian.Control.Common: instance Read a => Read (Field' a)
+ Debian.Control.Common: instance Read a => Read (Paragraph' a)
+ Debian.Control.Common: instance Show a => Show (Control' a)
+ Debian.Control.Common: instance Show a => Show (Field' a)
+ Debian.Control.Common: instance Show a => Show (Paragraph' a)
+ Debian.Control.Common: lookupP :: ControlFunctions a => String -> (Paragraph' a) -> Maybe (Field' a)
+ Debian.Control.Common: md5sumField :: ControlFunctions a => Paragraph' a -> Maybe a
+ Debian.Control.Common: mergeControls :: [Control' a] -> Control' a
+ Debian.Control.Common: modifyField :: Eq a => a -> (a -> a) -> Paragraph' a -> Paragraph' a
+ Debian.Control.Common: newtype Control' a
+ Debian.Control.Common: newtype Paragraph' a
+ Debian.Control.Common: parseControl :: ControlFunctions a => String -> a -> (Either ParseError (Control' a))
+ Debian.Control.Common: parseControlFromCmd :: ControlFunctions a => String -> IO (Either String (Control' a))
+ Debian.Control.Common: parseControlFromFile :: ControlFunctions a => FilePath -> IO (Either ParseError (Control' a))
+ Debian.Control.Common: parseControlFromHandle :: ControlFunctions a => String -> Handle -> IO (Either ParseError (Control' a))
+ Debian.Control.Common: prependFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.Common: protectFieldText :: ControlFunctions a => a -> a
+ Debian.Control.Common: protectFieldText' :: (StringLike a, ListLike a Char) => ControlFunctions a => a -> a
+ Debian.Control.Common: raiseFields :: Eq a => (a -> Bool) -> Paragraph' a -> Paragraph' a
+ Debian.Control.Common: removeField :: Eq a => a -> Paragraph' a -> Paragraph' a
+ Debian.Control.Common: renameField :: Eq a => a -> a -> Paragraph' a -> Paragraph' a
+ Debian.Control.Common: stripWS :: ControlFunctions a => a -> a
+ Debian.Control.Common: unControl :: Control' a -> [Paragraph' a]
+ Debian.Control.Policy: IOError :: [Loc] -> IOError -> ControlFileError
+ Debian.Control.Policy: MissingField :: [Loc] -> String -> ControlFileError
+ Debian.Control.Policy: NoBinaryParagraphs :: [Loc] -> ControlFileError
+ Debian.Control.Policy: NoParagraphs :: [Loc] -> ControlFileError
+ Debian.Control.Policy: ParseControlError :: [Loc] -> ParseError -> ControlFileError
+ Debian.Control.Policy: ParseRelationsError :: [Loc] -> ParseError -> ControlFileError
+ Debian.Control.Policy: class HasDebianControl a
+ Debian.Control.Policy: data ControlFileError
+ Debian.Control.Policy: data DebianControl
+ Debian.Control.Policy: debianBinaryPackageNames :: HasDebianControl a => a -> [BinPkgName]
+ Debian.Control.Policy: debianBinaryParagraphs :: HasDebianControl a => a -> [Paragraph' Text]
+ Debian.Control.Policy: debianBuildDeps :: HasDebianControl a => a -> Maybe Relations
+ Debian.Control.Policy: debianBuildDepsIndep :: HasDebianControl a => a -> Maybe Relations
+ Debian.Control.Policy: debianControl :: HasDebianControl a => a -> DebianControl
+ Debian.Control.Policy: debianPackageNames :: HasDebianControl a => a -> (SrcPkgName, [BinPkgName])
+ Debian.Control.Policy: debianPackageParagraphs :: HasDebianControl a => a -> (Paragraph' Text, [Paragraph' Text])
+ Debian.Control.Policy: debianRelations :: HasDebianControl a => String -> a -> Either ControlFileError (Maybe Relations)
+ Debian.Control.Policy: debianSourcePackageName :: HasDebianControl a => a -> SrcPkgName
+ Debian.Control.Policy: debianSourceParagraph :: HasDebianControl a => a -> Paragraph' Text
+ Debian.Control.Policy: field :: ControlFileError -> String
+ Debian.Control.Policy: instance Eq ControlFileError
+ Debian.Control.Policy: instance Exception ControlFileError
+ Debian.Control.Policy: instance HasControl (Control' Text)
+ Debian.Control.Policy: instance HasControl DebianControl
+ Debian.Control.Policy: instance HasDebianControl DebianControl
+ Debian.Control.Policy: instance Show ControlFileError
+ Debian.Control.Policy: instance Show DebianControl
+ Debian.Control.Policy: instance Typeable ControlFileError
+ Debian.Control.Policy: ioError :: ControlFileError -> IOError
+ Debian.Control.Policy: locs :: ControlFileError -> [Loc]
+ Debian.Control.Policy: parseDebianControl :: MonadCatch m => String -> Text -> m (Either ControlFileError DebianControl)
+ Debian.Control.Policy: parseDebianControlFromFile :: FilePath -> IO (Either ControlFileError DebianControl)
+ Debian.Control.Policy: parseError :: ControlFileError -> ParseError
+ Debian.Control.Policy: unsafeDebianControl :: Control' Text -> DebianControl
+ Debian.Control.Policy: validateDebianControl :: MonadCatch m => Control' Text -> m (Either ControlFileError DebianControl)
+ Debian.Control.String: Comment :: a -> Field' a
+ Debian.Control.String: Control :: [Paragraph' a] -> Control' a
+ Debian.Control.String: Field :: (a, a) -> Field' a
+ Debian.Control.String: Paragraph :: [Field' a] -> Paragraph' a
+ Debian.Control.String: appendFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.String: asString :: ControlFunctions a => a -> String
+ Debian.Control.String: class ControlFunctions a
+ Debian.Control.String: data Field' a
+ Debian.Control.String: fieldValue :: ControlFunctions a => String -> Paragraph' a -> Maybe a
+ Debian.Control.String: instance ControlFunctions String
+ Debian.Control.String: lookupP :: ControlFunctions a => String -> (Paragraph' a) -> Maybe (Field' a)
+ Debian.Control.String: mergeControls :: [Control' a] -> Control' a
+ Debian.Control.String: modifyField :: Eq a => a -> (a -> a) -> Paragraph' a -> Paragraph' a
+ Debian.Control.String: newtype Control' a
+ Debian.Control.String: newtype Paragraph' a
+ Debian.Control.String: pControl :: ControlParser Control
+ Debian.Control.String: parseControl :: ControlFunctions a => String -> a -> (Either ParseError (Control' a))
+ Debian.Control.String: parseControlFromFile :: ControlFunctions a => FilePath -> IO (Either ParseError (Control' a))
+ Debian.Control.String: parseControlFromHandle :: ControlFunctions a => String -> Handle -> IO (Either ParseError (Control' a))
+ Debian.Control.String: prependFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.String: protectFieldText :: ControlFunctions a => a -> a
+ Debian.Control.String: raiseFields :: Eq a => (a -> Bool) -> Paragraph' a -> Paragraph' a
+ Debian.Control.String: removeField :: Eq a => a -> Paragraph' a -> Paragraph' a
+ Debian.Control.String: renameField :: Eq a => a -> a -> Paragraph' a -> Paragraph' a
+ Debian.Control.String: stripWS :: ControlFunctions a => a -> a
+ Debian.Control.String: type Control = Control' String
+ Debian.Control.String: type ControlParser a = CharParser () a
+ Debian.Control.String: type Field = Field' String
+ Debian.Control.String: type Paragraph = Paragraph' String
+ Debian.Control.Text: Comment :: a -> Field' a
+ Debian.Control.Text: Control :: [Paragraph' a] -> Control' a
+ Debian.Control.Text: Field :: (a, a) -> Field' a
+ Debian.Control.Text: Paragraph :: [Field' a] -> Paragraph' a
+ Debian.Control.Text: appendFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.Text: asString :: ControlFunctions a => a -> String
+ Debian.Control.Text: class ControlFunctions a
+ Debian.Control.Text: data Field' a
+ Debian.Control.Text: decodeControl :: Control -> Control
+ Debian.Control.Text: decodeField :: Field' ByteString -> Field' Text
+ Debian.Control.Text: decodeParagraph :: Paragraph -> Paragraph
+ Debian.Control.Text: fieldValue :: ControlFunctions a => String -> Paragraph' a -> Maybe a
+ Debian.Control.Text: instance ControlFunctions Text
+ Debian.Control.Text: lookupP :: ControlFunctions a => String -> (Paragraph' a) -> Maybe (Field' a)
+ Debian.Control.Text: mergeControls :: [Control' a] -> Control' a
+ Debian.Control.Text: modifyField :: Eq a => a -> (a -> a) -> Paragraph' a -> Paragraph' a
+ Debian.Control.Text: newtype Control' a
+ Debian.Control.Text: newtype Paragraph' a
+ Debian.Control.Text: parseControl :: ControlFunctions a => String -> a -> (Either ParseError (Control' a))
+ Debian.Control.Text: parseControlFromFile :: ControlFunctions a => FilePath -> IO (Either ParseError (Control' a))
+ Debian.Control.Text: parseControlFromHandle :: ControlFunctions a => String -> Handle -> IO (Either ParseError (Control' a))
+ Debian.Control.Text: prependFields :: [Field' a] -> Paragraph' a -> Paragraph' a
+ Debian.Control.Text: protectFieldText :: ControlFunctions a => a -> a
+ Debian.Control.Text: raiseFields :: Eq a => (a -> Bool) -> Paragraph' a -> Paragraph' a
+ Debian.Control.Text: removeField :: Eq a => a -> Paragraph' a -> Paragraph' a
+ Debian.Control.Text: renameField :: Eq a => a -> a -> Paragraph' a -> Paragraph' a
+ Debian.Control.Text: stripWS :: ControlFunctions a => a -> a
+ Debian.Control.Text: type Control = Control' Text
+ Debian.Control.Text: type Field = Field' Text
+ Debian.Control.Text: type Paragraph = Paragraph' Text
+ Debian.Control.Text: unControl :: Control' a -> [Paragraph' a]
+ Debian.Deb: fields :: ControlFunctions a => FilePath -> IO (Control' a)
+ Debian.Extra.Files: withTemporaryFile :: MonadIO m => (FilePath -> m a) -> String -> m a
+ Debian.GenBuildDeps: BuildableInfo :: [ReadyTarget a] -> [a] -> BuildableInfo a
+ Debian.GenBuildDeps: CycleInfo :: [(a, a)] -> BuildableInfo a
+ Debian.GenBuildDeps: DepInfo :: SrcPkgName -> Relations -> [BinPkgName] -> Set BinPkgName -> Set BinPkgName -> DepInfo
+ Debian.GenBuildDeps: ReadyTarget :: a -> [a] -> [a] -> ReadyTarget a
+ Debian.GenBuildDeps: allBlocked :: BuildableInfo a -> [a]
+ Debian.GenBuildDeps: binSet :: DepInfo -> Set BinPkgName
+ Debian.GenBuildDeps: binaryNames :: DepInfo -> [BinPkgName]
+ Debian.GenBuildDeps: binaryNames' :: HasDebianControl control => control -> [BinPkgName]
+ Debian.GenBuildDeps: buildDependencies :: HasDebianControl control => control -> DepInfo
+ Debian.GenBuildDeps: buildable :: (a -> DepInfo) -> [a] -> BuildableInfo a
+ Debian.GenBuildDeps: compareSource :: DepInfo -> DepInfo -> Ordering
+ Debian.GenBuildDeps: data BuildableInfo a
+ Debian.GenBuildDeps: data DepInfo
+ Debian.GenBuildDeps: data ReadyTarget a
+ Debian.GenBuildDeps: depPairs :: BuildableInfo a -> [(a, a)]
+ Debian.GenBuildDeps: depSet :: DepInfo -> Set BinPkgName
+ Debian.GenBuildDeps: failPackage :: Eq a => (a -> a -> Ordering) -> a -> [a] -> ([a], [a])
+ Debian.GenBuildDeps: genDeps :: [FilePath] -> IO [DebianControl]
+ Debian.GenBuildDeps: getSourceOrder :: FilePath -> IO [SrcPkgName]
+ Debian.GenBuildDeps: instance Eq DepInfo
+ Debian.GenBuildDeps: instance Show DepInfo
+ Debian.GenBuildDeps: instance Show OldRelaxInfo
+ Debian.GenBuildDeps: orderSource :: (a -> a -> Ordering) -> [a] -> [a]
+ Debian.GenBuildDeps: other :: ReadyTarget a -> [a]
+ Debian.GenBuildDeps: ready :: ReadyTarget a -> a
+ Debian.GenBuildDeps: readyTargets :: BuildableInfo a -> [ReadyTarget a]
+ Debian.GenBuildDeps: relations :: DepInfo -> Relations
+ Debian.GenBuildDeps: relations' :: HasDebianControl control => control -> Relations
+ Debian.GenBuildDeps: relaxDeps :: RelaxInfo -> [DepInfo] -> [DepInfo]
+ Debian.GenBuildDeps: sourceName :: DepInfo -> SrcPkgName
+ Debian.GenBuildDeps: sourceName' :: HasDebianControl control => control -> SrcPkgName
+ Debian.GenBuildDeps: type RelaxInfo = SrcPkgName -> BinPkgName -> Bool
+ Debian.GenBuildDeps: waiting :: ReadyTarget a -> [a]
+ Debian.Loc: __LOC__ :: Q Exp
+ Debian.Loc: mapExn :: (MonadCatch m, Exception e) => m a -> (e -> e) -> m a
+ Debian.Pretty: PP :: a -> PP a
+ Debian.Pretty: instance Functor PP
+ Debian.Pretty: instance Pretty (PP String)
+ Debian.Pretty: instance Pretty (PP Text)
+ Debian.Pretty: instance Pretty (PP a) => Pretty (PP (Maybe a))
+ Debian.Pretty: newtype PP a
+ Debian.Pretty: ppPrint :: Pretty (PP a) => a -> Doc
+ Debian.Pretty: ppShow :: Pretty (PP a) => a -> String
+ Debian.Pretty: ppText :: Pretty (PP a) => a -> Text
+ Debian.Pretty: prettyShow :: Pretty a => a -> String
+ Debian.Pretty: prettyText :: Pretty a => a -> Text
+ Debian.Pretty: unPP :: PP a -> a
+ Debian.Relation: All :: Arch
+ Debian.Relation: ArchCPU :: String -> ArchCPU
+ Debian.Relation: ArchCPUAny :: ArchCPU
+ Debian.Relation: ArchExcept :: (Set Arch) -> ArchitectureReq
+ Debian.Relation: ArchOS :: String -> ArchOS
+ Debian.Relation: ArchOSAny :: ArchOS
+ Debian.Relation: ArchOnly :: (Set Arch) -> ArchitectureReq
+ Debian.Relation: BinPkgName :: String -> BinPkgName
+ Debian.Relation: Binary :: ArchOS -> ArchCPU -> Arch
+ Debian.Relation: EEQ :: DebianVersion -> VersionReq
+ Debian.Relation: GRE :: DebianVersion -> VersionReq
+ Debian.Relation: LTE :: DebianVersion -> VersionReq
+ Debian.Relation: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation: SGR :: DebianVersion -> VersionReq
+ Debian.Relation: SLT :: DebianVersion -> VersionReq
+ Debian.Relation: Source :: Arch
+ Debian.Relation: SrcPkgName :: String -> SrcPkgName
+ Debian.Relation: checkVersionReq :: Maybe VersionReq -> Maybe DebianVersion -> Bool
+ Debian.Relation: class ParseRelations a
+ Debian.Relation: class Pretty (PP a) => PkgName a
+ Debian.Relation: data Arch
+ Debian.Relation: data ArchCPU
+ Debian.Relation: data ArchOS
+ Debian.Relation: data ArchitectureReq
+ Debian.Relation: data Relation
+ Debian.Relation: data VersionReq
+ Debian.Relation: newtype BinPkgName
+ Debian.Relation: newtype SrcPkgName
+ Debian.Relation: parseRelations :: ParseRelations a => a -> Either ParseError Relations
+ Debian.Relation: pkgNameFromString :: PkgName a => String -> a
+ Debian.Relation: type AndRelation = [OrRelation]
+ Debian.Relation: type OrRelation = [Relation]
+ Debian.Relation: type RelParser a = CharParser () a
+ Debian.Relation: type Relations = AndRelation
+ Debian.Relation: unBinPkgName :: BinPkgName -> String
+ Debian.Relation: unSrcPkgName :: SrcPkgName -> String
+ Debian.Relation.ByteString: ArchExcept :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.ByteString: ArchOnly :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.ByteString: EEQ :: DebianVersion -> VersionReq
+ Debian.Relation.ByteString: GRE :: DebianVersion -> VersionReq
+ Debian.Relation.ByteString: LTE :: DebianVersion -> VersionReq
+ Debian.Relation.ByteString: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation.ByteString: SGR :: DebianVersion -> VersionReq
+ Debian.Relation.ByteString: SLT :: DebianVersion -> VersionReq
+ Debian.Relation.ByteString: checkVersionReq :: Maybe VersionReq -> Maybe DebianVersion -> Bool
+ Debian.Relation.ByteString: class ParseRelations a
+ Debian.Relation.ByteString: data ArchitectureReq
+ Debian.Relation.ByteString: data Relation
+ Debian.Relation.ByteString: data VersionReq
+ Debian.Relation.ByteString: instance ParseRelations ByteString
+ Debian.Relation.ByteString: parseRelations :: ParseRelations a => a -> Either ParseError Relations
+ Debian.Relation.ByteString: type AndRelation = [OrRelation]
+ Debian.Relation.ByteString: type OrRelation = [Relation]
+ Debian.Relation.ByteString: type RelParser a = CharParser () a
+ Debian.Relation.ByteString: type Relations = AndRelation
+ Debian.Relation.Common: ArchExcept :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.Common: ArchOnly :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.Common: BinPkgName :: String -> BinPkgName
+ Debian.Relation.Common: EEQ :: DebianVersion -> VersionReq
+ Debian.Relation.Common: GRE :: DebianVersion -> VersionReq
+ Debian.Relation.Common: LTE :: DebianVersion -> VersionReq
+ Debian.Relation.Common: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation.Common: SGR :: DebianVersion -> VersionReq
+ Debian.Relation.Common: SLT :: DebianVersion -> VersionReq
+ Debian.Relation.Common: SrcPkgName :: String -> SrcPkgName
+ Debian.Relation.Common: checkVersionReq :: Maybe VersionReq -> Maybe DebianVersion -> Bool
+ Debian.Relation.Common: class ParseRelations a
+ Debian.Relation.Common: class Pretty (PP a) => PkgName a
+ Debian.Relation.Common: data ArchitectureReq
+ Debian.Relation.Common: data Relation
+ Debian.Relation.Common: data VersionReq
+ Debian.Relation.Common: instance Data BinPkgName
+ Debian.Relation.Common: instance Data SrcPkgName
+ Debian.Relation.Common: instance Eq ArchitectureReq
+ Debian.Relation.Common: instance Eq BinPkgName
+ Debian.Relation.Common: instance Eq Relation
+ Debian.Relation.Common: instance Eq SrcPkgName
+ Debian.Relation.Common: instance Eq VersionReq
+ Debian.Relation.Common: instance Ord ArchitectureReq
+ Debian.Relation.Common: instance Ord BinPkgName
+ Debian.Relation.Common: instance Ord Relation
+ Debian.Relation.Common: instance Ord SrcPkgName
+ Debian.Relation.Common: instance Ord VersionReq
+ Debian.Relation.Common: instance PkgName BinPkgName
+ Debian.Relation.Common: instance PkgName SrcPkgName
+ Debian.Relation.Common: instance Pretty (PP ArchitectureReq)
+ Debian.Relation.Common: instance Pretty (PP BinPkgName)
+ Debian.Relation.Common: instance Pretty (PP OrRelation)
+ Debian.Relation.Common: instance Pretty (PP Relation)
+ Debian.Relation.Common: instance Pretty (PP Relations)
+ Debian.Relation.Common: instance Pretty (PP SrcPkgName)
+ Debian.Relation.Common: instance Pretty (PP VersionReq)
+ Debian.Relation.Common: instance Read ArchitectureReq
+ Debian.Relation.Common: instance Read BinPkgName
+ Debian.Relation.Common: instance Read Relation
+ Debian.Relation.Common: instance Read SrcPkgName
+ Debian.Relation.Common: instance Read VersionReq
+ Debian.Relation.Common: instance Show ArchitectureReq
+ Debian.Relation.Common: instance Show BinPkgName
+ Debian.Relation.Common: instance Show Relation
+ Debian.Relation.Common: instance Show SrcPkgName
+ Debian.Relation.Common: instance Show VersionReq
+ Debian.Relation.Common: instance Typeable BinPkgName
+ Debian.Relation.Common: instance Typeable SrcPkgName
+ Debian.Relation.Common: newtype BinPkgName
+ Debian.Relation.Common: newtype SrcPkgName
+ Debian.Relation.Common: parseRelations :: ParseRelations a => a -> Either ParseError Relations
+ Debian.Relation.Common: pkgNameFromString :: PkgName a => String -> a
+ Debian.Relation.Common: prettyArchitectureReq :: ArchitectureReq -> Doc
+ Debian.Relation.Common: prettyOrRelation :: [Relation] -> Doc
+ Debian.Relation.Common: prettyRelation :: Relation -> Doc
+ Debian.Relation.Common: prettyRelations :: [[Relation]] -> Doc
+ Debian.Relation.Common: prettyVersionReq :: VersionReq -> Doc
+ Debian.Relation.Common: type AndRelation = [OrRelation]
+ Debian.Relation.Common: type OrRelation = [Relation]
+ Debian.Relation.Common: type Relations = AndRelation
+ Debian.Relation.Common: unBinPkgName :: BinPkgName -> String
+ Debian.Relation.Common: unSrcPkgName :: SrcPkgName -> String
+ Debian.Relation.String: ArchExcept :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.String: ArchOnly :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.String: EEQ :: DebianVersion -> VersionReq
+ Debian.Relation.String: GRE :: DebianVersion -> VersionReq
+ Debian.Relation.String: LTE :: DebianVersion -> VersionReq
+ Debian.Relation.String: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation.String: SGR :: DebianVersion -> VersionReq
+ Debian.Relation.String: SLT :: DebianVersion -> VersionReq
+ Debian.Relation.String: checkVersionReq :: Maybe VersionReq -> Maybe DebianVersion -> Bool
+ Debian.Relation.String: class ParseRelations a
+ Debian.Relation.String: data ArchitectureReq
+ Debian.Relation.String: data Relation
+ Debian.Relation.String: data VersionReq
+ Debian.Relation.String: instance ParseRelations String
+ Debian.Relation.String: pRelations :: RelParser Relations
+ Debian.Relation.String: parseRelations :: ParseRelations a => a -> Either ParseError Relations
+ Debian.Relation.String: type AndRelation = [OrRelation]
+ Debian.Relation.String: type OrRelation = [Relation]
+ Debian.Relation.String: type RelParser a = CharParser () a
+ Debian.Relation.String: type Relations = AndRelation
+ Debian.Relation.Text: ArchExcept :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.Text: ArchOnly :: (Set Arch) -> ArchitectureReq
+ Debian.Relation.Text: EEQ :: DebianVersion -> VersionReq
+ Debian.Relation.Text: GRE :: DebianVersion -> VersionReq
+ Debian.Relation.Text: LTE :: DebianVersion -> VersionReq
+ Debian.Relation.Text: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation.Text: SGR :: DebianVersion -> VersionReq
+ Debian.Relation.Text: SLT :: DebianVersion -> VersionReq
+ Debian.Relation.Text: checkVersionReq :: Maybe VersionReq -> Maybe DebianVersion -> Bool
+ Debian.Relation.Text: class ParseRelations a
+ Debian.Relation.Text: data ArchitectureReq
+ Debian.Relation.Text: data Relation
+ Debian.Relation.Text: data VersionReq
+ Debian.Relation.Text: instance ParseRelations Text
+ Debian.Relation.Text: parseRelations :: ParseRelations a => a -> Either ParseError Relations
+ Debian.Relation.Text: type AndRelation = [OrRelation]
+ Debian.Relation.Text: type OrRelation = [Relation]
+ Debian.Relation.Text: type RelParser a = CharParser () a
+ Debian.Relation.Text: type Relations = AndRelation
+ Debian.Release: ReleaseName :: String -> ReleaseName
+ Debian.Release: Section :: String -> Section
+ Debian.Release: SubSection :: Section -> String -> SubSection
+ Debian.Release: data ReleaseName
+ Debian.Release: data SubSection
+ Debian.Release: instance Data ReleaseName
+ Debian.Release: instance Eq ReleaseName
+ Debian.Release: instance Eq Section
+ Debian.Release: instance Eq SubSection
+ Debian.Release: instance Ord ReleaseName
+ Debian.Release: instance Ord Section
+ Debian.Release: instance Ord SubSection
+ Debian.Release: instance Read ReleaseName
+ Debian.Release: instance Read Section
+ Debian.Release: instance Read SubSection
+ Debian.Release: instance Show ReleaseName
+ Debian.Release: instance Show Section
+ Debian.Release: instance Show SubSection
+ Debian.Release: instance Typeable ReleaseName
+ Debian.Release: newtype Section
+ Debian.Release: parseReleaseName :: String -> ReleaseName
+ Debian.Release: parseSection :: String -> SubSection
+ Debian.Release: parseSection' :: String -> Section
+ Debian.Release: relName :: ReleaseName -> String
+ Debian.Release: releaseName' :: ReleaseName -> String
+ Debian.Release: section :: SubSection -> Section
+ Debian.Release: sectionName :: SubSection -> String
+ Debian.Release: sectionName' :: Section -> String
+ Debian.Release: sectionNameOfSubSection :: SubSection -> String
+ Debian.Release: subSectionName :: SubSection -> String
+ Debian.Report: extractVersion :: Paragraph -> Maybe DebianVersion
+ Debian.Report: makePackageMap :: (Paragraph -> a) -> (a -> a -> a) -> [(FilePath, Compression)] -> IO (Map Text a)
+ Debian.Report: packageMap :: (Paragraph -> a) -> (a -> a -> a) -> Control' Text -> Map Text a
+ Debian.Report: trumped :: Fetcher -> FilePath -> String -> [DebSource] -> [DebSource] -> IO (Map Text (DebianVersion, DebianVersion))
+ Debian.Report: trumpedMap :: Map Text DebianVersion -> Map Text DebianVersion -> Map Text (DebianVersion, DebianVersion)
+ Debian.Report: trumpedXML :: Map Text (DebianVersion, DebianVersion) -> CFilter Posn
+ Debian.Sources: Deb :: SourceType
+ Debian.Sources: DebSource :: SourceType -> URI -> Either String (ReleaseName, [Section]) -> DebSource
+ Debian.Sources: DebSrc :: SourceType
+ Debian.Sources: data DebSource
+ Debian.Sources: data SourceType
+ Debian.Sources: instance Eq DebSource
+ Debian.Sources: instance Eq SourceType
+ Debian.Sources: instance Ord DebSource
+ Debian.Sources: instance Ord SourceType
+ Debian.Sources: instance Pretty (PP [DebSource])
+ Debian.Sources: instance Pretty DebSource
+ Debian.Sources: instance Pretty SourceType
+ Debian.Sources: instance Show DebSource
+ Debian.Sources: instance Show SourceType
+ Debian.Sources: parseSourceLine :: String -> DebSource
+ Debian.Sources: parseSourceLine' :: String -> Maybe DebSource
+ Debian.Sources: parseSourcesList :: String -> [DebSource]
+ Debian.Sources: quoteWords :: String -> [String]
+ Debian.Sources: sourceDist :: DebSource -> Either String (ReleaseName, [Section])
+ Debian.Sources: sourceLines :: String -> [String]
+ Debian.Sources: sourceType :: DebSource -> SourceType
+ Debian.Sources: sourceUri :: DebSource -> URI
+ Debian.Sources: stripLine :: String -> String
+ Debian.Sources: type SliceName = ReleaseName
+ Debian.Time: epochTimeToUTCTime :: EpochTime -> UTCTime
+ Debian.Time: formatTimeRFC822 :: FormatTime t => t -> String
+ Debian.Time: getCurrentLocalRFC822Time :: IO String
+ Debian.Time: parseTimeRFC822 :: ParseTime t => String -> Maybe t
+ Debian.Time: rfc822DateFormat' :: String
+ Debian.URI: data URI'
+ Debian.URI: dirFromURI :: URI -> IO (Either SomeException [String])
+ Debian.URI: fileFromURI :: URI -> IO (Either SomeException ByteString)
+ Debian.URI: fileFromURIStrict :: URI -> IO (Either SomeException ByteString)
+ Debian.URI: fromURI' :: URI' -> URI
+ Debian.URI: instance Eq URI'
+ Debian.URI: instance Ord URI'
+ Debian.URI: instance Read URI'
+ Debian.URI: instance Show URI'
+ Debian.URI: readURI' :: String -> Maybe URI'
+ Debian.URI: toURI' :: URI -> URI'
+ Debian.URI: uriToString' :: URI -> String
+ Debian.UTF8: decode :: ByteString -> Text
+ Debian.UTF8: readFile :: FilePath -> IO Text
+ Debian.Util.FakeChanges: fakeChanges :: [FilePath] -> IO (FilePath, String)
+ Debian.Util.FakeChanges: instance Data Error
+ Debian.Util.FakeChanges: instance Eq Error
+ Debian.Util.FakeChanges: instance Read Error
+ Debian.Util.FakeChanges: instance Show Error
+ Debian.Util.FakeChanges: instance Typeable Error
+ Debian.Version: buildDebianVersion :: Maybe Int -> String -> Maybe String -> DebianVersion
+ Debian.Version: data DebianVersion
+ Debian.Version: epoch :: DebianVersion -> Maybe Int
+ Debian.Version: evr :: DebianVersion -> (Maybe Int, String, Maybe String)
+ Debian.Version: parseDebianVersion :: ParseDebianVersion a => a -> Either ParseError DebianVersion
+ Debian.Version: parseDebianVersion' :: ParseDebianVersion string => string -> DebianVersion
+ Debian.Version: prettyDebianVersion :: DebianVersion -> Doc
+ Debian.Version: revision :: DebianVersion -> Maybe String
+ Debian.Version: version :: DebianVersion -> String
+ Debian.Version.ByteString: class ParseDebianVersion a
+ Debian.Version.ByteString: instance ParseDebianVersion ByteString
+ Debian.Version.ByteString: parseDebianVersion :: ParseDebianVersion a => a -> Either ParseError DebianVersion
+ Debian.Version.Common: buildDebianVersion :: Maybe Int -> String -> Maybe String -> DebianVersion
+ Debian.Version.Common: class ParseDebianVersion a
+ Debian.Version.Common: data DebianVersion
+ Debian.Version.Common: epoch :: DebianVersion -> Maybe Int
+ Debian.Version.Common: evr :: DebianVersion -> (Maybe Int, String, Maybe String)
+ Debian.Version.Common: instance Eq DebianVersion
+ Debian.Version.Common: instance Eq NonNumeric
+ Debian.Version.Common: instance Eq Numeric
+ Debian.Version.Common: instance Ord DebianVersion
+ Debian.Version.Common: instance Ord NonNumeric
+ Debian.Version.Common: instance Ord Numeric
+ Debian.Version.Common: instance Pretty (PP DebianVersion)
+ Debian.Version.Common: instance Show DebianVersion
+ Debian.Version.Common: parseDV :: CharParser () (Found Int, NonNumeric, Found NonNumeric)
+ Debian.Version.Common: parseDebianVersion :: ParseDebianVersion a => a -> Either ParseError DebianVersion
+ Debian.Version.Common: parseDebianVersion' :: ParseDebianVersion string => string -> DebianVersion
+ Debian.Version.Common: prettyDebianVersion :: DebianVersion -> Doc
+ Debian.Version.Common: revision :: DebianVersion -> Maybe String
+ Debian.Version.Common: version :: DebianVersion -> String
+ Debian.Version.String: class ParseDebianVersion a
+ Debian.Version.String: instance ParseDebianVersion String
+ Debian.Version.String: instance Read DebianVersion
+ Debian.Version.String: parseDebianVersion :: ParseDebianVersion a => a -> Either ParseError DebianVersion
+ Debian.Version.Text: class ParseDebianVersion a
+ Debian.Version.Text: instance ParseDebianVersion Text
+ Debian.Version.Text: parseDebianVersion :: ParseDebianVersion a => a -> Either ParseError DebianVersion
Files
- Tests.hs +12/−12
- cabal-debian.cabal +9/−8
- debian-haskell/Debian/Apt/Dependencies.hs +11/−7
- debian-haskell/Debian/Changes.hs +2/−2
- debian-haskell/Debian/Control/Text.hs +3/−2
- debian-haskell/Debian/GenBuildDeps.hs +56/−20
- debian-haskell/Debian/Relation/String.hs +1/−1
- debian-haskell/Debian/Report.hs +1/−1
- debian-haskell/Debian/Version.hs +1/−0
- debian-haskell/Debian/Version/ByteString.hs +2/−2
- debian-haskell/Debian/Version/Common.hs +5/−1
- debian-haskell/Debian/Version/Internal.hs +1/−1
- debian-haskell/Debian/Version/String.hs +4/−4
- debian-haskell/Debian/Version/Text.hs +2/−2
- debian/changelog +14/−0
- debian/control +2/−2
- src/Debian/Debianize/BuildDependencies.hs +5/−5
- src/Debian/Debianize/Bundled.hs +3/−3
- src/Debian/Debianize/DebianName.hs +2/−2
- src/Debian/Debianize/Finalize.hs +12/−7
- src/Debian/Debianize/Optparse.hs +2/−2
- src/Debian/Debianize/Prelude.hs +2/−3
- src/Debian/Debianize/VersionSplits.hs +4/−4
- src/Debian/GHC.hs +3/−3
- src/Debian/Policy.hs +4/−4
- test-data/alex/output/debian/rules +1/−0
- test-data/archive/output/debian/rules +1/−0
- test-data/artvaluereport-data/output/debian/rules +1/−0
- test-data/artvaluereport2/input/debian/Debianize.hs +2/−2
- test-data/artvaluereport2/output/debian/rules +1/−0
- test-data/clckwrks-dot-com/output/debian/rules +1/−0
- test-data/creativeprompts/output/debian/control +2/−2
- test-data/creativeprompts/output/debian/rules +1/−0
Tests.hs view
@@ -38,7 +38,7 @@ import Debian.Policy (databaseDirectory, PackageArchitectures(All), PackagePriority(Extra), parseMaintainer, Section(MainSection), SourceFormat(Native3), StandardsVersion(..), getDebhelperCompatLevel, getDebianStandardsVersion, License(..)) import Debian.Relation (BinPkgName(..), Relation(..), SrcPkgName(..), VersionReq(..)) import Debian.Release (ReleaseName(ReleaseName, relName))-import Debian.Version (parseDebianVersion, buildDebianVersion)+import Debian.Version (parseDebianVersion', buildDebianVersion) import Distribution.Compiler (CompilerFlavor(GHC)) import Distribution.Package (PackageName(PackageName)) import Prelude hiding (log)@@ -296,7 +296,7 @@ (debInfo . D.control . S.uploaders) .= [NameAddr {nameAddr_name = Just "Marco Silva", nameAddr_addr = "marcot@debian.org"},NameAddr {nameAddr_name = Just "Joachim Breitner", nameAddr_addr = "nomeata@debian.org"}] (debInfo . D.control . S.priority) .= Just Extra (debInfo . D.control . S.section) .= Just (MainSection "haskell")- (debInfo . D.control . S.buildDepends) %= (++ [[Rel (BinPkgName {unBinPkgName = "debhelper"}) (Just (GRE (Debian.Version.parseDebianVersion ("7" :: String)))) Nothing]])+ (debInfo . D.control . S.buildDepends) %= (++ [[Rel (BinPkgName {unBinPkgName = "debhelper"}) (Just (GRE (Debian.Version.parseDebianVersion' ("7" :: String)))) Nothing]]) (debInfo . D.control . S.buildDependsIndep) %= (++ [[Rel (BinPkgName {unBinPkgName = "perl"}) Nothing Nothing]]) (debInfo . D.control . S.standardsVersion) .= Just (StandardsVersion 3 9 4 Nothing) (debInfo . D.control . S.vcsFields) %= Set.union (Set.fromList [ S.VCSBrowser "http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-devscripts"@@ -318,19 +318,19 @@ [ [Rel (BinPkgName {unBinPkgName = "dctrl-tools"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "debhelper"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "dh-buildinfo"}) Nothing Nothing]- , [Rel (BinPkgName {unBinPkgName = "ghc"}) (Just (GRE (Debian.Version.parseDebianVersion ("7.6" :: String)))) Nothing]+ , [Rel (BinPkgName {unBinPkgName = "ghc"}) (Just (GRE (Debian.Version.parseDebianVersion'("7.6" :: String)))) Nothing] , [Rel (BinPkgName {unBinPkgName = "cdbs"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "${misc:Depends}"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "html-xml-utils"}) Nothing Nothing]- , [Rel (BinPkgName {unBinPkgName = "hscolour"}) (Just (GRE (Debian.Version.parseDebianVersion ("1.8" :: String)))) Nothing]- , [Rel (BinPkgName {unBinPkgName = "ghc-haddock"}) (Just (GRE (Debian.Version.parseDebianVersion ("7.4" :: String)))) Nothing] ]+ , [Rel (BinPkgName {unBinPkgName = "hscolour"}) (Just (GRE (Debian.Version.parseDebianVersion'("1.8" :: String)))) Nothing]+ , [Rel (BinPkgName {unBinPkgName = "ghc-haddock"}) (Just (GRE (Debian.Version.parseDebianVersion'("7.4" :: String)))) Nothing] ] {- control %= (\ y -> y { S.source = , S.maintainer = Just (NameAddr {nameAddr_name = Just "Debian Haskell Group", nameAddr_addr = "pkg-haskell-maintainers@lists.alioth.debian.org"}) , S.uploaders = [NameAddr {nameAddr_name = Just "Marco Silva", nameAddr_addr = "marcot@debian.org"},NameAddr {nameAddr_name = Just "Joachim Breitner", nameAddr_addr = "nomeata@debian.org"}] , S.priority = Just Extra , S.section = Just (MainSection "haskell")- , S.buildDepends = (S.buildDepends y) ++ [[Rel (BinPkgName {unBinPkgName = "debhelper"}) (Just (GRE (Debian.Version.parseDebianVersion ("7" :: String)))) Nothing]]+ , S.buildDepends = (S.buildDepends y) ++ [[Rel (BinPkgName {unBinPkgName = "debhelper"}) (Just (GRE (Debian.Version.parseDebianVersion'("7" :: String)))) Nothing]] , S.buildDependsIndep = (S.buildDependsIndep y) ++ [[Rel (BinPkgName {unBinPkgName = "perl"}) Nothing Nothing]] , S.standardsVersion = Just (StandardsVersion 3 9 4 Nothing) , S.vcsFields = Set.union (S.vcsFields y) (Set.fromList [ S.VCSBrowser "http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-devscripts"@@ -358,12 +358,12 @@ [ [Rel (BinPkgName {unBinPkgName = "dctrl-tools"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "debhelper"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "dh-buildinfo"}) Nothing Nothing]- , [Rel (BinPkgName {unBinPkgName = "ghc"}) (Just (GRE (Debian.Version.parseDebianVersion ("7.6" :: String)))) Nothing]+ , [Rel (BinPkgName {unBinPkgName = "ghc"}) (Just (GRE (Debian.Version.parseDebianVersion'("7.6" :: String)))) Nothing] , [Rel (BinPkgName {unBinPkgName = "cdbs"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "${misc:Depends}"}) Nothing Nothing] , [Rel (BinPkgName {unBinPkgName = "html-xml-utils"}) Nothing Nothing]- , [Rel (BinPkgName {unBinPkgName = "hscolour"}) (Just (GRE (Debian.Version.parseDebianVersion ("1.8" :: String)))) Nothing]- , [Rel (BinPkgName {unBinPkgName = "ghc-haddock"}) (Just (GRE (Debian.Version.parseDebianVersion ("7.4" :: String)))) Nothing] ]+ , [Rel (BinPkgName {unBinPkgName = "hscolour"}) (Just (GRE (Debian.Version.parseDebianVersion'("1.8" :: String)))) Nothing]+ , [Rel (BinPkgName {unBinPkgName = "ghc-haddock"}) (Just (GRE (Debian.Version.parseDebianVersion'("7.4" :: String)))) Nothing] ] , B.recommends = [] , B.suggests = [] , B.preDepends = []@@ -376,14 +376,14 @@ ) atoms log = ChangeLog [Entry { logPackage = "haskell-devscripts"- , logVersion = Debian.Version.parseDebianVersion ("0.8.13" :: String)+ , logVersion = Debian.Version.parseDebianVersion'("0.8.13" :: String) , logDists = [ReleaseName {relName = "experimental"}] , logUrgency = "low" , logComments = " [ Joachim Breitner ]\n * Improve parsing of \"Setup register\" output, patch by David Fox\n * Enable creation of hoogle files, thanks to Kiwamu Okabe for the\n suggestion. \n\n [ Kiwamu Okabe ]\n * Need --html option to fix bug that --hoogle option don't output html file.\n * Support to create /usr/lib/ghc-doc/hoogle/*.txt for hoogle package.\n\n [ Joachim Breitner ]\n * Symlink hoogle\8217s txt files to /usr/lib/ghc-doc/hoogle/\n * Bump ghc dependency to 7.6 \n * Bump standards version\n" , logWho = "Joachim Breitner <nomeata@debian.org>" , logDate = "Mon, 08 Oct 2012 21:14:50 +0200" }, Entry { logPackage = "haskell-devscripts"- , logVersion = Debian.Version.parseDebianVersion ("0.8.12" :: String)+ , logVersion = Debian.Version.parseDebianVersion'("0.8.12" :: String) , logDists = [ReleaseName {relName = "unstable"}] , logUrgency = "low" , logComments = " * Depend on ghc >= 7.4, adjusting to its haddock --interface-version\n behaviour.\n"@@ -654,7 +654,7 @@ , "AlexWrapper-strict-bytestring"] (debInfo . D.control . S.homepage) .= Just "http://www.haskell.org/alex/" (debInfo . D.sourceFormat) .= Native3- (debInfo . D.debVersion) .= Just (parseDebianVersion ("3.0.2-1~hackage1" :: String))+ (debInfo . D.debVersion) .= Just (parseDebianVersion'("3.0.2-1~hackage1" :: String)) doExecutable (BinPkgName "alex") (D.InstallFile {D.execName = "alex", D.destName = "alex", D.sourceDir = Nothing, D.destDir = Nothing}) -- Bootstrap self-dependency
cabal-debian.cabal view
@@ -1,5 +1,5 @@ Name: cabal-debian-Version: 4.31.4+Version: 4.31.6 Copyright: Copyright (c) 2007-2014, David Fox, Jeremy Shaw License: BSD3 License-File: LICENSE@@ -148,12 +148,11 @@ Flag tests Description: enable the unit test executable (disabled by default because it has a lot of wacky dependencies.)- Default: False- Manual: True+ Default: True flag local-debian Description: Link directly to the source of the debian library- Default: False+ Default: True Manual: True flag pretty-112@@ -286,7 +285,7 @@ Other-Modules: Debian.Version.Internal else- Build-depends: debian >= 3.87+ Build-depends: debian >= 3.89 Executable cabal-debian Hs-Source-Dirs: .@@ -298,17 +297,19 @@ else Build-Depends: pretty < 1.1.2, prettyclass if !flag(local-debian)- Build-Depends: debian >= 3.87+ Build-Depends: debian >= 3.89 Test-Suite cabal-debian-tests+ if !flag(tests)+ Buildable: False Type: exitcode-stdio-1.0 Hs-Source-Dirs: . Main-is: Tests.hs ghc-options: -threaded -Wall -O2- Build-Depends: base >= 4.7.0.0, cabal-debian, Cabal >= 1.18, containers, Diff >= 0.3.1, directory, filepath, hsemail, HUnit, lens, process, text+ Build-Depends: base >= 4.8.1.0, cabal-debian, Cabal >= 1.18, containers, Diff >= 0.3.1, directory, filepath, hsemail, HUnit, lens, process, text if flag(pretty-112) Build-Depends: pretty >= 1.1.2 else Build-Depends: pretty < 1.1.2, prettyclass if !flag(local-debian)- Build-Depends: debian >= 3.87+ Build-Depends: debian >= 3.89
debian-haskell/Debian/Apt/Dependencies.hs view
@@ -16,13 +16,14 @@ import Control.Arrow (second) import qualified Data.ByteString.Char8 as C import Data.List as List (find, union)-import Data.Tree(Tree(rootLabel, Node))-import Debian.Apt.Package(PackageNameMap, packageNameMap, lookupPackageByRel)-import Debian.Control.ByteString(ControlFunctions(stripWS, lookupP, parseControlFromFile),- Field'(Field, Comment), Control'(Control), Paragraph, Control)+import Data.Tree (Tree(rootLabel, Node))+import Debian.Apt.Package (PackageNameMap, packageNameMap, lookupPackageByRel)+import Debian.Control.ByteString (ControlFunctions(stripWS, lookupP, parseControlFromFile),+ Field'(Field, Comment), Control'(Control), Paragraph, Control) import Debian.Relation (BinPkgName(..))-import Debian.Relation.ByteString(ParseRelations(..), Relation(..), OrRelation, AndRelation, Relations, checkVersionReq)-import Debian.Version(DebianVersion, parseDebianVersion, prettyDebianVersion)+import Debian.Relation.ByteString (ParseRelations(..), Relation(..), OrRelation, AndRelation, Relations, checkVersionReq)+import Debian.Version (DebianVersion, parseDebianVersion, prettyDebianVersion)+import Debian.Version.ByteString () import Text.PrettyPrint (render) -- * Basic CSP Types and Functions@@ -113,7 +114,10 @@ (Just (Field (_, name))) -> case lookupP "Version" p of Nothing -> error $ "Paragraph missing Version field"- (Just (Field (_, version))) -> (BinPkgName (C.unpack (stripWS name)), parseDebianVersion (C.unpack version))+ (Just (Field (_, str))) ->+ case parseDebianVersion str of+ Right ver -> (BinPkgName (C.unpack (stripWS name)), ver)+ Left e -> error $ "packageVersionParagraph: " ++ show e (Just (Comment _)) -> error "packageVersionParagraph" (Just (Comment _)) -> error "packageVersionParagraph"
debian-haskell/Debian/Changes.hs view
@@ -209,7 +209,7 @@ x | mrSubList x == [] -> Left ["Parse error in " ++ show text] MR {mrAfter = after, mrSubList = [_, name, ver, dists, urgency, _, details, _, _, who, _, date, _]} -> Right (Entry name- (parseDebianVersion ver)+ (parseDebianVersion' ver) (map parseReleaseName . words $ dists) urgency (" " ++ unpack (strip (pack details)) ++ "\n")@@ -251,7 +251,7 @@ MR {mrSubList = []} -> Nothing MR {mrSubList = [_, name, ver, dists, urgency, _, details]} -> Just $ Entry name- (parseDebianVersion ver)+ (parseDebianVersion' ver) (map parseReleaseName . words $ dists) urgency details
debian-haskell/Debian/Control/Text.hs view
@@ -29,7 +29,7 @@ import qualified Data.ByteString.Char8 as B import Data.Char (toLower, chr) import Data.List (find)-import qualified Data.Text as T (Text, pack, unpack, map, strip, reverse)+import qualified Data.Text as T (Text, pack, unpack, map, dropAround, reverse) import Data.Text.Encoding (decodeUtf8With, encodeUtf8) --import Data.Text.IO as T (readFile) import qualified Debian.Control.ByteString as B@@ -92,7 +92,8 @@ where hasFieldName :: String -> Field' T.Text -> Bool hasFieldName name (Field (fieldName',_)) = T.pack name == T.map toLower fieldName' hasFieldName _ _ = False- stripWS = T.strip+ stripWS = T.dropAround (`elem` (" \t" :: String))+ -- T.strip would also strip newlines protectFieldText = protectFieldText' asString = T.unpack
debian-haskell/Debian/GenBuildDeps.hs view
@@ -27,18 +27,20 @@ import Control.Applicative ((<$>)) #endif import Control.Exception (throw)-import Control.Monad (filterM)+import Control.Monad (filterM, foldM)+import Control.Monad.State (evalState, get, modify, State) import Data.Graph (Graph, Edge, Vertex, buildG, topSort, reachable, transposeG, edges, scc)-import Data.List-import qualified Data.Map as Map+import Data.List as List (elemIndex, find, map, nub, partition, tails)+import Data.Map as Map (empty, findWithDefault, fromList, insert, Map, lookup) import Data.Maybe-import qualified Data.Set as Set+import Data.Set as Set (fromList, intersection, null, Set) import Data.Tree as Tree (Tree(Node, rootLabel, subForest)) import Debian.Control (parseControlFromFile) import Debian.Control.Policy (HasDebianControl, DebianControl, ControlFileError(..), validateDebianControl, debianSourcePackageName, debianBinaryPackageNames, debianBuildDeps, debianBuildDepsIndep) import Debian.Loc (__LOC__) import Debian.Relation import Debian.Relation.Text ()+-- import Debug.Trace (trace) import System.Directory (getDirectoryContents, doesFileExist) -- | This type describes the build dependencies of a source package.@@ -46,6 +48,8 @@ sourceName :: SrcPkgName -- ^ source package name , relations :: Relations -- ^ dependency relations , binaryNames :: [BinPkgName] -- ^ binary dependency names (is this a function of relations?)+ , depSet :: Set.Set BinPkgName -- ^ Set containing all binary package names mentioned in relations+ , binSet :: Set.Set BinPkgName -- ^ Set containing binaryNames } deriving Show instance Eq DepInfo where@@ -58,10 +62,14 @@ -- <http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-sourcecontrolfiles> buildDependencies :: HasDebianControl control => control -> DepInfo buildDependencies control = do+ let rels = concat [fromMaybe [] (debianBuildDeps control),+ fromMaybe [] (debianBuildDepsIndep control)]+ bins = debianBinaryPackageNames control DepInfo { sourceName = debianSourcePackageName control- , relations = concat [fromMaybe [] (debianBuildDeps control),- fromMaybe [] (debianBuildDepsIndep control)]- , binaryNames = debianBinaryPackageNames control }+ , relations = rels+ , binaryNames = bins+ , depSet = Set.fromList (List.map (\(Rel x _ _) -> x) (concat rels))+ , binSet = Set.fromList bins } -- | source package name sourceName' :: HasDebianControl control => control -> SrcPkgName@@ -94,7 +102,7 @@ -- |Remove any dependencies that are designated \"relaxed\" by relaxInfo. relaxDeps :: RelaxInfo -> [DepInfo] -> [DepInfo] relaxDeps relaxInfo deps =- map relaxDep deps+ List.map relaxDep deps where relaxDep :: DepInfo -> DepInfo relaxDep info = info {relations = filteredDependencies}@@ -103,7 +111,7 @@ -- this results in an empty list in an or-dep the entire dependency can -- be discarded. filteredDependencies :: Relations- filteredDependencies = filter (/= []) (map (filter keepDep) (relations info))+ filteredDependencies = filter (/= []) (List.map (filter keepDep) (relations info)) keepDep :: Relation -> Bool keepDep (Rel name _ _) = not (relaxInfo (sourceName info) name) @@ -130,25 +138,26 @@ buildable :: forall a. (a -> DepInfo) -> [a] -> BuildableInfo a buildable relax packages = -- Find all packages which can't reach any other packages in the- -- graph of the "has build dependency" relation.+ -- graph of the "has build dependency" relation on the+ -- yet-to-be-built packages case partition (\ x -> reachable hasDep x == [x]) verts of -- None of the packages are buildable, return information -- about how to break this build dependency cycle.- ([], _) -> CycleInfo {depPairs = map ofEdge $ head $ (allCycles hasDep)}+ ([], _) -> CycleInfo {depPairs = List.map ofEdge $ head $ (allCycles hasDep)} -- We have some buildable packages, return them along with -- the list of packages each one directly blocks (allReady, blocked) ->- BuildableInfo { readyTargets = map (makeReady blocked allReady) allReady- , allBlocked = map ofVertex blocked }+ BuildableInfo { readyTargets = List.map (makeReady blocked allReady) allReady+ , allBlocked = List.map ofVertex blocked } where makeReady :: [Vertex] -> [Vertex] -> Vertex -> ReadyTarget a makeReady blocked ready thisReady = let otherReady = filter (/= thisReady) ready (directlyBlocked, otherBlocked) = partition (\ x -> elem x (reachable isDep thisReady)) blocked in ReadyTarget { ready = ofVertex thisReady- , waiting = map ofVertex directlyBlocked- , other = map ofVertex (otherReady ++ otherBlocked) }- --allDeps x = (ofVertex x, map ofVertex (filter (/= x) (reachable hasDep x)))+ , waiting = List.map ofVertex directlyBlocked+ , other = List.map ofVertex (otherReady ++ otherBlocked) }+ --allDeps x = (ofVertex x, List.map ofVertex (filter (/= x) (reachable hasDep x))) isDep :: Graph isDep = transposeG hasDep hasDep :: Graph@@ -156,16 +165,37 @@ hasDepEdges :: [(Int, Int)] hasDepEdges =+#if 0 nub (foldr f [] (tails vertPairs)) where f :: [(Int, DepInfo)] -> [(Int, Int)] -> [(Int, Int)] f [] es = es- f (x : xs) es = catMaybes (map (toEdge x) xs) ++ es+ f (x : xs) es = catMaybes (List.map (toEdge x) xs) ++ es toEdge :: (Int, DepInfo) -> (Int, DepInfo) -> Maybe Edge toEdge (xv, xa) (yv, ya) = case compareSource xa ya of EQ -> Nothing LT -> Just (yv, xv) GT -> Just (xv, yv)+#else+ nub (evalState (foldM f [] (tails vertPairs)) Map.empty)+ where f :: [(Int, Int)] -> [(Int, DepInfo)] -> State (Map.Map (Int, Int) Ordering) [(Int, Int)]+ f es [] = return es+ f es (x : xs) = mapM (toEdge x) xs >>= \es' -> return (catMaybes es' ++ es)+ toEdge :: (Int, DepInfo) -> (Int, DepInfo) -> State (Map.Map (Int, Int) Ordering) (Maybe Edge)+ toEdge (xv, xa) (yv, ya) = do+ mp <- get+ r <- case Map.lookup (xv, yv) mp of+ Just r' -> return r'+ Nothing -> do+ let r' = compareSource xa ya+ -- trace ("compareSource " ++ show (unSrcPkgName $ sourceName xa) ++ " " ++ show (unSrcPkgName $ sourceName ya) ++ " -> " ++ show r') (return ())+ modify (Map.insert (xv, yv) r')+ return r'+ case r of+ EQ -> return Nothing+ LT -> return $ Just (yv, xv)+ GT -> return $ Just (xv, yv)+#endif ofEdge :: Edge -> (a, a) ofEdge (a, b) = (ofVertex a, ofVertex b) ofVertex :: Int -> a@@ -242,13 +272,19 @@ -- a pretty simplistic approach to 'or' build depends. However, I -- think this should work pretty nicely in practice. compareSource :: DepInfo -> DepInfo -> Ordering-compareSource (DepInfo {relations = depends1, binaryNames = bins1}) (DepInfo {relations = depends2, binaryNames = bins2})- | any (\rel -> isJust (find (checkPackageNameReq rel) bins2)) (concat depends1) = GT- | any (\rel -> isJust (find (checkPackageNameReq rel) bins1)) (concat depends2) = LT+compareSource p1 p2+#if 0+ | any (\rel -> isJust (find (checkPackageNameReq rel) (binaryNames p2))) (concat (relations p1)) = GT+ | any (\rel -> isJust (find (checkPackageNameReq rel) (binaryNames p1))) (concat (relations p2)) = LT | otherwise = EQ where checkPackageNameReq :: Relation -> BinPkgName -> Bool checkPackageNameReq (Rel rPkgName _ _) bPkgName = rPkgName == bPkgName+#else+ | not (Set.null (Set.intersection (depSet p1) (binSet p2))) = GT+ | not (Set.null (Set.intersection (depSet p2) (binSet p1))) = LT+ | otherwise = EQ+#endif compareSource' :: HasDebianControl control => control -> control -> Ordering compareSource' control1 control2
debian-haskell/Debian/Relation/String.hs view
@@ -84,7 +84,7 @@ ver <- many1 (noneOf [' ',')','\t','\n']) skipMany whiteChar char ')'- return $ Just (op (parseDebianVersion ver))+ return $ Just (op (parseDebianVersion' ver)) <|> do return $ Nothing
debian-haskell/Debian/Report.hs view
@@ -40,7 +40,7 @@ -- |extract the version number from a control paragraph extractVersion :: Paragraph -> Maybe DebianVersion-extractVersion paragraph = fmap (parseDebianVersion . unpack) $ fieldValue "Version" paragraph+extractVersion paragraph = fmap (parseDebianVersion' . unpack) $ fieldValue "Version" paragraph -- * Trump Report
debian-haskell/Debian/Version.hs view
@@ -4,6 +4,7 @@ (DebianVersion -- |Exported abstract because the internal representation is likely to change , prettyDebianVersion , parseDebianVersion+ , parseDebianVersion' , epoch , version , revision
debian-haskell/Debian/Version/ByteString.hs view
@@ -14,5 +14,5 @@ parseDebianVersion byteStr = let str = C.unpack byteStr in case parse parseDV str str of- Left e -> error (show e)- Right dv -> DebianVersion str dv+ Left e -> Left e+ Right dv -> Right (DebianVersion str dv)
debian-haskell/Debian/Version/Common.hs view
@@ -6,6 +6,7 @@ ( DebianVersion -- |Exported abstract because the internal representation is likely to change , prettyDebianVersion , ParseDebianVersion(..)+ , parseDebianVersion' , evr -- DebianVersion -> (Maybe Int, String, Maybe String) , epoch , version@@ -94,11 +95,14 @@ -- * Parser class ParseDebianVersion a where- parseDebianVersion :: a-> DebianVersion+ parseDebianVersion :: a-> Either ParseError DebianVersion -- |Convert a string to a debian version number. May throw an -- exception if the string is unparsable -- but I am not sure if that -- can currently happen. Are there any invalid version strings? -- Perhaps ones with underscore, or something?++parseDebianVersion' :: ParseDebianVersion string => string -> DebianVersion+parseDebianVersion' str = either (\e -> error (show e)) id (parseDebianVersion str) {- showNN :: NonNumeric -> String
debian-haskell/Debian/Version/Internal.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveDataTypeable, FlexibleContexts #-} module Debian.Version.Internal ( DebianVersion(..) , Numeric(..)
debian-haskell/Debian/Version/String.hs view
@@ -13,13 +13,13 @@ instance ParseDebianVersion String where parseDebianVersion str = case parse parseDV str str of- Left e -> error (show e)- Right dv -> DebianVersion str dv-+ Left e -> Left e+ Right dv -> Right (DebianVersion str dv)+ instance Read DebianVersion where readsPrec _ s = case stripPrefix "Debian.Version.parseDebianVersion " s of Just s' -> case reads s' :: [(String, String)] of []-> []- (v, s'') : _ -> [(parseDebianVersion v, s'')]+ (v, s'') : _ -> [(parseDebianVersion' v, s'')] Nothing -> []
debian-haskell/Debian/Version/Text.hs view
@@ -14,5 +14,5 @@ parseDebianVersion text = let str = T.unpack text in case parse parseDV str str of- Left e -> error (show e)- Right dv -> DebianVersion str dv+ Left e -> Left e+ Right dv -> Right (DebianVersion str dv)
debian/changelog view
@@ -1,3 +1,17 @@+haskell-cabal-debian (4.31.6) unstable; urgency=low++ * Signature change in Debian.Version.parseDebianVersion++ -- David Fox <dsf@seereason.com> Tue, 22 Sep 2015 06:56:28 -0700++haskell-cabal-debian (4.31.5) unstable; urgency=low++ * If there is no Setup.hs or Setup.lhs file we cannot build+ debian/hlibrary.setup, therefore we should set DEB_SETUP_BIN_NAME to+ "cabal".++ -- David Fox <dsf@seereason.com> Thu, 17 Sep 2015 08:21:46 -0700+ haskell-cabal-debian (4.31.4) unstable; urgency=low * The test suite was failing during the debian package build because
debian/control view
@@ -23,8 +23,8 @@ libghc-bifunctors-prof, libghc-data-default-dev, libghc-data-default-prof,- libghc-debian-dev (>= 3.87),- libghc-debian-prof (>= 3.87),+ libghc-debian-dev (>= 3.89),+ libghc-debian-prof (>= 3.89), libghc-exceptions-dev, libghc-exceptions-prof, libghc-hsemail-dev,
src/Debian/Debianize/BuildDependencies.hs view
@@ -29,7 +29,7 @@ import Debian.Orphans () import Debian.Relation (BinPkgName(..), checkVersionReq, Relation(..), Relations) import qualified Debian.Relation as D (BinPkgName(BinPkgName), Relation(..), Relations, VersionReq(EEQ, GRE, LTE, SGR, SLT))-import Debian.Version (DebianVersion, parseDebianVersion)+import Debian.Version (DebianVersion, parseDebianVersion') import Distribution.Compiler (CompilerFlavor(..)) import Distribution.Package (Dependency(..), PackageName(PackageName)) import Distribution.PackageDescription (PackageDescription)@@ -133,8 +133,8 @@ prof <- not <$> use (A.debInfo . D.noProfilingLibrary) official <- use (A.debInfo . D.official) compat <- use (A.debInfo . D.compat)- let xs = nub $ [maybe [] (\ n -> [D.Rel (D.BinPkgName "debhelper") (Just (D.GRE (parseDebianVersion (show n)))) Nothing]) compat,- [D.Rel (D.BinPkgName "haskell-devscripts") (Just $ D.GRE $ parseDebianVersion $ if official then "0.9" else "0.8" :: String) Nothing],+ let xs = nub $ [maybe [] (\ n -> [D.Rel (D.BinPkgName "debhelper") (Just (D.GRE (parseDebianVersion' (show n)))) Nothing]) compat,+ [D.Rel (D.BinPkgName "haskell-devscripts") (Just $ D.GRE $ parseDebianVersion' $ if official then "0.9" else "0.8" :: String) Nothing], anyrel "cdbs"] ++ (if member GHC hcs then [anyrel' (compilerPackageName GHC B.Development)] ++ if prof then [anyrel' (compilerPackageName GHC B.Profiling)] else []@@ -385,10 +385,10 @@ debianVersion' :: Monad m => PackageName -> Version -> CabalT m DebianVersion debianVersion' name v = do atoms <- get- return $ parseDebianVersion (maybe "" (\ n -> show n ++ ":") (Map.lookup name (view A.epochMap atoms)) ++ showVersion v)+ return $ parseDebianVersion' (maybe "" (\ n -> show n ++ ":") (Map.lookup name (view A.epochMap atoms)) ++ showVersion v) debianVersion'' :: CabalInfo -> PackageName -> Version -> DebianVersion-debianVersion'' atoms name v = parseDebianVersion (maybe "" (\ n -> show n ++ ":") (Map.lookup name (view A.epochMap atoms)) ++ showVersion v)+debianVersion'' atoms name v = parseDebianVersion' (maybe "" (\ n -> show n ++ ":") (Map.lookup name (view A.epochMap atoms)) ++ showVersion v) data Rels a = And {unAnd :: [Rels a]} | Or {unOr :: [Rels a]} | Rel' {unRel :: a} deriving Show
src/Debian/Debianize/Bundled.hs view
@@ -30,7 +30,7 @@ import Debian.GHC () import Debian.Relation (BinPkgName(..)) import Debian.Relation.ByteString ()-import Debian.Version (DebianVersion, parseDebianVersion, prettyDebianVersion)+import Debian.Version (DebianVersion, parseDebianVersion', prettyDebianVersion) import Distribution.Package (PackageIdentifier(..), PackageName(..)) import Distribution.Simple.Compiler (CompilerFlavor(..)) import System.IO.Unsafe (unsafePerformIO)@@ -95,7 +95,7 @@ hcs' where doHCVersion :: [String] -> (DebianVersion, [BinPkgName])- doHCVersion (versionString : "-" : deps) = (parseDebianVersion versionString, map BinPkgName deps)+ doHCVersion (versionString : "-" : deps) = (parseDebianVersion' versionString, map BinPkgName deps) doHCVersion x = error $ "Unexpected output from apt-cache: " ++ show x aptCacheDepends :: FilePath -> String -> String -> Either SomeException String@@ -115,7 +115,7 @@ aptVersions :: FilePath -> String -> [DebianVersion] aptVersions root hcname =- either (\ _ -> []) (map parseDebianVersion . filter (/= "") . map (takeWhile (/= ' ')) . takeWhile (not . isPrefixOf "Reverse Depends:") . drop 1 . dropWhile (not . isPrefixOf "Versions:") . lines) (aptCacheShowPkg root hcname)+ either (\ _ -> []) (map parseDebianVersion' . filter (/= "") . map (takeWhile (/= ' ')) . takeWhile (not . isPrefixOf "Reverse Depends:") . drop 1 . dropWhile (not . isPrefixOf "Versions:") . lines) (aptCacheShowPkg root hcname) takeBetween :: (a -> Bool) -> (a -> Bool) -> [a] -> [a] takeBetween startPred endPred = takeWhile (not . endPred) . dropWhile startPred . dropWhile (not . startPred)
src/Debian/Debianize/DebianName.hs view
@@ -25,7 +25,7 @@ import Debian.Orphans () import Debian.Relation (PkgName(..), Relations) import qualified Debian.Relation as D (VersionReq(EEQ))-import Debian.Version (parseDebianVersion)+import Debian.Version (parseDebianVersion') import Distribution.Compiler (CompilerFlavor(..)) import Distribution.Package (Dependency(..), PackageIdentifier(..), PackageName(PackageName)) import qualified Distribution.PackageDescription as Cabal (PackageDescription(package))@@ -59,7 +59,7 @@ let pkgId = Cabal.package pkgDesc nameMap <- use A.debianNameMap let pname@(PackageName _) = pkgName pkgId- version = (Just (D.EEQ (parseDebianVersion (showVersion (pkgVersion pkgId)))))+ version = (Just (D.EEQ (parseDebianVersion' (showVersion (pkgVersion pkgId))))) case (nameBase, Map.lookup (pkgName pkgId) nameMap) of (Just base, _) -> return base (Nothing, Nothing) -> return $ debianBaseName pname
src/Debian/Debianize/Finalize.hs view
@@ -44,7 +44,7 @@ import qualified Debian.Relation as D (BinPkgName(BinPkgName), Relation(..)) import Debian.Release (parseReleaseName) import Debian.Time (getCurrentLocalRFC822Time)-import qualified Debian.Version as V (buildDebianVersion, DebianVersion, parseDebianVersion, epoch, version, revision)+import qualified Debian.Version as V (buildDebianVersion, DebianVersion, parseDebianVersion', epoch, version, revision) import Distribution.Compiler (CompilerFlavor(GHC)) #if MIN_VERSION_Cabal(1,22,0) import Distribution.Compiler (CompilerFlavor(GHCJS))@@ -53,6 +53,7 @@ import Distribution.PackageDescription as Cabal (allBuildInfo, author, BuildInfo(buildable, extraLibs), Executable(buildInfo, exeName), FlagName(FlagName), maintainer, PackageDescription(testSuites)) import qualified Distribution.PackageDescription as Cabal (PackageDescription(dataFiles, executables, library, package)) import Prelude hiding (init, log, map, unlines, unlines, writeFile)+import System.Directory (doesFileExist) import System.FilePath ((<.>), (</>), makeRelative, splitFileName, takeDirectory, takeFileName) import System.IO (hPutStrLn, stderr) import Text.ParserCombinators.Parsec.Rfc2822 (NameAddr(..))@@ -75,7 +76,8 @@ do date <- liftIO getCurrentLocalRFC822Time currentUser <- liftIO getCurrentDebianUser debhelperCompat <- liftIO getDebhelperCompatLevel- finalizeDebianization' date currentUser debhelperCompat+ setupExists <- or <$> mapM (liftIO . doesFileExist) ["Setup.hs", "Setup.lhs"]+ finalizeDebianization' date currentUser debhelperCompat setupExists vb <- use (A.debInfo . D.flags . verbosity) when (vb >= 3) (get >>= \ x -> liftIO (putStrLn ("\nFinalized Cabal Info: " ++ show x ++ "\n"))) either (\e -> liftIO $ hPutStrLn stderr ("WARNING: " ++ e)) (\_ -> return ()) =<< use (A.debInfo . D.control . S.maintainer)@@ -88,8 +90,8 @@ -- this function is not idempotent. (Exported for use in unit tests.) -- FIXME: we should be able to run this without a PackageDescription, change -- paramter type to Maybe PackageDescription and propagate down thru code-finalizeDebianization' :: (Monad m, Functor m) => String -> Maybe NameAddr -> Maybe Int -> CabalT m ()-finalizeDebianization' date currentUser debhelperCompat =+finalizeDebianization' :: (Monad m, Functor m) => String -> Maybe NameAddr -> Maybe Int -> Bool -> CabalT m ()+finalizeDebianization' date currentUser debhelperCompat setupExists = do -- In reality, hcs must be a singleton or many things won't work. But some day... hc <- use (A.debInfo . D.flags . compilerFlavor) pkgDesc <- use A.packageDescription@@ -100,6 +102,9 @@ (True, D.TestsRun) -> (A.debInfo . D.rulesSettings) %= (++ ["DEB_ENABLE_TESTS = yes"]) (True, D.TestsBuild) -> (A.debInfo . D.rulesSettings) %= (++ ["DEB_ENABLE_TESTS = yes", "DEB_BUILD_OPTIONS += nocheck"]) _ -> return ()+ case setupExists of+ False -> (A.debInfo . D.rulesSettings) %= (++ ["DEB_SETUP_BIN_NAME = cabal"])+ _ -> return () finalizeSourceName B.HaskellSource checkOfficialSettings hc@@ -157,7 +162,7 @@ debianVersion :: (Monad m, Functor m) => CabalT m V.DebianVersion debianVersion = do cabalName <- (pkgName . Cabal.package) <$> use A.packageDescription- (cabalVersion :: V.DebianVersion) <- (V.parseDebianVersion . ppShow . pkgVersion . Cabal.package) <$> use A.packageDescription+ (cabalVersion :: V.DebianVersion) <- (V.parseDebianVersion' . ppShow . pkgVersion . Cabal.package) <$> use A.packageDescription cabalEpoch <- debianEpoch cabalName fmt <- use (A.debInfo . D.sourceFormat) cabalRevision <-@@ -182,12 +187,12 @@ _ | isJust versionArg -> return $ fromJust versionArg _ | isJust debVersion -> case (V.epoch (fromJust debVersion),- V.parseDebianVersion (V.version (fromJust debVersion)),+ V.parseDebianVersion' (V.version (fromJust debVersion)), V.revision (fromJust debVersion)) of (debEpoch, debianVersion', (debianRevision :: Maybe String)) -> let finalEpoch = max debEpoch cabalEpoch finalVersion = max debianVersion' cabalVersion- (finalRevision :: Maybe String) = maximumBy (compare `on` fmap V.parseDebianVersion) [debianRevision, cabalRevision] in+ (finalRevision :: Maybe String) = maximumBy (compare `on` fmap V.parseDebianVersion') [debianRevision, cabalRevision] in return $ V.buildDebianVersion finalEpoch (ppShow finalVersion) finalRevision _ -> return $ V.buildDebianVersion cabalEpoch (ppShow cabalVersion) cabalRevision
src/Debian/Debianize/Optparse.hs view
@@ -31,7 +31,7 @@ import Debian.Debianize.VersionSplits import Debian.Policy import Debian.Relation-import Debian.Version.Common (DebianVersion, parseDebianVersion)+import Debian.Version (DebianVersion, parseDebianVersion') import Distribution.Compiler (CompilerFlavor(..)) import Distribution.Package (PackageName(..)) import Distribution.PackageDescription (FlagName(FlagName))@@ -302,7 +302,7 @@ ] debianVersionP :: O.Parser (Maybe DebianVersion)-debianVersionP = O.option (Just . parseDebianVersion <$> O.str) m where+debianVersionP = O.option (Just . parseDebianVersion' <$> O.str) m where m = O.help helpMsg <> O.long "deb-version" <> O.metavar "DEBIANVERSION"
src/Debian/Debianize/Prelude.hs view
@@ -61,8 +61,7 @@ import Debian.Pretty (PP(PP)) import qualified Debian.Relation as D (BinPkgName(BinPkgName), Relations) import Debian.Relation.Common ()-import Debian.Version (DebianVersion, prettyDebianVersion)-import Debian.Version.String (parseDebianVersion)+import Debian.Version (DebianVersion, parseDebianVersion', prettyDebianVersion) import Distribution.Package (PackageIdentifier(..), PackageName(..)) import Distribution.Verbosity (intToVerbosity, Verbosity) import GHC.IO.Exception (ExitCode(ExitFailure, ExitSuccess), IOErrorType(InappropriateType, NoSuchThing), IOException(IOError, ioe_description, ioe_type))@@ -86,7 +85,7 @@ return . either (const []) unControl . parseControl "/var/lib/dpkg/status" >>= mapM (\ p -> case (lookupP "Package" p, lookupP "Version" p) of (Just (Field (_, name)), Just (Field (_, version))) ->- return (Just (D.BinPkgName (stripWS name), Just (parseDebianVersion (stripWS version))))+ return (Just (D.BinPkgName (stripWS name), Just (parseDebianVersion' (stripWS version)))) _ -> return Nothing) >>= return . Map.fromList . catMaybes
src/Debian/Debianize/VersionSplits.hs view
@@ -22,7 +22,7 @@ import Debian.Debianize.Interspersed (foldTriples, Interspersed(leftmost, pairs, foldInverted)) import Debian.Orphans () import qualified Debian.Relation as D (VersionReq(..))-import Debian.Version (DebianVersion, parseDebianVersion)+import Debian.Version (DebianVersion, parseDebianVersion') import Distribution.Package (PackageIdentifier(..), PackageName(..)) import Distribution.Version (anyVersion, earlierVersion, intersectVersionRanges, orLaterVersion, VersionRange) import Prelude hiding (init, log, unlines)@@ -88,12 +88,12 @@ debianFromCabal :: VersionSplits -> PackageIdentifier -> DebBase debianFromCabal s p = doSplits s (Just (D.EEQ debVer))- where debVer = parseDebianVersion (showVersion (pkgVersion p))+ where debVer = parseDebianVersion' (showVersion (pkgVersion p)) cabalFromDebian' :: Map PackageName VersionSplits -> DebBase -> Version -> PackageIdentifier cabalFromDebian' mp base ver = PackageIdentifier (cabalFromDebian mp base dver) ver- where dver = parseDebianVersion (showVersion ver)+ where dver = parseDebianVersion' (showVersion ver) -- | Brute force implementation - I'm assuming this is not a huge map. cabalFromDebian :: Map PackageName VersionSplits -> DebBase -> DebianVersion -> PackageName@@ -118,7 +118,7 @@ doSplits :: VersionSplits -> Maybe D.VersionReq -> DebBase doSplits s version = foldTriples' (\ ltName v geName _ ->- let split = parseDebianVersion (showVersion v) in+ let split = parseDebianVersion' (showVersion v) in case version of Nothing -> geName Just (D.SLT v') | v' <= split -> ltName
src/Debian/GHC.hs view
@@ -25,7 +25,7 @@ import Data.Version (showVersion, Version(Version), parseVersion) import Debian.Debianize.BinaryDebDescription (PackageType(..)) import Debian.Relation (BinPkgName(BinPkgName))-import Debian.Version (DebianVersion, parseDebianVersion)+import Debian.Version (DebianVersion, parseDebianVersion') import Distribution.Compiler (CompilerFlavor(..), CompilerId(CompilerId)) #if MIN_VERSION_Cabal(1,22,0) import Distribution.Compiler (CompilerInfo(..), unknownCompilerInfo, AbiTag(NoAbiTag))@@ -64,7 +64,7 @@ return . dropWhile (/= "Versions: ") . lines) :: IO (Either SomeException [String]) case versions of Left e -> error $ "newestAvailable failed in " ++ show root ++ ": " ++ show e- Right (_ : versionLine : _) -> return . Just . parseDebianVersion . takeWhile (/= ' ') $ versionLine+ Right (_ : versionLine : _) -> return . Just . parseDebianVersion' . takeWhile (/= ' ') $ versionLine _ -> return Nothing where chroot "/" = id@@ -120,7 +120,7 @@ CompilerId hc (greatestLowerBound debVersion (map (\ d -> Version (ds ++ [d]) ts) [0..])) where greatestLowerBound :: DebianVersion -> [Version] -> Version- greatestLowerBound b xs = last $ takeWhile (\ v -> parseDebianVersion (showVersion v) < b) xs+ greatestLowerBound b xs = last $ takeWhile (\ v -> parseDebianVersion' (showVersion v) < b) xs -- | General function to build a command line option that reads most -- of the possible values for CompilerFlavor.
src/Debian/Policy.hs view
@@ -55,7 +55,7 @@ import Debian.Debianize.Prelude (read') import Debian.Pretty (PP(..)) import Debian.Relation (BinPkgName)-import Debian.Version (DebianVersion, parseDebianVersion, version)+import Debian.Version (DebianVersion, parseDebianVersion', version) import qualified Distribution.License as Cabal (License(..)) import Distribution.Package (PackageIdentifier(pkgName)) import Distribution.PackageDescription (PackageDescription(package))@@ -109,11 +109,11 @@ debianPackageVersion :: String -> IO (Maybe DebianVersion) debianPackageVersion name = readProcess "dpkg-query" ["--show", "--showformat=${version}", name] "" >>=- return . parseDebianVersion'+ return . parseDebianVersion'' where -- This should maybe be the real parseDebianVersion- parseDebianVersion' "" = Nothing- parseDebianVersion' s = Just (parseDebianVersion s)+ parseDebianVersion'' "" = Nothing+ parseDebianVersion'' s = Just (parseDebianVersion' s) -- | The version number of the installed debhelper package is the -- highest acceptable value for compat in a debian/control file. If
test-data/alex/output/debian/rules view
@@ -1,5 +1,6 @@ #!/usr/bin/make -f +DEB_SETUP_BIN_NAME = cabal DEB_CABAL_PACKAGE = alex DEB_DEFAULT_COMPILER = ghc
test-data/archive/output/debian/rules view
@@ -1,5 +1,6 @@ #!/usr/bin/make -f +DEB_SETUP_BIN_NAME = cabal DEB_CABAL_PACKAGE = seereason-darcs-backups DEB_DEFAULT_COMPILER = ghc
test-data/artvaluereport-data/output/debian/rules view
@@ -1,5 +1,6 @@ #!/usr/bin/make -f +DEB_SETUP_BIN_NAME = cabal DEB_CABAL_PACKAGE = artvaluereport-data DEB_DEFAULT_COMPILER = ghc
test-data/artvaluereport2/input/debian/Debianize.hs view
@@ -13,7 +13,7 @@ import Debian.Pretty (ppShow) import Debian.Policy (databaseDirectory, PackageArchitectures(All), StandardsVersion(StandardsVersion)) import Debian.Relation (BinPkgName(BinPkgName), Relation(Rel), SrcPkgName(..), VersionReq(SLT))-import Debian.Version (parseDebianVersion)+import Debian.Version (parseDebianVersion') -- This looks somewhat like a "real" Debianize.hs file except that (1) it -- expects to be run from the cabal-debian source directory and (2) it returns@@ -51,7 +51,7 @@ addServerData addServerDeps (debInfo . binaryDebDescription (BinPkgName "appraisalscope") . description) .= Just "Offline manipulation of appraisal database"- (debInfo . control . buildDependsIndep) %= (++ [[Rel (BinPkgName "libjs-jquery-ui") (Just (SLT (parseDebianVersion ("1.10" :: String)))) Nothing]])+ (debInfo . control . buildDependsIndep) %= (++ [[Rel (BinPkgName "libjs-jquery-ui") (Just (SLT (parseDebianVersion' ("1.10" :: String)))) Nothing]]) (debInfo . control . buildDependsIndep) %= (++ [[Rel (BinPkgName "libjs-jquery") Nothing Nothing]]) (debInfo . control . buildDependsIndep) %= (++ [[Rel (BinPkgName "libjs-jcrop") Nothing Nothing]]) (debInfo . binaryDebDescription (BinPkgName "artvaluereport2-staging") . architecture) .= Just All
test-data/artvaluereport2/output/debian/rules view
@@ -1,5 +1,6 @@ #!/usr/bin/make -f +DEB_SETUP_BIN_NAME = cabal DEB_CABAL_PACKAGE = artvaluereport DEB_DEFAULT_COMPILER = ghc
test-data/clckwrks-dot-com/output/debian/rules view
@@ -1,6 +1,7 @@ #!/usr/bin/make -f DEB_SETUP_GHC_CONFIGURE_ARGS = -fbackups+DEB_SETUP_BIN_NAME = cabal DEB_CABAL_PACKAGE = clckwrks-dot-com DEB_DEFAULT_COMPILER = ghc
test-data/creativeprompts/output/debian/control view
@@ -38,8 +38,8 @@ , libghc-json-dev , libghc-mtl-dev , libghc-network-dev- , libghc-old-locale-dev- , libghc-old-time-dev+ , libghc-old-locale-dev+ , libghc-old-time-dev , libghc-parsec3-dev (>= 3) | libghc-parsec2-dev (<< 3) , libghc-random-dev , libghc-safecopy-dev (>= 0.6.0)
test-data/creativeprompts/output/debian/rules view
@@ -1,5 +1,6 @@ #!/usr/bin/make -f +DEB_SETUP_BIN_NAME = cabal DEB_CABAL_PACKAGE = creativeprompts DEB_DEFAULT_COMPILER = ghc