diff --git a/U_add-Cinnamon-desktop-environment_50271fe.patch b/U_add-Cinnamon-desktop-environment_50271fe.patch new file mode 100644 index 0000000..ebcabd7 --- /dev/null +++ b/U_add-Cinnamon-desktop-environment_50271fe.patch @@ -0,0 +1,25 @@ +From 848c82b2332d0556c22c10a9c64d1f39850271fe Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Fri, 7 Mar 2014 20:16:52 -0500 +Subject: Add Cinnamon to list of registered environments. + +https://github.com/linuxmint/Cinnamon + +https://bugs.freedesktop.org/show_bug.cgi?id=73497 + +diff --git a/src/validate.c b/src/validate.c +index 77a5fda..6859c1b 100644 +--- a/src/validate.c ++++ b/src/validate.c +@@ -363,7 +363,7 @@ static DesktopKeyDefinition registered_action_keys[] = { + }; + + static const char *show_in_registered[] = { +- "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Old" ++ "Cinnamon", "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Old" + }; + + static struct { +-- +cgit v0.10.2 + diff --git a/U_add-EDE-desktop-environment_97d6ba3.patch b/U_add-EDE-desktop-environment_97d6ba3.patch new file mode 100644 index 0000000..b1b23c3 --- /dev/null +++ b/U_add-EDE-desktop-environment_97d6ba3.patch @@ -0,0 +1,23 @@ +From be0c630a19aa1788ef731def911770ce497d6ba3 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Tue, 1 Apr 2014 22:29:08 +0200 +Subject: Add EDE to the list of desktop environments + +https://bugs.freedesktop.org/show_bug.cgi?id=56353 + +diff --git a/src/validate.c b/src/validate.c +index 6859c1b..b4b752e 100644 +--- a/src/validate.c ++++ b/src/validate.c +@@ -363,7 +363,7 @@ static DesktopKeyDefinition registered_action_keys[] = { + }; + + static const char *show_in_registered[] = { +- "Cinnamon", "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Old" ++ "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Cinnamon", "EDE", "Old" + }; + + static struct { +-- +cgit v0.10.2 + diff --git a/U_trailing-semicolons-are-optional_aec5711.patch b/U_trailing-semicolons-are-optional_aec5711.patch new file mode 100644 index 0000000..ae90788 --- /dev/null +++ b/U_trailing-semicolons-are-optional_aec5711.patch @@ -0,0 +1,174 @@ +From 9e279cc3fac9a7e92bf426867fa83c0c7aec5711 Mon Sep 17 00:00:00 2001 +From: Jerome Leclanche +Date: Tue, 1 Apr 2014 15:33:16 +0200 +Subject: desktop-file-validate: Trailing semicolons have been downgraded to + optional + +https://bugs.freedesktop.org/show_bug.cgi?id=76902 +Approved by David Faure and Ryan Lortie + +diff --git a/src/validate.c b/src/validate.c +index 68fd6f0..77a5fda 100644 +--- a/src/validate.c ++++ b/src/validate.c +@@ -765,9 +765,6 @@ validate_numeric_key (kf_validator *kf, + /* + Values of type string may contain all ASCII characters except for control + * characters. + * Checked. +- * + The multiple values should be separated by a semicolon. Those keys which +- * have several values should have a semicolon as the trailing character. +- * Checked. + * + FIXME: how should an empty list be handled? + */ + static gboolean +@@ -799,24 +796,6 @@ validate_string_regexp_list_key (kf_validator *kf, + return FALSE; + } + +- if (i > 0 && value[i - 1] != ';') { +- print_fatal (kf, "value \"%s\" for %s list key \"%s\" in group \"%s\" " +- "does not have a semicolon (';') as trailing " +- "character\n", +- value, type, key, kf->current_group); +- +- return FALSE; +- } +- +- if (i > 1 && value[i - 1] == ';' && value[i - 2] == '\\' && +- (i < 3 || value[i - 3] != '\\')) { +- print_fatal (kf, "value \"%s\" for %s list key \"%s\" in group \"%s\" " +- "has an escaped semicolon (';') as trailing character\n", +- value, type, key, kf->current_group); +- +- return FALSE; +- } +- + return TRUE; + } + +@@ -845,10 +824,6 @@ validate_regexp_list_key (kf_validator *kf, + * + If a postfixed key occurs, the same key must be also present without the + * postfix. + * Checked. +- * + The multiple values should be separated by a semicolon. Those keys which +- * have several values should have a semicolon as the trailing character. +- * FIXME: partly checked. We use checks that work for sure for ascii +- * characters, but that could possibly fail in some weird UTF-8 strings. + * + FIXME: how should an empty list be handled? + */ + static gboolean +@@ -858,7 +833,6 @@ validate_localestring_list_key (kf_validator *kf, + const char *value) + { + char *locale_key; +- int len; + + if (locale) + locale_key = g_strdup_printf ("%s[%s]", key, locale); +@@ -876,27 +850,6 @@ validate_localestring_list_key (kf_validator *kf, + return FALSE; + } + +- len = strlen (value); +- +- if (len > 0 && value[len - 1] != ';') { +- print_fatal (kf, "value \"%s\" for locale string list key \"%s\" in group " +- "\"%s\" does not have a semicolon (';') as trailing " +- "character\n", +- value, locale_key, kf->current_group); +- +- return FALSE; +- } +- +- if (len > 1 && value[len - 1] == ';' && value[len - 2] == '\\' && +- (len < 3 || value[len - 3] != '\\')) { +- print_fatal (kf, "value \"%s\" for locale string list key \"%s\" in group " +- "\"%s\" has an escaped semicolon (';') as trailing " +- "character\n", +- value, locale_key, kf->current_group); +- +- return FALSE; +- } +- + if (!g_hash_table_lookup (kf->current_keys, key)) { + print_fatal (kf, "key \"%s\" in group \"%s\" is a localized key, but " + "there is no non-localized key \"%s\"\n", +@@ -3109,45 +3062,11 @@ desktop_file_validate (const char *filename, + return (!kf.fatal_error); + } + +-static void +-fixup_list (GKeyFile *keyfile, +- const gchar *filename, +- const gchar *key) +-{ +- char *value; +- int len; +- +- value = g_key_file_get_value (keyfile, GROUP_DESKTOP_ENTRY, key, NULL); +- if (!value) +- return; +- +- len = strlen (value); +- +- if (len > 0 && (value[len - 1] != ';' || +- (len > 1 && value[len - 2] == '\\' && +- (len < 3 || value[len - 3] != '\\')))) { +- char *str; +- +- g_printerr ("%s: warning: key \"%s\" is a list and does not have a " +- "semicolon as trailing character, fixing\n", +- filename, key); +- +- str = g_strconcat (value, ";", NULL); +- g_key_file_set_value (keyfile, GROUP_DESKTOP_ENTRY, +- key, str); +- g_free (str); +- } +-} +- + /* return FALSE if we were unable to fix the file */ + gboolean + desktop_file_fixup (GKeyFile *keyfile, + const char *filename) + { +- gchar **keys; +- gsize keys_nb; +- unsigned int i; +- + if (g_key_file_has_group (keyfile, GROUP_KDE_DESKTOP_ENTRY)) { + g_printerr ("%s: warning: renaming deprecated \"%s\" group to \"%s\"\n", + filename, GROUP_KDE_DESKTOP_ENTRY, GROUP_DESKTOP_ENTRY); +@@ -3155,29 +3074,5 @@ desktop_file_fixup (GKeyFile *keyfile, + GROUP_KDE_DESKTOP_ENTRY, GROUP_DESKTOP_ENTRY); + } + +- keys = g_key_file_get_keys (keyfile, GROUP_DESKTOP_ENTRY, &keys_nb, NULL); +- +- /* Fix lists to have a ';' at the end if they don't */ +- for (i = 0; i < G_N_ELEMENTS (registered_desktop_keys); i++) { +- if (registered_desktop_keys[i].type == DESKTOP_STRING_LIST_TYPE || +- registered_desktop_keys[i].type == DESKTOP_REGEXP_LIST_TYPE) +- fixup_list (keyfile, filename, registered_desktop_keys[i].name); +- +- if (registered_desktop_keys[i].type == DESKTOP_LOCALESTRING_LIST_TYPE) { +- gsize keylen; +- guint j; +- +- keylen = strlen (registered_desktop_keys[i].name); +- for (j = 0; j < keys_nb; j++) { +- if (g_str_has_prefix (keys[j], registered_desktop_keys[i].name) && +- (keys[j][keylen] == '[' || keys[j][keylen] == '\0')) { +- fixup_list (keyfile, filename, keys[j]); +- } +- } +- } +- } +- +- g_strfreev (keys); +- + return TRUE; + } +-- +cgit v0.10.2 + diff --git a/desktop-file-utils.changes b/desktop-file-utils.changes index 4cbafc4..e6c35d1 100644 --- a/desktop-file-utils.changes +++ b/desktop-file-utils.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Dec 15 00:09:35 UTC 2014 - stefan.bruens@rwth-aachen.de + +- Add U_trailing-semicolons-are-optional_aec5711.patch + bfo#76902, fixes a no longer correct rpmlint warning for some + upstream desktop files without trailing semicolon +- Add U_add-EDE-desktop-environment_97d6ba3.patch, + U_add-Cinnamon-desktop-environment_50271fe.patch + bfo#56353, bfo#73497 + ------------------------------------------------------------------- Fri Aug 30 17:55:02 UTC 2013 - hrvoje.senjan@gmail.com diff --git a/desktop-file-utils.spec b/desktop-file-utils.spec index e83cb20..6df868a 100644 --- a/desktop-file-utils.spec +++ b/desktop-file-utils.spec @@ -1,7 +1,7 @@ # # spec file for package desktop-file-utils # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -28,6 +28,11 @@ Source1: suse-update-mime-defaults Source2: macros.desktop-file-utils # PATCH-FEATURE-OPENSUSE desktop-file-utils-suse-keys.patch vuntz@opensuse.org -- Handle SUSE-specific keys in validator. This is not strictly necessary, since they are prefixed with X-, but we can verify that the value has the right type. Patch0: desktop-file-utils-suse-keys.patch +# PATCH-UPSTREAM -- trailing semicolons are no longer required +Patch1: U_trailing-semicolons-are-optional_aec5711.patch +# PATCH-UPSTREAM -- add Cinnamon and EDE desktop environments +Patch2: U_add-Cinnamon-desktop-environment_50271fe.patch +Patch3: U_add-EDE-desktop-environment_97d6ba3.patch BuildRequires: glib2-devel BuildRequires: pkg-config #!BuildIgnore: dbus-1-x11 @@ -46,6 +51,9 @@ http://freedesktop.org/wiki/Specifications/desktop-entry-spec %prep %setup -q %patch0 -p0 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build %configure \