summaryrefslogtreecommitdiff
path: root/packages/gpe-conf
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2005-06-30 08:19:37 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-06-30 08:19:37 +0000
commitc8e5702127e507e82e6f68a4b8c546803accea9d (patch)
tree00583491f40ecc640f2b28452af995e3a63a09d7 /packages/gpe-conf
parent87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff)
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/gpe-conf')
-rw-r--r--packages/gpe-conf/.mtn2git_empty0
-rw-r--r--packages/gpe-conf/files/.mtn2git_empty0
-rw-r--r--packages/gpe-conf/files/desktop-categories.patch10
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.20/.mtn2git_empty0
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.20/hwclock.patch30
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.20/meminfo26.patch149
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.20/misc1.patch192
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.20/ntpdate.patch148
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.20/password-if.patch442
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.21/.mtn2git_empty0
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.21/icons.patch51
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.22/.mtn2git_empty0
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.22/battery_with_no_lifetime.patch16
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.22/fix-wificonfig.patch146
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.22/gpe-conf-0.1.22-20041124.patch227
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.22/ignore_invalid_battery_values.patch16
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.22/serial_tts.patch11
-rw-r--r--packages/gpe-conf/gpe-conf-0.1.23/.mtn2git_empty0
-rw-r--r--packages/gpe-conf/gpe-conf_0.1.24.bb26
19 files changed, 1464 insertions, 0 deletions
diff --git a/packages/gpe-conf/.mtn2git_empty b/packages/gpe-conf/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-conf/.mtn2git_empty
diff --git a/packages/gpe-conf/files/.mtn2git_empty b/packages/gpe-conf/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-conf/files/.mtn2git_empty
diff --git a/packages/gpe-conf/files/desktop-categories.patch b/packages/gpe-conf/files/desktop-categories.patch
index e69de29bb2..57215aae6b 100644
--- a/packages/gpe-conf/files/desktop-categories.patch
+++ b/packages/gpe-conf/files/desktop-categories.patch
@@ -0,0 +1,10 @@
+--- gpe-conf-0.1.22/gpe-conf.desktop.in.old 2004-11-29 19:54:23.000000000 +0000
++++ gpe-conf-0.1.22/gpe-conf.desktop.in 2004-11-29 19:54:35.000000000 +0000
+@@ -5,6 +5,6 @@
+ Terminal=0
+ Type=Application
+ Icon=gpe-config.png
+-Categories=Application;SystemSettings;GPE
++Categories=Application;GPE;
+ StartupNotify=True
+ SingleInstance=True
diff --git a/packages/gpe-conf/gpe-conf-0.1.20/.mtn2git_empty b/packages/gpe-conf/gpe-conf-0.1.20/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-conf/gpe-conf-0.1.20/.mtn2git_empty
diff --git a/packages/gpe-conf/gpe-conf-0.1.20/hwclock.patch b/packages/gpe-conf/gpe-conf-0.1.20/hwclock.patch
index e69de29bb2..2dfc40f205 100644
--- a/packages/gpe-conf/gpe-conf-0.1.20/hwclock.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.20/hwclock.patch
@@ -0,0 +1,30 @@
+Index: suid.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/suid.c,v
+retrieving revision 1.52
+diff -u -r1.52 suid.c
+--- suid.c 16 Oct 2004 16:03:43 -0000 1.52
++++ suid.c 25 Oct 2004 15:00:56 -0000
+@@ -95,6 +95,7 @@
+ }
+ else // if ok, update rtc time
+ {
++ system("/sbin/hwclock --systohc");
+ system ("echo > /var/spool/at/trigger");
+ }
+ g_free(tstr);
+@@ -337,11 +338,11 @@
+ time_t t;
+ fscanf (in, "%ld", &t);
+ if (stime (&t) == -1)
+- fprintf (stderr,
+- "Error while setting the time: %d\n",
+- errno);
++ fprintf (stderr, "Error while setting the time: %d\n",
++ errno);
+ else // if ok, update rtc time
+ {
++ system("/sbin/hwclock --systohc");
+ system ("echo > /var/spool/at/trigger");
+ }
+ }
diff --git a/packages/gpe-conf/gpe-conf-0.1.20/meminfo26.patch b/packages/gpe-conf/gpe-conf-0.1.20/meminfo26.patch
index e69de29bb2..b78a48d38a 100644
--- a/packages/gpe-conf/gpe-conf-0.1.20/meminfo26.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.20/meminfo26.patch
@@ -0,0 +1,149 @@
+Index: sysinfo.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/sysinfo.c,v
+retrieving revision 1.19
+diff -u -r1.19 sysinfo.c
+--- sysinfo.c 8 Sep 2004 22:14:12 -0000 1.19
++++ sysinfo.c 25 Oct 2004 12:01:01 -0000
+@@ -160,6 +160,7 @@
+ get_device_info()
+ {
+ t_deviceinfo result;
++ struct utsname uinfo;
+ #ifdef __arm__
+ char **strv;
+ int len = 0;
+@@ -173,6 +174,8 @@
+ result.ram = 0;
+ result.flash = 0;
+
++ uname(&uinfo);
++
+ #ifdef __arm__
+ /* check mach type and model */
+ if (!access(P_IPAQ,F_OK))
+@@ -235,6 +238,7 @@
+ #endif
+ #ifdef __i386__
+ result.cpu = g_strdup(_("Intel x86 or compatible"));
++ result.model = g_strdup_printf("%s, %s", _("IBM type PC"), uinfo.machine);
+ #endif
+ #ifdef __mips__
+ result.cpu = g_strdup(_("Mips"));
+@@ -246,12 +250,13 @@
+ result.cpu = g_strdup(_("IBM Power or PowerPC"));
+ #endif
+ if (!result.model)
+- result.model = g_strdup(MACHINE);
++ result.model = g_strdup_printf("%s (%s)", uinfo.machine, MACHINE);
+ #endif
+
+ /* memory and flash size */
++
+ system_memory();
+- result.ram = meminfo.total / 1024 + 1;
++ result.ram = meminfo.total;
+ result.flash = get_flash_size();
+ return result;
+ }
+Index: storage.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/storage.c,v
+retrieving revision 1.17
+diff -u -r1.17 storage.c
+--- storage.c 13 Sep 2004 12:00:01 -0000 1.17
++++ storage.c 25 Oct 2004 12:01:01 -0000
+@@ -54,41 +54,32 @@
+ return FS_T_UNKNOWN;
+ }
+
+-/* from minisys */
+ int
+ system_memory (void)
+ {
+- u_int64_t my_mem_used, my_mem_max;
+- u_int64_t my_swap_max;
++ unsigned long mem_free, mem_total;
+
+- static int mem_delay = 0;
+ FILE *mem;
+- static u_int64_t aa, ab, ac, ad, ae, af, ag, ah;
+- /* put this in permanent storage instead of stack */
+- static char not_needed[2048];
+- if (mem_delay-- <= 0)
++ static char line[255];
++ mem = fopen ("/proc/meminfo", "r");
++ if (mem)
+ {
+- mem = fopen ("/proc/meminfo", "r");
+- fgets (not_needed, 2048, mem);
+-
+- fscanf (mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &aa, &ab, &ac,
+- &ad, &ae, &af);
+- fscanf (mem, "%*s %Ld %Ld", &ag, &ah);
++ while (fgets (line, 255, mem))
++ {
++ if (g_str_has_prefix(line, "MemTotal"))
++ sscanf(line, "%*s %lu %*s", &mem_total);
++ else if (g_str_has_prefix(line, "MemFree"))
++ {
++ sscanf(line, "%*s %lu %*s", &mem_free);
++ break;
++ }
++ }
+ fclose (mem);
+- mem_delay = 25;
+-
+- /* calculate it */
+- my_mem_max = aa; /* memory.total; */
+- my_swap_max = ag; /* swap.total; */
+-
+- my_mem_used = ah + ab - af - ae;
+-
+- meminfo.total = my_mem_max / 1024;
+- meminfo.used = my_mem_used / 1024;
+- meminfo.avail = (my_mem_max - my_mem_used) / 1024;
+- return 0;
++ meminfo.total = mem_total / 1024;
++ meminfo.used = (mem_total - mem_free) / 1024;
++ meminfo.avail = mem_free / 1024;
+ }
+- return 1;
++ return 0;
+ }
+
+
+@@ -183,13 +174,13 @@
+ /* TRANSLATORS: MB == Mega Bytes*/
+ sprintf (cnew2, "%s: <i>%4.1f</i> %s", _("Free memory"),
+ ((float) meminfo.total -
+- (float) meminfo.used) / 1024.0, _("MB"));
++ (float) meminfo.used), _("MB"));
+ gtk_label_set_markup (GTK_LABEL (meminfo.label3), cnew2);
+
+ fstr = g_strdup_printf ("%s%s %4.1f %s %s",
+ "<span foreground=\"black\">",
+ _("Total:"),
+- (float) meminfo.total / 1024.0,
++ (float) meminfo.total,
+ _("MB"), "</span>");
+ gtk_label_set_markup (GTK_LABEL (meminfo.label2), fstr);
+ g_free (fstr);
+@@ -452,7 +443,7 @@
+ (float) meminfo.total);
+ sprintf (cnew2, "%s: <i>%4.1f</i> %s", _("Free memory"),
+ ((float) meminfo.total -
+- (float) meminfo.used) / 1024.0, _("MB"));
++ (float) meminfo.used), _("MB"));
+ label1 = gtk_label_new (NULL);
+ gtk_misc_set_alignment (GTK_MISC (label1), 0.0, 0.5);
+ meminfo.label3 = label1;
+@@ -464,7 +455,7 @@
+ fstr = g_strdup_printf ("%s%s %4.1f %s %s",
+ "<span foreground=\"black\">",
+ _("Total:"),
+- (float) meminfo.total / 1024.0,
++ (float) meminfo.total,
+ _("MB"), "</span>");
+ gtk_label_set_markup (GTK_LABEL (label1), fstr);
+ g_free (fstr);
diff --git a/packages/gpe-conf/gpe-conf-0.1.20/misc1.patch b/packages/gpe-conf/gpe-conf-0.1.20/misc1.patch
index e69de29bb2..d6c7658c85 100644
--- a/packages/gpe-conf/gpe-conf-0.1.20/misc1.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.20/misc1.patch
@@ -0,0 +1,192 @@
+Index: main.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/main.c,v
+retrieving revision 1.70
+diff -u -r1.70 main.c
+--- main.c 16 Oct 2004 16:03:42 -0000 1.70
++++ main.c 26 Oct 2004 14:52:24 -0000
+@@ -125,7 +125,9 @@
+ { &Unimplemented_Build_Objects, &Unimplemented_Free_Objects, &Unimplemented_Save, &Unimplemented_Restore ,
+ "Task nameserver" ,"task_nameserver","Task for changing nameserver", PREFIX "/share/pixmaps/gpe-config-admin.png"},
+ { &Unimplemented_Build_Objects, &Unimplemented_Free_Objects, &Unimplemented_Save, &Unimplemented_Restore ,
+- "Task sound" ,"task_sound","Command line task saving/restoring sound settings.", PREFIX "/share/pixmaps/gpe-config-admin.png"}
++ "Task sound" ,"task_sound","Command line task saving/restoring sound settings.", PREFIX "/share/pixmaps/gpe-config-admin.png"},
++ { &Unimplemented_Build_Objects, &Unimplemented_Free_Objects, &Unimplemented_Save, &Unimplemented_Restore ,
++ "Task background image" ,"task_background","Only select background image.", PREFIX "/share/pixmaps/gpe-config-admin.png"}
+ };
+
+ struct gpe_icon my_icons[] = {
+@@ -235,10 +237,24 @@
+
+ void initwindow()
+ {
+- // main window
++ gint size_x, size_y;
++
++ /* screen layout detection */
++ size_x = gdk_screen_width();
++ size_y = gdk_screen_height();
++
++
++ /* main window */
+ self.w = mainw = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+- wstyle = self.w->style;
+ gtk_widget_set_usize(GTK_WIDGET(self.w),240, 310);
++
++ if ((size_x > 640) && (size_y > 480))
++ {
++ gtk_window_set_type_hint(GTK_WINDOW(self.w), GDK_WINDOW_TYPE_HINT_DIALOG);
++ gtk_window_set_default_size(GTK_WINDOW(self.w), 420, 460);
++ }
++
++ wstyle = self.w->style;
+
+ gtk_signal_connect (GTK_OBJECT(self.w), "delete-event",
+ (GtkSignalFunc) gtk_main_quit, NULL);
+@@ -337,18 +353,27 @@
+ fprintf(stderr,_("'task_sound' needs (s)ave/(r)estore as argument.\n"));
+ exit(0);
+ }
++ if (!strcmp(argv[1], "task_background"))
++ {
++ special_flag = TRUE;
++ standalone = TRUE;
++ task_change_background_image();
++ exit(0);
++ }
+ }
+
+ /* If no task? - start applet */
+ if (!handled)
+ {
+ self.cur_applet = -1;
+- self.applet = NULL; if (!standalone)
++ self.applet = NULL;
++
++ if (!standalone)
+ {
+ initwindow();
+
+ self.vbox = gtk_vbox_new(FALSE,0);
+- gtk_container_add(GTK_CONTAINER(self.w),self.vbox);
++ gtk_container_add(GTK_CONTAINER(self.w), self.vbox);
+
+ make_container();
+
+Index: network.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/network.c,v
+retrieving revision 1.38
+diff -u -r1.38 network.c
+--- network.c 16 Oct 2004 16:03:42 -0000 1.38
++++ network.c 26 Oct 2004 14:52:24 -0000
+@@ -475,7 +475,7 @@
+ GTK_RESPONSE_REJECT,
+ NULL);
+
+- gtk_window_set_default_size(GTK_WINDOW(dialog), 200, 290);
++ gtk_window_set_default_size(GTK_WINDOW(dialog), 220, 320);
+
+ btnok = gtk_dialog_add_button(GTK_DIALOG(dialog),
+ GTK_STOCK_OK, GTK_RESPONSE_OK);
+Index: theme.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/theme.c,v
+retrieving revision 1.49
+diff -u -r1.49 theme.c
+--- theme.c 22 Sep 2004 16:50:01 -0000 1.49
++++ theme.c 26 Oct 2004 14:52:28 -0000
+@@ -128,9 +128,57 @@
+ /* prefer xst */
+ if (!access(CMD_XST,X_OK))
+ use_xst = TRUE;
+- else
+- if (!access(CMD_GCONF,X_OK))
+- use_gconf = TRUE;
++ /* to be extended in future */
++}
++
++void
++task_change_background_image(void)
++{
++ GtkWidget *filesel, *feedbackdlg;
++
++ Theme_Build_Objects();
++ filesel = gtk_file_selection_new(_("Choose backgound image"));
++ gtk_file_selection_set_select_multiple(GTK_FILE_SELECTION(filesel), FALSE);
++
++ if (gtk_dialog_run(GTK_DIALOG(filesel)) == GTK_RESPONSE_OK)
++ {
++ int ec = 0;
++ const gchar *file =
++ gtk_file_selection_get_filename (GTK_FILE_SELECTION(filesel));
++
++ gtk_widget_hide(filesel);
++ ec = access(file, R_OK);
++ if (ec)
++ feedbackdlg = gtk_message_dialog_new(GTK_WINDOW(filesel),
++ GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
++ _("You are not allowed to read this file, choose another."));
++ else
++ {
++ gchar *confstr = NULL;
++ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.rbImgCent)))
++ confstr = g_strdup_printf("img-centered:%s", file);
++ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.rbImgStr)))
++ confstr = g_strdup_printf("img-stretched:%s", file);
++ else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.rbImgTiled)))
++ confstr = g_strdup_printf("img-tiled:%s", file);
++ if (confstr != NULL)
++ {
++ gchar *p = g_strdup_printf (CMD_XST " write %s%s str '%s'",
++ KEY_MATCHBOX, "Background", confstr);
++ system(p);
++ g_free(p);
++ g_free(confstr);
++ }
++
++ feedbackdlg = gtk_message_dialog_new(GTK_WINDOW(filesel),
++ GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
++ "%s\n%s",_("Succesfully changed background image."),
++ _("Use \"Look and Feel\" setup tool to change details."));
++ }
++ gtk_dialog_run(GTK_DIALOG(feedbackdlg));
++ gtk_widget_destroy(feedbackdlg);
++ }
++ gtk_widget_destroy(filesel);
+ }
+
+ gboolean
+Index: theme.h
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/theme.h,v
+retrieving revision 1.5
+diff -u -r1.5 theme.h
+--- theme.h 28 Feb 2003 20:58:45 -0000 1.5
++++ theme.h 26 Oct 2004 14:52:28 -0000
+@@ -4,8 +4,9 @@
+ GtkWidget *Theme_Build_Objects();
+ void Theme_Save();
+ void Theme_Restore();
++void task_change_background_image(void);
+
+-// definitions taken from mbdesktop.h
++/* definitions taken from mbdesktop.h */
+ enum {
+ BG_SOLID = 1,
+ BG_TILED_PXM,
+Index: suid.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/suid.c,v
+retrieving revision 1.53
+diff -u -r1.53 suid.c
+--- suid.c 25 Oct 2004 16:19:42 -0000 1.53
++++ suid.c 26 Oct 2004 14:52:28 -0000
+@@ -376,6 +376,7 @@
+ }
+ else if (strcmp (cmd, "XCAL") == 0) // runs screen calibration tool
+ {
++ fscanf (in, "%100s", arg2);
+ system ("/usr/bin/xtscal");
+ }
+ else if (strcmp (cmd, "STZO") == 0) // changes the timezone setting
diff --git a/packages/gpe-conf/gpe-conf-0.1.20/ntpdate.patch b/packages/gpe-conf/gpe-conf-0.1.20/ntpdate.patch
index e69de29bb2..2a9b3098ff 100644
--- a/packages/gpe-conf/gpe-conf-0.1.20/ntpdate.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.20/ntpdate.patch
@@ -0,0 +1,148 @@
+Index: suid.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/suid.c,v
+retrieving revision 1.54
+diff -u -r1.54 suid.c
+--- suid.c 26 Oct 2004 15:04:22 -0000 1.54
++++ suid.c 28 Oct 2004 20:20:23 -0000
+@@ -88,17 +88,25 @@
+ void
+ update_time_from_net (const gchar * server)
+ {
++
++ if (setvbuf(nsreturn,NULL,_IONBF,0) != 0)
++ fprintf(stderr,"gpe-conf: error setting buffer size!");
++
+ char *tstr = g_strdup_printf ("ntpdate -b %s", server);
+ if (system(tstr))
+ {
+ fprintf (stderr, "failed to execute ntpdate\n");
++ fprintf(nsreturn,"<failed>\n");
+ }
+- else // if ok, update rtc time
++ else /* if ok, update rtc time */
+ {
++ fprintf(nsreturn,"<success>\n");
+ system("/sbin/hwclock --systohc");
+ system ("echo > /var/spool/at/trigger");
+ }
+ g_free(tstr);
++ fflush(nsreturn);
++ fsync(nsreturnfd);
+ }
+
+
+Index: network.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/network.c,v
+retrieving revision 1.39
+diff -u -r1.39 network.c
+--- network.c 26 Oct 2004 15:04:22 -0000 1.39
++++ network.c 28 Oct 2004 20:20:23 -0000
+@@ -1416,7 +1416,9 @@
+ if (entry)
+ {
+ newval = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1);
+- suid_exec ("SDNS", newval);
++ if (strlen(newval))
++ suid_exec ("SDNS", newval);
++ g_free(newval);
+ }
+ }
+
+Index: timeanddate.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/timeanddate.c,v
+retrieving revision 1.37
+diff -u -r1.37 timeanddate.c
+--- timeanddate.c 23 Aug 2004 22:33:01 -0000 1.37
++++ timeanddate.c 28 Oct 2004 20:20:23 -0000
+@@ -17,18 +17,20 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <dirent.h>
+-#include <pwd.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+-#include <signal.h>
+ #include <time.h>
+ #include <libintl.h>
++#include <time.h>
++#include <ctype.h>
++
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/poll.h>
++
++#include <X11/Xlib.h>
+ #include <gtk/gtk.h>
+-#include <time.h>
+-#include <ctype.h>
++#include <gdk/gdkx.h>
+
+ #include "applets.h"
+ #include "timeanddate.h"
+@@ -39,6 +41,7 @@
+ #include <gpe/errorbox.h>
+ #include <gpe/gtkdatecombo.h>
+ #include <gpe/gpetimesel.h>
++#include <gpe/infoprint.h>
+
+
+ /* --- local types and constants --- */
+@@ -402,23 +405,48 @@
+
+ gboolean refresh_time()
+ {
++ static char str[256];
++ struct pollfd pfd[1];
++ gboolean ret = FALSE;
++ Display *dpy = GDK_DISPLAY();
++
+ Time_Restore();
++ memset(str, 0, 256);
++
++ pfd[0].fd = suidinfd;
++ pfd[0].events = (POLLIN | POLLRDNORM | POLLRDBAND | POLLPRI);
++ while (poll(pfd, 1, 0))
++ {
++ if (fgets (str, 255, suidin))
++ {
++ if (strstr(str, "<success>"))
++ gpe_popup_infoprint (dpy,
++ _("Time adjusted from network."));
++ else
++ gpe_error_box(_("Adjusting time from network failed."));
++
++ }
++ ret = TRUE;
++ }
++
+ trc--;
+- if (!trc)
++ if (!trc)
++ ret = TRUE;
++ if (ret)
+ {
+- gtk_widget_set_sensitive(self.internet,TRUE);
+- gtk_timeout_remove(tid);
++ gtk_widget_set_sensitive(self.internet, TRUE);
++ return FALSE;
+ }
+ system (SCREENSAVER_RESET_CMD);
+- return (trc ? TRUE : FALSE);
++ return (TRUE);
+ }
+
+ void GetInternetTime()
+ {
+ gtk_widget_set_sensitive(self.internet,FALSE);
+ suid_exec("NTPD",gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (self.ntpserver)->entry)));
+- trc = 10;
+- tid = gtk_timeout_add(500,refresh_time,NULL);
++ trc = 60;
++ tid = gtk_timeout_add(500, refresh_time, NULL);
+ }
+
+
diff --git a/packages/gpe-conf/gpe-conf-0.1.20/password-if.patch b/packages/gpe-conf/gpe-conf-0.1.20/password-if.patch
index e69de29bb2..1e1b578cd3 100644
--- a/packages/gpe-conf/gpe-conf-0.1.20/password-if.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.20/password-if.patch
@@ -0,0 +1,442 @@
+Index: cfgfile.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/cfgfile.c,v
+retrieving revision 1.13
+diff -u -r1.13 cfgfile.c
+--- cfgfile.c 29 Aug 2004 13:20:25 -0000 1.13
++++ cfgfile.c 16 Oct 2004 15:50:30 -0000
+@@ -436,26 +436,28 @@
+ iflen = l;
+
+ fd = fopen(_PATH_PROCNET_WIRELESS, "r");
+- fgets(buffer, 256, fd); // chuck first two lines;
+- fgets(buffer, 256, fd);
+- while (!feof(fd)) {
+- if (fgets(buffer, 256, fd) == NULL)
+- break;
+- name = buffer;
+- sep = strrchr(buffer, ':');
+- if (sep) *sep = 0;
+- while(*name == ' ') name++;
+-
+- for (i = 0; i < iflen; i++)
+- {
+- if (!strcmp (name, iflist[i].name))
++ if (fd)
++ {
++ fgets(buffer, 256, fd); // chuck first two lines;
++ fgets(buffer, 256, fd);
++ while (!feof(fd)) {
++ if (fgets(buffer, 256, fd) == NULL)
++ break;
++ name = buffer;
++ sep = strrchr(buffer, ':');
++ if (sep) *sep = 0;
++ while(*name == ' ') name++;
++
++ for (i = 0; i < iflen; i++)
+ {
+- iflist[i].iswireless = TRUE;
++ if (!strcmp (name, iflist[i].name))
++ {
++ iflist[i].iswireless = TRUE;
++ }
+ }
+ }
++ fclose(fd);
+ }
+- fclose(fd);
+-
+ return l;
+ }
+
+Index: main.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/main.c,v
+retrieving revision 1.69
+diff -u -r1.69 main.c
+--- main.c 10 Oct 2004 21:48:39 -0000 1.69
++++ main.c 16 Oct 2004 15:50:30 -0000
+@@ -188,6 +188,9 @@
+ self.cur_applet = i;
+
+ self.applet = applets[i].Build_Objects(useronly);
++
++ if (self.applet)
++ {
+ gtk_container_add(GTK_CONTAINER(self.viewport),self.applet);
+
+ gtk_window_set_title(GTK_WINDOW(self.w), applets[i].frame_label);
+@@ -220,6 +223,7 @@
+ }
+ else
+ gtk_widget_hide(self.cancel);
++ }
+ }
+
+
+@@ -289,9 +293,11 @@
+ void main_one(int argc, char **argv,int applet)
+ {
+ int handled = FALSE;
+- gboolean user_only_setup = FALSE; /* Don't change to suid mode. */
++ gboolean special_flag = FALSE; /* Don't change to suid mode or similar. */
++ gboolean standalone = FALSE; /* applet creates its own window */
+
+ self.alone_applet = 1;
++ self.applet = NULL;
+
+ my_icons[count_icons - 1].filename = applets[applet].icon_file;
+
+@@ -315,7 +321,12 @@
+ }
+ if (!strcmp(argv[2],"user_only"))
+ {
+- user_only_setup = TRUE;
++ special_flag = TRUE;
++ }
++ if (!strcmp(argv[2],"password"))
++ {
++ special_flag = TRUE;
++ standalone = TRUE;
+ }
+ if (!strcmp(argv[1],"task_sound"))
+ {
+@@ -331,23 +342,23 @@
+ /* If no task? - start applet */
+ if (!handled)
+ {
+- initwindow();
+-
+- self.vbox = gtk_vbox_new(FALSE,0);
+- gtk_container_add(GTK_CONTAINER(self.w),self.vbox);
+-
+ self.cur_applet = -1;
+- self.applet = NULL;
+-
+- make_container();
+-
+- gpe_set_window_icon(self.w, "icon");
+- gtk_widget_show_all(self.w);
+-
+- gtk_widget_show(self.w);
+-
++ self.applet = NULL; if (!standalone)
++ {
++ initwindow();
++
++ self.vbox = gtk_vbox_new(FALSE,0);
++ gtk_container_add(GTK_CONTAINER(self.w),self.vbox);
++
++ make_container();
++
++ gpe_set_window_icon(self.w, "icon");
++ gtk_widget_show_all(self.w);
++
++ gtk_widget_show(self.w);
++ }
+
+- item_select(user_only_setup, (gpointer)applet);
++ item_select(special_flag, (gpointer)applet);
+ gtk_main();
+ gtk_exit(0);
+ }
+Index: network.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/network.c,v
+retrieving revision 1.37
+diff -u -r1.37 network.c
+--- network.c 8 Sep 2004 22:14:12 -0000 1.37
++++ network.c 16 Oct 2004 15:50:30 -0000
+@@ -123,9 +123,34 @@
+ free (buffer);
+ }
+
++void
++copy_new_interfaces(void)
++{
++ struct interface *ife;
++ struct interface *int_list;
++
++ int_list = if_getlist ();
++
++ system_printf ("/bin/cp %s %s", NET_NEWFILE, NET_CONFIGFILE);
++ system_printf ("chmod 0644 %s", NET_CONFIGFILE);
++ system_printf ("/bin/rm -f %s", NET_NEWFILE);
++
++ for (ife = int_list; ife; ife = ife->next)
++ {
++ if ((ife->flags & IFF_UP) && !(ife->flags & IFF_LOOPBACK))
++ {
++ gchar *cmd = g_strdup_printf("/sbin/ifdown %s", ife->name);
++ system(cmd);
++ g_free(cmd);
++ cmd = g_strdup_printf("/sbin/ifup %s", ife->name);
++ system(cmd);
++ g_free(cmd);
++ }
++ }
++}
+
+ static GList *
+-get_unconfigured_interfaces ()
++get_unconfigured_interfaces (void)
+ {
+ #define num_suggestions 3
+
+@@ -139,34 +164,34 @@
+ gchar suggestions[num_suggestions][6] = {"eth0", "wlan0", "bnep0"};
+
+ fd = fopen(_PATH_PROCNET_DEV, "r");
+- fgets(buffer, 256, fd); // chuck first two lines;
+- fgets(buffer, 256, fd);
+- while (!feof(fd)) {
+- if (fgets(buffer, 256, fd) == NULL)
+- break;
+- name = buffer;
+- sep = strrchr(buffer, ':');
+- if (sep) *sep = 0;
+- while(*name == ' ') name++;
+-
+- found = FALSE;
+- for (i = 0; i < iflen; i++)
+- {
+- if (!strcmp (name, iflist[i].name))
+- {
+- found = TRUE;
++ if (fd)
++ {
++ fgets(buffer, 256, fd); // chuck first two lines;
++ fgets(buffer, 256, fd);
++ while (!feof(fd)) {
++ if (fgets(buffer, 256, fd) == NULL)
+ break;
++ name = buffer;
++ sep = strrchr(buffer, ':');
++ if (sep) *sep = 0;
++ while(*name == ' ') name++;
++
++ found = FALSE;
++ for (i = 0; i < iflen; i++)
++ {
++ if (!strcmp (name, iflist[i].name))
++ {
++ found = TRUE;
++ break;
++ }
++ }
++ if (!found)
++ {
++ result = g_list_append (result, g_strdup (name));
+ }
+ }
+- if (!found)
+- {
+- result = g_list_append (result, g_strdup (name));
+- }
+-
+-
++ fclose(fd);
+ }
+- fclose(fd);
+-
+ for (j = 0; j < num_suggestions; j++)
+ {
+ found = FALSE;
+Index: suid.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/suid.c,v
+retrieving revision 1.51
+diff -u -r1.51 suid.c
+--- suid.c 12 Oct 2004 21:07:02 -0000 1.51
++++ suid.c 16 Oct 2004 15:50:30 -0000
+@@ -45,6 +45,7 @@
+ #include "cardinfo.h"
+ #include "timeanddate.h"
+ #include "users/passwd.h"
++#include "network.h"
+
+ static GtkWidget *passwd_entry;
+ static int retv;
+@@ -359,13 +360,7 @@
+ else if (strcmp (cmd, "CPIF") == 0) // installs a new interfaces file
+ {
+ fscanf (in, "%100s", arg2); // to forget soon...
+- strcpy (arg1, "/tmp/interfaces");
+- strcpy (arg2, "/etc/network/interfaces");
+- system ("/etc/init.d/networking stop");
+- system_printf ("/bin/cp %s %s", arg1, arg2);
+- system_printf ("chmod 0644 %s", arg2);
+- system_printf ("/bin/rm -f %s", arg1);
+- system ("/etc/init.d/networking start");
++ copy_new_interfaces();
+ }
+ else if (strcmp (cmd, "CPOI") == 0) // rewrites owner information data
+ {
+Index: network.h
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/network.h,v
+retrieving revision 1.4
+diff -u -r1.4 network.h
+--- network.h 25 Aug 2004 10:16:31 -0000 1.4
++++ network.h 16 Oct 2004 15:50:30 -0000
+@@ -1,3 +1,6 @@
++#ifndef _GPE_CONF_NETWORK_H
++#define _GPE_CONF_NETWORK_H
++
+ #define _PATH_PROCNET_DEV "/proc/net/dev"
+ #define _PATH_PROCNET_WIRELESS "/proc/net/wireless"
+
+@@ -5,3 +8,6 @@
+ void Network_Save();
+ void Network_Free_Objects();
+ void Network_Restore();
++void copy_new_interfaces(void);
++
++#endif
+Index: users.h
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/users.h,v
+retrieving revision 1.2
+diff -u -r1.2 users.h
+--- users.h 7 Sep 2002 22:34:06 -0000 1.2
++++ users.h 16 Oct 2004 15:50:30 -0000
+@@ -1,4 +1,4 @@
+-GtkWidget *Users_Build_Objects();
++GtkWidget *Users_Build_Objects(gboolean password_only);
+ void Users_Save();
+ void Users_Free_Objects();
+ void Users_Restore();
+Index: users/interface.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/users/interface.c,v
+retrieving revision 1.22
+diff -u -r1.22 interface.c
+--- users/interface.c 8 Sep 2004 22:14:12 -0000 1.22
++++ users/interface.c 16 Oct 2004 15:50:30 -0000
+@@ -202,15 +202,15 @@
+ }
+
+ GtkWidget*
+-Users_Build_Objects (void)
++Users_Build_Objects (gboolean password_only)
+ {
+- GtkWidget *vbox1;
+- GtkWidget *pw;
+- GtkWidget *toolbar;
+- GtkWidget *button1;
+- GtkWidget *button2;
+- GtkWidget *button3;
+- GtkWidget *button4;
++ GtkWidget *vbox1 = NULL;
++ GtkWidget *pw = NULL;
++ GtkWidget *toolbar = NULL;
++ GtkWidget *button1 = NULL;
++ GtkWidget *button2 = NULL;
++ GtkWidget *button3 = NULL;
++ GtkWidget *button4 = NULL;
+
+ listTitles[0] = _("User Name");
+ listTitles[1] = _("User Info");
+@@ -218,6 +218,8 @@
+
+ InitSpacings ();
+
++ if (!password_only)
++ {
+ vbox1 = gtk_vbox_new (FALSE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox1), border_width);
+
+@@ -254,28 +256,40 @@
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pw),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_container_add (GTK_CONTAINER (pw), user_list);
++ }
+
+ InitPwList();
+- ReloadList();
++ if (!password_only)
++ {
++ ReloadList();
+
+- gtk_widget_show (user_list);
+-
+- gtk_box_pack_start (GTK_BOX (vbox1), pw, TRUE, TRUE, 0);
++ gtk_widget_show (user_list);
++ gtk_box_pack_start (GTK_BOX (vbox1), pw, TRUE, TRUE, 0);
+
+- /* check if we have the permissions to change users */
+- if (suid_exec("CHEK",""))
+- {
+- gtk_widget_set_sensitive(user_list, FALSE);
+- gtk_widget_set_sensitive(button1, FALSE);
+- gtk_widget_set_sensitive(button2, FALSE);
+- gtk_widget_set_sensitive(button3, FALSE);
+- have_access = FALSE;
+- }
++ /* check if we have the permissions to change users */
++ if (suid_exec("CHEK",""))
++ {
++ gtk_widget_set_sensitive(user_list, FALSE);
++ gtk_widget_set_sensitive(button1, FALSE);
++ gtk_widget_set_sensitive(button2, FALSE);
++ gtk_widget_set_sensitive(button3, FALSE);
++ have_access = FALSE;
++ }
++ else
++ {
++ have_access = TRUE;
++ }
++ }
+ else
+- {
+- have_access = TRUE;
+- }
+- return vbox1;
++ have_access = FALSE;
++
++ if (password_only)
++ {
++ gtk_widget_show(create_passwindow(pwroot, NULL));
++ return NULL;
++ }
++ else
++ return vbox1;
+ }
+
+ GtkWidget*
+@@ -440,7 +454,7 @@
+ }
+
+ GtkWidget*
+-create_passwindow (pwlist *init,GtkWidget *parent)
++create_passwindow (pwlist *init, GtkWidget *parent)
+ {
+ GtkWidget *passwindow;
+ GtkWidget *vbox3;
+@@ -463,9 +477,8 @@
+ gtk_window_set_transient_for (GTK_WINDOW(passwindow), GTK_WINDOW(parent));
+ gtk_window_set_title (GTK_WINDOW (passwindow), _("Change Password"));
+ gtk_window_set_modal (GTK_WINDOW (passwindow), TRUE);
+-
+ vbox3 = GTK_DIALOG (passwindow)->vbox;
+-
++
+ table3 = gtk_table_new (3, 3, FALSE);
+
+ gtk_widget_show (table3);
+@@ -561,9 +574,12 @@
+ GTK_SIGNAL_FUNC (users_on_changepasswd_clicked),
+ (gpointer)self);
+
+- /* in case of destruction by close (X) button */
+- gtk_signal_connect (GTK_OBJECT(passwindow) , "destroy",
++ if (parent)
++ gtk_signal_connect (GTK_OBJECT(passwindow) , "destroy",
+ (GtkSignalFunc) freedata, (gpointer)self);
++ else
++ gtk_signal_connect (GTK_OBJECT(passwindow) , "destroy",
++ gtk_main_quit, NULL);
+
+ return passwindow;
+ }
diff --git a/packages/gpe-conf/gpe-conf-0.1.21/.mtn2git_empty b/packages/gpe-conf/gpe-conf-0.1.21/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-conf/gpe-conf-0.1.21/.mtn2git_empty
diff --git a/packages/gpe-conf/gpe-conf-0.1.21/icons.patch b/packages/gpe-conf/gpe-conf-0.1.21/icons.patch
index e69de29bb2..0b688c2a3a 100644
--- a/packages/gpe-conf/gpe-conf-0.1.21/icons.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.21/icons.patch
@@ -0,0 +1,51 @@
+Index: sound/sound.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/sound/sound.c,v
+retrieving revision 1.9
+diff -u -r1.9 sound.c
+--- sound/sound.c 12 Oct 2004 21:07:03 -0000 1.9
++++ sound/sound.c 1 Nov 2004 13:31:37 -0000
+@@ -14,7 +14,6 @@
+
+ /*
+ ToDo
+- - move mixer icons to gpe-icons
+ - Filtering for different platforms.
+ - Additional settings.
+ - Update settings from system.
+@@ -39,22 +38,21 @@
+ #include "soundctrl.h"
+ #define MAX_CHANNELS 24
+
+-#warning needs gpe-mixer
+ struct gpe_icon mixer_icons[] =
+ {
+- { "line" , PREFIX "/share/gpe-mixer/line.png"},
+- { "line1" , PREFIX "/share/gpe-mixer/line.png"},
+- { "cd" , PREFIX "/share/gpe-mixer/cd.png"},
+- { "bass" , PREFIX "/share/gpe-mixer/bass.png"},
+- { "vol" , PREFIX "/share/gpe-mixer/volume.png"},
+- { "treble" , PREFIX "/share/gpe-mixer/treble.png"},
+- { "synth" , PREFIX "/share/gpe-mixer/synth.png"},
+- { "speaker" , PREFIX "/share/gpe-mixer/speaker.png"},
+- { "phout" , PREFIX "/share/gpe-mixer/speaker.png"},
+- { "pcm" , PREFIX "/share/gpe-mixer/pcm.png"},
+- { "pcm2" , PREFIX "/share/gpe-mixer/pcm.png"},
+- { "mic" , PREFIX "/share/gpe-mixer/mic.png"},
+- { "unkn" , PREFIX "/share/gpe-mixer/unkn.png"},
++ { "line" , "line"},
++ { "line1" , "line"},
++ { "cd" , "cd"},
++ { "bass" , "bass"},
++ { "vol" , "volume"},
++ { "treble" , "treble"},
++ { "synth" , "synth"},
++ { "speaker" , "speaker"},
++ { "phout" , "speaker"},
++ { "pcm" , "pcm"},
++ { "pcm2" , "pcm"},
++ { "mic" , "mic"},
++ { "unkn" , "unkn"},
+ { "alarm" , "bell" },
+ {NULL, NULL}
+ };
diff --git a/packages/gpe-conf/gpe-conf-0.1.22/.mtn2git_empty b/packages/gpe-conf/gpe-conf-0.1.22/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-conf/gpe-conf-0.1.22/.mtn2git_empty
diff --git a/packages/gpe-conf/gpe-conf-0.1.22/battery_with_no_lifetime.patch b/packages/gpe-conf/gpe-conf-0.1.22/battery_with_no_lifetime.patch
index e69de29bb2..099dd55b2f 100644
--- a/packages/gpe-conf/gpe-conf-0.1.22/battery_with_no_lifetime.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.22/battery_with_no_lifetime.patch
@@ -0,0 +1,16 @@
+Index: gpe-conf-0.1.22/battery.c
+===================================================================
+--- gpe-conf-0.1.22.orig/battery.c 2004-10-25 19:28:49.000000000 +0100
++++ gpe-conf-0.1.22/battery.c 2005-02-17 13:04:41.000000000 +0000
+@@ -346,8 +346,10 @@
+
+ if (ac_connected)
+ sprintf(tmp,"%s",_("AC connected"));
+- else
++ else if (remaining > 0)
+ sprintf(tmp,"%s: %d min.",_("Lifetime"), remaining);
++ else
++ sprintf(tmp,"");
+ gtk_label_set_text(GTK_LABEL(batt_int.llifetime),tmp);
+ }
+ }
diff --git a/packages/gpe-conf/gpe-conf-0.1.22/fix-wificonfig.patch b/packages/gpe-conf/gpe-conf-0.1.22/fix-wificonfig.patch
index e69de29bb2..9df234dc15 100644
--- a/packages/gpe-conf/gpe-conf-0.1.22/fix-wificonfig.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.22/fix-wificonfig.patch
@@ -0,0 +1,146 @@
+Index: cfgfile.h
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/cfgfile.h,v
+retrieving revision 1.10
+diff -u -r1.10 cfgfile.h
+--- cfgfile.h 24 Nov 2004 15:43:10 -0000 1.10
++++ cfgfile.h 29 Nov 2004 16:21:47 -0000
+@@ -58,15 +58,16 @@
+ t_wifimode mode;
+ gint iswireless;
+
+- gint isstatic;
+- gint isinet;
+- gint isloop;
+- gint isdhcp;
+- gint isppp;
++ gboolean isstatic;
++ gboolean isinet;
++ gboolean isloop;
++ gboolean isdhcp;
++ gboolean isppp;
+ gint firstline;
+ gint lastline;
+ gint status;
+ gboolean ispresent;
++ gint uipos;
+ } NWInterface_t;
+
+ gint set_file_open(gint openon);
+Index: network.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/network.c,v
+retrieving revision 1.43
+diff -u -r1.43 network.c
+--- network.c 24 Nov 2004 15:43:10 -0000 1.43
++++ network.c 29 Nov 2004 16:21:48 -0000
+@@ -65,7 +65,6 @@
+ GtkWidget *create_nwdhcp_widgets (NWInterface_t iface);
+ GtkWidget *create_nwppp_widgets (NWInterface_t iface);
+
+-static guint not_added = 0;
+ static gchar *cfgfile;
+ static gboolean have_access = FALSE;
+ static GtkTooltips *tooltips;
+@@ -300,12 +299,15 @@
+ if (ctable)
+ {
+ label = gtk_label_new (iflist[i].name);
+- gtk_notebook_append_page (GTK_NOTEBOOK (table),
+- GTK_WIDGET (ctable), label);
++ iflist[i].uipos = gtk_notebook_append_page (GTK_NOTEBOOK (table),
++ GTK_WIDGET (ctable),
++ label);
+ gtk_widget_show_all (table);
++ g_object_set_data(G_OBJECT(ctable), "ifnr", (gpointer)i);
+ }
+ else
+- not_added++;
++ iflist[i].uipos = -1;
++
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (table), -1);
+ }
+ }
+@@ -335,11 +337,13 @@
+ void
+ changed_nwtype (GtkToggleButton * togglebutton, gpointer user_data)
+ {
+- GtkWidget *ctable, *label;
++ GtkWidget *ctable, *label, *page;
+ gchar wname[100];
+- gint row =
+- gtk_notebook_get_current_page (GTK_NOTEBOOK (table)) +
+- not_added - PAGE_OFFSET;
++ gint row;
++
++ page = gtk_notebook_get_nth_page(GTK_NOTEBOOK (table),
++ gtk_notebook_get_current_page (GTK_NOTEBOOK (table)));
++ row = (gint)g_object_get_data(G_OBJECT(page), "ifnr");
+
+ if (!gtk_toggle_button_get_active (togglebutton))
+ return; // just run once
+@@ -385,10 +389,11 @@
+ (GTK_NOTEBOOK (table)));
+ gtk_notebook_insert_page (GTK_NOTEBOOK (table),
+ GTK_WIDGET (ctable), label,
+- row - not_added + PAGE_OFFSET);
++ iflist[row].uipos);
+ gtk_widget_show_all (table);
+ gtk_notebook_set_page (GTK_NOTEBOOK (table),
+- row - not_added + PAGE_OFFSET);
++ iflist[row].uipos);
++ g_object_set_data(G_OBJECT(ctable), "ifnr", (gpointer)row);
+ }
+ }
+
+@@ -922,12 +927,14 @@
+ void
+ changed_wifi (GtkToggleButton * togglebutton, gpointer user_data)
+ {
+- GtkWidget *widget;
++ GtkWidget *widget, *page;
+ gchar wname[100];
+- gint ifnr = gtk_notebook_get_current_page (GTK_NOTEBOOK (table)) +
+- not_added - PAGE_OFFSET;
++ gint ifnr;
++
++ page = gtk_notebook_get_nth_page(GTK_NOTEBOOK (table),
++ gtk_notebook_get_current_page (GTK_NOTEBOOK (table)));
++ ifnr = (gint)g_object_get_data(G_OBJECT(page), "ifnr");
+
+- // look who called us...
+ strcpy (wname, "wificonfig");
+ strcat (wname, iflist[ifnr].name);
+
+@@ -941,10 +948,12 @@
+ void
+ clicked_wificonfig (GtkButton *button, gpointer user_data)
+ {
++ GtkWidget *page;
+ gint ifnr;
+
+- ifnr = gtk_notebook_get_current_page (GTK_NOTEBOOK (table)) +
+- not_added - PAGE_OFFSET;
++ page = gtk_notebook_get_nth_page(GTK_NOTEBOOK (table),
++ gtk_notebook_get_current_page (GTK_NOTEBOOK (table)));
++ ifnr = (gint)g_object_get_data(G_OBJECT(page), "ifnr");
+
+ show_wificonfig(gtk_widget_get_toplevel(GTK_WIDGET(button)), &iflist[ifnr]);
+ }
+@@ -1662,11 +1671,13 @@
+ if (!have_access)
+ gtk_widget_set_sensitive (ctable, FALSE);
+ label = gtk_label_new (iflist[row].name);
+- gtk_notebook_append_page (GTK_NOTEBOOK (table),
+- GTK_WIDGET (ctable), label);
++ iflist[row].uipos = gtk_notebook_append_page (GTK_NOTEBOOK (table),
++ GTK_WIDGET (ctable),
++ label);
++ g_object_set_data(G_OBJECT(ctable), "ifnr", (gpointer)row);
+ }
+ else
+- not_added++; // we'll run into trouble if we have a loopback device between other in interfaces
++ iflist[row].uipos = -1;
+ }
+ return tablebox;
+ }
diff --git a/packages/gpe-conf/gpe-conf-0.1.22/gpe-conf-0.1.22-20041124.patch b/packages/gpe-conf/gpe-conf-0.1.22/gpe-conf-0.1.22-20041124.patch
index e69de29bb2..daa0be2888 100644
--- a/packages/gpe-conf/gpe-conf-0.1.22/gpe-conf-0.1.22-20041124.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.22/gpe-conf-0.1.22-20041124.patch
@@ -0,0 +1,227 @@
+? rgpe-conf-0.1.22-20041124.patch
+Index: ChangeLog
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/ChangeLog,v
+retrieving revision 1.268
+retrieving revision 1.270
+diff -u -r1.268 -r1.270
+--- ChangeLog 23 Nov 2004 21:34:38 -0000 1.268
++++ ChangeLog 24 Nov 2004 15:44:10 -0000 1.270
+@@ -1,5 +1,15 @@
+ 2004-11-23 Florian Boor <florian.boor@kernelconcepts.de>
+
++ * cfgfile.*, network.c: Hide all network interfaces that are not available.
++
++2004-11-19 Florian Boor <florian.boor@kernelconcepts.de>
++
++ * users/interface.*, users/callbacks.c: Prevent user from deleting last
++ user account.
++ * timeanddate.c: Make some entries activate OK button.
++
++2004-11-23 Florian Boor <florian.boor@kernelconcepts.de>
++
+ * Released Version 0.1.22
+
+ 2004-11-17 Florian Boor <florian.boor@kernelconcepts.de>
+Index: cfgfile.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/cfgfile.c,v
+retrieving revision 1.14
+retrieving revision 1.15
+diff -u -r1.14 -r1.15
+--- cfgfile.c 16 Oct 2004 16:03:42 -0000 1.14
++++ cfgfile.c 24 Nov 2004 15:43:10 -0000 1.15
+@@ -19,9 +19,12 @@
+ #include <stdlib.h>
+ #include <libintl.h>
+ #include <gpe/errorbox.h>
++#include <net/if.h>
++#include <sys/socket.h>
+
+ #include "cfgfile.h"
+ #include "network.h"
++#include "tools/interface.h"
+
+ #define _(x) gettext(x)
+
+@@ -280,6 +283,22 @@
+ }
+ }
+
++static gboolean
++is_present_interface(gchar *ifname)
++{
++ struct interface *int_list, *ife;
++
++ int_list = if_getlist ();
++ g_strstrip(ifname);
++
++ for (ife = int_list; ife; ife = ife->next)
++ {
++ if (g_str_has_prefix(ifname, ife->name))
++ return TRUE;
++ }
++ return FALSE;
++}
++
+ gint get_scheme_list()
+ {
+ gchar ifname[255] = {0};
+@@ -339,6 +358,7 @@
+ memset(&iflist[l-1],'\0',sizeof(NWInterface_t));
+
+ strcpy(iflist[l-1].name,ifname);
++ iflist[l-1].ispresent = is_present_interface(ifname);
+
+ iflist[l-1].isstatic = FALSE;
+ iflist[l-1].isinet = FALSE;
+Index: cfgfile.h
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/cfgfile.h,v
+retrieving revision 1.9
+retrieving revision 1.10
+diff -u -r1.9 -r1.10
+--- cfgfile.h 25 Aug 2004 10:17:31 -0000 1.9
++++ cfgfile.h 24 Nov 2004 15:43:10 -0000 1.10
+@@ -66,6 +66,7 @@
+ gint firstline;
+ gint lastline;
+ gint status;
++ gboolean ispresent;
+ } NWInterface_t;
+
+ gint set_file_open(gint openon);
+Index: network.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/network.c,v
+retrieving revision 1.42
+retrieving revision 1.43
+diff -u -r1.42 -r1.43
+--- network.c 17 Nov 2004 18:25:59 -0000 1.42
++++ network.c 24 Nov 2004 15:43:10 -0000 1.43
+@@ -1648,12 +1648,15 @@
+ for (row = 0; row < num_int; row++)
+ {
+ ctable = NULL;
+- if (iflist[row].isstatic)
+- ctable = create_nwstatic_widgets (iflist[row]);
+- if (iflist[row].isdhcp)
+- ctable = create_nwdhcp_widgets (iflist[row]);
+- if (iflist[row].isppp)
+- ctable = create_nwppp_widgets (iflist[row]);
++ if (iflist[row].ispresent)
++ {
++ if (iflist[row].isstatic)
++ ctable = create_nwstatic_widgets (iflist[row]);
++ if (iflist[row].isdhcp)
++ ctable = create_nwdhcp_widgets (iflist[row]);
++ if (iflist[row].isppp)
++ ctable = create_nwppp_widgets (iflist[row]);
++ }
+ if (ctable)
+ {
+ if (!have_access)
+Index: timeanddate.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/timeanddate.c,v
+retrieving revision 1.39
+retrieving revision 1.40
+diff -u -r1.39 -r1.40
+--- timeanddate.c 6 Nov 2004 08:22:52 -0000 1.39
++++ timeanddate.c 24 Nov 2004 15:43:10 -0000 1.40
+@@ -528,6 +528,7 @@
+ gtk_misc_set_alignment (GTK_MISC (self.catlabel1), 0.0, 0.9);
+
+ self.cal = gtk_date_combo_new ();
++ gtk_entry_set_activates_default(GTK_ENTRY(GTK_DATE_COMBO(self.cal)->entry), TRUE);
+ gtk_calendar_select_month (GTK_CALENDAR (GTK_DATE_COMBO(self.cal)->cal), ts.tm_mon, ts.tm_year);
+ gtk_calendar_select_day (GTK_CALENDAR (GTK_DATE_COMBO(self.cal)->cal), ts.tm_mday);
+ gtk_table_attach (GTK_TABLE (table), self.cal, 0, 3, 1, 2,
+@@ -549,6 +550,8 @@
+ gpe_time_sel_set_time(GPE_TIME_SEL(self.tsel),(guint)ts.tm_hour, (guint)ts.tm_min);
+ gtk_table_attach (GTK_TABLE (table), self.tsel, 0, 3, 3, 4,
+ GTK_FILL,0,3,0);
++ gtk_entry_set_activates_default(GTK_ENTRY(GPE_TIME_SEL(self.tsel)->hour_spin), TRUE);
++ gtk_entry_set_activates_default(GTK_ENTRY(GPE_TIME_SEL(self.tsel)->minute_spin), TRUE);
+ /* -------------------------------------------------------------------------- */
+
+ self.catlabel3 = gtk_label_new (NULL);
+@@ -569,7 +572,7 @@
+ gtk_combo_set_popdown_strings (GTK_COMBO (self.ntpserver), ntpsrv);
+ gtk_table_attach (GTK_TABLE (table), self.ntpserver, 0, 3, 5, 6,
+ GTK_FILL,0,3,0);
+-
++
+ gtk_tooltips_set_tip (tooltips, self.ntpserver, _("Select the timeserver to use to set the clock."), NULL);
+
+ self.internet = gtk_button_new_with_label(_("Get time from network"));
+Index: users/callbacks.c
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/users/callbacks.c,v
+retrieving revision 1.17
+retrieving revision 1.18
+diff -u -r1.17 -r1.18
+--- users/callbacks.c 17 Nov 2004 18:26:00 -0000 1.17
++++ users/callbacks.c 24 Nov 2004 15:43:10 -0000 1.18
+@@ -93,6 +93,22 @@
+ pwlist *cur = pwroot;
+ pwlist **prec = &pwroot;
+ uint i=GPOINTER_TO_UINT(tmp->data);
++ uint usercount = 0;
++
++ while (cur)
++ {
++ if ((cur->pw.pw_uid >= MINUSERUID) && (cur->pw.pw_uid < MAXUSERID))
++ usercount++;
++ cur = cur->next;
++ }
++
++ if (usercount < 2)
++ {
++ gpe_error_box(_("You need at least one user account!"));
++ return;
++ }
++ cur = pwroot;
++
+ while(IsHidden(cur))
+ {
+ prec = &cur->next;
+@@ -109,6 +125,13 @@
+ }
+ i--;
+ }
++
++ if (!strcmp(cur->pw.pw_name, "lx"))
++ {
++ gpe_error_box(_("You can't remove this user!"));
++ return;
++ }
++
+ if(cur->pw.pw_uid < MINUSERUID)
+ gpe_error_box(_("You can't remove\n system users!"));
+ else
+@@ -122,7 +145,6 @@
+ }
+ }
+ ReloadList();
+-
+ }
+
+
+Index: users/interface.h
+===================================================================
+RCS file: /cvs/gpe/base/gpe-conf/users/interface.h,v
+retrieving revision 1.8
+retrieving revision 1.9
+diff -u -r1.8 -r1.9
+--- users/interface.h 14 Jun 2004 10:15:16 -0000 1.8
++++ users/interface.h 24 Nov 2004 15:43:10 -0000 1.9
+@@ -6,6 +6,8 @@
+ #else
+ #define MINUSERUID 100
+ #endif
++#define MAXUSERID 65500
++
+ typedef struct pwlist_s
+ {
+ struct passwd pw;
diff --git a/packages/gpe-conf/gpe-conf-0.1.22/ignore_invalid_battery_values.patch b/packages/gpe-conf/gpe-conf-0.1.22/ignore_invalid_battery_values.patch
index e69de29bb2..53b257c7e5 100644
--- a/packages/gpe-conf/gpe-conf-0.1.22/ignore_invalid_battery_values.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.22/ignore_invalid_battery_values.patch
@@ -0,0 +1,16 @@
+Index: gpe-conf-0.1.22/battery.c
+===================================================================
+--- gpe-conf-0.1.22.orig/battery.c 2005-02-17 13:13:00.000000000 +0000
++++ gpe-conf-0.1.22/battery.c 2005-02-17 13:39:43.000000000 +0000
+@@ -335,7 +335,10 @@
+ break;
+ }
+ }
+-
++
++ if (percent > 100) percent=100;
++ if (percent < 0 ) percent=0;
++
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (batt_int.bar),
+ (float)percent/100.0);
+ toolbar_set_style (batt_int.bar, barstate);
diff --git a/packages/gpe-conf/gpe-conf-0.1.22/serial_tts.patch b/packages/gpe-conf/gpe-conf-0.1.22/serial_tts.patch
index e69de29bb2..bebdc15102 100644
--- a/packages/gpe-conf/gpe-conf-0.1.22/serial_tts.patch
+++ b/packages/gpe-conf/gpe-conf-0.1.22/serial_tts.patch
@@ -0,0 +1,11 @@
+--- gpe-conf/serial.c 2004-12-30 16:11:11.000000000 -0500
++++ gpe-conf/serial.c.new 2004-12-30 16:10:50.000000000 -0500
+@@ -44,7 +44,7 @@
+ #define GPSD_CONFIG "/etc/gpsd.conf"
+
+ #ifdef MACH_IPAQPXA
+- #define FIRST_SERIAL "/dev/ttyS0"
++ #define FIRST_SERIAL "/dev/tts/0"
+ #else
+ #ifdef MACH_IPAQ
+ #define FIRST_SERIAL "/dev/ttyC0"
diff --git a/packages/gpe-conf/gpe-conf-0.1.23/.mtn2git_empty b/packages/gpe-conf/gpe-conf-0.1.23/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-conf/gpe-conf-0.1.23/.mtn2git_empty
diff --git a/packages/gpe-conf/gpe-conf_0.1.24.bb b/packages/gpe-conf/gpe-conf_0.1.24.bb
index e69de29bb2..533c0a0436 100644
--- a/packages/gpe-conf/gpe-conf_0.1.24.bb
+++ b/packages/gpe-conf/gpe-conf_0.1.24.bb
@@ -0,0 +1,26 @@
+PACKAGES = "gpe-conf gpe-conf-panel"
+LICENSE = "GPL"
+SECTION = "gpe"
+PRIORITY = "optional"
+
+inherit gpe
+PR="r0"
+
+DEPENDS = "gtk+ libgpewidget libxsettings libxsettings-client pcmcia-cs xst xset ipaq-sleep ntp gpe-login gpe-icons"
+RDEPENDS_${PN} = "xst xset ipaq-sleep ntpdate gpe-login gpe-icons"
+RDEPENDS_gpe-conf-panel = "gpe-conf"
+FILES_${PN} = "${sysconfdir} ${bindir} ${datadir}/pixmaps \
+ ${datadir}/applications/gpe-conf-* ${datadir}/gpe/pixmaps \
+ ${datadir}/gpe-conf"
+FILES_gpe-conf-panel = "${datadir}/applications/gpe-conf.desktop"
+
+do_compile () {
+ oe_runmake PREFIX=${prefix}
+ oe_runmake all-desktop PREFIX=${prefix}
+}
+
+do_install () {
+ oe_runmake PREFIX=${prefix} DESTDIR=${D} install-program
+}
+
+