diff options
Diffstat (limited to 'pkgs/development/libraries')
12 files changed, 188 insertions, 91 deletions
diff --git a/pkgs/development/libraries/libcommuni/default.nix b/pkgs/development/libraries/libcommuni/default.nix index 532c91a0eda..3e2c0daf0b4 100644 --- a/pkgs/development/libraries/libcommuni/default.nix +++ b/pkgs/development/libraries/libcommuni/default.nix @@ -19,7 +19,9 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; dontUseQmakeConfigure = true; - configureFlags = [ "-config" "release" ]; + configureFlags = [ "-config" "release" ] + # Build mixes up dylibs/frameworks if one is not explicitely specified. + ++ lib.optionals stdenv.isDarwin [ "-config" "qt_framework" ]; dontWrapQtApps = true; diff --git a/pkgs/development/libraries/libfive/default.nix b/pkgs/development/libraries/libfive/default.nix index 0f6ad84fe75..3833a7fe880 100644 --- a/pkgs/development/libraries/libfive/default.nix +++ b/pkgs/development/libraries/libfive/default.nix @@ -10,6 +10,7 @@ , libpng , boost , guile +, stdenv }: mkDerivation { @@ -26,8 +27,19 @@ mkDerivation { nativeBuildInputs = [ wrapQtAppsHook cmake ninja pkg-config ]; buildInputs = [ eigen zlib libpng boost guile ]; - # Link "Studio" binary to "libfive-studio" to be more obvious: - postFixup = '' + postInstall = if stdenv.isDarwin then '' + # No rules to install the mac app, so do it manually. + mkdir -p $out/Applications + cp -r studio/Studio.app $out/Applications/Studio.app + + install_name_tool \ + -change libfive.dylib $out/lib/libfive.dylib \ + -change libfive-guile.dylib $out/lib/libfive-guile.dylib \ + $out/Applications/Studio.app/Contents/MacOS/Studio + + wrapQtApp $out/Applications/Studio.app/Contents/MacOS/Studio + '' else '' + # Link "Studio" binary to "libfive-studio" to be more obvious: ln -s "$out/bin/Studio" "$out/bin/libfive-studio" ''; diff --git a/pkgs/development/libraries/libnixxml/default.nix b/pkgs/development/libraries/libnixxml/default.nix index 40459dbca22..48edfbfce2c 100644 --- a/pkgs/development/libraries/libnixxml/default.nix +++ b/pkgs/development/libraries/libnixxml/default.nix @@ -1,4 +1,4 @@ -{ fetchFromGitHub, lib, stdenv, autoreconfHook, pkg-config, libxml2, gd, glib, getopt, libxslt, nix }: +{ fetchFromGitHub, lib, stdenv, autoreconfHook, pkg-config, libxml2, gd, glib, getopt, libxslt, nix, bash}: stdenv.mkDerivation { pname = "libnixxml"; @@ -11,17 +11,45 @@ stdenv.mkDerivation { sha256 = "sha256-HKQnCkO1TDs1e0MDil0Roq4YRembqRHQvb7lK3GAftQ="; }; - preConfigure = '' - ./bootstrap + prePatch = '' + # Remove broken test + substituteInPlace tests/draw/Makefile.am \ + --replace "draw-wrong.sh" "" + rm tests/draw/draw-wrong.sh + + # Fix bash path + substituteInPlace scripts/nixexpr2xml.in \ + --replace "/bin/bash" "${bash}/bin/bash" + ''; + + preAutoreconf = '' + # Copied from bootstrap script + ln -s README.md README + mkdir -p config ''; configureFlags = [ "--with-gd" "--with-glib" ]; CFLAGS = "-Wall"; - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libxml2 gd.dev glib getopt libxslt nix ]; + strictDeps = true; + nativeBuildInputs = [ + autoreconfHook + pkg-config + getopt + libxslt + ]; + buildInputs = [ + bash + libxml2 + gd.dev + glib + nix + ]; + checkInputs = [ + nix + ]; - doCheck = false; + doCheck = true; meta = with lib; { description = "XML-based Nix-friendly data integration library"; diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix index 6607a4d00fb..4015ab02a3a 100644 --- a/pkgs/development/libraries/librealsense/default.nix +++ b/pkgs/development/libraries/librealsense/default.nix @@ -7,7 +7,7 @@ assert enablePython -> pythonPackages != null; stdenv.mkDerivation rec { pname = "librealsense"; - version = "2.43.0"; + version = "2.45.0"; outputs = [ "out" "dev" ]; @@ -15,17 +15,18 @@ stdenv.mkDerivation rec { owner = "IntelRealSense"; repo = pname; rev = "v${version}"; - sha256 = "sha256-N7EvpcJjtK3INHK7PgoiEVIMq9zGcHKMeI+/dwZ3bNs="; + sha256 = "0aqf48zl7825v7x8c3x5w4d17m4qq377f1mn6xyqzf9b0dnk4i1j"; }; buildInputs = [ libusb1 gcc.cc.lib ] ++ lib.optional cudaSupport cudatoolkit - ++ lib.optional enablePython pythonPackages.python; + ++ lib.optionals enablePython (with pythonPackages; [python pybind11 ]); patches = lib.optionals enablePython [ ./py_sitepackage_dir.patch + ./py_pybind11_no_external_download.patch ]; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/librealsense/py_pybind11_no_external_download.patch b/pkgs/development/libraries/librealsense/py_pybind11_no_external_download.patch new file mode 100644 index 00000000000..2b48edb62e3 --- /dev/null +++ b/pkgs/development/libraries/librealsense/py_pybind11_no_external_download.patch @@ -0,0 +1,39 @@ +From 01e51b9c90ba51b2d0ca797dde676812cf3db415 Mon Sep 17 00:00:00 2001 +From: "Robert T. McGibbon" <rmcgibbo@gmail.com> +Date: Mon, 10 May 2021 17:26:04 -0400 +Subject: [PATCH 1/1] V1 + +--- + wrappers/python/CMakeLists.txt | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/wrappers/python/CMakeLists.txt b/wrappers/python/CMakeLists.txt +index aa83e4c77..4ec92ccfa 100644 +--- a/wrappers/python/CMakeLists.txt ++++ b/wrappers/python/CMakeLists.txt +@@ -8,21 +8,8 @@ if (NOT BUILD_PYTHON_BINDINGS) + endif() + + set(DEPENDENCIES realsense2) +-# In order for the external project clone to occur during cmake configure step(rather than during compilation, as would normally happen), +-# we copy the external project declaration to the build folder and then execute it +-configure_file(${CMAKE_SOURCE_DIR}/third-party/pybind11/CMakeLists.txt ${CMAKE_BINARY_DIR}/external-projects/pybind11/CMakeLists.txt) +-execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +- WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/pybind11" +-) +-execute_process(COMMAND "${CMAKE_COMMAND}" --build . +- WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/external-projects/pybind11" +-) + +-# Add pybind11 makefile +-add_subdirectory("${CMAKE_BINARY_DIR}/third-party/pybind11" +- "${CMAKE_BINARY_DIR}/third-party/pybind11" +- EXCLUDE_FROM_ALL +-) ++find_package(pybind11 REQUIRED) + + set(PYBIND11_CPP_STANDARD -std=c++11) + # Force Pybind11 not to share pyrealsense2 resources with other pybind modules. +-- +2.29.3 + diff --git a/pkgs/development/libraries/libxmlb/default.nix b/pkgs/development/libraries/libxmlb/default.nix index 161833a928c..b476edaf5e6 100644 --- a/pkgs/development/libraries/libxmlb/default.nix +++ b/pkgs/development/libraries/libxmlb/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { pname = "libxmlb"; - version = "0.3.0"; + version = "0.3.1"; outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ]; @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { owner = "hughsie"; repo = "libxmlb"; rev = version; - sha256 = "sha256-prHsigfjifwiuBSUHaCWhjJIaw1LkOGHJu20cdPgH9c="; + sha256 = "sha256-4gJBmSbo5uGj12Y2Ov4gmS8nJshQxuBM9BAevY/lwjg="; }; patches = [ diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix index d4f11c1d126..45d5e0a40eb 100644 --- a/pkgs/development/libraries/mapnik/default.nix +++ b/pkgs/development/libraries/mapnik/default.nix @@ -23,18 +23,42 @@ stdenv.mkDerivation rec { buildInputs = [ boost cairo freetype gdal harfbuzz icu libjpeg libpng libtiff - libwebp libxml2 proj python sqlite zlib + libwebp proj python sqlite zlib # optional inputs postgresql ]; + propagatedBuildInputs = [ libxml2 ]; + prefixKey = "PREFIX="; preConfigure = '' patchShebangs ./configure ''; + # NOTE: 2021-05-06: + # Add -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1 for backwards compatibility + # with major versions 6 and 7 of proj which are otherwise not compatible + # with mapnik 3.1.0. Note that: + # + # 1. Starting with proj version 8, this workaround will no longer be + # supported by the upstream proj project. + # + # 2. Without the workaround, mapnik configures itself without proj support. + # + # 3. The master branch of mapnik (after 3.1.0) appears to add native support + # for the proj 6 api, so this workaround is not likely to be needed in + # subsequent mapnik releases. At that point, this block comment and the + # NIX_CFLAGS_COMPILE expression can be removed. + + NIX_CFLAGS_COMPILE = + if version != "3.1.0" && lib.versionAtLeast version "3.1.0" + then throw "The mapnik compatibility workaround for proj 6 may no longer be required. Remove workaround after checking." + else if lib.versionAtLeast (lib.getVersion proj) "8" + then throw ("mapnik currently requires a version of proj less than 8, but proj version is: " + (lib.getVersion proj)) + else "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1"; + configureFlags = [ "BOOST_INCLUDES=${boost.dev}/include" "BOOST_LIBS=${boost.out}/lib" @@ -51,16 +75,19 @@ stdenv.mkDerivation rec { "JPEG_LIBS=${libjpeg.out}/lib" "PNG_INCLUDES=${libpng.dev}/include" "PNG_LIBS=${libpng.out}/lib" - "PROJ_INCLUDES=${proj}/include" - "PROJ_LIBS=${proj}/lib" + "PROJ_INCLUDES=${proj.dev}/include" + "PROJ_LIBS=${proj.out}/lib" "SQLITE_INCLUDES=${sqlite.dev}/include" "SQLITE_LIBS=${sqlite.out}/lib" "TIFF_INCLUDES=${libtiff.dev}/include" "TIFF_LIBS=${libtiff.out}/lib" "WEBP_INCLUDES=${libwebp}/include" "WEBP_LIBS=${libwebp}/lib" - "XML2_INCLUDES=${libxml2.dev}/include" - "XML2_LIBS=${libxml2.out}/lib" + "XMLPARSER=libxml2" + ]; + + buildFlags = [ + "JOBS=$(NIX_BUILD_CORES)" ]; meta = with lib; { diff --git a/pkgs/development/libraries/md4c/default.nix b/pkgs/development/libraries/md4c/default.nix index a711ecb7c76..a29b521a2de 100644 --- a/pkgs/development/libraries/md4c/default.nix +++ b/pkgs/development/libraries/md4c/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "md4c"; - version = "0.4.7"; + version = "0.4.8"; src = fetchFromGitHub { owner = "mity"; repo = pname; rev = "release-${version}"; - hash = "sha256-nfMXUP1wu3ifn1QVTO/+XcfFRsThG8PlmYRv+b8AYlQ="; + hash = "sha256-+LObAD5JB8Vb4Rt4hTo1Z4ispxzfFkkXA2sw6TKB7Yo="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix index 97ce24a8398..7aef5ba7476 100644 --- a/pkgs/development/libraries/tbb/default.nix +++ b/pkgs/development/libraries/tbb/default.nix @@ -1,22 +1,44 @@ -{ lib, stdenv, fetchFromGitHub, fixDarwinDylibNames, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }: +{ lib +, stdenv +, fetchurl +, fetchFromGitHub +, fixDarwinDylibNames +}: -with lib; stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "tbb"; - version = "2020_U3"; + version = "2020.3"; src = fetchFromGitHub { - owner = "01org"; - repo = "tbb"; - rev = version; - sha256 = "sha256-prO2O5hd+Wz5iA0vfrqmyHFr0Ptzk64so5KpSpvuKmU="; + owner = "oneapi-src"; + repo = "oneTBB"; + rev = "v${version}"; + sha256 = "prO2O5hd+Wz5iA0vfrqmyHFr0Ptzk64so5KpSpvuKmU="; }; - nativeBuildInputs = optional stdenv.isDarwin fixDarwinDylibNames; + patches = [ + # Fixes build with Musl. + (fetchurl { + url = "https://github.com/openembedded/meta-openembedded/raw/39185eb1d1615e919e3ae14ae63b8ed7d3e5d83f/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch"; + sha256 = "gUfXQ9OZQ82qD6brgauBCsKdjLvyHafMc18B+KxZoYs="; + }) - makeFlags = optional (compiler != null) "compiler=${compiler}" - ++ optional (stdver != null) "stdver=${stdver}"; + # Fixes build with Musl. + (fetchurl { + url = "https://github.com/openembedded/meta-openembedded/raw/39185eb1d1615e919e3ae14ae63b8ed7d3e5d83f/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch"; + sha256 = "fhorfqO1hHKZ61uq+yTR7eQ8KYdyLwpM3K7WpwJpV74="; + }) + ]; - patches = lib.optional stdenv.hostPlatform.isMusl ./glibc-struct-mallinfo.patch; + nativeBuildInputs = lib.optionals stdenv.isDarwin [ + fixDarwinDylibNames + ]; + + makeFlags = lib.optionals stdenv.cc.isClang [ + "compiler=clang" + ]; + + enableParallelBuilding = true; installPhase = '' runHook preInstall @@ -29,9 +51,24 @@ with lib; stdenv.mkDerivation rec { runHook postInstall ''; - enableParallelBuilding = true; + postInstall = let + pcTemplate = fetchurl { + url = "https://github.com/oneapi-src/oneTBB/raw/master/integration/pkg-config/tbb.pc.in"; + sha256 = "2pCad9txSpNbzac0vp/VY3x7HNySaYkbH3Rx8LK53pI="; + }; + in '' + # Generate pkg-config file based on upstream template. + # It should not be necessary with tbb after 2021.2. + mkdir -p "$out/lib/pkgconfig" + substitute "${pcTemplate}" "$out/lib/pkgconfig/tbb.pc" \ + --subst-var-by CMAKE_INSTALL_PREFIX "$out" \ + --subst-var-by CMAKE_INSTALL_LIBDIR "lib" \ + --subst-var-by CMAKE_INSTALL_INCLUDEDIR "include" \ + --subst-var-by TBB_VERSION "${version}" \ + --subst-var-by TBB_LIB_NAME "tbb" + ''; - meta = { + meta = with lib; { description = "Intel Thread Building Blocks C++ Library"; homepage = "http://threadingbuildingblocks.org/"; license = licenses.asl20; @@ -43,7 +80,7 @@ with lib; stdenv.mkDerivation rec { represents a higher-level, task-based parallelism that abstracts platform details and threading mechanisms for scalability and performance. ''; - platforms = with platforms; linux ++ darwin; + platforms = platforms.unix; maintainers = with maintainers; [ thoughtpolice dizfer ]; }; } diff --git a/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch b/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch deleted file mode 100644 index 64056ecb146..00000000000 --- a/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b577153a10c98f4e13405dc93ea2ab1a7b990e07 Mon Sep 17 00:00:00 2001 -From: David Huffman <storedbox+alpine@outlook.com> -Date: Wed, 6 Jan 2016 07:09:30 -0500 -Subject: [PATCH] hard-code glibc's definition of struct mallinfo - ---- - src/tbbmalloc/proxy.h | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/src/tbbmalloc/proxy.h b/src/tbbmalloc/proxy.h -index 781cadc..e1ea1ae 100644 ---- a/src/tbbmalloc/proxy.h -+++ b/src/tbbmalloc/proxy.h -@@ -32,6 +32,26 @@ - - #include <stddef.h> - -+// The following definition was taken from /usr/include/malloc.h as provided by -+// the glibc-devel-2.19-17.4.x86_64 package on openSUSE Leap 42.1; it is -+// made available under the GNU Lesser General Public License v2.1 or later. -+// See <https://www.gnu.org/licenses>. -+// -+// Copyright (C) 1996-2014 Free Software Foundation, Inc. -+struct mallinfo -+{ -+ int arena; /* non-mmapped space allocated from system */ -+ int ordblks; /* number of free chunks */ -+ int smblks; /* number of fastbin blocks */ -+ int hblks; /* number of mmapped regions */ -+ int hblkhd; /* space in mmapped regions */ -+ int usmblks; /* maximum total allocated space */ -+ int fsmblks; /* space available in freed fastbin blocks */ -+ int uordblks; /* total allocated space */ -+ int fordblks; /* total free space */ -+ int keepcost; /* top-most, releasable (via malloc_trim) space */ -+}; -+ - extern "C" { - void * scalable_malloc(size_t size); - void * scalable_calloc(size_t nobj, size_t size); --- -2.6.2 - diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index f4b716ee6d4..f37ba500a22 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -53,13 +53,14 @@ , xdg-dbus-proxy , substituteAll , glib +, addOpenGLRunpath }: assert enableGeoLocation -> geoclue2 != null; stdenv.mkDerivation rec { pname = "webkitgtk"; - version = "2.32.0"; + version = "2.32.1"; outputs = [ "out" "dev" ]; @@ -67,13 +68,14 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz"; - sha256 = "1w3b0w8izp0i070grhv19j631sdcd0mcqnjnax13k8mdx7dg8zcx"; + sha256 = "05v9hgpkc6mi2klrd8nqql1n8xzq8rgdz3hvyy369xkhgwqifq8k"; }; patches = lib.optionals stdenv.isLinux [ (substituteAll { src = ./fix-bubblewrap-paths.patch; inherit (builtins) storeDir; + inherit (addOpenGLRunpath) driverLink; }) ./libglvnd-headers.patch ]; diff --git a/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch b/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch index 03a6b6903a8..d502958f4f1 100644 --- a/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch +++ b/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch @@ -1,16 +1,7 @@ diff -ru old/webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp --- old/webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp 2019-09-09 04:47:07.000000000 -0400 +++ webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp 2019-09-20 21:14:10.537921173 -0400 -@@ -585,7 +585,7 @@ - { SCMP_SYS(keyctl), nullptr }, - { SCMP_SYS(request_key), nullptr }, - -- // Scary VM/NUMA ops -+ // Scary VM/NUMA ops - { SCMP_SYS(move_pages), nullptr }, - { SCMP_SYS(mbind), nullptr }, - { SCMP_SYS(get_mempolicy), nullptr }, -@@ -724,6 +724,11 @@ +@@ -724,6 +724,12 @@ "--ro-bind-try", "/usr/local/lib64", "/usr/local/lib64", "--ro-bind-try", PKGLIBEXECDIR, PKGLIBEXECDIR, @@ -18,7 +9,8 @@ diff -ru old/webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLa + // Nix Directories + "--ro-bind", "@storeDir@", "@storeDir@", + "--ro-bind", "/run/current-system", "/run/current-system", -+ "--ro-bind", "/run/opengl-driver", "/run/opengl-driver", ++ "--ro-bind-try", "@driverLink@/lib", "@driverLink@/lib", ++ "--ro-bind-try", "@driverLink@/share", "@driverLink@/share", }; // We would have to parse ld config files for more info. bindPathVar(sandboxArgs, "LD_LIBRARY_PATH"); |