diff --git a/src/libexpr/primops/fetchGit.cc b/src/libexpr/primops/fetchGit.cc index 90f600284..ca5af7492 100644 --- a/src/libexpr/primops/fetchGit.cc +++ b/src/libexpr/primops/fetchGit.cc @@ -6,6 +6,7 @@ #include "hash.hh" #include +#include #include @@ -173,7 +174,7 @@ GitInfo exportGit(ref store, const std::string & uri, Path tmpDir = createTempDir(); AutoDelete delTmpDir(tmpDir, true); - runProgram("tar", true, { "x", "-C", tmpDir }, tar); + runProgram("tar", true, { "-x", "-f", "-", "-C", tmpDir }, tar); gitInfo.storePath = store->addToStore(name, tmpDir); diff --git a/src/nix-daemon/nix-daemon.cc b/src/nix-daemon/nix-daemon.cc index 7a5cb9a37..87ad4e949 100644 --- a/src/nix-daemon/nix-daemon.cc +++ b/src/nix-daemon/nix-daemon.cc @@ -901,7 +901,11 @@ static PeerInfo getPeerInfo(int remote) #if defined(SO_PEERCRED) +#if defined(__OpenBSD__) + struct sockpeercred cred; +#else ucred cred; +#endif socklen_t credLen = sizeof(cred); if (getsockopt(remote, SOL_SOCKET, SO_PEERCRED, &cred, &credLen) == -1) throw SysError("getting peer credentials"); diff --git a/tests/tarball.sh b/tests/tarball.sh index ba534c626..b2acb9eb9 100644 --- a/tests/tarball.sh +++ b/tests/tarball.sh @@ -11,7 +11,7 @@ cp dependencies.nix $tarroot/default.nix cp config.nix dependencies.builder*.sh $tarroot/ tarball=$TEST_ROOT/tarball.tar.xz -(cd $TEST_ROOT && tar c tarball) | xz > $tarball +(cd $TEST_ROOT && tar cf - tarball) | xz > $tarball nix-env -f file://$tarball -qa --out-path | grep -q dependencies