From: Thomas Klausner <wiz%NetBSD.org@localhost> Subject: Re: CVS commit: pkgsrc/devel/hs-QuickCheck Date: Sat, 14 Feb 2015 09:31:24 +0100 > On Sat, Feb 14, 2015 at 04:57:28AM +0000, Masatake Daimon wrote: >> Module Name: pkgsrc >> Committed By: pho >> Date: Sat Feb 14 04:57:28 UTC 2015 >> >> Modified Files: >> pkgsrc/devel/hs-QuickCheck: Makefile buildlink3.mk >> >> Log Message: >> Forgot to add a dependency on devel/hs-transformers. Bump revision >> >> I badly want buildlink for Haskell packages, though it's not very easy >> to implement... > > What would be needed? > Thomas The current "configure" phase for Haskell packages uses the global package DB (e.g. /usr/pkg/lib/ghc-7.6.3/package.conf.d) to resolve Haskell library dependencies, which is problematic because a pkgsrc package with a missing dependency declaration can be built without failure (just like my initially imported QuickCheck) when all of these three conditions are met: * The package does not have an executable, only a library. * HASKELL_ENABLE_SHARED_LIBRARY is set to "no", i.e. only a static library is built and installed. * Dependencies that are missing from the Makefile have actually been installed into the system. The solution is to create a temporary package DB and fill it only with Haskell packages that are explicitly declared as dependency by pkgsrc Makefile, somehow in the "buildlink" phase, and then use it in the "configure" phase by running "./Setup configure --package-db=/path/to/temporary-db". And the problem arises here. How do we generate the temporary DB? It could be easily done if *all* of the Haskell packages' buildlink3.mk had a boilerplate target hooked to "do-buildlink" which registers the package to the temporary DB. But having such a boilerplate is something we'd like to avoid... _______________________________________________________ - PHO - http://cielonegro.org/ OpenPGP public key: 1024D/1A86EF72 Fpr: 5F3E 5B5F 535C CE27 8254 4D1A 14E7 9CA7 1A86 EF72
Attachment:
pgp6AuzcmSXoY.pgp
Description: PGP signature