Merge 'staging' into multiple-outputs
Conflicts: pkgs/applications/audio/flac/default.nix pkgs/build-support/gcc-wrapper/builder.sh pkgs/development/libraries/apr-util/default.nix pkgs/development/libraries/apr/default.nix pkgs/development/libraries/atk/default.nix pkgs/development/libraries/freetype/default.nix pkgs/development/libraries/gdk-pixbuf/default.nix pkgs/development/libraries/glib/default.nix pkgs/development/libraries/glibc/2.17/builder.sh pkgs/development/libraries/glibc/2.17/locales.nix pkgs/development/libraries/libjpeg/default.nix pkgs/development/libraries/libogg/default.nix pkgs/development/libraries/libsamplerate/default.nix pkgs/development/libraries/libtiff/default.nix pkgs/development/libraries/libvorbis/default.nix pkgs/development/libraries/mesa/default.nix pkgs/development/libraries/pango/default.nix pkgs/development/web/nodejs/default.nix pkgs/os-specific/linux/pam/default.nix pkgs/os-specific/linux/systemd/default.nix pkgs/stdenv/generic/setup.sh pkgs/stdenv/linux/default.nix pkgs/top-level/all-packages.nix pkgs/top-level/release-small.nix
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{ stdenv, runCommand, nodejs, neededNatives}:
|
||||
|
||||
args @ { name, src, deps ? [], peerDependencies ? [], flags ? [], ... }:
|
||||
args @ { name, src, deps ? [], peerDependencies ? [], flags ? [], preShellHook ? "", postShellHook ? "", ... }:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
@@ -8,29 +8,36 @@ let
|
||||
npmFlags = concatStringsSep " " (map (v: "--${v}") flags);
|
||||
|
||||
sources = runCommand "node-sources" {} ''
|
||||
tar xf ${nodejs.src}
|
||||
tar --no-same-owner -xf ${nodejs.src}
|
||||
mv *node* $out
|
||||
'';
|
||||
|
||||
peerDeps = listToAttrs (concatMap (dep: map (name: {
|
||||
inherit name;
|
||||
value = dep;
|
||||
}) (filter (nm: !(elem nm (args.passthru.names or []))) dep.names)) (peerDependencies));
|
||||
in
|
||||
stdenv.mkDerivation ({
|
||||
unpackPhase = "true";
|
||||
|
||||
inherit src;
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
mkdir node_modules
|
||||
${concatStrings (concatMap (dep: map (name: ''
|
||||
ln -sv ${dep}/lib/node_modules/${name} node_modules/
|
||||
'') dep.names) deps)}
|
||||
${concatStrings (concatMap (dep: map (name: ''
|
||||
${concatStrings (mapAttrsToList (name: dep: ''
|
||||
ln -sv ${dep}/lib/node_modules/${name} node_modules/
|
||||
'') dep.names) peerDependencies)}
|
||||
'') peerDeps)}
|
||||
export HOME=$(pwd)
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
npm --registry http://www.example.com --nodedir=${sources} install ${concatStringsSep " " src} ${npmFlags}
|
||||
npm --registry http://www.example.com --nodedir=${sources} install $src ${npmFlags}
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
@@ -51,9 +58,9 @@ stdenv.mkDerivation ({
|
||||
done
|
||||
fi
|
||||
'') args.passthru.names)}
|
||||
${concatStrings (concatMap (dep: map (name: ''
|
||||
${concatStrings (mapAttrsToList (name: dep: ''
|
||||
mv node_modules/${name} $out/lib/node_modules
|
||||
'') dep.names) peerDependencies)}
|
||||
'') peerDeps)}
|
||||
mv node_modules/.bin $out/lib/node_modules 2>/dev/null || true
|
||||
mv node_modules $out/.dependent-node-modules
|
||||
if [ -d "$out/lib/node_modules/.bin" ]; then
|
||||
@@ -73,6 +80,16 @@ stdenv.mkDerivation ({
|
||||
preFixup = concatStringsSep "\n" (map (src: ''
|
||||
find $out -type f -print0 | xargs -0 sed -i 's|${src}|${src.name}|g'
|
||||
'') src);
|
||||
|
||||
shellHook = ''
|
||||
${preShellHook}
|
||||
export PATH=${nodejs}/bin:$(pwd)/node_modules/.bin:$PATH
|
||||
mkdir -p node_modules
|
||||
${concatStrings (concatMap (dep: map (name: ''
|
||||
ln -sfv ${dep}/lib/node_modules/${name} node_modules/
|
||||
'') dep.names) deps)}
|
||||
${postShellHook}
|
||||
'';
|
||||
} // args // {
|
||||
# Run the node setup hook when this package is a build input
|
||||
propagatedNativeBuildInputs = (args.propagatedNativeBuildInputs or []) ++ [ nodejs ];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, openssl, python, zlib, v8, utillinux, http_parser, c-ares, pkgconfig, runCommand }:
|
||||
{ stdenv, fetchurl, openssl, python, zlib, v8, utillinux, http-parser, c-ares, pkgconfig, runCommand, which }:
|
||||
|
||||
let
|
||||
dtrace = runCommand "dtrace-native" {} ''
|
||||
@@ -6,13 +6,16 @@ let
|
||||
ln -sv /usr/sbin/dtrace $out/bin
|
||||
'';
|
||||
|
||||
version = "0.10.21";
|
||||
version = "0.10.30";
|
||||
|
||||
# !!! Should we also do shared libuv?
|
||||
deps = {
|
||||
inherit v8 openssl zlib;
|
||||
inherit openssl zlib http-parser;
|
||||
cares = c-ares;
|
||||
http-parser = http_parser;
|
||||
|
||||
# disabled system v8 because v8 3.14 no longer receives security fixes
|
||||
# we fall back to nodejs' internal v8 copy which receives backports for now
|
||||
# inherit v8
|
||||
};
|
||||
|
||||
sharedConfigureFlags = name: [
|
||||
@@ -27,7 +30,7 @@ in stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
|
||||
sha256 = "038l4j0ilrsmc6m2z2qprqs82z7p4940scb8597hcmhp5kr5n4kw";
|
||||
sha256 = "1li5hs8dada2lj9j82xas39kr1fs0wql9qbly5p2cpszgwqbvz1x";
|
||||
};
|
||||
|
||||
configureFlags = concatMap sharedConfigureFlags (builtins.attrNames deps);
|
||||
@@ -52,6 +55,6 @@ in stdenv.mkDerivation {
|
||||
homepage = http://nodejs.org;
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.goibhniu maintainers.shlevy ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,78 +1,93 @@
|
||||
diff --git a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py
|
||||
index 806f92b..5256856 100644
|
||||
--- a/tools/gyp/pylib/gyp/xcode_emulation.py
|
||||
+++ b/tools/gyp/pylib/gyp/xcode_emulation.py
|
||||
@@ -224,8 +224,7 @@ class XcodeSettings(object):
|
||||
diff -Naur a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py
|
||||
--- a/tools/gyp/pylib/gyp/xcode_emulation.py 2014-01-23 06:05:51.000000000 +0100
|
||||
+++ b/tools/gyp/pylib/gyp/xcode_emulation.py 2014-02-04 17:49:48.000000000 +0100
|
||||
@@ -302,10 +302,17 @@
|
||||
|
||||
def _GetSdkVersionInfoItem(self, sdk, infoitem):
|
||||
job = subprocess.Popen(['xcodebuild', '-version', '-sdk', sdk, infoitem],
|
||||
- stdout=subprocess.PIPE,
|
||||
- stderr=subprocess.STDOUT)
|
||||
+ stdout=subprocess.PIPE)
|
||||
out = job.communicate()[0]
|
||||
if job.returncode != 0:
|
||||
sys.stderr.write(out + '\n')
|
||||
@@ -234,9 +233,17 @@ class XcodeSettings(object):
|
||||
|
||||
def _SdkPath(self):
|
||||
sdk_root = self.GetPerTargetSetting('SDKROOT', default='macosx')
|
||||
+ if sdk_root.startswith('/'):
|
||||
+ return sdk_root
|
||||
def _XcodeSdkPath(self, sdk_root):
|
||||
if sdk_root not in XcodeSettings._sdk_path_cache:
|
||||
- XcodeSettings._sdk_path_cache[sdk_root] = self._GetSdkVersionInfoItem(
|
||||
- sdk_root, 'Path')
|
||||
- sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path')
|
||||
- XcodeSettings._sdk_path_cache[sdk_root] = sdk_path
|
||||
- if sdk_root:
|
||||
- XcodeSettings._sdk_root_cache[sdk_path] = sdk_root
|
||||
+ try:
|
||||
+ XcodeSettings._sdk_path_cache[sdk_root] = self._GetSdkVersionInfoItem(
|
||||
+ sdk_root, 'Path')
|
||||
+ sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path')
|
||||
+ XcodeSettings._sdk_path_cache[sdk_root] = sdk_path
|
||||
+ if sdk_root:
|
||||
+ XcodeSettings._sdk_root_cache[sdk_path] = sdk_root
|
||||
+ except:
|
||||
+ # if this fails it's because xcodebuild failed, which means
|
||||
+ # the user is probably on a CLT-only system, where there
|
||||
+ # is no valid SDK root
|
||||
+ XcodeSettings._sdk_path_cache[sdk_root] = None
|
||||
+
|
||||
return XcodeSettings._sdk_path_cache[sdk_root]
|
||||
|
||||
def _AppendPlatformVersionMinFlags(self, lst):
|
||||
@@ -339,10 +346,11 @@ class XcodeSettings(object):
|
||||
|
||||
cflags += self._Settings().get('WARNING_CFLAGS', [])
|
||||
|
||||
@@ -420,10 +427,12 @@
|
||||
framework_root = sdk_root
|
||||
else:
|
||||
framework_root = ''
|
||||
- config = self.spec['configurations'][self.configname]
|
||||
- framework_dirs = config.get('mac_framework_dirs', [])
|
||||
- for directory in framework_dirs:
|
||||
- cflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root))
|
||||
- cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root))
|
||||
+
|
||||
+ if 'SDKROOT' in self._Settings():
|
||||
+ config = self.spec['configurations'][self.configname]
|
||||
+ framework_dirs = config.get('mac_framework_dirs', [])
|
||||
+ for directory in framework_dirs:
|
||||
+ cflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root))
|
||||
+ cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root))
|
||||
|
||||
self.configname = None
|
||||
return cflags
|
||||
@@ -572,10 +580,11 @@ class XcodeSettings(object):
|
||||
for rpath in self._Settings().get('LD_RUNPATH_SEARCH_PATHS', []):
|
||||
ldflags.append('-Wl,-rpath,' + rpath)
|
||||
|
||||
@@ -673,10 +682,12 @@
|
||||
sdk_root = self._SdkPath()
|
||||
if not sdk_root:
|
||||
sdk_root = ''
|
||||
- config = self.spec['configurations'][self.configname]
|
||||
- framework_dirs = config.get('mac_framework_dirs', [])
|
||||
- for directory in framework_dirs:
|
||||
- ldflags.append('-F' + directory.replace('$(SDKROOT)', self._SdkPath()))
|
||||
- ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root))
|
||||
+
|
||||
+ if 'SDKROOT' in self._Settings():
|
||||
+ config = self.spec['configurations'][self.configname]
|
||||
+ framework_dirs = config.get('mac_framework_dirs', [])
|
||||
+ for directory in framework_dirs:
|
||||
+ ldflags.append('-F' + directory.replace('$(SDKROOT)', self._SdkPath()))
|
||||
+ ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root))
|
||||
|
||||
self.configname = None
|
||||
return ldflags
|
||||
@@ -700,7 +709,10 @@ class XcodeSettings(object):
|
||||
l = '-l' + m.group(1)
|
||||
else:
|
||||
l = library
|
||||
- return l.replace('$(SDKROOT)', self._SdkPath())
|
||||
@@ -863,7 +874,11 @@
|
||||
sdk_root = self._SdkPath(config_name)
|
||||
if not sdk_root:
|
||||
sdk_root = ''
|
||||
- return l.replace('$(SDKROOT)', sdk_root)
|
||||
+
|
||||
+ if self._SdkPath():
|
||||
+ return l.replace('$(SDKROOT)', self._SdkPath())
|
||||
+ return l.replace('$(SDKROOT)', sdk_root)
|
||||
+ else:
|
||||
+ return l
|
||||
|
||||
def AdjustLibraries(self, libraries):
|
||||
def AdjustLibraries(self, libraries, config_name=None):
|
||||
"""Transforms entries like 'Cocoa.framework' in libraries into entries like
|
||||
@@ -1018,12 +1033,16 @@
|
||||
# Since the value returned by this function is only used when ARCHS is not
|
||||
# set, then on iOS we return "i386", as the default xcode project generator
|
||||
# does not set ARCHS if it is not set in the .gyp file.
|
||||
- if self.isIOS:
|
||||
+
|
||||
+ try:
|
||||
+ if self.isIOS:
|
||||
+ return 'i386'
|
||||
+ version, build = self._XcodeVersion()
|
||||
+ if version >= '0500':
|
||||
+ return 'x86_64'
|
||||
return 'i386'
|
||||
- version, build = self._XcodeVersion()
|
||||
- if version >= '0500':
|
||||
+ except:
|
||||
return 'x86_64'
|
||||
- return 'i386'
|
||||
|
||||
class MacPrefixHeader(object):
|
||||
"""A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature.
|
||||
|
||||
Reference in New Issue
Block a user