Re: Set binprefix when not using slashpackage

From: Laurent Bercot <ska-skaware_at_skarnet.org>
Date: Tue, 2 Aug 2016 14:10:33 +0200

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
Received on Tue Aug 02 2016 - 12:10:33 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:38:49 UTC