Merge remote-tracking branch 'origin/staging' into staging-next

Conflicts:
	pkgs/development/python-modules/bx-python/default.nix
This commit is contained in:
Jonathan Ringer
2021-12-03 00:11:41 -08:00
476 changed files with 3394 additions and 1907 deletions
@@ -834,6 +834,7 @@ sets are
* `pkgs.python38Packages`
* `pkgs.python39Packages`
* `pkgs.python310Packages`
* `pkgs.python311Packages`
* `pkgs.pypyPackages`
and the aliases
+2 -2
View File
@@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
version = "8.2.3451";
version = "8.2.3651";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
sha256 = "sha256-8OaEaFyOaL59j0EZkUY+kuR6si79H2dN09f8SnltxbQ=";
sha256 = "sha256-bSbNO00lqjsjVhkv9W6TCvCQV6UDf2X79z0cgLy9UE0=";
};
enableParallelBuilding = true;
+3 -2
View File
@@ -56,6 +56,7 @@ buildPythonApplication rec {
libsass
lxml
markupsafe
mock
num2words
ofxparse
passlib
@@ -76,7 +77,7 @@ buildPythonApplication rec {
reportlab
requests
vobject
werkzeug1
werkzeug
xlrd
XlsxWriter
xlwt
@@ -92,6 +93,6 @@ buildPythonApplication rec {
description = "Open Source ERP and CRM";
homepage = "https://www.odoo.com/";
license = licenses.lgpl3Only;
maintainers = [ maintainers.mkg20001 ];
maintainers = with maintainers; [ mkg20001 ];
};
}
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
propagatedBuildInputs = with python3Packages; [
matplotlib
numpy
packaging
pyqt4
Rtree
scipy
@@ -25,7 +25,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport;
let
version = "2.34.0";
version = "2.34.1";
svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "07s1c9lzlm4kpbb5lmxy0869phg7037pv4faz5hlqyb5csrbjv7x";
sha256 = "0b40vf315s1kz65x1wq47g8srl4wqac39pwnvlj1mdzs3kfma1rs";
};
outputs = [ "out" ] ++ lib.optional withManual "doc";
+21 -5
View File
@@ -11,6 +11,7 @@
mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "corrscope";
version = "0.7.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "corrscope";
@@ -19,8 +20,6 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
sha256 = "0c9kmrw6pcda68li04b5j2kmsgdw1q463qlc32wn96zn9hl82v6m";
};
format = "pyproject";
patches = [
# Remove when bumping past 0.7.1
(fetchpatch {
@@ -30,11 +29,28 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
})
];
nativeBuildInputs = [ wrapQtAppsHook ] ++ (with python3Packages; [ poetry-core ]);
nativeBuildInputs = [
wrapQtAppsHook
] ++ (with python3Packages; [
poetry-core
]);
buildInputs = [ ffmpeg qtbase ];
buildInputs = [
ffmpeg
qtbase
];
propagatedBuildInputs = with python3Packages; [ appdirs atomicwrites attrs click matplotlib numpy pyqt5 ruamel-yaml ];
propagatedBuildInputs = with python3Packages; [
appdirs
atomicwrites
attrs
click
matplotlib
numpy
packaging
pyqt5
ruamel-yaml
];
dontWrapQtApps = true;
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, fetchpatch, python, zlib, pkg-config, glib
, perl, pixman, vde2, alsa-lib, texinfo, flex
, bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, ninja, meson, sigtool
, makeWrapper, autoPatchelfHook, runtimeShell
, makeWrapper, runtimeShell
, attr, libcap, libcap_ng
, CoreServices, Cocoa, Hypervisor, rez, setfile
, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
@@ -53,7 +53,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ makeWrapper python python.pkgs.sphinx python.pkgs.sphinx_rtd_theme pkg-config flex bison meson ninja ]
++ lib.optionals gtkSupport [ wrapGAppsHook ]
++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]
++ lib.optionals stdenv.isDarwin [ sigtool ];
buildInputs = [ zlib glib perl pixman
@@ -85,6 +84,7 @@ stdenv.mkDerivation rec {
dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
outputs = [ "out" "ga" ];
separateDebugInfo = true;
patches = [
./fix-qemu-ga.patch
@@ -174,6 +174,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--audio-drv-list=${audio}"
"--disable-strip" # We'll strip ourselves after separating debug info.
"--enable-docs"
"--enable-tools"
"--enable-guest-agent"
@@ -47,6 +47,9 @@ stdenv.mkDerivation {
dontBuild = true;
dontConfigure = true;
# Additional flags passed to pkg-config.
addFlags = lib.optional stdenv.targetPlatform.isStatic "--static";
unpackPhase = ''
src=$PWD
'';
@@ -12,10 +12,12 @@ if [ -z "${NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
source @out@/nix-support/add-flags.sh
fi
set -- "$@" @addFlags@
if (( ${#role_suffixes[@]} > 0 )); then
# replace env var with nix-modified one
PKG_CONFIG_PATH=$PKG_CONFIG_PATH_@suffixSalt@ exec @prog@ "$@"
else
# pkg-config isn't a bonafied dependency so ignore setup hook entirely
# pkg-config isn't a real dependency so ignore setup hook entirely
exec @prog@ "$@"
fi
@@ -28,10 +28,16 @@ _separateDebugInfo() {
# Extract the debug info.
header "separating debug info from $i (build ID $id)"
mkdir -p "$dst/${id:0:2}"
$OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
$STRIP --strip-debug "$i"
# Also a create a symlink <original-name>.debug.
ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"
# This may fail, e.g. if the binary is for a different
# architecture than we're building for. (This happens with
# firmware blobs in QEMU.)
(
$OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
$STRIP --strip-debug "$i"
# Also a create a symlink <original-name>.debug.
ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"
) || rmdir -p "$dst/${id:0:2}"
done < <(find "$prefix" -type f -print0)
}
-5
View File
@@ -124,11 +124,6 @@ in
sha256 = "1d6zzk0ii43iqfnjbldwp8sasyx99lbjp1nfgqjla7ixld6yp98l";
};
makeFlags = [
# TODO(@sternenseemann): remove if afdko is new enough to know about Unicode 14.0
"BYPASS_SEQUENCE_CHECK=True"
];
nativeBuildInputs = [
cairo
imagemagick
+2 -2
View File
@@ -1,12 +1,12 @@
{ lib, fetchzip, stdenvNoCC, writeText }:
let
version = "20210225";
version = "20211124";
in stdenvNoCC.mkDerivation {
name = "iana-etc-${version}";
src = fetchzip {
url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
sha256 = "sha256:1bbbnj2ya0apyyhnw37521yl1hrz3zy3l8dw6sacmir0y6pmx9gi";
sha256 = "sha256-4mM/ZeGd91e1AklGHFK5UB4llg9IgCo9DKcM0iXcBls=";
};
installPhase = ''
@@ -1,261 +0,0 @@
From 6001db79c477b03eacc7e7049560921fb54b7845 Mon Sep 17 00:00:00 2001
From: Richard Sandiford <richard.sandiford@arm.com>
Date: Mon, 7 Sep 2020 20:15:36 +0100
Subject: [PATCH] lra: Avoid cycling on certain subreg reloads [PR96796]
This PR is about LRA cycling for a reload of the form:
----------------------------------------------------------------------------
Changing pseudo 196 in operand 1 of insn 103 on equiv [r105:DI*0x8+r140:DI]
Creating newreg=287, assigning class ALL_REGS to slow/invalid mem r287
Creating newreg=288, assigning class ALL_REGS to slow/invalid mem r288
103: r203:SI=r288:SI<<0x1+r196:DI#0
REG_DEAD r196:DI
Inserting slow/invalid mem reload before:
316: r287:DI=[r105:DI*0x8+r140:DI]
317: r288:SI=r287:DI#0
----------------------------------------------------------------------------
The problem is with r287. We rightly give it a broad starting class of
POINTER_AND_FP_REGS (reduced from ALL_REGS by preferred_reload_class).
However, we never make forward progress towards narrowing it down to
a specific choice of class (POINTER_REGS or FP_REGS).
I think in practice we rely on two things to narrow a reload pseudo's
class down to a specific choice:
(1) a restricted class is specified when the pseudo is created
This happens for input address reloads, where the class is taken
from the target's chosen base register class. It also happens
for simple REG reloads, where the class is taken from the chosen
alternative's constraints.
(2) uses of the reload pseudo as a direct input operand
In this case get_reload_reg tries to reuse the existing register
and narrow its class, instead of creating a new reload pseudo.
However, neither occurs here. As described above, r287 rightly
starts out with a wide choice of class, ultimately derived from
ALL_REGS, so we don't get (1). And as the comments in the PR
explain, r287 is never used as an input reload, only the subreg is,
so we don't get (2):
----------------------------------------------------------------------------
Choosing alt 13 in insn 317: (0) r (1) w {*movsi_aarch64}
Creating newreg=291, assigning class FP_REGS to r291
317: r288:SI=r291:SI
Inserting insn reload before:
320: r291:SI=r287:DI#0
----------------------------------------------------------------------------
IMO, in this case we should rely on the reload of r316 to narrow
down the class of r278. Currently we do:
----------------------------------------------------------------------------
Choosing alt 7 in insn 316: (0) r (1) m {*movdi_aarch64}
Creating newreg=289 from oldreg=287, assigning class GENERAL_REGS to r289
316: r289:DI=[r105:DI*0x8+r140:DI]
Inserting insn reload after:
318: r287:DI=r289:DI
---------------------------------------------------
i.e. we create a new pseudo register r289 and give *that* pseudo
GENERAL_REGS instead. This is because get_reload_reg only narrows
down the existing class for OP_IN and OP_INOUT, not OP_OUT.
But if we have a reload pseudo in a reload instruction and have chosen
a specific class for the reload pseudo, I think we should simply install
it for OP_OUT reloads too, if the class is a subset of the existing class.
We will need to pick such a register whatever happens (for r289 in the
example above). And as explained in the PR, doing this actually avoids
an unnecessary move via the FP registers too.
The patch is quite aggressive in that it does this for all reload
pseudos in all reload instructions. I wondered about reusing the
condition for a reload move in in_class_p:
INSN_UID (curr_insn) >= new_insn_uid_start
&& curr_insn_set != NULL
&& ((OBJECT_P (SET_SRC (curr_insn_set))
&& ! CONSTANT_P (SET_SRC (curr_insn_set)))
|| (GET_CODE (SET_SRC (curr_insn_set)) == SUBREG
&& OBJECT_P (SUBREG_REG (SET_SRC (curr_insn_set)))
&& ! CONSTANT_P (SUBREG_REG (SET_SRC (curr_insn_set)))))))
but I can't really justify that on first principles. I think we
should apply the rule consistently until we have a specific reason
for doing otherwise.
gcc/
PR rtl-optimization/96796
* lra-constraints.c (in_class_p): Add a default-false
allow_all_reload_class_changes_p parameter. Do not treat
reload moves specially when the parameter is true.
(get_reload_reg): Try to narrow the class of an existing OP_OUT
reload if we're reloading a reload pseudo in a reload instruction.
gcc/testsuite/
PR rtl-optimization/96796
* gcc.c-torture/compile/pr96796.c: New test.
---
gcc/lra-constraints.c | 54 ++++++++++++++----
gcc/testsuite/gcc.c-torture/compile/pr96796.c | 55 +++++++++++++++++++
2 files changed, 99 insertions(+), 10 deletions(-)
create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr96796.c
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 580da9c3ed6..161b721efb1 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -236,12 +236,17 @@ get_reg_class (int regno)
CL. Use elimination first if REG is a hard register. If REG is a
reload pseudo created by this constraints pass, assume that it will
be allocated a hard register from its allocno class, but allow that
- class to be narrowed to CL if it is currently a superset of CL.
+ class to be narrowed to CL if it is currently a superset of CL and
+ if either:
+
+ - ALLOW_ALL_RELOAD_CLASS_CHANGES_P is true or
+ - the instruction we're processing is not a reload move.
If NEW_CLASS is nonnull, set *NEW_CLASS to the new allocno class of
REGNO (reg), or NO_REGS if no change in its class was needed. */
static bool
-in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class)
+in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class,
+ bool allow_all_reload_class_changes_p = false)
{
enum reg_class rclass, common_class;
machine_mode reg_mode;
@@ -266,7 +271,8 @@ in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class)
typically moves that have many alternatives, and restricting
reload pseudos for one alternative may lead to situations
where other reload pseudos are no longer allocatable. */
- || (INSN_UID (curr_insn) >= new_insn_uid_start
+ || (!allow_all_reload_class_changes_p
+ && INSN_UID (curr_insn) >= new_insn_uid_start
&& curr_insn_set != NULL
&& ((OBJECT_P (SET_SRC (curr_insn_set))
&& ! CONSTANT_P (SET_SRC (curr_insn_set)))
@@ -598,13 +604,12 @@ canonicalize_reload_addr (rtx addr)
return addr;
}
-/* Create a new pseudo using MODE, RCLASS, ORIGINAL or reuse already
- created input reload pseudo (only if TYPE is not OP_OUT). Don't
- reuse pseudo if IN_SUBREG_P is true and the reused pseudo should be
- wrapped up in SUBREG. The result pseudo is returned through
- RESULT_REG. Return TRUE if we created a new pseudo, FALSE if we
- reused the already created input reload pseudo. Use TITLE to
- describe new registers for debug purposes. */
+/* Create a new pseudo using MODE, RCLASS, ORIGINAL or reuse an existing
+ reload pseudo. Don't reuse an existing reload pseudo if IN_SUBREG_P
+ is true and the reused pseudo should be wrapped up in a SUBREG.
+ The result pseudo is returned through RESULT_REG. Return TRUE if we
+ created a new pseudo, FALSE if we reused an existing reload pseudo.
+ Use TITLE to describe new registers for debug purposes. */
static bool
get_reload_reg (enum op_type type, machine_mode mode, rtx original,
enum reg_class rclass, bool in_subreg_p,
@@ -616,6 +621,35 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,
if (type == OP_OUT)
{
+ /* Output reload registers tend to start out with a conservative
+ choice of register class. Usually this is ALL_REGS, although
+ a target might narrow it (for performance reasons) through
+ targetm.preferred_reload_class. It's therefore quite common
+ for a reload instruction to require a more restrictive class
+ than the class that was originally assigned to the reload register.
+
+ In these situations, it's more efficient to refine the choice
+ of register class rather than create a second reload register.
+ This also helps to avoid cycling for registers that are only
+ used by reload instructions. */
+ if (REG_P (original)
+ && (int) REGNO (original) >= new_regno_start
+ && INSN_UID (curr_insn) >= new_insn_uid_start
+ && in_class_p (original, rclass, &new_class, true))
+ {
+ unsigned int regno = REGNO (original);
+ if (lra_dump_file != NULL)
+ {
+ fprintf (lra_dump_file, " Reuse r%d for output ", regno);
+ dump_value_slim (lra_dump_file, original, 1);
+ }
+ if (new_class != lra_get_allocno_class (regno))
+ lra_change_class (regno, new_class, ", change to", false);
+ if (lra_dump_file != NULL)
+ fprintf (lra_dump_file, "\n");
+ *result_reg = original;
+ return false;
+ }
*result_reg
= lra_create_new_reg_with_unique_value (mode, original, rclass, title);
return true;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr96796.c b/gcc/testsuite/gcc.c-torture/compile/pr96796.c
new file mode 100644
index 00000000000..8808e62fe77
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr96796.c
@@ -0,0 +1,55 @@
+/* { dg-additional-options "-fcommon" } */
+
+struct S0 {
+ signed f0 : 8;
+ unsigned f1;
+ unsigned f4;
+};
+struct S1 {
+ long f3;
+ char f4;
+} g_3_4;
+
+int g_5, func_1_l_32, func_50___trans_tmp_31;
+static struct S0 g_144, g_834, g_1255, g_1261;
+
+int g_273[120] = {};
+int *g_555;
+char **g_979;
+static int g_1092_0;
+static int g_1193;
+int safe_mul_func_int16_t_s_s(int si1, int si2) { return si1 * si2; }
+static struct S0 *func_50();
+int func_1() { func_50(g_3_4, g_5, func_1_l_32, 8, 3); }
+void safe_div_func_int64_t_s_s(int *);
+void safe_mod_func_uint32_t_u_u(struct S0);
+struct S0 *func_50(int p_51, struct S0 p_52, struct S1 p_53, int p_54,
+ int p_55) {
+ int __trans_tmp_30;
+ char __trans_tmp_22;
+ short __trans_tmp_19;
+ long l_985_1;
+ long l_1191[8];
+ safe_div_func_int64_t_s_s(g_273);
+ __builtin_printf((char*)g_1261.f4);
+ safe_mod_func_uint32_t_u_u(g_834);
+ g_144.f0 += 1;
+ for (;;) {
+ struct S1 l_1350 = {&l_1350};
+ for (; p_53.f3; p_53.f3 -= 1)
+ for (; g_1193 <= 2; g_1193 += 1) {
+ __trans_tmp_19 = safe_mul_func_int16_t_s_s(l_1191[l_985_1 + p_53.f3],
+ p_55 % (**g_979 = 10));
+ __trans_tmp_22 = g_1255.f1 * p_53.f4;
+ __trans_tmp_30 = __trans_tmp_19 + __trans_tmp_22;
+ if (__trans_tmp_30)
+ g_1261.f0 = p_51;
+ else {
+ g_1255.f0 = p_53.f3;
+ int *l_1422 = g_834.f0 = g_144.f4 != (*l_1422)++ > 0 < 0 ^ 51;
+ g_555 = ~0;
+ g_1092_0 |= func_50___trans_tmp_31;
+ }
+ }
+ }
+}
--
2.18.4
+4 -12
View File
@@ -63,17 +63,11 @@ with lib;
with builtins;
let majorVersion = "9";
version = "${majorVersion}.3.0";
version = "${majorVersion}.4.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches =
# Fix ICE: Max. number of generated reload insns per insn is achieved (90)
#
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96796
#
# This patch can most likely be removed by a post 9.3.0-release.
[ ./avoid-cycling-subreg-reloads.patch ]
patches = []
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
++ optional noSysDirs ../no-sys-dirs.patch
@@ -87,9 +81,7 @@ let majorVersion = "9";
++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
# Obtain latest patch with ../update-mcfgthread-patches.sh
++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
++ [ ../libsanitizer-no-cyclades-9.patch ];
++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch;
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
@@ -106,7 +98,7 @@ stdenv.mkDerivation ({
src = fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "1la2yy27ziasyf0jvzk58y1i5b5bq2h176qil550bxhifs39gqbi";
sha256 = "13l3p6g2krilaawbapmn9zmmrh3zdwc36mfr3msxfy038hps6pf9";
};
inherit patches;
+2 -2
View File
@@ -51,11 +51,11 @@ in
stdenv.mkDerivation rec {
pname = "go";
version = "1.16.10";
version = "1.16.11";
src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz";
sha256 = "sha256-qQVHIBFYXkA9ANKkHefO0puIhDCdc0gqMH9on9DzILU=";
sha256 = "sha256-WAQe3NgUY7TPG8KLhtwMF/TZVo1jxa/IU2fdj6577+c=";
};
# perl is used for testing go vet
+4 -3
View File
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, unzip }:
stdenv.mkDerivation {
name = "gwt-java-2.4.0";
stdenv.mkDerivation rec {
pname = "gwt-java";
version = "2.4.0";
src = fetchurl {
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-web-toolkit/gwt-2.4.0.zip";
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-web-toolkit/gwt-${version}.zip";
sha256 = "1gvyg00vx7fdqgfl2w7nhql78clg3abs6fxxy7m03pprdm5qmm17";
};
@@ -1,5 +1,7 @@
{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
, enableShared ? !stdenv.hostPlatform.isStatic
, standalone ? stdenv.hostPlatform.useLLVM or false
, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
}:
stdenv.mkDerivation {
@@ -29,10 +31,11 @@ stdenv.mkDerivation {
];
nativeBuildInputs = [ cmake ];
buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
buildInputs = lib.optional withLibunwind libunwind;
cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
cmakeFlags = lib.optionals standalone [
"-DLLVM_ENABLE_LIBCXX=ON"
] ++ lib.optionals (standalone && withLibunwind) [
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
] ++ lib.optionals stdenv.hostPlatform.isWasm [
"-DLIBCXXABI_ENABLE_THREADS=OFF"
@@ -1,5 +1,7 @@
{ lib, stdenv, llvm_meta, cmake, python3, fetch, libcxx, libunwind, llvm, version
, enableShared ? !stdenv.hostPlatform.isStatic
, standalone ? stdenv.hostPlatform.useLLVM or false
, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
}:
stdenv.mkDerivation {
@@ -28,9 +30,9 @@ stdenv.mkDerivation {
];
nativeBuildInputs = [ cmake python3 ];
buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
buildInputs = lib.optional withLibunwind libunwind;
cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
cmakeFlags = lib.optionals standalone [
"-DLLVM_ENABLE_LIBCXX=ON"
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
] ++ lib.optionals stdenv.hostPlatform.isWasm [
@@ -47,7 +49,7 @@ stdenv.mkDerivation {
# the magic combination of necessary CMake variables
# if you fancy a try, take a look at
# https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
install_name_tool -id $out/$file $file
${stdenv.cc.targetPrefix}install_name_tool -id $out/$file $file
done
make install
install -d 755 $out/include
+10 -3
View File
@@ -247,11 +247,18 @@ let
else stdenv;
};
libcxxabi = callPackage ./libcxxabi {
inherit llvm_meta;
stdenv = if stdenv.hostPlatform.useLLVM or false
libcxxabi = let
stdenv_ = if stdenv.hostPlatform.useLLVM or false
then overrideCC stdenv buildLlvmTools.clangNoLibcxx
else stdenv;
cxx-headers = callPackage ./libcxx {
inherit llvm_meta;
stdenv = stdenv_;
headersOnly = true;
};
in callPackage ./libcxxabi {
stdenv = stdenv_;
inherit llvm_meta cxx-headers;
};
libunwind = callPackage ./libunwind {
@@ -1,15 +1,23 @@
{ lib, stdenv, llvm_meta, src, cmake, python3, fixDarwinDylibNames, version
, libcxxabi
, enableShared ? !stdenv.hostPlatform.isStatic
# If headersOnly is true, the resulting package would only include the headers.
# Use this to break the circular dependency between libcxx and libcxxabi.
#
# Some context:
# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
, headersOnly ? false
}:
stdenv.mkDerivation rec {
pname = "libcxx";
pname = if headersOnly then "cxx-headers" else "libcxx";
inherit version;
inherit src;
sourceRoot = "source/${pname}";
sourceRoot = "source/libcxx";
outputs = [ "out" "dev" ];
outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
patches = [
./gnu-install-dirs.patch
@@ -24,15 +32,29 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake python3 ]
++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
cmakeFlags = [
] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
buildInputs = lib.optionals (!headersOnly) [ libcxxabi ];
cmakeFlags = [ "-DLIBCXX_CXX_ABI=libcxxabi" ]
++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
++ lib.optional stdenv.hostPlatform.isWasm [
++ lib.optionals stdenv.hostPlatform.isWasm [
"-DLIBCXX_ENABLE_THREADS=OFF"
"-DLIBCXX_ENABLE_FILESYSTEM=OFF"
"-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
buildFlags = lib.optional headersOnly "generate-cxx-headers";
installTargets = lib.optional headersOnly "install-cxx-headers";
# At this point, cxxabi headers would be installed in the dev output, which
# prevents moveToOutput from doing its job later in the build process.
postInstall = lib.optionalString (!headersOnly) ''
mv "$dev/include/c++/v1/"* "$out/include/c++/v1/"
pushd "$dev"
rmdir -p include/c++/v1
popd
'';
passthru = {
isLLVM = true;
};
@@ -45,9 +67,6 @@ stdenv.mkDerivation rec {
C++14 and above.
'';
# https://github.com/NixOS/nixpkgs/pull/133217#issuecomment-895742807
broken = stdenv.isDarwin;
# "All of the code in libc++ is dual licensed under the MIT license and the
# UIUC License (a BSD-like license)":
license = with lib.licenses; [ mit ncsa ];
@@ -1,6 +1,7 @@
{ lib, stdenv, llvm_meta, cmake, python3, src, libunwind, version
{ lib, stdenv, llvm_meta, cmake, python3, src, cxx-headers, libunwind, version
, enableShared ? !stdenv.hostPlatform.isStatic
, libcxx
, standalone ? stdenv.hostPlatform.useLLVM or false
, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
}:
stdenv.mkDerivation rec {
@@ -23,12 +24,13 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [ cmake python3 ];
buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
buildInputs = lib.optional withLibunwind libunwind;
cmakeFlags = [
"-DLIBCXXABI_LIBCXX_INCLUDES=${libcxx.dev}/include/c++/v1"
] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
"-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
] ++ lib.optionals standalone [
"-DLLVM_ENABLE_LIBCXX=ON"
] ++ lib.optionals (standalone && withLibunwind) [
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
] ++ lib.optionals stdenv.hostPlatform.isWasm [
"-DLIBCXXABI_ENABLE_THREADS=OFF"
@@ -247,11 +247,18 @@ let
else stdenv;
};
libcxxabi = callPackage ./libcxxabi {
inherit llvm_meta;
stdenv = if stdenv.hostPlatform.useLLVM or false
libcxxabi = let
stdenv_ = if stdenv.hostPlatform.useLLVM or false
then overrideCC stdenv buildLlvmTools.clangNoLibcxx
else stdenv;
cxx-headers = callPackage ./libcxx {
inherit llvm_meta;
stdenv = stdenv_;
headersOnly = true;
};
in callPackage ./libcxxabi {
stdenv = stdenv_;
inherit llvm_meta cxx-headers;
};
libunwind = callPackage ./libunwind {
@@ -1,15 +1,23 @@
{ lib, stdenv, llvm_meta, src, cmake, python3, fixDarwinDylibNames, version
, libcxxabi
, enableShared ? !stdenv.hostPlatform.isStatic
# If headersOnly is true, the resulting package would only include the headers.
# Use this to break the circular dependency between libcxx and libcxxabi.
#
# Some context:
# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
, headersOnly ? false
}:
stdenv.mkDerivation rec {
pname = "libcxx";
pname = if headersOnly then "cxx-headers" else "libcxx";
inherit version;
inherit src;
sourceRoot = "source/${pname}";
sourceRoot = "source/libcxx";
outputs = [ "out" "dev" ];
outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
patches = [
./gnu-install-dirs.patch
@@ -24,15 +32,29 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake python3 ]
++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
cmakeFlags = [
] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
buildInputs = lib.optionals (!headersOnly) [ libcxxabi ];
cmakeFlags = [ "-DLIBCXX_CXX_ABI=libcxxabi" ]
++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
++ lib.optional stdenv.hostPlatform.isWasm [
++ lib.optionals stdenv.hostPlatform.isWasm [
"-DLIBCXX_ENABLE_THREADS=OFF"
"-DLIBCXX_ENABLE_FILESYSTEM=OFF"
"-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
buildFlags = lib.optional headersOnly "generate-cxx-headers";
installTargets = lib.optional headersOnly "install-cxx-headers";
# At this point, cxxabi headers would be installed in the dev output, which
# prevents moveToOutput from doing its job later in the build process.
postInstall = lib.optionalString (!headersOnly) ''
mv "$dev/include/c++/v1/"* "$out/include/c++/v1/"
pushd "$dev"
rmdir -p include/c++/v1
popd
'';
passthru = {
isLLVM = true;
};
@@ -1,6 +1,5 @@
{ lib, stdenv, llvm_meta, cmake, python3, src, libunwind, version
{ lib, stdenv, llvm_meta, cmake, python3, src, cxx-headers, libunwind, version
, enableShared ? !stdenv.hostPlatform.isStatic
, libcxx
}:
stdenv.mkDerivation rec {
@@ -26,7 +25,7 @@ stdenv.mkDerivation rec {
buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
cmakeFlags = [
"-DLIBCXXABI_LIBCXX_INCLUDES=${libcxx.dev}/include/c++/v1"
"-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
"-DLLVM_ENABLE_LIBCXX=ON"
"-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+5 -4
View File
@@ -2,15 +2,16 @@
# The binaries can also be used as is.
{lib, stdenv, fetchurl, patchelf, boehmgc, gnused, gcc, makeWrapper}:
stdenv.mkDerivation {
name = "opendylan-2013.2";
stdenv.mkDerivation rec {
pname = "opendylan";
version = "2013.2";
src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
url = "https://opendylan.org/downloads/opendylan/2013.2/opendylan-2013.2-x86_64-linux.tar.bz2";
url = "https://opendylan.org/downloads/opendylan/${version}/opendylan-${version}-x86_64-linux.tar.bz2";
sha256 = "035brbw3hm7zrs593q4zc42yglj1gmmkw3b1r7zzlw3ks4i2lg7h";
}
else if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
url = "https://opendylan.org/downloads/opendylan/2013.2/opendylan-2013.2-x86-linux.tar.bz2";
url = "https://opendylan.org/downloads/opendylan/${version}/opendylan-${version}-x86-linux.tar.bz2";
sha256 = "0c61ihvblcsjrw6ncr8x8ylhskcrqs8pajs4mg5di36cvqw12nq5";
}
else throw "platform ${stdenv.hostPlatform.system} not supported.";
@@ -20,8 +20,8 @@
} @ args:
import ./default.nix {
rustcVersion = "1.56.1";
rustcSha256 = "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3";
rustcVersion = "1.57.0";
rustcSha256 = "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim";
llvmSharedForBuild = pkgsBuildBuild.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
llvmSharedForHost = pkgsBuildHost.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
@@ -37,24 +37,24 @@ import ./default.nix {
# Note: the version MUST be one version prior to the version we're
# building
bootstrapVersion = "1.55.0";
bootstrapVersion = "1.56.1";
# fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
bootstrapHashes = {
i686-unknown-linux-gnu = "6e42b6c44d2eb4170f4144423fa3c33338d8d5c3ea00b03bbac200c877bc9e98";
x86_64-unknown-linux-gnu = "2080253a2ec36ac8ed6e060d30802d888533124b8d16545cfd4af898b365eaac";
x86_64-unknown-linux-musl = "f24f68587253c4bfbe59d3d10fe4897068d9130538de6b2d02097a25718030c2";
arm-unknown-linux-gnueabihf = "483444153d35cda51c6aec2c24bc4c97fa4fd30b28df4b60bf9763bd6e06da3a";
armv7-unknown-linux-gnueabihf = "8c72f0eb75b10db970fb546c3b41f5e97df294d5dbbf0b8fa96e17f2b281ee9c";
aarch64-unknown-linux-gnu = "eebdb2e659ed14884a49f0457d44e5e8c9f89fca3414533752c6dbb96232c156";
aarch64-unknown-linux-musl = "2ce36a7d34f1f2aa43b4cbc0b437d96eefb45743828bf9ae699ff581ae257f28";
x86_64-apple-darwin = "2e345ac7724c192c9487a2c6bd4f6c52c884d791981510288830d27d9a0bf2f3";
aarch64-apple-darwin = "70c71d30d0de76912fcd88d503a6cb4323cfe6250c1a255be7e0d4e644b3d40a";
powerpc64le-unknown-linux-gnu = "12bf6447d338cbe2b55539b84e6369b17e7eefe938d1ba7e3dd69781c9cc9812";
riscv64gc-unknown-linux-gnu = "effceb45346fef3b0b54b357336e6f374f788b803bb1bee4084f25eace8907f3";
i686-unknown-linux-gnu = "84db34603ce22d93312ff8bccd5580fe112e932bbeb0361e7cc37668a9803a27";
x86_64-unknown-linux-gnu = "a6be5d045183a0b12dddf0d81633e2a64e63e4c2dfa44eb7593970c1ef93a98f";
x86_64-unknown-linux-musl = "3c09058d104d9a88943fb343af1fb70422f9c4a987e6703666ee8a8051211190";
arm-unknown-linux-gnueabihf = "c445706d109bb74de4c889687ae08a48af5808676fda15b84b7ef5970a82a5f6";
armv7-unknown-linux-gnueabihf = "29ec65af502370c0c1a49faecd7131f1243fe3005b419ead4b40b267af2b2db0";
aarch64-unknown-linux-gnu = "69792887357c8dd78c5424f0b4a624578296796d99edf6c30ebe2acc2b939aa3";
aarch64-unknown-linux-musl = "971d13d41657e50e3ac54f17f52b4198c3d8bc25ec489a6a9e6d12c18226dda5";
x86_64-apple-darwin = "8d65ef02a123c23be00101fb204d28b60498b9145dd2ee8edabf0afde6e01e55";
aarch64-apple-darwin = "e71c14c1368048a22e4d1851f301872ac2e6f4c574f04d2a7ae4d64b0e7c7235";
powerpc64le-unknown-linux-gnu = "fa78b28fe1ef3cd4add9ec151e5eab756dfc83c8bc3e5a576a6eddd350c4de7a";
riscv64gc-unknown-linux-gnu = "5ec327d1bd3ba8d00afbe9be4a1f0fb8ab845063fcf9be479be9493c52a4dbb6";
};
selectRustPackage = pkgs: pkgs.rust_1_56;
selectRustPackage = pkgs: pkgs.rust_1_57;
rustcPatches = [
];
+2 -2
View File
@@ -134,8 +134,8 @@ in rec {
};
vala_0_54 = generic {
version = "0.54.2";
sha256 = "iE3nRTF9TVbk6M7emT3I8E1Qz8o2z2DS8vJ4wwwrExE=";
version = "0.54.3";
sha256 = "7R1f5MvAzShF0N5PH/77Fa+waJLSMMfMppV4FnLo+2A=";
};
vala = vala_0_54;
@@ -288,7 +288,11 @@ rec {
enableLibraryProfiling = false;
isLibrary = false;
doHaddock = false;
postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
postFixup = drv.postFixup or "" + ''
# Remove every directory which could have links to other store paths.
rm -rf $out/lib $out/nix-support $out/share/doc
'';
});
/* Build a source distribution tarball instead of using the source files
+4 -2
View File
@@ -6,9 +6,11 @@
}:
stdenv.mkDerivation rec {
name = "love-0.7.2";
pname = "love";
version = "0.7.2";
src = fetchurl {
url = "https://bitbucket.org/rude/love/downloads/${name}-linux-src.tar.gz";
url = "https://bitbucket.org/rude/love/downloads/love-${version}-linux-src.tar.gz";
sha256 = "0s7jywkvydlshlgy11ilzngrnybmq5xlgzp2v2dhlffwrfqdqym5";
};
+4 -2
View File
@@ -5,9 +5,11 @@
}:
stdenv.mkDerivation rec {
name = "love-0.9.1";
pname = "love";
version = "0.9.1";
src = fetchurl {
url = "https://bitbucket.org/rude/love/downloads/${name}-linux-src.tar.gz";
url = "https://bitbucket.org/rude/love/downloads/love-${version}-linux-src.tar.gz";
sha256 = "1pikd0bzb44r4bf0jbgn78whz1yswpq1n5jc8nf87v42pm30kp84";
};
@@ -0,0 +1,107 @@
From 5330b6af9f832af59aa5c61d9ef6971053a8e709 Mon Sep 17 00:00:00 2001
From: Jonathan Ringer <jonringer117@gmail.com>
Date: Mon, 9 Nov 2020 10:24:35 -0800
Subject: [PATCH] CPython: Don't use ldconfig
---
Lib/ctypes/util.py | 77 ++--------------------------------------------
1 file changed, 2 insertions(+), 75 deletions(-)
diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
index 0c2510e161..7fb98af308 100644
--- a/Lib/ctypes/util.py
+++ b/Lib/ctypes/util.py
@@ -100,53 +100,7 @@ def _is_elf(filename):
return thefile.read(4) == elf_header
def _findLib_gcc(name):
- # Run GCC's linker with the -t (aka --trace) option and examine the
- # library name it prints out. The GCC command will fail because we
- # haven't supplied a proper program with main(), but that does not
- # matter.
- expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name))
-
- c_compiler = shutil.which('gcc')
- if not c_compiler:
- c_compiler = shutil.which('cc')
- if not c_compiler:
- # No C compiler available, give up
- return None
-
- temp = tempfile.NamedTemporaryFile()
- try:
- args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name]
-
- env = dict(os.environ)
- env['LC_ALL'] = 'C'
- env['LANG'] = 'C'
- try:
- proc = subprocess.Popen(args,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT,
- env=env)
- except OSError: # E.g. bad executable
- return None
- with proc:
- trace = proc.stdout.read()
- finally:
- try:
- temp.close()
- except FileNotFoundError:
- # Raised if the file was already removed, which is the normal
- # behaviour of GCC if linking fails
- pass
- res = re.findall(expr, trace)
- if not res:
- return None
-
- for file in res:
- # Check if the given file is an elf file: gcc can report
- # some files that are linker scripts and not actual
- # shared objects. See bpo-41976 for more details
- if not _is_elf(file):
- continue
- return os.fsdecode(file)
+ return None
if sys.platform == "sunos5":
@@ -268,34 +222,7 @@ def find_library(name, is64 = False):
else:
def _findSoname_ldconfig(name):
- import struct
- if struct.calcsize('l') == 4:
- machine = os.uname().machine + '-32'
- else:
- machine = os.uname().machine + '-64'
- mach_map = {
- 'x86_64-64': 'libc6,x86-64',
- 'ppc64-64': 'libc6,64bit',
- 'sparc64-64': 'libc6,64bit',
- 's390x-64': 'libc6,64bit',
- 'ia64-64': 'libc6,IA-64',
- }
- abi_type = mach_map.get(machine, 'libc6')
-
- # XXX assuming GLIBC's ldconfig (with option -p)
- regex = r'\s+(lib%s\.[^\s]+)\s+\(%s'
- regex = os.fsencode(regex % (re.escape(name), abi_type))
- try:
- with subprocess.Popen(['/sbin/ldconfig', '-p'],
- stdin=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL,
- stdout=subprocess.PIPE,
- env={'LC_ALL': 'C', 'LANG': 'C'}) as p:
- res = re.search(regex, p.stdout.read())
- if res:
- return os.fsdecode(res.group(1))
- except OSError:
- pass
+ return None
def _findLib_ld(name):
# See issue #9998 for why this is needed
--
2.33.1
@@ -0,0 +1,84 @@
From 4b55837e7c747e0f3bd2df1b5c8996ce86c6f60a Mon Sep 17 00:00:00 2001
From: "Miss Islington (bot)"
<31488909+miss-islington@users.noreply.github.com>
Date: Mon, 30 Aug 2021 02:08:16 -0700
Subject: [PATCH] bpo-44689: ctypes.util.find_library() now finds macOS 11+
system libraries when built on older macOS systems (GH-27251) (GH-28053)
Previously, when built on older macOS systems, `find_library` was not able to find macOS system libraries when running on Big Sur due to changes in how system libraries are stored.
(cherry picked from commit 71853a73024a98aa38a3c0444fe364dbd9709134)
Co-authored-by: Tobias Bergkvist <tobias@bergkv.ist>
---
.../2021-07-20-22-27-01.bpo-44689.mmT_xH.rst | 5 ++++
Modules/_ctypes/callproc.c | 29 +++++++++++++++++--
2 files changed, 31 insertions(+), 3 deletions(-)
create mode 100644 Misc/NEWS.d/next/macOS/2021-07-20-22-27-01.bpo-44689.mmT_xH.rst
diff --git a/Misc/NEWS.d/next/macOS/2021-07-20-22-27-01.bpo-44689.mmT_xH.rst b/Misc/NEWS.d/next/macOS/2021-07-20-22-27-01.bpo-44689.mmT_xH.rst
new file mode 100644
index 0000000000..b1e878d1ee
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2021-07-20-22-27-01.bpo-44689.mmT_xH.rst
@@ -0,0 +1,5 @@
+ :meth:`ctypes.util.find_library` now works correctly on macOS 11 Big Sur
+ even if Python is built on an older version of macOS. Previously, when
+ built on older macOS systems, ``find_library`` was not able to find
+ macOS system libraries when running on Big Sur due to changes in
+ how system libraries are stored.
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 18984d15ab..b0f1e0bd04 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -1449,14 +1449,37 @@ copy_com_pointer(PyObject *self, PyObject *args)
return r;
}
#else
-
+#ifdef __APPLE__
#ifdef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH
+#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \
+ __builtin_available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)
+#else
+// Support the deprecated case of compiling on an older macOS version
+static void *libsystem_b_handle;
+static bool (*_dyld_shared_cache_contains_path)(const char *path);
+
+__attribute__((constructor)) void load_dyld_shared_cache_contains_path(void) {
+ libsystem_b_handle = dlopen("/usr/lib/libSystem.B.dylib", RTLD_LAZY);
+ if (libsystem_b_handle != NULL) {
+ _dyld_shared_cache_contains_path = dlsym(libsystem_b_handle, "_dyld_shared_cache_contains_path");
+ }
+}
+
+__attribute__((destructor)) void unload_dyld_shared_cache_contains_path(void) {
+ if (libsystem_b_handle != NULL) {
+ dlclose(libsystem_b_handle);
+ }
+}
+#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME \
+ _dyld_shared_cache_contains_path != NULL
+#endif
+
static PyObject *py_dyld_shared_cache_contains_path(PyObject *self, PyObject *args)
{
PyObject *name, *name2;
char *name_str;
- if (__builtin_available(macOS 11.0, iOS 14.0, tvOS 14.0, watchOS 7.0, *)) {
+ if (HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH_RUNTIME) {
int r;
if (!PyArg_ParseTuple(args, "O", &name))
@@ -1999,7 +2022,7 @@ PyMethodDef _ctypes_module_methods[] = {
{"dlclose", py_dl_close, METH_VARARGS, "dlclose a library"},
{"dlsym", py_dl_sym, METH_VARARGS, "find symbol in shared library"},
#endif
-#ifdef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH
+#ifdef __APPLE__
{"_dyld_shared_cache_contains_path", py_dyld_shared_cache_contains_path, METH_VARARGS, "check if path is in the shared cache"},
#endif
{"alignment", align_func, METH_O, alignment_doc},
--
2.33.1
@@ -240,6 +240,9 @@ in with passthru; stdenv.mkDerivation {
] ++ optionals (pythonAtLeast "3.9" && stdenv.isDarwin) [
# Stop checking for TCL/TK in global macOS locations
./3.9/darwin-tcl-tk.patch
# ctypes.util.find_library() now finds macOS 11+ system libraries when built on older macOS systems
# https://github.com/python/cpython/pull/28053
./3.9/bpo-44689-ctypes.util.find_library-now-finds-macOS-1.patch
] ++ optionals (isPy3k && hasDistutilsCxxPatch) [
# Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python27-docs-html-2.7.16";
stdenv.mkDerivation rec {
pname = "python27-docs-html";
version = "2.7.16";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-html.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-html.tar.bz2";
sha256 = "1razs1grzhai65ihaiyph8kz6ncjkgp1gsn3c8v7kanf13lqim02";
};
installPhase = ''
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python27-docs-pdf-a4-2.7.16";
stdenv.mkDerivation rec {
pname = "python27-docs-pdf-a4";
version = "2.7.16";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-a4.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-a4.tar.bz2";
sha256 = "14ml1ynrlbhg43737bdsb8k5y39wsffqj4iwhylhb8n8l5dplfdq";
};
installPhase = ''
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python27-docs-pdf-letter-2.7.16";
stdenv.mkDerivation rec {
pname = "python27-docs-pdf-letter";
version = "2.7.16";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-letter.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-letter.tar.bz2";
sha256 = "019i8n48m71mn31v8d85kkwyqfgcgqnqh506y4a7fcgf656bajs0";
};
installPhase = ''
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python27-docs-text-2.7.16";
stdenv.mkDerivation rec {
pname = "python27-docs-text";
version = "2.7.16";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-text.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-text.tar.bz2";
sha256 = "1da7swlykvc013684nywycinfz3v8dqkcmv0zj8p7l5lyi5mq03r";
};
installPhase = ''
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python37-docs-html-3.7.2";
stdenv.mkDerivation rec {
pname = "python37-docs-html";
version = "3.7.2";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-html.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-html.tar.bz2";
sha256 = "19wbrawpdam09fmyipfy92sxwn1rl93v8jkfqsfx028qhvzf0422";
};
installPhase = ''
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python37-docs-pdf-a4-3.7.2";
stdenv.mkDerivation rec {
pname = "python37-docs-pdf-a4";
version = "3.7.2";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-a4.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-a4.tar.bz2";
sha256 = "0vdx762m30hjaabn6w88awcj2qpbz0b6z59zn9wmamd35k59lfba";
};
installPhase = ''
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python37-docs-pdf-letter-3.7.2";
stdenv.mkDerivation rec {
pname = "python37-docs-pdf-letter";
version = "3.7.2";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-letter.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-letter.tar.bz2";
sha256 = "17g57vlyvqx0k916q84q2pcx7y8myw0fda9fvg9kh0ph930c837x";
};
installPhase = ''
@@ -2,10 +2,12 @@
{ stdenv, fetchurl, lib }:
stdenv.mkDerivation {
name = "python37-docs-text-3.7.2";
stdenv.mkDerivation rec {
pname = "python37-docs-text";
version = "3.7.2";
src = fetchurl {
url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-text.tar.bz2";
url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-text.tar.bz2";
sha256 = "0h50rlr8jclwfxa106b42q2vn2ynp219c4zsy5qz65n5m3b7y1g2";
};
installPhase = ''
@@ -95,6 +95,7 @@ with pkgs;
isPy38 = pythonVersion == "3.8";
isPy39 = pythonVersion == "3.9";
isPy310 = pythonVersion == "3.10";
isPy311 = pythonVersion == "3.11";
isPy2 = lib.strings.substring 0 1 pythonVersion == "2";
isPy3 = lib.strings.substring 0 1 pythonVersion == "3";
isPy3k = isPy3;
@@ -132,10 +133,10 @@ with pkgs;
sourceVersion = {
major = "3";
minor = "9";
patch = "6";
patch = "9";
suffix = "";
};
sha256 = "12hhw2685i68pwfx5hdkqngzhbji4ccyjmqb5rzvkigg6fpj0y9r";
sha256 = "sha256-BoKMBKVzwHOk5RxCkqJ8G+SuJmIcPtx8+TGEGM47bSc=";
};
};
@@ -192,6 +193,19 @@ in {
inherit passthruFun;
};
python311 = callPackage ./cpython {
self = python311;
sourceVersion = {
major = "3";
minor = "11";
patch = "0";
suffix = "a2";
};
sha256 = "sha256-aKjE1s4lSKe2F9aZ+9s0iTe9rODPltsaoIOEnfXa0T8=";
inherit (darwin) configd;
inherit passthruFun;
};
# Minimal versions of Python (built without optional dependencies)
python3Minimal = (callPackage ./cpython ({
self = python3Minimal;
@@ -24,6 +24,17 @@ pythonNamespacesHook() {
rm -v "$pathToRemove"
fi
# remove ${pname}-${version}-${python-interpeter}-nspkg.pth
#
# Still need to check that parent directory exists in the
# event of a "meta-package" package, which will just install
# other packages, but not produce anything in site-packages
# besides meta information
if [ -d "${constructedPath}/../" -a -z ${dontRemovePth-} ]; then
# .pth files are located in the parent directory of a module
@findutils@/bin/find ${constructedPath}/../ -name '*-nspkg.pth' -exec rm -v "{}" +
fi
# remove __pycache__/ entry, can be interpreter specific. E.g. __init__.cpython-38.pyc
# use null characters to perserve potential whitespace in filepath
if [ -d "$pycachePath" ]; then
+4 -3
View File
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl, ncurses, automake}:
stdenv.mkDerivation {
name = "aalib-1.4rc5";
stdenv.mkDerivation rec {
pname = "aalib";
version = "1.4rc5";
src = fetchurl {
url = "mirror://sourceforge/aa-project/aalib-1.4rc5.tar.gz";
url = "mirror://sourceforge/aa-project/aalib-${version}.tar.gz";
sha256 = "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv";
};
+3 -2
View File
@@ -6,10 +6,11 @@
# files.
stdenv.mkDerivation rec {
name = "acl-2.3.1";
pname = "acl";
version = "2.3.1";
src = fetchurl {
url = "mirror://savannah/acl/${name}.tar.gz";
url = "mirror://savannah/acl/acl-${version}.tar.gz";
sha256 = "sha256-dgxhxokBs3/dXu/ur0wMeia9/disdHoe3/HODiQ8Ea8=";
};
+3 -2
View File
@@ -3,10 +3,11 @@
}:
stdenv.mkDerivation rec {
name = "aubio-0.4.9";
pname = "aubio";
version = "0.4.9";
src = fetchurl {
url = "https://aubio.org/pub/${name}.tar.bz2";
url = "https://aubio.org/pub/aubio-${version}.tar.bz2";
sha256 = "1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl";
};
@@ -11,7 +11,8 @@ let
in
stdenv.mkDerivation rec {
name = "audiofile-0.3.6";
pname = "audiofile";
version = "0.3.6";
buildInputs =
lib.optionals stdenv.isLinux [
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
];
src = fetchurl {
url = "https://audiofile.68k.org/${name}.tar.gz";
url = "https://audiofile.68k.org/audiofile-${version}.tar.gz";
sha256 = "0rb927zknk9kmhprd8rdr4azql4gn2dp75a36iazx2xhkbqhvind";
};
@@ -1,9 +1,11 @@
{lib, stdenv, fetchurl, m4}:
stdenv.mkDerivation {
name = "beecrypt-4.2.1";
stdenv.mkDerivation rec {
pname = "beecrypt";
version = "4.2.1";
src = fetchurl {
url = "mirror://sourceforge/beecrypt/beecrypt-4.2.1.tar.gz";
url = "mirror://sourceforge/beecrypt/beecrypt-${version}.tar.gz";
sha256 = "0pf5k1c4nsj77jfq5ip0ra1gzx2q47xaa0s008fnn6hd11b1yvr8";
};
buildInputs = [ m4 ];
@@ -1,18 +1,19 @@
{ lib, stdenv, fetchurl, unzip }:
stdenv.mkDerivation {
name = "boost-process-0.5";
stdenv.mkDerivation rec {
pname = "boost-process";
version = "0.5";
src = fetchurl {
url = "http://www.highscore.de/boost/process0.5/process.zip";
url = "http://www.highscore.de/boost/process${version}/process.zip";
sha256 = "1v9y9pffb2b7p642kp9ic4z6kg42ziizmyvbgrqd1ci0i4gn0831";
};
nativeBuildInputs = [ unzip ];
unpackPhase = ''
mkdir $name
cd $name
mkdir boost-process-$version
cd boost-process-$version
unzip $src
'';
+2 -2
View File
@@ -1,12 +1,12 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.55.0";
patches = [ ./clang-math.patch ./clang-math-2.patch ./gcc-5.patch ];
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_55_0.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
sha256 = "0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z";
};
})
+2 -2
View File
@@ -1,10 +1,10 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.59.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_59_0.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
sha256 = "1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj";
};
})
+2 -2
View File
@@ -1,10 +1,10 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.60.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_60_0.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
sha256 = "0fzx6dwqbrkd4bcd8pjv0fpapwmrxxwr8yx9g67lihlsk3zzysk8";
};
+2 -2
View File
@@ -1,10 +1,10 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.65.1";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_65_1.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
# SHA256 from http://www.boost.org/users/history/version_1_65_1.html
sha256 = "9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81";
};
+2 -2
View File
@@ -1,10 +1,10 @@
{ callPackage, fetchurl, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.66.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_66_0.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
# SHA256 from http://www.boost.org/users/history/version_1_66_0.html
sha256 = "5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9";
};
+2 -2
View File
@@ -1,10 +1,10 @@
{ callPackage, fetchurl, fetchpatch, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.68.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_68_0.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
# SHA256 from http://www.boost.org/users/history/version_1_68_0.html
sha256 = "7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7";
};
+2 -2
View File
@@ -1,10 +1,10 @@
{ callPackage, fetchurl, fetchpatch, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.69.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_69_0.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
# SHA256 from http://www.boost.org/users/history/version_1_69_0.html
sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
};
+2 -2
View File
@@ -1,10 +1,10 @@
{ callPackage, fetchurl, fetchpatch, ... } @ args:
callPackage ./generic.nix (args // {
callPackage ./generic.nix (args // rec {
version = "1.70.0";
src = fetchurl {
url = "mirror://sourceforge/boost/boost_1_70_0.tar.bz2";
url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
# SHA256 from http://www.boost.org/users/history/version_1_70_0.html
sha256 = "430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778";
};
+2 -3
View File
@@ -4,10 +4,9 @@ callPackage ./generic.nix (args // rec {
version = "1.72.0";
src = fetchurl {
#url = "mirror://sourceforge/boost/boost_1_72_0.tar.bz2";
urls = [
"mirror://sourceforge/boost/boost_1_72_0.tar.bz2"
"https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.bz2"
"mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
"https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
];
# SHA256 from http://www.boost.org/users/history/version_1_72_0.html
sha256 = "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722";
+2 -3
View File
@@ -4,10 +4,9 @@ callPackage ./generic.nix (args // rec {
version = "1.73.0";
src = fetchurl {
#url = "mirror://sourceforge/boost/boost_1_73_0.tar.bz2";
urls = [
"mirror://sourceforge/boost/boost_1_73_0.tar.bz2"
"https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.bz2"
"mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
"https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
];
# SHA256 from http://www.boost.org/users/history/version_1_73_0.html
sha256 = "4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402";
+2 -2
View File
@@ -5,8 +5,8 @@ callPackage ./generic.nix (args // rec {
src = fetchurl {
urls = [
"mirror://sourceforge/boost/boost_1_74_0.tar.bz2"
"https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2"
"mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
"https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
];
# SHA256 from http://www.boost.org/users/history/version_1_74_0.html
sha256 = "83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1";
+2 -2
View File
@@ -5,8 +5,8 @@ callPackage ./generic.nix (args // rec {
src = fetchurl {
urls = [
"mirror://sourceforge/boost/boost_1_75_0.tar.bz2"
"https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.bz2"
"mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
"https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
];
# SHA256 from http://www.boost.org/users/history/version_1_75_0.html
sha256 = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb";
+15
View File
@@ -0,0 +1,15 @@
{ callPackage, fetchurl, fetchpatch, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "1.77.0";
src = fetchurl {
urls = [
"mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
"https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
];
# SHA256 from http://www.boost.org/users/history/version_1_77_0.html
sha256 = "sha256-/J+F/AMOIzFCkIJBr3qEbmBjCqc4jeml+vsfOiaECFQ=";
};
})
@@ -44,4 +44,5 @@ in {
boost173 = makeBoost ./1.73.nix;
boost174 = makeBoost ./1.74.nix;
boost175 = makeBoost ./1.75.nix;
boost177 = makeBoost ./1.77.nix;
}
+3 -2
View File
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, ucommon, openssl, libgcrypt }:
stdenv.mkDerivation rec {
name = "ccrtp-2.1.2";
pname = "ccrtp";
version = "2.1.2";
src = fetchurl {
url = "mirror://gnu/ccrtp/${name}.tar.gz";
url = "mirror://gnu/ccrtp/ccrtp-${version}.tar.gz";
sha256 = "17ili8l7zqbbkzr1rcy4hlnazkf50mds41wg6n7bfdsx3c7cldgh";
};
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, fetchpatch, python2 }:
stdenv.mkDerivation rec {
name = "clearsilver-0.10.5";
pname = "clearsilver";
version = "0.10.5";
src = fetchurl {
url = "http://www.clearsilver.net/downloads/${name}.tar.gz";
url = "http://www.clearsilver.net/downloads/clearsilver-${version}.tar.gz";
sha256 = "1046m1dpq3nkgxbis2dr2x7hynmy51n64465q78d7pdgvqwa178y";
};
+3 -2
View File
@@ -1,10 +1,11 @@
{ fetchurl, lib, stdenv, gmp, isl }:
stdenv.mkDerivation rec {
name = "cloog-0.18.0";
pname = "cloog";
version = "0.18.0";
src = fetchurl {
url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./${name}.tar.gz";
url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-${version}.tar.gz";
sha256 = "1c4aa8dde7886be9cbe0f9069c334843b21028f61d344a2d685f88cb1dcf2228";
};
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl, cmake, boost, zlib}:
stdenv.mkDerivation rec {
name = "clucene-core-2.3.3.4";
pname = "clucene-core";
version = "2.3.3.4";
src = fetchurl {
url = "mirror://sourceforge/clucene/${name}.tar.gz";
url = "mirror://sourceforge/clucene/clucene-core-${version}.tar.gz";
sha256 = "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx";
};
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl}:
stdenv.mkDerivation rec {
name = "clucene-core-0.9.21b";
pname = "clucene-core";
version = "0.9.21b";
src = fetchurl {
url = "mirror://sourceforge/clucene/${name}.tar.bz2";
url = "mirror://sourceforge/clucene/clucene-core-${version}.tar.bz2";
sha256 = "202ee45af747f18642ae0a088d7c4553521714a511a1a9ec99b8144cf9928317";
};
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl}:
stdenv.mkDerivation rec {
name = "cminpack-1.3.6";
pname = "cminpack";
version = "1.3.6";
src = fetchurl {
url = "http://devernay.free.fr/hacks/cminpack/${name}.tar.gz";
url = "http://devernay.free.fr/hacks/cminpack/cminpack-${version}.tar.gz";
sha256 = "17yh695aim508x1kn9zf6g13jxwk3pi3404h5ix4g5lc60hzs1rw";
};
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "cpptest-2.0.0";
pname = "cpptest";
version = "2.0.0";
src = fetchurl {
url = "mirror://sourceforge/project/cpptest/cpptest/${name}/${name}.tar.gz";
url = "mirror://sourceforge/project/cpptest/cpptest/cpptest-${version}/cpptest-${version}.tar.gz";
sha256 = "0lpy3f2fjx1srh02myanlp6zfi497whlldcrnij39ghfhm0arcnm";
};
@@ -3,10 +3,11 @@
}:
stdenv.mkDerivation rec {
name = "dbus-glib-0.112";
pname = "dbus-glib";
version = "0.112";
src = fetchurl {
url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
url = "${meta.homepage}/releases/dbus-glib/dbus-glib-${version}.tar.gz";
sha256 = "sha256-fVUNzN/NKG4ziVUBgp7Zce62XGFOc6rbSgiu73GbFDo=";
};
+17 -4
View File
@@ -1,5 +1,6 @@
{ stdenv
, lib
, fetchpatch
, fetchurl
, pkg-config
, expat
@@ -15,6 +16,8 @@
, docbook_xml_dtd_44
, docbook-xsl-nons
, xmlto
, autoreconfHook
, autoconf-archive
}:
stdenv.mkDerivation rec {
@@ -32,15 +35,23 @@ stdenv.mkDerivation rec {
# Also applied upstream in https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/189,
# expected in version 1.14
./docs-reproducible-ids.patch
# AC_PATH_XTRA doesn't seem to find X11 libs even though libX11 seems
# to provide valid pkg-config files. This replace AC_PATH_XTRA with
# PKG_CHECK_MODULES.
# MR merged cf https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/212/diffs?commit_id=23880a181e82ee7f
(fetchpatch {
url = "https://gitlab.freedesktop.org/dbus/dbus/-/commit/6bfaea0707ba1a7788c4b6d30c18fb094f3a1dd4.patch";
sha256 = "1d8ay55n2ksw5faqx3hsdpfni3xl3gq9hnjl65073xcfnx67x8d2";
})
] ++ (lib.optional stdenv.isSunOS ./implement-getgrouplist.patch);
postPatch = ''
substituteInPlace tools/Makefile.in \
--replace 'install-localstatelibDATA:' 'disabled:' \
substituteInPlace bus/Makefile.am \
--replace 'install-data-hook:' 'disabled:' \
--replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
substituteInPlace tools/Makefile.am \
--replace 'install-data-local:' 'disabled:' \
--replace 'installcheck-local:' 'disabled:'
substituteInPlace bus/Makefile.in \
--replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
'' + /* cleanup of runtime references */ ''
substituteInPlace ./dbus/dbus-sysdeps-unix.c \
--replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\""
@@ -51,6 +62,8 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" "lib" "doc" "man" ];
nativeBuildInputs = [
autoreconfHook
autoconf-archive
pkg-config
docbook_xml_dtd_44
docbook-xsl-nons
+4 -3
View File
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl, libxml2, openssl, bzip2}:
stdenv.mkDerivation {
name = "dclib-0.3.7";
stdenv.mkDerivation rec {
pname = "dclib";
version = "0.3.7";
src = fetchurl {
url = "ftp://ftp.debian.nl/pub/freebsd/ports/distfiles/dclib-0.3.7.tar.bz2";
url = "ftp://ftp.debian.nl/pub/freebsd/ports/distfiles/dclib-${version}.tar.bz2";
sha256 = "02jdzm5hqzs1dv2rd596vgpcjaapm55pqqapz5m94l30v4q72rfc";
};
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
name = "dclxvi-2013-01-27";
pname = "dclxvi";
version = "unstable-2013-01-27";
src = fetchFromGitHub {
owner = "agl";
@@ -1,10 +1,11 @@
{ lib, stdenv, darwin, fetchurl, openal }:
stdenv.mkDerivation rec {
name = "freealut-1.1.0";
pname = "freealut";
version = "1.1.0";
src = fetchurl {
url = "http://www.openal.org/openal_webstf/downloads/${name}.tar.gz";
url = "http://www.openal.org/openal_webstf/downloads/freealut-${version}.tar.gz";
sha256 = "0kzlil6112x2429nw6mycmif8y6bxr2cwjcvp18vh6s7g63ymlb0";
};
+9 -11
View File
@@ -1,12 +1,11 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, glib, autoreconfHook }:
let
cross = stdenv.hostPlatform != stdenv.buildPlatform;
in stdenv.mkDerivation (rec {
name = "gamin-0.1.10";
stdenv.mkDerivation rec {
pname = "gamin";
version = "0.1.10";
src = fetchurl {
url = "https://www.gnome.org/~veillard/gamin/sources/${name}.tar.gz";
url = "https://www.gnome.org/~veillard/gamin/sources/gamin-${version}.tar.gz";
sha256 = "18cr51y5qacvs2fc2p1bqv32rs8bzgs6l67zhasyl45yx055y218";
};
@@ -22,6 +21,10 @@ in stdenv.mkDerivation (rec {
"CPPFLAGS=-D_GNU_SOURCE"
];
preBuild = lib.optionalString stdenv.isDarwin ''
sed -i 's/,--version-script=.*$/\\/' libgamin/Makefile
'';
patches = [ ./deadlock.patch ]
++ map fetchurl (import ./debian-patches.nix)
++ lib.optional stdenv.cc.isClang ./returnval.patch
@@ -29,7 +32,7 @@ in stdenv.mkDerivation (rec {
name = "fix-pthread-mutex.patch";
url = "https://git.alpinelinux.org/aports/plain/main/gamin/fix-pthread-mutex.patch?h=3.4-stable&id=a1a836b089573752c1b0da7d144c0948b04e8ea8";
sha256 = "13igdbqsxb3sz0h417k6ifmq2n4siwqspj6slhc7fdl5wd1fxmdz";
}) ++ lib.optional (cross) ./abstract-socket-namespace.patch ;
}) ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./abstract-socket-namespace.patch;
meta = with lib; {
@@ -41,8 +44,3 @@ in stdenv.mkDerivation (rec {
};
}
// lib.optionalAttrs stdenv.isDarwin {
preBuild = ''
sed -i 's/,--version-script=.*$/\\/' libgamin/Makefile
'';
})
+3 -10
View File
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, fetchpatch
{ lib, stdenv, fetchurl
, autoconf
, automake
, pkg-config
@@ -14,21 +14,14 @@
stdenv.mkDerivation rec {
pname = "gd";
version = "2.3.2";
version = "2.3.3";
src = fetchurl {
url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz";
sha256 = "1yypywkh8vphcy4qqpf51kxpb0a3r7rjqk3fc61rpn70hiq092j7";
sha256 = "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z";
};
hardeningDisable = [ "format" ];
patches = [
(fetchpatch {
name = "CVE-2021-40812.partial.patch";
url = "https://github.com/libgd/libgd/commit/6f5136821be86e7068fcdf651ae9420b5d42e9a9.patch";
sha256 = "11rvhd23bl05ksj8z39hwrhqqjm66svr4hl3y230wrc64rvnd2d2";
})
];
# -pthread gets passed to clang, causing warnings
configureFlags = lib.optional stdenv.isDarwin "--enable-werror=no";
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, xlibsWrapper, imlib2 }:
stdenv.mkDerivation rec {
name = "giblib-1.2.4";
pname = "giblib";
version = "1.2.4";
src = fetchurl {
url = "http://linuxbrit.co.uk/downloads/${name}.tar.gz";
url = "http://linuxbrit.co.uk/downloads/giblib-${version}.tar.gz";
sha256 = "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp";
};
+4 -3
View File
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl}:
stdenv.mkDerivation {
name = "giflib-4.1.6";
stdenv.mkDerivation rec {
pname = "giflib";
version = "4.1.6";
src = fetchurl {
url = "mirror://sourceforge/giflib/giflib-4.1.6.tar.bz2";
url = "mirror://sourceforge/giflib/giflib-${version}.tar.bz2";
sha256 = "1v9b7ywz7qg8hli0s9vv1b8q9xxb2xvqq2mg1zpr73xwqpcwxhg1";
};
@@ -1,9 +1,10 @@
{ lib, stdenv, fetchurl, fetchpatch, xmlto, docbook_xml_dtd_412, docbook_xsl, libxml2, fixDarwinDylibNames, pkgsStatic }:
stdenv.mkDerivation rec {
name = "giflib-5.2.1";
pname = "giflib";
version = "5.2.1";
src = fetchurl {
url = "mirror://sourceforge/giflib/${name}.tar.gz";
url = "mirror://sourceforge/giflib/giflib-${version}.tar.gz";
sha256 = "1gbrg03z1b6rlrvjyc6d41bc8j1bsr7rm8206gb1apscyii5bnii";
};
+5 -4
View File
@@ -1,11 +1,12 @@
{lib, stdenv, fetchurl, freeglut, libX11, libXt, libXmu, libXi, libXext, libGL, libGLU}:
stdenv.mkDerivation {
name = "gle-3.1.0";
stdenv.mkDerivation rec {
pname = "gle";
version = "3.1.0";
buildInputs = [libGLU libGL freeglut libX11 libXt libXmu libXi libXext];
src = fetchurl {
urls = [
"mirror://sourceforge/project/gle/gle/gle-3.1.0/gle-3.1.0.tar.gz"
"https://www.linas.org/gle/pub/gle-3.1.0.tar.gz"
"mirror://sourceforge/project/gle/gle/gle-${version}/gle-${version}.tar.gz"
"https://www.linas.org/gle/pub/gle-${version}.tar.gz"
];
sha256 = "09zs1di4dsssl9k322nzildvf41jwipbzhik9p43yb1bcfsp92nw";
};
+3 -2
View File
@@ -5,10 +5,11 @@
with lib;
stdenv.mkDerivation rec {
name = "glew-1.10.0";
pname = "glew";
version = "1.10.0";
src = fetchurl {
url = "mirror://sourceforge/glew/${name}.tgz";
url = "mirror://sourceforge/glew/glew-${version}.tgz";
sha256 = "01zki46dr5khzlyywr3cg615bcal32dazfazkf360s1znqh17i4r";
};
+3 -2
View File
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, libGLU, libGL, libX11, libXext }:
stdenv.mkDerivation rec {
name = "glfw-2.7.9";
pname = "glfw";
version = "2.7.9";
src = fetchurl {
url = "mirror://sourceforge/glfw/${name}.tar.bz2";
url = "mirror://sourceforge/glfw/glfw-${version}.tar.bz2";
sha256 = "17c2msdcb7pn3p8f83805h1c216bmdqnbn9hgzr1j8wnwjcpxx6i";
};
+2 -2
View File
@@ -44,7 +44,7 @@
let
version = "2.33";
patchSuffix = "-56";
patchSuffix = "-59";
sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8=";
in
@@ -63,7 +63,7 @@ stdenv.mkDerivation ({
[
/* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
$ git fetch --all -p && git checkout origin/release/2.33/master && git describe
glibc-2.33-56-g6090cf1330
glibc-2.33-59-gf9592d65f2
$ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz
To compare the archive contents zdiff can be used.
@@ -1,8 +1,10 @@
{ config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkg-config, lzip
, perl, gmp, autoconf, automake, libidn, p11-kit, libiconv
, perl, gmp, autoconf, automake, libidn, libiconv
, unbound, dns-root-data, gettext, util-linux
, cxxBindings ? !stdenv.hostPlatform.isStatic # tries to link libstdc++.so
, guileBindings ? config.gnutls.guile or false, guile
, tpmSupport ? false, trousers, which, nettools, libunistring
, withP11-kit ? !stdenv.hostPlatform.isStatic, p11-kit
, withSecurity ? false, Security # darwin Security.framework
}:
@@ -51,13 +53,15 @@ stdenv.mkDerivation rec {
preConfigure = "patchShebangs .";
configureFlags =
lib.optionals stdenv.isLinux [
lib.optionals withP11-kit [
"--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt"
"--with-default-trust-store-pkcs11=pkcs11:"
] ++ [
"--disable-dependency-tracking"
"--enable-fast-install"
"--with-unbound-root-key-file=${dns-root-data}/root.key"
(lib.withFeature withP11-kit "p11-kit")
(lib.enableFeature cxxBindings "cxx")
] ++ lib.optional guileBindings [
"--enable-guile"
"--with-guile-site-dir=\${out}/share/guile/site"
@@ -67,7 +71,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp libunistring unbound gettext libiconv ]
buildInputs = [ lzo lzip libtasn1 libidn zlib gmp libunistring unbound gettext libiconv ]
++ lib.optional (withP11-kit) p11-kit
++ lib.optional (isDarwin && withSecurity) Security
++ lib.optional (tpmSupport && stdenv.isLinux) trousers
++ lib.optional guileBindings guile;
@@ -1,13 +1,14 @@
{ lib, stdenv, fetchurl, qt4, cmake }:
stdenv.mkDerivation rec {
name = "grantlee-0.5.1";
pname = "grantlee";
version = "0.5.1";
# Upstream download server has country code firewall, so I made a mirror.
src = fetchurl {
urls = [
"http://downloads.grantlee.org/${name}.tar.gz"
"http://www.loegria.net/grantlee/${name}.tar.gz"
"http://downloads.grantlee.org/grantlee-${version}.tar.gz"
"http://www.loegria.net/grantlee/grantlee-${version}.tar.gz"
];
sha256 = "1b501xbimizmbmysl1j5zgnp48qw0r2r7lhgmxvzhzlv9jzhj60r";
};
+3 -2
View File
@@ -1,10 +1,11 @@
{ fetchurl, fetchpatch, lib, stdenv }:
stdenv.mkDerivation rec {
name = "gsl-1.16";
pname = "gsl";
version = "1.16";
src = fetchurl {
url = "mirror://gnu/gsl/${name}.tar.gz";
url = "mirror://gnu/gsl/gsl-${version}.tar.gz";
sha256 = "0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k";
};
+1 -1
View File
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
version = "1.0.3";
src = fetchurl {
url = "mirror://gnu/gss/${pname}-${version}.tar.gz";
url = "mirror://gnu/gss/gss-${version}.tar.gz";
sha256 = "1syyvh3k659xf1hdv9pilnnhbbhs6vfapayp4xgdcc8mfgf9v4gz";
};
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, intltool, gtk2 }:
stdenv.mkDerivation {
name = "gtk-engine-bluecurve-1.0";
stdenv.mkDerivation rec {
pname = "gtk-engine-bluecurve";
version = "1.0";
src = fetchurl {
url = "https://ftp.gnome.org/pub/gnome/teams/art.gnome.org/archive/themes/gtk2/GTK2-Wonderland-Engine-1.0.tar.bz2";
url = "https://ftp.gnome.org/pub/gnome/teams/art.gnome.org/archive/themes/gtk2/GTK2-Wonderland-Engine-${version}.tar.bz2";
sha256 = "1nim3lhmbs5mw1hh76d9258c1p923854x2j6i30gmny812c7qjnm";
};
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, pkg-config, intltool, gtk2 }:
stdenv.mkDerivation {
name = "gtk-engines-2.20.2";
stdenv.mkDerivation rec {
pname = "gtk-engines";
version = "2.20.2";
src = fetchurl {
url = "mirror://gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.tar.bz2";
url = "mirror://gnome/sources/gtk-engines/${lib.versions.majorMinor version}/gtk-engines-${version}.tar.bz2";
sha256 = "1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm";
};
@@ -1,7 +1,8 @@
{ lib, stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
name = "hotpatch-0.2";
pname = "hotpatch";
version = "0.2";
src = fetchFromGitHub {
owner = "vikasnkumar";
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl}:
stdenv.mkDerivation {
name = "commons-bsf-1.2";
stdenv.mkDerivation rec {
pname = "commons-bsf";
version = "2.4.0";
src = fetchurl {
url = "mirror://apache/commons/bsf/binaries/bsf-bin-2.4.0.tar.gz";
url = "mirror://apache/commons/bsf/binaries/bsf-bin-${version}.tar.gz";
sha256 = "1my3hv4y8cvrd1kr315wvbjqsamzlzswnbqcmsa2m4hqcafddfr8";
};
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl}:
stdenv.mkDerivation {
name = "commons-logging-1.2";
stdenv.mkDerivation rec {
pname = "commons-logging";
version = "1.2";
src = fetchurl {
url = "mirror://apache/commons/logging/binaries/commons-logging-1.2-bin.tar.gz";
url = "mirror://apache/commons/logging/binaries/commons-logging-${version}-bin.tar.gz";
sha256 = "1gc70pmcv0x6ibl89jglmr22f8zpr63iaifi49nrq399qw2qhx9z";
};
@@ -1,18 +1,19 @@
{lib, stdenv, fetchurl, gettext, jdk8, libmatthew_java}:
{ lib, stdenv, fetchurl, gettext, jdk8, libmatthew_java }:
stdenv.mkDerivation rec {
pname = "dbus-java";
version = "2.7";
let jdk = jdk8; in
stdenv.mkDerivation {
name = "dbus-java-2.7";
src = fetchurl {
url = "https://dbus.freedesktop.org/releases/dbus-java/dbus-java-2.7.tar.gz";
url = "https://dbus.freedesktop.org/releases/dbus-java/dbus-java-${version}.tar.gz";
sha256 = "0cyaxd8x6sxmi6pklkkx45j311a6w51fxl4jc5j3inc4cailwh5y";
};
JAVA_HOME=jdk;
JAVA="${jdk}/bin/java";
JAVA_HOME=jdk8;
JAVA="${jdk8}/bin/java";
PREFIX="\${out}";
JAVAUNIXLIBDIR="${libmatthew_java}/lib/jni";
JAVAUNIXJARDIR="${libmatthew_java}/share/java";
buildInputs = [ gettext jdk ];
buildInputs = [ gettext jdk8 ];
# I'm too lazy to build the documentation
preBuild = ''
sed -i -e "s|all: bin doc man|all: bin|" \
@@ -1,9 +1,11 @@
{lib, stdenv, fetchurl, jdk, unzip}:
stdenv.mkDerivation {
name = "GeoIPJava-1.2.5";
stdenv.mkDerivation rec {
pname = "GeoIPJava";
version = "1.2.5";
src = fetchurl {
url = "https://geolite.maxmind.com/download/geoip/api/java/GeoIPJava-1.2.5.zip";
url = "https://geolite.maxmind.com/download/geoip/api/java/GeoIPJava-${version}.zip";
sha256 = "1gb2d0qvvq7xankz7l7ymbr3qprwk9bifpy4hlgw0sq4i6a55ypd";
};
nativeBuildInputs = [ unzip ];
@@ -1,14 +1,15 @@
{lib, stdenv, fetchurl, jre} :
stdenv.mkDerivation rec {
name = "jflex-1.8.2";
pname = "jflex";
version = "1.8.2";
src = fetchurl {
url = "http://jflex.de/release/${name}.tar.gz";
url = "http://jflex.de/release/jflex-${version}.tar.gz";
sha256 = "1ar7g6zb2xjgnws3j4cqcp86jplhc9av8cpcjdmxw08x6igd5q51";
};
sourceRoot = name;
sourceRoot = "${pname}-${version}";
installPhase = ''
runHook preInstall
@@ -1,9 +1,11 @@
{lib, stdenv, fetchurl, jdk}:
stdenv.mkDerivation {
name = "libmatthew-java-0.8";
stdenv.mkDerivation rec {
pname = "libmatthew-java";
version = "0.8";
src = fetchurl {
url = "https://src.fedoraproject.org/repo/pkgs/libmatthew-java/libmatthew-java-0.8.tar.gz/8455b8751083ce25c99c2840609271f5/libmatthew-java-0.8.tar.gz";
url = "https://src.fedoraproject.org/repo/pkgs/libmatthew-java/libmatthew-java-${version}.tar.gz/8455b8751083ce25c99c2840609271f5/libmatthew-java-${version}.tar.gz";
sha256 = "1yldkhsdzm0a41a0i881bin2jklhp85y3ah245jd6fz3npcx7l85";
};
JAVA_HOME=jdk;
@@ -1,10 +1,11 @@
{ lib, stdenv, fetchurl, makeWrapper, jdk }:
stdenv.mkDerivation rec {
name = "lombok-1.18.20";
pname = "lombok";
version = "1.18.20";
src = fetchurl {
url = "https://projectlombok.org/downloads/${name}.jar";
url = "https://projectlombok.org/downloads/lombok-${version}.jar";
sha256 = "sha256-zpR75sL751n7vo7ztCtoJfgUyYyIU/EBPy2WMM7fdLA=";
};
@@ -1,10 +1,11 @@
{lib, stdenv, fetchurl} :
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation {
name = "mockobjects-0.09";
stdenv.mkDerivation rec {
pname = "mockobjects";
version = "0.09";
src = fetchurl {
url = "mirror://sourceforge/mockobjects/mockobjects-bin-0.09.tar";
url = "mirror://sourceforge/mockobjects/mockobjects-bin-${version}.tar";
sha256 = "18rnyqfcyh0s3dwkkaszdd50ssyjx5fa1y3ii309ldqg693lfgnz";
};

Some files were not shown because too many files have changed in this diff Show More