Hi Stephen,
Am Donnerstag, den 19.04.2012, 11:14 -0500 schrieb Stephen Paul Weber:
> Somebody signing messages as Joachim Breitner wrote:
> >> *-doc by the existing logic, README and similar docs seem to be put in the
> >> main package, which seems correct to me. Binaries are copied by the logic
> >> I'm prototyping. So that leaves "everything else". I should experiment
> >> with a more complex Haskell application, like maybe darcs.
> >
> >haskell-hledger-web is an example for a package that needs extra data
> >(and that is broken in that regard right now):
> >http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=668622
> >
> >hlint also requires data files, and so does threadscope.
>
> hlint seems to install ghc libraries as well. Is this intentional? It
> seems that if the libraries are wanted, they should go in a libghc-hlint-dev
> package, seperate from the utility package containing the binary.
They do go into the libghc-hlint-dev package, not sure what you are
hinting at here:
http://packages.debian.org/sid/amd64/hlint/filelist
http://packages.debian.org/sid/amd64/libghc-hlint-dev/filelist
>
> If this is the case, then the following builds hlint:
>
> #!/usr/bin/make -f
>
> include /usr/share/cdbs/1/rules/debhelper.mk
> include /usr/share/cdbs/1/class/hlibrary.mk
>
> # If no threaded RTS is found, disable it
> DEB_SETUP_GHC_CONFIGURE_ARGS := $(shell test -e /usr/lib/ghc-$(GHC_VERSION)/libHSrts_thr.a || echo --flags=-threaded)
>
> build/$(CABAL_PACKAGE):: build-ghc-stamp
>
> install/$(CABAL_PACKAGE):: debian/tmp-inst-ghc
> cd debian/tmp-inst-ghc ; find usr/bin/ \
> -exec install -Dm 755 '{}' ../$(notdir $@)/'{}' ';'
> cd debian/tmp-inst-ghc ; find usr/share/$(notdir $@)* \
> -exec install -Dm 644 '{}' ../$(notdir $@)/'{}' ';'
> mkdir -p debian/$(notdir $@)/usr/share/emacs/site-lisp
> mv debian/$(notdir $@)/usr/share/$(notdir $@)*/hs-lint.el debian/$(notdir $@)/usr/share/emacs/site-lisp
> install -Dm 644 hlint.htm debian/$(CABAL_PACKAGE)/usr/share/doc/$(CABAL_PACKAGE)/hlint.html
>
> The DEB_SETUP_GHC_CONFIGURE_ARGS thing is sort of more general, but I'm not
> sure what the right way to handle that is. Maybe a DEB_GHC_TRY_THREADED=1
> sort of thing?
The test can be abstracted, but not the flag, as that is (unfortunately)
package-specific.
> You'll note that the only addition over my usr/bin/ copyer from before is an
> alsmost identical command for user/share/$(notdir $@)*
>
> After that comes two lines to install an emacs lisp file to the correct
> location. I'm not sure if there's a way to make that more general.
>
> Finally, a line to install an extra documentation file. Since the *.cabal
> does not know that this file is documentation, and it does not have a name
> that immidiately identifies it as documentation (like README), I think
> something custom is going to be required for that case no matter what.
I think these two cases can go (or rather, stay) in
debian/hlint.install, while the rest looks like it can go into
hlibrary.mk.
> Replacing the threadscope debian/rules with the above (minus the emacs and
> docs line) allows all the lines except the *.xpm and *.desktop lines to be
> removed from the threadscope *.install
There are only those two lines in the threadscope.install; I guess you
mean that the install/$(CABAL_PACKAGE) target in the makefile can be
removed.
> So, little bits of custom install remain in both, but this seems to be to be
> the right sort of direction.
Great!
Greetings,
Joachim
--
Joachim "nomeata" Breitner
Debian Developer
nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata
Attachment:
signature.asc
Description: This is a digitally signed message part