[gnome-initial-setup] Make the PackageKit dependency optional



commit c995c1f18089234601b43d01d3c495e47120356f
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Sep 1 11:48:34 2016 -0400

    Make the PackageKit dependency optional
    
    Only show the software sources page we were built with PackageKit
    support.

 configure.ac                                       |   13 ++++++++++++-
 gnome-initial-setup/pages/software/Makefile.am     |    5 ++---
 .../pages/software/gis-software-page.c             |   14 ++++++++++++++
 3 files changed, 28 insertions(+), 4 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index a378b6f..da6b106 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,6 +27,7 @@ GNOME_DESKTOP_REQUIRED_VERSION=3.7.5
 POLKIT_REQUIRED_VERSION=0.103
 GDM_REQUIRED_VERSION=3.8.3
 GEOCLUE_REQUIRED_VERSION=2.1.2
+PACKAGEKIT_REQUIRED_VERSION=1.1.4
 
 PKG_CHECK_MODULES(INITIAL_SETUP,
                   NetworkManager >= $NETWORK_MANAGER_REQUIRED_VERSION
@@ -44,7 +45,6 @@ PKG_CHECK_MODULES(INITIAL_SETUP,
                   gio-unix-2.0 >= $GLIB_REQUIRED_VERSION
                   gdm >= $GDM_REQUIRED_VERSION
                   geoclue-2.0 >= $GEOCLUE_REQUIRED_VERSION
-                  packagekit-glib2
                   pango >= $PANGO_REQUIRED_VERSION
                   rest-0.7
                   json-glib-1.0
@@ -52,6 +52,17 @@ PKG_CHECK_MODULES(INITIAL_SETUP,
                   pwquality
                   webkit2gtk-4.0)
 
+
+AC_ARG_ENABLE(software-sources,
+              [AS_HELP_STRING([--enable-software-source],
+                              [enable software sources page])],,
+              [enable_software_sources=no])
+
+if test "$enable_software_sources" = "yes"; then
+  PKG_CHECK_MODULES(SOFTWARE_SOURCES, packagekit-glib2 >= $PACKAGEKIT_REQIORED_VERSION)
+  AC_DEFINE(ENABLE_SOFTWARE_SOURCES, [1], [Enable software sources page])
+fi
+
 GEOCLUE_DBUS_INTERFACE_XML=`pkg-config --variable=dbus_interface geoclue-2.0`
 if test "x$GEOCLUE_DBUS_INTERFACE_XML" = "x"; then
   AC_MSG_ERROR([Cannot find dbus_interface variable in geoclue-2.0.pc])
diff --git a/gnome-initial-setup/pages/software/Makefile.am b/gnome-initial-setup/pages/software/Makefile.am
index ce820ad..c067de8 100644
--- a/gnome-initial-setup/pages/software/Makefile.am
+++ b/gnome-initial-setup/pages/software/Makefile.am
@@ -1,4 +1,3 @@
-
 noinst_LTLIBRARIES = libgissoftware.la
 
 pkgdatadir = $(datadir)/gnome-initial-setup
@@ -19,8 +18,8 @@ libgissoftware_la_SOURCES =                   \
        gis-software-page.c gis-software-page.h \
        $(BUILT_SOURCES)
 
-libgissoftware_la_CFLAGS = $(INITIAL_SETUP_CFLAGS) -I "$(srcdir)/../.."
-libgissoftware_la_LIBADD = $(INITIAL_SETUP_LIBS)
+libgissoftware_la_CFLAGS = $(INITIAL_SETUP_CFLAGS) $(SOFTWARE_SOURCES_CFLAGS) -I "$(srcdir)/../.."
+libgissoftware_la_LIBADD = $(INITIAL_SETUP_LIBS) $(SOFTWARE_SOURCES_LIBS)
 libgissoftware_la_LDFLAGS = -export_dynamic -avoid-version -module -no-undefined
 
 EXTRA_DIST = software.gresource.xml $(resource_files)
diff --git a/gnome-initial-setup/pages/software/gis-software-page.c 
b/gnome-initial-setup/pages/software/gis-software-page.c
index be34282..c6bb37a 100644
--- a/gnome-initial-setup/pages/software/gis-software-page.c
+++ b/gnome-initial-setup/pages/software/gis-software-page.c
@@ -31,8 +31,10 @@
 #include <glib/gi18n.h>
 #include <gio/gio.h>
 #include <gtk/gtk.h>
+#ifdef ENABLE_SOFTWARE_SOURCES
 #define I_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE
 #include <packagekit-glib2/packagekit.h>
+#endif
 
 struct _GisSoftwarePagePrivate
 {
@@ -42,7 +44,9 @@ struct _GisSoftwarePagePrivate
 
   GSettings *software_settings;
   guint enable_count;
+#ifdef ENABLE_SOFTWARE_SOURCES
   PkTask *task;
+#endif
 };
 
 typedef struct _GisSoftwarePagePrivate GisSoftwarePagePrivate;
@@ -121,7 +125,9 @@ gis_software_page_constructed (GObject *object)
   G_OBJECT_CLASS (gis_software_page_parent_class)->constructed (object);
 
   priv->software_settings = g_settings_new ("org.gnome.software");
+#ifdef ENABLE_SOFTWARE_SOURCES
   priv->task = pk_task_new ();
+#endif
 
   gtk_switch_set_active (GTK_SWITCH (priv->proprietary_switch),
                          g_settings_get_boolean (priv->software_settings, "show-nonfree-software"));
@@ -140,7 +146,9 @@ gis_software_page_dispose (GObject *object)
   GisSoftwarePagePrivate *priv = gis_software_page_get_instance_private (page);
 
   g_clear_object (&priv->software_settings);
+#ifdef ENABLE_SOFTWARE_SOURCES
   g_clear_object (&priv->task);
+#endif
 
   G_OBJECT_CLASS (gis_software_page_parent_class)->dispose (object);
 }
@@ -150,6 +158,7 @@ repo_enabled_cb (GObject      *source,
                  GAsyncResult *res,
                  gpointer      data)
 {
+#ifdef ENABLE_SOFTWARE_SOURCES
   GisSoftwarePage *page = GIS_SOFTWARE_PAGE (data);
   GisSoftwarePagePrivate *priv = gis_software_page_get_instance_private (page);
   g_autoptr(GError) error = NULL;
@@ -174,6 +183,7 @@ repo_enabled_cb (GObject      *source,
       /* all done */
       gis_page_apply_complete (GIS_PAGE (page), TRUE);
     }
+#endif
 }
 
 gboolean
@@ -182,6 +192,7 @@ enable_repos (GisSoftwarePage *page,
               gboolean enable,
               GCancellable *cancellable)
 {
+#ifdef ENABLE_SOFTWARE_SOURCES
   GisSoftwarePagePrivate *priv = gis_software_page_get_instance_private (page);
   guint i;
 
@@ -199,6 +210,7 @@ enable_repos (GisSoftwarePage *page,
                                    repo_enabled_cb,
                                    page);
     }
+#endif
 
   return TRUE;
 }
@@ -288,8 +300,10 @@ gis_software_page_init (GisSoftwarePage *page)
 void
 gis_prepare_software_page (GisDriver *driver)
 {
+#ifdef ENABLE_SOFTWARE_SOURCES
   gis_driver_add_page (driver,
                        g_object_new (GIS_TYPE_SOFTWARE_PAGE,
                                      "driver", driver,
                                      NULL));
+#endif
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]