diff options
Diffstat (limited to 'pkgs/applications')
17 files changed, 303 insertions, 74 deletions
diff --git a/pkgs/applications/audio/paulstretch/default.nix b/pkgs/applications/audio/paulstretch/default.nix index b2c049c9eeebd..b9a3f39affb17 100644 --- a/pkgs/applications/audio/paulstretch/default.nix +++ b/pkgs/applications/audio/paulstretch/default.nix @@ -1,5 +1,7 @@ -{ stdenv, fetchFromGitHub, audiofile, libvorbis, fltk, fftw, fftwFloat, -minixml, pkgconfig, libmad, libjack2, portaudio, libsamplerate }: +{ stdenv, fetchFromGitHub, fetchpatch +, audiofile, libvorbis, fltk, fftw, fftwFloat +, minixml, pkgconfig, libmad, libjack2, portaudio, libsamplerate +}: stdenv.mkDerivation { pname = "paulstretch"; @@ -27,6 +29,13 @@ stdenv.mkDerivation { libsamplerate ]; + patches = [ + (fetchpatch { + url = "https://github.com/paulnasca/paulstretch_cpp/pull/12.patch"; + sha256 = "0lx1rfrs53afkiz1drp456asqgj5yv6hx3lkc01165cv1jsbw6q4"; + }) + ]; + buildPhase = '' bash compile_linux_fftw_jack.sh ''; diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix index 04a62b5d159ce..f6eee17f834af 100644 --- a/pkgs/applications/audio/picard/default.nix +++ b/pkgs/applications/audio/picard/default.nix @@ -4,13 +4,13 @@ let pythonPackages = python3Packages; in pythonPackages.buildPythonApplication rec { pname = "picard"; - version = "2.1.3"; + version = "2.2.1"; src = fetchFromGitHub { owner = "metabrainz"; repo = pname; rev = "release-${version}"; - sha256 = "1armg8vpvnbpk7rrfk9q7nj5gm56rza00ni9qwdyqpxp1xaz6apj"; + sha256 = "1g7pbicf65hswbqmhrwlba9jm4r2vnggy7vy75z4256y7qcpwdfd"; }; nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]; diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 16a1c01363d87..ebdfb09936aac 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -201,11 +201,11 @@ let platforms = platforms.linux; }; }) (attrs: { - patchPhase = attrs.patchPhase + '' + patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + '' # Patch built-in mono for ReSharperHost to start successfully interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2) patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen - ''; + ''); }); buildRubyMine = { name, version, src, license, description, wmClass, ... }: diff --git a/pkgs/applications/graphics/djview/default.nix b/pkgs/applications/graphics/djview/default.nix index 1917640fd2e59..4d09f2ad5fe0c 100644 --- a/pkgs/applications/graphics/djview/default.nix +++ b/pkgs/applications/graphics/djview/default.nix @@ -1,8 +1,16 @@ -{ stdenv, fetchurl, pkgconfig -, djvulibre, qt4, xorg, libtiff -, darwin }: +{ stdenv +, mkDerivation +, fetchurl +, pkgconfig +, djvulibre +, qtbase +, qttools +, xorg +, libtiff +, darwin +}: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "djview"; version = "4.10.6"; @@ -11,20 +19,56 @@ stdenv.mkDerivation rec { sha256 = "08bwv8ppdzhryfcnifgzgdilb12jcnivl4ig6hd44f12d76z6il4"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ + pkgconfig + qttools + ]; - buildInputs = [ djvulibre qt4 xorg.libXt libtiff ] - ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AGL ]; + buildInputs = [ + djvulibre + qtbase + xorg.libXt + libtiff + ] ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AGL; + + configureFlags = [ + "--disable-silent-rules" + "--disable-dependency-tracking" + "--with-x" + "--with-tiff" + # NOTE: 2019-09-19: experimental "--enable-npdjvu" fails + ] ++ stdenv.lib.optional stdenv.isDarwin "--enable-mac"; passthru = { mozillaPlugin = "/lib/mozilla/plugins"; }; meta = with stdenv.lib; { - homepage = http://djvu.sourceforge.net/djview4.html; - description = "A portable DjVu viewer and browser plugin"; + description = "A portable DjVu viewer (Qt5) and browser (nsdejavu) plugin"; + homepage = "http://djvu.sourceforge.net/djview4.html"; license = licenses.gpl2; platforms = platforms.unix; - maintainers = [ ]; + maintainers = with maintainers; [ Anton-Latukha ]; + longDescription = '' + The portable DjVu viewer (Qt5) and browser (nsdejavu) plugin. + + Djview highlights: + - entirely based on the public DjVulibre api. + - entirely written in portable Qt5. + - works natively under Unix/X11, MS Windows, and macOS X. + - continuous scrolling of pages + - side-by-side display of pages + - ability to specify a url to the djview command + - all plugin and cgi options available from the command line + - all silly annotations implemented + - display thumbnails as a grid + - display outlines + - page names supported (see djvused command set-page-title) + - metadata dialog (see djvused command set-meta) + - implemented as reusable Qt widgets + + nsdejavu: browser plugin for DjVu. It internally uses djview. + Has CGI-style arguments to configure the view of document (see man). + ''; }; } diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index 2e82170121609..ffa9b4d071b16 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "6.1.5"; + version = "6.2.1"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "0lkycm1152wd56i1hjq7q3sd05h51fyz99qr2n65lwi33vz2qk9m"; + sha256 = "1ix6isahpk7zk741wdx5cf4i13wc5gp0j1gj4ja80bzfswbc38na"; }; installPhase = '' diff --git a/pkgs/applications/misc/ipmiview/default.nix b/pkgs/applications/misc/ipmiview/default.nix index 64e0f0d325b5f..e46df5d59e0e3 100644 --- a/pkgs/applications/misc/ipmiview/default.nix +++ b/pkgs/applications/misc/ipmiview/default.nix @@ -1,33 +1,72 @@ -{ stdenv, fetchurl, patchelf, makeWrapper, xorg, gcc, gcc-unwrapped }: +{ stdenv +, fetchurl +, makeDesktopItem +, makeWrapper +, patchelf +, fontconfig +, freetype +, gcc +, gcc-unwrapped +, iputils +, psmisc +, xorg }: stdenv.mkDerivation rec { - pname = "IPMIView"; - version = "2.14.0"; - buildVersion = "180213"; + pname = "IPMIView"; + version = "2.16.0"; + buildVersion = "190815"; - src = fetchurl { - url = "ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz"; - sha256 = "1wp22wm7smlsb25x0cck4p660cycfczxj381930crd1qrf68mw4h"; + src = fetchurl { + url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz"; + sha256 = "0qw9zfnj0cyvab7ndamlw2y0gpczjhh1jkz8340kl42r2xmhkvpl"; }; - nativeBuildInputs = [ patchelf makeWrapper ]; + nativeBuildInputs = [ patchelf makeWrapper ]; + buildPhase = with xorg; + let + stunnelBinary = if stdenv.hostPlatform.system == "x86_64-linux" then "linux/stunnel64" + else if stdenv.hostPlatform.system == "i686-linux" then "linux/stunnel32" + else throw "IPMIView is not supported on this platform"; + in + '' + patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/libawt_xawt.so + patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ freetype ]}" ./jre/lib/amd64/libfontmanager.so + patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so + patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./BMCSecurity/${stunnelBinary} + ''; - buildPhase = with xorg; '' - patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/xawt/libmawt.so - patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so - patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libXcursor libX11 libXext libXrender libXtst libXi ]}" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/javaws - patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java - ''; + desktopItem = makeDesktopItem rec { + name = "IPMIView"; + exec = "IPMIView"; + desktopName = name; + genericName = "Supermicro BMC manager"; + categories = "Network;Configuration"; + }; + + installPhase = '' + mkdir -p $out/bin + cp -R . $out/ - installPhase = '' - mkdir -p $out/bin - cp -R . $out/ - makeWrapper $out/jre/bin/java $out/bin/IPMIView \ - --prefix PATH : "$out/jre/bin" \ - --add-flags "-jar $out/IPMIView20.jar" - ''; + ln -s ${desktopItem}/share $out/share - meta = with stdenv.lib; { + # LD_LIBRARY_PATH: fontconfig is used from java code + # PATH: iputils is used for ping, and psmisc is for killall + # WORK_DIR: unfortunately the ikvm related binaries are loaded from + # and user configuration is written to files in the CWD + makeWrapper $out/jre/bin/java $out/bin/IPMIView \ + --set LD_LIBRARY_PATH "${stdenv.lib.makeLibraryPath [ fontconfig ]}" \ + --prefix PATH : "$out/jre/bin:${iputils}/bin:${psmisc}/bin" \ + --add-flags "-jar $out/IPMIView20.jar" \ + --run 'WORK_DIR=''${XDG_DATA_HOME:-~/.local/share}/ipmiview + mkdir -p $WORK_DIR + ln -snf '$out'/iKVM.jar '$out'/libiKVM* '$out'/libSharedLibrary* $WORK_DIR + cd $WORK_DIR' + ''; + + meta = with stdenv.lib; { license = licenses.unfree; - }; - } + maintainers = with maintainers; [ vlaci ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/pkgs/applications/misc/pastel/default.nix b/pkgs/applications/misc/pastel/default.nix new file mode 100644 index 0000000000000..eac6d131b35b2 --- /dev/null +++ b/pkgs/applications/misc/pastel/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchFromGitHub, rustPlatform, Security }: + +rustPlatform.buildRustPackage rec { + pname = "pastel"; + version = "0.5.3"; + + src = fetchFromGitHub { + owner = "sharkdp"; + repo = pname; + rev = "v${version}"; + sha256 = "0f54p3pzfp7xrwlqn61l7j41vmgcfph3bhq2khxh5apfwwdx9nng"; + }; + + cargoSha256 = "05yvlm7z3zfn8qd8nb9zpch9xsfzidrpyrgg2vij3h3q095mdm66"; + + buildInputs = stdenv.lib.optional stdenv.isDarwin Security; + + meta = with stdenv.lib; { + description = "A command-line tool to generate, analyze, convert and manipulate colors"; + homepage = https://github.com/sharkdp/pastel; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ davidtwco ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index d93c8f8592552..be08df3a704b2 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -17,11 +17,11 @@ let vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; in stdenv.mkDerivation rec { pname = "vivaldi"; - version = "2.8.1664.35-1"; + version = "2.8.1664.38-1"; src = fetchurl { url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; - sha256 = "0wrpn2figljvq9xldpqb1wf81fpwj91ppi2lzvcg5ycpl2a90x7j"; + sha256 = "1znhlwwgq4k0fplr4l8ixgn6g5k26ns77j2dm0pjg3a2jgjq6rdr"; }; unpackPhase = '' diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix index c8b95baf2f395..f7336c346bb17 100644 --- a/pkgs/applications/networking/cluster/kops/default.nix +++ b/pkgs/applications/networking/cluster/kops/default.nix @@ -43,7 +43,7 @@ let description = "Easiest way to get a production Kubernetes up and running"; homepage = https://github.com/kubernetes/kops; license = licenses.asl20; - maintainers = with maintainers; [offline zimbatm]; + maintainers = with maintainers; [offline zimbatm kampka]; platforms = platforms.unix; }; } // attrs'; @@ -57,7 +57,7 @@ in rec { }; kops_1_13 = mkKops { - version = "1.13.0"; - sha256 = "04kbbg3gqzwzzzq1lmnpw2gqky3pfwfk7pc0laxv2yssk9wac5k1"; + version = "1.13.1"; + sha256 = "0knypbrpipxplgdg6r0r6ycsj7w46virmzwn5s4sdim0y8d2ppyb"; }; } diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix index 6da7320e9536c..1fd8c47a99c23 100644 --- a/pkgs/applications/networking/instant-messengers/gajim/default.nix +++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix @@ -44,7 +44,7 @@ python3.pkgs.buildPythonApplication rec { ]; propagatedBuildInputs = with python3.pkgs; [ - nbxmpp pyasn1 pygobject3 dbus-python pillow cssutils precis-i18n keyring + nbxmpp pyasn1 pygobject3 dbus-python pillow cssutils precis-i18n keyring setuptools ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ] ++ lib.optional enableRST docutils ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ] diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix index 3c532fa506a54..eaf9a8f47e516 100644 --- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix +++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl , xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, xkeyboard_config, alsaLib -, libpulseaudio ? null, libredirect, quazip, less, which, unzip, llvmPackages +, libpulseaudio ? null, libredirect, quazip, which, unzip, llvmPackages, writeShellScriptBin }: let @@ -26,6 +26,8 @@ let categories = "Network"; }; + fakeLess = writeShellScriptBin "less" "cat"; + in stdenv.mkDerivation rec { @@ -46,11 +48,11 @@ stdenv.mkDerivation rec { sha256 = "1bywmdj54glzd0kffvr27r84n4dsd0pskkbmh59mllbxvj0qwy7f"; }; - buildInputs = [ makeWrapper less which unzip ]; + nativeBuildInputs = [ makeWrapper fakeLess which unzip ]; unpackPhase = '' - echo -e 'q\ny' | sh -xe $src + echo -e '\ny' | sh -xe $src cd TeamSpeak* ''; diff --git a/pkgs/applications/networking/mailreaders/trojita/default.nix b/pkgs/applications/networking/mailreaders/trojita/default.nix index 7f7296cd70064..4b4c711042f65 100644 --- a/pkgs/applications/networking/mailreaders/trojita/default.nix +++ b/pkgs/applications/networking/mailreaders/trojita/default.nix @@ -1,37 +1,50 @@ -{ mkDerivation -, lib -, fetchurl +{ akonadi-contacts , cmake +, fetchgit +, gpgme +, kcontacts +, lib +, mimetic +, mkDerivation +, pkgconfig +, qgpgme , qtbase -, qtwebkit +, qtkeychain , qttools +, qtwebkit }: mkDerivation rec { pname = "trojita"; - version = "0.7"; + version = "0.7.20190618"; - src = fetchurl { - url = "mirror://sourceforge/trojita/trojita/${pname}-${version}.tar.xz"; - sha256 = "1n9n07md23ny6asyw0xpih37vlwzp7vawbkprl7a1bqwfa0si3g0"; + src = fetchgit { + url = "https://anongit.kde.org/trojita.git"; + rev = "90b417b131853553c94ff93aef62abaf301aa8f1"; + sha256 = "0xpxq5bzqaa68lkz90wima5q2m0mdcn0rvnigb66lylb4n20mnql"; }; buildInputs = [ + akonadi-contacts + gpgme + kcontacts + mimetic + qgpgme qtbase + qtkeychain qtwebkit ]; nativeBuildInputs = [ cmake + pkgconfig qttools ]; - meta = with lib; { description = "A Qt IMAP e-mail client"; - homepage = http://trojita.flaska.net/; + homepage = "http://trojita.flaska.net/"; license = with licenses; [ gpl2 gpl3 ]; platforms = platforms.linux; }; - } diff --git a/pkgs/applications/science/logic/tamarin-prover/default.nix b/pkgs/applications/science/logic/tamarin-prover/default.nix index 40378f8c04d5d..9b87b8c899e52 100644 --- a/pkgs/applications/science/logic/tamarin-prover/default.nix +++ b/pkgs/applications/science/logic/tamarin-prover/default.nix @@ -104,4 +104,6 @@ mkDerivation (common "tamarin-prover" src // { tamarin-prover-term tamarin-prover-theory ]; + + broken = true; }) diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix index 3edee15db5fce..4636ce48b1a5b 100644 --- a/pkgs/applications/video/shotcut/default.nix +++ b/pkgs/applications/video/shotcut/default.nix @@ -1,10 +1,23 @@ -{ stdenv, fetchFromGitHub, SDL2, frei0r, gettext, mlt, jack1, mkDerivation -, pkgconfig, qtbase, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets -, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools }: +{ stdenv, fetchFromGitHub, fetchpatch, mkDerivation, SDL2, frei0r, gettext, mlt +, jack1, pkgconfig, qtbase, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets +, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools +}: assert stdenv.lib.versionAtLeast libmlt.version "6.8.0"; assert stdenv.lib.versionAtLeast mlt.version "6.8.0"; +let + # https://github.com/mltframework/shotcut/issues/771 + fixVaapiRendering1 = fetchpatch { + url = "https://github.com/peti/shotcut/commit/038f6839298fc1e9e80ddf84fe168a78118bc625.patch"; + sha256 = "153z1g6criszd6gdkw4f5zk0gmh0jar6l2g8fzwjhhcvkdz30vbp"; + }; + fixVaapiRendering2 = fetchpatch { + url = "https://github.com/peti/shotcut/commit/653c485f92d2847fdac517e3f797c9254826ffab.patch"; + sha256 = "1qd0zgyahda72xh3avlg7lg0jq94wq5847154qlrgzj8b4n7vizw"; + }; +in + mkDerivation rec { pname = "shotcut"; version = "19.09.14"; @@ -16,6 +29,8 @@ mkDerivation rec { sha256 = "1cl8ba1n0h450r4n5mfqmyjaxvczs3m19blwxslqskvmxy5my3cn"; }; + patches = [ fixVaapiRendering1 fixVaapiRendering2 ]; + enableParallelBuilding = true; nativeBuildInputs = [ pkgconfig qmake ]; buildInputs = [ @@ -33,8 +48,6 @@ mkDerivation rec { sed 's_qApp->applicationDirPath(), "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/docks/encodedock.cpp NICE=$(type -P nice) sed "s_/usr/bin/nice_''${NICE}_" -i src/jobs/meltjob.cpp src/jobs/ffmpegjob.cpp - # Fix VAAPI auto-config: https://github.com/mltframework/shotcut/issues/771 - sed 's#"-vaapi_device" << ":0"#"-vaapi_device" << "/dev/dri/renderD128"#' -i src/docks/encodedock.cpp ''; qtWrapperArgs = [ diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index ac52b83e43d2a..633f047be5a0b 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -92,6 +92,9 @@ in stdenv.mkDerivation { }) ++ [ ./qtx11extras.patch + # Kernel 5.3 fix, should be fixed with VirtualBox 6.0.14 + # https://www.virtualbox.org/ticket/18911 + ./kernel-5.3-fix.patch ]; postPatch = '' diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix index ad860b07bdf69..08b6fa63e84c3 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -12,9 +12,16 @@ let # It's likely to work again in some future update. xserverABI = let abi = xserverVListFunc 0 + xserverVListFunc 1; in if abi == "119" || abi == "120" then "118" else abi; -in -stdenv.mkDerivation { + # Specifies how to patch binaries to make sure that libraries loaded using + # dlopen are found. We grep binaries for specific library names and patch + # RUNPATH in matching binaries to contain the needed library paths. + dlopenLibs = [ + { name = "libdbus-1.so"; pkg = dbus; } + { name = "libXfixes.so"; pkg = xorg.libXfixes; } + ]; + +in stdenv.mkDerivation { name = "VirtualBox-GuestAdditions-${version}-${kernel.version}"; src = fetchurl { @@ -134,13 +141,13 @@ stdenv.mkDerivation { # Stripping breaks these binaries for some reason. dontStrip = true; - # Some code dlopen() libdbus, patch RUNPATH in fixupPhase so it isn't stripped. - postFixup = '' - for i in $(grep -F libdbus-1.so -l -r $out/{lib,bin}); do + # Patch RUNPATH according to dlopenLibs (see the comment there). + postFixup = lib.concatMapStrings (library: '' + for i in $(grep -F ${lib.escapeShellArg library.name} -l -r $out/{lib,bin}); do origRpath=$(patchelf --print-rpath "$i") - patchelf --set-rpath "$origRpath:${lib.makeLibraryPath [ dbus ]}" "$i" + patchelf --set-rpath "$origRpath:${lib.makeLibraryPath [ library.pkg ]}" "$i" done - ''; + '') dlopenLibs; meta = { description = "Guest additions for VirtualBox"; diff --git a/pkgs/applications/virtualization/virtualbox/kernel-5.3-fix.patch b/pkgs/applications/virtualization/virtualbox/kernel-5.3-fix.patch new file mode 100644 index 0000000000000..ba9c7c941db95 --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/kernel-5.3-fix.patch @@ -0,0 +1,72 @@ +--- a/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c ++++ b/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c +@@ -2123,7 +2123,9 @@ + #endif + if (in_dev != NULL) + { +- for_ifa(in_dev) { ++ struct in_ifaddr *ifa; ++ ++ for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) { + if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address)) + return NOTIFY_OK; + +@@ -2137,7 +2139,7 @@ + + pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, + /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address); +- } endfor_ifa(in_dev); ++ } + } + + /* +--- a/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c ++++ a/src/VBox/Runtime/r0drv/linux/mp-r0drv-linux.c +@@ -283,12 +283,15 @@ + if (RTCpuSetCount(&OnlineSet) > 1) + { + /* Fire the function on all other CPUs without waiting for completion. */ +-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) ++ smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */); ++# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) + int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */); ++ Assert(!rc); NOREF(rc); + # else + int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */); +-# endif + Assert(!rc); NOREF(rc); ++# endif + } + #endif + +@@ -326,7 +329,6 @@ + { + #ifdef CONFIG_SMP + IPRT_LINUX_SAVE_EFL_AC(); +- int rc; + RTMPARGS Args; + + RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER; +@@ -337,14 +339,17 @@ + Args.cHits = 0; + + RTThreadPreemptDisable(&PreemptState); +-# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) +- rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) ++ smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); ++# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); ++ Assert(rc == 0); NOREF(rc); + # else /* older kernels */ +- rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */); ++ int rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */); ++ Assert(rc == 0); NOREF(rc); + # endif /* older kernels */ + RTThreadPreemptRestore(&PreemptState); + +- Assert(rc == 0); NOREF(rc); + IPRT_LINUX_RESTORE_EFL_AC(); + #else + RT_NOREF(pfnWorker, pvUser1, pvUser2); |