summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2013-07-01 09:17:31 +0200
committerSebastian Dröge <slomo@circular-chaos.org>2013-07-01 09:17:31 +0200
commitbc5403e423a30a892b61373aee88c6eb9a40044f (patch)
tree5e296376851d0548601407a3d515ae1b2647b903
parent2176368d92b651603af225902b4cddd858461847 (diff)
parentdebe50411065467f44177495179a9881974d6495 (diff)
Merge branch 'master' into upstream
Conflicts: recipes/gst-rtsp-server-1.0.recipe
-rw-r--r--cerbero/bootstrap/build_tools.py2
-rw-r--r--cerbero/build/cookbook.py3
-rw-r--r--cerbero/ide/xcode/fwlib.py3
-rw-r--r--cerbero/packages/osx/packager.py31
-rw-r--r--cerbero/packages/package.py10
-rw-r--r--cerbero/packages/wix.py3
-rw-r--r--cerbero/utils/__init__.py4
-rw-r--r--cerbero/utils/shell.py2
-rw-r--r--config/android.config1
-rw-r--r--config/ios.config3
-rwxr-xr-xdata/ndk-build/gstreamer.mk2
-rw-r--r--data/ndk-build/gstreamer_android.c.in22
-rw-r--r--packages/gstreamer-1.0-sdk/gstreamer-1.0-sdk.package1
-rw-r--r--packages/gstreamer-sdk/gstreamer-sdk.package1
-rw-r--r--recipes/dbus-python.recipe4
-rw-r--r--recipes/freior-plugins.recipe16
-rw-r--r--recipes/gconf.recipe9
-rw-r--r--recipes/glade2.recipe26
-rw-r--r--recipes/glib.recipe63
-rw-r--r--recipes/gnome-doc-utils.recipe10
-rw-r--r--recipes/gnome-mime-data.recipe18
-rw-r--r--recipes/gnome-vfs.recipe64
-rw-r--r--recipes/goocanvas.recipe17
-rw-r--r--recipes/gst-rtsp-server-1.0.recipe2
-rw-r--r--recipes/gtk.recipe60
-rw-r--r--recipes/libidl.recipe8
-rw-r--r--recipes/libsoup.recipe3
-rw-r--r--recipes/orbit2.recipe21
-rw-r--r--recipes/pitivi.recipe16
-rw-r--r--recipes/py2cairo.py14
-rw-r--r--recipes/pygobject.recipe2
-rw-r--r--recipes/pygoocanvas.recipe15
-rw-r--r--recipes/pyxdg.recipe31
-rw-r--r--recipes/toolchain/all.recipe6
34 files changed, 412 insertions, 81 deletions
diff --git a/cerbero/bootstrap/build_tools.py b/cerbero/bootstrap/build_tools.py
index 581d949..f797885 100644
--- a/cerbero/bootstrap/build_tools.py
+++ b/cerbero/bootstrap/build_tools.py
@@ -48,6 +48,8 @@ class BuildTools (BootstraperBase):
self.config.distro_version == DistroVersion.DEBIAN_SQUEEZE:
# x264 requires yasm >= 1.0
self.BUILD_TOOLS.append('yasm')
+ if self.config.distro_version in [DistroVersion.REDHAT_6]:
+ self.BUILD_TOOLS.append('cmake')
if self.config.target_platform == Platform.IOS:
self.BUILD_TOOLS.append('gas-preprocessor')
if self.config.platform != Platform.LINUX and\
diff --git a/cerbero/build/cookbook.py b/cerbero/build/cookbook.py
index 89a41e6..afcf99a 100644
--- a/cerbero/build/cookbook.py
+++ b/cerbero/build/cookbook.py
@@ -353,7 +353,8 @@ class CookBook (object):
'License': License, 'recipe': crecipe, 'os': os,
'BuildSteps': crecipe.BuildSteps,
'InvalidRecipeError': InvalidRecipeError,
- 'custom': custom}
+ 'FatalError': FatalError,
+ 'custom': custom, '_': _, 'shell': shell}
parse_file(filepath, d)
r = d['Recipe'](self._config.arch_config[c])
r.__file__ = os.path.abspath(filepath)
diff --git a/cerbero/ide/xcode/fwlib.py b/cerbero/ide/xcode/fwlib.py
index 889b6b2..85dd689 100644
--- a/cerbero/ide/xcode/fwlib.py
+++ b/cerbero/ide/xcode/fwlib.py
@@ -151,7 +151,8 @@ class StaticFrameworkLibrary(FrameworkLibrary):
for k,v in syms.iteritems():
if len(v) > 1:
dups[k] = v
- m.warning ("The static library contains duplicated symbols")
+ if dups:
+ m.warning ("The static library contains duplicated symbols")
for k, v in dups.iteritems():
m.message (k) # symbol name
for l in v:
diff --git a/cerbero/packages/osx/packager.py b/cerbero/packages/osx/packager.py
index 6eff9ae..cabb5aa 100644
--- a/cerbero/packages/osx/packager.py
+++ b/cerbero/packages/osx/packager.py
@@ -23,9 +23,9 @@ import shutil
from cerbero.config import Architecture, Platform
from cerbero.ide.pkgconfig import PkgConfig
from cerbero.ide.xcode.fwlib import StaticFrameworkLibrary
-from cerbero.errors import EmptyPackageError
+from cerbero.errors import EmptyPackageError, FatalError
from cerbero.packages import PackagerBase, PackageType
-from cerbero.packages.package import Package, MetaPackage, SDKPackage, App,\
+from cerbero.packages.package import Package, MetaPackage, App,\
PackageBase
from cerbero.packages.osx.distribution import DistributionXML
from cerbero.packages.osx.bundles import FrameworkBundlePackager,\
@@ -228,7 +228,7 @@ class ProductPackage(PackagerBase):
self._prepare_pack()
- if isinstance(self.package, SDKPackage):
+ if isinstance(self.package, MetaPackage):
packager = self._create_framework_bundle_packager()
self._create_framework_bundle_layout(packager)
self._create_framework_bundle_package(packager)
@@ -245,6 +245,7 @@ class ProductPackage(PackagerBase):
paths.append(d_path)
self.package.set_mode(PackageType.RUNTIME)
+ self._create_packages_dmg()
if not keep_temp:
shutil.rmtree(self.tmp)
@@ -326,6 +327,17 @@ class ProductPackage(PackagerBase):
else:
self.empty_packages[PackageType.DEVEL].append(p)
+ def _create_packages_dmg(self):
+ paths = self.packages_paths[PackageType.RUNTIME].values()
+ dmg_file = os.path.join(self.output_dir,
+ self._package_name('-packages.dmg'))
+
+ # Create Disk Image
+ cmd = 'hdiutil create %s -ov' % dmg_file
+ for p in paths:
+ cmd += ' -srcfolder %s' % p
+ shell.call(cmd)
+
class ApplicationPackage(PackagerBase):
'''
@@ -426,7 +438,7 @@ class IOSPackage(ProductPackage, FrameworkHeadersMixin):
def pack(self, output_dir, devel=False, force=False, keep_temp=False):
PackagerBase.pack(self, output_dir, devel, force, keep_temp)
- framework_name = self.package.ios_framework_library[0]
+ framework_name = self.package.osx_framework_library[0]
self._prepare_pack()
self.fw_path = os.path.join(self.tmp, '%s.framework' % framework_name)
os.mkdir(self.fw_path)
@@ -442,8 +454,10 @@ class IOSPackage(ProductPackage, FrameworkHeadersMixin):
self._copy_headers(files, version_dir)
self._create_framework_headers(self.config.prefix,
self.include_dirs, version_dir)
- shutil.rmtree(os.path.join(version_dir, 'include'))
- shutil.rmtree(os.path.join(version_dir, 'lib'))
+ if os.path.exists(os.path.join(version_dir, 'include')):
+ shutil.rmtree(os.path.join(version_dir, 'include'))
+ if os.path.exists(os.path.join(version_dir, 'lib')):
+ shutil.rmtree(os.path.join(version_dir, 'lib'))
self._create_merged_lib(libname, files)
self.package.packages = []
self.fw_path = self.tmp
@@ -479,10 +493,7 @@ class IOSPackage(ProductPackage, FrameworkHeadersMixin):
def _copy_headers(self, files, version_dir):
# Get the list of headers
incl_dir = os.path.join(self.config.prefix, 'include')
- include_files = [os.path.join(incl_dir, x) for x in
- os.listdir(incl_dir) if x.endswith('.h')]
- for d in self.include_dirs:
- include_files += [x for x in files if d in x]
+ include_files = [x for x in files if incl_dir in x]
self._copy_files (include_files, version_dir)
def _create_framework_bundle_packager(self):
diff --git a/cerbero/packages/package.py b/cerbero/packages/package.py
index 43cde96..15c146a 100644
--- a/cerbero/packages/package.py
+++ b/cerbero/packages/package.py
@@ -229,7 +229,6 @@ class Package(PackageBase):
def __init__(self, config, store, cookbook):
PackageBase.__init__(self, config, store)
self.cookbook = cookbook
- self.load_files()
def load_files(self):
self._files = self.files + \
@@ -344,8 +343,10 @@ class MetaPackage(PackageBase):
@cvar sdk_version: SDK version. This version will be used for the SDK
versionning and can defer from the installer one.
@type sdk_version: str
- @cvar resources_wix_installer: wix installer tmeplate file
- @cvar resources_wix_installer: string
+ @cvar resources_wix_installer: wix installer template file
+ @type resources_wix_installer: string
+ @cvar user_resources: folders included in the .dmg for iOS packages
+ @type user_resources: list
'''
packages = []
@@ -353,6 +354,7 @@ class MetaPackage(PackageBase):
platform_packages = {}
sdk_version = '1.0'
resources_wix_installer = None
+ user_resources = []
def __init__(self, config, store):
PackageBase.__init__(self, config, store)
@@ -423,7 +425,7 @@ class SDKPackage(MetaPackage):
@cvar root_env_var: name of the environment variable with the prefix
@type root_env_var: str
- @cvar osx_framework_library: (namd, path) of the lib used for the Framework
+ @cvar osx_framework_library: (name, path) of the lib used for the Framework
@type osx_framework_library: tuple
'''
diff --git a/cerbero/packages/wix.py b/cerbero/packages/wix.py
index c7eeb17..0e1c411 100644
--- a/cerbero/packages/wix.py
+++ b/cerbero/packages/wix.py
@@ -48,8 +48,7 @@ class VSTemplatePackage(Package):
def __init__(self, config, store, cookbook):
Package.__init__(self, config, store, cookbook)
- def files_list(self):
- #def devel_files_list(self):
+ def devel_files_list(self):
files = []
for f in [self.vs_template_dir, self.vs_wizard_dir]:
files += shell.ls_dir (os.path.join(self.config.prefix,f),
diff --git a/cerbero/utils/__init__.py b/cerbero/utils/__init__.py
index 81470e1..8d75708 100644
--- a/cerbero/utils/__init__.py
+++ b/cerbero/utils/__init__.py
@@ -152,7 +152,7 @@ def system_info():
distro_version = DistroVersion.DEBIAN_JESSIE
else:
raise FatalError("Distribution '%s' not supported" % str(d))
- elif d[0] in ['RedHat', 'Fedora']:
+ elif d[0] in ['RedHat', 'Fedora', 'CentOS']:
distro = Distro.REDHAT
if d[1] == '16':
distro_version = DistroVersion.FEDORA_16
@@ -162,6 +162,8 @@ def system_info():
distro_version = DistroVersion.FEDORA_18
elif d[1] == '19':
distro_version = DistroVersion.FEDORA_19
+ elif d[1].startswith('6.'):
+ distro_version = DistroVersion.REDHAT_6
else:
# FIXME Fill this
raise FatalError("Distribution '%s' not supported" % str(d))
diff --git a/cerbero/utils/shell.py b/cerbero/utils/shell.py
index 15028ac..8e23216 100644
--- a/cerbero/utils/shell.py
+++ b/cerbero/utils/shell.py
@@ -261,7 +261,7 @@ def ls_dir(dirpath, prefix):
def find_newer_files(prefix, compfile, include_link=False):
include_links = include_link and '-L' or ''
- cmd = 'find %s * -type f -newer %s' % (include_links, compfile)
+ cmd = 'find %s * -type f -cnewer %s' % (include_links, compfile)
sfiles = check_call(cmd, prefix, True, False, False).split('\n')
sfiles.remove('')
return sfiles
diff --git a/config/android.config b/config/android.config
index 58f8067..bdcab96 100644
--- a/config/android.config
+++ b/config/android.config
@@ -97,6 +97,7 @@ os.environ['AR']= cmd('ar')
os.environ['AS']= cmd('as')
os.environ['NM']= cmd('nm')
os.environ['STRIP']= cmd('strip')
+os.environ['OBJCOPY']= cmd('objcopy')
os.environ['PATH'] = '%s:%s:%s' % (toolchain_prefix, toolchain_path, os.environ['PATH'])
# For the libc.so dependency in i686-linux-android-as
diff --git a/config/ios.config b/config/ios.config
index 20930b8..e8e1fbf 100644
--- a/config/ios.config
+++ b/config/ios.config
@@ -6,6 +6,7 @@
import os
from cerbero.utils import shell
from cerbero.config import Architecture, DistroVersion
+from cerbero.errors import FatalError
# We don't want anything from macports detected in configure and
# used later. System libs are passed through the -isysroot option
@@ -48,7 +49,7 @@ elif target_arch == Architecture.X86:
elif target_arch == Architecture.UNIVERSAL:
arch_cflags=''
else:
- raise FatalError("Arch not supported")
+ raise FatalError("Arch %s not supported" % target_arch)
# Toolchain environment
os.environ['PATH'] = '%s:%s' % (_toolchain_root, os.environ['PATH'])
diff --git a/data/ndk-build/gstreamer.mk b/data/ndk-build/gstreamer.mk
index 5b2fe0f..050d93f 100755
--- a/data/ndk-build/gstreamer.mk
+++ b/data/ndk-build/gstreamer.mk
@@ -57,7 +57,9 @@ ifeq ($(HOST_OS),windows)
else
endif
+ifndef GSTREAMER_ANDROID_MODULE_NAME
GSTREAMER_ANDROID_MODULE_NAME := gstreamer_android
+endif
GSTREAMER_BUILD_DIR := gst-build
GSTREAMER_ANDROID_O := $(GSTREAMER_BUILD_DIR)/$(GSTREAMER_ANDROID_MODULE_NAME).o
GSTREAMER_ANDROID_SO := $(GSTREAMER_BUILD_DIR)/lib$(GSTREAMER_ANDROID_MODULE_NAME).so
diff --git a/data/ndk-build/gstreamer_android.c.in b/data/ndk-build/gstreamer_android.c.in
index 4f8043f..6dba061 100644
--- a/data/ndk-build/gstreamer_android.c.in
+++ b/data/ndk-build/gstreamer_android.c.in
@@ -4,6 +4,7 @@
#include <android/log.h>
static GstClockTime _priv_gst_info_start_time;
+static gboolean _priv_gst_initialized = FALSE;
/* Declaration of static plugins */
@PLUGINS_DECLARATION@
@@ -324,7 +325,7 @@ gst_android_init (JNIEnv * env, jclass klass, jobject context)
gchar *registry;
GError *error = NULL;
- if (gst_is_initialized ()) {
+ if (_priv_gst_initialized) {
__android_log_print (ANDROID_LOG_INFO, "GStreamer",
"GStreamer already initialized");
return;
@@ -376,19 +377,22 @@ gst_android_init (JNIEnv * env, jclass klass, jobject context)
/* get time we started for debugging messages */
_priv_gst_info_start_time = gst_util_get_timestamp ();
- if (!gst_init_check (NULL, NULL, &error)) {
- gchar *message = g_strdup_printf ("GStreamer initialization failed: %s",
- error && error->message ? error->message : "(no message)");
- jclass exception_class = (*env)->FindClass (env, "java/lang/Exception");
- __android_log_print (ANDROID_LOG_ERROR, "GStreamer", message);
- (*env)->ThrowNew (env, exception_class, message);
- g_free (message);
- return;
+ if (!gst_is_initialized ()) {
+ if (!gst_init_check (NULL, NULL, &error)) {
+ gchar *message = g_strdup_printf ("GStreamer initialization failed: %s",
+ error && error->message ? error->message : "(no message)");
+ jclass exception_class = (*env)->FindClass (env, "java/lang/Exception");
+ __android_log_print (ANDROID_LOG_ERROR, "GStreamer", message);
+ (*env)->ThrowNew (env, exception_class, message);
+ g_free (message);
+ return;
+ }
}
gst_android_register_static_plugins ();
gst_android_load_gio_modules ();
__android_log_print (ANDROID_LOG_INFO, "GStreamer",
"GStreamer initialization complete");
+ _priv_gst_initialized = TRUE;
}
static JNINativeMethod native_methods[] = {
diff --git a/packages/gstreamer-1.0-sdk/gstreamer-1.0-sdk.package b/packages/gstreamer-1.0-sdk/gstreamer-1.0-sdk.package
index 2e4374a..173be5a 100644
--- a/packages/gstreamer-1.0-sdk/gstreamer-1.0-sdk.package
+++ b/packages/gstreamer-1.0-sdk/gstreamer-1.0-sdk.package
@@ -55,7 +55,6 @@ class SDKPackage(package.SDKPackage):
},
}
osx_framework_library = ('GStreamer', 'lib/GStreamer')
- ios_framework_library = ('GStreamer', 'lib/GStreamer')
def prepare(self):
diff --git a/packages/gstreamer-sdk/gstreamer-sdk.package b/packages/gstreamer-sdk/gstreamer-sdk.package
index 7da0171..1e7aaf9 100644
--- a/packages/gstreamer-sdk/gstreamer-sdk.package
+++ b/packages/gstreamer-sdk/gstreamer-sdk.package
@@ -65,7 +65,6 @@ class SDKPackage(package.SDKPackage):
},
}
osx_framework_library = ('GStreamer', 'lib/GStreamer')
- ios_framework_library = ('GStreamer', 'lib/GStreamer')
def prepare(self):
diff --git a/recipes/dbus-python.recipe b/recipes/dbus-python.recipe
index e0cfd23..4b768c0 100644
--- a/recipes/dbus-python.recipe
+++ b/recipes/dbus-python.recipe
@@ -36,3 +36,7 @@ class Recipe(recipe.Recipe):
'include/dbus-1.0/dbus/dbus-python.h',
'lib/pkgconfig/dbus-python.pc'
]
+
+ def prepare(self):
+ if self.config.target_distro_version == DistroVersion.REDHAT_6:
+ self.append_env = {'CFLAGS': ' -D_GNU_SOURCE=1'}
diff --git a/recipes/freior-plugins.recipe b/recipes/freior-plugins.recipe
new file mode 100644
index 0000000..edee7a7
--- /dev/null
+++ b/recipes/freior-plugins.recipe
@@ -0,0 +1,16 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+from cerbero.utils import shell
+
+
+class Recipe(recipe.Recipe):
+ name = 'frei0r-plugins'
+ version = '1.4'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://files.dyne.org/frei0r/releases/frei0r-plugins-1.4.tar.gz'
+
+ files_plugins = ['lib/frei0r-1']
+ files_devel = [
+ 'lib/pkgconfig/frei0r.pc',
+ 'include/frei0r.h',
+ ]
diff --git a/recipes/gconf.recipe b/recipes/gconf.recipe
new file mode 100644
index 0000000..528639a
--- /dev/null
+++ b/recipes/gconf.recipe
@@ -0,0 +1,9 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+class Recipe(recipe.Recipe):
+ name = 'gconf'
+ version = '2.32.4'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/GConf/2.32/GConf-2.32.4.tar.xz'
+ deps = ['orbit2', 'dbus-glib']
diff --git a/recipes/glade2.recipe b/recipes/glade2.recipe
new file mode 100644
index 0000000..a7afb0c
--- /dev/null
+++ b/recipes/glade2.recipe
@@ -0,0 +1,26 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+from cerbero.utils import shell
+
+
+class Recipe(recipe.Recipe):
+ version = '2.12.2'
+ name = 'glade'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ configure_options = '--without-x'
+ url = 'http://ftp.acc.umu.se/pub/GNOME/sources/glade/2.12/glade-2.12.2.tar.bz2'
+ deps = ['gtk+', 'pygtk']
+
+ files_libs = ['libglade-2']
+
+
+ def configure(self):
+ for f in ['glade/gbwidgets/gbclist.c',
+ 'glade/glade_keys_dialog.c',
+ 'glade/glade_menu_editor.c',
+ 'glade/glade_project_view.h']:
+ shell.replace(os.path.join(self.build_dir, f),
+ {'gtkclist.h': 'gtkctree.h'})
+ shell.replace(os.path.join(self.build_dir, 'configure'),
+ {'$X_PRE_LIBS -lX11': '$X_PRE_LIBS '})
+ super(recipe.Recipe, self).configure()
diff --git a/recipes/glib.recipe b/recipes/glib.recipe
index b54a2ba..42fd2e9 100644
--- a/recipes/glib.recipe
+++ b/recipes/glib.recipe
@@ -1,4 +1,5 @@
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+import shutil
GLIB_CONFIG_UNVERSAL='''\
#ifdef __i386__
@@ -59,6 +60,10 @@ class Recipe(recipe.Recipe):
files_lang = ['glib20']
+ def _set_gio_flags(self, path1=None, path2=None, use_old_uri_scheme=False):
+ self.config_sh = 'CFLAGS="%s" ./configure' % \
+ self._gio_flags(path1, path2, use_old_uri_scheme)
+
def _gio_flags(self, path1=None, path2=None, use_old_uri_scheme=False):
flags = ''
def escape(path):
@@ -94,39 +99,49 @@ class Recipe(recipe.Recipe):
self.config_sh = 'CFLAGS="$CFLAGS -DHAVE_STRNDUP %s" ./configure' % extra_flags
elif self.config.target_platform == Platform.LINUX:
- if self.config.target_distro == Distro.DEBIAN and self.config.target_distro_version in [DistroVersion.DEBIAN_SQUEEZE, DistroVersion.UBUNTU_LUCID, DistroVersion.UBUNTU_MAVERICK]:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/gio/modules/', None, True)
- elif self.config.target_distro == Distro.DEBIAN and self.config.target_distro_version in [DistroVersion.UBUNTU_NATTY,
- DistroVersion.UBUNTU_ONEIRIC, DistroVersion.UBUNTU_PRECISE,
- DistroVersion.UBUNTU_QUANTAL, DistroVersion.UBUNTU_RARING]:
+ path1 = '/usr/lib/gio/modules'
+ path2 = None
+ use_old_uri_scheme = False
+ # Old Debian/Ubuntu
+ if self.config.target_distro_version in [DistroVersion.DEBIAN_SQUEEZE,
+ DistroVersion.UBUNTU_LUCID,
+ DistroVersion.UBUNTU_MAVERICK]:
+ use_old_uri_scheme = True
+ # Ubuntu
+ elif self.config.target_distro_version in [DistroVersion.UBUNTU_NATTY,
+ DistroVersion.UBUNTU_ONEIRIC,
+ DistroVersion.UBUNTU_PRECISE,
+ DistroVersion.UBUNTU_QUANTAL,
+ DistroVersion.UBUNTU_RARING]:
if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/gio/modules/', '/usr/lib/i386-linux-gnu/gio/modules')
+ path2 = '/usr/lib/i386-linux-gnu/gio/modules'
elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/gio/modules/', '/usr/lib/x86_64-linux-gnu/gio/modules')
- elif self.config.target_distro == Distro.DEBIAN and self.config.target_distro_version in [DistroVersion.DEBIAN_WHEEZY, DistroVersion.DEBIAN_JESSIE]:
+ path2 = '/usr/lib/x86_64-linux-gnu/gio/modules'
+ # Debian
+ elif self.config.target_distro_version in [DistroVersion.DEBIAN_WHEEZY,
+ DistroVersion.DEBIAN_JESSIE]:
if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/i386-linux-gnu/gio/modules')
+ path1 = '/usr/lib/i386-linux-gnu/gio/modules'
elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/x86_64-linux-gnu/gio/modules')
- elif self.config.target_distro == Distro.REDHAT:
- if self.config.target_distro_version in [DistroVersion.FEDORA_16, DistroVersion.FEDORA_17, DistroVersion.FEDORA_18, DistroVersion.FEDORA_19]:
- if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/gio/modules')
- elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib64/gio/modules/')
- else:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/gio/modules/')
+ path1 = '/usr/lib/x86_64-linux-gnu/gio/modules'
+ # RedHat
+ elif self.config.target_distro_version in [DistroVersion.FEDORA_16,
+ DistroVersion.FEDORA_17,
+ DistroVersion.FEDORA_18,
+ DistroVersion.FEDORA_19,
+ DistroVersion.REDHAT_6,
+ ]:
+ if self.config.target_arch == Architecture.X86_64:
+ path1 = '/usr/lib64/gio/modules/'
+ # Suse
elif self.config.target_distro == Distro.SUSE:
- if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib/gio/modules')
- elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gio_flags('/usr/lib64/gio/modules')
+ if self.config.target_arch == Architecture.X86_64:
+ path1 = '/usr/lib64/gio/modules/'
else:
- from cerbero.errors import FatalError
raise FatalError(_("Add specific for other Linux distributions here"))
+ self._set_gio_flags(path1, path2, use_old_uri_scheme)
def post_install(self):
- import shutil
if self.config.target_platform == Platform.WINDOWS:
shutil.copy(os.path.join(self.build_dir, 'glib', 'glibconfig.h.win32'),
os.path.join(self.config.prefix, 'lib', 'glib-2.0',
diff --git a/recipes/gnome-doc-utils.recipe b/recipes/gnome-doc-utils.recipe
new file mode 100644
index 0000000..c66ce27
--- /dev/null
+++ b/recipes/gnome-doc-utils.recipe
@@ -0,0 +1,10 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'gnome-doc-utils'
+ version = '0.20.9'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'ftp://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/0.20/gnome-doc-utils-0.20.9.tar.xz'
+ deps = ['libxml2', 'libxslt']
diff --git a/recipes/gnome-mime-data.recipe b/recipes/gnome-mime-data.recipe
new file mode 100644
index 0000000..5e5b32a
--- /dev/null
+++ b/recipes/gnome-mime-data.recipe
@@ -0,0 +1,18 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'gnome-mime-data'
+ version = '2.18.0'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://ftp.acc.umu.se/pub/GNOME/sources/gnome-mime-data/2.18/gnome-mime-data-2.18.0.tar.bz2'
+ deps = ['glib']
+
+ files_etc = ['etc/gnome-vfs-mime-magic']
+ files_lang = ['gnome-mime-data']
+ files_mime = [
+ 'share/mime-info/gnome-vfs.keys',
+ 'share/mime-info/gnome-vfs.mime',
+ ]
+ files_devel = ['share/pkgconfig/gnome-mime-data-2.0.pc']
diff --git a/recipes/gnome-vfs.recipe b/recipes/gnome-vfs.recipe
new file mode 100644
index 0000000..f4b8619
--- /dev/null
+++ b/recipes/gnome-vfs.recipe
@@ -0,0 +1,64 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+from cerbero.utils import shell
+
+
+class Recipe(recipe.Recipe):
+ name = 'gnome-vfs'
+ version = '2.24.4'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/gnome-vfs/2.24/gnome-vfs-2.24.4.tar.bz2'
+ force_configure = True
+ deps = ['libxml', 'zlib', 'glib', 'gconf', 'gnome-mime-data', 'dbus']
+
+ files_bins = [
+ 'gnomevfs-cat',
+ 'gnomevfs-copy',
+ 'gnomevfs-df',
+ 'gnomevfs-info',
+ 'gnomevfs-ls',
+ 'gnomevfs-mkdir',
+ 'gnomevfs-monitor',
+ 'gnomevfs-mv',
+ 'gnomevfs-rm',
+ ]
+ files_lang = ['gnome-vfs-2.0']
+ files_libs = ['libgnomevfs-2']
+ files_devel = [
+ 'lib/pkgconfig/gnome-vfs-2.0.pc',
+ 'lib/pkgconfig/gnome-vfs-module-2.0.pc',
+ 'include/gnome-vfs-2.0/',
+ 'include/gnome-vfs-module-2.0/',
+ ]
+ files_dbus = ['share/dbus-1/services/gnome-vfs-daemon.service']
+ files_daemon = ['libexec/gnome-vfs-daemon%(bext)s']
+ files_modules = [
+ 'lib/gnome-vfs-2.0/modules/libbzip2.so',
+ 'lib/gnome-vfs-2.0/modules/libcomputer.so',
+ 'lib/gnome-vfs-2.0/modules/libdns-sd.so',
+ 'lib/gnome-vfs-2.0/modules/libfile.so',
+ 'lib/gnome-vfs-2.0/modules/libftp.so',
+ 'lib/gnome-vfs-2.0/modules/libgzip.so',
+ 'lib/gnome-vfs-2.0/modules/libhttp.so',
+ 'lib/gnome-vfs-2.0/modules/libnetwork.so',
+ 'lib/gnome-vfs-2.0/modules/libnntp.so',
+ 'lib/gnome-vfs-2.0/modules/libsftp.so',
+ 'lib/gnome-vfs-2.0/modules/libtar.so',
+ 'lib/gnome-vfs-2.0/modules/libvfs-test.so',
+ ]
+ files_etc = [
+ 'etc/gconf/schemas/desktop_default_applications.schemas',
+ 'etc/gconf/schemas/desktop_gnome_url_handlers.schemas',
+ 'etc/gconf/schemas/system_dns_sd.schemas',
+ 'etc/gconf/schemas/system_http_proxy.schemas',
+ 'etc/gconf/schemas/system_smb.schemas',
+ 'etc/gnome-vfs-2.0/modules/default-modules.conf',
+ ]
+
+ def configure(self):
+ super(recipe.Recipe, self).configure()
+ for f in ['programs/Makefile', 'daemon/Makefile',
+ 'modules/Makefile', 'libgnomevfs/Makefile',
+ 'test/Makefile']:
+ shell.replace(os.path.join(self.build_dir, f),
+ {'-DG_DISABLE_DEPRECATED': ''})
diff --git a/recipes/goocanvas.recipe b/recipes/goocanvas.recipe
new file mode 100644
index 0000000..7f14b63
--- /dev/null
+++ b/recipes/goocanvas.recipe
@@ -0,0 +1,17 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'goocanvas'
+ version = '1.0.0'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/goocanvas/1.0/goocanvas-1.0.0.tar.bz2'
+ deps = ['glib', 'atk', 'cairo', 'gtk+', 'pango', 'zlib']
+
+ files_libs = ['libgoocanvas']
+ files_lang = ['goocanvas']
+ files_devel = [
+ 'include/goocanvas-1.0',
+ 'lib/pkgconfig/goocanvas.pc',
+ ]
diff --git a/recipes/gst-rtsp-server-1.0.recipe b/recipes/gst-rtsp-server-1.0.recipe
index 5c1acdb..9bccb7b 100644
--- a/recipes/gst-rtsp-server-1.0.recipe
+++ b/recipes/gst-rtsp-server-1.0.recipe
@@ -6,7 +6,7 @@ class Recipe(recipe.Recipe):
version = '1.0'
licenses = [License.LGPLv2Plus]
config_sh = 'sh ./autogen.sh --noconfigure && ./configure'
- configure_options = "--disable-examples "
+ configure_options = "--disable-examples --enable-static "
remotes = {'upstream': 'git://anongit.freedesktop.org/gstreamer/gst-rtsp-server'}
commit = 'upstream/master'
deps = ['gstreamer-1.0', 'gst-plugins-base-1.0' ]
diff --git a/recipes/gtk.recipe b/recipes/gtk.recipe
index 0320e4d..a316e1b 100644
--- a/recipes/gtk.recipe
+++ b/recipes/gtk.recipe
@@ -53,6 +53,10 @@ class Recipe(recipe.Recipe):
files_lang = ['gtk20', 'gtk20-properties']
+ def _set_flags(self, module_path1=None, module_path2=None, theme_path=None):
+ self.config_sh = 'CFLAGS="%s" ./configure' % \
+ 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):
@@ -75,33 +79,43 @@ class Recipe(recipe.Recipe):
elif self.config.target_platform == Platform.LINUX:
# Can't change CFLAGS and use configure cache
self.can_use_configure_cache = False
- if self.config.target_distro == Distro.DEBIAN and self.config.target_distro_version in [DistroVersion.DEBIAN_SQUEEZE, DistroVersion.UBUNTU_LUCID, DistroVersion.UBUNTU_MAVERICK]:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/gtk-2.0', None, '/usr/share/themes')
- elif self.config.target_distro == Distro.DEBIAN and self.config.target_distro_version in [DistroVersion.UBUNTU_NATTY,
- DistroVersion.UBUNTU_ONEIRIC, DistroVersion.UBUNTU_PRECISE,
- DistroVersion.UBUNTU_QUANTAL, DistroVersion.UBUNTU_RARING]:
+ mod_path1 = '/usr/lib/gtk-2.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]:
if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/gtk-2.0', '/usr/lib/i386-linux-gnu/gtk-2.0', '/usr/share/themes')
+ mod_path2 = '/usr/lib/i386-linux-gnu/gtk-2.0'
elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/gtk-2.0', '/usr/lib/x86_64-linux-gnu/gtk-2.0', '/usr/share/themes')
- elif self.config.target_distro == Distro.DEBIAN and self.config.target_distro_version in [DistroVersion.DEBIAN_WHEEZY, DistroVersion.DEBIAN_JESSIE]:
+ mod_path2 = '/usr/lib/x86_64-linux-gnu/gtk-2.0'
+ # Debian
+ elif self.config.target_distro_version in [DistroVersion.DEBIAN_WHEEZY,
+ DistroVersion.DEBIAN_JESSIE]:
if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/i386-linux-gnu/gtk-2.0', None, '/usr/share/themes')
+ mod_path1 = '/usr/lib/i386-linux-gnu/gtk-2.0'
elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/x86_64-linux-gnu/gtk-2.0', None, '/usr/share/themes')
- elif self.config.target_distro == Distro.REDHAT:
- if self.config.target_distro_version in [DistroVersion.FEDORA_16, DistroVersion.FEDORA_17, DistroVersion.FEDORA_18, DistroVersion.FEDORA_19]:
- if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/gtk-2.0', None, '/usr/share/themes')
- elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib64/gtk-2.0', None, '/usr/share/themes')
- else:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/gtk-2.0', None, '/usr/share/themes')
+ mod_path1 = '/usr/lib/x86_64-linux-gnu/gtk-2.0'
+ # RedHat
+ elif self.config.target_distro_version in [DistroVersion.FEDORA_16,
+ DistroVersion.FEDORA_17,
+ DistroVersion.FEDORA_18,
+ DistroVersion.FEDORA_19,
+ DistroVersion.REDHAT_6,
+ ]:
+ if self.config.target_arch == Architecture.X86_64:
+ mod_path1 = '/usr/lib64/gtk-2.0'
elif self.config.target_distro == Distro.SUSE:
- if self.config.target_arch == Architecture.X86:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib/gtk-2.0', None, '/usr/share/themes')
- elif self.config.target_arch == Architecture.X86_64:
- self.config_sh = 'CFLAGS="%s" ./configure' % self._gtk_flags('/usr/lib64/gtk-2.0', None, '/usr/share/themes')
+ if self.config.target_arch == Architecture.X86_64:
+ mod_path1 = '/usr/lib64/gtk-2.0'
else:
- from cerbero.errors import FatalError
raise FatalError(_("Add specific for other Linux distributions here"))
+ self._set_flags(mod_path1, mod_path2, themes_path)
diff --git a/recipes/libidl.recipe b/recipes/libidl.recipe
new file mode 100644
index 0000000..8cc580b
--- /dev/null
+++ b/recipes/libidl.recipe
@@ -0,0 +1,8 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+class Recipe(recipe.Recipe):
+ name = 'libIDL'
+ version = '0.8.14'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-0.8.14.tar.bz2'
diff --git a/recipes/libsoup.recipe b/recipes/libsoup.recipe
index 400a8b7..e79ba7d 100644
--- a/recipes/libsoup.recipe
+++ b/recipes/libsoup.recipe
@@ -28,7 +28,8 @@ class Recipe(recipe.Recipe):
DistroVersion.FEDORA_16,
DistroVersion.FEDORA_17,
DistroVersion.FEDORA_18,
- DistroVersion.FEDORA_19]:
+ DistroVersion.FEDORA_19,
+ ]:
self.deps += [ 'glib-networking' ]
if self.config.target_platform in [Platform.WINDOWS, Platform.IOS]:
self.configure_options += ' --disable-tls-check'
diff --git a/recipes/orbit2.recipe b/recipes/orbit2.recipe
new file mode 100644
index 0000000..7dd898b
--- /dev/null
+++ b/recipes/orbit2.recipe
@@ -0,0 +1,21 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+from cerbero.utils import shell
+
+
+class Recipe(recipe.Recipe):
+ name = 'orbit2'
+ version = '2.14.19'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/ORBit2/2.14/ORBit2-2.14.19.tar.bz2'
+ append_env = {'CFLAGS': '-Wno-error'}
+ autoreconf = True
+ deps = ['glib', 'libIDL']
+
+
+ def configure(self):
+ shell.replace(os.path.join(self.build_dir, 'configure.in'),
+ { '-DG_DISABLE_DEPRECATED': ''})
+ shell.replace(os.path.join(self.build_dir, 'linc2', 'src', 'Makefile.am'),
+ {'\\\n\t-DG_DISABLE_DEPRECATED': ''})
+ super(recipe.Recipe, self).configure()
diff --git a/recipes/pitivi.recipe b/recipes/pitivi.recipe
new file mode 100644
index 0000000..2f5522c
--- /dev/null
+++ b/recipes/pitivi.recipe
@@ -0,0 +1,16 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+class Recipe(recipe.Recipe):
+ name = 'pitivi'
+ version = '0.15.2'
+ licenses = [License.GPLv2Plus]
+ remotes = {'origin': 'git://git.gnome.org/pitivi'}
+ autoreconf = True
+ autoreconf_sh = 'sh autogen.sh'
+ commit = 'RELEASE-0_15_2'
+ deps = ['gnome-doc-utils', 'pygoocanvas', 'pygtk',
+ 'gst-python', 'pyxdg', 'glade', 'gnonlin',
+ 'frei0r-plugins']
+
+ files_lang = ['pitivi']
+ files_pitivi = ['lib/python/pitivi', 'share/pitivi', 'share/applications/pitivi.desktop']
diff --git a/recipes/py2cairo.py b/recipes/py2cairo.py
new file mode 100644
index 0000000..70e4f7d
--- /dev/null
+++ b/recipes/py2cairo.py
@@ -0,0 +1,14 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'py2cairo'
+ version = '1.10.0'
+ licenses = [License.GPLv2]
+ stype = SourceType.TARBALL
+ url = 'http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2'
+ deps = ['cairo']
+
+ files_python = ['site-packages/cairo/_cairo%(pext)s',
+ 'site-packages/cairo/__init__.py',
+ ]
diff --git a/recipes/pygobject.recipe b/recipes/pygobject.recipe
index 06b698c..87a1a2a 100644
--- a/recipes/pygobject.recipe
+++ b/recipes/pygobject.recipe
@@ -13,6 +13,8 @@ class Recipe(recipe.Recipe):
if self.config.target_platform == Platform.WINDOWS:
self.files_mainlib = ['bin/libpyglib-2.0-python.pyd']
self.files_libs = []
+ if self.config.target_distro_version == DistroVersion.REDHAT_6:
+ self.append_env = {'CFLAGS': ' -D_GNU_SOURCE=1'}
def post_install(self):
import shutil
diff --git a/recipes/pygoocanvas.recipe b/recipes/pygoocanvas.recipe
new file mode 100644
index 0000000..35584eb
--- /dev/null
+++ b/recipes/pygoocanvas.recipe
@@ -0,0 +1,15 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+
+
+class Recipe(recipe.Recipe):
+ name = 'pygoocanvas'
+ version = '0.14.1'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://ftp.gnome.org/pub/GNOME/sources/pygoocanvas/0.14/pygoocanvas-0.14.1.tar.bz2'
+ deps = ['glib', 'goocanvas', 'pygobject', 'pygtk', 'py2cairo']
+
+ files_devel = ['lib/pkgconfig/pygoocanvas.pc']
+ files_python = ['site-packages/goocanvasmodule%(pext)s']
+
+
diff --git a/recipes/pyxdg.recipe b/recipes/pyxdg.recipe
new file mode 100644
index 0000000..504660d
--- /dev/null
+++ b/recipes/pyxdg.recipe
@@ -0,0 +1,31 @@
+# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
+from cerbero.utils import shell
+
+
+class Recipe(recipe.Recipe):
+ name = 'pyxdg'
+ version = '0.25'
+ licenses = [License.LGPL]
+ stype = SourceType.TARBALL
+ url = 'http://people.freedesktop.org/~takluyver/pyxdg-0.25.tar.gz'
+ btype = BuildType.CUSTOM
+
+ files_python = [
+ 'site-packages/xdg/BaseDirectory.pyc',
+ 'site-packages/xdg/Config.pyc',
+ 'site-packages/xdg/DesktopEntry.pyc',
+ 'site-packages/xdg/Exceptions.pyc',
+ 'site-packages/xdg/IconTheme.pyc',
+ 'site-packages/xdg/IniFile.pyc',
+ 'site-packages/xdg/Locale.pyc',
+ 'site-packages/xdg/Menu.pyc',
+ 'site-packages/xdg/MenuEditor.pyc',
+ 'site-packages/xdg/Mime.pyc',
+ 'site-packages/xdg/RecentFiles.pyc',
+ 'site-packages/xdg/__init__.pyc',
+ 'site-packages/xdg/util.pyc',
+ ]
+
+ def install(self):
+ shell.call('python setup.py install --prefix=%s' %
+ self.config.prefix, self.build_dir)
diff --git a/recipes/toolchain/all.recipe b/recipes/toolchain/all.recipe
new file mode 100644
index 0000000..da75732
--- /dev/null
+++ b/recipes/toolchain/all.recipe
@@ -0,0 +1,6 @@
+class Recipe(recipe.Recipe):
+ name = 'toolchain'
+ version = '4.7.3'
+ stype = SourceType.CUSTOM
+ btype = BuildType.CUSTOM
+ deps = ['gcc', 'gendef']