Send commitlog mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.openmoko.org/mailman/listinfo/commitlog
or, via email, send a message with subject or body 'help' to
        [EMAIL PROTECTED]

You can reach the person managing the list at
        [EMAIL PROTECTED]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of commitlog digest..."
Today's Topics:

   1. r3952 - in
      trunk/src/target/OM-2007.2/applications/openmoko-today2: .        src
      ([EMAIL PROTECTED])
   2. r3953 - trunk/src/target/OM-2007.2/applications
      ([EMAIL PROTECTED])
   3. r3954 - branches/src/target/kernel ([EMAIL PROTECTED])
   4. r3955 - trunk/src/target/opkg ([EMAIL PROTECTED])
   5. r3956 - trunk/src/target/opkg ([EMAIL PROTECTED])
   6. r3957 - trunk/src/target/OM-2007.2/daemons/neod/src
      ([EMAIL PROTECTED])
   7. r3958 - trunk/src/target/OM-2007.2/daemons/neod/src
      ([EMAIL PROTECTED])
--- Begin Message ---
Author: chris
Date: 2008-01-25 15:54:18 +0100 (Fri, 25 Jan 2008)
New Revision: 3952

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
   
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
Log:
        * src/today-main.c: (bg_child_expose_cb), (reduced_notify), (main):
        * src/today-pim-journal.c: (today_pim_journal_box_new):
        * src/today.h:
        Add a 'reduced' mode (controlled by /desktop/poky/interface/reduced)


Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog   
2008-01-25 05:22:06 UTC (rev 3951)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog   
2008-01-25 14:54:18 UTC (rev 3952)
@@ -1,3 +1,10 @@
+2008-01-25  Chris Lord  <[EMAIL PROTECTED]>
+
+       * src/today-main.c: (bg_child_expose_cb), (reduced_notify), (main):
+       * src/today-pim-journal.c: (today_pim_journal_box_new):
+       * src/today.h:
+        Add a 'reduced' mode (controlled by /desktop/poky/interface/reduced)
+
 2008-01-24  Chris Lord  <[EMAIL PROTECTED]>
 
        * src/today-utils.c:

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c    
2008-01-25 05:22:06 UTC (rev 3951)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-main.c    
2008-01-25 14:54:18 UTC (rev 3952)
@@ -7,6 +7,7 @@
 #include <gconf/gconf-client.h>
 #include <moko-finger-scroll.h>
 #include <moko-stock.h>
+#include <moko-search-bar.h>
 #include <libtaku/launcher-util.h>
 #include <libtaku/xutil.h>
 #include <unistd.h>
@@ -79,25 +80,12 @@
 bg_child_expose_cb (GtkWidget *widget, GdkEventExpose *event, TodayData *data)
 {
        cairo_t *cr;
-/*     GtkWidget *parent;
-       gint x = 0, y = 0;
        
-       if (!data->wallpaper) return FALSE;
+       if ((!GTK_WIDGET_VISIBLE (data->missed_calls_box)) &&
+           (!GTK_WIDGET_VISIBLE (data->unread_messages_box)) &&
+           (!GTK_WIDGET_VISIBLE (data->dates_box)) &&
+           (!GTK_WIDGET_VISIBLE (data->tasks_box))) return FALSE;
        
-       parent = widget;
-       do {
-               if (!GTK_WIDGET_NO_WINDOW (parent)) {
-                       x += parent->allocation.x;
-                       y += parent->allocation.y;
-               }
-               parent = gtk_widget_get_parent (parent);
-       } while (parent && (parent != data->bg_ebox));
-       if (!parent) return FALSE;
-       
-       gdk_draw_drawable (widget->window, widget->style->black_gc,
-               data->wallpaper, x, y,
-               0, 0, -1, -1);*/
-       
        /* Draw a semi-transparent rounded rectangle */
        cr = gdk_cairo_create (widget->window);
        cairo_translate (cr, widget->allocation.x, widget->allocation.y);
@@ -378,6 +366,38 @@
        }
 }
 
