diff --git a/desktop/font/fontconfig/actions.py b/desktop/font/fontconfig/actions.py
new file mode 100644
index 0000000000..dcdcfdc1d9
--- /dev/null
+++ b/desktop/font/fontconfig/actions.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import libtools
+from pisi.actionsapi import get
+
+def setup():
+ # Do not rebuild docs
+ shelltools.export("HASDOCBOOK", "no")
+
+ libtools.libtoolize("-f")
+ autotools.autoreconf("-fi")
+ autotools.configure("--disable-static \
+ --disable-docs \
+ --with-cache-dir=/var/cache/fontconfig \
+ --with-default-fonts=/usr/share/fonts \
+ --with-add-fonts=/usr/local/share/fonts")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ if get.buildTYPE() == "emul32": return
+
+ pisitools.insinto("/etc/fonts", "fonts.conf", "fonts.conf.new")
+
+ enabled_configs = ("10-sub-pixel-rgb.conf", "70-yes-bitmaps.conf")
+ disabled_configs = ("10-no-sub-pixel.conf",)
+
+ for cfg in enabled_configs:
+ pisitools.dosym("../conf.avail/%s" % cfg, "/etc/fonts/conf.d/%s" % cfg)
+
+ for cfg in disabled_configs:
+ pisitools.remove("/usr/share/fontconfig/conf.avail/%s" % cfg)
+
+ for i in ["fc-cat", "fc-list", "fc-match", "fc-cache"]:
+ pisitools.doman("%s/*.1" % i)
+
+ pisitools.doman("doc/*.3")
+
+ pisitools.dodoc("AUTHORS", "COPYING", "README", "doc/*.txt")
diff --git a/desktop/font/fontconfig/comar/package.py b/desktop/font/fontconfig/comar/package.py
new file mode 100644
index 0000000000..04bb674866
--- /dev/null
+++ b/desktop/font/fontconfig/comar/package.py
@@ -0,0 +1,6 @@
+#!/usr/bin/python
+
+import os
+
+def postInstall(fromVersion, fromRelease, toVersion, toRelease):
+ os.spawnle(os.P_WAIT, "/usr/bin/fc-cache", "/usr/bin/fc-cache", "-r", { "HOME": "/root/" })
diff --git a/desktop/font/fontconfig/comar/pakhandler.py b/desktop/font/fontconfig/comar/pakhandler.py
new file mode 100644
index 0000000000..7ab387e052
--- /dev/null
+++ b/desktop/font/fontconfig/comar/pakhandler.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+
+import piksemel
+import subprocess
+
+def updateCache(filepath):
+ doc = piksemel.parse(filepath)
+ for item in doc.tags("File"):
+ path = item.getTagData("Path")
+ if path.startswith("usr/share/fonts"):
+ subprocess.call(["/usr/bin/fc-cache"])
+ return
+
+def setupPackage(metapath, filepath):
+ updateCache(filepath)
+
+def cleanupPackage(metapath, filepath):
+ pass
+
+def postCleanupPackage(metapath, filepath):
+ updateCache(filepath)
diff --git a/desktop/font/fontconfig/files/add_hinting_and_antialiasing_to_proper_fonts.patch b/desktop/font/fontconfig/files/add_hinting_and_antialiasing_to_proper_fonts.patch
new file mode 100644
index 0000000000..b536421f7d
--- /dev/null
+++ b/desktop/font/fontconfig/files/add_hinting_and_antialiasing_to_proper_fonts.patch
@@ -0,0 +1,60 @@
+diff -Nur fontconfig-2.6.0-old/conf.d/10-antialias.conf fontconfig-2.6.0/conf.d/10-antialias.conf
+--- fontconfig-2.6.0-old/conf.d/10-antialias.conf 1970-01-01 02:00:00.000000000 +0200
++++ fontconfig-2.6.0/conf.d/10-antialias.conf 2008-09-22 11:09:45.000000000 +0300
+@@ -0,0 +1,8 @@
++
++
++
++
++
++ true
++
++
+diff -Nur fontconfig-2.6.0-old/conf.d/10-hinting.conf fontconfig-2.6.0/conf.d/10-hinting.conf
+--- fontconfig-2.6.0-old/conf.d/10-hinting.conf 1970-01-01 02:00:00.000000000 +0200
++++ fontconfig-2.6.0/conf.d/10-hinting.conf 2008-09-22 11:09:45.000000000 +0300
+@@ -0,0 +1,8 @@
++
++
++
++
++
++ true
++
++
+diff -Nur fontconfig-2.6.0-old/conf.d/10-hinting-full.conf fontconfig-2.6.0/conf.d/10-hinting-full.conf
+--- fontconfig-2.6.0-old/conf.d/10-hinting-full.conf 1970-01-01 02:00:00.000000000 +0200
++++ fontconfig-2.6.0/conf.d/10-hinting-full.conf 2008-09-22 11:09:45.000000000 +0300
+@@ -0,0 +1,8 @@
++
++
++
++
++
++ hintfull
++
++
+diff -Nur fontconfig-2.6.0-old/conf.d/10-hinting-medium.conf fontconfig-2.6.0/conf.d/10-hinting-medium.conf
+--- fontconfig-2.6.0-old/conf.d/10-hinting-medium.conf 1970-01-01 02:00:00.000000000 +0200
++++ fontconfig-2.6.0/conf.d/10-hinting-medium.conf 2008-09-22 11:09:45.000000000 +0300
+@@ -0,0 +1,8 @@
++
++
++
++
++
++ hintmedium
++
++
+diff -Nur fontconfig-2.6.0-old/conf.d/10-hinting-slight.conf fontconfig-2.6.0/conf.d/10-hinting-slight.conf
+--- fontconfig-2.6.0-old/conf.d/10-hinting-slight.conf 1970-01-01 02:00:00.000000000 +0200
++++ fontconfig-2.6.0/conf.d/10-hinting-slight.conf 2008-09-22 11:09:45.000000000 +0300
+@@ -0,0 +1,8 @@
++
++
++
++
++
++ hintslight
++
++
diff --git a/desktop/font/fontconfig/files/anymetrics_urw.patch b/desktop/font/fontconfig/files/anymetrics_urw.patch
new file mode 100644
index 0000000000..96cee28536
--- /dev/null
+++ b/desktop/font/fontconfig/files/anymetrics_urw.patch
@@ -0,0 +1,128 @@
+Index: fontconfig-2.8.0/conf.d/30-urw-aliases.conf
+===================================================================
+--- fontconfig-2.8.0.orig/conf.d/30-urw-aliases.conf
++++ fontconfig-2.8.0/conf.d/30-urw-aliases.conf
+@@ -5,6 +5,13 @@
+ URW provides metric and shape compatible fonts for some Adobe families.
+ Helvetica, Courier, and Times are handled in 30-metric-aliases.conf.
+ -->
++
++
++
++
++
++ Avant Garde
++
++
++ true
++
++
++ URW Gothic L
++
++
++
++
++ Bookman
++
++
++ true
++
++
++ URW Bookman L
++
++
++
++
++ Courier
++
++
++ true
++
++
++ Nimbus Mono L
++
++
++
++
++ Helvetica
++
++
++ true
++
++
++ Nimbus Sans L
++
++
++
++
++ New Century Schoolbook
++
++
++ true
++
++
++ Century Schoolbook L
++
++
++
++
++ Palatino
++
++
++ true
++
++
++ URW Palladio L
++
++
++
++
++ Times
++
++
++ true
++
++
++ Nimbus Roman No9 L
++
++
++
++
++ Zapf Chancery
++
++
++ true
++
++
++ URW Chancery L
++
++
++
++
++ Zapf Dingbats
++
++
++ true
++
++
++ Dingbats
++
++
++
++
+
+
+ Symbol
diff --git a/desktop/font/fontconfig/files/deprecated-user-conf.patch b/desktop/font/fontconfig/files/deprecated-user-conf.patch
new file mode 100644
index 0000000000..3defbaab21
--- /dev/null
+++ b/desktop/font/fontconfig/files/deprecated-user-conf.patch
@@ -0,0 +1,10 @@
+--- conf.d/50-user.conf.orig 2013-04-09 15:15:06.170861118 +0300
++++ conf.d/50-user.conf 2013-04-09 15:15:37.679861962 +0300
+@@ -9,7 +9,4 @@
+ -->
+ fontconfig/conf.d
+ fontconfig/fonts.conf
+-
+- ~/.fonts.conf.d
+- ~/.fonts.conf
+
diff --git a/desktop/font/fontconfig/files/fontconfig-2.8.0-sleep-less.patch b/desktop/font/fontconfig/files/fontconfig-2.8.0-sleep-less.patch
new file mode 100644
index 0000000000..5b144315af
--- /dev/null
+++ b/desktop/font/fontconfig/files/fontconfig-2.8.0-sleep-less.patch
@@ -0,0 +1,12 @@
+diff -pruN fontconfig-2.8.90.orig/fc-cache/fc-cache.c fontconfig-2.8.90/fc-cache/fc-cache.c
+--- fontconfig-2.8.90.orig/fc-cache/fc-cache.c 2012-02-20 12:49:18.000000000 +0900
++++ fontconfig-2.8.90/fc-cache/fc-cache.c 2012-03-06 12:28:26.000000000 +0900
+@@ -465,7 +465,7 @@ main (int argc, char **argv)
+ FcConfigDestroy (config);
+ FcFini ();
+ if (changed)
+- sleep (2);
++ sleep (1);
+ if (verbose)
+ printf ("%s: %s\n", argv[0], ret ? "failed" : "succeeded");
+ return ret;
diff --git a/desktop/font/fontconfig/files/prefer_dejavu.patch b/desktop/font/fontconfig/files/prefer_dejavu.patch
new file mode 100644
index 0000000000..9bc1876ec9
--- /dev/null
+++ b/desktop/font/fontconfig/files/prefer_dejavu.patch
@@ -0,0 +1,34 @@
+Index: fontconfig-2.8.0/conf.d/60-latin.conf
+===================================================================
+--- fontconfig-2.8.0.orig/conf.d/60-latin.conf
++++ fontconfig-2.8.0/conf.d/60-latin.conf
+@@ -4,8 +4,8 @@
+
+ serif
+
+- Bitstream Vera Serif
+ DejaVu Serif
++ Bitstream Vera Serif
+ Times New Roman
+ Thorndale AMT
+ Luxi Serif
+@@ -16,8 +16,8 @@
+
+ sans-serif
+
+- Bitstream Vera Sans
+ DejaVu Sans
++ Bitstream Vera Sans
+ Verdana
+ Arial
+ Albany AMT
+@@ -32,8 +32,8 @@
+
+ monospace
+
+- Bitstream Vera Sans Mono
+ DejaVu Sans Mono
++ Bitstream Vera Sans Mono
+ Inconsolata
+ Andale Mono
+ Courier New
diff --git a/desktop/font/fontconfig/files/use_legacy_lcdfilter_on_small_monospace.patch b/desktop/font/fontconfig/files/use_legacy_lcdfilter_on_small_monospace.patch
new file mode 100644
index 0000000000..c244be25de
--- /dev/null
+++ b/desktop/font/fontconfig/files/use_legacy_lcdfilter_on_small_monospace.patch
@@ -0,0 +1,26 @@
+diff -Nur fontconfig-2.6.0-old/conf.d/53-monospace-lcd-filter.conf fontconfig-2.6.0/conf.d/53-monospace-lcd-filter.conf
+--- fontconfig-2.6.0-old/conf.d/53-monospace-lcd-filter.conf 1970-01-01 02:00:00.000000000 +0200
++++ fontconfig-2.6.0/conf.d/53-monospace-lcd-filter.conf 2008-09-22 11:07:17.000000000 +0300
+@@ -0,0 +1,22 @@
++
++
++
++
++
++
++
++ DejaVu Sans Mono
++ Bitstream Vera Sans Mono
++
++
++ 12.0
++
++
++
++ lcdlegacy
++
++
++ hintfull
++
++
++
diff --git a/desktop/font/fontconfig/pspec.xml b/desktop/font/fontconfig/pspec.xml
new file mode 100644
index 0000000000..61b2fc70c0
--- /dev/null
+++ b/desktop/font/fontconfig/pspec.xml
@@ -0,0 +1,134 @@
+
+
+
+
+ fontconfig
+ http://fontconfig.org
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ MIT
+ library
+ A library for configuring and customizing font access
+ Fontconfig is a library designed to provide system-wide font configuration, customization and application access.
+ http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.11.1.tar.bz2
+
+
+
+
+ prefer_dejavu.patch
+ anymetrics_urw.patch
+ use_legacy_lcdfilter_on_small_monospace.patch
+ add_hinting_and_antialiasing_to_proper_fonts.patch
+
+ fontconfig-2.8.0-sleep-less.patch
+
+ deprecated-user-conf.patch
+
+
+
+
+ fontconfig
+
+
+
+ /etc/fonts
+ /usr/bin
+ /usr/lib
+ /usr/share/doc
+ /var/cache/fontconfig
+ /usr/share
+
+
+ System.Package
+ System.PackageHandler
+
+
+
+
+ fontconfig-devel
+ Development files for fontconfig
+
+ fontconfig
+
+
+ /usr/include
+ /usr/lib/pkgconfig
+ /usr/lib32/pkgconfig
+ /usr/share/doc/fontconfig/fontconfig-devel.txt
+ /usr/share/man
+
+
+
+
+ fontconfig-32bit
+ emul32
+ 32-bit shared libraries for fontconfig
+ emul32
+
+ expat-32bit
+ freetype-32bit
+
+
+ fontconfig
+ expat-32bit
+ freetype-32bit
+
+
+ /usr/lib32
+
+
+
+
+
+ 2014-05-17
+ 2.11.1
+ Release bump.
+ Alihan Öztürk
+ alihan@pisilinux.org
+
+
+ 2014-03-29
+ 2.11.1
+ Version bump.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2014-02-01
+ 2.11.0
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2013-09-05
+ 2.10.93
+ Add missing method to pakhandler.py
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-07-06
+ 2.10.93
+ Version bump.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2012-12-06
+ 2.10.92
+ First release
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2012-12-06
+ 2.10.2
+ First release
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+
diff --git a/desktop/font/fontconfig/translations.xml b/desktop/font/fontconfig/translations.xml
new file mode 100644
index 0000000000..fde1a2844b
--- /dev/null
+++ b/desktop/font/fontconfig/translations.xml
@@ -0,0 +1,22 @@
+
+
+
+ fontconfig
+ Yazıtiplerinin yapılandırılması ve özelleştirilmesi için bir kitaplık
+ Biblioteka do konfigurowania pospolitych czcionek - obsługa plików binarnych
+ Fontconfig sistem genelindeki programlar için yazıtiplerinin ayarlanmasını, özelleştirilmesini ve programlar tarafından erişilmesini sağlar.
+ Fontconfig est un librairie conçue pour fournir à tout le système accès à la possibilité de configurer, personnaliser et appliquer des fontes.
+ Fontconfig jest biblioteką do konfigurowania i dostosowywania do własnych potrzeb czcionek, które nie zależą od systemu X Window. Została zaprojektowana, aby znajdować czcionki w systemie i dobierać je do wymagań określanych przez aplikacje.
+
+
+
+ fontconfig-devel
+ fontconfig için geliştirme dosyaları
+ Pliki nagłówkowe fontconfig
+
+
+
+ fontconfig-32bit
+ fontconfig için 32-bit paylaşımlı kitaplıklar
+
+
diff --git a/desktop/font/harfbuzz/actions.py b/desktop/font/harfbuzz/actions.py
new file mode 100644
index 0000000000..94c480708f
--- /dev/null
+++ b/desktop/font/harfbuzz/actions.py
@@ -0,0 +1,34 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/copyleft/gpl.txt
+
+from pisi.actionsapi import get
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import shelltools
+
+def setup():
+ options = "--with-glib=yes \
+ --with-freetype=yes \
+ --with-cairo=yes \
+ --with-icu=yes \
+ --with-gobject=yes \
+ --with-graphite2=yes"
+
+ if get.buildTYPE() == "emul32":
+ options += "--with-glib=yes \
+ --with-graphite2=no \
+ --with-cairo=yes \
+ --with-icu=yes"
+ autotools.configure(options)
+
+ pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "README")
diff --git a/desktop/font/harfbuzz/pspec.xml b/desktop/font/harfbuzz/pspec.xml
new file mode 100644
index 0000000000..cf0467dc16
--- /dev/null
+++ b/desktop/font/harfbuzz/pspec.xml
@@ -0,0 +1,188 @@
+
+
+
+
+ harfbuzz
+ http://www.freedesktop.org/software/harfbuzz
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ GPLv2
+ library
+ OpenType text shaping engine.
+ The Harfbuzz package contains an OpenType text shaping engine.
+ http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.40.tar.bz2
+
+ cairo-devel
+ glib2-devel
+ icu4c-devel
+ graphite2-devel
+
+
+
+
+ harfbuzz
+
+ cairo
+ glib2
+ icu4c
+ libgcc
+ freetype
+ graphite2
+
+
+ /usr/lib
+ /usr/share/doc
+ /usr/bin
+ /usr/share/gir-1.0
+ /usr/share/gtk-doc
+
+
+
+
+ harfbuzz-devel
+
+ glib2-devel
+ icu4c-devel
+ harfbuzz
+
+
+ /usr/include/harfbuzz
+ /usr/lib/pkgconfig
+ /usr/lib32/pkgconfig
+
+
+
+
+ harfbuzz-32bit
+ emul32
+ 32-bit shared libraries for harfbuzz
+ emul32
+
+ icu4c-32bit
+ freetype-32bit
+ fontconfig-32bit
+ glibc-32bit
+ cairo-32bit
+
+
+ cairo-32bit
+ glib2-32bit
+ glibc-32bit
+ icu4c-32bit
+ freetype-32bit
+
+
+ /usr/lib32
+
+
+
+
+
+ 2015-04-06
+ 0.9.40
+ Version bump.
+ Ayhan Yalçınsoy
+ ayhanyalcinsoy@pisilinux.org
+
+
+ 2015-01-24
+ 0.9.38
+ Version bump.
+ Hakan Yıldız
+ hknyldz93@gmail.com
+
+
+ 2015-01-12
+ 0.9.37
+ Version Bump + rebuild.
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+ 2014-08-15
+ 0.9.35
+ Version Bump.
+ Vedat Demir
+ vedat@pisilinux.org
+
+
+ 2014-07-11
+ 0.9.30
+ Version Bump.
+ Vedat Demir
+ vedat@pisilinux.org
+
+
+ 2014-06-09
+ 0.9.26
+ Better harfbuz with icu, cairo. Fix configure option format.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-05-17
+ 0.9.26
+ Release bump.
+ Alihan Öztürk
+ alihan@pisilinux.org
+
+
+ 2014-02-26
+ 0.9.26
+ Delete Unused Deps.
+ Varol Maksutoğlu
+ waroi@pisilinux.org
+
+
+ 2014-02-25
+ 0.9.26
+ Rebuild Unused
+ Varol Maksutoğlu
+ waroi@pisilinux.org
+
+
+ 2014-02-22
+ 0.9.26
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2013-10-14
+ 0.9.19
+ Rebuild for icu4c
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-07-26
+ 0.9.19
+ Version bump. Fix build emul32
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-06-30
+ 0.9.18
+ V.Bump
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+ 2013-01-22
+ 0.9.9
+ Add emul32
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2012-12-24
+ 0.9.9
+ First release
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+
diff --git a/desktop/font/harfbuzz/translations.xml b/desktop/font/harfbuzz/translations.xml
new file mode 100644
index 0000000000..757c9f48cc
--- /dev/null
+++ b/desktop/font/harfbuzz/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ harfbuzz
+ OpenType text shaping engine
+ The Harfbuzz package contains an OpenType text shaping engine.
+
+
diff --git a/desktop/lookandfeel/component.xml b/desktop/lookandfeel/component.xml
new file mode 100644
index 0000000000..655942859d
--- /dev/null
+++ b/desktop/lookandfeel/component.xml
@@ -0,0 +1,3 @@
+
+ desktop.lookandfeel
+
diff --git a/desktop/lookandfeel/icon-theme-hicolor/actions.py b/desktop/lookandfeel/icon-theme-hicolor/actions.py
new file mode 100644
index 0000000000..5834955752
--- /dev/null
+++ b/desktop/lookandfeel/icon-theme-hicolor/actions.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 2
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+
+WorkDir = "hicolor-icon-theme-%s" % get.srcVERSION()
+
+def setup():
+ autotools.configure()
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.install()
+
+ pisitools.dodoc("README", "ChangeLog")
diff --git a/desktop/lookandfeel/icon-theme-hicolor/pspec.xml b/desktop/lookandfeel/icon-theme-hicolor/pspec.xml
new file mode 100644
index 0000000000..e325008b46
--- /dev/null
+++ b/desktop/lookandfeel/icon-theme-hicolor/pspec.xml
@@ -0,0 +1,42 @@
+
+
+
+
+ icon-theme-hicolor
+ http://icon-theme.freedesktop.org/wiki/HicolorTheme
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ GPLv2
+ data
+ Default icon theme
+ Hicolor icon theme contains the basic directories and files needed for icon theme support.
+ http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.12.tar.gz
+
+
+
+ icon-theme-hicolor
+
+ /usr/share/doc
+ /usr/share/icons
+
+
+
+
+
+ 2013-08-26
+ 0.12
+ Release bump.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2010-10-24
+ 0.12
+ First release
+ Pisi Linux Admins
+ admins@pisilinux.org
+
+
+
diff --git a/desktop/lookandfeel/icon-theme-hicolor/translations.xml b/desktop/lookandfeel/icon-theme-hicolor/translations.xml
new file mode 100644
index 0000000000..fe5ba4f10f
--- /dev/null
+++ b/desktop/lookandfeel/icon-theme-hicolor/translations.xml
@@ -0,0 +1,8 @@
+
+
+
+ icon-theme-hicolor
+ Temel simge teması
+ Hicolor, simge teması desteği için ihtiyaç duyulan temel dizin ve dosyalarıni içeren temel bir simge temasıdır.
+
+
diff --git a/desktop/misc/at-spi2-core/actions.py b/desktop/misc/at-spi2-core/actions.py
new file mode 100644
index 0000000000..2b12315d27
--- /dev/null
+++ b/desktop/misc/at-spi2-core/actions.py
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import get
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+
+if get.buildTYPE() == "emul32":
+ libexec = "/tmp"
+ sysconf = "--sysconfdir=/tmp"
+else:
+ libexec = "/usr/libexec/at-spi2"
+ sysconf = ""
+
+def setup():
+ autotools.autoreconf("-vif")
+ autotools.configure("--disable-static \
+ --disable-silent-rules \
+ --disable-xevie \
+ --libexecdir=%s\
+ --with-dbus-daemondir=/usr/bin \
+ %s \
+ " % (libexec, sysconf))
+
+ #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\\1")
+
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+ #pisitools.removeDir("/etc")
+ if get.buildTYPE() == "emul32":
+ pisitools.dosed("%s/usr/share/dbus-1/services" % get.installDIR(), "^(Exec=)\/tmp", r"\1/usr/libexec/at-spi2")
+ pisitools.removeDir("/tmp")
+ return
+
+ pisitools.dodoc("AUTHORS", "COPYING", "README", "NEWS")
\ No newline at end of file
diff --git a/desktop/misc/at-spi2-core/pspec.xml b/desktop/misc/at-spi2-core/pspec.xml
new file mode 100644
index 0000000000..c2fe7d12a4
--- /dev/null
+++ b/desktop/misc/at-spi2-core/pspec.xml
@@ -0,0 +1,152 @@
+
+
+
+
+ at-spi2-core
+ http://www.linuxfoundation.org/collaborate/workgroups/accessibility
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ LGPLv2+
+ service
+ Protocol definitions and daemons for D-Bus at-spi
+ at-spi allows assistive technologies to access GTK-based applications. Essentially it exposes the internals of applications over D-Bus for automation.
+ mirrors://gnome/at-spi2-core/2.16/at-spi2-core-2.16.0.tar.xz
+
+ libXtst-devel
+ libXi-devel
+
+
+
+
+ at-spi2-core
+
+ libXtst
+
+
+ /etc
+ /usr/lib
+ /usr/share/doc
+ /usr/share/dbus-1
+ /usr/share/gtk-doc
+ /usr/libexec
+ /usr/share/gir-1.0
+ /usr/share/locale
+
+
+
+
+ at-spi2-core-32bit
+ emul32
+ 32-bit shared libraries for at-spi2-core
+ emul32
+
+ dbus-32bit
+ glib2-32bit
+ libX11-32bit
+ libXtst-32bit
+
+
+ dbus-32bit
+ glib2-32bit
+ libX11-32bit
+
+
+ /usr/lib32
+
+
+
+
+ at-spi2-core-devel
+ at-spi2-core için geliştirme dosyaları
+
+ at-spi2-core
+
+
+ /usr/include
+ /usr/lib/pkgconfig
+ /usr/lib32/pkgconfig
+
+
+
+
+
+ 2015-04-17
+ 2.16.0
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2014-04-14
+ 2.12.0
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2013-10-10
+ 2.10.0
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2013-09-07
+ 2.8.0
+ Fix build.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-08-30
+ 2.8.0
+ Rebuild.
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+ 2013-07-27
+ 2.8.0
+ Rebuild.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-06-17
+ 2.8.0
+ Rebuild with new pisi release
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+ 2013-06-17
+ 2.8.0
+ Rebuild with new pisi release
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-04-23
+ 2.8.0
+ Dep fixed
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+ 2013-04-17
+ 2.8.0
+ Version bump
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2012-10-22
+ 2.7.2
+ First release
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+
diff --git a/desktop/misc/at-spi2-core/translations.xml b/desktop/misc/at-spi2-core/translations.xml
new file mode 100644
index 0000000000..ad67a8576a
--- /dev/null
+++ b/desktop/misc/at-spi2-core/translations.xml
@@ -0,0 +1,18 @@
+
+
+
+ at-spi2-core
+ D-Bus at-spi için protokol tanımları ve hizmetleri
+ at-spi2-core, erişilebilirlik teknolojilerinin uygulamalara D-Bus üzerinden erişerek onları otomatik olarak denetlemesini sağlar.
+
+
+
+ at-spi2-core-32bit
+ 32-bit shared libraries for at-spi2-core
+
+
+
+ at-spi2-core-devel
+ at-spi2-core için geliştirme dosyaları
+
+
\ No newline at end of file
diff --git a/desktop/misc/component.xml b/desktop/misc/component.xml
new file mode 100644
index 0000000000..edf55c1aeb
--- /dev/null
+++ b/desktop/misc/component.xml
@@ -0,0 +1,3 @@
+
+ desktop.misc
+
diff --git a/desktop/misc/desktop-file-utils/actions.py b/desktop/misc/desktop-file-utils/actions.py
new file mode 100644
index 0000000000..8c18223677
--- /dev/null
+++ b/desktop/misc/desktop-file-utils/actions.py
@@ -0,0 +1,22 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+
+def setup():
+ shelltools.export("EMACS", "no")
+ autotools.configure("--disable-static")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ pisitools.dodoc("AUTHORS", "ChangeLog", "NEWS", "README")
diff --git a/desktop/misc/desktop-file-utils/comar/pakhandler.py b/desktop/misc/desktop-file-utils/comar/pakhandler.py
new file mode 100644
index 0000000000..68c67e8807
--- /dev/null
+++ b/desktop/misc/desktop-file-utils/comar/pakhandler.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+import piksemel
+import os
+
+def updateData(filepath):
+ parse = piksemel.parse(filepath)
+
+ for icon in parse.tags("File"):
+ path = icon.getTagData("Path")
+ if path.startswith("usr/share/applications"):
+ os.system("/usr/bin/update-desktop-database -q")
+ return
+
+def setupPackage(metapath, filepath):
+ updateData(filepath)
+
+def cleanupPackage(metapath, filepath):
+ pass
+
+def postCleanupPackage(metapath, filepath):
+ updateData(filepath)
diff --git a/desktop/misc/desktop-file-utils/pspec.xml b/desktop/misc/desktop-file-utils/pspec.xml
new file mode 100644
index 0000000000..a1c812b348
--- /dev/null
+++ b/desktop/misc/desktop-file-utils/pspec.xml
@@ -0,0 +1,53 @@
+
+
+
+
+ desktop-file-utils
+ http://www.freedesktop.org/software/desktop-file-utils/
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ GPLv2
+ library
+ Command line utilities to work with desktop menu entries
+ desktop files are used to describe an application for inclusion in GNOME or KDE menus. This package contains desktop-file-validate which checks whether a .desktop file complies with the specification and desktop-file-install which installs a desktop file to the standard directory, optionally fixing it up in the process.
+ http://freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.21.tar.xz
+
+
+
+ desktop-file-utils
+
+ /usr/bin
+ /usr/share/doc
+ /usr/share/man/man1/
+
+
+ System.PackageHandler
+
+
+
+
+
+ 2013-09-07
+ 0.21
+ Add comar script.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-08-26
+ 0.21
+ Release bump.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2012-11-21
+ 0.21
+ First release
+ PisiLinux Community
+ admins@pisilinux.org
+
+
+
diff --git a/desktop/misc/desktop-file-utils/translations.xml b/desktop/misc/desktop-file-utils/translations.xml
new file mode 100644
index 0000000000..14f04b8dcc
--- /dev/null
+++ b/desktop/misc/desktop-file-utils/translations.xml
@@ -0,0 +1,7 @@
+
+
+
+ desktop-file-utils
+ Masaüstü menü girdilerini yönetmek için komut satırı araçları
+
+
diff --git a/desktop/toolkit/gtk/gtk2/actions.py b/desktop/toolkit/gtk/gtk2/actions.py
new file mode 100644
index 0000000000..ae75d08f9b
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/actions.py
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/licenses/gpl.txt
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+from pisi.actionsapi import shelltools
+from pisi.actionsapi import libtools
+
+def setup():
+ options = "-with-xinput=yes \
+ --enable-man"
+
+ #shelltools.export("CFLAGS", get.CFLAGS().replace("-fomit-frame-pointer",""))
+ #gtk2 needs -DGTK_COMPILATION CPPFLAG when compiling itself
+ #Avoid "Only can be included directly error"
+ shelltools.export("CPPFLAGS", "-DGTK_COMPILATION")
+
+ if get.buildTYPE() == "_emul32":
+ options += " --libdir=/usr/lib32 \
+ --bindir=/_emul32/bin \
+ --sbindir=/_emul32/sbin \
+ --disable-cups"
+
+ shelltools.export("CC", "%s -m32" % get.CC())
+ shelltools.export("CXX", "%s -m32" % get.CC())
+ shelltools.export("CXXFLAGS", "%s -m32" % get.CFLAGS())
+ shelltools.export("LDFLAGS", "%s -m32" % get.LDFLAGS())
+ shelltools.export("CPPFLAGS", "-DGTK_COMPILATION")
+
+ autotools.autoconf()
+ autotools.configure(options)
+
+ pisitools.dosed("libtool"," -shared ", " -Wl,-O1,--as-needed -shared ")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ # remove empty dir
+ #pisitools.removeDir("/usr/share/man")
+
+ pisitools.dodoc("AUTHORS", "README*", "HACKING", "ChangeLog*", "NEWS*")
+
+ if get.buildTYPE() == "_emul32":
+ for binaries in ["gtk-query-immodules-2.0", "gtk-demo"]:
+ pisitools.domove("/_emul32/bin/%s" % binaries, "/usr/bin/", "%s-32bit" % binaries)
+ pisitools.removeDir("/_emul32")
+ #hack to install gdkconfig.h in gdk headers dir
+ pisitools.dosym("/usr/lib/gtk-2.0/include/gdkconfig.h","/usr/include/gtk-2.0/gdk/gdkconfig.h")
\ No newline at end of file
diff --git a/desktop/toolkit/gtk/gtk2/comar/pakhandler.py b/desktop/toolkit/gtk/gtk2/comar/pakhandler.py
new file mode 100644
index 0000000000..0771670257
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/comar/pakhandler.py
@@ -0,0 +1,41 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+import piksemel
+import os
+import fnmatch
+
+def updateData(filepath):
+ parse = piksemel.parse(filepath)
+
+ iconFound = False
+ immoduleFound = False
+
+ for icon in parse.tags("File"):
+ path = icon.getTagData("Path")
+ if path.startswith("usr/share/icons/hicolor") and not iconFound:
+ os.system("/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor")
+ iconFound = True
+ if immoduleFound:
+ return
+
+ if fnmatch.fnmatch(path, "usr/lib/gtk-2.0/*immodules/*.so") and not immoduleFound:
+ os.system("/usr/bin/gtk-query-immodules-2.0 --update-cache")
+ immoduleFound = True
+ if iconFound:
+ return
+
+ if fnmatch.fnmatch(path, "usr/lib32/gtk-2.0/*immodules/*.so") and not immoduleFound:
+ os.system("/usr/bin/gtk-query-immodules-2.0-32bit --update-cache")
+ immoduleFound = True
+ if iconFound:
+ return
+
+def setupPackage(metapath, filepath):
+ updateData(filepath)
+
+def cleanupPackage(metapath, filepath):
+ pass
+
+def postCleanupPackage(metapath, filepath):
+ updateData(filepath)
diff --git a/desktop/toolkit/gtk/gtk2/files/fedora/icon-padding.patch b/desktop/toolkit/gtk/gtk2/files/fedora/icon-padding.patch
new file mode 100644
index 0000000000..45083a6548
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/files/fedora/icon-padding.patch
@@ -0,0 +1,258 @@
+diff -up gtk+-2.19.7/gtk/gtkstatusicon.c.icon-padding gtk+-2.19.7/gtk/gtkstatusicon.c
+--- gtk+-2.19.7/gtk/gtkstatusicon.c.icon-padding 2010-03-08 08:42:22.000000000 -0500
++++ gtk+-2.19.7/gtk/gtkstatusicon.c 2010-03-10 00:40:11.165527903 -0500
+@@ -170,6 +170,7 @@ static void gtk_status_icon_screen_c
+ GdkScreen *old_screen);
+ static void gtk_status_icon_embedded_changed (GtkStatusIcon *status_icon);
+ static void gtk_status_icon_orientation_changed (GtkStatusIcon *status_icon);
++static void gtk_status_icon_padding_changed (GtkStatusIcon *status_icon);
+ static gboolean gtk_status_icon_scroll (GtkStatusIcon *status_icon,
+ GdkEventScroll *event);
+ static gboolean gtk_status_icon_query_tooltip (GtkStatusIcon *status_icon,
+@@ -850,6 +851,8 @@ gtk_status_icon_init (GtkStatusIcon *sta
+ G_CALLBACK (gtk_status_icon_embedded_changed), status_icon);
+ g_signal_connect_swapped (priv->tray_icon, "notify::orientation",
+ G_CALLBACK (gtk_status_icon_orientation_changed), status_icon);
++ g_signal_connect_swapped (priv->tray_icon, "notify::padding",
++ G_CALLBACK (gtk_status_icon_padding_changed), status_icon);
+ g_signal_connect_swapped (priv->tray_icon, "button-press-event",
+ G_CALLBACK (gtk_status_icon_button_press), status_icon);
+ g_signal_connect_swapped (priv->tray_icon, "button-release-event",
+@@ -975,6 +978,8 @@ gtk_status_icon_finalize (GObject *objec
+ g_signal_handlers_disconnect_by_func (priv->tray_icon,
+ gtk_status_icon_orientation_changed, status_icon);
+ g_signal_handlers_disconnect_by_func (priv->tray_icon,
++ gtk_status_icon_padding_changed, status_icon);
++ g_signal_handlers_disconnect_by_func (priv->tray_icon,
+ gtk_status_icon_button_press, status_icon);
+ g_signal_handlers_disconnect_by_func (priv->tray_icon,
+ gtk_status_icon_button_release, status_icon);
+@@ -1679,14 +1684,32 @@ gtk_status_icon_screen_changed (GtkStatu
+ #ifdef GDK_WINDOWING_X11
+
+ static void
++gtk_status_icon_padding_changed (GtkStatusIcon *status_icon)
++{
++ GtkStatusIconPrivate *priv = status_icon->priv;
++ GtkOrientation orientation;
++ gint padding;
++
++ orientation = _gtk_tray_icon_get_orientation (GTK_TRAY_ICON (priv->tray_icon));
++ padding = _gtk_tray_icon_get_padding (GTK_TRAY_ICON (priv->tray_icon));
++
++ if (orientation == GTK_ORIENTATION_HORIZONTAL)
++ gtk_misc_set_padding (GTK_MISC (priv->image), padding, 0);
++ else
++ gtk_misc_set_padding (GTK_MISC (priv->image), 0, padding);
++}
++
++static void
+ gtk_status_icon_embedded_changed (GtkStatusIcon *status_icon)
+ {
++ gtk_status_icon_padding_changed (status_icon);
+ g_object_notify (G_OBJECT (status_icon), "embedded");
+ }
+
+ static void
+ gtk_status_icon_orientation_changed (GtkStatusIcon *status_icon)
+ {
++ gtk_status_icon_padding_changed (status_icon);
+ g_object_notify (G_OBJECT (status_icon), "orientation");
+ }
+
+@@ -1804,7 +1827,7 @@ gtk_status_icon_reset_image_data (GtkSta
+
+ g_object_notify (G_OBJECT (status_icon), "stock");
+ break;
+-
++
+ case GTK_IMAGE_ICON_NAME:
+ g_free (priv->image_data.icon_name);
+ priv->image_data.icon_name = NULL;
+diff -up gtk+-2.19.7/gtk/gtktrayicon.h.icon-padding gtk+-2.19.7/gtk/gtktrayicon.h
+--- gtk+-2.19.7/gtk/gtktrayicon.h.icon-padding 2009-10-18 01:35:45.000000000 -0400
++++ gtk+-2.19.7/gtk/gtktrayicon.h 2010-03-10 00:40:11.169528392 -0500
+@@ -69,7 +69,8 @@ void _gtk_tray_icon_cancel_mes
+ guint id);
+
+ GtkOrientation _gtk_tray_icon_get_orientation (GtkTrayIcon *icon);
+-
++gint _gtk_tray_icon_get_padding (GtkTrayIcon *icon);
++
+ G_END_DECLS
+
+ #endif /* __GTK_TRAY_ICON_H__ */
+diff -up gtk+-2.19.7/gtk/gtktrayicon-x11.c.icon-padding gtk+-2.19.7/gtk/gtktrayicon-x11.c
+--- gtk+-2.19.7/gtk/gtktrayicon-x11.c.icon-padding 2010-03-08 21:01:28.000000000 -0500
++++ gtk+-2.19.7/gtk/gtktrayicon-x11.c 2010-03-10 00:49:48.229509604 -0500
+@@ -43,23 +43,26 @@
+
+ enum {
+ PROP_0,
+- PROP_ORIENTATION
++ PROP_ORIENTATION,
++ PROP_PADDING
+ };
+
+ struct _GtkTrayIconPrivate
+ {
+ guint stamp;
+-
++
+ Atom selection_atom;
+ Atom manager_atom;
+ Atom system_tray_opcode_atom;
+ Atom orientation_atom;
+ Atom visual_atom;
++ Atom padding_atom;
+ Window manager_window;
+ GdkVisual *manager_visual;
+ gboolean manager_visual_rgba;
+
+ GtkOrientation orientation;
++ gint padding;
+ };
+
+ static void gtk_tray_icon_constructed (GObject *object);
+@@ -113,6 +116,16 @@ gtk_tray_icon_class_init (GtkTrayIconCla
+ GTK_ORIENTATION_HORIZONTAL,
+ GTK_PARAM_READABLE));
+
++ g_object_class_install_property (gobject_class,
++ PROP_PADDING,
++ g_param_spec_int ("padding",
++ P_("Padding"),
++ P_("Padding that should be put around icons in the tray"),
++ 0,
++ G_MAXINT,
++ 0,
++ GTK_PARAM_READABLE));
++
+ g_type_class_add_private (class, sizeof (GtkTrayIconPrivate));
+ }
+
+@@ -124,6 +137,7 @@ gtk_tray_icon_init (GtkTrayIcon *icon)
+
+ icon->priv->stamp = 1;
+ icon->priv->orientation = GTK_ORIENTATION_HORIZONTAL;
++ icon->priv->padding = 0;
+
+ gtk_widget_set_app_paintable (GTK_WIDGET (icon), TRUE);
+ gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK);
+@@ -161,6 +175,10 @@ gtk_tray_icon_constructed (GObject *obje
+ "_NET_SYSTEM_TRAY_VISUAL",
+ False);
+
++ icon->priv->padding_atom = XInternAtom (xdisplay,
++ "_NET_SYSTEM_TRAY_PADDING",
++ False);
++
+ /* Add a root window filter so that we get changes on MANAGER */
+ gdk_window_add_filter (root_window,
+ gtk_tray_icon_manager_filter, icon);
+@@ -212,6 +230,9 @@ gtk_tray_icon_get_property (GObject *
+ case PROP_ORIENTATION:
+ g_value_set_enum (value, icon->priv->orientation);
+ break;
++ case PROP_PADDING:
++ g_value_set_int (value, icon->priv->padding);
++ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -372,9 +393,58 @@ gtk_tray_icon_get_visual_property (GtkTr
+ XFree (prop.prop);
+ }
+
++static void
++gtk_tray_icon_get_padding_property (GtkTrayIcon *icon)
++{
++ GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (icon));
++ GdkDisplay *display = gdk_screen_get_display (screen);
++ Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
++
++ Atom type;
++ int format;
++ union {
++ gulong *prop;
++ guchar *prop_ch;
++ } prop = { NULL };
++ gulong nitems;
++ gulong bytes_after;
++ int error, result;
++
++ g_assert (icon->priv->manager_window != None);
++
++ gdk_error_trap_push ();
++ type = None;
++ result = XGetWindowProperty (xdisplay,
++ icon->priv->manager_window,
++ icon->priv->padding_atom,
++ 0, G_MAXLONG, FALSE,
++ XA_CARDINAL,
++ &type, &format, &nitems,
++ &bytes_after, &(prop.prop_ch));
++ error = gdk_error_trap_pop ();
++
++ if (!error && result == Success &&
++ type == XA_CARDINAL && nitems == 1 && format == 32)
++ {
++ gint padding;
++
++ padding = prop.prop[0];
++
++ if (icon->priv->padding != padding)
++ {
++ icon->priv->padding = padding;
++
++ g_object_notify (G_OBJECT (icon), "padding");
++ }
++ }
++
++ if (type != None)
++ XFree (prop.prop);
++}
++
+ static GdkFilterReturn
+-gtk_tray_icon_manager_filter (GdkXEvent *xevent,
+- GdkEvent *event,
++gtk_tray_icon_manager_filter (GdkXEvent *xevent,
++ GdkEvent *event,
+ gpointer user_data)
+ {
+ GtkTrayIcon *icon = user_data;
+@@ -399,6 +469,11 @@ gtk_tray_icon_manager_filter (GdkXEvent
+
+ gtk_tray_icon_get_orientation_property (icon);
+ }
++ else if (xev->xany.type == PropertyNotify &&
++ xev->xproperty.atom == icon->priv->padding_atom)
++ {
++ gtk_tray_icon_get_padding_property (icon);
++ }
+ else if (xev->xany.type == DestroyNotify)
+ {
+ GTK_NOTE (PLUGSOCKET,
+@@ -504,6 +579,7 @@ gtk_tray_icon_update_manager_window (Gtk
+
+ gtk_tray_icon_get_orientation_property (icon);
+ gtk_tray_icon_get_visual_property (icon);
++ gtk_tray_icon_get_padding_property (icon);
+
+ if (gtk_widget_get_realized (GTK_WIDGET (icon)))
+ {
+@@ -740,6 +816,14 @@ _gtk_tray_icon_get_orientation (GtkTrayI
+ return icon->priv->orientation;
+ }
+
++gint
++_gtk_tray_icon_get_padding (GtkTrayIcon *icon)
++{
++ g_return_val_if_fail (GTK_IS_TRAY_ICON (icon), 0);
++
++ return icon->priv->padding;
++}
++
+
+ #define __GTK_TRAY_ICON_X11_C__
+ #include "gtkaliasdef.c"
diff --git a/desktop/toolkit/gtk/gtk2/files/fedora/system-python.patch b/desktop/toolkit/gtk/gtk2/files/fedora/system-python.patch
new file mode 100644
index 0000000000..3f697faa7b
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/files/fedora/system-python.patch
@@ -0,0 +1,9 @@
+diff -up gtk+-2.18.2/gtk/gtk-builder-convert.system-python gtk+-2.18.2/gtk/gtk-builder-convert
+--- gtk+-2.18.2/gtk/gtk-builder-convert.system-python 2009-10-13 15:59:50.423385098 -0400
++++ gtk+-2.18.2/gtk/gtk-builder-convert 2009-10-13 16:00:31.876142050 -0400
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python
+ #
+ # Copyright (C) 2006-2008 Async Open Source
+ # Henrique Romano
diff --git a/desktop/toolkit/gtk/gtk2/files/fedora/tooltip-positioning.patch b/desktop/toolkit/gtk/gtk2/files/fedora/tooltip-positioning.patch
new file mode 100644
index 0000000000..49b72c2616
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/files/fedora/tooltip-positioning.patch
@@ -0,0 +1,182 @@
+diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c
+index 5cc2334..204a2b6 100644
+--- a/gtk/gtktooltip.c
++++ b/gtk/gtktooltip.c
+@@ -903,53 +903,128 @@ gtk_tooltip_position (GtkTooltip *tooltip,
+ {
+ gint x, y;
+ GdkScreen *screen;
++ gint monitor_num;
++ GdkRectangle monitor;
++ GtkRequisition requisition;
++ guint cursor_size;
++ GdkRectangle bounds;
++
++#define MAX_DISTANCE 32
+
+ tooltip->tooltip_widget = new_tooltip_widget;
+
++ screen = gtk_widget_get_screen (new_tooltip_widget);
++
++ gtk_widget_size_request (GTK_WIDGET (tooltip->current_window), &requisition);
++
++ monitor_num = gdk_screen_get_monitor_at_point (screen,
++ tooltip->last_x,
++ tooltip->last_y);
++ gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
++
++ get_bounding_box (new_tooltip_widget, &bounds);
++
+ /* Position the tooltip */
+- /* FIXME: should we swap this when RTL is enabled? */
+- if (tooltip->keyboard_mode_enabled)
++
++ cursor_size = gdk_display_get_default_cursor_size (display);
++
++ /* Try below */
++ x = bounds.x + bounds.width / 2 - requisition.width / 2;
++ y = bounds.y + bounds.height + 4;
++
++ if (y + requisition.height <= monitor.y + monitor.height)
+ {
+- GdkRectangle bounds;
++ if (tooltip->keyboard_mode_enabled)
++ goto found;
+
+- get_bounding_box (new_tooltip_widget, &bounds);
++ if (y <= tooltip->last_y + cursor_size + MAX_DISTANCE)
++ {
++ if (tooltip->last_x + cursor_size + MAX_DISTANCE < x)
++ x = tooltip->last_x + cursor_size + MAX_DISTANCE;
++ else if (x + requisition.width < tooltip->last_x - MAX_DISTANCE)
++ x = tooltip->last_x - MAX_DISTANCE - requisition.width;
+
+- /* For keyboard mode we position the tooltip below the widget,
+- * right of the center of the widget.
+- */
+- x = bounds.x + bounds.width / 2;
+- y = bounds.y + bounds.height + 4;
++ goto found;
++ }
++ }
++
++ /* Try above */
++ x = bounds.x + bounds.width / 2 - requisition.width / 2;
++ y = bounds.y - requisition.height - 4;
++
++ if (y >= monitor.y)
++ {
++ if (tooltip->keyboard_mode_enabled)
++ goto found;
++
++ if (y + requisition.height >= tooltip->last_y - MAX_DISTANCE)
++ {
++ if (tooltip->last_x + cursor_size + MAX_DISTANCE < x)
++ x = tooltip->last_x + cursor_size + MAX_DISTANCE;
++ else if (x + requisition.width < tooltip->last_x - MAX_DISTANCE)
++ x = tooltip->last_x - MAX_DISTANCE - requisition.width;
++
++ goto found;
++ }
+ }
+- else
++
++ /* Try right FIXME: flip on rtl ? */
++ x = bounds.x + bounds.width + 4;
++ y = bounds.y + bounds.height / 2 - requisition.height / 2;
++
++ if (x + requisition.width <= monitor.x + monitor.width)
+ {
+- guint cursor_size;
++ if (tooltip->keyboard_mode_enabled)
++ goto found;
+
+- x = tooltip->last_x;
+- y = tooltip->last_y;
++ if (x <= tooltip->last_x + cursor_size + MAX_DISTANCE)
++ {
++ if (tooltip->last_y + cursor_size + MAX_DISTANCE < y)
++ y = tooltip->last_y + cursor_size + MAX_DISTANCE;
++ else if (y + requisition.height < tooltip->last_y - MAX_DISTANCE)
++ y = tooltip->last_y - MAX_DISTANCE - requisition.height;
+
+- /* For mouse mode, we position the tooltip right of the cursor,
+- * a little below the cursor's center.
+- */
+- cursor_size = gdk_display_get_default_cursor_size (display);
+- x += cursor_size / 2;
+- y += cursor_size / 2;
++ goto found;
++ }
+ }
+
+- screen = gtk_widget_get_screen (new_tooltip_widget);
++ /* Try left FIXME: flip on rtl ? */
++ x = bounds.x - requisition.width - 4;
++ y = bounds.y + bounds.height / 2 - requisition.height / 2;
+
+- /* Show it */
+- if (tooltip->current_window)
++ if (x >= monitor.x)
+ {
+- gint monitor_num;
+- GdkRectangle monitor;
+- GtkRequisition requisition;
++ if (tooltip->keyboard_mode_enabled)
++ goto found;
+
+- gtk_widget_size_request (GTK_WIDGET (tooltip->current_window),
+- &requisition);
++ if (x + requisition.width >= tooltip->last_x - MAX_DISTANCE)
++ {
++ if (tooltip->last_y + cursor_size + MAX_DISTANCE < y)
++ y = tooltip->last_y + cursor_size + MAX_DISTANCE;
++ else if (y + requisition.height < tooltip->last_y - MAX_DISTANCE)
++ y = tooltip->last_y - MAX_DISTANCE - requisition.height;
+
+- monitor_num = gdk_screen_get_monitor_at_point (screen, x, y);
+- gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
++ goto found;
++ }
++ }
+
++ /* Fallback */
++ if (tooltip->keyboard_mode_enabled)
++ {
++ x = bounds.x + bounds.width / 2 - requisition.width / 2;
++ y = bounds.y + bounds.height + 4;
++ }
++ else
++ {
++ /* At cursor */
++ x = tooltip->last_x + cursor_size * 3 / 4;
++ y = tooltip->last_y + cursor_size * 3 / 4;
++ }
++
++found:
++ /* Show it */
++ if (tooltip->current_window)
++ {
+ if (x + requisition.width > monitor.x + monitor.width)
+ x -= x - (monitor.x + monitor.width) + requisition.width;
+ else if (x < monitor.x)
+@@ -957,7 +1032,9 @@ gtk_tooltip_position (GtkTooltip *tooltip,
+
+ if (y + requisition.height > monitor.y + monitor.height)
+ y -= y - (monitor.y + monitor.height) + requisition.height;
+-
++ else if (y < monitor.y)
++ y = monitor.y;
++
+ if (!tooltip->keyboard_mode_enabled)
+ {
+ /* don't pop up under the pointer */
+@@ -965,7 +1042,7 @@ gtk_tooltip_position (GtkTooltip *tooltip,
+ y <= tooltip->last_y && tooltip->last_y < y + requisition.height)
+ y = tooltip->last_y - requisition.height - 2;
+ }
+-
++
+ gtk_window_move (GTK_WINDOW (tooltip->current_window), x, y);
+ gtk_widget_show (GTK_WIDGET (tooltip->current_window));
+ }
diff --git a/desktop/toolkit/gtk/gtk2/files/fedora/window-dragging.patch b/desktop/toolkit/gtk/gtk2/files/fedora/window-dragging.patch
new file mode 100644
index 0000000000..88aa26b466
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/files/fedora/window-dragging.patch
@@ -0,0 +1,116 @@
+diff -up gtk+-2.24.7/gtk/gtkmenushell.c.window-dragging gtk+-2.24.7/gtk/gtkmenushell.c
+--- gtk+-2.24.7/gtk/gtkmenushell.c.window-dragging 2011-08-15 22:30:52.000000000 -0400
++++ gtk+-2.24.7/gtk/gtkmenushell.c 2011-10-17 19:50:52.180468086 -0400
+@@ -589,18 +589,45 @@ gtk_menu_shell_button_press (GtkWidget
+
+ if (!menu_shell->active || !menu_shell->button)
+ {
+- _gtk_menu_shell_activate (menu_shell);
++ gboolean initially_active = menu_shell->active;
+
+ menu_shell->button = event->button;
+
+- if (menu_item && _gtk_menu_item_is_selectable (menu_item) &&
+- menu_item->parent == widget &&
+- menu_item != menu_shell->active_menu_item)
++ if (menu_item)
+ {
+- if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement == GTK_TOP_BOTTOM)
++ if (_gtk_menu_item_is_selectable (menu_item) &&
++ menu_item->parent == widget &&
++ menu_item != menu_shell->active_menu_item)
+ {
+- menu_shell->activate_time = event->time;
+- gtk_menu_shell_select_item (menu_shell, menu_item);
++ _gtk_menu_shell_activate (menu_shell);
++ menu_shell->button = event->button;
++
++ if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement == GTK_TOP_BOTTOM)
++ {
++ menu_shell->activate_time = event->time;
++ gtk_menu_shell_select_item (menu_shell, menu_item);
++ }
++ }
++ }
++ else
++ {
++ if (!initially_active)
++ {
++ gboolean window_drag = FALSE;
++
++ gtk_widget_style_get (widget,
++ "window-dragging", &window_drag,
++ NULL);
++
++ if (window_drag)
++ {
++ gtk_menu_shell_deactivate (menu_shell);
++ gtk_window_begin_move_drag (GTK_WINDOW (gtk_widget_get_toplevel (widget)),
++ event->button,
++ event->x_root,
++ event->y_root,
++ event->time);
++ }
+ }
+ }
+ }
+diff -up gtk+-2.24.7/gtk/gtktoolbar.c.window-dragging gtk+-2.24.7/gtk/gtktoolbar.c
+--- gtk+-2.24.7/gtk/gtktoolbar.c.window-dragging 2011-10-01 11:29:06.000000000 -0400
++++ gtk+-2.24.7/gtk/gtktoolbar.c 2011-10-17 19:52:56.104463657 -0400
+@@ -2701,6 +2701,8 @@ static gboolean
+ gtk_toolbar_button_press (GtkWidget *toolbar,
+ GdkEventButton *event)
+ {
++ GtkWidget *window;
++
+ if (_gtk_button_event_triggers_context_menu (event))
+ {
+ gboolean return_value;
+@@ -2711,7 +2713,29 @@ gtk_toolbar_button_press (GtkWidget
+
+ return return_value;
+ }
+-
++
++ window = gtk_widget_get_toplevel (toolbar);
++
++ if (window)
++ {
++ gboolean window_drag = FALSE;
++
++ gtk_widget_style_get (toolbar,
++ "window-dragging", &window_drag,
++ NULL);
++
++ if (window_drag)
++ {
++ gtk_window_begin_move_drag (GTK_WINDOW (window),
++ event->button,
++ event->x_root,
++ event->y_root,
++ event->time);
++
++ return TRUE;
++ }
++ }
++
+ return FALSE;
+ }
+
+diff -up gtk+-2.24.7/gtk/gtkwidget.c.window-dragging gtk+-2.24.7/gtk/gtkwidget.c
+--- gtk+-2.24.7/gtk/gtkwidget.c.window-dragging 2011-10-17 19:50:52.175468086 -0400
++++ gtk+-2.24.7/gtk/gtkwidget.c 2011-10-17 19:50:52.184468086 -0400
+@@ -2467,6 +2467,13 @@ gtk_widget_class_init (GtkWidgetClass *k
+ 0.0, 1.0, 0.04,
+ GTK_PARAM_READABLE));
+
++ gtk_widget_class_install_style_property (klass,
++ g_param_spec_boolean ("window-dragging",
++ P_("Window dragging"),
++ P_("Window dragging"),
++ FALSE,
++ GTK_PARAM_READWRITE));
++
+ /**
+ * GtkWidget:draw-border:
+ *
diff --git a/desktop/toolkit/gtk/gtk2/files/gtkrc b/desktop/toolkit/gtk/gtk2/files/gtkrc
new file mode 100644
index 0000000000..e5b4e26e98
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/files/gtkrc
@@ -0,0 +1,3 @@
+gtk-icon-theme-name = "Faenza"
+gtk-theme-name = "MediterraneanLightDarkest"
+gtk-font-name = "DejaVuSans 10"
diff --git a/desktop/toolkit/gtk/gtk2/files/xid-collision-debug.patch b/desktop/toolkit/gtk/gtk2/files/xid-collision-debug.patch
new file mode 100644
index 0000000000..db0816ef16
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/files/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+Index: gtk+-2.16.5/gdk/x11/gdkxid.c
+===================================================================
+--- gtk+-2.16.5.orig/gdk/x11/gdkxid.c
++++ gtk+-2.16.5/gdk/x11/gdkxid.c
+@@ -57,8 +57,10 @@ _gdk_xid_table_insert (GdkDisplay *displ
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+
++ /*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
++ */
+
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
diff --git a/desktop/toolkit/gtk/gtk2/pspec.xml b/desktop/toolkit/gtk/gtk2/pspec.xml
new file mode 100644
index 0000000000..0d5963c943
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/pspec.xml
@@ -0,0 +1,258 @@
+
+
+
+
+ gtk2
+ http://www.gtk.org
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ LGPLv2.1
+ The GIMP Toolkit version 2
+ GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites.
+ mirrors://gnome/gtk+/2.24/gtk+-2.24.23.tar.xz
+
+ cups-devel
+ libXi-devel
+ cairo-devel
+ libXext-devel
+ libXrandr-devel
+ libXfixes-devel
+ libXrender-devel
+ libXdamage-devel
+ libXcursor-devel
+ fontconfig-devel
+ libXinerama-devel
+ libXcomposite-devel
+ atk-devel
+ pango-devel
+ gdk-pixbuf-devel
+ gobject-introspection-devel
+
+
+
+ xid-collision-debug.patch
+
+
+ fedora/system-python.patch
+ fedora/icon-padding.patch
+ fedora/tooltip-positioning.patch
+ fedora/window-dragging.patch
+
+
+
+
+ gtk2
+
+ cups
+ libXi
+ cairo
+ libXext
+ libXrandr
+ libXfixes
+ libXrender
+ libXdamage
+ libXcursor
+ fontconfig
+ libXinerama
+ libXcomposite
+ atk
+ pango
+ gdk-pixbuf
+ dejavu-fonts
+ gtk-theme-mediterranean
+
+
+ /etc
+ /usr/bin
+ /usr/share/themes
+ /usr/share/gtk-2.0
+ /usr/share/man
+ /usr/share/doc
+ /usr/lib
+ /usr/share/locale
+
+
+
+ gtkrc
+
+
+ System.PackageHandler
+
+
+
+
+ gtk2-demo
+ app:gui
+ GTK demo application
+
+ gtk2
+ cairo
+ pango
+ gdk-pixbuf
+
+
+ /usr/bin/gtk-demo
+ /usr/share/gtk-2.0/demo
+
+
+
+
+ gtk2-docs
+ data:doc
+ GTK reference documents
+
+ /usr/share/gtk-doc
+
+
+
+
+ gtk2-devel
+ Development files for gtk2
+
+ gtk2
+ atk-devel
+ pango-devel
+ cairo-devel
+ gdk-pixbuf-devel
+
+
+ /usr/include
+ /usr/lib/pkgconfig
+ /usr/lib32/pkgconfig
+ /usr/share/aclocal
+ /usr/share/gir-1.0
+
+
+
+
+ gtk2-32bit
+ emul32
+ 32-bit shared libraries for gtk2
+ _emul32
+
+ cairo-32bit
+ cups-32bit
+ fontconfig-32bit
+ pango-32bit
+ glib2-32bit
+ atk-32bit
+ libX11-32bit
+ gdk-pixbuf-32bit
+ libXcomposite-32bit
+ libXcursor-32bit
+ libXdamage-32bit
+ libXext-32bit
+ libXfixes-32bit
+ libXi-32bit
+ libXinerama-32bit
+ libXrandr-32bit
+ libXrender-32bit
+
+
+ gtk2
+ cairo-32bit
+ pango-32bit
+ glib2-32bit
+ atk-32bit
+ libX11-32bit
+ cups-32bit
+ fontconfig-32bit
+ gdk-pixbuf-32bit
+ libXcomposite-32bit
+ libXcursor-32bit
+ libXdamage-32bit
+ libXext-32bit
+ libXfixes-32bit
+ libXi-32bit
+ libXinerama-32bit
+ libXrandr-32bit
+ libXrender-32bit
+
+
+ /usr/bin/*-32bit
+ /usr/lib32
+
+
+
+
+
+ 2014-05-17
+ 2.24.23
+ Version bump.
+ Alihan Öztürk
+ alihan@pisilinux.org
+
+
+ 2014-04-06
+ 2.24.22
+ Rebuild
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2014-02-06
+ 2.24.22
+ Set proper settings to gtkrc, change location of gtkrc.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2013-10-21
+ 2.24.22
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2013-09-05
+ 2.24.21
+ Minor version bump, cleanup.
+ Serdar Soytetir
+ kaptan@pisilinux.org
+
+
+ 2013-09-05
+ 2.24.20
+ Add missing method and fix pakhandler.py
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-07-06
+ 2.24.20
+ Version bump.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-04-20
+ 2.24.17
+ Version bump.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2013-02-23
+ 2.24.16
+ Version bump, add new cppflags, enhancements.
+ Erdinç Gültekin
+ admins@pisilinux.org
+
+
+ 2013-01-23
+ 2.24.14
+ Version bump.
+ Marcin Bojara
+ marcin@pisilinux.org
+
+
+ 2012-09-25
+ 2.24.13
+ First release
+ Erdem Artan
+ admins@pisilinux.org
+
+
+
diff --git a/desktop/toolkit/gtk/gtk2/translations.xml b/desktop/toolkit/gtk/gtk2/translations.xml
new file mode 100644
index 0000000000..7717338863
--- /dev/null
+++ b/desktop/toolkit/gtk/gtk2/translations.xml
@@ -0,0 +1,29 @@
+
+
+
+ gtk2
+ GTK grafik arayüz kitaplığı versiyon 2
+ GTK+, grafik kullanıcı arayüzü oluşturma amaçlı araçlardan oluşur. GTK+ hem küçük, hem de büyük uygulamalar için ideal olan, eksiksiz bir araçtır.
+ GTK+ est une boîte à outil multi-plateforme servant à créer des interfaces graphiques. Offrant un ensemble complet de widgets (objets graphiques), GTK+ convient aussi bien pour les petits projets que pour les suites complètes d'applications.
+
+
+
+ gtk2-demo
+ GTK demo uyulaması
+
+
+
+ gtk2-docs
+ GTK referans dökümanları
+
+
+
+ gtk2-devel
+ gtk2 için geliştirme dosyaları
+
+
+
+ gtk2-32bit
+ gtk2 için 32-bit paylaşımlı kitaplıklar
+
+