aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore9
-rw-r--r--corepkgs/config.nix.in13
-rw-r--r--corepkgs/local.mk4
-rw-r--r--perl/configure.ac13
-rw-r--r--perl/lib/Nix/Config.pm.in10
-rw-r--r--perl/lib/Nix/Store.pm60
-rw-r--r--perl/lib/Nix/Store.xs10
-rw-r--r--tests/recursive.sh6
8 files changed, 19 insertions, 106 deletions
diff --git a/.gitignore b/.gitignore
index 3f81f8ef5..4711fa7fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,15 +12,6 @@ perl/Makefile.config
/svn-revision
/libtool
-/corepkgs/config.nix
-
-# /corepkgs/channels/
-/corepkgs/channels/unpack.sh
-
-# /corepkgs/nar/
-/corepkgs/nar/nar.sh
-/corepkgs/nar/unnar.sh
-
# /doc/manual/
/doc/manual/*.1
/doc/manual/*.5
diff --git a/corepkgs/config.nix.in b/corepkgs/config.nix.in
deleted file mode 100644
index cb9945944..000000000
--- a/corepkgs/config.nix.in
+++ /dev/null
@@ -1,13 +0,0 @@
-# FIXME: remove this file?
-let
- fromEnv = var: def:
- let val = builtins.getEnv var; in
- if val != "" then val else def;
-in rec {
- nixBinDir = fromEnv "NIX_BIN_DIR" "@bindir@";
- nixPrefix = "@prefix@";
- nixLibexecDir = fromEnv "NIX_LIBEXEC_DIR" "@libexecdir@";
- nixLocalstateDir = "@localstatedir@";
- nixSysconfDir = "@sysconfdir@";
- nixStoreDir = fromEnv "NIX_STORE_DIR" "@storedir@";
-}
diff --git a/corepkgs/local.mk b/corepkgs/local.mk
index 1546b4ef3..0bc91cfab 100644
--- a/corepkgs/local.mk
+++ b/corepkgs/local.mk
@@ -1,6 +1,4 @@
corepkgs_FILES = \
fetchurl.nix
-$(foreach file,config.nix $(corepkgs_FILES),$(eval $(call install-data-in,$(d)/$(file),$(datadir)/nix/corepkgs)))
-
-template-files += $(d)/config.nix
+$(foreach file,$(corepkgs_FILES),$(eval $(call install-data-in,$(d)/$(file),$(datadir)/nix/corepkgs)))
diff --git a/perl/configure.ac b/perl/configure.ac
index c3769e142..255744afd 100644
--- a/perl/configure.ac
+++ b/perl/configure.ac
@@ -70,19 +70,6 @@ PKG_CHECK_MODULES([NIX], [nix-store])
NEED_PROG([NIX], [nix])
-# Get nix configure values
-export NIX_REMOTE=daemon
-nixbindir=$("$NIX" --experimental-features nix-command eval --raw -f '<nix/config.nix>' nixBinDir)
-nixlibexecdir=$("$NIX" --experimental-features nix-command eval --raw -f '<nix/config.nix>' nixLibexecDir)
-nixlocalstatedir=$("$NIX" --experimental-features nix-command eval --raw -f '<nix/config.nix>' nixLocalstateDir)
-nixsysconfdir=$("$NIX" --experimental-features nix-command eval --raw -f '<nix/config.nix>' nixSysconfDir)
-nixstoredir=$("$NIX" --experimental-features nix-command eval --raw -f '<nix/config.nix>' nixStoreDir)
-AC_SUBST(nixbindir)
-AC_SUBST(nixlibexecdir)
-AC_SUBST(nixlocalstatedir)
-AC_SUBST(nixsysconfdir)
-AC_SUBST(nixstoredir)
-
# Expand all variables in config.status.
test "$prefix" = NONE && prefix=$ac_default_prefix
test "$exec_prefix" = NONE && exec_prefix='${prefix}'
diff --git a/perl/lib/Nix/Config.pm.in b/perl/lib/Nix/Config.pm.in
index bc1749e60..f7c6f2484 100644
--- a/perl/lib/Nix/Config.pm.in
+++ b/perl/lib/Nix/Config.pm.in
@@ -4,14 +4,8 @@ use MIME::Base64;
$version = "@PACKAGE_VERSION@";
-$binDir = $ENV{"NIX_BIN_DIR"} || "@nixbindir@";
-$libexecDir = $ENV{"NIX_LIBEXEC_DIR"} || "@nixlibexecdir@";
-$stateDir = $ENV{"NIX_STATE_DIR"} || "@nixlocalstatedir@/nix";
-$logDir = $ENV{"NIX_LOG_DIR"} || "@nixlocalstatedir@/log/nix";
-$confDir = $ENV{"NIX_CONF_DIR"} || "@nixsysconfdir@/nix";
-$storeDir = $ENV{"NIX_STORE_DIR"} || "@nixstoredir@";
-
-$useBindings = 1;
+$binDir = Nix::Store::getBinDir;
+$storeDir = Nix::Store::getStoreDir;
%config = ();
diff --git a/perl/lib/Nix/Store.pm b/perl/lib/Nix/Store.pm
index d226264d4..179f1dc90 100644
--- a/perl/lib/Nix/Store.pm
+++ b/perl/lib/Nix/Store.pm
@@ -2,7 +2,6 @@ package Nix::Store;
use strict;
use warnings;
-use Nix::Config;
require Exporter;
@@ -22,6 +21,7 @@ our @EXPORT = qw(
addToStore makeFixedOutputPath
derivationFromPath
addTempRoot
+ getBinDir getStoreDir
);
our $VERSION = '0.15';
@@ -34,62 +34,8 @@ sub backtick {
return $res;
}
-if ($Nix::Config::useBindings) {
- require XSLoader;
- XSLoader::load('Nix::Store', $VERSION);
-} else {
-
- # Provide slow fallbacks of some functions on platforms that don't
- # support the Perl bindings.
-
- use File::Temp;
- use Fcntl qw/F_SETFD/;
-
- *hashFile = sub {
- my ($algo, $base32, $path) = @_;
- my $res = backtick("$Nix::Config::binDir/nix-hash", "--flat", $path, "--type", $algo, $base32 ? "--base32" : ());
- chomp $res;
- return $res;
- };
-
- *hashPath = sub {
- my ($algo, $base32, $path) = @_;
- my $res = backtick("$Nix::Config::binDir/nix-hash", $path, "--type", $algo, $base32 ? "--base32" : ());
- chomp $res;
- return $res;
- };
-
- *hashString = sub {
- my ($algo, $base32, $s) = @_;
- my $fh = File::Temp->new();
- print $fh $s;
- my $res = backtick("$Nix::Config::binDir/nix-hash", $fh->filename, "--type", $algo, $base32 ? "--base32" : ());
- chomp $res;
- return $res;
- };
-
- *addToStore = sub {
- my ($srcPath, $recursive, $algo) = @_;
- die "not implemented" if $recursive || $algo ne "sha256";
- my $res = backtick("$Nix::Config::binDir/nix-store", "--add", $srcPath);
- chomp $res;
- return $res;
- };
-
- *isValidPath = sub {
- my ($path) = @_;
- my $res = backtick("$Nix::Config::binDir/nix-store", "--check-validity", "--print-invalid", $path);
- chomp $res;
- return $res ne $path;
- };
-
- *queryPathHash = sub {
- my ($path) = @_;
- my $res = backtick("$Nix::Config::binDir/nix-store", "--query", "--hash", $path);
- chomp $res;
- return $res;
- };
-}
+require XSLoader;
+XSLoader::load('Nix::Store', $VERSION);
1;
__END__
diff --git a/perl/lib/Nix/Store.xs b/perl/lib/Nix/Store.xs
index 8546f6307..599921151 100644
--- a/perl/lib/Nix/Store.xs
+++ b/perl/lib/Nix/Store.xs
@@ -351,3 +351,13 @@ void addTempRoot(char * storePath)
} catch (Error & e) {
croak("%s", e.what());
}
+
+
+SV * getBinDir()
+ PPCODE:
+ XPUSHs(sv_2mortal(newSVpv(settings.nixBinDir.c_str(), 0)));
+
+
+SV * getStoreDir()
+ PPCODE:
+ XPUSHs(sv_2mortal(newSVpv(settings.nixStore.c_str(), 0)));
diff --git a/tests/recursive.sh b/tests/recursive.sh
index cf10d55bf..80a178cc7 100644
--- a/tests/recursive.sh
+++ b/tests/recursive.sh
@@ -9,9 +9,8 @@ rm -f $TEST_ROOT/result
export unreachable=$(nix add-to-store ./recursive.sh)
-nix --experimental-features 'nix-command recursive-nix' build -o $TEST_ROOT/result -L --impure --expr '
+NIX_BIN_DIR=$(dirname $(type -p nix)) nix --experimental-features 'nix-command recursive-nix' build -o $TEST_ROOT/result -L --impure --expr '
with import ./config.nix;
- with import <nix/config.nix>;
mkDerivation {
name = "recursive";
dummy = builtins.toFile "dummy" "bla bla";
@@ -24,9 +23,10 @@ nix --experimental-features 'nix-command recursive-nix' build -o $TEST_ROOT/resu
buildCommand = '\'\''
mkdir $out
- PATH=${nixBinDir}:$PATH
opts="--experimental-features nix-command"
+ PATH=${builtins.getEnv "NIX_BIN_DIR"}:$PATH
+
# Check that we can query/build paths in our input closure.
nix $opts path-info $dummy
nix $opts build $dummy