From 3814415be4cf7e420cde4be8ba958ce0e3ba1b2a Mon Sep 17 00:00:00 2001 From: Andrew Morsillo Date: Sun, 24 Nov 2013 21:29:37 -0500 Subject: [PATCH] Add robomongo, a GUI for exploring mongodb data and building queries. --- pkgs/applications/misc/robomongo/default.nix | 24 ++++++++++ .../misc/robomongo/robomongo.patch | 48 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 74 insertions(+) create mode 100644 pkgs/applications/misc/robomongo/default.nix create mode 100644 pkgs/applications/misc/robomongo/robomongo.patch diff --git a/pkgs/applications/misc/robomongo/default.nix b/pkgs/applications/misc/robomongo/default.nix new file mode 100644 index 000000000000..c36d9254670a --- /dev/null +++ b/pkgs/applications/misc/robomongo/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, qt5, openssl, boost, cmake, scons, python, pcre, bzip2 }: + +stdenv.mkDerivation { + name = "robomongo-0.8.3"; + + src = fetchurl { + url = https://github.com/paralect/robomongo/archive/v0.8.3.tar.gz; + sha256 = "1x8vpmqvjscjcw30hf0i5vsrg3rldlwx6z52i1hymlck2jfzkank"; + }; + + patches = [ ./robomongo.patch ]; + + NIX_CFLAGS_COMPILE = "-fno-stack-protector"; + + buildInputs = [ cmake boost scons qt5 openssl python pcre bzip2 ]; + + meta = { + homepage = "http://robomongo.org/"; + description = "Query GUI for mongodb"; + platforms = stdenv.lib.platforms.unix; + license = stdenv.lib.licenses.gpl3; + maintainers = [ stdenv.lib.maintainers.amorsillo ]; + }; +} diff --git a/pkgs/applications/misc/robomongo/robomongo.patch b/pkgs/applications/misc/robomongo/robomongo.patch new file mode 100644 index 000000000000..2305ca732eae --- /dev/null +++ b/pkgs/applications/misc/robomongo/robomongo.patch @@ -0,0 +1,48 @@ +Remove check for QT_NO_STYLE_GTK to avoid building with QCleanlooksStyle which results in error due to missing QCleanlooksStyle +Ensure environment is preserved for scons build -- scons clears the env but we want to keep the nix build environment +Fix typo in cmakelists +diff -rupN robomongo-0.8.3/CMakeLists.txt robomongo-0.8.3-patched/CMakeLists.txt +--- robomongo-0.8.3/CMakeLists.txt 2013-10-01 10:55:00.000000000 -0400 ++++ robomongo-0.8.3-patched/CMakeLists.txt 2013-12-06 12:22:06.070659856 -0500 +@@ -133,7 +133,7 @@ ELSE() + ENDIF() + + ##################################DEFAULT VALUES########################################## +-IF(NOT CMAKE_INSTALL_PREFIX}) ++IF(NOT CMAKE_INSTALL_PREFIX) + SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install") + ENDIF() + +diff -rupN robomongo-0.8.3/src/robomongo/gui/AppStyle.h robomongo-0.8.3-patched/src/robomongo/gui/AppStyle.h +--- robomongo-0.8.3/src/robomongo/gui/AppStyle.h 2013-10-01 10:55:00.000000000 -0400 ++++ robomongo-0.8.3-patched/src/robomongo/gui/AppStyle.h 2013-12-06 12:20:57.417297186 -0500 +@@ -8,13 +8,8 @@ + #include + typedef QProxyStyle OsStyle; + #elif defined OS_LINUX +- #if !defined(QT_NO_STYLE_GTK) +- #include +- typedef QProxyStyle OsStyle; +- #else +- #include +- typedef QCleanlooksStyle OsStyle; +- #endif ++ #include ++ typedef QProxyStyle OsStyle; + #endif + + namespace Robomongo + +diff -rupN robomongo-0.8.3/src/third-party/mongodb/SConstruct robomongo-0.8.3-patched/src/third-party/mongodb/SConstruct +--- robomongo-0.8.3/src/third-party/mongodb/SConstruct 2013-10-01 10:55:00.000000000 -0400 ++++ robomongo-0.8.3-patched/src/third-party/mongodb/SConstruct 2013-12-06 12:21:45.705255731 -0500 +@@ -283,7 +283,8 @@ usePCH = has_option( "usePCH" ) + + justClientLib = (COMMAND_LINE_TARGETS == ['mongoclient']) + +-env = Environment( BUILD_DIR=variantDir, ++env = Environment( ENV=os.environ, ++ BUILD_DIR=variantDir, + CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}', + CLIENT_DIST_BASENAME=get_option('client-dist-basename'), + CLIENT_LICENSE='#distsrc/client/LICENSE.txt', diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3725b78270fc..9c3504ffd018 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10184,6 +10184,8 @@ let inherit (pythonPackages) pexpect paramiko; }; + robomongo = callPackage ../applications/misc/robomongo { }; + opkg = callPackage ../tools/package-management/opkg { }; pgadmin = callPackage ../applications/misc/pgadmin { };