[Freebsd-haskell] Comments on use of bsd.haskell.mk

Ashish SHUKLA wahjava.ml at gmail.com
Sat Jan 31 00:45:50 EST 2009


Hi everyone,

Apologies for being unre{sponsive,achable} in the last few days.

Anyways, I've *finally* gone through bsd.haskell.mk submitted by Jacula,
and tried porting devel/hs-utf8-string-ghc to it and with little bit of
struggle with documentation I was successful. Following are the Makefile
and pkg-plist of the updated port.

,---- Makefile
| PORTNAME=       utf8-string
| PORTVERSION=    0.3.4
| CATEGORIES=     devel haskell
| MASTER_SITES=   ${MASTER_SITE_HACKAGE}
| PKGNAMEPREFIX=  hs-
| PKGNAMESUFFIX=  -ghc
| 
| MAINTAINER=     wahjava at gmail.com
| COMMENT=        Support for reading/writing UTF8 strings for Haskell programs
| 
| USE_CABAL=      distrsimple:full docs hc:full lhs genreg profile:full
| 
| .include <bsd.port.mk>
`----

,---- pkg-plist
| %%D_LIBSUBDIR_REL%%/Codec/Binary/UTF8/Generic.hi
| %%PROFILE%%%%D_LIBSUBDIR_REL%%/Codec/Binary/UTF8/Generic.p_hi
| %%D_LIBSUBDIR_REL%%/Codec/Binary/UTF8/String.hi
| %%PROFILE%%%%D_LIBSUBDIR_REL%%/Codec/Binary/UTF8/String.p_hi
| %%D_LIBSUBDIR_REL%%/Data/ByteString/Lazy/UTF8.hi
| %%PROFILE%%%%D_LIBSUBDIR_REL%%/Data/ByteString/Lazy/UTF8.p_hi
| %%D_LIBSUBDIR_REL%%/Data/ByteString/UTF8.hi
| %%PROFILE%%%%D_LIBSUBDIR_REL%%/Data/ByteString/UTF8.p_hi
| %%D_LIBSUBDIR_REL%%/Data/String/UTF8.hi
| %%PROFILE%%%%D_LIBSUBDIR_REL%%/Data/String/UTF8.p_hi
| %%D_LIBSUBDIR_REL%%/HSutf8-string-0.3.4.o
| %%D_LIBSUBDIR_REL%%/System/IO/UTF8.hi
| %%PROFILE%%%%D_LIBSUBDIR_REL%%/System/IO/UTF8.p_hi
| %%D_LIBSUBDIR_REL%%/libHSutf8-string-0.3.4.a
| %%PROFILE%%%%D_LIBSUBDIR_REL%%/libHSutf8-string-0.3.4_p.a
| %%D_LIBDIR_REL%%/%%D_REG%%
| %%NOPORTDOCS%%%%DOCSDIR%%/LICENSE
| %%NOPORTDOCS%%@dirrm %%DOCSDIR%%
| @dirrm %%D_LIBSUBDIR_REL%%/System/IO
| @dirrm %%D_LIBSUBDIR_REL%%/System
| @dirrm %%D_LIBSUBDIR_REL%%/Data/String
| @dirrm %%D_LIBSUBDIR_REL%%/Data/ByteString/Lazy
| @dirrm %%D_LIBSUBDIR_REL%%/Data/ByteString
| @dirrm %%D_LIBSUBDIR_REL%%/Data
| @dirrm %%D_LIBSUBDIR_REL%%/Codec/Binary/UTF8
| @dirrm %%D_LIBSUBDIR_REL%%/Codec/Binary
| @dirrm %%D_LIBSUBDIR_REL%%/Codec
| @dirrm %%D_LIBSUBDIR_REL%%
| @dirrm lib/utf8-string-0.3.4
| @exec %%REG_CMD%%
| @unexec %%UNREG_CMD%%
`----

Now, I've a (C)omment, (Q)uestion and (S)uggestion regarding that
bsd.haskell.mk w.r.t. to the above port stuff: 

Q. As clear from the below output, the updated ports installs libraries
in the ${PREFIX}/lib/${PORTNAME}-${PORTVERSION}/${GHC_VER} instead of
the older ${PREFIX}/lib/${GHC_VER}/cabal. Is this convention going to be
followed from now onwards, hmm... ? I'm a n00b in the Haskell world, so
I'm not sure about this convention thingie, but anyhow package worked
fine in that other location too, due to package registration script :).

,----
| abbe [hs-utf8-string-ghc] monte-cristo% pkg_info -xL utf8-string |fgrep lib
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Codec/Binary/UTF8/Generic.hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Codec/Binary/UTF8/Generic.p_hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Codec/Binary/UTF8/String.hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Codec/Binary/UTF8/String.p_hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Data/ByteString/Lazy/UTF8.hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Data/ByteString/Lazy/UTF8.p_hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Data/ByteString/UTF8.hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Data/ByteString/UTF8.p_hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Data/String/UTF8.hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/Data/String/UTF8.p_hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/HSutf8-string-0.3.4.o
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/System/IO/UTF8.hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/System/IO/UTF8.p_hi
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/libHSutf8-string-0.3.4.a
| /usr/local/lib/utf8-string-0.3.4/ghc-6.8.3/libHSutf8-string-0.3.4_p.a
| /usr/local/lib/utf8-string-0.3.4/register.sh
`----

C. The bsd.haskell.mk seems to be good enough, but few things I've not
understood esp. the workings and theory of the "funky" part due to my
lack of category-theory background. So pardon me for my n00bness atm but
I'll try to understand this, as the theory part interests me too :).

S. The best way to test out the bsd.haskell.mk is by porting more and
more ports to it. So I recommend we should port existing ports and new
ports to the bsd.haskell.mk way and push to the 'infrastructure' branch
(or any other special branch created for the purpose). And until
bsd.haskell.mk makes into the official ports tree, we should also keep
porting new/updated ports in the current way. Although this will be a
bit time consuming, but this will be helpful in testing bsd.haskell.mk
and improving it wherever it lacks. And whenever bsd.haskell.mk goes
into the tree, the haskell ports can also be submitted.

And IIRC, Samy mentioned on the IRC that he is running GHC 6.10.1 on his
"centrino" box. Samy if you need some testers, could you please push
your port to the repo so we can start working with it. And also will I
be able to install multiple versions of GHC side-by-side, hmm...?

Thanks
-- 
Ashish SHUKLA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/freebsd-haskell/attachments/20090131/07067b8c/attachment.bin


More information about the FreeBSD-haskell mailing list