gconf:first release

This commit is contained in:
alihanozturk
2016-06-12 21:38:52 +03:00
parent aa49e9944e
commit 5c485d5674
7 changed files with 608 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 2
# See the file http://www.gnu.org/copyleft/gpl.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get
from pisi.actionsapi import shelltools
def setup():
#autotools.autoreconf("-fiv")
shelltools.system("sed -i '1s|#!/usr/bin/env python$|&2|' gsettings/gsettings-schema-convert")
autotools.configure("--prefix=/usr \
--libexecdir=/usr/lib/GConf \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-static \
--disable-orbit \
--enable-defaults-service \
--with-pic \
--with-gtk=3.0 \
")
#pisitools.dosed("libtool", "^(hardcode_libdir_flag_spec=).*", '\\1""')
#pisitools.dosed("libtool", "^(runpath_var=)LD_RUN_PATH", "\\1DIE_RPATH_DIE")
pisitools.dosed("libtool"," -shared ", " -Wl,--as-needed -shared ")
def build():
autotools.make("pkglibdir=/usr/lib/GConf")
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodoc("README", "TODO", "NEWS", "ChangeLog", "AUTHORS")
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import piksemel
import os
def installGconfSchemas(filepath):
os.environ['GCONF_CONFIG_SOURCE'] = 'xml:merged:/etc/gconf/gconf.xml.defaults'
parse = piksemel.parse(filepath)
schemas = []
for schema in parse.tags("File"):
path = schema.getTagData("Path")
if path.startswith("etc/gconf/schemas"):
schemas.append("/"+path)
if schemas:
os.system("/usr/bin/gconftool-2 --makefile-install-rule %s" % " ".join(schemas))
def uninstallGconfSchemas(filepath):
os.environ['GCONF_CONFIG_SOURCE'] = 'xml:merged:/etc/gconf/gconf.xml.defaults'
parse = piksemel.parse(filepath)
schemas = []
for schema in parse.tags("File"):
path = schema.getTagData("Path")
if path.startswith("etc/gconf/schemas"):
schemas.append("/"+path)
if schemas:
os.system("/usr/bin/gconftool-2 --makefile-uninstall-rule %s" % " ".join(schemas))
def setupPackage(metapath, filepath):
installGconfSchemas(filepath)
def cleanupPackage(metapath, filepath):
uninstallGconfSchemas(filepath)
def postCleanupPackage(metapath, filepath):
pass
+362
View File
@@ -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;
};
+20
View File
@@ -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;
}
+30
View File
@@ -0,0 +1,30 @@
# This file stores the addresses of config sources for GConf
# When a value is stored or requested, the sources are scanned from top to
# bottom, and the first one to have a value for the key (or the first one
# to be writeable) is used to load/store the data.
# See the GConf manual for details
# Look first in systemwide mandatory settings directory
xml:readonly:/etc/gconf/gconf.xml.mandatory
# To read in any mandatory settings that the Sys Admin may have created
# prior to a desktop system upgrade. The SysAdmin can stick read-only system
# wide sources in this file.
include /etc/gconf/2/local-mandatory.path
# Now see where users want us to look - basically the user can stick arbitrary
# sources in a ~/.gconf.path file and they're inserted here
include "$(HOME)/.gconf.path"
# Give users a default storage location, ~/.gconf
xml:readwrite:$(HOME)/.gconf
# To read in any defaults settings that the Sys Admin may have created
# prior to a desktop system upgrade. The SysAdmin can stick default values
# system-wide in this file.
include /etc/gconf/2/local-defaults.path
# Finally, look at the systemwide defaults
xml:readonly:/etc/gconf/gconf.xml.defaults
+109
View File
@@ -0,0 +1,109 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>gconf</Name>
<Homepage>http://www.gnome.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>LGPLv2.1</License>
<IsA>library</IsA>
<Summary>Gnome Configuration System</Summary>
<Description>gconf is a Gnome Configuration System.</Description>
<Archive sha1sum="a90d3ac08dc454f927c8d3024f52d4d57e3ff613" type="tarxz">mirrors://gnome/GConf/3.2/GConf-3.2.6.tar.xz</Archive>
<BuildDependencies>
<Dependency>glib2-devel</Dependency>
<Dependency>gtk-doc</Dependency>
<Dependency>gettext-devel</Dependency>
<Dependency>gobject-introspection-devel</Dependency>
<Dependency>libxml2-devel</Dependency>
<Dependency>dbus-devel</Dependency>
<Dependency>dbus-glib-devel</Dependency>
<Dependency>polkit-devel</Dependency>
<Dependency>openldap-client</Dependency>
<Dependency>gtk3-devel</Dependency>
<Dependency>intltool</Dependency>
<Dependency>python-lxml</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">01_xml-gettext-domain.patch</Patch>
<Patch level="1">gconf-reload.patch</Patch>
</Patches>
</Source>
<Package>
<Name>gconf</Name>
<RuntimeDependencies>
<Dependency>dbus</Dependency>
<Dependency>glib2</Dependency>
<Dependency>polkit</Dependency>
<Dependency>libxml2</Dependency>
<Dependency>dbus-glib</Dependency>
<Dependency>openldap-client</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc/dbus-1/system.d</Path>
<Path fileType="config">/etc/gconf</Path>
<Path fileType="config">/etc/xdg/autostart</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib/libgconf*</Path>
<Path fileType="library">/usr/lib/GConf</Path>
<Path fileType="library">/usr/lib/gio</Path>
<Path fileType="library">/usr/lib/girepository-1.0</Path>
<Path fileType="data">/usr/share/dbus-1</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/usr/share/GConf</Path>
<Path fileType="data">/usr/share/aclocal</Path>
<Path fileType="data">/usr/share/gir-1.0</Path>
<Path fileType="localedata">/usr/share/locale</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="data">/usr/share/polkit-1/actions</Path>
<Path fileType="data">/usr/share/sgml/gconf</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/gconf/2/path">gconf2.path</AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script="pakhandler.py">System.PackageHandler</COMAR>
</Provides>
</Package>
<Package>
<Name>gconf-docs</Name>
<IsA>data:doc</IsA>
<Summary>GConf reference documents</Summary>
<RuntimeDependencies>
<Dependency release="current">gconf</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="doc">/usr/share/gtk-doc</Path>
</Files>
</Package>
<Package>
<Name>gconf-devel</Name>
<Summary>Development files for gconf</Summary>
<RuntimeDependencies>
<Dependency release="current">gconf</Dependency>
<Dependency>glib2-devel</Dependency>
<Dependency>dbus-devel</Dependency>
<Dependency>python-lxml</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="library">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2016-05-05</Date>
<Version>3.2.6</Version>
<Comment>First release</Comment>
<Name>Erdinç Gültekin</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>gconf</Name>
<Summary xml:lang="tr">Gnome Konfigürasyon Sistemi</Summary>
<Description xml:lang="tr">gconf, Gnome Konfigürasyon Sistemidir.</Description>
</Source>
<Package>
<Name>gconf-devel</Name>
<Summary xml:lang="tr">gconf için geliştirme dosyaları</Summary>
</Package>
</PISI>