[arch-haskell] Policy change in cabal2arch wrt. "provides"

Don Stewart dons at galois.com
Mon Jan 18 20:04:32 EST 2010


Hey all,

After some discussion on the IRC channel, I've changed the policy in
cabal2arch wrt. "provides". That is, whether to list explicitly all
dependencies on a package -- even those provided in the GHC bundle.

Not listing things is convenient -- as it means that tools that don't
understand 'provides' will work. However, it means we have to update
cabal2arch on every major GHC release. And all the PKGBUILDs!!

Listing all dependencies, then relying on tools to readd the provides
field of GHC and get it right, means we do *zero* work when a GHC major
release happens -- since libs can move in and out of the provides set
without problems.

So that is now the policy, and the upcoming cabal2arch update will
generate PKGBUILDS including the following deps (as needed):

    -- Official Provides: http://repos.archlinux.org/wsvn/packages/ghc/repos/extra-x86_64/PKGBUILD
    --  ,Dependency (PackageName "array")            (ThisVersion (Version  [0,3,0,0] []))
    --  ,Dependency (PackageName "bytestring")       (ThisVersion (Version  [0,9,1,5] []))
    --  ,Dependency (PackageName "Cabal")            (ThisVersion (Version  [1,8,0,2] []))
    --  ,Dependency (PackageName "containers")       (ThisVersion (Version  [0,3,0,0] []))
    --  ,Dependency (PackageName "directory")        (ThisVersion (Version  [1,0,1,0] []))
    --  ,Dependency (PackageName "extensible-exceptions")         (AnyVersion)
    --  ,Dependency (PackageName "filepath")         (ThisVersion (Version  [1,1,0,3] []))
    --  ,Dependency (PackageName "haskell98")        (ThisVersion (Version  [1,0,1,1] []))
    --  ,Dependency (PackageName "hpc")              (ThisVersion (Version  [0,5,0,4] []))
    --  ,Dependency (PackageName "old-locale")       (ThisVersion (Version  [1,0,0,2] []))
    --  ,Dependency (PackageName "old-time")         (ThisVersion (Version  [1,0,0,1] []))
    --  ,Dependency (PackageName "pretty")           (ThisVersion (Version  [1,0,1,1] []))
    --  ,Dependency (PackageName "process")          (ThisVersion (Version  [1,0,1,2] []))
    --  ,Dependency (PackageName "random")           (ThisVersion (Version  [1,0,0,2] []))
    --  ,Dependency (PackageName "syb")              (ThisVersion (Version  [0,1,0,2] []))
    --  ,Dependency (PackageName "template-haskell") (ThisVersion (Version  [2,4,0,0] []))
    --  ,Dependency (PackageName "time")             (ThisVersion (Version  [1,1,4] []))
    --  ,Dependency (PackageName "unix")             (ThisVersion (Version  [2,4,0,0] []))
    --  utf8-string


It will continue to **NOT** list these:

    ,Dependency (PackageName "base")             (ThisVersion (Version  [4,1,0,0] []))
    ,Dependency (PackageName "dph-base")           (ThisVersion (Version [ 0,3 ] [] ))
    ,Dependency (PackageName "dph-par" )           (ThisVersion (Version [ 0,3 ] [] ))
    ,Dependency (PackageName "dph-prim-interface") (ThisVersion (Version [ 0,3 ] [] ))
    ,Dependency (PackageName "dph-prim-par"   )    (ThisVersion (Version [ 0,3 ] [] ))
    ,Dependency (PackageName "dph-prim-seq"   )    (ThisVersion (Version [ 0,3 ] [] ))
    ,Dependency (PackageName "dph-seq"        )    (ThisVersion (Version [ 0,3 ] [] ))
    ,Dependency (PackageName "ghc")              (AnyVersion)
    ,Dependency (PackageName "ghc-prim")         (AnyVersion)

Which are all "magic"

Now, we will need a list of package tools that don't support "provides" to not
recommend. And I will have cabal2arch insert a comment regarding our
requirement to support "provides"

Comments?

-- Don


More information about the arch-haskell mailing list