From 17afca588517687d900386ad3d47eb75e40fec5d Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Fri, 18 Dec 2020 02:14:25 +0000 Subject: [PATCH 1/3] zcash: 2.1.1-1 -> 4.1.1; fix build This is pretty much a repackaging, because a lot has changed about zcash in two major versions. Lots of libraries are no longer necessary, and librustzcash is now part of the zcash package as opposed to being a library supposed to be built seperately. The whole thing is a buildRustPackage because that's easier than trying to emulate buildRustPackage's dependency setup behaviour inside a normal mkDerivation. So that the normal zcash build process is followed, the actual configuring and building uses the normal stdenv behaviour. --- .../blockchains/zcash/default.nix | 60 ++++++++++++------- .../zcash/librustzcash/default.nix | 33 ---------- 2 files changed, 38 insertions(+), 55 deletions(-) delete mode 100644 pkgs/applications/blockchains/zcash/librustzcash/default.nix diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix index 9cccbd7b7e46..6a8bebf6178e 100644 --- a/pkgs/applications/blockchains/zcash/default.nix +++ b/pkgs/applications/blockchains/zcash/default.nix @@ -1,39 +1,55 @@ -{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost17x -, zlib, gtest, gmock, callPackage, gmp, qt4, util-linux, protobuf, qrencode, libevent }: - -let librustzcash = callPackage ./librustzcash {}; -in -with stdenv.lib; -stdenv.mkDerivation rec { +{ rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper +, cargo, pkg-config +, bash, curl, coreutils, boost17x, db62, libsodium, libevent, utf8cpp, util-linux +}: +rustPlatform.buildRustPackage rec { pname = "zcash"; - version = "2.1.1-1"; + version = "4.1.1"; src = fetchFromGitHub { owner = "zcash"; repo = "zcash"; rev = "v${version}"; - sha256 = "1g5zlfzfp31my8w8nlg5fncpr2y95iv9fm04x57sjb93rgmjdh5n"; + sha256 = "185zrw276g545np0niw5hlhlppkjbf5a1r4rwhnbaimdjdii2dil"; }; - patchPhase = '' - sed -i"" 's,-fvisibility=hidden,,g' src/Makefile.am + cargoSha256 = "0qxr6asf8zsya0f1ri39z2cnfpjk96hgwjchz2c7j87vibbvg6dc"; + + nativeBuildInputs = [ autoreconfHook cargo makeWrapper pkg-config ]; + buildInputs = [ bash boost17x db62 libevent libsodium utf8cpp ]; + + # Use the stdenv default phases (./configure; make) instead of the + # ones from buildRustPackage. + configurePhase = "configurePhase"; + buildPhase = "buildPhase"; + checkPhase = "checkPhase"; + installPhase = "installPhase"; + + postPatch = '' + # Have to do this here instead of in preConfigure because + # cargoDepsCopy gets unset after postPatch. + configureFlagsArray+=("RUST_VENDORED_SOURCES=$NIX_BUILD_TOP/$cargoDepsCopy") ''; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; - buildInputs = [ gtest gmock gmp openssl wget db62 boost17x zlib - protobuf libevent libsodium librustzcash ] - ++ optionals stdenv.isLinux [ util-linux ]; - - configureFlags = [ "--with-boost-libdir=${boost17x.out}/lib" ]; - - postInstall = '' - cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params - ''; + configureFlags = [ + "--disable-tests" + "--with-boost-libdir=${lib.getLib boost17x}/lib" + "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp" + "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}" + ]; enableParallelBuilding = true; - meta = { + # Requires hundreds of megabytes of zkSNARK parameters. + doCheck = false; + + postInstall = '' + wrapProgram $out/bin/zcash-fetch-params \ + --set PATH ${lib.makeBinPath [ coreutils curl util-linux ]} + ''; + + meta = with lib; { description = "Peer-to-peer, anonymous electronic cash system"; homepage = "https://z.cash/"; maintainers = with maintainers; [ rht tkerber ]; diff --git a/pkgs/applications/blockchains/zcash/librustzcash/default.nix b/pkgs/applications/blockchains/zcash/librustzcash/default.nix deleted file mode 100644 index 526adc715d45..000000000000 --- a/pkgs/applications/blockchains/zcash/librustzcash/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ stdenv, fetchFromGitHub, rustPlatform }: - -rustPlatform.buildRustPackage rec { - pname = "librustzcash"; - version = "0.1.0"; - - src = fetchFromGitHub { - owner = "zcash"; - repo = "librustzcash"; - rev = version; - sha256 = "0d28k29sgzrg9clynz29kpw50kbkp0a4dfdayqhmpjmsh05y6261"; - }; - - cargoSha256 = "1wzyrcmcbrna6rjzw19c4lq30didzk4w6fs6wmvxp0xfg4qqdlax"; - - installPhase = '' - mkdir -p $out/lib - cp $releaseDir/librustzcash.a $out/lib/ - mkdir -p $out/include - cp librustzcash/include/librustzcash.h $out/include/ - ''; - - # The tests do pass, but they take an extremely long time to run. - doCheck = false; - - meta = with stdenv.lib; { - description = "Rust-language assets for Zcash"; - homepage = "https://github.com/zcash/librustzcash"; - maintainers = with maintainers; [ rht tkerber ]; - license = with licenses; [ mit asl20 ]; - platforms = platforms.unix; - }; -} From c36ab0c678535a0c19b9eb7f9ad51dabfad02cc5 Mon Sep 17 00:00:00 2001 From: Ivar Date: Thu, 2 Apr 2020 17:36:10 +0200 Subject: [PATCH 2/3] yuzu: init at 482 --- pkgs/misc/emulators/yuzu/default.nix | 47 ++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 +++ 2 files changed, 51 insertions(+) create mode 100644 pkgs/misc/emulators/yuzu/default.nix diff --git a/pkgs/misc/emulators/yuzu/default.nix b/pkgs/misc/emulators/yuzu/default.nix new file mode 100644 index 000000000000..3c643822c16e --- /dev/null +++ b/pkgs/misc/emulators/yuzu/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub +, cmake, pkgconfig, wrapQtAppsHook +, boost173, catch2, fmt, lz4, nlohmann_json, rapidjson, zlib, zstd, SDL2 +, udev, libusb1, libzip, qtbase, qtwebengine, qttools, ffmpeg +, libpulseaudio, libjack2, alsaLib, sndio, ecasound +, useVulkan ? true, vulkan-loader, vulkan-headers +}: + +stdenv.mkDerivation rec { + pname = "yuzu"; + version = "482"; + + src = fetchFromGitHub { + owner = "yuzu-emu"; + repo = "yuzu-mainline"; # They use a separate repo for mainline “branch” + rev = "mainline-0-${version}"; + sha256 = "1bhkdbhj1dv33qv0np26gzsw65p4z88whjmd6bc7mh2b5lvrjwxm"; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ]; + buildInputs = [ qtbase qtwebengine qttools boost173 catch2 fmt lz4 nlohmann_json rapidjson zlib zstd SDL2 udev libusb1 libpulseaudio alsaLib sndio ecasound libjack2 libzip ffmpeg ] + ++ stdenv.lib.optionals useVulkan [ vulkan-loader vulkan-headers ]; + cmakeFlags = [ "-DENABLE_QT_TRANSLATION=ON" "-DYUZU_USE_QT_WEB_ENGINE=ON" "-DUSE_DISCORD_PRESENCE=ON" ] + ++ stdenv.lib.optionals (!useVulkan) [ "-DENABLE_VULKAN=No" ]; + + # Trick the configure system. This prevents a check for submodule directories. + preConfigure = "rm .gitmodules"; + + # Fix vulkan detection + postFixup = stdenv.lib.optionals useVulkan '' + wrapProgram $out/bin/yuzu --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib + wrapProgram $out/bin/yuzu-cmd --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib + ''; + + meta = with stdenv.lib; { + homepage = "https://yuzu-emu.org"; + description = "An experimental Nintendo Switch emulator written in C++"; + license = with licenses; [ + gpl2Plus + # Icons + cc-by-nd-30 cc0 + ]; + maintainers = with maintainers; [ ivar joshuafern ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 521546140346..37fa37f073ed 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -28569,6 +28569,10 @@ in yaxg = callPackage ../tools/graphics/yaxg {}; + yuzu = libsForQt5.callPackage ../misc/emulators/yuzu { + stdenv = gcc10Stdenv; + }; + zap = callPackage ../tools/networking/zap { }; zigbee2mqtt = callPackage ../servers/zigbee2mqtt { }; From 08725b90e9c756e5528d8f626ebdad0af3a86062 Mon Sep 17 00:00:00 2001 From: Marc Seeger Date: Thu, 17 Dec 2020 16:26:51 -0800 Subject: [PATCH 3/3] rpm: 4.15.1 -> 4.16.1.2 --- pkgs/tools/package-management/rpm/default.nix | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix index 8acf57570d7c..ac470d3e26a5 100644 --- a/pkgs/tools/package-management/rpm/default.nix +++ b/pkgs/tools/package-management/rpm/default.nix @@ -1,21 +1,22 @@ -{ stdenv, lib +{ stdenv, lib, fetchpatch , pkgconfig, autoreconfHook -, fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libarchive, nspr, nss, popt, db, xz, python, lua, llvmPackages +, fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libgcrypt, libarchive, nspr, nss, popt, db, xz, python, lua, llvmPackages +, sqlite }: stdenv.mkDerivation rec { pname = "rpm"; - version = "4.15.1"; + version = "4.16.1.2"; src = fetchurl { url = "http://ftp.rpm.org/releases/rpm-${lib.versions.majorMinor version}.x/rpm-${version}.tar.bz2"; - sha256 = "0c6jwail90fhha3bpx70w4a2i8ycxwvnx6zwxm121l8wc3wlbvyx"; + sha256 = "1k6ank2aad7r503w12m6m494mxr6iccj52wqhwbc94pwxsf34mw3"; }; outputs = [ "out" "dev" "man" ]; nativeBuildInputs = [ autoreconfHook pkgconfig ]; - buildInputs = [ cpio zlib bzip2 file libarchive nspr nss db xz python lua ] + buildInputs = [ cpio zlib bzip2 file libarchive libgcrypt nspr nss db xz python lua sqlite ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]; # rpm/rpmlib.h includes popt.h, and then the pkg-config file mentions these as linkage requirements @@ -28,14 +29,23 @@ stdenv.mkDerivation rec { "--with-external-db" "--with-lua" "--enable-python" + "--enable-ndb" + "--enable-sqlite" "--localstatedir=/var" "--sharedstatedir=/com" ]; - postPatch = '' - # For Python3, the original expression evaluates as 'python3.4' but we want 'python3.4m' here - substituteInPlace configure.ac --replace 'python''${PYTHON_VERSION}' ${python.executable} + # Small fixes for ndb on darwin + # https://github.com/rpm-software-management/rpm/pull/1465 + patches = [ + (fetchpatch { + name = "darwin-support.patch"; + url = "https://github.com/rpm-software-management/rpm/commit/2d20e371d5e38f4171235e5c64068cad30bda557.patch"; + sha256 = "0p3j5q5a4hl357maf7018k3826jhcpqg6wfrnccrkv30g0ayk171"; + }) + ]; + postPatch = '' substituteInPlace Makefile.am --replace '@$(MKDIR_P) $(DESTDIR)$(localstatedir)/tmp' "" '';