+static void
+reduced_notify (GConfClient *client, guint cnxn_id,
+               GConfEntry *entry, TodayData *data)
+{
+       GConfValue *value;
+       gboolean hide;
+       
+       value = gconf_entry_get_value (entry);
+       hide = (value && gconf_value_get_bool (value)) ? TRUE : FALSE;
+       g_object_set (G_OBJECT (data->clock), "visible", !hide, NULL);
+       g_object_set (G_OBJECT (data->search_bar), "visible", !hide, NULL);
+       g_object_set (G_OBJECT (data->date_button), "visible", !hide, NULL);
+       g_object_set (G_OBJECT (data->home_toolbar), "visible", !hide, NULL);
+       
+       /* Unset application filter */
+       if (hide) {
+               gint rows;
+               GtkTreeModel *model;
+               GtkComboBox *combo = moko_search_bar_get_combo_box (
+                       MOKO_SEARCH_BAR (data->search_bar));
+               GtkEntry *entry = moko_search_bar_get_entry (
+                       MOKO_SEARCH_BAR (data->search_bar));
+               
+               gtk_entry_set_text (entry, "");
+               
+               /* FIXME: Assuming last row is 'All' category... */
+               model = gtk_combo_box_get_model (combo);
+               rows = gtk_tree_model_iter_n_children (model, NULL);
+               gtk_combo_box_set_active (combo, rows - 1);
+       }
+}
+
 static gboolean active = TRUE;
 
 static void
@@ -549,6 +569,10 @@
                GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_SMALLCLOCK,
                (GConfClientNotifyFunc)small_clock_notify,
                &data, NULL, NULL);
+       gconf_client_notify_add (gconf_client_get_default (),
+               GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_REDUCED,
+               (GConfClientNotifyFunc)reduced_notify,
+               &data, NULL, NULL);
        
        /* Fire off signals */
        gconf_client_notify (gconf_client_get_default (),
@@ -557,6 +581,8 @@
                GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_DIGITAL);
        gconf_client_notify (gconf_client_get_default (),
                GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_SMALLCLOCK);
+       gconf_client_notify (gconf_client_get_default (),
+               GCONF_POKY_INTERFACE_PREFIX GCONF_POKY_REDUCED);
 
        gtk_main ();
 

Modified: 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c
===================================================================
--- 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c 
    2008-01-25 05:22:06 UTC (rev 3951)
+++ 
trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-pim-journal.c 
    2008-01-25 14:54:18 UTC (rev 3952)
