summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/misc/gmrun
diff options
context:
space:
mode:
authorBaptist BENOIST <return_0@live.com>2012-10-16 17:31:06 +0200
committerBaptist BENOIST <return_0@live.com>2012-10-16 18:03:13 +0200
commitca264f8da0e5a289b20bc20d16a4ec8f0756ade7 (patch)
tree301b1ff1a6150215f07ca44ed430c8944111d3d7 /pkgs/applications/misc/gmrun
parent440656dbd018472e0d81e9c8cc820598c40661c2 (diff)
Add gmrun-0.9.2
Signed-off-by: Baptist BENOIST <return_0@live.com>
Diffstat (limited to 'pkgs/applications/misc/gmrun')
-rw-r--r--pkgs/applications/misc/gmrun/default.nix39
-rw-r--r--pkgs/applications/misc/gmrun/gcc43.patch51
-rw-r--r--pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch58
3 files changed, 148 insertions, 0 deletions
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 <set>
+ #include <sstream>
+ #include <string>
++#include <cstring>
+ #include <vector>
+ 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 <string>
++#include <cstring>
+ #include <ctype.h>
+
+ struct ci_char_traits : public std::char_traits<char>
+--- 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 <fstream>
+ #include <iostream>
+ #include <stdio.h>
++#include <stdlib.h>
+
+ #include <list>
+
+--- 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 <gdk/gdkkeysyms.h>
+
+ #include <string>
++#include <cstring>
+ #include <iostream>
+ #include <sstream>
+ #include <vector>
+
+--- 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);
+ }
+ }