On 2016-08-02 05:46, Patrick Mahoney wrote:
The Nix package manager is similar to slashpackage in that a given version of
s6 lives within a single directory (e.g. commands can be found in
/nix/store/$hash-s6-$version/bin/s6-*), however it does not follow the
${sproot}/package/${category}/${package}-${version} slashpackage standard
(partly because a "version" is a hash of all build-time and run-time
dependencies).

 Does Nix guarantee the availability of binaries under a stable absolute path,
all the time, even across version changes? Is there a way to reliably provide
not only the BINPREFIX, but also the EXTBINPREFIX?

 If yes, then I'll gladly accept a patch to ./configure (for the application
packages, and also to the skalibs one, which is very different) that implements
--enable-nix and does the right thing with all the prefixes. Otherwise, since
BINPREFIX is only used in intra-package dependencies, but cross-package
dependencies are just as important and those have to use EXTBINPREFIX, I have
no better advice than leave it as is and use PATH resolution.

 If Nix's policy is to provide "standard" wrappers for every binary in a 
package,
then it is definitely broken. There are three good ways to make binaries
available: absolute paths, PATH resolution, and global /command-like 
directories.
Having a variable PATH and wrapping every single binary is not one of them.
Please remember that some s6 and s6-rc commands will expect execline binaries
to be available, either via absolute paths or via PATH resolution, and will 
break
otherwise.

--
 Laurent

Reply via email to