@@ -310,10 +310,10 @@
 {
        JanaStore *store;
        MokoJournal *journal;
-       GtkWidget *vbox, *hbox, *image, *button, *align;
+       GtkWidget *vbox, *hbox, *image, *align;
        
        hbox = gtk_hbox_new (FALSE, 6);
-       button = gtk_button_new ();
+       data->date_button = gtk_button_new ();
        data->date_label = gtk_label_new (NULL);
        data->date_aspect = gtk_aspect_frame_new (NULL, 0.5, 0.5, 1.0, FALSE);
        align = gtk_alignment_new (1.0, 0.5, 1.0, 1.0);
@@ -322,9 +322,9 @@
        gtk_container_add (GTK_CONTAINER (align), data->date_aspect);
        gtk_box_pack_start (GTK_BOX (hbox), data->date_label, FALSE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (hbox), align, TRUE, TRUE, 0);
-       gtk_container_add (GTK_CONTAINER (button), hbox);
+       gtk_container_add (GTK_CONTAINER (data->date_button), hbox);
        gtk_widget_show_all (hbox);
-       g_signal_connect (button, "clicked",
+       g_signal_connect (data->date_button, "clicked",
                G_CALLBACK (header_clicked_cb), data);
        
        /* Missed calls box */
@@ -400,7 +400,7 @@
        
        /* Pack widgets */
        vbox = gtk_vbox_new (FALSE, 6);
-       gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX (vbox), data->date_button, FALSE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (vbox),
                data->missed_calls_box, FALSE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (vbox),

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h 
2008-01-25 05:22:06 UTC (rev 3951)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today.h 
2008-01-25 14:54:18 UTC (rev 3952)
@@ -13,6 +13,7 @@
 #define GCONF_POKY_WALLPAPER "/wallpaper"
 #define GCONF_POKY_DIGITAL "/digital_clock"
 #define GCONF_POKY_SMALLCLOCK "/small_clock"
+#define GCONF_POKY_REDUCED "/reduced"
 
 typedef struct {
        /* Home */




--- End Message ---
--- Begin Message ---
Author: chris
Date: 2008-01-25 15:56:36 +0100 (Fri, 25 Jan 2008)
New Revision: 3953

Removed:
   trunk/src/target/OM-2007.2/applications/openmoko-launcher/
Log:
Remove openmoko-launcher, superceded by openmoko-today2's 'reduced' mode





--- End Message ---
--- Begin Message ---
Author: mickey
Date: 2008-01-25 16:00:55 +0100 (Fri, 25 Jan 2008)
New Revision: 3954

Added:
   branches/src/target/kernel/2.6.22.x/
Log:
copy kernel/2.6.22.x branch from trunk


Copied: branches/src/target/kernel/2.6.22.x (from rev 3953, 
trunk/src/target/kernel)




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2008-01-25 18:06:57 +0100 (Fri, 25 Jan 2008)
New Revision: 3955

Modified:
   trunk/src/target/opkg/Makefile.am
   trunk/src/target/opkg/configure.ac
Log:
opkg: fix configure checks for gpgme


Modified: trunk/src/target/opkg/Makefile.am
===================================================================
--- trunk/src/target/opkg/Makefile.am   2008-01-25 15:00:55 UTC (rev 3954)
+++ trunk/src/target/opkg/Makefile.am   2008-01-25 17:06:57 UTC (rev 3955)
@@ -52,7 +52,7 @@
 #\ replace/replace.h
 
 #libopkg_la_LIBADD = libbb/libbb.la replace/libreplace.a
-libopkg_la_LIBADD = libbb/libbb.la $(CURL_LIBS)
+libopkg_la_LIBADD = libbb/libbb.la $(CURL_LIBS) $(GPGME_LIBS)
 
 opkg_core_sources = args.c args.h opkg.c \
                    user.c user.h 
@@ -97,9 +97,9 @@
 
 opkg_cl_SOURCES = opkg-frontend.c
 
-libopkg_la_CFLAGS = -DOPKG_LIB $(ALL_CFLAGS)  $(CURL_CFLAGS)
+libopkg_la_CFLAGS = -DOPKG_LIB $(ALL_CFLAGS)  $(CURL_CFLAGS) $(GPGME_CFLAGS)
 
-opkg_CFLAGS = $(ALL_CFLAGS) $(CURL_CFLAGS)
+opkg_CFLAGS = $(ALL_CFLAGS) $(CURL_CFLAGS) $(GPGME_CFLAGS)
 
 opkg_cl_CFLAGS = -DOPKG_LIB $(ALL_CFLAGS)
 

Modified: trunk/src/target/opkg/configure.ac
===================================================================
--- trunk/src/target/opkg/configure.ac  2008-01-25 15:00:55 UTC (rev 3954)
+++ trunk/src/target/opkg/configure.ac  2008-01-25 17:06:57 UTC (rev 3955)
@@ -66,9 +66,10 @@
   AC_MSG_ERROR(GPGME $min_gpgme_version or later needed)
 fi
 
+AC_SUBST(GPGME_CFLAGS)
+AC_SUBST(GPGME_LIBS)
 
 
-
 # Checks for header files
 AC_HEADER_DIRENT
 AC_HEADER_STDC




--- End Message ---
--- Begin Message ---
Author: thomas
Date: 2008-01-25 18:16:24 +0100 (Fri, 25 Jan 2008)
New Revision: 3956

Modified:
   trunk/src/target/opkg/opkg_cmd.c
   trunk/src/target/opkg/opkg_download.c
   trunk/src/target/opkg/opkg_download.h
Log:
opkg: initial implementation of package list signature verification


Modified: trunk/src/target/opkg/opkg_cmd.c
===================================================================
--- trunk/src/target/opkg/opkg_cmd.c    2008-01-25 17:06:57 UTC (rev 3955)
+++ trunk/src/target/opkg/opkg_cmd.c    2008-01-25 17:16:24 UTC (rev 3956)
@@ -265,6 +265,40 @@
                            list_file_name);
          }
          free(url);
+
+         /* download detached signitures to verify the package lists */
+         /* get the url for the sig file */
+         if (src->extra_data)  /* debian style? */
+             sprintf_alloc(&url, "%s/%s/%s", src->value, src->extra_data,
+                           "Packages.sig");
+         else
+             sprintf_alloc(&url, "%s/%s", src->value, "Packages.sig");
+
+         /* create temporary dir for it */
+         char *tmp, *tmp_file_name;
+         tmp = strdup ("/tmp/opkg.XXXXXX");
+         if (mkdtemp (tmp) == NULL) {
+               perror ("mkdtemp");
+               failures++;
+               continue;
+         }
+         sprintf_alloc (&tmp_file_name, "%s/%s", tmp, "Packages.sig");
+
+         err = opkg_download(conf, url, tmp_file_name);
+         if (err) {
+           failures++;
+         } else {
+           int err;
+           err = opkg_verify_file (list_file_name, tmp_file_name);
+           if (err == 0)
+               opkg_message (conf, OPKG_NOTICE, "Signature check passed\n");
+           else
+               opkg_message (conf, OPKG_NOTICE, "Signature check failed\n");
+         }
+         unlink (tmp_file_name);
+         free (tmp_file_name);
+
+         free (url);
          free(list_file_name);
      }
      free(lists_dir);

