diff options
Diffstat (limited to 'recipes/gpe-package')
-rw-r--r-- | recipes/gpe-package/files/gpe-package | 2 | ||||
-rw-r--r-- | recipes/gpe-package/files/sbin-and-no-suid-install.patch | 15 | ||||
-rw-r--r-- | recipes/gpe-package/files/search.patch | 313 | ||||
-rw-r--r-- | recipes/gpe-package/gpe-package-0.2/nostropts.patch | 15 | ||||
-rw-r--r-- | recipes/gpe-package/gpe-package-0.2/use-filesel.patch | 51 | ||||
-rw-r--r-- | recipes/gpe-package/gpe-package_0.2.bb | 12 | ||||
-rw-r--r-- | recipes/gpe-package/gpe-package_0.3.bb | 23 | ||||
-rw-r--r-- | recipes/gpe-package/gpe-package_0.4.bb | 22 |
8 files changed, 453 insertions, 0 deletions
diff --git a/recipes/gpe-package/files/gpe-package b/recipes/gpe-package/files/gpe-package new file mode 100644 index 0000000000..2555dfb975 --- /dev/null +++ b/recipes/gpe-package/files/gpe-package @@ -0,0 +1,2 @@ +#!/bin/sh +exec /usr/bin/gpe-su -c /usr/sbin/gpe-package diff --git a/recipes/gpe-package/files/sbin-and-no-suid-install.patch b/recipes/gpe-package/files/sbin-and-no-suid-install.patch new file mode 100644 index 0000000000..10a90f1d30 --- /dev/null +++ b/recipes/gpe-package/files/sbin-and-no-suid-install.patch @@ -0,0 +1,15 @@ +--- gpe-package-0.3/Makefile 2005-08-26 06:14:00.000000000 -0700 ++++ gpe-package-0.3-oe/Makefile 2006-05-24 16:51:02.459320395 -0700 +@@ -52,9 +52,9 @@ + mkdir -p $(DESTDIR)/CONTROL + sed -e s/VERSION/$(VERSION)/ < familiar/control > $(DESTDIR)/CONTROL/control + mkdir -p $(DESTDIR)/etc/gpe +- mkdir -p $(DESTDIR)/$(PREFIX)/bin +- $(INSTALL) -m 4755 $(PACKAGE) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) +- $(STRIP) $(DESTDIR)$(PREFIX)/bin/$(PACKAGE) ++ mkdir -p $(DESTDIR)/$(PREFIX)/sbin ++ $(INSTALL) -m 0744 $(PACKAGE) $(DESTDIR)$(PREFIX)/sbin/$(PACKAGE) ++ $(STRIP) $(DESTDIR)$(PREFIX)/sbin/$(PACKAGE) + mkdir -p $(DESTDIR)$(PREFIX)/share/pixmaps + for i in $(PIXMAPS); do install -m 644 -D pixmaps/$$i $(DESTDIR)$(PREFIX)/share/pixmaps/$$i; done + mkdir -p $(DESTDIR)$(PREFIX)/share/applications diff --git a/recipes/gpe-package/files/search.patch b/recipes/gpe-package/files/search.patch new file mode 100644 index 0000000000..2a71c5339f --- /dev/null +++ b/recipes/gpe-package/files/search.patch @@ -0,0 +1,313 @@ +--- /tmp/interface.c 2006-08-31 09:49:57.000000000 +0200 ++++ gpe-package-0.3/interface.c 2006-08-31 09:50:20.855780000 +0200 +@@ -27,6 +27,10 @@ + #include <locale.h> + #include <libintl.h> + ++#ifdef ENABLE_PCRE ++#include <pcre.h> ++#endif ++ + #define _(x) gettext(x) + #define N_(_x) (_x) + +@@ -55,11 +59,8 @@ + #define MI_PACKAGES_APPLY 7 + #define MI_FILTER_INST 8 + #define MI_FILTER_NOTINST 9 +-#define MI_PACKAGES_INFO 10 +- +-#define TREE_SHOW_ALL 0x00 +-#define TREE_SHOW_INST 0x01 +-#define TREE_SHOW_NOTINST 0x02 ++#define MI_FILTER_SEARCH 10 ++#define MI_PACKAGES_INFO 11 + + #define HELPMESSAGE "GPE-Package\nVersion " VERSION \ + "\nGPE frontend for ipkg\n\nflorian@handhelds.org" +@@ -79,7 +80,6 @@ + + static description_t *pkg_info = NULL; + static int pkg_count = 0; +-static int tree_filter = TREE_SHOW_ALL; + + int sock; + static pkcommand_t running_command = CMD_NONE; +@@ -91,10 +91,12 @@ + static GtkWidget *notebook; + static GtkWidget *txLog; + static GtkWidget *treeview; ++static GtkTreeModel *filter; ++static gchar *filter_term = NULL; + static GtkTreeStore *store = NULL; + static GtkToolItem *bApply; + static GtkWidget *miUpdate, *miSysUpgrade, *miSelectLocal, *miApply; +-static GtkWidget *miFilterInst, *miFilterNotInst; ++static GtkWidget *miFilterInst, *miFilterNotInst, *miFilterSearch; + static GtkWidget *sbar; + GtkWidget *fMain; + static GtkWidget *dlgAction = NULL; +@@ -102,10 +104,17 @@ + static GtkTextBuffer *infobuffer = NULL; + static GtkWidget *mMain; + ++#ifdef ENABLE_PCRE ++static gboolean is_regexp; ++#endif + + /* some forwards */ + gboolean get_pending_messages (); + void on_tree_filter_changed(GtkCheckMenuItem *menuitem, gpointer user_data); ++void on_tree_filter_search_changed (GtkCheckMenuItem *menuitem, gpointer user_data); ++gboolean filter_visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data); ++void set_filter_term (const gchar *text, gboolean regexp); ++void search_entry_activated (GtkEntry *entry, gpointer user_data); + void create_fMain (void); + void on_select_local(GtkButton *button, gpointer user_data); + void on_packages_update_clicked(GtkButton *button, gpointer user_data); +@@ -125,8 +134,10 @@ + { N_("/Packages/Show Insta_lled"), "", on_tree_filter_changed, MI_FILTER_INST , "<CheckItem>"}, + { N_("/Packages/Show _Not Installed"), "", on_tree_filter_changed, MI_FILTER_NOTINST, "<CheckItem>"}, + { N_("/_Packages/s2"), NULL , NULL, 0, "<Separator>"}, +- { N_("/Packages/Show _Info"), "<Control> I", on_package_info_clicked, MI_PACKAGES_INFO , "<Item>"}, ++ { N_("/Packages/_Search"), "<Control> I", on_tree_filter_search_changed, MI_FILTER_SEARCH , "<CheckItem>"}, + { N_("/_Packages/s3"), NULL , NULL, 0, "<Separator>"}, ++ { N_("/Packages/Show _Info"), "<Control> I", on_package_info_clicked, MI_PACKAGES_INFO , "<Item>"}, ++ { N_("/_Packages/s4"), NULL , NULL, 0, "<Separator>"}, + { N_("/Packages/_Update lists"), "<Control> U", on_packages_update_clicked, MI_PACKAGES_UPDATE , "<Item>"}, + { N_("/Packages/Upgrade _System"), "", on_system_update_clicked, MI_PACKAGES_UPGRADE, "<Item>"}, + { N_("/_Packages/s3"), NULL , NULL, 0, "<Separator>"}, +@@ -215,10 +226,10 @@ + GtkWidget * + progress_dialog (gchar * text, GdkPixbuf * pixbuf) + { +-GtkWidget *window; +-GtkWidget *label; +-GtkWidget *image; +-GtkWidget *hbox; ++ GtkWidget *window; ++ GtkWidget *label; ++ GtkWidget *image; ++ GtkWidget *hbox; + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + hbox = gtk_hbox_new (FALSE, 0); +@@ -227,6 +238,7 @@ + + gtk_window_set_type_hint (GTK_WINDOW (window), + GDK_WINDOW_TYPE_HINT_DIALOG); ++ gtk_window_set_title (GTK_WINDOW (window), _("Working")); + + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + +@@ -381,9 +393,9 @@ + + void update_tree(void) + { +-guint id; +-int i; +-GtkTreeIter iter; ++ guint id; ++ int i; ++ GtkTreeIter iter; + + id = gtk_statusbar_get_context_id(GTK_STATUSBAR(sbar),"upd"); + gtk_statusbar_push(GTK_STATUSBAR(sbar), +@@ -392,10 +404,6 @@ + gtk_tree_store_clear(GTK_TREE_STORE(store)); + + for (i=0; i<pkg_count; i++) { +- if (((tree_filter & TREE_SHOW_INST) && (pkg_info[i].status == SS_INSTALLED)) +- || ((tree_filter & TREE_SHOW_NOTINST) && (pkg_info[i].status != SS_INSTALLED))) +- continue; +- + gtk_tree_store_append (store, &iter, NULL); + + gtk_tree_store_set (store, &iter, +@@ -412,14 +420,137 @@ + + void on_tree_filter_changed(GtkCheckMenuItem *menuitem, gpointer user_data) + { +- tree_filter = +- !gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(miFilterInst)) * +- TREE_SHOW_INST + +- !gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(miFilterNotInst)) * +- TREE_SHOW_NOTINST; +- update_tree(); ++ if (filter) ++ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter)); + } + ++gboolean filter_visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) ++{ ++ gboolean installed; ++ gboolean not_installed; ++ GValue value_installed = { 0, }; ++ GValue value_name = { 0, }; ++ const gchar *pkgname; ++ ++ installed = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(miFilterInst)); ++ not_installed = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(miFilterNotInst)); ++ ++ gtk_tree_model_get_value (model, iter, COL_INSTALLED, &value_installed); ++ ++ if (g_value_get_boolean (&value_installed)) { ++ /* Package is installed */ ++ if (!installed) ++ return FALSE; ++ } else { ++ /* Package is not installed */ ++ if (!not_installed) ++ return FALSE; ++ } ++ ++ if (!filter_term) ++ return TRUE; ++ ++ gtk_tree_model_get_value (model, iter, COL_NAME, &value_name); ++ ++ pkgname = g_value_get_string (&value_name); ++ ++#ifdef ENABLE_PCRE ++ pcre *re; ++ gint ret; ++ const gchar *error; ++ gint error_offset; ++ ++ if (is_regexp) { ++ re = pcre_compile (filter_term, 0, &error, &error_offset, NULL); ++ ++ if (re) { ++ ret = pcre_exec (re, NULL, pkgname, strlen (pkgname), 0, 0, NULL, 0); ++ ++ g_free (re); ++ ++ if (ret >= 0) { ++ return TRUE; ++ } ++ } ++ ++ return FALSE; ++ } ++#endif ++ ++ if (strstr (pkgname, filter_term)) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++void set_filter_term (const gchar *text, gboolean regexp) ++{ ++ if (filter_term) { ++ g_free (filter_term); ++ } ++ ++ filter_term = g_strdup (text); ++ ++#ifdef ENABLE_PCRE ++ is_regexp = regexp; ++#endif ++ ++ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter)); ++} ++ ++void search_entry_activated (GtkEntry *entry, gpointer user_data) ++{ ++ GtkDialog *dialog = user_data; ++ ++ gtk_dialog_response (dialog, GTK_RESPONSE_ACCEPT); ++} ++ ++void on_tree_filter_search_changed (GtkCheckMenuItem *menuitem, gpointer user_data) ++{ ++ GtkWidget *dialog; ++ GtkWidget *entry; ++ const gchar *text; ++#ifdef ENABLE_PCRE ++ GtkWidget *checkbutton; ++#endif ++ ++ if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (miFilterSearch))) { ++ dialog = gtk_dialog_new_with_buttons (_("Search term:"), ++ GTK_WINDOW (fMain), ++ GTK_DIALOG_DESTROY_WITH_PARENT, ++ GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, ++ GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, ++ NULL); ++ entry = gtk_entry_new (); ++ g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (search_entry_activated), dialog); ++ gtk_widget_show (entry); ++ gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), entry); ++#ifdef ENABLE_PCRE ++ checkbutton = gtk_check_button_new_with_label (_("Regular expression")); ++ gtk_widget_show (checkbutton); ++ gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), checkbutton); ++#endif ++ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { ++ text = gtk_entry_get_text (GTK_ENTRY (entry)); ++ if (strlen (text)) { ++#ifdef ENABLE_PCRE ++ set_filter_term (text, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))); ++#else ++ set_filter_term (text, FALSE); ++#endif ++ } else { ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (miFilterSearch), FALSE); ++ } ++ } else { ++ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (miFilterSearch), FALSE); ++ } ++ gtk_widget_destroy (dialog); ++ } else { ++ set_filter_term (NULL, FALSE); ++ } ++ ++ ++} + + void on_about_clicked (GtkWidget * w) + { +@@ -740,9 +871,9 @@ + + void on_package_info_clicked(GtkButton *button, gpointer user_data) + { +-GtkTreeIter iter; +-GtkTreeSelection *sel; +-char *name = NULL; ++ GtkTreeIter iter; ++ GtkTreeSelection *sel; ++ char *name = NULL; + + sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); + +@@ -848,7 +979,7 @@ + selection = gtk_tree_view_get_selection (treeview); + if (gtk_tree_selection_get_selected (selection, NULL, &iter) == FALSE) + return FALSE; +- gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, COL_VERSION, &version, -1); ++ gtk_tree_model_get (GTK_TREE_MODEL (filter), &iter, COL_VERSION, &version, -1); + gtk_statusbar_push(GTK_STATUSBAR(sbar),0,version); + + return TRUE; +@@ -882,6 +1013,8 @@ + MI_FILTER_INST); + miFilterNotInst = gtk_item_factory_get_item_by_action(itemfactory, + MI_FILTER_NOTINST); ++ miFilterSearch = gtk_item_factory_get_item_by_action(itemfactory, ++ MI_FILTER_SEARCH); + + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(miFilterInst),TRUE); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(miFilterNotInst),TRUE); +@@ -984,7 +1117,9 @@ + gtk_box_pack_start(GTK_BOX(vbox), cur, TRUE, TRUE, 0); + + /* packages tree */ +- treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); ++ filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL); ++ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filter), filter_visible_func, NULL, NULL); ++ treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (filter)); + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(treeview),FALSE); + gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(treeview),TRUE); + gtk_container_add(GTK_CONTAINER(cur),treeview); + diff --git a/recipes/gpe-package/gpe-package-0.2/nostropts.patch b/recipes/gpe-package/gpe-package-0.2/nostropts.patch new file mode 100644 index 0000000000..907f3017ef --- /dev/null +++ b/recipes/gpe-package/gpe-package-0.2/nostropts.patch @@ -0,0 +1,15 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- gpe-package-0.2/interface.c~nostropts 2004-10-19 18:33:19.000000000 -0400 ++++ gpe-package-0.2/interface.c 2005-01-04 15:14:08.587136384 -0500 +@@ -18,7 +18,6 @@ + #include <unistd.h> + #include <dirent.h> + #include <fcntl.h> +-#include <stropts.h> + #include <poll.h> + #include <sys/types.h> + #include <sys/socket.h> diff --git a/recipes/gpe-package/gpe-package-0.2/use-filesel.patch b/recipes/gpe-package/gpe-package-0.2/use-filesel.patch new file mode 100644 index 0000000000..c25b9b1022 --- /dev/null +++ b/recipes/gpe-package/gpe-package-0.2/use-filesel.patch @@ -0,0 +1,51 @@ +diff -urNd ../gpe-package-0.2-r0/gpe-package-0.2/Makefile gpe-package-0.2/Makefile +--- ../gpe-package-0.2-r0/gpe-package-0.2/Makefile 2004-10-20 09:37:58 +01:00 ++++ gpe-package-0.2/Makefile 2004-12-24 20:57:02 +00:00 +@@ -18,7 +18,7 @@ + BUILD = build + endif + +-MEMBERS = main interface packages filechooser feededit ++MEMBERS = main interface packages filesel feededit + + ifeq ($(DEBUG),yes) + CFLAGS += -g -DDEBUG +diff -urNd ../gpe-package-0.2-r0/gpe-package-0.2/filesel.c gpe-package-0.2/filesel.c +--- ../gpe-package-0.2-r0/gpe-package-0.2/filesel.c 2003-11-28 23:50:10 +00:00 ++++ gpe-package-0.2/filesel.c 2004-12-24 21:14:38 +00:00 +@@ -81,20 +81,18 @@ + } + + +-void ++/*void + ask_user_a_file (char *path, char *prompt, + void (*File_Selected) (char *filename, gpointer data), +- void (*Cancel) (gpointer data), gpointer data) ++ void (*Cancel) (gpointer data), gpointer data)*/ ++int package_choose(GtkWidget *parent, void (*File_Selected) (char *filename, gpointer data)) + { + char buf[1024]; + char *ret = getcwd (buf, 1024); + +- if (path) // this is a hack, we're all waiting a gtk_file_selection_change_directory().. (TODO) +- chdir (path); + { + GtkWidget *fileselection1 = +- gtk_file_selection_new (prompt ? prompt : +- _("Select File")); ++ gtk_file_selection_new (_("Choose packages")); + GtkWidget *ok_button1 = + GTK_FILE_SELECTION (fileselection1)->ok_button; + GtkWidget *cancel_button1 = +@@ -110,8 +108,8 @@ + chdir (buf); + s->fs = fileselection1; + s->File_Selected = File_Selected; +- s->Cancel = Cancel; +- s->data = data; ++ s->Cancel = NULL; ++ s->data = NULL; + + GTK_WINDOW (fileselection1)->type = GTK_WINDOW_TOPLEVEL; + diff --git a/recipes/gpe-package/gpe-package_0.2.bb b/recipes/gpe-package/gpe-package_0.2.bb new file mode 100644 index 0000000000..ff85a33ec0 --- /dev/null +++ b/recipes/gpe-package/gpe-package_0.2.bb @@ -0,0 +1,12 @@ +LICENSE = "GPL" +PR = "r2" +inherit gpe pkgconfig + +DESCRIPTION = "A package manager GUI for GPE" +DEPENDS = "ipkg libgpewidget" +RDEPENDS = "gpe-icons" +SECTION = "gpe" +PRIORITY = "optional" + +SRC_URI += "file://use-filesel.patch;patch=1 \ + file://nostropts.patch;patch=1" diff --git a/recipes/gpe-package/gpe-package_0.3.bb b/recipes/gpe-package/gpe-package_0.3.bb new file mode 100644 index 0000000000..1ee7a9a2ff --- /dev/null +++ b/recipes/gpe-package/gpe-package_0.3.bb @@ -0,0 +1,23 @@ +LICENSE = "GPL" +PR = "r3" +inherit gpe pkgconfig + +DESCRIPTION = "A package manager GUI for GPE" +DEPENDS = "ipkg libpcre libgpewidget" +RDEPENDS = "gpe-icons gpe-su" +SECTION = "gpe" +PRIORITY = "optional" + +SRC_URI += " file://sbin-and-no-suid-install.patch;patch=1 \ + file://search.patch;patch=1 \ + file://gpe-package" + +FILES_${PN} += " /usr/bin/gpe-package" + +CFLAGS += "-DENABLE_PCRE" +LDFLAGS += "-lpcre" + +do_install_append() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/gpe-package ${D}${bindir} +} diff --git a/recipes/gpe-package/gpe-package_0.4.bb b/recipes/gpe-package/gpe-package_0.4.bb new file mode 100644 index 0000000000..65b4ac138b --- /dev/null +++ b/recipes/gpe-package/gpe-package_0.4.bb @@ -0,0 +1,22 @@ +LICENSE = "GPL" +PR = "r0" +inherit gpe pkgconfig + +DESCRIPTION = "A package manager GUI for GPE" +DEPENDS = "ipkg libpcre libgpewidget" +RDEPENDS = "gpe-icons gpe-su" +SECTION = "gpe" +PRIORITY = "optional" + +SRC_URI += " file://sbin-and-no-suid-install.patch;patch=1 \ + file://gpe-package" + +FILES_${PN} += " /usr/bin/gpe-package" + +CFLAGS += "-DENABLE_PCRE" +LDFLAGS += "-lpcre" + +do_install_append() { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/gpe-package ${D}${bindir} +} |