From 2e6302e2a48d08ed1a80212302bad1e74bc4e6d0ea3df7d975a141932ddeb3f7 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 23 Dec 2013 18:01:18 +0000 Subject: [PATCH 1/2] Accepting request 211792 from openSUSE:Factory:Staging:upower - Add gnome-session-upower.patch -- Only support UPower 0.9 (backport). - Remove upower-glib dependency. OBS-URL: https://build.opensuse.org/request/show/211792 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-session?expand=0&rev=196 --- gnome-session-upower.patch | 334 +++++++++++++++++++++++++++++++++++++ gnome-session.changes | 7 + gnome-session.spec | 4 +- 3 files changed, 344 insertions(+), 1 deletion(-) create mode 100644 gnome-session-upower.patch diff --git a/gnome-session-upower.patch b/gnome-session-upower.patch new file mode 100644 index 0000000..4d6e759 --- /dev/null +++ b/gnome-session-upower.patch @@ -0,0 +1,334 @@ +From 3b518cadecf07f3885b2207152fff92e4f4aaff1 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Thu, 17 Oct 2013 08:41:51 -0400 +Subject: [PATCH] Only support UPower 0.9 + +Newer UPower drops support for APIs that duplicate systemd/logind, so +if we detect it, then require consumers to use the systemd backend. + +https://bugzilla.gnome.org/show_bug.cgi?id=710383 +--- + configure.ac | 10 +++++++++- + gnome-session/Makefile.am | 8 ++++++-- + gnome-session/gsm-system.c | 4 ++++ + 3 files changed, 19 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index bb3d02b..b470d3d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -64,11 +64,18 @@ PKG_CHECK_MODULES(GNOME_SESSION, + glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + ) + ++dnl We can only support old upower ++dnl https://bugzilla.gnome.org/show_bug.cgi?id=710383 ++PKG_CHECK_MODULES(UPOWER, upower-glib <= 0.9.22, have_old_upower=yes, have_old_upower=no) ++AS_IF([test x$have_old_upower = xyes], [ ++ AC_DEFINE([HAVE_OLD_UPOWER], [1], [Define if we have an older upower]) ++]) ++AM_CONDITIONAL(HAVE_OLD_UPOWER, test x$have_old_upower = xyes) ++ + PKG_CHECK_MODULES(SESSION_PROPERTIES, + glib-2.0 >= $GLIB_REQUIRED + gtk+-3.0 >= $GTK3_REQUIRED +@ -366,6 +373,7 @@ echo " + XRender support: ${have_xrender} + XSync support: ${have_xsync} + XTest support: ${have_xtest} ++ Legacy UPower backend: ${have_old_upower} + Build Docbook: ${enable_docbook_docs} + Build manpages: ${enable_man} + +diff --git a/gnome-session/Makefile.am b/gnome-session/Makefile.am +index 977a398..c7ae617 100644 +--- a/gnome-session/Makefile.am ++++ b/gnome-session/Makefile.am +@@ -10,6 +10,7 @@ noinst_PROGRAMS = \ + AM_CPPFLAGS = \ + $(GTK3_CFLAGS) \ + $(GNOME_SESSION_CFLAGS) \ ++ $(UPOWER_CFLAGS) \ + $(DISABLE_DEPRECATED_CFLAGS) + + AM_CFLAGS = $(WARN_CFLAGS) +@@ -29,8 +30,6 @@ gnome_session_SOURCES = \ + gsm-fail-whale.c \ + gsm-system.h \ + gsm-system.c \ +- gsm-consolekit.c \ +- gsm-consolekit.h \ + gsm-systemd.h \ + gsm-systemd.c \ + gsm-presence.h \ +@@ -60,6 +59,10 @@ gnome_session_SOURCES = \ + gsm-xsmp-server.c \ + gsm-xsmp-server.h + ++if HAVE_OLD_UPOWER ++gnome_session_SOURCES += gsm-consolekit.c gsm-consolekit.h ++endif ++ + gnome_session_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + $(X11_CFLAGS) \ +@@ -86,6 +89,7 @@ gnome_session_LDADD = \ + $(XTEST_LIBS) \ + $(XEXT_LIBS) \ + $(GNOME_SESSION_LIBS) \ ++ $(UPOWER_LIBS) \ + $(GCONF_LIBS) \ + $(SYSTEMD_LIBS) \ + $(GIOUNIX_LIBS) \ +diff --git a/gnome-session/gsm-system.c b/gnome-session/gsm-system.c +index 0be1bf7..c0ad962 100644 +--- a/gnome-session/gsm-system.c ++++ b/gnome-session/gsm-system.c +@@ -24,7 +24,9 @@ + #include + + #include "gsm-system.h" ++#ifdef HAVE_OLD_UPOWER + #include "gsm-consolekit.h" ++#endif + #include "gsm-systemd.h" + + enum { +@@ -202,12 +204,14 @@ gsm_get_system (void) + g_debug ("Using systemd for session tracking"); + } + } ++#ifdef HAVE_OLD_UPOWER + if (system == NULL) { + system = GSM_SYSTEM (gsm_consolekit_new ()); + if (system != NULL) { + g_debug ("Using ConsoleKit for session tracking"); + } + } ++#endif + + return g_object_ref (system); + } +--- gnome-session-3.10.1.orig/Makefile.in 2013-10-11 07:13:15.000000000 -0500 ++++ gnome-session-3.10.1/Makefile.in 2013-12-09 17:26:59.675530843 -0600 +@@ -319,6 +319,8 @@ + STRIP = @STRIP@ + SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@ + SYSTEMD_LIBS = @SYSTEMD_LIBS@ ++UPOWER_CFLAGS = @UPOWER_CFLAGS@ ++UPOWER_LIBS = @UPOWER_LIBS@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ + WARN_CFLAGS = @WARN_CFLAGS@ +--- gnome-session-3.10.1.orig/configure 2013-10-11 07:13:14.000000000 -0500 ++++ gnome-session-3.10.1/configure 2013-12-09 17:27:06.074530566 -0600 +@@ -726,6 +726,10 @@ + X11_CFLAGS + SESSION_PROPERTIES_LIBS + SESSION_PROPERTIES_CFLAGS ++HAVE_OLD_UPOWER_FALSE ++HAVE_OLD_UPOWER_TRUE ++UPOWER_LIBS ++UPOWER_CFLAGS + GNOME_SESSION_LIBS + GNOME_SESSION_CFLAGS + GTK3_LIBS +@@ -907,6 +911,8 @@ + GTK3_LIBS + GNOME_SESSION_CFLAGS + GNOME_SESSION_LIBS ++UPOWER_CFLAGS ++UPOWER_LIBS + SESSION_PROPERTIES_CFLAGS + SESSION_PROPERTIES_LIBS + X11_CFLAGS +@@ -1618,6 +1624,9 @@ + C compiler flags for GNOME_SESSION, overriding pkg-config + GNOME_SESSION_LIBS + linker flags for GNOME_SESSION, overriding pkg-config ++ UPOWER_CFLAGS ++ C compiler flags for UPOWER, overriding pkg-config ++ UPOWER_LIBS linker flags for UPOWER, overriding pkg-config + SESSION_PROPERTIES_CFLAGS + C compiler flags for SESSION_PROPERTIES, overriding pkg-config + SESSION_PROPERTIES_LIBS +@@ -12603,14 +12612,12 @@ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED + gio-2.0 >= \$GLIB_REQUIRED + dbus-glib-1 >= \$DBUS_GLIB_REQUIRED +- upower-glib >= \$UPOWER_REQUIRED + json-glib-1.0 >= \$JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= \$GNOME_DESKTOP_REQUIRED + \""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + ") 2>&5 +@@ -12620,7 +12627,6 @@ + pkg_cv_GNOME_SESSION_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + " 2>/dev/null` +@@ -12638,14 +12644,12 @@ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_REQUIRED + gio-2.0 >= \$GLIB_REQUIRED + dbus-glib-1 >= \$DBUS_GLIB_REQUIRED +- upower-glib >= \$UPOWER_REQUIRED + json-glib-1.0 >= \$JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= \$GNOME_DESKTOP_REQUIRED + \""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + ") 2>&5 +@@ -12655,7 +12659,6 @@ + pkg_cv_GNOME_SESSION_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + " 2>/dev/null` +@@ -12682,7 +12685,6 @@ + GNOME_SESSION_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + " 2>&1` +@@ -12690,7 +12692,6 @@ + GNOME_SESSION_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + " 2>&1` +@@ -12701,7 +12702,6 @@ + as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_REQUIRED + gio-2.0 >= $GLIB_REQUIRED + dbus-glib-1 >= $DBUS_GLIB_REQUIRED +- upower-glib >= $UPOWER_REQUIRED + json-glib-1.0 >= $JSON_GLIB_REQUIRED + gnome-desktop-3.0 >= $GNOME_DESKTOP_REQUIRED + ) were not met: +@@ -12739,6 +12739,93 @@ + + + pkg_failed=no ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UPOWER" >&5 ++$as_echo_n "checking for UPOWER... " >&6; } ++ ++if test -n "$UPOWER_CFLAGS"; then ++ pkg_cv_UPOWER_CFLAGS="$UPOWER_CFLAGS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"upower-glib <= 0.9.22\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "upower-glib <= 0.9.22") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_UPOWER_CFLAGS=`$PKG_CONFIG --cflags "upower-glib <= 0.9.22" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++if test -n "$UPOWER_LIBS"; then ++ pkg_cv_UPOWER_LIBS="$UPOWER_LIBS" ++ elif test -n "$PKG_CONFIG"; then ++ if test -n "$PKG_CONFIG" && \ ++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"upower-glib <= 0.9.22\""; } >&5 ++ ($PKG_CONFIG --exists --print-errors "upower-glib <= 0.9.22") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; then ++ pkg_cv_UPOWER_LIBS=`$PKG_CONFIG --libs "upower-glib <= 0.9.22" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ++else ++ pkg_failed=yes ++fi ++ else ++ pkg_failed=untried ++fi ++ ++ ++ ++if test $pkg_failed = yes; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi ++ if test $_pkg_short_errors_supported = yes; then ++ UPOWER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "upower-glib <= 0.9.22" 2>&1` ++ else ++ UPOWER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "upower-glib <= 0.9.22" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$UPOWER_PKG_ERRORS" >&5 ++ ++ have_old_upower=no ++elif test $pkg_failed = untried; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ have_old_upower=no ++else ++ UPOWER_CFLAGS=$pkg_cv_UPOWER_CFLAGS ++ UPOWER_LIBS=$pkg_cv_UPOWER_LIBS ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ have_old_upower=yes ++fi ++if test x$have_old_upower = xyes; then : ++ ++ ++$as_echo "#define HAVE_OLD_UPOWER 1" >>confdefs.h ++ ++ ++fi ++ if test x$have_old_upower = xyes; then ++ HAVE_OLD_UPOWER_TRUE= ++ HAVE_OLD_UPOWER_FALSE='#' ++else ++ HAVE_OLD_UPOWER_TRUE='#' ++ HAVE_OLD_UPOWER_FALSE= ++fi ++ ++ ++ ++pkg_failed=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SESSION_PROPERTIES" >&5 + $as_echo_n "checking for SESSION_PROPERTIES... " >&6; } + +@@ -16039,6 +16126,10 @@ + as_fn_error $? "conditional \"BUILD_SESSION_SELECTOR\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi ++if test -z "${HAVE_OLD_UPOWER_TRUE}" && test -z "${HAVE_OLD_UPOWER_FALSE}"; then ++ as_fn_error $? "conditional \"HAVE_OLD_UPOWER\" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi + if test -z "${HAVE_SYSTEMD_TRUE}" && test -z "${HAVE_SYSTEMD_FALSE}"; then + as_fn_error $? "conditional \"HAVE_SYSTEMD\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/gnome-session.changes b/gnome-session.changes index 0c07076..22fb478 100644 --- a/gnome-session.changes +++ b/gnome-session.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Dec 9 23:35:01 UTC 2013 - mgorse@suse.com + +- Add gnome-session-upower.patch -- Only support UPower 0.9 (backport). + +- Remove upower-glib dependency. + ------------------------------------------------------------------- Fri Oct 11 15:27:13 UTC 2013 - dimstar@opensuse.org diff --git a/gnome-session.spec b/gnome-session.spec index aca422b..4bdc843 100644 --- a/gnome-session.spec +++ b/gnome-session.spec @@ -30,6 +30,8 @@ Source1: gnome Source2: gnome.desktop # PATCH-FIX-UPSTREAM gnome-session-ice-auth-for-suid.patch hpj@novell.com -- Carries ICE auth over to other UIDs in this session using an env var. Patch0: gnome-session-ice-auth-for-suid.patch +# PATCH-FEATURE-UPSTREAM gnome-session-upower.patch mgorse@suse.com -- Only support UPower 0.9. +Patch1: gnome-session-upower.patch BuildRequires: fdupes BuildRequires: gnome-common BuildRequires: hicolor-icon-theme @@ -52,7 +54,6 @@ BuildRequires: pkgconfig(libsystemd-daemon) BuildRequires: pkgconfig(libsystemd-login) %endif BuildRequires: pkgconfig(sm) -BuildRequires: pkgconfig(upower-glib) >= 0.9.0 BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xau) BuildRequires: pkgconfig(xcomposite) @@ -121,6 +122,7 @@ functional GNOME desktop. # Disabled, as it fails #translation-update-upstream %patch0 -p1 +%patch1 -p1 %build NOCONFIGURE=1 gnome-autogen.sh From 447938f6d08477318d34f2db8742f26bf654f2d9d82e6931402325faff3f94d5 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 23 Dec 2013 18:06:16 +0000 Subject: [PATCH 2/2] tweak OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-session?expand=0&rev=197 --- gnome-session.changes | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnome-session.changes b/gnome-session.changes index 22fb478..56c47c4 100644 --- a/gnome-session.changes +++ b/gnome-session.changes @@ -1,9 +1,11 @@ ------------------------------------------------------------------- Mon Dec 9 23:35:01 UTC 2013 - mgorse@suse.com -- Add gnome-session-upower.patch -- Only support UPower 0.9 (backport). - -- Remove upower-glib dependency. +- Add gnome-session-upower.patch: Only use UPower API when building + against UPower <= 0.9.22. In any other case, the respective + functionality is provided by systemd. +- Drop pkgconfig(upower-glib) BuildRequires: due to above patch, + there is no longer any need for UPower. ------------------------------------------------------------------- Fri Oct 11 15:27:13 UTC 2013 - dimstar@opensuse.org