On Wed, Feb 8, 2017 at 8:09 PM, Ricardo Wurmus <rek...@elephly.net> wrote: > > Federico Beffa <be...@ieee.org> writes: > >> Generalize the Python procedure to recursively replace compiler/interpreter. >> From a8220b430d196e5bb079e23ac63b1acd16fdaaee Mon Sep 17 00:00:00 2001 >> From: Federico Beffa <be...@fbengineering.ch> >> Date: Wed, 8 Feb 2017 18:55:32 +0100 >> Subject: [PATCH 1/2] build: Generalize 'package-with-explicit-python'. >> >> * guix/build-system/python.scm (package-with-explicit-python): Remove it and >> replace it with the generalized procedure 'package-with-explicit-compiler' >> in the new file. (package-with-python2): Adapt it. >> * guix/build-system/utils.scm: New file with the generalized procedure. >> * Makefile.am (MODULES): Add new file. > > The goal here is to override packages in build system arguments, right? > This is great and we really need something like this to make building > package variants simpler. (I ran into a problem that would be solved by > this when I tried to build Perl modules for different variants of Perl.)
Hi Ricardo, The goal is to exploit the compiler keyword argument of many build-systems (such as #:python, #:haskell, ...) to pass the desired compiler instead of the default one. > Looking over the patch it feels inelegant to have a whitelist of > permitted arguments, as in “compiler-keyword”. We already have a > procedure called “package-input-rewriting” that replaces any (explicit > input-) package in the dependency graph with a different package. What > I like about that is that it is generic. Is there a way we could extend > it to include packages pulled in by the build system, e.g. by making it > work at the level of bags? The procedure was not written by me: 99% of it comes from the python-build-system. The only thing that I did is to replace the hard-coded '#:python' keyword with a variable one such that it can be used with some other build systems. This seemed to me as one step in the right direction, but if you have a better idea then please go ahead and write it. I will not feel offended ;-) Regards, Fede