debian-4.1.2: Modules for working with the Debian package system

Safe Haskell | None
Language | Haskell2010

Debian.Apt.Package

Description

Functions for dealing with source and binary packages in an abstract-way

Synopsis

- type PackageNameMap a = Map BinPkgName [a]
- packageNameMap :: (a -> BinPkgName) -> [a] -> PackageNameMap a
- addProvides :: (p -> [BinPkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p
- findProvides :: (p -> [BinPkgName]) -> [p] -> [(BinPkgName, p)]
- lookupPackageByRel :: PackageNameMap a -> (a -> (BinPkgName, DebianVersion)) -> Relation -> [a]

# Documentation

type PackageNameMap a = Map BinPkgName [a] Source #

packageNameMap :: (a -> BinPkgName) -> [a] -> PackageNameMap a Source #

`packageNameMap` creates a map from a package name to all the versions of that package NOTE: Provides are not included in the map NOTE: the sort order is random -- this is perhaps a bug see also: `addProvides`

addProvides :: (p -> [BinPkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p Source #

`addProvides` finds packages that Provide other packages and adds them to the PackageNameMap. They will be adde to the end of the list, so that real packages have 'higher priority' than virtual packages. NOTE: Does not check for duplication or multiple use

findProvides :: (p -> [BinPkgName]) -> [p] -> [(BinPkgName, p)] Source #

`findProvides`

lookupPackageByRel :: PackageNameMap a -> (a -> (BinPkgName, DebianVersion)) -> Relation -> [a] Source #

`lookupPackageByRel` returns all the packages that satisfy the specified relation TODO: Add architecture check