Difference between revisions of "Arch Linux"

From HaskellWiki
Jump to navigation Jump to search
 
Line 3: Line 3:
 
=== Community ===
 
=== Community ===
   
#arch-haskell on freenode.
+
#arch-haskell on freenode.
   
  +
=== Guidelines ===
  +
  +
We're working on a tool to automate PKGBUILD generation.
  +
  +
* darcs get [http://code.haskell.org/~dons/code/cabal2arch cabal2arch]
  +
  +
====Libraries ====
  +
  +
In general, each .cabal file should map to one PKGBUILD. The following conventions hold:
  +
  +
* libraries have their cabal names prefixed with "haskell-"
  +
* all haskell dependencies are statically linked, so can go in the makdepends field.
  +
* all libraries have a dependency on 'ghc'
  +
  +
Registering Haskell libraries is done via a register hook:
  +
  +
<haskell>
  +
build() {
  +
cd $startdir/src/cabal2arch-0.1
  +
runhaskell Setup configure --prefix=/usr || return 1
  +
runhaskell Setup build || return 1
  +
runhaskell Setup register --gen-script || return 1
  +
runhaskell Setup unregister --gen-script || return 1
  +
install -D -m744 register.sh $startdir/pkg/usr/share/haskell/$pkgname/register.sh
  +
install -m744 unregister.sh $startdir/pkg/usr/share/haskell/$pkgname/unregister.sh
  +
runhaskell Setup copy --destdir=$startdir/pkg || return 1
  +
install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE || return 1
  +
}
  +
</haskell>
  +
  +
====Executables ====
  +
  +
* Have their normal name
 
[[Categories:Community]]
 
[[Categories:Community]]

Revision as of 03:44, 12 June 2008

Haskell on Arch Linux

Community

#arch-haskell on freenode.

Guidelines

We're working on a tool to automate PKGBUILD generation.

Libraries

In general, each .cabal file should map to one PKGBUILD. The following conventions hold:

  • libraries have their cabal names prefixed with "haskell-"
  • all haskell dependencies are statically linked, so can go in the makdepends field.
  • all libraries have a dependency on 'ghc'

Registering Haskell libraries is done via a register hook:

build() {
    cd $startdir/src/cabal2arch-0.1
    runhaskell Setup configure --prefix=/usr || return 1
    runhaskell Setup build                   || return 1
    runhaskell Setup register   --gen-script || return 1
    runhaskell Setup unregister --gen-script || return 1
    install -D -m744 register.sh   $startdir/pkg/usr/share/haskell/$pkgname/register.sh
    install    -m744 unregister.sh $startdir/pkg/usr/share/haskell/$pkgname/unregister.sh
    runhaskell Setup copy --destdir=$startdir/pkg || return 1
    install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE || return 1
}

Executables

  • Have their normal name

Categories:Community