Hello community, here is the log from the commit of package beagle checked in at Wed May 24 02:40:04 CEST 2006. -------- --- GNOME/beagle/beagle.changes 2006-05-22 17:32:48.000000000 +0200 +++ beagle/beagle.changes 2006-05-23 17:16:57.000000000 +0200 @@ -1,0 +2,8 @@ +Tue May 23 16:53:23 CEST 2006 - joeshaw@suse.de + +- Add a patch to check for mmap() in configure.in +- Run autoheader in the %setup section so we get the mmap check. +- Add a patch for fix a crash in xdgmime when the underlying + data changes. (bnc #165304, bgo #339815, brc #89964, bfo #6824) + +------------------------------------------------------------------- New: ---- beagle-check-for-mmap.patch beagle-xdgmime-crash.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ beagle.spec ++++++ --- /var/tmp/diff_new_pack.lZkJmO/_old 2006-05-24 02:39:42.000000000 +0200 +++ /var/tmp/diff_new_pack.lZkJmO/_new 2006-05-24 02:39:42.000000000 +0200 @@ -18,7 +18,7 @@ Group: Productivity/Other Autoreqprov: on Version: 0.2.3 -Release: 42 +Release: 44 Summary: Desktop Search Application URL: http://www.gnome.org/projects/beagle/ Source: %{name}-%{version}.tar.gz @@ -51,6 +51,8 @@ Patch23: beagle-cs.patch Patch24: beagle-imlogviewer-kopete-fixes.patch Patch25: beagle-vorbis-mime-type.patch +Patch26: beagle-check-for-mmap.patch +Patch27: beagle-xdgmime-crash.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Prereq: /usr/sbin/groupadd /usr/sbin/useradd Requires: mono-core >= 1.1.13.5 @@ -318,12 +320,15 @@ %patch23 %patch24 %patch25 +%patch26 +%patch27 %build rm po/no.* sed -i "s/\(ALL_LINGUAS.*\) no /\1 /" configure.in libtoolize -f aclocal -I . +autoheader autoconf automake --add-missing %if %suse_version > 1000 @@ -474,6 +479,11 @@ %{prefix}/%_lib/pkgconfig/*.pc %changelog -n beagle +* Tue May 23 2006 - joeshaw@suse.de +- Add a patch to check for mmap() in configure.in +- Run autoheader in the %%setup section so we get the mmap check. +- Add a patch for fix a crash in xdgmime when the underlying + data changes. (bnc #165304, bgo #339815, brc #89964, bfo #6824) * Mon May 22 2006 - joeshaw@suse.de - Don't index /windows partitions by default. (bnc #177579) * Fri May 19 2006 - gekker@suse.de ++++++ beagle-check-for-mmap.patch ++++++ Index: configure.in =================================================================== RCS file: /cvs/gnome/beagle/configure.in,v retrieving revision 1.243 diff -u -p -u -r1.243 configure.in --- configure.in 1 May 2006 19:36:30 -0000 1.243 +++ configure.in 16 May 2006 18:43:58 -0000 @@ -97,6 +97,9 @@ esac AM_CONDITIONAL(OS_LINUX, test "x$os" = "xlinux") AM_CONDITIONAL(OS_FREEBSD, test "x$os" = "xfreebsd") +# xdgmime really wants to have HAVE_MMAP defined +AC_FUNC_MMAP() + # check for desktop-launch AC_PATH_PROG(DESKTOP_LAUNCH, desktop-launch, no) ++++++ beagle-xdgmime-crash.patch ++++++ Index: glue/xdgmime/xdgmime.c =================================================================== RCS file: /cvs/gnome/beagle/glue/xdgmime/xdgmime.c,v retrieving revision 1.1 diff -u -p -u -r1.1 xdgmime.c --- glue/xdgmime/xdgmime.c 13 Jan 2006 20:19:41 -0000 1.1 +++ glue/xdgmime/xdgmime.c 22 May 2006 15:53:47 -0000 @@ -601,13 +601,11 @@ xdg_mime_get_max_buffer_extents (void) return _xdg_mime_magic_get_buffer_extents (global_magic); } -const char * -xdg_mime_unalias_mime_type (const char *mime_type) +static const char * +_xdg_mime_unalias_mime_type (const char *mime_type) { const char *lookup; - xdg_mime_init (); - if (_caches) return _xdg_mime_cache_unalias_mime_type (mime_type); @@ -617,16 +615,22 @@ xdg_mime_unalias_mime_type (const char * return mime_type; } +const char * +xdg_mime_unalias_mime_type (const char *mime_type) +{ + xdg_mime_init (); + + return _xdg_mime_unalias_mime_type (mime_type); +} + int -xdg_mime_mime_type_equal (const char *mime_a, - const char *mime_b) +_xdg_mime_mime_type_equal (const char *mime_a, + const char *mime_b) { const char *unalias_a, *unalias_b; - xdg_mime_init (); - - unalias_a = xdg_mime_unalias_mime_type (mime_a); - unalias_b = xdg_mime_unalias_mime_type (mime_b); + unalias_a = _xdg_mime_unalias_mime_type (mime_a); + unalias_b = _xdg_mime_unalias_mime_type (mime_b); if (strcmp (unalias_a, unalias_b) == 0) return 1; @@ -635,6 +639,15 @@ xdg_mime_mime_type_equal (const char *mi } int +xdg_mime_mime_type_equal (const char *mime_a, + const char *mime_b) +{ + xdg_mime_init (); + + return _xdg_mime_mime_type_equal (mime_a, mime_b); +} + +int xdg_mime_media_type_equal (const char *mime_a, const char *mime_b) { @@ -668,19 +681,17 @@ xdg_mime_is_super_type (const char *mime #endif int -xdg_mime_mime_type_subclass (const char *mime, - const char *base) +_xdg_mime_mime_type_subclass (const char *mime, + const char *base) { const char *umime, *ubase; const char **parents; - xdg_mime_init (); - if (_caches) return _xdg_mime_cache_mime_type_subclass (mime, base); - umime = xdg_mime_unalias_mime_type (mime); - ubase = xdg_mime_unalias_mime_type (base); + umime = _xdg_mime_unalias_mime_type (mime); + ubase = _xdg_mime_unalias_mime_type (base); if (strcmp (umime, ubase) == 0) return 1; @@ -710,6 +721,15 @@ xdg_mime_mime_type_subclass (const char return 0; } +int +xdg_mime_mime_type_subclass (const char *mime, + const char *base) +{ + xdg_mime_init (); + + return _xdg_mime_mime_type_subclass (mime, base); +} + char ** xdg_mime_list_mime_parents (const char *mime) { @@ -741,7 +761,7 @@ xdg_mime_get_mime_parents (const char *m xdg_mime_init (); - umime = xdg_mime_unalias_mime_type (mime); + umime = _xdg_mime_unalias_mime_type (mime); return _xdg_mime_parent_list_lookup (parent_list, umime); } Index: glue/xdgmime/xdgmime.h =================================================================== RCS file: /cvs/gnome/beagle/glue/xdgmime/xdgmime.h,v retrieving revision 1.1 diff -u -p -u -r1.1 xdgmime.h --- glue/xdgmime/xdgmime.h 13 Jan 2006 20:19:41 -0000 1.1 +++ glue/xdgmime/xdgmime.h 22 May 2006 15:53:47 -0000 @@ -95,6 +95,12 @@ int xdg_mime_register_reload_ca XdgMimeDestroy destroy); void xdg_mime_remove_callback (int callback_id); + /* Private versions of functions that don't call xdg_mime_init () */ +int _xdg_mime_mime_type_equal (const char *mime_a, + const char *mime_b); +int _xdg_mime_mime_type_subclass (const char *mime, + const char *base); + #ifdef __cplusplus } #endif /* __cplusplus */ Index: glue/xdgmime/xdgmimeglob.c =================================================================== RCS file: /cvs/gnome/beagle/glue/xdgmime/xdgmimeglob.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -u -r1.1 -r1.2 --- glue/xdgmime/xdgmimeglob.c 13 Jan 2006 20:19:41 -0000 1.1 +++ glue/xdgmime/xdgmimeglob.c 29 Mar 2006 21:46:06 -0000 1.2 @@ -263,7 +263,7 @@ _xdg_glob_hash_insert_text (XdgGlobHashN { child = _xdg_glob_hash_node_new (); child->character = '\000'; - child->mime_type = mime_type; + child->mime_type = strdup (mime_type); child->child = NULL; child->next = node->child; node->child = child; @@ -272,7 +272,7 @@ _xdg_glob_hash_insert_text (XdgGlobHashN } else { - node->mime_type = mime_type; + node->mime_type = strdup (mime_type); } } else @@ -475,7 +475,7 @@ _xdg_glob_hash_append_glob (XdgGlobHash glob_hash->literal_list = _xdg_glob_list_append (glob_hash->literal_list, strdup (glob), strdup (mime_type)); break; case XDG_GLOB_SIMPLE: - glob_hash->simple_node = _xdg_glob_hash_insert_text (glob_hash->simple_node, glob + 1, strdup (mime_type)); + glob_hash->simple_node = _xdg_glob_hash_insert_text (glob_hash->simple_node, glob + 1, mime_type); break; case XDG_GLOB_FULL: glob_hash->full_list = _xdg_glob_list_append (glob_hash->full_list, strdup (glob), strdup (mime_type)); Index: glue/xdgmime/xdgmimemagic.c =================================================================== RCS file: /cvs/gnome/beagle/glue/xdgmime/xdgmimemagic.c,v retrieving revision 1.1 diff -u -p -u -r1.1 xdgmimemagic.c --- glue/xdgmime/xdgmimemagic.c 13 Jan 2006 20:19:41 -0000 1.1 +++ glue/xdgmime/xdgmimemagic.c 22 May 2006 15:53:47 -0000 @@ -661,24 +661,34 @@ _xdg_mime_magic_lookup_data (XdgMimeMagi const char *mime_type; int n; int priority; + int had_match; mime_type = NULL; priority = 0; + had_match = 0; for (match = mime_magic->match_list; match; match = match->next) { if (_xdg_mime_magic_match_compare_to_data (match, data, len)) { - if ((mime_type == NULL) || (xdg_mime_mime_type_subclass (match->mime_type, mime_type)) || match->priority > priority) { - mime_type = match->mime_type; - priority = match->priority; - } + if (!had_match || match->priority > priority || + (mime_type != NULL && _xdg_mime_mime_type_subclass (match->mime_type, mime_type))) + { + mime_type = match->mime_type; + priority = match->priority; + } + else if (had_match && match->priority == priority) + /* multiple unrelated patterns with the same priority matched, + * so we can't tell what type this is. */ + mime_type = NULL; + + had_match = 1; } else { for (n = 0; n < n_mime_types; n++) { if (mime_types[n] && - xdg_mime_mime_type_equal (mime_types[n], match->mime_type)) + _xdg_mime_mime_type_equal (mime_types[n], match->mime_type)) mime_types[n] = NULL; } } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...
participants (1)
-
root@suse.de