diff options
author | Holger Freyther <zecke@selfish.org> | 2007-04-01 17:49:59 +0000 |
---|---|---|
committer | Holger Freyther <zecke@selfish.org> | 2007-04-01 17:49:59 +0000 |
commit | e762cc421306ddca4b75dc284dc25dc514da97a2 (patch) | |
tree | c0550a9ecd59bd10edd334524ad0cdc35919fd94 | |
parent | 703beee4dc3ddb0cefb50c5bef7f0f456e0da505 (diff) |
packages/libmrss: Apply my patches to libmrss (will be send upstream)
-Make sure pubDate is always set for ATOM feeds from planets
-Bump the library version to 0.17
-Format Atom dates RFC822 compliant
-rw-r--r-- | packages/libmrss/files/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/libmrss/files/atom-changes.patch | 17 | ||||
-rw-r--r-- | packages/libmrss/files/bump-version.patch | 16 | ||||
-rw-r--r-- | packages/libmrss/files/fix_atom_date_locale.patch | 122 | ||||
-rw-r--r-- | packages/libmrss/libmrss_0.17.bb | 5 |
5 files changed, 159 insertions, 1 deletions
diff --git a/packages/libmrss/files/.mtn2git_empty b/packages/libmrss/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libmrss/files/.mtn2git_empty diff --git a/packages/libmrss/files/atom-changes.patch b/packages/libmrss/files/atom-changes.patch new file mode 100644 index 0000000000..42f74d00f2 --- /dev/null +++ b/packages/libmrss/files/atom-changes.patch @@ -0,0 +1,17 @@ +Make sure to always set a pubDate + +Index: libmrss-0.17/src/mrss_parser.c +=================================================================== +--- libmrss-0.17.orig/src/mrss_parser.c 2007-03-22 19:40:54.000000000 +0100 ++++ libmrss-0.17/src/mrss_parser.c 2007-03-22 19:44:15.000000000 +0100 +@@ -270,6 +270,10 @@ + && data->version == MRSS_VERSION_ATOM_1_0) + item->pubDate = + __mrss_atom_prepare_date (nxmle_get_string (cur, NULL)); ++ else if (!strcmp(cur->value, "updated" ) && !item->pubDate ++ && data->version == MRSS_VERSION_ATOM_1_0) ++ item->pubDate = ++ __mrss_atom_prepare_date (nxmle_get_string (cur, NULL)); + + /* issued -> pubDate (Atom 0.3) */ + else if (!strcmp (cur->value, "issued") && !item->pubDate) diff --git a/packages/libmrss/files/bump-version.patch b/packages/libmrss/files/bump-version.patch new file mode 100644 index 0000000000..2eeb6931c8 --- /dev/null +++ b/packages/libmrss/files/bump-version.patch @@ -0,0 +1,16 @@ +Bump the version info, specially as I changed the struct in a binary +incompatible way. + +Index: libmrss-0.17/src/Makefile.am +=================================================================== +--- libmrss-0.17.orig/src/Makefile.am 2007-04-01 16:43:58.000000000 +0200 ++++ libmrss-0.17/src/Makefile.am 2007-04-01 16:44:10.000000000 +0200 +@@ -10,7 +10,7 @@ + mrss_options.c \ + mrss_search.c + +-libmrss_la_LDFLAGS = -version-info 0:16:0 ++libmrss_la_LDFLAGS = -version-info 0:17:0 + + EXTRA_DIST = mrss.h mrss_internal.h + diff --git a/packages/libmrss/files/fix_atom_date_locale.patch b/packages/libmrss/files/fix_atom_date_locale.patch new file mode 100644 index 0000000000..4d46033d10 --- /dev/null +++ b/packages/libmrss/files/fix_atom_date_locale.patch @@ -0,0 +1,122 @@ +The Atom date formating code tries to create a RFC822 date. This date +requires to use the C locale for the date (for weekday-names and month-names). + +This patch uses new POSIX functionality to create a C locale and strftime_l +to create a right RFC822 date. + +Index: libmrss-0.17/src/mrss.h +=================================================================== +--- libmrss-0.17.orig/src/mrss.h 2007-04-01 00:29:06.000000000 +0200 ++++ libmrss-0.17/src/mrss.h 2007-04-01 01:22:25.000000000 +0200 +@@ -364,6 +364,9 @@ + mrss_element_t element; + int allocated; + ++ /** For internal use only: */ ++ void* c_locale; ++ + /* Data: */ + + char *file; +Index: libmrss-0.17/src/mrss_free.c +=================================================================== +--- libmrss-0.17.orig/src/mrss_free.c 2007-04-01 00:32:56.000000000 +0200 ++++ libmrss-0.17/src/mrss_free.c 2007-04-01 15:45:44.000000000 +0200 +@@ -22,9 +22,14 @@ + # error Use configure; make; make install + #endif + ++#define _GNU_SOURCE ++ + #include "mrss.h" + #include "mrss_internal.h" + ++#include <locale.h> ++ ++ + static void __mrss_free_channel (mrss_t * mrss); + static void __mrss_free_category (mrss_category_t * category); + static void __mrss_free_hour (mrss_hour_t * hour); +@@ -202,6 +207,9 @@ + __mrss_free_item ((mrss_item_t *) old); + } + ++ if (mrss->c_locale) ++ freelocale (mrss->c_locale); ++ + if (mrss->allocated) + free (mrss); + } +Index: libmrss-0.17/src/mrss_parser.c +=================================================================== +--- libmrss-0.17.orig/src/mrss_parser.c 2007-03-30 01:07:56.000000000 +0200 ++++ libmrss-0.17/src/mrss_parser.c 2007-04-01 16:40:57.000000000 +0200 +@@ -22,9 +22,13 @@ + # error Use configure; make; make install + #endif + ++#define _GNU_SOURCE ++ + #include "mrss.h" + #include "mrss_internal.h" + ++#include <locale.h> ++ + static void + __mrss_parse_tag_insert (mrss_tag_t ** where, mrss_tag_t * what) + { +@@ -133,7 +137,7 @@ + } + + static char * +-__mrss_atom_prepare_date (char *datestr) ++__mrss_atom_prepare_date (mrss_t *data, char *datestr) + { + char *ret = NULL; + if (datestr) +@@ -150,8 +154,14 @@ + stm.tm_year -= 1900; + char datebuf[256]; + free (datestr); +- strftime (datebuf, sizeof (datebuf), "%a, %d %b %Y %H:%M:%S %z", +- &stm); ++ ++ if (!data->c_locale) { ++ printf( "Creating the locale\n" ); ++ data->c_locale = newlocale(LC_ALL_MASK,"C",NULL); ++ } ++ ++ strftime_l (datebuf, sizeof (datebuf), "%a, %d %b %Y %H:%M:%S %z", ++ &stm, data->c_locale); + ret = strdup (datebuf); + } + } +@@ -269,16 +279,16 @@ + else if (!strcmp (cur->value, "published") && !item->pubDate + && data->version == MRSS_VERSION_ATOM_1_0) + item->pubDate = +- __mrss_atom_prepare_date (nxmle_get_string (cur, NULL)); ++ __mrss_atom_prepare_date (data, nxmle_get_string (cur, NULL)); + else if (!strcmp(cur->value, "updated" ) && !item->pubDate + && data->version == MRSS_VERSION_ATOM_1_0) + item->pubDate = +- __mrss_atom_prepare_date (nxmle_get_string (cur, NULL)); ++ __mrss_atom_prepare_date (data, nxmle_get_string (cur, NULL)); + + /* issued -> pubDate (Atom 0.3) */ + else if (!strcmp (cur->value, "issued") && !item->pubDate) + item->pubDate = +- __mrss_atom_prepare_date (nxmle_get_string (cur, NULL)); ++ __mrss_atom_prepare_date (data, nxmle_get_string (cur, NULL)); + + /* id -> guid */ + else if (!strcmp (cur->value, "id") && !item->guid +@@ -701,7 +711,7 @@ + /* updated -> lastBuildDate */ + else if (!strcmp (cur->value, "updated")) + data->lastBuildDate = +- __mrss_atom_prepare_date (nxmle_get_string (cur, NULL)); ++ __mrss_atom_prepare_date (data, nxmle_get_string (cur, NULL)); + + /* author -> managingeditor */ + else if (!strcmp (cur->value, "author")) diff --git a/packages/libmrss/libmrss_0.17.bb b/packages/libmrss/libmrss_0.17.bb index c2170fa09a..9871dbebdc 100644 --- a/packages/libmrss/libmrss_0.17.bb +++ b/packages/libmrss/libmrss_0.17.bb @@ -6,7 +6,10 @@ DEPENDS = "libnxml curl" inherit autotools pkgconfig -SRC_URI = "http://www2.autistici.org/bakunin//libmrss/libmrss-${PV}.tar.gz;md5sum=28d0e78d736748e67f25ad99456f10c3" +SRC_URI = "http://www2.autistici.org/bakunin//libmrss/libmrss-${PV}.tar.gz;md5sum=28d0e78d736748e67f25ad99456f10c3 \ + file://atom-changes.patch;patch=1 \ + file://fix_atom_date_locale.patch;patch=1 \ + file://bump-version.patch;patch=1 " do_stage() { autotools_stage_all |