From: Yan Yin Date: Wed, 9 Oct 2013 02:23:39 +0000 (+0800) Subject: add packaging files X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c834b1f3071d370f1867fab90b638808bdd0cf1e;p=platform%2Fupstream%2Fgstreamer.git add packaging files Change-Id: I6bf89cdea193498b52f3ed27a6f52c342f5590c9 --- diff --git a/.gbs.conf b/.gbs.conf new file mode 100644 index 0000000000..fa9fdc593b --- /dev/null +++ b/.gbs.conf @@ -0,0 +1,3 @@ +[general] +upstream_branch = upstream +upstream_tag = ${upstreamversion} diff --git a/.gitignore b/.gitignore index d5ae2734da..52c0b9db73 100644 --- a/.gitignore +++ b/.gitignore @@ -17,7 +17,6 @@ gstreamer-[0-9]* gstreamer-config gstreamer.pc gstreamer-uninstalled.pc -gstreamer.spec gst-element-check-*.m4 libtool ltconfig diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf new file mode 100644 index 0000000000..10121bfbff --- /dev/null +++ b/packaging/baselibs.conf @@ -0,0 +1,2 @@ +gstreamer +libgstreamer diff --git a/packaging/common.tar.bz2 b/packaging/common.tar.bz2 new file mode 100644 index 0000000000..3470760e04 Binary files /dev/null and b/packaging/common.tar.bz2 differ diff --git a/packaging/gitmodules.sh b/packaging/gitmodules.sh new file mode 100755 index 0000000000..71a66cd869 --- /dev/null +++ b/packaging/gitmodules.sh @@ -0,0 +1,24 @@ +#! /bin/sh +# @author: Philippe Coval +# @description: manage git submodules with git-build-package-rpm + +set -x +set -e + +cat .gitmodules || return 1 + + +git submodule status | awk '{ print $2 }' | while read dir ; do + name=$(basename "$dir" ) + echo "name=" + echo "dir=$dir" + git submodule init + git submodule update + + tar cjvf "./packaging/${name}.tar.bz2" "${dir}" + + cat< upstream/1.0.6@8cb0dd3 +- Update to 1.0.6 + +* Mon Mar 18 2013 Anas Nashif submit/trunk/20130123.171619@c9f5335 +- Fixed package groups + +* Wed Jan 23 2013 Anas Nashif upstream/1.0.5@3de29c4 +- Update to 1.0.5 diff --git a/packaging/gstreamer.macros b/packaging/gstreamer.macros new file mode 100644 index 0000000000..d8662ff179 --- /dev/null +++ b/packaging/gstreamer.macros @@ -0,0 +1,4 @@ +%__gstreamer_provides %{_rpmconfigdir}/gstreamer-provides +%__gstreamer_path libgst +%__gstreamer_magic ELF.*shared object +%__gstreamer_flags magic_and_path diff --git a/packaging/gstreamer.manifest b/packaging/gstreamer.manifest new file mode 100644 index 0000000000..017d22d3af --- /dev/null +++ b/packaging/gstreamer.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/packaging/gstreamer.prov b/packaging/gstreamer.prov new file mode 100644 index 0000000000..304da2fa21 --- /dev/null +++ b/packaging/gstreamer.prov @@ -0,0 +1,47 @@ +#!/bin/sh +# +# Script to install in: +# /usr/lib/rpm/redhat/find-provides.d +# +# Transform GStreamer auto install info into RPM provides +# +# Author: Bastien Nocera +# Based on other provides scripts from RPM +# + +# We need a way to disable automatic gst provides. +# Simply "%define SKIP_GSTPROVIDES 1" anywhere in the spec file +grep -q -E '^[^#]?%define\s+SKIP_GSTPROVIDES\s.*[^0\s].*' "$RPMBUILD_SPECFILE" && exit 0 + +filelist=`grep -e '.so$' | sed "s/['\"]/\\\&/g"` + +# --- Alpha does not mark 64bit dependencies• +case `uname -m` in + alpha*) mark64="" ;; + *) mark64="()(64bit)" ;; +esac + +solist=$(echo $filelist | grep "libgst" | \ + xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1 ) + +function getmark() +{ + lib64=`if file -L $1 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo -n "$mark64"; fi` +} + +function libdir() +{ + buildlibdir=`dirname $1` + buildlibdir=`dirname $buildlibdir` +} + +for so in $solist ; do + getmark $so + libdir $so + LD_LIBRARY_PATH=$buildlibdir gst-inspect-1.0 --print-plugin-auto-install-info --rpm $so 2> /dev/null | while read line ; do + echo -n "$line"; + echo -n "$lib64" + echo + done +done diff --git a/packaging/gstreamer.spec b/packaging/gstreamer.spec new file mode 100644 index 0000000000..17fed744d9 --- /dev/null +++ b/packaging/gstreamer.spec @@ -0,0 +1,183 @@ +%bcond_with introspection + +Name: gstreamer +Version: 1.2.0 +Release: 0 +%define gst_branch 1.0 +Summary: Streaming-Media Framework Runtime +License: LGPL-2.1+ +Group: Multimedia/Framework +Url: http://gstreamer.freedesktop.org/ +Source0: http://download.gnome.org/sources/gstreamer/1.0/%{name}-%{version}.tar.xz +Source1: gstreamer.macros +Source2: gstreamer.prov +Source99: baselibs.conf +Source100: common.tar.bz2 +Source1001: gstreamer.manifest +BuildRequires: bison +BuildRequires: gettext-tools +BuildRequires: check-devel +BuildRequires: fdupes +BuildRequires: flex +BuildRequires: glib2-devel >= 2.32.0 +BuildRequires: libtool +BuildRequires: gst-common +BuildRequires: libxml2-devel +%if %{with introspection} +BuildRequires: gobject-introspection-devel >= 1.31.1 +%endif +Requires: libgstreamer >= %{version} + +%description +GStreamer is a streaming-media framework, based on graphs of filters +which operate on media data. Applications using this library can do +anything from real-time sound processing to playing videos, and just +about anything else media-related. Its plug-in-based architecture +means that new data types or processing capabilities can be added by +installing new plug-ins. + +%package -n libgstreamer +Summary: Streaming-Media Framework Runtime +Group: Multimedia/Framework +# We want to have core modules installed: +Requires: %{name} + +%description -n libgstreamer +GStreamer is a streaming-media framework, based on graphs of filters +which operate on media data. Applications using this library can do +anything from real-time sound processing to playing videos, and just +about anything else media-related. Its plug-in-based architecture +means that new data types or processing capabilities can be added by +installing new plug-ins. + +%package -n typelib-Gst +Summary: Streaming-Media Framework Runtime -- Introspection bindings +Group: Multimedia/Framework + +%description -n typelib-Gst +GStreamer is a streaming-media framework, based on graphs of filters +which operate on media data. Applications using this library can do +anything from real-time sound processing to playing videos, and just +about anything else media-related. Its plug-in-based architecture +means that new data types or processing capabilities can be added by +installing new plug-ins. + +This package provides the GObject Introspection bindings for GStreamer. + +%package utils +Summary: Streaming-Media Framework Runtime +Group: Multimedia/Framework +Provides: gstreamer:%{_bindir}/gst-launch-%{gst_branch} = %{version} +# Symbol for unversioned wrappers: +Provides: gstreamer-utils_versioned = %{version} + +%description utils +GStreamer is a streaming-media framework, based on graphs of filters +which operate on media data. Applications using this library can do +anything from real-time sound processing to playing videos, and just +about anything else media-related. Its plug-in-based architecture +means that new data types or processing capabilities can be added by +installing new plug-ins. + +%package devel +Summary: Include Files and Libraries mandatory for Development +Group: Development/Libraries +Requires: %{name} = %{version} +# gstreamer-utils is required for the gstreamer-provides rpm magic. +Requires: gstreamer-utils = %{version} +Requires: libgstreamer = %{version} +%if %{with introspection} +Requires: typelib-Gst = %{version} +%endif + +%description devel +This package contains all necessary include files and libraries needed +to develop applications that require these. + +%lang_package + +%prep +%setup -q -n gstreamer-%{version} +%setup -q -T -D -a 100 +cp %{SOURCE1001} . + +%build +# FIXME: GTKDOC_CFLAGS, GST_OBJ_CFLAGS: +# Silently ignored compilation of uninstalled gtk-doc scanners without RPM_OPT_FLAGS. +export V=1 +NOCONFIGURE=1 ./autogen.sh +export CFLAGS="%{optflags} -fno-strict-aliasing" +%configure\ +%if %{with introspection} + --enable-introspection\ +%endif + --disable-static +make %{?_smp_mflags} + +%install +%make_install +mkdir -p %{buildroot}%{_datadir}/gstreamer-%{gst_branch}/presets +mkdir -p %{buildroot}%{_docdir}/%{name} +%find_lang %{name}-%{gst_branch} +mv %{name}-%{gst_branch}.lang %{name}.lang +rm -rf %{buildroot}%{_datadir}/gtk-doc +rm -rf %{buildroot}%{_docdir}/%{name}/manual +rm -rf %{buildroot}%{_docdir}/%{name}/pwg +mkdir -p %{buildroot}%{_datadir}/gstreamer-%{gst_branch}/presets +%__install -m644 -D %{S:1} %{buildroot}%{_libexecdir}/rpm/fileattrs/gstreamer.attr +%__install -m755 -D %{S:2} %{buildroot}%{_libexecdir}/rpm/gstreamer-provides +%fdupes %{buildroot} + + +%post -n libgstreamer -p /sbin/ldconfig + +%postun -n libgstreamer -p /sbin/ldconfig + +%files +%manifest %{name}.manifest +%defattr(-, root, root) +%license COPYING +%dir %{_datadir}/gstreamer-%{gst_branch} +%dir %{_datadir}/gstreamer-%{gst_branch}/presets +%dir %{_libdir}/gstreamer-%{gst_branch} +%{_libdir}/gstreamer-%{gst_branch}/*.so +%dir %{_libexecdir}/gstreamer-%{gst_branch} +%{_libexecdir}/gstreamer-%{gst_branch}/gst-plugin-scanner + +%files -n libgstreamer +%manifest %{name}.manifest +%defattr(-, root, root) +%{_libdir}/*.so.* + + +%if %{with introspection} +%files -n typelib-Gst +%manifest %{name}.manifest +%defattr(-, root, root) +%{_libdir}/girepository-1.0/Gst-1.0.typelib +%{_libdir}/girepository-1.0/GstBase-1.0.typelib +%{_libdir}/girepository-1.0/GstCheck-1.0.typelib +%{_libdir}/girepository-1.0/GstController-1.0.typelib +%{_libdir}/girepository-1.0/GstNet-1.0.typelib +%endif + +%files utils +%manifest %{name}.manifest +%defattr(-, root, root) +%{_bindir}/*-%{gst_branch} +%doc %{_mandir}/man?/*-%{gst_branch}.* + +%files devel +%manifest %{name}.manifest +%defattr(-, root, root) +%{_datadir}/aclocal/*.m4 +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc +%{_libexecdir}/rpm/gstreamer-provides +%{_libexecdir}/rpm/fileattrs/gstreamer.attr +%if %{with introspection} +%{_datadir}/gir-1.0/*.gir +%endif + +%changelog