diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2015-05-28 11:29:47 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2015-05-28 11:29:47 -0300 |
commit | fcb2d26cfa3b265200b5ae9e949d787a56bd4f14 (patch) | |
tree | 60bf5147d7608e6217b37e6807c386b3a43a2b36 /nonprism/grilo-plugins | |
parent | 19fe7e7da672746eea0c2cae0307cea5e54fb23e (diff) | |
parent | b0bb663657922f0154dd8d60a6d5455f9a2bfe3c (diff) | |
download | abslibre-fcb2d26cfa3b265200b5ae9e949d787a56bd4f14.tar.gz abslibre-fcb2d26cfa3b265200b5ae9e949d787a56bd4f14.tar.bz2 abslibre-fcb2d26cfa3b265200b5ae9e949d787a56bd4f14.zip |
Merge branch 'master' of git://projects.parabola.nu/abslibre/abslibre
Diffstat (limited to 'nonprism/grilo-plugins')
3 files changed, 126 insertions, 5 deletions
diff --git a/nonprism/grilo-plugins/0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch b/nonprism/grilo-plugins/0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch new file mode 100644 index 000000000..dc7abbb52 --- /dev/null +++ b/nonprism/grilo-plugins/0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch @@ -0,0 +1,80 @@ +From a05b159c330a7a65479bba35bc529d0934640627 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Tue, 19 May 2015 20:53:28 +0200 +Subject: [PATCH 2/2] local-metadata: Fixes to video_sanitise_string non-alnum + handling + +- Extract loop condition into a helper function +- Use g_utf8_get_char to properly convert to unichar +- Be more defensive about g_utf8_find_prev_char returning NULL + +https://bugzilla.gnome.org/show_bug.cgi?id=748604 +--- + src/local-metadata/grl-local-metadata.c | 39 +++++++++++++++++++++++---------- + 1 file changed, 28 insertions(+), 11 deletions(-) + +diff --git a/src/local-metadata/grl-local-metadata.c b/src/local-metadata/grl-local-metadata.c +index 45856be..c7f731e 100644 +--- a/src/local-metadata/grl-local-metadata.c ++++ b/src/local-metadata/grl-local-metadata.c +@@ -242,6 +242,28 @@ grl_local_metadata_source_set_property (GObject *object, + + /* ======================= Utilities ==================== */ + ++static gboolean ++is_nonalnum (const gchar *str) ++{ ++ gunichar uchar; ++ ++ if (str == NULL) { ++ return FALSE; ++ } ++ ++ uchar = g_utf8_get_char (str); ++ ++ if (g_unichar_isalnum (uchar)) { ++ return FALSE; ++ } ++ ++ if (uchar == '!' || uchar == '?' || uchar == '.') { ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ + static gchar * + video_sanitise_string (const gchar *str) + { +@@ -270,22 +292,17 @@ video_sanitise_string (const gchar *str) + } + + if (*line_end != '\0') { +- line_end = g_utf8_find_prev_char (line, line_end); +- ++ /* After removing substring with blacklisted word, ignore non alpha-numeric ++ * char in the end of the sanitised string */ ++ do { ++ line_end = g_utf8_find_prev_char (line, line_end); ++ } while (is_nonalnum (line_end)); + + /* If everything in the string is blacklisted, just ignore + * the blackisting logic. + */ +- if (line_end == NULL) ++ if (line_end == NULL) { + return g_strdup (str); +- +- /* After removing substring with blacklisted word, ignore non alpha-numeric +- * char in the end of the sanitised string */ +- while (g_unichar_isalnum (*line_end) == FALSE && +- *line_end != '!' && +- *line_end != '?' && +- *line_end != '.') { +- line_end = g_utf8_find_prev_char (line, line_end); + } + + return g_strndup (line, line_end - line); +-- +2.4.0 + diff --git a/nonprism/grilo-plugins/PKGBUILD b/nonprism/grilo-plugins/PKGBUILD index de4e5b3c4..020814d27 100644 --- a/nonprism/grilo-plugins/PKGBUILD +++ b/nonprism/grilo-plugins/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 233400 2015-03-12 13:39:12Z jgc $ +# $Id: PKGBUILD 239561 2015-05-19 19:26:57Z heftig $ # Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Maintainer: André Silva <emulatorman@parabola.nu> pkgname=grilo-plugins pkgver=0.2.14 -pkgrel=1.nonprism1 +pkgrel=4.nonprism1 pkgdesc="Plugins for Grilo, without libgdata support" url="http://www.gnome.org" arch=(i686 x86_64) @@ -12,13 +12,23 @@ license=(LGPL) replaces=(${pkgname}-nonprism) conflicts=(${pkgname}-nonprism) depends=(grilo lua libmediaart libtracker-sparql gom libdmapsharing) -makedepends=(intltool itstool gnome-common git yelp-tools) +makedepends=(intltool itstool yelp-tools) optdepends=('dleyna-server: DLNA plugin' 'tracker: Tracker plugin') options=('!emptydirs') groups=('gnome') -source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz) -sha256sums=('d0f18116675058c7e8c178b1fe26d6d73998a0452f85a73b1696df740c83d3ab') +source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver:0:3}/${pkgname}-${pkgver}.tar.xz + local-metadata-crash.patch + 0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch) +sha256sums=('d0f18116675058c7e8c178b1fe26d6d73998a0452f85a73b1696df740c83d3ab' + '221f770b064309635b52095d21d325707d45de03772da5cc579252b7795ced1b' + 'f95343c6433d438c6d67dfe0cf81804a9a19db1744606279159c008fce289aa7') + +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i ../local-metadata-crash.patch + patch -Np1 -i ../0002-local-metadata-Fixes-to-video_sanitise_string-non-al.patch +} build() { cd $pkgname-$pkgver diff --git a/nonprism/grilo-plugins/local-metadata-crash.patch b/nonprism/grilo-plugins/local-metadata-crash.patch new file mode 100644 index 000000000..edc2b6dff --- /dev/null +++ b/nonprism/grilo-plugins/local-metadata-crash.patch @@ -0,0 +1,31 @@ +From 85fc7cbf831e914456623a2f7a9efbe81919bf4d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= <olivier.crete@collabora.com> +Date: Tue, 28 Apr 2015 19:46:54 -0400 +Subject: local-metadata: Ignore sanitization if the whole filename is + blacklisted + +If the whole filename ends up blacklisted, then just take it as-is. + +https://bugzilla.gnome.org/show_bug.cgi?id=748604 + +diff --git a/src/local-metadata/grl-local-metadata.c b/src/local-metadata/grl-local-metadata.c +index adc81f0..45856be 100644 +--- a/src/local-metadata/grl-local-metadata.c ++++ b/src/local-metadata/grl-local-metadata.c +@@ -272,6 +272,13 @@ video_sanitise_string (const gchar *str) + if (*line_end != '\0') { + line_end = g_utf8_find_prev_char (line, line_end); + ++ ++ /* If everything in the string is blacklisted, just ignore ++ * the blackisting logic. ++ */ ++ if (line_end == NULL) ++ return g_strdup (str); ++ + /* After removing substring with blacklisted word, ignore non alpha-numeric + * char in the end of the sanitised string */ + while (g_unichar_isalnum (*line_end) == FALSE && +-- +cgit v0.10.2 + |