Re: [Nix-dev] What are the rules about 'share/' directory symlinking to profile?

2017-04-20 Thread Vladimír Čunát
Hi,
it has the same root causes as https://github.com/NixOS/nixpkgs/issues/24717

--Vladimir

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


Re: [Nix-dev] What are the rules about 'share/' directory symlinking to profile?

2017-04-20 Thread Guillaume Maudoux (Layus)

Hi,

`nix-env -i $(nix-build -A fzf.out)` works.
Somehow, `nix-env -f . -iA fzf.out` still installs `fzf.bin`.

Now, that package is quite strange. Normally, the first output in the 
outputs list should be the one that refers to all the others.
It is not the case here, because fzf.bin does not reference fzf.out for 
example.

Also, it could specify outputsToInstall, but it does not.

See http://nixos.org/nixpkgs/manual/#idm140737318250400 and related 
issues to dig deeper into this.
But please keep in mind that nix received only maintenance update since 
Jan 19, 2016.

A lot of merged features are not available in any release.

-- Layus.

On 20/04/17 13:33, Alexey Lebedeff wrote:

I've tried with fzf.out and it also doesn't add anything to 'share' in
profile folder. The only way I was able to make it work is by adding
'share' folder to 'bin' output. Looks like some magic is attached to
'bin' itself (because I've also tried reordering outputs without any
change) - but I can't figure out how and why this is happening.

1) For fzf.out 'vim-plugins' folder is not added to profile after installation

$ nix-build . -A fzf.out
/nix/store/mp5drsp2l1z7k0rp4jjmll06kjck7052-fzf-0.16.6

# 'share' is present in nix store
$ ls ./result/share/vim-plugins/ -l
total 4
lrwxrwxrwx 1 root root 91 Jan  1  1970 fzf-0.16.6 -> 
/nix/store/mp5drsp2l1z7k0rp4jjmll06kjck7052-fzf-0.16.6/share/go/src/github.com/junegunn/fzf

$ nix-env -f . -iA fzf.out

# But it's missing from profile even after explicitly installing that
$ ls -la ~/.nix-profile/share/vim-plugins
ls: cannot access '/home/binarin/.nix-profile/share/vim-plugins': No such 
file or directory

2) But everything works if I add 'share' folder to 'bin' output instead, using 
the following
lines in postInstall:

+mkdir -p $bin/share/vim-plugins
+cp -a $out/share/go/src/github.com/junegunn/fzf $bin/share/fzf-tmp
+ln -s $bin/share/fzf-tmp $bin/share/vim-plugins/${name}

$ nix-build . -A fzf.bin
/nix/store/3dzqj1xk6s5jfm1z4kwnkfdg9yw3xckr-fzf-0.16.6-bin

$ ls ./result-bin/share/vim-plugins/ -l
total 4
lrwxrwxrwx 1 root root 72 Jan  1  1970 fzf-0.16.6 -> 
/nix/store/3dzqj1xk6s5jfm1z4kwnkfdg9yw3xckr-fzf-0.16.6-bin/share/fzf-tmp

$ nix-env -f . -iA fzf.bin

$ ls -la ~/.nix-profile/share/vim-plugins
lrwxrwxrwx 1 root root 76 Jan  1  1970 
/home/binarin/.nix-profile/share/vim-plugins -> 
/nix/store/3dzqj1xk6s5jfm1z4kwnkfdg9yw3xckr-fzf-0.16.6-bin/share/vim-plugins

Best,
Alexey


Guillaume Maudoux (Layus) writes:


I guess the idea is that you need to install `fzf.out` explicitly,
because installing `fzf` installs the first output, which is `fzf.bin`.

-- Layus.


On 20/04/17 11:46, Alexey Lebedeff wrote:

Hi folks.

What are the rules about how and when 'share/' folder of (multi-output)
derivation will be merged into 'share/' folder of profile?

E.g. I can't see content of
https://github.com/NixOS/nixpkgs/blob/4a0be7837cadf9b6e9cae430d80f65a2af60dcc6/pkgs/tools/misc/fzf/default.nix#L33
anywhere in my profile 'share/' even after installing every output

Only when I move 'share/' to '$bin' output, it starts appearing in profile
'share/' folder.

Best,
Alexey
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
https://mailman.science.uu.nl/mailman/listinfo/nix-dev


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


Re: [Nix-dev] What are the rules about 'share/' directory symlinking to profile?

2017-04-20 Thread Alexey Lebedeff

I've tried with fzf.out and it also doesn't add anything to 'share' in
profile folder. The only way I was able to make it work is by adding
'share' folder to 'bin' output. Looks like some magic is attached to
'bin' itself (because I've also tried reordering outputs without any
change) - but I can't figure out how and why this is happening.

1) For fzf.out 'vim-plugins' folder is not added to profile after installation

   $ nix-build . -A fzf.out
   /nix/store/mp5drsp2l1z7k0rp4jjmll06kjck7052-fzf-0.16.6

   # 'share' is present in nix store
   $ ls ./result/share/vim-plugins/ -l
   total 4
   lrwxrwxrwx 1 root root 91 Jan  1  1970 fzf-0.16.6 -> 
