Browse Source
subrepo: subdir: "gconf" merged: "4a7f096" upstream: origin: "gitea@gitea.artixlinux.org:packagesG/gconf.git" branch: "master" commit: "4a7f096" git-subrepo: version: "0.4.0" origin: "???" commit: "???"master
21 changed files with 1177 additions and 0 deletions
@ -0,0 +1,33 @@
|
||||
# ---> ArchLinuxPackages |
||||
*.tar |
||||
*.tar.* |
||||
*.jar |
||||
*.exe |
||||
*.msi |
||||
*.zip |
||||
*.tgz |
||||
*.log |
||||
*.log.* |
||||
*.sig |
||||
|
||||
pkg/ |
||||
src/ |
||||
|
||||
|
||||
# ---> Archives |
||||
*.7z |
||||
*.rar |
||||
*.gz |
||||
*.bzip |
||||
*.bz2 |
||||
*.xz |
||||
*.lzma |
||||
*.cab |
||||
|
||||
# ---> systemd |
||||
*.service |
||||
*.socket |
||||
*.timer |
||||
|
||||
# ---> snap |
||||
*.snap |
@ -0,0 +1,12 @@
|
||||
; DO NOT EDIT (unless you know what you are doing) |
||||
; |
||||
; This subdirectory is a git "subrepo", and this file is maintained by the |
||||
; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme |
||||
; |
||||
[subrepo] |
||||
remote = gitea@gitea.artixlinux.org:packagesG/gconf.git |
||||
branch = master |
||||
commit = 4a7f096638f6c0824ae3b5a24296639bb7d7f9b6 |
||||
parent = fd3c02427caeb82a6094efc8787b05dcae83a7bd |
||||
method = merge |
||||
cmdver = 0.4.0 |
@ -0,0 +1,3 @@
|
||||
@Library('artix-ci') import org.artixlinux.RepoPackage |
||||
|
||||
PackagePipeline(new RepoPackage(this)) |
@ -0,0 +1,362 @@
|
||||
# Description: Support calling gettext at runtime and putting the gettext domain into the .schemas file instead of replicating translations in /usr/share/gconf/schemas/*.schemas *and* /var/lib/gconf/defaults/%gconf-tree-$LANG.xml. This saves in the order of 90 MB uncompressed/10 MB compressed on hard disks.
|
||||
# Ubuntu: https://bugs.launchpad.net/bugs/123025
|
||||
# Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=568845
|
||||
--- GConf-2.26.0/backends/markup-tree.c.gettext 2009-04-26 23:33:05.258484987 -0400
|
||||
+++ GConf-2.26.0/backends/markup-tree.c 2009-04-26 23:34:25.026700526 -0400
|
||||
@@ -52,6 +52,7 @@ struct _MarkupEntry
|
||||
char *schema_name;
|
||||
char *mod_user;
|
||||
GTime mod_time;
|
||||
+ const char *gettext_domain;
|
||||
};
|
||||
|
||||
static LocalSchemaInfo* local_schema_info_new (void);
|
||||
@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry
|
||||
gconf_schema_get_type (schema));
|
||||
gconf_schema_set_owner (current_schema,
|
||||
gconf_schema_get_owner (schema));
|
||||
+ gconf_schema_set_gettext_domain (current_schema,
|
||||
+ gconf_schema_get_gettext_domain (schema));
|
||||
}
|
||||
|
||||
/* Update mod time */
|
||||
@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent
|
||||
else if (c_local_schema && c_local_schema->long_desc)
|
||||
gconf_schema_set_long_desc (schema, c_local_schema->long_desc);
|
||||
|
||||
+ gconf_schema_set_gettext_domain (schema, entry->gettext_domain);
|
||||
+
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext
|
||||
const char *ltype;
|
||||
const char *list_type;
|
||||
const char *owner;
|
||||
+
|
||||
GConfValueType vtype;
|
||||
- const char *dummy1, *dummy2, *dummy3, *dummy4;
|
||||
+ const char *dummy1, *dummy2, *dummy3, *dummy4, *dummy5;
|
||||
|
||||
#if 0
|
||||
g_assert (ELEMENT_IS ("entry") ||
|
||||
@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext
|
||||
"muser", &dummy2,
|
||||
"mtime", &dummy3,
|
||||
"schema", &dummy4,
|
||||
+ "gettext_domain", &dummy5,
|
||||
|
||||
NULL))
|
||||
return;
|
||||
@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext
|
||||
const char *mtime;
|
||||
const char *schema;
|
||||
const char *type;
|
||||
+ const char *gettext_domain;
|
||||
const char *dummy1, *dummy2, *dummy3, *dummy4;
|
||||
const char *dummy5, *dummy6, *dummy7;
|
||||
GConfValue *value;
|
||||
@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext
|
||||
mtime = NULL;
|
||||
schema = NULL;
|
||||
type = NULL;
|
||||
+ gettext_domain = NULL;
|
||||
|
||||
if (!locate_attributes (context, element_name, attribute_names, attribute_values,
|
||||
error,
|
||||
@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext
|
||||
"mtime", &mtime,
|
||||
"schema", &schema,
|
||||
"type", &type,
|
||||
+ "gettext_domain", &gettext_domain,
|
||||
|
||||
/* These are allowed but we don't use them until
|
||||
* parse_value_element
|
||||
@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext
|
||||
*/
|
||||
if (schema)
|
||||
entry->schema_name = g_strdup (schema);
|
||||
+
|
||||
+ if (gettext_domain)
|
||||
+ entry->gettext_domain = g_intern_string (gettext_domain);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value,
|
||||
GConfSchema *schema;
|
||||
GConfValueType stype;
|
||||
const char *owner;
|
||||
+ const char *gettext_domain;
|
||||
|
||||
schema = gconf_value_get_schema (value);
|
||||
|
||||
@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value,
|
||||
|
||||
g_free (s);
|
||||
}
|
||||
+
|
||||
+ gettext_domain = gconf_schema_get_gettext_domain (schema);
|
||||
+
|
||||
+ if (gettext_domain)
|
||||
+ {
|
||||
+ char *s;
|
||||
+
|
||||
+ s = g_markup_escape_text (gettext_domain, -1);
|
||||
+
|
||||
+ if (fprintf (f, " gettext_domain=\"%s\"", s) < 0)
|
||||
+ {
|
||||
+ g_free (s);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ g_free (s);
|
||||
+ }
|
||||
|
||||
if (stype == GCONF_VALUE_LIST)
|
||||
{
|
||||
diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd
|
||||
--- GConf-2.26.0/doc/gconf-1.0.dtd.gettext 2009-04-26 23:33:17.240736103 -0400
|
||||
+++ GConf-2.26.0/doc/gconf-1.0.dtd 2009-04-26 23:34:25.027700384 -0400
|
||||
@@ -7,7 +7,7 @@
|
||||
<!-- A single schema. What I am trying to say is "this set of
|
||||
elements, in any order". Duplicate elements (apart from <locale>) are
|
||||
not allowed). -->
|
||||
-<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*)*>
|
||||
+<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*|gettext_domain?)*>
|
||||
|
||||
<!-- The key for this schema (e.g. /schemas/apps/foo/bar) -->
|
||||
<!ELEMENT key (#PCDATA)>
|
||||
diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c
|
||||
--- GConf-2.26.0/gconf/gconf-internals.c.gettext 2009-04-26 23:34:10.994700035 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-internals.c 2009-04-26 23:34:53.767450191 -0400
|
||||
@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem
|
||||
cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : "");
|
||||
cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : "");
|
||||
cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : "");
|
||||
+ cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : "");
|
||||
|
||||
{
|
||||
gchar* encoded;
|
||||
@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con
|
||||
gconf_schema_set_owner(sc, cs->owner);
|
||||
}
|
||||
|
||||
+ if (*cs->gettext_domain != '\0')
|
||||
+ {
|
||||
+ if (!g_utf8_validate (cs->gettext_domain, -1, NULL))
|
||||
+ gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema"));
|
||||
+ else
|
||||
+ gconf_schema_set_gettext_domain(sc, cs->gettext_domain);
|
||||
+ }
|
||||
+
|
||||
{
|
||||
GConfValue* val;
|
||||
|
||||
diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c
|
||||
--- GConf-2.26.0/gconf/gconf-schema.c.gettext 2009-04-26 23:33:26.787483545 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-schema.c 2009-04-26 23:35:54.240450142 -0400
|
||||
@@ -32,9 +32,10 @@ typedef struct {
|
||||
GConfValueType car_type; /* Pair car type of the described entry */
|
||||
GConfValueType cdr_type; /* Pair cdr type of the described entry */
|
||||
gchar* locale; /* Schema locale */
|
||||
- gchar* owner; /* Name of creating application */
|
||||
+ const gchar* owner; /* Name of creating application */
|
||||
gchar* short_desc; /* 40 char or less description, no newlines */
|
||||
gchar* long_desc; /* could be a paragraph or so */
|
||||
+ const gchar* gettext_domain; /* description gettext domain */
|
||||
GConfValue* default_value; /* Default value of the key */
|
||||
} GConfRealSchema;
|
||||
|
||||
@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc)
|
||||
g_free (real->locale);
|
||||
g_free (real->short_desc);
|
||||
g_free (real->long_desc);
|
||||
- g_free (real->owner);
|
||||
|
||||
if (real->default_value)
|
||||
gconf_value_free (real->default_value);
|
||||
@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc
|
||||
|
||||
dest->long_desc = g_strdup (real->long_desc);
|
||||
|
||||
- dest->owner = g_strdup (real->owner);
|
||||
+ dest->gettext_domain = real->gettext_domain;
|
||||
+
|
||||
+ dest->owner = real->owner;
|
||||
|
||||
dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL;
|
||||
|
||||
@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc
|
||||
REAL_SCHEMA (sc)->locale = NULL;
|
||||
}
|
||||
|
||||
+void
|
||||
+gconf_schema_set_gettext_domain (GConfSchema* sc, const gchar* domain)
|
||||
+{
|
||||
+ g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL));
|
||||
+
|
||||
+ if (domain)
|
||||
+ REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain);
|
||||
+ else
|
||||
+ REAL_SCHEMA (sc)->gettext_domain = NULL;
|
||||
+}
|
||||
+
|
||||
void
|
||||
gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc)
|
||||
{
|
||||
@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc,
|
||||
{
|
||||
g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL));
|
||||
|
||||
- if (REAL_SCHEMA (sc)->owner)
|
||||
- g_free (REAL_SCHEMA (sc)->owner);
|
||||
-
|
||||
if (owner)
|
||||
- REAL_SCHEMA (sc)->owner = g_strdup (owner);
|
||||
+ REAL_SCHEMA (sc)->owner = g_intern_string (owner);
|
||||
else
|
||||
REAL_SCHEMA (sc)->owner = NULL;
|
||||
}
|
||||
@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+ if (real->gettext_domain && !g_utf8_validate (real->gettext_domain, -1, NULL))
|
||||
+ {
|
||||
+ g_set_error (err, GCONF_ERROR,
|
||||
+ GCONF_ERROR_FAILED,
|
||||
+ _("Schema contains invalid UTF-8"));
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
if (real->owner && !g_utf8_validate (real->owner, -1, NULL))
|
||||
{
|
||||
g_set_error (err, GCONF_ERROR,
|
||||
@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche
|
||||
}
|
||||
|
||||
const char*
|
||||
+gconf_schema_get_gettext_domain (const GConfSchema *schema)
|
||||
+{
|
||||
+ g_return_val_if_fail (schema != NULL, NULL);
|
||||
+
|
||||
+ return REAL_SCHEMA (schema)->gettext_domain;
|
||||
+}
|
||||
+
|
||||
+static inline const char *
|
||||
+schema_translate (const GConfSchema *schema,
|
||||
+ const char *string)
|
||||
+{
|
||||
+ if (REAL_SCHEMA (schema)->gettext_domain)
|
||||
+ {
|
||||
+ bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8");
|
||||
+ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string);
|
||||
+ }
|
||||
+ else
|
||||
+ return string;
|
||||
+}
|
||||
+
|
||||
+const char*
|
||||
gconf_schema_get_short_desc (const GConfSchema *schema)
|
||||
{
|
||||
g_return_val_if_fail (schema != NULL, NULL);
|
||||
|
||||
- return REAL_SCHEMA (schema)->short_desc;
|
||||
+ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc);
|
||||
}
|
||||
|
||||
const char*
|
||||
@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS
|
||||
{
|
||||
g_return_val_if_fail (schema != NULL, NULL);
|
||||
|
||||
- return REAL_SCHEMA (schema)->long_desc;
|
||||
+ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc);
|
||||
}
|
||||
|
||||
const char*
|
||||
diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h
|
||||
--- GConf-2.26.0/gconf/gconf-schema.h.gettext 2009-04-26 23:33:33.979744088 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-schema.h 2009-04-26 23:34:25.030737043 -0400
|
||||
@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type
|
||||
GConfValueType type);
|
||||
void gconf_schema_set_locale (GConfSchema *sc,
|
||||
const gchar *locale);
|
||||
+void gconf_schema_set_gettext_domain (GConfSchema *sc,
|
||||
+ const gchar *domain);
|
||||
void gconf_schema_set_short_desc (GConfSchema *sc,
|
||||
const gchar *desc);
|
||||
void gconf_schema_set_long_desc (GConfSchema *sc,
|
||||
@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ
|
||||
GConfValueType gconf_schema_get_car_type (const GConfSchema *schema);
|
||||
GConfValueType gconf_schema_get_cdr_type (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_locale (const GConfSchema *schema);
|
||||
+const char* gconf_schema_get_gettext_domain(const GConfSchema *schema);
|
||||
const char* gconf_schema_get_short_desc (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_long_desc (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_owner (const GConfSchema *schema);
|
||||
diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c
|
||||
--- GConf-2.26.0/gconf/gconftool.c.gettext 2009-04-26 23:33:41.907451190 -0400
|
||||
+++ GConf-2.26.0/gconf/gconftool.c 2009-04-26 23:34:25.034736752 -0400
|
||||
@@ -3295,6 +3295,7 @@ struct _SchemaInfo {
|
||||
GConfValueType cdr_type;
|
||||
GConfValue* global_default;
|
||||
GHashTable* hash;
|
||||
+ gchar* gettext_domain;
|
||||
};
|
||||
|
||||
static int
|
||||
@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node,
|
||||
else
|
||||
g_printerr (_("WARNING: empty <applyto> node"));
|
||||
}
|
||||
+ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
|
||||
+ {
|
||||
+ tmp = (char *)xmlNodeGetContent(iter);
|
||||
+ if (tmp)
|
||||
+ {
|
||||
+ info->gettext_domain = g_strdup(tmp);
|
||||
+ xmlFree(tmp);
|
||||
+ }
|
||||
+ }
|
||||
else
|
||||
g_printerr (_("WARNING: node <%s> not understood below <schema>\n"),
|
||||
iter->name);
|
||||
@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch
|
||||
if (info->owner != NULL)
|
||||
gconf_schema_set_owner(schema, info->owner);
|
||||
|
||||
+ if (info->gettext_domain != NULL)
|
||||
+ gconf_schema_set_gettext_domain(schema, info->gettext_domain);
|
||||
+
|
||||
xmlFree(name);
|
||||
|
||||
/* Locale-specific info */
|
||||
@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch
|
||||
info.apply_to = NULL;
|
||||
info.owner = NULL;
|
||||
info.global_default = NULL;
|
||||
+ info.gettext_domain = NULL;
|
||||
info.hash = g_hash_table_new(g_str_hash, g_str_equal);
|
||||
|
||||
extract_global_info(node, &info);
|
||||
@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch
|
||||
; /* nothing */
|
||||
else if (strcmp((char *)iter->name, "applyto") == 0)
|
||||
; /* nothing */
|
||||
+ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
|
||||
+ ; /* nothing */
|
||||
else if (strcmp((char *)iter->name, "locale") == 0)
|
||||
{
|
||||
process_locale_info(iter, &info);
|
||||
diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl
|
||||
--- GConf-2.26.0/gconf/GConfX.idl.gettext 2009-04-26 23:33:58.457483190 -0400
|
||||
+++ GConf-2.26.0/gconf/GConfX.idl 2009-04-26 23:34:53.764448732 -0400
|
||||
@@ -16,6 +16,7 @@ struct ConfigSchema {
|
||||
string short_desc;
|
||||
string long_desc;
|
||||
string owner;
|
||||
+ string gettext_domain;
|
||||
// Work around lack of recursive data types
|
||||
string encoded_default_value;
|
||||
};
|
@ -0,0 +1,71 @@
|
||||
# Maintainer: Jan de Groot <jan@archlinux.org> |
||||
|
||||
pkgname=gconf |
||||
pkgver=3.2.6+11+g07808097 |
||||
pkgrel=4 |
||||
pkgdesc="An obsolete configuration database system" |
||||
url="https://projects-old.gnome.org/gconf/" |
||||
arch=(x86_64) |
||||
license=(LGPL) |
||||
depends=(libxml2 polkit libldap dbus-glib python2) |
||||
makedepends=(intltool gtk-doc gobject-introspection git gnome-common) |
||||
install=gconf.install |
||||
_commit=0780809731c8ab1c364202b1900d3df106b28626 # master |
||||
source=("git+https://gitlab.gnome.org/Archive/gconf.git#commit=$_commit" |
||||
01_xml-gettext-domain.patch gconf-reload.patch |
||||
gconf-merge-schema gconfpkg gconf-{install,remove}.hook) |
||||
sha256sums=('SKIP' |
||||
'c883dec2b96978874a53700cfe7f26f24f8296767203e970bc6402b4b9945eb8' |
||||
'567b78d8b4b4bbcb77c5f134d57bc503c34867fcc6341c0b01716bcaa4a21694' |
||||
'ee6b6e6f4975dad13a8c45f1c1f0547a99373bdecdcd6604bfc12965c328a028' |
||||
'bf1928718caa5df2b9e54a13cfd0f15a8fe0e09e86b84385ce023616a114e898' |
||||
'2732b2a6b187c5620105a036bde12edee99669605f70cbde56fe5f39619c3dc0' |
||||
'436a65ff290095bc3d35d7d6297cf4d647f61e9f9922cea7ef9f1e251b447ff7') |
||||
|
||||
pkgver() { |
||||
cd $pkgname |
||||
git describe --tags | sed 's/-/+/g' |
||||
} |
||||
|
||||
prepare() { |
||||
cd $pkgname |
||||
|
||||
# Patch from fedora - reloads gconf after installing schemas |
||||
patch -Np1 -i ../gconf-reload.patch |
||||
|
||||
# http://bugzilla.gnome.org/show_bug.cgi?id=568845 |
||||
patch -Np1 -i ../01_xml-gettext-domain.patch |
||||
|
||||
# Python2 fix |
||||
sed -i '1s|#!/usr/bin/env python$|&2|' gsettings/gsettings-schema-convert |
||||
|
||||
NOCONFIGURE=1 ./autogen.sh |
||||
} |
||||
|
||||
build() { |
||||
cd $pkgname |
||||
./configure \ |
||||
--prefix=/usr \ |
||||
--sysconfdir=/etc \ |
||||
--localstatedir=/var \ |
||||
--libexecdir=/usr/lib \ |
||||
--enable-defaults-service \ |
||||
--disable-gtk-doc \ |
||||
--disable-static \ |
||||
--disable-orbit |
||||
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool |
||||
make |
||||
} |
||||
|
||||
check() { |
||||
cd $pkgname |
||||
make check |
||||
} |
||||
|
||||
package() { |
||||
DESTDIR="$pkgdir" make -C $pkgname install |
||||
|
||||
install -d "$pkgdir/etc/gconf/gconf.xml.system" |
||||
install -Dt "$pkgdir/usr/bin" gconf-merge-schema gconfpkg |
||||
install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 *.hook |
||||
} |
@ -0,0 +1,11 @@
|
||||
[Trigger] |
||||
Type = File |
||||
Operation = Install |
||||
Operation = Upgrade |
||||
Target = usr/share/gconf/schemas/*.schemas |
||||
|
||||
[Action] |
||||
Description = Installing GConf schemas... |
||||
When = PostTransaction |
||||
Exec = /bin/bash -c 'while read -r f; do f=$(basename "$f" .schemas); /usr/bin/gconfpkg --install $f; done' |
||||
NeedsTargets |
@ -0,0 +1,34 @@
|
||||
#!/bin/bash |
||||
if [ ! "$1" -a ! "$2" ]; then |
||||
echo "Usage: $0 output.schemas [--domain gettextdomain] file1.schemas [file2.schemas [...]]" |
||||
exit 1 |
||||
fi |
||||
|
||||
OUTFILE="$1" |
||||
DOMAIN="" |
||||
shift |
||||
|
||||
if [ "$1" = "--domain" ]; then |
||||
shift |
||||
DOMAIN=$1 |
||||
shift |
||||
fi |
||||
|
||||
echo '<?xml version="1.0"?>' > "$OUTFILE" |
||||
echo '<gconfschemafile><schemalist>' >> "$OUTFILE" |
||||
|
||||
while [ "$1" ]; do |
||||
if [ -f "$1" ]; then |
||||
sed -e '/<?xml/d' \ |
||||
-e 's|<gconfschemafile>||g' \ |
||||
-e 's|</gconfschemafile>||g' \ |
||||
-e 's|<schemalist>||g' \ |
||||
-e 's|</schemalist>||g' "$1" >> "$OUTFILE" |
||||
fi |
||||
shift |
||||
done |
||||
|
||||
echo '</schemalist></gconfschemafile>' >> "$OUTFILE" |
||||
if [ "$DOMAIN" != "" ]; then |
||||
sed -ri "s/^([[:space:]]*)(<locale name=\"C\">)/\1<gettext_domain>$DOMAIN<\/gettext_domain>\n\1\2/; /^[[:space:]]*<locale name=\"[^C]/,/^[[:space:]]*<\/locale>[[:space:]]*\$/ d; /^$/d; s/<\/schema>$/&\n/" "$OUTFILE" |
||||
fi |
@ -0,0 +1,20 @@
|
||||
--- GConf-2.16.0/gconf/gconftool.c.orig 2006-10-14 17:37:14.000000000 +0000
|
||||
+++ GConf-2.16.0/gconf/gconftool.c 2006-10-14 17:39:27.000000000 +0000
|
||||
@@ -963,6 +963,8 @@ main (int argc, char** argv)
|
||||
|
||||
gconf_engine_unref (conf);
|
||||
|
||||
+ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
|
||||
+
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -975,6 +977,8 @@ main (int argc, char** argv)
|
||||
|
||||
gconf_engine_unref (conf);
|
||||
|
||||
+ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
|
||||
+
|
||||
return retval;
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
[Trigger] |
||||
Type = File |
||||
Operation = Remove |
||||
Target = usr/share/gconf/schemas/*.schemas |
||||
|
||||
[Action] |
||||
Description = Uninstalling GConf schemas... |
||||
When = PreTransaction |
||||
Exec = /bin/bash -c 'while read -r f; do f=$(basename "$f" .schemas); /usr/bin/gconfpkg --uninstall $f; done' |
||||
NeedsTargets |
@ -0,0 +1,3 @@
|
||||
post_upgrade() { |
||||
pkill -fx /usr/lib/gconfd-2 || : |
||||
} |
@ -0,0 +1,50 @@
|
||||
#!/bin/sh |
||||
|
||||
usage() { |
||||
cat << _EOF |
||||
Usage: |
||||
gconfpkg [OPTION] [PACKAGE] |
||||
|
||||
Help Options: |
||||
-?, --help Show help options |
||||
|
||||
Application Options: |
||||
--install Install schemas for a given package |
||||
--uninstall Uninstall schemas for a given package |
||||
|
||||
_EOF |
||||
} |
||||
|
||||
install() { |
||||
GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \ |
||||
/usr/bin/gconftool-2 --makefile-install-rule /usr/share/gconf/schemas/${pkgname}.schemas >/dev/null |
||||
} |
||||
|
||||
uninstall() { |
||||
if [ -f /usr/share/gconf/schemas/${pkgname}.schemas ]; then |
||||
schemas=/usr/share/gconf/schemas/${pkgname}.schemas |
||||
elif [ -f /opt/gnome/share/gconf/schemas/${pkgname}.schemas ]; then |
||||
schemas=/opt/gnome/share/gconf/schemas/${pkgname}.schemas |
||||
else |
||||
schemas=`pacman -Ql ${pkgname} | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'` |
||||
fi |
||||
GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \ |
||||
/usr/bin/gconftool-2 --makefile-uninstall-rule ${schemas} >/dev/null |
||||
} |
||||
|
||||
if [ -z "$2" ]; then |
||||
usage |
||||
else |
||||
pkgname="$2" |
||||
case "$1" in |
||||
--install) |
||||
install |
||||
;; |
||||
--uninstall) |
||||
uninstall |
||||
;; |
||||
*) |
||||
usage |
||||
;; |
||||
esac |
||||
fi |
@ -0,0 +1,362 @@
|
||||
# Description: Support calling gettext at runtime and putting the gettext domain into the .schemas file instead of replicating translations in /usr/share/gconf/schemas/*.schemas *and* /var/lib/gconf/defaults/%gconf-tree-$LANG.xml. This saves in the order of 90 MB uncompressed/10 MB compressed on hard disks.
|
||||
# Ubuntu: https://bugs.launchpad.net/bugs/123025
|
||||
# Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=568845
|
||||
--- GConf-2.26.0/backends/markup-tree.c.gettext 2009-04-26 23:33:05.258484987 -0400
|
||||
+++ GConf-2.26.0/backends/markup-tree.c 2009-04-26 23:34:25.026700526 -0400
|
||||
@@ -52,6 +52,7 @@ struct _MarkupEntry
|
||||
char *schema_name;
|
||||
char *mod_user;
|
||||
GTime mod_time;
|
||||
+ const char *gettext_domain;
|
||||
};
|
||||
|
||||
static LocalSchemaInfo* local_schema_info_new (void);
|
||||
@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry
|
||||
gconf_schema_get_type (schema));
|
||||
gconf_schema_set_owner (current_schema,
|
||||
gconf_schema_get_owner (schema));
|
||||
+ gconf_schema_set_gettext_domain (current_schema,
|
||||
+ gconf_schema_get_gettext_domain (schema));
|
||||
}
|
||||
|
||||
/* Update mod time */
|
||||
@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent
|
||||
else if (c_local_schema && c_local_schema->long_desc)
|
||||
gconf_schema_set_long_desc (schema, c_local_schema->long_desc);
|
||||
|
||||
+ gconf_schema_set_gettext_domain (schema, entry->gettext_domain);
|
||||
+
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext
|
||||
const char *ltype;
|
||||
const char *list_type;
|
||||
const char *owner;
|
||||
+
|
||||
GConfValueType vtype;
|
||||
- const char *dummy1, *dummy2, *dummy3, *dummy4;
|
||||
+ const char *dummy1, *dummy2, *dummy3, *dummy4, *dummy5;
|
||||
|
||||
#if 0
|
||||
g_assert (ELEMENT_IS ("entry") ||
|
||||
@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext
|
||||
"muser", &dummy2,
|
||||
"mtime", &dummy3,
|
||||
"schema", &dummy4,
|
||||
+ "gettext_domain", &dummy5,
|
||||
|
||||
NULL))
|
||||
return;
|
||||
@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext
|
||||
const char *mtime;
|
||||
const char *schema;
|
||||
const char *type;
|
||||
+ const char *gettext_domain;
|
||||
const char *dummy1, *dummy2, *dummy3, *dummy4;
|
||||
const char *dummy5, *dummy6, *dummy7;
|
||||
GConfValue *value;
|
||||
@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext
|
||||
mtime = NULL;
|
||||
schema = NULL;
|
||||
type = NULL;
|
||||
+ gettext_domain = NULL;
|
||||
|
||||
if (!locate_attributes (context, element_name, attribute_names, attribute_values,
|
||||
error,
|
||||
@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext
|
||||
"mtime", &mtime,
|
||||
"schema", &schema,
|
||||
"type", &type,
|
||||
+ "gettext_domain", &gettext_domain,
|
||||
|
||||
/* These are allowed but we don't use them until
|
||||
* parse_value_element
|
||||
@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext
|
||||
*/
|
||||
if (schema)
|
||||
entry->schema_name = g_strdup (schema);
|
||||
+
|
||||
+ if (gettext_domain)
|
||||
+ entry->gettext_domain = g_intern_string (gettext_domain);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value,
|
||||
GConfSchema *schema;
|
||||
GConfValueType stype;
|
||||
const char *owner;
|
||||
+ const char *gettext_domain;
|
||||
|
||||
schema = gconf_value_get_schema (value);
|
||||
|
||||
@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value,
|
||||
|
||||
g_free (s);
|
||||
}
|
||||
+
|
||||
+ gettext_domain = gconf_schema_get_gettext_domain (schema);
|
||||
+
|
||||
+ if (gettext_domain)
|
||||
+ {
|
||||
+ char *s;
|
||||
+
|
||||
+ s = g_markup_escape_text (gettext_domain, -1);
|
||||
+
|
||||
+ if (fprintf (f, " gettext_domain=\"%s\"", s) < 0)
|
||||
+ {
|
||||
+ g_free (s);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ g_free (s);
|
||||
+ }
|
||||
|
||||
if (stype == GCONF_VALUE_LIST)
|
||||
{
|
||||
diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd
|
||||
--- GConf-2.26.0/doc/gconf-1.0.dtd.gettext 2009-04-26 23:33:17.240736103 -0400
|
||||
+++ GConf-2.26.0/doc/gconf-1.0.dtd 2009-04-26 23:34:25.027700384 -0400
|
||||
@@ -7,7 +7,7 @@
|
||||
<!-- A single schema. What I am trying to say is "this set of
|
||||
elements, in any order". Duplicate elements (apart from <locale>) are
|
||||
not allowed). -->
|
||||
-<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*)*>
|
||||
+<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*|gettext_domain?)*>
|
||||
|
||||
<!-- The key for this schema (e.g. /schemas/apps/foo/bar) -->
|
||||
<!ELEMENT key (#PCDATA)>
|
||||
diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c
|
||||
--- GConf-2.26.0/gconf/gconf-internals.c.gettext 2009-04-26 23:34:10.994700035 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-internals.c 2009-04-26 23:34:53.767450191 -0400
|
||||
@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem
|
||||
cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : "");
|
||||
cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : "");
|
||||
cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : "");
|
||||
+ cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : "");
|
||||
|
||||
{
|
||||
gchar* encoded;
|
||||
@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con
|
||||
gconf_schema_set_owner(sc, cs->owner);
|
||||
}
|
||||
|
||||
+ if (*cs->gettext_domain != '\0')
|
||||
+ {
|
||||
+ if (!g_utf8_validate (cs->gettext_domain, -1, NULL))
|
||||
+ gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema"));
|
||||
+ else
|
||||
+ gconf_schema_set_gettext_domain(sc, cs->gettext_domain);
|
||||
+ }
|
||||
+
|
||||
{
|
||||
GConfValue* val;
|
||||
|
||||
diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c
|
||||
--- GConf-2.26.0/gconf/gconf-schema.c.gettext 2009-04-26 23:33:26.787483545 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-schema.c 2009-04-26 23:35:54.240450142 -0400
|
||||
@@ -32,9 +32,10 @@ typedef struct {
|
||||
GConfValueType car_type; /* Pair car type of the described entry */
|
||||
GConfValueType cdr_type; /* Pair cdr type of the described entry */
|
||||
gchar* locale; /* Schema locale */
|
||||
- gchar* owner; /* Name of creating application */
|
||||
+ const gchar* owner; /* Name of creating application */
|
||||
gchar* short_desc; /* 40 char or less description, no newlines */
|
||||
gchar* long_desc; /* could be a paragraph or so */
|
||||
+ const gchar* gettext_domain; /* description gettext domain */
|
||||
GConfValue* default_value; /* Default value of the key */
|
||||
} GConfRealSchema;
|
||||
|
||||
@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc)
|
||||
g_free (real->locale);
|
||||
g_free (real->short_desc);
|
||||
g_free (real->long_desc);
|
||||
- g_free (real->owner);
|
||||
|
||||
if (real->default_value)
|
||||
gconf_value_free (real->default_value);
|
||||
@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc
|
||||
|
||||
dest->long_desc = g_strdup (real->long_desc);
|
||||
|
||||
- dest->owner = g_strdup (real->owner);
|
||||
+ dest->gettext_domain = real->gettext_domain;
|
||||
+
|
||||
+ dest->owner = real->owner;
|
||||
|
||||
dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL;
|
||||
|
||||
@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc
|
||||
REAL_SCHEMA (sc)->locale = NULL;
|
||||
}
|
||||
|
||||
+void
|
||||
+gconf_schema_set_gettext_domain (GConfSchema* sc, const gchar* domain)
|
||||
+{
|
||||
+ g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL));
|
||||
+
|
||||
+ if (domain)
|
||||
+ REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain);
|
||||
+ else
|
||||
+ REAL_SCHEMA (sc)->gettext_domain = NULL;
|
||||
+}
|
||||
+
|
||||
void
|
||||
gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc)
|
||||
{
|
||||
@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc,
|
||||
{
|
||||
g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL));
|
||||
|
||||
- if (REAL_SCHEMA (sc)->owner)
|
||||
- g_free (REAL_SCHEMA (sc)->owner);
|
||||
-
|
||||
if (owner)
|
||||
- REAL_SCHEMA (sc)->owner = g_strdup (owner);
|
||||
+ REAL_SCHEMA (sc)->owner = g_intern_string (owner);
|
||||
else
|
||||
REAL_SCHEMA (sc)->owner = NULL;
|
||||
}
|
||||
@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+ if (real->gettext_domain && !g_utf8_validate (real->gettext_domain, -1, NULL))
|
||||
+ {
|
||||
+ g_set_error (err, GCONF_ERROR,
|
||||
+ GCONF_ERROR_FAILED,
|
||||
+ _("Schema contains invalid UTF-8"));
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
if (real->owner && !g_utf8_validate (real->owner, -1, NULL))
|
||||
{
|
||||
g_set_error (err, GCONF_ERROR,
|
||||
@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche
|
||||
}
|
||||
|
||||
const char*
|
||||
+gconf_schema_get_gettext_domain (const GConfSchema *schema)
|
||||
+{
|
||||
+ g_return_val_if_fail (schema != NULL, NULL);
|
||||
+
|
||||
+ return REAL_SCHEMA (schema)->gettext_domain;
|
||||
+}
|
||||
+
|
||||
+static inline const char *
|
||||
+schema_translate (const GConfSchema *schema,
|
||||
+ const char *string)
|
||||
+{
|
||||
+ if (REAL_SCHEMA (schema)->gettext_domain)
|
||||
+ {
|
||||
+ bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8");
|
||||
+ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string);
|
||||
+ }
|
||||
+ else
|
||||
+ return string;
|
||||
+}
|
||||
+
|
||||
+const char*
|
||||
gconf_schema_get_short_desc (const GConfSchema *schema)
|
||||
{
|
||||
g_return_val_if_fail (schema != NULL, NULL);
|
||||
|
||||
- return REAL_SCHEMA (schema)->short_desc;
|
||||
+ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc);
|
||||
}
|
||||
|
||||
const char*
|
||||
@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS
|
||||
{
|
||||
g_return_val_if_fail (schema != NULL, NULL);
|
||||
|
||||
- return REAL_SCHEMA (schema)->long_desc;
|
||||
+ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc);
|
||||
}
|
||||
|
||||
const char*
|
||||
diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h
|
||||
--- GConf-2.26.0/gconf/gconf-schema.h.gettext 2009-04-26 23:33:33.979744088 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-schema.h 2009-04-26 23:34:25.030737043 -0400
|
||||
@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type
|
||||
GConfValueType type);
|
||||
void gconf_schema_set_locale (GConfSchema *sc,
|
||||
const gchar *locale);
|
||||
+void gconf_schema_set_gettext_domain (GConfSchema *sc,
|
||||
+ const gchar *domain);
|
||||
void gconf_schema_set_short_desc (GConfSchema *sc,
|
||||
const gchar *desc);
|
||||
void gconf_schema_set_long_desc (GConfSchema *sc,
|
||||
@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ
|
||||
GConfValueType gconf_schema_get_car_type (const GConfSchema *schema);
|
||||
GConfValueType gconf_schema_get_cdr_type (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_locale (const GConfSchema *schema);
|
||||
+const char* gconf_schema_get_gettext_domain(const GConfSchema *schema);
|
||||
const char* gconf_schema_get_short_desc (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_long_desc (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_owner (const GConfSchema *schema);
|
||||
diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c
|
||||
--- GConf-2.26.0/gconf/gconftool.c.gettext 2009-04-26 23:33:41.907451190 -0400
|
||||
+++ GConf-2.26.0/gconf/gconftool.c 2009-04-26 23:34:25.034736752 -0400
|
||||
@@ -3295,6 +3295,7 @@ struct _SchemaInfo {
|
||||
GConfValueType cdr_type;
|
||||
GConfValue* global_default;
|
||||
GHashTable* hash;
|
||||
+ gchar* gettext_domain;
|
||||
};
|
||||
|
||||
static int
|
||||
@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node,
|
||||
else
|
||||
g_printerr (_("WARNING: empty <applyto> node"));
|
||||
}
|
||||
+ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
|
||||
+ {
|
||||
+ tmp = (char *)xmlNodeGetContent(iter);
|
||||
+ if (tmp)
|
||||
+ {
|
||||
+ info->gettext_domain = g_strdup(tmp);
|
||||
+ xmlFree(tmp);
|
||||
+ }
|
||||
+ }
|
||||
else
|
||||
g_printerr (_("WARNING: node <%s> not understood below <schema>\n"),
|
||||
iter->name);
|
||||
@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch
|
||||
if (info->owner != NULL)
|
||||
gconf_schema_set_owner(schema, info->owner);
|
||||
|
||||
+ if (info->gettext_domain != NULL)
|
||||
+ gconf_schema_set_gettext_domain(schema, info->gettext_domain);
|
||||
+
|
||||
xmlFree(name);
|
||||
|
||||
/* Locale-specific info */
|
||||
@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch
|
||||
info.apply_to = NULL;
|
||||
info.owner = NULL;
|
||||
info.global_default = NULL;
|
||||
+ info.gettext_domain = NULL;
|
||||
info.hash = g_hash_table_new(g_str_hash, g_str_equal);
|
||||
|
||||
extract_global_info(node, &info);
|
||||
@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch
|
||||
; /* nothing */
|
||||
else if (strcmp((char *)iter->name, "applyto") == 0)
|
||||
; /* nothing */
|
||||
+ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
|
||||
+ ; /* nothing */
|
||||
else if (strcmp((char *)iter->name, "locale") == 0)
|
||||
{
|
||||
process_locale_info(iter, &info);
|
||||
diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl
|
||||
--- GConf-2.26.0/gconf/GConfX.idl.gettext 2009-04-26 23:33:58.457483190 -0400
|
||||
+++ GConf-2.26.0/gconf/GConfX.idl 2009-04-26 23:34:53.764448732 -0400
|
||||
@@ -16,6 +16,7 @@ struct ConfigSchema {
|
||||
string short_desc;
|
||||
string long_desc;
|
||||
string owner;
|
||||
+ string gettext_domain;
|
||||
// Work around lack of recursive data types
|
||||
string encoded_default_value;
|
||||
};
|
@ -0,0 +1,71 @@
|
||||
# Maintainer: Jan de Groot <jan@archlinux.org> |
||||
|
||||
pkgname=gconf |
||||
pkgver=3.2.6+11+g07808097 |
||||
pkgrel=4 |
||||
pkgdesc="An obsolete configuration database system" |
||||
url="https://projects-old.gnome.org/gconf/" |
||||
arch=(x86_64) |
||||
license=(LGPL) |
||||
depends=(libxml2 polkit libldap dbus-glib python2) |
||||
makedepends=(intltool gtk-doc gobject-introspection git gnome-common) |
||||
install=gconf.install |
||||
_commit=0780809731c8ab1c364202b1900d3df106b28626 # master |
||||
source=("git+https://gitlab.gnome.org/Archive/gconf.git#commit=$_commit" |
||||
01_xml-gettext-domain.patch gconf-reload.patch |
||||
gconf-merge-schema gconfpkg gconf-{install,remove}.hook) |
||||
sha256sums=('SKIP' |
||||
'c883dec2b96978874a53700cfe7f26f24f8296767203e970bc6402b4b9945eb8' |
||||
'567b78d8b4b4bbcb77c5f134d57bc503c34867fcc6341c0b01716bcaa4a21694' |
||||
'ee6b6e6f4975dad13a8c45f1c1f0547a99373bdecdcd6604bfc12965c328a028' |
||||
'bf1928718caa5df2b9e54a13cfd0f15a8fe0e09e86b84385ce023616a114e898' |
||||
'2732b2a6b187c5620105a036bde12edee99669605f70cbde56fe5f39619c3dc0' |
||||
'436a65ff290095bc3d35d7d6297cf4d647f61e9f9922cea7ef9f1e251b447ff7') |
||||
|
||||
pkgver() { |
||||
cd $pkgname |
||||
git describe --tags | sed 's/-/+/g' |
||||
} |
||||
|
||||
prepare() { |
||||
cd $pkgname |
||||
|
||||
# Patch from fedora - reloads gconf after installing schemas |
||||
patch -Np1 -i ../gconf-reload.patch |
||||
|
||||
# http://bugzilla.gnome.org/show_bug.cgi?id=568845 |
||||
patch -Np1 -i ../01_xml-gettext-domain.patch |
||||
|
||||
# Python2 fix |
||||
sed -i '1s|#!/usr/bin/env python$|&2|' gsettings/gsettings-schema-convert |
||||
|
||||
NOCONFIGURE=1 ./autogen.sh |
||||
} |
||||
|
||||
build() { |
||||
cd $pkgname |
||||
./configure \ |
||||
--prefix=/usr \ |
||||
--sysconfdir=/etc \ |
||||
--localstatedir=/var \ |
||||
--libexecdir=/usr/lib \ |
||||
--enable-defaults-service \ |
||||
--disable-gtk-doc \ |
||||
--disable-static \ |
||||
--disable-orbit |
||||
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool |
||||
make |
||||
} |
||||
|
||||
check() { |
||||
cd $pkgname |
||||
make check |
||||
} |
||||
|
||||
package() { |
||||
DESTDIR="$pkgdir" make -C $pkgname install |
||||
|
||||
install -d "$pkgdir/etc/gconf/gconf.xml.system" |
||||
install -Dt "$pkgdir/usr/bin" gconf-merge-schema gconfpkg |
||||
install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 *.hook |
||||
} |
@ -0,0 +1,11 @@
|
||||
[Trigger] |
||||
Type = File |
||||
Operation = Install |
||||
Operation = Upgrade |
||||
Target = usr/share/gconf/schemas/*.schemas |
||||
|
||||
[Action] |
||||
Description = Installing GConf schemas... |
||||
When = PostTransaction |
||||
Exec = /bin/bash -c 'while read -r f; do f=$(basename "$f" .schemas); /usr/bin/gconfpkg --install $f; done' |
||||
NeedsTargets |
@ -0,0 +1,34 @@
|
||||
#!/bin/bash |
||||
if [ ! "$1" -a ! "$2" ]; then |
||||
echo "Usage: $0 output.schemas [--domain gettextdomain] file1.schemas [file2.schemas [...]]" |
||||
exit 1 |
||||
fi |
||||
|
||||
OUTFILE="$1" |
||||
DOMAIN="" |
||||
shift |
||||
|
||||
if [ "$1" = "--domain" ]; then |
||||
shift |
||||
DOMAIN=$1 |
||||
shift |
||||
fi |
||||
|
||||
echo '<?xml version="1.0"?>' > "$OUTFILE" |
||||
echo '<gconfschemafile><schemalist>' >> "$OUTFILE" |
||||
|
||||
while [ "$1" ]; do |
||||
if [ -f "$1" ]; then |
||||
sed -e '/<?xml/d' \ |
||||
-e 's|<gconfschemafile>||g' \ |
||||
-e 's|</gconfschemafile>||g' \ |
||||
-e 's|<schemalist>||g' \ |
||||
-e 's|</schemalist>||g' "$1" >> "$OUTFILE" |
||||
fi |
||||
shift |
||||
done |
||||
|
||||
echo '</schemalist></gconfschemafile>' >> "$OUTFILE" |
||||
if [ "$DOMAIN" != "" ]; then |
||||
sed -ri "s/^([[:space:]]*)(<locale name=\"C\">)/\1<gettext_domain>$DOMAIN<\/gettext_domain>\n\1\2/; /^[[:space:]]*<locale name=\"[^C]/,/^[[:space:]]*<\/locale>[[:space:]]*\$/ d; /^$/d; s/<\/schema>$/&\n/" "$OUTFILE" |
||||
fi |
@ -0,0 +1,20 @@
|
||||
--- GConf-2.16.0/gconf/gconftool.c.orig 2006-10-14 17:37:14.000000000 +0000
|
||||
+++ GConf-2.16.0/gconf/gconftool.c 2006-10-14 17:39:27.000000000 +0000
|
||||
@@ -963,6 +963,8 @@ main (int argc, char** argv)
|
||||
|
||||
gconf_engine_unref (conf);
|
||||
|
||||
+ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
|
||||
+
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -975,6 +977,8 @@ main (int argc, char** argv)
|
||||
|
||||
gconf_engine_unref (conf);
|
||||
|
||||
+ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
|
||||
+
|
||||
return retval;
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
[Trigger] |
||||
Type = File |
||||
Operation = Remove |
||||
Target = usr/share/gconf/schemas/*.schemas |
||||
|
||||
[Action] |
||||
Description = Uninstalling GConf schemas... |
||||
When = PreTransaction |
||||
Exec = /bin/bash -c 'while read -r f; do f=$(basename "$f" .schemas); /usr/bin/gconfpkg --uninstall $f; done' |
||||
NeedsTargets |
@ -0,0 +1,3 @@
|
||||
post_upgrade() { |
||||
pkill -fx /usr/lib/gconfd-2 || : |
||||
} |
@ -0,0 +1,50 @@
|
||||
#!/bin/sh |
||||
|
||||
usage() { |
||||
cat << _EOF |
||||
Usage: |
||||
gconfpkg [OPTION] [PACKAGE] |
||||
|
||||
Help Options: |
||||
-?, --help Show help options |
||||
|
||||
Application Options: |
||||
--install Install schemas for a given package |
||||
--uninstall Uninstall schemas for a given package |
||||
|
||||
_EOF |
||||
} |
||||
|
||||
install() { |
||||
GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \ |
||||
/usr/bin/gconftool-2 --makefile-install-rule /usr/share/gconf/schemas/${pkgname}.schemas >/dev/null |
||||
} |
||||
|
||||
uninstall() { |
||||
if [ -f /usr/share/gconf/schemas/${pkgname}.schemas ]; then |
||||
schemas=/usr/share/gconf/schemas/${pkgname}.schemas |
||||
elif [ -f /opt/gnome/share/gconf/schemas/${pkgname}.schemas ]; then |
||||
schemas=/opt/gnome/share/gconf/schemas/${pkgname}.schemas |
||||
else |
||||
schemas=`pacman -Ql ${pkgname} | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'` |
||||
fi |
||||
GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \ |
||||
/usr/bin/gconftool-2 --makefile-uninstall-rule ${schemas} >/dev/null |
||||
} |
||||
|
||||
if [ -z "$2" ]; then |
||||
usage |
||||
else |
||||
pkgname="$2" |
||||
case "$1" in |
||||
--install) |
||||
install |
||||
;; |
||||
--uninstall) |
||||
uninstall |
||||
;; |
||||
*) |
||||
usage |
||||
;; |
||||
esac |
||||
fi |
Loading…
Reference in new issue