[gnome-initial-setup] Make the PackageKit dependency optional
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] Make the PackageKit dependency optional
- Date: Thu, 1 Sep 2016 15:52:05 +0000 (UTC)
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]