diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index a06ac0d11f7..accaeb652d0 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -121,15 +121,20 @@ rec { js = { bits = 32; significantByte = littleEndian; family = "js"; }; }; - # Determine where two CPUs are compatible with each other. That is, - # can we run code built for system b on system a? For that to - # happen, then the set of all possible possible programs that system - # b accepts must be a subset of the set of all programs that system - # a accepts. This compatibility relation forms a category where each - # CPU is an object and each arrow from a to b represents - # compatibility. CPUs with multiple modes of Endianness are - # isomorphic while all CPUs are endomorphic because any program - # built for a CPU can run on that CPU. + # Determine when two CPUs are compatible with each other. That is, + # can code built for system B run on system A? For that to happen, + # the programs that system B accepts must be a subset of the + # programs that system A accepts. + # + # We have the following properties of the compatibility relation, + # which must be preserved when adding compatibility information for + # additional CPUs. + # - (reflexivity) + # Every CPU is compatible with itself. + # - (transitivity) + # If A is compatible with B and B is compatible with C then A is compatible with C. + # - (compatible under multiple endianness) + # CPUs with multiple modes of endianness are pairwise compatible. isCompatible = a: b: with cpuTypes; lib.any lib.id [ # x86 (b == i386 && isCompatible a i486) diff --git a/pkgs/applications/graphics/ImageMagick/6.x.nix b/pkgs/applications/graphics/ImageMagick/6.x.nix index c77e60950c9..d6e97c5d682 100644 --- a/pkgs/applications/graphics/ImageMagick/6.x.nix +++ b/pkgs/applications/graphics/ImageMagick/6.x.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, pkg-config, libtool , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre , lcms2, openexr, libpng, librsvg, libtiff, libxml2, openjpeg, libwebp, fftw, libheif, libde265 -, ApplicationServices +, ApplicationServices, Foundation }: let @@ -50,7 +50,8 @@ stdenv.mkDerivation rec { ] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ openexr librsvg openjpeg ] - ++ lib.optional stdenv.isDarwin ApplicationServices; + ++ lib.optionals stdenv.isDarwin + [ ApplicationServices Foundation ]; propagatedBuildInputs = [ bzip2 freetype libjpeg lcms2 fftw ] diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix index 52bd01ae17b..60d5dec48a5 100644 --- a/pkgs/applications/networking/cluster/kubernetes/default.nix +++ b/pkgs/applications/networking/cluster/kubernetes/default.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation rec { pname = "kubernetes"; - version = "1.21.0"; + version = "1.21.1"; src = fetchFromGitHub { owner = "kubernetes"; repo = "kubernetes"; rev = "v${version}"; - sha256 = "sha256-5IUcKVbHxL5qb7M087sZSsd50t5zSaeWATnyLHkVsRU="; + sha256 = "sha256-gJjCw28SqU49kIiRH+MZgeYN4VBgKVEaRPr5A/2c5Pc="; }; nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ]; diff --git a/pkgs/applications/science/biology/cd-hit/default.nix b/pkgs/applications/science/biology/cd-hit/default.nix index bed562abe23..ba1d6c27ccb 100644 --- a/pkgs/applications/science/biology/cd-hit/default.nix +++ b/pkgs/applications/science/biology/cd-hit/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, makeWrapper, zlib, perl, perlPackages }: +{ lib, stdenv, fetchFromGitHub, makeWrapper, zlib, perl, perlPackages, openmp }: stdenv.mkDerivation rec { version = "4.8.1"; @@ -14,8 +14,12 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ perl perlPackages.TextNSP perlPackages.PerlMagick ]; nativeBuildInputs = [ zlib makeWrapper ]; + buildInputs = lib.optional stdenv.cc.isClang openmp; - makeFlags = [ "PREFIX=$(out)/bin" ]; + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}c++" # remove once https://github.com/weizhongli/cdhit/pull/114 is merged + "PREFIX=$(out)/bin" + ]; preInstall = "mkdir -p $out/bin"; diff --git a/pkgs/development/compilers/copper/default.nix b/pkgs/development/compilers/copper/default.nix index dd6af73547a..736004fb580 100644 --- a/pkgs/development/compilers/copper/default.nix +++ b/pkgs/development/compilers/copper/default.nix @@ -28,5 +28,6 @@ stdenv.mkDerivation rec { homepage = "https://tibleiz.net/copper/"; license = licenses.bsd2; platforms = platforms.x86_64; + broken = stdenv.isDarwin; }; } diff --git a/pkgs/development/interpreters/lua-5/5.4.darwin.patch b/pkgs/development/interpreters/lua-5/5.4.darwin.patch new file mode 100644 index 00000000000..eb16ed9c689 --- /dev/null +++ b/pkgs/development/interpreters/lua-5/5.4.darwin.patch @@ -0,0 +1,48 @@ +--- a/Makefile 2021-05-14 22:39:14.407200562 +0300 ++++ b/Makefile 2021-05-14 22:36:23.828513407 +0300 +@@ -41,7 +41,7 @@ + # What to install. + TO_BIN= lua luac + TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.${version}.dylib + TO_MAN= lua.1 luac.1 + + # Lua version and release. +@@ -60,6 +60,8 @@ + cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) + cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) + cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) ++ ln -s -f liblua.${version}.dylib $(INSTALL_LIB)/liblua.${luaversion}.dylib ++ ln -s -f liblua.${luaversion}.dylib $(INSTALL_LIB)/liblua.dylib + + uninstall: + cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN) +--- a/src/Makefile 2021-05-14 22:35:38.575051882 +0300 ++++ b/src/Makefile 2021-05-14 22:35:33.584631206 +0300 +@@ -32,7 +32,7 @@ + + PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris + +-LUA_A= liblua.a ++LUA_A= liblua.${version}.dylib + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o + LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o + BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) +@@ -57,11 +57,13 @@ + a: $(ALL_A) + + $(LUA_A): $(BASE_O) +- $(AR) $@ $(BASE_O) +- $(RANLIB) $@ ++ $(CC) -dynamiclib -install_name $(out)/lib/liblua.${version}.dylib \ ++ -compatibility_version ${version} -current_version ${version} \ ++ -o liblua.${version}.dylib $^ + + $(LUA_T): $(LUA_O) $(LUA_A) +- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) ++ $(CC) -fno-common $(MYLDFLAGS) \ ++ -o $@ $(LUA_O) $(LUA_A) -L. -llua.${version} $(LIBS) + + $(LUAC_T): $(LUAC_O) $(LUA_A) + $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix index ae5d76aa36c..3f525e6d6f0 100644 --- a/pkgs/development/interpreters/lua-5/default.nix +++ b/pkgs/development/interpreters/lua-5/default.nix @@ -5,6 +5,12 @@ rec { lua5_4 = callPackage ./interpreter.nix { sourceVersion = { major = "5"; minor = "4"; patch = "2"; }; hash = "0ksj5zpj74n0jkamy3di1p6l10v4gjnd2zjnb453qc6px6bhsmqi"; + + patches = if stdenv.isDarwin then [ ./5.4.darwin.patch ] else [ + # build lua as a shared library as well, MIT-licensed from + # https://github.com/archlinux/svntogit-packages/tree/packages/lua/trunk + ./liblua.so.patch + ]; }; lua5_4_compat = lua5_4.override({ diff --git a/pkgs/development/tools/ecpdap/default.nix b/pkgs/development/tools/ecpdap/default.nix index 46b5945fb94..3bb12c40e35 100644 --- a/pkgs/development/tools/ecpdap/default.nix +++ b/pkgs/development/tools/ecpdap/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, rustPlatform, pkg-config, libusb1 }: +{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, libusb1, AppKit }: rustPlatform.buildRustPackage rec { pname = "ecpdap"; @@ -15,7 +15,8 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libusb1 ]; + buildInputs = [ libusb1 ] + ++ lib.optional stdenv.isDarwin AppKit; postInstall = '' mkdir -p $out/etc/udev/rules.d diff --git a/pkgs/servers/irc/inspircd/default.nix b/pkgs/servers/irc/inspircd/default.nix index f907e337ce6..561151bfa75 100644 --- a/pkgs/servers/irc/inspircd/default.nix +++ b/pkgs/servers/irc/inspircd/default.nix @@ -142,13 +142,13 @@ in stdenv.mkDerivation rec { pname = "inspircd"; - version = "3.9.0"; + version = "3.10.0"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "0x3paasf4ynx4ddky2nq613vyirbhfnxzkjq148k7154pz3q426s"; + sha256 = "1817gmxk4v7k5398d2fb6qkwadg0fd980gqmr80wdnppx450ikn7"; }; outputs = [ "bin" "lib" "man" "doc" "out" ]; @@ -160,6 +160,8 @@ stdenv.mkDerivation rec { buildInputs = extraInputs; configurePhase = '' + runHook preConfigure + patchShebangs configure make/*.pl # configure is executed twice, once to set the extras @@ -183,6 +185,8 @@ stdenv.mkDerivation rec { --module-dir ${placeholder "lib"}/lib/inspircd \ --runtime-dir /var/run \ --script-dir ${placeholder "bin"}/share/inspircd \ + + runHook postConfigure ''; postInstall = '' diff --git a/pkgs/tools/graphics/dmtx-utils/default.nix b/pkgs/tools/graphics/dmtx-utils/default.nix index 4ab54593ed8..f4cc746a24f 100644 --- a/pkgs/tools/graphics/dmtx-utils/default.nix +++ b/pkgs/tools/graphics/dmtx-utils/default.nix @@ -5,6 +5,7 @@ , pkg-config , libdmtx , imagemagick +, Foundation }: stdenv.mkDerivation rec { @@ -20,7 +21,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libdmtx imagemagick ]; + buildInputs = [ libdmtx imagemagick ] + ++ lib.optional stdenv.isDarwin Foundation; meta = { description = "Data matrix command-line utilities"; diff --git a/pkgs/tools/misc/code-minimap/default.nix b/pkgs/tools/misc/code-minimap/default.nix index 6a253a493fc..cd0be4fa99b 100644 --- a/pkgs/tools/misc/code-minimap/default.nix +++ b/pkgs/tools/misc/code-minimap/default.nix @@ -1,6 +1,8 @@ { lib +, stdenv , rustPlatform , fetchFromGitHub +, libiconv }: rustPlatform.buildRustPackage rec { @@ -16,6 +18,8 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "sha256-87aRZC4OE3UTVToHi5XDBxVqEH4oFeFR4REf69OBkIw="; + buildInputs = lib.optional stdenv.isDarwin libiconv; + meta = with lib; { description = "A high performance code minimap render"; homepage = "https://github.com/wfxr/code-minimap"; diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix index 3c60f5373a1..ddcb8579318 100644 --- a/pkgs/tools/networking/findomain/default.nix +++ b/pkgs/tools/networking/findomain/default.nix @@ -4,6 +4,7 @@ , rustPlatform , installShellFiles , perl +, libiconv , Security }: @@ -21,7 +22,7 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "sha256-FDiIM1LlWEFmiIvebdCsznkB7egspNKhY6xUXB838g8="; nativeBuildInputs = [ installShellFiles perl ]; - buildInputs = lib.optional stdenv.isDarwin Security; + buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ]; postInstall = '' installManPage ${pname}.1 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e27b91ba7cd..17fc5c59a90 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22805,7 +22805,8 @@ in dmrconfig = callPackage ../applications/radio/dmrconfig { }; - dmtx-utils = callPackage (callPackage ../tools/graphics/dmtx-utils) { + dmtx-utils = callPackage ../tools/graphics/dmtx-utils { + inherit (darwin.apple_sdk.frameworks) Foundation; }; inherit (callPackage ../applications/virtualization/docker {}) @@ -22907,7 +22908,9 @@ in jdk = jdk11; }); - ecpdap = callPackage ../development/tools/ecpdap { }; + ecpdap = callPackage ../development/tools/ecpdap { + inherit (darwin.apple_sdk.frameworks) AppKit; + }; ecs-agent = callPackage ../applications/virtualization/ecs-agent { }; @@ -24121,7 +24124,7 @@ in }; imagemagick6 = callPackage ../applications/graphics/ImageMagick/6.x.nix { - inherit (darwin.apple_sdk.frameworks) ApplicationServices; + inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; ghostscript = null; }; @@ -28952,7 +28955,9 @@ in bppsuite = callPackage ../applications/science/biology/bppsuite { }; - cd-hit = callPackage ../applications/science/biology/cd-hit { }; + cd-hit = callPackage ../applications/science/biology/cd-hit { + inherit (llvmPackages) openmp; + }; cmtk = callPackage ../applications/science/biology/cmtk { };