Modified: trunk/src/target/opkg/opkg_download.c
===================================================================
--- trunk/src/target/opkg/opkg_download.c       2008-01-25 17:06:57 UTC (rev 
3955)
+++ trunk/src/target/opkg/opkg_download.c       2008-01-25 17:16:24 UTC (rev 
3956)
@@ -18,6 +18,7 @@
 */
 
 #include <curl/curl.h>
+#include <gpgme.h>
 
 #include "opkg.h"
 #include "opkg_download.h"
@@ -152,6 +153,7 @@
        curl_easy_setopt (curl, CURLOPT_NOPROGRESS, 0);
        curl_easy_setopt (curl, CURLOPT_PROGRESSDATA, src);
        curl_easy_setopt (curl, CURLOPT_PROGRESSFUNCTION, curl_progress_func);
+       curl_easy_setopt (curl, CURLOPT_FAILONERROR, 1);
        if (conf->http_proxy || conf->ftp_proxy)
        {
            char *userpwd;
@@ -163,6 +165,8 @@
        res = curl_easy_perform (curl);
        curl_easy_cleanup (curl);
        fclose (file);
+       if (res)
+           return res;
 
     }
     else
@@ -271,3 +275,47 @@
      }
      return 0;
 }
+
+int
+opkg_verify_file (char *text_file, char *sig_file)
+{
+    int status = -1;
+    gpgme_ctx_t ctx;
+    gpgme_data_t sig, text;
+    gpgme_error_t err = -1;
+    gpgme_verify_result_t result;
+    gpgme_signature_t s;
+    
+    err = gpgme_new (&ctx);
+
+    if (err)
+       return -1;
+
+    err = gpgme_data_new_from_file (&sig, sig_file, 1); 
+    if (err)
+       return -1;
+
+    err = gpgme_data_new_from_file (&text, text_file, 1); 
+    if (err)
+       return -1;
+
+    err = gpgme_op_verify (ctx, sig, text, NULL);
+
+    result = gpgme_op_verify_result (ctx);
+
+    /* see if any of the signitures matched */
+    s = result->signatures;
+    while (s)
+    {
+       status = gpg_err_code (s->status);
+       if (status == GPG_ERR_NO_ERROR)
+           break;
+       s = s->next;
+    }
+
+    gpgme_data_release (sig);
+    gpgme_data_release (text);
+    gpgme_release (ctx);
+
+    return status;
+}

Modified: trunk/src/target/opkg/opkg_download.h
===================================================================
--- trunk/src/target/opkg/opkg_download.h       2008-01-25 17:06:57 UTC (rev 
3955)
+++ trunk/src/target/opkg/opkg_download.h       2008-01-25 17:16:24 UTC (rev 
3956)
@@ -27,4 +27,5 @@
  */
 int opkg_prepare_url_for_install(opkg_conf_t *conf, const char *url, char 
**namep);
 
+int opkg_verify_file (char *text_file, char *sig_file);
 #endif




--- End Message ---
--- Begin Message ---
Author: mickey
Date: 2008-01-26 00:39:28 +0100 (Sat, 26 Jan 2008)
New Revision: 3957

Modified:
   trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c
Log:
neod: use the new g_timeout_add_seconds to reduce power consumption


