rpms/evolution-rss/F-8 evolution-rss-0.0.7-autoreconf.patch, NONE, 1.1 evolution-rss-0.0.7-fix-detect.patch, NONE, 1.1 evolution-rss-0.0.7-libsoup-2.4.patch, NONE, 1.1 evolution-rss.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
Lucian Langa (lucilanga)
fedora-extras-commits at redhat.com
Tue Feb 19 08:14:02 UTC 2008
Author: lucilanga
Update of /cvs/pkgs/rpms/evolution-rss/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7615/F-8
Modified Files:
.cvsignore sources
Added Files:
evolution-rss-0.0.7-autoreconf.patch
evolution-rss-0.0.7-fix-detect.patch
evolution-rss-0.0.7-libsoup-2.4.patch evolution-rss.spec
Log Message:
initial import
evolution-rss-0.0.7-autoreconf.patch:
--- NEW FILE evolution-rss-0.0.7-autoreconf.patch ---
--- evolution-rss-0.0.7/Makefile.am 2007-11-23 19:05:17.000000000 +0200
+++ /work/evolution/evolution-rss/Makefile.am 2008-02-13 08:02:25.000000000 +0200
@@ -1,10 +1,14 @@
SUBDIRS = pixmaps po src
-## We dist autogen.sh since this is an example program
-## Real-world programs do not need to distribute autogen.sh
-## But there is no harm in it, and you probably should.
+ACLOCAL_AMFLAGS = -I m4
+
+INTLTOOL = \
+ intltool-extract.in \
+ intltool-merge.in \
+ intltool-update.in
EXTRA_DIST = \
+ $(INTLTOOL) \
autogen.sh \
intltool-extract.in \
intltool-merge.in \
evolution-rss-0.0.7-fix-detect.patch:
--- NEW FILE evolution-rss-0.0.7-fix-detect.patch ---
diff -Naur evolution-rss-0.0.7/ChangeLog evolution-rss/ChangeLog
--- evolution-rss-0.0.7/ChangeLog 2007-12-12 14:50:40.000000000 -0500
+++ evolution-rss/ChangeLog 2007-12-23 11:25:53.000000000 -0500
@@ -1,3 +1,9 @@
+Tue 18 Dec 2007 09:38:56 PM EET <lucilanga at gnome.org>
+
+ * fix m4 support for evolution >= 2.11
+ * fix send and receive dialog crash for
+ evolution >= 2.12
+
Wed 12 Dec 2007 10:35:41 AM EET <lucilanga at gnome.org>
* prevend evolution-import-rss import empty
diff -Naur evolution-rss-0.0.7/configure.ac evolution-rss/configure.ac
--- evolution-rss-0.0.7/configure.ac 2007-12-12 14:50:31.000000000 -0500
+++ evolution-rss/configure.ac 2007-12-23 08:30:14.000000000 -0500
@@ -68,8 +68,8 @@
AC_MSG_RESULT($EVOLUTION_VERSION)
AC_SUBST(EVOLUTION_BASE_VERSION)
AC_SUBST(EVOLUTION_EXEC_VERSION)
-if test "x$EVOLUTION_EXEC_VERSION" = "x2.12" ||
- test "x$EVOLUTION_EXEC_VERSION" = "x2.11"; then
+evolution_exec_int="$(echo "$EVOLUTION_EXEC_VERSION" | $AWK -F . '{print [$]1 * 10000 + [$]2 * 100 + [$]3}')"
+if test "$evolution_exec_int" -ge "21100"; then
AC_DEFINE_UNQUOTED(EVOLUTION_2_12,1, [evolution mail 2.12 present])
AC_SUBST(EVOLUTION_2_12)
fi
diff -Naur evolution-rss-0.0.7/src/evolution-import-rss.c evolution-rss/src/evolution-import-rss.c
--- evolution-rss-0.0.7/src/evolution-import-rss.c 2007-12-12 14:08:44.000000000 -0500
+++ evolution-rss/src/evolution-import-rss.c 2007-12-23 08:30:12.000000000 -0500
@@ -183,8 +183,12 @@
if (evo_running)
+ {
if (s)
send_dbus_message ("evolution_rss_feed", s);
+ else
+ g_print("Syntax: evolution-import-rss URL\n");
+ }
else
{
g_print("evolution repetably failed to start!\n");
diff -Naur evolution-rss-0.0.7/src/rss.c evolution-rss/src/rss.c
--- evolution-rss-0.0.7/src/rss.c 2007-12-13 13:50:03.000000000 -0500
+++ evolution-rss/src/rss.c 2007-12-23 10:33:42.000000000 -0500
@@ -3957,7 +3957,7 @@
info = g_malloc0 (sizeof (*info));
// info->type = type;
- info->uri = "feed"; //g_stddup
+ info->uri = g_strdup("feed"); //g_stddup
info->cancel = camel_operation_new (op_status, info);
info->state = SEND_ACTIVE;
evolution-rss-0.0.7-libsoup-2.4.patch:
--- NEW FILE evolution-rss-0.0.7-libsoup-2.4.patch ---
--- evolution-rss-0.0.7/configure.ac 2008-02-10 18:50:24.000000000 +0200
+++ evolution-rss/trunk/configure.ac 2008-02-10 13:20:55.000000000 +0200
@@ -73,9 +73,23 @@
AC_DEFINE_UNQUOTED(EVOLUTION_2_12,1, [evolution mail 2.12 present])
AC_SUBST(EVOLUTION_2_12)
fi
+AC_SUBST(evolution_exec_int)
+
MINOR_VERSION=`echo $EVOLUTION_EXEC_VERSION|cut -d. -f2|awk '{print 1000 * $1}'`
AC_SUBST(MINOR_VERSION)
+dnl locate libsoup flavour
+SOUP=
+PKG_CHECK_MODULES([LIBSOUP_24], libsoup-2.4, [SOUP=2.4], [SOUP=])
+if test "x$SOUP" != "x2.4"; then
+ PKG_CHECK_MODULES([LIBSOUP_22], libsoup-2.2, [SOUP=2.2], [SOUP=])
+fi
+if test "x$SOUP" == "x"; then
+ PKG_CHECK_MODULES(LIBSOUP, libsoup, [SOUP=], [])
+else
+SOUP="-$SOUP"
+fi
+
dnl base packages and versions
LIBGTK_REQUIRED=2.4.0
LIBGNOME_REQUIRED=2.7.0
@@ -88,7 +102,7 @@
[libgnome-2.0 >= $LIBGNOME_REQUIRED dnl
libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED dnl
gtk+-2.0 >= $LIBGTK_REQUIRED dnl
- libsoup-2.2 >= $LIBSOUP_REQUIRED dnl
+ libsoup$SOUP >= $LIBSOUP_REQUIRED dnl
evolution-plugin$EVOLUTION_BASE_VERSION_S >= $EVOLUTION_REQUIRED dnl
libglade-2.0 dnl
])
@@ -235,6 +249,13 @@
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
AM_GCONF_SOURCE_2
+dnl ********************
+dnl extract soup version
+dnl ********************
+SOUP_VERSION=`pkg-config --modversion libsoup$SOUP`
+SOUP_VERSION=`echo $SOUP_VERSION|$AWK -F . '{print $1 * 1000000 + $2 * 1000 + $3}'`
+AC_SUBST(SOUP_VERSION)
+
dnl ***********
dnl D-BUS stuff
dnl ***********
@@ -250,6 +271,7 @@
fi
AM_CONDITIONAL([HAVE_DBUS], [test x$have_dbus = xyes])
+
dnl I18n stuff
AC_PATH_PROG(GETTEXT, gettext, no)
if test "x$GETTEXT" = "xno"; then
--- evolution-rss-0.0.7/src/network-soup.c 2007-12-11 22:27:00.000000000 +0200
+++ evolution-rss/trunk/src/network-soup.c 2008-02-10 13:20:53.000000000 +0200
@@ -1,5 +1,5 @@
/* Evolution RSS Reader Plugin
- * Copyright (C) 2007 Lucian Langa <cooly at mips.edu.ms>
+ * Copyright (C) 2007-2008 Lucian Langa <cooly at mips.edu.ms>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -40,18 +40,31 @@
} CallbackInfo;
static void
+#if LIBSOUP_VERSION < 2003000
got_chunk_blocking_cb(SoupMessage *msg, CallbackInfo *info) {
+#else
+got_chunk_blocking_cb(SoupMessage *msg, SoupBuffer *chunk, CallbackInfo *info) {
+#endif
NetStatusProgress progress = {0};
const char* clen;
if (info->total == 0) {
+#if LIBSOUP_VERSION < 2003000
clen = soup_message_get_header(msg->response_headers,
"Content-length");
+#else
+ clen = soup_message_headers_get(msg->response_headers,
+ "Content-length");
+#endif
if (!clen)
return;
info->total = atoi(clen);
}
+#if LIBSOUP_VERSION < 2003000
info->current += msg->response.length;
+#else
+ info->current += chunk->length;
+#endif
progress.current = info->current;
progress.total = info->total;
@@ -59,18 +72,32 @@
}
static void
+#if LIBSOUP_VERSION < 2003000
got_chunk_cb(SoupMessage *msg, CallbackInfo *info) {
+#else
+got_chunk_cb(SoupMessage *msg, SoupBuffer *chunk, CallbackInfo *info) {
+#endif
+
NetStatusProgress *progress = NULL;
const char* clen;
if (info->total == 0) {
+#if LIBSOUP_VERSION < 2003000
clen = soup_message_get_header(msg->response_headers,
"Content-length");
+#else
+ clen = soup_message_headers_get(msg->response_headers,
+ "Content-length");
+#endif
if (!clen)
return;
info->total = atoi(clen);
}
+#if LIBSOUP_VERSION < 2003000
info->current += msg->response.length;
+#else
+ info->current += chunk->length;
+#endif
progress = g_new0(NetStatusProgress, 1);
progress->current = info->current;
@@ -97,59 +124,92 @@
recv_msg (SoupMessage *msg, gpointer user_data)
{
GString *response = NULL;
+#if LIBSOUP_VERSION < 2003000
response = g_string_new_len(msg->response.body, msg->response.length);
+#else
+ response = g_string_new_len(msg->response_body->data, msg->response_body->length);
+#endif
#ifdef RSS_DEBUG
g_print("got it!\n");
g_print("res:[%s]\n", response->str);
#endif
}
+static gboolean
+remove_if_match (gpointer key, gpointer value, gpointer user_data)
+{
+ if (value == user_data)
+ {
+ g_hash_table_remove(rf->key_session, key);
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
+void
+construct_abort(gpointer key, gpointer value, gpointer user_data)
+{
+ g_hash_table_insert(rf->abort_session, key, value);
+}
+
static void
unblock_free (gpointer user_data, GObject *ex_msg)
{
#ifdef RSS_DEBUG
g_print("weak ref - trying to free object\n");
#endif
+ g_hash_table_remove(rf->session, user_data);
+ g_hash_table_destroy(rf->abort_session);
+ rf->abort_session = g_hash_table_new(g_direct_hash, g_direct_equal);
+ g_hash_table_foreach(rf->session, construct_abort, NULL);
+ g_hash_table_find(rf->key_session,
+ remove_if_match,
+ user_data);
gboolean prune = soup_session_try_prune_connection (user_data);
//I really don't know if his is necesarry
//but I believe it won't hurt
if (prune)
g_object_unref(user_data);
- g_hash_table_remove(rf->session, user_data);
}
//this will insert proxy in the session
void
-proxyfy_session(SoupSession *session)
+proxify_session(SoupSession *session)
{
gboolean use_proxy =
- gconf_client_get_bool(rss_gconf, GCONF_KEY_USE_PROXY, NULL);
+ gconf_client_get_bool(rss_gconf, GCONF_KEY_USE_PROXY, NULL);
gint port_proxy =
gconf_client_get_int(rss_gconf, GCONF_KEY_PORT_PROXY, NULL);
gchar *host_proxy =
gconf_client_get_string(rss_gconf, GCONF_KEY_HOST_PROXY, NULL);
- gboolean auth_proxy =
+ gboolean auth_proxy =
gconf_client_get_bool(rss_gconf, GCONF_KEY_AUTH_PROXY, NULL);
gchar *user_proxy =
gconf_client_get_string(rss_gconf, GCONF_KEY_USER_PROXY, NULL);
gchar *pass_proxy =
gconf_client_get_string(rss_gconf, GCONF_KEY_PASS_PROXY, NULL);
-
if (use_proxy && host_proxy && port_proxy > 0)
{
gchar *proxy_uri =
g_strdup_printf("http://%s:%d/", host_proxy, port_proxy);
+#if LIBSOUP_VERSION < 2003000
SoupUri *puri = soup_uri_new (proxy_uri);
- if (auth_proxy)
- {
- puri->user = g_strdup(user_proxy);
- puri->passwd = g_strdup(pass_proxy);
- }
- g_object_set (G_OBJECT (session), SOUP_SESSION_PROXY_URI, puri, NULL);
+#else
+ SoupURI *puri = soup_uri_new (proxy_uri);
+#endif
+/* if (auth_proxy)
+ {
+ puri->user = g_strdup(user_proxy);
+ puri->passwd = g_strdup(pass_proxy);
+ }*/
+ g_object_set (G_OBJECT (session), SOUP_SESSION_PROXY_URI, puri, NULL);
+#if LIBSOUP_VERSION < 2003000
if (puri)
g_free(puri);
+#endif
if (proxy_uri)
g_free(proxy_uri);
}
@@ -239,6 +299,7 @@
}
static void
+#if LIBSOUP_VERSION < 2003000
authenticate (SoupSession *session,
SoupMessage *msg,
const char *auth_type,
@@ -246,26 +307,51 @@
char **username,
char **password,
gpointer data)
+#else
+authenticate (SoupSession *session,
+ SoupMessage *msg,
+ SoupAuth *auth,
+ gboolean retrying,
+ gpointer data)
+#endif
{
gchar *user = g_hash_table_lookup(rf->hruser, data);
gchar *pass = g_hash_table_lookup(rf->hrpass, data);
if (user && pass)
{
+#if LIBSOUP_VERSION < 2003000
*username = g_strdup(user);
*password = g_strdup(pass);
+#else
+ if (!retrying)
+ soup_auth_authenticate (auth, user, pass);
+#endif
}
else
{
+ if (rf->soup_auth_retry)
+ {
+ //means we're already tested once and probably
+ //won't try again
+ rf->soup_auth_retry = FALSE;
if (!read_up(data))
- create_user_pass_dialog(data);
-
- user = g_hash_table_lookup(rf->hruser, data);
- pass = g_hash_table_lookup(rf->hrpass, data);
- *username = g_strdup(user);
- *password = g_strdup(pass);
+ {
+ if (create_user_pass_dialog(data))
+ rf->soup_auth_retry = FALSE;
+ else
+ rf->soup_auth_retry = TRUE;
+ }
+#if LIBSOUP_VERSION < 2003000
+ *username = g_strdup(g_hash_table_lookup(rf->hruser, data));
+ *password = g_strdup(g_hash_table_lookup(rf->hrpass, data));
+#else
+ if (!retrying)
+ soup_auth_authenticate (auth, user, pass);
+#endif
+ }
}
}
-
+
static void
reauthenticate (SoupSession *session,
SoupMessage *msg,
@@ -275,9 +361,23 @@
char **password,
gpointer data)
{
- create_user_pass_dialog(data);
- *username = g_strdup(g_hash_table_lookup(rf->hruser, data));
- *password = g_strdup(g_hash_table_lookup(rf->hrpass, data));
+ gchar *user, *pass;
+ if (rf->soup_auth_retry)
+ {
+ //means we're already tested once and probably
+ //won't try again
+ rf->soup_auth_retry = FALSE;
+ if (create_user_pass_dialog(data))
+ {
+ rf->soup_auth_retry = FALSE;
+ }
+ else
+ {
+ rf->soup_auth_retry = TRUE;
+ }
+ *username = g_strdup(g_hash_table_lookup(rf->hruser, data));
+ *password = g_strdup(g_hash_table_lookup(rf->hrpass, data));
+ }
}
static int
@@ -287,6 +387,7 @@
g_main_loop_quit (data);
}
+
gboolean
net_get_unblocking(const char *url, NetStatusCallback cb,
gpointer data, gpointer cb2,
@@ -299,7 +400,7 @@
// soup_session_async_new_with_options(SOUP_SESSION_TIMEOUT, SS_TIMEOUT, NULL);
soup_session_async_new();
-// proxyfy_session(soup_sess);
+ proxify_session(soup_sess);
info = g_new0(CallbackInfo, 1);
info->user_cb = cb;
info->user_data = data;
@@ -307,11 +408,17 @@
info->total = 0;
if (!rf->session)
rf->session = g_hash_table_new(g_direct_hash, g_direct_equal);
+ if (!rf->abort_session)
+ rf->abort_session = g_hash_table_new(g_direct_hash, g_direct_equal);
+ if (!rf->key_session)
+ rf->key_session = g_hash_table_new(g_direct_hash, g_direct_equal);
g_signal_connect (soup_sess, "authenticate",
G_CALLBACK (authenticate), (gpointer)url);
+#if LIBSOUP_VERSION < 2003000
g_signal_connect (soup_sess, "reauthenticate",
G_CALLBACK (reauthenticate), (gpointer)url);
+#endif
/* Queue an async HTTP request */
msg = soup_message_new ("GET", url);
@@ -319,17 +426,25 @@
{
g_set_error(err, NET_ERROR, NET_ERROR_GENERIC,
soup_status_get_phrase(2)); //invalid url
+ g_print("status:%s\n", soup_status_get_phrase(2)); //invalid url
return -1;
}
g_hash_table_insert(rf->session, soup_sess, msg);
+ g_hash_table_insert(rf->abort_session, soup_sess, msg);
+ g_hash_table_insert(rf->key_session, data, soup_sess);
gchar *agstr = g_strdup_printf("Evolution/%s; Evolution-RSS/%s",
- EVOLUTION_VERSION, VERSION);
+ EVOLUTION_VERSION_STRING, VERSION);
+#if LIBSOUP_VERSION < 2003000
soup_message_add_header (msg->request_headers, "User-Agent",
agstr);
+#else
+ soup_message_headers_append (msg->request_headers, "User-Agent",
+ agstr);
+#endif
g_free(agstr);
- g_signal_connect(G_OBJECT(msg), "got-chunk",
+ g_signal_connect(G_OBJECT(msg), "got_chunk",
G_CALLBACK(got_chunk_cb), info); //FIXME Find a way to free this maybe weak_ref
soup_session_queue_message (soup_sess, msg,
@@ -337,6 +452,7 @@
g_object_add_weak_pointer (G_OBJECT(msg), (gpointer)info);
g_object_weak_ref (G_OBJECT(msg), unblock_free, soup_sess);
+// g_object_weak_ref (G_OBJECT(soup_sess), unblock_free, soup_sess);
// GMainLoop *mainloop = g_main_loop_new (g_main_context_default (), FALSE);
// g_timeout_add (10 * 1000, &conn_mainloop_quit, mainloop);
return 1;
@@ -346,7 +462,11 @@
net_post_blocking(const char *url, GSList *headers, GString *post,
NetStatusCallback cb, gpointer data,
GError **err) {
+#if LIBSOUP_VERSION < 2003000
SoupUri *suri = NULL;
+#else
+ SoupURI *suri = NULL;
+#endif
SoupMessage *req = NULL;
GString *response = NULL;
CallbackInfo info = { cb, data, 0, 0 };
@@ -360,8 +480,10 @@
g_signal_connect (soup_sess, "authenticate",
G_CALLBACK (authenticate), soup_sess);
+#if LIBSOUP_VERSION < 2003000
g_signal_connect (soup_sess, "reauthenticate",
G_CALLBACK (reauthenticate), soup_sess);
+#endif
suri = soup_uri_new(url);
if (!suri)
@@ -379,16 +501,25 @@
* a bit. */
char *colonpos = strchr(header, ':');
*colonpos = 0;
+#if LIBSOUP_VERSION < 2003000
soup_message_add_header(req->request_headers, header, colonpos+1);
+#else
+ soup_message_headers_append(req->request_headers, header, colonpos+1);
+#endif
*colonpos = ':';
}
gchar *agstr = g_strdup_printf("Evolution/%s; Evolution-RSS/%s",
- EVOLUTION_VERSION, VERSION);
+ EVOLUTION_VERSION_STRING, VERSION);
+#if LIBSOUP_VERSION < 2003000
soup_message_add_header (req->request_headers, "User-Agent",
agstr);
+#else
+ soup_message_headers_append (req->request_headers, "User-Agent",
+ agstr);
+#endif
g_free(agstr);
- proxyfy_session(soup_sess);
+ proxify_session(soup_sess);
rf->b_session = soup_sess;
rf->b_msg_session = req;
soup_session_send_message(soup_sess, req);
@@ -403,7 +534,11 @@
goto out;
}
+#if LIBSOUP_VERSION < 2003000
response = g_string_new_len(req->response.body, req->response.length);
+#else
+ response = g_string_new_len(req->response_body->data, req->response_body->length);
+#endif
out:
if (suri) soup_uri_free(suri);
--- evolution-rss-0.0.7/src/misc.c 2007-11-27 19:27:40.000000000 +0200
+++ evolution-rss/trunk/src/misc.c 2008-02-10 13:20:53.000000000 +0200
@@ -34,7 +34,7 @@
static void
print_hash(gpointer key, gpointer value, gpointer user_data)
{
- g_print("key:%s, value:%s\n", key, value);
+ g_print("key:%p, value:%p\n", key, value);
}
static void
@@ -229,6 +229,128 @@
*f++ = 0;
return g_strdup(res);
}
+
+static void
+header_decode_lwsp(const char **in)
+{
+ const char *inptr = *in;
+ char c;
+
+
+ while ((camel_mime_is_lwsp(*inptr) || *inptr =='(') && *inptr != '\0') {
+ while (camel_mime_is_lwsp(*inptr) && *inptr != '\0') {
+ inptr++;
+ }
+
+ /* check for comments */
+ if (*inptr == '(') {
+ int depth = 1;
+ inptr++;
+ while (depth && (c=*inptr) && *inptr != '\0') {
+ if (c=='\\' && inptr[1]) {
+ inptr++;
+ } else if (c=='(') {
+ depth++;
+ } else if (c==')') {
+ depth--;
+ }
+ inptr++;
+ }
+ }
+ }
+ *in = inptr;
+}
+
+static char *
+decode_token (const char **in)
+{
+ const char *inptr = *in;
+ const char *start;
+
+ header_decode_lwsp (&inptr);
+ start = inptr;
+ while (camel_mime_is_ttoken (*inptr))
+ inptr++;
+ if (inptr > start) {
+ *in = inptr;
+ return g_strndup (start, inptr - start);
+ } else {
+ return NULL;
+ }
+}
+
+/* hrm, is there a library for this shit? */
+static struct {
+ char *name;
+ int offset;
+} tz_offsets [] = {
+ { "UT", 0 },
+ { "GMT", 0 },
+ { "EST", -500 }, /* these are all US timezones. bloody yanks */
+ { "EDT", -400 },
+ { "CST", -600 },
+ { "CDT", -500 },
+ { "MST", -700 },
+ { "MDT", -600 },
+ { "PST", -800 },
+ { "PDT", -700 },
+ { "Z", 0 },
+ { "A", -100 },
+ { "M", -1200 },
+ { "N", 100 },
+ { "Y", 1200 },
+};
+
+static const char tz_months [][4] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+};
+
+static const char tz_days [][4] = {
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+};
+
+gboolean
+is_rfc822(char *in)
+{
+ const char *inptr = in;
+ struct tm tm;
+ guint i;
+
+ header_decode_lwsp (&inptr);
+ char *day = decode_token(&inptr);
+ if (day)
+ {
+ g_free (day);
+ header_decode_lwsp (&inptr);
+ if (*inptr == ',')
+ inptr++;
+ else
+ goto notrfc;
+ }
+ tm.tm_mday = camel_header_decode_int(&inptr);
+ if (tm.tm_mday == 0)
+ goto notrfc;
+
+ char *monthname = decode_token(&inptr);
+ gboolean foundmonth = FALSE;
+ if (monthname) {
+ for (i=0;i<sizeof(tz_months)/sizeof(tz_months[0]);i++) {
+ if (!g_ascii_strcasecmp(tz_months[i], monthname)) {
+ tm.tm_mon = i;
+ foundmonth = TRUE;
+ break;
+ }
+ }
+ g_free(monthname);
+ }
+ if (!foundmonth)
+ goto notrfc;
+
+ return 1;
+
+notrfc: return 0;
+}
#endif
--- evolution-rss-0.0.7/src/Makefile.am 2007-12-12 20:17:36.000000000 +0200
+++ evolution-rss/trunk/src/Makefile.am 2008-02-10 13:20:53.000000000 +0200
@@ -7,9 +7,11 @@
$(DBUS_CFLAGS) \
-DGETTEXT_PACKAGE="\"$(GETTEXT_PACKAGE)\"" \
-DLOCALEDIR="\"$(LOCALEDIR)\"" \
- -DEVOLUTION_VERSION=\"$(EVOLUTION_EXEC_VERSION)\" \
+ -DEVOLUTION_VERSION_STRING=\"$(EVOLUTION_EXEC_VERSION)\"\
+ -DEVOLUTION_VERSION=$(evolution_exec_int) \
-DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
-DEVOLUTION_ICONDIR=\""$(ICON_DIR)"\" \
+ -DLIBSOUP_VERSION="$(SOUP_VERSION)" \
-DGECKO_HOME=\""$(GECKO_HOME)"\" \
-DRENDER=\""$(RENDER)"\" \
-DRENDER_N=$(RENDER_N) \
@@ -42,7 +44,7 @@
-e "s%+GETTEXT_PACKAGE+%$(GETTEXT_PACKAGE)%" \
-e "s%+LOCALEDIR+%$(LOCALEDIR)%" \
-e "s%+VERSION+%$(VERSION)%" \
- -e "s%+URL+%http://mapes/evo/index.php/Evolution_RSS_Reader_Plugin%" \
+ -e "s%+URL+%http://mips.edu.ms/evo/index.php/Evolution_RSS_Reader_Plugin%" \
$< > $@
%.error.in: %.error.xml
--- evolution-rss-0.0.7/src/rss.h 2007-12-08 17:56:11.000000000 +0200
+++ evolution-rss/trunk/src/rss.h 2008-02-10 20:13:12.000000000 +0200
@@ -53,6 +53,7 @@
GHashTable *hrh; //fetch html flag
GHashTable *hruser; //auth user hash
GHashTable *hrpass; //auth user hash
+ gboolean soup_auth_retry; //wether to retry auth after an unsucessful auth
GHashTable *hrdel_feed; //option to delete messages in current feed
GHashTable *hrdel_days; //option to delete messages older then days
GHashTable *hrdel_messages; //option to keep last messages
@@ -82,6 +83,9 @@
guint feed_queue;
gboolean cancel; //cancelation signal
GHashTable *session; //queue of active unblocking sessions
+ GHashTable *abort_session; //this is a hack to be able to iterate when
+ //we remove keys from seesion with weak_ref
+ GHashTable *key_session; //queue of active unblocking sessions and keys linked
SoupSession *b_session; //active blocking session
SoupMessage *b_msg_session; //message running in the blocking session
guint rc_id;
@@ -95,6 +99,8 @@
gchar *main_folder; // "News&Blogs" folder name
GHashTable *feed_folders; // defined feeds folders
GHashTable *reversed_feed_folders; // easyer when we lookup for the value
+ GHashTable *activity;
+ GHashTable *error_hash;
guint test;
#if HAVE_DBUS
DBusConnection *bus; // DBUS
@@ -224,7 +230,7 @@
} create_feed;
u_int32_t gen_crc(const char *msg);
-void create_user_pass_dialog(gchar *url);
+gboolean create_user_pass_dialog(gchar *url);
static void start_check_cb (GtkWidget *widget, gpointer data);
static void err_destroy (GtkWidget *widget, gpointer data);
static gboolean check_if_match (gpointer key, gpointer value, gpointer user_data);
--- evolution-rss-0.0.7/src/rss.c 2008-02-10 18:50:24.000000000 +0200
+++ evolution-rss/trunk/src/rss.c 2008-02-10 13:20:53.000000000 +0200
@@ -91,7 +96,9 @@
#include <errno.h>
#include <libsoup/soup.h>
+#if LIBSOUP_VERSION < 2003000
#include <libsoup/soup-message-queue.h>
+#endif
#include "rss.h"
#include "network-soup.c"
@@ -145,8 +162,8 @@
guint count = 0;
gchar *buffer = NULL;
-#define RSS_CONTROL_ID "OAFIID:GNOME_Evolution_RSS:" EVOLUTION_VERSION
-#define FACTORY_ID "OAFIID:GNOME_Evolution_RSS_Factory:" EVOLUTION_VERSION
+#define RSS_CONTROL_ID "OAFIID:GNOME_Evolution_RSS:" EVOLUTION_VERSION_STRING
+#define FACTORY_ID "OAFIID:GNOME_Evolution_RSS_Factory:" EVOLUTION_VERSION_STRING
guint upgrade = 0; // set to 2 when initailization successfull
@@ -336,7 +541,7 @@
}*/
}
-void
+gboolean
create_user_pass_dialog(gchar *url)
{
GtkWidget *dialog1;
@@ -351,6 +556,7 @@
GtkWidget *okbutton1;
GtkWidget *checkbutton1;
GtkWidget *vbox1;
+ guint resp;
if (!rf->hruser)
rf->hruser = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free);
@@ -400,6 +606,7 @@
(GtkAttachOptions) (0), 0, 0);
gtk_entry_set_invisible_char (GTK_ENTRY (username), 8226);
gchar *user = g_hash_table_lookup(rf->hruser, url);
+ g_print("user:%s\n", user);
if (user)
gtk_entry_set_text (GTK_ENTRY (username), user);
password = gtk_entry_new ();
@@ -441,21 +648,26 @@
case GTK_RESPONSE_OK:
if (user)
g_hash_table_remove(rf->hruser, url);
- g_hash_table_insert(rf->hruser, url, g_strdup(gtk_entry_get_text (GTK_ENTRY (username))));
+ g_hash_table_insert(rf->hruser, url,
+ g_strdup(gtk_entry_get_text (GTK_ENTRY (username))));
if (pass)
g_hash_table_remove(rf->hrpass, url);
- g_hash_table_insert(rf->hrpass, url, g_strdup(gtk_entry_get_text (GTK_ENTRY (password))));
+ g_hash_table_insert(rf->hrpass, url,
+ g_strdup(gtk_entry_get_text (GTK_ENTRY (password))));
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton1)))
save_up(url);
else
del_up(url);
gtk_widget_destroy (dialog1);
+ resp = 0;
break;
default:
gtk_widget_destroy (dialog1);
+ resp = 1;
break;
}
+ return resp;
}
add_feed *
@@ -756,24 +968,47 @@
-1);
}
-void
+gboolean
cancel_soup_sess(gpointer key, gpointer value, gpointer user_data)
{
- if (SOUP_IS_MESSAGE(value))
+ g_print("key:%p, value:%p ==", key, value);
+
+ if (SOUP_IS_SESSION(key))
{
- soup_message_set_status(value, SOUP_STATUS_CANCELLED);
- soup_session_cancel_message(key, value);
+ if (SOUP_IS_MESSAGE(value))
+ {
+#if LIBSOUP_VERSION < 2003000
+ soup_message_set_status(value, SOUP_STATUS_CANCELLED);
+ soup_session_cancel_message(key, value);
+#else
+ soup_session_cancel_message(key, value, SOUP_STATUS_CANCELLED);
+#endif
+ }
+ soup_session_abort(key);
+ g_hash_table_find(rf->key_session,
+ remove_if_match,
+ user_data);
}
- soup_session_abort(key);
- g_hash_table_remove(rf->session, key);
+ g_print(" key:%p, value:%p\n", key, value);
+ return TRUE;
+}
+void
+remove_weak(gpointer key, gpointer value, gpointer user_data)
+{
+ g_object_weak_unref(value, unblock_free, key);
}
void
abort_all_soup(void)
{
//abort all session
- if (rf->session)
- g_hash_table_foreach(rf->session, cancel_soup_sess, NULL);
+ if (rf->abort_session)
+ {
+ g_hash_table_foreach(rf->abort_session, remove_weak, NULL);
+ g_hash_table_foreach_remove(rf->abort_session, cancel_soup_sess, NULL);
+ g_hash_table_destroy(rf->session);
+ rf->session = g_hash_table_new(g_direct_hash, g_direct_equal);
+ }
if (rf->progress_bar)
{
gtk_progress_bar_set_fraction((GtkProgressBar *)rf->progress_bar, 1);
@@ -783,8 +1018,12 @@
{
if (SOUP_IS_MESSAGE(rf->b_msg_session))
{
+#if LIBSOUP_VERSION < 2003000
soup_message_set_status(rf->b_msg_session, SOUP_STATUS_CANCELLED);
soup_session_cancel_message(rf->b_session, rf->b_msg_session);
+#else
+ soup_session_cancel_message(rf->b_session, rf->b_msg_session, SOUP_STATUS_CANCELLED);
+#endif
}
soup_session_abort(rf->b_session);
rf->b_session = NULL;
@@ -2326,9 +2588,17 @@
html_set_base(xmlNode *doc, char *base, char *tag, char *prop, char *basehref)
{
gchar *url;
+#if LIBSOUP_VERSION < 2003000
SoupUri *newuri;
+#else
+ SoupURI *newuri;
+#endif
gchar *newuristr;
+#if LIBSOUP_VERSION < 2003000
SoupUri *base_uri = soup_uri_new (base);
+#else
+ SoupURI *base_uri = soup_uri_new (base);
+#endif
while (doc = html_find((xmlNode *)doc, tag))
{
if (url = xmlGetProp(doc, prop))
@@ -2364,7 +2634,11 @@
// all relative links
if (basehref != NULL)
{
+#if LIBSOUP_VERSION < 2003000
SoupUri *newbase_uri = soup_uri_new (basehref);
+#else
+ SoupURI *newbase_uri = soup_uri_new (basehref);
+#endif
newuri = soup_uri_new_with_base (newbase_uri, url);
soup_uri_free(newbase_uri);
}
@@ -2431,7 +2705,9 @@
ctxt->vctxt.error = my_xml_parser_error_handler;
ctxt->vctxt.warning = my_xml_parser_error_handler;
- xmlCtxtUseOptions(ctxt, XML_PARSE_DTDLOAD| XML_PARSE_NOENT);
+ xmlCtxtUseOptions(ctxt, XML_PARSE_DTDLOAD
+ | XML_PARSE_NOENT
+ | XML_PARSE_NOCDATA);
xmlParseDocument (ctxt);
@@ -2619,7 +2895,7 @@
{
// GtkAdjustment *a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(widget));
// g_print("page size:%d\n", a->page_size);
-// g_print("value size:%d\n", a->value);
+ g_print("mycall()\n");
int width;
GtkRequisition req;
// EMFormatHTMLDisplay *efhd = (EMFormatHTMLDisplay *) efh;
@@ -2636,6 +2912,7 @@
{
width = widget->allocation.width - 16 - 2;// - 16;
int height = widget->allocation.height - 16 - k;
+ g_print("resize webkit :width:%d, height: %d\n", width, height);
#ifdef RSS_DEBUG
g_print("resize webkit :width:%d, height: %d\n", width, height);
#endif
@@ -2652,14 +2929,26 @@
// g_print("size:%d\n", wheight);
// height = req.height - 200;// - 16 - 194;
// g_print("my cal %d w:%d h:%d\n", GTK_IS_WIDGET(data), width, height);
- if (GTK_IS_WIDGET(data) && height > 50)
+ g_print("data:%p\n", data);
+ g_print("is_widget:%d\n", GTK_IS_WIDGET(widget));
+ g_print("is_data:%p\n", data);
+ g_print("is_is_data:%d\n", GTK_IS_WIDGET(gtk_bin_get_child(data)));
+ g_print("is_is_data:%d\n", GTK_IS_WIDGET(data));
+// if (GTK_IS_MOZ_EMBED(data))
+// {
+// g_print("is mozembed\n");
+ if (data && GTK_IS_WIDGET(data) && height > 50)
+ {
gtk_widget_set_size_request((GtkWidget *)data, width, height);
// apparently resizing gtkmozembed widget won't redraw if using xulrunner
// there is no point in reload for the rest
#ifdef HAVE_XULRUNNER
- gtk_moz_embed_reload(rf->mozembed, GTK_MOZ_EMBED_FLAG_RELOADNORMAL);
+ gtk_moz_embed_reload(rf->mozembed, GTK_MOZ_EMBED_FLAG_RELOADNORMAL);
#endif
+ }
+// }
}
+ g_print("resize done\n");
}
#ifdef HAVE_GTKMOZEMBED
@@ -2776,6 +3065,7 @@
// gtk_box_pack_start (GTK_BOX (w), gpage, TRUE, TRUE, 0);
gtk_widget_show_all(moz);
gtk_container_add ((GtkContainer *) eb, moz);
+ gtk_container_check_resize ((GtkContainer *) eb);
g_print("add\n");
// gtk_widget_set_size_request((GtkWidget *)rf->mozembed, 330, 330);
// gtk_container_add ((GtkContainer *) eb, rf->mozembed);
@@ -2874,6 +3164,7 @@
gtk_moz_embed_stop_load(GTK_MOZ_EMBED(rf->mozembed));
// gtk_moz_embed_pop_startup();
#endif
+ g_signal_stop_emission_by_name(po->format->html, "size_allocate");
if (rf->mozembed)
{
g_print("call pfree() for controls2\n");
@@ -2957,6 +3248,7 @@
pobj = (struct _org_gnome_rss_controls_pobject *) em_format_html_add_pobject ((EMFormatHTML *) t->format, sizeof(*pobj), classid, message, (EMFormatHTMLPObjectFunc)org_gnome_rss_controls2);
pobj->website = g_strstrip(g_strdup((gchar *)website));
pobj->is_html = GPOINTER_TO_INT(is_html);
+ pobj->format = (EMFormatHTML *)t->format;
pobj->object.free = pfree;
camel_stream_printf (t->stream, "<table><tr><td width=100%% valign=top><object classid=%s></object></td></tr></table>\n", classid);
goto out;
@@ -2974,14 +3266,21 @@
camel_stream_printf (t->stream, "</tr></table></td></tr></table>");
goto out;
}
- xmlDoc *doc = parse_html(addr, content->str, content->len);
- if (doc)
+
+ inlen = content->len;
+ utf8len = 5*inlen+1;
+ buffer2 = g_malloc(utf8len);
+ UTF8ToHtml(buffer2, &utf8len, content->str, &inlen);
+ xmlDoc *src = (xmlDoc *)parse_html(addr, buffer2, strlen(buffer2));
+
+ if (src)
{
- htmlDocDumpMemory(doc, &buff, &size);
+ htmlDocDumpMemory(src, &buff, &size);
#ifdef RSS_DEBUG
g_print("%s\n", buff);
#endif
- xmlFree(doc);
+ g_print("%s\n", buff);
+ xmlFree(src);
}
else
goto out;
@@ -3099,11 +3398,34 @@
gchar *
generate_safe_chn_name(gchar *chn_name)
{
- guint i = 1;
+ guint i = 0;
+ gchar *c;
+ gchar *stmp;
while (check_chn_name(chn_name))
{
+ GString *result = g_string_new (NULL);
gchar *tmp = chn_name;
- chn_name = g_strdup_printf("%s #%d", tmp, i++);
+ if (c = strrchr(tmp, '#'))
+ {
+ if (isdigit(*(c+1)))
+ {
+ stmp = g_strndup(tmp, c - tmp);
+ while (isdigit(*(c+1)))
+ {
+ g_string_append_c(result, *(c+1));
+ c++;
+ }
+ i = atoi(result->str);
+ chn_name = g_strdup_printf("%s#%d", stmp, i+1);
+ g_free(stmp);
+ }
+ else
+ chn_name = g_strdup_printf("%s #%d", tmp, i+1);
+ }
+ else
+ chn_name = g_strdup_printf("%s #%d", tmp, i+1);
+ memset(result->str, 0, result->len);
+ g_string_free (result, TRUE);
g_free(tmp);
}
return chn_name;
@@ -3293,7 +3617,11 @@
}
void
+#if LIBSOUP_VERSION < 2003000
finish_feed (SoupMessage *msg, gpointer user_data)
+#else
+finish_feed (SoupSession *soup_sess, SoupMessage *msg, gpointer user_data)
+#endif
{
GError *err = NULL;
gchar *chn_name = NULL;
@@ -3365,14 +3702,22 @@
goto out;
}
+#if LIBSOUP_VERSION < 2003000
if (!msg->response.length)
+#else
+ if (!msg->response_body->length)
+#endif
goto out;
if (msg->status_code == SOUP_STATUS_CANCELLED)
goto out;
+#if LIBSOUP_VERSION < 2003000
GString *response = g_string_new_len(msg->response.body, msg->response.length);
+#else
+ GString *response = g_string_new_len(msg->response_body->data, msg->response_body->length);
+#endif
//#ifdef RSS_DEBUG
g_print("feed %s\n", user_data);
//#endif
@@ -3393,19 +3738,24 @@
if (!user_data || !lookup_key(user_data))
goto out;
r->uri = g_hash_table_lookup(rf->hr, lookup_key(user_data));
+
chn_name = display_doc (r);
- if (g_ascii_strcasecmp(user_data, chn_name) != 0)
- {
- gchar *md5 = g_strdup(g_hash_table_lookup(rf->hrname, user_data));
- g_hash_table_remove(rf->hrname_r, md5);
- g_hash_table_remove(rf->hrname, user_data);
- g_hash_table_insert(rf->hrname, g_strdup(chn_name), md5);
- g_hash_table_insert(rf->hrname_r, g_strdup(md5), g_strdup(chn_name));
- save_gconf_feed();
- }
if (chn_name)
+ {
+ if (g_ascii_strcasecmp(user_data, chn_name) != 0)
+ {
+ gchar *md5 = g_strdup(
+ g_hash_table_lookup(rf->hrname, user_data));
+ g_hash_table_remove(rf->hrname_r, md5);
+ g_hash_table_remove(rf->hrname, user_data);
+ g_hash_table_insert(rf->hrname, g_strdup(chn_name), md5);
+ g_hash_table_insert(rf->hrname_r, g_strdup(md5),
+ g_strdup(chn_name));
+ save_gconf_feed();
+ }
g_free(chn_name);
+ }
if (r->cache)
xmlFreeDoc(r->cache);
if (r->type)
@@ -3865,7 +4239,7 @@
#if GTK_2_6
gtk_label_set_ellipsize (GTK_LABEL (label2), PANGO_ELLIPSIZE_START);
#endif
- gtk_label_set_justify(GTK_LABEL(label2), GTK_JUSTIFY_CENTER);
+ gtk_label_set_justify(GTK_LABEL(label2), GTK_JUSTIFY_FILL);
readrss_label = gtk_label_new(_("Please wait"));
if (!rf->progress_dialog)
{
@@ -4120,6 +4494,7 @@
rf->rc_id = 0;
rf->feed_queue = 0;
rf->main_folder = get_main_folder();
+ rf->soup_auth_retry = 1;
get_feed_folders();
#if HAVE_DBUS
g_print("init_dbus()\n");
@@ -4138,13 +4513,13 @@
if (!render) // set render just in case it was forced in configure
{
render = RENDER_N;
- gconf_client_set_int(rss_gconf, GCONF_KEY_HTML_RENDER, render, NULL);
+ gconf_client_set_int(rss_gconf,
+ GCONF_KEY_HTML_RENDER, render, NULL);
}
#ifdef HAVE_GTKMOZEMBED
if (2 == render)
rss_mozilla_init();
#endif
- g_print("called\n");
}
upgrade = 2;
} else {
@@ -4166,6 +4541,7 @@
CamelMimeMessage *new = camel_mime_message_new();
CamelInternetAddress *addr;
CamelMessageInfo *info;
+ CamelException *ex;
struct tm tm;
time_t time;
CamelDataWrapper *rtext;
@@ -4198,9 +4574,15 @@
//handle pubdate
if (CF->date)
{
- time_t actual_time;
- actual_time = camel_header_decode_date(CF->date, &offset);
- camel_mime_message_set_date(new, actual_time, offset);
+ //check if CF->date obeys rfc822
+ if (!is_rfc822(CF->date))
+ camel_mime_message_set_date(new, CAMEL_MESSAGE_DATE_CURRENT, 0);
+ else
+ {
+ time_t actual_time;
+ actual_time = camel_header_decode_date(CF->date, &offset);
+ camel_mime_message_set_date(new, actual_time, offset);
+ }
}
else
{
@@ -4762,7 +5146,11 @@
}
static void
+#if LIBSOUP_VERSION < 2003000
finish_enclosure (SoupMessage *msg, create_feed *user_data)
+#else
+finish_enclosure (SoupSession *soup_sess, SoupMessage *msg, create_feed *user_data)
+#endif
{
gchar *tmpdir = NULL;
gchar *name = NULL;
@@ -4775,7 +5163,11 @@
f = fopen(name, "wb+");
if (f)
{
+#if LIBSOUP_VERSION < 2003000
fwrite(msg->response.body, msg->response.length, 1, f);
+#else
+ fwrite(msg->response_body->data, msg->response_body->length, 1, f);
+#endif
fclose(f);
//replace encl with filename generated
g_free(user_data->encl);
@@ -5155,6 +5547,7 @@
#ifdef RSS_DEBUG
g_print("Cleaning folder: %s\n", real_folder);
#endif
+
gchar *real_name = g_strdup_printf("%s/%s", lookup_main_folder(), real_folder);
if (!(folder = camel_store_get_folder (store, real_name, 0, NULL)))
goto fail;
@@ -5622,6 +6015,12 @@
renderer,
set_sensitive,
NULL, NULL);
+
+#if !defined(HAVE_GTKMOZEMBED) && !defined (HAVE_WEBKIT)
+ GtkWidget *label_webkit = glade_xml_get_widget(sf->gui, "label_webkits");
+ gtk_label_set_text(label_webkit, _("Note: In order to be able to use Mozilla (Firefox) or Apple Webkit \nas renders you need firefox or webkit devel package \ninstalled and evolution-rss should be recompiled to see those packages."));
+ gtk_widget_show(label_webkit);
+#endif
g_signal_connect (combo, "changed", G_CALLBACK (render_engine_changed), NULL);
g_signal_connect (combo, "value-changed", G_CALLBACK (render_engine_changed), NULL);
gtk_widget_show(combo);
--- evolution-rss-0.0.7/ChangeLog 2008-02-10 18:50:24.000000000 +0200
+++ evolution-rss/trunk/ChangeLog 2008-02-10 20:57:37.000000000 +0200
@@ -1,3 +1,14 @@
+Sun 10 Feb 2008 08:51:04 PM EET <lucilanga at gnome.org>
+
+ * backporting evolution-rss-0.0.7 to
+ libsoup-2.4
+ * fix generation safe channel name
+ * fix gtkhtml UTF8 rendering
+ * fix xml parsing nocdata
+ * fix proxy options that were ignored
+ * fix authentication window
+ * checks for date to obey rfc822
+
Tue 18 Dec 2007 09:38:56 PM EET <lucilanga at gnome.org>
* fix m4 support for evolution >= 2.11
--- NEW FILE evolution-rss.spec ---
Summary: Evolution RSS Reader
Name: evolution-rss
Version: 0.0.7
Release: 8%{?dist}
Group: Applications/Internet
License: GPLv2 and GPLv2+
Source: http://gnome.eu.org/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
URL: http://gnome.eu.org/evo/index.php/Evolution_RSS_Reader_Plugin
Patch0: evolution-rss-0.0.7-fix-detect.patch
Patch1: evolution-rss-0.0.7-libsoup-2.4.patch
Patch2: evolution-rss-0.0.7-autoreconf.patch
Requires: evolution
Requires(pre): GConf2
Requires(post): GConf2
Requires(preun): GConf2
BuildRequires: gettext
BuildRequires: evolution-devel
BuildRequires: evolution-data-server-devel
BuildRequires: dbus-glib-devel
#BuildRequires: gecko-devel
BuildRequires: perl(XML::Parser)
BuildRequires: libtool
%description
This is an evolution plugin which enables evolution to read rss feeds.
%prep
%setup -q -n evolution-rss-%{version}
%patch0 -p1 -b fixdetect
%patch1 -p1 -b libsoup24
%patch2 -p1 -b autoreconf
%build
autoreconf -i -f
%configure --disable-webkit --disable-gecko
make %{?_smp_mflags}
%install
rm -rf %{buildroot}
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
make install DESTDIR="%{buildroot}" INSTALL="install -p"
find %{buildroot} -name \*\.la -print | xargs rm -f
%find_lang %{name}
%clean
rm -rf %{buildroot}
%pre
if [ "$1" -gt 1 ]; then
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
gconftool-2 --makefile-uninstall-rule \
%{_sysconfdir}/gconf/schemas/%{name}.schemas >/dev/null || :
fi
%post
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
gconftool-2 --makefile-install-rule \
%{_sysconfdir}/gconf/schemas/%{name}.schemas > /dev/null || :
/sbin/ldconfig
%preun
if [ "$1" -eq 0 ]; then
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
gconftool-2 --makefile-uninstall-rule \
%{_sysconfdir}/gconf/schemas/%{name}.schemas > /dev/null || :
fi
%postun -p /sbin/ldconfig
%files -f %{name}.lang
%defattr(-,root,root,-)
# Only the following binary is under GPLv2. Other
# parts are under GPLv2+.
%{_bindir}/evolution-import-rss
%{_sysconfdir}/gconf/schemas/%{name}.schemas
%{_datadir}/evolution/*/errors/org-gnome-evolution-rss.error
%{_datadir}/evolution/*/glade/rss-ui.glade
%{_datadir}/evolution/*/images/rss.png
%{_libdir}/evolution/*/plugins/org-gnome-evolution-rss.eplug
%{_libdir}/evolution/*/plugins/org-gnome-evolution-rss.xml
%{_libdir}/evolution/*/plugins/liborg-gnome-evolution-rss.so
%{_libdir}/bonobo/servers/GNOME_Evolution_RSS_*.server
%doc AUTHORS
%doc COPYING
%doc ChangeLog
%doc FAQ
%doc NEWS
%doc README
%doc TODO
%changelog
* Tue Feb 19 2008 Lucian Langa <cooly at gnome.eu.org> - 0.0.7-8
-Misc cleanups
* Sat Feb 17 2008 Lucian Langa <cooly at gnome.eu.org> - 0.0.7-7
- Misc cleanup
* Sat Feb 16 2008 Lucian Langa <cooly at gnome.eu.org> - 0.0.7-6
- Drop gecko requirements till xulrunner is fixed
* Tue Feb 12 2008 Lucian Langa <lucilanga at gnome.org> - 0.0.7-5
- buildroot fixes
* Wed Feb 06 2008 Lucian Langa <lucilanga at gnome.org> - 0.0.7-4
- Modified firefox-devel requirement for build
* Wed Jan 30 2008 Lucian Langa <lucilanga at gnome.org> - 0.0.7-1
- Updates and sanitize
* Thu Jan 24 2008 Lucian Langa <lucilanga at gnome.org> - 0.0.7-1
- Fixed rpmlint warnings
- Updated to Fedora Packaging Guidelines
* Thu Nov 22 2007 Lucian Langa <lucilanga at gnome.org> - 0.0.6-1
- Added gconf schemas
- Added evolution-import-rss
* Tue Sep 04 2007 Lucian Langa <lucilanga at gnome.org> - 0.0.5
- Updated installed files
* Mon Apr 23 2007 root <root at mayday> - 0.0.1
- Initial spec file created by autospec ver. 0.8 with rpm 3 compatibility
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/evolution-rss/F-8/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore 18 Feb 2008 17:30:48 -0000 1.1
+++ .cvsignore 19 Feb 2008 08:13:21 -0000 1.2
@@ -0,0 +1 @@
+evolution-rss-0.0.7.tar.gz
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/evolution-rss/F-8/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources 18 Feb 2008 17:30:48 -0000 1.1
+++ sources 19 Feb 2008 08:13:21 -0000 1.2
@@ -0,0 +1 @@
+01635af0e33b4dab0a4855160352512c evolution-rss-0.0.7.tar.gz
More information about the fedora-extras-commits
mailing list