summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cerbero/bootstrap/linux.py7
-rw-r--r--cerbero/commands/gensdkshell.py3
-rw-r--r--packages/base-system-1.0.package2
-rw-r--r--recipes/at-spi2-atk.recipe21
-rw-r--r--recipes/at-spi2-core.recipe29
-rw-r--r--recipes/atk.recipe6
-rw-r--r--recipes/gnome-themes-standard.recipe21
-rw-r--r--recipes/gtk+3.recipe139
-rw-r--r--recipes/gtk+3/0001-gtksettings-Allow-setting-the-GTK-theme-with-an-envv.patch97
-rw-r--r--recipes/harfbuzz.recipe21
-rw-r--r--recipes/librsvg.recipe8
-rw-r--r--recipes/pango.recipe8
12 files changed, 350 insertions, 12 deletions
diff --git a/cerbero/bootstrap/linux.py b/cerbero/bootstrap/linux.py
index 8b146428..98d26cdb 100644
--- a/cerbero/bootstrap/linux.py
+++ b/cerbero/bootstrap/linux.py
@@ -50,7 +50,7 @@ class DebianBootstrapper (UnixBootstrapper):
'libxml-simple-perl', 'dpkg-dev', 'debhelper',
'build-essential', 'devscripts', 'fakeroot', 'transfig',
'gperf', 'libdbus-glib-1-dev', 'wget', 'glib-networking',
- 'chrpath', 'libfuse-dev']
+ 'libxtst-dev', 'libxrandr-dev', 'libbonobo2-dev', 'chrpath', 'libfuse-dev']
distro_packages = {
DistroVersion.DEBIAN_SQUEEZE: ['libgtk2.0-dev'],
DistroVersion.UBUNTU_MAVERICK: ['libgtk2.0-dev'],
@@ -86,8 +86,9 @@ class RedHatBootstrapper (UnixBootstrapper):
'libXv-devel', 'mesa-libGL-devel', 'libXcomposite-devel',
'alsa-lib-devel', 'perl-ExtUtils-MakeMaker', 'libXi-devel',
'perl-XML-Simple', 'gperf', 'gdk-pixbuf2-devel', 'wget',
- 'docbook-utils-pdf', 'glib-networking', 'help2man','glib2-devel',
- 'chrpath', 'fuse-devel']
+ 'docbook-utils-pdf', 'glib-networking', 'help2man',
+ 'dbus-devel', 'glib2-devel', 'libXrandr-devel',
+ 'libXtst-devel', 'libbonobo-devel', 'chrpath', 'fuse-devel']
def __init__(self, config):
UnixBootstrapper.__init__(self, config)
diff --git a/cerbero/commands/gensdkshell.py b/cerbero/commands/gensdkshell.py
index 894ebc19..bdb68c78 100644
--- a/cerbero/commands/gensdkshell.py
+++ b/cerbero/commands/gensdkshell.py
@@ -98,6 +98,9 @@ class GenSdkShell(Command):
self._putvar('LDFLAGS', '-L%s ${LDFLAGS}' % libdir, " ")
self._putvar('GIO_EXTRA_MODULES', '%s/gio/modules' % libdir)
self._putvar('GI_TYPELIB_PATH', '%s/girepository-1.0' % libdir)
+ if config.variants.gtk:
+ self._putvar('GTK_PATH', '%s/gtk-3.0' % libdir, None)
+ self._putvar('GTK_DATA_PREFIX', prefix_env, None)
envstr = 'export %s="%s"\n' % (prefix_env_name, prefix)
for e, v in env.iteritems():
diff --git a/packages/base-system-1.0.package b/packages/base-system-1.0.package
index c119812f..0cca0df5 100644
--- a/packages/base-system-1.0.package
+++ b/packages/base-system-1.0.package
@@ -20,7 +20,7 @@ class Package(package.Package):
'glib:libs:lang:bins:schemas', 'orc:libs', 'pango:libs:modules',
'libpng:libs', 'tiff:libs', 'jpeg:libs',
'libxml2:libs', 'pixman:libs',
- 'zlib:libs', 'bzip2:libs', ]
+ 'zlib:libs', 'bzip2:libs', 'harfbuzz:libs']
platform_files = {
Platform.WINDOWS: ['gettext:libs:lang', 'libiconv:libs:lang',
diff --git a/recipes/at-spi2-atk.recipe b/recipes/at-spi2-atk.recipe
new file mode 100644
index 00000000..7a4b157a
--- /dev/null
+++ b/recipes/at-spi2-atk.recipe
@@ -0,0 +1,21 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'at-spi2-atk'
+ version = '2.10.2'
+ licenses = [License.LGPLv2Plus]
+ deps = ['atk', 'at-spi2-core']
+ use_system_libs = True
+
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/at-spi2-atk/2.10/at-spi2-atk-2.10.2.tar.xz'
+
+ files_libs = ['libatk-bridge-2.0']
+ files_misc = ['lib/gnome-settings-daemon-3.0/gtk-modules/at-spi2-atk.desktop']
+ files_devel = ['include/at-spi2-atk/', 'lib/pkgconfig/atk-bridge-2.0.pc']
+
+ def prepare(self):
+ if self.config.target_platform != Platform.LINUX:
+ self.configure_options = ' --disable-gtk-doc'
+
diff --git a/recipes/at-spi2-core.recipe b/recipes/at-spi2-core.recipe
new file mode 100644
index 00000000..34e81a44
--- /dev/null
+++ b/recipes/at-spi2-core.recipe
@@ -0,0 +1,29 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'at-spi2-core'
+ version = '2.10.2'
+ licenses = [License.LGPLv2Plus]
+ deps = []
+
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/at-spi2-core/2.10/at-spi2-core-2.10.2.tar.xz'
+ use_system_libs = True
+
+ files_libs = ['libatspi']
+ files_misc = ['etc/at-spi2/accessibility.conf',
+ 'etc/xdg/autostart/at-spi-dbus-bus.desktop'
+ 'libexec/at-spi-bus-launcher',
+ 'libexec/at-spi2-registryd'
+ 'share/dbus-1/services/org.a11y.Bus.service',
+ 'share/dbus-1/services/org.a11y.atspi.Registry.service'
+ 'etc/at-spi2',
+ 'etc/xdg/autostart/at-spi-dbus-bus.desktop',
+ 'libexec/at-spi-bus-launcher',
+ 'libexec/at-spi2-registryd',
+ 'share/dbus-1/services/org.a11y.Bus.service',
+ 'share/dbus-1/services/org.a11y.atspi.Registry.service']
+ files_lang = ['at-spi2-core']
+ files_gi = ['lib/girepository-1.0/Atspi-2.0.typelib',
+ 'lib/girepository-1.0/Atspi-2.0.typelib']
diff --git a/recipes/atk.recipe b/recipes/atk.recipe
index db49fda4..6e91b63d 100644
--- a/recipes/atk.recipe
+++ b/recipes/atk.recipe
@@ -3,10 +3,12 @@
class Recipe(recipe.Recipe):
name = 'atk'
- version = '2.4.0'
+ version = '2.10.0'
licenses = [License.LGPLv2Plus]
deps = ['glib']
- autoreconf = True
+
+ stype = SourceType.TARBALL
+ url = 'http://ftp.acc.umu.se/pub/GNOME/sources/atk/2.10/atk-2.10.0.tar.xz'
files_libs = ['libatk-1.0']
files_devel = ['lib/pkgconfig/atk.pc', 'include/atk-1.0']
diff --git a/recipes/gnome-themes-standard.recipe b/recipes/gnome-themes-standard.recipe
new file mode 100644
index 00000000..66ba6b41
--- /dev/null
+++ b/recipes/gnome-themes-standard.recipe
@@ -0,0 +1,21 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+class Recipe(recipe.Recipe):
+ name = 'gnome-themes-standard'
+ version = '3.10.0'
+ licenses = [License.LGPLv2_1]
+
+ use_system_libs = True # Needs acces to X11 for gdk3
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/3.10/gnome-themes-standard-3.10.0.tar.xz'
+ deps = ['gtk+3', 'librsvg']
+ configure_options = '--disable-gtk2-engine'
+
+ files_misc = ['lib/gtk-3.0/3.0.0/theming-engines/libadwaita%(pext)s',
+ 'share/gnome-background-properties/adwaita.xml',
+ 'share/icons/Adwaita',
+ 'share/icons/HighContrast',
+ 'share/themes/Adwaita',
+ 'share/themes/HighContrast',
+ ]
+
diff --git a/recipes/gtk+3.recipe b/recipes/gtk+3.recipe
new file mode 100644
index 00000000..e0484c0f
--- /dev/null
+++ b/recipes/gtk+3.recipe
@@ -0,0 +1,139 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'gtk+3'
+ version = '3.10.7'
+ # TODO: check license - some source files are LGPLv2, others LGPLv2+,
+ # others LGPLv2.1+, COPYING is LGPLv2 and the webpage states LGPLv2.1
+ licenses = [License.LGPLv2_1Plus]
+ configure_options = '--with-included-immodules '
+ deps = ['glib', 'atk', 'pango', 'gdk-pixbuf', 'cairo']
+ platform_deps = {
+ Platform.LINUX: ['at-spi2-atk'],
+ }
+ use_system_libs = True
+
+ stype = SourceType.TARBALL
+ patches = ['gtk+3/0001-gtksettings-Allow-setting-the-GTK-theme-with-an-envv.patch']
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/gtk+/3.10/gtk+-%(version)s.tar.xz'
+ tarball_dirname = 'gtk+-%(version)s'
+
+ files_libs = ['libgailutil-3', 'libgdk-3', 'libgtk-3']
+
+ files_bins = ['gtk3-widget-factory',
+ 'gtk-launch',
+ 'gtk-query-immodules-3.0',
+ 'gtk-update-icon-cache']
+
+ files_devel = [
+ 'bin/gtk3-demo',
+ 'bin/gtk3-demo-application',
+ 'lib/pkgconfig/gtk+-3.0.pc',
+ 'lib/pkgconfig/gdk-3.0.pc',
+ 'lib/pkgconfig/gail-3.0.pc',
+ 'include/gtk-3.0',
+ 'include/gail-3.0',
+ ]
+
+ files_misc = ['etc/gtk-3.0/']
+
+ platform_files_libs = {
+ Platform.WINDOWS: ['libgtk-win32-3.0', 'libgdk-win32-3.0'],
+ Platform.DARWIN: ['libgtk-quartz-3.0', 'libgdk-quartz-3.0'],
+ Platform.LINUX: ['libgtk-x11-3.0', 'libgdk-x11-3.0'],
+ }
+
+ platform_files_devel = {
+ Platform.WINDOWS: [
+ 'lib/pkgconfig/gtk+-win32-3.0.pc', 'lib/pkgconfig/gdk-win32-3.0.pc'],
+ Platform.DARWIN: [
+ 'lib/pkgconfig/gtk+-quartz-3.0.pc', 'lib/pkgconfig/gdk-quartz-3.0.pc'],
+ Platform.LINUX: [
+ 'lib/pkgconfig/gtk+-x11-3.0.pc', 'lib/pkgconfig/gdk-x11-3.0.pc'],
+ }
+ platform_files_themes = {
+ Platform.LINUX: [
+ 'share/themes/Default/gtk-3.0/gtk-keys.css',
+ 'share/themes/Emacs/gtk-3.0/gtk-keys.css'
+ ],
+ Platform.WINDOWS: [
+ 'share/themes/MS-Windows/gtk-3.0/gtkrc',
+ 'lib/gtk-3.0/2.10.0/engines/libwimp.dll',]
+ }
+ files_lang = ['gtk30', 'gtk30-properties']
+ files_typelibs = ['Gdk-3.0', 'Gtk-3.0']
+
+ platform_files_gi = {
+ Platform.LINUX: ['lib/girepository-1.0/GdkX11-3.0.typelib',
+ 'share/gir-1.0/GdkX11-3.0.gir'
+ ]
+ }
+
+ def _set_flags(self, module_path1=None, module_path2=None, theme_path=None):
+ self.append_env['CFLAGS'] = self._gtk_flags(module_path1, module_path2, theme_path)
+
+ def _gtk_flags(self, module_path1=None, module_path2=None, theme_path=None):
+ flags = ''
+ def escape(path):
+ return '\\"%s\\"' % path
+ if module_path1 is not None:
+ flags += ' -DGST_SDK_GTK_DISTRO_GTK_MODULE_PATH=%s' % escape(module_path1)
+ if module_path2 is not None:
+ flags += ' -DGST_SDK_GTK_DISTRO_GTK_MODULE_PATH2=%s' % escape(module_path2)
+ if theme_path is not None:
+ flags += ' -DGST_SDK_GTK_DISTRO_GTK_THEME_PATH=%s' % escape(theme_path)
+ return flags
+
+ def prepare(self):
+ if self.config.target_platform != Platform.LINUX:
+ self.configure_options += '--disable-gtk-doc '
+ if self.config.target_platform == Platform.WINDOWS:
+ self.configure_options += '--disable-papi --disable-cups '
+ elif self.config.target_platform == Platform.DARWIN:
+ self.configure_options += '--enable-quartz-backend '
+ elif self.config.target_platform == Platform.LINUX:
+ # Can't change CFLAGS and use configure cache
+ self.can_use_configure_cache = False
+ mod_path1 = '/usr/lib/gtk-3.0'
+ mod_path2 = None
+ themes_path = '/usr/share/themes'
+ # Old Debian/Ubuntu
+ if self.config.target_distro_version in [DistroVersion.DEBIAN_SQUEEZE,
+ DistroVersion.UBUNTU_LUCID,
+ DistroVersion.UBUNTU_MAVERICK]:
+ pass
+ # Ubuntu
+ elif self.config.target_distro_version in [DistroVersion.UBUNTU_NATTY,
+ DistroVersion.UBUNTU_ONEIRIC,
+ DistroVersion.UBUNTU_PRECISE,
+ DistroVersion.UBUNTU_QUANTAL,
+ DistroVersion.UBUNTU_RARING,
+ DistroVersion.UBUNTU_SAUCY]:
+ if self.config.target_arch == Architecture.X86:
+ mod_path2 = '/usr/lib/i386-linux-gnu/gtk-3.0'
+ elif self.config.target_arch == Architecture.X86_64:
+ mod_path2 = '/usr/lib/x86_64-linux-gnu/gtk-3.0'
+ # Debian
+ elif self.config.target_distro_version in [DistroVersion.DEBIAN_WHEEZY,
+ DistroVersion.DEBIAN_JESSIE]:
+ if self.config.target_arch == Architecture.X86:
+ mod_path1 = '/usr/lib/i386-linux-gnu/gtk-3.0'
+ elif self.config.target_arch == Architecture.X86_64:
+ mod_path1 = '/usr/lib/x86_64-linux-gnu/gtk-3.0'
+ # RedHat
+ elif self.config.target_distro_version in [DistroVersion.FEDORA_16,
+ DistroVersion.FEDORA_17,
+ DistroVersion.FEDORA_18,
+ DistroVersion.FEDORA_19,
+ DistroVersion.FEDORA_20,
+ DistroVersion.REDHAT_6,
+ ]:
+ if self.config.target_arch == Architecture.X86_64:
+ mod_path1 = '/usr/lib64/gtk-3.0'
+ elif self.config.target_distro == Distro.SUSE:
+ if self.config.target_arch == Architecture.X86_64:
+ mod_path1 = '/usr/lib64/gtk-3.0'
+ else:
+ raise FatalError(_("Add specific for other Linux distributions here"))
+ self._set_flags(mod_path1, mod_path2, themes_path)
diff --git a/recipes/gtk+3/0001-gtksettings-Allow-setting-the-GTK-theme-with-an-envv.patch b/recipes/gtk+3/0001-gtksettings-Allow-setting-the-GTK-theme-with-an-envv.patch
new file mode 100644
index 00000000..2c37324b
--- /dev/null
+++ b/recipes/gtk+3/0001-gtksettings-Allow-setting-the-GTK-theme-with-an-envv.patch
@@ -0,0 +1,97 @@
+From 1e70ad1cd126942b38e83c2d01712e8dc7ca675e Mon Sep 17 00:00:00 2001
+From: "Jasper St. Pierre" <jstpierre@mecheye.net>
+Date: Fri, 1 Nov 2013 16:03:56 -0400
+Subject: [PATCH] gtksettings: Allow setting the GTK+ theme with an envvar
+
+To test with Raleigh much easier.
+---
+ gtk/gtksettings.c | 56 +++++++++++++++++++++++++++++++++----------------------
+ 1 file changed, 34 insertions(+), 22 deletions(-)
+
+diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
+index 140d15b..e61a4b7 100644
+--- a/gtk/gtksettings.c
++++ b/gtk/gtksettings.c
+@@ -2881,45 +2881,57 @@ settings_update_provider (GdkScreen *screen,
+ }
+ }
+
++static char *
++get_theme_name (GtkSettings *settings)
++{
++ char *theme_name = NULL;
++
++ if (g_getenv ("GTK_THEME"))
++ theme_name = g_strdup (g_getenv ("GTK_THEME"));
++
++ if (theme_name && *theme_name)
++ return theme_name;
++
++ g_free (theme_name);
++ g_object_get (settings,
++ "gtk-theme-name", &theme_name,
++ NULL);
++
++ if (theme_name && *theme_name)
++ return theme_name;
++
++ g_free (theme_name);
++ return g_strdup ("Raleigh");
++}
++
+ static void
+ settings_update_theme (GtkSettings *settings)
+ {
+ GtkSettingsPrivate *priv = settings->priv;
+ gboolean prefer_dark_theme;
+ gchar *theme_name;
++ gchar *theme_dir;
++ gchar *path;
+
+ g_object_get (settings,
+- "gtk-theme-name", &theme_name,
+ "gtk-application-prefer-dark-theme", &prefer_dark_theme,
+ NULL);
+
+- if (!theme_name || !*theme_name)
+- {
+- g_free (theme_name);
+- theme_name = g_strdup ("Raleigh");
+- }
+-
++ theme_name = get_theme_name (settings);
++
+ _gtk_css_provider_load_named (priv->theme_provider,
+ theme_name,
+ prefer_dark_theme ? "dark" : NULL);
+
+- if (theme_name && *theme_name)
+- {
+- gchar *theme_dir;
+- gchar *path;
+-
+- /* reload per-theme settings */
+- theme_dir = _gtk_css_provider_get_theme_dir ();
+- path = g_build_filename (theme_dir, theme_name, "gtk-3.0", "settings.ini", NULL);
+-
+- if (g_file_test (path, G_FILE_TEST_EXISTS))
+- gtk_settings_load_from_key_file (settings, path, GTK_SETTINGS_SOURCE_THEME);
++ /* reload per-theme settings */
++ theme_dir = _gtk_css_provider_get_theme_dir ();
++ path = g_build_filename (theme_dir, theme_name, "gtk-3.0", "settings.ini", NULL);
+
+- g_free (theme_dir);
+- g_free (path);
+- }
++ if (g_file_test (path, G_FILE_TEST_EXISTS))
++ gtk_settings_load_from_key_file (settings, path, GTK_SETTINGS_SOURCE_THEME);
+
+- g_free (theme_name);
++ g_free (theme_dir);
++ g_free (path);
+ }
+
+ static void
+--
+1.8.5.3
+
diff --git a/recipes/harfbuzz.recipe b/recipes/harfbuzz.recipe
new file mode 100644
index 00000000..64864a4d
--- /dev/null
+++ b/recipes/harfbuzz.recipe
@@ -0,0 +1,21 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'harfbuzz'
+ version = '0.9.24'
+ stype = SourceType.TARBALL
+ url = 'http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.24.tar.bz2'
+ licenses = [License.LGPLv2Plus]
+ deps = ['fontconfig', 'cairo', 'glib']
+
+ files_bins = ['hb-ot-shape-closure', 'hb-view', 'hb-shape']
+ files_libs = ['libharfbuzz']
+ files_devel = ['include/harfbuzz/*.h', 'lib/pkgconfig/harfbuzz.pc']
+
+ def prepare(self):
+ if self.config.target_platform != Platform.LINUX:
+ self.configure_options += '--with-icu=no '
+ else:
+ self.files_devel.append('lib/pkgconfig/harfbuzz-icu.pc')
+ self.files_libs.append('libharfbuzz-icu')
diff --git a/recipes/librsvg.recipe b/recipes/librsvg.recipe
index d573719a..786701dd 100644
--- a/recipes/librsvg.recipe
+++ b/recipes/librsvg.recipe
@@ -3,10 +3,12 @@
class Recipe(recipe.Recipe):
name = 'librsvg'
- version = '2.36.1'
+ version = '2.40.1'
licenses = [License.LGPLv2]
- deps = ['libcroco']
- configure_options = '--enable-introspection=no'
+ deps = ['gdk-pixbuf', 'libcroco', 'gtk+3']
+
+ stype = SourceType.TARBALL
+ url = 'http://ftp.acc.umu.se/pub/GNOME/sources/librsvg/2.40/librsvg-2.40.1.tar.xz'
files_libs = ['librsvg-2']
files_bins = ['rsvg-convert']
diff --git a/recipes/pango.recipe b/recipes/pango.recipe
index 95fdf80f..8127f3db 100644
--- a/recipes/pango.recipe
+++ b/recipes/pango.recipe
@@ -3,14 +3,14 @@
class Recipe(recipe.Recipe):
name = 'pango'
- version = '1.30.1'
+ version = '1.36.1'
stype = SourceType.TARBALL
- url = 'http://ftp.gnome.org/pub/GNOME/sources/pango/1.30/pango-1.30.1.tar.xz'
+ url = 'http://ftp.acc.umu.se/pub/GNOME/sources/pango/1.36/pango-1.36.1.tar.xz'
autoreconf = True
autoreconf_sh = 'ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" autoreconf -ivf '
licenses = [License.LGPLv2Plus]
configure_options = '--with-included-modules --enable-static --disable-gtk-doc'
- deps = ['cairo', 'fontconfig', 'freetype', 'gtk-doc-lite']
+ deps = ['cairo', 'fontconfig', 'freetype', 'gtk-doc-lite', 'harfbuzz']
files_libs = ['libpangocairo-1.0', 'libpango-1.0', 'libpangoft2-1.0']
files_bins = ['pango-querymodules', 'pango-view']
@@ -19,9 +19,11 @@ class Recipe(recipe.Recipe):
'lib/pkgconfig/pangocairo.pc']
platform_files_libs = {
Platform.WINDOWS: ['libpangowin32-1.0'],
+ Platform.LINUX: ['libpango-1.0'],
}
platform_files_devel = {
Platform.WINDOWS: ['lib/pkgconfig/pangowin32.pc'],
+ Platform.LINUX: ['lib/pkgconfig/pango.pc'],
}
files_typelibs = [
'Pango-1.0',