From eeb94ce4db96de50fc96f0616eb5b581cd62f123 Mon Sep 17 00:00:00 2001 From: Russell King Date: Fri, 12 Jun 2015 15:54:35 +0100 Subject: Add debian build files Add the debian build files to allow building for Ubuntu systems. Signed-off-by: Russell King --- .gitignore | 12 ++++ debian/HACKING.Debian | 91 +++++++++++++++++++++++++++++ debian/README.Debian | 64 ++++++++++++++++++++ debian/build-deps.in | 25 ++++++++ debian/changelog | 7 +++ debian/compat | 1 + debian/control | 54 +++++++++++++++++ debian/control.in | 54 +++++++++++++++++ debian/copyright | 30 ++++++++++ debian/gstreamer-xvbo.install | 1 + debian/maint | 12 ++++ debian/mk.control | 15 +++++ debian/rules | 133 ++++++++++++++++++++++++++++++++++++++++++ debian/watch | 2 + 14 files changed, 501 insertions(+) create mode 100644 debian/HACKING.Debian create mode 100644 debian/README.Debian create mode 100644 debian/build-deps.in create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/control.in create mode 100644 debian/copyright create mode 100644 debian/gstreamer-xvbo.install create mode 100644 debian/maint create mode 100644 debian/mk.control create mode 100755 debian/rules create mode 100644 debian/watch diff --git a/.gitignore b/.gitignore index 55375852..c2a9b501 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,15 @@ Makefile.in Makefile *.gir *.typelib + +debian/*.after +debian/*.before +debian/*.log +debian/*.substvars +debian/build-deps +debian/gstreamer*/ +debian/gstreamer[0-9]*.install +debian/files +debian/tmp +debian/stamp* +*.cdbs-orig diff --git a/debian/HACKING.Debian b/debian/HACKING.Debian new file mode 100644 index 00000000..ac74f93a --- /dev/null +++ b/debian/HACKING.Debian @@ -0,0 +1,91 @@ +Hacking GStreamer for Debian +============================ + +An addition to the README.Debian that has Debian package hacking notes. + +Everything should now be versioned. + +- To update dependencies edit debian/build-deps.in + +- To rebuild package files from .in files: + + debian/rules maint + +- After a version update to check for missing files run: + + debian/maint missing + debian/maint missing-libs + debian/maint missing-so + +- To update package files edit gstreamer-foo then rebuild package files. This + will generate the gstreamerX.Y-foo file. Also update debian/rules and + debian/control.in as needed. + +- The packaging tries to stay close of upstream choice. gstreamerX.Y-misc has + most of the files, extra packages are made for the sinks and by group of + depends (gnome, x, ...) + +- Provide gstreamerX.Y-videosink and gstreamerX.Y-audiosink as needed. + +- All interfaces and generic libraries go in libgstreamer-plugins, libraries + with external dependencies have their own package such as libgstreamer-gconf. + +- Applications go in gstreamerX.Y-plugins-base-apps + + +File listing +------------ + +build-deps: + - generated from "build-deps.in" in "rules + debian/build-deps:": + * "build-deps.in" lists build-depends for Debian main packages + - serves generation with "control.in" and "mk.control" of "control" in + "rules debian/control::" +build-deps.in: + - lists build-depends for Debian main packages + - serves generation with "extra deps" of "build-deps" in "rules + debian/build-deps:" +changelog: handled classically +compat: handled classically +control: + - generated for "rules maint" + - generated from "control.in" and "build-deps" in "rules debian/control::": + * "build-deps" lists build-depends to be inserted in "control + Build-Depends:" + * "control.in" serves of template for package descriptions of Debian main + packages and makes use of special stanzas enclosed in "@" such as + "@GST_ABI" which are replaced via sed in "rules debian/control::" +control.in: + - serves generation of "control" in "rules debian/control::" via "mk.control" + called in "rules debian/control::" + - template for package descriptions of Debian main packages and makes use of + special stanzas enclosed in "@" such as "@GST_ABI" which are replaced via + sed in "rules debian/control::" +copyright: handled classically +gstreamer-$plugin.install: + - serves the generation of $gst_pkgname-$plugin.install (for example + gstreamer-alsa.install serves the generation of gstreamerX.Y-alsa.install) in + "rules pre-build::" via dynamic "@"-enclosed variables replacement + - some plugins are handled specially and some special variables are available +gstreamer-plugins-base-apps.install: this isn't really a plugin, but the + gstreamerX.Y-plugins-base-apps package +gstreamer-plugins-base-apps.manpages: man pages for the gstreamerX.Y-plugins-base-apps + package +HACKING.Debian: this file +libgstreamer-plugins-base-dev.install libgstreamer-plugins-base.install: handled similarly has gstreamerX.Y-plugins-base-apps +maint: makefile wrapping some targets of "rules" with some sh filtering +mk.control: + - Perl script serving the generation of "control" which reads "build-deps" + and "control.in", and replaces the "BUILDDEPS" stanza with the build-deps +patches: handled classically +README.Debian: handled classically +rules: handled classically, with special targets "maint:", and + "debian/build-deps:" +watch: handled classically + +This file is the initial work of: +David I. Lehn Tue, 13 Apr 2004 21:28:55 -0400 +and had some additions by: +Loic Minier Sun, 19 Jun 2005 19:04:58 +0200 +Sebastien Bacher Wed, 14 Dec 2005 17:00:21 +0100 diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 00000000..5149382f --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,64 @@ +Gstreamer for Debian +==================== +This package contains the GStreamer plugin distribution. + +More information can be found at http://gstreamer.net/ + +As of GStreamer plugins version 0.8.0 all packages are versioned and +parallel installable with other releases with other major.minor +versions. For example, 0.8.x series is versioned as 0.8 and parallel +installable with both unversioned 0.6.x series and future 0.9.x and +beyond. The version part is represented as VER below. + +GStreamer plugins are split into a number of packages: + +plugins without external dependencies: + + gstreamerVER-misc many independent plugins + +plugins with external dependencies: + + gstreamerVER-alsa + gstreamerVER-gnomevfs + gstreamerVER-x + +libraries and library plugins: + + libgstreamer-plugins-baseVER-# various libs + libgstreamer-plugins-baseVER-dev development files for above package + +documentation: + + gstreamerVER-plugins-base-doc html documentation + +applications: + + gstreamerVER-plugins-base-apps small script apps to using gst-launch + + +Notes +===== + +ChangeLog +--------- + +The upstream ChangeLog is not included in all the plugin packages due to its +large size. Please see upstream sources if you are interested in detailed +source changes. + +External tools support +---------------------- + +Your favorite codec isn't wrapped as a plugin? External programs can be +used to process streams. Take a look at "pipefilter" element or try +something like this (untested): + + $ mkfifo fifo + $ gst-launch myaudiosrc ! filesink location=fifo & + $ cat fifo | my_encoder > output_file + + +David I. Lehn Tue, 23 Mar 2004 04:38:37 -0500 + +update: +Sebastien Bacher Wed, 14 Dec 2005 17:00:21 +0100 diff --git a/debian/build-deps.in b/debian/build-deps.in new file mode 100644 index 00000000..4efc3c44 --- /dev/null +++ b/debian/build-deps.in @@ -0,0 +1,25 @@ +@GST_LIB_DEV_DEP@ +@GST_EXTRA_BUILD_DEPENDS@ +autotools-dev +cdbs (>= 0.4.20) +debhelper (>= 5) +gnome-pkg-tools (>= 0.7) +pkg-config (>= 0.11.0) +libxv-dev (>= 6.8.2.dfsg.1-3) +libxt-dev (>= 6.8.2.dfsg.1-3) +libglib2.0-dev (>= 2.18.0) +zlib1g-dev (>= 1:1.1.4) +gtk-doc-tools +type-handling (>= 0.2.14) +gstreamer-tools (>= 0.10.14) +dpkg-dev (>= 1.14.13) +lsb-release +iso-codes +libgtk2.0-dev (>= 2.12.0) +libglib2.0-doc +gstreamer0.10-doc +libgirepository1.0-dev (>= 0.6.3) +gobject-introspection (>= 0.6.5-3) +libbmm-dev +libgstreamer-plugins-base@GST_ABI@-dev +libdrm-dev diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..7d5d799c --- /dev/null +++ b/debian/changelog @@ -0,0 +1,7 @@ +gst-plugins-xvbo0.10 (0.10.0) precise; urgency=low + + * Strip out extraneous gst-plugins-base code + * Rename to gst-plugins-xvbo + * Add I422 and NV16 support + + -- Russell King Thu, 11 Jun 2015 12:03:08 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 00000000..7ed6ff82 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..8ba77f26 --- /dev/null +++ b/debian/control @@ -0,0 +1,54 @@ +Source: gst-plugins-xvbo0.10 +Section: libs +Priority: optional +Maintainer: Russell King +XSBC-Original-Maintainer: Li Li +Uploaders: Loic Minier , + Sebastien Bacher , + Sebastian Dröge , + Sjoerd Simons +Build-Depends: libgstreamer0.10-dev (>= 0.10.26.3), , autotools-dev, cdbs (>= 0.4.20), debhelper (>= 5), gnome-pkg-tools (>= 0.7), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2.dfsg.1-3), libxt-dev (>= 6.8.2.dfsg.1-3), libglib2.0-dev (>= 2.18.0), zlib1g-dev (>= 1:1.1.4), gtk-doc-tools, type-handling (>= 0.2.14), gstreamer-tools (>= 0.10.14), dpkg-dev (>= 1.14.13), lsb-release, iso-codes, libgtk2.0-dev (>= 2.12.0), libglib2.0-doc, gstreamer0.10-doc, libgirepository1.0-dev (>= 0.6.3), gobject-introspection (>= 0.6.5-3), libbmm-dev, libgstreamer-plugins-base0.10-dev, libdrm-dev +Standards-Version: 3.8.4 +Homepage: http://gstreamer.freedesktop.org + +Package: gstreamer0.10-xvbo +Architecture: armel armhf +Section: libs +Depends: ${misc:Depends}, + ${shlibs:Depends} +XB-GStreamer-Version: ${gstreamer:Version} +XB-GStreamer-Elements: ${gstreamer:Elements} +XB-GStreamer-URI-Sources: ${gstreamer:URISources} +XB-GStreamer-URI-Sinks: ${gstreamer:URISinks} +XB-GStreamer-Encoders: ${gstreamer:Encoders} +XB-GStreamer-Decoders: ${gstreamer:Decoders} +Provides: ${gstreamer:Provides} +Description: GStreamer plugins for X11 video output with XVBO and BMM + 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 plugin-based architecture means + that new data types or processing capabilities can be added simply by + installing new plug-ins. + . + This package contains the GStreamer plugins for X11 video output for + Xv extension extended with the XVBO format extension for BMM zero + copy playback. + +Package: gstreamer0.10-xvbo-dbg +Architecture: armel armhf +Multi-Arch: same +Section: debug +Priority: extra +Depends: ${misc:Depends}, + gstreamer0.10-xvbo (= ${binary:Version}) +Description: GStreamer plugins for X11 video output with XVBO and BMM + 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 plugin-based architecture means + that new data types or processing capabilities can be added simply by + installing new plug-ins. + . + This package contains debug GStreamer plugins for X11 video output, and + is not needed for day to day use. It can be safely removed if installed. diff --git a/debian/control.in b/debian/control.in new file mode 100644 index 00000000..1c56bd50 --- /dev/null +++ b/debian/control.in @@ -0,0 +1,54 @@ +Source: gst-plugins-xvbo@GST_ABI@ +Section: libs +Priority: optional +Maintainer: Russell King +XSBC-Original-Maintainer: Li Li +Uploaders: Loic Minier , + Sebastien Bacher , + Sebastian Dröge , + Sjoerd Simons +Build-Depends: BUILDDEPS +Standards-Version: 3.8.4 +Homepage: http://gstreamer.freedesktop.org + +Package: @GST_PKGNAME@-xvbo +Architecture: armel armhf +Section: libs +Depends: ${misc:Depends}, + ${shlibs:Depends} +XB-GStreamer-Version: ${gstreamer:Version} +XB-GStreamer-Elements: ${gstreamer:Elements} +XB-GStreamer-URI-Sources: ${gstreamer:URISources} +XB-GStreamer-URI-Sinks: ${gstreamer:URISinks} +XB-GStreamer-Encoders: ${gstreamer:Encoders} +XB-GStreamer-Decoders: ${gstreamer:Decoders} +Provides: ${gstreamer:Provides} +Description: GStreamer plugins for X11 video output with XVBO and BMM + 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 plugin-based architecture means + that new data types or processing capabilities can be added simply by + installing new plug-ins. + . + This package contains the GStreamer plugins for X11 video output for + Xv extension extended with the XVBO format extension for BMM zero + copy playback. + +Package: @GST_PKGNAME@-xvbo-dbg +Architecture: armel armhf +Multi-Arch: same +Section: debug +Priority: extra +Depends: ${misc:Depends}, + @GST_PKGNAME@-xvbo (= ${binary:Version}) +Description: GStreamer plugins for X11 video output with XVBO and BMM + 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 plugin-based architecture means + that new data types or processing capabilities can be added simply by + installing new plug-ins. + . + This package contains debug GStreamer plugins for X11 video output, and + is not needed for day to day use. It can be safely removed if installed. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..4ff97564 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,30 @@ +This package was debianized by David I. Lehn on +Mon, 15 Jan 2001 18:21:37 -0500. + +It was downloaded from http://gstreamer.net/ + +Upstream Authors: + + Erik Walthinsen + Wim Taymans + Richard Boulton + and many more... + +Copyright: + + This package is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian GNU/Linux systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL'. diff --git a/debian/gstreamer-xvbo.install b/debian/gstreamer-xvbo.install new file mode 100644 index 00000000..85dc7902 --- /dev/null +++ b/debian/gstreamer-xvbo.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/*/gstreamer-@GST_ABI@/*.so diff --git a/debian/maint b/debian/maint new file mode 100644 index 00000000..d3f1578e --- /dev/null +++ b/debian/maint @@ -0,0 +1,12 @@ +#!/usr/bin/make -f + +missing: + make -f debian/rules list-missing + +missing-so: + make -f debian/rules list-missing | grep so$$ | cut -c 2- + +missing-libs: + for i in `make -f debian/rules list-missing | grep so$$ | cut -c 2-`; do echo "=== $$i ==="; ldd debian/tmp/$$i; echo; done + +.PHONY: missing missing-so missing-libs diff --git a/debian/mk.control b/debian/mk.control new file mode 100644 index 00000000..c59ef757 --- /dev/null +++ b/debian/mk.control @@ -0,0 +1,15 @@ +#!/usr/bin/perl -w + +open BUILDDEPS, "debian/build-deps"; +@builddeplist = ; +close BUILDDEPS; + +chomp(@builddeplist); +$builddeps = join(", ", @builddeplist); + +open CONTROLIN, "debian/control.in"; + +while(){ + s/BUILDDEPS/$builddeps/; + print; +} diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..583fb65e --- /dev/null +++ b/debian/rules @@ -0,0 +1,133 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/gnome.mk +include /usr/share/cdbs/1/rules/utils.mk +-include /usr/share/cdbs/1/rules/autoreconf.mk +include /usr/share/gnome-pkg-tools/1/rules/clean-la.mk + +export HOME=$(CURDIR)/fake-home + +CFLAGS += -Wno-error +CXXFLAGS += -Wno-error +LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed +DEB_MAKE_CHECK_TARGET = check || true + +# upstream version with epoch +gst_version := $(shell echo $(DEB_VERSION) | cut -d '-' -f 1) +gst_major := 0 +gst_minor := 10 +gst_abi := $(gst_major).$(gst_minor) +# gstreamer library package names +gst_lib := libgstreamer$(gst_abi)-0 +gst_lib_dev := libgstreamer$(gst_abi)-dev +# what gstreamer version is needed +gst_lib_dev_dep := $(gst_lib_dev) (>= 0.10.26.3) + +gst_pkgname := gstreamer$(gst_abi) + +# debug package +DEB_DH_STRIP_ARGS += --dbg-package=$(gst_pkgname)-xvbo-dbg + +DEB_COMPRESS_EXCLUDE = .sgml .devhelp .ps .pdf + +# disable all CPU specific optimizations in commands launched by this Makefile +# using liboil; this is to work around liboil related build failures which +# are not specially interesting to catch on buildds as these might run very +# specific hardware +OIL_CPU_FLAGS := 0 +export OIL_CPU_FLAGS + +# The plugins are basically the same. +# Link special names to a template file. +# still need "*.install" to be done by hand + +PLUGINS = xvbo + +# Let's decide the package name and url depending on the distribution +DISTRO = "$(shell dpkg-vendor --query vendor)" + +GST_PACKAGE_NAME := "GStreamer XVBO Plugin (unknown Debian derivative)" +GST_PACKAGE_ORIGIN="http://packages.qa.debian.org/gst-plugins-xvbo$(gst_abi)" + +ifeq ($(DISTRO),"Debian") +GST_PACKAGE_NAME := "GStreamer XVBO Plugin (Debian)" +GST_PACKAGE_ORIGIN="http://packages.qa.debian.org/gst-plugins-xvbo$(gst_abi)" +endif + +ifeq ($(DISTRO),"Ubuntu") +GST_PACKAGE_NAME := "GStreamer XVBO Plugin (Ubuntu)" +GST_PACKAGE_ORIGIN="https://launchpad.net/distros/ubuntu/+source/gst-plugins-xvbo$(gst_abi)" +endif + + +# setup links for packages +pre-build:: + for p in $(PLUGINS); do \ + rm -f debian/$(gst_pkgname)-$$p.install; \ + sed \ + -e 's/@GST_ABI@/$(gst_abi)/g' \ + debian/gstreamer-$$p.install \ + >debian/$(gst_pkgname)-$$p.install; \ + done + +maint: debian/control + +debian/build-deps: debian/build-deps.in debian/rules + cat $< >$@ + +debian/control:: debian/control.in debian/build-deps debian/mk.control debian/rules debian/changelog force + perl debian/mk.control | \ + sed 's/@GST_VERSION@/$(gst_version)/g' | \ + sed 's/@GST_ABI@/$(gst_abi)/g' | \ + sed 's/@GST_PKGNAME@/$(gst_pkgname)/g' | \ + sed 's/@GST_LIB@/$(gst_lib)/g' | \ + sed 's/@GST_LIB_DEV@/$(gst_lib_dev)/g' | \ + sed 's/@GST_LIB_DEV_DEP@/$(gst_lib_dev_dep)/g' | \ + sed "s/@GST_EXTRA_BUILD_DEPENDS@/$(gst_extra_build_depends)/g" | \ + sed "s/@linux@/`type-handling any linux-gnu`/g" >$@ + +DEB_CONFIGURE_EXTRA_FLAGS += \ + --disable-examples \ + --enable-debug \ + --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ + --with-package-name=$(GST_PACKAGE_NAME) \ + --with-package-origin=$(GST_PACKAGE_ORIGIN) \ + --with-install-plugins-helper="/usr/bin/gstreamer-codec-install" + +clean:: + # get rid of the symlinks + for i in $(PLUGINS); do \ + rm -f debian/$(gst_pkgname)-$$i.install; \ + rm -f debian/$(gst_pkgname)-$$i.preinst; \ + done + -rm -rf $(CURDIR)/fake-home + +DEB_INSTALL_DOCS_ALL += debian/README.Debian NEWS +# Disable inclusion of large upstream ChangeLog + +# override shlibs for libraries from this source before computing dependencies +# of packages generated from this source; we already have inter-dependencies +# expressed manually in the control file, we do not need the shlibs to add +# duplicates +# (this rule runs just before the dh_shlibdeps) +common-binary-fixup-arch:: + mkdir -p $(CURDIR)/fake-home + HOME=$(CURDIR)/fake-home \ + dh_gstscancodecs + -rm -f debian/shlibs.local + rm -rf $(CURDIR)/fake-home + cat debian/*/DEBIAN/shlibs | \ + sed -n -r -e 's/(([^ ]+: )?([^ ]+) ([^ ]+)) .*/\1/p' \ + >debian/shlibs.local + +get-orig-source: + cd .. && tar czf $(TARBALL) --exclude $(PACKAGE)*/debian --exclude $(PACKAGE)*/.git $(PACKAGE)*/* + +# (this rules runs just after the dh_shlibdeps) +common-binary-predeb-arch:: + -rm -f debian/shlibs.local + +force: + +.PHONY: maint force diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..9a09b968 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=2 +http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-(0\.10\..*)\.tar\.gz -- cgit