[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