Modified: trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c
===================================================================
--- trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c 2008-01-25 
17:16:24 UTC (rev 3956)
+++ trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c 2008-01-25 
23:39:28 UTC (rev 3957)
@@ -322,7 +322,7 @@
                 if ( event.value == 1 ) /* pressed */
                 {
                     g_debug( "triggering aux timer" );
-                    aux_timer = g_timeout_add( 1 * 1000, (GSourceFunc) 
neod_buttonactions_aux_timeout, (gpointer)1 );
+                    aux_timer = g_timeout_add_seconds( 1, (GSourceFunc) 
neod_buttonactions_aux_timeout, (gpointer)1 );
                 }
                 else if ( event.value == 0 ) /* released */
                 {
@@ -341,7 +341,7 @@
                 if ( event.value == 1 ) /* pressed */
                 {
                     g_debug( "triggering power timer" );
-                    power_timer = g_timeout_add( 1 * 1000, (GSourceFunc) 
neod_buttonactions_power_timeout, (gpointer)1 );
+                    power_timer = g_timeout_add_seconds( 1, (GSourceFunc) 
neod_buttonactions_power_timeout, (gpointer)1 );
                 }
                 else if ( event.value == 0 ) /* released */
                 {
@@ -964,9 +964,9 @@
         return;
 
     //TODO load this from preferences
-    powersave_timer1 = g_timeout_add( 10 * 1000, (GSourceFunc) 
neod_buttonactions_powersave_timeout1, (gpointer)1 );
-    powersave_timer2 = g_timeout_add( 30 * 1000, (GSourceFunc) 
neod_buttonactions_powersave_timeout2, (gpointer)1 );
-    powersave_timer3 = g_timeout_add( 60 * 5 * 1000, (GSourceFunc) 
neod_buttonactions_powersave_timeout3, (gpointer)1 );
+    powersave_timer1 = g_timeout_add_seconds( 10, (GSourceFunc) 
neod_buttonactions_powersave_timeout1, (gpointer)1 );
+    powersave_timer2 = g_timeout_add_seconds( 50, (GSourceFunc) 
neod_buttonactions_powersave_timeout2, (gpointer)1 );
+    powersave_timer3 = g_timeout_add_seconds( 60 * 5, (GSourceFunc) 
neod_buttonactions_powersave_timeout3, (gpointer)1 );
 }
 
 void neod_buttonactions_set_display( int brightness )




--- End Message ---
--- Begin Message ---
Author: mickey
Date: 2008-01-26 01:02:07 +0100 (Sat, 26 Jan 2008)
New Revision: 3958

Modified:
   trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c
Log:
neod: clean up some warnings, attempt to fix #1114


Modified: trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c
===================================================================
--- trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c 2008-01-25 
23:39:28 UTC (rev 3957)
+++ trunk/src/target/OM-2007.2/daemons/neod/src/buttonactions.c 2008-01-26 
00:02:07 UTC (rev 3958)
@@ -531,12 +531,6 @@
     is_fullscreen = 1 - is_fullscreen;
 }
 
-void neod_buttonactions_popup_selected_orientation( GtkWidget* button, 
gpointer user_data )
-{
-    gtk_widget_hide( aux_menu );
-       neod_buttonactions_set_orientation(!orientation);
-}
-
 void neod_buttonactions_set_orientation(gboolean new_o) {
     if(new_o)
         g_spawn_command_line_async( "xrandr -o 1", NULL );
@@ -545,6 +539,12 @@
     orientation = new_o;
 }
 
+void neod_buttonactions_popup_selected_orientation( GtkWidget* button, 
gpointer user_data )
+{
+    gtk_widget_hide( aux_menu );
+    neod_buttonactions_set_orientation(!orientation);
+}
+
 void neod_buttonactions_popup_selected_screenshot( GtkWidget* button, gpointer 
user_data )
 {
     gtk_widget_hide( aux_menu );
@@ -811,9 +811,9 @@
         gtk_box_pack_start_defaults( GTK_BOX(GTK_DIALOG(power_menu)->vbox), 
box );
     }
 
-    gtk_button_set_label( gsmpower, g_strdup_printf( "Turn %s GSM", 
is_turned_on( GSM ) ? "off" : "on" ) );
-    gtk_button_set_label( btpower, g_strdup_printf( "Turn %s Bluetooth", 
is_turned_on( BLUETOOTH ) ? "off" : "on" ) );
-    gtk_button_set_label( gpspower, g_strdup_printf( "Turn %s GPS", 
is_turned_on( GPS ) ? "off" : "on" ) );
+    gtk_button_set_label( GTK_BUTTON(gsmpower), g_strdup_printf( "Turn %s 
GSM", is_turned_on( GSM ) ? "off" : "on" ) );
+    gtk_button_set_label( GTK_BUTTON(btpower), g_strdup_printf( "Turn %s 
Bluetooth", is_turned_on( BLUETOOTH ) ? "off" : "on" ) );
+    gtk_button_set_label( GTK_BUTTON(gpspower), g_strdup_printf( "Turn %s 
GPS", is_turned_on( GPS ) ? "off" : "on" ) );
     int response = gtk_dialog_run( GTK_DIALOG(power_menu) );
     g_debug( "gtk_dialog_run completed, response = %d", response );
 }
@@ -1245,6 +1245,7 @@
                gtk_box_pack_start(GTK_BOX(box1), south, 0, 0, 0);
 
                gtk_window_fullscreen(GTK_WINDOW(lock_display));
+        gtk_window_set_keep_above( GTK_WINDOW(lock_display), TRUE );
                gtk_container_add(GTK_CONTAINER(lock_display), box1);
 
                static GtkTargetEntry targetentries[] = {{"text/plain", 0, 0}};




--- End Message ---
_______________________________________________
commitlog mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/commitlog

Reply via email to