r18497 - in /desktop/experimental/glib2.0/debian: changelog patches/01_gettext-desktopfiles.patch patches/02_gettext-desktopfiles-ubuntu.patch patches/series
slomo at users.alioth.debian.org
slomo at users.alioth.debian.org
Tue Feb 24 15:11:59 UTC 2009
Author: slomo
Date: Tue Feb 24 15:11:59 2009
New Revision: 18497
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=18497
Log:
* debian/patches/01_gettext-desktopfiles.patch,
debian/patches/02_gettext-desktopfiles-ubuntu.patch:
+ Updated from the Ubuntu package, thanks to Martin Pitt for the changes:
- 01_gettext-desktopfiles.patch: Merge OpenSUSE's and our patch:
- Now prefers inline translations over gettext translations, which
fixes a few corner cases (like renaming .desktop files on the
user's desktop), is more in line with the recent gconf patch,
and more palatable for upstream inclusion.
- Use X-GNOME-Gettext-Domain, for preparing upstream inclusion.
- Forwarded upstream now.
- Add 02_gettext-desktopfiles-ubuntu.patch: Provide backwards
compatibility for 01_gettext-desktopfiles.patch for
X-{Debian,Ubuntu}-Gettext-Domain. The latter was changed to use
X-GNOME-, so this is necessary until all our .desktop files are
converted.
Added:
desktop/experimental/glib2.0/debian/patches/02_gettext-desktopfiles-ubuntu.patch
Modified:
desktop/experimental/glib2.0/debian/changelog
desktop/experimental/glib2.0/debian/patches/01_gettext-desktopfiles.patch
desktop/experimental/glib2.0/debian/patches/series
Modified: desktop/experimental/glib2.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/glib2.0/debian/changelog?rev=18497&op=diff
==============================================================================
--- desktop/experimental/glib2.0/debian/changelog (original)
+++ desktop/experimental/glib2.0/debian/changelog Tue Feb 24 15:11:59 2009
@@ -1,3 +1,23 @@
+glib2.0 (2.19.8-2) experimental; urgency=low
+
+ * debian/patches/01_gettext-desktopfiles.patch,
+ debian/patches/02_gettext-desktopfiles-ubuntu.patch:
+ + Updated from the Ubuntu package, thanks to Martin Pitt for the changes:
+ - 01_gettext-desktopfiles.patch: Merge OpenSUSE's and our patch:
+ - Now prefers inline translations over gettext translations, which
+ fixes a few corner cases (like renaming .desktop files on the
+ user's desktop), is more in line with the recent gconf patch,
+ and more palatable for upstream inclusion.
+ - Use X-GNOME-Gettext-Domain, for preparing upstream inclusion.
+ - Forwarded upstream now.
+ - Add 02_gettext-desktopfiles-ubuntu.patch: Provide backwards
+ compatibility for 01_gettext-desktopfiles.patch for
+ X-{Debian,Ubuntu}-Gettext-Domain. The latter was changed to use
+ X-GNOME-, so this is necessary until all our .desktop files are
+ converted.
+
+ -- Sebastian Dröge <slomo at debian.org> Tue, 24 Feb 2009 16:08:05 +0100
+
glib2.0 (2.19.8-1) experimental; urgency=low
* New upstream development release.
Modified: desktop/experimental/glib2.0/debian/patches/01_gettext-desktopfiles.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/glib2.0/debian/patches/01_gettext-desktopfiles.patch?rev=18497&op=diff
==============================================================================
--- desktop/experimental/glib2.0/debian/patches/01_gettext-desktopfiles.patch (original)
+++ desktop/experimental/glib2.0/debian/patches/01_gettext-desktopfiles.patch Tue Feb 24 15:11:59 2009
@@ -1,25 +1,19 @@
---- glib2.0-2.18.0.orig/glib/gkeyfile.c 2008-09-02 17:09:41.000000000 +0200
-+++ glib2.0-2.18.0/glib/gkeyfile.c 2008-09-03 00:53:13.000000000 +0200
-@@ -21,6 +21,10 @@
- * Boston, MA 02111-1307, USA.
- */
-
-+#define X_DEBIAN_GETTEXT_DOMAIN "X-Debian-Gettext-Domain"
-+#define X_UBUNTU_GETTEXT_DOMAIN "X-Ubuntu-Gettext-Domain"
-+#define X_DESKTOP_ENTRY "Desktop Entry"
-+
- #include "config.h"
-
- #include "gkeyfile.h"
-@@ -83,6 +87,7 @@
+# Description: If a .desktop file does not have inline translations, fall back to calling gettext.
+# Ubuntu: https://launchpad.net/bugs/3935
+# Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=569829
+Index: glib2.0-2.19.5/glib/gkeyfile.c
+===================================================================
+--- glib2.0-2.19.5.orig/glib/gkeyfile.c 2009-01-30 15:34:03.000000000 +0100
++++ glib2.0-2.19.5/glib/gkeyfile.c 2009-01-30 15:34:32.000000000 +0100
+@@ -83,6 +83,7 @@
GKeyFileFlags flags;
gchar **locales;
-+ char *gettext_domain;
++ gchar *gettext_domain;
};
typedef struct _GKeyFileKeyValuePair GKeyFileKeyValuePair;
-@@ -209,6 +214,7 @@
+@@ -209,6 +210,7 @@
key_file->list_separator = ';';
key_file->flags = 0;
key_file->locales = g_strdupv ((gchar **)g_get_language_names ());
@@ -27,75 +21,125 @@
}
static void
-@@ -227,6 +233,7 @@
- g_string_free (key_file->parse_buffer, TRUE);
+@@ -228,6 +230,12 @@
key_file->parse_buffer = NULL;
}
-+ g_free(key_file->gettext_domain);
++ if (key_file->gettext_domain)
++ {
++ g_free (key_file->gettext_domain);
++ key_file->gettext_domain = NULL;
++ }
++
tmp = key_file->groups;
while (tmp != NULL)
-@@ -448,6 +455,10 @@
+ {
+@@ -448,6 +456,11 @@
return FALSE;
}
-+ key_file->gettext_domain = g_key_file_get_string (key_file, X_DESKTOP_ENTRY, X_UBUNTU_GETTEXT_DOMAIN, NULL);
-+ if (!key_file->gettext_domain)
-+ key_file->gettext_domain = g_key_file_get_string (key_file, X_DESKTOP_ENTRY, X_DEBIAN_GETTEXT_DOMAIN, NULL);
++ key_file->gettext_domain = g_key_file_get_string (key_file,
++ G_KEY_FILE_DESKTOP_GROUP,
++ G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
++ NULL);
+
return TRUE;
}
-@@ -553,6 +564,10 @@
- g_propagate_error (error, key_file_error);
+@@ -554,6 +567,11 @@
return FALSE;
}
-+
-+ key_file->gettext_domain = g_key_file_get_string (key_file, X_DESKTOP_ENTRY, X_UBUNTU_GETTEXT_DOMAIN, NULL);
-+ if (!key_file->gettext_domain)
-+ key_file->gettext_domain = g_key_file_get_string (key_file, X_DESKTOP_ENTRY, X_DEBIAN_GETTEXT_DOMAIN, NULL);
++ key_file->gettext_domain = g_key_file_get_string (key_file,
++ G_KEY_FILE_DESKTOP_GROUP,
++ G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
++ NULL);
++
return TRUE;
}
-@@ -1682,6 +1697,32 @@
- languages = (gchar **) g_get_language_names ();
+
+@@ -1662,6 +1680,8 @@
+ GError *key_file_error;
+ gchar **languages;
+ gboolean free_languages = FALSE;
++ gboolean try_gettext = FALSE;
++ const gchar *msg_locale;
+ gint i;
+
+ g_return_val_if_fail (key_file != NULL, NULL);
+@@ -1692,6 +1712,23 @@
free_languages = FALSE;
}
+
++ /* we're only interested in gettext translation if we don't have a
++ * translation in the .desktop file itself and if the key is one of the keys
++ * we know we want to translate: Name, GenericName, Comment. Blindly doing
++ * this for all keys can give strange result for the icons, since the Icon is
++ * a locale string in the spec, eg. We also only get translation in the mo
++ * file if the requested locale is the LC_MESSAGES one. Ideally, we should do
++ * more and change LC_MESSAGES to use the requested locale, but there's no
++ * guarantee it's installed on the system and it might have some
++ * side-effects. Since this is a corner case, let's ignore it. */
+
-+ if (key_file->gettext_domain)
++ msg_locale = setlocale (LC_MESSAGES, NULL);
++ try_gettext = msg_locale && key_file->gettext_domain &&
++ strcmp (group_name, G_KEY_FILE_DESKTOP_GROUP) == 0 &&
++ (strcmp (key, G_KEY_FILE_DESKTOP_KEY_NAME) == 0 ||
++ strcmp (key, G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME) == 0 ||
++ strcmp (key, G_KEY_FILE_DESKTOP_KEY_COMMENT) == 0);
++
+ for (i = 0; languages[i]; i++)
+ {
+ candidate_key = g_strdup_printf ("%s[%s]", key, languages[i]);
+@@ -1708,6 +1745,39 @@
+ translated_value = NULL;
+ }
+
++ /* Fallback to gettext */
++ if (try_gettext && !translated_value)
+ {
-+ char *orig_value = g_key_file_get_string (key_file, group_name, key, NULL);
++ gchar *orig_value = g_key_file_get_string (key_file, group_name, key, NULL);
++
+ if (orig_value)
+ {
-+ gboolean has_gettext;
++ gboolean codeset_set;
++ const gchar *translated;
++ gboolean has_gettext;
+
-+ /* fprintf (stderr, "Resolved: '%s'='%s'\n", key, orig_value); */
-+ translated_value = dgettext (key_file->gettext_domain, orig_value);
-+ has_gettext = translated_value != orig_value;
-+ g_free (orig_value);
++ codeset_set = bind_textdomain_codeset (key_file->gettext_domain, "UTF-8") != NULL;
++ translated = NULL;
+
-+ if (has_gettext)
-+ {
-+ if (bind_textdomain_codeset (key_file->gettext_domain, NULL))
-+ translated_value = g_strdup (translated_value);
-+ else
-+ translated_value = g_locale_to_utf8 (translated_value, -1, NULL, NULL, NULL);
-+ /* fprintf (stderr, "Translated: '%s' -(via %s)- '%s'\n", orig_value, key_file->gettext_domain, translated_value); */
-+ goto done;
-+ }
-+ else
-+ translated_value = NULL;
-+ }
++ translated = g_dgettext (key_file->gettext_domain,
++ orig_value);
++ has_gettext = translated != orig_value;
++
++ g_free (orig_value);
++
++ if (has_gettext)
++ {
++ if (codeset_set)
++ translated_value = g_strdup (translated);
++ else
++ translated_value = g_locale_to_utf8 (translated,
++ -1, NULL, NULL, NULL);
++ }
++ else
++ translated_value = NULL;
++ }
+ }
-
- for (i = 0; languages[i]; i++)
- {
-@@ -1710,6 +1751,8 @@
- g_propagate_error (error, key_file_error);
- }
++
+ /* Fallback to untranslated key
+ */
+ if (!translated_value)
+Index: glib2.0-2.19.5/glib/gkeyfile.h
+===================================================================
+--- glib2.0-2.19.5.orig/glib/gkeyfile.h 2009-01-30 15:34:03.000000000 +0100
++++ glib2.0-2.19.5/glib/gkeyfile.h 2009-01-30 15:34:32.000000000 +0100
+@@ -240,6 +240,7 @@
+ #define G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY "StartupNotify"
+ #define G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS "StartupWMClass"
+ #define G_KEY_FILE_DESKTOP_KEY_URL "URL"
++#define G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN "X-GNOME-Gettext-Domain"
-+done:
-+
- if (free_languages)
- g_strfreev (languages);
-
+ #define G_KEY_FILE_DESKTOP_TYPE_APPLICATION "Application"
+ #define G_KEY_FILE_DESKTOP_TYPE_LINK "Link"
Added: desktop/experimental/glib2.0/debian/patches/02_gettext-desktopfiles-ubuntu.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/glib2.0/debian/patches/02_gettext-desktopfiles-ubuntu.patch?rev=18497&op=file
==============================================================================
--- desktop/experimental/glib2.0/debian/patches/02_gettext-desktopfiles-ubuntu.patch (added)
+++ desktop/experimental/glib2.0/debian/patches/02_gettext-desktopfiles-ubuntu.patch Tue Feb 24 15:11:59 2009
@@ -1,0 +1,40 @@
+# Description: Provide backwards compatibility for 01_gettext-desktopfiles.patch for X-{Debian,Ubuntu}-Gettext-Domain
+# UbuntuSpecific: 01_gettext-desktopfiles.patch was changed to use X-GNOME-, so this is necessary until all our .desktop files are converted
+Index: glib2.0-2.19.5/glib/gkeyfile.c
+===================================================================
+--- glib2.0-2.19.5.orig/glib/gkeyfile.c 2009-01-30 15:53:09.000000000 +0100
++++ glib2.0-2.19.5/glib/gkeyfile.c 2009-01-30 15:55:46.000000000 +0100
+@@ -460,6 +460,16 @@
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
+ NULL);
++ if (!key_file->gettext_domain)
++ key_file->gettext_domain = g_key_file_get_string (key_file,
++ G_KEY_FILE_DESKTOP_GROUP,
++ "X-Ubuntu-Gettext-Domain",
++ NULL);
++ if (!key_file->gettext_domain)
++ key_file->gettext_domain = g_key_file_get_string (key_file,
++ G_KEY_FILE_DESKTOP_GROUP,
++ "X-Debian-Gettext-Domain",
++ NULL);
+
+ return TRUE;
+ }
+@@ -571,6 +581,16 @@
+ G_KEY_FILE_DESKTOP_GROUP,
+ G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN,
+ NULL);
++ if (!key_file->gettext_domain)
++ key_file->gettext_domain = g_key_file_get_string (key_file,
++ G_KEY_FILE_DESKTOP_GROUP,
++ "X-Ubuntu-Gettext-Domain",
++ NULL);
++ if (!key_file->gettext_domain)
++ key_file->gettext_domain = g_key_file_get_string (key_file,
++ G_KEY_FILE_DESKTOP_GROUP,
++ "X-Debian-Gettext-Domain",
++ NULL);
+
+ return TRUE;
+ }
Modified: desktop/experimental/glib2.0/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/glib2.0/debian/patches/series?rev=18497&op=diff
==============================================================================
--- desktop/experimental/glib2.0/debian/patches/series (original)
+++ desktop/experimental/glib2.0/debian/patches/series Tue Feb 24 15:11:59 2009
@@ -1,4 +1,5 @@
01_gettext-desktopfiles.patch
+02_gettext-desktopfiles-ubuntu.patch
02_usr_share_gnome_applications.patch
03_blacklist-directories.patch
04_homedir_env.patch
More information about the pkg-gnome-commits
mailing list