diff options
author | gusi <gusi@df743ca5-7f9a-e211-a948-0013205c9059> | 2014-04-03 17:15:54 +0800 |
---|---|---|
committer | gusi <gusi@df743ca5-7f9a-e211-a948-0013205c9059> | 2014-04-03 17:15:54 +0800 |
commit | b5d49c379e5e3d30a630aa1ead06ebdd6c28a933 (patch) | |
tree | 2108c21ffd30c78ca855022dbf7fb463b0a9ba4e | |
parent | 4e9c7ba071c41ff18ae579a7b8b6adce9a934ef6 (diff) | |
download | marcuscom-ports-b5d49c379e5e3d30a630aa1ead06ebdd6c28a933.tar marcuscom-ports-b5d49c379e5e3d30a630aa1ead06ebdd6c28a933.tar.gz marcuscom-ports-b5d49c379e5e3d30a630aa1ead06ebdd6c28a933.tar.bz2 marcuscom-ports-b5d49c379e5e3d30a630aa1ead06ebdd6c28a933.tar.lz marcuscom-ports-b5d49c379e5e3d30a630aa1ead06ebdd6c28a933.tar.xz marcuscom-ports-b5d49c379e5e3d30a630aa1ead06ebdd6c28a933.tar.zst marcuscom-ports-b5d49c379e5e3d30a630aa1ead06ebdd6c28a933.zip |
Fix cinnamon-session to work with the new upower, which has deprecated some
interfaces used in cinnamon-session. The patch adds a new test to configure.ac to
check if the upower installed is the old one (<0.99) or the new one. If the new
one is found we have to disable suspend/hibernate because of bad integration with
consolekit.
While here, switch to tar:xz and disable format-nonliteral and
implicit-function-declaration compile errors in the port Makefile instead of
using clang pragmas.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@19446 df743ca5-7f9a-e211-a948-0013205c9059
6 files changed, 97 insertions, 50 deletions
diff --git a/x11/cinnamon-session/Makefile b/x11/cinnamon-session/Makefile index b67b280b7..ab83f648d 100644 --- a/x11/cinnamon-session/Makefile +++ b/x11/cinnamon-session/Makefile @@ -19,17 +19,17 @@ LIB_DEPENDS= libdbus-glib-1.so:${PORTSDIR}/devel/dbus-glib \ RUN_DEPENDS= ${LOCALBASE}/sbin/console-kit-daemon:${PORTSDIR}/sysutils/consolekit \ ${LOCALBASE}/bin/xdpyinfo:${PORTSDIR}/x11/xdpyinfo -INSTALLS_ICONS= yes -USES= gettext gmake pathfix pkgconfig -USE_XZ= yes +USES= gettext gmake pathfix pkgconfig tar:xz USE_XORG= ice sm xau xext xtst xrender xtrans xcomposite USE_GL= gl USE_GNOME= gnomeprefix intltool gtk30 +INSTALLS_ICONS= yes GNU_CONFIGURE= yes USE_AUTOTOOLS= libtool autoconf automake PATHFIX_MAKEFILEIN= Makefile.am CONFIGURE_ARGS= --disable-docbook-docs -CPPFLAGS+= -I${LOCALBASE}/include -Wformat-nonliteral +CPPFLAGS+= -I${LOCALBASE}/include -Wno-error=format-nonliteral -Wno-error=implicit-function-declaration +CFLAGS+= -I${LOCALBASE}/include -Wno-error=format-nonliteral -Wno-error=implicit-function-declaration LDFLAGS+= -L${LOCALBASE}/lib GLIB_SCHEMAS= org.cinnamon.SessionManager.gschema.xml diff --git a/x11/cinnamon-session/files/patch-cinnamon-session_csm-consolekit.c b/x11/cinnamon-session/files/patch-cinnamon-session_csm-consolekit.c new file mode 100644 index 000000000..06c968c57 --- /dev/null +++ b/x11/cinnamon-session/files/patch-cinnamon-session_csm-consolekit.c @@ -0,0 +1,51 @@ +--- cinnamon-session/csm-consolekit.c.orig 2013-11-22 10:57:50.000000000 +0000 ++++ cinnamon-session/csm-consolekit.c 2014-04-03 10:54:40.480547301 +0000 +@@ -816,16 +816,22 @@ + csm_consolekit_can_suspend (CsmSystem *system) + { + CsmConsolekit *consolekit = CSM_CONSOLEKIT (system); +- ++#ifdef HAVE_OLD_UPOWER + return up_client_get_can_suspend (consolekit->priv->up_client); ++#else ++ return FALSE; ++#endif + } + + static gboolean + csm_consolekit_can_hibernate (CsmSystem *system) + { + CsmConsolekit *consolekit = CSM_CONSOLEKIT (system); +- ++#ifdef HAVE_OLD_UPOWER + return up_client_get_can_hibernate (consolekit->priv->up_client); ++#else ++ return FALSE; ++#endif + } + + static void +@@ -835,7 +841,11 @@ + GError *error = NULL; + gboolean ret; + ++#ifdef HAVE_OLD_UPOWER + ret = up_client_suspend_sync (consolekit->priv->up_client, NULL, &error); ++#else ++ ret = FALSE; ++#endif + if (!ret) { + g_warning ("Unexpected suspend failure: %s", error->message); + g_error_free (error); +@@ -849,7 +859,11 @@ + GError *error = NULL; + gboolean ret; + ++#ifdef HAVE_OLD_UPOWER + ret = up_client_hibernate_sync (consolekit->priv->up_client, NULL, &error); ++#else ++ ret = FALSE; ++#endif + if (!ret) { + g_warning ("Unexpected hibernate failure: %s", error->message); + g_error_free (error); diff --git a/x11/cinnamon-session/files/patch-cinnamon-session_csm-dbus-client.c b/x11/cinnamon-session/files/patch-cinnamon-session_csm-dbus-client.c deleted file mode 100644 index 80d6bbad1..000000000 --- a/x11/cinnamon-session/files/patch-cinnamon-session_csm-dbus-client.c +++ /dev/null @@ -1,23 +0,0 @@ ---- cinnamon-session/csm-dbus-client.c.orig 2013-11-24 01:26:24.698703150 +0000 -+++ cinnamon-session/csm-dbus-client.c 2013-11-24 01:26:58.843700902 +0000 -@@ -126,11 +126,20 @@ - char buf[512]; - DBusMessage *reply; - -+#ifdef __clang__ -+#pragma clang diagnostic push -+#pragma clang diagnostic ignored "-Wformat-nonliteral" -+#endif -+ - va_list args; - va_start (args, format); - vsnprintf (buf, sizeof (buf), format, args); - va_end (args); - -+#ifdef __clang__ -+#pragma clang diagnostic pop -+#endif -+ - reply = dbus_message_new_error (in_reply_to, error_name, buf); - if (reply == NULL) { - g_error ("No memory"); diff --git a/x11/cinnamon-session/files/patch-cinnamon-session_csm-logout-dialog.c b/x11/cinnamon-session/files/patch-cinnamon-session_csm-logout-dialog.c index 0d7d3e883..05a0ad9e2 100644 --- a/x11/cinnamon-session/files/patch-cinnamon-session_csm-logout-dialog.c +++ b/x11/cinnamon-session/files/patch-cinnamon-session_csm-logout-dialog.c @@ -1,6 +1,28 @@ ---- cinnamon-session/csm-logout-dialog.c.orig 2013-11-24 01:31:17.034682877 +0000 -+++ cinnamon-session/csm-logout-dialog.c 2013-11-24 01:32:08.618784768 +0000 -@@ -308,11 +308,20 @@ +--- cinnamon-session/csm-logout-dialog.c.orig 2013-11-22 10:57:50.000000000 +0000 ++++ cinnamon-session/csm-logout-dialog.c 2014-04-03 10:33:35.297012436 +0000 +@@ -176,13 +176,21 @@ + static gboolean + csm_logout_supports_system_suspend (CsmLogoutDialog *logout_dialog) + { ++#ifdef HAVE_OLD_UPOWER + return ( csm_system_can_suspend (logout_dialog->priv->system) || up_client_get_can_suspend (logout_dialog->priv->up_client) ); ++#else ++ return ( csm_system_can_suspend (logout_dialog->priv->system) || FALSE ); ++#endif + } + + static gboolean + csm_logout_supports_system_hibernate (CsmLogoutDialog *logout_dialog) + { ++#ifdef HAVE_OLD_UPOWER + return ( csm_system_can_hibernate (logout_dialog->priv->system) || up_client_get_can_hibernate (logout_dialog->priv->up_client) ); ++#else ++ return ( csm_system_can_hibernate (logout_dialog->priv->system) || FALSE ); ++#endif + } + + static gboolean +@@ -308,11 +316,20 @@ secondary_text = g_strdup (seconds_warning); } diff --git a/x11/cinnamon-session/files/patch-cinnamon-session_csm-util.c b/x11/cinnamon-session/files/patch-cinnamon-session_csm-util.c deleted file mode 100644 index 6c3091801..000000000 --- a/x11/cinnamon-session/files/patch-cinnamon-session_csm-util.c +++ /dev/null @@ -1,20 +0,0 @@ ---- cinnamon-session/csm-util.c.orig 2013-11-24 01:21:47.608721927 +0000 -+++ cinnamon-session/csm-util.c 2013-11-24 01:22:17.505990366 +0000 -@@ -401,10 +401,17 @@ - char *msg; - va_list args; - -+#ifdef __clang__ -+#pragma clang diagnostic push -+#pragma clang diagnostic ignored "-Wformat-nonliteral" -+#endif - va_start (args, format); - msg = g_strdup_vprintf (format, args); - va_end (args); - -+#ifdef __clang__ -+#pragma clang diagnostic pop -+#endif - /* If option parsing failed, Gtk won't have been initialized... */ - if (!gdk_display_get_default ()) { - if (!gtk_init_check (NULL, NULL)) { diff --git a/x11/cinnamon-session/files/patch-configure.ac b/x11/cinnamon-session/files/patch-configure.ac new file mode 100644 index 000000000..e4eff67f1 --- /dev/null +++ b/x11/cinnamon-session/files/patch-configure.ac @@ -0,0 +1,17 @@ +--- configure.ac.orig 2014-04-03 10:17:42.338695284 +0000 ++++ configure.ac 2014-04-03 10:17:53.064698929 +0000 +@@ -56,6 +56,14 @@ + json-glib-1.0 >= $JSON_GLIB_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.99.0, 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 |