summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgusi <gusi@df743ca5-7f9a-e211-a948-0013205c9059>2014-04-03 17:15:54 +0800
committergusi <gusi@df743ca5-7f9a-e211-a948-0013205c9059>2014-04-03 17:15:54 +0800
commitb5d49c379e5e3d30a630aa1ead06ebdd6c28a933 (patch)
tree2108c21ffd30c78ca855022dbf7fb463b0a9ba4e
parent4e9c7ba071c41ff18ae579a7b8b6adce9a934ef6 (diff)
downloadmarcuscom-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
-rw-r--r--x11/cinnamon-session/Makefile8
-rw-r--r--x11/cinnamon-session/files/patch-cinnamon-session_csm-consolekit.c51
-rw-r--r--x11/cinnamon-session/files/patch-cinnamon-session_csm-dbus-client.c23
-rw-r--r--x11/cinnamon-session/files/patch-cinnamon-session_csm-logout-dialog.c28
-rw-r--r--x11/cinnamon-session/files/patch-cinnamon-session_csm-util.c20
-rw-r--r--x11/cinnamon-session/files/patch-configure.ac17
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