diff --git a/pkgs/tools/filesystems/irods/common.nix b/pkgs/tools/filesystems/irods/common.nix index c2e09220a957..aaa96fdec84b 100644 --- a/pkgs/tools/filesystems/irods/common.nix +++ b/pkgs/tools/filesystems/irods/common.nix @@ -1,13 +1,71 @@ -{ lib, stdenv, bzip2, zlib, autoconf, automake, cmake, help2man, texinfo, libtool, cppzmq, libarchive -, avro-cpp, boost, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2, nanodbc, fmt -, nlohmann_json, spdlog, curl }: +{ + lib, + stdenv, + bzip2, + zlib, + autoconf, + automake, + cmake, + help2man, + texinfo, + libtool, + cppzmq, + libarchive, + avro-cpp, + boost, + zeromq, + openssl, + pam, + libiodbc, + libkrb5, + gcc, + libcxx, + which, + catch2, + nanodbc, + fmt, + nlohmann_json, + curl, + spdlog_rods, + bison, + flex +}: # Common attributes of irods packages { - nativeBuildInputs = [ autoconf automake cmake help2man texinfo which gcc ]; - buildInputs = [ bzip2 zlib libtool cppzmq libarchive avro-cpp zeromq openssl pam libiodbc libkrb5 boost - libcxx catch2 nanodbc fmt nlohmann_json spdlog curl ]; + nativeBuildInputs = [ + autoconf + automake + cmake + help2man + texinfo + which + gcc + bison + flex + ]; + buildInputs = [ + bzip2 + zlib + libtool + cppzmq + libarchive + avro-cpp + zeromq + openssl + pam + libiodbc + libkrb5 + boost + libcxx + catch2 + nanodbc + fmt + nlohmann_json + spdlog_rods + curl + ]; cmakeFlags = [ "-DIRODS_EXTERNALS_FULLPATH_CLANG=${stdenv.cc}" @@ -21,7 +79,7 @@ "-DIRODS_EXTERNALS_FULLPATH_NANODBC=${nanodbc}" "-DIRODS_EXTERNALS_FULLPATH_FMT=${fmt}" "-DIRODS_EXTERNALS_FULLPATH_JSON=${nlohmann_json}" - "-DIRODS_EXTERNALS_FULLPATH_SPDLOG=${spdlog}" + "-DIRODS_EXTERNALS_FULLPATH_SPDLOG=${spdlog_rods}" "-DIRODS_LINUX_DISTRIBUTION_NAME=nix" "-DIRODS_LINUX_DISTRIBUTION_VERSION_MAJOR=1.0" "-DCPACK_GENERATOR=TGZ" diff --git a/pkgs/tools/filesystems/irods/default.nix b/pkgs/tools/filesystems/irods/default.nix index beddb6959ba4..ca5fe7fa7329 100644 --- a/pkgs/tools/filesystems/irods/default.nix +++ b/pkgs/tools/filesystems/irods/default.nix @@ -1,89 +1,173 @@ -{ lib, stdenv, fetchFromGitHub, bzip2, zlib, autoconf, automake, cmake, help2man, texinfo, libtool, cppzmq -, libarchive, avro-cpp_llvm, boost, zeromq, openssl, pam, libiodbc, libkrb5, gcc, libcxx, which, catch2 -, nanodbc_llvm, fmt, nlohmann_json, spdlog, curl }: +{ + lib, + stdenv, + fetchFromGitHub, + bzip2, + zlib, + autoconf, + automake, + cmake, + help2man, + texinfo, + libtool, + cppzmq, + libarchive, + avro-cpp_llvm, + boost, + zeromq, + openssl, + pam, + libiodbc, + libkrb5, + gcc, + libcxx, + which, + catch2, + nanodbc_llvm, + fmt, + nlohmann_json, + spdlog_llvm, + curl, + bison, + flex +}: +let + spdlog_rods = spdlog_llvm.overrideAttrs (attrs: { + inherit stdenv; + version = "1.10.0"; + src = attrs.src.override { + rev = "v1.10.0"; + hash = "sha256-c6s27lQCXKx6S1FhZ/LiKh14GnXMhZtD1doltU4Avws="; + }; + postPatch = '' + substituteInPlace cmake/spdlog.pc.in \ + --replace-fail '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ + ''; + }); +in let avro-cpp = avro-cpp_llvm; nanodbc = nanodbc_llvm; common = import ./common.nix { - inherit lib stdenv bzip2 zlib autoconf automake cmake - help2man texinfo libtool cppzmq libarchive - zeromq openssl pam libiodbc libkrb5 gcc libcxx - boost avro-cpp which catch2 nanodbc fmt nlohmann_json - spdlog curl; + inherit + lib + stdenv + bzip2 + zlib + autoconf + automake + cmake + help2man + texinfo + libtool + cppzmq + libarchive + zeromq + openssl + pam + libiodbc + libkrb5 + gcc + libcxx + boost + avro-cpp + which + catch2 + nanodbc + fmt + nlohmann_json + curl + spdlog_rods + bison + flex + ; }; in rec { # irods: libs and server package - irods = stdenv.mkDerivation (finalAttrs: common // { - version = "4.3.1"; - pname = "irods"; + irods = stdenv.mkDerivation ( + finalAttrs: + common + // { + version = "4.3.3"; + pname = "irods"; - src = fetchFromGitHub { - owner = "irods"; - repo = "irods"; - rev = finalAttrs.version; - sha256 = "sha256-gWgNY8+zD2lRCV5ydOTF0qAgZ1dlQSQKxtdw+U235vg="; - fetchSubmodules = true; - }; + src = fetchFromGitHub { + owner = "irods"; + repo = "irods"; + rev = finalAttrs.version; + hash = "sha256-SmN2FzeoA2/gjiDfGs2oifOVj0mK2WdQCgiSdIlENfk="; + fetchSubmodules = true; + }; - # fix build with recent llvm versions - env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-register -Wno-deprecated-declarations"; + # fix build with recent llvm versions + env.NIX_CFLAGS_COMPILE = "-Wno-deprecated-register -Wno-deprecated-declarations"; - cmakeFlags = common.cmakeFlags or [ ] ++ [ - "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib" - "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib" - "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib" - ]; + cmakeFlags = common.cmakeFlags or [ ] ++ [ + "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib -D_GLIBCXX_USE_CXX11_ABI=0" + "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib" + "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,${placeholder "out"}/lib" + ]; - postPatch = common.postPatch + '' - patchShebangs ./test - substituteInPlace plugins/database/CMakeLists.txt --replace-fail "COMMAND cpp" "COMMAND ${gcc.cc}/bin/cpp" - for file in unit_tests/cmake/test_config/*.cmake - do - substituteInPlace $file --replace-quiet "CATCH2}/include" "CATCH2}/include/catch2" - done + postPatch = + common.postPatch + + '' + patchShebangs ./test + substituteInPlace plugins/database/CMakeLists.txt --replace-fail "COMMAND cpp" "COMMAND ${gcc.cc}/bin/cpp" + for file in unit_tests/cmake/test_config/*.cmake + do + substituteInPlace $file --replace-quiet "CATCH2}/include" "CATCH2}/include/catch2" + done - substituteInPlace server/auth/CMakeLists.txt --replace-fail SETUID "" - ''; - - meta = common.meta // { - longDescription = common.meta.longDescription + "This package provides the servers and libraries."; - }; - }); + substituteInPlace server/auth/CMakeLists.txt --replace-fail SETUID "" + ''; + meta = common.meta // { + longDescription = common.meta.longDescription + "This package provides the servers and libraries."; + mainProgram = "irodsServer"; + }; + } + ); # icommands (CLI) package, depends on the irods package - irods-icommands = stdenv.mkDerivation (finalAttrs: common // { - version = "4.3.1"; - pname = "irods-icommands"; + irods-icommands = stdenv.mkDerivation ( + finalAttrs: + common + // { + version = "4.3.3"; + pname = "irods-icommands"; - src = fetchFromGitHub { - owner = "irods"; - repo = "irods_client_icommands"; - rev = finalAttrs.version; - sha256 = "sha256-BjBg13KrCGRLOtGnp23qXOLudLctvu2gJ7wxHFjM5Ug="; - }; + src = fetchFromGitHub { + owner = "irods"; + repo = "irods_client_icommands"; + rev = finalAttrs.version; + hash = "sha256-cc0V6BztJk3njobWt27VeJNmQUXyH6aBJkvYIDFEzWY="; + }; - buildInputs = common.buildInputs ++ [ irods ]; + buildInputs = common.buildInputs ++ [ irods ]; - postPatch = common.postPatch + '' - patchShebangs ./bin - ''; + postPatch = + common.postPatch + + '' + patchShebangs ./bin + ''; - cmakeFlags = common.cmakeFlags ++ [ - "-DCMAKE_INSTALL_PREFIX=${stdenv.out}" - "-DIRODS_DIR=${irods}/lib/irods/cmake" - "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" - "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" - "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" - ]; + cmakeFlags = common.cmakeFlags ++ [ + "-DCMAKE_INSTALL_PREFIX=${stdenv.out}" + "-DIRODS_DIR=${irods}/lib/irods/cmake" + "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" + "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" + "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,${irods}/lib" + ]; - meta = common.meta // { - description = common.meta.description + " CLI clients"; - longDescription = common.meta.longDescription + "This package provides the CLI clients, called 'icommands'."; - }; - }); + meta = common.meta // { + description = common.meta.description + " CLI clients"; + longDescription = + common.meta.longDescription + "This package provides the CLI clients, called 'icommands'."; + }; + } + ); } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 52a209e119df..e5e6adaedd9d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8602,6 +8602,7 @@ with pkgs; fmt = fmt_8.override { inherit stdenv; }; nanodbc_llvm = nanodbc.override { inherit stdenv; }; avro-cpp_llvm = avro-cpp.override { inherit stdenv boost; }; + spdlog_llvm = spdlog.override { inherit stdenv fmt; }; }) irods irods-icommands;