[Spice-commits] 6 commits - configure.ac gtk/map-file gtk/smartcard-manager.c gtk/smartcard-manager.h gtk/spice-glib-sym-file po/POTFILES.in

Christophe Fergau teuf at kemper.freedesktop.org
Mon Jun 24 08:18:43 PDT 2013


 configure.ac            |    2 
 gtk/map-file            |    3 
 gtk/smartcard-manager.c |  145 ++++++++++++++++++++++++++++++++++++++++--------
 gtk/smartcard-manager.h |    3 
 gtk/spice-glib-sym-file |    3 
 po/POTFILES.in          |    5 -
 6 files changed, 132 insertions(+), 29 deletions(-)

New commits:
commit 715c99d286876cd01b787b8810c062f66f3e3f0b
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Mon Jun 24 11:22:57 2013 +0200

    automake: Disable portability warnings
    
    When they are enabled, autogen.sh fails with:
    automake: warnings are treated as errors
    gtk-doc.make:77: warning: GTK_DOC_V_SETUP_$(V: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:78: warning: GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:96: warning: GTK_DOC_V_SCAN_$(V: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:97: warning: GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:100: warning: GTK_DOC_V_INTROSPECT_$(V: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:101: warning: GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:132: warning: GTK_DOC_V_XML_$(V: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:133: warning: GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:149: warning: GTK_DOC_V_HTML_$(V: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:150: warning: GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:153: warning: GTK_DOC_V_XREF_$(V: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:154: warning: GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:185: warning: GTK_DOC_V_PDF_$(V: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    gtk-doc.make:186: warning: GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY: non-POSIX recursive variable expansion
    doc/reference/Makefile.am:59:   'gtk-doc.make' included from here
    autoreconf: automake failed with exit status: 1
    
    on my F19.
    -Wportability used to be automatically disabled with automake <= 1.12 when using
    silent rules, but this is no longer the case with automake 1.13 which is what
    fedora 19 uses: http://www.flameeyes.eu/autotools-mythbuster/automake/silent.html
    "As of version 1.13, though, this opt-in is no longer necessary, as all the
    Makefiles are generated to support them. The silent-rules option is now a
    no-op, doing nothing at all, in particular not silencing the portability
    warnings."
    
    This commit disables these warnings in order to avoid autogen.sh breakage
    because of the use of -Werror, they can be reenabled once gtk-doc.make is
    fixed to avoid these portability warnings.

diff --git a/configure.ac b/configure.ac
index 8ab5b6b..bd59ccf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_HEADER([config.h])
 AC_CONFIG_AUX_DIR([build-aux])
 
-AM_INIT_AUTOMAKE([foreign dist-bzip2 -Wall -Werror])
+AM_INIT_AUTOMAKE([foreign dist-bzip2 -Wall -Werror -Wno-portability])
 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
 LT_INIT
 AM_MAINTAINER_MODE
commit b473f9e1f5f8d4c606ff80191db0c525dc923bd7
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri May 31 15:02:05 2013 +0200

    Remove obsolete files from POTFILES.in
    
    intltool-update -M complains about them

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0d962f0..8809121 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,11 +2,6 @@ data/spice-mime.xml.in
 data/spicy.desktop.in.in
 gtk/channel-usbredir.c
 gtk/desktop-integration.c
-gtk/display/display-name.c
-gtk/display/gnome-rr-config.c
-gtk/display/gnome-rr-generic.c
-gtk/display/gnome-rr-windows.c
-gtk/display/gnome-rr-x11.c
 gtk/spice-cmdline.c
 gtk/spice-option.c
 gtk/spicy-screenshot.c
commit 11b2f722ba9e732bf9c53feb919e12740e3b83b3
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri Jun 14 00:33:52 2013 +0200

    smartcard: Move down spice_smartcard_reader_is_software body
    
    It's more consistent to have it close to
    spice_smartcard_reader_insert_card() et al.

diff --git a/gtk/smartcard-manager.c b/gtk/smartcard-manager.c
index 6709d56..edc338b 100644
--- a/gtk/smartcard-manager.c
+++ b/gtk/smartcard-manager.c
@@ -402,21 +402,6 @@ spice_smartcard_manager_update_monitor(void)
 
 #define SPICE_SOFTWARE_READER_NAME "Spice Software Smartcard"
 
-/**
- * spice_smartcard_reader_is_software:
- * @reader: a #SpiceSmartcardReader
- *
- * Tests if @reader is a software (emulated) smartcard reader.
- *
- * Returns: TRUE if @reader is a software (emulated) smartcard reader,
- * FALSE otherwise
- */
-gboolean spice_smartcard_reader_is_software(SpiceSmartcardReader *reader)
-{
-    g_return_val_if_fail(reader != NULL, FALSE);
-    return (strcmp(vreader_get_name((VReader*)reader), SPICE_SOFTWARE_READER_NAME) == 0);
-}
-
 static gboolean smartcard_manager_init(SpiceSession *session,
                                        GCancellable *cancellable,
                                        GError **err)
@@ -536,6 +521,21 @@ gboolean spice_smartcard_manager_init_finish(SpiceSession *session,
 }
 
 /**
+ * spice_smartcard_reader_is_software:
+ * @reader: a #SpiceSmartcardReader
+ *
+ * Tests if @reader is a software (emulated) smartcard reader.
+ *
+ * Returns: TRUE if @reader is a software (emulated) smartcard reader,
+ * FALSE otherwise
+ */
+gboolean spice_smartcard_reader_is_software(SpiceSmartcardReader *reader)
+{
+    g_return_val_if_fail(reader != NULL, FALSE);
+    return (strcmp(vreader_get_name((VReader*)reader), SPICE_SOFTWARE_READER_NAME) == 0);
+}
+
+/**
  * spice_smartcard_reader_insert_card:
  * @reader: a #SpiceSmartcardReader
  *
commit ddc3314466f8450449f92f8eca612271a1d43a57
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Jun 13 13:13:29 2013 +0200

    Add spice_smartcard_manager_get_readers()
    
    This returns the list of smartcard readers known to a given
    SpiceSmartcardManager. This is useful to check whether a software
    smartcard reader is available or not.

diff --git a/gtk/map-file b/gtk/map-file
index 0419ecb..a0b7330 100644
--- a/gtk/map-file
+++ b/gtk/map-file
@@ -91,6 +91,7 @@ spice_session_verify_get_type;
 spice_set_session_option;
 spice_smartcard_channel_get_type;
 spice_smartcard_manager_get;
+spice_smartcard_manager_get_readers;
 spice_smartcard_manager_get_type;
 spice_smartcard_manager_insert_card;
 spice_smartcard_manager_remove_card;
diff --git a/gtk/smartcard-manager.c b/gtk/smartcard-manager.c
index 366e2dd..6709d56 100644
--- a/gtk/smartcard-manager.c
+++ b/gtk/smartcard-manager.c
@@ -580,6 +580,45 @@ gboolean spice_smartcard_reader_remove_card(SpiceSmartcardReader *reader)
 }
 
 /**
+ * spice_smartcard_manager_get_readers:
+ *
+ * manager: a #SpiceSmartcardManager
+ *
+ * Gets the list of smartcard readers that are currently available, they
+ * can be either software (emulated) readers, or hardware ones.
+ *
+ * Returns: (element-type SpiceSmartcardReader) (transfer full): a newly
+ * allocated list of SpiceSmartcardReader instances, or NULL if none were
+ * found. When no longer needed, the list must be freed after unreferencing
+ * its elements with g_boxed_free()
+ */
+GList *spice_smartcard_manager_get_readers(SpiceSmartcardManager *manager)
+{
+
+    GList *readers = NULL;
+    VReaderList *vreader_list;
+    VReaderListEntry *entry;
+
+    vreader_list = vreader_get_reader_list();
+
+    if (vreader_list == NULL)
+        return NULL;
+
+    for (entry = vreader_list_get_first(vreader_list);
+         entry != NULL;
+         entry = vreader_list_get_next(entry)) {
+        VReader *reader;
+
+        reader = vreader_list_get_reader(entry);
+        g_warn_if_fail(reader != NULL);
+        readers = g_list_prepend(readers, vreader_reference(reader));
+    }
+    vreader_list_delete(vreader_list);
+
+    return g_list_reverse(readers);
+}
+
+/**
  * spice_smartcard_manager_insert_card:
  * @manager: a #SpiceSmartcardManager
  *
@@ -669,4 +708,9 @@ gboolean spice_smartcard_reader_remove_card(SpiceSmartcardReader *reader)
     return FALSE;
 }
 
+GList *spice_smartcard_manager_get_readers(SpiceSmartcardManager *manager)
+{
+    return NULL;
+}
+
 #endif /* USE_SMARTCARD */
diff --git a/gtk/smartcard-manager.h b/gtk/smartcard-manager.h
index ac00be8..698357b 100644
--- a/gtk/smartcard-manager.h
+++ b/gtk/smartcard-manager.h
@@ -73,6 +73,7 @@ gboolean spice_smartcard_manager_remove_card(SpiceSmartcardManager *manager);
 gboolean spice_smartcard_reader_is_software(SpiceSmartcardReader *reader);
 gboolean spice_smartcard_reader_insert_card(SpiceSmartcardReader *reader);
 gboolean spice_smartcard_reader_remove_card(SpiceSmartcardReader *reader);
+GList *spice_smartcard_manager_get_readers(SpiceSmartcardManager *manager);
 
 G_END_DECLS
 
diff --git a/gtk/spice-glib-sym-file b/gtk/spice-glib-sym-file
index 3db6a0c..2b172d0 100644
--- a/gtk/spice-glib-sym-file
+++ b/gtk/spice-glib-sym-file
@@ -67,6 +67,7 @@ spice_session_verify_get_type
 spice_set_session_option
 spice_smartcard_channel_get_type
 spice_smartcard_manager_get
+spice_smartcard_manager_get_readers
 spice_smartcard_manager_get_type
 spice_smartcard_manager_insert_card
 spice_smartcard_manager_remove_card
commit 6885473bf49e7c81cd807983e5d178bd972e8d0c
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Wed Jun 12 22:40:01 2013 +0200

    smartcard: Add methods to act on software readers
    
    Currently, the methods to insert/remove smartcards from a software
    smartcard reader are global to the SpiceSmartcardManager singleton
    rather than acting on a SpiceSmartcardreader object.
    This commit adds insert/remove methods acting on such objects.

diff --git a/gtk/map-file b/gtk/map-file
index 558a4d7..0419ecb 100644
--- a/gtk/map-file
+++ b/gtk/map-file
@@ -95,7 +95,9 @@ spice_smartcard_manager_get_type;
 spice_smartcard_manager_insert_card;
 spice_smartcard_manager_remove_card;
 spice_smartcard_reader_get_type;
+spice_smartcard_reader_insert_card;
 spice_smartcard_reader_is_software;
+spice_smartcard_reader_remove_card;
 spice_usb_device_get_description;
 spice_usb_device_get_type;
 spice_usb_device_manager_can_redirect_device;
diff --git a/gtk/smartcard-manager.c b/gtk/smartcard-manager.c
index 3b86dfb..366e2dd 100644
--- a/gtk/smartcard-manager.c
+++ b/gtk/smartcard-manager.c
@@ -536,6 +536,50 @@ gboolean spice_smartcard_manager_init_finish(SpiceSession *session,
 }
 
 /**
+ * spice_smartcard_reader_insert_card:
+ * @reader: a #SpiceSmartcardReader
+ *
+ * Simulates insertion of a smartcard in the software smartcard reader
+ * @reader. If @reader is not a software smartcard reader, FALSE will be
+ * returned.
+ *
+ * Returns: TRUE if insertion of a card was successfully simulated, FALSE
+ * otherwise
+ */
+gboolean spice_smartcard_reader_insert_card(SpiceSmartcardReader *reader)
+{
+    VCardEmulError status;
+
+    g_return_val_if_fail(spice_smartcard_reader_is_software(reader), FALSE);
+
+    status = vcard_emul_force_card_insert((VReader *)reader);
+
+    return (status == VCARD_EMUL_OK);
+}
+
+/**
+ * spice_smartcard_reader_remove_card:
+ * @reader: a #SpiceSmartcardReader
+ *
+ * Simulates removal of a smartcard from the software smartcard reader
+ * @reader. If @reader is not a software smartcard reader, FALSE will be
+ * returned.
+ *
+ * Returns: TRUE if removal of a card was successfully simulated, FALSE
+ * otherwise
+ */
+gboolean spice_smartcard_reader_remove_card(SpiceSmartcardReader *reader)
+{
+    VCardEmulError status;
+
+    g_return_val_if_fail(spice_smartcard_reader_is_software(reader), FALSE);
+
+    status = vcard_emul_force_card_remove((VReader *)reader);
+
+    return (status == VCARD_EMUL_OK);
+}
+
+/**
  * spice_smartcard_manager_insert_card:
  * @manager: a #SpiceSmartcardManager
  *
@@ -550,14 +594,13 @@ gboolean spice_smartcard_manager_init_finish(SpiceSession *session,
  */
 gboolean spice_smartcard_manager_insert_card(SpiceSmartcardManager *manager)
 {
-    VCardEmulError status;
+    SpiceSmartcardReader *reader;
 
-    if (manager->priv->software_reader != NULL)
-        return FALSE;
+    g_return_val_if_fail (manager->priv->software_reader != NULL, FALSE);
 
-    status = vcard_emul_force_card_insert(manager->priv->software_reader);
+    reader = (SpiceSmartcardReader *)manager->priv->software_reader;
 
-    return (status == VCARD_EMUL_OK);
+    return spice_smartcard_reader_insert_card(reader);
 }
 
 /**
@@ -573,14 +616,13 @@ gboolean spice_smartcard_manager_insert_card(SpiceSmartcardManager *manager)
  */
 gboolean spice_smartcard_manager_remove_card(SpiceSmartcardManager *manager)
 {
-    VCardEmulError status;
+    SpiceSmartcardReader *reader;
 
-    if (manager->priv->software_reader != NULL)
-        return FALSE;
+    g_return_val_if_fail (manager->priv->software_reader != NULL, FALSE);
 
-    status = vcard_emul_force_card_remove(manager->priv->software_reader);
+    reader = (SpiceSmartcardReader *)manager->priv->software_reader;
 
-    return (status == VCARD_EMUL_OK);
+    return spice_smartcard_reader_remove_card(reader);
 }
 #else
 gboolean spice_smartcard_reader_is_software(SpiceSmartcardReader *reader)
@@ -616,4 +658,15 @@ gboolean spice_smartcard_manager_remove_card(SpiceSmartcardManager *manager)
 {
     return FALSE;
 }
+
+gboolean spice_smartcard_reader_insert_card(SpiceSmartcardReader *reader)
+{
+    return FALSE;
+}
+
+gboolean spice_smartcard_reader_remove_card(SpiceSmartcardReader *reader)
+{
+    return FALSE;
+}
+
 #endif /* USE_SMARTCARD */
diff --git a/gtk/smartcard-manager.h b/gtk/smartcard-manager.h
index 65c6934..ac00be8 100644
--- a/gtk/smartcard-manager.h
+++ b/gtk/smartcard-manager.h
@@ -71,6 +71,8 @@ SpiceSmartcardManager *spice_smartcard_manager_get(void);
 gboolean spice_smartcard_manager_insert_card(SpiceSmartcardManager *manager);
 gboolean spice_smartcard_manager_remove_card(SpiceSmartcardManager *manager);
 gboolean spice_smartcard_reader_is_software(SpiceSmartcardReader *reader);
+gboolean spice_smartcard_reader_insert_card(SpiceSmartcardReader *reader);
+gboolean spice_smartcard_reader_remove_card(SpiceSmartcardReader *reader);
 
 G_END_DECLS
 
diff --git a/gtk/spice-glib-sym-file b/gtk/spice-glib-sym-file
index 5a580d6..3db6a0c 100644
--- a/gtk/spice-glib-sym-file
+++ b/gtk/spice-glib-sym-file
@@ -71,7 +71,9 @@ spice_smartcard_manager_get_type
 spice_smartcard_manager_insert_card
 spice_smartcard_manager_remove_card
 spice_smartcard_reader_get_type
+spice_smartcard_reader_insert_card
 spice_smartcard_reader_is_software
+spice_smartcard_reader_remove_card
 spice_usb_device_get_description
 spice_usb_device_get_type
 spice_usb_device_manager_can_redirect_device
commit 579be67f26e7569a78c5dace9adbc771182198df
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Wed Jun 12 12:17:51 2013 +0200

    smartcard: Report failure when software reader is missing
    
    As there is no easy way to know if the SpiceSmartcardManager
    has an associated software reader or not, it's better to report
    failure instead of g_return_if_fail on attempts to use
    spice_smartcard_manager_insert/remove_card with no software reader
    available.

diff --git a/gtk/smartcard-manager.c b/gtk/smartcard-manager.c
index 51f228a..3b86dfb 100644
--- a/gtk/smartcard-manager.c
+++ b/gtk/smartcard-manager.c
@@ -552,7 +552,8 @@ gboolean spice_smartcard_manager_insert_card(SpiceSmartcardManager *manager)
 {
     VCardEmulError status;
 
-    g_return_val_if_fail(manager->priv->software_reader != NULL, FALSE);
+    if (manager->priv->software_reader != NULL)
+        return FALSE;
 
     status = vcard_emul_force_card_insert(manager->priv->software_reader);
 
@@ -574,7 +575,8 @@ gboolean spice_smartcard_manager_remove_card(SpiceSmartcardManager *manager)
 {
     VCardEmulError status;
 
-    g_return_val_if_fail(manager->priv->software_reader != NULL, FALSE);
+    if (manager->priv->software_reader != NULL)
+        return FALSE;
 
     status = vcard_emul_force_card_remove(manager->priv->software_reader);
 


More information about the Spice-commits mailing list