diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2013-07-01 09:17:31 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2013-07-01 09:17:31 +0200 |
commit | bc5403e423a30a892b61373aee88c6eb9a40044f (patch) | |
tree | 5e296376851d0548601407a3d515ae1b2647b903 | |
parent | 2176368d92b651603af225902b4cddd858461847 (diff) | |
parent | debe50411065467f44177495179a9881974d6495 (diff) |
Merge branch 'master' into upstream
Conflicts:
recipes/gst-rtsp-server-1.0.recipe
34 files changed, 412 insertions, 81 deletions
diff --git a/cerbero/bootstrap/build_tools.py b/cerbero/bootstrap/build_tools.py index 581d9495..f7978856 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 89a41e67..afcf99ac 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 889b6b22..85dd689a 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 6eff9ae7..cabb5aa6 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 43cde961..15c146af 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 c7eeb177..0e1c4110 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 81470e12..8d757083 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 15028ac6..8e232169 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 58f8067f..bdcab969 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 20930b89..e8e1fbf9 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 5b2fe0f7..050d93ff 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 4f8043f1..6dba061e 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 2e4374a1..173be5a8 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 7da0171f..1e7aaf94 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 e0cfd232..4b768c01 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 00000000..edee7a71 --- /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 00000000..528639a5 --- /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 00000000..a7afb0c0 --- /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 b54a2ba9..42fd2e9b 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 00000000..c66ce27c --- /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 00000000..5e5b32a8 --- /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 00000000..f4b86192 --- /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 00000000..7f14b633 --- /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 5c1acdbb..9bccb7bd 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 0320e4db..a316e1b5 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 00000000..8cc580b4 --- /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 400a8b72..e79ba7d2 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 00000000..7dd898b7 --- /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 00000000..2f5522c9 --- /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 00000000..70e4f7d2 --- /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 06b698c1..87a1a2a8 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 00000000..35584eb4 --- /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 00000000..504660d5 --- /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 00000000..da757324 --- /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'] |