From 59b5e9211767cd1cbd6bfd3d5ed90c3a72d32e2e Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Apr 2020 09:57:48 +0300 Subject: [PATCH 01/12] mtxclient: format inputs and arguments --- .../libraries/mtxclient/default.nix | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix index c4d86220081..0c6134e204f 100644 --- a/pkgs/development/libraries/mtxclient/default.nix +++ b/pkgs/development/libraries/mtxclient/default.nix @@ -1,5 +1,15 @@ -{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig -, boost, openssl, zlib, libsodium, olm, nlohmann_json }: +{ stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, pkgconfig +, boost +, openssl +, zlib +, libsodium +, olm +, nlohmann_json +}: stdenv.mkDerivation rec { pname = "mtxclient"; @@ -18,8 +28,17 @@ stdenv.mkDerivation rec { "-Dnlohmann_json_DIR=${nlohmann_json}/lib/cmake/nlohmann_json" ]; - nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = [ boost openssl zlib libsodium olm ]; + nativeBuildInputs = [ + cmake + pkgconfig + ]; + buildInputs = [ + boost + openssl + zlib + libsodium + olm + ]; meta = with stdenv.lib; { description = "Client API library for Matrix, built on top of Boost.Asio"; From 6584d4fdb903f79d274dd2f3178a1a630c409063 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 24 Apr 2020 11:09:33 +0300 Subject: [PATCH 02/12] mtxclient: 0.2.1 -> 0.3.0 --- pkgs/development/libraries/mtxclient/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix index 0c6134e204f..a8aa0062483 100644 --- a/pkgs/development/libraries/mtxclient/default.nix +++ b/pkgs/development/libraries/mtxclient/default.nix @@ -3,23 +3,24 @@ , fetchpatch , cmake , pkgconfig -, boost +, boost17x , openssl , zlib , libsodium , olm +, spdlog , nlohmann_json }: stdenv.mkDerivation rec { pname = "mtxclient"; - version = "0.2.1"; + version = "0.3.0"; src = fetchFromGitHub { owner = "Nheko-Reborn"; repo = "mtxclient"; rev = "v${version}"; - sha256 = "0pycznrvj57ff6gbwfn1xj943d2dr4vadl79hii1z16gn0nzxpmj"; + sha256 = "0vf5xmn6yfi5lvskfgrdmnalvclzrapcrml92bj9qaa8vq8mfsf2"; }; cmakeFlags = [ @@ -33,7 +34,8 @@ stdenv.mkDerivation rec { pkgconfig ]; buildInputs = [ - boost + spdlog + boost17x openssl zlib libsodium From 875cdcff4ab8c6e2593273b62151d23a2d59c4fa Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Apr 2020 10:05:16 +0300 Subject: [PATCH 03/12] mtxclient: mention why tests are disabled --- pkgs/development/libraries/mtxclient/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix index a8aa0062483..79ded7f43ef 100644 --- a/pkgs/development/libraries/mtxclient/default.nix +++ b/pkgs/development/libraries/mtxclient/default.nix @@ -24,6 +24,8 @@ stdenv.mkDerivation rec { }; cmakeFlags = [ + # Network requiring tests can't be disabled individually: + # https://github.com/Nheko-Reborn/mtxclient/issues/22 "-DBUILD_LIB_TESTS=OFF" "-DBUILD_LIB_EXAMPLES=OFF" "-Dnlohmann_json_DIR=${nlohmann_json}/lib/cmake/nlohmann_json" From 5c39300463618b12b53548172583c9ed1b271a02 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 17 Apr 2020 13:18:19 +0300 Subject: [PATCH 04/12] tweeny: init at 3.1.0 --- pkgs/development/libraries/tweeny/default.nix | 30 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 pkgs/development/libraries/tweeny/default.nix diff --git a/pkgs/development/libraries/tweeny/default.nix b/pkgs/development/libraries/tweeny/default.nix new file mode 100644 index 00000000000..d3c30028ba4 --- /dev/null +++ b/pkgs/development/libraries/tweeny/default.nix @@ -0,0 +1,30 @@ +{ stdenv +, fetchFromGitHub +, cmake +}: + +stdenv.mkDerivation rec { + pname = "tweeny"; + version = "3.1.0"; + + src = fetchFromGitHub { + owner = "mobius3"; + repo = "tweeny"; + rev = "v${version}"; + sha256 = "0qvby57g9a2m4afd1mgard3k7nm4ynbvali7nzm1qn3ygdmqid7n"; + }; + + nativeBuildInputs = [ + cmake + ]; + + doCheck = true; + + meta = with stdenv.lib; { + description = "A modern C++ tweening library"; + license = licenses.mit; + homepage = "http://mobius3.github.io/tweeny"; + maintainers = [ maintainers.doronbehar ]; + platforms = with platforms; darwin ++ linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f182b6d250c..262adcee5d3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7438,6 +7438,8 @@ in tweet-hs = haskell.lib.justStaticExecutables haskellPackages.tweet-hs; + tweeny = callPackage ../development/libraries/tweeny { }; + qfsm = callPackage ../applications/science/electronics/qfsm { }; tkgate = callPackage ../applications/science/electronics/tkgate/1.x.nix { }; From 13aa8b58ca57a29a982acda64c3f2d9b39071858 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Apr 2020 10:08:47 +0300 Subject: [PATCH 05/12] nheko: format inputs and arguments --- .../instant-messengers/nheko/default.nix | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index 1938bae4f74..34d60dff97a 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -1,6 +1,19 @@ -{ lib, stdenv, fetchFromGitHub -, cmake, cmark, lmdb, mkDerivation, qtbase, qtmacextras -, qtmultimedia, qttools, mtxclient, boost, spdlog, olm, pkgconfig +{ lib +, stdenv +, fetchFromGitHub +, cmake +, cmark +, lmdb +, mkDerivation +, qtbase +, qtmacextras +, qtmultimedia +, qttools +, mtxclient +, boost +, spdlog +, olm +, pkgconfig , nlohmann_json }: @@ -60,11 +73,21 @@ mkDerivation rec { "-Dnlohmann_json_DIR=${nlohmann_json}/lib/cmake/nlohmann_json" ]; - nativeBuildInputs = [ cmake pkgconfig ]; + nativeBuildInputs = [ + cmake + pkgconfig + ]; buildInputs = [ - mtxclient olm boost lmdb spdlog cmark - qtbase qtmultimedia qttools + mtxclient + olm + boost + lmdb + spdlog + cmark + qtbase + qtmultimedia + qttools ] ++ lib.optional stdenv.isDarwin qtmacextras; enableParallelBuilding = true; From e6cf5d3d1661175abc8609739a8b012ccb00b14f Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 17 Apr 2020 13:19:45 +0300 Subject: [PATCH 06/12] nheko: use nixpkgs' versions of libraries --- .../instant-messengers/nheko/default.nix | 34 +++---------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index 34d60dff97a..2175ec5330f 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -4,6 +4,8 @@ , cmake , cmark , lmdb +, lmdbxx +, tweeny , mkDerivation , qtbase , qtmacextras @@ -17,23 +19,6 @@ , nlohmann_json }: -# These hashes and revisions are based on those from here: -# https://github.com/Nheko-Reborn/nheko/blob/v0.6.4/deps/CMakeLists.txt#L52 -let - tweeny = fetchFromGitHub { - owner = "mobius3"; - repo = "tweeny"; - rev = "b94ce07cfb02a0eb8ac8aaf66137dabdaea857cf"; - sha256 = "1wyyq0j7dhjd6qgvnh3knr70li47hmf5394yznkv9b1indqjx4mi"; - }; - - lmdbxx = fetchFromGitHub { - owner = "bendiken"; - repo = "lmdbxx"; - rev = "0b43ca87d8cfabba392dfe884eb1edb83874de02"; - sha256 = "1whsc5cybf9rmgyaj6qjji03fv5jbgcgygp956s3835b9f9cjg1n"; - }; -in mkDerivation rec { pname = "nheko"; version = "0.6.4"; @@ -61,24 +46,15 @@ mkDerivation rec { # export CFLAGS=-Wno-error=gnu-zero-variadic-macro-arguments #''; - postPatch = '' - mkdir -p .deps/include/ - ln -s ${tweeny}/include .deps/include/tweeny - ln -s ${spdlog} .deps/spdlog - ''; - - cmakeFlags = [ - "-DTWEENY_INCLUDE_DIR=.deps/include" - "-DLMDBXX_INCLUDE_DIR=${lmdbxx}" - "-Dnlohmann_json_DIR=${nlohmann_json}/lib/cmake/nlohmann_json" - ]; - nativeBuildInputs = [ + lmdbxx cmake pkgconfig ]; buildInputs = [ + nlohmann_json + tweeny mtxclient olm boost From 6d4c381838dceb888872861f863672175ef909ea Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 24 Apr 2020 11:07:28 +0300 Subject: [PATCH 07/12] nheko: 0.6.4 -> 0.7.1 --- .../networking/instant-messengers/nheko/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index 2175ec5330f..67b8cd6fa41 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -11,8 +11,10 @@ , qtmacextras , qtmultimedia , qttools +, qtquickcontrols2 +, qtgraphicaleffects , mtxclient -, boost +, boost17x , spdlog , olm , pkgconfig @@ -21,13 +23,13 @@ mkDerivation rec { pname = "nheko"; - version = "0.6.4"; + version = "0.7.1"; src = fetchFromGitHub { owner = "Nheko-Reborn"; repo = "nheko"; rev = "v${version}"; - sha256 = "19dkc98l1q4070v6mli4ybqn0ip0za607w39hjf0x8rqdxq45iwm"; + sha256 = "12sxibbrn79sxkf9jrm7jrlj7l5vz15claxrrll7pkv9mv44wady"; }; # If, on Darwin, you encounter the error @@ -57,13 +59,15 @@ mkDerivation rec { tweeny mtxclient olm - boost + boost17x lmdb spdlog cmark qtbase qtmultimedia qttools + qtquickcontrols2 + qtgraphicaleffects ] ++ lib.optional stdenv.isDarwin qtmacextras; enableParallelBuilding = true; From 648712b7bfbf0c607515e32840b439e28ac177c6 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 25 Apr 2020 01:37:22 +0300 Subject: [PATCH 08/12] nheko: fix boost make issue --- .../networking/instant-messengers/nheko/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index 67b8cd6fa41..0de96c10d59 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -53,6 +53,11 @@ mkDerivation rec { cmake pkgconfig ]; + cmakeFlags = [ + # Can be removed once either https://github.com/NixOS/nixpkgs/pull/85254 or + # https://github.com/NixOS/nixpkgs/pull/73940 are merged + "-DBoost_NO_BOOST_CMAKE=TRUE" + ]; buildInputs = [ nlohmann_json From 2abd30cb8701e73c2cfe86439fabfd4c364bbcb8 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 25 Apr 2020 01:37:30 +0300 Subject: [PATCH 09/12] mtxclient: fix boost make issue --- pkgs/development/libraries/mtxclient/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix index 79ded7f43ef..3f5f338f5af 100644 --- a/pkgs/development/libraries/mtxclient/default.nix +++ b/pkgs/development/libraries/mtxclient/default.nix @@ -29,6 +29,9 @@ stdenv.mkDerivation rec { "-DBUILD_LIB_TESTS=OFF" "-DBUILD_LIB_EXAMPLES=OFF" "-Dnlohmann_json_DIR=${nlohmann_json}/lib/cmake/nlohmann_json" + # Can be removed once either https://github.com/NixOS/nixpkgs/pull/85254 or + # https://github.com/NixOS/nixpkgs/pull/73940 are merged + "-DBoost_NO_BOOST_CMAKE=TRUE" ]; nativeBuildInputs = [ From 67d0c4f130986e4e2a6d9b7b094786a8769d6d95 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 25 Apr 2020 02:05:38 +0300 Subject: [PATCH 10/12] nheko: apply patch recommended by upstream --- .../networking/instant-messengers/nheko/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index 0de96c10d59..c106305856f 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , cmake , cmark , lmdb @@ -58,6 +59,15 @@ mkDerivation rec { # https://github.com/NixOS/nixpkgs/pull/73940 are merged "-DBoost_NO_BOOST_CMAKE=TRUE" ]; + # commit missing from latest release and recommended by upstream: + # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619263903 + patches = [ + (fetchpatch { + name = "room-ids-escape-patch"; + url = "https://github.com/Nheko-Reborn/nheko/commit/d94ac86816f9f325cba11f71344a3ca99591130d.patch"; + sha256 = "1p0kj4a60l3jf0rfakc88adld7ccg3vfjhzia5rf2i03h35cxw8c"; + }) + ]; buildInputs = [ nlohmann_json From 0577b994afe04a188319acc9319d6794224ba415 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 25 Apr 2020 12:55:09 +0300 Subject: [PATCH 11/12] nheko: remove redundent parallel building flag --- .../networking/instant-messengers/nheko/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index c106305856f..cab4889c231 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -85,8 +85,6 @@ mkDerivation rec { qtgraphicaleffects ] ++ lib.optional stdenv.isDarwin qtmacextras; - enableParallelBuilding = true; - meta = with stdenv.lib; { description = "Desktop client for the Matrix protocol"; homepage = "https://github.com/Nheko-Reborn/nheko"; From bdcbfc77c9bda30964d00b41b4c906aa9d489967 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 30 Apr 2020 10:25:38 +0300 Subject: [PATCH 12/12] nheko && mtxclient: enable for Darwin but mark as broken --- .../instant-messengers/nheko/default.nix | 21 ++++--------------- .../libraries/mtxclient/default.nix | 9 ++++---- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix index cab4889c231..f3b304564cb 100644 --- a/pkgs/applications/networking/instant-messengers/nheko/default.nix +++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix @@ -33,22 +33,6 @@ mkDerivation rec { sha256 = "12sxibbrn79sxkf9jrm7jrlj7l5vz15claxrrll7pkv9mv44wady"; }; - # If, on Darwin, you encounter the error - # error: must specify at least one argument for '...' parameter of variadic - # macro [-Werror,-Wgnu-zero-variadic-macro-arguments] - # Then adding this parameter is likely the fix you want. - # - # However, it looks like either cmake doesn't honor this CFLAGS variable, or - # darwin's compiler doesn't have the same syntax as gcc for turning off - # -Werror selectively. - # - # Anyway, this is something that will have to be debugged with access to a - # darwin-based OS. Sorry about that! - # - #preConfigure = lib.optionalString stdenv.isDarwin '' - # export CFLAGS=-Wno-error=gnu-zero-variadic-macro-arguments - #''; - nativeBuildInputs = [ lmdbxx cmake @@ -89,7 +73,10 @@ mkDerivation rec { description = "Desktop client for the Matrix protocol"; homepage = "https://github.com/Nheko-Reborn/nheko"; maintainers = with maintainers; [ ekleog fpletz ]; - platforms = platforms.unix; + platforms = platforms.all; + # Should be fixable if a higher clang version is used, see: + # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177 + broken = stdenv.targetPlatform.isDarwin; license = licenses.gpl3Plus; }; } diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix index 3f5f338f5af..22b66442305 100644 --- a/pkgs/development/libraries/mtxclient/default.nix +++ b/pkgs/development/libraries/mtxclient/default.nix @@ -52,10 +52,9 @@ stdenv.mkDerivation rec { homepage = "https://github.com/Nheko-Reborn/mtxclient"; license = licenses.mit; maintainers = with maintainers; [ fpletz ]; - platforms = platforms.unix; - - # As of 2019-06-30, all of the dependencies are available on macOS but the - # package itself does not build. - broken = stdenv.isDarwin; + platforms = platforms.all; + # Should be fixable if a higher clang version is used, see: + # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177 + broken = stdenv.targetPlatform.isDarwin; }; }