Re: [Nix-dev] setting environment values.

2015-01-28 Thread Anderson Torres
2015-01-28 15:02 GMT-02:00 Tim Sears :
> Thanks Stewart. Do you happen to know if other nix commands (nix-shell,
> nix-build) use or ignore the extraCmds attribute? Or if any build phase uses
> it. I haven't found much documentation or code so far.
>
> I made some progress based on an earlier suggestion, by simply adding
> environment variables in the call to mkDerivation. The package is a library
> and want to propagate the variables to another library that depends on this
> one, and so on, downstream.
>

I think you can use setup hooks. Do a simple "git grep setupHook" on
nixpkgs tree, and you will find a lot of interesting setup scripts...

A good example is to set QTDIR on Qt4 scripts.

> On Wed, Jan 28, 2015 at 1:03 AM, stewart mackenzie 
> wrote:
>>
>> add something like this:
>>
>>extraCmds = ''
>>  export SOMEPATH_ERLANG=${erlang}/opt/path/to/libs;
>>
>>'';
>>};
>> ___
>> nix-dev mailing list
>> nix-dev@lists.science.uu.nl
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
>
>
> ___
> nix-dev mailing list
> nix-dev@lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] setting environment values.

2015-01-28 Thread stewart mackenzie
Okay, I'm at the point too where I need to see your nix-expression.

Though, by creating a package, in other nix-expressions you would
simply refer to that library by ${library_name}. That should achieve
your propagation needs.
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] setting environment values.

2015-01-28 Thread Tim Sears
Thanks Luca. I wanted to strip out unnecessary details. Will post a gist
next time.
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] setting environment values.

2015-01-28 Thread Tim Sears
Thanks Stewart. Do you happen to know if other nix commands (nix-shell,
nix-build) use or ignore the extraCmds attribute? Or if any build phase
uses it. I haven't found much documentation or code so far.

I made some progress based on an earlier suggestion, by simply adding
environment variables in the call to mkDerivation. The package is a library
and want to propagate the variables to another library that depends on this
one, and so on, downstream.

On Wed, Jan 28, 2015 at 1:03 AM, stewart mackenzie 
wrote:

> add something like this:
>
>extraCmds = ''
>  export SOMEPATH_ERLANG=${erlang}/opt/path/to/libs;
>
>'';
>};
> ___
> nix-dev mailing list
> nix-dev@lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] setting environment values.

2015-01-28 Thread Thomas Hunger
Hi,

There is makeWrapper [1] which wraps your binary in a shell script that
sets some variables before execution. See e.g. [2] for how apache maven
uses it to set JAVA_HOME.

Is that what you are looking for?

~


[1]
https://nixos.org/wiki/Nix_Runtime_Environment_Wrapper

[2]
https://github.com/NixOS/nixpkgs/blob/72e76a18c122ec657fd6825764be79db8d73b3ce/pkgs/development/tools/build-managers/apache-maven/builder.sh#L8

On 27 January 2015 at 18:48, Tim Sears  wrote:

> I am writing a nix expression to port some libraries from another distro.
>
> The libraries have slightly non-standard locations so I would typically
> add some line to my .bashrc file like
>
> export SOMEVAR="somestring"
> export SOMEPATH=/opt/path/to/libs
> export LD_LIBRARY_PATH=$SOMEPATH:$LD_LIBRARY_PATH.
>
> What is the nix way of doing this? I can set SOMEVAR="somestring" in the
> derivation expression, and it appears in my environment after executing
> nix-shell, but SOMEPATH should look like $out/path/to/libs and I am not
> sure how/where to set that.
>
> Suggestions appreciated.
> -Tim
>
> ___
> nix-dev mailing list
> nix-dev@lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
>
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] setting environment values.

2015-01-28 Thread stewart mackenzie
add something like this:

   extraCmds = ''
 export SOMEPATH_ERLANG=${erlang}/opt/path/to/libs;

   '';
   };
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] setting environment values.

2015-01-28 Thread stewart mackenzie
Tim you need to do something like this:

```
let
  pkgs = import  {};
  stdenv = pkgs.stdenv;
   in rec {
   erlangEnv = pkgs.myEnvFun {
 name = "erlang";
 buildInputs = with pkgs; [ erlang rebar openssl git binutils
bash emacs which mc meld tig elixir ];
   extraCmds = ''
 export POSTGRES_PASS=password;
 export MAILGUN_KEY=my_mailgun_api_key;
 export MAILGUN_DOMAIN=cont...@email.org;
   '';
   };
   }

```
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] setting environment values.

2015-01-28 Thread Luca Bruno
On 27/01/2015 19:48, Tim Sears wrote:
> I am writing a nix expression to port some libraries from another distro.
>
> The libraries have slightly non-standard locations so I would
> typically add some line to my .bashrc file like
>
> export SOMEVAR="somestring"
> export SOMEPATH=/opt/path/to/libs
> export LD_LIBRARY_PATH=$SOMEPATH:$LD_LIBRARY_PATH.
>
> What is the nix way of doing this? I can set SOMEVAR="somestring" in
> the derivation expression, and it appears in my environment after
> executing nix-shell, but SOMEPATH should look like $out/path/to/libs
> and I am not sure how/where to set that. 
>
It's a little hard to answer such a question, we miss some information.
First of all, paste the expression.
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] setting environment values.

2015-01-27 Thread Tim Sears
I am writing a nix expression to port some libraries from another distro.

The libraries have slightly non-standard locations so I would typically add
some line to my .bashrc file like

export SOMEVAR="somestring"
export SOMEPATH=/opt/path/to/libs
export LD_LIBRARY_PATH=$SOMEPATH:$LD_LIBRARY_PATH.

What is the nix way of doing this? I can set SOMEVAR="somestring" in the
derivation expression, and it appears in my environment after executing
nix-shell, but SOMEPATH should look like $out/path/to/libs and I am not
sure how/where to set that.

Suggestions appreciated.
-Tim
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev