mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-13 21:32:23 +03:00
Merge branch 'staging'
There are some darwin failures https://github.com/NixOS/nixpkgs/commit/a3dcb3051#commitcomment-15482351 but also pre-built libxml2 security fixes.
This commit is contained in:
commit
1a4ab04e29
@ -17,7 +17,8 @@ stdenv.mkDerivation rec{
|
|||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig autoreconfHook openssl db48 boost zlib
|
buildInputs = [ pkgconfig autoreconfHook openssl db48 boost zlib
|
||||||
miniupnpc utillinux protobuf ]
|
miniupnpc protobuf ]
|
||||||
|
++ optionals stdenv.isLinux [ utillinux ]
|
||||||
++ optionals withGui [ qt4 qrencode ];
|
++ optionals withGui [ qt4 qrencode ];
|
||||||
|
|
||||||
configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ]
|
configureFlags = [ "--with-boost-libdir=${boost.lib}/lib" ]
|
||||||
|
@ -9,8 +9,6 @@ bundlerEnv rec {
|
|||||||
lockfile = ./Gemfile.lock;
|
lockfile = ./Gemfile.lock;
|
||||||
gemset = ./gemset.nix;
|
gemset = ./gemset.nix;
|
||||||
|
|
||||||
buildInputs = [ curl ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Simple, blog aware, static site generator";
|
description = "Simple, blog aware, static site generator";
|
||||||
homepage = http://jekyllrb.com/;
|
homepage = http://jekyllrb.com/;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, buildEnv, fetchgit, fetchurl, makeWrapper, bundlerEnv, bundler_HEAD
|
{ stdenv, buildEnv, fetchgit, fetchurl, makeWrapper, bundlerEnv, bundler
|
||||||
, ruby, libxslt, libxml2, sqlite, openssl, docker
|
, ruby, libxslt, libxml2, sqlite, openssl, docker
|
||||||
, dataDir ? "/var/lib/panamax-api" }:
|
, dataDir ? "/var/lib/panamax-api" }@args:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
@ -14,9 +14,9 @@ stdenv.mkDerivation rec {
|
|||||||
gemset = ./gemset.nix;
|
gemset = ./gemset.nix;
|
||||||
gemfile = ./Gemfile;
|
gemfile = ./Gemfile;
|
||||||
lockfile = ./Gemfile.lock;
|
lockfile = ./Gemfile.lock;
|
||||||
buildInputs = [ openssl ];
|
|
||||||
};
|
};
|
||||||
bundler = bundler_HEAD.override { inherit ruby; };
|
|
||||||
|
bundler = args.bundler.override { inherit ruby; };
|
||||||
|
|
||||||
database_yml = builtins.toFile "database.yml" ''
|
database_yml = builtins.toFile "database.yml" ''
|
||||||
production:
|
production:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchgit, fetchurl, makeWrapper, bundlerEnv, bundler_HEAD
|
{ stdenv, fetchgit, fetchurl, makeWrapper, bundlerEnv, bundler
|
||||||
, ruby, rubygemsFun, openssl, sqlite, dataDir ? "/var/lib/panamax-ui"}:
|
, ruby, openssl, sqlite, dataDir ? "/var/lib/panamax-ui"}@args:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
@ -13,10 +13,9 @@ stdenv.mkDerivation rec {
|
|||||||
gemset = ./gemset.nix;
|
gemset = ./gemset.nix;
|
||||||
gemfile = ./Gemfile;
|
gemfile = ./Gemfile;
|
||||||
lockfile = ./Gemfile.lock;
|
lockfile = ./Gemfile.lock;
|
||||||
buildInputs = [ openssl ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bundler = bundler_HEAD.override { inherit ruby; };
|
bundler = args.bundler.override { inherit ruby; };
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
|
@ -34,7 +34,8 @@ stdenv.mkDerivation {
|
|||||||
++ stdenv.lib.optionals guiSupport [tcl tk];
|
++ stdenv.lib.optionals guiSupport [tcl tk];
|
||||||
|
|
||||||
# required to support pthread_cancel()
|
# required to support pthread_cancel()
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
|
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
|
||||||
|
+ stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
|
||||||
|
|
||||||
# without this, git fails when trying to check for /etc/gitconfig existence
|
# without this, git fails when trying to check for /etc/gitconfig existence
|
||||||
propagatedSandboxProfile = stdenv.lib.sandbox.allowDirectoryList "/etc";
|
propagatedSandboxProfile = stdenv.lib.sandbox.allowDirectoryList "/etc";
|
||||||
|
@ -90,14 +90,6 @@ fi
|
|||||||
extraAfter=($NIX_CFLAGS_COMPILE)
|
extraAfter=($NIX_CFLAGS_COMPILE)
|
||||||
extraBefore=()
|
extraBefore=()
|
||||||
|
|
||||||
# When enforcing purity, pretend gcc can't find the current date and
|
|
||||||
# time
|
|
||||||
if [ "$NIX_ENFORCE_PURITY" = 1 ]; then
|
|
||||||
extraAfter+=('-D__DATE__="Jan 01 1970"'
|
|
||||||
'-D__TIME__="00:00:01"'
|
|
||||||
-Wno-builtin-macro-redefined)
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$dontLink" != 1 ]; then
|
if [ "$dontLink" != 1 ]; then
|
||||||
|
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
updateSourceDateEpoch() {
|
||||||
|
local path="$1"
|
||||||
|
|
||||||
|
# Get the last modification time of all regular files, sort them,
|
||||||
|
# and get the most recent. Maybe we should use
|
||||||
|
# https://github.com/0-wiz-0/findnewest here.
|
||||||
|
local -a res=($(find "$path" -type f -print0 | xargs -0 -r stat -c '%Y %n' | sort -n | tail -n1))
|
||||||
|
local time="${res[0]}"
|
||||||
|
local newestFile="${res[1]}"
|
||||||
|
|
||||||
|
# Update $SOURCE_DATE_EPOCH if the most recent file we found is newer.
|
||||||
|
if [ "$time" -gt "$SOURCE_DATE_EPOCH" ]; then
|
||||||
|
echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile"
|
||||||
|
export SOURCE_DATE_EPOCH="$time"
|
||||||
|
|
||||||
|
# Warn if the new timestamp is too close to the present. This
|
||||||
|
# may indicate that we were being applied to a file generated
|
||||||
|
# during the build, or that an unpacker didn't restore
|
||||||
|
# timestamps properly.
|
||||||
|
local now="$(date +%s)"
|
||||||
|
if [ "$time" -gt $((now - 60)) ]; then
|
||||||
|
echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
postUnpackHooks+=(_updateSourceDateEpochFromSourceRoot)
|
||||||
|
|
||||||
|
_updateSourceDateEpochFromSourceRoot() {
|
||||||
|
updateSourceDateEpoch "$sourceRoot"
|
||||||
|
}
|
@ -63,7 +63,8 @@ let version = "4.9.3";
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
patches = [ ]
|
patches =
|
||||||
|
[ ../use-source-date-epoch.patch ]
|
||||||
++ optionals enableParallelBuilding [ ../parallel-bconfig.patch ./parallel-strsignal.patch ]
|
++ optionals enableParallelBuilding [ ../parallel-bconfig.patch ./parallel-strsignal.patch ]
|
||||||
++ optional (cross != null) ../libstdc++-target.patch
|
++ optional (cross != null) ../libstdc++-target.patch
|
||||||
++ optional noSysDirs ../no-sys-dirs.patch
|
++ optional noSysDirs ../no-sys-dirs.patch
|
||||||
|
@ -64,7 +64,8 @@ let version = "5.3.0";
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
patches = [ ]
|
patches =
|
||||||
|
[ ../use-source-date-epoch.patch ]
|
||||||
++ optional (cross != null) ../libstdc++-target.patch
|
++ optional (cross != null) ../libstdc++-target.patch
|
||||||
++ optional noSysDirs ../no-sys-dirs.patch
|
++ optional noSysDirs ../no-sys-dirs.patch
|
||||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||||
|
52
pkgs/development/compilers/gcc/use-source-date-epoch.patch
Normal file
52
pkgs/development/compilers/gcc/use-source-date-epoch.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
https://gcc.gnu.org/ml/gcc-patches/2015-06/msg02210.html
|
||||||
|
|
||||||
|
diff --git a/libcpp/macro.c b/libcpp/macro.c
|
||||||
|
index 1e0a0b5..a52e3cb 100644
|
||||||
|
--- a/libcpp/macro.c
|
||||||
|
+++ b/libcpp/macro.c
|
||||||
|
@@ -349,14 +349,38 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node)
|
||||||
|
slow on some systems. */
|
||||||
|
time_t tt;
|
||||||
|
struct tm *tb = NULL;
|
||||||
|
+ char *source_date_epoch;
|
||||||
|
|
||||||
|
- /* (time_t) -1 is a legitimate value for "number of seconds
|
||||||
|
- since the Epoch", so we have to do a little dance to
|
||||||
|
- distinguish that from a genuine error. */
|
||||||
|
- errno = 0;
|
||||||
|
- tt = time(NULL);
|
||||||
|
- if (tt != (time_t)-1 || errno == 0)
|
||||||
|
- tb = localtime (&tt);
|
||||||
|
+ /* Allow the date and time to be set externally by an exported
|
||||||
|
+ environment variable to enable reproducible builds. */
|
||||||
|
+ source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
|
||||||
|
+ if (source_date_epoch)
|
||||||
|
+ {
|
||||||
|
+ errno = 0;
|
||||||
|
+ tt = (time_t) strtol (source_date_epoch, NULL, 10);
|
||||||
|
+ if (errno == 0)
|
||||||
|
+ {
|
||||||
|
+ tb = gmtime (&tt);
|
||||||
|
+ if (tb == NULL)
|
||||||
|
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||||
|
+ "SOURCE_DATE_EPOCH=\"%s\" is not a valid date",
|
||||||
|
+ source_date_epoch);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ cpp_error (pfile, CPP_DL_ERROR,
|
||||||
|
+ "SOURCE_DATE_EPOCH=\"%s\" is not a valid number",
|
||||||
|
+ source_date_epoch);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ /* (time_t) -1 is a legitimate value for "number of seconds
|
||||||
|
+ since the Epoch", so we have to do a little dance to
|
||||||
|
+ distinguish that from a genuine error. */
|
||||||
|
+ errno = 0;
|
||||||
|
+ tt = time(NULL);
|
||||||
|
+ if (tt != (time_t)-1 || errno == 0)
|
||||||
|
+ tb = localtime (&tt);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (tb)
|
||||||
|
{
|
@ -6,7 +6,7 @@ in stdenv.mkDerivation {
|
|||||||
name = "clang-${version}";
|
name = "clang-${version}";
|
||||||
|
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
unpackFile ${fetch "cfe" "1k517b0jj74c4vgnnd4ikbrpb96na541bi8q845ckw8xm72l1msf"}
|
unpackFile ${fetch "cfe" "0x065d0w9b51xvdjxwfzjxng0gzpbx45fgiaxpap45ragi61dqjn"}
|
||||||
mv cfe-${version}.src clang
|
mv cfe-${version}.src clang
|
||||||
sourceRoot=$PWD/clang
|
sourceRoot=$PWD/clang
|
||||||
unpackFile ${clang-tools-extra_src}
|
unpackFile ${clang-tools-extra_src}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
let
|
let
|
||||||
callPackage = newScope (self // { inherit stdenv isl version fetch; });
|
callPackage = newScope (self // { inherit stdenv isl version fetch; });
|
||||||
|
|
||||||
version = "3.7.0";
|
version = "3.7.1";
|
||||||
|
|
||||||
fetch = fetch_v version;
|
fetch = fetch_v version;
|
||||||
fetch_v = ver: name: sha256: fetchurl {
|
fetch_v = ver: name: sha256: fetchurl {
|
||||||
@ -10,8 +10,8 @@ let
|
|||||||
inherit sha256;
|
inherit sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
compiler-rt_src = fetch "compiler-rt" "02rbsqdnj1dw9q3d8w5wwmvz5gfraiv8xp18lis4kj8baacajzr2";
|
compiler-rt_src = fetch "compiler-rt" "10c1mz2q4bdq9bqfgr3dirc6hz1h3sq8573srd5q5lr7m7j6jiwx";
|
||||||
clang-tools-extra_src = fetch "clang-tools-extra" "1k894zkx4w8grigmgv5y4q9zrcic2ypz0zfn28270ykbm6is1s4a";
|
clang-tools-extra_src = fetch "clang-tools-extra" "0sxw2l3q5msbrwxv1ck72arggdw6n5ysi929gi69ikniranfv4aa";
|
||||||
|
|
||||||
self = {
|
self = {
|
||||||
llvm = callPackage ./llvm.nix {
|
llvm = callPackage ./llvm.nix {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libc++-${version}";
|
name = "libc++-${version}";
|
||||||
|
|
||||||
src = fetch "libcxx" "13nh78zp5d2jf732mxnalw679zjywbjpz9942j66fznd6f1kr3y1";
|
src = fetch "libcxx" "0i7iyzk024krda5spfpfi8jksh83yp3bxqkal0xp76ffi11bszrm";
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
unpackFile ${libcxxabi.src}
|
unpackFile ${libcxxabi.src}
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "libc++abi-${version}";
|
name = "libc++abi-${version}";
|
||||||
|
|
||||||
src = fetch "libcxxabi" "1swvnhrf9g67579c5picg0l869f8l2bwi4xqpbcb4n296gyp9c28";
|
src = fetch "libcxxabi" "0ambfcmr2nh88hx000xb7yjm9lsqjjz49w5mlf6dlxzmj3nslzx4";
|
||||||
|
|
||||||
buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin) libunwind;
|
buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD) libunwind;
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
unpackFile ${libcxx.src}
|
unpackFile ${libcxx.src}
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "lldb-${version}";
|
name = "lldb-${version}";
|
||||||
|
|
||||||
src = fetch "lldb" "1sbi9c6c4m73wfw249dn0n2974p444i03brk82m4w10iq5dm1mzl";
|
src = fetch "lldb" "008fdbyza13ym3v0xpans4z4azw4y16hcbgrrnc4rx2mxwaw62ws";
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
sed -i 's|/usr/bin/env||' \
|
sed -i 's|/usr/bin/env||' \
|
||||||
|
@ -18,15 +18,10 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
src = fetch "llvm" "0lrirklh4nrcb078qc2f6vbmmc34kxqgsy9s18a1xbfdkmgqjidb";
|
src = fetch "llvm" "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "llvm-${version}";
|
name = "llvm-${version}";
|
||||||
|
|
||||||
patches = [
|
|
||||||
# Backport for Rust, remove when 3.7.1 is released
|
|
||||||
./r242372-fix-LLVMBuildLandingPad.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
unpackFile ${src}
|
unpackFile ${src}
|
||||||
mv llvm-${version}.src llvm
|
mv llvm-${version}.src llvm
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
Index: llvm/bindings/ocaml/llvm/llvm_ocaml.c
|
|
||||||
===================================================================
|
|
||||||
--- llvm/bindings/ocaml/llvm/llvm_ocaml.c (revision 242371)
|
|
||||||
+++ llvm/bindings/ocaml/llvm/llvm_ocaml.c (revision 242372)
|
|
||||||
@@ -1745,7 +1745,7 @@
|
|
||||||
CAMLprim LLVMValueRef llvm_build_landingpad(LLVMTypeRef Ty, LLVMValueRef PersFn,
|
|
||||||
value NumClauses, value Name,
|
|
||||||
value B) {
|
|
||||||
- return LLVMBuildLandingPad(Builder_val(B), Ty, Int_val(NumClauses),
|
|
||||||
+ return LLVMBuildLandingPad(Builder_val(B), Ty, PersFn, Int_val(NumClauses),
|
|
||||||
String_val(Name));
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: llvm/bindings/go/llvm/ir.go
|
|
||||||
===================================================================
|
|
||||||
--- llvm/bindings/go/llvm/ir.go (revision 242371)
|
|
||||||
+++ llvm/bindings/go/llvm/ir.go (revision 242372)
|
|
||||||
@@ -1731,7 +1731,7 @@
|
|
||||||
func (b Builder) CreateLandingPad(t Type, nclauses int, name string) (l Value) {
|
|
||||||
cname := C.CString(name)
|
|
||||||
defer C.free(unsafe.Pointer(cname))
|
|
||||||
- l.C = C.LLVMBuildLandingPad(b.C, t.C, C.unsigned(nclauses), cname)
|
|
||||||
+ l.C = C.LLVMBuildLandingPad(b.C, t.C, nil, C.unsigned(nclauses), cname)
|
|
||||||
return l
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: llvm/lib/IR/Core.cpp
|
|
||||||
===================================================================
|
|
||||||
--- llvm/lib/IR/Core.cpp (revision 242371)
|
|
||||||
+++ llvm/lib/IR/Core.cpp (revision 242372)
|
|
||||||
@@ -2257,7 +2257,14 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
|
|
||||||
- unsigned NumClauses, const char *Name) {
|
|
||||||
+ LLVMValueRef PersFn, unsigned NumClauses,
|
|
||||||
+ const char *Name) {
|
|
||||||
+ // The personality used to live on the landingpad instruction, but now it
|
|
||||||
+ // lives on the parent function. For compatibility, take the provided
|
|
||||||
+ // personality and put it on the parent function.
|
|
||||||
+ if (PersFn)
|
|
||||||
+ unwrap(B)->GetInsertBlock()->getParent()->setPersonalityFn(
|
|
||||||
+ cast<Function>(unwrap(PersFn)));
|
|
||||||
return wrap(unwrap(B)->CreateLandingPad(unwrap(Ty), NumClauses, Name));
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: llvm/include/llvm-c/Core.h
|
|
||||||
===================================================================
|
|
||||||
--- llvm/include/llvm-c/Core.h (revision 242371)
|
|
||||||
+++ llvm/include/llvm-c/Core.h (revision 242372)
|
|
||||||
@@ -2675,7 +2675,8 @@
|
|
||||||
LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
|
|
||||||
const char *Name);
|
|
||||||
LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
|
|
||||||
- unsigned NumClauses, const char *Name);
|
|
||||||
+ LLVMValueRef PersFn, unsigned NumClauses,
|
|
||||||
+ const char *Name);
|
|
||||||
LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn);
|
|
||||||
LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef);
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
|||||||
{ stdenv, callPackage }:
|
{ stdenv, callPackage }:
|
||||||
|
|
||||||
callPackage ./generic.nix {
|
callPackage ./generic.nix {
|
||||||
shortVersion = "2015-12-09";
|
shortVersion = "2016-01-10";
|
||||||
isRelease = false;
|
isRelease = false;
|
||||||
forceBundledLLVM = true;
|
forceBundledLLVM = false;
|
||||||
srcRev = "462ec0576";
|
srcRev = "d70ab2bdf16c22b9f3ff0230089b44855e3f1593";
|
||||||
srcSha = "1mci0hxwnqb24j4k68rgffqk8ccznz2iddfmyhi8wxa094hqgghp";
|
srcSha = "13ssis1bdgg8sdkgrvxcbd1qcfmf7q6bv4akfxrjgdm44l1n1l97";
|
||||||
|
|
||||||
/* Rust is bootstrapped from an earlier built version. We need
|
/* Rust is bootstrapped from an earlier built version. We need
|
||||||
to fetch these earlier versions, which vary per platform.
|
to fetch these earlier versions, which vary per platform.
|
||||||
@ -15,12 +15,12 @@ callPackage ./generic.nix {
|
|||||||
with the set you want at the top.
|
with the set you want at the top.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
snapshotHashLinux686 = "e2553bf399cd134a08ef3511a0a6ab0d7a667216";
|
snapshotHashLinux686 = "a09c4a4036151d0cb28e265101669731600e01f2";
|
||||||
snapshotHashLinux64 = "7df8ba9dec63ec77b857066109d4b6250f3d222f";
|
snapshotHashLinux64 = "97e2a5eb8904962df8596e95d6e5d9b574d73bf4";
|
||||||
snapshotHashDarwin686 = "29750870c82a0347f8b8b735a4e2e0da26f5098d";
|
snapshotHashDarwin686 = "ca52d2d3ba6497ed007705ee3401cf7efc136ca1";
|
||||||
snapshotHashDarwin64 = "c9f2c588238b4c6998190c3abeb33fd6164099a2";
|
snapshotHashDarwin64 = "3c44ffa18f89567c2b81f8d695e711c86d81ffc7";
|
||||||
snapshotDate = "2015-08-11";
|
snapshotDate = "2015-12-18";
|
||||||
snapshotRev = "1af31d4";
|
snapshotRev = "3391630";
|
||||||
|
|
||||||
patches = [ ./patches/remove-uneeded-git.patch ]
|
patches = [ ./patches/remove-uneeded-git.patch ]
|
||||||
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
|
++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
|
||||||
|
@ -24,6 +24,11 @@ let
|
|||||||
};
|
};
|
||||||
armv6l-linux = armv7l-linux;
|
armv6l-linux = armv7l-linux;
|
||||||
x86_64-solaris = x86_64-linux;
|
x86_64-solaris = x86_64-linux;
|
||||||
|
x86_64-freebsd = rec {
|
||||||
|
version = "1.2.7";
|
||||||
|
system = "x86-64-freebsd";
|
||||||
|
sha256 = "14k42xiqd2rrim4pd5k5pjcrpkac09qnpynha8j1v4jngrvmw7y6";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
cfg = options.${stdenv.system};
|
cfg = options.${stdenv.system};
|
||||||
in
|
in
|
||||||
|
@ -93,6 +93,14 @@ stdenv.mkDerivation rec {
|
|||||||
substituteInPlace dist/PathTools/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
|
substituteInPlace dist/PathTools/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# Inspired by nuke-references, which I can't depend on because it uses perl. Perhaps it should just use sed :)
|
||||||
|
postInstall = ''
|
||||||
|
self=$(echo $out | sed -n "s|^$NIX_STORE/\\([a-z0-9]\{32\}\\)-.*|\1|p")
|
||||||
|
|
||||||
|
sed -i "/$self/b; s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "$out"/lib/perl5/*/*/Config.pm
|
||||||
|
sed -i "/$self/b; s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "$out"/lib/perl5/*/*/Config_heavy.pl
|
||||||
|
'';
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
|
||||||
passthru.libPrefix = "lib/perl5/site_perl";
|
passthru.libPrefix = "lib/perl5/site_perl";
|
||||||
|
208
pkgs/development/interpreters/ruby/build-ruby-gem/default.nix
Normal file
208
pkgs/development/interpreters/ruby/build-ruby-gem/default.nix
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
# This builds gems in a way that is compatible with bundler.
|
||||||
|
#
|
||||||
|
# Bundler installs gems from git sources _very_ differently from how RubyGems
|
||||||
|
# installes gem packages, though they both install gem packages similarly.
|
||||||
|
#
|
||||||
|
# We monkey-patch Bundler to remove any impurities and then drive its internals
|
||||||
|
# to install git gems.
|
||||||
|
#
|
||||||
|
# For the sake of simplicity, gem packages are installed with the standard `gem`
|
||||||
|
# program.
|
||||||
|
#
|
||||||
|
# Note that bundler does not support multiple prefixes; it assumes that all
|
||||||
|
# gems are installed in a common prefix, and has no support for specifying
|
||||||
|
# otherwise. Therefore, if you want to be able to use the resulting derivations
|
||||||
|
# with bundler, you need to create a symlink forrest first, which is what
|
||||||
|
# `bundlerEnv` does for you.
|
||||||
|
#
|
||||||
|
# Normal gem packages can be used outside of bundler; a binstub is created in
|
||||||
|
# $out/bin.
|
||||||
|
|
||||||
|
{ lib, ruby, rubygems, bundler, fetchurl, fetchgit, makeWrapper, git, buildRubyGem
|
||||||
|
} @ defs:
|
||||||
|
|
||||||
|
lib.makeOverridable (
|
||||||
|
|
||||||
|
{ name ? null
|
||||||
|
, gemName
|
||||||
|
, version ? null
|
||||||
|
, type ? "gem"
|
||||||
|
, document ? [] # e.g. [ "ri" "rdoc" ]
|
||||||
|
, platform ? "ruby"
|
||||||
|
, ruby ? defs.ruby
|
||||||
|
, stdenv ? ruby.stdenv
|
||||||
|
, namePrefix ? "${ruby.name}" + "-"
|
||||||
|
, buildInputs ? []
|
||||||
|
, doCheck ? false
|
||||||
|
, meta ? {}
|
||||||
|
, patches ? []
|
||||||
|
, gemPath ? []
|
||||||
|
, dontStrip ? true
|
||||||
|
, remotes ? ["https://rubygems.org"]
|
||||||
|
# Assume we don't have to build unless strictly necessary (e.g. the source is a
|
||||||
|
# git checkout).
|
||||||
|
# If you need to apply patches, make sure to set `dontBuild = false`;
|
||||||
|
, dontBuild ? true
|
||||||
|
, propagatedBuildInputs ? []
|
||||||
|
, propagatedUserEnvPkgs ? []
|
||||||
|
, buildFlags ? null
|
||||||
|
, passthru ? {}
|
||||||
|
, ...} @ attrs:
|
||||||
|
|
||||||
|
if ! builtins.elem type [ "git" "gem" ]
|
||||||
|
then throw "buildRubyGem: don't know how to build a gem of type \"${type}\""
|
||||||
|
else
|
||||||
|
|
||||||
|
let
|
||||||
|
shellEscape = x: "'${lib.replaceChars ["'"] [("'\\'" + "'")] x}'";
|
||||||
|
rubygems = (attrs.rubygems or defs.rubygems).override {
|
||||||
|
inherit ruby;
|
||||||
|
};
|
||||||
|
src = attrs.src or (
|
||||||
|
if type == "gem"
|
||||||
|
then fetchurl {
|
||||||
|
urls = map (remote: "${remote}/gems/${gemName}-${version}.gem") remotes;
|
||||||
|
inherit (attrs) sha256;
|
||||||
|
} else fetchgit {
|
||||||
|
inherit (attrs) url rev sha256 fetchSubmodules;
|
||||||
|
leaveDotGit = true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
documentFlag =
|
||||||
|
if document == []
|
||||||
|
then "-N"
|
||||||
|
else "--document ${lib.concatStringsSep "," document}";
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation (attrs // {
|
||||||
|
inherit ruby rubygems;
|
||||||
|
inherit doCheck;
|
||||||
|
inherit dontBuild;
|
||||||
|
inherit dontStrip;
|
||||||
|
inherit type;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
ruby rubygems makeWrapper
|
||||||
|
] ++ lib.optionals (type == "git") [ git bundler ]
|
||||||
|
++ buildInputs;
|
||||||
|
|
||||||
|
name = attrs.name or (namePrefix + gemName);
|
||||||
|
|
||||||
|
inherit src;
|
||||||
|
|
||||||
|
phases = attrs.phases or [ "unpackPhase" "patchPhase" "buildPhase" "installPhase" "fixupPhase" ];
|
||||||
|
|
||||||
|
unpackPhase = attrs.unpackPhase or ''
|
||||||
|
runHook preUnpack
|
||||||
|
|
||||||
|
if [[ -f $src && $src == *.gem ]]; then
|
||||||
|
if [[ -z "$dontBuild" ]]; then
|
||||||
|
# we won't know the name of the directory that RubyGems creates,
|
||||||
|
# so we'll just use a glob to find it and move it over.
|
||||||
|
gempkg="$src"
|
||||||
|
sourceRoot=source
|
||||||
|
gem unpack $gempkg --target=container
|
||||||
|
cp -r container/* $sourceRoot
|
||||||
|
rm -r container
|
||||||
|
|
||||||
|
# copy out the original gemspec, for convenience during patching /
|
||||||
|
# overrides.
|
||||||
|
gem specification $gempkg --ruby > original.gemspec
|
||||||
|
gemspec=$(readlink -f .)/original.gemspec
|
||||||
|
else
|
||||||
|
gempkg="$src"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Fall back to the original thing for everything else.
|
||||||
|
dontBuild=""
|
||||||
|
preUnpack="" postUnpack="" unpackPhase
|
||||||
|
fi
|
||||||
|
|
||||||
|
runHook postUnpack
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = attrs.buildPhase or ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
if [[ "$type" == "gem" ]]; then
|
||||||
|
if [[ -z "$gemspec" ]]; then
|
||||||
|
gemspec="$(find . -name '*.gemspec')"
|
||||||
|
echo "found the following gemspecs:"
|
||||||
|
echo "$gemspec"
|
||||||
|
gemspec="$(echo "$gemspec" | head -n1)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec 3>&1
|
||||||
|
output="$(gem build $gemspec | tee >(cat - >&3))"
|
||||||
|
exec 3>&-
|
||||||
|
|
||||||
|
gempkg=$(echo "$output" | grep -oP 'File: \K(.*)')
|
||||||
|
|
||||||
|
echo "gem package built: $gempkg"
|
||||||
|
fi
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Note:
|
||||||
|
# We really do need to keep the $out/${ruby.gemPath}/cache.
|
||||||
|
# This is very important in order for many parts of RubyGems/Bundler to not blow up.
|
||||||
|
# See https://github.com/bundler/bundler/issues/3327
|
||||||
|
installPhase = attrs.installPhase or ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
export GEM_HOME=$out/${ruby.gemPath}
|
||||||
|
mkdir -p $GEM_HOME
|
||||||
|
|
||||||
|
echo "buildFlags: $buildFlags"
|
||||||
|
|
||||||
|
${lib.optionalString (type == "git") ''
|
||||||
|
ruby ${./nix-bundle-install.rb} \
|
||||||
|
${gemName} \
|
||||||
|
${attrs.url} \
|
||||||
|
${src} \
|
||||||
|
${attrs.rev} \
|
||||||
|
${version} \
|
||||||
|
${shellEscape (toString buildFlags)}
|
||||||
|
''}
|
||||||
|
|
||||||
|
${lib.optionalString (type == "gem") ''
|
||||||
|
if [[ -z "$gempkg" ]]; then
|
||||||
|
echo "failure: \$gempkg path unspecified" 1>&2
|
||||||
|
exit 1
|
||||||
|
elif [[ ! -f "$gempkg" ]]; then
|
||||||
|
echo "failure: \$gempkg path invalid" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
gem install \
|
||||||
|
--local \
|
||||||
|
--force \
|
||||||
|
--http-proxy 'http://nodtd.invalid' \
|
||||||
|
--ignore-dependencies \
|
||||||
|
--build-root '/' \
|
||||||
|
--backtrace \
|
||||||
|
${documentFlag} \
|
||||||
|
$gempkg $gemFlags -- $buildFlags
|
||||||
|
|
||||||
|
# looks like useless files which break build repeatability and consume space
|
||||||
|
rm -fv $out/${ruby.gemPath}/doc/*/*/created.rid || true
|
||||||
|
rm -fv $out/${ruby.gemPath}/gems/*/ext/*/mkmf.log || true
|
||||||
|
|
||||||
|
# write out metadata and binstubs
|
||||||
|
spec=$(echo $out/${ruby.gemPath}/specifications/*.gemspec)
|
||||||
|
ruby ${./gem-post-build.rb} "$spec"
|
||||||
|
''}
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedBuildInputs = gemPath ++ propagatedBuildInputs;
|
||||||
|
propagatedUserEnvPkgs = gemPath ++ propagatedUserEnvPkgs;
|
||||||
|
|
||||||
|
passthru = passthru // { isRubyGem = true; };
|
||||||
|
inherit meta;
|
||||||
|
})
|
||||||
|
|
||||||
|
)
|
@ -0,0 +1,77 @@
|
|||||||
|
require 'rbconfig'
|
||||||
|
require 'rubygems'
|
||||||
|
require 'rubygems/specification'
|
||||||
|
require 'fileutils'
|
||||||
|
|
||||||
|
ruby = File.join(ENV["ruby"], "bin", RbConfig::CONFIG['ruby_install_name'])
|
||||||
|
out = ENV["out"]
|
||||||
|
bin_path = File.join(ENV["out"], "bin")
|
||||||
|
gem_home = ENV["GEM_HOME"]
|
||||||
|
gem_path = ENV["GEM_PATH"].split(":")
|
||||||
|
install_path = Dir.glob("#{gem_home}/gems/*").first
|
||||||
|
gemspec_path = ARGV[0]
|
||||||
|
|
||||||
|
if defined?(Encoding.default_internal)
|
||||||
|
Encoding.default_internal = Encoding::UTF_8
|
||||||
|
Encoding.default_external = Encoding::UTF_8
|
||||||
|
end
|
||||||
|
|
||||||
|
gemspec_content = File.read(gemspec_path)
|
||||||
|
spec = nil
|
||||||
|
if gemspec_content[0..2] == "---" # YAML header
|
||||||
|
spec = Gem::Specification.from_yaml(gemspec_content)
|
||||||
|
else
|
||||||
|
spec = Gem::Specification.load(gemspec_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
FileUtils.mkdir_p("#{out}/nix-support")
|
||||||
|
|
||||||
|
# write meta-data
|
||||||
|
meta = "#{out}/nix-support/gem-meta"
|
||||||
|
FileUtils.mkdir_p(meta)
|
||||||
|
FileUtils.ln_s(gemspec_path, "#{meta}/spec")
|
||||||
|
File.open("#{meta}/name", "w") do |f|
|
||||||
|
f.write(spec.name)
|
||||||
|
end
|
||||||
|
File.open("#{meta}/install-path", "w") do |f|
|
||||||
|
f.write(install_path)
|
||||||
|
end
|
||||||
|
File.open("#{meta}/require-paths", "w") do |f|
|
||||||
|
f.write(spec.require_paths.join(" "))
|
||||||
|
end
|
||||||
|
File.open("#{meta}/executables", "w") do |f|
|
||||||
|
f.write(spec.executables.join(" "))
|
||||||
|
end
|
||||||
|
|
||||||
|
# add this gem to the GEM_PATH for dependencies
|
||||||
|
File.open("#{out}/nix-support/setup-hook", "a") do |f|
|
||||||
|
f.puts("addToSearchPath GEM_PATH #{gem_home}")
|
||||||
|
spec.require_paths.each do |dir|
|
||||||
|
f.puts("addToSearchPath RUBYLIB #{install_path}/#{dir}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# create regular rubygems binstubs
|
||||||
|
FileUtils.mkdir_p(bin_path)
|
||||||
|
spec.executables.each do |exe|
|
||||||
|
File.open("#{bin_path}/#{exe}", "w") do |f|
|
||||||
|
f.write(<<-EOF)
|
||||||
|
#!#{ruby}
|
||||||
|
#
|
||||||
|
# This file was generated by Nix.
|
||||||
|
#
|
||||||
|
# The application '#{exe}' is installed as part of a gem, and
|
||||||
|
# this file is here to facilitate running it.
|
||||||
|
#
|
||||||
|
|
||||||
|
gem_path = ENV["GEM_PATH"]
|
||||||
|
ENV["GEM_PATH"] = "\#{gem_path}\#{":" unless gem_path.nil? || gem_path.empty?}#{(gem_path+[gem_home]).join(":")}"
|
||||||
|
|
||||||
|
require 'rubygems'
|
||||||
|
|
||||||
|
load Gem.bin_path(#{spec.name.inspect}, #{exe.inspect})
|
||||||
|
EOF
|
||||||
|
end
|
||||||
|
|
||||||
|
FileUtils.chmod("+x", "#{bin_path}/#{exe}")
|
||||||
|
end
|
@ -0,0 +1,153 @@
|
|||||||
|
require 'rbconfig'
|
||||||
|
require 'bundler/vendored_thor'
|
||||||
|
require 'bundler'
|
||||||
|
require 'rubygems/command'
|
||||||
|
require 'fileutils'
|
||||||
|
require 'pathname'
|
||||||
|
require 'tmpdir'
|
||||||
|
|
||||||
|
# Options:
|
||||||
|
#
|
||||||
|
# name - the gem name
|
||||||
|
# uri - git repo uri
|
||||||
|
# repo - path to local checkout
|
||||||
|
# ref - the commit hash
|
||||||
|
# version - gem version
|
||||||
|
# build-flags - build arguments
|
||||||
|
|
||||||
|
ruby = File.join(ENV["ruby"], "bin", RbConfig::CONFIG['ruby_install_name'])
|
||||||
|
out = ENV["out"]
|
||||||
|
bin_dir = File.join(ENV["out"], "bin")
|
||||||
|
|
||||||
|
name = ARGV[0]
|
||||||
|
uri = ARGV[1]
|
||||||
|
REPO = ARGV[2]
|
||||||
|
ref = ARGV[3]
|
||||||
|
version = ARGV[4]
|
||||||
|
build_flags = ARGV[5]
|
||||||
|
|
||||||
|
# options to pass to bundler
|
||||||
|
options = {
|
||||||
|
"name" => name,
|
||||||
|
"uri" => uri,
|
||||||
|
"ref" => ref,
|
||||||
|
"version" => version,
|
||||||
|
}
|
||||||
|
|
||||||
|
# Monkey-patch Bundler to use our local checkout.
|
||||||
|
# I wish we didn't have to do this, but bundler does not expose an API to do
|
||||||
|
# these kinds of things.
|
||||||
|
Bundler.module_eval do
|
||||||
|
def self.requires_sudo?
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.root
|
||||||
|
# we don't have a Gemfile, so it doesn't make sense to try to make paths
|
||||||
|
# relative to the (non existent) parent directory thereof, so we give a
|
||||||
|
# nonsense path here.
|
||||||
|
Pathname.new("/no-root-path")
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.bundle_path
|
||||||
|
Pathname.new(ENV["GEM_HOME"])
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.locked_gems
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Bundler::Source::Git.class_eval do
|
||||||
|
def allow_git_ops?
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Bundler::Source::Git::GitProxy.class_eval do
|
||||||
|
def checkout
|
||||||
|
unless path.exist?
|
||||||
|
FileUtils.mkdir_p(path.dirname)
|
||||||
|
FileUtils.cp_r(File.join(REPO, ".git"), path)
|
||||||
|
system("chmod -R +w #{path}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def copy_to(destination, submodules=false)
|
||||||
|
unless File.exist?(destination.join(".git"))
|
||||||
|
FileUtils.mkdir_p(destination.dirname)
|
||||||
|
FileUtils.cp_r(REPO, destination)
|
||||||
|
system("chmod -R +w #{destination}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# UI
|
||||||
|
verbose = false
|
||||||
|
no_color = false
|
||||||
|
Bundler.ui = Bundler::UI::Shell.new({"no-color" => no_color})
|
||||||
|
Bundler.ui.level = "debug" if verbose
|
||||||
|
|
||||||
|
# Install
|
||||||
|
source = Bundler::Source::Git.new(options)
|
||||||
|
spec = source.specs.search_all(name).first
|
||||||
|
Bundler.rubygems.with_build_args [build_flags] do
|
||||||
|
source.install(spec)
|
||||||
|
end
|
||||||
|
|
||||||
|
msg = spec.post_install_message
|
||||||
|
if msg
|
||||||
|
Bundler.ui.confirm "Post-install message from #{name}:"
|
||||||
|
Bundler.ui.info msg
|
||||||
|
end
|
||||||
|
|
||||||
|
# Write out the binstubs
|
||||||
|
if spec.executables.any?
|
||||||
|
FileUtils.mkdir_p(bin_dir)
|
||||||
|
spec.executables.each do |exe|
|
||||||
|
wrapper = File.join(bin_dir, exe)
|
||||||
|
File.open(wrapper, "w") do |f|
|
||||||
|
stub = generate_stub(spec.name, exe)
|
||||||
|
f.write(<<-EOF)
|
||||||
|
#!#{ruby}
|
||||||
|
#
|
||||||
|
# This file was generated by Nix.
|
||||||
|
#
|
||||||
|
# The application '#{exe}' is installed as part of a gem, and
|
||||||
|
# this file is here to facilitate running it.
|
||||||
|
#
|
||||||
|
|
||||||
|
require 'rubygems'
|
||||||
|
require 'bundler/setup'
|
||||||
|
|
||||||
|
load Gem.bin_path(#{spec.name.inspect}, #{exe.inspect})
|
||||||
|
EOF
|
||||||
|
end
|
||||||
|
|
||||||
|
FileUtils.chmod("+x", wrapper)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Write out metadata
|
||||||
|
meta = "#{out}/nix-support/gem-meta"
|
||||||
|
FileUtils.mkdir_p(meta)
|
||||||
|
FileUtils.ln_s(spec.loaded_from.to_s, "#{meta}/spec")
|
||||||
|
File.open("#{meta}/name", "w") do |f|
|
||||||
|
f.write spec.name
|
||||||
|
end
|
||||||
|
File.open("#{meta}/install-path", "w") do |f|
|
||||||
|
f.write source.install_path.to_s
|
||||||
|
end
|
||||||
|
File.open("#{meta}/require-paths", "w") do |f|
|
||||||
|
f.write spec.require_paths.join(" ")
|
||||||
|
end
|
||||||
|
File.open("#{meta}/executables", "w") do |f|
|
||||||
|
f.write spec.executables.join(" ")
|
||||||
|
end
|
||||||
|
|
||||||
|
# make the lib available during bundler/git installs
|
||||||
|
File.open("#{out}/nix-support/setup-hook", "a") do |f|
|
||||||
|
spec.require_paths.each do |dir|
|
||||||
|
f.puts("addToSearchPath RUBYLIB #{source.install_path}/#{dir}")
|
||||||
|
end
|
||||||
|
end
|
@ -1,4 +0,0 @@
|
|||||||
source "http://rubygems.org"
|
|
||||||
gem "bundix",
|
|
||||||
:git => "https://github.com/cstrahan/bundix.git",
|
|
||||||
:ref => "v1.0.3"
|
|
@ -1,18 +0,0 @@
|
|||||||
GIT
|
|
||||||
remote: https://github.com/cstrahan/bundix.git
|
|
||||||
revision: c879cf901ff8084b4c97aaacfb5ecbdb0f95cc03
|
|
||||||
ref: v1.0.3
|
|
||||||
specs:
|
|
||||||
bundix (1.0.2)
|
|
||||||
thor (~> 0.19.1)
|
|
||||||
|
|
||||||
GEM
|
|
||||||
remote: http://rubygems.org/
|
|
||||||
specs:
|
|
||||||
thor (0.19.1)
|
|
||||||
|
|
||||||
PLATFORMS
|
|
||||||
ruby
|
|
||||||
|
|
||||||
DEPENDENCIES
|
|
||||||
bundix!
|
|
@ -1,9 +1,20 @@
|
|||||||
{ ruby, bundlerEnv }:
|
{ ruby, fetchgit, buildRubyGem, bundler }:
|
||||||
|
|
||||||
bundlerEnv {
|
let
|
||||||
name = "bundix";
|
thor = buildRubyGem {
|
||||||
inherit ruby;
|
gemName = "thor";
|
||||||
gemset = ./gemset.nix;
|
version = "0.19.1";
|
||||||
gemfile = ./Gemfile;
|
type = "gem";
|
||||||
lockfile = ./Gemfile.lock;
|
sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
|
||||||
|
};
|
||||||
|
|
||||||
|
in buildRubyGem {
|
||||||
|
gemName = "bundix";
|
||||||
|
version = "1.0.4";
|
||||||
|
gemPath = [ thor bundler ];
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://github.com/cstrahan/bundix.git";
|
||||||
|
rev = "6dcf1f71c61584f5c9b919ee9df7b0c554862076";
|
||||||
|
sha256 = "1w17bvc9srcgr4ry81ispcj35g9kxihbyknmqp8rnd4h5090b7b2";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"bundix" = {
|
|
||||||
version = "1.0.2";
|
|
||||||
source = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://github.com/cstrahan/bundix.git";
|
|
||||||
rev = "c879cf901ff8084b4c97aaacfb5ecbdb0f95cc03";
|
|
||||||
sha256 = "05kmdnq4qa5h8l3asv05cjpnyplnqqx6hrqybj2cjlzmdxnkkgyj";
|
|
||||||
fetchSubmodules = false;
|
|
||||||
};
|
|
||||||
dependencies = [
|
|
||||||
"thor"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"thor" = {
|
|
||||||
version = "0.19.1";
|
|
||||||
source = {
|
|
||||||
type = "gem";
|
|
||||||
sha256 = "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,312 +1,75 @@
|
|||||||
{ stdenv, runCommand, writeText, writeScript, writeScriptBin, ruby, lib
|
{ stdenv, runCommand, writeText, writeScript, writeScriptBin, ruby, lib
|
||||||
, callPackage, defaultGemConfig, fetchurl, fetchgit, buildRubyGem , bundler_HEAD
|
, callPackage, defaultGemConfig, fetchurl, fetchgit, buildRubyGem, buildEnv
|
||||||
|
, rubygems
|
||||||
, git
|
, git
|
||||||
|
, makeWrapper
|
||||||
|
, bundler
|
||||||
|
, tree
|
||||||
}@defs:
|
}@defs:
|
||||||
|
|
||||||
# This is a work-in-progress.
|
|
||||||
# The idea is that his will replace load-ruby-env.nix.
|
|
||||||
|
|
||||||
{ name, gemset, gemfile, lockfile, ruby ? defs.ruby, gemConfig ? defaultGemConfig
|
{ name, gemset, gemfile, lockfile, ruby ? defs.ruby, gemConfig ? defaultGemConfig
|
||||||
, enableParallelBuilding ? false # TODO: this might not work, given the env-var shinanigans.
|
, postBuild ? null
|
||||||
, postInstall ? null
|
, document ? []
|
||||||
, documentation ? false
|
|
||||||
, meta ? {}
|
, meta ? {}
|
||||||
|
, ignoreCollisions ? false
|
||||||
, ...
|
, ...
|
||||||
}@args:
|
}@args:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
shellEscape = x: "'${lib.replaceChars ["'"] [("'\\'" + "'")] x}'";
|
shellEscape = x: "'${lib.replaceChars ["'"] [("'\\'" + "'")] x}'";
|
||||||
const = x: y: x;
|
importedGemset = import gemset;
|
||||||
bundler = bundler_HEAD.override { inherit ruby; };
|
|
||||||
inherit (builtins) attrValues;
|
|
||||||
|
|
||||||
gemName = attrs: "${attrs.name}-${attrs.version}.gem";
|
|
||||||
|
|
||||||
fetchers.path = attrs: attrs.source.path;
|
|
||||||
fetchers.gem = attrs: fetchurl {
|
|
||||||
url = "${attrs.source.source or "https://rubygems.org"}/downloads/${gemName attrs}";
|
|
||||||
inherit (attrs.source) sha256;
|
|
||||||
};
|
|
||||||
fetchers.git = attrs: fetchgit {
|
|
||||||
inherit (attrs.source) url rev sha256 fetchSubmodules;
|
|
||||||
leaveDotGit = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
applySrc = attrs:
|
|
||||||
attrs // {
|
|
||||||
src = (fetchers."${attrs.source.type}" attrs);
|
|
||||||
};
|
|
||||||
|
|
||||||
applyGemConfigs = attrs:
|
applyGemConfigs = attrs:
|
||||||
if gemConfig ? "${attrs.name}"
|
(if gemConfig ? "${attrs.gemName}"
|
||||||
then attrs // gemConfig."${attrs.name}" attrs
|
then attrs // gemConfig."${attrs.gemName}" attrs
|
||||||
else attrs;
|
else attrs);
|
||||||
|
configuredGemset = lib.flip lib.mapAttrs importedGemset (name: attrs:
|
||||||
needsPatch = attrs:
|
applyGemConfigs (attrs // { gemName = name; })
|
||||||
(attrs ? patches) || (attrs ? prePatch) || (attrs ? postPatch);
|
|
||||||
|
|
||||||
# patch a gem or source tree.
|
|
||||||
# for gems, the gem is unpacked, patched, and then repacked.
|
|
||||||
# see: https://github.com/fedora-ruby/gem-patch/blob/master/lib/rubygems/patcher.rb
|
|
||||||
applyPatches = attrs:
|
|
||||||
if !needsPatch attrs
|
|
||||||
then attrs
|
|
||||||
else attrs // { src =
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = gemName attrs;
|
|
||||||
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
|
|
||||||
buildInputs = [ ruby ] ++ attrs.buildInputs or [];
|
|
||||||
patches = attrs.patches or [ ];
|
|
||||||
prePatch = attrs.prePatch or "true";
|
|
||||||
postPatch = attrs.postPatch or "true";
|
|
||||||
unpackPhase = ''
|
|
||||||
runHook preUnpack
|
|
||||||
|
|
||||||
if [[ -f ${attrs.src} ]]; then
|
|
||||||
isGem=1
|
|
||||||
# we won't know the name of the directory that RubyGems creates,
|
|
||||||
# so we'll just use a glob to find it and move it over.
|
|
||||||
gem unpack ${attrs.src} --target=container
|
|
||||||
cp -r container/* contents
|
|
||||||
rm -r container
|
|
||||||
else
|
|
||||||
cp -r ${attrs.src} contents
|
|
||||||
chmod -R +w contents
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd contents
|
|
||||||
runHook postUnpack
|
|
||||||
'';
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
if [[ -n "$isGem" ]]; then
|
|
||||||
${writeScript "repack.rb" ''
|
|
||||||
#!${ruby}/bin/ruby
|
|
||||||
require 'rubygems'
|
|
||||||
require 'rubygems/package'
|
|
||||||
require 'fileutils'
|
|
||||||
|
|
||||||
Encoding.default_internal = Encoding::UTF_8
|
|
||||||
Encoding.default_external = Encoding::UTF_8
|
|
||||||
|
|
||||||
if Gem::VERSION < '2.0'
|
|
||||||
load "${./package-1.8.rb}"
|
|
||||||
end
|
|
||||||
|
|
||||||
out = ENV['out']
|
|
||||||
files = Dir['**/{.[^\.]*,*}']
|
|
||||||
|
|
||||||
package = Gem::Package.new("${attrs.src}")
|
|
||||||
patched_package = Gem::Package.new(package.spec.file_name)
|
|
||||||
patched_package.spec = package.spec.clone
|
|
||||||
patched_package.spec.files = files
|
|
||||||
|
|
||||||
patched_package.build(false)
|
|
||||||
|
|
||||||
FileUtils.cp(patched_package.spec.file_name, out)
|
|
||||||
''}
|
|
||||||
else
|
|
||||||
cp -r . $out
|
|
||||||
fi
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
instantiate = (attrs:
|
|
||||||
applyPatches (applyGemConfigs (applySrc attrs))
|
|
||||||
);
|
);
|
||||||
|
hasBundler = builtins.hasAttr "bundler" importedGemset;
|
||||||
|
bundler = if hasBundler then gems.bundler else defs.bundler.override (attrs: { inherit ruby; });
|
||||||
|
rubygems = defs.rubygems.override (attrs: { inherit ruby; });
|
||||||
|
gems = lib.flip lib.mapAttrs configuredGemset (name: attrs:
|
||||||
|
buildRubyGem ((removeAttrs attrs ["source"]) // attrs.source // {
|
||||||
|
inherit ruby rubygems;
|
||||||
|
gemName = name;
|
||||||
|
gemPath = map (gemName: gems."${gemName}") (attrs.dependencies or []);
|
||||||
|
}));
|
||||||
|
# We have to normalize the Gemfile.lock, otherwise bundler tries to be
|
||||||
|
# helpful by doing so at run time, causing executables to immediately bail
|
||||||
|
# out. Yes, I'm serious.
|
||||||
|
confFiles = runCommand "gemfile-and-lockfile" {} ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp ${gemfile} $out/Gemfile
|
||||||
|
cp ${lockfile} $out/Gemfile.lock
|
||||||
|
|
||||||
instantiated = lib.flip lib.mapAttrs (import gemset) (name: attrs:
|
cd $out
|
||||||
instantiate (attrs // { inherit name; })
|
chmod +w Gemfile.lock
|
||||||
);
|
source ${rubygems}/nix-support/setup-hook
|
||||||
|
export GEM_PATH=${bundler}/${ruby.gemPath}
|
||||||
needsPreInstall = attrs:
|
${ruby}/bin/ruby -rubygems -e \
|
||||||
(attrs ? preInstall) || (attrs ? buildInputs) || (attrs ? nativeBuildInputs);
|
"require 'bundler'; Bundler.definition.lock('Gemfile.lock')"
|
||||||
|
|
||||||
# TODO: support cross compilation? look at stdenv/generic/default.nix.
|
|
||||||
runPreInstallers = lib.fold (next: acc:
|
|
||||||
if !needsPreInstall next
|
|
||||||
then acc
|
|
||||||
else acc + ''
|
|
||||||
${writeScript "${next.name}-pre-install" ''
|
|
||||||
#!${stdenv.shell}
|
|
||||||
|
|
||||||
export nativeBuildInputs="${toString ((next.nativeBuildInputs or []) ++ (next.buildInputs or []))}"
|
|
||||||
|
|
||||||
source ${stdenv}/setup
|
|
||||||
|
|
||||||
header "running pre-install script for ${next.name}"
|
|
||||||
|
|
||||||
${next.preInstall or ""}
|
|
||||||
|
|
||||||
${ruby}/bin/ruby -e 'print ENV.inspect' > env/${next.name}
|
|
||||||
|
|
||||||
stopNest
|
|
||||||
''}
|
|
||||||
''
|
|
||||||
) "" (attrValues instantiated);
|
|
||||||
|
|
||||||
# copy *.gem to ./gems
|
|
||||||
copyGems = lib.fold (next: acc:
|
|
||||||
if next.source.type == "gem"
|
|
||||||
then acc + "cp ${next.src} gems/${gemName next}\n"
|
|
||||||
else acc
|
|
||||||
) "" (attrValues instantiated);
|
|
||||||
|
|
||||||
runRuby = name: env: command:
|
|
||||||
runCommand name env ''
|
|
||||||
${ruby}/bin/ruby ${writeText name command}
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO: include json_pure, so the version of ruby doesn't matter.
|
|
||||||
# not all rubies have support for JSON built-in,
|
|
||||||
# so we'll convert JSON to ruby expressions.
|
|
||||||
json2rb = writeScript "json2rb" ''
|
|
||||||
#!${ruby}/bin/ruby
|
|
||||||
begin
|
|
||||||
require 'json'
|
|
||||||
rescue LoadError => ex
|
|
||||||
require 'json_pure'
|
|
||||||
end
|
|
||||||
|
|
||||||
puts JSON.parse(STDIN.read).inspect
|
|
||||||
'';
|
'';
|
||||||
|
envPaths = lib.attrValues gems ++ lib.optional (!hasBundler) bundler;
|
||||||
|
bundlerEnv = buildEnv {
|
||||||
|
inherit name ignoreCollisions;
|
||||||
|
paths = envPaths;
|
||||||
|
pathsToLink = [ "/lib" ];
|
||||||
|
postBuild = ''
|
||||||
|
source ${rubygems}/nix-support/setup-hook
|
||||||
|
|
||||||
# dump the instantiated gemset as a ruby expression.
|
${ruby}/bin/ruby ${./gen-bin-stubs.rb} \
|
||||||
serializedGemset = runCommand "gemset.rb" { json = builtins.toJSON instantiated; } ''
|
"${ruby}/bin/ruby" \
|
||||||
printf '%s' "$json" | ${json2rb} > $out
|
"${confFiles}/Gemfile" \
|
||||||
'';
|
"$out/${ruby.gemPath}" \
|
||||||
|
"${bundler}/${ruby.gemPath}" \
|
||||||
# this is a mapping from a source type and identifier (uri/path/etc)
|
${shellEscape (toString envPaths)}
|
||||||
# to the pure store path.
|
'' + lib.optionalString (postBuild != null) postBuild;
|
||||||
# we'll use this from the patched bundler to make fetching sources pure.
|
|
||||||
sources = runRuby "sources.rb" { gemset = serializedGemset; } ''
|
|
||||||
out = ENV['out']
|
|
||||||
gemset = eval(File.read(ENV['gemset']))
|
|
||||||
|
|
||||||
sources = {
|
|
||||||
"git" => { },
|
|
||||||
"path" => { },
|
|
||||||
"gem" => { },
|
|
||||||
"svn" => { }
|
|
||||||
}
|
|
||||||
|
|
||||||
gemset.each_value do |spec|
|
|
||||||
type = spec["source"]["type"]
|
|
||||||
val = spec["src"]
|
|
||||||
key =
|
|
||||||
case type
|
|
||||||
when "gem"
|
|
||||||
spec["name"]
|
|
||||||
when "git"
|
|
||||||
spec["source"]["url"]
|
|
||||||
when "path"
|
|
||||||
spec["source"]["originalPath"]
|
|
||||||
when "svn"
|
|
||||||
nil # TODO
|
|
||||||
end
|
|
||||||
|
|
||||||
sources[type][key] = val if key
|
|
||||||
end
|
|
||||||
|
|
||||||
File.open(out, "wb") do |f|
|
|
||||||
f.print sources.inspect
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
|
|
||||||
# rewrite PATH sources to point into the nix store.
|
|
||||||
purifiedLockfile = runRuby "purifiedLockfile" {} ''
|
|
||||||
out = ENV['out']
|
|
||||||
sources = eval(File.read("${sources}"))
|
|
||||||
paths = sources["path"]
|
|
||||||
|
|
||||||
lockfile = File.read("${lockfile}")
|
|
||||||
|
|
||||||
paths.each_pair do |impure, pure|
|
|
||||||
lockfile.gsub!(/^ remote: #{Regexp.escape(impure)}/, " remote: #{pure}")
|
|
||||||
end
|
|
||||||
|
|
||||||
File.open(out, "wb") do |f|
|
|
||||||
f.print lockfile
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
|
|
||||||
needsBuildFlags = attrs: attrs ? buildFlags;
|
|
||||||
|
|
||||||
mkBuildFlags = spec:
|
|
||||||
"export BUNDLE_BUILD__${lib.toUpper spec.name}='${lib.concatStringsSep " " (map shellEscape spec.buildFlags)}'";
|
|
||||||
|
|
||||||
allBuildFlags =
|
|
||||||
lib.concatStringsSep "\n"
|
|
||||||
(map mkBuildFlags
|
|
||||||
(lib.filter needsBuildFlags (attrValues instantiated)));
|
|
||||||
|
|
||||||
derivation = stdenv.mkDerivation {
|
|
||||||
inherit name;
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
ruby
|
|
||||||
bundler
|
|
||||||
git
|
|
||||||
] ++ args.buildInputs or [];
|
|
||||||
|
|
||||||
phases = [ "installPhase" "fixupPhase" ];
|
|
||||||
|
|
||||||
outputs = [
|
|
||||||
"out" # the installed libs/bins
|
|
||||||
"bundle" # supporting files for bundler
|
|
||||||
];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $bundle
|
|
||||||
export BUNDLE_GEMFILE=$bundle/Gemfile
|
|
||||||
cp ${gemfile} $BUNDLE_GEMFILE
|
|
||||||
cp ${purifiedLockfile} $BUNDLE_GEMFILE.lock
|
|
||||||
|
|
||||||
export NIX_GEM_SOURCES=${sources}
|
|
||||||
export NIX_BUNDLER_GEMPATH=${bundler}/${ruby.gemPath}
|
|
||||||
|
|
||||||
export GEM_HOME=$out/${ruby.gemPath}
|
|
||||||
export GEM_PATH=$NIX_BUNDLER_GEMPATH:$GEM_HOME
|
|
||||||
mkdir -p $GEM_HOME
|
|
||||||
|
|
||||||
${allBuildFlags}
|
|
||||||
|
|
||||||
mkdir gems
|
|
||||||
cp ${bundler}/${bundler.ruby.gemPath}/cache/bundler-*.gem gems
|
|
||||||
${copyGems}
|
|
||||||
|
|
||||||
${lib.optionalString (!documentation) ''
|
|
||||||
mkdir home
|
|
||||||
HOME="$(pwd -P)/home"
|
|
||||||
echo "gem: --no-rdoc --no-ri" > $HOME/.gemrc
|
|
||||||
''}
|
|
||||||
|
|
||||||
mkdir env
|
|
||||||
${runPreInstallers}
|
|
||||||
|
|
||||||
mkdir $out/bin
|
|
||||||
cp ${./monkey_patches.rb} monkey_patches.rb
|
|
||||||
export RUBYOPT="-rmonkey_patches.rb -I $(pwd -P)"
|
|
||||||
bundler install --frozen --binstubs ${lib.optionalString enableParallelBuilding "--jobs $NIX_BUILD_CORES"}
|
|
||||||
RUBYOPT=""
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
inherit postInstall;
|
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit ruby;
|
inherit ruby bundler meta gems;
|
||||||
inherit bundler;
|
|
||||||
|
|
||||||
env = let
|
env = let
|
||||||
irbrc = builtins.toFile "irbrc" ''
|
irbrc = builtins.toFile "irbrc" ''
|
||||||
if not ENV["OLD_IRBRC"].empty?
|
if !(ENV["OLD_IRBRC"].nil? || ENV["OLD_IRBRC"].empty?)
|
||||||
require ENV["OLD_IRBRC"]
|
require ENV["OLD_IRBRC"]
|
||||||
end
|
end
|
||||||
require 'rubygems'
|
require 'rubygems'
|
||||||
@ -314,12 +77,12 @@ let
|
|||||||
'';
|
'';
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
name = "interactive-${name}-environment";
|
name = "interactive-${name}-environment";
|
||||||
nativeBuildInputs = [ ruby derivation ];
|
nativeBuildInputs = [ ruby bundlerEnv ];
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
export BUNDLE_GEMFILE=${derivation.bundle}/Gemfile
|
export BUNDLE_GEMFILE=${confFiles}/Gemfile
|
||||||
export GEM_HOME=${derivation}/${ruby.gemPath}
|
export BUNDLE_PATH=${bundlerEnv}/${ruby.gemPath}
|
||||||
export NIX_BUNDLER_GEMPATH=${bundler}/${ruby.gemPath}
|
export GEM_HOME=${bundlerEnv}/${ruby.gemPath}
|
||||||
export GEM_PATH=$NIX_BUNDLER_GEMPATH:$GEM_HOME
|
export GEM_PATH=${bundlerEnv}/${ruby.gemPath}
|
||||||
export OLD_IRBRC="$IRBRC"
|
export OLD_IRBRC="$IRBRC"
|
||||||
export IRBRC=${irbrc}
|
export IRBRC=${irbrc}
|
||||||
'';
|
'';
|
||||||
@ -331,8 +94,8 @@ let
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit meta;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
in derivation
|
in
|
||||||
|
|
||||||
|
bundlerEnv
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
require 'rbconfig'
|
||||||
|
require 'rubygems'
|
||||||
|
require 'rubygems/specification'
|
||||||
|
require 'fileutils'
|
||||||
|
|
||||||
|
# args/settings
|
||||||
|
out = ENV["out"]
|
||||||
|
ruby = ARGV[0]
|
||||||
|
gemfile = ARGV[1]
|
||||||
|
bundle_path = ARGV[2]
|
||||||
|
bundler_gem_path = ARGV[3]
|
||||||
|
paths = ARGV[4].split
|
||||||
|
|
||||||
|
# generate binstubs
|
||||||
|
FileUtils.mkdir_p("#{out}/bin")
|
||||||
|
paths.each do |path|
|
||||||
|
next unless File.directory?("#{path}/nix-support/gem-meta")
|
||||||
|
|
||||||
|
name = File.read("#{path}/nix-support/gem-meta/name")
|
||||||
|
executables = File.read("#{path}/nix-support/gem-meta/executables").split
|
||||||
|
executables.each do |exe|
|
||||||
|
File.open("#{out}/bin/#{exe}", "w") do |f|
|
||||||
|
f.write(<<-EOF)
|
||||||
|
#!#{ruby}
|
||||||
|
#
|
||||||
|
# This file was generated by Nix.
|
||||||
|
#
|
||||||
|
# The application '#{exe}' is installed as part of a gem, and
|
||||||
|
# this file is here to facilitate running it.
|
||||||
|
#
|
||||||
|
|
||||||
|
ENV["BUNDLE_GEMFILE"] = "#{gemfile}"
|
||||||
|
ENV["BUNDLE_PATH"] = "#{bundle_path}"
|
||||||
|
|
||||||
|
gem_path = ENV["GEM_PATH"]
|
||||||
|
ENV["GEM_PATH"] = "\#{gem_path}\#{":" unless gem_path.nil? || gem_path.empty?}#{bundler_gem_path}"
|
||||||
|
|
||||||
|
require 'rubygems'
|
||||||
|
require 'bundler/setup'
|
||||||
|
|
||||||
|
load Gem.bin_path(#{name.inspect}, #{exe.inspect})
|
||||||
|
EOF
|
||||||
|
FileUtils.chmod("+x", "#{out}/bin/#{exe}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -1,246 +0,0 @@
|
|||||||
require 'bundler'
|
|
||||||
|
|
||||||
# Undo the RUBYOPT trickery.
|
|
||||||
opt = ENV['RUBYOPT'].dup
|
|
||||||
opt.gsub!(/-rmonkey_patches.rb -I [^ ]*/, '')
|
|
||||||
ENV['RUBYOPT'] = opt
|
|
||||||
|
|
||||||
Bundler.module_eval do
|
|
||||||
class << self
|
|
||||||
# mappings from original uris to store paths.
|
|
||||||
def nix_gem_sources
|
|
||||||
@nix_gem_sources ||=
|
|
||||||
begin
|
|
||||||
src = ENV['NIX_GEM_SOURCES']
|
|
||||||
eval(Bundler.read_file(src))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# extract the gemspecs from the gems pulled from Rubygems.
|
|
||||||
def nix_gemspecs
|
|
||||||
@nix_gemspecs ||= Dir.glob("gems/*.gem").map do |path|
|
|
||||||
Bundler.rubygems.spec_from_gem(path)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# swap out ENV
|
|
||||||
def nix_with_env(env, &block)
|
|
||||||
if env
|
|
||||||
old_env = ENV.to_hash
|
|
||||||
begin
|
|
||||||
ENV.replace(env)
|
|
||||||
block.call
|
|
||||||
ensure
|
|
||||||
ENV.replace(old_env)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
block.call
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# map a git uri to a fetchgit store path.
|
|
||||||
def nix_git(uri)
|
|
||||||
Pathname.new(nix_gem_sources["git"][uri])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Bundler::Source::Git::GitProxy.class_eval do
|
|
||||||
def checkout
|
|
||||||
unless path.exist?
|
|
||||||
FileUtils.mkdir_p(path.dirname)
|
|
||||||
FileUtils.cp_r(Bundler.nix_git(@uri).join(".git"), path)
|
|
||||||
system("chmod -R +w #{path}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def copy_to(destination, submodules=false)
|
|
||||||
unless File.exist?(destination.join(".git"))
|
|
||||||
FileUtils.mkdir_p(destination.dirname)
|
|
||||||
FileUtils.cp_r(Bundler.nix_git(@uri), destination)
|
|
||||||
system("chmod -R +w #{destination}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Bundler::Fetcher.class_eval do
|
|
||||||
def use_api
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def fetch_dependency_remote_specs(gem_names)
|
|
||||||
Bundler.ui.debug "Query Gemcutter Dependency Endpoint API: #{gem_names.join(',')}"
|
|
||||||
deps_list = []
|
|
||||||
|
|
||||||
spec_list = gem_names.map do |name|
|
|
||||||
spec = Bundler.nix_gemspecs.detect {|spec| spec.name == name }
|
|
||||||
if spec.nil?
|
|
||||||
msg = "WARNING: Could not find gemspec for '#{name}'"
|
|
||||||
Bundler.ui.warn msg
|
|
||||||
nil
|
|
||||||
else
|
|
||||||
dependencies = spec.dependencies.
|
|
||||||
select {|dep| dep.type != :development}.
|
|
||||||
map do |dep|
|
|
||||||
deps_list << dep.name
|
|
||||||
dep
|
|
||||||
end
|
|
||||||
|
|
||||||
[spec.name, spec.version, spec.platform, dependencies]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
spec_list.compact!
|
|
||||||
|
|
||||||
[spec_list, deps_list.uniq]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Bundler::Source::Rubygems.class_eval do
|
|
||||||
# We copy all gems into $PWD/gems, and this allows RubyGems to find those
|
|
||||||
# gems during installation.
|
|
||||||
def fetchers
|
|
||||||
@fetchers ||= [
|
|
||||||
Bundler::Fetcher.new(URI.parse("file://#{File.expand_path(Dir.pwd)}"))
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
# Look-up gems that were originally from RubyGems.
|
|
||||||
def remote_specs
|
|
||||||
@remote_specs ||=
|
|
||||||
begin
|
|
||||||
lockfile = Bundler::LockfileParser.new(Bundler.read_file(Bundler.default_lockfile))
|
|
||||||
gem_names = lockfile.specs.
|
|
||||||
select {|spec| spec.source.is_a?(Bundler::Source::Rubygems)}.
|
|
||||||
map {|spec| spec.name}
|
|
||||||
idx = Bundler::Index.new
|
|
||||||
api_fetchers.each do |f|
|
|
||||||
Bundler.ui.info "Fetching source index from #{f.uri}"
|
|
||||||
idx.use f.specs(gem_names, self)
|
|
||||||
end
|
|
||||||
idx
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Bundler::Installer.class_eval do
|
|
||||||
|
|
||||||
# WHY:
|
|
||||||
# This allows us to provide a typical Nix experience, where
|
|
||||||
# `buildInputs` and/or `preInstall` may set up the $PATH and other env-vars
|
|
||||||
# as needed. By swapping out the environment per install, we can have finer
|
|
||||||
# grained control than we would have otherwise.
|
|
||||||
#
|
|
||||||
# HOW:
|
|
||||||
# This is a wrapper around the original `install_gem_from_spec`.
|
|
||||||
# We expect that a "pre-installer" might exist at `pre-installers/<gem-name>`,
|
|
||||||
# and if it does, we execute it.
|
|
||||||
# The pre-installer is expected to dump its environment variables as a Ruby
|
|
||||||
# hash to `env/<gem-name>`.
|
|
||||||
# We then swap out the environment for the duration of the install,
|
|
||||||
# and then set it back to what it was originally.
|
|
||||||
alias original_install_gem_from_spec install_gem_from_spec
|
|
||||||
def install_gem_from_spec(spec, standalone = false, worker = 0)
|
|
||||||
env_dump = "env/#{spec.name}"
|
|
||||||
if File.exist?(env_dump)
|
|
||||||
env = eval(Bundler.read_file(env_dump))
|
|
||||||
unless env
|
|
||||||
Bundler.ui.error "The environment variables for #{spec.name} could not be loaded!"
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
Bundler.nix_with_env(env) do
|
|
||||||
original_install_gem_from_spec(spec, standalone, worker)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
original_install_gem_from_spec(spec, standalone, worker)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def generate_bundler_executable_stubs(spec, options = {})
|
|
||||||
return if spec.executables.empty?
|
|
||||||
|
|
||||||
out = ENV['out']
|
|
||||||
|
|
||||||
spec.executables.each do |executable|
|
|
||||||
next if executable == "bundle" || executable == "bundler"
|
|
||||||
|
|
||||||
binstub_path = "#{out}/bin/#{executable}"
|
|
||||||
|
|
||||||
File.open(binstub_path, 'w', 0777 & ~File.umask) do |f|
|
|
||||||
f.print <<-TEXT
|
|
||||||
#!#{RbConfig.ruby}
|
|
||||||
|
|
||||||
old_gemfile = ENV["BUNDLE_GEMFILE"]
|
|
||||||
old_gem_home = ENV["GEM_HOME"]
|
|
||||||
old_gem_path = ENV["GEM_PATH"]
|
|
||||||
|
|
||||||
ENV["BUNDLE_GEMFILE"] =
|
|
||||||
"#{ENV["BUNDLE_GEMFILE"]}"
|
|
||||||
ENV["GEM_HOME"] =
|
|
||||||
"#{ENV["GEM_HOME"]}"
|
|
||||||
ENV["GEM_PATH"] =
|
|
||||||
"#{ENV["NIX_BUNDLER_GEMPATH"]}:\#{ENV["GEM_HOME"]}\#{old_gem_path ? ":\#{old_gem_path}" : ""}}"
|
|
||||||
|
|
||||||
require 'rubygems'
|
|
||||||
require 'bundler/setup'
|
|
||||||
|
|
||||||
ENV["BUNDLE_GEMFILE"] = old_gemfile
|
|
||||||
ENV["GEM_HOME"] = old_gem_home
|
|
||||||
ENV["GEM_PATH"] = old_gem_path
|
|
||||||
|
|
||||||
load Gem.bin_path('#{spec.name}', '#{executable}')
|
|
||||||
TEXT
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Gem::Installer.class_eval do
|
|
||||||
# Make the wrappers automagically use bundler.
|
|
||||||
#
|
|
||||||
# Stage 1.
|
|
||||||
# Set $BUNDLE_GEMFILE so bundler knows what gems to load.
|
|
||||||
# Set $GEM_HOME to the installed gems, because bundler looks there for
|
|
||||||
# non-Rubygems installed gems (e.g. git/svn/path sources).
|
|
||||||
# Set $GEM_PATH to include both bundler and installed gems.
|
|
||||||
#
|
|
||||||
# Stage 2.
|
|
||||||
# Setup bundler, locking down the gem versions.
|
|
||||||
#
|
|
||||||
# Stage 3.
|
|
||||||
# Reset $BUNDLE_GEMFILE, $GEM_HOME, $GEM_PATH.
|
|
||||||
#
|
|
||||||
# Stage 4.
|
|
||||||
# Run the actual executable.
|
|
||||||
def app_script_text(bin_file_name)
|
|
||||||
return <<-TEXT
|
|
||||||
#!#{RbConfig.ruby}
|
|
||||||
#
|
|
||||||
# This file was generated by Nix's RubyGems.
|
|
||||||
#
|
|
||||||
# The application '#{spec.name}' is installed as part of a gem, and
|
|
||||||
# this file is here to facilitate running it.
|
|
||||||
#
|
|
||||||
|
|
||||||
old_gemfile = ENV["BUNDLE_GEMFILE"]
|
|
||||||
old_gem_home = ENV["GEM_HOME"]
|
|
||||||
old_gem_path = ENV["GEM_PATH"]
|
|
||||||
|
|
||||||
ENV["BUNDLE_GEMFILE"] =
|
|
||||||
"#{ENV["BUNDLE_GEMFILE"]}"
|
|
||||||
ENV["GEM_HOME"] =
|
|
||||||
"#{ENV["GEM_HOME"]}"
|
|
||||||
ENV["GEM_PATH"] =
|
|
||||||
"#{ENV["NIX_BUNDLER_GEMPATH"]}:\#{ENV["GEM_HOME"]}\#{old_gem_path ? ":\#{old_gem_path}" : ""}}"
|
|
||||||
|
|
||||||
require 'rubygems'
|
|
||||||
require 'bundler/setup'
|
|
||||||
|
|
||||||
ENV["BUNDLE_GEMFILE"] = old_gemfile
|
|
||||||
ENV["GEM_HOME"] = old_gem_home
|
|
||||||
ENV["GEM_PATH"] = old_gem_path
|
|
||||||
|
|
||||||
load Gem.bin_path('#{spec.name}', '#{bin_file_name}')
|
|
||||||
TEXT
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,29 +0,0 @@
|
|||||||
require 'rubygems/installer'
|
|
||||||
require 'rubygems/builder'
|
|
||||||
|
|
||||||
# Simulate RubyGems 2.0 behavior.
|
|
||||||
|
|
||||||
module Gem::Package
|
|
||||||
def self.new(gem)
|
|
||||||
@gem = gem
|
|
||||||
self
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.extract_files(dir)
|
|
||||||
installer = Gem::Installer.new @gem
|
|
||||||
installer.unpack(dir)
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.build(skip_validation=false)
|
|
||||||
builder = Gem::Builder.new(spec)
|
|
||||||
builder.build
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.spec=(spec)
|
|
||||||
@spec = spec
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.spec
|
|
||||||
@spec ||= Gem::Installer.new(@gem).spec
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,17 +1,10 @@
|
|||||||
{ buildRubyGem, makeWrapper, ruby, coreutils }:
|
{ buildRubyGem, makeWrapper, ruby, coreutils }:
|
||||||
|
|
||||||
buildRubyGem {
|
buildRubyGem rec {
|
||||||
name = "bundler-1.10.6";
|
inherit ruby;
|
||||||
namePrefix = "";
|
name = "${gemName}-${version}";
|
||||||
|
gemName = "bundler";
|
||||||
|
version = "1.10.6";
|
||||||
sha256 = "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv";
|
sha256 = "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv";
|
||||||
dontPatchShebangs = true;
|
dontPatchShebangs = true;
|
||||||
postInstall = ''
|
|
||||||
find $out -type f -perm -0100 | while read f; do
|
|
||||||
substituteInPlace $f \
|
|
||||||
--replace "/usr/bin/env" "${coreutils}/bin/env"
|
|
||||||
done
|
|
||||||
|
|
||||||
wrapProgram $out/bin/bundler \
|
|
||||||
--prefix PATH ":" ${ruby}/bin
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
@ -1,136 +0,0 @@
|
|||||||
{ lib, ruby, rubygemsFun, fetchurl, makeWrapper, git } @ defs:
|
|
||||||
|
|
||||||
lib.makeOverridable (
|
|
||||||
|
|
||||||
{ name
|
|
||||||
, ruby ? defs.ruby
|
|
||||||
, rubygems ? (rubygemsFun ruby)
|
|
||||||
, stdenv ? ruby.stdenv
|
|
||||||
, namePrefix ? "${lib.replaceStrings ["-"] ["_"] ruby.name}" + "-"
|
|
||||||
, buildInputs ? []
|
|
||||||
, doCheck ? false
|
|
||||||
, dontBuild ? true
|
|
||||||
, meta ? {}
|
|
||||||
, gemPath ? []
|
|
||||||
, ...} @ attrs:
|
|
||||||
|
|
||||||
stdenv.mkDerivation (attrs // {
|
|
||||||
inherit ruby rubygems;
|
|
||||||
inherit doCheck;
|
|
||||||
|
|
||||||
buildInputs = [ ruby rubygems makeWrapper git ] ++ buildInputs;
|
|
||||||
|
|
||||||
name = namePrefix + name;
|
|
||||||
|
|
||||||
src = if attrs ? src
|
|
||||||
then attrs.src
|
|
||||||
else fetchurl {
|
|
||||||
url = "http://rubygems.org/downloads/${attrs.name}.gem";
|
|
||||||
inherit (attrs) sha256;
|
|
||||||
};
|
|
||||||
|
|
||||||
phases = [ "unpackPhase" "patchPhase" "buildPhase" "checkPhase" "installPhase" "fixupPhase" ];
|
|
||||||
|
|
||||||
# The source is expected to either be a gem package or a directory.
|
|
||||||
#
|
|
||||||
# - Gem packages are already built, so they don't even need to be unpacked.
|
|
||||||
# They will skip the buildPhase.
|
|
||||||
# - A directory containing the sources will need to go through all of the
|
|
||||||
# usual phases.
|
|
||||||
unpackPhase= ''
|
|
||||||
gemRegex="\.gem"
|
|
||||||
if [[ $src =~ $gemRegex ]]
|
|
||||||
then
|
|
||||||
runHook preUnpack
|
|
||||||
echo "source is a gem package, won't unpack"
|
|
||||||
gempkg=$src
|
|
||||||
dontBuild=1
|
|
||||||
runHook postUnpack
|
|
||||||
else
|
|
||||||
# Fall back to the original thing for everything else.
|
|
||||||
unpackPhase
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
checkPhase = "true";
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
runHook preBuild
|
|
||||||
|
|
||||||
# TODO: Investigate. The complete working tree is touched by fetchgit.
|
|
||||||
if [ -d .git ]; then
|
|
||||||
git reset
|
|
||||||
fi
|
|
||||||
|
|
||||||
gemspec=$(find . -name '*.gemspec')
|
|
||||||
echo "found the following gemspecs:"
|
|
||||||
echo "$gemspec"
|
|
||||||
|
|
||||||
gemspec=$(echo "$gemspec" | head -n1)
|
|
||||||
echo "building $gemspec"
|
|
||||||
|
|
||||||
exec 3>&1
|
|
||||||
output=$(gem build $gemspec | tee >(cat - >&3))
|
|
||||||
exec 3>&-
|
|
||||||
|
|
||||||
gempkg=$(echo "$output" | grep -oP 'File: \K(.*)')
|
|
||||||
|
|
||||||
echo "gem package built: $gempkg"
|
|
||||||
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
# NOTE: This does NOT build the unpacked gem, but installs $src directly.
|
|
||||||
# Gems that have not been downloaded from rubygems.org may need a
|
|
||||||
# separate buildPhase.
|
|
||||||
# --ignore-dependencies is necessary as rubygems otherwise always
|
|
||||||
# connects to the repository, thus breaking pure builds.
|
|
||||||
GEM_HOME=$out/${ruby.gemPath} \
|
|
||||||
gem install \
|
|
||||||
--local \
|
|
||||||
--force \
|
|
||||||
--http-proxy "http://nodtd.invalid" \
|
|
||||||
--ignore-dependencies \
|
|
||||||
--build-root "/" \
|
|
||||||
--backtrace \
|
|
||||||
$gempkg $gemFlags -- $buildFlags
|
|
||||||
|
|
||||||
# Yes, we really do need the $out/${ruby.gemPath}/cache.
|
|
||||||
# This is very important in order for many parts of RubyGems/Bundler to not blow up.
|
|
||||||
# See https://github.com/bundler/bundler/issues/3327
|
|
||||||
|
|
||||||
mkdir -p $out/bin
|
|
||||||
for prog in $out/${ruby.gemPath}/gems/*/bin/*; do
|
|
||||||
makeWrapper $prog $out/bin/$(basename $prog) \
|
|
||||||
--prefix GEM_PATH : "$out/${ruby.gemPath}:$GEM_PATH" \
|
|
||||||
--prefix RUBYLIB : "${rubygems}/lib" \
|
|
||||||
$extraWrapperFlags ''${extraWrapperFlagsArray[@]}
|
|
||||||
done
|
|
||||||
#--prefix RUBYOPT rubygems \
|
|
||||||
|
|
||||||
# looks like useless files which break build repeatability and consume space
|
|
||||||
rm -fv $out/${ruby.gemPath}/doc/*/*/created.rid || true
|
|
||||||
rm -fv $out/${ruby.gemPath}/gems/*/ext/*/mkmf.log || true
|
|
||||||
|
|
||||||
mkdir -p $out/nix-support
|
|
||||||
|
|
||||||
cat > $out/nix-support/setup-hook <<EOF
|
|
||||||
if [[ "\$GEM_PATH" != *$out* ]]; then
|
|
||||||
addToSearchPath GEM_PATH $out/${ruby.gemPath}
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
propagatedBuildInputs = gemPath;
|
|
||||||
propagatedUserEnvPkgs = gemPath;
|
|
||||||
|
|
||||||
passthru.isRubyGem = true;
|
|
||||||
inherit meta;
|
|
||||||
})
|
|
||||||
|
|
||||||
)
|
|
@ -20,7 +20,7 @@
|
|||||||
{ lib, fetchurl, writeScript, ruby, kerberos, libxml2, libxslt, python, stdenv, which
|
{ lib, fetchurl, writeScript, ruby, kerberos, libxml2, libxslt, python, stdenv, which
|
||||||
, libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick
|
, libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick
|
||||||
, pkgconfig , ncurses, xapian, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
|
, pkgconfig , ncurses, xapian, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
|
||||||
, cmake, libssh2, openssl, mysql, darwin
|
, cmake, libssh2, openssl, mysql, darwin, git, perl, gecode_3, curl
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -32,6 +32,14 @@ in
|
|||||||
buildInputs = [ which icu zlib ];
|
buildInputs = [ which icu zlib ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dep-selector-libgecode = attrs: {
|
||||||
|
USE_SYSTEM_GECODE = true;
|
||||||
|
postInstall = ''
|
||||||
|
installPath=$(cat $out/nix-support/gem-meta/install-path)
|
||||||
|
sed -i $installPath/lib/dep-selector-libgecode.rb -e 's@VENDORED_GECODE_DIR =.*@VENDORED_GECODE_DIR = "${gecode_3}"@'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
ffi = attrs: {
|
ffi = attrs: {
|
||||||
buildInputs = [ libffi pkgconfig ];
|
buildInputs = [ libffi pkgconfig ];
|
||||||
};
|
};
|
||||||
@ -40,11 +48,12 @@ in
|
|||||||
buildInputs = [ gpgme ];
|
buildInputs = [ gpgme ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# note that you need version >= v3.16.14.8,
|
||||||
|
# otherwise the gem will fail to link to the libv8 binary.
|
||||||
|
# see: https://github.com/cowboyd/libv8/pull/161
|
||||||
libv8 = attrs: {
|
libv8 = attrs: {
|
||||||
buildInputs = [ which v8 python ];
|
buildInputs = [ which v8 python ];
|
||||||
buildFlags = [
|
buildFlags = [ "--with-system-v8=true" ];
|
||||||
"--with-system-v8=true"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mysql2 = attrs: {
|
mysql2 = attrs: {
|
||||||
@ -73,12 +82,20 @@ in
|
|||||||
buildInputs = lib.optional stdenv.isDarwin darwin.libobjc;
|
buildInputs = lib.optional stdenv.isDarwin darwin.libobjc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patron = attrs: {
|
||||||
|
buildInputs = [ curl ];
|
||||||
|
};
|
||||||
|
|
||||||
pg = attrs: {
|
pg = attrs: {
|
||||||
buildFlags = [
|
buildFlags = [
|
||||||
"--with-pg-config=${postgresql}/bin/pg_config"
|
"--with-pg-config=${postgresql}/bin/pg_config"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
puma = attrs: {
|
||||||
|
buildInputs = [ openssl ];
|
||||||
|
};
|
||||||
|
|
||||||
rmagick = attrs: {
|
rmagick = attrs: {
|
||||||
buildInputs = [ imagemagick pkgconfig ];
|
buildInputs = [ imagemagick pkgconfig ];
|
||||||
};
|
};
|
||||||
@ -95,6 +112,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
sup = attrs: {
|
sup = attrs: {
|
||||||
|
dontBuild = false;
|
||||||
# prevent sup from trying to dynamically install `xapian-ruby`.
|
# prevent sup from trying to dynamically install `xapian-ruby`.
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
cp ${./mkrf_conf_xapian.rb} ext/mkrf_conf_xapian.rb
|
cp ${./mkrf_conf_xapian.rb} ext/mkrf_conf_xapian.rb
|
||||||
@ -118,6 +136,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
tzinfo = attrs: {
|
tzinfo = attrs: {
|
||||||
|
dontBuild = false;
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace lib/tzinfo/zoneinfo_data_source.rb \
|
substituteInPlace lib/tzinfo/zoneinfo_data_source.rb \
|
||||||
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
|
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
|
||||||
@ -130,6 +149,7 @@ in
|
|||||||
|
|
||||||
xapian-ruby = attrs: {
|
xapian-ruby = attrs: {
|
||||||
# use the system xapian
|
# use the system xapian
|
||||||
|
dontBuild = false;
|
||||||
buildInputs = [ xapian pkgconfig zlib ];
|
buildInputs = [ xapian pkgconfig zlib ];
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
cp ${./xapian-Rakefile} Rakefile
|
cp ${./xapian-Rakefile} Rakefile
|
@ -1,69 +0,0 @@
|
|||||||
{ ruby, lib, callPackage, gemFixes, fetchurl, fetchgit, buildRubyGem }@defs:
|
|
||||||
|
|
||||||
# This function builds a set of gems. You first convert your Gemfile to an attrset
|
|
||||||
# called a "gemset", and then use this function to build the gemset.
|
|
||||||
#
|
|
||||||
# A gemset looks like the following:
|
|
||||||
#
|
|
||||||
# {
|
|
||||||
# libv8 = {
|
|
||||||
# version = "3.16.14.7";
|
|
||||||
# src = {
|
|
||||||
# type = "gem";
|
|
||||||
# sha256 = "...";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# therubyracer = {
|
|
||||||
# version = "0.12.1";
|
|
||||||
# dependencies = [ "libv8" ];
|
|
||||||
# src = {
|
|
||||||
# type = "gem";
|
|
||||||
# sha256 = "...";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# If you use these gems as build inputs, the GEM_PATH will be updated
|
|
||||||
# appropriately, and command like `bundle exec` should work out of the box.
|
|
||||||
|
|
||||||
{ gemset, ruby ? defs.ruby, fixes ? gemFixes }@args:
|
|
||||||
|
|
||||||
let
|
|
||||||
const = x: y: x;
|
|
||||||
|
|
||||||
fetchers.path = attrs: attrs.src.path;
|
|
||||||
fetchers.gem = attrs: fetchurl {
|
|
||||||
url = "${attrs.src.source or "https://rubygems.org"}/downloads/${attrs.name}-${attrs.version}.gem";
|
|
||||||
inherit (attrs.src) sha256;
|
|
||||||
};
|
|
||||||
fetchers.git = attrs: fetchgit {
|
|
||||||
inherit (attrs.src) url rev sha256 fetchSubmodules;
|
|
||||||
leaveDotGit = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
instantiate = (attrs:
|
|
||||||
let
|
|
||||||
defaultAttrs = {
|
|
||||||
name = "${attrs.name}-${attrs.version}";
|
|
||||||
inherit ruby gemPath;
|
|
||||||
};
|
|
||||||
gemPath = map (name: gemset''."${name}") (attrs.dependencies or []);
|
|
||||||
fixedAttrs = attrs // (fixes."${attrs.name}" or (const {})) attrs;
|
|
||||||
withSource = fixedAttrs //
|
|
||||||
(if (lib.isDerivation fixedAttrs.src || builtins.isString fixedAttrs.src)
|
|
||||||
then {}
|
|
||||||
else { src = (fetchers."${fixedAttrs.src.type}" fixedAttrs); });
|
|
||||||
|
|
||||||
in
|
|
||||||
buildRubyGem (withSource // defaultAttrs)
|
|
||||||
);
|
|
||||||
|
|
||||||
gemset' = if builtins.isAttrs gemset then gemset else import gemset;
|
|
||||||
|
|
||||||
gemset'' = lib.flip lib.mapAttrs gemset' (name: attrs:
|
|
||||||
if (lib.isDerivation attrs)
|
|
||||||
then attrs
|
|
||||||
else instantiate (attrs // { inherit name; })
|
|
||||||
);
|
|
||||||
|
|
||||||
in gemset''
|
|
@ -1,37 +1,35 @@
|
|||||||
args @ { makeWrapper, ruby, ... }: with args;
|
{ stdenv, lib, fetchurl, makeWrapper, ruby }:
|
||||||
|
|
||||||
rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "rubygems-" + version;
|
name = "rubygems-${version}";
|
||||||
version = "2.4.1";
|
version = "2.4.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://production.cf.rubygems.org/rubygems/${name}.tgz";
|
url = "http://production.cf.rubygems.org/rubygems/${name}.tgz";
|
||||||
sha256 = "0cpr6cx3h74ykpb0cp4p4xg7a8j0bhz3sk271jq69l4mm4zy4h4f";
|
sha256 = "0cpr6cx3h74ykpb0cp4p4xg7a8j0bhz3sk271jq69l4mm4zy4h4f";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ruby makeWrapper];
|
patches = [ ./gem_hook.patch ];
|
||||||
configureFlags = [];
|
|
||||||
|
|
||||||
doInstall = fullDepEntry (''
|
buildInputs = [ruby makeWrapper];
|
||||||
|
|
||||||
|
buildPhase = ":";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
ruby setup.rb --prefix=$out/
|
ruby setup.rb --prefix=$out/
|
||||||
|
|
||||||
wrapProgram $out/bin/gem --prefix RUBYLIB : $out/lib
|
wrapProgram $out/bin/gem --prefix RUBYLIB : $out/lib
|
||||||
find $out -type f -name "*.rb" | xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
|
|
||||||
|
find $out -type f -name "*.rb" |
|
||||||
|
xargs sed -i "s@/usr/bin/env@$(type -p env)@g"
|
||||||
|
|
||||||
mkdir -pv $out/nix-support
|
mkdir -pv $out/nix-support
|
||||||
cat > $out/nix-support/setup-hook <<EOF
|
cat > $out/nix-support/setup-hook <<EOF
|
||||||
export RUBYOPT=rubygems
|
export RUBYOPT=rubygems
|
||||||
addToSearchPath RUBYLIB $out/lib
|
addToSearchPath RUBYLIB $out/lib
|
||||||
EOF'') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
|
EOF
|
||||||
|
'';
|
||||||
/* doConfigure should be specified separately */
|
|
||||||
phaseNames = ["doPatch" "doInstall"];
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Ruby gems package collection";
|
description = "A package management framework for Ruby";
|
||||||
longDescription = ''
|
|
||||||
Nix can create nix packages from gems.
|
|
||||||
|
|
||||||
To use it by installing gem-nix package.
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./gem_hook.patch ];
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
, bdbSupport ? false, db
|
, bdbSupport ? false, db
|
||||||
, ldapSupport ? !stdenv.isCygwin, openldap
|
, ldapSupport ? !stdenv.isCygwin, openldap
|
||||||
, libiconv
|
, libiconv
|
||||||
|
, cyrus_sasl, autoreconfHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert sslSupport -> openssl != null;
|
assert sslSupport -> openssl != null;
|
||||||
@ -19,19 +20,25 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0bn81pfscy9yjvbmyx442svf43s6dhrdfcsnkpxz43fai5qk5kx6";
|
sha256 = "0bn81pfscy9yjvbmyx442svf43s6dhrdfcsnkpxz43fai5qk5kx6";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = ''
|
patches = optional stdenv.isFreeBSD ./include-static-dependencies.patch;
|
||||||
--with-apr=${apr} --with-expat=${expat}
|
|
||||||
${optionalString (!stdenv.isCygwin) "--with-crypto"}
|
buildInputs = optional stdenv.isFreeBSD autoreconfHook;
|
||||||
${stdenv.lib.optionalString sslSupport "--with-openssl=${openssl}"}
|
|
||||||
${stdenv.lib.optionalString bdbSupport "--with-berkeley-db=${db}"}
|
configureFlags = [ "--with-apr=${apr}" "--with-expat=${expat}" ]
|
||||||
${stdenv.lib.optionalString ldapSupport "--with-ldap"}${
|
++ optional (!stdenv.isCygwin) "--with-crypto"
|
||||||
optionalString stdenv.isCygwin "--without-pgsql --without-sqlite2 --without-sqlite3 --without-freetds --without-berkeley-db --without-crypto"}
|
++ optional sslSupport "--with-openssl=${openssl}"
|
||||||
'';
|
++ optional bdbSupport "--with-berkeley-db=${db}"
|
||||||
|
++ optional ldapSupport "--with-ldap=ldap"
|
||||||
|
++ optionals stdenv.isCygwin
|
||||||
|
[ "--without-pgsql" "--without-sqlite2" "--without-sqlite3"
|
||||||
|
"--without-freetds" "--without-berkeley-db" "--without-crypto" ]
|
||||||
|
;
|
||||||
|
|
||||||
propagatedBuildInputs = [ makeWrapper apr expat libiconv ]
|
propagatedBuildInputs = [ makeWrapper apr expat libiconv ]
|
||||||
++ optional sslSupport openssl
|
++ optional sslSupport openssl
|
||||||
++ optional bdbSupport db
|
++ optional bdbSupport db
|
||||||
++ optional ldapSupport openldap;
|
++ optional ldapSupport openldap
|
||||||
|
++ optional stdenv.isFreeBSD cyrus_sasl;
|
||||||
|
|
||||||
# Give apr1 access to sed for runtime invocations
|
# Give apr1 access to sed for runtime invocations
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/build/apu-conf.m4 b/build/apu-conf.m4
|
||||||
|
index 8943f10..aa44305 100644
|
||||||
|
--- a/build/apu-conf.m4
|
||||||
|
+++ b/build/apu-conf.m4
|
||||||
|
@@ -279,6 +279,7 @@ AC_ARG_WITH(ldap,[ --with-ldap=library ldap library to use],
|
||||||
|
APU_FIND_LDAPLIB("ldap", "-llber -lresolv -lsocket -lnsl")
|
||||||
|
APU_FIND_LDAPLIB("ldap", "-ldl -lpthread")
|
||||||
|
else
|
||||||
|
+ APU_FIND_LDAPLIB($LIBLDAP, "-llber -lcrypto -lssl -lsasl2")
|
||||||
|
APU_FIND_LDAPLIB($LIBLDAP)
|
||||||
|
APU_FIND_LDAPLIB($LIBLDAP, "-lresolv")
|
||||||
|
APU_FIND_LDAPLIB($LIBLDAP, "-lresolv -lsocket -lnsl")
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
versionMajor = "2.18";
|
versionMajor = "2.18";
|
||||||
versionMinor = "0";
|
versionMinor = "1";
|
||||||
moduleName = "at-spi2-atk";
|
moduleName = "at-spi2-atk";
|
||||||
name = "${moduleName}-${versionMajor}.${versionMinor}";
|
name = "${moduleName}-${versionMajor}.${versionMinor}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
|
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
|
||||||
sha256 = "0xgkrnx04vaklbkzc7bzym9s0qhj8aiz4knqlxgx3vxnacsb6vaa";
|
sha256 = "0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ python pkgconfig popt atk libX11 libICE xorg.libXtst libXi
|
buildInputs = [ python pkgconfig popt atk libX11 libICE xorg.libXtst libXi
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
versionMajor = "2.18";
|
versionMajor = "2.18";
|
||||||
versionMinor = "0";
|
versionMinor = "3";
|
||||||
moduleName = "at-spi2-core";
|
moduleName = "at-spi2-core";
|
||||||
name = "${moduleName}-${versionMajor}.${versionMinor}";
|
name = "${moduleName}-${versionMajor}.${versionMinor}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
|
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
|
||||||
sha256 = "0xna0gnlqvzy6209klirywcm7ianazshg6pkk828g07bnrywgvhs";
|
sha256 = "0afn4x04j5l352vj0dccb2hkpzg3l2vhr8h1yv89fpqmjkfnm8md";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
@ -36,12 +36,15 @@ stdenv.mkDerivation rec {
|
|||||||
avahi-core/socket.c
|
avahi-core/socket.c
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall =
|
||||||
# Maintain compat for mdnsresponder and howl
|
# Maintain compat for mdnsresponder and howl
|
||||||
${if withLibdnssdCompat then "ln -s avahi-compat-libdns_sd/dns_sd.h $out/include/dns_sd.h" else ""}
|
stdenv.lib.optionalString withLibdnssdCompat ''
|
||||||
|
ln -s avahi-compat-libdns_sd/dns_sd.h "$out/include/dns_sd.h"
|
||||||
|
'';
|
||||||
|
/* # these don't exist (anymore?)
|
||||||
ln -s avahi-compat-howl $out/include/howl
|
ln -s avahi-compat-howl $out/include/howl
|
||||||
ln -s avahi-compat-howl.pc $out/lib/pkgconfig/howl.pc
|
ln -s avahi-compat-howl.pc $out/lib/pkgconfig/howl.pc
|
||||||
'';
|
*/
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "mDNS/DNS-SD implementation";
|
description = "mDNS/DNS-SD implementation";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, icu, expat, zlib, bzip2, python, fixDarwinDylibNames
|
{ stdenv, icu, expat, zlib, bzip2, python, fixDarwinDylibNames
|
||||||
, toolset ? if stdenv.isDarwin then "clang" else null
|
, toolset ? if stdenv.cc.isClang then "clang" else null
|
||||||
, enableRelease ? true
|
, enableRelease ? true
|
||||||
, enableDebug ? false
|
, enableDebug ? false
|
||||||
, enableSingleThreaded ? false
|
, enableSingleThreaded ? false
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, stdenv, fetchurl, openssl, kerberos, db, gettext, pam, fixDarwinDylibNames }:
|
{ lib, stdenv, fetchurl, openssl, kerberos, db, gettext, pam, fixDarwinDylibNames, autoreconfHook }:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -11,11 +11,18 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ openssl db gettext kerberos ]
|
[ openssl db gettext kerberos ]
|
||||||
|
++ lib.optional stdenv.isFreeBSD autoreconfHook
|
||||||
++ lib.optional stdenv.isLinux pam
|
++ lib.optional stdenv.isLinux pam
|
||||||
++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
||||||
|
|
||||||
patches = [ ./missing-size_t.patch ]; # https://bugzilla.redhat.com/show_bug.cgi?id=906519
|
patches = [
|
||||||
patchFlags = "-p0";
|
./missing-size_t.patch # https://bugzilla.redhat.com/show_bug.cgi?id=906519
|
||||||
|
] ++ lib.optional stdenv.isFreeBSD (
|
||||||
|
fetchurl {
|
||||||
|
url = "http://www.linuxfromscratch.org/patches/blfs/svn/cyrus-sasl-2.1.26-fixes-3.patch";
|
||||||
|
sha256 = "1vh4pc2rxxm6yvykx0b7kg09jbcwcxwv5rs6yq2ag3y8p6a9x86w";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-openssl=${openssl}"
|
"--with-openssl=${openssl}"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Gentoo bug #458790
|
Gentoo bug #458790
|
||||||
--- include/sasl.h 2012-10-12 17:05:48.000000000 +0300
|
--- a/include/sasl.h 2012-10-12 17:05:48.000000000 +0300
|
||||||
+++ include/sasl.h 2013-02-23 16:56:44.648786268 +0200
|
+++ b/include/sasl.h 2013-02-23 16:56:44.648786268 +0200
|
||||||
@@ -121,6 +121,9 @@
|
@@ -121,6 +121,9 @@
|
||||||
#ifndef SASL_H
|
#ifndef SASL_H
|
||||||
#define SASL_H 1
|
#define SASL_H 1
|
||||||
|
22
pkgs/development/libraries/db/clang-4.8.patch
Normal file
22
pkgs/development/libraries/db/clang-4.8.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/dbinc/atomic.h b/dbinc/atomic.h
|
||||||
|
index 0034dcc..fa7ba93 100644
|
||||||
|
--- a/dbinc/atomic.h
|
||||||
|
+++ b/dbinc/atomic.h
|
||||||
|
@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val;
|
||||||
|
#define atomic_inc(env, p) __atomic_inc(p)
|
||||||
|
#define atomic_dec(env, p) __atomic_dec(p)
|
||||||
|
#define atomic_compare_exchange(env, p, o, n) \
|
||||||
|
- __atomic_compare_exchange((p), (o), (n))
|
||||||
|
+ __db_atomic_compare_exchange((p), (o), (n))
|
||||||
|
static inline int __atomic_inc(db_atomic_t *p)
|
||||||
|
{
|
||||||
|
int temp;
|
||||||
|
@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p)
|
||||||
|
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
|
||||||
|
* which configure could be changed to use.
|
||||||
|
*/
|
||||||
|
-static inline int __atomic_compare_exchange(
|
||||||
|
+static inline int __db_atomic_compare_exchange(
|
||||||
|
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
|
||||||
|
{
|
||||||
|
atomic_value_t was;
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import ./generic.nix (args // rec {
|
import ./generic.nix (args // rec {
|
||||||
version = "4.8.30";
|
version = "4.8.30";
|
||||||
|
extraPatches = [ ./clang-4.8.patch ];
|
||||||
sha256 = "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0";
|
sha256 = "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0";
|
||||||
branch = "4.8";
|
branch = "4.8";
|
||||||
})
|
})
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
import ./generic.nix (args // rec {
|
import ./generic.nix (args // rec {
|
||||||
version = "5.3.28";
|
version = "5.3.28";
|
||||||
sha256 = "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0";
|
sha256 = "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0";
|
||||||
extraPatches = [ ./osx.patch ];
|
extraPatches = [ ./clang-5.3.patch ];
|
||||||
branch = "5.3";
|
branch = "5.3";
|
||||||
})
|
})
|
||||||
|
@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
|
|||||||
(if cxxSupport then "--enable-cxx" else "--disable-cxx")
|
(if cxxSupport then "--enable-cxx" else "--disable-cxx")
|
||||||
(if compat185 then "--enable-compat185" else "--disable-compat185")
|
(if compat185 then "--enable-compat185" else "--disable-compat185")
|
||||||
"--enable-dbm"
|
"--enable-dbm"
|
||||||
|
(stdenv.lib.optionalString stdenv.isFreeBSD "--with-pic")
|
||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
@ -1,28 +1,20 @@
|
|||||||
{stdenv, fetchurl, fetchpatch, zlib, expat}:
|
{ stdenv, fetchurl, fetchpatch, zlib, expat, gettext }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "exiv2-0.24";
|
name = "exiv2-0.25";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.exiv2.org/${name}.tar.gz";
|
url = "http://www.exiv2.org/${name}.tar.gz";
|
||||||
sha256 = "13pgvz14kyapxl89pxjaq3274k56d5lzfckpg1g9z7gvqzk4797l";
|
sha256 = "197g6vgcpyf9p2cwn5p5hb1r714xsk1v4p96f5pv1z8mi9vzq2y8";
|
||||||
};
|
};
|
||||||
|
postPatch = "patchShebangs ./src/svn_version.sh";
|
||||||
|
|
||||||
patches = [(fetchpatch {
|
nativeBuildInputs = [ gettext ];
|
||||||
name = "CVE-2014-9449.diff";
|
propagatedBuildInputs = [ zlib expat ];
|
||||||
url = "http://dev.exiv2.org/projects/exiv2/repository/revisions/3264/diff?format=diff&rev_to=3263";
|
|
||||||
sha256 = "02w0fksl966d4v6bkg6rq3wmvv8xjpvfp47qr0nv1xq0bphxqzag";
|
|
||||||
})];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [zlib expat];
|
|
||||||
|
|
||||||
# configure script finds zlib&expat but it thinks that they're in /usr
|
|
||||||
configureFlags = "--with-zlib=${zlib} --with-expat=${expat}";
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://www.exiv2.org/;
|
homepage = http://www.exiv2.org/;
|
||||||
description = "A library and command-line utility to manage image metadata";
|
description = "A library and command-line utility to manage image metadata";
|
||||||
maintainers = [stdenv.lib.maintainers.urkud];
|
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patches = [ ./CVE-2015-1283.patch ];
|
patches = [ ./CVE-2015-1283.patch ];
|
||||||
|
|
||||||
|
configureFlags = stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://www.libexpat.org/;
|
homepage = http://www.libexpat.org/;
|
||||||
description = "A stream-oriented XML parser library written in C";
|
description = "A stream-oriented XML parser library written in C";
|
||||||
|
@ -235,11 +235,11 @@ assert x11grabExtlib -> libX11 != null && libXv != null;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "ffmpeg-full-${version}";
|
name = "ffmpeg-full-${version}";
|
||||||
version = "2.8.1";
|
version = "2.8.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.bz2";
|
url = "https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.bz2";
|
||||||
sha256 = "1qk6g2h993i0wgs9d2p3ahdc5bqr03mp74bk6r1zj6pfinr5mvg2";
|
sha256 = "0nk1j3i7qc1k3dygpq74pxq382vqg9kaf2hxl9jfw8rkad8rjv9v";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''patchShebangs .'';
|
patchPhase = ''patchShebangs .'';
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ callPackage, ... } @ args:
|
{ callPackage, ... } @ args:
|
||||||
|
|
||||||
callPackage ./generic.nix (args // rec {
|
callPackage ./generic.nix (args // rec {
|
||||||
version = "${branch}.1";
|
version = "${branch}.5";
|
||||||
branch = "2.8";
|
branch = "2.8";
|
||||||
sha256 = "1qk6g2h993i0wgs9d2p3ahdc5bqr03mp74bk6r1zj6pfinr5mvg2";
|
sha256 = "0nk1j3i7qc1k3dygpq74pxq382vqg9kaf2hxl9jfw8rkad8rjv9v";
|
||||||
})
|
})
|
||||||
|
@ -3,14 +3,14 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
ver_maj = "2.32";
|
ver_maj = "2.32";
|
||||||
ver_min = "1";
|
ver_min = "3";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gdk-pixbuf-${ver_maj}.${ver_min}";
|
name = "gdk-pixbuf-${ver_maj}.${ver_min}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz";
|
url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz";
|
||||||
sha256 = "1g7kjxv67jcdasi14n7jan4icrnnppd1m99wrdmpv32k4m7vfcj4";
|
sha256 = "0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb";
|
||||||
};
|
};
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
21
pkgs/development/libraries/gecode/3.nix
Normal file
21
pkgs/development/libraries/gecode/3.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ stdenv, fetchurl, perl }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "gecode-${version}";
|
||||||
|
version = "3.7.3";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://www.gecode.org/download/${name}.tar.gz";
|
||||||
|
sha256 = "0k45jas6p3cyldgyir1314ja3174sayn2h2ly3z9b4dl3368pk77";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ perl ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
license = licenses.mit;
|
||||||
|
homepage = http://www.gecode.org;
|
||||||
|
description = "Toolkit for developing constraint-based systems";
|
||||||
|
platforms = platforms.all;
|
||||||
|
maintainers = [ maintainers.manveru ];
|
||||||
|
};
|
||||||
|
}
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
assert !stdenv.isDarwin -> stdenv.cc.isGNU;
|
assert stdenv.isFreeBSD || stdenv.isDarwin || stdenv.cc.isGNU;
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# * Add gio-module-fam
|
# * Add gio-module-fam
|
||||||
@ -63,8 +63,12 @@ stdenv.mkDerivation rec {
|
|||||||
propagatedBuildInputs = [ pcre zlib libffi libiconv ]
|
propagatedBuildInputs = [ pcre zlib libffi libiconv ]
|
||||||
++ libintlOrEmpty;
|
++ libintlOrEmpty;
|
||||||
|
|
||||||
|
LIBELF_CFLAGS = optional stdenv.isFreeBSD "-I${libelf}";
|
||||||
|
LIBELF_LIBS = optional stdenv.isFreeBSD "-L${libelf} -lelf";
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
optional stdenv.isDarwin "--disable-compile-warnings"
|
optional stdenv.isDarwin "--disable-compile-warnings"
|
||||||
|
++ optional stdenv.isFreeBSD "--with-libiconv=gnu"
|
||||||
++ optional stdenv.isSunOS ["--disable-modular-tests" "--with-libiconv"];
|
++ optional stdenv.isSunOS ["--disable-modular-tests" "--with-libiconv"];
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin " -lintl"
|
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin " -lintl"
|
||||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation {
|
|||||||
enableParallelBuilding = !guileBindings;
|
enableParallelBuilding = !guileBindings;
|
||||||
|
|
||||||
buildInputs = [ lzo lzip nettle libtasn1 libidn p11_kit zlib gmp autogen ]
|
buildInputs = [ lzo lzip nettle libtasn1 libidn p11_kit zlib gmp autogen ]
|
||||||
++ lib.optional (stdenv.isDarwin) libiconv
|
++ lib.optional (stdenv.isFreeBSD || stdenv.isDarwin) libiconv
|
||||||
++ lib.optional (tpmSupport && stdenv.isLinux) trousers
|
++ lib.optional (tpmSupport && stdenv.isLinux) trousers
|
||||||
++ [ unbound ]
|
++ [ unbound ]
|
||||||
++ lib.optional guileBindings guile;
|
++ lib.optional guileBindings guile;
|
||||||
|
@ -8,11 +8,11 @@ assert xineramaSupport -> xorg.libXinerama != null;
|
|||||||
assert cupsSupport -> cups != null;
|
assert cupsSupport -> cups != null;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gtk+-2.24.28";
|
name = "gtk+-2.24.29";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
|
url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
|
||||||
sha256 = "0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj";
|
sha256 = "1f1ifv1ijrda4jx831l24d3ww65v5gf56r464fi11n6k02bcah87";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
# (icu is a ~30 MB dependency, the rest is very small in comparison)
|
# (icu is a ~30 MB dependency, the rest is very small in comparison)
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "harfbuzz-1.0.6";
|
name = "harfbuzz-1.1.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
|
url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
|
||||||
sha256 = "09ivk5m4y09ar4zi9r6db7gp234cy05h0ach7w22g9kqvkxsf5pn";
|
sha256 = "07s6z3hbrb4rdfgzmln169wxz4nm5y7qbr02ik5c7drxpn85fb2a";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = "--disable-debug" +
|
configureFlags = "--disable-debug" +
|
||||||
stdenv.lib.optionalString stdenv.isDarwin " --enable-rpath";
|
stdenv.lib.optionalString (stdenv.isFreeBSD || stdenv.isDarwin) " --enable-rpath";
|
||||||
|
|
||||||
# remove dependency on bootstrap-tools in early stdenv build
|
# remove dependency on bootstrap-tools in early stdenv build
|
||||||
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
|
@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ autoreconfHook pkgconfig python perl yacc flex ]
|
nativeBuildInputs = [ autoreconfHook pkgconfig python perl yacc flex ]
|
||||||
++ (with perlPackages; [ JSON ])
|
++ (with perlPackages; [ JSON ])
|
||||||
++ optional (!libOnly) texinfo;
|
++ optional (!libOnly) texinfo;
|
||||||
buildInputs = [ libcap_ng sqlite openssl db libedit ]
|
buildInputs = optionals (!stdenv.isFreeBSD) [ libcap_ng db ]
|
||||||
|
++ [ sqlite openssl libedit ]
|
||||||
++ optionals (!libOnly) [ openldap pam ];
|
++ optionals (!libOnly) [ openldap pam ];
|
||||||
|
|
||||||
## ugly, X should be made an option
|
## ugly, X should be made an option
|
||||||
@ -31,14 +32,15 @@ stdenv.mkDerivation rec {
|
|||||||
"--sysconfdir=/etc"
|
"--sysconfdir=/etc"
|
||||||
"--localstatedir=/var"
|
"--localstatedir=/var"
|
||||||
"--enable-hdb-openldap-module"
|
"--enable-hdb-openldap-module"
|
||||||
"--with-capng"
|
|
||||||
"--with-sqlite3=${sqlite}"
|
"--with-sqlite3=${sqlite}"
|
||||||
"--with-berkeley-db=${db}"
|
|
||||||
"--with-libedit=${libedit}"
|
"--with-libedit=${libedit}"
|
||||||
"--with-openssl=${openssl}"
|
"--with-openssl=${openssl}"
|
||||||
"--without-x"
|
"--without-x"
|
||||||
|
"--with-berkeley-db=${db}"
|
||||||
] ++ optionals (!libOnly) [
|
] ++ optionals (!libOnly) [
|
||||||
"--with-openldap=${openldap}"
|
"--with-openldap=${openldap}"
|
||||||
|
] ++ optionals (!stdenv.isFreeBSD) [
|
||||||
|
"--with-capng"
|
||||||
];
|
];
|
||||||
|
|
||||||
buildPhase = optionalString libOnly ''
|
buildPhase = optionalString libOnly ''
|
||||||
@ -83,7 +85,7 @@ stdenv.mkDerivation rec {
|
|||||||
meta = {
|
meta = {
|
||||||
description = "An implementation of Kerberos 5 (and some more stuff)";
|
description = "An implementation of Kerberos 5 (and some more stuff)";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux ++ platforms.freebsd;
|
||||||
maintainers = with maintainers; [ wkennington ];
|
maintainers = with maintainers; [ wkennington ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -11,24 +11,22 @@ in
|
|||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "${type}krb5-${version}";
|
name = "${type}krb5-${version}";
|
||||||
version = "1.13.2";
|
version = "1.14";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}dist/krb5/1.13/krb5-${version}-signed.tar";
|
url = "${meta.homepage}dist/krb5/1.14/krb5-${version}.tar.gz";
|
||||||
sha256 = "1qbdzyrws7d0q4filsibh28z54pd5l987jr0ygv43iq9085w6a75";
|
sha256 = "1sgr61cnkgc5xazijaww6wpn5fnxl9vyj9ixk3r3y7ikv3x0gnyf";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
configureFlags = optional stdenv.isFreeBSD ''WARN_CFLAGS=""'';
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig perl yacc ]
|
nativeBuildInputs = [ pkgconfig perl yacc ]
|
||||||
# Provides the mig command used by the build scripts
|
# Provides the mig command used by the build scripts
|
||||||
++ stdenv.lib.optional stdenv.isDarwin bootstrap_cmds;
|
++ optional stdenv.isDarwin bootstrap_cmds;
|
||||||
buildInputs = [ openssl ]
|
buildInputs = [ openssl ]
|
||||||
++ optionals (!libOnly) [ openldap libedit ];
|
++ optionals (!libOnly) [ openldap libedit ];
|
||||||
|
|
||||||
unpackPhase = ''
|
preConfigure = "cd ./src";
|
||||||
tar -xf $src
|
|
||||||
tar -xzf krb5-${version}.tar.gz
|
|
||||||
cd krb5-${version}/src
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = optionalString libOnly ''
|
buildPhase = optionalString libOnly ''
|
||||||
(cd util; make -j $NIX_BUILD_CORES)
|
(cd util; make -j $NIX_BUILD_CORES)
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, udev, valgrind }:
|
{ stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, udev, valgrind }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libdrm-2.4.65";
|
name = "libdrm-2.4.66";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2";
|
url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2";
|
||||||
sha256 = "71960ac8bde7d710992b1bc8879935e8300a870c36bd06f22412d0447e3d96c4";
|
sha256 = "79cb8e988749794edfb2d777b298d5292eff353bbbb71ed813589e61d2bc2d76";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
@ -11,23 +11,21 @@ stdenv.mkDerivation rec {
|
|||||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||||
NROFF = "${groff}/bin/nroff";
|
NROFF = "${groff}/bin/nroff";
|
||||||
|
|
||||||
patches = if stdenv.isCygwin then [
|
patches = [ ./01-cygwin.patch ./freebsd-wchar.patch ];
|
||||||
./01-cygwin.patch
|
|
||||||
] else null;
|
propagatedBuildInputs = [ ncurses ];
|
||||||
|
|
||||||
|
configureFlags = [ "--enable-widec" ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
find $out/lib -type f | grep '\.\(la\|pc\)''$' | xargs sed -i \
|
find $out/lib -type f | grep '\.\(la\|pc\)''$' | xargs sed -i \
|
||||||
-e 's,-lncurses[a-z]*,-L${ncurses}/lib -lncursesw,g'
|
-e 's,-lncurses[a-z]*,-L${ncurses}/lib -lncursesw,g'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags = [ "--enable-widec" ];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ ncurses ];
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = "http://www.thrysoee.dk/editline/";
|
homepage = "http://www.thrysoee.dk/editline/";
|
||||||
description = "A port of the NetBSD Editline library (libedit)";
|
description = "A port of the NetBSD Editline library (libedit)";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
13
pkgs/development/libraries/libedit/freebsd-wchar.patch
Normal file
13
pkgs/development/libraries/libedit/freebsd-wchar.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/src/chartype.h b/src/chartype.h
|
||||||
|
index 0beee17..4ac86f3 100644
|
||||||
|
--- a/src/chartype.h
|
||||||
|
+++ b/src/chartype.h
|
||||||
|
@@ -44,7 +44,7 @@
|
||||||
|
* supports non-BMP code points without requiring UTF-16, but nothing
|
||||||
|
* seems to actually advertise this properly, despite Unicode 3.1 having
|
||||||
|
* been around since 2001... */
|
||||||
|
-#if !defined(__NetBSD__) && !defined(__sun) && !(defined(__APPLE__) && defined(__MACH__)) && !defined(__OpenBSD__)
|
||||||
|
+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__sun) && !(defined(__APPLE__) && defined(__MACH__)) && !defined(__OpenBSD__)
|
||||||
|
#ifndef __STDC_ISO_10646__
|
||||||
|
/* In many places it is assumed that the first 127 code points are ASCII
|
||||||
|
* compatible, so ensure wchar_t indeed does ISO 10646 and not some other
|
37
pkgs/development/libraries/libelf-freebsd/default.nix
Normal file
37
pkgs/development/libraries/libelf-freebsd/default.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{ fetchsvn, stdenv, gnum4, tet }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (rec {
|
||||||
|
version = "3258";
|
||||||
|
name = "libelf-freebsd-${version}";
|
||||||
|
|
||||||
|
src = fetchsvn {
|
||||||
|
url = svn://svn.code.sf.net/p/elftoolchain/code/trunk;
|
||||||
|
rev = (stdenv.lib.strings.toInt version);
|
||||||
|
name = "elftoolchain-${version}";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ gnum4 tet ];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:$PATH # use BSD install(1) instead of coreutils and make(1) instead of GNU Make
|
||||||
|
cp -vr ${tet} test/tet/tet3.8
|
||||||
|
chmod -R a+w test/tet/tet3.8
|
||||||
|
make libelf
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
cp -vr libelf $out
|
||||||
|
cp -vr common/. $out/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Essential compilation tools and libraries for building and analyzing ELF based program images";
|
||||||
|
|
||||||
|
homepage = https://sourceforge.net/p/elftoolchain/wiki/Home/;
|
||||||
|
|
||||||
|
license = stdenv.lib.licenses.bsd2;
|
||||||
|
|
||||||
|
platforms = stdenv.lib.platforms.freebsd;
|
||||||
|
maintainers = [ ];
|
||||||
|
};
|
||||||
|
})
|
@ -1,4 +1,4 @@
|
|||||||
{ fetchurl, stdenv }:
|
{ fetchurl, stdenv, lib }:
|
||||||
|
|
||||||
assert (!stdenv.isLinux);
|
assert (!stdenv.isLinux);
|
||||||
|
|
||||||
@ -10,16 +10,18 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "04q6lgl3kglmmhw59igq1n7v3rp1rpkypl366cy1k1yn2znlvckj";
|
sha256 = "04q6lgl3kglmmhw59igq1n7v3rp1rpkypl366cy1k1yn2znlvckj";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = if stdenv.isCygwin then [
|
patches = lib.optionals stdenv.isCygwin [
|
||||||
./libiconv-1.14-reloc.patch
|
./libiconv-1.14-reloc.patch
|
||||||
./libiconv-1.14-wchar.patch
|
./libiconv-1.14-wchar.patch
|
||||||
] else null;
|
];
|
||||||
|
|
||||||
|
configureFlags =
|
||||||
# On Cygwin, Libtool produces a `.dll.a', which is not a "real" DLL
|
# On Cygwin, Libtool produces a `.dll.a', which is not a "real" DLL
|
||||||
# (Windows' linker would need to be used somehow to produce an actual
|
# (Windows' linker would need to be used somehow to produce an actual
|
||||||
# DLL.) Thus, build the static library too, and this is what Gettext
|
# DLL.) Thus, build the static library too, and this is what Gettext
|
||||||
# will actually use.
|
# will actually use.
|
||||||
configureFlags = if stdenv.isCygwin then [ "--enable-static" ] else null;
|
lib.optional stdenv.isCygwin "--enable-static"
|
||||||
|
++ lib.optional stdenv.isFreeBSD "--with-pic";
|
||||||
|
|
||||||
crossAttrs = {
|
crossAttrs = {
|
||||||
# Disable stripping to avoid "libiconv.a: Archive has no index" (MinGW).
|
# Disable stripping to avoid "libiconv.a: Archive has no index" (MinGW).
|
||||||
@ -41,11 +43,11 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
homepage = http://www.gnu.org/software/libiconv/;
|
homepage = http://www.gnu.org/software/libiconv/;
|
||||||
license = stdenv.lib.licenses.lgpl2Plus;
|
license = lib.licenses.lgpl2Plus;
|
||||||
|
|
||||||
maintainers = [ ];
|
maintainers = [ ];
|
||||||
|
|
||||||
# This library is not needed on GNU platforms.
|
# This library is not needed on GNU platforms.
|
||||||
hydraPlatforms = stdenv.lib.platforms.cygwin ++ stdenv.lib.platforms.darwin ++ stdenv.lib.platforms.freebsd;
|
hydraPlatforms = with lib.platforms; cygwin ++ darwin ++ freebsd;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ stdenv.mkDerivation {
|
|||||||
sha256= "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0";
|
sha256= "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
configureFlags = stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://www.ossp.org/pkg/lib/uuid/;
|
homepage = http://www.ossp.org/pkg/lib/uuid/;
|
||||||
description = "OSSP uuid ISO-C and C++ shared library";
|
description = "OSSP uuid ISO-C and C++ shared library";
|
||||||
|
@ -4,16 +4,13 @@ assert pythonSupport -> python != null;
|
|||||||
|
|
||||||
#TODO: share most stuff between python and non-python builds, perhaps via multiple-output
|
#TODO: share most stuff between python and non-python builds, perhaps via multiple-output
|
||||||
|
|
||||||
let
|
|
||||||
version = "2.9.2";
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation (rec {
|
stdenv.mkDerivation (rec {
|
||||||
name = "libxml2-${version}";
|
name = "libxml2-${version}";
|
||||||
|
version = "2.9.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://xmlsoft.org/sources/${name}.tar.gz";
|
url = "http://xmlsoft.org/sources/${name}.tar.gz";
|
||||||
sha256 = "1g6mf03xcabmk5ing1lwqmasr803616gb2xhn7pll10x2l5w6y2i";
|
sha256 = "0bd17g6znn2r98gzpjppsqjg33iraky4px923j3k8kdl8qgy7sad";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
@ -48,4 +45,3 @@ stdenv.mkDerivation (rec {
|
|||||||
} // stdenv.lib.optionalAttrs (!pythonSupport) {
|
} // stdenv.lib.optionalAttrs (!pythonSupport) {
|
||||||
configureFlags = "--with-python=no"; # otherwise build impurity bites us
|
configureFlags = "--with-python=no"; # otherwise build impurity bites us
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -9,7 +9,16 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Should be removed with >=2.4.43
|
# Should be removed with >=2.4.43
|
||||||
patches = [ ./CVE-2015-6908.patch ];
|
patches = [
|
||||||
|
./CVE-2015-6908.patch
|
||||||
|
(
|
||||||
|
fetchurl {
|
||||||
|
sha256 = "5bcb3f9fb7186b380efa0a1c2d31ad755e190134b5c4dac07c65bbf7c0b6b3b3";
|
||||||
|
url = "https://github.com/LMDB/lmdb/commit/3360cbad668f678fb23c064ca4efcc5c9ae95d10.patch";
|
||||||
|
name = "openldap-clang-compilation.patch";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
|
||||||
outputs = [ "out" "man" ];
|
outputs = [ "out" "man" ];
|
||||||
|
|
||||||
@ -19,7 +28,8 @@ stdenv.mkDerivation rec {
|
|||||||
[ "--enable-overlays"
|
[ "--enable-overlays"
|
||||||
"--disable-dependency-tracking" # speeds up one-time build
|
"--disable-dependency-tracking" # speeds up one-time build
|
||||||
] ++ stdenv.lib.optional (openssl == null) "--without-tls"
|
] ++ stdenv.lib.optional (openssl == null) "--without-tls"
|
||||||
++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl";
|
++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl"
|
||||||
|
++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
|
||||||
|
|
||||||
dontPatchELF = 1; # !!!
|
dontPatchELF = 1; # !!!
|
||||||
|
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
ver_maj = "1.38";
|
ver_maj = "1.38";
|
||||||
ver_min = "0";
|
ver_min = "1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pango-${ver_maj}.${ver_min}";
|
name = "pango-${ver_maj}.${ver_min}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz";
|
url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz";
|
||||||
sha256 = "0v12gi7f01iq3z852pclpnmkbcksbvpcmiazmklkx1dd9fbpakhx";
|
sha256 = "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = with stdenv.lib; [ gobjectIntrospection ]
|
buildInputs = with stdenv.lib; [ gobjectIntrospection ]
|
||||||
|
@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
|
|||||||
-datadir $out/share/${name}
|
-datadir $out/share/${name}
|
||||||
-translationdir $out/share/${name}/translations
|
-translationdir $out/share/${name}/translations
|
||||||
"
|
"
|
||||||
'' + optionalString stdenv.isDarwin ''
|
'' + optionalString stdenv.cc.isClang ''
|
||||||
sed -i 's/QMAKE_CC = gcc/QMAKE_CC = clang/' mkspecs/common/g++-base.conf
|
sed -i 's/QMAKE_CC = gcc/QMAKE_CC = clang/' mkspecs/common/g++-base.conf
|
||||||
sed -i 's/QMAKE_CXX = g++/QMAKE_CXX = clang++/' mkspecs/common/g++-base.conf
|
sed -i 's/QMAKE_CXX = g++/QMAKE_CXX = clang++/' mkspecs/common/g++-base.conf
|
||||||
'';
|
'';
|
||||||
@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
|
|||||||
''
|
''
|
||||||
-v -no-separate-debug-info -release -no-fast -confirm-license -opensource
|
-v -no-separate-debug-info -release -no-fast -confirm-license -opensource
|
||||||
|
|
||||||
-opengl -xrender -xrandr -xinerama -xcursor -xinput -xfixes -fontconfig
|
-${if stdenv.isFreeBSD then "no-" else ""}opengl -xrender -xrandr -xinerama -xcursor -xinput -xfixes -fontconfig
|
||||||
-qdbus -${if cups == null then "no-" else ""}cups -glib -dbus-linked -openssl-linked
|
-qdbus -${if cups == null then "no-" else ""}cups -glib -dbus-linked -openssl-linked
|
||||||
|
|
||||||
${if mysql != null then "-plugin" else "-no"}-sql-mysql -system-sqlite
|
${if mysql != null then "-plugin" else "-no"}-sql-mysql -system-sqlite
|
||||||
@ -122,17 +122,18 @@ stdenv.mkDerivation rec {
|
|||||||
# The following libraries are only used in plugins
|
# The following libraries are only used in plugins
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ cups # Qt dlopen's libcups instead of linking to it
|
[ cups # Qt dlopen's libcups instead of linking to it
|
||||||
mysql.lib postgresql sqlite libjpeg libmng libtiff icu ]
|
postgresql sqlite libjpeg libmng libtiff icu ]
|
||||||
|
++ optionals (mysql != null) [ mysql.lib ]
|
||||||
++ optionals gtkStyle [ gtk gdk_pixbuf ];
|
++ optionals gtkStyle [ gtk gdk_pixbuf ];
|
||||||
|
|
||||||
nativeBuildInputs = [ perl pkgconfig which ];
|
nativeBuildInputs = [ perl pkgconfig which ];
|
||||||
|
|
||||||
enableParallelBuilding = false;
|
enableParallelBuilding = false;
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin
|
NIX_CFLAGS_COMPILE = optionalString (stdenv.isFreeBSD || stdenv.isDarwin)
|
||||||
"-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
|
"-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
|
||||||
|
|
||||||
NIX_LDFLAGS = optionalString stdenv.isDarwin
|
NIX_LDFLAGS = optionalString (stdenv.isFreeBSD || stdenv.isDarwin)
|
||||||
"-lglib-2.0";
|
"-lglib-2.0";
|
||||||
|
|
||||||
preBuild = optionalString stdenv.isDarwin ''
|
preBuild = optionalString stdenv.isDarwin ''
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
scons PREFIX="$out" OPENSSL="${openssl}" ZLIB="${zlib}" APR="$(echo "${apr}"/bin/*-config)" \
|
scons PREFIX="$out" OPENSSL="${openssl}" ZLIB="${zlib}" APR="$(echo "${apr}"/bin/*-config)" \
|
||||||
APU="$(echo "${aprutil}"/bin/*-config)" CC="${
|
APU="$(echo "${aprutil}"/bin/*-config)" CC="${
|
||||||
if stdenv.isDarwin then "clang" else "${stdenv.cc}/bin/gcc"
|
if stdenv.cc.isClang then "clang" else "${stdenv.cc}/bin/gcc"
|
||||||
}" ${
|
}" ${
|
||||||
if (stdenv.isDarwin || stdenv.isCygwin) then "" else "GSSAPI=\"${kerberos}\""
|
if (stdenv.isDarwin || stdenv.isCygwin) then "" else "GSSAPI=\"${kerberos}\""
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,8 @@ stdenv.mkDerivation (rec {
|
|||||||
|
|
||||||
# As zlib takes part in the stdenv building, we don't want references
|
# As zlib takes part in the stdenv building, we don't want references
|
||||||
# to the bootstrap-tools libgcc (as uses to happen on arm/mips)
|
# to the bootstrap-tools libgcc (as uses to happen on arm/mips)
|
||||||
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc";
|
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc "
|
||||||
|
+ stdenv.lib.optionalString (stdenv.isFreeBSD) "-fPIC";
|
||||||
|
|
||||||
crossAttrs = {
|
crossAttrs = {
|
||||||
dontStrip = static;
|
dontStrip = static;
|
||||||
|
39
pkgs/development/tools/build-managers/cargo/head.nix
Normal file
39
pkgs/development/tools/build-managers/cargo/head.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{ stdenv, fetchgit, rustPlatform, file, curl, python, pkgconfig, openssl
|
||||||
|
, cmake, zlib, makeWrapper }:
|
||||||
|
|
||||||
|
with rustPlatform;
|
||||||
|
|
||||||
|
with ((import ./common.nix) {
|
||||||
|
inherit stdenv rustc;
|
||||||
|
version = "2016-01-10";
|
||||||
|
});
|
||||||
|
|
||||||
|
buildRustPackage rec {
|
||||||
|
inherit name version meta passthru;
|
||||||
|
|
||||||
|
# Needs to use fetchgit instead of fetchFromGitHub to fetch submodules
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://github.com/rust-lang/cargo";
|
||||||
|
rev = "ca373452de159491354cf38279dbc19308c91e72";
|
||||||
|
sha256 = "0fx88b3ndvzhfwq159xavs0z5c7jww231kd65cbzyih9g0ab9x65";
|
||||||
|
};
|
||||||
|
|
||||||
|
depsSha256 = "0csagk2dnwg5z0vbxilz1kzcygd4llw7s81ka0xn1g05x30jqrnn";
|
||||||
|
|
||||||
|
buildInputs = [ file curl pkgconfig python openssl cmake zlib makeWrapper ];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
./configure --enable-optimize --prefix=$out --local-cargo=${cargo}/bin/cargo
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = "make";
|
||||||
|
|
||||||
|
# Disable check phase as there are lots of failures (some probably due to
|
||||||
|
# trying to access the network).
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
make install
|
||||||
|
${postInstall}
|
||||||
|
'';
|
||||||
|
}
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
propagatedBuildInputs = [ libffi ];
|
propagatedBuildInputs = [ libffi ];
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = !stdenv.isFreeBSD; # XXX: 00-socket.test hangs
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "G-Wrap, a wrapper generator for Guile";
|
description = "G-Wrap, a wrapper generator for Guile";
|
||||||
|
@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
doCheck = !stdenv.isDarwin
|
doCheck = !stdenv.isDarwin
|
||||||
&& !stdenv.isCygwin # XXX: `test-dup2' fails on Cygwin
|
&& !stdenv.isCygwin # XXX: `test-dup2' fails on Cygwin
|
||||||
&& !stdenv.isSunOS; # XXX: `test-setlocale2.sh' fails
|
&& !stdenv.isSunOS # XXX: `test-setlocale2.sh' fails
|
||||||
|
&& !stdenv.isFreeBSD; # XXX: test 084 fails
|
||||||
|
|
||||||
configureFlags = "--with-syscmd-shell=${stdenv.shell}";
|
configureFlags = "--with-syscmd-shell=${stdenv.shell}";
|
||||||
|
|
||||||
|
29
pkgs/development/tools/misc/tet/default.nix
Normal file
29
pkgs/development/tools/misc/tet/default.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ fetchurl, stdenv }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (rec {
|
||||||
|
version = "3.8";
|
||||||
|
name = "tet-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = http://tetworks.opengroup.org/downloads/38/software/Sources/3.8/tet3.8-src.tar.gz ;
|
||||||
|
sha256 = "1j57hv56df38w249l595b8rsgmsyvjkbysai03a9724gax5jl9av" ;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ ];
|
||||||
|
|
||||||
|
patchPhase = ''chmod +x configure'';
|
||||||
|
|
||||||
|
configurePhase = ''./configure -t lite'';
|
||||||
|
|
||||||
|
buildPhase = ''cd src; make; cd -'';
|
||||||
|
|
||||||
|
installPhase = ''cd src; make install; cd -; cp -vr $PWD $out'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "The Test Environment Toolkit is used in test applications like The Open Group's UNIX Certification program and the Free Standards Group's LSB Certification program";
|
||||||
|
homepage = http://tetworks.opengroup.org/Products/tet.htm ;
|
||||||
|
license = stdenv.lib.licenses.artistic1;
|
||||||
|
platforms = stdenv.lib.platforms.unix;
|
||||||
|
maintainers = [ ];
|
||||||
|
};
|
||||||
|
})
|
@ -7,7 +7,8 @@ let
|
|||||||
version = "1.8.0";
|
version = "1.8.0";
|
||||||
rake = buildRubyGem {
|
rake = buildRubyGem {
|
||||||
inherit ruby;
|
inherit ruby;
|
||||||
name = "rake-10.4.2";
|
gemName = "rake";
|
||||||
|
version = "10.4.2";
|
||||||
sha256 = "1rn03rqlf1iv6n87a78hkda2yqparhhaivfjpizblmxvlw2hk5r8";
|
sha256 = "1rn03rqlf1iv6n87a78hkda2yqparhhaivfjpizblmxvlw2hk5r8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,7 +6,9 @@ appleDerivation {
|
|||||||
--replace "/usr/lib" "/lib" \
|
--replace "/usr/lib" "/lib" \
|
||||||
--replace "/usr/local/lib" "/lib" \
|
--replace "/usr/local/lib" "/lib" \
|
||||||
--replace "/usr/bin" "" \
|
--replace "/usr/bin" "" \
|
||||||
--replace "/bin/" ""
|
--replace "/bin/" "" \
|
||||||
|
--replace "CC = " "CC = cc #" \
|
||||||
|
--replace "SDK_DIR = " "SDK_DIR = . #"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Mac OS didn't support rpaths back before 10.5, and this package intentionally builds stubs targeting versions prior to that
|
# Mac OS didn't support rpaths back before 10.5, and this package intentionally builds stubs targeting versions prior to that
|
||||||
|
@ -32,141 +32,141 @@ appleDerivation {
|
|||||||
popd
|
popd
|
||||||
|
|
||||||
# root: complete
|
# root: complete
|
||||||
cp IOKitUser-907.100.13/IOCFBundle.h $dest
|
cp IOKitUser-*/IOCFBundle.h $dest
|
||||||
cp IOKitUser-907.100.13/IOCFPlugIn.h $dest
|
cp IOKitUser-*/IOCFPlugIn.h $dest
|
||||||
cp IOKitUser-907.100.13/IOCFSerialize.h $dest
|
cp IOKitUser-*/IOCFSerialize.h $dest
|
||||||
cp IOKitUser-907.100.13/IOCFUnserialize.h $dest
|
cp IOKitUser-*/IOCFUnserialize.h $dest
|
||||||
cp IOKitUser-907.100.13/IOCFURLAccess.h $dest
|
cp IOKitUser-*/IOCFURLAccess.h $dest
|
||||||
cp IOKitUser-907.100.13/IODataQueueClient.h $dest
|
cp IOKitUser-*/IODataQueueClient.h $dest
|
||||||
cp IOKitUser-907.100.13/IOKitLib.h $dest
|
cp IOKitUser-*/IOKitLib.h $dest
|
||||||
cp IOKitUser-907.100.13/iokitmig.h $dest
|
cp IOKitUser-*/iokitmig.h $dest
|
||||||
cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/*.h $dest
|
cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/*.h $dest
|
||||||
|
|
||||||
# audio: complete
|
# audio: complete
|
||||||
cp IOAudioFamily-197.4.2/IOAudioDefines.h $dest/audio
|
cp IOAudioFamily-*/IOAudioDefines.h $dest/audio
|
||||||
cp IOKitUser-907.100.13/audio.subproj/IOAudioLib.h $dest/audio
|
cp IOKitUser-*/audio.subproj/IOAudioLib.h $dest/audio
|
||||||
cp IOAudioFamily-197.4.2/IOAudioTypes.h $dest/audio
|
cp IOAudioFamily-*/IOAudioTypes.h $dest/audio
|
||||||
|
|
||||||
# avc: complete
|
# avc: complete
|
||||||
cp IOFireWireAVC-422.4.0/IOFireWireAVC/IOFireWireAVCConsts.h $dest/avc
|
cp IOFireWireAVC-*/IOFireWireAVC/IOFireWireAVCConsts.h $dest/avc
|
||||||
cp IOFireWireAVC-422.4.0/IOFireWireAVCLib/IOFireWireAVCLib.h $dest/avc
|
cp IOFireWireAVC-*/IOFireWireAVCLib/IOFireWireAVCLib.h $dest/avc
|
||||||
|
|
||||||
# DV: complete
|
# DV: complete
|
||||||
cp IOFWDVComponents-207.4.1/DVFamily.h $dest/DV
|
cp IOFWDVComponents-*/DVFamily.h $dest/DV
|
||||||
|
|
||||||
# firewire: complete
|
# firewire: complete
|
||||||
cp IOFireWireFamily-455.4.0/IOFireWireFamily.kmodproj/IOFireWireFamilyCommon.h $dest/firewire
|
cp IOFireWireFamily-*/IOFireWireFamily.kmodproj/IOFireWireFamilyCommon.h $dest/firewire
|
||||||
cp IOFireWireFamily-455.4.0/IOFireWireLib.CFPlugInProj/IOFireWireLib.h $dest/firewire
|
cp IOFireWireFamily-*/IOFireWireLib.CFPlugInProj/IOFireWireLib.h $dest/firewire
|
||||||
cp IOFireWireFamily-455.4.0/IOFireWireLib.CFPlugInProj/IOFireWireLibIsoch.h $dest/firewire
|
cp IOFireWireFamily-*/IOFireWireLib.CFPlugInProj/IOFireWireLibIsoch.h $dest/firewire
|
||||||
cp IOFireWireFamily-455.4.0/IOFireWireFamily.kmodproj/IOFWIsoch.h $dest/firewire
|
cp IOFireWireFamily-*/IOFireWireFamily.kmodproj/IOFWIsoch.h $dest/firewire
|
||||||
|
|
||||||
# graphics: missing AppleGraphicsDeviceControlUserCommand.h
|
# graphics: missing AppleGraphicsDeviceControlUserCommand.h
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOAccelClientConnect.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelClientConnect.h $dest/graphics
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOAccelSurfaceConnect.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelSurfaceConnect.h $dest/graphics
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOAccelTypes.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOAccelTypes.h $dest/graphics
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOFramebufferShared.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOFramebufferShared.h $dest/graphics
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOGraphicsEngine.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsEngine.h $dest/graphics
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterface.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterface.h $dest/graphics
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterfaceTypes.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsInterfaceTypes.h $dest/graphics
|
||||||
cp IOKitUser-907.100.13/graphics.subproj/IOGraphicsLib.h $dest/graphics
|
cp IOKitUser-*/graphics.subproj/IOGraphicsLib.h $dest/graphics
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/graphics/IOGraphicsTypes.h $dest/graphics
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/graphics/IOGraphicsTypes.h $dest/graphics
|
||||||
|
|
||||||
# hid: complete
|
# hid: complete
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDBase.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDBase.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDDevice.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDDevice.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDDevicePlugIn.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDDevicePlugIn.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDElement.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDElement.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDLib.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDLib.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDManager.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDManager.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDQueue.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDQueue.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDTransaction.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDTransaction.h $dest/hid
|
||||||
cp IOKitUser-907.100.13/hid.subproj/IOHIDValue.h $dest/hid
|
cp IOKitUser-*/hid.subproj/IOHIDValue.h $dest/hid
|
||||||
cp IOHIDFamily-503.215.2/IOHIDFamily/IOHIDKeys.h $dest/hid
|
cp IOHIDFamily-*/IOHIDFamily/IOHIDKeys.h $dest/hid
|
||||||
cp IOHIDFamily-503.215.2/IOHIDFamily/IOHIDUsageTables.h $dest/hid
|
cp IOHIDFamily-*/IOHIDFamily/IOHIDUsageTables.h $dest/hid
|
||||||
cp IOHIDFamily-503.215.2/IOHIDLib/IOHIDLibObsolete.h $dest/hid
|
cp IOHIDFamily-*/IOHIDLib/IOHIDLibObsolete.h $dest/hid
|
||||||
|
|
||||||
# hidsystem: complete
|
# hidsystem: complete
|
||||||
cp IOHIDFamily-503.215.2/IOHIDSystem/IOKit/hidsystem/ev_keymap.h $dest/hidsystem
|
cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/ev_keymap.h $dest/hidsystem
|
||||||
cp IOKitUser-907.100.13/hidsystem.subproj/event_status_driver.h $dest/hidsystem
|
cp IOKitUser-*/hidsystem.subproj/event_status_driver.h $dest/hidsystem
|
||||||
cp IOKitUser-907.100.13/hidsystem.subproj/IOHIDLib.h $dest/hidsystem
|
cp IOKitUser-*/hidsystem.subproj/IOHIDLib.h $dest/hidsystem
|
||||||
cp IOHIDFamily-503.215.2/IOHIDSystem/IOKit/hidsystem/IOHIDParameter.h $dest/hidsystem
|
cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDParameter.h $dest/hidsystem
|
||||||
cp IOHIDFamily-503.215.2/IOHIDSystem/IOKit/hidsystem/IOHIDShared.h $dest/hidsystem
|
cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDShared.h $dest/hidsystem
|
||||||
cp IOHIDFamily-503.215.2/IOHIDSystem/IOKit/hidsystem/IOHIDTypes.h $dest/hidsystem
|
cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOHIDTypes.h $dest/hidsystem
|
||||||
cp IOHIDFamily-503.215.2/IOHIDSystem/IOKit/hidsystem/IOLLEvent.h $dest/hidsystem
|
cp IOHIDFamily-*/IOHIDSystem/IOKit/hidsystem/IOLLEvent.h $dest/hidsystem
|
||||||
|
|
||||||
|
|
||||||
# i2c: complete
|
# i2c: complete
|
||||||
cp IOGraphics-471.92.1/IOGraphicsFamily/IOKit/i2c/IOI2CInterface.h $dest/i2c
|
cp IOGraphics-*/IOGraphicsFamily/IOKit/i2c/IOI2CInterface.h $dest/i2c
|
||||||
|
|
||||||
# kext: complete
|
# kext: complete
|
||||||
cp IOKitUser-907.100.13/kext.subproj/KextManager.h $dest/kext
|
cp IOKitUser-*/kext.subproj/KextManager.h $dest/kext
|
||||||
|
|
||||||
# ndrvsupport: complete
|
# ndrvsupport: complete
|
||||||
cp IOGraphics-471.92.1/IONDRVSupport/IOKit/ndrvsupport/IOMacOSTypes.h $dest/ndrvsupport
|
cp IOGraphics-*/IONDRVSupport/IOKit/ndrvsupport/IOMacOSTypes.h $dest/ndrvsupport
|
||||||
cp IOGraphics-471.92.1/IONDRVSupport/IOKit/ndrvsupport/IOMacOSVideo.h $dest/ndrvsupport
|
cp IOGraphics-*/IONDRVSupport/IOKit/ndrvsupport/IOMacOSVideo.h $dest/ndrvsupport
|
||||||
|
|
||||||
# network: complete
|
# network: complete
|
||||||
cp IONetworkingFamily-100/IOEthernetController.h $dest/network
|
cp IONetworkingFamily-*/IOEthernetController.h $dest/network
|
||||||
cp IONetworkingFamily-100/IOEthernetInterface.h $dest/network
|
cp IONetworkingFamily-*/IOEthernetInterface.h $dest/network
|
||||||
cp IONetworkingFamily-100/IOEthernetStats.h $dest/network
|
cp IONetworkingFamily-*/IOEthernetStats.h $dest/network
|
||||||
cp IONetworkingFamily-100/IONetworkController.h $dest/network
|
cp IONetworkingFamily-*/IONetworkController.h $dest/network
|
||||||
cp IONetworkingFamily-100/IONetworkData.h $dest/network
|
cp IONetworkingFamily-*/IONetworkData.h $dest/network
|
||||||
cp IONetworkingFamily-100/IONetworkInterface.h $dest/network
|
cp IONetworkingFamily-*/IONetworkInterface.h $dest/network
|
||||||
cp IOKitUser-907.100.13/network.subproj/IONetworkLib.h $dest/network
|
cp IOKitUser-*/network.subproj/IONetworkLib.h $dest/network
|
||||||
cp IONetworkingFamily-100/IONetworkMedium.h $dest/network
|
cp IONetworkingFamily-*/IONetworkMedium.h $dest/network
|
||||||
cp IONetworkingFamily-100/IONetworkStack.h $dest/network
|
cp IONetworkingFamily-*/IONetworkStack.h $dest/network
|
||||||
cp IONetworkingFamily-100/IONetworkStats.h $dest/network
|
cp IONetworkingFamily-*/IONetworkStats.h $dest/network
|
||||||
cp IONetworkingFamily-100/IONetworkUserClient.h $dest/network
|
cp IONetworkingFamily-*/IONetworkUserClient.h $dest/network
|
||||||
|
|
||||||
# ps: missing IOUPSPlugIn.h
|
# ps: missing IOUPSPlugIn.h
|
||||||
cp IOKitUser-907.100.13/ps.subproj/IOPowerSources.h $dest/ps
|
cp IOKitUser-*/ps.subproj/IOPowerSources.h $dest/ps
|
||||||
cp IOKitUser-907.100.13/ps.subproj/IOPSKeys.h $dest/ps
|
cp IOKitUser-*/ps.subproj/IOPSKeys.h $dest/ps
|
||||||
|
|
||||||
# pwr_mgt: complete
|
# pwr_mgt: complete
|
||||||
cp IOKitUser-907.100.13/pwr_mgt.subproj/IOPMKeys.h $dest/pwr_mgt
|
cp IOKitUser-*/pwr_mgt.subproj/IOPMKeys.h $dest/pwr_mgt
|
||||||
cp IOKitUser-907.100.13/pwr_mgt.subproj/IOPMLib.h $dest/pwr_mgt
|
cp IOKitUser-*/pwr_mgt.subproj/IOPMLib.h $dest/pwr_mgt
|
||||||
cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/pwr_mgt/*.h $dest/pwr_mgt
|
cp ${xnu}/Library/PrivateFrameworks/IOKit.framework/Versions/A/Headers/pwr_mgt/*.h $dest/pwr_mgt
|
||||||
cp IOKitUser-907.100.13/pwr_mgt.subproj/IOPMLibPrivate.h $dest/pwr_mgt # Private
|
cp IOKitUser-*/pwr_mgt.subproj/IOPMLibPrivate.h $dest/pwr_mgt # Private
|
||||||
|
|
||||||
# sbp2: complete
|
# sbp2: complete
|
||||||
cp IOFireWireSBP2-426.4.1/IOFireWireSBP2Lib/IOFireWireSBP2Lib.h $dest/sbp2
|
cp IOFireWireSBP2-*/IOFireWireSBP2Lib/IOFireWireSBP2Lib.h $dest/sbp2
|
||||||
|
|
||||||
# scsi: omitted for now
|
# scsi: omitted for now
|
||||||
|
|
||||||
# serial: complete
|
# serial: complete
|
||||||
cp IOSerialFamily-64.1.1/IOSerialFamily.kmodproj/IOSerialKeys.h $dest/serial
|
cp IOSerialFamily-*/IOSerialFamily.kmodproj/IOSerialKeys.h $dest/serial
|
||||||
cp IOSerialFamily-64.1.1/IOSerialFamily.kmodproj/ioss.h $dest/serial
|
cp IOSerialFamily-*/IOSerialFamily.kmodproj/ioss.h $dest/serial
|
||||||
|
|
||||||
# storage: complete
|
# storage: complete
|
||||||
# Needs ata subdirectory
|
# Needs ata subdirectory
|
||||||
cp IOStorageFamily-172/IOAppleLabelScheme.h $dest/storage
|
cp IOStorageFamily-*/IOAppleLabelScheme.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOApplePartitionScheme.h $dest/storage
|
cp IOStorageFamily-*/IOApplePartitionScheme.h $dest/storage
|
||||||
cp IOBDStorageFamily-14/IOBDBlockStorageDevice.h $dest/storage
|
cp IOBDStorageFamily-*/IOBDBlockStorageDevice.h $dest/storage
|
||||||
cp IOBDStorageFamily-14/IOBDMedia.h $dest/storage
|
cp IOBDStorageFamily-*/IOBDMedia.h $dest/storage
|
||||||
cp IOBDStorageFamily-14/IOBDMediaBSDClient.h $dest/storage
|
cp IOBDStorageFamily-*/IOBDMediaBSDClient.h $dest/storage
|
||||||
cp IOBDStorageFamily-14/IOBDTypes.h $dest/storage
|
cp IOBDStorageFamily-*/IOBDTypes.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOBlockStorageDevice.h $dest/storage
|
cp IOStorageFamily-*/IOBlockStorageDevice.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOBlockStorageDriver.h $dest/storage
|
cp IOStorageFamily-*/IOBlockStorageDriver.h $dest/storage
|
||||||
cp IOCDStorageFamily-51/IOCDBlockStorageDevice.h $dest/storage
|
cp IOCDStorageFamily-*/IOCDBlockStorageDevice.h $dest/storage
|
||||||
cp IOCDStorageFamily-51/IOCDMedia.h $dest/storage
|
cp IOCDStorageFamily-*/IOCDMedia.h $dest/storage
|
||||||
cp IOCDStorageFamily-51/IOCDMediaBSDClient.h $dest/storage
|
cp IOCDStorageFamily-*/IOCDMediaBSDClient.h $dest/storage
|
||||||
cp IOCDStorageFamily-51/IOCDPartitionScheme.h $dest/storage
|
cp IOCDStorageFamily-*/IOCDPartitionScheme.h $dest/storage
|
||||||
cp IOCDStorageFamily-51/IOCDTypes.h $dest/storage
|
cp IOCDStorageFamily-*/IOCDTypes.h $dest/storage
|
||||||
cp IODVDStorageFamily-35/IODVDBlockStorageDevice.h $dest/storage
|
cp IODVDStorageFamily-*/IODVDBlockStorageDevice.h $dest/storage
|
||||||
cp IODVDStorageFamily-35/IODVDMedia.h $dest/storage
|
cp IODVDStorageFamily-*/IODVDMedia.h $dest/storage
|
||||||
cp IODVDStorageFamily-35/IODVDMediaBSDClient.h $dest/storage
|
cp IODVDStorageFamily-*/IODVDMediaBSDClient.h $dest/storage
|
||||||
cp IODVDStorageFamily-35/IODVDTypes.h $dest/storage
|
cp IODVDStorageFamily-*/IODVDTypes.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOFDiskPartitionScheme.h $dest/storage
|
cp IOStorageFamily-*/IOFDiskPartitionScheme.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOFilterScheme.h $dest/storage
|
cp IOStorageFamily-*/IOFilterScheme.h $dest/storage
|
||||||
cp IOFireWireSerialBusProtocolTransport-251.0.1/IOFireWireStorageCharacteristics.h $dest/storage
|
cp IOFireWireSerialBusProtocolTransport-*/IOFireWireStorageCharacteristics.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOGUIDPartitionScheme.h $dest/storage
|
cp IOStorageFamily-*/IOGUIDPartitionScheme.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOMedia.h $dest/storage
|
cp IOStorageFamily-*/IOMedia.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOMediaBSDClient.h $dest/storage
|
cp IOStorageFamily-*/IOMediaBSDClient.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOPartitionScheme.h $dest/storage
|
cp IOStorageFamily-*/IOPartitionScheme.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOStorage.h $dest/storage
|
cp IOStorageFamily-*/IOStorage.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOStorageCardCharacteristics.h $dest/storage
|
cp IOStorageFamily-*/IOStorageCardCharacteristics.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOStorageDeviceCharacteristics.h $dest/storage
|
cp IOStorageFamily-*/IOStorageDeviceCharacteristics.h $dest/storage
|
||||||
cp IOStorageFamily-172/IOStorageProtocolCharacteristics.h $dest/storage
|
cp IOStorageFamily-*/IOStorageProtocolCharacteristics.h $dest/storage
|
||||||
|
|
||||||
# stream: missing altogether
|
# stream: missing altogether
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ appleDerivation rec {
|
|||||||
-o $out/lib/libSystem.dylib \
|
-o $out/lib/libSystem.dylib \
|
||||||
CompatibilityHacks.o init.o \
|
CompatibilityHacks.o init.o \
|
||||||
-compatibility_version 1.0 \
|
-compatibility_version 1.0 \
|
||||||
-current_version ${version} \
|
-current_version 1197.1.1 \
|
||||||
-reexport_library $out/lib/system/libsystem_c.dylib \
|
-reexport_library $out/lib/system/libsystem_c.dylib \
|
||||||
-reexport_library $out/lib/system/libsystem_kernel.dylib \
|
-reexport_library $out/lib/system/libsystem_kernel.dylib \
|
||||||
${stdenv.lib.concatStringsSep " "
|
${stdenv.lib.concatStringsSep " "
|
||||||
|
@ -1,8 +1,130 @@
|
|||||||
{ stdenv, fetchurl, pkgs }:
|
{ stdenv, fetchurl, pkgs }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
# This attrset can in theory be computed automatically, but for that to work nicely we need
|
||||||
|
# import-from-derivation to work properly. Currently it's rather ugly when we try to bootstrap
|
||||||
|
# a stdenv out of something like this. With some care we can probably get rid of this, but for
|
||||||
|
# now it's staying here.
|
||||||
|
versions = {
|
||||||
|
"osx-10.11.2" = {
|
||||||
|
dtrace = "168";
|
||||||
|
xnu = "3248.20.55";
|
||||||
|
};
|
||||||
|
"osx-10.10.5" = {
|
||||||
|
adv_cmds = "158";
|
||||||
|
architecture = "266";
|
||||||
|
CF = "1153.18";
|
||||||
|
CommonCrypto = "60061.30.1";
|
||||||
|
copyfile = "118.1.2";
|
||||||
|
Csu = "85";
|
||||||
|
dyld = "353.2.3";
|
||||||
|
eap8021x = "198.30.1";
|
||||||
|
libauto = "186";
|
||||||
|
Libc = "1044.40.1";
|
||||||
|
libclosure = "65";
|
||||||
|
libdispatch = "442.1.4";
|
||||||
|
libiconv = "42";
|
||||||
|
Libinfo = "459.40.1";
|
||||||
|
Libnotify = "133.1.1";
|
||||||
|
libpthread = "105.40.1";
|
||||||
|
libresolv = "57";
|
||||||
|
Libsystem = "1213";
|
||||||
|
libunwind = "35.3";
|
||||||
|
libutil = "38";
|
||||||
|
mDNSResponder = "576.30.4";
|
||||||
|
objc4 = "647";
|
||||||
|
ppp = "786.40.2";
|
||||||
|
removefile = "35";
|
||||||
|
Security = "57031.40.6";
|
||||||
|
xnu = "2782.40.9";
|
||||||
|
|
||||||
|
IOAudioFamily = "203.3";
|
||||||
|
IOFireWireFamily = "458";
|
||||||
|
IOFWDVComponents = "207.4.1";
|
||||||
|
IOFireWireAVC = "423";
|
||||||
|
IOFireWireSBP2 = "427";
|
||||||
|
IOFireWireSerialBusProtocolTransport = "251.0.1";
|
||||||
|
IOGraphics = "485.40.1";
|
||||||
|
IOHIDFamily = "606.40.1";
|
||||||
|
IONetworkingFamily = "101";
|
||||||
|
IOSerialFamily = "74.20.1";
|
||||||
|
IOStorageFamily = "182.1.1";
|
||||||
|
IOBDStorageFamily = "14";
|
||||||
|
IOCDStorageFamily = "51";
|
||||||
|
IODVDStorageFamily = "35";
|
||||||
|
IOKitUser = "1050.20.2";
|
||||||
|
};
|
||||||
|
"osx-10.9.5" = {
|
||||||
|
CF = "855.17";
|
||||||
|
launchd = "842.92.1";
|
||||||
|
libauto = "185.5";
|
||||||
|
Libc = "997.90.3";
|
||||||
|
libdispatch = "339.92.1";
|
||||||
|
libiconv = "41";
|
||||||
|
Libnotify = "121.20.1";
|
||||||
|
Libsystem = "1197.1.1";
|
||||||
|
objc4 = "551.1";
|
||||||
|
Security = "55471.14.18";
|
||||||
|
security_dotmac_tp = "55107.1";
|
||||||
|
xnu = "2422.115.4";
|
||||||
|
|
||||||
|
IOStorageFamily = "172";
|
||||||
|
};
|
||||||
|
"osx-10.8.5" = {
|
||||||
|
configd = "453.19";
|
||||||
|
Libc = "825.40.1";
|
||||||
|
IOUSBFamily = "630.4.5";
|
||||||
|
};
|
||||||
|
"osx-10.8.4" = {
|
||||||
|
IOUSBFamily = "560.4.2";
|
||||||
|
};
|
||||||
|
"osx-10.7.5" = {
|
||||||
|
libsecurity_apple_csp = "55003";
|
||||||
|
libsecurity_apple_cspdl = "55000";
|
||||||
|
libsecurity_apple_file_dl = "55000";
|
||||||
|
libsecurity_apple_x509_cl = "55004";
|
||||||
|
libsecurity_apple_x509_tp = "55009.3";
|
||||||
|
libsecurity_asn1 = "55000.2";
|
||||||
|
libsecurity_cdsa_client = "55000";
|
||||||
|
libsecurity_cdsa_plugin = "55001";
|
||||||
|
libsecurity_cdsa_utilities = "55006";
|
||||||
|
libsecurity_cdsa_utils = "55000";
|
||||||
|
libsecurity_codesigning = "55037.15";
|
||||||
|
libsecurity_cssm = "55005.5";
|
||||||
|
libsecurity_filedb = "55016.1";
|
||||||
|
libsecurity_keychain = "55050.9";
|
||||||
|
libsecurity_mds = "55000";
|
||||||
|
libsecurity_ocspd = "55010";
|
||||||
|
libsecurity_pkcs12 = "55000";
|
||||||
|
libsecurity_sd_cspdl = "55003";
|
||||||
|
libsecurity_utilities = "55030.3";
|
||||||
|
libsecurityd = "55004";
|
||||||
|
};
|
||||||
|
"osx-10.7.4" = {
|
||||||
|
Libm = "2026";
|
||||||
|
};
|
||||||
|
"osx-10.6.2" = {
|
||||||
|
CarbonHeaders = "18.1";
|
||||||
|
};
|
||||||
|
"osx-10.5.8" = {
|
||||||
|
adv_cmds = "119";
|
||||||
|
};
|
||||||
|
"osx-10.5" = {
|
||||||
|
CoreOSMakeFiles = "40";
|
||||||
|
};
|
||||||
|
"dev-tools-7.0" = {
|
||||||
|
bootstrap_cmds = "93";
|
||||||
|
};
|
||||||
|
"dev-tools-5.1" = {
|
||||||
|
bootstrap_cmds = "86";
|
||||||
|
};
|
||||||
|
"dev-tools-3.2.6" = {
|
||||||
|
bsdmake = "24";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
fetchApple = version: sha256: name: fetchurl {
|
fetchApple = version: sha256: name: fetchurl {
|
||||||
url = "http://www.opensource.apple.com/tarballs/${name}/${name}-${version}.tar.gz";
|
url = "http://www.opensource.apple.com/tarballs/${name}/${name}-${versions.${version}.${name}}.tar.gz";
|
||||||
inherit sha256;
|
inherit sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -25,90 +147,101 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
IOKitSpecs = {
|
IOKitSpecs = {
|
||||||
IOAudioFamily = fetchApple "197.4.2" "1dmrczdmbdkvnhjbv233wx4xczgpf5wjrhr83aizrwpks5avkxbr";
|
IOAudioFamily = fetchApple "osx-10.10.5" "0ggq7za3iq8g02j16rj67prqhrw828jsw3ah3bxq8a1cvr55aqnq";
|
||||||
IOFireWireFamily = fetchApple "455.4.0" "034n2v6z7lf1cx3sp3309z4sn8mkchjcrsf177iag46yzlzcjgfl";
|
IOFireWireFamily = fetchApple "osx-10.10.5" "059qa1m668kwvchl90cqcx35b31zaqdg61zi11y1imn5s389y2g1";
|
||||||
IOFWDVComponents = fetchApple "207.4.1" "1brr0yn6mxgapw3bvlhyissfksifzj2mqsvj9vmps6zwcsxjfw7m";
|
IOFWDVComponents = fetchApple "osx-10.10.5" "1brr0yn6mxgapw3bvlhyissfksifzj2mqsvj9vmps6zwcsxjfw7m";
|
||||||
IOFireWireAVC = fetchApple "422.4.0" "1anw8cfmwkavnrs28bzshwa3cwk4r1p3x72561zljx57d0na9164";
|
IOFireWireAVC = fetchApple "osx-10.10.5" "194an37gbqs9s5s891lmw6prvd1m2362602s8lj5m89fp9h8mbal";
|
||||||
IOFireWireSBP2 = fetchApple "426.4.1" "0asik6qjhf3jjp22awsiyyd6rj02zwnx47l0afbwmxpn5bchfk60";
|
IOFireWireSBP2 = fetchApple "osx-10.10.5" "1mym158kp46y1vfiq625b15ihh4jjbpimfm7d56wlw6l2syajqvi";
|
||||||
IOFireWireSerialBusProtocolTransport = fetchApple "251.0.1" "09kiq907qpk94zbij1mrcfcnyyc5ncvlxavxjrj4v5braxm78lhi";
|
IOFireWireSerialBusProtocolTransport = fetchApple "osx-10.10.5" "09kiq907qpk94zbij1mrcfcnyyc5ncvlxavxjrj4v5braxm78lhi";
|
||||||
IOGraphics = fetchApple "471.92.1" "1c110c9chafy5ilvnc08my9ka530aljggbn66gh3sjsg7lzck9nb";
|
IOGraphics = fetchApple "osx-10.10.5" "1z0x3yrv0p8pfdqnvwf8rvrf9wip593lhm9q6yzbclz3fn53ad0p";
|
||||||
IOHIDFamily = fetchApple "503.215.2" "0nx9mzdw848y6ppcfvip3ybczd1fxkr413zhi9qhw7gnpvac5g3n";
|
IOHIDFamily = fetchApple "osx-10.10.5" "0yibagwk74imp3j3skjycm703s5ybdqw0qlsmnml6zwjpbrz5894";
|
||||||
IONetworkingFamily = fetchApple "100" "10r769mqq7aiksdsvyz76xjln0lg7dj4pkg2x067ygyf9md55hlz";
|
IONetworkingFamily = fetchApple "osx-10.10.5" "04as1hc8avncijf61mp9dmplz8vb1inhirkd1g74gah08lgrfs9j";
|
||||||
IOSerialFamily = fetchApple "64.1.1" "1bfkqmg7clwm23byr3iji812j7v1p6565b1ri6p78zviqxnxh7cx";
|
IOSerialFamily = fetchApple "osx-10.10.5" "0jh12aanxcigqi9w6wqzbwjdin9m48zwrhdj3n4ki0h41sg89y91";
|
||||||
IOStorageFamily = fetchApple "172" "0w5yr8ppl82anwph2zba0ppjji6ipf5x410zhcm1drzwn4bbkxrj";
|
IOStorageFamily = fetchApple "osx-10.9.5" "0w5yr8ppl82anwph2zba0ppjji6ipf5x410zhcm1drzwn4bbkxrj";
|
||||||
IOBDStorageFamily = fetchApple "14" "1rbvmh311n853j5qb6hfda94vym9wkws5w736w2r7dwbrjyppc1q";
|
IOBDStorageFamily = fetchApple "osx-10.10.5" "1rbvmh311n853j5qb6hfda94vym9wkws5w736w2r7dwbrjyppc1q";
|
||||||
IOCDStorageFamily = fetchApple "51" "1905sxwmpxdcnm6yggklc5zimx1558ygm3ycj6b34f9h48xfxzgy";
|
IOCDStorageFamily = fetchApple "osx-10.10.5" "1905sxwmpxdcnm6yggklc5zimx1558ygm3ycj6b34f9h48xfxzgy";
|
||||||
IODVDStorageFamily = fetchApple "35" "1fv82rn199mi998l41c0qpnlp3irhqp2rb7v53pxbx7cra4zx3i6";
|
IODVDStorageFamily = fetchApple "osx-10.10.5" "1fv82rn199mi998l41c0qpnlp3irhqp2rb7v53pxbx7cra4zx3i6";
|
||||||
# There should be an IOStreamFamily project here, but they haven't released it :(
|
# There should be an IOStreamFamily project here, but they haven't released it :(
|
||||||
IOUSBFamily = fetchApple "630.4.5" "1znqb6frxgab9mkyv7csa08c26p9p0ip6hqb4wm9c7j85kf71f4j"; # This is from 10.8 :(
|
IOUSBFamily = fetchApple "osx-10.8.5" "1znqb6frxgab9mkyv7csa08c26p9p0ip6hqb4wm9c7j85kf71f4j"; # This is from 10.8 :(
|
||||||
IOUSBFamily_older = fetchApple "560.4.2" "113lmpz8n6sibd27p42h8bl7a6c3myc6zngwri7gnvf8qlajzyml" "IOUSBFamily"; # This is even older :(
|
IOUSBFamily_older = fetchApple "osx-10.8.4" "113lmpz8n6sibd27p42h8bl7a6c3myc6zngwri7gnvf8qlajzyml" "IOUSBFamily"; # This is even older :(
|
||||||
IOKitUser = fetchApple "907.100.13" "0kcbrlyxcyirvg5p95hjd9k8a01k161zg0bsfgfhkb90kh2s8x0m";
|
IOKitUser = fetchApple "osx-10.10.5" "1jzndziv97bhjxmla8nib5fpcswbvsxr04447g251ls81rw313lb";
|
||||||
# There should be an IOVideo here, but they haven't released it :(
|
# There should be an IOVideo here, but they haven't released it :(
|
||||||
};
|
};
|
||||||
|
|
||||||
IOKitSrcs = stdenv.lib.mapAttrs (name: value: if builtins.isFunction value then value name else value) IOKitSpecs;
|
IOKitSrcs = stdenv.lib.mapAttrs (name: value: if builtins.isFunction value then value name else value) IOKitSpecs;
|
||||||
|
|
||||||
adv_cmds = applePackage "adv_cmds" "119" "102ssayxbg9wb35mdmhswbnw0bg7js3pfd8fcbic83c5q3bqa6c6" {};
|
adv_cmds = applePackage "adv_cmds" "osx-10.5.8" "102ssayxbg9wb35mdmhswbnw0bg7js3pfd8fcbic83c5q3bqa6c6" {};
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
inherit (adv_cmds) ps locale;
|
inherit (adv_cmds) ps locale;
|
||||||
architecture = applePackage "architecture" "265" "05wz8wmxlqssfp29x203fwfb8pgbdjj1mpz12v508658166yzqj8" {};
|
architecture = applePackage "architecture" "osx-10.10.5" "0fc9s1f4mnzaixrmkkq9y8276g8i5grryh2dggi4h347i33kd097" {};
|
||||||
bootstrap_cmds = applePackage "bootstrap_cmds" "86" "0xr0296jm1r3q7kbam98h85g23qlfi763z54ahj563n636kyk2wb" {};
|
bootstrap_cmds = applePackage "bootstrap_cmds" "dev-tools-7.0" "1v5dv2q3af1xwj5kz0a5g54fd5dm6j4c9dd2g66n4kc44ixyrhp3" {};
|
||||||
bsdmake = applePackage "bsdmake" "24" "11a9kkhz5bfgi1i8kpdkis78lhc6b5vxmhd598fcdgra1jw4iac2" {};
|
bsdmake = applePackage "bsdmake" "dev-tools-3.2.6" "11a9kkhz5bfgi1i8kpdkis78lhc6b5vxmhd598fcdgra1jw4iac2" {};
|
||||||
CarbonHeaders = applePackage "CarbonHeaders" "9A581" "1hc0yijlpwq39x5bic6nnywqp2m1wj1f11j33m2q7p505h1h740c" {};
|
CarbonHeaders = applePackage "CarbonHeaders" "osx-10.6.2" "1zam29847cxr6y9rnl76zqmkbac53nx0szmqm9w5p469a6wzjqar" {};
|
||||||
CF = applePackage "CF" "855.17" "1sadmxi9fsvsmdyxvg2133sdzvkzwil5fvyyidxsyk1iyfzqsvln" {};
|
CF = applePackage "CF" "osx-10.9.5" "1sadmxi9fsvsmdyxvg2133sdzvkzwil5fvyyidxsyk1iyfzqsvln" {};
|
||||||
CommonCrypto = applePackage "CommonCrypto" "60049" "1azin6w7cnzl0iv8kd2qzgwcp6a45zy64y5z1i6jysjcl6xmlw2h" {};
|
CommonCrypto = applePackage "CommonCrypto" "osx-10.10.5" "0rm1r552i3mhyik2y3309dw90ap6vlhk583237jxfmdkip4c6mdr" {};
|
||||||
configd = applePackage "configd" "453.19" "1gxakahk8gallf16xmhxhprdxkh3prrmzxnmxfvj0slr0939mmr2" {};
|
configd = applePackage "configd" "osx-10.8.5" "1gxakahk8gallf16xmhxhprdxkh3prrmzxnmxfvj0slr0939mmr2" {};
|
||||||
copyfile = applePackage "copyfile" "103.92.1" "15i2hw5aqx0fklvmq6avin5s00adacvzqc740vviwc2y742vrdcd" {};
|
copyfile = applePackage "copyfile" "osx-10.10.5" "1s90wv9jsi6ismdnc1my3rxaa83k3s5ialrs5xlrmyb7s0pgvz7j" {};
|
||||||
CoreOSMakefiles = applePackage "CoreOSMakefiles" "40" "0kxp53spbn7109l7cvhi88pmfsi81lwmbws819b6wr3hm16v84f4" {};
|
CoreOSMakefiles = applePackage "CoreOSMakefiles" "osx-10.5" "0kxp53spbn7109l7cvhi88pmfsi81lwmbws819b6wr3hm16v84f4" {};
|
||||||
Csu = applePackage "Csu" "79" "1hif4dz23isgx85sgh11yg8amvp2ksvvhz3y5v07zppml7df2lnh" {};
|
Csu = applePackage "Csu" "osx-10.10.5" "0yh5mslyx28xzpv8qww14infkylvc1ssi57imhi471fs91sisagj" {};
|
||||||
dtrace = applePackage "dtrace" "118.1" "0pp5x8dgvzmg9vvg32hpy2brm17dpmbwrcr4prsmdmfvd4767wcf" {};
|
dtrace = applePackage "dtrace" "osx-10.10.5" "0pp5x8dgvzmg9vvg32hpy2brm17dpmbwrcr4prsmdmfvd4767wcf" {};
|
||||||
dyld = applePackage "dyld" "239.4" "07z7lyv6x0f6gllb5hymccl31zisrdhz4gqp722xcs9nhsqaqvn7" {};
|
dtracen = applePackage "dtrace" "osx-10.11.2" "04mi0jy8gy0w59rk9i9dqznysv6fzz1v5mq779s41cp308yi0h1c" {};
|
||||||
eap8021x = applePackage "eap8021x" "180" "1ynkq8zmhgqhpkdg2syj085lzya0fz55d3423hvf9kcgpbjcd9ic" {};
|
dyld = applePackage "dyld" "osx-10.10.5" "167f74ln8pmfimwn6kwh199ylvy3fw72fd15da94mf34ii0zar6k" {};
|
||||||
IOKit = applePackage "IOKit" "907.100.13" "0kcbrlyxcyirvg5p95hjd9k8a01k161zg0bsfgfhkb90kh2s8x0m" { inherit IOKitSrcs; };
|
eap8021x = applePackage "eap8021x" "osx-10.10.5" "1f37dpbcgrd1b14nrv2lpqrkap74myjbparz9masx92df6kcn7l2" {};
|
||||||
launchd = applePackage "launchd" "842.92.1" "0w30hvwqq8j5n90s3qyp0fccxflvrmmjnicjri4i1vd2g196jdgj" {};
|
IOKit = applePackage "IOKit" "osx-10.10.5" "0kcbrlyxcyirvg5p95hjd9k8a01k161zg0bsfgfhkb90kh2s8x0m" { inherit IOKitSrcs; };
|
||||||
libauto = applePackage "libauto" "185.5" "17z27yq5d7zfkwr49r7f0vn9pxvj95884sd2k6lq6rfaz9gxqhy3" {};
|
launchd = applePackage "launchd" "osx-10.9.5" "0w30hvwqq8j5n90s3qyp0fccxflvrmmjnicjri4i1vd2g196jdgj" {};
|
||||||
Libc = applePackage "Libc" "997.90.3" "1jz5bx9l4q484vn28c6n9b28psja3rpxiqbj6zwrwvlndzmq1yz5" {};
|
libauto = applePackage "libauto" "osx-10.9.5" "17z27yq5d7zfkwr49r7f0vn9pxvj95884sd2k6lq6rfaz9gxqhy3" {};
|
||||||
Libc_old = applePackage "Libc/825_40_1.nix" "825.40.1" "0xsx1im52gwlmcrv4lnhhhn9dyk5ci6g27k6yvibn9vj8fzjxwcf" {};
|
Libc = applePackage "Libc" "osx-10.9.5" "1jz5bx9l4q484vn28c6n9b28psja3rpxiqbj6zwrwvlndzmq1yz5" {};
|
||||||
libclosure = applePackage "libclosure" "63" "083v5xhihkkajj2yvz0dwgbi0jl2qvzk22p7pqq1zp3ry85xagrx" {};
|
Libc_old = applePackage "Libc/825_40_1.nix" "osx-10.8.5" "0xsx1im52gwlmcrv4lnhhhn9dyk5ci6g27k6yvibn9vj8fzjxwcf" {};
|
||||||
libdispatch = applePackage "libdispatch" "339.92.1" "1lc5033cmkwxy3r26gh9plimxshxfcbgw6i0j7mgjlnpk86iy5bk" {};
|
libclosure = applePackage "libclosure" "osx-10.10.5" "1zqy1zvra46cmqv6vsf1mcsz3a76r9bky145phfwh4ab6y15vjpq" {};
|
||||||
libiconv = applePackage "libiconv" "41" "0sni1gx6i2h7r4r4hhwbxdir45cp039m4wi74izh4l0pfw7gywad" {};
|
libdispatch = applePackage "libdispatch" "osx-10.9.5" "1lc5033cmkwxy3r26gh9plimxshxfcbgw6i0j7mgjlnpk86iy5bk" {};
|
||||||
Libinfo = applePackage "Libinfo" "449.1.3" "1ix6f7xwjnq9bqgv8w27k4j64bqn1mfhh91nc7ciiv55axpdb9hq" {};
|
libiconv = applePackage "libiconv" "osx-10.9.5" "0sni1gx6i2h7r4r4hhwbxdir45cp039m4wi74izh4l0pfw7gywad" {};
|
||||||
Libm = applePackage "Libm" "2026" "02sd82ig2jvvyyfschmb4gpz6psnizri8sh6i982v341x6y4ysl7" {}; # This is from 10.7 !! :(
|
Libinfo = applePackage "Libinfo" "osx-10.10.5" "19n72s652rrqnc9hzlh4xq3h7xsfyjyklmcgyzyj0v0z68ww3z6h" {};
|
||||||
Libnotify = applePackage "Libnotify" "121.20.1" "164rx4za5z74s0mk9x0m1815r1m9kfal8dz3bfaw7figyjd6nqad" {};
|
Libm = applePackage "Libm" "osx-10.7.4" "02sd82ig2jvvyyfschmb4gpz6psnizri8sh6i982v341x6y4ysl7" {};
|
||||||
libpthread = applePackage "libpthread" "105.1.4" "09vwwahcvmxvx2xl0890gkp91n61dld29j73y2pa597bqkag2qpg" {};
|
Libnotify = applePackage "Libnotify" "osx-10.9.5" "164rx4za5z74s0mk9x0m1815r1m9kfal8dz3bfaw7figyjd6nqad" {};
|
||||||
libresolv = applePackage "libresolv" "54" "028mp2smd744ryxwl8cqz4njv8h540sdw3an1yl7yxqcs04r0p4b" {};
|
libpthread = applePackage "libpthread" "osx-10.10.5" "1p2y6xvsfqyakivr6d48fgrd163b5m9r045cxyfwrf8w0r33nfn3" {};
|
||||||
Libsystem = applePackage "Libsystem" "1197.1.1" "1yfj2qdrf9vrzs7p9m4wlb7zzxcrim1gw43x4lvz4qydpp5kg2rh" {};
|
libresolv = applePackage "libresolv" "osx-10.10.5" "0nvssf4qaqgs1dxwayzdy66757k99969f6c7n68n58n2yh6f5f6a" {};
|
||||||
libutil = applePackage "libutil" "38" "12gsvmj342n5d81kqwba68bmz3zf2757442g1sz2y5xmcapa3g5f" {};
|
Libsystem = applePackage "Libsystem" "osx-10.9.5" "1yfj2qdrf9vrzs7p9m4wlb7zzxcrim1gw43x4lvz4qydpp5kg2rh" {};
|
||||||
libunwind = applePackage "libunwind" "35.3" "0miffaa41cv0lzf8az5k1j1ng8jvqvxcr4qrlkf3xyj479arbk1b" {};
|
libutil = applePackage "libutil" "osx-10.10.5" "12gsvmj342n5d81kqwba68bmz3zf2757442g1sz2y5xmcapa3g5f" {};
|
||||||
mDNSResponder = applePackage "mDNSResponder" "522.92.1" "1cp87qda1s7brriv413i71yggm8yqfwv64vknrnqv24fcb8hzbmy" {};
|
libunwind = applePackage "libunwind" "osx-10.10.5" "0miffaa41cv0lzf8az5k1j1ng8jvqvxcr4qrlkf3xyj479arbk1b" {};
|
||||||
objc4 = applePackage "objc4" "551.1" "1jrdb6yyb5jwwj27c1r0nr2y2ihqjln8ynj61mpkvp144c1cm5bg" {};
|
mDNSResponder = applePackage "mDNSResponder" "osx-10.10.5" "1h4jin7ya1ih7v0hksi7gfmbv767pv8wsyyv1qfy2xw36x8wnds7" {};
|
||||||
#objc4_pure = applePackage "objc4/pure.nix" "551.1" "1jrdb6yyb5jwwj27c1r0nr2y2ihqjln8ynj61mpkvp144c1cm5bg" {};
|
objc4 = applePackage "objc4" "osx-10.9.5" "1jrdb6yyb5jwwj27c1r0nr2y2ihqjln8ynj61mpkvp144c1cm5bg" {};
|
||||||
ppp = applePackage "ppp" "727.90.1" "166xz1q7al12hm3q3drlp2r6fgdrsq3pmazjp3nsqg3vnglyh4gk" {};
|
ppp = applePackage "ppp" "osx-10.10.5" "01v7i0xds185glv8psvlffylfcfhbx1wgsfg74kx5rh3lyrigwrb" {};
|
||||||
removefile = applePackage "removefile" "33" "0ycvp7cnv40952a1jyhm258p6gg5xzh30x86z5gb204x80knw30y" {};
|
removefile = applePackage "removefile" "osx-10.10.5" "1f2jw5irq6fz2jv5pag1w2ivfp8659v74f0h8kh0yx0rqw4asm33" {};
|
||||||
Security = applePackage "Security" "55471.14.18" "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {};
|
Security = applePackage "Security" "osx-10.9.5" "1nv0dczf67dhk17hscx52izgdcyacgyy12ag0jh6nl5hmfzsn8yy" {};
|
||||||
xnu = applePackage "xnu" "2422.115.4" "1ssw5fzvgix20bw6y13c39ib0zs7ykpig3irlwbaccpjpci5jl0s" {};
|
xnu = applePackage "xnu" "osx-10.9.5" "1ssw5fzvgix20bw6y13c39ib0zs7ykpig3irlwbaccpjpci5jl0s" {};
|
||||||
|
|
||||||
libsecurity_apple_csp = libsecPackage "libsecurity_apple_csp" "55003" "1ngyn1ik27n4x981px3kfd1z1n8zx7r5w812b6qfjpy5nw4h746w" {};
|
# Pending work... we can't change the above packages in place because the bootstrap depends on them, so we detach the expressions
|
||||||
libsecurity_apple_cspdl = libsecPackage "libsecurity_apple_cspdl" "55000" "1svqa5fhw7p7njzf8bzg7zgc5776aqjhdbnlhpwmr5hmz5i0x8r7" {};
|
# here so we can work on them.
|
||||||
libsecurity_apple_file_dl = libsecPackage "libsecurity_apple_file_dl" "55000" "1dfqani3n135i3iqmafc1k9awmz6s0a78zifhk15rx5a8ps870bl" {};
|
CF_new = applePackage "CF/new.nix" "osx-10.10.5" "1sadmxi9fsvsmdyxvg2133sdzvkzwil50vyyidxsyk1iyfzqsvln" {};
|
||||||
libsecurity_apple_x509_cl = libsecPackage "libsecurity_apple_x509_cl" "55004" "1gji2i080560s08k1nigsla1zdmi6slyv97xaj5vqxjpxb0g1xf5" {};
|
Libc_new = applePackage "Libc/new.nix" "osx-10.10.5" "1jz5bx9l4q484vn08c6n9b28psja3rpxiqbj6zwrwvlndzmq1yz5" {};
|
||||||
libsecurity_apple_x509_tp = libsecPackage "libsecurity_apple_x509_tp" "55009.3" "1bsms3nvi62wbvjviwjhjhzhylad8g6vmvlj3ngd0wyd0ywxrs46" {};
|
libdispatch_new = applePackage "libdispatch/new.nix" "osx-10.10.5" "1lc5033cmkwxy0r26gh9plimxshxfcbgw6i0j7mgjlnpk86iy5bk" {};
|
||||||
libsecurity_asn1 = libsecPackage "libsecurity_asn1" "55000.2" "0i8aakjxdfj0lqcgqmbip32g7r4h57xhs8w0sxfvfl45q22s782w" {};
|
libiconv_new = applePackage "libiconv/new.nix" "osx-10.10.5" "0sni1gx6i2h7r404hhwbxdir45cp039m4wi74izh4l0pfw7gywad" {};
|
||||||
libsecurity_cdsa_client = libsecPackage "libsecurity_cdsa_client" "55000" "127jxnypkycy8zqwicfv333h11318m00gd37jnswbrpg44xd1wdy" {};
|
Libnotify_new = applePackage "Libnotify/new.nix" "osx-10.10.5" "0sni1gx6i2h7r404hhwbxdir45cp039m4wi70izh4l0pfw7gywad" {};
|
||||||
libsecurity_cdsa_plugin = libsecPackage "libsecurity_cdsa_plugin" "55001" "0ifmx85rs51i7zjm015s8kc2dqyrlvbr39lw9xzxgd2ds33i4lfj" {};
|
Libsystem_new = applePackage "Libsystem/new.nix" "osx-10.10.5" "1yfj2qdrf9vrzs7p9m4wlb7zzxcrim10w43x4lvz4qydpp5kg2rh" {};
|
||||||
libsecurity_cdsa_utilities = libsecPackage "libsecurity_cdsa_utilities" "55006" "1kzsl0prvfa8a0m3j3pcxq06aix1csgayd3lzx27iqg84c8mhzan" {};
|
objc4_new = applePackage "objc4/new.nix" "osx-10.10.5" "0r0797ckmgv19if4i14dzyjh7i5klkm9jpacjif9v3rpycyyx1n3" {};
|
||||||
libsecurity_cdsa_utils = libsecPackage "libsecurity_cdsa_utils" "55000" "0q55jizav6n0lkj7lcmcr2mjdhnbnnn525fa9ipwgvzbspihw0g6" {};
|
xnu_new = applePackage "xnu/new.nix" "osx-10.11.2" "1ax280jblz7laqam8fcwrffrrz26am10p1va9mlg9mklvbqarhqh" {};
|
||||||
libsecurity_codesigning = libsecPackage "libsecurity_codesigning" "55037.15" "0vf5nj2g383b4hknlp51qll5pm8z4qbf56dnc16n3wm8gj82iasy" {};
|
|
||||||
libsecurity_cssm = libsecPackage "libsecurity_cssm" "55005.5" "0l6ia533bhr8kqp2wa712bnzzzisif3kbn7h3bzzf4nps4wmwzn4" {};
|
libsecurity_apple_csp = libsecPackage "libsecurity_apple_csp" "osx-10.7.5" "1ngyn1ik27n4x981px3kfd1z1n8zx7r5w812b6qfjpy5nw4h746w" {};
|
||||||
libsecurity_filedb = libsecPackage "libsecurity_filedb" "55016.1" "1r0ik95xapdl6l2lhd079vpq41jjgshz2hqb8490gpy5wyc49cxb" {};
|
libsecurity_apple_cspdl = libsecPackage "libsecurity_apple_cspdl" "osx-10.7.5" "1svqa5fhw7p7njzf8bzg7zgc5776aqjhdbnlhpwmr5hmz5i0x8r7" {};
|
||||||
libsecurity_keychain = libsecPackage "libsecurity_keychain" "55050.9" "15wf2slcgyns61kk7jndgm9h22vidyphh9x15x8viyprra9bkhja" {};
|
libsecurity_apple_file_dl = libsecPackage "libsecurity_apple_file_dl" "osx-10.7.5" "1dfqani3n135i3iqmafc1k9awmz6s0a78zifhk15rx5a8ps870bl" {};
|
||||||
libsecurity_mds = libsecPackage "libsecurity_mds" "55000" "0vin5hnzvkx2rdzaaj2gxmx38amxlyh6j24a8gc22y09d74p5lzs" {};
|
libsecurity_apple_x509_cl = libsecPackage "libsecurity_apple_x509_cl" "osx-10.7.5" "1gji2i080560s08k1nigsla1zdmi6slyv97xaj5vqxjpxb0g1xf5" {};
|
||||||
libsecurity_ocspd = libsecPackage "libsecurity_ocspd" "55010" "1bxzpihc6w0ji4x8810a4lfkq83787yhjl60xm24bv1prhqcm73b" {};
|
libsecurity_apple_x509_tp = libsecPackage "libsecurity_apple_x509_tp" "osx-10.7.5" "1bsms3nvi62wbvjviwjhjhzhylad8g6vmvlj3ngd0wyd0ywxrs46" {};
|
||||||
libsecurity_pkcs12 = libsecPackage "libsecurity_pkcs12" "55000" "1yq8p2sp39q40fxshb256b7jn9lvmpymgpm8yz9kqrf980xddgsg" {};
|
libsecurity_asn1 = libsecPackage "libsecurity_asn1" "osx-10.7.5" "0i8aakjxdfj0lqcgqmbip32g7r4h57xhs8w0sxfvfl45q22s782w" {};
|
||||||
libsecurity_sd_cspdl = libsecPackage "libsecurity_sd_cspdl" "55003" "10v76xycfnvz1n0zqfbwn3yh4w880lbssqhkn23iim3ihxgm5pbd" {};
|
libsecurity_cdsa_client = libsecPackage "libsecurity_cdsa_client" "osx-10.7.5" "127jxnypkycy8zqwicfv333h11318m00gd37jnswbrpg44xd1wdy" {};
|
||||||
libsecurity_utilities = libsecPackage "libsecurity_utilities" "55030.3" "0ayycfy9jm0n0c7ih9f3m69ynh8hs80v8yicq47aa1h9wclbxg8r" {};
|
libsecurity_cdsa_plugin = libsecPackage "libsecurity_cdsa_plugin" "osx-10.7.5" "0ifmx85rs51i7zjm015s8kc2dqyrlvbr39lw9xzxgd2ds33i4lfj" {};
|
||||||
libsecurityd = libsecPackage "libsecurityd" "55004" "1ywm2qj8l7rhaxy5biwxsyavd0d09d4bzchm03nlvwl313p2747x" {};
|
libsecurity_cdsa_utilities = libsecPackage "libsecurity_cdsa_utilities" "osx-10.7.5" "1kzsl0prvfa8a0m3j3pcxq06aix1csgayd3lzx27iqg84c8mhzan" {};
|
||||||
security_dotmac_tp = libsecPackage "security_dotmac_tp" "55107.1" "1l4fi9qhrghj0pkvywi8da22bh06c5bv3l40a621b5g258na50pl" {};
|
libsecurity_cdsa_utils = libsecPackage "libsecurity_cdsa_utils" "osx-10.7.5" "0q55jizav6n0lkj7lcmcr2mjdhnbnnn525fa9ipwgvzbspihw0g6" {};
|
||||||
|
libsecurity_codesigning = libsecPackage "libsecurity_codesigning" "osx-10.7.5" "0vf5nj2g383b4hknlp51qll5pm8z4qbf56dnc16n3wm8gj82iasy" {};
|
||||||
|
libsecurity_cssm = libsecPackage "libsecurity_cssm" "osx-10.7.5" "0l6ia533bhr8kqp2wa712bnzzzisif3kbn7h3bzzf4nps4wmwzn4" {};
|
||||||
|
libsecurity_filedb = libsecPackage "libsecurity_filedb" "osx-10.7.5" "1r0ik95xapdl6l2lhd079vpq41jjgshz2hqb8490gpy5wyc49cxb" {};
|
||||||
|
libsecurity_keychain = libsecPackage "libsecurity_keychain" "osx-10.7.5" "15wf2slcgyns61kk7jndgm9h22vidyphh9x15x8viyprra9bkhja" {};
|
||||||
|
libsecurity_mds = libsecPackage "libsecurity_mds" "osx-10.7.5" "0vin5hnzvkx2rdzaaj2gxmx38amxlyh6j24a8gc22y09d74p5lzs" {};
|
||||||
|
libsecurity_ocspd = libsecPackage "libsecurity_ocspd" "osx-10.7.5" "1bxzpihc6w0ji4x8810a4lfkq83787yhjl60xm24bv1prhqcm73b" {};
|
||||||
|
libsecurity_pkcs12 = libsecPackage "libsecurity_pkcs12" "osx-10.7.5" "1yq8p2sp39q40fxshb256b7jn9lvmpymgpm8yz9kqrf980xddgsg" {};
|
||||||
|
libsecurity_sd_cspdl = libsecPackage "libsecurity_sd_cspdl" "osx-10.7.5" "10v76xycfnvz1n0zqfbwn3yh4w880lbssqhkn23iim3ihxgm5pbd" {};
|
||||||
|
libsecurity_utilities = libsecPackage "libsecurity_utilities" "osx-10.7.5" "0ayycfy9jm0n0c7ih9f3m69ynh8hs80v8yicq47aa1h9wclbxg8r" {};
|
||||||
|
libsecurityd = libsecPackage "libsecurityd" "osx-10.7.5" "1ywm2qj8l7rhaxy5biwxsyavd0d09d4bzchm03nlvwl313p2747x" {};
|
||||||
|
security_dotmac_tp = libsecPackage "security_dotmac_tp" "osx-10.9.5" "1l4fi9qhrghj0pkvywi8da22bh06c5bv3l40a621b5g258na50pl" {};
|
||||||
};
|
};
|
||||||
in packages
|
in packages
|
||||||
|
@ -81,6 +81,8 @@ appleDerivation {
|
|||||||
export HOST_CODESIGN='echo dummy_codesign'
|
export HOST_CODESIGN='echo dummy_codesign'
|
||||||
export HOST_CODESIGN_ALLOCATE=echo
|
export HOST_CODESIGN_ALLOCATE=echo
|
||||||
|
|
||||||
|
export BUILT_PRODUCTS_DIR=.
|
||||||
|
|
||||||
export DSTROOT=$out
|
export DSTROOT=$out
|
||||||
make installhdrs
|
make installhdrs
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, autoconf, automake, libtool_2
|
{ stdenv, fetchFromGitHub, autoconf, automake, libtool_2
|
||||||
, llvm, libcxx, libcxxabi, clang, openssl, libuuid
|
, llvm, libcxx, libcxxabi, clang, openssl, libuuid
|
||||||
, libobjc ? null
|
, libobjc ? null
|
||||||
}:
|
}:
|
||||||
@ -6,16 +6,13 @@
|
|||||||
let
|
let
|
||||||
baseParams = rec {
|
baseParams = rec {
|
||||||
name = "cctools-port-${version}";
|
name = "cctools-port-${version}";
|
||||||
version = "862";
|
version = "877.5";
|
||||||
|
|
||||||
src = let
|
src = fetchFromGitHub {
|
||||||
# Should be fetchFromGitHub but it was whining so this will do for now
|
|
||||||
owner = "tpoechtrager";
|
owner = "tpoechtrager";
|
||||||
repo = "cctools-port";
|
repo = "cctools-port";
|
||||||
rev = "59d21d2c793c51d205c8b4ab14b9b28e63c72445";
|
rev = "7d405492b09fa27546caaa989b8493829365deab";
|
||||||
in fetchurl {
|
sha256 = "0nj1q5bqdx5jm68dispybxc7wnkb6p8p2igpnap9q6qyv2r9p07w";
|
||||||
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
|
|
||||||
sha256 = "01f31ijpnplbiyp7ldwzy8vbkn3j3m56n5blsvsav5nlp4lp2g71";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ autoconf automake libtool_2 openssl libuuid ] ++
|
buildInputs = [ autoconf automake libtool_2 openssl libuuid ] ++
|
||||||
@ -59,6 +56,8 @@ let
|
|||||||
sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' cctools/autogen.sh
|
sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' cctools/autogen.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# TODO: this builds an ld without support for LLVM's LTO. We need to teach it, but that's rather
|
||||||
|
# hairy to handle during bootstrap. Perhaps it could be optional?
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
cd cctools
|
cd cctools
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Fixes support for gcrypt 1.6+
|
# Fixes support for gcrypt 1.6+
|
||||||
patches = [ ./gcrypt-fix.patch ];
|
patches = [ ./gcrypt-fix.patch ./freebsd-unistd.patch ];
|
||||||
|
|
||||||
buildInputs = [ libgcrypt libgpgerror libtasn1 optPam optLibidn optGnutls ];
|
buildInputs = [ libgcrypt libgpgerror libtasn1 optPam optLibidn optGnutls ];
|
||||||
|
|
||||||
|
12
pkgs/servers/shishi/freebsd-unistd.patch
Normal file
12
pkgs/servers/shishi/freebsd-unistd.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/gl/unistd.in.h b/gl/unistd.in.h
|
||||||
|
index 2ea9af4..ed58960 100644
|
||||||
|
--- a/gl/unistd.in.h
|
||||||
|
+++ b/gl/unistd.in.h
|
||||||
|
@@ -116,6 +116,7 @@
|
||||||
|
# include <getopt.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#include "config.h"
|
||||||
|
_GL_INLINE_HEADER_BEGIN
|
||||||
|
#ifndef _GL_UNISTD_INLINE
|
||||||
|
# define _GL_UNISTD_INLINE _GL_INLINE
|
@ -787,6 +787,16 @@ let
|
|||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
}) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
|
}) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
|
||||||
|
|
||||||
|
libXfont2 = (mkDerivation "libXfont2" {
|
||||||
|
name = "libXfont2-2.0.1";
|
||||||
|
builder = ./builder.sh;
|
||||||
|
src = fetchurl {
|
||||||
|
url = mirror://xorg/individual/lib/libXfont2-2.0.1.tar.bz2;
|
||||||
|
sha256 = "0znvwk36nhmyqpmhbm9mzisgixp1mp5qkfald8x1n5yxbm3vpyz9";
|
||||||
|
};
|
||||||
|
buildInputs = [pkgconfig libfontenc fontsproto freetype xproto xtrans zlib ];
|
||||||
|
}) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
|
||||||
|
|
||||||
libXft = (mkDerivation "libXft" {
|
libXft = (mkDerivation "libXft" {
|
||||||
name = "libXft-2.3.2";
|
name = "libXft-2.3.2";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
@ -799,11 +809,11 @@ let
|
|||||||
}) // {inherit fontconfig freetype libX11 xproto libXrender ;};
|
}) // {inherit fontconfig freetype libX11 xproto libXrender ;};
|
||||||
|
|
||||||
libXi = (mkDerivation "libXi" {
|
libXi = (mkDerivation "libXi" {
|
||||||
name = "libXi-1.7.5";
|
name = "libXi-1.7.6";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://xorg/individual/lib/libXi-1.7.5.tar.bz2;
|
url = mirror://xorg/individual/lib/libXi-1.7.6.tar.bz2;
|
||||||
sha256 = "0ad21jy40d8b2f9ldadx7lkspmvka1i9r5jqqfwxdxyqnpgdfr6r";
|
sha256 = "1b5p0l19ynmd6blnqr205wyngh6fagl35nqb4v05dw60rr9aachz";
|
||||||
};
|
};
|
||||||
buildInputs = [pkgconfig inputproto libX11 libXext xextproto libXfixes xproto ];
|
buildInputs = [pkgconfig inputproto libX11 libXext xextproto libXfixes xproto ];
|
||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
@ -1591,11 +1601,11 @@ let
|
|||||||
}) // {inherit inputproto xorgserver xproto ;};
|
}) // {inherit inputproto xorgserver xproto ;};
|
||||||
|
|
||||||
xf86inputlibinput = (mkDerivation "xf86inputlibinput" {
|
xf86inputlibinput = (mkDerivation "xf86inputlibinput" {
|
||||||
name = "xf86-input-libinput-0.15.0";
|
name = "xf86-input-libinput-0.16.0";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://xorg/individual/driver/xf86-input-libinput-0.15.0.tar.bz2;
|
url = mirror://xorg/individual/driver/xf86-input-libinput-0.16.0.tar.bz2;
|
||||||
sha256 = "0hcs05zx9mpyi9wajsps9qsbyq4v0c9wysp2l48qnr4l8587qw18";
|
sha256 = "0jbgnxsbr3g4g9vkspcc6pqy7av59zx5bb78vkvaqy8yx4qybbgx";
|
||||||
};
|
};
|
||||||
buildInputs = [pkgconfig inputproto xorgserver xproto ];
|
buildInputs = [pkgconfig inputproto xorgserver xproto ];
|
||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
@ -1855,11 +1865,11 @@ let
|
|||||||
}) // {inherit fontsproto randrproto renderproto videoproto xorgserver xproto ;};
|
}) // {inherit fontsproto randrproto renderproto videoproto xorgserver xproto ;};
|
||||||
|
|
||||||
xf86videonouveau = (mkDerivation "xf86videonouveau" {
|
xf86videonouveau = (mkDerivation "xf86videonouveau" {
|
||||||
name = "xf86-video-nouveau-1.0.11";
|
name = "xf86-video-nouveau-1.0.12";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://xorg/individual/driver/xf86-video-nouveau-1.0.11.tar.bz2;
|
url = mirror://xorg/individual/driver/xf86-video-nouveau-1.0.12.tar.bz2;
|
||||||
sha256 = "0j3847rnffy81iaxxi6vnd8saadrc9jahfmckr0sjgkzg2rf4kzq";
|
sha256 = "07irv1zkk0rkyn1d7f2gn1icgcz2ix0pwv74sjian763gynmg80f";
|
||||||
};
|
};
|
||||||
buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
|
buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
|
||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
@ -1909,6 +1919,16 @@ let
|
|||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
}) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ;};
|
}) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ;};
|
||||||
|
|
||||||
|
xf86videorendition = (mkDerivation "xf86videorendition" {
|
||||||
|
name = "xf86-video-rendition-4.2.6";
|
||||||
|
builder = ./builder.sh;
|
||||||
|
src = fetchurl {
|
||||||
|
url = mirror://xorg/individual/driver/xf86-video-rendition-4.2.6.tar.bz2;
|
||||||
|
sha256 = "1a7rqafxzc2hd0s5pnq8s8j9d3jg64ndc0xnq4160kasyqhwy3k6";
|
||||||
|
};
|
||||||
|
buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
|
||||||
|
}) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
|
||||||
|
|
||||||
xf86videos3virge = (mkDerivation "xf86videos3virge" {
|
xf86videos3virge = (mkDerivation "xf86videos3virge" {
|
||||||
name = "xf86-video-s3virge-1.10.7";
|
name = "xf86-video-s3virge-1.10.7";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
@ -2207,11 +2227,11 @@ let
|
|||||||
}) // {inherit inputproto libX11 libXaw xproto libXt ;};
|
}) // {inherit inputproto libX11 libXaw xproto libXt ;};
|
||||||
|
|
||||||
xkeyboardconfig = (mkDerivation "xkeyboardconfig" {
|
xkeyboardconfig = (mkDerivation "xkeyboardconfig" {
|
||||||
name = "xkeyboard-config-2.15";
|
name = "xkeyboard-config-2.16";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.15.tar.bz2;
|
url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.16.tar.bz2;
|
||||||
sha256 = "1grqdy5a9f2dii3y24fn0p3kz4q5g9j2kh3jcj2402rgrbvkqi0f";
|
sha256 = "0n0xinsljc5mww1qw7dfp8knv0f1r9hs6pdhl0fggdwn5hhiz2hy";
|
||||||
};
|
};
|
||||||
buildInputs = [pkgconfig libX11 xproto ];
|
buildInputs = [pkgconfig libX11 xproto ];
|
||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
@ -2295,11 +2315,11 @@ let
|
|||||||
}) // {inherit libX11 xproto ;};
|
}) // {inherit libX11 xproto ;};
|
||||||
|
|
||||||
xorgcffiles = (mkDerivation "xorgcffiles" {
|
xorgcffiles = (mkDerivation "xorgcffiles" {
|
||||||
name = "xorg-cf-files-1.0.5";
|
name = "xorg-cf-files-1.0.6";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = mirror://xorg/individual/util/xorg-cf-files-1.0.5.tar.bz2;
|
url = mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2;
|
||||||
sha256 = "1m3ypq0xcy46ghxc0svl1rbhpy3zvgmy0aa2mn7w7v7d8d8bh8zd";
|
sha256 = "0kckng0zs1viz0nr84rdl6dswgip7ndn4pnh5nfwnviwpsfmmksd";
|
||||||
};
|
};
|
||||||
buildInputs = [pkgconfig ];
|
buildInputs = [pkgconfig ];
|
||||||
meta.platforms = stdenv.lib.platforms.unix;
|
meta.platforms = stdenv.lib.platforms.unix;
|
||||||
|
@ -12,4 +12,4 @@ mirror://xorg/individual/proto/xf86miscproto-0.9.3.tar.bz2
|
|||||||
mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2
|
mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2
|
||||||
mirror://xorg/individual/util/imake-1.0.7.tar.bz2
|
mirror://xorg/individual/util/imake-1.0.7.tar.bz2
|
||||||
mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
|
mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
|
||||||
mirror://xorg/individual/util/xorg-cf-files-1.0.5.tar.bz2
|
mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2
|
||||||
|
@ -69,8 +69,9 @@ mirror://xorg/individual/lib/libXdmcp-1.1.2.tar.bz2
|
|||||||
mirror://xorg/individual/lib/libXext-1.3.3.tar.bz2
|
mirror://xorg/individual/lib/libXext-1.3.3.tar.bz2
|
||||||
mirror://xorg/individual/lib/libXfixes-5.0.1.tar.bz2
|
mirror://xorg/individual/lib/libXfixes-5.0.1.tar.bz2
|
||||||
mirror://xorg/individual/lib/libXfont-1.5.1.tar.bz2
|
mirror://xorg/individual/lib/libXfont-1.5.1.tar.bz2
|
||||||
|
mirror://xorg/individual/lib/libXfont2-2.0.1.tar.bz2
|
||||||
mirror://xorg/individual/lib/libXft-2.3.2.tar.bz2
|
mirror://xorg/individual/lib/libXft-2.3.2.tar.bz2
|
||||||
mirror://xorg/individual/lib/libXi-1.7.5.tar.bz2
|
mirror://xorg/individual/lib/libXi-1.7.6.tar.bz2
|
||||||
mirror://xorg/individual/lib/libXinerama-1.1.3.tar.bz2
|
mirror://xorg/individual/lib/libXinerama-1.1.3.tar.bz2
|
||||||
mirror://xorg/individual/lib/libxkbfile-1.0.9.tar.bz2
|
mirror://xorg/individual/lib/libxkbfile-1.0.9.tar.bz2
|
||||||
mirror://xorg/individual/lib/libXmu-1.1.2.tar.bz2
|
mirror://xorg/individual/lib/libXmu-1.1.2.tar.bz2
|
||||||
@ -118,19 +119,19 @@ mirror://xorg/individual/proto/xextproto-7.3.0.tar.bz2
|
|||||||
mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-1.2.0.tar.bz2
|
mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-1.2.0.tar.bz2
|
||||||
mirror://xorg/X11R7.7/src/everything/xf86dgaproto-2.1.tar.bz2
|
mirror://xorg/X11R7.7/src/everything/xf86dgaproto-2.1.tar.bz2
|
||||||
mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2
|
mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-evdev-2.9.2.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-evdev-2.10.0.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-keyboard-1.8.1.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-keyboard-1.8.1.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-libinput-0.14.0.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-libinput-0.16.0.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-mouse-1.9.1.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-mouse-1.9.1.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-synaptics-1.8.2.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-synaptics-1.8.3.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-input-void-1.4.1.tar.bz2
|
mirror://xorg/individual/driver/xf86-input-void-1.4.1.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-ast-1.1.5.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-ast-1.1.5.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-ati-7.5.0.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-ati-7.6.1.tar.bz2
|
||||||
mirror://xorg/individual/driver/glamor-egl-0.6.0.tar.bz2
|
mirror://xorg/individual/driver/glamor-egl-0.6.0.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-nouveau-1.0.11.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-nouveau-1.0.12.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-chips-1.2.6.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-chips-1.2.6.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
|
||||||
@ -150,6 +151,7 @@ mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2
|
|||||||
mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-r128-6.10.0.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-r128-6.10.0.tar.bz2
|
||||||
|
mirror://xorg/individual/driver/xf86-video-rendition-4.2.6.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-s3virge-1.10.7.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-s3virge-1.10.7.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-savage-2.3.8.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-savage-2.3.8.tar.bz2
|
||||||
mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.8.tar.bz2
|
mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.8.tar.bz2
|
||||||
@ -170,11 +172,11 @@ mirror://xorg/individual/app/xgamma-1.0.6.tar.bz2
|
|||||||
mirror://xorg/individual/app/xgc-1.0.5.tar.bz2
|
mirror://xorg/individual/app/xgc-1.0.5.tar.bz2
|
||||||
mirror://xorg/individual/app/xhost-1.0.7.tar.bz2
|
mirror://xorg/individual/app/xhost-1.0.7.tar.bz2
|
||||||
mirror://xorg/X11R7.7/src/everything/xineramaproto-1.2.1.tar.bz2
|
mirror://xorg/X11R7.7/src/everything/xineramaproto-1.2.1.tar.bz2
|
||||||
mirror://xorg/individual/app/xinput-1.6.1.tar.bz2
|
mirror://xorg/individual/app/xinput-1.6.2.tar.bz2
|
||||||
mirror://xorg/individual/app/xkbcomp-1.3.0.tar.bz2
|
mirror://xorg/individual/app/xkbcomp-1.3.1.tar.bz2
|
||||||
mirror://xorg/individual/app/xkbevd-1.1.4.tar.bz2
|
mirror://xorg/individual/app/xkbevd-1.1.4.tar.bz2
|
||||||
mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2
|
mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2
|
||||||
mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.15.tar.bz2
|
mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.16.tar.bz2
|
||||||
mirror://xorg/individual/app/xkill-1.0.4.tar.bz2
|
mirror://xorg/individual/app/xkill-1.0.4.tar.bz2
|
||||||
mirror://xorg/individual/app/xlsatoms-1.1.2.tar.bz2
|
mirror://xorg/individual/app/xlsatoms-1.1.2.tar.bz2
|
||||||
mirror://xorg/individual/app/xlsclients-1.1.3.tar.bz2
|
mirror://xorg/individual/app/xlsclients-1.1.3.tar.bz2
|
||||||
@ -182,7 +184,7 @@ mirror://xorg/individual/app/xlsfonts-1.0.5.tar.bz2
|
|||||||
mirror://xorg/individual/app/xmag-1.0.6.tar.bz2
|
mirror://xorg/individual/app/xmag-1.0.6.tar.bz2
|
||||||
mirror://xorg/individual/app/xmodmap-1.0.9.tar.bz2
|
mirror://xorg/individual/app/xmodmap-1.0.9.tar.bz2
|
||||||
mirror://xorg/individual/doc/xorg-docs-1.7.1.tar.bz2
|
mirror://xorg/individual/doc/xorg-docs-1.7.1.tar.bz2
|
||||||
mirror://xorg/individual/xserver/xorg-server-1.17.2.tar.bz2
|
mirror://xorg/individual/xserver/xorg-server-1.17.4.tar.bz2
|
||||||
mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
|
mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
|
||||||
mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
|
mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
|
||||||
mirror://xorg/individual/app/xprop-1.2.2.tar.bz2
|
mirror://xorg/individual/app/xprop-1.2.2.tar.bz2
|
||||||
|
@ -33,6 +33,8 @@ rec {
|
|||||||
pkgs = stdenvNativePkgs;
|
pkgs = stdenvNativePkgs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
stdenvFreeBSD = (import ./freebsd { inherit system allPackages platform config; }).stdenvFreeBSD;
|
||||||
|
|
||||||
# Linux standard environment.
|
# Linux standard environment.
|
||||||
stdenvLinux = (import ./linux { inherit system allPackages platform config lib; }).stdenvLinux;
|
stdenvLinux = (import ./linux { inherit system allPackages platform config lib; }).stdenvLinux;
|
||||||
|
|
||||||
@ -51,5 +53,6 @@ rec {
|
|||||||
if system == "x86_64-solaris" then stdenvNix else
|
if system == "x86_64-solaris" then stdenvNix else
|
||||||
if system == "i686-cygwin" then stdenvNative else
|
if system == "i686-cygwin" then stdenvNative else
|
||||||
if system == "x86_64-cygwin" then stdenvNative else
|
if system == "x86_64-cygwin" then stdenvNative else
|
||||||
|
if system == "x86_64-freebsd" then stdenvFreeBSD else
|
||||||
stdenvNative;
|
stdenvNative;
|
||||||
}
|
}
|
||||||
|
65
pkgs/stdenv/freebsd/default.nix
Normal file
65
pkgs/stdenv/freebsd/default.nix
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{ system ? builtins.currentSystem
|
||||||
|
, allPackages ? import ../../top-level/all-packages.nix
|
||||||
|
, platform ? null
|
||||||
|
, config ? {}
|
||||||
|
}:
|
||||||
|
|
||||||
|
rec {
|
||||||
|
allPackages = import ../../top-level/all-packages.nix;
|
||||||
|
|
||||||
|
bootstrapTools = derivation {
|
||||||
|
inherit system;
|
||||||
|
|
||||||
|
name = "trivial-bootstrap-tools";
|
||||||
|
builder = "/usr/local/bin/bash";
|
||||||
|
args = [ ./trivial-bootstrap.sh ];
|
||||||
|
|
||||||
|
mkdir = "/bin/mkdir";
|
||||||
|
ln = "/bin/ln";
|
||||||
|
};
|
||||||
|
|
||||||
|
fetchurl = import ../../build-support/fetchurl {
|
||||||
|
stdenv = import ../generic {
|
||||||
|
name = "stdenv-freebsd-boot-1";
|
||||||
|
inherit system config;
|
||||||
|
|
||||||
|
initialPath = [ "/" "/usr" ];
|
||||||
|
shell = "${bootstrapTools}/bin/bash";
|
||||||
|
fetchurlBoot = null;
|
||||||
|
cc = null;
|
||||||
|
};
|
||||||
|
curl = bootstrapTools;
|
||||||
|
};
|
||||||
|
|
||||||
|
stdenvFreeBSD = import ../generic {
|
||||||
|
name = "stdenv-freebsd-boot-3";
|
||||||
|
|
||||||
|
inherit system config;
|
||||||
|
|
||||||
|
initialPath = [ bootstrapTools ];
|
||||||
|
shell = "${bootstrapTools}/bin/bash";
|
||||||
|
fetchurlBoot = fetchurl;
|
||||||
|
|
||||||
|
cc = import ../../build-support/cc-wrapper {
|
||||||
|
nativeTools = true;
|
||||||
|
nativePrefix = "/usr";
|
||||||
|
nativeLibc = true;
|
||||||
|
stdenv = import ../generic {
|
||||||
|
inherit system config;
|
||||||
|
name = "stdenv-freebsd-boot-0";
|
||||||
|
initialPath = [ bootstrapTools ];
|
||||||
|
shell = stdenvFreeBSD.shell;
|
||||||
|
fetchurlBoot = fetchurl;
|
||||||
|
cc = null;
|
||||||
|
};
|
||||||
|
cc = {
|
||||||
|
name = "clang-9.9.9";
|
||||||
|
cc = "/usr";
|
||||||
|
outPath = "/usr";
|
||||||
|
};
|
||||||
|
isClang = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
preHook = ''export NIX_NO_SELF_RPATH=1'';
|
||||||
|
};
|
||||||
|
}
|
204
pkgs/stdenv/freebsd/trivial-bootstrap.sh
Normal file
204
pkgs/stdenv/freebsd/trivial-bootstrap.sh
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
set -e
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
echo Building the trivial bootstrap environment...
|
||||||
|
echo
|
||||||
|
echo Needed FreeBSD packages:
|
||||||
|
echo findutils gcpio gawk gnugrep coreutils bash gsed gtar gmake xar binutils gpatch lbzip2 diffutils
|
||||||
|
|
||||||
|
$mkdir -p $out/bin
|
||||||
|
|
||||||
|
ln () {
|
||||||
|
if [ ! -z "${2:-}" ]; then
|
||||||
|
if [ -f "$out/bin/$2" ]; then
|
||||||
|
echo "$2 exists"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test ! -f "$1"; then
|
||||||
|
echo Target "$2" does not exist
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# TODO: check that destination directory exists
|
||||||
|
if [ ! -z "${2:-}" ]; then
|
||||||
|
$ln -s "$1" "$out/bin/$2"
|
||||||
|
else
|
||||||
|
$ln -s "$1" "$out/bin/"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ln /usr/local/bin/bash
|
||||||
|
ln /bin/sh
|
||||||
|
|
||||||
|
ln /usr/local/bin/gmake make
|
||||||
|
|
||||||
|
ln /usr/local/bin/lbzip2
|
||||||
|
|
||||||
|
ln /usr/local/bin/gdiff diff
|
||||||
|
|
||||||
|
ln /usr/bin/locale
|
||||||
|
|
||||||
|
ln /usr/bin/more
|
||||||
|
|
||||||
|
ln /usr/bin/hexdump # for bitcoin
|
||||||
|
|
||||||
|
ln /usr/bin/bzip2
|
||||||
|
ln /usr/bin/bunzip2
|
||||||
|
ln /usr/bin/bzcat
|
||||||
|
ln /usr/bin/bzip2recover
|
||||||
|
|
||||||
|
ln /usr/bin/xz
|
||||||
|
ln /usr/bin/unxz
|
||||||
|
ln /usr/bin/xzcat
|
||||||
|
ln /usr/bin/lzma
|
||||||
|
ln /usr/bin/unlzma
|
||||||
|
ln /usr/bin/lzcat
|
||||||
|
|
||||||
|
ln /usr/local/bin/gcp cp
|
||||||
|
ln /usr/local/bin/gdd dd
|
||||||
|
ln /usr/local/bin/gmv mv
|
||||||
|
ln /usr/local/bin/grm rm
|
||||||
|
ln /usr/local/bin/gls ls
|
||||||
|
ln /bin/ps ps
|
||||||
|
ln /usr/local/bin/gcat cat
|
||||||
|
ln /usr/local/bin/gecho echo
|
||||||
|
ln /usr/local/bin/gexpr expr
|
||||||
|
ln /usr/local/bin/gtest test
|
||||||
|
ln /usr/local/bin/gdate date
|
||||||
|
ln /usr/local/bin/gchmod chmod
|
||||||
|
ln /usr/local/bin/grmdir rmdir
|
||||||
|
ln /usr/local/bin/gsleep sleep
|
||||||
|
ln /bin/hostname hostname
|
||||||
|
|
||||||
|
ln /usr/local/bin/gid id
|
||||||
|
ln /usr/local/bin/god od
|
||||||
|
ln /usr/local/bin/gtr tr
|
||||||
|
ln /usr/local/bin/gwc wc
|
||||||
|
ln /usr/local/bin/gcut cut
|
||||||
|
ln /usr/bin/cmp cmp
|
||||||
|
ln /usr/local/bin/gsed sed
|
||||||
|
ln /usr/local/bin/gtar tar
|
||||||
|
ln /usr/local/bin/xar xar
|
||||||
|
ln /usr/local/bin/gawk awk
|
||||||
|
ln /usr/local/bin/genv env
|
||||||
|
ln /usr/local/bin/gtee tee
|
||||||
|
ln /usr/local/bin/gcomm comm
|
||||||
|
ln /usr/local/bin/gcpio cpio
|
||||||
|
ln /usr/local/bin/curl curl
|
||||||
|
ln /usr/local/bin/gfind find
|
||||||
|
ln /usr/local/bin/grep grep # other grep is in /usr/bin
|
||||||
|
ln /usr/bin/gzip
|
||||||
|
ln /usr/bin/gunzip
|
||||||
|
ln /usr/bin/zcat
|
||||||
|
ln /usr/local/bin/ghead head
|
||||||
|
ln /usr/bin/tail tail # note that we are not using gtail!!!
|
||||||
|
ln /usr/local/bin/guniq uniq
|
||||||
|
ln /usr/bin/less less
|
||||||
|
ln /usr/local/bin/gtrue true
|
||||||
|
# ln /usr/bin/diff diff # we are using gdiff (see above)
|
||||||
|
ln /usr/local/bin/egrep egrep
|
||||||
|
ln /usr/local/bin/fgrep fgrep
|
||||||
|
ln /usr/local/bin/gpatch patch
|
||||||
|
ln /usr/local/bin/guname uname
|
||||||
|
ln /usr/local/bin/gtouch touch
|
||||||
|
ln /usr/local/bin/gsplit split
|
||||||
|
ln /usr/local/bin/gxargs xargs
|
||||||
|
ln /usr/bin/which which
|
||||||
|
ln /usr/local/bin/ginstall install
|
||||||
|
ln /usr/local/bin/gbasename basename
|
||||||
|
ln /usr/local/bin/gdirname dirname
|
||||||
|
ln /usr/local/bin/greadlink readlink
|
||||||
|
|
||||||
|
ln /usr/local/bin/gln ln
|
||||||
|
ln /usr/local/bin/gyes yes
|
||||||
|
ln /usr/local/bin/gwhoami whoami
|
||||||
|
ln /usr/local/bin/gvdir vdir
|
||||||
|
ln /usr/local/bin/gusers users
|
||||||
|
ln /usr/local/bin/guptime uptime
|
||||||
|
ln /usr/local/bin/gunlink unlink
|
||||||
|
ln /usr/local/bin/gtty tty
|
||||||
|
ln /usr/local/bin/gunexpand unexpand
|
||||||
|
ln /usr/local/bin/gtsort tsort
|
||||||
|
ln /usr/local/bin/gtruncate truncate
|
||||||
|
ln /usr/local/bin/gtimeout timeout
|
||||||
|
ln /usr/local/bin/gtac tac
|
||||||
|
ln /usr/local/bin/gsync sync
|
||||||
|
ln /usr/local/bin/gsum sum
|
||||||
|
ln /usr/local/bin/gstty stty
|
||||||
|
ln /usr/local/bin/gstdbuf stdbuf
|
||||||
|
ln /usr/local/bin/gsort sort
|
||||||
|
ln /usr/local/bin/gruncon runcon
|
||||||
|
ln /usr/local/bin/gseq seq
|
||||||
|
ln /usr/local/bin/gsha1sum sha1sum
|
||||||
|
ln /usr/local/bin/gsha224sum sha224sum
|
||||||
|
ln /usr/local/bin/gsha256sum sha256sum
|
||||||
|
ln /usr/local/bin/gsha384sum sha384sum
|
||||||
|
ln /usr/local/bin/gsha512sum sha512sum
|
||||||
|
ln /usr/local/bin/gshred shred
|
||||||
|
ln /usr/local/bin/gshuf shuf
|
||||||
|
ln /usr/local/bin/grealpath realpath
|
||||||
|
ln "/usr/local/bin/g[" "["
|
||||||
|
ln /usr/local/bin/gbase64 base64
|
||||||
|
ln /usr/local/bin/gchcon chcon
|
||||||
|
ln /usr/local/bin/gchgrp chgrp
|
||||||
|
ln /usr/local/bin/gchown chown
|
||||||
|
ln /usr/local/bin/gchroot chroot
|
||||||
|
ln /usr/local/bin/gcksum cksum
|
||||||
|
ln /usr/local/bin/gcsplit csplit
|
||||||
|
ln /usr/local/bin/gdf df
|
||||||
|
ln /usr/local/bin/gdircolors dircolors
|
||||||
|
ln /usr/local/bin/gdu du
|
||||||
|
ln /usr/local/bin/gexpand expand
|
||||||
|
ln /usr/local/bin/gfactor factor
|
||||||
|
ln /usr/local/bin/gfalse false
|
||||||
|
ln /usr/local/bin/gfmt fmt
|
||||||
|
ln /usr/local/bin/gfold fold
|
||||||
|
ln /usr/local/bin/ggroups groups
|
||||||
|
ln /usr/local/bin/ghostid hostid
|
||||||
|
ln /usr/local/bin/gjoin join
|
||||||
|
ln /usr/local/bin/gkill kill
|
||||||
|
ln /usr/local/bin/glink link
|
||||||
|
ln /usr/local/bin/glogname logname
|
||||||
|
ln /usr/local/bin/gmd5sum md5sum
|
||||||
|
ln /usr/local/bin/gmkdir mkdir
|
||||||
|
ln /usr/local/bin/gmkfifo mkfifo
|
||||||
|
ln /usr/local/bin/gmknod mknod
|
||||||
|
ln /usr/local/bin/gmktemp mktemp
|
||||||
|
ln /usr/local/bin/gnice nice
|
||||||
|
ln /usr/local/bin/gnl nl
|
||||||
|
ln /usr/local/bin/gnohup nohup
|
||||||
|
ln /usr/local/bin/gnproc nproc
|
||||||
|
ln /usr/local/bin/gnumfmt numfmt
|
||||||
|
ln /usr/local/bin/gnustat nustat
|
||||||
|
ln /usr/local/bin/gpaste paste
|
||||||
|
ln /usr/local/bin/gpathchk pathchk
|
||||||
|
ln /usr/local/bin/gpinky pinky
|
||||||
|
ln /usr/local/bin/gpr pr
|
||||||
|
ln /usr/local/bin/gprintenv printenv
|
||||||
|
ln /usr/local/bin/gprintf printf
|
||||||
|
ln /usr/local/bin/gptx ptx
|
||||||
|
ln /usr/local/bin/gpwd pwd
|
||||||
|
|
||||||
|
# binutils
|
||||||
|
# pkg info -l binutils | grep usr/local/bin
|
||||||
|
ln /usr/local/bin/addr2line
|
||||||
|
ln /usr/local/bin/ar
|
||||||
|
ln /usr/local/bin/as
|
||||||
|
ln /usr/local/bin/c++filt
|
||||||
|
ln /usr/local/bin/dwp
|
||||||
|
ln /usr/local/bin/elfedit
|
||||||
|
ln /usr/local/bin/gprof
|
||||||
|
ln /usr/local/bin/ld
|
||||||
|
ln /usr/local/bin/ld.bfd
|
||||||
|
ln /usr/local/bin/ld.gold
|
||||||
|
ln /usr/local/bin/nm
|
||||||
|
ln /usr/local/bin/objcopy
|
||||||
|
ln /usr/local/bin/objdump
|
||||||
|
ln /usr/local/bin/ranlib
|
||||||
|
ln /usr/local/bin/readelf
|
||||||
|
ln /usr/local/bin/size
|
||||||
|
ln /usr/local/bin/strings
|
||||||
|
ln /usr/local/bin/strip
|
||||||
|
|
||||||
|
#pkg info -l llvm37 | grep usr/local/bin
|
@ -84,6 +84,7 @@ let
|
|||||||
../../build-support/setup-hooks/patch-shebangs.sh
|
../../build-support/setup-hooks/patch-shebangs.sh
|
||||||
../../build-support/setup-hooks/move-sbin.sh
|
../../build-support/setup-hooks/move-sbin.sh
|
||||||
../../build-support/setup-hooks/move-lib64.sh
|
../../build-support/setup-hooks/move-lib64.sh
|
||||||
|
../../build-support/setup-hooks/set-source-date-epoch-to-latest.sh
|
||||||
cc
|
cc
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -184,6 +184,14 @@ installBin() {
|
|||||||
# Initialisation.
|
# Initialisation.
|
||||||
|
|
||||||
|
|
||||||
|
# Set a fallback default value for SOURCE_DATE_EPOCH, used by some
|
||||||
|
# build tools to provide a deterministic substitute for the "current"
|
||||||
|
# time. Note that 1 = 1970-01-01 00:00:01. We don't use 0 because it
|
||||||
|
# confuses some applications.
|
||||||
|
export SOURCE_DATE_EPOCH
|
||||||
|
: ${SOURCE_DATE_EPOCH:=1}
|
||||||
|
|
||||||
|
|
||||||
# Wildcard expansions that don't match should expand to an empty list.
|
# Wildcard expansions that don't match should expand to an empty list.
|
||||||
# This ensures that, for instance, "for i in *; do ...; done" does the
|
# This ensures that, for instance, "for i in *; do ...; done" does the
|
||||||
# right thing.
|
# right thing.
|
||||||
@ -612,12 +620,8 @@ fixLibtool() {
|
|||||||
configurePhase() {
|
configurePhase() {
|
||||||
runHook preConfigure
|
runHook preConfigure
|
||||||
|
|
||||||
if [ -z "$configureScript" ]; then
|
if [ -z "$configureScript" -a -x ./configure ]; then
|
||||||
configureScript=./configure
|
configureScript=./configure
|
||||||
if ! [ -x $configureScript ]; then
|
|
||||||
echo "no configure script, doing nothing"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$dontFixLibtool" ]; then
|
if [ -z "$dontFixLibtool" ]; then
|
||||||
@ -645,8 +649,12 @@ configurePhase() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "configure flags: $configureFlags ${configureFlagsArray[@]}"
|
if [ -n "$configureScript" ]; then
|
||||||
$configureScript $configureFlags "${configureFlagsArray[@]}"
|
echo "configure flags: $configureFlags ${configureFlagsArray[@]}"
|
||||||
|
$configureScript $configureFlags "${configureFlagsArray[@]}"
|
||||||
|
else
|
||||||
|
echo "no configure script, doing nothing"
|
||||||
|
fi
|
||||||
|
|
||||||
runHook postConfigure
|
runHook postConfigure
|
||||||
}
|
}
|
||||||
@ -657,18 +665,17 @@ buildPhase() {
|
|||||||
|
|
||||||
if [ -z "$makeFlags" ] && ! [ -n "$makefile" -o -e "Makefile" -o -e "makefile" -o -e "GNUmakefile" ]; then
|
if [ -z "$makeFlags" ] && ! [ -n "$makefile" -o -e "Makefile" -o -e "makefile" -o -e "GNUmakefile" ]; then
|
||||||
echo "no Makefile, doing nothing"
|
echo "no Makefile, doing nothing"
|
||||||
return
|
else
|
||||||
|
# See https://github.com/NixOS/nixpkgs/pull/1354#issuecomment-31260409
|
||||||
|
makeFlags="SHELL=$SHELL $makeFlags"
|
||||||
|
|
||||||
|
echo "make flags: $makeFlags ${makeFlagsArray[@]} $buildFlags ${buildFlagsArray[@]}"
|
||||||
|
make ${makefile:+-f $makefile} \
|
||||||
|
${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
|
||||||
|
$makeFlags "${makeFlagsArray[@]}" \
|
||||||
|
$buildFlags "${buildFlagsArray[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# See https://github.com/NixOS/nixpkgs/pull/1354#issuecomment-31260409
|
|
||||||
makeFlags="SHELL=$SHELL $makeFlags"
|
|
||||||
|
|
||||||
echo "make flags: $makeFlags ${makeFlagsArray[@]} $buildFlags ${buildFlagsArray[@]}"
|
|
||||||
make ${makefile:+-f $makefile} \
|
|
||||||
${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
|
|
||||||
$makeFlags "${makeFlagsArray[@]}" \
|
|
||||||
$buildFlags "${buildFlagsArray[@]}"
|
|
||||||
|
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
|
|||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
# Fix for building on Glibc 2.16. Won't be needed once the
|
# Fix for building on Glibc 2.16. Won't be needed once the
|
||||||
# gnulib in sharutils is updated.
|
# gnulib in sharutils is updated.
|
||||||
sed -i ${stdenv.lib.optionalString ((stdenv.isFreeBSD || stdenv.isOpenBSD) && stdenv.cc.nativeTools) "''"} '/gets is a security hole/d' lib/stdio.in.h
|
sed -i ${stdenv.lib.optionalString (stdenv.isOpenBSD && stdenv.cc.nativeTools) "''"} '/gets is a security hole/d' lib/stdio.in.h
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# GNU Gettext is needed on non-GNU platforms.
|
# GNU Gettext is needed on non-GNU platforms.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchgit, autoconf, automake, libtool, pkgconfig, glib, libdaemon, buildRubyGem
|
{ stdenv, fetchgit, autoconf, automake, libtool, pkgconfig, glib, libdaemon
|
||||||
, mpd_clientlib, curl, sqlite, ruby, bundlerEnv, libnotify, pandoc }:
|
, mpd_clientlib, curl, sqlite, ruby, bundlerEnv, libnotify, pandoc }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -58,8 +58,9 @@ in stdenv.mkDerivation {
|
|||||||
ln -s bzip2 $out/bin/bzcat
|
ln -s bzip2 $out/bin/bzcat
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
|
patchPhase = ''
|
||||||
substituteInPlace Makefile --replace 'CC=gcc' 'CC=clang'
|
substituteInPlace Makefile --replace CC=gcc CC=cc
|
||||||
|
substituteInPlace Makefile-libbz2_so --replace CC=gcc CC=cc
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user