From 72d0be35e61eba2ef1f1c27ccaabe62520b3058b Mon Sep 17 00:00:00 2001 From: Abderrahim Kitouni Date: Fri, 21 Dec 2018 07:23:41 +0100 Subject: [PATCH 1/4] project.conf: set autotools cross-compile options globally --- elements/core-deps/mozjs52.bst | 8 +------- project.conf | 9 ++++++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/elements/core-deps/mozjs52.bst b/elements/core-deps/mozjs52.bst index fa9dcba98..24dfbdc1c 100644 --- a/elements/core-deps/mozjs52.bst +++ b/elements/core-deps/mozjs52.bst @@ -13,14 +13,8 @@ depends: junction: freedesktop-sdk.bst variables: mozjs_target: '' - (?): - - arch == "i686": - mozjs_target: "--host=i686-unknown-linux-gnu" - - arch == "arm": - mozjs_target: "--host=arm-unknown-linux-gnueabi" command-subdir: _build - conf-local: --enable-posix-nspr-emulation --with-system-zlib --with-intl-api --disable-jemalloc %{mozjs_target} - AUTOCONF=autoconf + conf-local: --enable-posix-nspr-emulation --with-system-zlib --with-intl-api --disable-jemalloc AUTOCONF=autoconf conf-cmd: '%{build-root}/js/src/configure' # not a real autotools project autogen: '' diff --git a/project.conf b/project.conf index 5195937c6..e8de8b0df 100644 --- a/project.conf +++ b/project.conf @@ -98,7 +98,14 @@ environment: elements: autotools: variables: - conf-extra: --disable-static --disable-Werror + target: '' + (?): + - arch == "i686": + target: --host=i686-unknown-linux-gnu + - arch == "arm": + target: --host=arm-unknown-linux-gnueabi + + conf-global: --disable-static --disable-Werror %{target} # Temporary workaround to avoid regenerating existing # configure scripts when building tarballs. -- GitLab From ab589561f84d81cf33374defc1bd31dd9d5edfcb Mon Sep 17 00:00:00 2001 From: Abderrahim Kitouni Date: Wed, 7 Nov 2018 10:28:19 +0100 Subject: [PATCH 2/4] use gstreamer from freedesktop-sdk, and rebuild the same version of the plugins Fixes #97 --- elements/core-deps/gnome-video-effects.bst | 3 +- elements/core-deps/gupnp-dlna.bst | 3 +- elements/core-deps/tracker-miners.bst | 3 +- elements/core/cheese.bst | 3 +- elements/core/gnome-contacts.bst | 3 +- elements/core/gnome-control-center.bst | 3 +- elements/core/gnome-initial-setup.bst | 3 +- elements/core/gnome-shell.bst | 3 +- elements/core/sushi.bst | 3 +- elements/core/totem.bst | 3 +- elements/sdk-platform.bst | 3 +- elements/sdk/clutter-gst.bst | 3 +- elements/sdk/cogl.bst | 3 +- elements/sdk/gst-libav.bst | 34 ++++-- elements/sdk/gst-plugins-bad.bst | 114 ++++++++---------- elements/sdk/gst-plugins-base.bst | 57 ++++++--- elements/sdk/gst-plugins-good.bst | 43 ++++--- elements/sdk/gtk+.bst | 3 +- elements/world/evolution.bst | 3 +- .../world/gnome-internet-radio-locator.bst | 3 +- elements/world/gnome-sound-recorder.bst | 3 +- ...ux-Place-pva-case-after-generic-case.patch | 63 ++++++++++ .../gst-libav-decoders-fix-draining.patch | 90 ++++++++++++++ .../gst-libav-disable-1.15-api.patch | 20 +++ .../gst-libav-drop-1.15-dependency.patch | 15 +++ .../gst-libav-stop-caching-codecs.patch | 46 +++++++ project.conf | 1 + 27 files changed, 404 insertions(+), 130 deletions(-) create mode 100644 files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch create mode 100644 files/gst-libav/gst-libav-decoders-fix-draining.patch create mode 100644 files/gst-libav/gst-libav-disable-1.15-api.patch create mode 100644 files/gst-libav/gst-libav-drop-1.15-dependency.patch create mode 100644 files/gst-libav/gst-libav-stop-caching-codecs.patch diff --git a/elements/core-deps/gnome-video-effects.bst b/elements/core-deps/gnome-video-effects.bst index 0215bcedf..1eb246d51 100644 --- a/elements/core-deps/gnome-video-effects.bst +++ b/elements/core-deps/gnome-video-effects.bst @@ -5,7 +5,8 @@ sources: track: master depends: - sdk/gnome-common.bst -- sdk/gstreamer.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/intltool.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core-deps/gupnp-dlna.bst b/elements/core-deps/gupnp-dlna.bst index f503c397e..228314de9 100644 --- a/elements/core-deps/gupnp-dlna.bst +++ b/elements/core-deps/gupnp-dlna.bst @@ -7,11 +7,12 @@ depends: - sdk/glib.bst - sdk/gst-plugins-base.bst - sdk/gst-plugins-good.bst -- sdk/gstreamer.bst - filename: sdk/gtk-doc.bst type: build - filename: sdk/vala.bst type: build +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/buildsystem-autotools.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core-deps/tracker-miners.bst b/elements/core-deps/tracker-miners.bst index eeab6d7c7..d1b9598c8 100644 --- a/elements/core-deps/tracker-miners.bst +++ b/elements/core-deps/tracker-miners.bst @@ -14,8 +14,9 @@ depends: - sdk/gdk-pixbuf.bst - sdk/glib.bst - sdk/gst-plugins-base.bst -- sdk/gstreamer.bst - sdk/libsecret.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: desktop/libseccomp.bst junction: freedesktop-sdk.bst - filename: base/intltool.bst diff --git a/elements/core/cheese.bst b/elements/core/cheese.bst index 926705281..4cdb4ff01 100644 --- a/elements/core/cheese.bst +++ b/elements/core/cheese.bst @@ -15,7 +15,6 @@ depends: - sdk/gst-plugins-bad.bst - sdk/gst-plugins-base.bst - sdk/gst-plugins-good.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst - filename: sdk/gtk-doc.bst type: build @@ -23,6 +22,8 @@ depends: - sdk/librsvg.bst - filename: sdk/vala.bst type: build +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/intltool.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core/gnome-contacts.bst b/elements/core/gnome-contacts.bst index 8f37b9d24..6a68eddd9 100644 --- a/elements/core/gnome-contacts.bst +++ b/elements/core/gnome-contacts.bst @@ -11,10 +11,11 @@ depends: - core/gnome-desktop.bst - sdk/adwaita-icon-theme.bst - sdk/glib.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst - sdk/libgee.bst - sdk/vala.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/buildsystem-meson.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core/gnome-control-center.bst b/elements/core/gnome-control-center.bst index 8a72aa419..fec88c1b8 100644 --- a/elements/core/gnome-control-center.bst +++ b/elements/core/gnome-control-center.bst @@ -36,11 +36,12 @@ depends: - sdk/gdk-pixbuf.bst - sdk/glib.bst - sdk/gsettings-desktop-schemas.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst - filename: sdk/gtk-doc.bst type: build - sdk/ibus.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/buildsystem-meson.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core/gnome-initial-setup.bst b/elements/core/gnome-initial-setup.bst index 821459e0f..262bb8cc4 100644 --- a/elements/core/gnome-initial-setup.bst +++ b/elements/core/gnome-initial-setup.bst @@ -19,9 +19,10 @@ depends: - sdk/adwaita-icon-theme.bst - sdk/geoclue.bst - sdk/glib.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst - sdk/ibus.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/buildsystem-meson.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core/gnome-shell.bst b/elements/core/gnome-shell.bst index 040a91275..5e50b3fe4 100644 --- a/elements/core/gnome-shell.bst +++ b/elements/core/gnome-shell.bst @@ -27,10 +27,11 @@ depends: - sdk/glib.bst - sdk/gobject-introspection.bst - sdk/gst-plugins-base.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst - sdk/libcroco.bst - sdk/libsoup.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/docbook-xsl.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core/sushi.bst b/elements/core/sushi.bst index e963b8bb0..4981f923c 100644 --- a/elements/core/sushi.bst +++ b/elements/core/sushi.bst @@ -14,8 +14,9 @@ depends: - sdk/gjs.bst - sdk/gobject-introspection.bst - sdk/gst-plugins-base.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/buildsystem-meson.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/core/totem.bst b/elements/core/totem.bst index b941d5993..d452a8c06 100644 --- a/elements/core/totem.bst +++ b/elements/core/totem.bst @@ -27,8 +27,9 @@ depends: - sdk/gst-plugins-bad.bst - sdk/gst-plugins-base.bst - sdk/gst-plugins-good.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/intltool.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/sdk-platform.bst b/elements/sdk-platform.bst index 43ac1bcfa..483b5234d 100644 --- a/elements/sdk-platform.bst +++ b/elements/sdk-platform.bst @@ -31,7 +31,6 @@ depends: - sdk/gst-plugins-bad.bst - sdk/gst-plugins-base.bst - sdk/gst-plugins-good.bst -- sdk/gstreamer.bst - sdk/gtk+.bst - sdk/gtk+-3.bst - sdk/gvfs.bst @@ -108,6 +107,8 @@ depends: junction: freedesktop-sdk.bst - filename: desktop/graphite2.bst junction: freedesktop-sdk.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: desktop/harfbuzz.bst junction: freedesktop-sdk.bst - filename: desktop/hicolor-icon-theme.bst diff --git a/elements/sdk/clutter-gst.bst b/elements/sdk/clutter-gst.bst index 11df4170b..6a8599fc7 100644 --- a/elements/sdk/clutter-gst.bst +++ b/elements/sdk/clutter-gst.bst @@ -8,9 +8,10 @@ depends: - sdk/cogl.bst - sdk/gobject-introspection.bst - sdk/gst-plugins-base.bst -- sdk/gstreamer.bst - filename: sdk/gtk-doc.bst type: build +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base/buildsystem-autotools.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/sdk/cogl.bst b/elements/sdk/cogl.bst index 57a95cd94..161c915e4 100644 --- a/elements/sdk/cogl.bst +++ b/elements/sdk/cogl.bst @@ -7,10 +7,11 @@ depends: - sdk/glib.bst - sdk/gobject-introspection.bst - sdk/gst-plugins-base.bst -- sdk/gstreamer.bst - filename: sdk/gtk-doc.bst type: build - sdk/pango.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: desktop/wayland.bst junction: freedesktop-sdk.bst - filename: base/buildsystem-autotools.bst diff --git a/elements/sdk/gst-libav.bst b/elements/sdk/gst-libav.bst index b973fd7db..343428348 100644 --- a/elements/sdk/gst-libav.bst +++ b/elements/sdk/gst-libav.bst @@ -1,20 +1,38 @@ kind: autotools sources: -- kind: git - url: git_freedesktop_org:gstreamer/gst-libav - track: master - submodules: - common: - checkout: True - url: git_freedesktop_org:gstreamer/common +- kind: tar + # Snapshot used by debian so we can use their patches + url: https://deb.debian.org/debian/pool/main/g/gst-libav1.0/gst-libav1.0_1.15.0.1+git20180723+db823502.orig.tar.xz +- kind: patch + path: files/gst-libav/gst-libav-stop-caching-codecs.patch +- kind: patch + path: files/gst-libav/gst-libav-disable-1.15-api.patch +- kind: patch + path: files/gst-libav/gst-libav-drop-1.15-dependency.patch +- kind: patch + path: files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch +- kind: patch + path: files/gst-libav/gst-libav-decoders-fix-draining.patch depends: - sdk/gst-plugins-base.bst +- filename: desktop/orc.bst + junction: freedesktop-sdk.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: desktop/ffmpeg.bst junction: freedesktop-sdk.bst + type: build +- filename: base/nasm.bst + junction: freedesktop-sdk.bst + type: build - filename: base/buildsystem-autotools.bst junction: freedesktop-sdk.bst type: build - filename: base-platform.bst junction: freedesktop-sdk.bst variables: - conf-local: --with-system-libav + conf-local: | + --with-system-libav + autogen: NOCONFIGURE=1 ./autogen.sh +environment: + GST_CFLAGS: -DTRIPLET=\"%{gcc_triplet}\" diff --git a/elements/sdk/gst-plugins-bad.bst b/elements/sdk/gst-plugins-bad.bst index 246766778..310776c24 100644 --- a/elements/sdk/gst-plugins-bad.bst +++ b/elements/sdk/gst-plugins-bad.bst @@ -1,83 +1,63 @@ -kind: meson +kind: autotools sources: -- kind: git - url: git_freedesktop_org:gstreamer/gst-plugins-bad - track: master +- kind: tar + url: gstreamer:gst-plugins-bad/gst-plugins-bad-1.14.4.tar.xz depends: +- filename: sdk/gobject-introspection.bst + type: build - sdk/gst-plugins-base.bst - sdk/librsvg.bst -- filename: desktop/vulkan.bst +- filename: desktop/orc.bst + junction: freedesktop-sdk.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst +- filename: desktop/libdrm.bst junction: freedesktop-sdk.bst - filename: desktop/libfdk-aac.bst junction: freedesktop-sdk.bst +- filename: desktop/libglvnd.bst + junction: freedesktop-sdk.bst +- filename: desktop/libvdpau.bst + junction: freedesktop-sdk.bst +- filename: desktop/mesa.bst + junction: freedesktop-sdk.bst - filename: desktop/openal.bst junction: freedesktop-sdk.bst -- filename: base/opus.bst +- filename: desktop/vulkan.bst junction: freedesktop-sdk.bst -- filename: base/sndfile.bst +- filename: desktop/wayland.bst junction: freedesktop-sdk.bst -- filename: base/buildsystem-meson.bst +- filename: desktop/wayland-protocols.bst + junction: freedesktop-sdk.bst + type: build +- filename: base/buildsystem-autotools.bst junction: freedesktop-sdk.bst type: build - filename: base-platform.bst junction: freedesktop-sdk.bst variables: - meson-local: > - -Daom=disabled - -Dassrender=disabled - -Dbluez=disabled - -Dbs2b=disabled - -Dchromaprint=disabled - -Dcurl-ssh2=disabled - -Ddc1394=disabled - -Ddirectfb=disabled - -Ddts=disabled - -Dfaac=disabled - -Dfaad=disabled - -Dflite=disabled - -Dfluidsynth=disabled - -Dgme=disabled - -Dgsm=disabled - -Diqa=disabled - -Dkate=disabled - -Dladspa=disabled - -Dlibde265=disabled - -Dlibmms=disabled - -Dlv2=disabled - -Dmodplug=disabled - -Dmpeg2enc=disabled - -Dmplex=disabled - -Dmsdk=disabled - -Dmusepack=disabled - -Dneon=disabled - -Dnvdec=disabled - -Dnvenc=disabled - -Dofa=disabled - -Dopencv=disabled - -Dopenexr=disabled - -Dopenh264=disabled - -Dopenjpeg=disabled - -Dopenmpt=disabled - -Dopenni2=disabled - -Dopensles=disabled - -Dresindvd=disabled - -Drtmp=disabled - -Dsbc=disabled - -Dsctp=disabled - -Dsoundtouch=disabled - -Dspandsp=disabled - -Dsrt=disabled - -Dsrtp=disabled - -Dteletext=disabled - -Dtinyalsa=disabled - -Duvch264=disabled - -Dvdpau=disabled - -Dvoaacenc=disabled - -Dvoamrwbenc=disabled - -Dwasapi=disabled - -Dwebrtc=disabled - -Dwebrtcdsp=disabled - -Dwildmidi=disabled - -Dwpe=disabled - -Dx265=disabled - -Dzbar=disabled + conf-local: | + --enable-experimental \ + --enable-introspection \ + --enable-orc \ + --enable-wayland +public: + bst: + split-rules: + devel: + (>): + - '%{libdir}/libgstbadallocators-1.0.so' + - '%{libdir}/libgstbadbase-1.0.so' + - '%{libdir}/libgstcodecparsers-1.0.so' + - '%{libdir}/libgstplayer-1.0.so' + - '%{libdir}/libgstbadvideo-1.0.so' + - '%{libdir}/libgstbadaudio-1.0.so' + - '%{libdir}/libgstmpegts-1.0.so' + - '%{libdir}/libgstadaptivedemux-1.0.so' + - '%{libdir}/libgstinsertbin-1.0.so' + - '%{libdir}/libgsturidownloader-1.0.so' + - '%{libdir}/libgstbasecamerabinsrc-1.0.so' + - '%{libdir}/libgstphotography-1.0.so' + - '%{libdir}/libgstisoff-1.0.so' + - '%{libdir}/libgstwebrtc-1.0.so' + - '%{libdir}/libgstwayland-1.0.so' diff --git a/elements/sdk/gst-plugins-base.bst b/elements/sdk/gst-plugins-base.bst index 7fd5e235d..0f69d425e 100644 --- a/elements/sdk/gst-plugins-base.bst +++ b/elements/sdk/gst-plugins-base.bst @@ -1,32 +1,51 @@ -kind: meson +kind: autotools sources: -- kind: git - url: git_freedesktop_org:gstreamer/gst-plugins-base - track: master +- kind: tar + url: gstreamer:gst-plugins-base/gst-plugins-base-1.14.4.tar.xz depends: -- sdk/gobject-introspection.bst -- sdk/gstreamer.bst -- sdk/gtk+-3.bst -- sdk/pango.bst -- filename: sdk/gtk-doc.bst +- filename: sdk/gobject-introspection.bst type: build -- filename: desktop/alsa-lib.bst - junction: freedesktop-sdk.bst +- sdk/pango.bst - filename: desktop/orc.bst junction: freedesktop-sdk.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst +- filename: desktop/mesa.bst + junction: freedesktop-sdk.bst - filename: desktop/xorg-lib-xv.bst junction: freedesktop-sdk.bst -- filename: base/opus.bst +- filename: base/buildsystem-autotools.bst junction: freedesktop-sdk.bst -- filename: base/buildsystem-meson.bst + type: build +- filename: base/gettext.bst junction: freedesktop-sdk.bst type: build - filename: base-platform.bst junction: freedesktop-sdk.bst variables: - meson-local: > - -Dcdparanoia=disabled - -Dexamples=disabled - -Dgl-graphene=disabled - -Dlibvisual=disabled - -Dtremor=disabled + conf-local: | + --enable-experimental \ + --enable-introspection \ + --enable-ogg \ + --enable-opus \ + --enable-orc \ + --enable-pango \ + --enable-theora \ + --enable-vorbis +public: + bst: + split-rules: + devel: + (>): + - '%{libdir}/libgstfft-1.0.so' + - '%{libdir}/libgstrtp-1.0.so' + - '%{libdir}/libgstsdp-1.0.so' + - '%{libdir}/libgstvideo-1.0.so' + - '%{libdir}/libgstapp-1.0.so' + - '%{libdir}/libgstriff-1.0.so' + - '%{libdir}/libgstrtsp-1.0.so' + - '%{libdir}/libgstallocators-1.0.so' + - '%{libdir}/libgsttag-1.0.so' + - '%{libdir}/libgstaudio-1.0.so' + - '%{libdir}/libgstpbutils-1.0.so' + - '%{libdir}/libgstgl-1.0.so' diff --git a/elements/sdk/gst-plugins-good.bst b/elements/sdk/gst-plugins-good.bst index 656554a98..34f477516 100644 --- a/elements/sdk/gst-plugins-good.bst +++ b/elements/sdk/gst-plugins-good.bst @@ -1,36 +1,41 @@ -kind: meson +kind: autotools sources: -- kind: git - url: git_freedesktop_org:gstreamer/gst-plugins-good - track: master +- kind: tar + url: gstreamer:gst-plugins-good/gst-plugins-good-1.14.4.tar.xz depends: -- sdk/gtk+-3.bst +- filename: sdk/gobject-introspection.bst + type: build - sdk/gdk-pixbuf.bst - sdk/gst-plugins-base.bst +- sdk/gtk+-3.bst - sdk/libsoup.bst +- filename: desktop/cairo.bst + junction: freedesktop-sdk.bst +- filename: desktop/orc.bst + junction: freedesktop-sdk.bst - filename: desktop/lame.bst junction: freedesktop-sdk.bst - filename: desktop/libpulse.bst junction: freedesktop-sdk.bst - filename: desktop/mpg123.bst junction: freedesktop-sdk.bst -- filename: base/wavpack.bst +- filename: desktop/gstreamer.bst junction: freedesktop-sdk.bst -- filename: base/buildsystem-meson.bst +- filename: base/buildsystem-autotools.bst junction: freedesktop-sdk.bst type: build +# should be in base-platform +- filename: base/wavpack.bst + junction: freedesktop-sdk.bst - filename: base-platform.bst junction: freedesktop-sdk.bst variables: - meson-local: > - -Daalib=disabled - -Ddv1394=disabled - -Ddv=disabled - -Dexamples=disabled - -Djack=disabled - -Dlibcaca=disabled - -Dqt5=disabled - -Dshout2=disabled - -Dtaglib=disabled - -Dtwolame=disabled - -Dv4l2=disabled + conf-local: | + --enable-cairo \ + --enable-experimental \ + --enable-introspection \ + --enable-lame \ + --enable-soup \ + --enable-orc \ + --enable-pulse \ + --with-default-visualizer=autoaudiosink diff --git a/elements/sdk/gtk+.bst b/elements/sdk/gtk+.bst index 67f9dd092..bdbef25a3 100644 --- a/elements/sdk/gtk+.bst +++ b/elements/sdk/gtk+.bst @@ -12,12 +12,13 @@ depends: - sdk/graphene.bst - sdk/gst-plugins-bad.bst - sdk/gst-plugins-base.bst -- sdk/gstreamer.bst - filename: sdk/gtk-doc.bst type: build - sdk/pango.bst - filename: desktop/cups.bst junction: freedesktop-sdk.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: desktop/wayland.bst junction: freedesktop-sdk.bst - filename: base/buildsystem-meson.bst diff --git a/elements/world/evolution.bst b/elements/world/evolution.bst index fa53fa49a..488b56526 100644 --- a/elements/world/evolution.bst +++ b/elements/world/evolution.bst @@ -18,11 +18,12 @@ depends: - sdk/geoclue.bst - sdk/glib.bst - sdk/gsettings-desktop-schemas.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst - sdk/libnotify.bst - sdk/libsoup.bst - sdk/yelp-tools.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base.bst junction: freedesktop-sdk.bst variables: diff --git a/elements/world/gnome-internet-radio-locator.bst b/elements/world/gnome-internet-radio-locator.bst index 83c75accd..89f7566d8 100644 --- a/elements/world/gnome-internet-radio-locator.bst +++ b/elements/world/gnome-internet-radio-locator.bst @@ -14,8 +14,9 @@ depends: - sdk/gst-plugins-bad.bst - sdk/gst-plugins-base.bst - sdk/gst-plugins-good.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst - sdk/pango.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base.bst junction: freedesktop-sdk.bst diff --git a/elements/world/gnome-sound-recorder.bst b/elements/world/gnome-sound-recorder.bst index c5ab81ecb..e8213cd39 100644 --- a/elements/world/gnome-sound-recorder.bst +++ b/elements/world/gnome-sound-recorder.bst @@ -9,7 +9,8 @@ depends: - sdk/glib.bst - sdk/gst-plugins-base.bst - sdk/gst-plugins-good.bst -- sdk/gstreamer.bst - sdk/gtk+-3.bst +- filename: desktop/gstreamer.bst + junction: freedesktop-sdk.bst - filename: base.bst junction: freedesktop-sdk.bst diff --git a/files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch b/files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch new file mode 100644 index 000000000..c19878ccc --- /dev/null +++ b/files/gst-libav/gst-libav-avmux-Place-pva-case-after-generic-case.patch @@ -0,0 +1,63 @@ +From 962d2a78fe28bb1fee6cd9259170d9f2ac2ce884 Mon Sep 17 00:00:00 2001 +From: Georg Ottinger +Date: Tue, 3 Jul 2018 13:15:54 +0200 +Subject: [PATCH] avmux: Place pva case after generic case + +In the function gst_ffmpeg_formatid_get_codecids() in the if / else if +construct the special case !strcmp (format_name, "pva") should be +handled before the generic case (plugin->audio_codec != +AV_CODEC_ID_NONE) || (plugin->video_codec != AV_CODEC_ID_NONE) +This patch fixes the ordering. + +I stumbled accorss this issue while adding a new format to +gst_ffmpeg_formatid_get_codecids() + +https://bugzilla.gnome.org/show_bug.cgi?id=796738 +--- + ext/libav/gstavcodecmap.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c +index 19fef71..be95828 100644 +--- a/ext/libav/gstavcodecmap.c ++++ b/ext/libav/gstavcodecmap.c +@@ -3770,25 +3770,25 @@ gst_ffmpeg_formatid_get_codecids (const gchar * format_name, + }; + *video_codec_list = gif_image_list; + *audio_codec_list = NULL; +- } else if ((plugin->audio_codec != AV_CODEC_ID_NONE) || +- (plugin->video_codec != AV_CODEC_ID_NONE)) { +- tmp_vlist[0] = plugin->video_codec; +- tmp_alist[0] = plugin->audio_codec; +- +- *video_codec_list = tmp_vlist; +- *audio_codec_list = tmp_alist; + } else if ((!strcmp (format_name, "pva"))) { +- static enum AVCodecID tgp_video_list[] = { ++ static enum AVCodecID pga_video_list[] = { + AV_CODEC_ID_MPEG2VIDEO, + AV_CODEC_ID_NONE + }; +- static enum AVCodecID tgp_audio_list[] = { ++ static enum AVCodecID pga_audio_list[] = { + AV_CODEC_ID_MP2, + AV_CODEC_ID_NONE + }; + +- *video_codec_list = tgp_video_list; +- *audio_codec_list = tgp_audio_list; ++ *video_codec_list = pga_video_list; ++ *audio_codec_list = pga_audio_list; ++ } else if ((plugin->audio_codec != AV_CODEC_ID_NONE) || ++ (plugin->video_codec != AV_CODEC_ID_NONE)) { ++ tmp_vlist[0] = plugin->video_codec; ++ tmp_alist[0] = plugin->audio_codec; ++ ++ *video_codec_list = tmp_vlist; ++ *audio_codec_list = tmp_alist; + } else { + GST_LOG ("Format %s not found", format_name); + return FALSE; +-- +2.19.0.rc2 + diff --git a/files/gst-libav/gst-libav-decoders-fix-draining.patch b/files/gst-libav/gst-libav-decoders-fix-draining.patch new file mode 100644 index 000000000..2f068684e --- /dev/null +++ b/files/gst-libav/gst-libav-decoders-fix-draining.patch @@ -0,0 +1,90 @@ +From ff3a8f6627811c95c51acf7a07c62b78bb02d0a0 Mon Sep 17 00:00:00 2001 +From: Mathieu Duponchelle +Date: Tue, 31 Jul 2018 18:35:22 +0200 +Subject: [PATCH] decoders: fix draining + +https://bugzilla.gnome.org/show_bug.cgi?id=796900 +--- + ext/libav/gstavauddec.c | 11 ++++++++--- + ext/libav/gstavviddec.c | 14 +++++++++++--- + 2 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/ext/libav/gstavauddec.c b/ext/libav/gstavauddec.c +index dbec03c..fa2786c 100644 +--- a/ext/libav/gstavauddec.c ++++ b/ext/libav/gstavauddec.c +@@ -539,10 +539,9 @@ gst_ffmpegauddec_audio_frame (GstFFMpegAudDec * ffmpegdec, + GST_BUFFER_FLAG_SET (*outbuf, GST_BUFFER_FLAG_CORRUPTED); + } else if (res == AVERROR (EAGAIN)) { + *outbuf = NULL; +- } else if (res == AVERROR_EOF) { /* Should not happen */ ++ } else if (res == AVERROR_EOF) { + *ret = GST_FLOW_EOS; +- GST_WARNING_OBJECT (ffmpegdec, +- "Tried to receive frame on a flushed context"); ++ GST_DEBUG_OBJECT (ffmpegdec, "Context was entirely flushed"); + } else if (res < 0) { + *ret = GST_FLOW_OK; + GST_WARNING_OBJECT (ffmpegdec, "Legitimate decoding error"); +@@ -611,6 +610,9 @@ gst_ffmpegauddec_drain (GstFFMpegAudDec * ffmpegdec) + GST_LOG_OBJECT (ffmpegdec, + "codec has delay capabilities, calling until libav has drained everything"); + ++ if (avcodec_send_packet (ffmpegdec->context, NULL)) ++ goto send_packet_failed; ++ + do { + GstFlowReturn ret; + +@@ -623,6 +625,9 @@ gst_ffmpegauddec_drain (GstFFMpegAudDec * ffmpegdec) + gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (ffmpegdec), + ffmpegdec->outbuf, 1); + ffmpegdec->outbuf = NULL; ++ ++send_packet_failed: ++ GST_WARNING_OBJECT (ffmpegdec, "send packet failed, could not drain decoder"); + } + + static void +diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c +index 40ad991..de23954 100644 +--- a/ext/libav/gstavviddec.c ++++ b/ext/libav/gstavviddec.c +@@ -1488,10 +1488,9 @@ gst_ffmpegviddec_video_frame (GstFFMpegVidDec * ffmpegdec, + /* No frames available at this time */ + if (res == AVERROR (EAGAIN)) + goto beach; +- else if (res == AVERROR_EOF) { /* Should not happen */ ++ else if (res == AVERROR_EOF) { + *ret = GST_FLOW_EOS; +- GST_WARNING_OBJECT (ffmpegdec, +- "Tried to receive frame on a flushed context"); ++ GST_DEBUG_OBJECT (ffmpegdec, "Context was entirely flushed"); + goto beach; + } else if (res < 0) { + *ret = GST_FLOW_OK; +@@ -1721,12 +1720,21 @@ gst_ffmpegviddec_drain (GstVideoDecoder * decoder) + GST_LOG_OBJECT (ffmpegdec, + "codec has delay capabilities, calling until ffmpeg has drained everything"); + ++ if (avcodec_send_packet (ffmpegdec->context, NULL)) ++ goto send_packet_failed; ++ + do { + got_frame = gst_ffmpegviddec_frame (ffmpegdec, NULL, &ret); + } while (got_frame && ret == GST_FLOW_OK); ++ avcodec_flush_buffers (ffmpegdec->context); + } + ++done: + return GST_FLOW_OK; ++ ++send_packet_failed: ++ GST_WARNING_OBJECT (ffmpegdec, "send packet failed, could not drain decoder"); ++ goto done; + } + + static GstFlowReturn +-- +2.19.0.rc2 + diff --git a/files/gst-libav/gst-libav-disable-1.15-api.patch b/files/gst-libav/gst-libav-disable-1.15-api.patch new file mode 100644 index 000000000..8dd22e5f0 --- /dev/null +++ b/files/gst-libav/gst-libav-disable-1.15-api.patch @@ -0,0 +1,20 @@ +Index: gst-libav1.0/ext/libav/gstavviddec.c +=================================================================== +--- gst-libav1.0.orig/ext/libav/gstavviddec.c ++++ gst-libav1.0/ext/libav/gstavviddec.c +@@ -1595,6 +1595,7 @@ gst_ffmpegviddec_video_frame (GstFFMpegV + GST_VIDEO_BUFFER_FLAG_INTERLACED); + } + ++#if 0 + { + AVFrameSideData *side_data = + av_frame_get_side_data (ffmpegdec->picture, AV_FRAME_DATA_A53_CC); +@@ -1607,6 +1608,7 @@ gst_ffmpegviddec_video_frame (GstFFMpegV + GST_VIDEO_CAPTION_TYPE_CEA708_RAW, side_data->data, side_data->size); + } + } ++#endif + + /* cleaning time */ + /* so we decoded this frame, frames preceding it in decoding order diff --git a/files/gst-libav/gst-libav-drop-1.15-dependency.patch b/files/gst-libav/gst-libav-drop-1.15-dependency.patch new file mode 100644 index 000000000..a0279b3eb --- /dev/null +++ b/files/gst-libav/gst-libav-drop-1.15-dependency.patch @@ -0,0 +1,15 @@ +Index: gst-libav1.0/configure.ac +=================================================================== +--- gst-libav1.0.orig/configure.ac ++++ gst-libav1.0/configure.ac +@@ -45,8 +45,8 @@ AG_GST_LIBTOOL_PREPARE + AS_LIBTOOL(GST, 1500, 0, 1500) + + dnl *** required versions of GStreamer stuff *** +-GST_REQ=1.15.0.1 +-GST_PBREQ=1.15.0.1 ++GST_REQ=1.14.2 ++GST_PBREQ=1.14.2 + + ORC_REQ=0.4.16 + ORC_CHECK([$ORC_REQ]) diff --git a/files/gst-libav/gst-libav-stop-caching-codecs.patch b/files/gst-libav/gst-libav-stop-caching-codecs.patch new file mode 100644 index 000000000..db518c7e0 --- /dev/null +++ b/files/gst-libav/gst-libav-stop-caching-codecs.patch @@ -0,0 +1,46 @@ +From 2c371f17af1695bd42f572d5ccdb837152b8b67a Mon Sep 17 00:00:00 2001 +From: Thomas Coldrick +Date: Thu, 8 Nov 2018 17:46:53 +0000 +Subject: [PATCH] gst-libav-stop-caching-codecs + +--- + ext/libav/gstav.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/ext/libav/gstav.c b/ext/libav/gstav.c +index 2a88230..bfd19a1 100644 +--- a/ext/libav/gstav.c ++++ b/ext/libav/gstav.c +@@ -138,6 +138,8 @@ gst_ffmpeg_log_callback (void *ptr, int level, const char *fmt, va_list vl) + static gboolean + plugin_init (GstPlugin * plugin) + { ++ char libdir[30]; ++ char path[100]; + GST_DEBUG_CATEGORY_INIT (ffmpeg_debug, "libav", 0, "libav elements"); + + /* Bail if not FFmpeg. We can no longer ensure operation with Libav */ +@@ -155,6 +157,20 @@ plugin_init (GstPlugin * plugin) + /* build global ffmpeg param/property info */ + gst_ffmpeg_cfg_init (); + ++ strcpy(libdir, "/usr/lib/"); ++ strcat(libdir, TRIPLET); ++ strcpy(path, libdir); ++ strcat(path, ":/usr/local/lib:"); ++ strcat(path, libdir); ++ strcat(path, "/ffmpeg/lib"); ++ ++ gst_plugin_add_dependency_simple (plugin, NULL, ++ path, ++ "libavcodec.so.58," ++ "libavformat.so.58," ++ "libswscale.so.5", ++ GST_PLUGIN_DEPENDENCY_FLAG_NONE); ++ + gst_ffmpegaudenc_register (plugin); + gst_ffmpegvidenc_register (plugin); + gst_ffmpegauddec_register (plugin); +-- +2.19.1 + diff --git a/project.conf b/project.conf index e8de8b0df..f58862eb5 100644 --- a/project.conf +++ b/project.conf @@ -49,6 +49,7 @@ aliases: gitlab_com: https://gitlab.com/ gitlab_gnome_org: https://gitlab.gnome.org/ gnome_download: https://download.gnome.org/ + gstreamer: https://gstreamer.freedesktop.org/src/ icon_theme_freedesktop_org: https://icon-theme.freedesktop.org/releases/ iso_codes: https://pkg-isocodes.alioth.debian.org/downloads/ people_freedesktop_org: https://people.freedesktop.org/ -- GitLab From 453d1f1f44e8383f8b8fefae0c3b337b737ac2fd Mon Sep 17 00:00:00 2001 From: Abderrahim Kitouni Date: Sat, 8 Dec 2018 21:12:12 +0100 Subject: [PATCH 3/4] add some missing dependencies these were obtained indirectly when using our version of gstreamer --- elements/sdk/clutter.bst | 2 ++ elements/sdk/cogl.bst | 2 ++ elements/sdk/gtk+.bst | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/elements/sdk/clutter.bst b/elements/sdk/clutter.bst index f03f1fb60..d63724293 100644 --- a/elements/sdk/clutter.bst +++ b/elements/sdk/clutter.bst @@ -12,6 +12,8 @@ depends: - filename: sdk/gtk-doc.bst type: build - sdk/json-glib.bst +- filename: desktop/libxkbcommon.bst + junction: freedesktop-sdk.bst - filename: desktop/wayland.bst junction: freedesktop-sdk.bst - filename: base/buildsystem-autotools.bst diff --git a/elements/sdk/cogl.bst b/elements/sdk/cogl.bst index 161c915e4..6884675ef 100644 --- a/elements/sdk/cogl.bst +++ b/elements/sdk/cogl.bst @@ -14,6 +14,8 @@ depends: junction: freedesktop-sdk.bst - filename: desktop/wayland.bst junction: freedesktop-sdk.bst +- filename: desktop/xorg-lib-xcomposite.bst + junction: freedesktop-sdk.bst - filename: base/buildsystem-autotools.bst junction: freedesktop-sdk.bst type: build diff --git a/elements/sdk/gtk+.bst b/elements/sdk/gtk+.bst index bdbef25a3..cca03c8a0 100644 --- a/elements/sdk/gtk+.bst +++ b/elements/sdk/gtk+.bst @@ -19,6 +19,10 @@ depends: junction: freedesktop-sdk.bst - filename: desktop/gstreamer.bst junction: freedesktop-sdk.bst +- filename: desktop/libepoxy.bst + junction: freedesktop-sdk.bst +- filename: desktop/libxkbcommon.bst + junction: freedesktop-sdk.bst - filename: desktop/wayland.bst junction: freedesktop-sdk.bst - filename: base/buildsystem-meson.bst -- GitLab From dab82883956c9635bb9e41d899f3fbe81f4c725e Mon Sep 17 00:00:00 2001 From: Abderrahim Kitouni Date: Thu, 31 Jan 2019 14:27:25 +0100 Subject: [PATCH 4/4] sdk/WebKitGTK+: add a patch to build with python3 --- elements/sdk/WebKitGTK+.bst | 5 ++--- files/webkitgtk/python3.patch | 13 +++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 files/webkitgtk/python3.patch diff --git a/elements/sdk/WebKitGTK+.bst b/elements/sdk/WebKitGTK+.bst index 61ab494ca..6792d33ed 100644 --- a/elements/sdk/WebKitGTK+.bst +++ b/elements/sdk/WebKitGTK+.bst @@ -9,6 +9,8 @@ sources: # * Remember to create a merge request rather than pushing directly :) - kind: patch path: files/webkitgtk/bug-193903.patch +- kind: patch + path: files/webkitgtk/python3.patch - kind: patch path: files/webkitgtk/gtk-doc-introspection-cross-compiling.patch - kind: local @@ -40,9 +42,6 @@ depends: - filename: base/gperf.bst junction: freedesktop-sdk.bst type: build -- filename: base/python2.bst - junction: freedesktop-sdk.bst - type: build - filename: base/ruby.bst junction: freedesktop-sdk.bst type: build diff --git a/files/webkitgtk/python3.patch b/files/webkitgtk/python3.patch new file mode 100644 index 000000000..8a9654700 --- /dev/null +++ b/files/webkitgtk/python3.patch @@ -0,0 +1,13 @@ +diff -ur WebKit2/Source/WebKit/InspectorGResources.cmake WebKit/Source/WebKit/InspectorGResources.cmake +--- WebKit2/Source/WebKit/InspectorGResources.cmake 2018-11-09 14:57:26.000000000 +0100 ++++ WebKit/Source/WebKit/InspectorGResources.cmake 2019-01-31 12:20:35.106535676 +0100 +@@ -62,7 +62,7 @@ + ${InspectorResourceScripts} + ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol/InspectorBackendCommands.js + COMMAND cp ${DERIVED_SOURCES_WEBINSPECTORUI_DIR}/UserInterface/Protocol/InspectorBackendCommands.js ${FORWARDING_HEADERS_DIR}/JavaScriptCore/Scripts +- COMMAND ${CMAKE_COMMAND} -E env "DERIVED_SOURCES_DIR=${DERIVED_SOURCES_WEBINSPECTORUI_DIR}" "SRCROOT=${CMAKE_SOURCE_DIR}/Source/WebInspectorUI" "JAVASCRIPTCORE_PRIVATE_HEADERS_DIR=${FORWARDING_HEADERS_DIR}/JavaScriptCore/Scripts" "TARGET_BUILD_DIR=${_derived_sources_dir}/InspectorResources" "UNLOCALIZED_RESOURCES_FOLDER_PATH=WebInspectorUI" "COMBINE_INSPECTOR_RESOURCES=${COMBINE_INSPECTOR_RESOURCES}" "COMBINE_TEST_RESOURCES=${COMBINE_TEST_RESOURCES}" ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl ++ COMMAND ${CMAKE_COMMAND} -E env "DERIVED_SOURCES_DIR=${DERIVED_SOURCES_WEBINSPECTORUI_DIR}" "SRCROOT=${CMAKE_SOURCE_DIR}/Source/WebInspectorUI" "JAVASCRIPTCORE_PRIVATE_HEADERS_DIR=${FORWARDING_HEADERS_DIR}/JavaScriptCore/Scripts" "TARGET_BUILD_DIR=${_derived_sources_dir}/InspectorResources" "UNLOCALIZED_RESOURCES_FOLDER_PATH=WebInspectorUI" "COMBINE_INSPECTOR_RESOURCES=${COMBINE_INSPECTOR_RESOURCES}" "COMBINE_TEST_RESOURCES=${COMBINE_TEST_RESOURCES}" PYTHON=${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl + COMMAND mkdir -p ${_derived_sources_dir}/InspectorResources/WebInspectorUI/Localizations/en.lproj + COMMAND cp ${CMAKE_SOURCE_DIR}/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js ${_derived_sources_dir}/InspectorResources/WebInspectorUI/Localizations/en.lproj/localizedStrings.js + COMMAND touch ${CMAKE_BINARY_DIR}/inspector-resources.stamp + -- GitLab