packages feed

archlinux 0.3.6 → 1.0

raw patch · 4 files changed

+29/−106 lines, 4 filesdep −bytestringdep −tarPVP ok

version bump matches the API change (PVP)

Dependencies removed: bytestring, tar

API changes (from Hackage documentation)

- Distribution.ArchLinux.HackageTranslation: getCabalFromEntry :: Entry -> Maybe GenericPackageDescription
- Distribution.ArchLinux.HackageTranslation: getCabalsFromTarball :: ByteString -> [GenericPackageDescription]
- Distribution.ArchLinux.HackageTranslation: getSpecifiedCabals :: [PackageIdentifier] -> [GenericPackageDescription] -> [GenericPackageDescription]
- Distribution.ArchLinux.HackageTranslation: getSpecifiedCabalsFromTarball :: ByteString -> [String] -> [GenericPackageDescription]
- Distribution.ArchLinux.HackageTranslation: parse2maybe :: ParseResult a -> Maybe a
- Distribution.ArchLinux.HackageTranslation: parsePackageIdentifier :: String -> Maybe PackageIdentifier

Files

Distribution/ArchLinux/CabalTranslation.hs view
@@ -205,7 +205,7 @@           "http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz"     , arch_build =         [ "cd ${srcdir}/${_hkgname}-${pkgver}"-        , "runhaskell Setup configure -O --enable-split-objs --enable-shared \\"+        , "runhaskell Setup configure -O ${PKGBUILD_HASKELL_ENABLE_PROFILING:+-p } --enable-split-objs --enable-shared \\"         , "   --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\\$compiler/site-local/\\$pkgid"         , "runhaskell Setup build"         , "runhaskell Setup haddock"@@ -219,7 +219,8 @@         , "install    -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh"         , "install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries"         , "ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}"-        ,"runhaskell Setup copy --destdir=${pkgdir}"]+        , "runhaskell Setup copy --destdir=${pkgdir}"+        ]     -- if its a library:     , arch_install = Just "${pkgname}.install"     }
Distribution/ArchLinux/HackageTranslation.hs view
@@ -6,69 +6,21 @@ -- Maintainer: Arch Haskell Team <arch-haskell@haskell.org> -- -module Distribution.ArchLinux.HackageTranslation where+module Distribution.ArchLinux.HackageTranslation+  ( getVersionConflicts+  , getLatestVersions+  )+  where+ import Distribution.ArchLinux.CabalTranslation import Distribution.ArchLinux.SystemProvides -- Cabal modules import Distribution.Package import Distribution.Version import Distribution.PackageDescription-import Distribution.PackageDescription.Parse -- Standard types-import Distribution.Text import qualified Data.Map as M-import qualified Data.Set as Set import Data.Maybe--- Read tarballs-import qualified Codec.Archive.Tar as Tar-import qualified Data.ByteString.Lazy.Char8 as Bytes------- | Reads a tarball and converts it to a list of PackageDescription's----getCabalsFromTarball :: Bytes.ByteString -> [GenericPackageDescription]-getCabalsFromTarball tarball = Tar.foldEntries insertThis [] (const []) files-  where files = Tar.read tarball-        insertThis file list = case getCabalFromEntry file of-          Nothing -> list-          Just pkg -> pkg:list--getCabalFromEntry :: Tar.Entry -> Maybe GenericPackageDescription-getCabalFromEntry file = case Tar.entryContent file of-  Tar.NormalFile contents _ -> parse2maybe $ parsePackageDescription $ Bytes.unpack contents-  _ -> Nothing--parse2maybe :: ParseResult a -> Maybe a-parse2maybe a = case a of-      ParseOk _ pkg -> Just pkg-      _ -> Nothing------- | Reads a tarball and get cabal files according to a list----getSpecifiedCabalsFromTarball :: Bytes.ByteString -> [String] -> [GenericPackageDescription]-getSpecifiedCabalsFromTarball tarball list =-  getSpecifiedCabals (mapMaybe parsePackageIdentifier list) (getCabalsFromTarball tarball)------- | Parses a list of lines of the form "package-name 1.2.3.4"----parsePackageIdentifier :: String -> Maybe PackageIdentifier-parsePackageIdentifier s = case words s of-  []             -> void-  "#":_          -> void-  name:version:_ -> case simpleParse version of-        Nothing -> err-        Just v -> Just $ PackageIdentifier { pkgName = PackageName name, pkgVersion = v }-  _ -> err- where-  void = Nothing-  err = error ("Malformed package identifier " ++ show s)--getSpecifiedCabals :: [PackageIdentifier] -> [GenericPackageDescription] -> [GenericPackageDescription]-getSpecifiedCabals list packages = filter wasSpecified packages-  where set = Set.fromList list-        wasSpecified p = Set.member (packageId p) set  -- -- | Check for inconsistencies in version requirements
archlinux.cabal view
@@ -1,8 +1,12 @@ name:           archlinux-version:        0.3.6+version:        1.0 license:        BSD3 license-file:   LICENSE-author:         Don Stewart <dons@galois.com>+author:         Don Stewart <dons@galois.com>,+                Rémy Oudompheng <remyoudompheng@gmail.com>,+                Peter Simons <simons@cryp.to>,+                Magnus Therning <magnus@therning.org>,+                Linus Arver <linusarver@gmail.com> maintainer:     ArchHaskell Team <arch-haskell@haskell.org> homepage:       http://github.com/archhaskell/ category:       Distribution@@ -19,33 +23,18 @@   location:     git://github.com/archhaskell/archlinux.git  library-    build-depends:  base >= 4 && < 6,-                    Cabal >= 1.6,-                    pretty,-                    containers,-                    directory,-                    filepath,-                    bytestring,-                    tar--    exposed-modules:-        Distribution.ArchLinux.PkgBuild-        Distribution.ArchLinux.SrcRepo-        Distribution.ArchLinux.CabalTranslation-        Distribution.ArchLinux.HackageTranslation-        Distribution.ArchLinux.SystemProvides-    other-modules:-        Paths_archlinux+  ghc-Options:	-Wall+  build-depends:+    base >= 4 && < 6,+    Cabal >= 1.6,+    pretty,+    containers,+    directory,+    filepath -executable recdeps-    main-is: scripts/recdeps.hs-    build-depends:-        base >=4 && <6,-        directory,-        filepath,-        containers,-        pretty,-        Cabal >= 1.6-    other-modules:-        Distribution.ArchLinux.PkgBuild-        Distribution.ArchLinux.SrcRepo+  exposed-modules:+    Distribution.ArchLinux.PkgBuild+    Distribution.ArchLinux.SrcRepo+    Distribution.ArchLinux.CabalTranslation+    Distribution.ArchLinux.SystemProvides+    Distribution.ArchLinux.HackageTranslation
− scripts/recdeps.hs
@@ -1,19 +0,0 @@------ | This test reads the current directory and dumps a topologically sorted package list-----module Main where--import Distribution.ArchLinux.SrcRepo-import System.IO-import System.Directory-import System.Environment-import Control.Monad--main = do-  [pkg] <- getArgs-  dot <- getCurrentDirectory-  repo <- getRepoFromDir dot-  case repo of-    Nothing -> return ()-    Just r -> foldM (\a -> \s -> putStrLn s) () (getDependencies pkg r)