Accepting request 265209 from home:StefanBruens:branches:X11:common:Factory

Some upstream desktop files do not have a trailing semicolon in multivalued strings, which are optional with the latest spec:
http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s03.html

Also add Cinnamon and EDE desktop environments.

All three patches taken from upstream git.

OBS-URL: https://build.opensuse.org/request/show/265209
OBS-URL: https://build.opensuse.org/package/show/X11:common:Factory/desktop-file-utils?expand=0&rev=44
This commit is contained in:
Tomáš Chvátal 2014-12-24 16:24:31 +00:00 committed by Git OBS Bridge
parent 449f7a3c3a
commit 0b877baee6
5 changed files with 241 additions and 1 deletions

View File

@ -0,0 +1,25 @@
From 848c82b2332d0556c22c10a9c64d1f39850271fe Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebster@gmail.com>
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

View File

@ -0,0 +1,23 @@
From be0c630a19aa1788ef731def911770ce497d6ba3 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
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

View File

@ -0,0 +1,174 @@
From 9e279cc3fac9a7e92bf426867fa83c0c7aec5711 Mon Sep 17 00:00:00 2001
From: Jerome Leclanche <jerome@leclan.ch>
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

View File

@ -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

View File

@ -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 \