/nix/store/mp5drsp2l1z7k0rp4jjmll06kjck7052-fzf-0.16.6/share/go/src/github.com/junegunn/fzf

   $ nix-env -f . -iA fzf.out

   # But it's missing from profile even after explicitly installing that
   $ ls -la ~/.nix-profile/share/vim-plugins
   ls: cannot access '/home/binarin/.nix-profile/share/vim-plugins': No such 
file or directory

2) But everything works if I add 'share' folder to 'bin' output instead, using 
the following
   lines in postInstall:

   +mkdir -p $bin/share/vim-plugins
   +cp -a $out/share/go/src/github.com/junegunn/fzf $bin/share/fzf-tmp
   +ln -s $bin/share/fzf-tmp $bin/share/vim-plugins/${name}

   $ nix-build . -A fzf.bin
   /nix/store/3dzqj1xk6s5jfm1z4kwnkfdg9yw3xckr-fzf-0.16.6-bin

   $ ls ./result-bin/share/vim-plugins/ -l
   total 4
   lrwxrwxrwx 1 root root 72 Jan  1  1970 fzf-0.16.6 -> 
/nix/store/3dzqj1xk6s5jfm1z4kwnkfdg9yw3xckr-fzf-0.16.6-bin/share/fzf-tmp

   $ nix-env -f . -iA fzf.bin

   $ ls -la ~/.nix-profile/share/vim-plugins
   lrwxrwxrwx 1 root root 76 Jan  1  1970 
/home/binarin/.nix-profile/share/vim-plugins -> 
/nix/store/3dzqj1xk6s5jfm1z4kwnkfdg9yw3xckr-fzf-0.16.6-bin/share/vim-plugins

Best,
Alexey


Guillaume Maudoux (Layus) writes:

> I guess the idea is that you need to install `fzf.out` explicitly,
> because installing `fzf` installs the first output, which is `fzf.bin`.
>
> -- Layus.
>
>
> On 20/04/17 11:46, Alexey Lebedeff wrote:
>> Hi folks.
>>
>> What are the rules about how and when 'share/' folder of (multi-output)
>> derivation will be merged into 'share/' folder of profile?
>>
>> E.g. I can't see content of
>> https://github.com/NixOS/nixpkgs/blob/4a0be7837cadf9b6e9cae430d80f65a2af60dcc6/pkgs/tools/misc/fzf/default.nix#L33
>> anywhere in my profile 'share/' even after installing every output
>>
>> Only when I move 'share/' to '$bin' output, it starts appearing in profile
>> 'share/' folder.
>>
>> Best,
>> Alexey
>> ___
>> nix-dev mailing list
>> nix-dev@lists.science.uu.nl
>> https://mailman.science.uu.nl/mailman/listinfo/nix-dev
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
https://mailman.science.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] What are the rules about 'share/' directory symlinking to profile?

2017-04-20 Thread Guillaume Maudoux (Layus)
I guess the idea is that you need to install `fzf.out` explicitly, 
because installing `fzf` installs the first output, which is `fzf.bin`.


-- Layus.


On 20/04/17 11:46, Alexey Lebedeff wrote:

Hi folks.

What are the rules about how and when 'share/' folder of (multi-output)
derivation will be merged into 'share/' folder of profile?

E.g. I can't see content of
https://github.com/NixOS/nixpkgs/blob/4a0be7837cadf9b6e9cae430d80f65a2af60dcc6/pkgs/tools/misc/fzf/default.nix#L33
anywhere in my profile 'share/' even after installing every output

Only when I move 'share/' to '$bin' output, it starts appearing in profile
'share/' folder.

Best,
Alexey
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
https://mailman.science.uu.nl/mailman/listinfo/nix-dev


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


Re: [Nix-dev] What are the rules about 'share/' directory symlinking to profile?

2017-04-20 Thread Kevin Cox

On 20/04/17 10:46, Alexey Lebedeff wrote:

Hi folks.

What are the rules about how and when 'share/' folder of (multi-output)
derivation will be merged into 'share/' folder of profile?

E.g. I can't see content of
https://github.com/NixOS/nixpkgs/blob/4a0be7837cadf9b6e9cae430d80f65a2af60dcc6/pkgs/tools/misc/fzf/default.nix#L33
anywhere in my profile 'share/' even after installing every output

Only when I move 'share/' to '$bin' output, it starts appearing in profile
'share/' folder.


There is a list of hard-coded directories to merge. I have been thinking 
about making it merge all directories but am not decided this is ideal 
since it is also nice to have "private" data that doesn't get "installed".

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


[Nix-dev] What are the rules about 'share/' directory symlinking to profile?

2017-04-20 Thread Alexey Lebedeff
Hi folks.

What are the rules about how and when 'share/' folder of (multi-output)
derivation will be merged into 'share/' folder of profile?

E.g. I can't see content of
https://github.com/NixOS/nixpkgs/blob/4a0be7837cadf9b6e9cae430d80f65a2af60dcc6/pkgs/tools/misc/fzf/default.nix#L33
anywhere in my profile 'share/' even after installing every output

Only when I move 'share/' to '$bin' output, it starts appearing in profile
'share/' folder.

Best,
Alexey
___
nix-dev mailing list
nix-dev@lists.science.uu.nl
https://mailman.science.uu.nl/mailman/listinfo/nix-dev