Hello,

and thanks a lot for your reply, I will closely look about stdenvType in stdenv/default.nix and send some feedback.

Perhaps a more elegant solution in my case should be to define "fake" nix packages for native tools that just encapsulate them instead of adding /usr/bin to $PATH "just" to provide gcc for instance (and "benefit" of all the tools in /usr/bin/ ..). It could be something as dirty as creating symlinks to system files and folders in the build process of such as package (from the output of native package listing like "rpm -ql <package>" for instance).
It should be closer to the purity way to do of nix packages.

This way to do should provides a more fine grain control on what is used during a build process of packages and should allow to "easily" switch between gcc-native and a gcc provided by a nix package.

Regards,

Pierre Bourgin

Yurii Kudryashov a écrit :
On Nov 16, 2007 9:48 AM, Pierre Bourgin <[EMAIL PROTECTED]> wrote:
Hello,

Contrary the nix purity philosophy, I would like to use a lot of
tools/libs provided by my Linux distribution, instead of relying only on
nix packages (and thus rebuild a complete system in the nix world).
I would like also to keep the ability to easily switch from a platform
tool onto a nix packaged one.
Example:
   . use libc from the platform (always)
   . use gcc from the platform (/usr/bin/gcc)
   . use a newer gcc than /usr/bin/gcc : use a nix package

I've began to read file pkgs/top-level/all-packages.nix and files
related to stdenv, but I can't figure out how to reach this goal.
It seems that you are looking for stdenvNative. For example you can
apply the following:

- if stdenvType = "i686-linux" then stdenvLinux
+ if stdenvType = "i686-linux" then stdenvNative

to stdenv/default.nix. It seems that after this patch system tools
will be used for building other packages. I haven't tried it but I
hope that it should work.

In my mind, the most lazy way to do this will be to create
my-packages.nix with a code like:
  import ./pkgs/top-level/all-packages.nix
then modify some attributes (or redefine them), in order to use the libc
or gcc from the platform for instance.

It is not enough because in this case your "native" tools will not be
used for building other packages.

_______________________________________________
nix-dev mailing list
[email protected]
https://mail.cs.uu.nl/mailman/listinfo/nix-dev

Reply via email to