[Goodies-commits] r5784 - in xfce4-smartpm-plugin/trunk: . icons/48x48 src
Anders F Bjorklund
afb at xfce.org
Fri Oct 24 11:51:10 CEST 2008
Author: afb
Date: 2008-10-24 09:51:10 +0000 (Fri, 24 Oct 2008)
New Revision: 5784
Added:
xfce4-smartpm-plugin/trunk/icons/48x48/xfce4-gtkpacman.png
Modified:
xfce4-smartpm-plugin/trunk/ChangeLog
xfce4-smartpm-plugin/trunk/README
xfce4-smartpm-plugin/trunk/src/xfcesmart.c
Log:
add support for archlinux pacman too
Modified: xfce4-smartpm-plugin/trunk/ChangeLog
===================================================================
--- xfce4-smartpm-plugin/trunk/ChangeLog 2008-10-24 06:41:38 UTC (rev 5783)
+++ xfce4-smartpm-plugin/trunk/ChangeLog 2008-10-24 09:51:10 UTC (rev 5784)
@@ -114,3 +114,7 @@
* === Released 0.3.2 ===
+2008-10-24 Anders F Bjorklund <afb at users.sourceforge.net>
+
+ * add support for arch's pacman and gtkPacman as well
+
Modified: xfce4-smartpm-plugin/trunk/README
===================================================================
--- xfce4-smartpm-plugin/trunk/README 2008-10-24 06:41:38 UTC (rev 5783)
+++ xfce4-smartpm-plugin/trunk/README 2008-10-24 09:51:10 UTC (rev 5784)
@@ -56,6 +56,8 @@
APT | apt-get --simulate dist-upgrade | sudo apt-get update |
|-------------------------------------|----------------------------------|
Slapt | slapt-get --simulate --dist-upgrade | su -c "slapt-get --update" |
+ |-------------------------------------|----------------------------------|
+Pacman| pacman -Sup --noconfirm | su -c "pacman -Sy" |
+-------------------------------------+----------------------------------+
Checking for upgrades or browsing packages can be done as a regular user,
Added: xfce4-smartpm-plugin/trunk/icons/48x48/xfce4-gtkpacman.png
===================================================================
(Binary files differ)
Property changes on: xfce4-smartpm-plugin/trunk/icons/48x48/xfce4-gtkpacman.png
___________________________________________________________________
Name: svn:mime-type
+ image/png
Modified: xfce4-smartpm-plugin/trunk/src/xfcesmart.c
===================================================================
--- xfce4-smartpm-plugin/trunk/src/xfcesmart.c 2008-10-24 06:41:38 UTC (rev 5783)
+++ xfce4-smartpm-plugin/trunk/src/xfcesmart.c 2008-10-24 09:51:10 UTC (rev 5784)
@@ -56,29 +56,34 @@
enum
{
- PACKAGE_MANAGER_SMART = 0, /* use Smart Package Manager */
- PACKAGE_MANAGER_YUM = 1, /* use Yum+Extender (Fedora) */
- PACKAGE_MANAGER_APT = 2, /* use APT+Synaptic (Ubuntu) */
- PACKAGE_MANAGER_SLAPT = 3, /* use slapt+gslapt (Vector) */
+ PACKAGE_MANAGER_SMART = 0, /* use Smart Package Manager */
+ PACKAGE_MANAGER_YUM = 1, /* use Yum+Extender (Fedora) */
+ PACKAGE_MANAGER_APT = 2, /* use APT+Synaptic (Ubuntu) */
+ PACKAGE_MANAGER_SLAPT = 3, /* use slapt+gslapt (Vector) */
+ PACKAGE_MANAGER_PACMAN = 4, /* use pacman+gtkpm (Arch) */
};
-#define SMART_WEBSITE "http://smartpm.org/"
-#define SMART_PROGRAM "smart" /* regular bin */
-#define SMART_UPDATE "smart-update" /* suid */
-#define SMART_SUIDBIN "smart-root" /* Fedora */
+#define SMART_WEBSITE "http://smartpm.org/"
+#define SMART_PROGRAM "smart" /* regular bin */
+#define SMART_UPDATE "smart-update" /* suid */
+#define SMART_SUIDBIN "smart-root" /* Fedora */
-#define YUM_WEBSITE "http://www.yum-extender.org/"
-#define YUM_PROGRAM "yumex"
-#define YUM_UPDATE "yum"
+#define YUM_WEBSITE "http://www.yum-extender.org/"
+#define YUM_PROGRAM "yumex"
+#define YUM_UPDATE "yum"
-#define APT_WEBSITE "http://www.nongnu.org/synaptic/"
-#define APT_PROGRAM "synaptic"
-#define APT_UPDATE "apt-get"
+#define APT_WEBSITE "http://www.nongnu.org/synaptic/"
+#define APT_PROGRAM "synaptic"
+#define APT_UPDATE "apt-get"
-#define SLAPT_WEBSITE "http://software.jaos.org/#gslapt"
-#define SLAPT_PROGRAM /* "gslapt" */ PATH_GSLAPT
-#define SLAPT_UPDATE /* "slapt-get" */ PATH_SLAPT_GET
+#define SLAPT_WEBSITE "http://software.jaos.org/#gslapt"
+#define SLAPT_PROGRAM /* "gslapt" */ PATH_GSLAPT
+#define SLAPT_UPDATE /* "slapt-get" */ PATH_SLAPT_GET
+#define PACMAN_WEBSITE "http://gtkpacman.berlios.de/"
+#define PACMAN_PROGRAM "gtkpacman"
+#define PACMAN_UPDATE "pacman"
+
#define TIMEOUT_TIME 1000 /* milliseconds */
#define PROGRESS_TIME 5*60 /* seconds */
@@ -215,6 +220,9 @@
case PACKAGE_MANAGER_SLAPT:
/* TODO: determine number of new packages in Slapt channels */
break;
+ case PACKAGE_MANAGER_PACMAN:
+ /* TODO: determine number of new packages in Pacman channels */
+ break;
}
}
fclose(file);
@@ -339,6 +347,13 @@
"--update" "\"" ;
terminal = TRUE;
break;
+ case PACKAGE_MANAGER_PACMAN:
+ argv[0] = PATH_SU;
+ argv[1] = "-c";
+ argv[2] = "\"" PACMAN_UPDATE " "\
+ "-Sy" "\"" ;
+ terminal = TRUE;
+ break;
default:
return 0;
}
@@ -353,6 +368,7 @@
if (smart->package_manager == PACKAGE_MANAGER_YUM) title = YUM_UPDATE;
if (smart->package_manager == PACKAGE_MANAGER_APT) title = APT_UPDATE;
if (smart->package_manager == PACKAGE_MANAGER_SLAPT) title = SLAPT_UPDATE;
+ if (smart->package_manager == PACKAGE_MANAGER_PACMAN) title = PACMAN_UPDATE;
args = g_strdup_printf("%s %s %s",
argv[0], argv[1], argv[2]);
@@ -503,6 +519,14 @@
packages = atoi(p);
/* TODO: read package names */
break;
+ case PACKAGE_MANAGER_PACMAN:
+ if (p[0] == ':' && p[1] == ':')
+ continue;
+ if (strcmp(p, "resolving dependencies..."))
+ continue;
+ packages++;
+ /* TODO: read package names */
+ break;
}
}
else
@@ -631,6 +655,11 @@
argv[1] = "--simulate";
argv[2] = (smart->dist_upgrade) ? "--dist-upgrade" : "--upgrade";
break;
+ case PACKAGE_MANAGER_PACMAN:
+ argv[0] = PACMAN_UPDATE;
+ argv[1] = "-Sup";
+ argv[1] = "--noconfirm";
+ break;
default:
return 0;
}
@@ -718,6 +747,12 @@
else
program = g_strdup(SLAPT_PROGRAM);
break;
+ case PACKAGE_MANAGER_PACMAN:
+ if (smart_program_exists(PATH_GKSU))
+ program = g_strdup_printf("%s %s", PATH_GKSU, PACMAN_PROGRAM);
+ else
+ program = g_strdup(PACMAN_PROGRAM);
+ break;
default:
return;
}
@@ -740,11 +775,33 @@
static void
smart_launch_program(SmartPlugin *smart)
{
+ gchar *upgrade;
+
+ switch (smart->package_manager)
+ {
+ case PACKAGE_MANAGER_SMART:
+ upgrade = "upgrade";
+ break;
+ case PACKAGE_MANAGER_YUM:
+ upgrade = NULL;
+ break;
+ case PACKAGE_MANAGER_APT:
+ upgrade = NULL;
+ break;
+ case PACKAGE_MANAGER_SLAPT:
+ upgrade = "--upgrade";
+ break;
+ case PACKAGE_MANAGER_PACMAN:
+ upgrade = NULL;
+ break;
+ default:
+ return;
+ }
+
if (smart->upgrade_directly && smart->updates_available > 0)
- smart_sudo_smart_gui(smart,
- (smart->package_manager == PACKAGE_MANAGER_SLAPT) ? "--upgrade" : "upgrade");
- else
- smart_sudo_smart_gui(smart, NULL);
+ smart_sudo_smart_gui(smart, upgrade);
+ else
+ smart_sudo_smart_gui(smart, NULL);
}
#ifdef HAVE_LIBNOTIFY
@@ -1229,6 +1286,9 @@
case PACKAGE_MANAGER_SLAPT:
iconname = "xfce4-" SLAPT_PROGRAM;
break;
+ case PACKAGE_MANAGER_PACMAN:
+ iconname = "xfce4-" PACMAN_PROGRAM;
+ break;
default:
iconname = "xfce-unknown";
break;
@@ -1324,6 +1384,9 @@
case PACKAGE_MANAGER_SLAPT:
website = SLAPT_WEBSITE;
break;
+ case PACKAGE_MANAGER_PACMAN:
+ website = PACMAN_WEBSITE;
+ break;
default:
website = "http://goodies.xfce.org/";
break;
@@ -1465,6 +1528,7 @@
gtk_combo_box_append_text (GTK_COMBO_BOX(combo), _("Yum+Extender"));
gtk_combo_box_append_text (GTK_COMBO_BOX(combo), _("APT+Synaptic"));
gtk_combo_box_append_text (GTK_COMBO_BOX(combo), _("slapt+gslapt"));
+ gtk_combo_box_append_text (GTK_COMBO_BOX(combo), _("pacman+gtkpm"));
gtk_combo_box_set_active (GTK_COMBO_BOX(combo), smart->package_manager);
gtk_widget_show (combo);
g_signal_connect (G_OBJECT(combo),"changed", G_CALLBACK(smart_combobox_changed_cb), smart);
@@ -1515,7 +1579,8 @@
g_object_set_data (G_OBJECT (plugin), "upgrade-directly", button);
gtk_widget_set_sensitive (button,
- smart->package_manager == PACKAGE_MANAGER_SMART);
+ smart->package_manager == PACKAGE_MANAGER_SMART ||
+ smart->package_manager == PACKAGE_MANAGER_SLAPT);
button = gtk_check_button_new_with_label(_("Smart upgrade to newer release (dist-upgrade)"));
gtk_widget_show (button);
More information about the Goodies-commits
mailing list