From ca264f8da0e5a289b20bc20d16a4ec8f0756ade7 Mon Sep 17 00:00:00 2001 From: Baptist BENOIST Date: Tue, 16 Oct 2012 17:31:06 +0200 Subject: [PATCH] Add gmrun-0.9.2 Signed-off-by: Baptist BENOIST --- pkgs/applications/misc/gmrun/default.nix | 39 +++++++++++++ pkgs/applications/misc/gmrun/gcc43.patch | 51 ++++++++++++++++ .../misc/gmrun/gmrun-0.9.2-xdg.patch | 58 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 4 files changed, 150 insertions(+) create mode 100644 pkgs/applications/misc/gmrun/default.nix create mode 100644 pkgs/applications/misc/gmrun/gcc43.patch create mode 100644 pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch diff --git a/pkgs/applications/misc/gmrun/default.nix b/pkgs/applications/misc/gmrun/default.nix new file mode 100644 index 000000000000..930df87214ad --- /dev/null +++ b/pkgs/applications/misc/gmrun/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, glib, gtk2, pkgconfig, popt }: + +let + version = "0.9.2"; +in + +stdenv.mkDerivation rec { + name = "gmrun-${version}"; + + src = fetchurl { + url = "http://downloads.sourceforge.net/project/gmrun/gmrun/${version}/${name}.tar.gz"; + md5 = "6cef37a968006d9496fc56a7099c603c"; + }; + + buildInputs = [ glib gtk2 pkgconfig popt ]; + + doCheck = true; + + enableParallelBuilding = true; + + patches = [ + ./gcc43.patch + ./gmrun-0.9.2-xdg.patch + ]; + + meta = { + description = "Gnome Completion-Run Utility."; + longDescription = '' + A simple program which provides a "run program" window, featuring a bash-like TAB completion. + It uses GTK+ interface. + Also, supports CTRL-R / CTRL-S / "!" for searching through history. + Running commands in a terminal with CTRL-Enter. URL handlers. + ''; + homepage = "http://sourceforge.net/projects/gmrun/"; + license = "GPL"; + maintainers = [ stdenv.lib.maintainers.bbenoist ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/applications/misc/gmrun/gcc43.patch b/pkgs/applications/misc/gmrun/gcc43.patch new file mode 100644 index 000000000000..60e4338e893d --- /dev/null +++ b/pkgs/applications/misc/gmrun/gcc43.patch @@ -0,0 +1,51 @@ +--- a/src/gtkcompletionline.cc.orig 2003-11-16 11:55:07.000000000 +0100 ++++ a/src/gtkcompletionline.cc 2008-05-08 08:51:22.000000000 +0200 +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + using namespace std; + +--- a/src/ci_string.h.orig 2001-05-16 16:39:31.000000000 +0200 ++++ a/src/ci_string.h 2008-05-08 08:51:33.000000000 +0200 +@@ -7,6 +7,7 @@ + #define __CI_STRING_H__ + + #include ++#include + #include + + struct ci_char_traits : public std::char_traits +--- a/src/prefs.cc.orig 2002-08-16 12:48:22.000000000 +0200 ++++ a/src/prefs.cc 2008-05-08 08:51:54.000000000 +0200 +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include + +--- a/src/main.cc.orig 2003-11-16 11:55:07.000000000 +0100 ++++ a/src/main.cc 2008-05-08 09:03:11.000000000 +0200 +@@ -14,6 +14,7 @@ + #include + + #include ++#include + #include + #include + #include + +--- a/src/gtkcompletionline.cc.orig 2009-06-19 22:38:14.000000000 +0400 ++++ a/src/gtkcompletionline.cc 2009-06-19 22:37:14.000000000 +0400 +@@ -376,7 +377,7 @@ + return 0; + } + +-int my_alphasort(const void* va, const void* vb) { ++int my_alphasort(const dirent** va, const dirent** vb) { + const struct dirent** a = (const struct dirent**)va; + const struct dirent** b = (const struct dirent**)vb; diff --git a/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch b/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch new file mode 100644 index 000000000000..b5cd41a3c5b4 --- /dev/null +++ b/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch @@ -0,0 +1,58 @@ +diff -ur a/src/history.cc src/history.cc +--- a/src/history.cc 2002-08-17 15:19:31.000000000 +0200 ++++ a/src/history.cc 2012-06-04 23:42:35.314653414 +0200 +@@ -24,8 +24,15 @@ + HistoryFile::HistoryFile() + { + m_file_entries = 0; +- m_filename = g_get_home_dir(); +- m_filename += "/.gmrun_history"; ++ const char* filename = getenv("XDG_CACHE_HOME"); ++ if (filename != 0 && *filename != '\0') { ++ m_filename = filename; ++ m_filename += "/gmrun_history"; ++ } ++ else { ++ m_filename = g_get_home_dir(); ++ m_filename += "/.gmrun_history"; ++ } + m_current = 0; + m_default_set = false; + read_the_file(); +diff -ur a/src/prefs.cc src/prefs.cc +--- a/src/prefs.cc 2012-06-04 22:35:00.671949439 +0200 ++++ a/src/prefs.cc 2012-06-04 23:24:24.184445962 +0200 +@@ -35,12 +35,29 @@ + file_name += GMRUNRC; + init(file_name); + +- file_name = getenv("HOME"); +- if (!file_name.empty()) { ++ file_name.clear(); ++ const char* filename = getenv("XDG_CONFIG_HOME"); ++ if (filename != 0 && *filename != '\0') { ++ file_name = filename; + string::iterator i = file_name.end() - 1; +- if (*i == '/') file_name.erase(i); +- file_name += "/."; ++ if (*i != '/') { ++ file_name += '/'; ++ } + file_name += GMRUNRC; ++ } ++ else { ++ filename = getenv("HOME"); ++ if (filename != 0 && *filename != '\0') { ++ file_name = filename; ++ string::iterator i = file_name.end() - 1; ++ if (*i != '/') { ++ file_name += '/'; ++ } ++ file_name += '.'; ++ file_name += GMRUNRC; ++ } ++ } ++ if (!file_name.empty()) { + init(file_name); + } + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4fddd5aaef19..d54970c57c84 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7051,6 +7051,8 @@ let pcre = pcre.override { unicodeSupport = true; }; }; + gmrun = callPackage ../applications/misc/gmrun {}; + gnucash = callPackage ../applications/office/gnucash { inherit (gnome) libgnomeui libgtkhtml gtkhtml libbonoboui libgnomeprint; gconf = gnome.GConf;