summaryrefslogtreecommitdiff
path: root/community/cinnamon-screensaver
diff options
context:
space:
mode:
Diffstat (limited to 'community/cinnamon-screensaver')
-rw-r--r--community/cinnamon-screensaver/PKGBUILD16
-rw-r--r--community/cinnamon-screensaver/cinnamon-screensaver.pam2
-rw-r--r--community/cinnamon-screensaver/fix-dbus-compatibility.patch245
-rw-r--r--community/cinnamon-screensaver/gnome-autogen.sh538
4 files changed, 244 insertions, 557 deletions
diff --git a/community/cinnamon-screensaver/PKGBUILD b/community/cinnamon-screensaver/PKGBUILD
index ae1e35a1e..6b80d2ca0 100644
--- a/community/cinnamon-screensaver/PKGBUILD
+++ b/community/cinnamon-screensaver/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=cinnamon-screensaver
pkgver=1.7.1
-pkgrel=5
+pkgrel=6
pkgdesc="Screensaver designed to integrate well with the Cinnamon desktop."
arch=('i686' 'x86_64')
license=('GPL')
@@ -18,26 +18,19 @@ source=($pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-screensav
cinnamon-screensaver.desktop
cinnamon2d-screensaver.desktop
cinnamon-screensaver.pam
- gnome-autogen.sh
configure.patch
fix-dbus-compatibility.patch)
-
sha256sums=('055abbc24305dad5efa609b354e01fdc367792ccac5383df4b28090ab0bf64e1'
'2f29a72991deb5cc2b44da06f49d1115148fee6a0a22b1abfecee1c1661abcaa'
'335df8f2fb270484829d94995622521f0a42a12d6887f7de827db34fc81f583a'
- '99457b683c2e766a8c09a75ca906e3e00db6d294bb204a2e7a2a05c2e6b1d77e'
- '827276b01e658afb8045fb0dcbebb54f679ef47dac482f4399e1839369277ccc'
+ 'b6ea9e2eb586d94bcabb617a8f1c2958111df87afdbb51f645882bccdc15cbda'
'fed5f1f94404fab13c5369f4106b0b498cff2bb71351cae4f3d9c27f417f5e6a'
- '9013004395a401e99ce6685abb8319eb1e9ddd888c4fa6a7e45729fb93d285d1')
+ '50fa77bafc666f1aa32945a6d06d4e7c5e50bce1d98738de74075fb634cf6197')
build() {
cd $pkgname-$pkgver
- cp ${srcdir}/gnome-autogen.sh .
- sed -i 's/\ --warn-all\ --warn-error//' src/Makefile.am
- sed -i 's/gnome-autogen.sh/.\/gnome-autogen.sh/g' autogen.sh
- chmod +x gnome-autogen.sh
-
+ # Fix build with automake 1.13
patch -uNp2 -r- -i ${srcdir}/configure.patch
# Fix compatibility with gnome-screensaver's D-Bus interface and various fixes
@@ -47,7 +40,6 @@ build() {
--libexecdir=/usr/lib/cinnamon-screensaver \
--localstatedir=/var \
--with-mit-ext --with-systemd
-
make
}
diff --git a/community/cinnamon-screensaver/cinnamon-screensaver.pam b/community/cinnamon-screensaver/cinnamon-screensaver.pam
index fd8d42d03..8d3baf085 100644
--- a/community/cinnamon-screensaver/cinnamon-screensaver.pam
+++ b/community/cinnamon-screensaver/cinnamon-screensaver.pam
@@ -1,3 +1,3 @@
#%PAM-1.0
-auth required pam_unix_auth.so nullok
+auth substack system-login
-auth optional pam_gnome_keyring.so
diff --git a/community/cinnamon-screensaver/fix-dbus-compatibility.patch b/community/cinnamon-screensaver/fix-dbus-compatibility.patch
index fa53f6fac..d4c27a0b1 100644
--- a/community/cinnamon-screensaver/fix-dbus-compatibility.patch
+++ b/community/cinnamon-screensaver/fix-dbus-compatibility.patch
@@ -1,8 +1,20 @@
+From e43385126cf6f5187f98f940b8c04c3e99202b0b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Thu, 28 Feb 2013 05:45:12 +0100
+Subject: [PATCH 1/4] Fix crashing and compatibility with gnome-screensaver's
+ D-Bus interface
+
+---
+ src/cinnamon-screensaver-command.c | 4 ++--
+ src/gs-listener-dbus.c | 10 ++++++++--
+ src/gs-manager.c | 14 +++++++++++---
+ 3 files changed, 21 insertions(+), 7 deletions(-)
+
diff --git a/src/cinnamon-screensaver-command.c b/src/cinnamon-screensaver-command.c
index 4267bd0..5c90916 100644
--- a/src/cinnamon-screensaver-command.c
+++ b/src/cinnamon-screensaver-command.c
-@@ -311,11 +311,11 @@ do_command (GDBusConnection *connection)
+@@ -311,11 +311,11 @@
if (do_lock) {
if (g_strcmp0 (away_message, "DEFAULT") == 0) {
@@ -20,7 +32,7 @@ diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c
index 2a98aee..6dbf12d 100644
--- a/src/gs-listener-dbus.c
+++ b/src/gs-listener-dbus.c
-@@ -653,6 +653,8 @@ do_introspect (DBusConnection *connection,
+@@ -653,6 +653,8 @@ enum {
xml = g_string_append (xml,
" <interface name=\""GS_INTERFACE"\">\n"
" <method name=\"Lock\">\n"
@@ -29,7 +41,7 @@ index 2a98aee..6dbf12d 100644
" <arg name=\"body\" direction=\"in\" type=\"s\"/>\n"
" </method>\n"
" <method name=\"SimulateUserActivity\">\n"
-@@ -744,6 +746,10 @@ listener_dbus_handle_session_message (DBusConnection *connection,
+@@ -744,6 +746,10 @@ enum {
g_return_val_if_fail (message != NULL, DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
if (dbus_message_is_method_call (message, GS_SERVICE, "Lock")) {
@@ -40,7 +52,7 @@ index 2a98aee..6dbf12d 100644
return listener_lock (listener, connection, message);
}
if (dbus_message_is_method_call (message, GS_SERVICE, "Quit")) {
-@@ -906,7 +912,7 @@ listener_dbus_handle_system_message (DBusConnection *connection,
+@@ -906,7 +912,7 @@ enum {
} else if (dbus_message_is_signal (message, SYSTEMD_LOGIND_SESSION_INTERFACE, "Lock")) {
if (_listener_message_path_is_our_session (listener, message)) {
gs_debug ("systemd requested session lock");
@@ -49,7 +61,7 @@ index 2a98aee..6dbf12d 100644
}
return DBUS_HANDLER_RESULT_HANDLED;
-@@ -948,7 +954,7 @@ listener_dbus_handle_system_message (DBusConnection *connection,
+@@ -948,7 +954,7 @@ enum {
} else if (dbus_message_is_signal (message, CK_SESSION_INTERFACE, "Lock")) {
if (_listener_message_path_is_our_session (listener, message)) {
gs_debug ("ConsoleKit requested session lock");
@@ -62,7 +74,7 @@ diff --git a/src/gs-manager.c b/src/gs-manager.c
index 1544921..bc09cb9 100644
--- a/src/gs-manager.c
+++ b/src/gs-manager.c
-@@ -1275,10 +1275,18 @@ void
+@@ -1275,10 +1275,18 @@ enum {
gs_manager_set_away_message (GSManager *manager,
const char *message)
{
@@ -84,3 +96,224 @@ index 1544921..bc09cb9 100644
for (l = manager->priv->windows; l; l = l->next) {
gs_window_set_away_message (l->data, manager->priv->away_message);
}
+--
+1.8.1.6
+
+
+From 4db01451afbb246213f483805f81a77c4c7371a3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Fri, 1 Mar 2013 05:17:46 +0100
+Subject: [PATCH 2/4] Update dbus document with the new LockMessage method
+
+---
+ doc/dbus-interface.html | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/doc/dbus-interface.html b/doc/dbus-interface.html
+index faff26c..c9f95ba 100644
+--- a/doc/dbus-interface.html
++++ b/doc/dbus-interface.html
+@@ -2,6 +2,8 @@
+             <code class="email">&lt;<a class="email" href="mailto:mccann@jhu.edu">mccann@jhu.edu</a>&gt;</code><br>
+           </p></div></div></div></div></div><div><p class="releaseinfo">Version 1.7.1</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#dbus-interface">1. DBUS Interface</a></span></dt><dd><dl><dt><span class="sect1"><a href="#gs-intro">Introduction</a></span></dt><dt><span class="sect1"><a href="#gs-methods">Methods</a></span></dt><dd><dl><dt><span class="sect2"><a href="#gs-method-Lock">
+ <code class="literal">Lock</code>
++ </a></span></dt><dt><span class="sect2"><a href="#gs-method-LockMessage">
++ <code class="literal">LockMessage</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-Cycle">
+ <code class="literal">Cycle</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-SimulateUserActivity">
+@@ -30,6 +32,8 @@
+ <code class="literal">AuthenticationRequestEnd</code>
+ </a></span></dt></dl></dd><dt><span class="sect1"><a href="#gs-examples">Examples</a></span></dt></dl></dd></dl></div><div class="chapter" title="Chapter 1. DBUS Interface"><div class="titlepage"><div><div><h2 class="title"><a name="dbus-interface"></a>Chapter 1. DBUS Interface</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#gs-intro">Introduction</a></span></dt><dt><span class="sect1"><a href="#gs-methods">Methods</a></span></dt><dd><dl><dt><span class="sect2"><a href="#gs-method-Lock">
+ <code class="literal">Lock</code>
++ </a></span></dt><dt><span class="sect2"><a href="#gs-method-LockMessage">
++ <code class="literal">LockMessage</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-Cycle">
+ <code class="literal">Cycle</code>
+ </a></span></dt><dt><span class="sect2"><a href="#gs-method-SimulateUserActivity">
+@@ -70,7 +74,11 @@
+ <code class="literal">Lock</code>
+ </h3></div></div></div><p>
+ Request that the screen be locked.
+- </p></div><div class="sect2" title="Cycle"><div class="titlepage"><div><div><h3 class="title"><a name="gs-method-Cycle"></a>
++ </p></div><div class="sect2" title="LockMessage"><div class="titlepage"><div><div><h3 class="title"><a name="gs-method-LockMessage"></a>
++ <code class="literal">LockMessage</code>
++ </h3></div></div></div><p>
++ Request that the screen be locked, and set an away message.
++ </p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>in</td><td>string</td><td>the away message</td></tr></tbody></table></div></div><div class="sect2" title="Cycle"><div class="titlepage"><div><div><h3 class="title"><a name="gs-method-Cycle"></a>
+ <code class="literal">Cycle</code>
+ </h3></div></div></div><p>
+ Request that the screen saver theme be restarted and, if applicable,
+--
+1.8.1.6
+
+
+From 7141e8ce04921ab6d46648cba20c691b8d8f8e0b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Sat, 2 Mar 2013 08:11:45 +0100
+Subject: [PATCH 3/4] Revert "Fixed away_message shown as "(null)" (using a
+ prefix to explicitly mark custom away messages)"
+
+This reverts commit bf1f42b9f9a673091b0f7bf1118781b2d95c88fd.
+---
+ src/cinnamon-screensaver-command.c | 9 +-------
+ src/gs-window-x11.c | 43 ++++++++++++--------------------------
+ 2 files changed, 14 insertions(+), 38 deletions(-)
+
+diff --git a/src/cinnamon-screensaver-command.c b/src/cinnamon-screensaver-command.c
+index 5c90916..dbcac8a 100644
+--- a/src/cinnamon-screensaver-command.c
++++ b/src/cinnamon-screensaver-command.c
+@@ -310,14 +310,7 @@
+ }
+
+ if (do_lock) {
+- if (g_strcmp0 (away_message, "DEFAULT") == 0) {
+- reply = screensaver_send_message_string (connection, "LockMessage", away_message);
+- }
+- else {
+- gchar * custom_message = g_strdup_printf("CUSTOM###%s", away_message);
+- reply = screensaver_send_message_string (connection, "LockMessage", custom_message);
+- g_free (custom_message);
+- }
++ reply = screensaver_send_message_string (connection, "LockMessage", away_message);
+ if (reply == NULL) {
+ g_message ("Did not receive a reply from the screensaver.");
+ goto done;
+diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c
+index 6858509..0e3bb6f 100644
+--- a/src/gs-window-x11.c
++++ b/src/gs-window-x11.c
+@@ -2132,38 +2132,21 @@ enum {
+ return utf8_name;
+ }
+
+-static gchar *
+-str_replace(const char *string, const char *delimiter, const char *replacement)
+-{
+- gchar **split;
+- gchar *ret;
+- g_return_val_if_fail(string != NULL, NULL);
+- g_return_val_if_fail(delimiter != NULL, NULL);
+- g_return_val_if_fail(replacement != NULL, NULL);
+- split = g_strsplit(string, delimiter, 0);
+- ret = g_strjoinv(replacement, split);
+- g_strfreev(split);
+- return ret;
+-}
+-
+ static void
+ update_clock (GSWindow *window)
+-{
+- char *markup;
+- char *away_message;
+-
+- if (window->priv->away_message != NULL && g_str_has_prefix (window->priv->away_message, "CUSTOM###") && g_strcmp0(window->priv->away_message, "") != 0) {
+- away_message = str_replace(window->priv->away_message, "CUSTOM###", "");
+- away_message = g_strdup_printf (_("%s: \"%s\""), get_user_display_name(), away_message);
+- }
+- else {
+- away_message = g_strdup_printf (_("%s"), window->priv->default_message);
+- }
+-
+- markup = g_strdup_printf ("%s\n<b><span font_desc=\"Ubuntu 10\" foreground=\"#FFFFFF\">%s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message);
+- gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup);
+- g_free (markup);
+- g_free (away_message);
++{
++ char *markup;
++ char *away_message;
++ if (g_strcmp0(window->priv->away_message, "DEFAULT") == 0 || g_strcmp0(window->priv->away_message, "") == 0) {
++ away_message = g_strdup_printf (_("%s"), window->priv->default_message);
++ }
++ else {
++ away_message = g_strdup_printf (_("%s: \"%s\""), get_user_display_name(), window->priv->away_message);
++ }
++ markup = g_strdup_printf ("%s\n<b><span font_desc=\"Ubuntu 10\" foreground=\"#FFFFFF\">%s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message);
++ gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup);
++ g_free (markup);
++ g_free (away_message);
+ }
+
+ static void
+--
+1.8.1.6
+
+
+From 1ed6a959746e115a7f33de2134921c6572185ebd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Sat, 2 Mar 2013 08:13:04 +0100
+Subject: [PATCH 4/4] Simplify away message handling
+
+---
+ src/cinnamon-screensaver-command.c | 19 ++++++++++++-------
+ src/gs-window-x11.c | 7 +++----
+ 2 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/src/cinnamon-screensaver-command.c b/src/cinnamon-screensaver-command.c
+index dbcac8a..4836f81 100644
+--- a/src/cinnamon-screensaver-command.c
++++ b/src/cinnamon-screensaver-command.c
+@@ -41,7 +41,7 @@
+ static gboolean do_query = FALSE;
+ static gboolean do_time = FALSE;
+
+-static gchar *away_message = "DEFAULT";
++static gchar *away_message;
+
+ static GOptionEntry entries [] = {
+ { "exit", 0, 0, G_OPTION_ARG_NONE, &do_quit,
+@@ -114,7 +114,7 @@
+ static GDBusMessage *
+ screensaver_send_message_string (GDBusConnection *connection,
+ const char *name,
+- gboolean value)
++ gchar *value)
+ {
+ GDBusMessage *message, *reply;
+ GError *error;
+@@ -310,12 +310,17 @@
+ }
+
+ if (do_lock) {
+- reply = screensaver_send_message_string (connection, "LockMessage", away_message);
+- if (reply == NULL) {
+- g_message ("Did not receive a reply from the screensaver.");
+- goto done;
++ if (away_message) {
++ reply = screensaver_send_message_string (connection, "LockMessage", away_message);
++ if (reply == NULL) {
++ g_message ("Did not receive a reply from the screensaver.");
++ goto done;
++ }
++ g_object_unref (reply);
++ } else {
++ reply = screensaver_send_message_void (connection, "Lock", FALSE);
++ g_assert (reply == NULL);
+ }
+- g_object_unref (reply);
+ }
+
+ if (do_activate) {
+diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c
+index 0e3bb6f..22f5471 100644
+--- a/src/gs-window-x11.c
++++ b/src/gs-window-x11.c
+@@ -2137,11 +2137,10 @@ enum {
+ {
+ char *markup;
+ char *away_message;
+- if (g_strcmp0(window->priv->away_message, "DEFAULT") == 0 || g_strcmp0(window->priv->away_message, "") == 0) {
+- away_message = g_strdup_printf (_("%s"), window->priv->default_message);
+- }
+- else {
++ if (window->priv->away_message && g_strcmp0(window->priv->away_message, "") != 0) {
+ away_message = g_strdup_printf (_("%s: \"%s\""), get_user_display_name(), window->priv->away_message);
++ } else {
++ away_message = g_strdup_printf (_("%s"), window->priv->default_message);
+ }
+ markup = g_strdup_printf ("%s\n<b><span font_desc=\"Ubuntu 10\" foreground=\"#FFFFFF\">%s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message);
+ gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup);
+--
+1.8.1.6
+
diff --git a/community/cinnamon-screensaver/gnome-autogen.sh b/community/cinnamon-screensaver/gnome-autogen.sh
deleted file mode 100644
index 2467a1de2..000000000
--- a/community/cinnamon-screensaver/gnome-autogen.sh
+++ /dev/null
@@ -1,538 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-#name of package
-test "$PKG_NAME" || PKG_NAME=Package
-test "$srcdir" || srcdir=.
-
-# default version requirements ...
-test "$REQUIRED_AUTOCONF_VERSION" || REQUIRED_AUTOCONF_VERSION=2.53
-test "$REQUIRED_AUTOMAKE_VERSION" || REQUIRED_AUTOMAKE_VERSION=1.9
-test "$REQUIRED_LIBTOOL_VERSION" || REQUIRED_LIBTOOL_VERSION=1.4.3
-test "$REQUIRED_GETTEXT_VERSION" || REQUIRED_GETTEXT_VERSION=0.10.40
-test "$REQUIRED_GLIB_GETTEXT_VERSION" || REQUIRED_GLIB_GETTEXT_VERSION=2.2.0
-test "$REQUIRED_INTLTOOL_VERSION" || REQUIRED_INTLTOOL_VERSION=0.25
-test "$REQUIRED_PKG_CONFIG_VERSION" || REQUIRED_PKG_CONFIG_VERSION=0.14.0
-test "$REQUIRED_GTK_DOC_VERSION" || REQUIRED_GTK_DOC_VERSION=1.0
-test "$REQUIRED_DOC_COMMON_VERSION" || REQUIRED_DOC_COMMON_VERSION=2.3.0
-test "$REQUIRED_GNOME_DOC_UTILS_VERSION" || REQUIRED_GNOME_DOC_UTILS_VERSION=0.4.2
-
-# a list of required m4 macros. Package can set an initial value
-test "$REQUIRED_M4MACROS" || REQUIRED_M4MACROS=
-test "$FORBIDDEN_M4MACROS" || FORBIDDEN_M4MACROS=
-
-# Not all echo versions allow -n, so we check what is possible. This test is
-# based on the one in autoconf.
-ECHO_C=
-ECHO_N=
-case `echo -n x` in
--n*)
- case `echo 'x\c'` in
- *c*) ;;
- *) ECHO_C='\c';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-# some terminal codes ...
-if tty < /dev/null 1>/dev/null 2>&1; then
- boldface="`tput bold 2>/dev/null`"
- normal="`tput sgr0 2>/dev/null`"
-else
- boldface=
- normal=
-fi
-printbold() {
- echo $ECHO_N "$boldface" $ECHO_C
- echo "$@"
- echo $ECHO_N "$normal" $ECHO_C
-}
-printerr() {
- echo "$@" >&2
-}
-
-# Usage:
-# compare_versions MIN_VERSION ACTUAL_VERSION
-# returns true if ACTUAL_VERSION >= MIN_VERSION
-compare_versions() {
- ch_min_version=$1
- ch_actual_version=$2
- ch_status=0
- IFS="${IFS= }"; ch_save_IFS="$IFS"; IFS="."
- set $ch_actual_version
- for ch_min in $ch_min_version; do
- ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes
- if [ -z "$ch_min" ]; then break; fi
- if [ -z "$ch_cur" ]; then ch_status=1; break; fi
- if [ $ch_cur -gt $ch_min ]; then break; fi
- if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi
- done
- IFS="$ch_save_IFS"
- return $ch_status
-}
-
-# Usage:
-# version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE
-# checks to see if the package is available
-version_check() {
- vc_package=$1
- vc_variable=$2
- vc_checkprogs=$3
- vc_min_version=$4
- vc_source=$5
- vc_status=1
-
- vc_checkprog=`eval echo "\\$$vc_variable"`
- if [ -n "$vc_checkprog" ]; then
- printbold "using $vc_checkprog for $vc_package"
- return 0
- fi
-
- if test "x$vc_package" = "xautomake" -a "x$vc_min_version" = "x1.4"; then
- vc_comparator="="
- else
- vc_comparator=">="
- fi
- printbold "checking for $vc_package $vc_comparator $vc_min_version..."
- for vc_checkprog in $vc_checkprogs; do
- echo $ECHO_N " testing $vc_checkprog... " $ECHO_C
- if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then
- vc_actual_version=`$vc_checkprog --version | head -n 1 | \
- sed 's/^.*[ ]\([0-9.]*[a-z]*\).*$/\1/'`
- if compare_versions $vc_min_version $vc_actual_version; then
- echo "found $vc_actual_version"
- # set variables
- eval "$vc_variable=$vc_checkprog; \
- ${vc_variable}_VERSION=$vc_actual_version"
- vc_status=0
- break
- else
- echo "too old (found version $vc_actual_version)"
- fi
- else
- echo "not found."
- fi
- done
- if [ "$vc_status" != 0 ]; then
- printerr "***Error***: You must have $vc_package $vc_comparator $vc_min_version installed"
- printerr " to build $PKG_NAME. Download the appropriate package for"
- printerr " from your distribution or get the source tarball at"
- printerr " $vc_source"
- printerr
- exit $vc_status
- fi
- return $vc_status
-}
-
-# Usage:
-# require_m4macro filename.m4
-# adds filename.m4 to the list of required macros
-require_m4macro() {
- case "$REQUIRED_M4MACROS" in
- $1\ * | *\ $1\ * | *\ $1) ;;
- *) REQUIRED_M4MACROS="$REQUIRED_M4MACROS $1" ;;
- esac
-}
-
-forbid_m4macro() {
- case "$FORBIDDEN_M4MACROS" in
- $1\ * | *\ $1\ * | *\ $1) ;;
- *) FORBIDDEN_M4MACROS="$FORBIDDEN_M4MACROS $1" ;;
- esac
-}
-
-# Usage:
-# add_to_cm_macrodirs dirname
-# Adds the dir to $cm_macrodirs, if it's not there yet.
-add_to_cm_macrodirs() {
- case $cm_macrodirs in
- "$1 "* | *" $1 "* | *" $1") ;;
- *) cm_macrodirs="$cm_macrodirs $1";;
- esac
-}
-
-# Usage:
-# print_m4macros_error
-# Prints an error message saying that autoconf macros were misused
-print_m4macros_error() {
- printerr "***Error***: some autoconf macros required to build $PKG_NAME"
- printerr " were not found in your aclocal path, or some forbidden"
- printerr " macros were found. Perhaps you need to adjust your"
- printerr " ACLOCAL_FLAGS?"
- printerr
-}
-
-# Usage:
-# check_m4macros
-# Checks that all the requested macro files are in the aclocal macro path
-# Uses REQUIRED_M4MACROS and ACLOCAL variables.
-check_m4macros() {
- # construct list of macro directories
- cm_macrodirs=`$ACLOCAL --print-ac-dir`
- # aclocal also searches a version specific dir, eg. /usr/share/aclocal-1.9
- # but it contains only Automake's own macros, so we can ignore it.
-
- # Read the dirlist file, supported by Automake >= 1.7.
- # If AUTOMAKE was defined, no version was detected.
- if [ -z "$AUTOMAKE_VERSION" ] || compare_versions 1.7 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then
- cm_dirlist=`sed 's/[ ]*#.*//;/^$/d' $cm_macrodirs/dirlist`
- if [ -n "$cm_dirlist" ] ; then
- for cm_dir in $cm_dirlist; do
- if [ -d $cm_dir ]; then
- add_to_cm_macrodirs $cm_dir
- fi
- done
- fi
- fi
-
- # Parse $ACLOCAL_FLAGS
- set - $ACLOCAL_FLAGS
- while [ $# -gt 0 ]; do
- if [ "$1" = "-I" ]; then
- add_to_cm_macrodirs "$2"
- shift
- fi
- shift
- done
-
- cm_status=0
- if [ -n "$REQUIRED_M4MACROS" ]; then
- printbold "Checking for required M4 macros..."
- # check that each macro file is in one of the macro dirs
- for cm_macro in $REQUIRED_M4MACROS; do
- cm_macrofound=false
- for cm_dir in $cm_macrodirs; do
- if [ -f "$cm_dir/$cm_macro" ]; then
- cm_macrofound=true
- break
- fi
- # The macro dir in Cygwin environments may contain a file
- # called dirlist containing other directories to look in.
- if [ -f "$cm_dir/dirlist" ]; then
- for cm_otherdir in `cat $cm_dir/dirlist`; do
- if [ -f "$cm_otherdir/$cm_macro" ]; then
- cm_macrofound=true
- break
- fi
- done
- fi
- done
- if $cm_macrofound; then
- :
- else
- printerr " $cm_macro not found"
- cm_status=1
- fi
- done
- fi
- if [ "$cm_status" != 0 ]; then
- print_m4macros_error
- exit $cm_status
- fi
- if [ -n "$FORBIDDEN_M4MACROS" ]; then
- printbold "Checking for forbidden M4 macros..."
- # check that each macro file is in one of the macro dirs
- for cm_macro in $FORBIDDEN_M4MACROS; do
- cm_macrofound=false
- for cm_dir in $cm_macrodirs; do
- if [ -f "$cm_dir/$cm_macro" ]; then
- cm_macrofound=true
- break
- fi
- done
- if $cm_macrofound; then
- printerr " $cm_macro found (should be cleared from macros dir)"
- cm_status=1
- fi
- done
- fi
- if [ "$cm_status" != 0 ]; then
- print_m4macros_error
- exit $cm_status
- fi
-}
-
-# try to catch the case where the macros2/ directory hasn't been cleared out.
-forbid_m4macro gnome-cxx-check.m4
-
-want_libtool=false
-want_gettext=false
-want_glib_gettext=false
-want_intltool=false
-want_pkg_config=false
-want_gtk_doc=false
-want_gnome_doc_utils=false
-want_maintainer_mode=false
-
-find_configure_files() {
- configure_ac=
- if test -f "$1/configure.ac"; then
- configure_ac="$1/configure.ac"
- elif test -f "$1/configure.in"; then
- configure_ac="$1/configure.in"
- fi
- if test "x$configure_ac" != x; then
- echo "$configure_ac"
- # TODO We have not detected the right autoconf yet!
- autoconf -t 'AC_CONFIG_SUBDIRS:$1' "$configure_ac" | while read dir; do
- find_configure_files "$1/$dir"
- done
- fi
-}
-
-configure_files="`find_configure_files $srcdir`"
-
-for configure_ac in $configure_files; do
- dirname=`dirname $configure_ac`
- if [ -f $dirname/NO-AUTO-GEN ]; then
- echo skipping $dirname -- flagged as no auto-gen
- continue
- fi
- if grep "^A[CM]_PROG_LIBTOOL" $configure_ac >/dev/null ||
- grep "^LT_INIT" $configure_ac >/dev/null; then
- want_libtool=true
- fi
- if grep "^AM_GNU_GETTEXT" $configure_ac >/dev/null; then
- want_gettext=true
- fi
- if grep "^AM_GLIB_GNU_GETTEXT" $configure_ac >/dev/null; then
- want_glib_gettext=true
- fi
- if grep "^AC_PROG_INTLTOOL" $configure_ac >/dev/null ||
- grep "^IT_PROG_INTLTOOL" $configure_ac >/dev/null; then
- want_intltool=true
- fi
- if grep "^PKG_CHECK_MODULES" $configure_ac >/dev/null; then
- want_pkg_config=true
- fi
- if grep "^GTK_DOC_CHECK" $configure_ac >/dev/null; then
- want_gtk_doc=true
- fi
- if grep "^GNOME_DOC_INIT" $configure_ac >/dev/null; then
- want_gnome_doc_utils=true
- fi
-
- # check that AM_MAINTAINER_MODE is used
- if grep "^AM_MAINTAINER_MODE" $configure_ac >/dev/null; then
- want_maintainer_mode=true
- fi
-
- if grep "^YELP_HELP_INIT" $configure_ac >/dev/null; then
- require_m4macro yelp.m4
- fi
-
- # check to make sure gnome-common macros can be found ...
- if grep "^GNOME_COMMON_INIT" $configure_ac >/dev/null ||
- grep "^GNOME_DEBUG_CHECK" $configure_ac >/dev/null ||
- grep "^GNOME_MAINTAINER_MODE_DEFINES" $configure_ac >/dev/null; then
- require_m4macro gnome-common.m4
- fi
- if grep "^GNOME_COMPILE_WARNINGS" $configure_ac >/dev/null ||
- grep "^GNOME_CXX_WARNINGS" $configure_ac >/dev/null; then
- require_m4macro gnome-compiler-flags.m4
- fi
- if grep "^GNOME_CODE_COVERAGE" $configure_ac >/dev/null; then
- require_m4macro gnome-code-coverage.m4
- fi
-done
-
-#tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13
-WANT_AUTOCONF_2_5=1
-export WANT_AUTOCONF_2_5
-version_check autoconf AUTOCONF 'autoconf2.50 autoconf autoconf-2.53' $REQUIRED_AUTOCONF_VERSION \
- "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz"
-AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/`
-
-case $REQUIRED_AUTOMAKE_VERSION in
- 1.4*) automake_progs="automake-1.4" ;;
- 1.5*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8 automake-1.7 automake-1.6 automake-1.5" ;;
- 1.6*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8 automake-1.7 automake-1.6" ;;
- 1.7*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8 automake-1.7" ;;
- 1.8*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9 automake-1.8" ;;
- 1.9*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9" ;;
- 1.10*) automake_progs="automake-1.13 automake-1.12 automake-1.11 automake-1.10" ;;
- 1.11*) automake_progs="automake-1.13 automake-1.12 automake-1.11" ;;
- 1.12*) automake_progs="automake-1.13 automake-1.12" ;;
- 1.13*) automake_progs="automake-1.13" ;;
-esac
-version_check automake AUTOMAKE "$automake_progs" $REQUIRED_AUTOMAKE_VERSION \
- "http://ftp.gnu.org/pub/gnu/automake/automake-$REQUIRED_AUTOMAKE_VERSION.tar.gz"
-ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/`
-
-if $want_libtool; then
- version_check libtool LIBTOOLIZE "libtoolize glibtoolize" $REQUIRED_LIBTOOL_VERSION \
- "http://ftp.gnu.org/pub/gnu/libtool/libtool-$REQUIRED_LIBTOOL_VERSION.tar.gz"
- require_m4macro libtool.m4
-fi
-
-if $want_gettext; then
- version_check gettext GETTEXTIZE gettextize $REQUIRED_GETTEXT_VERSION \
- "http://ftp.gnu.org/pub/gnu/gettext/gettext-$REQUIRED_GETTEXT_VERSION.tar.gz"
- require_m4macro gettext.m4
-fi
-
-if $want_glib_gettext; then
- version_check glib-gettext GLIB_GETTEXTIZE glib-gettextize $REQUIRED_GLIB_GETTEXT_VERSION \
- "ftp://ftp.gtk.org/pub/gtk/v2.2/glib-$REQUIRED_GLIB_GETTEXT_VERSION.tar.gz"
- require_m4macro glib-gettext.m4
-fi
-
-if $want_intltool; then
- version_check intltool INTLTOOLIZE intltoolize $REQUIRED_INTLTOOL_VERSION \
- "http://ftp.gnome.org/pub/GNOME/sources/intltool/"
- require_m4macro intltool.m4
-fi
-
-if $want_pkg_config; then
- version_check pkg-config PKG_CONFIG pkg-config $REQUIRED_PKG_CONFIG_VERSION \
- "'http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-$REQUIRED_PKG_CONFIG_VERSION.tar.gz"
- require_m4macro pkg.m4
-fi
-
-if $want_gtk_doc; then
- version_check gtk-doc GTKDOCIZE gtkdocize $REQUIRED_GTK_DOC_VERSION \
- "http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/"
- require_m4macro gtk-doc.m4
-fi
-
-if $want_gnome_doc_utils; then
- version_check gnome-doc-utils GNOME_DOC_PREPARE gnome-doc-prepare $REQUIRED_GNOME_DOC_UTILS_VERSION \
- "http://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/"
-fi
-
-if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then
- version_check gnome-common DOC_COMMON gnome-doc-common \
- $REQUIRED_DOC_COMMON_VERSION " "
-fi
-
-check_m4macros
-
-if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then
- printerr "**Warning**: I am going to run \`configure' with no arguments."
- printerr "If you wish to pass any to it, please specify them on the"
- printerr \`$0\'" command line."
- printerr
-fi
-
-topdir=`pwd`
-for configure_ac in $configure_files; do
- dirname=`dirname $configure_ac`
- basename=`basename $configure_ac`
- if [ -f $dirname/NO-AUTO-GEN ]; then
- echo skipping $dirname -- flagged as no auto-gen
- elif [ ! -w $dirname ]; then
- echo skipping $dirname -- directory is read only
- else
- printbold "Processing $configure_ac"
- cd $dirname
-
- # Note that the order these tools are called should match what
- # autoconf's "autoupdate" package does. See bug 138584 for
- # details.
-
- # programs that might install new macros get run before aclocal
- if grep "^A[CM]_PROG_LIBTOOL" $basename >/dev/null ||
- grep "^LT_INIT" $basename >/dev/null; then
- printbold "Running $LIBTOOLIZE..."
- $LIBTOOLIZE --force --copy || exit 1
- fi
-
- if grep "^AM_GLIB_GNU_GETTEXT" $basename >/dev/null; then
- printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages."
- echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1
- elif grep "^AM_GNU_GETTEXT" $basename >/dev/null; then
- if grep "^AM_GNU_GETTEXT_VERSION" $basename > /dev/null; then
- printbold "Running autopoint..."
- autopoint --force || exit 1
- else
- printbold "Running $GETTEXTIZE... Ignore non-fatal messages."
- echo "no" | $GETTEXTIZE --force --copy || exit 1
- fi
- fi
-
- if grep "^AC_PROG_INTLTOOL" $basename >/dev/null ||
- grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then
- printbold "Running $INTLTOOLIZE..."
- $INTLTOOLIZE --force --copy --automake || exit 1
- fi
- if grep "^GTK_DOC_CHECK" $basename >/dev/null; then
- printbold "Running $GTKDOCIZE..."
- $GTKDOCIZE --copy || exit 1
- fi
-
- if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then
- printbold "Running gnome-doc-common..."
- gnome-doc-common --copy || exit 1
- fi
- if grep "^GNOME_DOC_INIT" $basename >/dev/null; then
- printbold "Running $GNOME_DOC_PREPARE..."
- $GNOME_DOC_PREPARE --force --copy || exit 1
- fi
-
- # Now run aclocal to pull in any additional macros needed
-
- # if the AC_CONFIG_MACRO_DIR() macro is used, pass that
- # directory to aclocal.
- m4dir=`cat "$basename" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
- if [ -n "$m4dir" ]; then
- m4dir="-I $m4dir"
- fi
- printbold "Running $ACLOCAL..."
- $ACLOCAL $m4dir $ACLOCAL_FLAGS || exit 1
-
- if grep "GNOME_AUTOGEN_OBSOLETE" aclocal.m4 >/dev/null; then
- printerr "*** obsolete gnome macros were used in $configure_ac"
- fi
-
- # Now that all the macros are sorted, run autoconf and autoheader ...
- printbold "Running $AUTOCONF..."
- $AUTOCONF || exit 1
- if grep "^A[CM]_CONFIG_HEADER" $basename >/dev/null; then
- printbold "Running $AUTOHEADER..."
- $AUTOHEADER || exit 1
- # this prevents automake from thinking config.h.in is out of
- # date, since autoheader doesn't touch the file if it doesn't
- # change.
- test -f config.h.in && touch config.h.in
- fi
-
- # Finally, run automake to create the makefiles ...
- printbold "Running $AUTOMAKE..."
- if [ -f COPYING ]; then
- cp -pf COPYING COPYING.autogen_bak
- fi
- if [ -f INSTALL ]; then
- cp -pf INSTALL INSTALL.autogen_bak
- fi
- if [ $REQUIRED_AUTOMAKE_VERSION != 1.4 ]; then
- $AUTOMAKE --gnu --add-missing --copy -Wno-portability || exit 1
- else
- $AUTOMAKE --gnu --add-missing --copy || exit 1
- fi
- if [ -f COPYING.autogen_bak ]; then
- cmp COPYING COPYING.autogen_bak > /dev/null || cp -pf COPYING.autogen_bak COPYING
- rm -f COPYING.autogen_bak
- fi
- if [ -f INSTALL.autogen_bak ]; then
- cmp INSTALL INSTALL.autogen_bak > /dev/null || cp -pf INSTALL.autogen_bak INSTALL
- rm -f INSTALL.autogen_bak
- fi
-
- cd "$topdir"
- fi
-done
-
-conf_flags=""
-
-if $want_maintainer_mode; then
- conf_flags="--enable-maintainer-mode"
-fi
-
-if test x$NOCONFIGURE = x; then
- printbold Running $srcdir/configure $conf_flags "$@" ...
- $srcdir/configure $conf_flags "$@" \
- && echo Now type \`make\' to compile $PKG_NAME || exit 1
-else
- echo Skipping configure process.
-fi