From b3d54d8b5d90cdaaa7169a25e9c9a8823d6ef61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gy=C3=B6rgy=20Ball=C3=B3?= Date: Wed, 23 Nov 2011 22:59:19 +0100 Subject: Make APT support optional --- configure.ac | 13 +++++++++++++ src/Makefile.am | 13 +++++++++---- src/device-menu-mgr.c | 18 ++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index a6ea42f..d47d754 100644 --- a/configure.ac +++ b/configure.ac @@ -113,6 +113,18 @@ AM_CONDITIONAL(BUILD_GTKLOGOUTHELPER, test x${have_gtklogouthelper} = xyes) AC_SUBST(GTKLOGOUTHELPER_CFLAGS) AC_SUBST(GTKLOGOUTHELPER_LIBS) +########################### +# APT support +########################### +AC_ARG_ENABLE([apt], + AC_HELP_STRING([--disable-apt], [disable APT support]),, + [enable_apt=yes]) +AM_CONDITIONAL([BUILD_APT], [test "x$enable_apt" != "xno"]) + +if test "x$enable_apt" != "xno"; then + AC_DEFINE(HAVE_APT, 1, [Define to 1 to enable APT support]) +fi + ########################### # Check to see if we're local ########################### @@ -215,4 +227,5 @@ SUS Indicator Configuration: Indicator Dir: $INDICATORDIR Indicator GTK: $with_gtk Logout Helper: $have_gtklogouthelper + APT support: $enable_apt ]) diff --git a/src/Makefile.am b/src/Makefile.am index 5209869..afee66c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -107,13 +107,18 @@ indicator_session_service_SOURCES = \ user-menu-mgr.c \ device-menu-mgr.h \ device-menu-mgr.c \ - apt-watcher.h \ - apt-watcher.c \ - apt-transaction.h \ - apt-transaction.c \ udev-mgr.h \ udev-mgr.c \ sane-rules.h + +if BUILD_APT +indicator_session_service_SOURCES += \ + apt-watcher.h \ + apt-watcher.c \ + apt-transaction.h \ + apt-transaction.c +endif + indicator_session_service_CFLAGS = \ $(SESSIONSERVICE_CFLAGS) \ $(GCONF_CFLAGS) \ diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index 926090f..3858564 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -27,7 +27,11 @@ with this program. If not, see . #include "dbusmenu-shared.h" #include "lock-helper.h" #include "upower-client.h" + +#ifdef HAVE_APT #include "apt-watcher.h" +#endif /* HAVE_APT */ + #include "udev-mgr.h" #define UP_ADDRESS "org.freedesktop.UPower" @@ -41,7 +45,9 @@ struct _DeviceMenuMgr GObject parent_instance; DbusmenuMenuitem* root_item; SessionDbus* session_dbus_interface; +#ifdef HAVE_APT AptWatcher* apt_watcher; +#endif /* HAVE_APT */ UdevMgr* udev_mgr; }; @@ -51,7 +57,9 @@ static DbusmenuMenuitem *lock_menuitem = NULL; static DbusmenuMenuitem *system_settings_menuitem = NULL; static DbusmenuMenuitem *display_settings_menuitem = NULL; static DbusmenuMenuitem *login_settings_menuitem = NULL; +#ifdef HAVE_APT static DbusmenuMenuitem *software_updates_menuitem = NULL; +#endif /* HAVE_APT */ static DbusmenuMenuitem *printers_menuitem = NULL; static DbusmenuMenuitem *scanners_menuitem = NULL; static DbusmenuMenuitem *webcam_menuitem = NULL; @@ -103,7 +111,9 @@ G_DEFINE_TYPE (DeviceMenuMgr, device_menu_mgr, G_TYPE_OBJECT); static void device_menu_mgr_init (DeviceMenuMgr *self) { +#ifdef HAVE_APT self->apt_watcher = NULL; +#endif /* HAVE_APT */ self->root_item = dbusmenu_menuitem_new (); setup_up(self); g_idle_add(lock_screen_setup, NULL); @@ -485,12 +495,14 @@ static void device_menu_mgr_show_simple_scan (DbusmenuMenuitem * mi, { g_warning("Unable to launch simple-scan: %s", error->message); g_error_free(error); +#ifdef HAVE_APT if (!g_spawn_command_line_async("software-center simple-scan", &error)) { g_warning ("Unable to launch software-centre simple-scan: %s", error->message); g_error_free(error); } +#endif /* HAVE_APT */ } } @@ -503,12 +515,14 @@ static void device_menu_mgr_show_cheese (DbusmenuMenuitem * mi, { g_warning("Unable to launch cheese: %s", error->message); g_error_free(error); +#ifdef HAVE_APT if (!g_spawn_command_line_async("software-center cheese", &error)) { g_warning ("Unable to launch software-centre cheese: %s", error->message); g_error_free(error); } +#endif /* HAVE_APT */ } } @@ -547,6 +561,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) dbusmenu_menuitem_child_add_position(self->root_item, login_settings_menuitem, 2); +#ifdef HAVE_APT software_updates_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (software_updates_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, @@ -554,6 +569,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) dbusmenu_menuitem_child_add_position(self->root_item, software_updates_menuitem, 3); +#endif /* HAVE_APT */ DbusmenuMenuitem * separator1 = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (separator1, @@ -787,9 +803,11 @@ DeviceMenuMgr* device_menu_mgr_new (SessionDbus* session_dbus, gboolean greeter_ DeviceMenuMgr* device_mgr = g_object_new (DEVICE_TYPE_MENU_MGR, NULL); device_mgr->session_dbus_interface = session_dbus; device_menu_mgr_build_static_items (device_mgr, greeter_mode); +#ifdef HAVE_APT if (software_updates_menuitem != NULL) { device_mgr->apt_watcher = apt_watcher_new (session_dbus, software_updates_menuitem); } +#endif /* HAVE_APT */ return device_mgr; } -- cgit v1.2.3