diff options
Diffstat (limited to 'meta/recipes-multimedia')
115 files changed, 2431 insertions, 3347 deletions
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch b/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch new file mode 100644 index 0000000000..30aeef5817 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-correct-version-script-path.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | From 2a736a0d2543f206fd2653aaae8a08a4c42eb917 Mon Sep 17 00:00:00 2001 | ||
2 | From: Michael Opdenacker <michael.opdenacker@bootlin.com> | ||
3 | Date: Tue, 30 Jan 2024 14:24:25 +0100 | ||
4 | Subject: [PATCH] topology: correct version script path | ||
5 | |||
6 | From: Jan Palus <jpalus@fastmail.com> | ||
7 | |||
8 | contrary to libasound, version script for libatopology is a regular | ||
9 | source file. while it's often the case that $(builddir) and $(srcdir) | ||
10 | point to the same directory, they don't always have to. therefore path | ||
11 | needs to point explicitly to $(srcdir) for Versions script in topology | ||
12 | |||
13 | Closes: https://github.com/alsa-project/alsa-lib/pull/383 | ||
14 | Fixes: GH-382 | ||
15 | Fixes: dc7da761f3a2 ("topology: separate Versions linker script") | ||
16 | Signed-off-by: Jan Palus <jpalus@fastmail.com> | ||
17 | Signed-off-by: Jaroslav Kysela <perex@perex.cz> | ||
18 | Upstream-Status: Backport [https://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=2a736a0d2543f206fd2653aaae8a08a4c42eb917] | ||
19 | --- | ||
20 | src/topology/Makefile.am | 2 +- | ||
21 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
22 | |||
23 | diff --git a/src/topology/Makefile.am b/src/topology/Makefile.am | ||
24 | index 04299588..e0b78373 100644 | ||
25 | --- a/src/topology/Makefile.am | ||
26 | +++ b/src/topology/Makefile.am | ||
27 | @@ -2,7 +2,7 @@ EXTRA_DIST = Versions | ||
28 | COMPATNUM=@LIBTOOL_VERSION_INFO@ | ||
29 | |||
30 | if VERSIONED_SYMBOLS | ||
31 | -VSYMS = -Wl,--version-script=Versions | ||
32 | +VSYMS = -Wl,--version-script=$(srcdir)/Versions | ||
33 | else | ||
34 | VSYMS = | ||
35 | endif | ||
36 | -- | ||
37 | 2.34.1 | ||
38 | |||
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch b/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch deleted file mode 100644 index 98e2988dda..0000000000 --- a/meta/recipes-multimedia/alsa/alsa-lib/ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e Mon Sep 17 00:00:00 2001 | ||
2 | From: Jaroslav Kysela <perex@perex.cz> | ||
3 | Date: Thu, 22 Oct 2020 20:57:32 +0200 | ||
4 | Subject: [PATCH] dlmisc: the snd_plugin_dir_set / snd_plugin_dir must be | ||
5 | declared even for \!DL_ORIGIN_AVAILABLE | ||
6 | |||
7 | Fixes: 8580c081c2 ("dlsym: add support for ALSA_PLUGIN_DIR environment variable") | ||
8 | BugLink: https://github.com/alsa-project/alsa-lib/issues/91 | ||
9 | Signed-off-by: Jaroslav Kysela <perex@perex.cz> | ||
10 | Upstream-Status: Backport | ||
11 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
12 | --- | ||
13 | src/dlmisc.c | 2 -- | ||
14 | 1 file changed, 2 deletions(-) | ||
15 | |||
16 | diff --git a/src/dlmisc.c b/src/dlmisc.c | ||
17 | index c9517c55..f20eb593 100644 | ||
18 | --- a/src/dlmisc.c | ||
19 | +++ b/src/dlmisc.c | ||
20 | @@ -42,11 +42,9 @@ | ||
21 | #ifndef PIC | ||
22 | struct snd_dlsym_link *snd_dlsym_start = NULL; | ||
23 | #endif | ||
24 | -#ifdef DL_ORIGIN_AVAILABLE | ||
25 | static int snd_plugin_dir_set = 0; | ||
26 | static char *snd_plugin_dir = NULL; | ||
27 | #endif | ||
28 | -#endif | ||
29 | |||
30 | #if defined(DL_ORIGIN_AVAILABLE) && defined(HAVE_LIBPTHREAD) | ||
31 | static pthread_mutex_t snd_dlpath_mutex = PTHREAD_MUTEX_INITIALIZER; | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb index c49cc2a9b4..c212b17aa3 100644 --- a/meta/recipes-multimedia/alsa/alsa-lib_1.2.4.bb +++ b/meta/recipes-multimedia/alsa/alsa-lib_1.2.11.bb | |||
@@ -4,42 +4,43 @@ provides a level of abstraction over the /dev interfaces provided by the kernel | |||
4 | HOMEPAGE = "http://www.alsa-project.org" | 4 | HOMEPAGE = "http://www.alsa-project.org" |
5 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" | 5 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" |
6 | SECTION = "libs/multimedia" | 6 | SECTION = "libs/multimedia" |
7 | LICENSE = "LGPLv2.1 & GPLv2+" | 7 | LICENSE = "LGPL-2.1-only & GPL-2.0-or-later" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ |
9 | file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ | 9 | file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ |
10 | " | 10 | " |
11 | 11 | ||
12 | SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2 \ | 12 | SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2 \ |
13 | file://ad8c8e5503980295dd8e5e54a6285d2d7e32eb1e.patch" | 13 | file://0001-topology-correct-version-script-path.patch \ |
14 | SRC_URI[sha256sum] = "f7554be1a56cdff468b58fc1c29b95b64864c590038dd309c7a978c7116908f7" | 14 | " |
15 | SRC_URI[sha256sum] = "9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d" | ||
15 | 16 | ||
16 | inherit autotools pkgconfig | 17 | inherit autotools pkgconfig |
17 | 18 | ||
18 | EXTRA_OECONF += " \ | 19 | EXTRA_OECONF += " \ |
19 | ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ | 20 | ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ |
20 | --disable-python \ | 21 | --disable-python --disable-old-symbols \ |
21 | " | 22 | " |
22 | 23 | ||
23 | PACKAGES =+ "alsa-server alsa-conf libatopology" | 24 | PACKAGES =+ "alsa-server alsa-conf libatopology" |
24 | 25 | ||
25 | FILES_alsa-server = "${bindir}/*" | 26 | FILES:alsa-server = "${bindir}/*" |
26 | FILES_alsa-conf = "${datadir}/alsa/" | 27 | FILES:alsa-conf = "${datadir}/alsa/" |
27 | FILES_libatopology = "${libdir}/libatopology.so.*" | 28 | FILES:libatopology = "${libdir}/libatopology.so.*" |
28 | 29 | ||
29 | RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" | 30 | RDEPENDS:${PN}:class-target = "alsa-conf alsa-ucm-conf" |
30 | RDEPENDS_libatopology_class-target = "alsa-topology-conf" | 31 | RDEPENDS:libatopology:class-target = "alsa-topology-conf" |
31 | 32 | ||
32 | # upgrade path | 33 | # upgrade path |
33 | RPROVIDES_${PN} = "libasound" | 34 | RPROVIDES:${PN} = "libasound" |
34 | RREPLACES_${PN} = "libasound" | 35 | RREPLACES:${PN} = "libasound" |
35 | RCONFLICTS_${PN} = "libasound" | 36 | RCONFLICTS:${PN} = "libasound" |
36 | 37 | ||
37 | RPROVIDES_${PN}-dev = "alsa-dev" | 38 | RPROVIDES:${PN}-dev = "alsa-dev" |
38 | RREPLACES_${PN}-dev = "alsa-dev" | 39 | RREPLACES:${PN}-dev = "alsa-dev" |
39 | RCONFLICTS_${PN}-dev = "alsa-dev" | 40 | RCONFLICTS:${PN}-dev = "alsa-dev" |
40 | 41 | ||
41 | RPROVIDES_alsa-conf = "alsa-conf-base" | 42 | RPROVIDES:alsa-conf = "alsa-conf-base" |
42 | RREPLACES_alsa-conf = "alsa-conf-base" | 43 | RREPLACES:alsa-conf = "alsa-conf-base" |
43 | RCONFLICTS_alsa-conf = "alsa-conf-base" | 44 | RCONFLICTS:alsa-conf = "alsa-conf-base" |
44 | 45 | ||
45 | BBCLASSEXTEND = "native nativesdk" | 46 | BBCLASSEXTEND = "native nativesdk" |
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch b/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch new file mode 100644 index 0000000000..ff7745d637 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-plugins/0001-arcam_av.c-Include-missing-string.h.patch | |||
@@ -0,0 +1,25 @@ | |||
1 | From b01b176a665ba65979d74922955f51dc4888a713 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Tue, 23 Aug 2022 15:21:16 -0700 | ||
4 | Subject: [PATCH] arcam_av.c: Include missing string.h | ||
5 | |||
6 | bzero() function needs this header to be included | ||
7 | |||
8 | Upstream-Status: Submitted [https://github.com/alsa-project/alsa-plugins/pull/47] | ||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | --- | ||
11 | arcam-av/arcam_av.c | 1 + | ||
12 | 1 file changed, 1 insertion(+) | ||
13 | |||
14 | diff --git a/arcam-av/arcam_av.c b/arcam-av/arcam_av.c | ||
15 | index 63f9b4e..29fc537 100644 | ||
16 | --- a/arcam-av/arcam_av.c | ||
17 | +++ b/arcam-av/arcam_av.c | ||
18 | @@ -27,6 +27,7 @@ | ||
19 | #include <signal.h> | ||
20 | #include <stddef.h> | ||
21 | #include <stdio.h> | ||
22 | +#include <string.h> | ||
23 | #include <termios.h> | ||
24 | #include <unistd.h> | ||
25 | |||
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb index 1381896f38..9500462d5c 100644 --- a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.2.bb +++ b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.7.1.bb | |||
@@ -6,25 +6,26 @@ HOMEPAGE = "http://alsa-project.org" | |||
6 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" | 6 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" |
7 | SECTION = "multimedia" | 7 | SECTION = "multimedia" |
8 | 8 | ||
9 | # The primary license of alsa-plugins is LGPLv2.1. | 9 | # The primary license of alsa-plugins is LGPL-2.1-only. |
10 | # | 10 | # |
11 | # m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the | 11 | # m4/attributes.m4 is licensed under GPL-2.0-or-later. m4/attributes.m4 is part |
12 | # build system, and doesn't affect the licensing of the build result. | 12 | # of the build system, and doesn't affect the licensing of the build result. |
13 | # | 13 | # |
14 | # The samplerate plugin source code is licensed under GPLv2+ to be consistent | 14 | # The samplerate plugin source code is licensed under GPL-2.0-or-later to be |
15 | # with the libsamplerate license. However, if the licensee has a commercial | 15 | # consistent with the libsamplerate license. However, if the licensee has a |
16 | # license for libsamplerate, the samplerate plugin may be used under the terms | 16 | # commercial license for libsamplerate, the samplerate plugin may be used under |
17 | # of LGPLv2.1 like the rest of the plugins. | 17 | # the terms of LGPL-2.1-only like the rest of the plugins. |
18 | LICENSE = "LGPLv2.1 & GPLv2+" | 18 | LICENSE = "LGPL-2.1-only & GPL-2.0-or-later" |
19 | LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ | 19 | LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ |
20 | file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \ | 20 | file://COPYING.GPL;md5=59530bdf33659b29e73d4adb9f9f6552 \ |
21 | file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \ | 21 | file://m4/attributes.m4;endline=33;md5=bb8c6b2a67ac15156961e242fec33e50 \ |
22 | file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \ | 22 | file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \ |
23 | " | 23 | " |
24 | 24 | ||
25 | SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2" | 25 | SRC_URI = "https://www.alsa-project.org/files/pub/plugins/${BP}.tar.bz2 \ |
26 | SRC_URI[md5sum] = "8455e3c6fbc47f62f070afabc14ba575" | 26 | file://0001-arcam_av.c-Include-missing-string.h.patch \ |
27 | SRC_URI[sha256sum] = "1c0f06450c928d711719686c9dbece2d480184f36fab11b8f0534cb7b41e337d" | 27 | " |
28 | SRC_URI[sha256sum] = "8c337814954bb7c167456733a6046142a2931f12eccba3ec2a4ae618a3432511" | ||
28 | 29 | ||
29 | DEPENDS += "alsa-lib" | 30 | DEPENDS += "alsa-lib" |
30 | 31 | ||
@@ -35,7 +36,7 @@ PACKAGECONFIG ??= "\ | |||
35 | speexdsp \ | 36 | speexdsp \ |
36 | ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ | 37 | ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ |
37 | " | 38 | " |
38 | PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,avtp" | 39 | PACKAGECONFIG[aaf] = "--enable-aaf,--disable-aaf,libavtp" |
39 | PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" | 40 | PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" |
40 | PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav" | 41 | PACKAGECONFIG[libav] = "--enable-libav,--disable-libav,libav" |
41 | PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin" | 42 | PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin" |
@@ -50,10 +51,10 @@ PACKAGES_DYNAMIC = "^libasound-module-.*" | |||
50 | 51 | ||
51 | # The alsa-plugins package doesn't itself contain anything, it just depends on | 52 | # The alsa-plugins package doesn't itself contain anything, it just depends on |
52 | # all built plugins. | 53 | # all built plugins. |
53 | FILES_${PN} = "" | 54 | FILES:${PN} = "" |
54 | ALLOW_EMPTY_${PN} = "1" | 55 | ALLOW_EMPTY:${PN} = "1" |
55 | 56 | ||
56 | do_install_append() { | 57 | do_install:append() { |
57 | rm -f ${D}${libdir}/alsa-lib/*.la | 58 | rm -f ${D}${libdir}/alsa-lib/*.la |
58 | 59 | ||
59 | if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then | 60 | if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then |
@@ -66,10 +67,10 @@ do_install_append() { | |||
66 | fi | 67 | fi |
67 | } | 68 | } |
68 | 69 | ||
69 | python populate_packages_prepend() { | 70 | python populate_packages:prepend() { |
70 | plugindir = d.expand('${libdir}/alsa-lib/') | 71 | plugindir = d.expand('${libdir}/alsa-lib/') |
71 | packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='')) | 72 | packages = " ".join(do_split_packages(d, plugindir, r'^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends='')) |
72 | d.setVar("RDEPENDS_alsa-plugins", packages) | 73 | d.setVar("RDEPENDS:alsa-plugins", packages) |
73 | } | 74 | } |
74 | 75 | ||
75 | # Many plugins have a configuration file (plus a symlink in /etc) associated | 76 | # Many plugins have a configuration file (plus a symlink in /etc) associated |
@@ -85,51 +86,51 @@ python populate_packages_prepend() { | |||
85 | # cause big problems, but some kind of improvement to the packaging could | 86 | # cause big problems, but some kind of improvement to the packaging could |
86 | # probably be done here (at least it would be good to handle the different | 87 | # probably be done here (at least it would be good to handle the different |
87 | # plugins in a consistent way). | 88 | # plugins in a consistent way). |
88 | FILES_${MLPREFIX}libasound-module-ctl-arcam-av += "\ | 89 | FILES:${MLPREFIX}libasound-module-ctl-arcam-av += "\ |
89 | ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \ | 90 | ${datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf \ |
90 | ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \ | 91 | ${sysconfdir}/alsa/conf.d/50-arcam-av-ctl.conf \ |
91 | " | 92 | " |
92 | FILES_${MLPREFIX}libasound-module-pcm-a52 += "\ | 93 | FILES:${MLPREFIX}libasound-module-pcm-a52 += "\ |
93 | ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \ | 94 | ${datadir}/alsa/alsa.conf.d/60-a52-encoder.conf \ |
94 | ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \ | 95 | ${sysconfdir}/alsa/conf.d/60-a52-encoder.conf \ |
95 | " | 96 | " |
96 | FILES_${MLPREFIX}libasound-module-pcm-alsa-dsp += "\ | 97 | FILES:${MLPREFIX}libasound-module-pcm-alsa-dsp += "\ |
97 | ${datadir}/alsa/alsa.conf.d/98-maemo.conf \ | 98 | ${datadir}/alsa/alsa.conf.d/98-maemo.conf \ |
98 | ${sysconfdir}/alsa/conf.d/98-maemo.conf \ | 99 | ${sysconfdir}/alsa/conf.d/98-maemo.conf \ |
99 | " | 100 | " |
100 | FILES_${MLPREFIX}libasound-module-pcm-jack += "\ | 101 | FILES:${MLPREFIX}libasound-module-pcm-jack += "\ |
101 | ${datadir}/alsa/alsa.conf.d/50-jack.conf \ | 102 | ${datadir}/alsa/alsa.conf.d/50-jack.conf \ |
102 | ${sysconfdir}/alsa/conf.d/50-jack.conf \ | 103 | ${sysconfdir}/alsa/conf.d/50-jack.conf \ |
103 | " | 104 | " |
104 | FILES_${MLPREFIX}libasound-module-pcm-oss += "\ | 105 | FILES:${MLPREFIX}libasound-module-pcm-oss += "\ |
105 | ${datadir}/alsa/alsa.conf.d/50-oss.conf \ | 106 | ${datadir}/alsa/alsa.conf.d/50-oss.conf \ |
106 | ${sysconfdir}/alsa/conf.d/50-oss.conf \ | 107 | ${sysconfdir}/alsa/conf.d/50-oss.conf \ |
107 | " | 108 | " |
108 | FILES_${MLPREFIX}libasound-module-pcm-speex += "\ | 109 | FILES:${MLPREFIX}libasound-module-pcm-speex += "\ |
109 | ${datadir}/alsa/alsa.conf.d/60-speex.conf \ | 110 | ${datadir}/alsa/alsa.conf.d/60-speex.conf \ |
110 | ${sysconfdir}/alsa/conf.d/60-speex.conf \ | 111 | ${sysconfdir}/alsa/conf.d/60-speex.conf \ |
111 | " | 112 | " |
112 | FILES_${MLPREFIX}libasound-module-pcm-upmix += "\ | 113 | FILES:${MLPREFIX}libasound-module-pcm-upmix += "\ |
113 | ${datadir}/alsa/alsa.conf.d/60-upmix.conf \ | 114 | ${datadir}/alsa/alsa.conf.d/60-upmix.conf \ |
114 | ${sysconfdir}/alsa/conf.d/60-upmix.conf \ | 115 | ${sysconfdir}/alsa/conf.d/60-upmix.conf \ |
115 | " | 116 | " |
116 | FILES_${MLPREFIX}libasound-module-pcm-usb-stream += "\ | 117 | FILES:${MLPREFIX}libasound-module-pcm-usb-stream += "\ |
117 | ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \ | 118 | ${datadir}/alsa/alsa.conf.d/98-usb-stream.conf \ |
118 | ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \ | 119 | ${sysconfdir}/alsa/conf.d/98-usb-stream.conf \ |
119 | " | 120 | " |
120 | FILES_${MLPREFIX}libasound-module-pcm-vdownmix += "\ | 121 | FILES:${MLPREFIX}libasound-module-pcm-vdownmix += "\ |
121 | ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \ | 122 | ${datadir}/alsa/alsa.conf.d/60-vdownmix.conf \ |
122 | ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \ | 123 | ${sysconfdir}/alsa/conf.d/60-vdownmix.conf \ |
123 | " | 124 | " |
124 | FILES_${MLPREFIX}libasound-module-rate-lavrate += "\ | 125 | FILES:${MLPREFIX}libasound-module-rate-lavrate += "\ |
125 | ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \ | 126 | ${datadir}/alsa/alsa.conf.d/10-rate-lav.conf \ |
126 | ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \ | 127 | ${sysconfdir}/alsa/conf.d/10-rate-lav.conf \ |
127 | " | 128 | " |
128 | FILES_${MLPREFIX}libasound-module-rate-samplerate += "\ | 129 | FILES:${MLPREFIX}libasound-module-rate-samplerate += "\ |
129 | ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \ | 130 | ${datadir}/alsa/alsa.conf.d/10-samplerate.conf \ |
130 | ${sysconfdir}/alsa/conf.d/10-samplerate.conf \ | 131 | ${sysconfdir}/alsa/conf.d/10-samplerate.conf \ |
131 | " | 132 | " |
132 | FILES_${MLPREFIX}libasound-module-rate-speexrate += "\ | 133 | FILES:${MLPREFIX}libasound-module-rate-speexrate += "\ |
133 | ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \ | 134 | ${datadir}/alsa/alsa.conf.d/10-speexrate.conf \ |
134 | ${sysconfdir}/alsa/conf.d/10-speexrate.conf \ | 135 | ${sysconfdir}/alsa/conf.d/10-speexrate.conf \ |
135 | " | 136 | " |
@@ -150,25 +151,25 @@ FILES_${MLPREFIX}libasound-module-rate-speexrate += "\ | |||
150 | # The symlinks cause QA errors, because usually it's a bug if a non | 151 | # The symlinks cause QA errors, because usually it's a bug if a non |
151 | # -dev/-dbg/-nativesdk package contains links to .so files, but in this case | 152 | # -dev/-dbg/-nativesdk package contains links to .so files, but in this case |
152 | # the errors are false positives, so we disable the QA checks. | 153 | # the errors are false positives, so we disable the QA checks. |
153 | FILES_${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so" | 154 | FILES:${MLPREFIX}libasound-module-rate-lavrate += "${libdir}/alsa-lib/*rate_lavrate_*.so" |
154 | FILES_${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so" | 155 | FILES:${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so" |
155 | FILES_${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so" | 156 | FILES:${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so" |
156 | INSANE_SKIP_${MLPREFIX}libasound-module-rate-lavrate = "dev-so" | 157 | INSANE_SKIP:${MLPREFIX}libasound-module-rate-lavrate = "dev-so" |
157 | INSANE_SKIP_${MLPREFIX}libasound-module-rate-samplerate = "dev-so" | 158 | INSANE_SKIP:${MLPREFIX}libasound-module-rate-samplerate = "dev-so" |
158 | INSANE_SKIP_${MLPREFIX}libasound-module-rate-speexrate = "dev-so" | 159 | INSANE_SKIP:${MLPREFIX}libasound-module-rate-speexrate = "dev-so" |
159 | 160 | ||
160 | # 50-pulseaudio.conf defines a device named "pulse" that applications can use | 161 | # 50-pulseaudio.conf defines a device named "pulse" that applications can use |
161 | # if they explicitly want to use the PulseAudio plugin. | 162 | # if they explicitly want to use the PulseAudio plugin. |
162 | # 99-pulseaudio-default.conf configures the "default" device to use the | 163 | # 99-pulseaudio-default.conf configures the "default" device to use the |
163 | # PulseAudio plugin. | 164 | # PulseAudio plugin. |
164 | FILES_${PN}-pulseaudio-conf += "\ | 165 | FILES:${PN}-pulseaudio-conf += "\ |
165 | ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \ | 166 | ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \ |
166 | ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \ | 167 | ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \ |
167 | ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \ | 168 | ${sysconfdir}/alsa/conf.d/50-pulseaudio.conf \ |
168 | ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \ | 169 | ${sysconfdir}/alsa/conf.d/99-pulseaudio-default.conf \ |
169 | " | 170 | " |
170 | 171 | ||
171 | RDEPENDS_${PN}-pulseaudio-conf += "\ | 172 | RDEPENDS:${PN}-pulseaudio-conf += "\ |
172 | ${MLPREFIX}libasound-module-conf-pulse \ | 173 | ${MLPREFIX}libasound-module-conf-pulse \ |
173 | ${MLPREFIX}libasound-module-ctl-pulse \ | 174 | ${MLPREFIX}libasound-module-ctl-pulse \ |
174 | ${MLPREFIX}libasound-module-pcm-pulse \ | 175 | ${MLPREFIX}libasound-module-pcm-pulse \ |
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb index 0a25d809b0..53868041c0 100644 --- a/meta/recipes-multimedia/alsa/alsa-tools_1.2.2.bb +++ b/meta/recipes-multimedia/alsa/alsa-tools_1.2.11.bb | |||
@@ -5,7 +5,7 @@ firmware loaders for pcmcia, USB and the hdsp devices." | |||
5 | HOMEPAGE = "http://www.alsa-project.org" | 5 | HOMEPAGE = "http://www.alsa-project.org" |
6 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" | 6 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" |
7 | SECTION = "console/utils" | 7 | SECTION = "console/utils" |
8 | LICENSE = "GPLv2 & LGPLv2+" | 8 | LICENSE = "GPL-2.0-only & LGPL-2.0-or-later" |
9 | DEPENDS = "alsa-lib" | 9 | DEPENDS = "alsa-lib" |
10 | 10 | ||
11 | LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ | 11 | LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ |
@@ -14,8 +14,7 @@ LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=59530bdf33659b29e73d4adb9f9f65 | |||
14 | 14 | ||
15 | SRC_URI = "https://www.alsa-project.org/files/pub/tools/${BP}.tar.bz2" | 15 | SRC_URI = "https://www.alsa-project.org/files/pub/tools/${BP}.tar.bz2" |
16 | 16 | ||
17 | SRC_URI[md5sum] = "4e6187d2c3a8c73a9d75d66a72faed27" | 17 | SRC_URI[sha256sum] = "0915c9634a502fd3655ca9c574d259bc9e79983d91d45aeacff6f3c00f8ae3e9" |
18 | SRC_URI[sha256sum] = "bfd3c7aae1289269605d3da02279159b10e3dabdd31e658cbceaa30170957349" | ||
19 | 18 | ||
20 | inherit autotools-brokensep pkgconfig | 19 | inherit autotools-brokensep pkgconfig |
21 | # brokensep as as10k1 (and probably more) fail out of tree | 20 | # brokensep as as10k1 (and probably more) fail out of tree |
@@ -72,6 +71,7 @@ python do_compile() { | |||
72 | } | 71 | } |
73 | 72 | ||
74 | python do_install() { | 73 | python do_install() { |
74 | d.delVarFlag("autotools_do_install", "cleandirs") | ||
75 | for subdir in d.getVar("PACKAGECONFIG").split(): | 75 | for subdir in d.getVar("PACKAGECONFIG").split(): |
76 | subdir = subdir.replace("--", "/") | 76 | subdir = subdir.replace("--", "/") |
77 | bb.note("Installing %s" % subdir) | 77 | bb.note("Installing %s" % subdir) |
@@ -86,4 +86,4 @@ python do_install() { | |||
86 | pass | 86 | pass |
87 | } | 87 | } |
88 | 88 | ||
89 | FILES_${PN} += "${datadir}" | 89 | FILES:${PN} += "${datadir}" |
diff --git a/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb index 26542fbbbc..4374a6bb6d 100644 --- a/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.4.bb +++ b/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.5.1.bb | |||
@@ -8,7 +8,8 @@ LICENSE = "BSD-3-Clause" | |||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" | 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" |
9 | 9 | ||
10 | SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" | 10 | SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" |
11 | SRC_URI[sha256sum] = "55e0e6e42eca4cc7656c257af2440cdc65b83689dca49fc60ca0194db079ed07" | 11 | SRC_URI[sha256sum] = "f7c5bae1545abcd73824bc97f4e72c340e11abea188ba0f1c06f5e0ad776b179" |
12 | # Something went wrong at upstream tarballing | ||
12 | 13 | ||
13 | inherit allarch | 14 | inherit allarch |
14 | 15 | ||
@@ -19,4 +20,4 @@ do_install() { | |||
19 | 20 | ||
20 | PACKAGES = "${PN}" | 21 | PACKAGES = "${PN}" |
21 | 22 | ||
22 | FILES_${PN} = "*" | 23 | FILES:${PN} = "*" |
diff --git a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb index 32cf41c8fd..ce1a42c9b8 100644 --- a/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bb +++ b/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.11.bb | |||
@@ -8,7 +8,8 @@ LICENSE = "BSD-3-Clause" | |||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" | 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" |
9 | 9 | ||
10 | SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" | 10 | SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" |
11 | SRC_URI[sha256sum] = "2c3b535c77dcb9aaf62a61f4f8324f1ab184162f105f7ec9ed1e37c742fcd340" | 11 | SRC_URI[sha256sum] = "387c01cf30e2a1676d7b8f72b2681cf219abca70dd1ec2a9e33add5bf3feae81" |
12 | # Something went wrong at upstream tarballing | ||
12 | 13 | ||
13 | inherit allarch | 14 | inherit allarch |
14 | 15 | ||
@@ -20,4 +21,4 @@ do_install() { | |||
20 | 21 | ||
21 | PACKAGES = "${PN}" | 22 | PACKAGES = "${PN}" |
22 | 23 | ||
23 | FILES_${PN} = "*" | 24 | FILES:${PN} = "*" |
diff --git a/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb deleted file mode 100644 index 048fef68a5..0000000000 --- a/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.4.bb +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | require alsa-utils.inc | ||
2 | |||
3 | SUMMARY = "Shell scripts that show help info and create ALSA configuration files" | ||
4 | PROVIDES = "alsa-utils-alsaconf" | ||
5 | |||
6 | FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:" | ||
7 | |||
8 | PACKAGES = "${PN}" | ||
9 | RDEPENDS_${PN} += "bash" | ||
10 | |||
11 | FILES_${PN} = "${sbindir}/alsaconf \ | ||
12 | ${sbindir}/alsa-info.sh \ | ||
13 | ${sbindir}/alsabat-test.sh \ | ||
14 | " | ||
15 | |||
16 | S = "${WORKDIR}/alsa-utils-${PV}" | ||
17 | |||
18 | do_install() { | ||
19 | install -d ${D}${sbindir} | ||
20 | install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/ | ||
21 | install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/ | ||
22 | if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then | ||
23 | install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/ | ||
24 | fi | ||
25 | } | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-utils.inc b/meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb index f2e8133d2c..e598fac9f8 100644 --- a/meta/recipes-multimedia/alsa/alsa-utils.inc +++ b/meta/recipes-multimedia/alsa/alsa-utils_1.2.11.bb | |||
@@ -4,8 +4,9 @@ designed to allow users to control the various parts of the ALSA system." | |||
4 | HOMEPAGE = "http://www.alsa-project.org" | 4 | HOMEPAGE = "http://www.alsa-project.org" |
5 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" | 5 | BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" |
6 | SECTION = "console/utils" | 6 | SECTION = "console/utils" |
7 | # Some parts are GPLv2+, some are only GPLv2 (e.g. axfer, alsactl) so result is GPLv2 | 7 | # Some parts are GPL-2.0-or-later, some are GPL-2.0-only (e.g. axfer, alsactl) |
8 | LICENSE = "GPLv2" | 8 | # so result is GPL-2.0-only |
9 | LICENSE = "GPL-2.0-only" | ||
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ |
10 | file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642" | 11 | file://alsactl/utils.c;beginline=3;endline=18;md5=96cc06a4cebe5eb7975688ffb0e65642" |
11 | DEPENDS = "alsa-lib ncurses libsamplerate0" | 12 | DEPENDS = "alsa-lib ncurses libsamplerate0" |
@@ -23,8 +24,9 @@ PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev | |||
23 | PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" | 24 | PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" |
24 | 25 | ||
25 | # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe | 26 | # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe |
26 | SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2" | 27 | SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2 \ |
27 | SRC_URI[sha256sum] = "98ffc2d599de0577d423a48fa5f20a992ca0b82d812ed1f2e58ade49ac6da426" | 28 | " |
29 | SRC_URI[sha256sum] = "9ac6ca3a883f151e568dcf979b8d2e5cbecc51b819bb0e6bb8a2e9b34cc428a7" | ||
28 | 30 | ||
29 | # On build machines with python-docutils (not python3-docutils !!) installed | 31 | # On build machines with python-docutils (not python3-docutils !!) installed |
30 | # rst2man (not rst2man.py) is detected and compile fails with | 32 | # rst2man (not rst2man.py) is detected and compile fails with |
@@ -52,56 +54,71 @@ ALSA_UTILS_PKGS = "\ | |||
52 | alsa-utils-alsactl \ | 54 | alsa-utils-alsactl \ |
53 | alsa-utils-alsaloop \ | 55 | alsa-utils-alsaloop \ |
54 | alsa-utils-alsaucm \ | 56 | alsa-utils-alsaucm \ |
57 | alsa-utils-scripts \ | ||
58 | alsa-utils-nhltdmicinfo \ | ||
55 | " | 59 | " |
56 | 60 | ||
57 | PACKAGES += "${ALSA_UTILS_PKGS}" | 61 | PACKAGES += "${ALSA_UTILS_PKGS}" |
58 | RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}" | 62 | RDEPENDS:${PN} += "${ALSA_UTILS_PKGS}" |
59 | 63 | ||
60 | FILES_${PN} = "" | 64 | FILES:${PN} = "" |
61 | ALLOW_EMPTY_alsa-utils = "1" | 65 | ALLOW_EMPTY:alsa-utils = "1" |
62 | FILES_alsa-utils-alsabat = "${bindir}/alsabat" | 66 | FILES:alsa-utils-alsabat = "${bindir}/alsabat" |
63 | FILES_alsa-utils-alsatplg = "${bindir}/alsatplg" | 67 | FILES:alsa-utils-alsatplg = "${bindir}/alsatplg ${libdir}/alsa-topology" |
64 | FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer" | 68 | FILES:alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord ${bindir}/axfer" |
65 | FILES_alsa-utils-amixer = "${bindir}/amixer" | 69 | FILES:alsa-utils-amixer = "${bindir}/amixer" |
66 | FILES_alsa-utils-alsamixer = "${bindir}/alsamixer" | 70 | FILES:alsa-utils-alsamixer = "${bindir}/alsamixer" |
67 | FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/" | 71 | FILES:alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/" |
68 | FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi" | 72 | FILES:alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi" |
69 | FILES_alsa-utils-aconnect = "${bindir}/aconnect" | 73 | FILES:alsa-utils-aconnect = "${bindir}/aconnect" |
70 | FILES_alsa-utils-aseqnet = "${bindir}/aseqnet" | 74 | FILES:alsa-utils-aseqnet = "${bindir}/aseqnet" |
71 | FILES_alsa-utils-iecset = "${bindir}/iecset" | 75 | FILES:alsa-utils-iecset = "${bindir}/iecset" |
72 | FILES_alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d/90-alsa-restore.rules */*/udev/rules.d/90-alsa-restore.rules ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/" | 76 | FILES:alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d/90-alsa-restore.rules */*/udev/rules.d/90-alsa-restore.rules ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/" |
73 | FILES_alsa-utils-aseqdump = "${bindir}/aseqdump" | 77 | FILES:alsa-utils-aseqdump = "${bindir}/aseqdump" |
74 | FILES_alsa-utils-alsaloop = "${bindir}/alsaloop" | 78 | FILES:alsa-utils-alsaloop = "${bindir}/alsaloop" |
75 | FILES_alsa-utils-alsaucm = "${bindir}/alsaucm */udev/rules.d/89-alsa-ucm.rules */*/udev/rules.d/89-alsa-ucm.rules" | 79 | FILES:alsa-utils-alsaucm = "${bindir}/alsaucm */udev/rules.d/89-alsa-ucm.rules */*/udev/rules.d/89-alsa-ucm.rules" |
76 | 80 | FILES:alsa-utils-scripts = "${sbindir}/alsaconf \ | |
77 | SUMMARY_alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver" | 81 | ${sbindir}/alsa-info.sh \ |
78 | SUMMARY_alsa-utils-alsatplg = "Converts topology text files into binary format for kernel" | 82 | ${sbindir}/alsabat-test.sh \ |
79 | SUMMARY_alsa-utils-aplay = "Play (and record) sound files using ALSA" | 83 | " |
80 | SUMMARY_alsa-utils-amixer = "Command-line control for ALSA mixer and settings" | 84 | FILES:alsa-utils-nhltdmicinfo = "${bindir}/nhlt-dmic-info" |
81 | SUMMARY_alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings" | 85 | |
82 | SUMMARY_alsa-utils-speakertest = "ALSA surround speaker test utility" | 86 | SUMMARY:alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver" |
83 | SUMMARY_alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA" | 87 | SUMMARY:alsa-utils-alsatplg = "Converts topology text files into binary format for kernel" |
84 | SUMMARY_alsa-utils-aconnect = "ALSA sequencer connection manager" | 88 | SUMMARY:alsa-utils-aplay = "Play (and record) sound files using ALSA" |
85 | SUMMARY_alsa-utils-aseqnet = "Network client/server for ALSA sequencer" | 89 | SUMMARY:alsa-utils-amixer = "Command-line control for ALSA mixer and settings" |
86 | SUMMARY_alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits" | 90 | SUMMARY:alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings" |
87 | SUMMARY_alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state" | 91 | SUMMARY:alsa-utils-speakertest = "ALSA surround speaker test utility" |
88 | SUMMARY_alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port" | 92 | SUMMARY:alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA" |
89 | SUMMARY_alsa-utils-alsaloop = "ALSA PCM loopback utility" | 93 | SUMMARY:alsa-utils-aconnect = "ALSA sequencer connection manager" |
90 | SUMMARY_alsa-utils-alsaucm = "ALSA Use Case Manager" | 94 | SUMMARY:alsa-utils-aseqnet = "Network client/server for ALSA sequencer" |
91 | 95 | SUMMARY:alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits" | |
92 | RRECOMMENDS_alsa-utils-alsactl = "alsa-states" | 96 | SUMMARY:alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state" |
97 | SUMMARY:alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port" | ||
98 | SUMMARY:alsa-utils-alsaloop = "ALSA PCM loopback utility" | ||
99 | SUMMARY:alsa-utils-alsaucm = "ALSA Use Case Manager" | ||
100 | SUMMARY:alsa-utils-scripts = "Shell scripts that show help info and create ALSA configuration files" | ||
101 | SUMMARY:alsa-utils-nhltdmicinfo = "Dumps microphone array information from ACPI NHLT table" | ||
102 | |||
103 | RRECOMMENDS:alsa-utils-alsactl = "alsa-states" | ||
93 | 104 | ||
94 | do_install() { | 105 | do_install() { |
95 | autotools_do_install | 106 | autotools_do_install |
96 | 107 | ||
97 | # We don't ship this here because it requires a dependency on bash. | 108 | install -d ${D}${sbindir} |
98 | # See alsa-utils-scripts_${PV}.bb | 109 | install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/ |
99 | rm ${D}${sbindir}/alsaconf | 110 | install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/ |
100 | rm ${D}${sbindir}/alsa-info.sh | 111 | if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then |
101 | rm -f ${D}${sbindir}/alsabat-test.sh | 112 | install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/ |
113 | fi | ||
102 | 114 | ||
103 | # If udev is disabled, we told configure to install the rules | 115 | # If udev is disabled, we told configure to install the rules |
104 | # in /unwanted, so we can remove them now. If udev is enabled, | 116 | # in /unwanted, so we can remove them now. If udev is enabled, |
105 | # then /unwanted won't exist and this will have no effect. | 117 | # then /unwanted won't exist and this will have no effect. |
106 | rm -rf ${D}/unwanted | 118 | rm -rf ${D}/unwanted |
107 | } | 119 | } |
120 | |||
121 | |||
122 | PROVIDES = "alsa-utils-alsaconf alsa-utils-scripts" | ||
123 | |||
124 | RDEPENDS:${PN}-scripts += "bash" | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb deleted file mode 100644 index 3430288da4..0000000000 --- a/meta/recipes-multimedia/alsa/alsa-utils_1.2.4.bb +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | require alsa-utils.inc | ||
2 | |||
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch deleted file mode 100644 index 7635c9196a..0000000000 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | From aebb72e025cbfbd4a6765354f6f565ad4ac89789 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jun Zhao <barryjzhao@tencent.com> | ||
3 | Date: Sun, 12 Jul 2020 05:48:48 +0800 | ||
4 | Subject: [PATCH] lavf/srt: fix build fail when used the libsrt 1.4.1 | ||
5 | |||
6 | lavf/srt: fix build fail when used the libsrt 1.4.1 | ||
7 | |||
8 | libsrt changed the: | ||
9 | SRTO_SMOOTHER -> SRTO_CONGESTION | ||
10 | SRTO_STRICTENC -> SRTO_ENFORCEDENCRYPTION | ||
11 | and removed the front of deprecated options (SRTO_SMOOTHER/SRTO_STRICTENC) | ||
12 | in the header, it's lead to build fail | ||
13 | |||
14 | fix #8760 | ||
15 | |||
16 | Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/7c59e1b0f285cd7c7b35fcd71f49c5fd52cf9315] | ||
17 | |||
18 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
19 | Signed-off-by: Jun Zhao <barryjzhao@tencent.com> | ||
20 | --- | ||
21 | libavformat/libsrt.c | 8 ++++++++ | ||
22 | 1 file changed, 8 insertions(+) | ||
23 | |||
24 | diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c | ||
25 | index 4de575b..4719ce0 100644 | ||
26 | --- a/libavformat/libsrt.c | ||
27 | +++ b/libavformat/libsrt.c | ||
28 | @@ -313,8 +313,12 @@ static int libsrt_set_options_pre(URLContext *h, int fd) | ||
29 | (s->pbkeylen >= 0 && libsrt_setsockopt(h, fd, SRTO_PBKEYLEN, "SRTO_PBKEYLEN", &s->pbkeylen, sizeof(s->pbkeylen)) < 0) || | ||
30 | (s->passphrase && libsrt_setsockopt(h, fd, SRTO_PASSPHRASE, "SRTO_PASSPHRASE", s->passphrase, strlen(s->passphrase)) < 0) || | ||
31 | #if SRT_VERSION_VALUE >= 0x010302 | ||
32 | +#if SRT_VERSION_VALUE >= 0x010401 | ||
33 | + (s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_ENFORCEDENCRYPTION, "SRTO_ENFORCEDENCRYPTION", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) || | ||
34 | +#else | ||
35 | /* SRTO_STRICTENC == SRTO_ENFORCEDENCRYPTION (53), but for compatibility, we used SRTO_STRICTENC */ | ||
36 | (s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_STRICTENC, "SRTO_STRICTENC", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) || | ||
37 | +#endif | ||
38 | (s->kmrefreshrate >= 0 && libsrt_setsockopt(h, fd, SRTO_KMREFRESHRATE, "SRTO_KMREFRESHRATE", &s->kmrefreshrate, sizeof(s->kmrefreshrate)) < 0) || | ||
39 | (s->kmpreannounce >= 0 && libsrt_setsockopt(h, fd, SRTO_KMPREANNOUNCE, "SRTO_KMPREANNOUNCE", &s->kmpreannounce, sizeof(s->kmpreannounce)) < 0) || | ||
40 | #endif | ||
41 | @@ -333,7 +337,11 @@ static int libsrt_set_options_pre(URLContext *h, int fd) | ||
42 | (s->lossmaxttl >= 0 && libsrt_setsockopt(h, fd, SRTO_LOSSMAXTTL, "SRTO_LOSSMAXTTL", &s->lossmaxttl, sizeof(s->lossmaxttl)) < 0) || | ||
43 | (s->minversion >= 0 && libsrt_setsockopt(h, fd, SRTO_MINVERSION, "SRTO_MINVERSION", &s->minversion, sizeof(s->minversion)) < 0) || | ||
44 | (s->streamid && libsrt_setsockopt(h, fd, SRTO_STREAMID, "SRTO_STREAMID", s->streamid, strlen(s->streamid)) < 0) || | ||
45 | +#if SRT_VERSION_VALUE >= 0x010401 | ||
46 | + (s->smoother && libsrt_setsockopt(h, fd, SRTO_CONGESTION, "SRTO_CONGESTION", s->smoother, strlen(s->smoother)) < 0) || | ||
47 | +#else | ||
48 | (s->smoother && libsrt_setsockopt(h, fd, SRTO_SMOOTHER, "SRTO_SMOOTHER", s->smoother, strlen(s->smoother)) < 0) || | ||
49 | +#endif | ||
50 | (s->messageapi >= 0 && libsrt_setsockopt(h, fd, SRTO_MESSAGEAPI, "SRTO_MESSAGEAPI", &s->messageapi, sizeof(s->messageapi)) < 0) || | ||
51 | (s->payload_size >= 0 && libsrt_setsockopt(h, fd, SRTO_PAYLOADSIZE, "SRTO_PAYLOADSIZE", &s->payload_size, sizeof(s->payload_size)) < 0) || | ||
52 | ((h->flags & AVIO_FLAG_WRITE) && libsrt_setsockopt(h, fd, SRTO_SENDER, "SRTO_SENDER", &yes, sizeof(yes)) < 0)) { | ||
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch deleted file mode 100644 index 3b503c49c9..0000000000 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libavutil-include-assembly-with-full-path-from-sourc.patch +++ /dev/null | |||
@@ -1,97 +0,0 @@ | |||
1 | From 24a58d70cbb3997e471366bd5afe54be9007bfb1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Tue, 10 Nov 2020 15:32:14 +0000 | ||
4 | Subject: [PATCH] libavutil: include assembly with full path from source root | ||
5 | |||
6 | Otherwise nasm writes the full host-specific paths into .o | ||
7 | output, which breaks binary reproducibility. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
11 | --- | ||
12 | libavutil/x86/cpuid.asm | 2 +- | ||
13 | libavutil/x86/emms.asm | 2 +- | ||
14 | libavutil/x86/fixed_dsp.asm | 2 +- | ||
15 | libavutil/x86/float_dsp.asm | 2 +- | ||
16 | libavutil/x86/lls.asm | 2 +- | ||
17 | libavutil/x86/pixelutils.asm | 2 +- | ||
18 | 6 files changed, 6 insertions(+), 6 deletions(-) | ||
19 | |||
20 | diff --git a/libavutil/x86/cpuid.asm b/libavutil/x86/cpuid.asm | ||
21 | index c3f7866..766f77f 100644 | ||
22 | --- a/libavutil/x86/cpuid.asm | ||
23 | +++ b/libavutil/x86/cpuid.asm | ||
24 | @@ -21,7 +21,7 @@ | ||
25 | ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
26 | ;****************************************************************************** | ||
27 | |||
28 | -%include "x86util.asm" | ||
29 | +%include "libavutil/x86/x86util.asm" | ||
30 | |||
31 | SECTION .text | ||
32 | |||
33 | diff --git a/libavutil/x86/emms.asm b/libavutil/x86/emms.asm | ||
34 | index 8611762..df84f22 100644 | ||
35 | --- a/libavutil/x86/emms.asm | ||
36 | +++ b/libavutil/x86/emms.asm | ||
37 | @@ -18,7 +18,7 @@ | ||
38 | ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
39 | ;****************************************************************************** | ||
40 | |||
41 | -%include "x86util.asm" | ||
42 | +%include "libavutil/x86/x86util.asm" | ||
43 | |||
44 | SECTION .text | ||
45 | |||
46 | diff --git a/libavutil/x86/fixed_dsp.asm b/libavutil/x86/fixed_dsp.asm | ||
47 | index 979dd5c..2f41185 100644 | ||
48 | --- a/libavutil/x86/fixed_dsp.asm | ||
49 | +++ b/libavutil/x86/fixed_dsp.asm | ||
50 | @@ -20,7 +20,7 @@ | ||
51 | ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
52 | ;****************************************************************************** | ||
53 | |||
54 | -%include "x86util.asm" | ||
55 | +%include "libavutil/x86/x86util.asm" | ||
56 | |||
57 | SECTION .text | ||
58 | |||
59 | diff --git a/libavutil/x86/float_dsp.asm b/libavutil/x86/float_dsp.asm | ||
60 | index 517fd63..b773e61 100644 | ||
61 | --- a/libavutil/x86/float_dsp.asm | ||
62 | +++ b/libavutil/x86/float_dsp.asm | ||
63 | @@ -20,7 +20,7 @@ | ||
64 | ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
65 | ;****************************************************************************** | ||
66 | |||
67 | -%include "x86util.asm" | ||
68 | +%include "libavutil/x86/x86util.asm" | ||
69 | |||
70 | SECTION_RODATA 32 | ||
71 | pd_reverse: dd 7, 6, 5, 4, 3, 2, 1, 0 | ||
72 | diff --git a/libavutil/x86/lls.asm b/libavutil/x86/lls.asm | ||
73 | index 317fba6..d2526d1 100644 | ||
74 | --- a/libavutil/x86/lls.asm | ||
75 | +++ b/libavutil/x86/lls.asm | ||
76 | @@ -20,7 +20,7 @@ | ||
77 | ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
78 | ;****************************************************************************** | ||
79 | |||
80 | -%include "x86util.asm" | ||
81 | +%include "libavutil/x86/x86util.asm" | ||
82 | |||
83 | SECTION .text | ||
84 | |||
85 | diff --git a/libavutil/x86/pixelutils.asm b/libavutil/x86/pixelutils.asm | ||
86 | index 36c57c5..8b45ead 100644 | ||
87 | --- a/libavutil/x86/pixelutils.asm | ||
88 | +++ b/libavutil/x86/pixelutils.asm | ||
89 | @@ -21,7 +21,7 @@ | ||
90 | ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
91 | ;****************************************************************************** | ||
92 | |||
93 | -%include "x86util.asm" | ||
94 | +%include "libavutil/x86/x86util.asm" | ||
95 | |||
96 | SECTION .text | ||
97 | |||
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch deleted file mode 100644 index 6b96bd674f..0000000000 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35964.patch +++ /dev/null | |||
@@ -1,75 +0,0 @@ | |||
1 | From 27a99e2c7d450fef15594671eef4465c8a166bd7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Michael Niedermayer <michael@niedermayer.cc> | ||
3 | Date: Wed, 28 Oct 2020 20:11:54 +0100 | ||
4 | Subject: [PATCH] avformat/vividas: improve extradata packing checks in | ||
5 | track_header() | ||
6 | |||
7 | Fixes: out of array accesses | ||
8 | Fixes: 26622/clusterfuzz-testcase-minimized-ffmpeg_dem_VIVIDAS_fuzzer-6581200338288640 | ||
9 | |||
10 | Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg | ||
11 | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> | ||
12 | |||
13 | Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/27a99e2c7d450fef15594671eef4465c8a166bd7] | ||
14 | |||
15 | CVE: CVE-2020-35964 | ||
16 | |||
17 | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> | ||
18 | Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> | ||
19 | --- | ||
20 | libavformat/vividas.c | 12 ++++++------ | ||
21 | 1 file changed, 6 insertions(+), 6 deletions(-) | ||
22 | |||
23 | diff --git a/libavformat/vividas.c b/libavformat/vividas.c | ||
24 | index 83d0ed116787..46c66bf9a0ae 100644 | ||
25 | --- a/libavformat/vividas.c | ||
26 | +++ b/libavformat/vividas.c | ||
27 | @@ -28,6 +28,7 @@ | ||
28 | * @sa http://wiki.multimedia.cx/index.php?title=Vividas_VIV | ||
29 | */ | ||
30 | |||
31 | +#include "libavutil/avassert.h" | ||
32 | #include "libavutil/intreadwrite.h" | ||
33 | #include "avio_internal.h" | ||
34 | #include "avformat.h" | ||
35 | @@ -379,7 +380,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * | ||
36 | |||
37 | if (avio_tell(pb) < off) { | ||
38 | int num_data; | ||
39 | - int xd_size = 0; | ||
40 | + int xd_size = 1; | ||
41 | int data_len[256]; | ||
42 | int offset = 1; | ||
43 | uint8_t *p; | ||
44 | @@ -393,10 +394,10 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * | ||
45 | return AVERROR_INVALIDDATA; | ||
46 | } | ||
47 | data_len[j] = len; | ||
48 | - xd_size += len; | ||
49 | + xd_size += len + 1 + len/255; | ||
50 | } | ||
51 | |||
52 | - ret = ff_alloc_extradata(st->codecpar, 64 + xd_size + xd_size / 255); | ||
53 | + ret = ff_alloc_extradata(st->codecpar, xd_size); | ||
54 | if (ret < 0) | ||
55 | return ret; | ||
56 | |||
57 | @@ -405,9 +406,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * | ||
58 | |||
59 | for (j = 0; j < num_data - 1; j++) { | ||
60 | unsigned delta = av_xiphlacing(&p[offset], data_len[j]); | ||
61 | - if (delta > data_len[j]) { | ||
62 | - return AVERROR_INVALIDDATA; | ||
63 | - } | ||
64 | + av_assert0(delta <= xd_size - offset); | ||
65 | offset += delta; | ||
66 | } | ||
67 | |||
68 | @@ -418,6 +417,7 @@ static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t * | ||
69 | av_freep(&st->codecpar->extradata); | ||
70 | break; | ||
71 | } | ||
72 | + av_assert0(data_len[j] <= xd_size - offset); | ||
73 | offset += data_len[j]; | ||
74 | } | ||
75 | |||
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch deleted file mode 100644 index ddab8e9aca..0000000000 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | From 3e5959b3457f7f1856d997261e6ac672bba49e8b Mon Sep 17 00:00:00 2001 | ||
2 | From: Michael Niedermayer <michael@niedermayer.cc> | ||
3 | Date: Sat, 24 Oct 2020 22:21:48 +0200 | ||
4 | Subject: [PATCH] avcodec/exr: Check ymin vs. h | ||
5 | |||
6 | Fixes: out of array access | ||
7 | Fixes: 26532/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5613925708857344 | ||
8 | Fixes: 27443/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5631239813595136 | ||
9 | |||
10 | Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg | ||
11 | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> | ||
12 | |||
13 | Upstream-Status: Backport [https://github.com/FFmpeg/FFmpeg/commit/3e5959b3457f7f1856d997261e6ac672bba49e8b] | ||
14 | |||
15 | CVE: CVE-2020-35965 | ||
16 | |||
17 | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> | ||
18 | Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com> | ||
19 | --- | ||
20 | libavcodec/exr.c | 2 +- | ||
21 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
22 | |||
23 | diff --git a/libavcodec/exr.c b/libavcodec/exr.c | ||
24 | index e907c5c46401..8b701d1cd298 100644 | ||
25 | --- a/libavcodec/exr.c | ||
26 | +++ b/libavcodec/exr.c | ||
27 | @@ -1830,7 +1830,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, | ||
28 | // Zero out the start if ymin is not 0 | ||
29 | for (i = 0; i < planes; i++) { | ||
30 | ptr = picture->data[i]; | ||
31 | - for (y = 0; y < s->ymin; y++) { | ||
32 | + for (y = 0; y < FFMIN(s->ymin, s->h); y++) { | ||
33 | memset(ptr, 0, out_line_size); | ||
34 | ptr += picture->linesize[i]; | ||
35 | } | ||
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch b/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch deleted file mode 100644 index 69429af8f0..0000000000 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | It will add -mips64r6 and -mips64r2 to cmdline which will | ||
2 | cause conflicts | ||
3 | |||
4 | in OE we user mips32r2 and mips64r2 for mips arch versions | ||
5 | so there is no benefit of detecting it automatically by | ||
6 | poking at tools especially in cross env | ||
7 | |||
8 | Fixes errors like | ||
9 | |||
10 | linking -mnan=2008 module with previous -mnan=legacy modules | ||
11 | failed to merge target specific data of file | ||
12 | |||
13 | -Khem | ||
14 | Upstream-Status: Inappropriate [OE-Specific] | ||
15 | |||
16 | Index: ffmpeg-3.1.1/configure | ||
17 | =================================================================== | ||
18 | --- ffmpeg-3.1.1.orig/configure | ||
19 | +++ ffmpeg-3.1.1/configure | ||
20 | @@ -5220,12 +5220,9 @@ elif enabled mips; then | ||
21 | |||
22 | # Enable minimum ISA based on selected options | ||
23 | if enabled mips64; then | ||
24 | - enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6' | ||
25 | enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2' | ||
26 | disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64' | ||
27 | else | ||
28 | - enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6' | ||
29 | - enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5' | ||
30 | enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2' | ||
31 | disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32' | ||
32 | fi | ||
diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb index bd21552332..aa59755034 100644 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb | |||
@@ -5,17 +5,16 @@ DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encod | |||
5 | HOMEPAGE = "https://www.ffmpeg.org/" | 5 | HOMEPAGE = "https://www.ffmpeg.org/" |
6 | SECTION = "libs" | 6 | SECTION = "libs" |
7 | 7 | ||
8 | LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT" | 8 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & ISC & MIT & BSD-2-Clause & BSD-3-Clause & IJG" |
9 | LICENSE_${PN} = "GPLv2+" | 9 | LICENSE:${PN} = "GPL-2.0-or-later" |
10 | LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | 10 | LICENSE:libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}" |
11 | LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | 11 | LICENSE:libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}" |
12 | LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | 12 | LICENSE:libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}" |
13 | LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | 13 | LICENSE:libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}" |
14 | LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | 14 | LICENSE:libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}" |
15 | LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | 15 | LICENSE:libpostproc = "GPL-2.0-or-later" |
16 | LICENSE_libpostproc = "GPLv2+" | 16 | LICENSE:libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}" |
17 | LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | 17 | LICENSE:libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPL-2.0-or-later', 'LGPL-2.1-or-later', d)}" |
18 | LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" | ||
19 | LICENSE_FLAGS = "commercial" | 18 | LICENSE_FLAGS = "commercial" |
20 | 19 | ||
21 | LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | 20 | LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ |
@@ -23,19 +22,21 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | |||
23 | file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ | 22 | file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ |
24 | file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" | 23 | file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" |
25 | 24 | ||
26 | SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ | 25 | SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz" |
27 | file://mips64_cpu_detection.patch \ | 26 | |
28 | file://0001-lavf-srt-fix-build-fail-when-used-the-libsrt-1.4.1.patch \ | 27 | SRC_URI[sha256sum] = "8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968" |
29 | file://0001-libavutil-include-assembly-with-full-path-from-sourc.patch \ | 28 | |
30 | file://CVE-2020-35964.patch \ | 29 | # https://nvd.nist.gov/vuln/detail/CVE-2023-39018 |
31 | file://CVE-2020-35965.patch \ | 30 | # https://github.com/bramp/ffmpeg-cli-wrapper/issues/291 |
32 | " | 31 | # https://security-tracker.debian.org/tracker/CVE-2023-39018 |
33 | SRC_URI[sha256sum] = "ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb" | 32 | # https://bugzilla.suse.com/show_bug.cgi?id=CVE-2023-39018 |
33 | CVE_STATUS[CVE-2023-39018] = "cpe-incorrect: This issue belongs to ffmpeg-cli-wrapper \ | ||
34 | (Java wrapper around the FFmpeg CLI) and not ffmepg itself." | ||
34 | 35 | ||
35 | # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 | 36 | # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 |
36 | ARM_INSTRUCTION_SET_armv4 = "arm" | 37 | ARM_INSTRUCTION_SET:armv4 = "arm" |
37 | ARM_INSTRUCTION_SET_armv5 = "arm" | 38 | ARM_INSTRUCTION_SET:armv5 = "arm" |
38 | ARM_INSTRUCTION_SET_armv6 = "arm" | 39 | ARM_INSTRUCTION_SET:armv6 = "arm" |
39 | 40 | ||
40 | # Should be API compatible with libav (which was a fork of ffmpeg) | 41 | # Should be API compatible with libav (which was a fork of ffmpeg) |
41 | # libpostproc was previously packaged from a separate recipe | 42 | # libpostproc was previously packaged from a separate recipe |
@@ -45,9 +46,8 @@ DEPENDS = "nasm-native" | |||
45 | 46 | ||
46 | inherit autotools pkgconfig | 47 | inherit autotools pkgconfig |
47 | 48 | ||
48 | PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \ | 49 | PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \ |
49 | alsa bzlib gpl lzma pic pthreads shared theora x264 zlib \ | 50 | alsa bzlib lzma theora zlib \ |
50 | ${@bb.utils.contains('AVAILTUNES', 'mips32r2', 'mips32r2', '', d)} \ | ||
51 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}" | 51 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}" |
52 | 52 | ||
53 | # libraries to build in addition to avutil | 53 | # libraries to build in addition to avutil |
@@ -58,7 +58,6 @@ PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat" | |||
58 | PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" | 58 | PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" |
59 | PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" | 59 | PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" |
60 | PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" | 60 | PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" |
61 | PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" | ||
62 | 61 | ||
63 | # features to support | 62 | # features to support |
64 | PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" | 63 | PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" |
@@ -68,6 +67,7 @@ PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk- | |||
68 | PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" | 67 | PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" |
69 | PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" | 68 | PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" |
70 | PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" | 69 | PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" |
70 | PACKAGECONFIG[libopus] = "--enable-libopus,--disable-libopus,libopus" | ||
71 | PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" | 71 | PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" |
72 | PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" | 72 | PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" |
73 | PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk" | 73 | PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk" |
@@ -77,6 +77,7 @@ PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2" | |||
77 | PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" | 77 | PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" |
78 | PACKAGECONFIG[srt] = "--enable-libsrt,--disable-libsrt,srt" | 78 | PACKAGECONFIG[srt] = "--enable-libsrt,--disable-libsrt,srt" |
79 | PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg" | 79 | PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg" |
80 | PACKAGECONFIG[v4l2] = "--enable-libv4l2,--disable-libv4l2,v4l-utils" | ||
80 | PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" | 81 | PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" |
81 | PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" | 82 | PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" |
82 | PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" | 83 | PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" |
@@ -86,13 +87,6 @@ PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb" | |||
86 | PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" | 87 | PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" |
87 | PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" | 88 | PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" |
88 | 89 | ||
89 | # other configuration options | ||
90 | PACKAGECONFIG[mips32r2] = ",--disable-mipsdsp --disable-mipsdspr2" | ||
91 | PACKAGECONFIG[pic] = "--enable-pic" | ||
92 | PACKAGECONFIG[pthreads] = "--enable-pthreads,--disable-pthreads" | ||
93 | PACKAGECONFIG[shared] = "--enable-shared" | ||
94 | PACKAGECONFIG[strip] = ",--disable-stripping" | ||
95 | |||
96 | # Check codecs that require --enable-nonfree | 90 | # Check codecs that require --enable-nonfree |
97 | USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}" | 91 | USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}" |
98 | 92 | ||
@@ -103,41 +97,63 @@ def cpu(d): | |||
103 | return 'generic' | 97 | return 'generic' |
104 | 98 | ||
105 | EXTRA_OECONF = " \ | 99 | EXTRA_OECONF = " \ |
100 | --disable-stripping \ | ||
101 | --enable-pic \ | ||
102 | --enable-shared \ | ||
103 | --enable-pthreads \ | ||
106 | ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ | 104 | ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ |
107 | \ | 105 | \ |
108 | --cross-prefix=${TARGET_PREFIX} \ | 106 | --cross-prefix=${TARGET_PREFIX} \ |
109 | \ | 107 | \ |
110 | --ld="${CCLD}" \ | 108 | --ld='${CCLD}' \ |
111 | --cc="${CC}" \ | 109 | --cc='${CC}' \ |
112 | --cxx="${CXX}" \ | 110 | --cxx='${CXX}' \ |
113 | --arch=${TARGET_ARCH} \ | 111 | --arch=${TARGET_ARCH} \ |
114 | --target-os="linux" \ | 112 | --target-os='linux' \ |
115 | --enable-cross-compile \ | 113 | --enable-cross-compile \ |
116 | --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ | 114 | --extra-cflags='${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}' \ |
117 | --extra-ldflags="${LDFLAGS}" \ | 115 | --extra-ldflags='${LDFLAGS}' \ |
118 | --sysroot="${STAGING_DIR_TARGET}" \ | 116 | --sysroot='${STAGING_DIR_TARGET}' \ |
119 | ${EXTRA_FFCONF} \ | 117 | ${EXTRA_FFCONF} \ |
120 | --libdir=${libdir} \ | 118 | --libdir=${libdir} \ |
121 | --shlibdir=${libdir} \ | 119 | --shlibdir=${libdir} \ |
122 | --datadir=${datadir}/ffmpeg \ | 120 | --datadir=${datadir}/ffmpeg \ |
121 | ${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \ | ||
123 | --cpu=${@cpu(d)} \ | 122 | --cpu=${@cpu(d)} \ |
124 | --pkg-config=pkg-config \ | 123 | --pkg-config=pkg-config \ |
125 | " | 124 | " |
126 | 125 | ||
127 | EXTRA_OECONF_append_linux-gnux32 = " --disable-asm" | 126 | EXTRA_OECONF:append:linux-gnux32 = " --disable-asm" |
127 | |||
128 | EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}" | ||
129 | EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}" | ||
130 | EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', '--disable-mips64r6 --disable-mips32r6', '', d)}" | ||
131 | EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r6', '--disable-mips64r2 --disable-mips32r2', '', d)}" | ||
132 | EXTRA_OECONF:append:mips = " --extra-libs=-latomic --disable-mips32r5 --disable-mipsdsp --disable-mipsdspr2 \ | ||
133 | --disable-loongson2 --disable-loongson3 --disable-mmi --disable-msa" | ||
134 | EXTRA_OECONF:append:riscv32 = " --extra-libs=-latomic --disable-rvv --disable-asm" | ||
135 | EXTRA_OECONF:append:armv5 = " --extra-libs=-latomic" | ||
136 | EXTRA_OECONF:append:powerpc = " --extra-libs=-latomic" | ||
137 | EXTRA_OECONF:append:armv7a = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" | ||
138 | EXTRA_OECONF:append:armv7ve = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" | ||
139 | |||
128 | # gold crashes on x86, another solution is to --disable-asm but thats more hacky | 140 | # gold crashes on x86, another solution is to --disable-asm but thats more hacky |
129 | # ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 | 141 | # ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 |
130 | 142 | ||
131 | LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" | 143 | LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" |
144 | LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd ', '', d)}" | ||
132 | 145 | ||
133 | EXTRA_OEMAKE = "V=1" | 146 | EXTRA_OEMAKE = "V=1" |
134 | 147 | ||
135 | do_configure() { | 148 | do_configure() { |
149 | export TMPDIR="${B}/tmp" | ||
150 | mkdir -p ${B}/tmp | ||
136 | ${S}/configure ${EXTRA_OECONF} | 151 | ${S}/configure ${EXTRA_OECONF} |
152 | sed -i -e "s,^X86ASMFLAGS=.*,& --debug-prefix-map=${S}=${TARGET_DBGSRC_DIR} --debug-prefix-map=${B}=${TARGET_DBGSRC_DIR},g" ${B}/ffbuild/config.mak | ||
137 | } | 153 | } |
138 | 154 | ||
139 | # patch out build host paths for reproducibility | 155 | # patch out build host paths for reproducibility |
140 | do_compile_prepend_class-target() { | 156 | do_compile:prepend:class-target() { |
141 | sed -i -e "s,${WORKDIR},,g" ${B}/config.h | 157 | sed -i -e "s,${WORKDIR},,g" ${B}/config.h |
142 | } | 158 | } |
143 | 159 | ||
@@ -145,29 +161,26 @@ PACKAGES =+ "libavcodec \ | |||
145 | libavdevice \ | 161 | libavdevice \ |
146 | libavfilter \ | 162 | libavfilter \ |
147 | libavformat \ | 163 | libavformat \ |
148 | libavresample \ | ||
149 | libavutil \ | 164 | libavutil \ |
150 | libpostproc \ | 165 | libpostproc \ |
151 | libswresample \ | 166 | libswresample \ |
152 | libswscale" | 167 | libswscale" |
153 | 168 | ||
154 | FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}" | 169 | FILES:libavcodec = "${libdir}/libavcodec${SOLIBS}" |
155 | FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}" | 170 | FILES:libavdevice = "${libdir}/libavdevice${SOLIBS}" |
156 | FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}" | 171 | FILES:libavfilter = "${libdir}/libavfilter${SOLIBS}" |
157 | FILES_libavformat = "${libdir}/libavformat${SOLIBS}" | 172 | FILES:libavformat = "${libdir}/libavformat${SOLIBS}" |
158 | FILES_libavresample = "${libdir}/libavresample${SOLIBS}" | 173 | FILES:libavutil = "${libdir}/libavutil${SOLIBS}" |
159 | FILES_libavutil = "${libdir}/libavutil${SOLIBS}" | 174 | FILES:libpostproc = "${libdir}/libpostproc${SOLIBS}" |
160 | FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}" | 175 | FILES:libswresample = "${libdir}/libswresample${SOLIBS}" |
161 | FILES_libswresample = "${libdir}/libswresample${SOLIBS}" | 176 | FILES:libswscale = "${libdir}/libswscale${SOLIBS}" |
162 | FILES_libswscale = "${libdir}/libswscale${SOLIBS}" | ||
163 | 177 | ||
164 | # ffmpeg disables PIC on some platforms (e.g. x86-32) | 178 | # ffmpeg disables PIC on some platforms (e.g. x86-32) |
165 | INSANE_SKIP_${MLPREFIX}libavcodec = "textrel" | 179 | INSANE_SKIP:${MLPREFIX}libavcodec = "textrel" |
166 | INSANE_SKIP_${MLPREFIX}libavdevice = "textrel" | 180 | INSANE_SKIP:${MLPREFIX}libavdevice = "textrel" |
167 | INSANE_SKIP_${MLPREFIX}libavfilter = "textrel" | 181 | INSANE_SKIP:${MLPREFIX}libavfilter = "textrel" |
168 | INSANE_SKIP_${MLPREFIX}libavformat = "textrel" | 182 | INSANE_SKIP:${MLPREFIX}libavformat = "textrel" |
169 | INSANE_SKIP_${MLPREFIX}libavutil = "textrel" | 183 | INSANE_SKIP:${MLPREFIX}libavutil = "textrel" |
170 | INSANE_SKIP_${MLPREFIX}libavresample = "textrel" | 184 | INSANE_SKIP:${MLPREFIX}libswscale = "textrel" |
171 | INSANE_SKIP_${MLPREFIX}libswscale = "textrel" | 185 | INSANE_SKIP:${MLPREFIX}libswresample = "textrel" |
172 | INSANE_SKIP_${MLPREFIX}libswresample = "textrel" | 186 | INSANE_SKIP:${MLPREFIX}libpostproc = "textrel" |
173 | INSANE_SKIP_${MLPREFIX}libpostproc = "textrel" | ||
diff --git a/meta/recipes-multimedia/flac/flac_1.3.3.bb b/meta/recipes-multimedia/flac/flac_1.3.3.bb deleted file mode 100644 index cb6692aedf..0000000000 --- a/meta/recipes-multimedia/flac/flac_1.3.3.bb +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | SUMMARY = "Free Lossless Audio Codec" | ||
2 | DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format." | ||
3 | HOMEPAGE = "https://xiph.org/flac/" | ||
4 | BUGTRACKER = "http://sourceforge.net/p/flac/bugs/" | ||
5 | SECTION = "libs" | ||
6 | LICENSE = "GFDL-1.2 & GPLv2+ & LGPLv2.1+ & BSD" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ | ||
8 | file://src/Makefile.am;beginline=1;endline=17;md5=09501c864f89dfc7ead65553129817ca \ | ||
9 | file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | ||
10 | file://src/flac/main.c;beginline=1;endline=18;md5=09777e2934947a36f13568d0beb81199 \ | ||
11 | file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ | ||
12 | file://src/plugin_common/all.h;beginline=1;endline=18;md5=f56cb4ba9a3bc9ec6102e8df03215271 \ | ||
13 | file://COPYING.Xiph;md5=b59c1b6d7fc0fb7965f821a3d36505e3 \ | ||
14 | file://include/FLAC/all.h;beginline=65;endline=70;md5=64474f2b22e9e77b28d8b8b25c983a48" | ||
15 | DEPENDS = "libogg" | ||
16 | |||
17 | SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \ | ||
18 | " | ||
19 | |||
20 | SRC_URI[md5sum] = "26703ed2858c1fc9ffc05136d13daa69" | ||
21 | SRC_URI[sha256sum] = "213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748" | ||
22 | |||
23 | CVE_PRODUCT = "libflac flac" | ||
24 | |||
25 | inherit autotools gettext | ||
26 | |||
27 | EXTRA_OECONF = "--disable-oggtest \ | ||
28 | --with-ogg-libraries=${STAGING_LIBDIR} \ | ||
29 | --with-ogg-includes=${STAGING_INCDIR} \ | ||
30 | --disable-xmms-plugin \ | ||
31 | --without-libiconv-prefix \ | ||
32 | ac_cv_prog_NASM="" \ | ||
33 | " | ||
34 | |||
35 | EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "altivec", " --enable-altivec", " --disable-altivec", d)}" | ||
36 | EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "vsx", " --enable-vsx", " --disable-vsx", d)}" | ||
37 | EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "core2", " --enable-sse", "", d)}" | ||
38 | EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "corei7", " --enable-sse", "", d)}" | ||
39 | |||
40 | PACKAGES += "libflac libflac++ liboggflac liboggflac++" | ||
41 | FILES_${PN} = "${bindir}/*" | ||
42 | FILES_libflac = "${libdir}/libFLAC.so.*" | ||
43 | FILES_libflac++ = "${libdir}/libFLAC++.so.*" | ||
44 | FILES_liboggflac = "${libdir}/libOggFLAC.so.*" | ||
45 | FILES_liboggflac++ = "${libdir}/libOggFLAC++.so.*" | ||
46 | |||
diff --git a/meta/recipes-multimedia/flac/flac_1.4.3.bb b/meta/recipes-multimedia/flac/flac_1.4.3.bb new file mode 100644 index 0000000000..d4e463cda5 --- /dev/null +++ b/meta/recipes-multimedia/flac/flac_1.4.3.bb | |||
@@ -0,0 +1,36 @@ | |||
1 | SUMMARY = "Free Lossless Audio Codec" | ||
2 | DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format." | ||
3 | HOMEPAGE = "https://xiph.org/flac/" | ||
4 | BUGTRACKER = "https://github.com/xiph/flac/issues" | ||
5 | SECTION = "libs" | ||
6 | LICENSE = "GFDL-1.2 & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ | ||
8 | file://src/Makefile.am;beginline=1;endline=17;md5=b1dab2704be7f01bfbd9b7f6d5f000a9 \ | ||
9 | file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | ||
10 | file://src/flac/main.c;beginline=1;endline=18;md5=23099119c034d894bd1bf7ef5bd22101 \ | ||
11 | file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ | ||
12 | file://COPYING.Xiph;md5=0c90e41ab2fa7e69ca9391330d870221 \ | ||
13 | file://include/FLAC/all.h;beginline=65;endline=70;md5=39aaf5e03c7364363884c8b8ddda8eea" | ||
14 | |||
15 | SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz" | ||
16 | SRC_URI[sha256sum] = "6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70" | ||
17 | |||
18 | CVE_PRODUCT = "libflac flac" | ||
19 | |||
20 | inherit autotools gettext | ||
21 | |||
22 | EXTRA_OECONF = "--disable-oggtest \ | ||
23 | --without-libiconv-prefix \ | ||
24 | ac_cv_prog_NASM="" \ | ||
25 | " | ||
26 | |||
27 | PACKAGECONFIG ??= " \ | ||
28 | ogg \ | ||
29 | " | ||
30 | PACKAGECONFIG[avx] = "--enable-avx,--disable-avx" | ||
31 | PACKAGECONFIG[ogg] = "--enable-ogg --with-ogg-libraries=${STAGING_LIBDIR} --with-ogg-includes=${STAGING_INCDIR},--disable-ogg,libogg" | ||
32 | |||
33 | PACKAGES += "libflac libflac++" | ||
34 | FILES:${PN} = "${bindir}/*" | ||
35 | FILES:libflac = "${libdir}/libFLAC.so.*" | ||
36 | FILES:libflac++ = "${libdir}/libFLAC++.so.*" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch b/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch index c0e4581358..21e30d6d46 100644 --- a/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch +++ b/meta/recipes-multimedia/gstreamer/gst-devtools/0001-connect-has-a-different-signature-on-musl.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 73b1002eda17451db1f58431b42c25203f1d3097 Mon Sep 17 00:00:00 2001 | 1 | From 0c73b8131efba63c5cd37ea8c7551434c3b57304 Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Sun, 9 Sep 2018 17:38:10 -0700 | 3 | Date: Sun, 9 Sep 2018 17:38:10 -0700 |
4 | Subject: [PATCH] connect has a different signature on musl | 4 | Subject: [PATCH] connect has a different signature on musl |
@@ -11,6 +11,7 @@ typcasted to struct sockaddr_in* type inside the function before use | |||
11 | Upstream-Status: Pending | 11 | Upstream-Status: Pending |
12 | 12 | ||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
14 | |||
14 | --- | 15 | --- |
15 | validate/plugins/fault_injection/socket_interposer.c | 7 ++++++- | 16 | validate/plugins/fault_injection/socket_interposer.c | 7 ++++++- |
16 | 1 file changed, 6 insertions(+), 1 deletion(-) | 17 | 1 file changed, 6 insertions(+), 1 deletion(-) |
diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb index bad9921757..2be406192f 100644 --- a/meta/recipes-multimedia/gstreamer/gst-devtools_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.11.bb | |||
@@ -3,7 +3,7 @@ DESCRIPTION = "A Tool to test GStreamer components" | |||
3 | HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html" | 3 | HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html" |
4 | SECTION = "multimedia" | 4 | SECTION = "multimedia" |
5 | 5 | ||
6 | LICENSE = "LGPLv2.1" | 6 | LICENSE = "LGPL-2.1-or-later" |
7 | LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" | 7 | LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343" |
8 | 8 | ||
9 | #S = "${WORKDIR}/gst-devtools-${PV}" | 9 | #S = "${WORKDIR}/gst-devtools-${PV}" |
@@ -12,12 +12,12 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${PV} | |||
12 | file://0001-connect-has-a-different-signature-on-musl.patch \ | 12 | file://0001-connect-has-a-different-signature-on-musl.patch \ |
13 | " | 13 | " |
14 | 14 | ||
15 | SRC_URI[sha256sum] = "3025fee3607caf5069154c099533785675916e044ee92c936bbeacdda3750f26" | 15 | SRC_URI[sha256sum] = "07766425ecb5bf857ab5ad3962321c55cd89f9386b720843f9df71c0a455eb9b" |
16 | 16 | ||
17 | DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" | 17 | DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base" |
18 | RRECOMMENDS_${PN} = "git" | 18 | RRECOMMENDS:${PN} = "git" |
19 | 19 | ||
20 | FILES_${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*" | 20 | FILES:${PN} += "${datadir}/gstreamer-1.0/* ${libdir}/gst-validate-launcher/* ${libdir}/gstreamer-1.0/*" |
21 | 21 | ||
22 | inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection | 22 | inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection |
23 | 23 | ||
@@ -30,6 +30,9 @@ def gettext_oemeson(d): | |||
30 | return '-Dnls=disabled' | 30 | return '-Dnls=disabled' |
31 | return '-Dnls=enabled' | 31 | return '-Dnls=enabled' |
32 | 32 | ||
33 | # Build GstValidateVideo | ||
34 | PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo" | ||
35 | |||
33 | EXTRA_OEMESON += " \ | 36 | EXTRA_OEMESON += " \ |
34 | -Ddoc=disabled \ | 37 | -Ddoc=disabled \ |
35 | -Ddebug_viewer=disabled \ | 38 | -Ddebug_viewer=disabled \ |
@@ -38,7 +41,7 @@ EXTRA_OEMESON += " \ | |||
38 | ${@gettext_oemeson(d)} \ | 41 | ${@gettext_oemeson(d)} \ |
39 | " | 42 | " |
40 | 43 | ||
41 | do_install_append () { | 44 | do_install:append () { |
42 | for fn in ${bindir}/gst-validate-launcher \ | 45 | for fn in ${bindir}/gst-validate-launcher \ |
43 | ${libdir}/gst-validate-launcher/python/launcher/config.py; do | 46 | ${libdir}/gst-validate-launcher/python/launcher/config.py; do |
44 | sed -i -e 's,${B},/usr/src/debug/${PN},g' -e 's,${S},/usr/src/debug/${PN},g' ${D}$fn | 47 | sed -i -e 's,${B},/usr/src/debug/${PN},g' -e 's,${S},/usr/src/debug/${PN},g' ${D}$fn |
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop b/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop index 7ddd456a1e..d165e5d910 100644 --- a/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop +++ b/meta/recipes-multimedia/gstreamer/gst-examples/gst-player.desktop | |||
@@ -1,7 +1,7 @@ | |||
1 | [Desktop Entry] | 1 | [Desktop Entry] |
2 | Name=Media Player | 2 | Name=Media Player |
3 | Comment=Basic media player | 3 | Comment=Basic media player |
4 | Icon=multimedia-player | 4 | Icon=video-player |
5 | TryExec=gtk-play | 5 | TryExec=gtk-play |
6 | Exec=gtk-play | 6 | Exec=gtk-play |
7 | StartupNotify=true | 7 | StartupNotify=true |
diff --git a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb index b49201fb0e..02282ac5d9 100644 --- a/meta/recipes-multimedia/gstreamer/gst-examples_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gst-examples_1.18.6.bb | |||
@@ -2,7 +2,7 @@ SUMMARY = "GStreamer examples (including gtk-play, gst-play)" | |||
2 | DESCRIPTION = "GStreamer example applications" | 2 | DESCRIPTION = "GStreamer example applications" |
3 | HOMEPAGE = "https://gitlab.freedesktop.org/gstreamer/gst-examples" | 3 | HOMEPAGE = "https://gitlab.freedesktop.org/gstreamer/gst-examples" |
4 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues" | 4 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues" |
5 | LICENSE = "LGPL-2.0+" | 5 | LICENSE = "LGPL-2.0-or-later" |
6 | LIC_FILES_CHKSUM = "file://playback/player/gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9" | 6 | LIC_FILES_CHKSUM = "file://playback/player/gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9" |
7 | 7 | ||
8 | DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3 libsoup-2.4 json-glib glib-2.0-native" | 8 | DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3 libsoup-2.4 json-glib glib-2.0-native" |
@@ -12,7 +12,7 @@ SRC_URI = "git://gitlab.freedesktop.org/gstreamer/gst-examples.git;protocol=http | |||
12 | file://gst-player.desktop \ | 12 | file://gst-player.desktop \ |
13 | " | 13 | " |
14 | 14 | ||
15 | SRCREV = "06599904baa5d0e47b5cb9501372156567760f8e" | 15 | SRCREV = "70e4fcf4fc8ae19641aa990de5f37d758cdfcea4" |
16 | 16 | ||
17 | S = "${WORKDIR}/git" | 17 | S = "${WORKDIR}/git" |
18 | 18 | ||
@@ -22,14 +22,14 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)" | |||
22 | 22 | ||
23 | ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" | 23 | ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" |
24 | 24 | ||
25 | do_install_append() { | 25 | do_install:append() { |
26 | install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop | 26 | install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop |
27 | } | 27 | } |
28 | 28 | ||
29 | RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback" | 29 | RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback" |
30 | RRECOMMENDS_${PN} = "gstreamer1.0-plugins-base-meta \ | 30 | RRECOMMENDS:${PN} = "gstreamer1.0-plugins-base-meta \ |
31 | gstreamer1.0-plugins-good-meta \ | 31 | gstreamer1.0-plugins-good-meta \ |
32 | gstreamer1.0-plugins-bad-meta \ | 32 | gstreamer1.0-plugins-bad-meta \ |
33 | ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \ | 33 | ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "gstreamer1.0-libav", "", d)} \ |
34 | ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}" | 34 | ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}" |
35 | RPROVIDES_${PN} += "gst-player gst-player-bin" | 35 | RPROVIDES:${PN} += "gst-player gst-player-bin" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb index baf87fd871..f3287efa96 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.11.bb | |||
@@ -6,13 +6,13 @@ SECTION = "multimedia" | |||
6 | 6 | ||
7 | # ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency | 7 | # ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency |
8 | LICENSE_FLAGS = "commercial" | 8 | LICENSE_FLAGS = "commercial" |
9 | LICENSE = "LGPLv2+" | 9 | LICENSE = "LGPL-2.1-or-later" |
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ |
11 | file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ | 11 | file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \ |
12 | " | 12 | " |
13 | 13 | ||
14 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz" | 14 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz" |
15 | SRC_URI[sha256sum] = "ad20546bcd78ac1e7cf194666d73c4f33efeb62647d2b6af22993b540699e91c" | 15 | SRC_URI[sha256sum] = "6b13dcc9332ef27a7c1e7005c0196883874f91622f8aa6e52f218b05b15d2bf5" |
16 | 16 | ||
17 | S = "${WORKDIR}/gst-libav-${PV}" | 17 | S = "${WORKDIR}/gst-libav-${PV}" |
18 | 18 | ||
@@ -20,5 +20,9 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg" | |||
20 | 20 | ||
21 | inherit meson pkgconfig upstream-version-is-even | 21 | inherit meson pkgconfig upstream-version-is-even |
22 | 22 | ||
23 | FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" | 23 | EXTRA_OEMESON += " \ |
24 | FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" | 24 | -Dtests=disabled \ |
25 | " | ||
26 | |||
27 | FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" | ||
28 | FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb index 016e176707..6cc11e1928 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb | |||
@@ -18,13 +18,13 @@ PACKAGES = "\ | |||
18 | gstreamer1.0-meta-debug \ | 18 | gstreamer1.0-meta-debug \ |
19 | gstreamer1.0-meta-video" | 19 | gstreamer1.0-meta-video" |
20 | 20 | ||
21 | ALLOW_EMPTY_gstreamer1.0-meta-base = "1" | 21 | ALLOW_EMPTY:gstreamer1.0-meta-base = "1" |
22 | ALLOW_EMPTY_gstreamer1.0-meta-x11-base = "1" | 22 | ALLOW_EMPTY:gstreamer1.0-meta-x11-base = "1" |
23 | ALLOW_EMPTY_gstreamer1.0-meta-audio = "1" | 23 | ALLOW_EMPTY:gstreamer1.0-meta-audio = "1" |
24 | ALLOW_EMPTY_gstreamer1.0-meta-debug = "1" | 24 | ALLOW_EMPTY:gstreamer1.0-meta-debug = "1" |
25 | ALLOW_EMPTY_gstreamer1.0-meta-video = "1" | 25 | ALLOW_EMPTY:gstreamer1.0-meta-video = "1" |
26 | 26 | ||
27 | RDEPENDS_gstreamer1.0-meta-base = "\ | 27 | RDEPENDS:gstreamer1.0-meta-base = "\ |
28 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gstreamer1.0-meta-x11-base', '', d)} \ | 28 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gstreamer1.0-meta-x11-base', '', d)} \ |
29 | gstreamer1.0 \ | 29 | gstreamer1.0 \ |
30 | gstreamer1.0-plugins-base-playback \ | 30 | gstreamer1.0-plugins-base-playback \ |
@@ -34,16 +34,15 @@ RDEPENDS_gstreamer1.0-meta-base = "\ | |||
34 | gstreamer1.0-plugins-base-audioconvert \ | 34 | gstreamer1.0-plugins-base-audioconvert \ |
35 | gstreamer1.0-plugins-base-audioresample \ | 35 | gstreamer1.0-plugins-base-audioresample \ |
36 | gstreamer1.0-plugins-base-typefindfunctions \ | 36 | gstreamer1.0-plugins-base-typefindfunctions \ |
37 | gstreamer1.0-plugins-base-videoscale \ | 37 | gstreamer1.0-plugins-base-videoconvertscale \ |
38 | gstreamer1.0-plugins-base-videoconvert \ | ||
39 | gstreamer1.0-plugins-good-autodetect \ | 38 | gstreamer1.0-plugins-good-autodetect \ |
40 | gstreamer1.0-plugins-good-soup" | 39 | gstreamer1.0-plugins-good-soup" |
41 | 40 | ||
42 | RRECOMMENDS_gstreamer1.0-meta-x11-base = "\ | 41 | RRECOMMENDS:gstreamer1.0-meta-x11-base = "\ |
43 | gstreamer1.0-plugins-base-ximagesink \ | 42 | gstreamer1.0-plugins-base-ximagesink \ |
44 | gstreamer1.0-plugins-base-xvimagesink" | 43 | gstreamer1.0-plugins-base-xvimagesink" |
45 | 44 | ||
46 | RDEPENDS_gstreamer1.0-meta-audio = "\ | 45 | RDEPENDS:gstreamer1.0-meta-audio = "\ |
47 | gstreamer1.0-meta-base \ | 46 | gstreamer1.0-meta-base \ |
48 | gstreamer1.0-plugins-base-vorbis \ | 47 | gstreamer1.0-plugins-base-vorbis \ |
49 | gstreamer1.0-plugins-base-ogg \ | 48 | gstreamer1.0-plugins-base-ogg \ |
@@ -51,18 +50,18 @@ RDEPENDS_gstreamer1.0-meta-audio = "\ | |||
51 | gstreamer1.0-plugins-good-flac \ | 50 | gstreamer1.0-plugins-good-flac \ |
52 | ${COMMERCIAL_AUDIO_PLUGINS}" | 51 | ${COMMERCIAL_AUDIO_PLUGINS}" |
53 | 52 | ||
54 | RDEPENDS_gstreamer1.0-meta-debug = "\ | 53 | RDEPENDS:gstreamer1.0-meta-debug = "\ |
55 | gstreamer1.0-meta-base \ | 54 | gstreamer1.0-meta-base \ |
56 | gstreamer1.0-plugins-good-debug \ | 55 | gstreamer1.0-plugins-good-debug \ |
57 | gstreamer1.0-plugins-base-audiotestsrc \ | 56 | gstreamer1.0-plugins-base-audiotestsrc \ |
58 | gstreamer1.0-plugins-base-videotestsrc" | 57 | gstreamer1.0-plugins-base-videotestsrc" |
59 | 58 | ||
60 | RDEPENDS_gstreamer1.0-meta-video = "\ | 59 | RDEPENDS:gstreamer1.0-meta-video = "\ |
61 | gstreamer1.0-meta-base \ | 60 | gstreamer1.0-meta-base \ |
62 | gstreamer1.0-plugins-good-avi \ | 61 | gstreamer1.0-plugins-good-avi \ |
63 | gstreamer1.0-plugins-good-matroska \ | 62 | gstreamer1.0-plugins-good-matroska \ |
64 | gstreamer1.0-plugins-base-theora \ | 63 | gstreamer1.0-plugins-base-theora \ |
65 | ${COMMERCIAL_VIDEO_PLUGINS}" | 64 | ${COMMERCIAL_VIDEO_PLUGINS}" |
66 | 65 | ||
67 | RRECOMMENDS_gstreamer1.0-meta-video = "\ | 66 | RRECOMMENDS:gstreamer1.0-meta-video = "\ |
68 | gstreamer1.0-meta-audio" | 67 | gstreamer1.0-meta-audio" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb index d55f45ac6a..97348fb398 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.11.bb | |||
@@ -3,14 +3,14 @@ DESCRIPTION = "Wraps available OpenMAX IL components and makes them available as | |||
3 | HOMEPAGE = "http://gstreamer.freedesktop.org/" | 3 | HOMEPAGE = "http://gstreamer.freedesktop.org/" |
4 | SECTION = "multimedia" | 4 | SECTION = "multimedia" |
5 | 5 | ||
6 | LICENSE = "LGPLv2.1" | 6 | LICENSE = "LGPL-2.1-or-later" |
7 | LICENSE_FLAGS = "commercial" | 7 | LICENSE_FLAGS = "commercial" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ |
9 | file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" | 9 | file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f" |
10 | 10 | ||
11 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz" | 11 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz" |
12 | 12 | ||
13 | SRC_URI[sha256sum] = "ed0f26504e9a60e15055134410f156e40952336410f2a59bdbbda45e61e8b93f" | 13 | SRC_URI[sha256sum] = "18dfdf5f6b773d67e62a315c6cf6247da320b83603a5819493f53c69ed2eeef6" |
14 | 14 | ||
15 | S = "${WORKDIR}/gst-omx-${PV}" | 15 | S = "${WORKDIR}/gst-omx-${PV}" |
16 | 16 | ||
@@ -40,8 +40,8 @@ set_omx_core_name() { | |||
40 | } | 40 | } |
41 | do_install[postfuncs] += " set_omx_core_name " | 41 | do_install[postfuncs] += " set_omx_core_name " |
42 | 42 | ||
43 | FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" | 43 | FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" |
44 | FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" | 44 | FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" |
45 | 45 | ||
46 | VIRTUAL-RUNTIME_libomxil ?= "libomxil" | 46 | VIRTUAL-RUNTIME_libomxil ?= "libomxil" |
47 | RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_libomxil}" | 47 | RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_libomxil}" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch index 13a673cd50..a57fcd7d21 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch | |||
@@ -1,11 +1,12 @@ | |||
1 | From f08ab3ac2ce43ac91d3bf65b26f26436690f499b Mon Sep 17 00:00:00 2001 | 1 | From 8be0c6ac60c96e87d8aa443be9c431844dc3d92a Mon Sep 17 00:00:00 2001 |
2 | From: Andre McCurdy <armccurdy@gmail.com> | 2 | From: Andre McCurdy <armccurdy@gmail.com> |
3 | Date: Tue, 26 Jan 2016 15:16:01 -0800 | 3 | Date: Tue, 26 Jan 2016 15:16:01 -0800 |
4 | Subject: [PATCH 1/4] fix maybe-uninitialized warnings when compiling with -Os | 4 | Subject: [PATCH] fix maybe-uninitialized warnings when compiling with -Os |
5 | 5 | ||
6 | Upstream-Status: Pending | 6 | Upstream-Status: Pending |
7 | 7 | ||
8 | Signed-off-by: Andre McCurdy <armccurdy@gmail.com> | 8 | Signed-off-by: Andre McCurdy <armccurdy@gmail.com> |
9 | |||
9 | --- | 10 | --- |
10 | gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- | 11 | gst-libs/gst/codecparsers/gstvc1parser.c | 2 +- |
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | 12 | 1 file changed, 1 insertion(+), 1 deletion(-) |
@@ -23,6 +24,3 @@ index 2c60ced..e8226d8 100644 | |||
23 | guint8 structA[8] = { 0, }; | 24 | guint8 structA[8] = { 0, }; |
24 | guint8 structB[12] = { 0, }; | 25 | guint8 structB[12] = { 0, }; |
25 | GstBitReader br; | 26 | GstBitReader br; |
26 | -- | ||
27 | 2.28.0 | ||
28 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch index ead6897f67..6509a293b7 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-avoid-including-sys-poll.h-directly.patch | |||
@@ -1,22 +1,23 @@ | |||
1 | From 3b05e91720c10fcf6e0e408595b7217f6fa145c2 Mon Sep 17 00:00:00 2001 | 1 | From 426ee79adeecc24605426030a486d7c5a755048c Mon Sep 17 00:00:00 2001 |
2 | From: Andre McCurdy <armccurdy@gmail.com> | 2 | From: Andre McCurdy <armccurdy@gmail.com> |
3 | Date: Wed, 3 Feb 2016 18:05:41 -0800 | 3 | Date: Wed, 3 Feb 2016 18:05:41 -0800 |
4 | Subject: [PATCH 2/4] avoid including <sys/poll.h> directly | 4 | Subject: [PATCH] avoid including <sys/poll.h> directly |
5 | 5 | ||
6 | musl libc generates warnings if <sys/poll.h> is included directly. | 6 | musl libc generates warnings if <sys/poll.h> is included directly. |
7 | 7 | ||
8 | Upstream-Status: Pending | 8 | Upstream-Status: Pending |
9 | 9 | ||
10 | Signed-off-by: Andre McCurdy <armccurdy@gmail.com> | 10 | Signed-off-by: Andre McCurdy <armccurdy@gmail.com> |
11 | |||
11 | --- | 12 | --- |
12 | sys/dvb/gstdvbsrc.c | 2 +- | 13 | sys/dvb/gstdvbsrc.c | 2 +- |
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | 14 | 1 file changed, 1 insertion(+), 1 deletion(-) |
14 | 15 | ||
15 | diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c | 16 | diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c |
16 | index ca6b92a..b2772db 100644 | 17 | index b8e5b1a..5bca6e5 100644 |
17 | --- a/sys/dvb/gstdvbsrc.c | 18 | --- a/sys/dvb/gstdvbsrc.c |
18 | +++ b/sys/dvb/gstdvbsrc.c | 19 | +++ b/sys/dvb/gstdvbsrc.c |
19 | @@ -97,7 +97,7 @@ | 20 | @@ -98,7 +98,7 @@ |
20 | #include <gst/gst.h> | 21 | #include <gst/gst.h> |
21 | #include <gst/glib-compat-private.h> | 22 | #include <gst/glib-compat-private.h> |
22 | #include <sys/ioctl.h> | 23 | #include <sys/ioctl.h> |
@@ -25,6 +26,3 @@ index ca6b92a..b2772db 100644 | |||
25 | #include <fcntl.h> | 26 | #include <fcntl.h> |
26 | #include <errno.h> | 27 | #include <errno.h> |
27 | #include <stdio.h> | 28 | #include <stdio.h> |
28 | -- | ||
29 | 2.28.0 | ||
30 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch deleted file mode 100644 index 88fbc40dcd..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | From 5ed27de9f662fe063b8b3d5d4335aa64cd4718c9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andre McCurdy <armccurdy@gmail.com> | ||
3 | Date: Tue, 9 Feb 2016 14:00:00 -0800 | ||
4 | Subject: [PATCH 3/4] ensure valid sentinals for gst_structure_get() etc | ||
5 | |||
6 | For GStreamer functions declared with G_GNUC_NULL_TERMINATED, | ||
7 | ie __attribute__((__sentinel__)), gcc will generate a warning if the | ||
8 | last parameter passed to the function is not NULL (where a valid NULL | ||
9 | in this context is defined as zero with any pointer type). | ||
10 | |||
11 | The C callers to such functions within gst-plugins-bad use the C NULL | ||
12 | definition (ie ((void*)0)), which is a valid sentinel. | ||
13 | |||
14 | However the C++ NULL definition (ie 0L), is not a valid sentinel | ||
15 | without an explicit cast to a pointer type. | ||
16 | |||
17 | Upstream-Status: Pending | ||
18 | |||
19 | Signed-off-by: Andre McCurdy <armccurdy@gmail.com> | ||
20 | --- | ||
21 | sys/decklink/gstdecklink.cpp | 10 +++++----- | ||
22 | sys/decklink/gstdecklinkaudiosrc.cpp | 2 +- | ||
23 | sys/decklink/gstdecklinkvideosink.cpp | 2 +- | ||
24 | 3 files changed, 7 insertions(+), 7 deletions(-) | ||
25 | |||
26 | diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp | ||
27 | index 4dac7e1..43762ce 100644 | ||
28 | --- a/sys/decklink/gstdecklink.cpp | ||
29 | +++ b/sys/decklink/gstdecklink.cpp | ||
30 | @@ -674,7 +674,7 @@ gst_decklink_mode_get_generic_structure (GstDecklinkModeEnum e) | ||
31 | "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d, | ||
32 | "interlace-mode", G_TYPE_STRING, | ||
33 | mode->interlaced ? "interleaved" : "progressive", | ||
34 | - "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL); | ||
35 | + "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, (void*)NULL); | ||
36 | |||
37 | return s; | ||
38 | } | ||
39 | @@ -699,16 +699,16 @@ gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f, | ||
40 | case bmdFormat8BitYUV: /* '2vuy' */ | ||
41 | gst_structure_set (s, "format", G_TYPE_STRING, "UYVY", | ||
42 | "colorimetry", G_TYPE_STRING, mode->colorimetry, | ||
43 | - "chroma-site", G_TYPE_STRING, "mpeg2", NULL); | ||
44 | + "chroma-site", G_TYPE_STRING, "mpeg2", (void*)NULL); | ||
45 | break; | ||
46 | case bmdFormat10BitYUV: /* 'v210' */ | ||
47 | - gst_structure_set (s, "format", G_TYPE_STRING, "v210", NULL); | ||
48 | + gst_structure_set (s, "format", G_TYPE_STRING, "v210", (void*)NULL); | ||
49 | break; | ||
50 | case bmdFormat8BitARGB: /* 'ARGB' */ | ||
51 | - gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", NULL); | ||
52 | + gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", (void*)NULL); | ||
53 | break; | ||
54 | case bmdFormat8BitBGRA: /* 'BGRA' */ | ||
55 | - gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", NULL); | ||
56 | + gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", (void*)NULL); | ||
57 | break; | ||
58 | case bmdFormat10BitRGB: /* 'r210' Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 */ | ||
59 | case bmdFormat12BitRGB: /* 'R12B' Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component */ | ||
60 | diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp | ||
61 | index 2fef934..c47229a 100644 | ||
62 | --- a/sys/decklink/gstdecklinkaudiosrc.cpp | ||
63 | +++ b/sys/decklink/gstdecklinkaudiosrc.cpp | ||
64 | @@ -379,7 +379,7 @@ gst_decklink_audio_src_start (GstDecklinkAudioSrc * self) | ||
65 | g_mutex_unlock (&self->input->lock); | ||
66 | |||
67 | if (videosrc) { | ||
68 | - g_object_get (videosrc, "connection", &vconn, NULL); | ||
69 | + g_object_get (videosrc, "connection", &vconn, (void *) NULL); | ||
70 | gst_object_unref (videosrc); | ||
71 | |||
72 | switch (vconn) { | ||
73 | diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp | ||
74 | index e3a6775..f1a5aae 100644 | ||
75 | --- a/sys/decklink/gstdecklinkvideosink.cpp | ||
76 | +++ b/sys/decklink/gstdecklinkvideosink.cpp | ||
77 | @@ -286,7 +286,7 @@ reset_framerate (GstCapsFeatures * features, GstStructure * structure, | ||
78 | gpointer user_data) | ||
79 | { | ||
80 | gst_structure_set (structure, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, | ||
81 | - G_MAXINT, 1, NULL); | ||
82 | + G_MAXINT, 1, (void *) NULL); | ||
83 | |||
84 | return TRUE; | ||
85 | } | ||
86 | -- | ||
87 | 2.28.0 | ||
88 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch index b816709066..50a3143eca 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch | |||
@@ -1,7 +1,7 @@ | |||
1 | From f19ff66640f2f472c4e9d9055253032d34e125c6 Mon Sep 17 00:00:00 2001 | 1 | From e6eb7536fcfc2c75f7831f67b1f16f3f36ef2545 Mon Sep 17 00:00:00 2001 |
2 | From: Andrey Zhizhikin <andrey.z@gmail.com> | 2 | From: Andrey Zhizhikin <andrey.z@gmail.com> |
3 | Date: Mon, 27 Jan 2020 10:22:35 +0000 | 3 | Date: Mon, 27 Jan 2020 10:22:35 +0000 |
4 | Subject: [PATCH 4/4] opencv: resolve missing opencv data dir in yocto build | 4 | Subject: [PATCH] opencv: resolve missing opencv data dir in yocto build |
5 | 5 | ||
6 | When Yocto build is performed, opencv searches for data dir using simple | 6 | When Yocto build is performed, opencv searches for data dir using simple |
7 | 'test' command, this fails because pkg-config provides an absolute | 7 | 'test' command, this fails because pkg-config provides an absolute |
@@ -11,39 +11,23 @@ in order for the 'test' utility to pick up the absolute path. | |||
11 | Upstream-Status: Inappropriate [OE-specific] | 11 | Upstream-Status: Inappropriate [OE-specific] |
12 | 12 | ||
13 | Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com> | 13 | Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com> |
14 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
15 | |||
14 | --- | 16 | --- |
15 | ext/opencv/meson.build | 7 ++++--- | 17 | ext/opencv/meson.build | 3 +++ |
16 | 1 file changed, 4 insertions(+), 3 deletions(-) | 18 | 1 file changed, 3 insertions(+) |
17 | 19 | ||
18 | diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build | 20 | diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build |
19 | index 0b0b3fc..0ed3344 100644 | 21 | index 37e2015..326f737 100644 |
20 | --- a/ext/opencv/meson.build | 22 | --- a/ext/opencv/meson.build |
21 | +++ b/ext/opencv/meson.build | 23 | +++ b/ext/opencv/meson.build |
22 | @@ -78,20 +78,21 @@ else | 24 | @@ -87,6 +87,9 @@ if opencv_found |
23 | endif | 25 | opencv_prefix = opencv_dep.get_variable('prefix') |
24 | |||
25 | if opencv_found | ||
26 | + pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() | ||
27 | opencv_prefix = opencv_dep.get_pkgconfig_variable('prefix') | ||
28 | gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"'] | 26 | gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"'] |
29 | 27 | ||
28 | + pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() | ||
29 | + opencv_prefix = pkgconf_sysroot + opencv_prefix | ||
30 | + | ||
30 | # Check the data dir used by opencv for its xml data files | 31 | # Check the data dir used by opencv for its xml data files |
31 | # Use prefix from pkg-config to be compatible with cross-compilation | 32 | # Use prefix from pkg-config to be compatible with cross-compilation |
32 | - r = run_command('test', '-d', opencv_prefix + '/share/opencv') | 33 | r = run_command('test', '-d', opencv_prefix + '/share/opencv', check: false) |
33 | + r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv') | ||
34 | if r.returncode() == 0 | ||
35 | gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv"' | ||
36 | else | ||
37 | - r = run_command('test', '-d', opencv_prefix + '/share/OpenCV') | ||
38 | + r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/OpenCV') | ||
39 | if r.returncode() == 0 | ||
40 | gstopencv_cargs += '-DOPENCV_PATH_NAME="OpenCV"' | ||
41 | else | ||
42 | - r = run_command('test', '-d', opencv_prefix + '/share/opencv4') | ||
43 | + r = run_command('test', '-d', pkgconf_sysroot + opencv_prefix + '/share/opencv4') | ||
44 | if r.returncode() == 0 | ||
45 | gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv4"' | ||
46 | else | ||
47 | -- | ||
48 | 2.28.0 | ||
49 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch deleted file mode 100644 index cb3bb7d361..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-msdk-fix-includedir-path.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From 1f00d5026118ebd48e4ccf83d32d67155c4e7f60 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Wed, 30 Dec 2020 16:37:47 +0800 | ||
4 | Subject: [PATCH] msdk: fix includedir path | ||
5 | |||
6 | In cross compilation, need to prepend PKG_CONFIG_SYSROOT_DIR to the dir path. | ||
7 | |||
8 | Upstream-Status: Inappropriate [OE-specific] | ||
9 | |||
10 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
11 | --- | ||
12 | sys/msdk/meson.build | 2 ++ | ||
13 | 1 file changed, 2 insertions(+) | ||
14 | |||
15 | diff --git a/sys/msdk/meson.build b/sys/msdk/meson.build | ||
16 | index 6346c9451..068f38548 100644 | ||
17 | --- a/sys/msdk/meson.build | ||
18 | +++ b/sys/msdk/meson.build | ||
19 | @@ -40,7 +40,9 @@ endif | ||
20 | |||
21 | mfx_dep = dependency('libmfx', required: false) | ||
22 | if mfx_dep.found() | ||
23 | + pkgconf_sysroot = run_command(python3, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() | ||
24 | mfx_incdir = mfx_dep.get_pkgconfig_variable('includedir') | ||
25 | + mfx_incdir = pkgconf_sysroot + mfx_incdir | ||
26 | mfx_inc = [] | ||
27 | else | ||
28 | # Old versions of MediaSDK don't provide a pkg-config file | ||
29 | -- | ||
30 | 2.17.1 | ||
31 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb index b1e3664cbf..523ee7a5ae 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.11.bb | |||
@@ -1,21 +1,20 @@ | |||
1 | require gstreamer1.0-plugins-common.inc | 1 | require gstreamer1.0-plugins-common.inc |
2 | require gstreamer1.0-plugins-license.inc | ||
2 | 3 | ||
3 | DESCRIPTION = "'Bad' GStreamer plugins and helper libraries " | 4 | SUMMARY = "'Bad' GStreamer plugins and helper libraries " |
4 | HOMEPAGE = "https://gstreamer.freedesktop.org/" | 5 | HOMEPAGE = "https://gstreamer.freedesktop.org/" |
5 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues" | 6 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues" |
6 | 7 | ||
7 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ | 8 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \ |
8 | file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \ | 9 | file://0001-fix-maybe-uninitialized-warnings-when-compiling-with.patch \ |
9 | file://0002-avoid-including-sys-poll.h-directly.patch \ | 10 | file://0002-avoid-including-sys-poll.h-directly.patch \ |
10 | file://0003-ensure-valid-sentinals-for-gst_structure_get-etc.patch \ | ||
11 | file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ | 11 | file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \ |
12 | file://0005-msdk-fix-includedir-path.patch \ | ||
13 | " | 12 | " |
14 | SRC_URI[sha256sum] = "b7e34b6b86272588fbd8b314dadfa6ceff895198cfb59e2950378e9e31ff22e0" | 13 | SRC_URI[sha256sum] = "808d3b33fc4c71aeb2561c364a87c2e8a3e2343319a83244c8391be4b09499c8" |
15 | 14 | ||
16 | S = "${WORKDIR}/gst-plugins-bad-${PV}" | 15 | S = "${WORKDIR}/gst-plugins-bad-${PV}" |
17 | 16 | ||
18 | LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+" | 17 | LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" |
19 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" | 18 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" |
20 | 19 | ||
21 | DEPENDS += "gstreamer1.0-plugins-base" | 20 | DEPENDS += "gstreamer1.0-plugins-base" |
@@ -25,15 +24,17 @@ inherit gobject-introspection | |||
25 | PACKAGECONFIG ??= " \ | 24 | PACKAGECONFIG ??= " \ |
26 | ${GSTREAMER_ORC} \ | 25 | ${GSTREAMER_ORC} \ |
27 | ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ | 26 | ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ |
28 | ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ | 27 | ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan x11', d)} \ |
29 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ | 28 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ |
30 | ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ | 29 | ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)} \ |
31 | bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \ | 30 | bz2 closedcaption curl dash dtls hls openssl sbc smoothstreaming \ |
32 | ttml uvch264 webp \ | 31 | sndfile ttml uvch264 webp \ |
32 | ${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'rsvg', d)} \ | ||
33 | " | 33 | " |
34 | 34 | ||
35 | PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom" | 35 | PACKAGECONFIG[aom] = "-Daom=enabled,-Daom=disabled,aom" |
36 | PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass" | 36 | PACKAGECONFIG[assrender] = "-Dassrender=enabled,-Dassrender=disabled,libass" |
37 | PACKAGECONFIG[avtp] = "-Davtp=enabled,-Davtp=disabled,libavtp" | ||
37 | PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5" | 38 | PACKAGECONFIG[bluez] = "-Dbluez=enabled,-Dbluez=disabled,bluez5" |
38 | PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" | 39 | PACKAGECONFIG[bz2] = "-Dbz2=enabled,-Dbz2=disabled,bzip2" |
39 | PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo" | 40 | PACKAGECONFIG[closedcaption] = "-Dclosedcaption=enabled,-Dclosedcaption=disabled,pango cairo" |
@@ -45,18 +46,21 @@ PACKAGECONFIG[dtls] = "-Ddtls=enabled,-Ddtls=disabled,openssl" | |||
45 | PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac" | 46 | PACKAGECONFIG[faac] = "-Dfaac=enabled,-Dfaac=disabled,faac" |
46 | PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2" | 47 | PACKAGECONFIG[faad] = "-Dfaad=enabled,-Dfaad=disabled,faad2" |
47 | PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" | 48 | PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" |
48 | PACKAGECONFIG[hls] = "-Dhls=enabled -Dhls-crypto=nettle,-Dhls=disabled,nettle" | 49 | PACKAGECONFIG[hls] = "-Dhls=enabled,-Dhls=disabled," |
50 | # Pick atleast one crypto backend below when enabling hls | ||
51 | PACKAGECONFIG[nettle] = "-Dhls-crypto=nettle,,nettle" | ||
52 | PACKAGECONFIG[openssl] = "-Dhls-crypto=openssl,,openssl" | ||
53 | PACKAGECONFIG[gcrypt] = "-Dhls-crypto=libgcrypt,,libgcrypt" | ||
49 | # the gl packageconfig enables OpenGL elements that haven't been ported | 54 | # the gl packageconfig enables OpenGL elements that haven't been ported |
50 | # to -base yet. They depend on the gstgl library in -base, so we do | 55 | # to -base yet. They depend on the gstgl library in -base, so we do |
51 | # not add GL dependencies here, since these are taken care of in -base. | 56 | # not add GL dependencies here, since these are taken care of in -base. |
52 | PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled," | 57 | PACKAGECONFIG[gl] = "-Dgl=enabled,-Dgl=disabled," |
53 | PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm" | 58 | PACKAGECONFIG[kms] = "-Dkms=enabled,-Dkms=disabled,libdrm" |
54 | PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265" | 59 | PACKAGECONFIG[libde265] = "-Dlibde265=enabled,-Dlibde265=disabled,libde265" |
55 | PACKAGECONFIG[libmms] = "-Dlibmms=enabled,-Dlibmms=disabled,libmms" | ||
56 | PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" | 60 | PACKAGECONFIG[libssh2] = "-Dcurl-ssh2=enabled,-Dcurl-ssh2=disabled,libssh2" |
57 | PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" | 61 | PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms" |
58 | PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" | 62 | PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" |
59 | PACKAGECONFIG[msdk] = "-Dmsdk=enabled,-Dmsdk=disabled,intel-mediasdk" | 63 | PACKAGECONFIG[msdk] = "-Dmsdk=enabled -Dmfx_api=oneVPL,-Dmsdk=disabled,onevpl-intel-gpu" |
60 | PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" | 64 | PACKAGECONFIG[neon] = "-Dneon=enabled,-Dneon=disabled,neon" |
61 | PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" | 65 | PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" |
62 | PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" | 66 | PACKAGECONFIG[opencv] = "-Dopencv=enabled,-Dopencv=disabled,opencv" |
@@ -78,6 +82,8 @@ PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp" | |||
78 | PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" | 82 | PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" |
79 | PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" | 83 | PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" |
80 | PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" | 84 | PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" |
85 | # this enables support for stateless V4L2 mem2mem codecs, which is a newer form of | ||
86 | # V4L2 codec; the V4L2 code in -base supports the older stateful V4L2 mem2mem codecs | ||
81 | PACKAGECONFIG[v4l2codecs] = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev" | 87 | PACKAGECONFIG[v4l2codecs] = "-Dv4l2codecs=enabled,-Dv4l2codecs=disabled,libgudev" |
82 | PACKAGECONFIG[va] = "-Dva=enabled,-Dva=disabled,libva" | 88 | PACKAGECONFIG[va] = "-Dva=enabled,-Dva=disabled,libva" |
83 | PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" | 89 | PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" |
@@ -88,10 +94,15 @@ PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp" | |||
88 | PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice" | 94 | PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice" |
89 | PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" | 95 | PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" |
90 | PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" | 96 | PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" |
97 | PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libxcb libxkbcommon" | ||
91 | PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265" | 98 | PACKAGECONFIG[x265] = "-Dx265=enabled,-Dx265=disabled,x265" |
92 | 99 | ||
100 | GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'faad resindvd x265', d)}" | ||
101 | |||
93 | EXTRA_OEMESON += " \ | 102 | EXTRA_OEMESON += " \ |
94 | -Ddoc=disabled \ | 103 | -Ddoc=disabled \ |
104 | -Daes=enabled \ | ||
105 | -Dcodecalpha=enabled \ | ||
95 | -Ddecklink=enabled \ | 106 | -Ddecklink=enabled \ |
96 | -Ddvb=enabled \ | 107 | -Ddvb=enabled \ |
97 | -Dfbdev=enabled \ | 108 | -Dfbdev=enabled \ |
@@ -100,7 +111,7 @@ EXTRA_OEMESON += " \ | |||
100 | -Dtranscode=enabled \ | 111 | -Dtranscode=enabled \ |
101 | -Dandroidmedia=disabled \ | 112 | -Dandroidmedia=disabled \ |
102 | -Dapplemedia=disabled \ | 113 | -Dapplemedia=disabled \ |
103 | -Davtp=disabled \ | 114 | -Dasio=disabled \ |
104 | -Dbs2b=disabled \ | 115 | -Dbs2b=disabled \ |
105 | -Dchromaprint=disabled \ | 116 | -Dchromaprint=disabled \ |
106 | -Dd3dvideosink=disabled \ | 117 | -Dd3dvideosink=disabled \ |
@@ -110,10 +121,12 @@ EXTRA_OEMESON += " \ | |||
110 | -Dfdkaac=disabled \ | 121 | -Dfdkaac=disabled \ |
111 | -Dflite=disabled \ | 122 | -Dflite=disabled \ |
112 | -Dgme=disabled \ | 123 | -Dgme=disabled \ |
124 | -Dgs=disabled \ | ||
113 | -Dgsm=disabled \ | 125 | -Dgsm=disabled \ |
114 | -Diqa=disabled \ | 126 | -Diqa=disabled \ |
115 | -Dkate=disabled \ | 127 | -Dkate=disabled \ |
116 | -Dladspa=disabled \ | 128 | -Dladspa=disabled \ |
129 | -Dldac=disabled \ | ||
117 | -Dlv2=disabled \ | 130 | -Dlv2=disabled \ |
118 | -Dmagicleap=disabled \ | 131 | -Dmagicleap=disabled \ |
119 | -Dmediafoundation=disabled \ | 132 | -Dmediafoundation=disabled \ |
@@ -122,10 +135,12 @@ EXTRA_OEMESON += " \ | |||
122 | -Dmplex=disabled \ | 135 | -Dmplex=disabled \ |
123 | -Dmusepack=disabled \ | 136 | -Dmusepack=disabled \ |
124 | -Dnvcodec=disabled \ | 137 | -Dnvcodec=disabled \ |
125 | -Dofa=disabled \ | ||
126 | -Dopenexr=disabled \ | 138 | -Dopenexr=disabled \ |
127 | -Dopenni2=disabled \ | 139 | -Dopenni2=disabled \ |
140 | -Dopenaptx=disabled \ | ||
128 | -Dopensles=disabled \ | 141 | -Dopensles=disabled \ |
142 | -Donnx=disabled \ | ||
143 | -Dqroverlay=disabled \ | ||
129 | -Dsoundtouch=disabled \ | 144 | -Dsoundtouch=disabled \ |
130 | -Dspandsp=disabled \ | 145 | -Dspandsp=disabled \ |
131 | -Dsvthevcenc=disabled \ | 146 | -Dsvthevcenc=disabled \ |
@@ -141,11 +156,10 @@ EXTRA_OEMESON += " \ | |||
141 | 156 | ||
142 | export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" | 157 | export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" |
143 | 158 | ||
144 | ARM_INSTRUCTION_SET_armv4 = "arm" | 159 | ARM_INSTRUCTION_SET:armv4 = "arm" |
145 | ARM_INSTRUCTION_SET_armv5 = "arm" | 160 | ARM_INSTRUCTION_SET:armv5 = "arm" |
146 | |||
147 | FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" | ||
148 | FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" | ||
149 | FILES_${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles" | ||
150 | FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs" | ||
151 | 161 | ||
162 | FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" | ||
163 | FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" | ||
164 | FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles" | ||
165 | FILES:${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch index d5d9838372..34c99ded42 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch | |||
@@ -1,13 +1,14 @@ | |||
1 | From f9d48cd85ee68207733b1b91a00453462c33524a Mon Sep 17 00:00:00 2001 | 1 | From 63fe5a7b4ef70e2c490bad3b0838329935a8d77c Mon Sep 17 00:00:00 2001 |
2 | From: zhouming <b42586@freescale.com> | 2 | From: zhouming <b42586@freescale.com> |
3 | Date: Wed, 14 May 2014 10:16:20 +0800 | 3 | Date: Wed, 14 May 2014 10:16:20 +0800 |
4 | Subject: [PATCH 1/4] ENGR00312515: get caps from src pad when query caps | 4 | Subject: [PATCH] ENGR00312515: get caps from src pad when query caps |
5 | 5 | ||
6 | https://bugzilla.gnome.org/show_bug.cgi?id=728312 | 6 | https://bugzilla.gnome.org/show_bug.cgi?id=728312 |
7 | 7 | ||
8 | Upstream-Status: Pending | 8 | Upstream-Status: Pending |
9 | 9 | ||
10 | Signed-off-by: zhouming <b42586@freescale.com> | 10 | Signed-off-by: zhouming <b42586@freescale.com> |
11 | |||
11 | --- | 12 | --- |
12 | gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++ | 13 | gst-libs/gst/tag/gsttagdemux.c | 13 +++++++++++++ |
13 | 1 file changed, 13 insertions(+) | 14 | 1 file changed, 13 insertions(+) |
@@ -16,10 +17,10 @@ Signed-off-by: zhouming <b42586@freescale.com> | |||
16 | diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c | 17 | diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c |
17 | old mode 100644 | 18 | old mode 100644 |
18 | new mode 100755 | 19 | new mode 100755 |
19 | index f545857..62d10ef | 20 | index 173da37..2b7f34c |
20 | --- a/gst-libs/gst/tag/gsttagdemux.c | 21 | --- a/gst-libs/gst/tag/gsttagdemux.c |
21 | +++ b/gst-libs/gst/tag/gsttagdemux.c | 22 | +++ b/gst-libs/gst/tag/gsttagdemux.c |
22 | @@ -1777,6 +1777,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) | 23 | @@ -1796,6 +1796,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) |
23 | } | 24 | } |
24 | break; | 25 | break; |
25 | } | 26 | } |
@@ -39,6 +40,3 @@ index f545857..62d10ef | |||
39 | default: | 40 | default: |
40 | res = gst_pad_query_default (pad, parent, query); | 41 | res = gst_pad_query_default (pad, parent, query); |
41 | break; | 42 | break; |
42 | -- | ||
43 | 2.28.0 | ||
44 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch index e453a500c9..2adeae93d6 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-ssaparse-enhance-SSA-text-lines-parsing.patch | |||
@@ -1,14 +1,15 @@ | |||
1 | From f587861bbe12ad0b10370f835592746aafedbf56 Mon Sep 17 00:00:00 2001 | 1 | From 7bf9525528c8f4a47413d7f82214d76f95f0c5f6 Mon Sep 17 00:00:00 2001 |
2 | From: Mingke Wang <mingke.wang@freescale.com> | 2 | From: Mingke Wang <mingke.wang@freescale.com> |
3 | Date: Thu, 19 Mar 2015 14:17:10 +0800 | 3 | Date: Thu, 19 Mar 2015 14:17:10 +0800 |
4 | Subject: [PATCH 2/4] ssaparse: enhance SSA text lines parsing. | 4 | Subject: [PATCH] ssaparse: enhance SSA text lines parsing. |
5 | 5 | ||
6 | some parser will pass in the original ssa text line which starts with "Dialog:" | 6 | some parser will pass in the original ssa text line which starts with "Dialog:" |
7 | and there's are maybe multiple Dialog lines in one input buffer. | 7 | and there's are maybe multiple Dialog lines in one input buffer. |
8 | 8 | ||
9 | Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=747496] | 9 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/178] |
10 | 10 | ||
11 | Signed-off-by: Mingke Wang <mingke.wang@freescale.com> | 11 | Signed-off-by: Mingke Wang <mingke.wang@freescale.com> |
12 | |||
12 | --- | 13 | --- |
13 | gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++---- | 14 | gst/subparse/gstssaparse.c | 150 +++++++++++++++++++++++++++++++++---- |
14 | 1 file changed, 134 insertions(+), 16 deletions(-) | 15 | 1 file changed, 134 insertions(+), 16 deletions(-) |
@@ -17,10 +18,10 @@ Signed-off-by: Mingke Wang <mingke.wang@freescale.com> | |||
17 | diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c | 18 | diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c |
18 | old mode 100644 | 19 | old mode 100644 |
19 | new mode 100755 | 20 | new mode 100755 |
20 | index c849c08..4b9636c | 21 | index d6fdb9c..5ebe678 |
21 | --- a/gst/subparse/gstssaparse.c | 22 | --- a/gst/subparse/gstssaparse.c |
22 | +++ b/gst/subparse/gstssaparse.c | 23 | +++ b/gst/subparse/gstssaparse.c |
23 | @@ -262,6 +262,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) | 24 | @@ -270,6 +270,7 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) |
24 | * gst_ssa_parse_push_line: | 25 | * gst_ssa_parse_push_line: |
25 | * @parse: caller element | 26 | * @parse: caller element |
26 | * @txt: text to push | 27 | * @txt: text to push |
@@ -28,7 +29,7 @@ index c849c08..4b9636c | |||
28 | * @start: timestamp for the buffer | 29 | * @start: timestamp for the buffer |
29 | * @duration: duration for the buffer | 30 | * @duration: duration for the buffer |
30 | * | 31 | * |
31 | @@ -271,27 +272,133 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) | 32 | @@ -279,27 +280,133 @@ gst_ssa_parse_remove_override_codes (GstSsaParse * parse, gchar * txt) |
32 | * Returns: result of the push of the created buffer | 33 | * Returns: result of the push of the created buffer |
33 | */ | 34 | */ |
34 | static GstFlowReturn | 35 | static GstFlowReturn |
@@ -173,7 +174,7 @@ index c849c08..4b9636c | |||
173 | GST_LOG_OBJECT (parse, "Text : %s", t); | 174 | GST_LOG_OBJECT (parse, "Text : %s", t); |
174 | 175 | ||
175 | if (gst_ssa_parse_remove_override_codes (parse, t)) { | 176 | if (gst_ssa_parse_remove_override_codes (parse, t)) { |
176 | @@ -309,13 +416,22 @@ gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt, | 177 | @@ -317,13 +424,22 @@ gst_ssa_parse_push_line (GstSsaParse * parse, gchar * txt, |
177 | gst_buffer_fill (buf, 0, escaped, len + 1); | 178 | gst_buffer_fill (buf, 0, escaped, len + 1); |
178 | gst_buffer_set_size (buf, len); | 179 | gst_buffer_set_size (buf, len); |
179 | g_free (escaped); | 180 | g_free (escaped); |
@@ -200,7 +201,7 @@ index c849c08..4b9636c | |||
200 | 201 | ||
201 | ret = gst_pad_push (parse->srcpad, buf); | 202 | ret = gst_pad_push (parse->srcpad, buf); |
202 | 203 | ||
203 | @@ -335,6 +451,7 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) | 204 | @@ -343,6 +459,7 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) |
204 | GstClockTime ts; | 205 | GstClockTime ts; |
205 | gchar *txt; | 206 | gchar *txt; |
206 | GstMapInfo map; | 207 | GstMapInfo map; |
@@ -208,7 +209,7 @@ index c849c08..4b9636c | |||
208 | 209 | ||
209 | if (G_UNLIKELY (!parse->framed)) | 210 | if (G_UNLIKELY (!parse->framed)) |
210 | goto not_framed; | 211 | goto not_framed; |
211 | @@ -352,13 +469,14 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) | 212 | @@ -360,13 +477,14 @@ gst_ssa_parse_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * buf) |
212 | /* make double-sure it's 0-terminated and all */ | 213 | /* make double-sure it's 0-terminated and all */ |
213 | gst_buffer_map (buf, &map, GST_MAP_READ); | 214 | gst_buffer_map (buf, &map, GST_MAP_READ); |
214 | txt = g_strndup ((gchar *) map.data, map.size); | 215 | txt = g_strndup ((gchar *) map.data, map.size); |
@@ -224,6 +225,3 @@ index c849c08..4b9636c | |||
224 | 225 | ||
225 | if (ret != GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (ts)) { | 226 | if (ret != GST_FLOW_OK && GST_CLOCK_TIME_IS_VALID (ts)) { |
226 | GstSegment segment; | 227 | GstSegment segment; |
227 | -- | ||
228 | 2.28.0 | ||
229 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch index 2af83ff8b9..a605533be8 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch | |||
@@ -1,19 +1,20 @@ | |||
1 | From 153f3b83a3fed77785bd1420bed8bbafa2d791b3 Mon Sep 17 00:00:00 2001 | 1 | From 2b07840122bc2e83bd23dad59aa80d9479f2e1e4 Mon Sep 17 00:00:00 2001 |
2 | From: Carlos Rafael Giani <crg7475@mailbox.org> | 2 | From: Carlos Rafael Giani <crg7475@mailbox.org> |
3 | Date: Tue, 21 May 2019 14:01:11 +0200 | 3 | Date: Tue, 21 May 2019 14:01:11 +0200 |
4 | Subject: [PATCH 3/4] viv-fb: Make sure config.h is included | 4 | Subject: [PATCH] viv-fb: Make sure config.h is included |
5 | 5 | ||
6 | This prevents build errors due to missing GST_API_* symbols | 6 | This prevents build errors due to missing GST_API_* symbols |
7 | 7 | ||
8 | Upstream-Status: Pending | 8 | Upstream-Status: Pending |
9 | 9 | ||
10 | Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> | 10 | Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> |
11 | |||
11 | --- | 12 | --- |
12 | gst-libs/gst/gl/gl-prelude.h | 4 ++++ | 13 | gst-libs/gst/gl/gl-prelude.h | 4 ++++ |
13 | 1 file changed, 4 insertions(+) | 14 | 1 file changed, 4 insertions(+) |
14 | 15 | ||
15 | diff --git a/gst-libs/gst/gl/gl-prelude.h b/gst-libs/gst/gl/gl-prelude.h | 16 | diff --git a/gst-libs/gst/gl/gl-prelude.h b/gst-libs/gst/gl/gl-prelude.h |
16 | index 05e1f62..96ce5e6 100644 | 17 | index 85fca5a..946c729 100644 |
17 | --- a/gst-libs/gst/gl/gl-prelude.h | 18 | --- a/gst-libs/gst/gl/gl-prelude.h |
18 | +++ b/gst-libs/gst/gl/gl-prelude.h | 19 | +++ b/gst-libs/gst/gl/gl-prelude.h |
19 | @@ -22,6 +22,10 @@ | 20 | @@ -22,6 +22,10 @@ |
@@ -27,6 +28,3 @@ index 05e1f62..96ce5e6 100644 | |||
27 | #include <gst/gst.h> | 28 | #include <gst/gst.h> |
28 | 29 | ||
29 | #ifdef BUILDING_GST_GL | 30 | #ifdef BUILDING_GST_GL |
30 | -- | ||
31 | 2.28.0 | ||
32 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch deleted file mode 100644 index f45ea65ef3..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 79841a02ee754eba736cb32aaf2ed2b2fc0483d4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Thu, 24 Sep 2015 19:47:32 +0300 | ||
4 | Subject: [PATCH 4/4] glimagesink: Downrank to marginal | ||
5 | |||
6 | On desktop, where there is good OpenGL, xvimagesink will come up first, | ||
7 | on other platforms, OpenGL can't be trusted because it's either software (like | ||
8 | in a VM) or broken (like on embedded)., so let ximagesink come above. | ||
9 | |||
10 | Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=751684] | ||
11 | |||
12 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
13 | --- | ||
14 | ext/gl/gstopengl.c | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/ext/gl/gstopengl.c b/ext/gl/gstopengl.c | ||
18 | index 302e845..463be9c 100644 | ||
19 | --- a/ext/gl/gstopengl.c | ||
20 | +++ b/ext/gl/gstopengl.c | ||
21 | @@ -127,7 +127,7 @@ plugin_init (GstPlugin * plugin) | ||
22 | #endif | ||
23 | |||
24 | if (!gst_element_register (plugin, "glimagesink", | ||
25 | - GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) { | ||
26 | + GST_RANK_MARGINAL, gst_gl_image_sink_bin_get_type ())) { | ||
27 | return FALSE; | ||
28 | } | ||
29 | |||
30 | -- | ||
31 | 2.28.0 | ||
32 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb index 86b0f2790e..7aa10eb646 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.11.bb | |||
@@ -1,18 +1,17 @@ | |||
1 | require gstreamer1.0-plugins-common.inc | 1 | require gstreamer1.0-plugins-common.inc |
2 | 2 | ||
3 | DESCRIPTION = "'Base' GStreamer plugins and helper libraries" | 3 | SUMMARY = "'Base' GStreamer plugins and helper libraries" |
4 | HOMEPAGE = "https://gstreamer.freedesktop.org/" | 4 | HOMEPAGE = "https://gstreamer.freedesktop.org/" |
5 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues" | 5 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues" |
6 | LICENSE = "GPLv2+ & LGPLv2+" | 6 | LICENSE = "LGPL-2.1-or-later" |
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770" |
8 | 8 | ||
9 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ | 9 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \ |
10 | file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ | 10 | file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ |
11 | file://0003-viv-fb-Make-sure-config.h-is-included.patch \ | 11 | file://0003-viv-fb-Make-sure-config.h-is-included.patch \ |
12 | file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ | 12 | file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ |
13 | file://0004-glimagesink-Downrank-to-marginal.patch \ | ||
14 | " | 13 | " |
15 | SRC_URI[sha256sum] = "dbfa20283848f0347a223dd8523dfb62e09e5220b21b1d157a8b0c8b67ba9f52" | 14 | SRC_URI[sha256sum] = "65eaf72296cc5edc985695a4d80affc931e64a79f4879d05615854f7a2cf5bd1" |
16 | 15 | ||
17 | S = "${WORKDIR}/gst-plugins-base-${PV}" | 16 | S = "${WORKDIR}/gst-plugins-base-${PV}" |
18 | 17 | ||
@@ -20,11 +19,10 @@ DEPENDS += "iso-codes util-linux zlib" | |||
20 | 19 | ||
21 | inherit gobject-introspection | 20 | inherit gobject-introspection |
22 | 21 | ||
23 | PACKAGES_DYNAMIC =+ "^libgst.*" | ||
24 | |||
25 | # opengl packageconfig factored out to make it easy for distros | 22 | # opengl packageconfig factored out to make it easy for distros |
26 | # and BSP layers to choose OpenGL APIs/platforms/window systems | 23 | # and BSP layers to choose OpenGL APIs/platforms/window systems |
27 | PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}" | 24 | PACKAGECONFIG_X11 = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl glx', '', d)}" |
25 | PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl ${PACKAGECONFIG_X11}', '', d)}" | ||
28 | 26 | ||
29 | PACKAGECONFIG ??= " \ | 27 | PACKAGECONFIG ??= " \ |
30 | ${GSTREAMER_ORC} \ | 28 | ${GSTREAMER_ORC} \ |
@@ -35,7 +33,7 @@ PACKAGECONFIG ??= " \ | |||
35 | " | 33 | " |
36 | 34 | ||
37 | OPENGL_APIS = 'opengl gles2' | 35 | OPENGL_APIS = 'opengl gles2' |
38 | OPENGL_PLATFORMS = 'egl' | 36 | OPENGL_PLATFORMS = 'egl glx' |
39 | 37 | ||
40 | X11DEPENDS = "virtual/libx11 libsm libxrender libxv" | 38 | X11DEPENDS = "virtual/libx11 libsm libxrender libxv" |
41 | X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled" | 39 | X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled" |
@@ -43,11 +41,15 @@ X11DISABLEOPTS = "-Dx11=disabled -Dxvideo=disabled -Dxshm=disabled" | |||
43 | 41 | ||
44 | PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" | 42 | PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" |
45 | PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia" | 43 | PACKAGECONFIG[cdparanoia] = "-Dcdparanoia=enabled,-Dcdparanoia=disabled,cdparanoia" |
44 | PACKAGECONFIG[graphene] = "-Dgl-graphene=enabled,-Dgl-graphene=disabled,graphene" | ||
46 | PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg" | 45 | PACKAGECONFIG[jpeg] = "-Dgl-jpeg=enabled,-Dgl-jpeg=disabled,jpeg" |
47 | PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg" | 46 | PACKAGECONFIG[ogg] = "-Dogg=enabled,-Dogg=disabled,libogg" |
48 | PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus" | 47 | PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus" |
49 | PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango" | 48 | PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango" |
50 | PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng" | 49 | PACKAGECONFIG[png] = "-Dgl-png=enabled,-Dgl-png=disabled,libpng" |
50 | # This enables Qt5 QML examples in -base. The Qt5 GStreamer | ||
51 | # qmlglsink and qmlglsrc plugins still exist in -good. | ||
52 | PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native" | ||
51 | PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora" | 53 | PACKAGECONFIG[theora] = "-Dtheora=enabled,-Dtheora=disabled,libtheora" |
52 | PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor" | 54 | PACKAGECONFIG[tremor] = "-Dtremor=enabled,-Dtremor=disabled,tremor" |
53 | PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual" | 55 | PACKAGECONFIG[visual] = "-Dlibvisual=enabled,-Dlibvisual=disabled,libvisual" |
@@ -60,28 +62,25 @@ PACKAGECONFIG[gles2] = ",,virtual/libgles2" | |||
60 | 62 | ||
61 | # OpenGL platform packageconfigs | 63 | # OpenGL platform packageconfigs |
62 | PACKAGECONFIG[egl] = ",,virtual/egl" | 64 | PACKAGECONFIG[egl] = ",,virtual/egl" |
65 | PACKAGECONFIG[glx] = ",,virtual/libgl" | ||
63 | 66 | ||
64 | # OpenGL window systems (except for X11) | 67 | # OpenGL window systems (except for X11) |
65 | PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" | 68 | PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" |
66 | PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" | 69 | PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" |
67 | PACKAGECONFIG[dispmanx] = ",,virtual/libomxil" | 70 | PACKAGECONFIG[dispmanx] = ",,virtual/libomxil" |
71 | PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d" | ||
68 | 72 | ||
69 | OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', ' x11', '', d)}" | 73 | OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}" |
70 | OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gbm', ' gbm', '', d)}" | ||
71 | OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', ' wayland', '', d)}" | ||
72 | OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'dispmanx', ' dispmanx', '', d)}" | ||
73 | OPENGL_WINSYS_append = "${@bb.utils.contains('PACKAGECONFIG', 'egl', ' egl', '', d)}" | ||
74 | 74 | ||
75 | EXTRA_OEMESON += " \ | 75 | EXTRA_OEMESON += " \ |
76 | -Ddoc=disabled \ | 76 | -Ddoc=disabled \ |
77 | -Dgl-graphene=disabled \ | ||
78 | ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ | 77 | ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ |
79 | ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ | 78 | ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ |
80 | ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ | 79 | ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ |
81 | " | 80 | " |
82 | 81 | ||
83 | FILES_${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h" | 82 | FILES:${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h" |
84 | FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" | 83 | FILES:${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" |
85 | 84 | ||
86 | def get_opengl_cmdline_list(switch_name, options, d): | 85 | def get_opengl_cmdline_list(switch_name, options, d): |
87 | selected_options = [] | 86 | selected_options = [] |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc index dba96e0f6e..54dd92873f 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc | |||
@@ -21,7 +21,7 @@ GSTREAMER_ORC ?= "orc" | |||
21 | # workaround to disable orc on mips to fix the build failure | 21 | # workaround to disable orc on mips to fix the build failure |
22 | # {standard input}: Assembler messages: | 22 | # {standard input}: Assembler messages: |
23 | # {standard input}:46587: Error: branch out of range | 23 | # {standard input}:46587: Error: branch out of range |
24 | GSTREAMER_ORC_mips = "" | 24 | GSTREAMER_ORC:mips = "" |
25 | PACKAGECONFIG[orc] = "-Dorc=enabled,-Dorc=disabled,orc orc-native" | 25 | PACKAGECONFIG[orc] = "-Dorc=enabled,-Dorc=disabled,orc orc-native" |
26 | 26 | ||
27 | # TODO: put this in a gettext.bbclass patch (with variables to allow for | 27 | # TODO: put this in a gettext.bbclass patch (with variables to allow for |
@@ -45,6 +45,3 @@ EXTRA_OEMESON += " \ | |||
45 | 45 | ||
46 | GIR_MESON_ENABLE_FLAG = "enabled" | 46 | GIR_MESON_ENABLE_FLAG = "enabled" |
47 | GIR_MESON_DISABLE_FLAG = "disabled" | 47 | GIR_MESON_DISABLE_FLAG = "disabled" |
48 | |||
49 | # Dynamically generate packages for all enabled plugins | ||
50 | PACKAGES_DYNAMIC = "^${PN}-.*" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch deleted file mode 100644 index 788d752058..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | From bf8b2fa0f6870589d036f0f33c140a3f85b530a0 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Tue, 31 Mar 2020 21:23:28 -0700 | ||
4 | Subject: [PATCH] qt: include ext/qt/gstqtgl.h instead of gst/gl/gstglfuncs.h | ||
5 | |||
6 | gst/gl/gstglfuncs.h is included via ext/qt/gstqtgl.h which has logic to | ||
7 | prefer qt headers definitions for GLsync | ||
8 | |||
9 | This helps in fixing build errors like below | ||
10 | |||
11 | /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: error: conflicting declaration 'typedef struct __GLsync* GLsync' | ||
12 | 24 | typedef struct __GLsync *GLsync; | ||
13 | | ^~~~~~ | ||
14 | In file included from /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:84, | ||
15 | from ../gst-plugins-good-1.16.2/ext/qt/gstqsgtexture.cc:30: | ||
16 | /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: note: previous declaration as 'typedef void* GLsync | ||
17 | ' | ||
18 | 40 | typedef gpointer GLsync; | ||
19 | | ^~~~~~ | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
23 | --- | ||
24 | ext/qt/gstqsgtexture.cc | 2 +- | ||
25 | ext/qt/qtwindow.cc | 2 +- | ||
26 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
27 | |||
28 | diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc | ||
29 | index a05d26e..4cc9fc6 100644 | ||
30 | --- a/ext/qt/gstqsgtexture.cc | ||
31 | +++ b/ext/qt/gstqsgtexture.cc | ||
32 | @@ -27,7 +27,7 @@ | ||
33 | |||
34 | #include <gst/video/video.h> | ||
35 | #include <gst/gl/gl.h> | ||
36 | -#include <gst/gl/gstglfuncs.h> | ||
37 | +#include <ext/qt/gstqtgl.h> | ||
38 | #include "gstqsgtexture.h" | ||
39 | |||
40 | #define GST_CAT_DEFAULT gst_qsg_texture_debug | ||
41 | diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc | ||
42 | index 9360c33..0dfd3f1 100644 | ||
43 | --- a/ext/qt/qtwindow.cc | ||
44 | +++ b/ext/qt/qtwindow.cc | ||
45 | @@ -25,7 +25,7 @@ | ||
46 | #include <stdio.h> | ||
47 | |||
48 | #include <gst/video/video.h> | ||
49 | -#include <gst/gl/gstglfuncs.h> | ||
50 | +#include <ext/qt/gstqtgl.h> | ||
51 | #include "qtwindow.h" | ||
52 | #include "gstqsgtexture.h" | ||
53 | #include "gstqtglutility.h" | ||
54 | -- | ||
55 | 2.28.0 | ||
56 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch new file mode 100644 index 0000000000..33bd4200f6 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | From b77d4806fd5de50d0b017a3e6a19c5bfdef7b3e4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Mon, 13 Feb 2023 12:47:31 -0800 | ||
4 | Subject: [PATCH] v4l2: Define ioctl_req_t for posix/linux case | ||
5 | |||
6 | this is an issue seen with musl based linux distros e.g. alpine [1] | ||
7 | musl is not going to change this since it breaks ABI/API interfaces | ||
8 | Newer compilers are stringent ( e.g. clang16 ) which can now detect | ||
9 | signature mismatches in function pointers too, existing code warned but | ||
10 | did not error with older clang | ||
11 | |||
12 | Fixes | ||
13 | gstv4l2object.c:544:23: error: incompatible function pointer types assigning to 'gint (*)(gint, ioctl_req_t, ...)' (aka 'int (*)(int, unsigned long, ...)') from 'int (int, int, ...)' [-Wincompatible-function-pointer-types] | ||
14 | v4l2object->ioctl = ioctl; | ||
15 | ^ ~~~~~ | ||
16 | |||
17 | [1] https://gitlab.alpinelinux.org/alpine/aports/-/issues/7580 | ||
18 | |||
19 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3950] | ||
20 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
21 | |||
22 | --- | ||
23 | sys/v4l2/gstv4l2object.h | 2 ++ | ||
24 | 1 file changed, 2 insertions(+) | ||
25 | |||
26 | diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h | ||
27 | index d95b375..5223cbb 100644 | ||
28 | --- a/sys/v4l2/gstv4l2object.h | ||
29 | +++ b/sys/v4l2/gstv4l2object.h | ||
30 | @@ -76,6 +76,8 @@ typedef gboolean (*GstV4l2UpdateFpsFunction) (GstV4l2Object * v4l2object); | ||
31 | * 'unsigned long' for the 2nd parameter */ | ||
32 | #ifdef __ANDROID__ | ||
33 | typedef unsigned ioctl_req_t; | ||
34 | +#elif defined(__linux__) && !defined(__GLIBC__) /* musl/linux */ | ||
35 | +typedef int ioctl_req_t; | ||
36 | #else | ||
37 | typedef gulong ioctl_req_t; | ||
38 | #endif | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb index 93c6616c33..9ce3f73f7c 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.11.bb | |||
@@ -1,30 +1,33 @@ | |||
1 | require gstreamer1.0-plugins-common.inc | 1 | require gstreamer1.0-plugins-common.inc |
2 | 2 | ||
3 | DESCRIPTION = "'Good' GStreamer plugins" | 3 | SUMMARY = "'Good' GStreamer plugins" |
4 | HOMEPAGE = "https://gstreamer.freedesktop.org/" | 4 | HOMEPAGE = "https://gstreamer.freedesktop.org/" |
5 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues" | 5 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues" |
6 | 6 | ||
7 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ | 7 | SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \ |
8 | file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \ | 8 | file://0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch" |
9 | " | ||
10 | 9 | ||
11 | SRC_URI[sha256sum] = "9b3b8e05d4d6073bf929fb33e2d8f74dd81ff21fa5b50c3273c78dfa2ab9c5cb" | 10 | SRC_URI[sha256sum] = "6ddd032381827d31820540735f0004b429436b0bdac19aaeab44fa22faad52e2" |
12 | 11 | ||
13 | S = "${WORKDIR}/gst-plugins-good-${PV}" | 12 | S = "${WORKDIR}/gst-plugins-good-${PV}" |
14 | 13 | ||
15 | LICENSE = "GPLv2+ & LGPLv2.1+" | 14 | LICENSE = "LGPL-2.1-or-later" |
16 | LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ | 15 | LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ |
17 | file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" | 16 | file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" |
18 | 17 | ||
19 | DEPENDS += "gstreamer1.0-plugins-base libcap zlib" | 18 | DEPENDS += "gstreamer1.0-plugins-base libcap zlib" |
20 | RPROVIDES_${PN}-pulseaudio += "${PN}-pulse" | 19 | RPROVIDES:${PN}-pulseaudio += "${PN}-pulse" |
21 | RPROVIDES_${PN}-soup += "${PN}-souphttpsrc" | 20 | RPROVIDES:${PN}-soup += "${PN}-souphttpsrc" |
21 | RDEPENDS:${PN}-soup += "${MLPREFIX}${@bb.utils.contains('PACKAGECONFIG', 'soup2', 'libsoup-2.4', 'libsoup', d)}" | ||
22 | |||
23 | PACKAGECONFIG_SOUP ?= "soup3" | ||
22 | 24 | ||
23 | PACKAGECONFIG ??= " \ | 25 | PACKAGECONFIG ??= " \ |
24 | ${GSTREAMER_ORC} \ | 26 | ${GSTREAMER_ORC} \ |
27 | ${PACKAGECONFIG_SOUP} \ | ||
25 | ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ | 28 | ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ |
26 | ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'asm', '', d)} \ | 29 | ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'asm', '', d)} \ |
27 | bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 soup speex taglib v4l2 \ | 30 | bz2 cairo flac gdk-pixbuf gudev jpeg lame libpng mpg123 speex taglib v4l2 \ |
28 | " | 31 | " |
29 | 32 | ||
30 | X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" | 33 | X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage" |
@@ -48,8 +51,9 @@ PACKAGECONFIG[libpng] = "-Dpng=enabled,-Dpng=disabled,libpng" | |||
48 | PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils" | 51 | PACKAGECONFIG[libv4l2] = "-Dv4l2-libv4l2=enabled,-Dv4l2-libv4l2=disabled,v4l-utils" |
49 | PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" | 52 | PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" |
50 | PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" | 53 | PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" |
51 | PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native ${QT5WAYLANDDEPENDS}" | 54 | PACKAGECONFIG[qt5] = "-Dqt5=enabled,-Dqt5=disabled,qtbase qtdeclarative qtbase-native qttools-native ${QT5WAYLANDDEPENDS}" |
52 | PACKAGECONFIG[soup] = "-Dsoup=enabled,-Dsoup=disabled,libsoup-2.4" | 55 | PACKAGECONFIG[soup2] = "-Dsoup=enabled,,libsoup-2.4,,,soup3" |
56 | PACKAGECONFIG[soup3] = "-Dsoup=enabled,,libsoup,,,soup2" | ||
53 | PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex" | 57 | PACKAGECONFIG[speex] = "-Dspeex=enabled,-Dspeex=disabled,speex" |
54 | PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland" | 58 | PACKAGECONFIG[rpi] = "-Drpicamsrc=enabled,-Drpicamsrc=disabled,userland" |
55 | PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib" | 59 | PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib" |
@@ -73,4 +77,4 @@ EXTRA_OEMESON += " \ | |||
73 | -Dwaveform=disabled \ | 77 | -Dwaveform=disabled \ |
74 | " | 78 | " |
75 | 79 | ||
76 | FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" | 80 | FILES:${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc new file mode 100644 index 0000000000..8b1c001111 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-license.inc | |||
@@ -0,0 +1,19 @@ | |||
1 | # This .inc file contains functionality for automatically setting | ||
2 | # the the license of all plugins according to the GSTREAMER_GPL. | ||
3 | |||
4 | PACKAGESPLITFUNCS += "set_gstreamer_license" | ||
5 | |||
6 | python set_gstreamer_license () { | ||
7 | import oe.utils | ||
8 | pn = d.getVar('PN') + '-' | ||
9 | gpl_plugins_names = [pn+plugin for plugin in d.getVar('GSTREAMER_GPL').split()] | ||
10 | for pkg in oe.utils.packages_filter_out_system(d): | ||
11 | if pkg in gpl_plugins_names: | ||
12 | d.setVar('LICENSE:' + pkg, 'GPL-2.0-or-later') | ||
13 | else: | ||
14 | d.setVar('LICENSE:' + pkg, 'LGPL-2.1-or-later') | ||
15 | } | ||
16 | |||
17 | EXTRA_OEMESON += " \ | ||
18 | ${@bb.utils.contains_any('PACKAGECONFIG', "${GSTREAMER_GPL}", '-Dgpl=enabled', '-Dgpl=disabled', d)} \ | ||
19 | " | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc index 9a7a1b6afe..d77aeed8a2 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc | |||
@@ -6,8 +6,11 @@ | |||
6 | # This is mainly used by the gstreamer1.0-plugins-* plugin set recipes, | 6 | # This is mainly used by the gstreamer1.0-plugins-* plugin set recipes, |
7 | # but can be used in any recipe that produces GStreamer plugins. | 7 | # but can be used in any recipe that produces GStreamer plugins. |
8 | 8 | ||
9 | PACKAGESPLITFUNCS_prepend = " split_gstreamer10_packages " | 9 | # Dynamically generate packages for all enabled plugins |
10 | PACKAGESPLITFUNCS_append = " set_gstreamer10_metapkg_rdepends " | 10 | PACKAGES_DYNAMIC = "^${PN}-.* ^libgst.*" |
11 | |||
12 | PACKAGESPLITFUNCS =+ "split_gstreamer10_packages" | ||
13 | PACKAGESPLITFUNCS += "set_gstreamer10_metapkg_rdepends" | ||
11 | 14 | ||
12 | python split_gstreamer10_packages () { | 15 | python split_gstreamer10_packages () { |
13 | gst_libdir = d.expand('${libdir}/gstreamer-1.0') | 16 | gst_libdir = d.expand('${libdir}/gstreamer-1.0') |
@@ -33,13 +36,13 @@ python set_gstreamer10_metapkg_rdepends () { | |||
33 | 36 | ||
34 | pn = d.getVar('PN') | 37 | pn = d.getVar('PN') |
35 | metapkg = pn + '-meta' | 38 | metapkg = pn + '-meta' |
36 | d.setVar('ALLOW_EMPTY_' + metapkg, "1") | 39 | d.setVar('ALLOW_EMPTY:' + metapkg, "1") |
37 | d.setVar('FILES_' + metapkg, "") | 40 | d.setVar('FILES:' + metapkg, "") |
38 | blacklist = [ pn, pn + '-meta' ] | 41 | exclude = [ pn, pn + '-meta' ] |
39 | metapkg_rdepends = [] | 42 | metapkg_rdepends = [] |
40 | pkgdest = d.getVar('PKGDEST') | 43 | pkgdest = d.getVar('PKGDEST') |
41 | for pkg in oe.utils.packages_filter_out_system(d): | 44 | for pkg in oe.utils.packages_filter_out_system(d): |
42 | if pkg not in blacklist and pkg not in metapkg_rdepends: | 45 | if pkg not in exclude and pkg not in metapkg_rdepends: |
43 | # See if the package is empty by looking at the contents of its PKGDEST subdirectory. | 46 | # See if the package is empty by looking at the contents of its PKGDEST subdirectory. |
44 | # If this subdirectory is empty, then the package is. | 47 | # If this subdirectory is empty, then the package is. |
45 | # Empty packages do not get added to the meta package's RDEPENDS | 48 | # Empty packages do not get added to the meta package's RDEPENDS |
@@ -51,20 +54,20 @@ python set_gstreamer10_metapkg_rdepends () { | |||
51 | is_empty = len(dir_contents) == 0 | 54 | is_empty = len(dir_contents) == 0 |
52 | if not is_empty: | 55 | if not is_empty: |
53 | metapkg_rdepends.append(pkg) | 56 | metapkg_rdepends.append(pkg) |
54 | d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) | 57 | d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends)) |
55 | d.setVar('DESCRIPTION_' + metapkg, pn + ' meta package') | 58 | d.setVar('DESCRIPTION:' + metapkg, pn + ' meta package') |
56 | } | 59 | } |
57 | 60 | ||
58 | # each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev | 61 | # each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev |
59 | # so we need them even when empty (like in gst-plugins-good case) | 62 | # so we need them even when empty (like in gst-plugins-good case) |
60 | ALLOW_EMPTY_${PN} = "1" | 63 | ALLOW_EMPTY:${PN} = "1" |
61 | ALLOW_EMPTY_${PN}-dev = "1" | 64 | ALLOW_EMPTY:${PN}-dev = "1" |
62 | ALLOW_EMPTY_${PN}-staticdev = "1" | 65 | ALLOW_EMPTY:${PN}-staticdev = "1" |
63 | 66 | ||
64 | PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" | 67 | PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" |
65 | 68 | ||
66 | FILES_${PN} = "" | 69 | FILES:${PN} = "" |
67 | FILES_${PN}-apps = "${bindir}" | 70 | FILES:${PN}-apps = "${bindir}" |
68 | FILES_${PN}-glib = "${datadir}/glib-2.0" | 71 | FILES:${PN}-glib = "${datadir}/glib-2.0" |
69 | 72 | ||
70 | RRECOMMENDS_${PN} += "${PN}-meta" | 73 | RRECOMMENDS:${PN} += "${PN}-meta" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb index 876a9268a2..99f41d4f3d 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.11.bb | |||
@@ -1,19 +1,21 @@ | |||
1 | require gstreamer1.0-plugins-common.inc | 1 | require gstreamer1.0-plugins-common.inc |
2 | require gstreamer1.0-plugins-license.inc | ||
2 | 3 | ||
3 | DESCRIPTION = "'Ugly GStreamer plugins" | 4 | SUMMARY = "'Ugly GStreamer plugins" |
4 | HOMEPAGE = "https://gstreamer.freedesktop.org/" | 5 | HOMEPAGE = "https://gstreamer.freedesktop.org/" |
5 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues" | 6 | BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues" |
6 | 7 | ||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ |
8 | file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" | 9 | " |
9 | 10 | ||
10 | LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" | 11 | LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later" |
11 | LICENSE_FLAGS = "commercial" | 12 | LICENSE_FLAGS = "commercial" |
12 | 13 | ||
13 | SRC_URI = " \ | 14 | SRC_URI = " \ |
14 | https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ | 15 | https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ |
15 | " | 16 | " |
16 | SRC_URI[sha256sum] = "70f7429b25dd2f714eb18e80af61b1363b1f63019e16cd28e086e3a619eaa992" | 17 | |
18 | SRC_URI[sha256sum] = "7758b7decfd20c00cae5700822bcbbf03f98c723e33e17634db2e07ca1da60bf" | ||
17 | 19 | ||
18 | S = "${WORKDIR}/gst-plugins-ugly-${PV}" | 20 | S = "${WORKDIR}/gst-plugins-ugly-${PV}" |
19 | 21 | ||
@@ -23,21 +25,22 @@ GST_PLUGIN_SET_HAS_EXAMPLES = "0" | |||
23 | 25 | ||
24 | PACKAGECONFIG ??= " \ | 26 | PACKAGECONFIG ??= " \ |
25 | ${GSTREAMER_ORC} \ | 27 | ${GSTREAMER_ORC} \ |
26 | a52dec mpeg2dec \ | ||
27 | " | 28 | " |
28 | 29 | ||
29 | PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52" | ||
30 | PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr" | 30 | PACKAGECONFIG[amrnb] = "-Damrnb=enabled,-Damrnb=disabled,opencore-amr" |
31 | PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr" | 31 | PACKAGECONFIG[amrwb] = "-Damrwbdec=enabled,-Damrwbdec=disabled,opencore-amr" |
32 | PACKAGECONFIG[a52dec] = "-Da52dec=enabled,-Da52dec=disabled,liba52" | ||
32 | PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio" | 33 | PACKAGECONFIG[cdio] = "-Dcdio=enabled,-Dcdio=disabled,libcdio" |
33 | PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread" | 34 | PACKAGECONFIG[dvdread] = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread" |
34 | PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec" | 35 | PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec" |
35 | PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264" | 36 | PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264" |
36 | 37 | ||
38 | GSTREAMER_GPL = "${@bb.utils.filter('PACKAGECONFIG', 'a52dec cdio dvdread mpeg2dec x264', d)}" | ||
39 | |||
37 | EXTRA_OEMESON += " \ | 40 | EXTRA_OEMESON += " \ |
38 | -Ddoc=disabled \ | 41 | -Ddoc=disabled \ |
39 | -Dsidplay=disabled \ | 42 | -Dsidplay=disabled \ |
40 | " | 43 | " |
41 | 44 | ||
42 | FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" | 45 | FILES:${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" |
43 | FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" | 46 | FILES:${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc deleted file mode 100644 index b698067041..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | inherit ptest-gnome | ||
2 | |||
3 | TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files" | ||
4 | RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest" | ||
5 | |||
6 | EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}" | ||
7 | |||
8 | GST_TEST_SUITE_NAME ?= "gstreamer-1.0" | ||
9 | |||
10 | # Using do_install_ptest_base instead of do_install_ptest, since | ||
11 | # the default do_install_ptest_base is hardcoded to expect Makefiles. | ||
12 | do_install_ptest_base() { | ||
13 | # Generate run-ptest file | ||
14 | echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}" | ||
15 | echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}" | ||
16 | chmod 0755 "${RUN_PTEST_FILE}" | ||
17 | |||
18 | # Install additional files required by tests | ||
19 | if [ -d "${S}/tests/files" ] ; then | ||
20 | install -d "${D}/${TEST_FILES_PATH}" | ||
21 | install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}" | ||
22 | fi | ||
23 | } | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb index 90b6fc38df..0fbb03f757 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.11.bb | |||
@@ -4,23 +4,27 @@ provided by python-gi) " | |||
4 | HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/" | 4 | HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/" |
5 | SECTION = "multimedia" | 5 | SECTION = "multimedia" |
6 | 6 | ||
7 | LICENSE = "LGPLv2.1" | 7 | LICENSE = "LGPL-2.1-or-later" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740" |
9 | 9 | ||
10 | SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" | 10 | SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" |
11 | SRC_URI[sha256sum] = "4e630735276e08ff4d70337aa5d91fd008e5f1ed3dc0993674cd5820e264259a" | 11 | SRC_URI[sha256sum] = "f7a5450d93fd81bf46060dca7f4a048d095b6717961fec211731a11a994c99a7" |
12 | 12 | ||
13 | DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" | 13 | DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" |
14 | RDEPENDS_${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" | 14 | RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject" |
15 | 15 | ||
16 | PNREAL = "gst-python" | 16 | PNREAL = "gst-python" |
17 | 17 | ||
18 | S = "${WORKDIR}/${PNREAL}-${PV}" | 18 | S = "${WORKDIR}/${PNREAL}-${PV}" |
19 | 19 | ||
20 | EXTRA_OEMESON += "-Dlibpython-dir=${libdir}" | 20 | EXTRA_OEMESON += "\ |
21 | -Dtests=disabled \ | ||
22 | -Dplugin=enabled \ | ||
23 | -Dlibpython-dir=${libdir} \ | ||
24 | " | ||
21 | 25 | ||
22 | # gobject-introspection is mandatory and cannot be configured | 26 | inherit meson pkgconfig setuptools3-base upstream-version-is-even features_check |
23 | REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" | 27 | |
24 | UNKNOWN_CONFIGURE_WHITELIST_append = " introspection" | 28 | FILES:${PN} += "${libdir}/gstreamer-1.0" |
25 | 29 | ||
26 | inherit meson pkgconfig distutils3-base upstream-version-is-even gobject-introspection features_check | 30 | REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb index d6aaa5df79..554ed9ec8f 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.11.bb | |||
@@ -1,8 +1,8 @@ | |||
1 | SUMMARY = "A library on top of GStreamer for building an RTSP server" | 1 | SUMMARY = "A library on top of GStreamer for building an RTSP server" |
2 | HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" | 2 | HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/" |
3 | SECTION = "multimedia" | 3 | SECTION = "multimedia" |
4 | LICENSE = "LGPLv2" | 4 | LICENSE = "LGPL-2.1-or-later" |
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d" | 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770" |
6 | 6 | ||
7 | DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" | 7 | DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base" |
8 | 8 | ||
@@ -10,7 +10,7 @@ PNREAL = "gst-rtsp-server" | |||
10 | 10 | ||
11 | SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" | 11 | SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz" |
12 | 12 | ||
13 | SRC_URI[sha256sum] = "4f7757293b3d73dc49768b7392791668c4d0c21d41824624ffbd75c7f9ee0168" | 13 | SRC_URI[sha256sum] = "ec49d474750a6ff6729c85b448abc607fb6840b21717ad7abc967e2adbf07a24" |
14 | 14 | ||
15 | S = "${WORKDIR}/${PNREAL}-${PV}" | 15 | S = "${WORKDIR}/${PNREAL}-${PV}" |
16 | 16 | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb index 23040ad73c..87eb8484a1 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.11.bb | |||
@@ -1,16 +1,17 @@ | |||
1 | SUMMARY = "VA-API support to GStreamer" | 1 | SUMMARY = "VA-API support to GStreamer" |
2 | HOMEPAGE = "https://gstreamer.freedesktop.org/" | ||
2 | DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \ | 3 | DESCRIPTION = "gstreamer-vaapi consists of a collection of VA-API \ |
3 | based plugins for GStreamer and helper libraries: `vaapidecode', \ | 4 | based plugins for GStreamer and helper libraries: `vaapidecode', \ |
4 | `vaapiconvert', and `vaapisink'." | 5 | `vaapiconvert', and `vaapisink'." |
5 | 6 | ||
6 | REALPN = "gstreamer-vaapi" | 7 | REALPN = "gstreamer-vaapi" |
7 | 8 | ||
8 | LICENSE = "LGPLv2.1+" | 9 | LICENSE = "LGPL-2.1-or-later" |
9 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" | 10 | LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" |
10 | 11 | ||
11 | SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz" | 12 | SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz" |
12 | 13 | ||
13 | SRC_URI[sha256sum] = "ae9877f15757a661d4dfe6a09755a2faa959ab60752f14ca26b7ff10765e1f12" | 14 | SRC_URI[sha256sum] = "6eae1360658302b9b512fa46b4d06f5b818dfce5f2f43d7d710ca8142719d8ad" |
14 | 15 | ||
15 | S = "${WORKDIR}/${REALPN}-${PV}" | 16 | S = "${WORKDIR}/${REALPN}-${PV}" |
16 | DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" | 17 | DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" |
@@ -39,14 +40,14 @@ PACKAGECONFIG ??= "drm encoders \ | |||
39 | ${PACKAGECONFIG_GL} \ | 40 | ${PACKAGECONFIG_GL} \ |
40 | ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" | 41 | ${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" |
41 | 42 | ||
42 | PACKAGECONFIG[drm] = "-Dwith_drm=yes,-Dwith_drm=no,udev libdrm" | 43 | PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,udev libdrm" |
43 | PACKAGECONFIG[egl] = "-Dwith_egl=yes,-Dwith_egl=no,virtual/egl" | 44 | PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl" |
44 | PACKAGECONFIG[encoders] = "-Dwith_encoders=yes,-Dwith_encoders=no" | 45 | PACKAGECONFIG[encoders] = "-Dencoders=enabled,-Dencoders=disabled" |
45 | PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/libgl" | 46 | PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/libgl" |
46 | PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland wayland-protocols" | 47 | PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland-native wayland wayland-protocols" |
47 | PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxrandr libxrender" | 48 | PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libxrandr libxrender" |
48 | 49 | ||
49 | FILES_${PN} += "${libdir}/gstreamer-*/*.so" | 50 | FILES:${PN} += "${libdir}/gstreamer-*/*.so" |
50 | FILES_${PN}-dbg += "${libdir}/gstreamer-*/.debug" | 51 | FILES:${PN}-dbg += "${libdir}/gstreamer-*/.debug" |
51 | FILES_${PN}-dev += "${libdir}/gstreamer-*/*.a" | 52 | FILES:${PN}-dev += "${libdir}/gstreamer-*/*.a" |
52 | FILES_${PN}-tests = "${bindir}/*" | 53 | FILES:${PN}-tests = "${bindir}/*" |
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch deleted file mode 100644 index fe58e718a7..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | From fd8f49dba8c09d47425da80f5faab3bfa4a7c962 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jose Quaresma <quaresma.jose@gmail.com> | ||
3 | Date: Sat, 10 Oct 2020 19:09:03 +0000 | ||
4 | Subject: [PATCH 1/3] gstpluginloader: when env var is set do not fall through | ||
5 | to system plugin scanner | ||
6 | |||
7 | If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that. | ||
8 | |||
9 | Falling through to the one installed on the system is problamatic in cross-compilation | ||
10 | environemnts, regardless of whether one pointed to by the env var succeeded or failed. | ||
11 | |||
12 | taken from: | ||
13 | http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch?id=0db7ba34ca41b107042306d13a6f0162885c123b | ||
14 | |||
15 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/669] | ||
16 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
17 | --- | ||
18 | gst/gstpluginloader.c | 15 +++++++-------- | ||
19 | 1 file changed, 7 insertions(+), 8 deletions(-) | ||
20 | |||
21 | diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c | ||
22 | index d1e404d98..c626bf263 100644 | ||
23 | --- a/gst/gstpluginloader.c | ||
24 | +++ b/gst/gstpluginloader.c | ||
25 | @@ -464,20 +464,19 @@ gst_plugin_loader_spawn (GstPluginLoader * loader) | ||
26 | if (loader->child_running) | ||
27 | return TRUE; | ||
28 | |||
29 | - /* Find the gst-plugin-scanner: first try the env-var if it is set, | ||
30 | - * otherwise use the installed version */ | ||
31 | + /* Find the gst-plugin-scanner */ | ||
32 | env = g_getenv ("GST_PLUGIN_SCANNER_1_0"); | ||
33 | if (env == NULL) | ||
34 | env = g_getenv ("GST_PLUGIN_SCANNER"); | ||
35 | |||
36 | if (env != NULL && *env != '\0') { | ||
37 | + /* use the env-var if it is set */ | ||
38 | GST_LOG ("Trying GST_PLUGIN_SCANNER env var: %s", env); | ||
39 | helper_bin = g_strdup (env); | ||
40 | res = gst_plugin_loader_try_helper (loader, helper_bin); | ||
41 | g_free (helper_bin); | ||
42 | - } | ||
43 | - | ||
44 | - if (!res) { | ||
45 | + } else { | ||
46 | + /* use the installed version */ | ||
47 | GST_LOG ("Trying installed plugin scanner"); | ||
48 | |||
49 | #ifdef G_OS_WIN32 | ||
50 | @@ -497,10 +496,10 @@ gst_plugin_loader_spawn (GstPluginLoader * loader) | ||
51 | #endif | ||
52 | res = gst_plugin_loader_try_helper (loader, helper_bin); | ||
53 | g_free (helper_bin); | ||
54 | + } | ||
55 | |||
56 | - if (!res) { | ||
57 | - GST_INFO ("No gst-plugin-scanner available, or not working"); | ||
58 | - } | ||
59 | + if (!res) { | ||
60 | + GST_INFO ("No gst-plugin-scanner available, or not working"); | ||
61 | } | ||
62 | |||
63 | return loader->child_running; | ||
64 | -- | ||
65 | 2.29.2 | ||
66 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch new file mode 100644 index 0000000000..0d839bd6c8 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-respect-the-idententaion-used-in-meson.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From 5372cd5bf2a9dd247b9c5fc6e4fe248046dbb085 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jose Quaresma <quaresma.jose@gmail.com> | ||
3 | Date: Sun, 11 Apr 2021 19:48:13 +0100 | ||
4 | Subject: [PATCH] tests: respect the idententaion used in meson | ||
5 | |||
6 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] | ||
7 | |||
8 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
9 | |||
10 | --- | ||
11 | tests/check/meson.build | 10 +++++----- | ||
12 | 1 file changed, 5 insertions(+), 5 deletions(-) | ||
13 | |||
14 | diff --git a/tests/check/meson.build b/tests/check/meson.build | ||
15 | index 9787b0a..16caac7 100644 | ||
16 | --- a/tests/check/meson.build | ||
17 | +++ b/tests/check/meson.build | ||
18 | @@ -145,11 +145,11 @@ foreach t : core_tests | ||
19 | |||
20 | if not skip_test | ||
21 | exe = executable(test_name, fname, | ||
22 | - c_args : gst_c_args + test_defines, | ||
23 | - cpp_args : gst_c_args + test_defines, | ||
24 | - include_directories : [configinc], | ||
25 | - link_with : link_with_libs, | ||
26 | - dependencies : gst_deps + test_deps, | ||
27 | + c_args : gst_c_args + test_defines, | ||
28 | + cpp_args : gst_c_args + test_defines, | ||
29 | + include_directories : [configinc], | ||
30 | + link_with : link_with_libs, | ||
31 | + dependencies : gst_deps + test_deps, | ||
32 | ) | ||
33 | |||
34 | env = environment() | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch deleted file mode 100644 index e0e64e2c7a..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From 1db36347d05d88835519368442e9aa89c64091ad Mon Sep 17 00:00:00 2001 | ||
2 | From: Seungha Yang <seungha@centricular.com> | ||
3 | Date: Tue, 15 Sep 2020 00:54:58 +0900 | ||
4 | Subject: [PATCH] tests: seek: Don't use too strict timeout for validation | ||
5 | |||
6 | Expected segment-done message might not be seen within expected | ||
7 | time if system is not powerful enough. | ||
8 | |||
9 | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/625> | ||
10 | |||
11 | Upstream-Status: Backport [https://cgit.freedesktop.org/gstreamer/gstreamer/commit?id=f44312ae5d831438fcf8041162079c65321c588c] | ||
12 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
13 | --- | ||
14 | tests/check/pipelines/seek.c | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/tests/check/pipelines/seek.c b/tests/check/pipelines/seek.c | ||
18 | index 28bb8846d..5f7447bc5 100644 | ||
19 | --- a/tests/check/pipelines/seek.c | ||
20 | +++ b/tests/check/pipelines/seek.c | ||
21 | @@ -521,7 +521,7 @@ GST_START_TEST (test_loopback_2) | ||
22 | |||
23 | GST_INFO ("wait for segment done message"); | ||
24 | |||
25 | - msg = gst_bus_timed_pop_filtered (bus, (GstClockTime) 2 * GST_SECOND, | ||
26 | + msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, | ||
27 | GST_MESSAGE_SEGMENT_DONE | GST_MESSAGE_ERROR); | ||
28 | fail_unless (msg, "no message within the timed window"); | ||
29 | fail_unless_equals_string (GST_MESSAGE_TYPE_NAME (msg), "segment-done"); | ||
30 | -- | ||
31 | 2.29.2 | ||
32 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch deleted file mode 100644 index 96abef17b0..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch +++ /dev/null | |||
@@ -1,112 +0,0 @@ | |||
1 | From 598d108e2c438d8f2ecd3bf948fa3ebbd3681490 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com> | ||
3 | Date: Fri, 14 Aug 2020 16:38:26 +0100 | ||
4 | Subject: [PATCH 2/3] Remove unused valgrind detection | ||
5 | |||
6 | Having this just to log a debug message in case we're | ||
7 | running inside valgrind doesn't seem very useful, and | ||
8 | the code that used to use this no longer exists it seems. | ||
9 | |||
10 | Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/595> | ||
11 | |||
12 | Upstream-Status: Backport [a2cbf75523cdf8a4df1baa7007d86ef455972245] | ||
13 | |||
14 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
15 | --- | ||
16 | gst/gst_private.h | 2 -- | ||
17 | gst/gstinfo.c | 39 --------------------------------------- | ||
18 | meson.build | 1 - | ||
19 | 3 files changed, 42 deletions(-) | ||
20 | |||
21 | diff --git a/gst/gst_private.h b/gst/gst_private.h | ||
22 | index eefd044d9..8252ede51 100644 | ||
23 | --- a/gst/gst_private.h | ||
24 | +++ b/gst/gst_private.h | ||
25 | @@ -116,8 +116,6 @@ G_GNUC_INTERNAL gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin | ||
26 | |||
27 | G_GNUC_INTERNAL gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin); | ||
28 | |||
29 | -G_GNUC_INTERNAL gboolean _priv_gst_in_valgrind (void); | ||
30 | - | ||
31 | /* init functions called from gst_init(). */ | ||
32 | G_GNUC_INTERNAL void _priv_gst_quarks_initialize (void); | ||
33 | G_GNUC_INTERNAL void _priv_gst_mini_object_initialize (void); | ||
34 | diff --git a/gst/gstinfo.c b/gst/gstinfo.c | ||
35 | index 5d317877b..097f8b20d 100644 | ||
36 | --- a/gst/gstinfo.c | ||
37 | +++ b/gst/gstinfo.c | ||
38 | @@ -305,36 +305,6 @@ static gboolean pretty_tags = PRETTY_TAGS_DEFAULT; | ||
39 | static volatile gint G_GNUC_MAY_ALIAS __default_level = GST_LEVEL_DEFAULT; | ||
40 | static volatile gint G_GNUC_MAY_ALIAS __use_color = GST_DEBUG_COLOR_MODE_ON; | ||
41 | |||
42 | -/* FIXME: export this? */ | ||
43 | -gboolean | ||
44 | -_priv_gst_in_valgrind (void) | ||
45 | -{ | ||
46 | - static enum | ||
47 | - { | ||
48 | - GST_VG_UNCHECKED, | ||
49 | - GST_VG_NO_VALGRIND, | ||
50 | - GST_VG_INSIDE | ||
51 | - } | ||
52 | - in_valgrind = GST_VG_UNCHECKED; | ||
53 | - | ||
54 | - if (in_valgrind == GST_VG_UNCHECKED) { | ||
55 | -#ifdef HAVE_VALGRIND_VALGRIND_H | ||
56 | - if (RUNNING_ON_VALGRIND) { | ||
57 | - GST_CAT_INFO (GST_CAT_GST_INIT, "we're running inside valgrind"); | ||
58 | - in_valgrind = GST_VG_INSIDE; | ||
59 | - } else { | ||
60 | - GST_CAT_LOG (GST_CAT_GST_INIT, "not doing extra valgrind stuff"); | ||
61 | - in_valgrind = GST_VG_NO_VALGRIND; | ||
62 | - } | ||
63 | -#else | ||
64 | - in_valgrind = GST_VG_NO_VALGRIND; | ||
65 | -#endif | ||
66 | - g_assert (in_valgrind == GST_VG_NO_VALGRIND || | ||
67 | - in_valgrind == GST_VG_INSIDE); | ||
68 | - } | ||
69 | - return (in_valgrind == GST_VG_INSIDE); | ||
70 | -} | ||
71 | - | ||
72 | static gchar * | ||
73 | _replace_pattern_in_gst_debug_file_name (gchar * name, const char *token, | ||
74 | guint val) | ||
75 | @@ -463,9 +433,6 @@ _priv_gst_debug_init (void) | ||
76 | _priv_GST_CAT_PROTECTION = | ||
77 | _gst_debug_category_new ("GST_PROTECTION", 0, "protection"); | ||
78 | |||
79 | - /* print out the valgrind message if we're in valgrind */ | ||
80 | - _priv_gst_in_valgrind (); | ||
81 | - | ||
82 | env = g_getenv ("GST_DEBUG_OPTIONS"); | ||
83 | if (env != NULL) { | ||
84 | if (strstr (env, "full_tags") || strstr (env, "full-tags")) | ||
85 | @@ -2503,12 +2470,6 @@ gst_debug_construct_win_color (guint colorinfo) | ||
86 | return 0; | ||
87 | } | ||
88 | |||
89 | -gboolean | ||
90 | -_priv_gst_in_valgrind (void) | ||
91 | -{ | ||
92 | - return FALSE; | ||
93 | -} | ||
94 | - | ||
95 | void | ||
96 | _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file, | ||
97 | const gchar * func, gint line, GObject * obj, const gchar * msg, | ||
98 | diff --git a/meson.build b/meson.build | ||
99 | index ce1921aa4..7a84d0981 100644 | ||
100 | --- a/meson.build | ||
101 | +++ b/meson.build | ||
102 | @@ -200,7 +200,6 @@ check_headers = [ | ||
103 | 'sys/wait.h', | ||
104 | 'ucontext.h', | ||
105 | 'unistd.h', | ||
106 | - 'valgrind/valgrind.h', | ||
107 | 'sys/resource.h', | ||
108 | 'sys/uio.h', | ||
109 | ] | ||
110 | -- | ||
111 | 2.29.2 | ||
112 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch new file mode 100644 index 0000000000..64717e66c3 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-tests-add-support-for-install-the-tests.patch | |||
@@ -0,0 +1,107 @@ | |||
1 | From 27e977d03b0f7c1d0bf19621ef0cec0585410e7b Mon Sep 17 00:00:00 2001 | ||
2 | From: Jose Quaresma <quaresma.jose@gmail.com> | ||
3 | Date: Sun, 11 Apr 2021 19:48:13 +0100 | ||
4 | Subject: [PATCH] tests: add support for install the tests | ||
5 | |||
6 | This will provide to run the tests using the gnome-desktop-testing [1] | ||
7 | |||
8 | [1] https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests | ||
9 | |||
10 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] | ||
11 | |||
12 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
13 | |||
14 | --- | ||
15 | meson.build | 4 ++++ | ||
16 | meson_options.txt | 1 + | ||
17 | tests/check/meson.build | 22 +++++++++++++++++++++- | ||
18 | tests/check/template.test.in | 3 +++ | ||
19 | 4 files changed, 29 insertions(+), 1 deletion(-) | ||
20 | create mode 100644 tests/check/template.test.in | ||
21 | |||
22 | diff --git a/meson.build b/meson.build | ||
23 | index 60c7bec..f7650b1 100644 | ||
24 | --- a/meson.build | ||
25 | +++ b/meson.build | ||
26 | @@ -606,6 +606,10 @@ if bashcomp_dep.found() | ||
27 | endif | ||
28 | endif | ||
29 | |||
30 | +installed_tests_enabled = get_option('installed_tests') | ||
31 | +installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name()) | ||
32 | +installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name()) | ||
33 | + | ||
34 | plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') | ||
35 | |||
36 | pkgconfig = import('pkgconfig') | ||
37 | diff --git a/meson_options.txt b/meson_options.txt | ||
38 | index 7363bdb..a34ba37 100644 | ||
39 | --- a/meson_options.txt | ||
40 | +++ b/meson_options.txt | ||
41 | @@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso | ||
42 | option('memory-alignment', type: 'combo', | ||
43 | choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'], | ||
44 | value: 'malloc') | ||
45 | +option('installed_tests', type : 'boolean', value : false, description : 'Enable installed tests') | ||
46 | |||
47 | # Feature options | ||
48 | option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries') | ||
49 | diff --git a/tests/check/meson.build b/tests/check/meson.build | ||
50 | index 16caac7..f2d400f 100644 | ||
51 | --- a/tests/check/meson.build | ||
52 | +++ b/tests/check/meson.build | ||
53 | @@ -124,10 +124,16 @@ test_defines = [ | ||
54 | '-UG_DISABLE_ASSERT', | ||
55 | '-UG_DISABLE_CAST_CHECKS', | ||
56 | '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"', | ||
57 | - '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"', | ||
58 | '-DGST_DISABLE_DEPRECATED', | ||
59 | ] | ||
60 | |||
61 | +testfile = meson.current_source_dir() + '/meson.build' | ||
62 | +if installed_tests_enabled | ||
63 | + install_data(testfile, install_dir : installed_tests_metadir, rename : 'testfile') | ||
64 | + testfile = installed_tests_metadir + '/testfile' | ||
65 | +endif | ||
66 | +test_defines += '-DTESTFILE="@0@"'.format(testfile) | ||
67 | + | ||
68 | # sanity checking | ||
69 | if get_option('check').disabled() | ||
70 | if get_option('tests').enabled() | ||
71 | @@ -150,6 +156,8 @@ foreach t : core_tests | ||
72 | include_directories : [configinc], | ||
73 | link_with : link_with_libs, | ||
74 | dependencies : gst_deps + test_deps, | ||
75 | + install_dir: installed_tests_execdir, | ||
76 | + install: installed_tests_enabled, | ||
77 | ) | ||
78 | |||
79 | env = environment() | ||
80 | @@ -161,6 +169,18 @@ foreach t : core_tests | ||
81 | env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner') | ||
82 | env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer') | ||
83 | |||
84 | + if installed_tests_enabled | ||
85 | + test_conf = configuration_data() | ||
86 | + test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir)) | ||
87 | + test_conf.set('program', test_name) | ||
88 | + configure_file( | ||
89 | + input: 'template.test.in', | ||
90 | + output: test_name + '.test', | ||
91 | + install_dir: installed_tests_metadir, | ||
92 | + configuration: test_conf | ||
93 | + ) | ||
94 | + endif | ||
95 | + | ||
96 | test(test_name, exe, env: env, timeout : 3 * 60) | ||
97 | endif | ||
98 | endforeach | ||
99 | diff --git a/tests/check/template.test.in b/tests/check/template.test.in | ||
100 | new file mode 100644 | ||
101 | index 0000000..f701627 | ||
102 | --- /dev/null | ||
103 | +++ b/tests/check/template.test.in | ||
104 | @@ -0,0 +1,3 @@ | ||
105 | +[Test] | ||
106 | +Type=session | ||
107 | +Exec=@installed_tests_dir@/@program@ | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch deleted file mode 100644 index bf5e57249c..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-option-for-installed-tests.patch +++ /dev/null | |||
@@ -1,257 +0,0 @@ | |||
1 | From cf8077a7e3ab0ae236ebde79b7fc0b02eac658de Mon Sep 17 00:00:00 2001 | ||
2 | From: Carlos Rafael Giani <crg7475@mailbox.org> | ||
3 | Date: Fri, 25 Oct 2019 00:06:26 +0200 | ||
4 | Subject: [PATCH 3/3] meson: Add option for installed tests | ||
5 | |||
6 | This adds an option for producing installed versions of the unit tests. | ||
7 | These versions don't need meson to run (only a small shell script). This | ||
8 | makes it easier to run cross compiled tests on a target machine. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org> | ||
13 | --- | ||
14 | build-aux/gen-installed-test-desc.py | 18 ++++++ | ||
15 | build-aux/gen-installed-test-shscript.py | 25 ++++++++ | ||
16 | meson_options.txt | 2 + | ||
17 | tests/check/meson.build | 46 +++++++++++++- | ||
18 | tests/files/testfile | 80 ++++++++++++++++++++++++ | ||
19 | 5 files changed, 170 insertions(+), 1 deletion(-) | ||
20 | create mode 100644 build-aux/gen-installed-test-desc.py | ||
21 | create mode 100644 build-aux/gen-installed-test-shscript.py | ||
22 | create mode 100644 tests/files/testfile | ||
23 | |||
24 | diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py | ||
25 | new file mode 100644 | ||
26 | index 000000000..69e8a0faf | ||
27 | --- /dev/null | ||
28 | +++ b/build-aux/gen-installed-test-desc.py | ||
29 | @@ -0,0 +1,18 @@ | ||
30 | +import sys | ||
31 | +import os | ||
32 | +import argparse | ||
33 | + | ||
34 | +def write_template(filename, data): | ||
35 | + with open(filename, 'w') as f: | ||
36 | + f.write(data) | ||
37 | + | ||
38 | +def build_template(testdir, testname): | ||
39 | + return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname)) | ||
40 | + | ||
41 | +argparser = argparse.ArgumentParser(description='Generate installed-test data.') | ||
42 | +argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory') | ||
43 | +argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name') | ||
44 | +argparser.add_argument('--output', metavar='file', required=True, help='Output file') | ||
45 | +args = argparser.parse_args() | ||
46 | + | ||
47 | +write_template(args.output, build_template(args.test_execdir, args.testname)) | ||
48 | diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py | ||
49 | new file mode 100644 | ||
50 | index 000000000..5da86fb37 | ||
51 | --- /dev/null | ||
52 | +++ b/build-aux/gen-installed-test-shscript.py | ||
53 | @@ -0,0 +1,25 @@ | ||
54 | +import sys | ||
55 | +import os | ||
56 | +import argparse | ||
57 | + | ||
58 | +def write_template(filename, data): | ||
59 | + with open(filename, 'w') as f: | ||
60 | + f.write(data) | ||
61 | + | ||
62 | +def build_template(testdir, testname): | ||
63 | + return ''.join([ | ||
64 | + "#!/usr/bin/env sh\n", | ||
65 | + "export GST_STATE_IGNORE_ELEMENTS=''\n", | ||
66 | + "export CK_DEFAULT_TIMEOUT=20\n", | ||
67 | + "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n", | ||
68 | + "{}\n".format(os.path.join(testdir, testname)), | ||
69 | + ]) | ||
70 | + | ||
71 | +argparser = argparse.ArgumentParser(description='Generate installed-test data.') | ||
72 | +argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory') | ||
73 | +argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name') | ||
74 | +argparser.add_argument('--output', metavar='file', required=True, help='Output file') | ||
75 | +args = argparser.parse_args() | ||
76 | + | ||
77 | +write_template(args.output, build_template(args.test_execdir, args.testname)) | ||
78 | +os.chmod(args.output, 0o755) | ||
79 | diff --git a/meson_options.txt b/meson_options.txt | ||
80 | index 72c3997e2..346c423d4 100644 | ||
81 | --- a/meson_options.txt | ||
82 | +++ b/meson_options.txt | ||
83 | @@ -15,6 +15,8 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso | ||
84 | option('memory-alignment', type: 'combo', | ||
85 | choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'], | ||
86 | value: 'malloc') | ||
87 | +option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests') | ||
88 | +option('test-files-path', type : 'string', description : 'Path where to find test files') | ||
89 | |||
90 | # Feature options | ||
91 | option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries') | ||
92 | diff --git a/tests/check/meson.build b/tests/check/meson.build | ||
93 | index a617cf159..e629131c5 100644 | ||
94 | --- a/tests/check/meson.build | ||
95 | +++ b/tests/check/meson.build | ||
96 | @@ -120,11 +120,17 @@ if add_languages('cpp', native: false, required: false) | ||
97 | ] | ||
98 | endif | ||
99 | |||
100 | +test_files_path = get_option('test-files-path') | ||
101 | +if test_files_path == '' | ||
102 | + test_files_path = meson.current_source_dir() + '/../files' | ||
103 | +endif | ||
104 | +message('Using path "@0@" as the path to read test files from'.format(test_files_path)) | ||
105 | + | ||
106 | test_defines = [ | ||
107 | '-UG_DISABLE_ASSERT', | ||
108 | '-UG_DISABLE_CAST_CHECKS', | ||
109 | '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"', | ||
110 | - '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"', | ||
111 | + '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'), | ||
112 | '-DGST_DISABLE_DEPRECATED', | ||
113 | ] | ||
114 | |||
115 | @@ -138,6 +144,14 @@ endif | ||
116 | glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep] | ||
117 | gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep] | ||
118 | |||
119 | +installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0') | ||
120 | +installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0') | ||
121 | +installed_tests_enabled = get_option('installed-tests') | ||
122 | + | ||
123 | +python = import('python').find_installation() | ||
124 | +gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py') | ||
125 | +gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py') | ||
126 | + | ||
127 | foreach t : core_tests | ||
128 | fname = t[0] | ||
129 | test_name = fname.split('.')[0].underscorify() | ||
130 | @@ -151,8 +165,38 @@ foreach t : core_tests | ||
131 | include_directories : [configinc], | ||
132 | link_with : link_with_libs, | ||
133 | dependencies : test_deps + glib_deps + gst_deps, | ||
134 | + install_dir: installed_tests_execdir, | ||
135 | + install: installed_tests_enabled | ||
136 | ) | ||
137 | |||
138 | + if installed_tests_enabled | ||
139 | + installed_test_shscript = test_name + '.sh' | ||
140 | + shscript = custom_target (test_name + '_shscript', | ||
141 | + output: installed_test_shscript, | ||
142 | + command: [ | ||
143 | + python, | ||
144 | + gen_installed_test_shscript, | ||
145 | + '--test-execdir=@0@'.format(installed_tests_execdir), | ||
146 | + '--testname=@0@'.format(test_name), | ||
147 | + '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)), | ||
148 | + ], | ||
149 | + install: true, | ||
150 | + install_dir: installed_tests_execdir) | ||
151 | + | ||
152 | + installed_test_desc = test_name + '.test' | ||
153 | + data = custom_target(test_name + '_desc', | ||
154 | + output: installed_test_desc, | ||
155 | + command: [ | ||
156 | + python, | ||
157 | + gen_installed_test_desc, | ||
158 | + '--test-execdir=@0@'.format(installed_tests_execdir), | ||
159 | + '--testname=@0@'.format(installed_test_shscript), | ||
160 | + '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)), | ||
161 | + ], | ||
162 | + install: true, | ||
163 | + install_dir: installed_tests_datadir) | ||
164 | + endif | ||
165 | + | ||
166 | env = environment() | ||
167 | env.set('GST_PLUGIN_PATH_1_0', meson.build_root()) | ||
168 | env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '') | ||
169 | diff --git a/tests/files/testfile b/tests/files/testfile | ||
170 | new file mode 100644 | ||
171 | index 000000000..89954e0e2 | ||
172 | --- /dev/null | ||
173 | +++ b/tests/files/testfile | ||
174 | @@ -0,0 +1,80 @@ | ||
175 | +................................................................................ | ||
176 | +................................................................................ | ||
177 | +................................................................................ | ||
178 | +................................................................................ | ||
179 | +................................................................................ | ||
180 | +................................................................................ | ||
181 | +................................................................................ | ||
182 | +................................................................................ | ||
183 | +................................................................................ | ||
184 | +................................................................................ | ||
185 | +................................................................................ | ||
186 | +................................................................................ | ||
187 | +................................................................................ | ||
188 | +................................................................................ | ||
189 | +................................................................................ | ||
190 | +................................................................................ | ||
191 | +................................................................................ | ||
192 | +................................................................................ | ||
193 | +................................................................................ | ||
194 | +................................................................................ | ||
195 | +................................................................................ | ||
196 | +................................................................................ | ||
197 | +................................................................................ | ||
198 | +................................................................................ | ||
199 | +................................................................................ | ||
200 | +................................................................................ | ||
201 | +................................................................................ | ||
202 | +................................................................................ | ||
203 | +................................................................................ | ||
204 | +................................................................................ | ||
205 | +................................................................................ | ||
206 | +................................................................................ | ||
207 | +................................................................................ | ||
208 | +................................................................................ | ||
209 | +................................................................................ | ||
210 | +................................................................................ | ||
211 | +................................................................................ | ||
212 | +................................................................................ | ||
213 | +................................................................................ | ||
214 | +................................................................................ | ||
215 | +................................................................................ | ||
216 | +................................................................................ | ||
217 | +................................................................................ | ||
218 | +................................................................................ | ||
219 | +................................................................................ | ||
220 | +................................................................................ | ||
221 | +................................................................................ | ||
222 | +................................................................................ | ||
223 | +................................................................................ | ||
224 | +................................................................................ | ||
225 | +................................................................................ | ||
226 | +................................................................................ | ||
227 | +................................................................................ | ||
228 | +................................................................................ | ||
229 | +................................................................................ | ||
230 | +................................................................................ | ||
231 | +................................................................................ | ||
232 | +................................................................................ | ||
233 | +................................................................................ | ||
234 | +................................................................................ | ||
235 | +................................................................................ | ||
236 | +................................................................................ | ||
237 | +................................................................................ | ||
238 | +................................................................................ | ||
239 | +................................................................................ | ||
240 | +................................................................................ | ||
241 | +................................................................................ | ||
242 | +................................................................................ | ||
243 | +................................................................................ | ||
244 | +................................................................................ | ||
245 | +................................................................................ | ||
246 | +................................................................................ | ||
247 | +................................................................................ | ||
248 | +................................................................................ | ||
249 | +................................................................................ | ||
250 | +................................................................................ | ||
251 | +................................................................................ | ||
252 | +................................................................................ | ||
253 | +................................................................................ | ||
254 | +................................................................................ | ||
255 | -- | ||
256 | 2.29.2 | ||
257 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch new file mode 100644 index 0000000000..0fd830f150 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-use-a-dictionaries-for-environment.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | From 7041bc5adf9501beb1428d8bbae6b351a6bf07f9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jose Quaresma <quaresma.jose@gmail.com> | ||
3 | Date: Sat, 24 Apr 2021 10:34:47 +0100 | ||
4 | Subject: [PATCH] tests: use a dictionaries for environment | ||
5 | |||
6 | meson environment() can't be passed to configure_file and it is needed for installed_tests, | ||
7 | use a dictionary as this is simplest solution to install the environment. | ||
8 | |||
9 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] | ||
10 | |||
11 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
12 | |||
13 | --- | ||
14 | tests/check/meson.build | 21 +++++++++++++-------- | ||
15 | 1 file changed, 13 insertions(+), 8 deletions(-) | ||
16 | |||
17 | diff --git a/tests/check/meson.build b/tests/check/meson.build | ||
18 | index f2d400f..50dff7f 100644 | ||
19 | --- a/tests/check/meson.build | ||
20 | +++ b/tests/check/meson.build | ||
21 | @@ -160,14 +160,19 @@ foreach t : core_tests | ||
22 | install: installed_tests_enabled, | ||
23 | ) | ||
24 | |||
25 | - env = environment() | ||
26 | - env.set('GST_PLUGIN_PATH_1_0', meson.project_build_root()) | ||
27 | - env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '') | ||
28 | - env.set('GST_STATE_IGNORE_ELEMENTS', '') | ||
29 | - env.set('CK_DEFAULT_TIMEOUT', '20') | ||
30 | - env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name)) | ||
31 | - env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner') | ||
32 | - env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer') | ||
33 | + # meson environment object can't be passed to configure_file and | ||
34 | + # installed tests uses configure_file to install the environment. | ||
35 | + # use a dictionary as this is the simplest solution | ||
36 | + # to install the environment. | ||
37 | + env = { | ||
38 | + 'GST_PLUGIN_PATH_1_0': meson.project_build_root(), | ||
39 | + 'GST_PLUGIN_SYSTEM_PATH_1_0': '', | ||
40 | + 'GST_STATE_IGNORE_ELEMENTS': '', | ||
41 | + 'CK_DEFAULT_TIMEOUT': '20', | ||
42 | + 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name), | ||
43 | + 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner', | ||
44 | + 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer', | ||
45 | + } | ||
46 | |||
47 | if installed_tests_enabled | ||
48 | test_conf = configuration_data() | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch new file mode 100644 index 0000000000..5689dc9fbb --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-add-helper-script-to-run-the-installed_tests.patch | |||
@@ -0,0 +1,72 @@ | |||
1 | From 1b1d1ce4227b6bea7c7def5dac4a663486e070c2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jose Quaresma <quaresma.jose@gmail.com> | ||
3 | Date: Sun, 2 May 2021 01:58:01 +0100 | ||
4 | Subject: [PATCH] tests: add helper script to run the installed_tests | ||
5 | |||
6 | - this is a bash script that will run the installed_tests | ||
7 | with some of the environment variables used in the meson | ||
8 | testing framework. | ||
9 | |||
10 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789] | ||
11 | |||
12 | Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> | ||
13 | |||
14 | --- | ||
15 | tests/check/meson.build | 17 +++++++++++++++++ | ||
16 | tests/check/template.sh.in | 9 +++++++++ | ||
17 | tests/check/template.test.in | 2 +- | ||
18 | 3 files changed, 27 insertions(+), 1 deletion(-) | ||
19 | create mode 100755 tests/check/template.sh.in | ||
20 | |||
21 | diff --git a/tests/check/meson.build b/tests/check/meson.build | ||
22 | index 50dff7f..2b9e979 100644 | ||
23 | --- a/tests/check/meson.build | ||
24 | +++ b/tests/check/meson.build | ||
25 | @@ -184,6 +184,23 @@ foreach t : core_tests | ||
26 | install_dir: installed_tests_metadir, | ||
27 | configuration: test_conf | ||
28 | ) | ||
29 | + | ||
30 | + # All the tests will be deployed on the target machine and | ||
31 | + # we use the home folder ~ for the registry which will then expand at runtime. | ||
32 | + # Using the /tmp/gstreamer-1.0/@0@.registry can be problematic as it mostly | ||
33 | + # is mounted using tmpfs and if the machine crash from some reason we can lost the registry | ||
34 | + # that is useful for debug propose of the tests itself. | ||
35 | + env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)} | ||
36 | + | ||
37 | + # Set the full path for the test it self. | ||
38 | + env += {'TEST': '@0@/@1@'.format(join_paths(prefix, installed_tests_execdir), test_name)} | ||
39 | + | ||
40 | + configure_file( | ||
41 | + input : 'template.sh.in', | ||
42 | + output: test_name + '.sh', | ||
43 | + install_dir: installed_tests_execdir, | ||
44 | + configuration : env, | ||
45 | + ) | ||
46 | endif | ||
47 | |||
48 | test(test_name, exe, env: env, timeout : 3 * 60) | ||
49 | diff --git a/tests/check/template.sh.in b/tests/check/template.sh.in | ||
50 | new file mode 100755 | ||
51 | index 0000000..cf7d31b | ||
52 | --- /dev/null | ||
53 | +++ b/tests/check/template.sh.in | ||
54 | @@ -0,0 +1,9 @@ | ||
55 | +#!/bin/sh | ||
56 | + | ||
57 | +set -ax | ||
58 | + | ||
59 | +CK_DEFAULT_TIMEOUT="@CK_DEFAULT_TIMEOUT@" | ||
60 | +GST_PLUGIN_LOADING_WHITELIST="@GST_PLUGIN_LOADING_WHITELIST@" | ||
61 | +GST_REGISTRY=@GST_REGISTRY@ | ||
62 | +GST_STATE_IGNORE_ELEMENTS="@GST_STATE_IGNORE_ELEMENTS@" | ||
63 | +exec @TEST@ | ||
64 | diff --git a/tests/check/template.test.in b/tests/check/template.test.in | ||
65 | index f701627..b74ef6a 100644 | ||
66 | --- a/tests/check/template.test.in | ||
67 | +++ b/tests/check/template.test.in | ||
68 | @@ -1,3 +1,3 @@ | ||
69 | [Test] | ||
70 | Type=session | ||
71 | -Exec=@installed_tests_dir@/@program@ | ||
72 | +Exec=@installed_tests_dir@/@program@.sh | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest new file mode 100755 index 0000000000..7d0312005f --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest | |||
@@ -0,0 +1,16 @@ | |||
1 | #! /bin/sh | ||
2 | |||
3 | # Multiply all timeouts by ten so they're more likely to work | ||
4 | # on a loaded system. | ||
5 | export CK_TIMEOUT_MULTIPLIER=5 | ||
6 | |||
7 | # Skip some tests that we know are problematic | ||
8 | export GST_CHECKS_IGNORE="" | ||
9 | # gstnetclientclock.c:test_functioning is very sensitive to load | ||
10 | GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_functioning" | ||
11 | |||
12 | # aggregator.c:test_infinite_seek_50_src_live is known to be flaky | ||
13 | # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/410 | ||
14 | GST_CHECKS_IGNORE="$GST_CHECKS_IGNORE,test_infinite_seek_50_src_live" | ||
15 | |||
16 | gnome-desktop-testing-runner gstreamer | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb index 9cb07726ed..8965497d01 100644 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.18.3.bb +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.11.bb | |||
@@ -4,24 +4,25 @@ It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime. | |||
4 | HOMEPAGE = "http://gstreamer.freedesktop.org/" | 4 | HOMEPAGE = "http://gstreamer.freedesktop.org/" |
5 | BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" | 5 | BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" |
6 | SECTION = "multimedia" | 6 | SECTION = "multimedia" |
7 | LICENSE = "LGPLv2+" | 7 | LICENSE = "LGPL-2.1-or-later" |
8 | 8 | ||
9 | DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native" | 9 | DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native" |
10 | 10 | ||
11 | inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection | 11 | inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome |
12 | 12 | ||
13 | LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ | 13 | LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \ |
14 | file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" | 14 | file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" |
15 | 15 | ||
16 | S = "${WORKDIR}/gstreamer-${PV}" | 16 | S = "${WORKDIR}/gstreamer-${PV}" |
17 | 17 | ||
18 | SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ | 18 | SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \ |
19 | file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ | 19 | file://run-ptest \ |
20 | file://0002-Remove-unused-valgrind-detection.patch \ | 20 | file://0001-tests-respect-the-idententaion-used-in-meson.patch \ |
21 | file://0003-meson-Add-option-for-installed-tests.patch \ | 21 | file://0002-tests-add-support-for-install-the-tests.patch \ |
22 | file://0001-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \ | 22 | file://0003-tests-use-a-dictionaries-for-environment.patch \ |
23 | file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \ | ||
23 | " | 24 | " |
24 | SRC_URI[sha256sum] = "0c2e09e18f2df69a99b5cb3bd53c597b3cc2e35cf6c98043bb86a66f3d312100" | 25 | SRC_URI[sha256sum] = "3d16259e9dab8b002c57ce208a09b350d8282f5b0197306c0cdba9a0d0799744" |
25 | 26 | ||
26 | PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ | 27 | PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ |
27 | check \ | 28 | check \ |
@@ -30,8 +31,9 @@ PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ | |||
30 | 31 | ||
31 | PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false" | 32 | PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false" |
32 | PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false" | 33 | PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false" |
34 | PACKAGECONFIG[coretracers] = "-Dcoretracers=enabled,-Dcoretracers=disabled" | ||
33 | PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled" | 35 | PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled" |
34 | PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled-tests=true,-Dtests=disabled -Dinstalled-tests=false" | 36 | PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled_tests=true,-Dtests=disabled -Dinstalled_tests=false" |
35 | PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" | 37 | PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" |
36 | PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils" | 38 | PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils" |
37 | PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion" | 39 | PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion" |
@@ -60,11 +62,13 @@ GIR_MESON_DISABLE_FLAG = "disabled" | |||
60 | PACKAGES += "${PN}-bash-completion" | 62 | PACKAGES += "${PN}-bash-completion" |
61 | 63 | ||
62 | # Add the core element plugins to the main package | 64 | # Add the core element plugins to the main package |
63 | FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" | 65 | FILES:${PN} += "${libdir}/gstreamer-1.0/*.so" |
64 | FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" | 66 | FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" |
65 | FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" | 67 | FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" |
66 | FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" | 68 | FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb" |
69 | |||
70 | RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5" | ||
67 | 71 | ||
68 | CVE_PRODUCT = "gstreamer" | 72 | CVE_PRODUCT = "gstreamer" |
69 | 73 | ||
70 | require gstreamer1.0-ptest.inc | 74 | PTEST_BUILD_HOST_FILES = "" |
diff --git a/meta/recipes-multimedia/lame/lame_3.100.bb b/meta/recipes-multimedia/lame/lame_3.100.bb index d007e0a495..5b42795f4e 100644 --- a/meta/recipes-multimedia/lame/lame_3.100.bb +++ b/meta/recipes-multimedia/lame/lame_3.100.bb | |||
@@ -3,7 +3,7 @@ DESCRIPTION = "LAME is an educational tool to be used for learning about MP3 enc | |||
3 | HOMEPAGE = "https://lame.sourceforge.io/" | 3 | HOMEPAGE = "https://lame.sourceforge.io/" |
4 | BUGTRACKER = "http://sourceforge.net/tracker/?group_id=290&atid=100290" | 4 | BUGTRACKER = "http://sourceforge.net/tracker/?group_id=290&atid=100290" |
5 | SECTION = "console/utils" | 5 | SECTION = "console/utils" |
6 | LICENSE = "LGPLv2+" | 6 | LICENSE = "LGPL-2.0-or-later" |
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9 \ | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9 \ |
8 | file://include/lame.h;beginline=1;endline=20;md5=a2258182c593c398d15a48262130a92b \ | 8 | file://include/lame.h;beginline=1;endline=20;md5=a2258182c593c398d15a48262130a92b \ |
9 | " | 9 | " |
@@ -20,7 +20,7 @@ SRC_URI[sha256sum] = "ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175 | |||
20 | inherit autotools pkgconfig | 20 | inherit autotools pkgconfig |
21 | 21 | ||
22 | PACKAGES += "libmp3lame libmp3lame-dev" | 22 | PACKAGES += "libmp3lame libmp3lame-dev" |
23 | FILES_${PN} = "${bindir}/lame" | 23 | FILES:${PN} = "${bindir}/lame" |
24 | FILES_libmp3lame = "${libdir}/libmp3lame.so.*" | 24 | FILES:libmp3lame = "${libdir}/libmp3lame.so.*" |
25 | FILES_libmp3lame-dev = "${includedir} ${libdir}/*" | 25 | FILES:libmp3lame-dev = "${includedir} ${libdir}/*" |
26 | FILES_${PN}-dev = "" | 26 | FILES:${PN}-dev = "" |
diff --git a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch b/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch deleted file mode 100644 index 5168100f3a..0000000000 --- a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch +++ /dev/null | |||
@@ -1,89 +0,0 @@ | |||
1 | It makes much more sense to control our own CFLAGS and avoiding fPIC breaks | ||
2 | some arches too. Assume we know what we're doing and remove all the messing | ||
3 | around. | ||
4 | |||
5 | RP 23/2/10 | ||
6 | |||
7 | Upstream-Status: Inappropriate [configuration] | ||
8 | |||
9 | Index: a52dec-0.7.4/configure.in | ||
10 | =================================================================== | ||
11 | --- a52dec-0.7.4.orig/configure.in 2010-02-23 14:51:50.000000000 +0000 | ||
12 | +++ a52dec-0.7.4/configure.in 2010-02-23 14:52:36.000000000 +0000 | ||
13 | @@ -14,62 +14,6 @@ | ||
14 | AC_PROG_CC | ||
15 | AC_PROG_GCC_TRADITIONAL | ||
16 | |||
17 | -if test x"$GCC" = x"yes"; then | ||
18 | - | ||
19 | - dnl GCC-specific flags - try to optimize them sometime | ||
20 | - dnl -Wall -Werror moved to the end to not disturb the configure script | ||
21 | - | ||
22 | - dnl -O3 | ||
23 | - changequote(<<,>>) | ||
24 | - OPT_CFLAGS=`echo "$CFLAGS"|sed "s/-O[0-9]*//g"` | ||
25 | - changequote([,]) | ||
26 | - OPT_CFLAGS="$OPT_CFLAGS -O3" | ||
27 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]) | ||
28 | - | ||
29 | - dnl -fomit-frame-pointer | ||
30 | - OPT_CFLAGS="$CFLAGS -fomit-frame-pointer" | ||
31 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]) | ||
32 | - | ||
33 | - dnl arch-specific flags | ||
34 | - case "$host" in | ||
35 | - i?86-* | k?-*) | ||
36 | - case "$host" in | ||
37 | - i386-*) OPT_CFLAGS="$CFLAGS -mcpu=i386";; | ||
38 | - i486-*) OPT_CFLAGS="$CFLAGS -mcpu=i486";; | ||
39 | - i586-*) OPT_CFLAGS="$CFLAGS -mcpu=pentium";; | ||
40 | - i686-*) OPT_CFLAGS="$CFLAGS -mcpu=pentiumpro";; | ||
41 | - k6-*) OPT_CFLAGS="$CFLAGS -mcpu=k6";; | ||
42 | - esac | ||
43 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
44 | - sparc-* | sparc64-*) | ||
45 | - OPT_CFLAGS="$CFLAGS -mtune=ultrasparc" | ||
46 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
47 | - mips-sgi-irix6.*) dnl do we need to be that specific ? | ||
48 | - OPT_CFLAGS="$CFLAGS -mabi=64" | ||
49 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
50 | - esac | ||
51 | -elif test x"$CC" = x"tcc" -a x"`$CC -version 2>&1 | grep TenDRA`" != x""; then | ||
52 | - dnl TenDRA portability checking compiler | ||
53 | - TENDRA=yes | ||
54 | - CFLAGS="-Xp -Yansi -f`pwd`/include/tendra.h -DELIDE_CODE" | ||
55 | - enable_mlib=no | ||
56 | - enable_oss=no | ||
57 | - enable_solaris_audio=no | ||
58 | -elif test x"$CC" = x"icc" -a x"`$CC -V 2>&1 | grep Intel`" != x""; then | ||
59 | - dnl Intel C++ compiler | ||
60 | - CFLAGS="-g -O3 -unroll -ip" | ||
61 | -else | ||
62 | - dnl non-gcc flags - we probably need exact configuration triplets here. | ||
63 | - case "$host" in | ||
64 | - mips-sgi-irix6.*) | ||
65 | - OPT_CFLAGS="$CFLAGS -64" | ||
66 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
67 | - sparc-sun-solaris*) | ||
68 | - OPT_CFLAGS="$CFLAGS -xCC -fast -xO5" | ||
69 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
70 | - esac | ||
71 | -fi | ||
72 | - | ||
73 | dnl Checks for libtool - this must be done after we set cflags | ||
74 | AC_DISABLE_SHARED | ||
75 | AC_LIBTOOL_WIN32_DLL | ||
76 | Index: a52dec-0.7.4/liba52/configure.incl | ||
77 | =================================================================== | ||
78 | --- a52dec-0.7.4.orig/liba52/configure.incl 2010-02-23 14:51:44.000000000 +0000 | ||
79 | +++ a52dec-0.7.4/liba52/configure.incl 2010-02-23 14:51:59.000000000 +0000 | ||
80 | @@ -1,9 +1,6 @@ | ||
81 | AC_SUBST([LIBA52_CFLAGS]) | ||
82 | AC_SUBST([LIBA52_LIBS]) | ||
83 | |||
84 | -dnl avoid -fPIC when possible | ||
85 | -LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic" | ||
86 | - | ||
87 | AC_ARG_ENABLE([double], | ||
88 | [ --enable-double use double-precision samples]) | ||
89 | if test x"$enable_double" = x"yes"; then | ||
diff --git a/meta/recipes-multimedia/liba52/liba52_0.7.4.bb b/meta/recipes-multimedia/liba52/liba52_0.7.4.bb deleted file mode 100644 index 0ef5d947c3..0000000000 --- a/meta/recipes-multimedia/liba52/liba52_0.7.4.bb +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | SUMMARY = "ATSC A/52 surround sound stream decoder" | ||
2 | DESCRIPTION = "Library for decoding ATSC A/52 streams. The A/52 standard \ | ||
3 | is used in a variety of applications, including digital television \ | ||
4 | and DVD. It is also known as AC-3." | ||
5 | HOMEPAGE = "http://liba52.sourceforge.net/" | ||
6 | LICENSE = "GPLv2+" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ | ||
8 | file://include/a52.h;beginline=1;endline=12;md5=81152ceb3562bf20a60d1b6018175dd1" | ||
9 | SECTION = "libs" | ||
10 | PR = "r4" | ||
11 | |||
12 | inherit autotools | ||
13 | |||
14 | SRC_URI = "http://liba52.sourceforge.net/files/a52dec-${PV}.tar.gz \ | ||
15 | file://buildcleanup.patch" | ||
16 | |||
17 | SRC_URI[md5sum] = "caa9f5bc44232dc8aeea773fea56be80" | ||
18 | SRC_URI[sha256sum] = "a21d724ab3b3933330194353687df82c475b5dfb997513eef4c25de6c865ec33" | ||
19 | |||
20 | UPSTREAM_CHECK_URI = "http://liba52.sourceforge.net/downloads.html" | ||
21 | |||
22 | S = "${WORKDIR}/a52dec-${PV}" | ||
23 | |||
24 | EXTRA_OECONF = " --enable-shared " | ||
25 | |||
26 | PACKAGES =+ "a52dec a52dec-doc" | ||
27 | |||
28 | FILES_a52dec = " ${bindir}/* " | ||
29 | FILES_a52dec-doc = " ${mandir}/man1/* " | ||
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch b/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch deleted file mode 100644 index 54f49f6f23..0000000000 --- a/meta/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | From 91fcf66b9182c75cd2b96d88991d5a1c6307d4b4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Wed, 2 Aug 2017 16:27:52 +0300 | ||
4 | Subject: [PATCH] Fix gperf 3.1 incompatibility. | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
8 | --- | ||
9 | compat.h | 2 +- | ||
10 | frametype.h | 2 +- | ||
11 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
12 | |||
13 | diff --git a/compat.h b/compat.h | ||
14 | index 8af71ec..b3d80d9 100644 | ||
15 | --- a/compat.h | ||
16 | +++ b/compat.h | ||
17 | @@ -34,7 +34,7 @@ struct id3_compat { | ||
18 | }; | ||
19 | |||
20 | struct id3_compat const *id3_compat_lookup(register char const *, | ||
21 | - register unsigned int); | ||
22 | + register size_t); | ||
23 | |||
24 | int id3_compat_fixup(struct id3_tag *); | ||
25 | |||
26 | diff --git a/frametype.h b/frametype.h | ||
27 | index dd064b2..b5b7593 100644 | ||
28 | --- a/frametype.h | ||
29 | +++ b/frametype.h | ||
30 | @@ -37,6 +37,6 @@ extern struct id3_frametype const id3_frametype_unknown; | ||
31 | extern struct id3_frametype const id3_frametype_obsolete; | ||
32 | |||
33 | struct id3_frametype const *id3_frametype_lookup(register char const *, | ||
34 | - register unsigned int); | ||
35 | + register size_t); | ||
36 | |||
37 | # endif | ||
38 | -- | ||
39 | 2.13.2 | ||
40 | |||
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch b/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch deleted file mode 100644 index 10e089018c..0000000000 --- a/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | libid3tag: patch for CVE-2004-2779 | ||
2 | |||
3 | The patch comes from | ||
4 | https://sources.debian.org/patches/libid3tag/0.15.1b-13/10_utf16.dpatch | ||
5 | |||
6 | Upstream-Status: Pending | ||
7 | |||
8 | CVE: CVE-2004-2779 | ||
9 | CVE: CVE-2017-11551 | ||
10 | |||
11 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
12 | |||
13 | diff -urNad libid3tag-0.15.1b/utf16.c /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c | ||
14 | --- libid3tag-0.15.1b/utf16.c 2006-01-13 15:26:29.000000000 +0100 | ||
15 | +++ /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c 2006-01-13 15:27:19.000000000 +0100 | ||
16 | @@ -282,5 +282,18 @@ | ||
17 | |||
18 | free(utf16); | ||
19 | |||
20 | + if (end == *ptr && length % 2 != 0) | ||
21 | + { | ||
22 | + /* We were called with a bogus length. It should always | ||
23 | + * be an even number. We can deal with this in a few ways: | ||
24 | + * - Always give an error. | ||
25 | + * - Try and parse as much as we can and | ||
26 | + * - return an error if we're called again when we | ||
27 | + * already tried to parse everything we can. | ||
28 | + * - tell that we parsed it, which is what we do here. | ||
29 | + */ | ||
30 | + (*ptr)++; | ||
31 | + } | ||
32 | + | ||
33 | return ucs4; | ||
34 | } | ||
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch b/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch deleted file mode 100644 index 38d40c3632..0000000000 --- a/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | Upstream-Status: Inappropriate [configuration] | ||
2 | |||
3 | Index: libid3tag-0.15.1b/Makefile.am | ||
4 | =================================================================== | ||
5 | --- libid3tag-0.15.1b.orig/Makefile.am 2009-07-29 09:29:20.000000000 +0100 | ||
6 | +++ libid3tag-0.15.1b/Makefile.am 2009-07-29 09:29:47.000000000 +0100 | ||
7 | @@ -27,6 +27,9 @@ | ||
8 | lib_LTLIBRARIES = libid3tag.la | ||
9 | include_HEADERS = id3tag.h | ||
10 | |||
11 | +pkgconfigdir = $(libdir)/pkgconfig | ||
12 | +pkgconfig_DATA = id3tag.pc | ||
13 | + | ||
14 | ## From the libtool documentation on library versioning: | ||
15 | ## | ||
16 | ## CURRENT | ||
17 | Index: libid3tag-0.15.1b/configure.ac | ||
18 | =================================================================== | ||
19 | --- libid3tag-0.15.1b.orig/configure.ac 2009-07-29 09:27:15.000000000 +0100 | ||
20 | +++ libid3tag-0.15.1b/configure.ac 2009-07-29 09:27:45.000000000 +0100 | ||
21 | @@ -201,5 +201,5 @@ | ||
22 | dnl AC_SUBST(LTLIBOBJS) | ||
23 | |||
24 | AC_CONFIG_FILES([Makefile msvc++/Makefile \ | ||
25 | - libid3tag.list]) | ||
26 | + libid3tag.list id3tag.pc]) | ||
27 | AC_OUTPUT | ||
28 | Index: libid3tag-0.15.1b/id3tag.pc.in | ||
29 | =================================================================== | ||
30 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
31 | +++ libid3tag-0.15.1b/id3tag.pc.in 2009-07-29 09:29:10.000000000 +0100 | ||
32 | @@ -0,0 +1,11 @@ | ||
33 | +prefix=@prefix@ | ||
34 | +exec_prefix=@exec_prefix@ | ||
35 | +libdir=@libdir@ | ||
36 | +includedir=@includedir@ | ||
37 | + | ||
38 | +Name: id3tag | ||
39 | +Description: ID3 tag reading library | ||
40 | +Requires: | ||
41 | +Version: @VERSION@ | ||
42 | +Libs: -L${libdir} -lid3tag -lz | ||
43 | +Cflags: -I${includedir} | ||
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch b/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch deleted file mode 100644 index 0d1d0dc381..0000000000 --- a/meta/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | configure contains CFLAGS filtering code which was removing our prefix-map | ||
2 | flags. We need those to generate reproducible binaries. Allow them through. | ||
3 | |||
4 | Upstream-Status: Pending | ||
5 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
6 | |||
7 | Index: libid3tag-0.15.1b/configure.ac | ||
8 | =================================================================== | ||
9 | --- libid3tag-0.15.1b.orig/configure.ac | ||
10 | +++ libid3tag-0.15.1b/configure.ac | ||
11 | @@ -99,6 +99,10 @@ do | ||
12 | -mno-cygwin) | ||
13 | shift | ||
14 | ;; | ||
15 | + -fmacro-prefix-map*|-fdebug-prefix-map*) | ||
16 | + CFLAGS="$CFLAGS $1" | ||
17 | + shift | ||
18 | + ;; | ||
19 | -m*) | ||
20 | arch="$arch $1" | ||
21 | shift | ||
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch b/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch deleted file mode 100644 index 2845fb1d3a..0000000000 --- a/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | Upstream-Status: Submitted [https://sourceforge.net/tracker/?func=detail&aid=3599280&group_id=12349&atid=112349] | ||
2 | |||
3 | Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> | ||
4 | diff -Nurd libid3tag-0.15.1b/configure.ac libid3tag-0.15.1b/configure.ac | ||
5 | --- libid3tag-0.15.1b/configure.ac 2004-01-24 01:22:46.000000000 +0200 | ||
6 | +++ libid3tag-0.15.1b/configure.ac 2013-01-03 06:41:02.734835014 +0200 | ||
7 | @@ -28,7 +28,7 @@ | ||
8 | |||
9 | -AM_INIT_AUTOMAKE | ||
10 | +AM_INIT_AUTOMAKE([foreign]) | ||
11 | |||
12 | -AM_CONFIG_HEADER([config.h]) | ||
13 | +AC_CONFIG_HEADERS([config.h]) | ||
14 | |||
15 | dnl System type. | ||
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch b/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch deleted file mode 100644 index f0867b5f01..0000000000 --- a/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | In case of an unknown/invalid encoding, id3_parse_string() will | ||
2 | return NULL, but the return value wasn't checked resulting | ||
3 | in segfault in id3_ucs4_length(). This is the only place | ||
4 | the return value wasn't checked. | ||
5 | |||
6 | Patch taken from Debian: | ||
7 | https://sources.debian.org/patches/libid3tag/0.15.1b-14/11_unknown_encoding.dpatch/ | ||
8 | |||
9 | CVE: CVE-2017-11550 | ||
10 | Upstream-Status: Pending | ||
11 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
12 | |||
13 | diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf | ||
14 | --- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000 | ||
15 | +++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000 | ||
16 | @@ -236,6 +236,10 @@ | ||
17 | |||
18 | encoding = id3_parse_uint(&data, 1); | ||
19 | string = id3_parse_string(&data, end - data, encoding, 0); | ||
20 | + if (!string) | ||
21 | + { | ||
22 | + continue; | ||
23 | + } | ||
24 | |||
25 | if (id3_ucs4_length(string) < 4) { | ||
26 | free(string); | ||
27 | diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c | ||
28 | --- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000 | ||
29 | +++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000 | ||
30 | @@ -165,6 +165,9 @@ | ||
31 | case ID3_FIELD_TEXTENCODING_UTF_8: | ||
32 | ucs4 = id3_utf8_deserialize(ptr, length); | ||
33 | break; | ||
34 | + default: | ||
35 | + /* FIXME: Unknown encoding! Print warning? */ | ||
36 | + return NULL; | ||
37 | } | ||
38 | |||
39 | if (ucs4 && !full) { | ||
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb b/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb deleted file mode 100644 index 80581765ac..0000000000 --- a/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | SUMMARY = "Library for interacting with ID3 tags in MP3 files" | ||
2 | HOMEPAGE = "http://sourceforge.net/projects/mad/" | ||
3 | BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349" | ||
4 | LICENSE = "GPLv2+" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
6 | file://COPYRIGHT;md5=5e6279efb87c26c6e5e7a68317a6a87a \ | ||
7 | file://version.h;beginline=1;endline=8;md5=86ac68b67f054b7afde9e149bbc3fe63" | ||
8 | SECTION = "libs" | ||
9 | DEPENDS = "zlib gperf-native" | ||
10 | PR = "r7" | ||
11 | |||
12 | SRC_URI = "${SOURCEFORGE_MIRROR}/mad/libid3tag-${PV}.tar.gz \ | ||
13 | file://addpkgconfig.patch \ | ||
14 | file://obsolete_automake_macros.patch \ | ||
15 | file://0001-Fix-gperf-3.1-incompatibility.patch \ | ||
16 | file://10_utf16.patch \ | ||
17 | file://unknown-encoding.patch \ | ||
18 | file://cflags_filter.patch \ | ||
19 | " | ||
20 | UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/mad/files/libid3tag/" | ||
21 | UPSTREAM_CHECK_REGEX = "/projects/mad/files/libid3tag/(?P<pver>.*)/$" | ||
22 | |||
23 | SRC_URI[md5sum] = "e5808ad997ba32c498803822078748c3" | ||
24 | SRC_URI[sha256sum] = "63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151" | ||
25 | |||
26 | S = "${WORKDIR}/libid3tag-${PV}" | ||
27 | |||
28 | inherit autotools pkgconfig | ||
diff --git a/meta/recipes-multimedia/libogg/libogg_1.3.4.bb b/meta/recipes-multimedia/libogg/libogg_1.3.5.bb index c4004619b9..b4f02e404c 100644 --- a/meta/recipes-multimedia/libogg/libogg_1.3.4.bb +++ b/meta/recipes-multimedia/libogg/libogg_1.3.5.bb | |||
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ | |||
11 | 11 | ||
12 | SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz" | 12 | SRC_URI = "http://downloads.xiph.org/releases/ogg/${BP}.tar.xz" |
13 | 13 | ||
14 | SRC_URI[md5sum] = "eadef24aad6e3e8379ba0d14971fd64a" | 14 | SRC_URI[md5sum] = "3178c98341559657a15b185bf5d700a5" |
15 | SRC_URI[sha256sum] = "c163bc12bc300c401b6aa35907ac682671ea376f13ae0969a220f7ddf71893fe" | 15 | SRC_URI[sha256sum] = "c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705" |
16 | 16 | ||
17 | inherit autotools pkgconfig | 17 | inherit autotools pkgconfig |
diff --git a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb index 82cdaf54c7..4564d619ae 100644 --- a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb +++ b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb | |||
@@ -3,7 +3,7 @@ DESCRIPTION = "Bellagio is an opensource implementation of the Khronos OpenMAX \ | |||
3 | Integration Layer API to access multimedia components." | 3 | Integration Layer API to access multimedia components." |
4 | HOMEPAGE = "http://omxil.sourceforge.net/" | 4 | HOMEPAGE = "http://omxil.sourceforge.net/" |
5 | 5 | ||
6 | LICENSE = "LGPLv2.1+" | 6 | LICENSE = "LGPL-2.1-or-later" |
7 | LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'amr', 'commercial', '', d)}" | 7 | LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'amr', 'commercial', '', d)}" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=ae6f0f4dbc7ac193b50f323a6ae191cb \ | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=ae6f0f4dbc7ac193b50f323a6ae191cb \ |
9 | file://src/omxcore.h;beginline=1;endline=27;md5=806b1e5566c06486fe8e42b461e03a90" | 9 | file://src/omxcore.h;beginline=1;endline=27;md5=806b1e5566c06486fe8e42b461e03a90" |
@@ -36,10 +36,10 @@ PACKAGECONFIG[amr] = "--enable-amr,," | |||
36 | # The .so files under ${libdir}/bellagio are not intended to be versioned and symlinked. | 36 | # The .so files under ${libdir}/bellagio are not intended to be versioned and symlinked. |
37 | # Make sure they get packaged in the main package. | 37 | # Make sure they get packaged in the main package. |
38 | # | 38 | # |
39 | FILES_${PN} += "${libdir}/bellagio/*.so \ | 39 | FILES:${PN} += "${libdir}/bellagio/*.so \ |
40 | ${libdir}/omxloaders/*${SOLIBS}" | 40 | ${libdir}/omxloaders/*${SOLIBS}" |
41 | FILES_${PN}-staticdev += "${libdir}/bellagio/*.a \ | 41 | FILES:${PN}-staticdev += "${libdir}/bellagio/*.a \ |
42 | ${libdir}/omxloaders/*.a" | 42 | ${libdir}/omxloaders/*.a" |
43 | FILES_${PN}-dev += "${libdir}/bellagio/*.la \ | 43 | FILES:${PN}-dev += "${libdir}/bellagio/*.la \ |
44 | ${libdir}/omxloaders/*.la \ | 44 | ${libdir}/omxloaders/*.la \ |
45 | ${libdir}/omxloaders/*${SOLIBSDEV}" | 45 | ${libdir}/omxloaders/*${SOLIBSDEV}" |
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.37.bb b/meta/recipes-multimedia/libpng/libpng_1.6.43.bb index 0b0af756f6..f1febd0a02 100644 --- a/meta/recipes-multimedia/libpng/libpng_1.6.37.bb +++ b/meta/recipes-multimedia/libpng/libpng_1.6.43.bb | |||
@@ -5,16 +5,15 @@ library for use in applications that read, create, and manipulate PNG \ | |||
5 | HOMEPAGE = "http://www.libpng.org/" | 5 | HOMEPAGE = "http://www.libpng.org/" |
6 | SECTION = "libs" | 6 | SECTION = "libs" |
7 | LICENSE = "Libpng" | 7 | LICENSE = "Libpng" |
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=b0085051bf265bac2bfc38bc89f50000" | 8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=0fdbfbe10fc294a6fca24dc76134222a" |
9 | DEPENDS = "zlib" | 9 | DEPENDS = "zlib" |
10 | 10 | ||
11 | LIBV = "16" | 11 | LIBV = "16" |
12 | 12 | ||
13 | SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz" | 13 | SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz" |
14 | SRC_URI[md5sum] = "015e8e15db1eecde5f2eb9eb5b6e59e9" | 14 | SRC_URI[sha256sum] = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c" |
15 | SRC_URI[sha256sum] = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca" | ||
16 | 15 | ||
17 | MIRRORS += "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/older-releases/" | 16 | MIRRORS += "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}${LIBV}/older-releases/" |
18 | 17 | ||
19 | UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html" | 18 | UPSTREAM_CHECK_URI = "http://libpng.org/pub/png/libpng.html" |
20 | 19 | ||
@@ -23,13 +22,12 @@ BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" | |||
23 | inherit autotools binconfig-disabled pkgconfig | 22 | inherit autotools binconfig-disabled pkgconfig |
24 | 23 | ||
25 | # Work around missing symbols | 24 | # Work around missing symbols |
26 | EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}" | 25 | ARMNEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}" |
26 | ARMNEON:aarch64 = "--enable-hardware-optimizations=on" | ||
27 | EXTRA_OECONF += "${ARMNEON}" | ||
27 | 28 | ||
28 | PACKAGES =+ "${PN}-tools" | 29 | PACKAGES =+ "${PN}-tools" |
29 | 30 | ||
30 | FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp" | 31 | FILES:${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp" |
31 | 32 | ||
32 | BBCLASSEXTEND = "native nativesdk" | 33 | BBCLASSEXTEND = "native nativesdk" |
33 | |||
34 | # CVE-2019-17371 is actually a memory leak in gif2png 2.x | ||
35 | CVE_CHECK_WHITELIST += "CVE-2019-17371" | ||
diff --git a/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch b/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch deleted file mode 100644 index d19b514e6b..0000000000 --- a/meta/recipes-multimedia/libsamplerate/libsamplerate0/0001-configure.ac-improve-alsa-handling.patch +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | From 957ebce3837588f71016e37ffaf9aad0a9d41cec Mon Sep 17 00:00:00 2001 | ||
2 | From: Tanu Kaskinen <tanuk@iki.fi> | ||
3 | Date: Fri, 23 Sep 2016 12:02:06 +0300 | ||
4 | Subject: [PATCH] configure.ac: improve alsa handling | ||
5 | |||
6 | Three improvements: | ||
7 | |||
8 | 1) "--enable-alsa" or "--disable-alsa" caused a warning about an | ||
9 | unsupported configure option, because AC_ARG_ENABLE was not used. | ||
10 | |||
11 | 2) If alsa was disabled, the "Have ALSA" item in the summary would print | ||
12 | an empty string instead of "no". | ||
13 | |||
14 | 3) If "--enable-alsa" was passed to configure, but the headers were not | ||
15 | found, configure would still succeed (with alsa disabled). It's better | ||
16 | to fail and abort configure if a feature that was explicitly requested | ||
17 | can't be enabled. | ||
18 | |||
19 | Upstream-Status: Submitted [sent to src@mega-nerd.com] | ||
20 | |||
21 | Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> | ||
22 | --- | ||
23 | configure.ac | 9 ++++++++- | ||
24 | 1 file changed, 8 insertions(+), 1 deletion(-) | ||
25 | |||
26 | diff --git a/configure.ac b/configure.ac | ||
27 | index 474c6ab..bad597e 100644 | ||
28 | --- a/configure.ac | ||
29 | +++ b/configure.ac | ||
30 | @@ -101,6 +101,9 @@ AC_ARG_ENABLE(cpu-clip, | ||
31 | AC_HELP_STRING([--disable-cpu-clip], [disable tricky cpu specific clipper]), | ||
32 | ac_arg_cpu_clip="N", ac_arg_cpu_clip="Y") | ||
33 | |||
34 | +AC_ARG_ENABLE(alsa, | ||
35 | + AC_HELP_STRING([--disable-alsa], [disable ALSA support in the varispeed-play example program])) | ||
36 | + | ||
37 | #==================================================================================== | ||
38 | # Check types and their sizes. | ||
39 | |||
40 | @@ -194,6 +197,10 @@ if test x$enable_alsa != xno ; then | ||
41 | if test x$ac_cv_header_alsa_asoundlib_h = xyes ; then | ||
42 | ALSA_LIBS="-lasound" | ||
43 | enable_alsa=yes | ||
44 | + elif test x$enable_alsa = xyes ; then | ||
45 | + AC_MSG_ERROR(["ALSA headers not found"]) | ||
46 | + else | ||
47 | + enable_alsa=no | ||
48 | fi | ||
49 | fi | ||
50 | |||
51 | @@ -340,7 +347,7 @@ AC_MSG_RESULT([ | ||
52 | Have FFTW : ................... ${ac_cv_fftw3}]) | ||
53 | |||
54 | AC_MSG_RESULT([ Have libsndfile : ............. ${ac_cv_sndfile}]) | ||
55 | -AC_MSG_RESULT([ Have ALSA : ................... ${ac_cv_header_alsa_asoundlib_h} | ||
56 | +AC_MSG_RESULT([ Have ALSA : ................... ${enable_alsa} | ||
57 | ]) | ||
58 | |||
59 | AC_MSG_RESULT([ Installation directories : | ||
60 | -- | ||
61 | 2.9.3 | ||
62 | |||
diff --git a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb index 6dfc42b436..29d48fd333 100644 --- a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb +++ b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb | |||
@@ -1,27 +1,24 @@ | |||
1 | SUMMARY = "Audio Sample Rate Conversion library" | 1 | SUMMARY = "Audio Sample Rate Conversion library" |
2 | DESCRIPTION = "Also known as Secret Rabbit Code - a library for performing sample rate conversion of audio data." | 2 | DESCRIPTION = "Also known as Secret Rabbit Code - a library for performing sample rate conversion of audio data." |
3 | HOMEPAGE = "http://www.mega-nerd.com/SRC/" | 3 | HOMEPAGE = "https://libsndfile.github.io/libsamplerate/" |
4 | SECTION = "libs" | 4 | SECTION = "libs" |
5 | LICENSE = "BSD-2-Clause" | 5 | LICENSE = "BSD-2-Clause" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=336d6faf40fb600bafb0061f4052f1f4 \ | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=336d6faf40fb600bafb0061f4052f1f4 \ |
7 | file://src/samplerate.c;beginline=1;endline=7;md5=5b6982a8c2811c7312c13cccbf55f55e" | 7 | file://src/samplerate.c;beginline=1;endline=7;md5=7a4238289dc36bfb70968ccaa5bd0d4f" |
8 | DEPENDS = "libsndfile1" | 8 | DEPENDS = "libsndfile1" |
9 | PR = "r1" | ||
10 | 9 | ||
11 | SRC_URI = "http://www.mega-nerd.com/SRC/libsamplerate-${PV}.tar.gz \ | 10 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsamplerate-${PV}.tar.xz \ |
12 | file://0001-configure.ac-improve-alsa-handling.patch \ | ||
13 | " | 11 | " |
14 | 12 | ||
15 | SRC_URI[md5sum] = "2b78ae9fe63b36b9fbb6267fad93f259" | 13 | SRC_URI[sha256sum] = "3258da280511d24b49d6b08615bbe824d0cacc9842b0e4caf11c52cf2b043893" |
16 | SRC_URI[sha256sum] = "0a7eb168e2f21353fb6d84da152e4512126f7dc48ccb0be80578c565413444c1" | ||
17 | 14 | ||
18 | CVE_PRODUCT = "libsamplerate" | 15 | CVE_PRODUCT = "libsamplerate" |
19 | 16 | ||
20 | UPSTREAM_CHECK_URI = "http://www.mega-nerd.com/SRC/download.html" | 17 | GITHUB_BASE_URI = "https://github.com/libsndfile/libsamplerate/releases" |
21 | 18 | ||
22 | S = "${WORKDIR}/libsamplerate-${PV}" | 19 | S = "${WORKDIR}/libsamplerate-${PV}" |
23 | 20 | ||
24 | inherit autotools pkgconfig | 21 | inherit autotools pkgconfig github-releases |
25 | 22 | ||
26 | # FFTW and ALSA are only used in tests and examples, so they don't affect | 23 | # FFTW and ALSA are only used in tests and examples, so they don't affect |
27 | # normal builds. It should be safe to ignore these, but explicitly disabling | 24 | # normal builds. It should be safe to ignore these, but explicitly disabling |
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/0001-a-ulaw-fix-multiple-buffer-overflows-432.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/0001-a-ulaw-fix-multiple-buffer-overflows-432.patch deleted file mode 100644 index a4679cef2a..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/0001-a-ulaw-fix-multiple-buffer-overflows-432.patch +++ /dev/null | |||
@@ -1,107 +0,0 @@ | |||
1 | This patch fixes #429 (CVE-2018-19661 CVE-2018-19662) and #344 (CVE-2017-17456 | ||
2 | CVE-2017-17457). As per | ||
3 | https://github.com/erikd/libsndfile/issues/344#issuecomment-448504425 it also | ||
4 | fixes #317 (CVE-2017-14245 CVE-2017-14246). | ||
5 | |||
6 | CVE: CVE-2017-14245 CVE-2017-14246 | ||
7 | CVE: CVE-2017-17456 CVE-2017-17457 | ||
8 | CVE: CVE-2018-19661 CVE-2018-19662 | ||
9 | |||
10 | Upstream-Status: Backport [8ddc442d539ca775d80cdbc7af17a718634a743f] | ||
11 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
12 | |||
13 | From 39453899fe1bb39b2e041fdf51a85aecd177e9c7 Mon Sep 17 00:00:00 2001 | ||
14 | From: Changqing Li <changqing.li@windriver.com> | ||
15 | Date: Mon, 7 Jan 2019 15:55:03 +0800 | ||
16 | Subject: [PATCH] a/ulaw: fix multiple buffer overflows (#432) | ||
17 | |||
18 | i2ulaw_array() and i2alaw_array() fail to handle ptr [count] = INT_MIN | ||
19 | properly, leading to buffer underflow. INT_MIN is a special value | ||
20 | since - INT_MIN cannot be represented as int. | ||
21 | |||
22 | In this case round - INT_MIN to INT_MAX and proceed as usual. | ||
23 | |||
24 | f2ulaw_array() and f2alaw_array() fail to handle ptr [count] = NaN | ||
25 | properly, leading to null pointer dereference. | ||
26 | |||
27 | In this case, arbitrarily set the buffer value to 0. | ||
28 | |||
29 | This commit fixes #429 (CVE-2018-19661 and CVE-2018-19662) and | ||
30 | fixes #344 (CVE-2017-17456 and CVE-2017-17457). | ||
31 | |||
32 | --- | ||
33 | src/alaw.c | 9 +++++++-- | ||
34 | src/ulaw.c | 9 +++++++-- | ||
35 | 2 files changed, 14 insertions(+), 4 deletions(-) | ||
36 | |||
37 | diff --git a/src/alaw.c b/src/alaw.c | ||
38 | index 063fd1a..4220224 100644 | ||
39 | --- a/src/alaw.c | ||
40 | +++ b/src/alaw.c | ||
41 | @@ -19,6 +19,7 @@ | ||
42 | #include "sfconfig.h" | ||
43 | |||
44 | #include <math.h> | ||
45 | +#include <limits.h> | ||
46 | |||
47 | #include "sndfile.h" | ||
48 | #include "common.h" | ||
49 | @@ -326,7 +327,9 @@ s2alaw_array (const short *ptr, int count, unsigned char *buffer) | ||
50 | static inline void | ||
51 | i2alaw_array (const int *ptr, int count, unsigned char *buffer) | ||
52 | { while (--count >= 0) | ||
53 | - { if (ptr [count] >= 0) | ||
54 | + { if (ptr [count] == INT_MIN) | ||
55 | + buffer [count] = alaw_encode [INT_MAX >> (16 + 4)] ; | ||
56 | + else if (ptr [count] >= 0) | ||
57 | buffer [count] = alaw_encode [ptr [count] >> (16 + 4)] ; | ||
58 | else | ||
59 | buffer [count] = 0x7F & alaw_encode [- ptr [count] >> (16 + 4)] ; | ||
60 | @@ -346,7 +349,9 @@ f2alaw_array (const float *ptr, int count, unsigned char *buffer, float normfact | ||
61 | static inline void | ||
62 | d2alaw_array (const double *ptr, int count, unsigned char *buffer, double normfact) | ||
63 | { while (--count >= 0) | ||
64 | - { if (ptr [count] >= 0) | ||
65 | + { if (!isfinite (ptr [count])) | ||
66 | + buffer [count] = 0 ; | ||
67 | + else if (ptr [count] >= 0) | ||
68 | buffer [count] = alaw_encode [lrint (normfact * ptr [count])] ; | ||
69 | else | ||
70 | buffer [count] = 0x7F & alaw_encode [- lrint (normfact * ptr [count])] ; | ||
71 | diff --git a/src/ulaw.c b/src/ulaw.c | ||
72 | index e50b4cb..b6070ad 100644 | ||
73 | --- a/src/ulaw.c | ||
74 | +++ b/src/ulaw.c | ||
75 | @@ -19,6 +19,7 @@ | ||
76 | #include "sfconfig.h" | ||
77 | |||
78 | #include <math.h> | ||
79 | +#include <limits.h> | ||
80 | |||
81 | #include "sndfile.h" | ||
82 | #include "common.h" | ||
83 | @@ -827,7 +828,9 @@ s2ulaw_array (const short *ptr, int count, unsigned char *buffer) | ||
84 | static inline void | ||
85 | i2ulaw_array (const int *ptr, int count, unsigned char *buffer) | ||
86 | { while (--count >= 0) | ||
87 | - { if (ptr [count] >= 0) | ||
88 | + { if (ptr [count] == INT_MIN) | ||
89 | + buffer [count] = ulaw_encode [INT_MAX >> (16 + 2)] ; | ||
90 | + else if (ptr [count] >= 0) | ||
91 | buffer [count] = ulaw_encode [ptr [count] >> (16 + 2)] ; | ||
92 | else | ||
93 | buffer [count] = 0x7F & ulaw_encode [-ptr [count] >> (16 + 2)] ; | ||
94 | @@ -847,7 +850,9 @@ f2ulaw_array (const float *ptr, int count, unsigned char *buffer, float normfact | ||
95 | static inline void | ||
96 | d2ulaw_array (const double *ptr, int count, unsigned char *buffer, double normfact) | ||
97 | { while (--count >= 0) | ||
98 | - { if (ptr [count] >= 0) | ||
99 | + { if (!isfinite (ptr [count])) | ||
100 | + buffer [count] = 0 ; | ||
101 | + else if (ptr [count] >= 0) | ||
102 | buffer [count] = ulaw_encode [lrint (normfact * ptr [count])] ; | ||
103 | else | ||
104 | buffer [count] = 0x7F & ulaw_encode [- lrint (normfact * ptr [count])] ; | ||
105 | -- | ||
106 | 2.7.4 | ||
107 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-12562.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-12562.patch deleted file mode 100644 index 491dae3114..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-12562.patch +++ /dev/null | |||
@@ -1,96 +0,0 @@ | |||
1 | Heap-based Buffer Overflow in the psf_binheader_writef function in common.c in | ||
2 | libsndfile through 1.0.28 allows remote attackers to cause a denial of service | ||
3 | (application crash) or possibly have unspecified other impact. | ||
4 | |||
5 | CVE: CVE-2017-12562 | ||
6 | Upstream-Status: Backport [cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8] | ||
7 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
8 | |||
9 | From b6a9d7e95888ffa77d8c75ce3f03e6c7165587cd Mon Sep 17 00:00:00 2001 | ||
10 | From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= <osmanx@problemloesungsmaschine.de> | ||
11 | Date: Wed, 14 Jun 2017 12:25:40 +0200 | ||
12 | Subject: [PATCH] src/common.c: Fix heap buffer overflows when writing strings | ||
13 | in binheader | ||
14 | |||
15 | Fixes the following problems: | ||
16 | 1. Case 's' only enlarges the buffer by 16 bytes instead of size bytes. | ||
17 | 2. psf_binheader_writef() enlarges the header buffer (if needed) prior to the | ||
18 | big switch statement by an amount (16 bytes) which is enough for all cases | ||
19 | where only a single value gets added. Cases 's', 'S', 'p' however | ||
20 | additionally write an arbitrary length block of data and again enlarge the | ||
21 | buffer to the required amount. However, the required space calculation does | ||
22 | not take into account the size of the length field which gets output before | ||
23 | the data. | ||
24 | 3. Buffer size requirement calculation in case 'S' does not account for the | ||
25 | padding byte ("size += (size & 1) ;" happens after the calculation which | ||
26 | uses "size"). | ||
27 | 4. Case 'S' can overrun the header buffer by 1 byte when no padding is | ||
28 | involved | ||
29 | ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;" while | ||
30 | the buffer is only guaranteed to have "size" space available). | ||
31 | 5. "psf->header.ptr [psf->header.indx] = 0 ;" in case 'S' always writes 1 byte | ||
32 | beyond the space which is guaranteed to be allocated in the header buffer. | ||
33 | 6. Case 's' can overrun the provided source string by 1 byte if padding is | ||
34 | involved ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;" | ||
35 | where "size" is "strlen (strptr) + 1" (which includes the 0 terminator, | ||
36 | plus optionally another 1 which is padding and not guaranteed to be | ||
37 | readable via the source string pointer). | ||
38 | |||
39 | Closes: https://github.com/erikd/libsndfile/issues/292 | ||
40 | --- | ||
41 | src/common.c | 15 +++++++-------- | ||
42 | 1 file changed, 7 insertions(+), 8 deletions(-) | ||
43 | |||
44 | diff --git a/src/common.c b/src/common.c | ||
45 | index 1a6204ca..6b2a2ee9 100644 | ||
46 | --- a/src/common.c | ||
47 | +++ b/src/common.c | ||
48 | @@ -681,16 +681,16 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...) | ||
49 | /* Write a C string (guaranteed to have a zero terminator). */ | ||
50 | strptr = va_arg (argptr, char *) ; | ||
51 | size = strlen (strptr) + 1 ; | ||
52 | - size += (size & 1) ; | ||
53 | |||
54 | - if (psf->header.indx + (sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, 16)) | ||
55 | + if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1))) | ||
56 | return count ; | ||
57 | |||
58 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
59 | - header_put_be_int (psf, size) ; | ||
60 | + header_put_be_int (psf, size + (size & 1)) ; | ||
61 | else | ||
62 | - header_put_le_int (psf, size) ; | ||
63 | + header_put_le_int (psf, size + (size & 1)) ; | ||
64 | memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ; | ||
65 | + size += (size & 1) ; | ||
66 | psf->header.indx += size ; | ||
67 | psf->header.ptr [psf->header.indx - 1] = 0 ; | ||
68 | count += 4 + size ; | ||
69 | @@ -703,16 +703,15 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...) | ||
70 | */ | ||
71 | strptr = va_arg (argptr, char *) ; | ||
72 | size = strlen (strptr) ; | ||
73 | - if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size)) | ||
74 | + if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1))) | ||
75 | return count ; | ||
76 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
77 | header_put_be_int (psf, size) ; | ||
78 | else | ||
79 | header_put_le_int (psf, size) ; | ||
80 | - memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ; | ||
81 | + memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + (size & 1)) ; | ||
82 | size += (size & 1) ; | ||
83 | psf->header.indx += size ; | ||
84 | - psf->header.ptr [psf->header.indx] = 0 ; | ||
85 | count += 4 + size ; | ||
86 | break ; | ||
87 | |||
88 | @@ -724,7 +723,7 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...) | ||
89 | size = (size & 1) ? size : size + 1 ; | ||
90 | size = (size > 254) ? 254 : size ; | ||
91 | |||
92 | - if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size)) | ||
93 | + if (psf->header.indx + 1 + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, 1 + size)) | ||
94 | return count ; | ||
95 | |||
96 | header_put_byte (psf, size) ; | ||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-14634.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-14634.patch deleted file mode 100644 index 39b4ec1101..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-14634.patch +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | From 85c877d5072866aadbe8ed0c3e0590fbb5e16788 Mon Sep 17 00:00:00 2001 | ||
2 | From: Fabian Greffrath <fabian@greffrath.com> | ||
3 | Date: Thu, 28 Sep 2017 12:15:04 +0200 | ||
4 | Subject: [PATCH] double64_init: Check psf->sf.channels against upper bound | ||
5 | |||
6 | This prevents division by zero later in the code. | ||
7 | |||
8 | While the trivial case to catch this (i.e. sf.channels < 1) has already | ||
9 | been covered, a crafted file may report a number of channels that is | ||
10 | so high (i.e. > INT_MAX/sizeof(double)) that it "somehow" gets | ||
11 | miscalculated to zero (if this makes sense) in the determination of the | ||
12 | blockwidth. Since we only support a limited number of channels anyway, | ||
13 | make sure to check here as well. | ||
14 | |||
15 | CVE: CVE-2017-14634 | ||
16 | |||
17 | Closes: https://github.com/erikd/libsndfile/issues/318 | ||
18 | |||
19 | Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/85c877d5072866aadbe8ed0c3e0590fbb5e16788] | ||
20 | |||
21 | Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> | ||
22 | Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> | ||
23 | --- | ||
24 | src/double64.c | 2 +- | ||
25 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
26 | |||
27 | diff --git a/src/double64.c b/src/double64.c | ||
28 | index b318ea8..78dfef7 100644 | ||
29 | --- a/src/double64.c | ||
30 | +++ b/src/double64.c | ||
31 | @@ -91,7 +91,7 @@ int | ||
32 | double64_init (SF_PRIVATE *psf) | ||
33 | { static int double64_caps ; | ||
34 | |||
35 | - if (psf->sf.channels < 1) | ||
36 | + if (psf->sf.channels < 1 || psf->sf.channels > SF_MAX_CHANNELS) | ||
37 | { psf_log_printf (psf, "double64_init : internal error : channels = %d\n", psf->sf.channels) ; | ||
38 | return SFE_INTERNAL ; | ||
39 | } ; | ||
40 | -- | ||
41 | 2.13.3 | ||
42 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-6892.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-6892.patch deleted file mode 100644 index 89552ac2d9..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-6892.patch +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | From f833c53cb596e9e1792949f762e0b33661822748 Mon Sep 17 00:00:00 2001 | ||
2 | From: Erik de Castro Lopo <erikd@mega-nerd.com> | ||
3 | Date: Tue, 23 May 2017 20:15:24 +1000 | ||
4 | Subject: [PATCH] src/aiff.c: Fix a buffer read overflow | ||
5 | |||
6 | Secunia Advisory SA76717. | ||
7 | |||
8 | Found by: Laurent Delosieres, Secunia Research at Flexera Software | ||
9 | |||
10 | CVE: CVE-2017-6892 | ||
11 | Upstream-Status: Backport | ||
12 | |||
13 | Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com> | ||
14 | |||
15 | --- | ||
16 | src/aiff.c | 2 +- | ||
17 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
18 | |||
19 | diff --git a/src/aiff.c b/src/aiff.c | ||
20 | index 5b5f9f5..45864b7 100644 | ||
21 | --- a/src/aiff.c | ||
22 | +++ b/src/aiff.c | ||
23 | @@ -1759,7 +1759,7 @@ aiff_read_chanmap (SF_PRIVATE * psf, unsigned dword) | ||
24 | psf_binheader_readf (psf, "j", dword - bytesread) ; | ||
25 | |||
26 | if (map_info->channel_map != NULL) | ||
27 | - { size_t chanmap_size = psf->sf.channels * sizeof (psf->channel_map [0]) ; | ||
28 | + { size_t chanmap_size = SF_MIN (psf->sf.channels, layout_tag & 0xffff) * sizeof (psf->channel_map [0]) ; | ||
29 | |||
30 | free (psf->channel_map) ; | ||
31 | |||
32 | -- | ||
33 | 1.9.1 | ||
34 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8361-8365.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8361-8365.patch deleted file mode 100644 index ac99516bb3..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8361-8365.patch +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | From fd0484aba8e51d16af1e3a880f9b8b857b385eb3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Erik de Castro Lopo <erikd@mega-nerd.com> | ||
3 | Date: Wed, 12 Apr 2017 19:45:30 +1000 | ||
4 | Subject: [PATCH] FLAC: Fix a buffer read overrun | ||
5 | |||
6 | Buffer read overrun occurs when reading a FLAC file that switches | ||
7 | from 2 channels to one channel mid-stream. Only option is to | ||
8 | abort the read. | ||
9 | |||
10 | Closes: https://github.com/erikd/libsndfile/issues/230 | ||
11 | |||
12 | CVE: CVE-2017-8361 CVE-2017-8365 | ||
13 | |||
14 | Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/fd0484aba8e51d16af1e3a880f9b8b857b385eb3] | ||
15 | |||
16 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
17 | --- | ||
18 | src/common.h | 1 + | ||
19 | src/flac.c | 13 +++++++++++++ | ||
20 | src/sndfile.c | 1 + | ||
21 | 3 files changed, 15 insertions(+) | ||
22 | |||
23 | diff --git a/src/common.h b/src/common.h | ||
24 | index 0bd810c..e2669b6 100644 | ||
25 | --- a/src/common.h | ||
26 | +++ b/src/common.h | ||
27 | @@ -725,6 +725,7 @@ enum | ||
28 | SFE_FLAC_INIT_DECODER, | ||
29 | SFE_FLAC_LOST_SYNC, | ||
30 | SFE_FLAC_BAD_SAMPLE_RATE, | ||
31 | + SFE_FLAC_CHANNEL_COUNT_CHANGED, | ||
32 | SFE_FLAC_UNKOWN_ERROR, | ||
33 | |||
34 | SFE_WVE_NOT_WVE, | ||
35 | diff --git a/src/flac.c b/src/flac.c | ||
36 | index 84de0e2..986a7b8 100644 | ||
37 | --- a/src/flac.c | ||
38 | +++ b/src/flac.c | ||
39 | @@ -434,6 +434,19 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ | ||
40 | |||
41 | switch (metadata->type) | ||
42 | { case FLAC__METADATA_TYPE_STREAMINFO : | ||
43 | + if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) | ||
44 | + { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" | ||
45 | + "Nothing to be but to error out.\n" , | ||
46 | + psf->sf.channels, metadata->data.stream_info.channels) ; | ||
47 | + psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; | ||
48 | + return ; | ||
49 | + } ; | ||
50 | + | ||
51 | + if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate) | ||
52 | + { psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n" | ||
53 | + "Carrying on as if nothing happened.", | ||
54 | + psf->sf.samplerate, metadata->data.stream_info.sample_rate) ; | ||
55 | + } ; | ||
56 | psf->sf.channels = metadata->data.stream_info.channels ; | ||
57 | psf->sf.samplerate = metadata->data.stream_info.sample_rate ; | ||
58 | psf->sf.frames = metadata->data.stream_info.total_samples ; | ||
59 | diff --git a/src/sndfile.c b/src/sndfile.c | ||
60 | index 4187561..e2a87be 100644 | ||
61 | --- a/src/sndfile.c | ||
62 | +++ b/src/sndfile.c | ||
63 | @@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] = | ||
64 | { SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." }, | ||
65 | { SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." }, | ||
66 | { SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." }, | ||
67 | + { SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." }, | ||
68 | { SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." }, | ||
69 | |||
70 | { SFE_WVE_NOT_WVE , "Error : not a WVE file." }, | ||
71 | -- | ||
72 | 2.7.4 | ||
73 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8362.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8362.patch deleted file mode 100644 index 9ee7e46a6d..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8362.patch +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | From ef1dbb2df1c0e741486646de40bd638a9c4cd808 Mon Sep 17 00:00:00 2001 | ||
2 | From: Erik de Castro Lopo <erikd@mega-nerd.com> | ||
3 | Date: Fri, 14 Apr 2017 15:19:16 +1000 | ||
4 | Subject: [PATCH] src/flac.c: Fix a buffer read overflow | ||
5 | |||
6 | A file (generated by a fuzzer) which increased the number of channels | ||
7 | from one frame to the next could cause a read beyond the end of the | ||
8 | buffer provided by libFLAC. Only option is to abort the read. | ||
9 | |||
10 | Closes: https://github.com/erikd/libsndfile/issues/231 | ||
11 | |||
12 | CVE: CVE-2017-8362 | ||
13 | |||
14 | Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/ef1dbb2df1c0e741486646de40bd638a9c4cd808] | ||
15 | |||
16 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
17 | --- | ||
18 | src/flac.c | 11 +++++++++-- | ||
19 | 1 file changed, 9 insertions(+), 2 deletions(-) | ||
20 | |||
21 | diff --git a/src/flac.c b/src/flac.c | ||
22 | index 5a4f8c2..e4f9aaa 100644 | ||
23 | --- a/src/flac.c | ||
24 | +++ b/src/flac.c | ||
25 | @@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf) | ||
26 | const int32_t* const *buffer = pflac->wbuffer ; | ||
27 | unsigned i = 0, j, offset, channels, len ; | ||
28 | |||
29 | + if (psf->sf.channels != (int) frame->header.channels) | ||
30 | + { psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n" | ||
31 | + "Nothing to do but to error out.\n" , | ||
32 | + psf->sf.channels, frame->header.channels) ; | ||
33 | + psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; | ||
34 | + return 0 ; | ||
35 | + } ; | ||
36 | + | ||
37 | /* | ||
38 | ** frame->header.blocksize is variable and we're using a constant blocksize | ||
39 | ** of FLAC__MAX_BLOCK_SIZE. | ||
40 | @@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf) | ||
41 | return 0 ; | ||
42 | } ; | ||
43 | |||
44 | - | ||
45 | len = SF_MIN (pflac->len, frame->header.blocksize) ; | ||
46 | |||
47 | if (pflac->remain % channels != 0) | ||
48 | @@ -436,7 +443,7 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_ | ||
49 | { case FLAC__METADATA_TYPE_STREAMINFO : | ||
50 | if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels) | ||
51 | { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n" | ||
52 | - "Nothing to be but to error out.\n" , | ||
53 | + "Nothing to do but to error out.\n" , | ||
54 | psf->sf.channels, metadata->data.stream_info.channels) ; | ||
55 | psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ; | ||
56 | return ; | ||
57 | -- | ||
58 | 2.7.4 | ||
59 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8363.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8363.patch deleted file mode 100644 index e526e5a346..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2017-8363.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | From cd7da8dbf6ee4310d21d9e44b385d6797160d9e8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Erik de Castro Lopo <erikd@mega-nerd.com> | ||
3 | Date: Wed, 12 Apr 2017 20:19:34 +1000 | ||
4 | Subject: [PATCH] src/flac.c: Fix another memory leak | ||
5 | |||
6 | When the FLAC decoder was passed a malformed file, the associated | ||
7 | `FLAC__StreamDecoder` object was not getting released. | ||
8 | |||
9 | Closes: https://github.com/erikd/libsndfile/issues/233 | ||
10 | |||
11 | CVE: CVE-2017-8363 | ||
12 | |||
13 | Upstream-Status: Backport [https://github.com/erikd/libsndfile/commit/cd7da8dbf6ee4310d21d9e44b385d6797160d9e8] | ||
14 | |||
15 | Signed-off-by: Jackie Huang <jackie.huang@windriver.com> | ||
16 | --- | ||
17 | src/flac.c | 4 +++- | ||
18 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/src/flac.c b/src/flac.c | ||
21 | index 986a7b8..5a4f8c2 100644 | ||
22 | --- a/src/flac.c | ||
23 | +++ b/src/flac.c | ||
24 | @@ -841,7 +841,9 @@ flac_read_header (SF_PRIVATE *psf) | ||
25 | |||
26 | psf_log_printf (psf, "End\n") ; | ||
27 | |||
28 | - if (psf->error == 0) | ||
29 | + if (psf->error != 0) | ||
30 | + FLAC__stream_decoder_delete (pflac->fsd) ; | ||
31 | + else | ||
32 | { FLAC__uint64 position ; | ||
33 | |||
34 | FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ; | ||
35 | -- | ||
36 | 2.7.4 | ||
37 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-13139.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-13139.patch deleted file mode 100644 index 707373d414..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-13139.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | CVE: CVE-2018-13139 | ||
2 | Upstream-Status: Backport [9dc989eb89cd697e19897afa616d6ab0debe4822] | ||
3 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
4 | |||
5 | From 9dc989eb89cd697e19897afa616d6ab0debe4822 Mon Sep 17 00:00:00 2001 | ||
6 | From: "Brett T. Warden" <brett.t.warden@intel.com> | ||
7 | Date: Tue, 28 Aug 2018 12:01:17 -0700 | ||
8 | Subject: [PATCH] Check MAX_CHANNELS in sndfile-deinterleave | ||
9 | |||
10 | Allocated buffer has space for only 16 channels. Verify that input file | ||
11 | meets this limit. | ||
12 | |||
13 | Fixes #397 | ||
14 | --- | ||
15 | programs/sndfile-deinterleave.c | 7 +++++++ | ||
16 | 1 file changed, 7 insertions(+) | ||
17 | |||
18 | diff --git a/programs/sndfile-deinterleave.c b/programs/sndfile-deinterleave.c | ||
19 | index e27593e2..cb497e1f 100644 | ||
20 | --- a/programs/sndfile-deinterleave.c | ||
21 | +++ b/programs/sndfile-deinterleave.c | ||
22 | @@ -89,6 +89,13 @@ main (int argc, char **argv) | ||
23 | exit (1) ; | ||
24 | } ; | ||
25 | |||
26 | + if (sfinfo.channels > MAX_CHANNELS) | ||
27 | + { printf ("\nError : Input file '%s' has too many (%d) channels. Limit is %d.\n", | ||
28 | + argv [1], sfinfo.channels, MAX_CHANNELS) ; | ||
29 | + exit (1) ; | ||
30 | + } ; | ||
31 | + | ||
32 | + | ||
33 | state.channels = sfinfo.channels ; | ||
34 | sfinfo.channels = 1 ; | ||
35 | |||
36 | -- | ||
37 | 2.11.0 | ||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19432.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19432.patch deleted file mode 100644 index 8ded2c0f85..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19432.patch +++ /dev/null | |||
@@ -1,115 +0,0 @@ | |||
1 | From 6f3266277bed16525f0ac2f0f03ff4626f1923e5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Erik de Castro Lopo <erikd@mega-nerd.com> | ||
3 | Date: Thu, 8 Mar 2018 18:00:21 +1100 | ||
4 | Subject: [PATCH] Fix max channel count bug | ||
5 | |||
6 | The code was allowing files to be written with a channel count of exactly | ||
7 | `SF_MAX_CHANNELS` but was failing to read some file formats with the same | ||
8 | channel count. | ||
9 | |||
10 | Upstream-Status: Backport [https://github.com/erikd/libsndfile/ | ||
11 | commit/6f3266277bed16525f0ac2f0f03ff4626f1923e5] | ||
12 | |||
13 | CVE: CVE-2018-19432 | ||
14 | |||
15 | Signed-off-by: Changqing Li <changqing.li@windriver.com> | ||
16 | |||
17 | --- | ||
18 | src/aiff.c | 6 +++--- | ||
19 | src/rf64.c | 4 ++-- | ||
20 | src/w64.c | 4 ++-- | ||
21 | src/wav.c | 4 ++-- | ||
22 | 4 files changed, 9 insertions(+), 9 deletions(-) | ||
23 | |||
24 | diff --git a/src/aiff.c b/src/aiff.c | ||
25 | index fbd43cb..6386bce 100644 | ||
26 | --- a/src/aiff.c | ||
27 | +++ b/src/aiff.c | ||
28 | @@ -1,5 +1,5 @@ | ||
29 | /* | ||
30 | -** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
31 | +** Copyright (C) 1999-2018 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
32 | ** Copyright (C) 2005 David Viens <davidv@plogue.com> | ||
33 | ** | ||
34 | ** This program is free software; you can redistribute it and/or modify | ||
35 | @@ -950,7 +950,7 @@ aiff_read_header (SF_PRIVATE *psf, COMM_ | ||
36 | if (psf->sf.channels < 1) | ||
37 | return SFE_CHANNEL_COUNT_ZERO ; | ||
38 | |||
39 | - if (psf->sf.channels >= SF_MAX_CHANNELS) | ||
40 | + if (psf->sf.channels > SF_MAX_CHANNELS) | ||
41 | return SFE_CHANNEL_COUNT ; | ||
42 | |||
43 | if (! (found_chunk & HAVE_FORM)) | ||
44 | @@ -1030,7 +1030,7 @@ aiff_read_comm_chunk (SF_PRIVATE *psf, C | ||
45 | psf_log_printf (psf, " Sample Rate : %d\n", samplerate) ; | ||
46 | psf_log_printf (psf, " Frames : %u%s\n", comm_fmt->numSampleFrames, (comm_fmt->numSampleFrames == 0 && psf->filelength > 104) ? " (Should not be 0)" : "") ; | ||
47 | |||
48 | - if (comm_fmt->numChannels < 1 || comm_fmt->numChannels >= SF_MAX_CHANNELS) | ||
49 | + if (comm_fmt->numChannels < 1 || comm_fmt->numChannels > SF_MAX_CHANNELS) | ||
50 | { psf_log_printf (psf, " Channels : %d (should be >= 1 and < %d)\n", comm_fmt->numChannels, SF_MAX_CHANNELS) ; | ||
51 | return SFE_CHANNEL_COUNT_BAD ; | ||
52 | } ; | ||
53 | diff --git a/src/rf64.c b/src/rf64.c | ||
54 | index d57f0f3..876cd45 100644 | ||
55 | --- a/src/rf64.c | ||
56 | +++ b/src/rf64.c | ||
57 | @@ -1,5 +1,5 @@ | ||
58 | /* | ||
59 | -** Copyright (C) 2008-2017 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
60 | +** Copyright (C) 2008-2018 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
61 | ** Copyright (C) 2009 Uli Franke <cls@nebadje.org> | ||
62 | ** | ||
63 | ** This program is free software; you can redistribute it and/or modify | ||
64 | @@ -382,7 +382,7 @@ rf64_read_header (SF_PRIVATE *psf, int * | ||
65 | if (psf->sf.channels < 1) | ||
66 | return SFE_CHANNEL_COUNT_ZERO ; | ||
67 | |||
68 | - if (psf->sf.channels >= SF_MAX_CHANNELS) | ||
69 | + if (psf->sf.channels > SF_MAX_CHANNELS) | ||
70 | return SFE_CHANNEL_COUNT ; | ||
71 | |||
72 | /* WAVs can be little or big endian */ | ||
73 | diff --git a/src/w64.c b/src/w64.c | ||
74 | index 939b716..a37d2c5 100644 | ||
75 | --- a/src/w64.c | ||
76 | +++ b/src/w64.c | ||
77 | @@ -1,5 +1,5 @@ | ||
78 | /* | ||
79 | -** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
80 | +** Copyright (C) 1999-2018 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
81 | ** | ||
82 | ** This program is free software; you can redistribute it and/or modify | ||
83 | ** it under the terms of the GNU Lesser General Public License as published by | ||
84 | @@ -383,7 +383,7 @@ w64_read_header (SF_PRIVATE *psf, int *b | ||
85 | if (psf->sf.channels < 1) | ||
86 | return SFE_CHANNEL_COUNT_ZERO ; | ||
87 | |||
88 | - if (psf->sf.channels >= SF_MAX_CHANNELS) | ||
89 | + if (psf->sf.channels > SF_MAX_CHANNELS) | ||
90 | return SFE_CHANNEL_COUNT ; | ||
91 | |||
92 | psf->endian = SF_ENDIAN_LITTLE ; /* All W64 files are little endian. */ | ||
93 | diff --git a/src/wav.c b/src/wav.c | ||
94 | index 7bd97bc..dc97545 100644 | ||
95 | --- a/src/wav.c | ||
96 | +++ b/src/wav.c | ||
97 | @@ -1,5 +1,5 @@ | ||
98 | /* | ||
99 | -** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
100 | +** Copyright (C) 1999-2018 Erik de Castro Lopo <erikd@mega-nerd.com> | ||
101 | ** Copyright (C) 2004-2005 David Viens <davidv@plogue.com> | ||
102 | ** | ||
103 | ** This program is free software; you can redistribute it and/or modify | ||
104 | @@ -627,7 +627,7 @@ wav_read_header (SF_PRIVATE *psf, int *b | ||
105 | if (psf->sf.channels < 1) | ||
106 | return SFE_CHANNEL_COUNT_ZERO ; | ||
107 | |||
108 | - if (psf->sf.channels >= SF_MAX_CHANNELS) | ||
109 | + if (psf->sf.channels > SF_MAX_CHANNELS) | ||
110 | return SFE_CHANNEL_COUNT ; | ||
111 | |||
112 | if (format != WAVE_FORMAT_PCM && (parsestage & HAVE_fact) == 0) | ||
113 | -- | ||
114 | 1.7.9.5 | ||
115 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19758.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19758.patch deleted file mode 100644 index c3586f9dfc..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2018-19758.patch +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | There is a heap-based buffer over-read at wav.c in wav_write_header in | ||
2 | libsndfile 1.0.28 that will cause a denial of service. | ||
3 | |||
4 | CVE: CVE-2018-19758 | ||
5 | Upstream-Status: Backport [42132c543358cee9f7c3e9e9b15bb6c1063a608e] | ||
6 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
7 | |||
8 | From c12173b0197dd0c5cfa2cd27977e982d2ae59486 Mon Sep 17 00:00:00 2001 | ||
9 | From: Erik de Castro Lopo <erikd@mega-nerd.com> | ||
10 | Date: Tue, 1 Jan 2019 20:11:46 +1100 | ||
11 | Subject: [PATCH] src/wav.c: Fix heap read overflow | ||
12 | |||
13 | This is CVE-2018-19758. | ||
14 | |||
15 | Closes: https://github.com/erikd/libsndfile/issues/435 | ||
16 | --- | ||
17 | src/wav.c | 2 ++ | ||
18 | 1 file changed, 2 insertions(+) | ||
19 | |||
20 | diff --git a/src/wav.c b/src/wav.c | ||
21 | index e8405b55..6fb94ae8 100644 | ||
22 | --- a/src/wav.c | ||
23 | +++ b/src/wav.c | ||
24 | @@ -1094,6 +1094,8 @@ wav_write_header (SF_PRIVATE *psf, int calc_length) | ||
25 | psf_binheader_writef (psf, "44", 0, 0) ; /* SMTPE format */ | ||
26 | psf_binheader_writef (psf, "44", psf->instrument->loop_count, 0) ; | ||
27 | |||
28 | + /* Loop count is signed 16 bit number so we limit it range to something sensible. */ | ||
29 | + psf->instrument->loop_count &= 0x7fff ; | ||
30 | for (tmp = 0 ; tmp < psf->instrument->loop_count ; tmp++) | ||
31 | { int type ; | ||
32 | |||
33 | -- | ||
34 | 2.11.0 | ||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2019-3832.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2019-3832.patch deleted file mode 100644 index ab37211399..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1/CVE-2019-3832.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | From 43886efc408c21e1e329086ef70c88860310f25b Mon Sep 17 00:00:00 2001 | ||
2 | From: Emilio Pozuelo Monfort <pochu27@gmail.com> | ||
3 | Date: Tue, 5 Mar 2019 11:27:17 +0100 | ||
4 | Subject: [PATCH] wav_write_header: don't read past the array end | ||
5 | |||
6 | CVE-2018-19758 wasn't entirely fixed in the fix, so fix it harder. | ||
7 | |||
8 | CVE: CVE-2019-3832 | ||
9 | Upstream-Status: Backport [7408c4c788ce047d4e652b60a04e7796bcd7267e] | ||
10 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
11 | |||
12 | If loop_count is bigger than the array, truncate it to the array | ||
13 | length (and not to 32k). | ||
14 | |||
15 | CVE-2019-3832 | ||
16 | |||
17 | --- | ||
18 | src/wav.c | 6 ++++-- | ||
19 | 1 file changed, 4 insertions(+), 2 deletions(-) | ||
20 | |||
21 | diff --git a/src/wav.c b/src/wav.c | ||
22 | index daae3cc..8851549 100644 | ||
23 | --- a/src/wav.c | ||
24 | +++ b/src/wav.c | ||
25 | @@ -1094,8 +1094,10 @@ wav_write_header (SF_PRIVATE *psf, int calc_length) | ||
26 | psf_binheader_writef (psf, "44", 0, 0) ; /* SMTPE format */ | ||
27 | psf_binheader_writef (psf, "44", psf->instrument->loop_count, 0) ; | ||
28 | |||
29 | - /* Loop count is signed 16 bit number so we limit it range to something sensible. */ | ||
30 | - psf->instrument->loop_count &= 0x7fff ; | ||
31 | + /* Make sure we don't read past the loops array end. */ | ||
32 | + if (psf->instrument->loop_count > ARRAY_LEN (psf->instrument->loops)) | ||
33 | + psf->instrument->loop_count = ARRAY_LEN (psf->instrument->loops) ; | ||
34 | + | ||
35 | for (tmp = 0 ; tmp < psf->instrument->loop_count ; tmp++) | ||
36 | { int type ; | ||
37 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/cve-2022-33065.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/cve-2022-33065.patch new file mode 100644 index 0000000000..fa4b2fc08b --- /dev/null +++ b/meta/recipes-multimedia/libsndfile/libsndfile1/cve-2022-33065.patch | |||
@@ -0,0 +1,739 @@ | |||
1 | From c7ce5b0ebeeb58934825077d1324960aa0747718 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alex Stewart <alex.stewart@ni.com> | ||
3 | Date: Tue, 10 Oct 2023 16:10:34 -0400 | ||
4 | Subject: [PATCH] mat4/mat5: fix int overflow in dataend calculation | ||
5 | |||
6 | The clang sanitizer warns of a possible signed integer overflow when | ||
7 | calculating the `dataend` value in `mat4_read_header()`. | ||
8 | |||
9 | ``` | ||
10 | src/mat4.c:323:41: runtime error: signed integer overflow: 205 * -100663296 cannot be represented in type 'int' | ||
11 | SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/mat4.c:323:41 in | ||
12 | src/mat4.c:323:48: runtime error: signed integer overflow: 838860800 * 4 cannot be represented in type 'int' | ||
13 | SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/mat4.c:323:48 in | ||
14 | ``` | ||
15 | |||
16 | Cast the offending `rows` and `cols` ints to `sf_count_t` (the type of | ||
17 | `dataend` before performing the calculation, to avoid the issue. | ||
18 | |||
19 | CVE: CVE-2022-33065 | ||
20 | Fixes: https://github.com/libsndfile/libsndfile/issues/789 | ||
21 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
22 | |||
23 | Upstream-Status: Backport [9a829113c88a51e57c1e46473e90609e4b7df151] | ||
24 | |||
25 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
26 | --- | ||
27 | src/mat4.c | 2 +- | ||
28 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
29 | |||
30 | diff --git a/src/mat4.c b/src/mat4.c | ||
31 | index 0b1b414b..575683ba 100644 | ||
32 | --- a/src/mat4.c | ||
33 | +++ b/src/mat4.c | ||
34 | @@ -320,7 +320,7 @@ mat4_read_header (SF_PRIVATE *psf) | ||
35 | psf->filelength - psf->dataoffset, psf->sf.channels * psf->sf.frames * psf->bytewidth) ; | ||
36 | } | ||
37 | else if ((psf->filelength - psf->dataoffset) > psf->sf.channels * psf->sf.frames * psf->bytewidth) | ||
38 | - psf->dataend = psf->dataoffset + rows * cols * psf->bytewidth ; | ||
39 | + psf->dataend = psf->dataoffset + (sf_count_t) rows * (sf_count_t) cols * psf->bytewidth ; | ||
40 | |||
41 | psf->datalength = psf->filelength - psf->dataoffset - psf->dataend ; | ||
42 | |||
43 | From 842303f984b2081481e74cb84a9a24ecbe3dec1a Mon Sep 17 00:00:00 2001 | ||
44 | From: Alex Stewart <alex.stewart@ni.com> | ||
45 | Date: Wed, 11 Oct 2023 16:36:02 -0400 | ||
46 | Subject: [PATCH] au: avoid int overflow while calculating data_end | ||
47 | |||
48 | At several points in au_read_header(), we calculate the functional end | ||
49 | of the data segment by adding the (int)au_fmt.dataoffset and the | ||
50 | (int)au_fmt.datasize. This can overflow the implicit int_32 return value | ||
51 | and cause undefined behavior. | ||
52 | |||
53 | Instead, precalculate the value and assign it to a 64-bit | ||
54 | (sf_count_t)data_end variable. | ||
55 | |||
56 | CVE: CVE-2022-33065 | ||
57 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
58 | |||
59 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
60 | --- | ||
61 | src/au.c | 10 ++++++---- | ||
62 | 1 file changed, 6 insertions(+), 4 deletions(-) | ||
63 | |||
64 | diff --git a/src/au.c b/src/au.c | ||
65 | index 62bd691d..f68f2587 100644 | ||
66 | --- a/src/au.c | ||
67 | +++ b/src/au.c | ||
68 | @@ -291,6 +291,7 @@ static int | ||
69 | au_read_header (SF_PRIVATE *psf) | ||
70 | { AU_FMT au_fmt ; | ||
71 | int marker, dword ; | ||
72 | + sf_count_t data_end ; | ||
73 | |||
74 | memset (&au_fmt, 0, sizeof (au_fmt)) ; | ||
75 | psf_binheader_readf (psf, "pm", 0, &marker) ; | ||
76 | @@ -317,14 +318,15 @@ au_read_header (SF_PRIVATE *psf) | ||
77 | return SFE_AU_EMBED_BAD_LEN ; | ||
78 | } ; | ||
79 | |||
80 | + data_end = (sf_count_t) au_fmt.dataoffset + (sf_count_t) au_fmt.datasize ; | ||
81 | if (psf->fileoffset > 0) | ||
82 | - { psf->filelength = au_fmt.dataoffset + au_fmt.datasize ; | ||
83 | + { psf->filelength = data_end ; | ||
84 | psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ; | ||
85 | } | ||
86 | - else if (au_fmt.datasize == -1 || au_fmt.dataoffset + au_fmt.datasize == psf->filelength) | ||
87 | + else if (au_fmt.datasize == -1 || data_end == psf->filelength) | ||
88 | psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ; | ||
89 | - else if (au_fmt.dataoffset + au_fmt.datasize < psf->filelength) | ||
90 | - { psf->filelength = au_fmt.dataoffset + au_fmt.datasize ; | ||
91 | + else if (data_end < psf->filelength) | ||
92 | + { psf->filelength = data_end ; | ||
93 | psf_log_printf (psf, " Data Size : %d\n", au_fmt.datasize) ; | ||
94 | } | ||
95 | else | ||
96 | From 0754d3380a54e3fbdde0f684b88955c80c79f58f Mon Sep 17 00:00:00 2001 | ||
97 | From: Alex Stewart <alex.stewart@ni.com> | ||
98 | Date: Wed, 11 Oct 2023 16:46:29 -0400 | ||
99 | Subject: [PATCH] avr: fix int overflow in avr_read_header() | ||
100 | |||
101 | Pre-cast hdr.frames to sf_count_t, to provide the calculation with | ||
102 | enough numeric space to avoid an int-overflow. | ||
103 | |||
104 | CVE: CVE-2022-33065 | ||
105 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
106 | |||
107 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
108 | --- | ||
109 | src/avr.c | 2 +- | ||
110 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
111 | |||
112 | diff --git a/src/avr.c b/src/avr.c | ||
113 | index 6c78ff69..1bc1ffc9 100644 | ||
114 | --- a/src/avr.c | ||
115 | +++ b/src/avr.c | ||
116 | @@ -162,7 +162,7 @@ avr_read_header (SF_PRIVATE *psf) | ||
117 | psf->endian = SF_ENDIAN_BIG ; | ||
118 | |||
119 | psf->dataoffset = AVR_HDR_SIZE ; | ||
120 | - psf->datalength = hdr.frames * (hdr.rez / 8) ; | ||
121 | + psf->datalength = (sf_count_t) hdr.frames * (hdr.rez / 8) ; | ||
122 | |||
123 | if (psf->fileoffset > 0) | ||
124 | psf->filelength = AVR_HDR_SIZE + psf->datalength ; | ||
125 | From 6ac31a68a614e2bba4a05b54e5558d6270c98376 Mon Sep 17 00:00:00 2001 | ||
126 | From: Alex Stewart <alex.stewart@ni.com> | ||
127 | Date: Wed, 11 Oct 2023 16:54:21 -0400 | ||
128 | Subject: [PATCH] sds: fix int overflow warning in sample calculations | ||
129 | |||
130 | The sds_*byte_read() functions compose their uint_32 sample buffers by | ||
131 | shifting 7bit samples into a 32bit wide buffer, and adding them | ||
132 | together. Because the 7bit samples are stored in 32bit ints, code | ||
133 | fuzzers become concerned that the addition operation can overflow and | ||
134 | cause undefined behavior. | ||
135 | |||
136 | Instead, bitwise-OR the bytes together - which should accomplish the | ||
137 | same arithmetic operation, without risking an int-overflow. | ||
138 | |||
139 | CVE: CVE-2022-33065 | ||
140 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
141 | |||
142 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
143 | |||
144 | Do the same for the 3byte and 4byte read functions. | ||
145 | --- | ||
146 | src/sds.c | 6 +++--- | ||
147 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
148 | |||
149 | diff --git a/src/sds.c b/src/sds.c | ||
150 | index 6bc76171..2a0f164c 100644 | ||
151 | --- a/src/sds.c | ||
152 | +++ b/src/sds.c | ||
153 | @@ -454,7 +454,7 @@ sds_2byte_read (SF_PRIVATE *psf, SDS_PRIVATE *psds) | ||
154 | |||
155 | ucptr = psds->read_data + 5 ; | ||
156 | for (k = 0 ; k < 120 ; k += 2) | ||
157 | - { sample = arith_shift_left (ucptr [k], 25) + arith_shift_left (ucptr [k + 1], 18) ; | ||
158 | + { sample = arith_shift_left (ucptr [k], 25) | arith_shift_left (ucptr [k + 1], 18) ; | ||
159 | psds->read_samples [k / 2] = (int) (sample - 0x80000000) ; | ||
160 | } ; | ||
161 | |||
162 | @@ -498,7 +498,7 @@ sds_3byte_read (SF_PRIVATE *psf, SDS_PRIVATE *psds) | ||
163 | |||
164 | ucptr = psds->read_data + 5 ; | ||
165 | for (k = 0 ; k < 120 ; k += 3) | ||
166 | - { sample = (((uint32_t) ucptr [k]) << 25) + (ucptr [k + 1] << 18) + (ucptr [k + 2] << 11) ; | ||
167 | + { sample = (((uint32_t) ucptr [k]) << 25) | (ucptr [k + 1] << 18) | (ucptr [k + 2] << 11) ; | ||
168 | psds->read_samples [k / 3] = (int) (sample - 0x80000000) ; | ||
169 | } ; | ||
170 | |||
171 | @@ -542,7 +542,7 @@ sds_4byte_read (SF_PRIVATE *psf, SDS_PRIVATE *psds) | ||
172 | |||
173 | ucptr = psds->read_data + 5 ; | ||
174 | for (k = 0 ; k < 120 ; k += 4) | ||
175 | - { sample = (((uint32_t) ucptr [k]) << 25) + (ucptr [k + 1] << 18) + (ucptr [k + 2] << 11) + (ucptr [k + 3] << 4) ; | ||
176 | + { sample = (((uint32_t) ucptr [k]) << 25) | (ucptr [k + 1] << 18) | (ucptr [k + 2] << 11) | (ucptr [k + 3] << 4) ; | ||
177 | psds->read_samples [k / 4] = (int) (sample - 0x80000000) ; | ||
178 | } ; | ||
179 | |||
180 | From 96428e1dd4998f1cd47df24f8fe9b0da35d7b947 Mon Sep 17 00:00:00 2001 | ||
181 | From: Alex Stewart <alex.stewart@ni.com> | ||
182 | Date: Wed, 11 Oct 2023 17:26:51 -0400 | ||
183 | Subject: [PATCH] aiff: fix int overflow when counting header elements | ||
184 | |||
185 | aiff_read_basc_chunk() tries to count the AIFF header size by keeping | ||
186 | track of the bytes returned by psf_binheader_readf(). Though improbable, | ||
187 | it is technically possible for these added bytes to exceed the int-sized | ||
188 | `count` accumulator. | ||
189 | |||
190 | Use a 64-bit sf_count_t type for `count`, to ensure that it always has | ||
191 | enough numeric space. | ||
192 | |||
193 | CVE: CVE-2022-33065 | ||
194 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
195 | |||
196 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
197 | --- | ||
198 | src/aiff.c | 2 +- | ||
199 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
200 | |||
201 | diff --git a/src/aiff.c b/src/aiff.c | ||
202 | index a2bda8f4..6b244302 100644 | ||
203 | --- a/src/aiff.c | ||
204 | +++ b/src/aiff.c | ||
205 | @@ -1702,7 +1702,7 @@ static int | ||
206 | aiff_read_basc_chunk (SF_PRIVATE * psf, int datasize) | ||
207 | { const char * type_str ; | ||
208 | basc_CHUNK bc ; | ||
209 | - int count ; | ||
210 | + sf_count_t count ; | ||
211 | |||
212 | count = psf_binheader_readf (psf, "E442", &bc.version, &bc.numBeats, &bc.rootNote) ; | ||
213 | count += psf_binheader_readf (psf, "E222", &bc.scaleType, &bc.sigNumerator, &bc.sigDenominator) ; | ||
214 | From b352c350d35bf978e4d3a32e5d9df1f2284445f4 Mon Sep 17 00:00:00 2001 | ||
215 | From: Alex Stewart <alex.stewart@ni.com> | ||
216 | Date: Wed, 11 Oct 2023 17:43:02 -0400 | ||
217 | Subject: [PATCH] ircam: fix int overflow in ircam_read_header() | ||
218 | |||
219 | When reading the IRCAM header, it is possible for the calculated | ||
220 | blockwidth to exceed the bounds of a signed int32. | ||
221 | |||
222 | Use a 64bit sf_count_t to store the blockwidth. | ||
223 | |||
224 | CVE: CVE-2022-33065 | ||
225 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
226 | |||
227 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
228 | --- | ||
229 | src/common.h | 2 +- | ||
230 | src/ircam.c | 10 +++++----- | ||
231 | 2 files changed, 6 insertions(+), 6 deletions(-) | ||
232 | |||
233 | diff --git a/src/common.h b/src/common.h | ||
234 | index d92eabde..5369cb67 100644 | ||
235 | --- a/src/common.h | ||
236 | +++ b/src/common.h | ||
237 | @@ -439,7 +439,7 @@ typedef struct sf_private_tag | ||
238 | sf_count_t datalength ; /* Length in bytes of the audio data. */ | ||
239 | sf_count_t dataend ; /* Offset to file tailer. */ | ||
240 | |||
241 | - int blockwidth ; /* Size in bytes of one set of interleaved samples. */ | ||
242 | + sf_count_t blockwidth ; /* Size in bytes of one set of interleaved samples. */ | ||
243 | int bytewidth ; /* Size in bytes of one sample (one channel). */ | ||
244 | |||
245 | void *dither ; | ||
246 | diff --git a/src/ircam.c b/src/ircam.c | ||
247 | index 8e7cdba8..3d73ba44 100644 | ||
248 | --- a/src/ircam.c | ||
249 | +++ b/src/ircam.c | ||
250 | @@ -171,35 +171,35 @@ ircam_read_header (SF_PRIVATE *psf) | ||
251 | switch (encoding) | ||
252 | { case IRCAM_PCM_16 : | ||
253 | psf->bytewidth = 2 ; | ||
254 | - psf->blockwidth = psf->sf.channels * psf->bytewidth ; | ||
255 | + psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ; | ||
256 | |||
257 | psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_16 ; | ||
258 | break ; | ||
259 | |||
260 | case IRCAM_PCM_32 : | ||
261 | psf->bytewidth = 4 ; | ||
262 | - psf->blockwidth = psf->sf.channels * psf->bytewidth ; | ||
263 | + psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ; | ||
264 | |||
265 | psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_PCM_32 ; | ||
266 | break ; | ||
267 | |||
268 | case IRCAM_FLOAT : | ||
269 | psf->bytewidth = 4 ; | ||
270 | - psf->blockwidth = psf->sf.channels * psf->bytewidth ; | ||
271 | + psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ; | ||
272 | |||
273 | psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_FLOAT ; | ||
274 | break ; | ||
275 | |||
276 | case IRCAM_ALAW : | ||
277 | psf->bytewidth = 1 ; | ||
278 | - psf->blockwidth = psf->sf.channels * psf->bytewidth ; | ||
279 | + psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ; | ||
280 | |||
281 | psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_ALAW ; | ||
282 | break ; | ||
283 | |||
284 | case IRCAM_ULAW : | ||
285 | psf->bytewidth = 1 ; | ||
286 | - psf->blockwidth = psf->sf.channels * psf->bytewidth ; | ||
287 | + psf->blockwidth = (sf_count_t) psf->sf.channels * psf->bytewidth ; | ||
288 | |||
289 | psf->sf.format = SF_FORMAT_IRCAM | SF_FORMAT_ULAW ; | ||
290 | break ; | ||
291 | From 3bcd291e57867f88f558fa6f80990e84311df78c Mon Sep 17 00:00:00 2001 | ||
292 | From: Alex Stewart <alex.stewart@ni.com> | ||
293 | Date: Wed, 11 Oct 2023 16:12:22 -0400 | ||
294 | Subject: [PATCH] mat4/mat5: fix int overflow when calculating blockwidth | ||
295 | |||
296 | Pre-cast the components of the blockwidth calculation to sf_count_t to | ||
297 | avoid overflowing integers during calculation. | ||
298 | |||
299 | CVE: CVE-2022-33065 | ||
300 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
301 | |||
302 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
303 | --- | ||
304 | src/mat4.c | 2 +- | ||
305 | src/mat5.c | 2 +- | ||
306 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
307 | |||
308 | diff --git a/src/mat4.c b/src/mat4.c | ||
309 | index 575683ba..9f046f0c 100644 | ||
310 | --- a/src/mat4.c | ||
311 | +++ b/src/mat4.c | ||
312 | @@ -104,7 +104,7 @@ mat4_open (SF_PRIVATE *psf) | ||
313 | |||
314 | psf->container_close = mat4_close ; | ||
315 | |||
316 | - psf->blockwidth = psf->bytewidth * psf->sf.channels ; | ||
317 | + psf->blockwidth = (sf_count_t) psf->bytewidth * psf->sf.channels ; | ||
318 | |||
319 | switch (subformat) | ||
320 | { case SF_FORMAT_PCM_16 : | ||
321 | diff --git a/src/mat5.c b/src/mat5.c | ||
322 | index da5a6eca..20f0ea64 100644 | ||
323 | --- a/src/mat5.c | ||
324 | +++ b/src/mat5.c | ||
325 | @@ -114,7 +114,7 @@ mat5_open (SF_PRIVATE *psf) | ||
326 | |||
327 | psf->container_close = mat5_close ; | ||
328 | |||
329 | - psf->blockwidth = psf->bytewidth * psf->sf.channels ; | ||
330 | + psf->blockwidth = (sf_count_t) psf->bytewidth * psf->sf.channels ; | ||
331 | |||
332 | switch (subformat) | ||
333 | { case SF_FORMAT_PCM_U8 : | ||
334 | From c177e292d47ef73b1d3c1bb391320299a0ed2ff9 Mon Sep 17 00:00:00 2001 | ||
335 | From: Alex Stewart <alex.stewart@ni.com> | ||
336 | Date: Mon, 16 Oct 2023 12:37:47 -0400 | ||
337 | Subject: [PATCH] common: fix int overflow in psf_binheader_readf() | ||
338 | |||
339 | The psf_binheader_readf() function attempts to count and return the | ||
340 | number of bytes traversed in the header. During this accumulation, it is | ||
341 | possible to overflow the int-sized byte_count variable. | ||
342 | |||
343 | Avoid this overflow by checking that the accumulated bytes do not exceed | ||
344 | INT_MAX and throwing an error if they do. This implies that files with | ||
345 | multi-gigabyte headers threaten to produce this error, but I imagine | ||
346 | those files don't really exist - and this error is better than the | ||
347 | undefined behavior which would have resulted previously. | ||
348 | |||
349 | CVE: CVE-2022-33065 | ||
350 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
351 | |||
352 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
353 | --- | ||
354 | src/common.c | 36 ++++++++++++++++++++++++------------ | ||
355 | 1 file changed, 24 insertions(+), 12 deletions(-) | ||
356 | |||
357 | diff --git a/src/common.c b/src/common.c | ||
358 | index 1c3d951d..7f6cceca 100644 | ||
359 | --- a/src/common.c | ||
360 | +++ b/src/common.c | ||
361 | @@ -18,6 +18,7 @@ | ||
362 | |||
363 | #include <config.h> | ||
364 | |||
365 | +#include <limits.h> | ||
366 | #include <stdarg.h> | ||
367 | #include <string.h> | ||
368 | #if HAVE_UNISTD_H | ||
369 | @@ -990,6 +991,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
370 | double *doubleptr ; | ||
371 | char c ; | ||
372 | int byte_count = 0, count = 0 ; | ||
373 | + int read_bytes = 0 ; | ||
374 | |||
375 | if (! format) | ||
376 | return psf_ftell (psf) ; | ||
377 | @@ -998,6 +1000,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
378 | |||
379 | while ((c = *format++)) | ||
380 | { | ||
381 | + read_bytes = 0 ; | ||
382 | if (psf->header.indx + 16 >= psf->header.len && psf_bump_header_allocation (psf, 16)) | ||
383 | break ; | ||
384 | |||
385 | @@ -1014,7 +1017,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
386 | intptr = va_arg (argptr, unsigned int*) ; | ||
387 | *intptr = 0 ; | ||
388 | ucptr = (unsigned char*) intptr ; | ||
389 | - byte_count += header_read (psf, ucptr, sizeof (int)) ; | ||
390 | + read_bytes = header_read (psf, ucptr, sizeof (int)) ; | ||
391 | *intptr = GET_MARKER (ucptr) ; | ||
392 | break ; | ||
393 | |||
394 | @@ -1022,7 +1025,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
395 | intptr = va_arg (argptr, unsigned int*) ; | ||
396 | *intptr = 0 ; | ||
397 | ucptr = (unsigned char*) intptr ; | ||
398 | - byte_count += header_read (psf, sixteen_bytes, sizeof (sixteen_bytes)) ; | ||
399 | + read_bytes = header_read (psf, sixteen_bytes, sizeof (sixteen_bytes)) ; | ||
400 | { int k ; | ||
401 | intdata = 0 ; | ||
402 | for (k = 0 ; k < 16 ; k++) | ||
403 | @@ -1034,14 +1037,14 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
404 | case '1' : | ||
405 | charptr = va_arg (argptr, char*) ; | ||
406 | *charptr = 0 ; | ||
407 | - byte_count += header_read (psf, charptr, sizeof (char)) ; | ||
408 | + read_bytes = header_read (psf, charptr, sizeof (char)) ; | ||
409 | break ; | ||
410 | |||
411 | case '2' : /* 2 byte value with the current endian-ness */ | ||
412 | shortptr = va_arg (argptr, unsigned short*) ; | ||
413 | *shortptr = 0 ; | ||
414 | ucptr = (unsigned char*) shortptr ; | ||
415 | - byte_count += header_read (psf, ucptr, sizeof (short)) ; | ||
416 | + read_bytes = header_read (psf, ucptr, sizeof (short)) ; | ||
417 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
418 | *shortptr = GET_BE_SHORT (ucptr) ; | ||
419 | else | ||
420 | @@ -1051,7 +1054,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
421 | case '3' : /* 3 byte value with the current endian-ness */ | ||
422 | intptr = va_arg (argptr, unsigned int*) ; | ||
423 | *intptr = 0 ; | ||
424 | - byte_count += header_read (psf, sixteen_bytes, 3) ; | ||
425 | + read_bytes = header_read (psf, sixteen_bytes, 3) ; | ||
426 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
427 | *intptr = GET_BE_3BYTE (sixteen_bytes) ; | ||
428 | else | ||
429 | @@ -1062,7 +1065,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
430 | intptr = va_arg (argptr, unsigned int*) ; | ||
431 | *intptr = 0 ; | ||
432 | ucptr = (unsigned char*) intptr ; | ||
433 | - byte_count += header_read (psf, ucptr, sizeof (int)) ; | ||
434 | + read_bytes = header_read (psf, ucptr, sizeof (int)) ; | ||
435 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
436 | *intptr = psf_get_be32 (ucptr, 0) ; | ||
437 | else | ||
438 | @@ -1072,7 +1075,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
439 | case '8' : /* 8 byte value with the current endian-ness */ | ||
440 | countptr = va_arg (argptr, sf_count_t *) ; | ||
441 | *countptr = 0 ; | ||
442 | - byte_count += header_read (psf, sixteen_bytes, 8) ; | ||
443 | + read_bytes = header_read (psf, sixteen_bytes, 8) ; | ||
444 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
445 | countdata = psf_get_be64 (sixteen_bytes, 0) ; | ||
446 | else | ||
447 | @@ -1083,7 +1086,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
448 | case 'f' : /* Float conversion */ | ||
449 | floatptr = va_arg (argptr, float *) ; | ||
450 | *floatptr = 0.0 ; | ||
451 | - byte_count += header_read (psf, floatptr, sizeof (float)) ; | ||
452 | + read_bytes = header_read (psf, floatptr, sizeof (float)) ; | ||
453 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
454 | *floatptr = float32_be_read ((unsigned char*) floatptr) ; | ||
455 | else | ||
456 | @@ -1093,7 +1096,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
457 | case 'd' : /* double conversion */ | ||
458 | doubleptr = va_arg (argptr, double *) ; | ||
459 | *doubleptr = 0.0 ; | ||
460 | - byte_count += header_read (psf, doubleptr, sizeof (double)) ; | ||
461 | + read_bytes = header_read (psf, doubleptr, sizeof (double)) ; | ||
462 | if (psf->rwf_endian == SF_ENDIAN_BIG) | ||
463 | *doubleptr = double64_be_read ((unsigned char*) doubleptr) ; | ||
464 | else | ||
465 | @@ -1117,7 +1120,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
466 | charptr = va_arg (argptr, char*) ; | ||
467 | count = va_arg (argptr, size_t) ; | ||
468 | memset (charptr, 0, count) ; | ||
469 | - byte_count += header_read (psf, charptr, count) ; | ||
470 | + read_bytes = header_read (psf, charptr, count) ; | ||
471 | break ; | ||
472 | |||
473 | case 'G' : | ||
474 | @@ -1128,7 +1131,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
475 | if (psf->header.indx + count >= psf->header.len && psf_bump_header_allocation (psf, count)) | ||
476 | break ; | ||
477 | |||
478 | - byte_count += header_gets (psf, charptr, count) ; | ||
479 | + read_bytes = header_gets (psf, charptr, count) ; | ||
480 | break ; | ||
481 | |||
482 | case 'z' : | ||
483 | @@ -1152,7 +1155,7 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
484 | case 'j' : /* Seek to position from current position. */ | ||
485 | count = va_arg (argptr, size_t) ; | ||
486 | header_seek (psf, count, SEEK_CUR) ; | ||
487 | - byte_count += count ; | ||
488 | + read_bytes = count ; | ||
489 | break ; | ||
490 | |||
491 | case '!' : /* Clear buffer, forcing re-read. */ | ||
492 | @@ -1164,8 +1167,17 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) | ||
493 | psf->error = SFE_INTERNAL ; | ||
494 | break ; | ||
495 | } ; | ||
496 | + | ||
497 | + if (read_bytes > 0 && byte_count > (INT_MAX - read_bytes)) | ||
498 | + { psf_log_printf (psf, "Header size exceeds INT_MAX. Aborting.", c) ; | ||
499 | + psf->error = SFE_INTERNAL ; | ||
500 | + break ; | ||
501 | + } else | ||
502 | + { byte_count += read_bytes ; | ||
503 | } ; | ||
504 | |||
505 | + } ; /*end while*/ | ||
506 | + | ||
507 | va_end (argptr) ; | ||
508 | |||
509 | return byte_count ; | ||
510 | From a23d563386e7c8d93dcdbe7d5b1d63cad6009116 Mon Sep 17 00:00:00 2001 | ||
511 | From: Alex Stewart <alex.stewart@ni.com> | ||
512 | Date: Thu, 19 Oct 2023 14:07:19 -0400 | ||
513 | Subject: [PATCH] nms_adpcm: fix int overflow in signal estimate | ||
514 | |||
515 | It is possible (though functionally incorrect) for the signal estimate | ||
516 | calculation in nms_adpcm_update() to overflow the int value of s_e, | ||
517 | resulting in undefined behavior. | ||
518 | |||
519 | Since adpcm state signal values are never practically larger than | ||
520 | 16 bits, use smaller numeric sizes throughout the file to avoid the | ||
521 | overflow. | ||
522 | |||
523 | CVE: CVE-2022-33065 | ||
524 | Fixes: https://github.com/libsndfile/libsndfile/issues/833 | ||
525 | |||
526 | Authored-by: Arthur Taylor <art@ified.ca> | ||
527 | Signed-off-by: Alex Stewart <alex.stewart@ni.com> | ||
528 | Rebased-by: Alex Stewart <alex.stewart@ni.com> | ||
529 | --- | ||
530 | src/nms_adpcm.c | 85 ++++++++++++++++++++++++------------------------- | ||
531 | 1 file changed, 42 insertions(+), 43 deletions(-) | ||
532 | |||
533 | diff --git a/src/nms_adpcm.c b/src/nms_adpcm.c | ||
534 | index 96d6ad26..460ea077 100644 | ||
535 | --- a/src/nms_adpcm.c | ||
536 | +++ b/src/nms_adpcm.c | ||
537 | @@ -48,36 +48,36 @@ | ||
538 | /* Variable names from ITU G.726 spec */ | ||
539 | struct nms_adpcm_state | ||
540 | { /* Log of the step size multiplier. Operated on by codewords. */ | ||
541 | - int yl ; | ||
542 | + short yl ; | ||
543 | |||
544 | /* Quantizer step size multiplier. Generated from yl. */ | ||
545 | - int y ; | ||
546 | + short y ; | ||
547 | |||
548 | - /* Coefficents of the pole predictor */ | ||
549 | - int a [2] ; | ||
550 | + /* Coefficients of the pole predictor */ | ||
551 | + short a [2] ; | ||
552 | |||
553 | - /* Coefficents of the zero predictor */ | ||
554 | - int b [6] ; | ||
555 | + /* Coefficients of the zero predictor */ | ||
556 | + short b [6] ; | ||
557 | |||
558 | /* Previous quantized deltas (multiplied by 2^14) */ | ||
559 | - int d_q [7] ; | ||
560 | + short d_q [7] ; | ||
561 | |||
562 | /* d_q [x] + s_ez [x], used by the pole-predictor for signs only. */ | ||
563 | - int p [3] ; | ||
564 | + short p [3] ; | ||
565 | |||
566 | /* Previous reconstructed signal values. */ | ||
567 | - int s_r [2] ; | ||
568 | + short s_r [2] ; | ||
569 | |||
570 | /* Zero predictor components of the signal estimate. */ | ||
571 | - int s_ez ; | ||
572 | + short s_ez ; | ||
573 | |||
574 | /* Signal estimate, (including s_ez). */ | ||
575 | - int s_e ; | ||
576 | + short s_e ; | ||
577 | |||
578 | /* The most recent codeword (enc:generated, dec:inputted) */ | ||
579 | - int Ik ; | ||
580 | + char Ik ; | ||
581 | |||
582 | - int parity ; | ||
583 | + char parity ; | ||
584 | |||
585 | /* | ||
586 | ** Offset into code tables for the bitrate. | ||
587 | @@ -109,7 +109,7 @@ typedef struct | ||
588 | } NMS_ADPCM_PRIVATE ; | ||
589 | |||
590 | /* Pre-computed exponential interval used in the antilog approximation. */ | ||
591 | -static unsigned int table_expn [] = | ||
592 | +static unsigned short table_expn [] = | ||
593 | { 0x4000, 0x4167, 0x42d5, 0x444c, 0x45cb, 0x4752, 0x48e2, 0x4a7a, | ||
594 | 0x4c1b, 0x4dc7, 0x4f7a, 0x5138, 0x52ff, 0x54d1, 0x56ac, 0x5892, | ||
595 | 0x5a82, 0x5c7e, 0x5e84, 0x6096, 0x62b4, 0x64dd, 0x6712, 0x6954, | ||
596 | @@ -117,21 +117,21 @@ static unsigned int table_expn [] = | ||
597 | } ; | ||
598 | |||
599 | /* Table mapping codewords to scale factor deltas. */ | ||
600 | -static int table_scale_factor_step [] = | ||
601 | +static short table_scale_factor_step [] = | ||
602 | { 0x0, 0x0, 0x0, 0x0, 0x4b0, 0x0, 0x0, 0x0, /* 2-bit */ | ||
603 | -0x3c, 0x0, 0x90, 0x0, 0x2ee, 0x0, 0x898, 0x0, /* 3-bit */ | ||
604 | -0x30, 0x12, 0x6b, 0xc8, 0x188, 0x2e0, 0x551, 0x1150, /* 4-bit */ | ||
605 | } ; | ||
606 | |||
607 | /* Table mapping codewords to quantized delta interval steps. */ | ||
608 | -static unsigned int table_step [] = | ||
609 | +static unsigned short table_step [] = | ||
610 | { 0x73F, 0, 0, 0, 0x1829, 0, 0, 0, /* 2-bit */ | ||
611 | 0x3EB, 0, 0xC18, 0, 0x1581, 0, 0x226E, 0, /* 3-bit */ | ||
612 | 0x20C, 0x635, 0xA83, 0xF12, 0x1418, 0x19E3, 0x211A, 0x2BBA, /* 4-bit */ | ||
613 | } ; | ||
614 | |||
615 | /* Binary search lookup table for quantizing using table_step. */ | ||
616 | -static int table_step_search [] = | ||
617 | +static short table_step_search [] = | ||
618 | { 0, 0x1F6D, 0, -0x1F6D, 0, 0, 0, 0, /* 2-bit */ | ||
619 | 0x1008, 0x1192, 0, -0x219A, 0x1656, -0x1656, 0, 0, /* 3-bit */ | ||
620 | 0x872, 0x1277, -0x8E6, -0x232B, 0xD06, -0x17D7, -0x11D3, 0, /* 4-bit */ | ||
621 | @@ -179,23 +179,23 @@ static sf_count_t nms_adpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) | ||
622 | ** Maps [1,20480] to [1,1024] in an exponential relationship. This is | ||
623 | ** approximately ret = b^exp where b = e^(ln(1024)/ln(20480)) ~= 1.0003385 | ||
624 | */ | ||
625 | -static inline int | ||
626 | -nms_adpcm_antilog (int exp) | ||
627 | -{ int ret ; | ||
628 | +static inline short | ||
629 | +nms_adpcm_antilog (short exp) | ||
630 | +{ int_fast32_t r ; | ||
631 | |||
632 | - ret = 0x1000 ; | ||
633 | - ret += (((exp & 0x3f) * 0x166b) >> 12) ; | ||
634 | - ret *= table_expn [(exp & 0x7c0) >> 6] ; | ||
635 | - ret >>= (26 - (exp >> 11)) ; | ||
636 | + r = 0x1000 ; | ||
637 | + r += (((int_fast32_t) (exp & 0x3f) * 0x166b) >> 12) ; | ||
638 | + r *= table_expn [(exp & 0x7c0) >> 6] ; | ||
639 | + r >>= (26 - (exp >> 11)) ; | ||
640 | |||
641 | - return ret ; | ||
642 | + return (short) r ; | ||
643 | } /* nms_adpcm_antilog */ | ||
644 | |||
645 | static void | ||
646 | nms_adpcm_update (struct nms_adpcm_state *s) | ||
647 | { /* Variable names from ITU G.726 spec */ | ||
648 | - int a1ul ; | ||
649 | - int fa1 ; | ||
650 | + short a1ul, fa1 ; | ||
651 | + int_fast32_t se ; | ||
652 | int i ; | ||
653 | |||
654 | /* Decay and Modify the scale factor in the log domain based on the codeword. */ | ||
655 | @@ -222,7 +222,7 @@ nms_adpcm_update (struct nms_adpcm_state *s) | ||
656 | else if (fa1 > 256) | ||
657 | fa1 = 256 ; | ||
658 | |||
659 | - s->a [0] = (0xff * s->a [0]) >> 8 ; | ||
660 | + s->a [0] = (s->a [0] * 0xff) >> 8 ; | ||
661 | if (s->p [0] != 0 && s->p [1] != 0 && ((s->p [0] ^ s->p [1]) < 0)) | ||
662 | s->a [0] -= 192 ; | ||
663 | else | ||
664 | @@ -230,7 +230,7 @@ nms_adpcm_update (struct nms_adpcm_state *s) | ||
665 | fa1 = -fa1 ; | ||
666 | } | ||
667 | |||
668 | - s->a [1] = fa1 + ((0xfe * s->a [1]) >> 8) ; | ||
669 | + s->a [1] = fa1 + ((s->a [1] * 0xfe) >> 8) ; | ||
670 | if (s->p [0] != 0 && s->p [2] != 0 && ((s->p [0] ^ s->p [2]) < 0)) | ||
671 | s->a [1] -= 128 ; | ||
672 | else | ||
673 | @@ -250,19 +250,18 @@ nms_adpcm_update (struct nms_adpcm_state *s) | ||
674 | s->a [0] = a1ul ; | ||
675 | } ; | ||
676 | |||
677 | - /* Compute the zero predictor estimate. Rotate past deltas too. */ | ||
678 | - s->s_ez = 0 ; | ||
679 | + /* Compute the zero predictor estimate and rotate past deltas. */ | ||
680 | + se = 0 ; | ||
681 | for (i = 5 ; i >= 0 ; i--) | ||
682 | - { s->s_ez += s->d_q [i] * s->b [i] ; | ||
683 | + { se += (int_fast32_t) s->d_q [i] * s->b [i] ; | ||
684 | s->d_q [i + 1] = s->d_q [i] ; | ||
685 | } ; | ||
686 | + s->s_ez = se >> 14 ; | ||
687 | |||
688 | - /* Compute the signal estimate. */ | ||
689 | - s->s_e = s->a [0] * s->s_r [0] + s->a [1] * s->s_r [1] + s->s_ez ; | ||
690 | - | ||
691 | - /* Return to scale */ | ||
692 | - s->s_ez >>= 14 ; | ||
693 | - s->s_e >>= 14 ; | ||
694 | + /* Complete the signal estimate. */ | ||
695 | + se += (int_fast32_t) s->a [0] * s->s_r [0] ; | ||
696 | + se += (int_fast32_t) s->a [1] * s->s_r [1] ; | ||
697 | + s->s_e = se >> 14 ; | ||
698 | |||
699 | /* Rotate members to prepare for next iteration. */ | ||
700 | s->s_r [1] = s->s_r [0] ; | ||
701 | @@ -274,7 +273,7 @@ nms_adpcm_update (struct nms_adpcm_state *s) | ||
702 | static int16_t | ||
703 | nms_adpcm_reconstruct_sample (struct nms_adpcm_state *s, uint8_t I) | ||
704 | { /* Variable names from ITU G.726 spec */ | ||
705 | - int dqx ; | ||
706 | + int_fast32_t dqx ; | ||
707 | |||
708 | /* | ||
709 | ** The ordering of the 12-bit right-shift is a precision loss. It agrees | ||
710 | @@ -308,17 +307,17 @@ nms_adpcm_codec_init (struct nms_adpcm_state *s, enum nms_enc_type type) | ||
711 | /* | ||
712 | ** nms_adpcm_encode_sample() | ||
713 | ** | ||
714 | -** Encode a linear 16-bit pcm sample into a 2,3, or 4 bit NMS-ADPCM codeword | ||
715 | +** Encode a linear 16-bit pcm sample into a 2, 3, or 4 bit NMS-ADPCM codeword | ||
716 | ** using and updating the predictor state. | ||
717 | */ | ||
718 | static uint8_t | ||
719 | nms_adpcm_encode_sample (struct nms_adpcm_state *s, int16_t sl) | ||
720 | { /* Variable names from ITU G.726 spec */ | ||
721 | - int d ; | ||
722 | + int_fast32_t d ; | ||
723 | uint8_t I ; | ||
724 | |||
725 | /* Down scale the sample from 16 => ~14 bits. */ | ||
726 | - sl = (sl * 0x1fdf) / 0x7fff ; | ||
727 | + sl = ((int_fast32_t) sl * 0x1fdf) / 0x7fff ; | ||
728 | |||
729 | /* Compute estimate, and delta from actual value */ | ||
730 | nms_adpcm_update (s) ; | ||
731 | @@ -407,7 +406,7 @@ nms_adpcm_encode_sample (struct nms_adpcm_state *s, int16_t sl) | ||
732 | */ | ||
733 | static int16_t | ||
734 | nms_adpcm_decode_sample (struct nms_adpcm_state *s, uint8_t I) | ||
735 | -{ int sl ; | ||
736 | +{ int_fast32_t sl ; | ||
737 | |||
738 | nms_adpcm_update (s) ; | ||
739 | sl = nms_adpcm_reconstruct_sample (s, I) ; | ||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch b/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch new file mode 100644 index 0000000000..cb1778bede --- /dev/null +++ b/meta/recipes-multimedia/libsndfile/libsndfile1/noopus.patch | |||
@@ -0,0 +1,68 @@ | |||
1 | From 593256a3e386a4e17fe26cfbfb813cf4996447d7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex@linutronix.de> | ||
3 | Date: Mon, 4 Apr 2022 19:46:44 +0200 | ||
4 | Subject: [PATCH] Disable opus library | ||
5 | |||
6 | We don't have opus in OE-Core which causes all the external libs to be disabled | ||
7 | silently. The silent issue is discussed in the link below and hints a patch | ||
8 | to make things configurable may be accepted. | ||
9 | |||
10 | This patch removing the opus piece at least gets most of the functionality | ||
11 | we previously used back whilst the issue is discussed. | ||
12 | |||
13 | Upstream-Status: Denied [https://github.com/libsndfile/libsndfile/pull/812] | ||
14 | |||
15 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
16 | Signed-off-by: Alexander Kanavin <alex@linutronix.de> | ||
17 | --- | ||
18 | configure.ac | 10 +++++----- | ||
19 | src/ogg_opus.c | 2 +- | ||
20 | 2 files changed, 6 insertions(+), 6 deletions(-) | ||
21 | |||
22 | diff --git a/configure.ac b/configure.ac | ||
23 | index 727b67bc..f9d2e447 100644 | ||
24 | --- a/configure.ac | ||
25 | +++ b/configure.ac | ||
26 | @@ -373,13 +373,13 @@ AS_IF([test -n "$PKG_CONFIG"], [ | ||
27 | enable_external_libs=yes | ||
28 | ]) | ||
29 | |||
30 | - AS_IF([test "x$ac_cv_flac$ac_cv_ogg$ac_cv_vorbis$ac_cv_vorbisenc$ac_cv_opus" = "xyesyesyesyesyes"], [ | ||
31 | + AS_IF([test "x$ac_cv_flac$ac_cv_ogg$ac_cv_vorbis$ac_cv_vorbisenc" = "xyesyesyesyes"], [ | ||
32 | HAVE_EXTERNAL_XIPH_LIBS=1 | ||
33 | enable_external_libs=yes | ||
34 | |||
35 | - EXTERNAL_XIPH_CFLAGS="$FLAC_CFLAGS $VORBIS_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS $OPUS_CFLAGS $OGG_CFLAGS " | ||
36 | - EXTERNAL_XIPH_LIBS="$FLAC_LIBS $VORBIS_LIBS $VORBISENC_LIBS $SPEEX_LIBS $OPUS_LIBS $OGG_LIBS " | ||
37 | - EXTERNAL_XIPH_REQUIRE="flac ogg vorbis vorbisenc opus" | ||
38 | + EXTERNAL_XIPH_CFLAGS="$FLAC_CFLAGS $VORBIS_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS $OGG_CFLAGS " | ||
39 | + EXTERNAL_XIPH_LIBS="$FLAC_LIBS $VORBIS_LIBS $VORBISENC_LIBS $SPEEX_LIBS $OGG_LIBS " | ||
40 | + EXTERNAL_XIPH_REQUIRE="flac ogg vorbis vorbisenc" | ||
41 | |||
42 | if test x$ac_cv_speex = "xyes" ; then | ||
43 | EXTERNAL_XIPH_REQUIRE="$EXTERNAL_XIPH_REQUIRE speex" | ||
44 | @@ -788,7 +788,7 @@ AC_MSG_RESULT([ | ||
45 | |||
46 | Experimental code : ................... ${enable_experimental:-no} | ||
47 | Using ALSA in example programs : ...... ${enable_alsa:-no} | ||
48 | - External FLAC/Ogg/Vorbis/Opus : ....... ${enable_external_libs:-no} | ||
49 | + External FLAC/Ogg/Vorbis : ....... ${enable_external_libs:-no} | ||
50 | External MPEG Lame/MPG123 : ........... ${enable_mpeg:-no} | ||
51 | Building Octave interface : ........... ${OCTAVE_BUILD} | ||
52 | |||
53 | diff --git a/src/ogg_opus.c b/src/ogg_opus.c | ||
54 | index dfa446ee..0d4fe57b 100644 | ||
55 | --- a/src/ogg_opus.c | ||
56 | +++ b/src/ogg_opus.c | ||
57 | @@ -159,7 +159,7 @@ | ||
58 | #include "sfendian.h" | ||
59 | #include "common.h" | ||
60 | |||
61 | -#if HAVE_EXTERNAL_XIPH_LIBS | ||
62 | +#if 0 | ||
63 | |||
64 | #include <ogg/ogg.h> | ||
65 | #include <opus/opus.h> | ||
66 | -- | ||
67 | 2.30.2 | ||
68 | |||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb deleted file mode 100644 index 044881a859..0000000000 --- a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.28.bb +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | SUMMARY = "Audio format Conversion library" | ||
2 | DESCRIPTION = "Library for reading and writing files containing sampled \ | ||
3 | sound (such as MS Windows WAV and the Apple/SGI AIFF format) through \ | ||
4 | one standard library interface." | ||
5 | HOMEPAGE = "http://www.mega-nerd.com/libsndfile" | ||
6 | AUTHOR = "Erik de Castro Lopo" | ||
7 | DEPENDS = "flac libogg libvorbis" | ||
8 | SECTION = "libs/multimedia" | ||
9 | LICENSE = "LGPLv2.1" | ||
10 | |||
11 | SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz \ | ||
12 | file://CVE-2017-6892.patch \ | ||
13 | file://CVE-2017-8361-8365.patch \ | ||
14 | file://CVE-2017-8362.patch \ | ||
15 | file://CVE-2017-8363.patch \ | ||
16 | file://CVE-2017-14634.patch \ | ||
17 | file://CVE-2018-13139.patch \ | ||
18 | file://0001-a-ulaw-fix-multiple-buffer-overflows-432.patch \ | ||
19 | file://CVE-2018-19432.patch \ | ||
20 | file://CVE-2017-12562.patch \ | ||
21 | file://CVE-2018-19758.patch \ | ||
22 | file://CVE-2019-3832.patch \ | ||
23 | " | ||
24 | |||
25 | SRC_URI[md5sum] = "646b5f98ce89ac60cdb060fcd398247c" | ||
26 | SRC_URI[sha256sum] = "1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9" | ||
27 | |||
28 | LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a" | ||
29 | |||
30 | CVE_PRODUCT = "libsndfile" | ||
31 | |||
32 | S = "${WORKDIR}/libsndfile-${PV}" | ||
33 | |||
34 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" | ||
35 | PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" | ||
36 | PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3" | ||
37 | |||
38 | inherit autotools lib_package pkgconfig multilib_header | ||
39 | |||
40 | do_install_append() { | ||
41 | oe_multilib_header sndfile.h | ||
42 | } | ||
43 | |||
44 | # This can't be replicated and is just a memory leak. | ||
45 | # https://github.com/erikd/libsndfile/issues/398 | ||
46 | CVE_CHECK_WHITELIST += "CVE-2018-13419" | ||
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb new file mode 100644 index 0000000000..a9ee7c3575 --- /dev/null +++ b/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.2.bb | |||
@@ -0,0 +1,32 @@ | |||
1 | SUMMARY = "Audio format Conversion library" | ||
2 | DESCRIPTION = "Library for reading and writing files containing sampled \ | ||
3 | sound (such as MS Windows WAV and the Apple/SGI AIFF format) through \ | ||
4 | one standard library interface." | ||
5 | HOMEPAGE = "https://libsndfile.github.io/libsndfile/" | ||
6 | DEPENDS = "flac libogg libvorbis" | ||
7 | SECTION = "libs/multimedia" | ||
8 | LICENSE = "LGPL-2.1-only" | ||
9 | |||
10 | SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsndfile-${PV}.tar.xz \ | ||
11 | file://noopus.patch \ | ||
12 | file://cve-2022-33065.patch \ | ||
13 | " | ||
14 | GITHUB_BASE_URI = "https://github.com/libsndfile/libsndfile/releases/" | ||
15 | |||
16 | SRC_URI[sha256sum] = "3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e" | ||
17 | |||
18 | LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a" | ||
19 | |||
20 | CVE_PRODUCT = "libsndfile" | ||
21 | |||
22 | S = "${WORKDIR}/libsndfile-${PV}" | ||
23 | |||
24 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" | ||
25 | PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" | ||
26 | PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3" | ||
27 | |||
28 | inherit autotools lib_package pkgconfig multilib_header github-releases | ||
29 | |||
30 | do_install:append() { | ||
31 | oe_multilib_header sndfile.h | ||
32 | } | ||
diff --git a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb index 178e1a9240..11674af379 100644 --- a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb +++ b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb | |||
@@ -7,7 +7,6 @@ LICENSE = "BSD-3-Clause" | |||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132" | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132" |
8 | DEPENDS = "libogg" | 8 | DEPENDS = "libogg" |
9 | 9 | ||
10 | PR = "r1" | ||
11 | 10 | ||
12 | SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \ | 11 | SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \ |
13 | file://no-docs.patch" | 12 | file://no-docs.patch" |
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch new file mode 100644 index 0000000000..f5520fcafd --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0001.patch | |||
@@ -0,0 +1,238 @@ | |||
1 | From 335947359ce2dd3862cd9f7c49f92eba065dfed4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Su_Laus <sulau@freenet.de> | ||
3 | Date: Thu, 1 Feb 2024 13:06:08 +0000 | ||
4 | Subject: [PATCH] manpage: Update TIFF documentation about TIFFOpenOptions.rst | ||
5 | and TIFFOpenOptionsSetMaxSingleMemAlloc() usage and some other small fixes. | ||
6 | |||
7 | CVE: CVE-2023-52355 | ||
8 | Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/335947359ce2dd3862cd9f7c49f92eba065dfed4] | ||
9 | |||
10 | Signed-off-by: Yogita Urade <yogita.urade@windriver.com> | ||
11 | --- | ||
12 | doc/functions/TIFFDeferStrileArrayWriting.rst | 5 +++ | ||
13 | doc/functions/TIFFError.rst | 3 ++ | ||
14 | doc/functions/TIFFOpen.rst | 13 +++--- | ||
15 | doc/functions/TIFFOpenOptions.rst | 44 ++++++++++++++++++- | ||
16 | doc/functions/TIFFStrileQuery.rst | 5 +++ | ||
17 | doc/libtiff.rst | 31 ++++++++++++- | ||
18 | 6 files changed, 91 insertions(+), 10 deletions(-) | ||
19 | |||
20 | diff --git a/doc/functions/TIFFDeferStrileArrayWriting.rst b/doc/functions/TIFFDeferStrileArrayWriting.rst | ||
21 | index 60ee746..705aebc 100644 | ||
22 | --- a/doc/functions/TIFFDeferStrileArrayWriting.rst | ||
23 | +++ b/doc/functions/TIFFDeferStrileArrayWriting.rst | ||
24 | @@ -61,6 +61,11 @@ Diagnostics | ||
25 | All error messages are directed to the :c:func:`TIFFErrorExtR` routine. | ||
26 | Likewise, warning messages are directed to the :c:func:`TIFFWarningExtR` routine. | ||
27 | |||
28 | +Note | ||
29 | +---- | ||
30 | + | ||
31 | +This functionality was introduced with libtiff 4.1. | ||
32 | + | ||
33 | See also | ||
34 | -------- | ||
35 | |||
36 | diff --git a/doc/functions/TIFFError.rst b/doc/functions/TIFFError.rst | ||
37 | index 99924ad..cf4b37c 100644 | ||
38 | --- a/doc/functions/TIFFError.rst | ||
39 | +++ b/doc/functions/TIFFError.rst | ||
40 | @@ -65,6 +65,9 @@ or :c:func:`TIFFClientOpenExt`. | ||
41 | Furthermore, a **custom defined data structure** *user_data* for the | ||
42 | error handler can be given along. | ||
43 | |||
44 | +Please refer to :doc:`/functions/TIFFOpenOptions` for how to setup the | ||
45 | +application-specific handler introduced with libtiff 4.5. | ||
46 | + | ||
47 | Note | ||
48 | ---- | ||
49 | |||
50 | diff --git a/doc/functions/TIFFOpen.rst b/doc/functions/TIFFOpen.rst | ||
51 | index db79d7b..adc474f 100644 | ||
52 | --- a/doc/functions/TIFFOpen.rst | ||
53 | +++ b/doc/functions/TIFFOpen.rst | ||
54 | @@ -94,8 +94,9 @@ TIFF structure without closing the file handle and afterwards the | ||
55 | file should be closed using its file descriptor *fd*. | ||
56 | |||
57 | :c:func:`TIFFOpenExt` (added in libtiff 4.5) is like :c:func:`TIFFOpen`, | ||
58 | -but options, such as re-entrant error and warning handlers may be passed | ||
59 | -with the *opts* argument. The *opts* argument may be NULL. | ||
60 | +but options, such as re-entrant error and warning handlers and a limit in byte | ||
61 | +that libtiff internal memory allocation functions are allowed to request per call | ||
62 | +may be passed with the *opts* argument. The *opts* argument may be NULL. | ||
63 | Refer to :doc:`TIFFOpenOptions` for allocating and filling the *opts* argument | ||
64 | parameters. The allocated memory for :c:type:`TIFFOpenOptions` | ||
65 | can be released straight after successful execution of the related | ||
66 | @@ -105,9 +106,7 @@ can be released straight after successful execution of the related | ||
67 | but opens a TIFF file with a Unicode filename. | ||
68 | |||
69 | :c:func:`TIFFFdOpenExt` (added in libtiff 4.5) is like :c:func:`TIFFFdOpen`, | ||
70 | -but options, such as re-entrant error and warning handlers may be passed | ||
71 | -with the *opts* argument. The *opts* argument may be NULL. | ||
72 | -Refer to :doc:`TIFFOpenOptions` for filling the *opts* argument. | ||
73 | +but options argument *opts* like for :c:func:`TIFFOpenExt` can be passed. | ||
74 | |||
75 | :c:func:`TIFFSetFileName` sets the file name in the tif-structure | ||
76 | and returns the old file name. | ||
77 | @@ -326,5 +325,5 @@ See also | ||
78 | |||
79 | :doc:`libtiff` (3tiff), | ||
80 | :doc:`TIFFClose` (3tiff), | ||
81 | -:doc:`TIFFStrileQuery`, | ||
82 | -:doc:`TIFFOpenOptions` | ||
83 | \ No newline at end of file | ||
84 | +:doc:`TIFFStrileQuery` (3tiff), | ||
85 | +:doc:`TIFFOpenOptions` | ||
86 | diff --git a/doc/functions/TIFFOpenOptions.rst b/doc/functions/TIFFOpenOptions.rst | ||
87 | index 5c67566..23f2975 100644 | ||
88 | --- a/doc/functions/TIFFOpenOptions.rst | ||
89 | +++ b/doc/functions/TIFFOpenOptions.rst | ||
90 | @@ -38,12 +38,17 @@ opaque structure and returns a :c:type:`TIFFOpenOptions` pointer. | ||
91 | :c:func:`TIFFOpenOptionsFree` releases the allocated memory for | ||
92 | :c:type:`TIFFOpenOptions`. The allocated memory for :c:type:`TIFFOpenOptions` | ||
93 | can be released straight after successful execution of the related | ||
94 | -TIFF open"Ext" functions like :c:func:`TIFFOpenExt`. | ||
95 | +TIFFOpen"Ext" functions like :c:func:`TIFFOpenExt`. | ||
96 | |||
97 | :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc` sets parameter for the | ||
98 | maximum single memory limit in byte that ``libtiff`` internal memory allocation | ||
99 | functions are allowed to request per call. | ||
100 | |||
101 | +.. note:: | ||
102 | + However, the ``libtiff`` external functions :c:func:`_TIFFmalloc` | ||
103 | + and :c:func:`_TIFFrealloc` **do not apply** this internal memory | ||
104 | + allocation limit set by :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc`! | ||
105 | + | ||
106 | :c:func:`TIFFOpenOptionsSetErrorHandlerExtR` sets the function pointer to | ||
107 | an application-specific and per-TIFF handle (re-entrant) error handler. | ||
108 | Furthermore, a pointer to a **custom defined data structure** *errorhandler_user_data* | ||
109 | @@ -55,6 +60,43 @@ The *errorhandler_user_data* argument may be NULL. | ||
110 | :c:func:`TIFFOpenOptionsSetErrorHandlerExtR` but for the warning handler, | ||
111 | which is invoked through :c:func:`TIFFWarningExtR` | ||
112 | |||
113 | +Example | ||
114 | +------- | ||
115 | + | ||
116 | +:: | ||
117 | + | ||
118 | + #include "tiffio.h" | ||
119 | + | ||
120 | + typedef struct MyErrorHandlerUserDataStruct | ||
121 | + { | ||
122 | + /* ... any user data structure ... */ | ||
123 | + } MyErrorHandlerUserDataStruct; | ||
124 | + | ||
125 | + static int myErrorHandler(TIFF *tiff, void *user_data, const char *module, | ||
126 | + const char *fmt, va_list ap) | ||
127 | + { | ||
128 | + MyErrorHandlerUserDataStruct *errorhandler_user_data = | ||
129 | + (MyErrorHandlerUserDataStruct *)user_data; | ||
130 | + /*... code of myErrorHandler ...*/ | ||
131 | + return 1; | ||
132 | + } | ||
133 | + | ||
134 | + | ||
135 | + main() | ||
136 | + { | ||
137 | + tmsize_t limit = (256 * 1024 * 1024); | ||
138 | + MyErrorHandlerUserDataStruct user_data = { /* ... any data ... */}; | ||
139 | + | ||
140 | + TIFFOpenOptions *opts = TIFFOpenOptionsAlloc(); | ||
141 | + TIFFOpenOptionsSetMaxSingleMemAlloc(opts, limit); | ||
142 | + TIFFOpenOptionsSetErrorHandlerExtR(opts, myErrorHandler, &user_data); | ||
143 | + TIFF *tif = TIFFOpenExt("foo.tif", "r", opts); | ||
144 | + TIFFOpenOptionsFree(opts); | ||
145 | + /* ... go on here ... */ | ||
146 | + | ||
147 | + TIFFClose(tif); | ||
148 | + } | ||
149 | + | ||
150 | Note | ||
151 | ---- | ||
152 | |||
153 | diff --git a/doc/functions/TIFFStrileQuery.rst b/doc/functions/TIFFStrileQuery.rst | ||
154 | index f8631af..7931fe4 100644 | ||
155 | --- a/doc/functions/TIFFStrileQuery.rst | ||
156 | +++ b/doc/functions/TIFFStrileQuery.rst | ||
157 | @@ -66,6 +66,11 @@ Diagnostics | ||
158 | All error messages are directed to the :c:func:`TIFFErrorExtR` routine. | ||
159 | Likewise, warning messages are directed to the :c:func:`TIFFWarningExtR` routine. | ||
160 | |||
161 | +Note | ||
162 | +---- | ||
163 | + | ||
164 | +This functionality was introduced with libtiff 4.1. | ||
165 | + | ||
166 | See also | ||
167 | -------- | ||
168 | |||
169 | diff --git a/doc/libtiff.rst b/doc/libtiff.rst | ||
170 | index 6a0054c..d96a860 100644 | ||
171 | --- a/doc/libtiff.rst | ||
172 | +++ b/doc/libtiff.rst | ||
173 | @@ -90,11 +90,15 @@ compatibility on machines with a segmented architecture. | ||
174 | :c:func:`realloc`, and :c:func:`free` routines in the C library.) | ||
175 | |||
176 | To deal with segmented pointer issues ``libtiff`` also provides | ||
177 | -:c:func:`_TIFFmemcpy`, :c:func:`_TIFFmemset`, and :c:func:`_TIFFmemmove` | ||
178 | +:c:func:`_TIFFmemcpy`, :c:func:`_TIFFmemset`, and :c:func:`_TIFFmemcmp` | ||
179 | routines that mimic the equivalent ANSI C routines, but that are | ||
180 | intended for use with memory allocated through :c:func:`_TIFFmalloc` | ||
181 | and :c:func:`_TIFFrealloc`. | ||
182 | |||
183 | +With ``libtiff`` 4.5 a method was introduced to limit the internal | ||
184 | +memory allocation that functions are allowed to request per call | ||
185 | +(see :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc` and :c:func:`TIFFOpenExt`). | ||
186 | + | ||
187 | Error Handling | ||
188 | -------------- | ||
189 | |||
190 | @@ -106,6 +110,10 @@ routine that can be specified with a call to :c:func:`TIFFSetErrorHandler`. | ||
191 | Likewise warning messages are directed to a single handler routine | ||
192 | that can be specified with a call to :c:func:`TIFFSetWarningHandler` | ||
193 | |||
194 | +Further application-specific and per-TIFF handle (re-entrant) error handler | ||
195 | +and warning handler can be set. Please refer to :doc:`/functions/TIFFError` | ||
196 | +and :doc:`/functions/TIFFOpenOptions`. | ||
197 | + | ||
198 | Basic File Handling | ||
199 | ------------------- | ||
200 | |||
201 | @@ -139,7 +147,7 @@ a ``"w"`` argument: | ||
202 | main() | ||
203 | { | ||
204 | TIFF* tif = TIFFOpen("foo.tif", "w"); | ||
205 | - ... do stuff ... | ||
206 | + /* ... do stuff ... */ | ||
207 | TIFFClose(tif); | ||
208 | } | ||
209 | |||
210 | @@ -157,6 +165,25 @@ to always call :c:func:`TIFFClose` or :c:func:`TIFFFlush` to flush any | ||
211 | buffered information to a file. Note that if you call :c:func:`TIFFClose` | ||
212 | you do not need to call :c:func:`TIFFFlush`. | ||
213 | |||
214 | +.. warning:: | ||
215 | + | ||
216 | + In order to prevent out-of-memory issues when opening a TIFF file | ||
217 | + :c:func:`TIFFOpenExt` can be used and then the maximum single memory | ||
218 | + limit in byte that ``libtiff`` internal memory allocation functions | ||
219 | + are allowed to request per call can be set with | ||
220 | + :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc`. | ||
221 | + | ||
222 | +Example | ||
223 | + | ||
224 | +:: | ||
225 | + | ||
226 | + tmsize_t limit = (256 * 1024 * 1024); | ||
227 | + TIFFOpenOptions *opts = TIFFOpenOptionsAlloc(); | ||
228 | + TIFFOpenOptionsSetMaxSingleMemAlloc(opts, limit); | ||
229 | + TIFF *tif = TIFFOpenExt("foo.tif", "w", opts); | ||
230 | + TIFFOpenOptionsFree(opts); | ||
231 | + /* ... go on here ... */ | ||
232 | + | ||
233 | TIFF Directories | ||
234 | ---------------- | ||
235 | |||
236 | -- | ||
237 | 2.40.0 | ||
238 | |||
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch new file mode 100644 index 0000000000..19a1ef727a --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52355-0002.patch | |||
@@ -0,0 +1,28 @@ | |||
1 | From 16ab4a205cfc938c32686e8d697d048fabf97ed4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Timothy Lyanguzov <theta682@gmail.com> | ||
3 | Date: Thu, 1 Feb 2024 11:19:06 +0000 | ||
4 | Subject: [PATCH] Fix typo. | ||
5 | |||
6 | CVE: CVE-2023-52355 | ||
7 | Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/16ab4a205cfc938c32686e8d697d048fabf97ed4] | ||
8 | |||
9 | Signed-off-by: Yogita Urade <yogita.urade@windriver.com> | ||
10 | --- | ||
11 | doc/libtiff.rst | 2 +- | ||
12 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
13 | |||
14 | diff --git a/doc/libtiff.rst b/doc/libtiff.rst | ||
15 | index d96a860..4fedc3e 100644 | ||
16 | --- a/doc/libtiff.rst | ||
17 | +++ b/doc/libtiff.rst | ||
18 | @@ -169,7 +169,7 @@ you do not need to call :c:func:`TIFFFlush`. | ||
19 | |||
20 | In order to prevent out-of-memory issues when opening a TIFF file | ||
21 | :c:func:`TIFFOpenExt` can be used and then the maximum single memory | ||
22 | - limit in byte that ``libtiff`` internal memory allocation functions | ||
23 | + limit in bytes that ``libtiff`` internal memory allocation functions | ||
24 | are allowed to request per call can be set with | ||
25 | :c:func:`TIFFOpenOptionsSetMaxSingleMemAlloc`. | ||
26 | |||
27 | -- | ||
28 | 2.40.0 | ||
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch new file mode 100644 index 0000000000..75f5d8946a --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-52356.patch | |||
@@ -0,0 +1,49 @@ | |||
1 | From 51558511bdbbcffdce534db21dbaf5d54b31638a Mon Sep 17 00:00:00 2001 | ||
2 | From: Even Rouault <even.rouault@spatialys.com> | ||
3 | Date: Thu, 1 Feb 2024 11:38:14 +0000 | ||
4 | Subject: [PATCH] TIFFReadRGBAStrip/TIFFReadRGBATile: add more validation of | ||
5 | col/row (fixes #622) | ||
6 | |||
7 | CVE: CVE-2023-52356 | ||
8 | Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/51558511bdbbcffdce534db21dbaf5d54b31638a] | ||
9 | |||
10 | Signed-off-by: Yogita Urade <yogita.urade@windriver.com> | ||
11 | --- | ||
12 | libtiff/tif_getimage.c | 15 +++++++++++++++ | ||
13 | 1 file changed, 15 insertions(+) | ||
14 | |||
15 | diff --git a/libtiff/tif_getimage.c b/libtiff/tif_getimage.c | ||
16 | index 41f7dfd..9cd6eee 100644 | ||
17 | --- a/libtiff/tif_getimage.c | ||
18 | +++ b/libtiff/tif_getimage.c | ||
19 | @@ -3224,6 +3224,13 @@ int TIFFReadRGBAStripExt(TIFF *tif, uint32_t row, uint32_t *raster, | ||
20 | if (TIFFRGBAImageOK(tif, emsg) && | ||
21 | TIFFRGBAImageBegin(&img, tif, stop_on_error, emsg)) | ||
22 | { | ||
23 | + if (row >= img.height) | ||
24 | + { | ||
25 | + TIFFErrorExtR(tif, TIFFFileName(tif), | ||
26 | + "Invalid row passed to TIFFReadRGBAStrip()."); | ||
27 | + TIFFRGBAImageEnd(&img); | ||
28 | + return (0); | ||
29 | + } | ||
30 | |||
31 | img.row_offset = row; | ||
32 | img.col_offset = 0; | ||
33 | @@ -3301,6 +3308,14 @@ int TIFFReadRGBATileExt(TIFF *tif, uint32_t col, uint32_t row, uint32_t *raster, | ||
34 | return (0); | ||
35 | } | ||
36 | |||
37 | + if (col >= img.width || row >= img.height) | ||
38 | + { | ||
39 | + TIFFErrorExtR(tif, TIFFFileName(tif), | ||
40 | + "Invalid row/col passed to TIFFReadRGBATile()."); | ||
41 | + TIFFRGBAImageEnd(&img); | ||
42 | + return (0); | ||
43 | + } | ||
44 | + | ||
45 | /* | ||
46 | * The TIFFRGBAImageGet() function doesn't allow us to get off the | ||
47 | * edge of the image, even to fill an otherwise valid tile. So we | ||
48 | -- | ||
49 | 2.40.0 | ||
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch new file mode 100644 index 0000000000..2020508fdf --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6228.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | From 1e7d217a323eac701b134afc4ae39b6bdfdbc96a Mon Sep 17 00:00:00 2001 | ||
2 | From: Su_Laus <sulau@freenet.de> | ||
3 | Date: Wed, 17 Jan 2024 06:57:08 +0000 | ||
4 | Subject: [PATCH] codec of input image is available, independently from codec | ||
5 | check of output image and return with error if not. | ||
6 | |||
7 | Fixes #606. | ||
8 | |||
9 | CVE: CVE-2023-6228 | ||
10 | Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/1e7d217a323eac701b134afc4ae39b6bdfdbc96a] | ||
11 | |||
12 | Signed-off-by: Yogita Urade <yogita.urade@windriver.com> | ||
13 | --- | ||
14 | tools/tiffcp.c | 2 ++ | ||
15 | 1 file changed, 2 insertions(+) | ||
16 | |||
17 | diff --git a/tools/tiffcp.c b/tools/tiffcp.c | ||
18 | index aff0626..a4f7f6b 100644 | ||
19 | --- a/tools/tiffcp.c | ||
20 | +++ b/tools/tiffcp.c | ||
21 | @@ -846,6 +846,8 @@ static int tiffcp(TIFF *in, TIFF *out) | ||
22 | if (!TIFFIsCODECConfigured(compression)) | ||
23 | return FALSE; | ||
24 | TIFFGetFieldDefaulted(in, TIFFTAG_COMPRESSION, &input_compression); | ||
25 | + if (!TIFFIsCODECConfigured(input_compression)) | ||
26 | + return FALSE; | ||
27 | TIFFGetFieldDefaulted(in, TIFFTAG_PHOTOMETRIC, &input_photometric); | ||
28 | if (input_compression == COMPRESSION_JPEG) | ||
29 | { | ||
30 | -- | ||
31 | 2.40.0 | ||
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch new file mode 100644 index 0000000000..5d15dff1d9 --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From e1640519208121f916da1772a5efb6ca28971b86 Mon Sep 17 00:00:00 2001 | ||
2 | From: Even Rouault <even.rouault@spatialys.com> | ||
3 | Date: Tue, 31 Oct 2023 15:04:37 +0000 | ||
4 | Subject: [PATCH 3/3] Apply 1 suggestion(s) to 1 file(s) | ||
5 | |||
6 | CVE: CVE-2023-6277 | ||
7 | Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/merge_requests/545] | ||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | --- | ||
10 | libtiff/tif_dirread.c | 1 - | ||
11 | 1 file changed, 1 deletion(-) | ||
12 | |||
13 | diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c | ||
14 | index fe8d6f8..58a4276 100644 | ||
15 | --- a/libtiff/tif_dirread.c | ||
16 | +++ b/libtiff/tif_dirread.c | ||
17 | @@ -5306,7 +5306,6 @@ static int EstimateStripByteCounts(TIFF *tif, TIFFDirEntry *dir, | ||
18 | { | ||
19 | uint64_t space; | ||
20 | uint16_t n; | ||
21 | - filesize = TIFFGetFileSize(tif); | ||
22 | if (!(tif->tif_flags & TIFF_BIGTIFF)) | ||
23 | space = sizeof(TIFFHeaderClassic) + 2 + dircount * 12 + 4; | ||
24 | else | ||
25 | -- | ||
26 | 2.43.0 | ||
27 | |||
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch new file mode 100644 index 0000000000..9fc8182fef --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From f500facf7723f1cae725dd288b2daad15e45131c Mon Sep 17 00:00:00 2001 | ||
2 | From: Su_Laus <sulau@freenet.de> | ||
3 | Date: Mon, 30 Oct 2023 21:21:57 +0100 | ||
4 | Subject: [PATCH 2/3] At image reading, compare data size of some tags / data | ||
5 | structures (StripByteCounts, StripOffsets, StripArray, TIFF directory) with | ||
6 | file size to prevent provoked out-of-memory attacks. | ||
7 | MIME-Version: 1.0 | ||
8 | Content-Type: text/plain; charset=UTF-8 | ||
9 | Content-Transfer-Encoding: 8bit | ||
10 | |||
11 | See issue #614. | ||
12 | |||
13 | Correct declaration of ‘filesize’ shadows a previous local. | ||
14 | |||
15 | CVE: CVE-2023-6277 | ||
16 | Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/merge_requests/545] | ||
17 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
18 | --- | ||
19 | libtiff/tif_dirread.c | 1 - | ||
20 | 1 file changed, 1 deletion(-) | ||
21 | |||
22 | diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c | ||
23 | index c52d41f..fe8d6f8 100644 | ||
24 | --- a/libtiff/tif_dirread.c | ||
25 | +++ b/libtiff/tif_dirread.c | ||
26 | @@ -5305,7 +5305,6 @@ static int EstimateStripByteCounts(TIFF *tif, TIFFDirEntry *dir, | ||
27 | if (td->td_compression != COMPRESSION_NONE) | ||
28 | { | ||
29 | uint64_t space; | ||
30 | - uint64_t filesize; | ||
31 | uint16_t n; | ||
32 | filesize = TIFFGetFileSize(tif); | ||
33 | if (!(tif->tif_flags & TIFF_BIGTIFF)) | ||
34 | -- | ||
35 | 2.43.0 | ||
36 | |||
diff --git a/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch new file mode 100644 index 0000000000..d5854a9059 --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff/CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch | |||
@@ -0,0 +1,162 @@ | |||
1 | From b33baa5d9c6aac8ce49b5180dd48e39697ab7a11 Mon Sep 17 00:00:00 2001 | ||
2 | From: Su_Laus <sulau@freenet.de> | ||
3 | Date: Fri, 27 Oct 2023 22:11:10 +0200 | ||
4 | Subject: [PATCH 1/3] At image reading, compare data size of some tags / data | ||
5 | structures (StripByteCounts, StripOffsets, StripArray, TIFF directory) with | ||
6 | file size to prevent provoked out-of-memory attacks. | ||
7 | |||
8 | See issue #614. | ||
9 | |||
10 | CVE: CVE-2023-6277 | ||
11 | Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/merge_requests/545] | ||
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
13 | --- | ||
14 | libtiff/tif_dirread.c | 90 +++++++++++++++++++++++++++++++++++++++++++ | ||
15 | 1 file changed, 90 insertions(+) | ||
16 | |||
17 | diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c | ||
18 | index 2c49dc6..c52d41f 100644 | ||
19 | --- a/libtiff/tif_dirread.c | ||
20 | +++ b/libtiff/tif_dirread.c | ||
21 | @@ -1308,6 +1308,21 @@ TIFFReadDirEntryArrayWithLimit(TIFF *tif, TIFFDirEntry *direntry, | ||
22 | datasize = (*count) * typesize; | ||
23 | assert((tmsize_t)datasize > 0); | ||
24 | |||
25 | + /* Before allocating a huge amount of memory for corrupted files, check if | ||
26 | + * size of requested memory is not greater than file size. | ||
27 | + */ | ||
28 | + uint64_t filesize = TIFFGetFileSize(tif); | ||
29 | + if (datasize > filesize) | ||
30 | + { | ||
31 | + TIFFWarningExtR(tif, "ReadDirEntryArray", | ||
32 | + "Requested memory size for tag %d (0x%x) %" PRIu32 | ||
33 | + " is greather than filesize %" PRIu64 | ||
34 | + ". Memory not allocated, tag not read", | ||
35 | + direntry->tdir_tag, direntry->tdir_tag, datasize, | ||
36 | + filesize); | ||
37 | + return (TIFFReadDirEntryErrAlloc); | ||
38 | + } | ||
39 | + | ||
40 | if (isMapped(tif) && datasize > (uint64_t)tif->tif_size) | ||
41 | return TIFFReadDirEntryErrIo; | ||
42 | |||
43 | @@ -5266,6 +5281,20 @@ static int EstimateStripByteCounts(TIFF *tif, TIFFDirEntry *dir, | ||
44 | if (!_TIFFFillStrilesInternal(tif, 0)) | ||
45 | return -1; | ||
46 | |||
47 | + /* Before allocating a huge amount of memory for corrupted files, check if | ||
48 | + * size of requested memory is not greater than file size. */ | ||
49 | + uint64_t filesize = TIFFGetFileSize(tif); | ||
50 | + uint64_t allocsize = (uint64_t)td->td_nstrips * sizeof(uint64_t); | ||
51 | + if (allocsize > filesize) | ||
52 | + { | ||
53 | + TIFFWarningExtR(tif, module, | ||
54 | + "Requested memory size for StripByteCounts of %" PRIu64 | ||
55 | + " is greather than filesize %" PRIu64 | ||
56 | + ". Memory not allocated", | ||
57 | + allocsize, filesize); | ||
58 | + return -1; | ||
59 | + } | ||
60 | + | ||
61 | if (td->td_stripbytecount_p) | ||
62 | _TIFFfreeExt(tif, td->td_stripbytecount_p); | ||
63 | td->td_stripbytecount_p = (uint64_t *)_TIFFCheckMalloc( | ||
64 | @@ -5807,6 +5836,20 @@ static uint16_t TIFFFetchDirectory(TIFF *tif, uint64_t diroff, | ||
65 | dircount16 = (uint16_t)dircount64; | ||
66 | dirsize = 20; | ||
67 | } | ||
68 | + /* Before allocating a huge amount of memory for corrupted files, check | ||
69 | + * if size of requested memory is not greater than file size. */ | ||
70 | + uint64_t filesize = TIFFGetFileSize(tif); | ||
71 | + uint64_t allocsize = (uint64_t)dircount16 * dirsize; | ||
72 | + if (allocsize > filesize) | ||
73 | + { | ||
74 | + TIFFWarningExtR( | ||
75 | + tif, module, | ||
76 | + "Requested memory size for TIFF directory of %" PRIu64 | ||
77 | + " is greather than filesize %" PRIu64 | ||
78 | + ". Memory not allocated, TIFF directory not read", | ||
79 | + allocsize, filesize); | ||
80 | + return 0; | ||
81 | + } | ||
82 | origdir = _TIFFCheckMalloc(tif, dircount16, dirsize, | ||
83 | "to read TIFF directory"); | ||
84 | if (origdir == NULL) | ||
85 | @@ -5921,6 +5964,20 @@ static uint16_t TIFFFetchDirectory(TIFF *tif, uint64_t diroff, | ||
86 | "directories not supported"); | ||
87 | return 0; | ||
88 | } | ||
89 | + /* Before allocating a huge amount of memory for corrupted files, check | ||
90 | + * if size of requested memory is not greater than file size. */ | ||
91 | + uint64_t filesize = TIFFGetFileSize(tif); | ||
92 | + uint64_t allocsize = (uint64_t)dircount16 * dirsize; | ||
93 | + if (allocsize > filesize) | ||
94 | + { | ||
95 | + TIFFWarningExtR( | ||
96 | + tif, module, | ||
97 | + "Requested memory size for TIFF directory of %" PRIu64 | ||
98 | + " is greather than filesize %" PRIu64 | ||
99 | + ". Memory not allocated, TIFF directory not read", | ||
100 | + allocsize, filesize); | ||
101 | + return 0; | ||
102 | + } | ||
103 | origdir = _TIFFCheckMalloc(tif, dircount16, dirsize, | ||
104 | "to read TIFF directory"); | ||
105 | if (origdir == NULL) | ||
106 | @@ -5968,6 +6025,8 @@ static uint16_t TIFFFetchDirectory(TIFF *tif, uint64_t diroff, | ||
107 | } | ||
108 | } | ||
109 | } | ||
110 | + /* No check against filesize needed here because "dir" should have same size | ||
111 | + * than "origdir" checked above. */ | ||
112 | dir = (TIFFDirEntry *)_TIFFCheckMalloc( | ||
113 | tif, dircount16, sizeof(TIFFDirEntry), "to read TIFF directory"); | ||
114 | if (dir == 0) | ||
115 | @@ -7164,6 +7223,20 @@ static int TIFFFetchStripThing(TIFF *tif, TIFFDirEntry *dir, uint32_t nstrips, | ||
116 | return (0); | ||
117 | } | ||
118 | |||
119 | + /* Before allocating a huge amount of memory for corrupted files, check | ||
120 | + * if size of requested memory is not greater than file size. */ | ||
121 | + uint64_t filesize = TIFFGetFileSize(tif); | ||
122 | + uint64_t allocsize = (uint64_t)nstrips * sizeof(uint64_t); | ||
123 | + if (allocsize > filesize) | ||
124 | + { | ||
125 | + TIFFWarningExtR(tif, module, | ||
126 | + "Requested memory size for StripArray of %" PRIu64 | ||
127 | + " is greather than filesize %" PRIu64 | ||
128 | + ". Memory not allocated", | ||
129 | + allocsize, filesize); | ||
130 | + _TIFFfreeExt(tif, data); | ||
131 | + return (0); | ||
132 | + } | ||
133 | resizeddata = (uint64_t *)_TIFFCheckMalloc( | ||
134 | tif, nstrips, sizeof(uint64_t), "for strip array"); | ||
135 | if (resizeddata == 0) | ||
136 | @@ -7263,6 +7336,23 @@ static void allocChoppedUpStripArrays(TIFF *tif, uint32_t nstrips, | ||
137 | } | ||
138 | bytecount = last_offset + last_bytecount - offset; | ||
139 | |||
140 | + /* Before allocating a huge amount of memory for corrupted files, check if | ||
141 | + * size of StripByteCount and StripOffset tags is not greater than | ||
142 | + * file size. | ||
143 | + */ | ||
144 | + uint64_t allocsize = (uint64_t)nstrips * sizeof(uint64_t) * 2; | ||
145 | + uint64_t filesize = TIFFGetFileSize(tif); | ||
146 | + if (allocsize > filesize) | ||
147 | + { | ||
148 | + TIFFWarningExtR(tif, "allocChoppedUpStripArrays", | ||
149 | + "Requested memory size for StripByteCount and " | ||
150 | + "StripOffsets %" PRIu64 | ||
151 | + " is greather than filesize %" PRIu64 | ||
152 | + ". Memory not allocated", | ||
153 | + allocsize, filesize); | ||
154 | + return; | ||
155 | + } | ||
156 | + | ||
157 | newcounts = | ||
158 | (uint64_t *)_TIFFCheckMalloc(tif, nstrips, sizeof(uint64_t), | ||
159 | "for chopped \"StripByteCounts\" array"); | ||
160 | -- | ||
161 | 2.43.0 | ||
162 | |||
diff --git a/meta/recipes-multimedia/libtiff/tiff_4.2.0.bb b/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb index ea8580a25e..d42ea6a6e5 100644 --- a/meta/recipes-multimedia/libtiff/tiff_4.2.0.bb +++ b/meta/recipes-multimedia/libtiff/tiff_4.6.0.bb | |||
@@ -4,17 +4,28 @@ DESCRIPTION = "Library provides support for the Tag Image File Format \ | |||
4 | provide means to easily access and create TIFF image files." | 4 | provide means to easily access and create TIFF image files." |
5 | HOMEPAGE = "http://www.libtiff.org/" | 5 | HOMEPAGE = "http://www.libtiff.org/" |
6 | LICENSE = "BSD-2-Clause" | 6 | LICENSE = "BSD-2-Clause" |
7 | LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf" | 7 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a3e32d664d6db1386b4689c8121531c3" |
8 | 8 | ||
9 | CVE_PRODUCT = "libtiff" | 9 | CVE_PRODUCT = "libtiff" |
10 | 10 | ||
11 | SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \ | 11 | SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \ |
12 | " | 12 | file://CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data.patch \ |
13 | SRC_URI[sha256sum] = "eb0484e568ead8fa23b513e9b0041df7e327f4ee2d22db5a533929dfc19633cb" | 13 | file://CVE-2023-6277-At-image-reading-compare-data-size-of-some-tags-data-2.patch \ |
14 | file://CVE-2023-6277-Apply-1-suggestion-s-to-1-file-s.patch \ | ||
15 | file://CVE-2023-6228.patch \ | ||
16 | file://CVE-2023-52355-0001.patch \ | ||
17 | file://CVE-2023-52355-0002.patch \ | ||
18 | file://CVE-2023-52356.patch \ | ||
19 | " | ||
20 | |||
21 | SRC_URI[sha256sum] = "88b3979e6d5c7e32b50d7ec72fb15af724f6ab2cbf7e10880c360a77e4b5d99a" | ||
14 | 22 | ||
15 | # exclude betas | 23 | # exclude betas |
16 | UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar" | 24 | UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar" |
17 | 25 | ||
26 | CVE_STATUS[CVE-2015-7313] = "fixed-version: Tested with check from https://security-tracker.debian.org/tracker/CVE-2015-7313 and already 4.3.0 doesn't have the issue" | ||
27 | CVE_STATUS[CVE-2023-3164] = "cpe-incorrect: Issue only affects the tiffcrop tool not compiled by default since 4.6.0" | ||
28 | |||
18 | inherit autotools multilib_header | 29 | inherit autotools multilib_header |
19 | 30 | ||
20 | CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no" | 31 | CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no" |
@@ -23,9 +34,13 @@ PACKAGECONFIG ?= "cxx jpeg zlib lzma \ | |||
23 | strip-chopping extrasample-as-alpha check-ycbcr-subsampling" | 34 | strip-chopping extrasample-as-alpha check-ycbcr-subsampling" |
24 | 35 | ||
25 | PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,," | 36 | PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,," |
37 | PACKAGECONFIG[jbig] = "--enable-jbig,--disable-jbig,jbig," | ||
26 | PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg," | 38 | PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg," |
27 | PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," | 39 | PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib," |
28 | PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz," | 40 | PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz," |
41 | PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp," | ||
42 | PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd," | ||
43 | PACKAGECONFIG[libdeflate] = "--enable-libdeflate,--disable-libdeflate,libdeflate," | ||
29 | 44 | ||
30 | # Convert single-strip uncompressed images to multiple strips of specified | 45 | # Convert single-strip uncompressed images to multiple strips of specified |
31 | # size (default: 8192) to reduce memory usage | 46 | # size (default: 8192) to reduce memory usage |
@@ -43,10 +58,10 @@ PACKAGECONFIG[check-ycbcr-subsampling] = "--enable-check-ycbcr-subsampling,--dis | |||
43 | PACKAGECONFIG[chunky-strip-read] = "--enable-chunky-strip-read,--disable-chunky-strip-read,," | 58 | PACKAGECONFIG[chunky-strip-read] = "--enable-chunky-strip-read,--disable-chunky-strip-read,," |
44 | 59 | ||
45 | PACKAGES =+ "tiffxx tiff-utils" | 60 | PACKAGES =+ "tiffxx tiff-utils" |
46 | FILES_tiffxx = "${libdir}/libtiffxx.so.*" | 61 | FILES:tiffxx = "${libdir}/libtiffxx.so.*" |
47 | FILES_tiff-utils = "${bindir}/*" | 62 | FILES:tiff-utils = "${bindir}/*" |
48 | 63 | ||
49 | do_install_append() { | 64 | do_install:append() { |
50 | oe_multilib_header tiffconf.h | 65 | oe_multilib_header tiffconf.h |
51 | } | 66 | } |
52 | 67 | ||
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch b/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch deleted file mode 100644 index b2544cb44d..0000000000 --- a/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch +++ /dev/null | |||
@@ -1,156 +0,0 @@ | |||
1 | From 0cafb99b57f43cf6ac2c6208718e49ad2dbe462d Mon Sep 17 00:00:00 2001 | ||
2 | From: Jan Schmidt <thaytan@noraisin.net> | ||
3 | Date: Sun, 10 Nov 2013 00:49:52 +1100 | ||
4 | Subject: [PATCH] Import revision 1206 from upstream to fix PIE build. | ||
5 | |||
6 | Functions MC_put_o_16_arm, MC_put_o_8_arm, MC_put_x_16_arm, MC_put_x_8_arm | ||
7 | in libmpeg2/motion_comp_arm_s.S have addresses in .text, which is bad | ||
8 | for shared libraries. Some environments demand that .text actually be | ||
9 | read-only all the time, yet MC_put_o_16_arm etc require that the addresses | ||
10 | be modified by the dynamic linking mechanism (dlopen, LoadLibrary, etc.) | ||
11 | Even in those environments which permit the dynamic linker to modify the | ||
12 | .text segment, the runtime cost of doing the relocation can be noticeable. | ||
13 | |||
14 | This commit rewrites the linkage, discarding the tables of addresses | ||
15 | in favor of tables of offsets. All transfers are local within each individual | ||
16 | function, so there can be no interference by processing that occurs | ||
17 | after assembly, such as link-time re-ordering (even of individual functions.) | ||
18 | |||
19 | Patch by John Reiser <jreiser@bitwagon.com> | ||
20 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
21 | Upstream-Status: Backport [https://code.videolan.org/videolan/libmpeg2/commit/946bf4b518aacc224f845e73708f99e394744499] | ||
22 | --- | ||
23 | libmpeg2/motion_comp_arm_s.S | 70 +++++++++++++++++------------------- | ||
24 | 1 file changed, 33 insertions(+), 37 deletions(-) | ||
25 | |||
26 | diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S | ||
27 | index c921f7c..82143f8 100644 | ||
28 | --- a/libmpeg2/motion_comp_arm_s.S | ||
29 | +++ b/libmpeg2/motion_comp_arm_s.S | ||
30 | @@ -30,9 +30,13 @@ MC_put_o_16_arm: | ||
31 | pld [r1] | ||
32 | stmfd sp!, {r4-r11, lr} @ R14 is also called LR | ||
33 | and r4, r1, #3 | ||
34 | - adr r5, MC_put_o_16_arm_align_jt | ||
35 | - add r5, r5, r4, lsl #2 | ||
36 | - ldr pc, [r5] | ||
37 | + ldrb r4, [pc, r4] | ||
38 | + add pc, pc, r4, lsl #2 | ||
39 | + .byte (MC_put_o_16_arm_align0 - 0f)>>2 | ||
40 | + .byte (MC_put_o_16_arm_align1 - 0f)>>2 | ||
41 | + .byte (MC_put_o_16_arm_align2 - 0f)>>2 | ||
42 | + .byte (MC_put_o_16_arm_align3 - 0f)>>2 | ||
43 | +0: | ||
44 | |||
45 | MC_put_o_16_arm_align0: | ||
46 | ldmia r1, {r4-r7} | ||
47 | @@ -76,11 +80,6 @@ MC_put_o_16_arm_align3: | ||
48 | 1: PROC(24) | ||
49 | bne 1b | ||
50 | ldmfd sp!, {r4-r11, pc} @@ update PC with LR content. | ||
51 | -MC_put_o_16_arm_align_jt: | ||
52 | - .word MC_put_o_16_arm_align0 | ||
53 | - .word MC_put_o_16_arm_align1 | ||
54 | - .word MC_put_o_16_arm_align2 | ||
55 | - .word MC_put_o_16_arm_align3 | ||
56 | |||
57 | @ ---------------------------------------------------------------- | ||
58 | .align | ||
59 | @@ -91,9 +90,14 @@ MC_put_o_8_arm: | ||
60 | pld [r1] | ||
61 | stmfd sp!, {r4-r10, lr} @ R14 is also called LR | ||
62 | and r4, r1, #3 | ||
63 | - adr r5, MC_put_o_8_arm_align_jt | ||
64 | - add r5, r5, r4, lsl #2 | ||
65 | - ldr pc, [r5] | ||
66 | + ldrb r4, [pc, r4] | ||
67 | + add pc, pc, r4, lsl #2 | ||
68 | + .byte (MC_put_o_8_arm_align0 - 0f)>>2 | ||
69 | + .byte (MC_put_o_8_arm_align1 - 0f)>>2 | ||
70 | + .byte (MC_put_o_8_arm_align2 - 0f)>>2 | ||
71 | + .byte (MC_put_o_8_arm_align3 - 0f)>>2 | ||
72 | +0: | ||
73 | + | ||
74 | MC_put_o_8_arm_align0: | ||
75 | ldmia r1, {r4-r5} | ||
76 | add r1, r1, r2 | ||
77 | @@ -135,12 +139,6 @@ MC_put_o_8_arm_align3: | ||
78 | bne 1b | ||
79 | ldmfd sp!, {r4-r10, pc} @@ update PC with LR content. | ||
80 | |||
81 | -MC_put_o_8_arm_align_jt: | ||
82 | - .word MC_put_o_8_arm_align0 | ||
83 | - .word MC_put_o_8_arm_align1 | ||
84 | - .word MC_put_o_8_arm_align2 | ||
85 | - .word MC_put_o_8_arm_align3 | ||
86 | - | ||
87 | @ ---------------------------------------------------------------- | ||
88 | .macro AVG_PW rW1, rW2 | ||
89 | mov \rW2, \rW2, lsl #24 | ||
90 | @@ -160,12 +158,17 @@ MC_put_x_16_arm: | ||
91 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
92 | pld [r1] | ||
93 | stmfd sp!, {r4-r11,lr} @ R14 is also called LR | ||
94 | + ldr r11, 0f | ||
95 | and r4, r1, #3 | ||
96 | - adr r5, MC_put_x_16_arm_align_jt | ||
97 | - ldr r11, [r5] | ||
98 | mvn r12, r11 | ||
99 | - add r5, r5, r4, lsl #2 | ||
100 | - ldr pc, [r5, #4] | ||
101 | + ldrb r4, [pc, r4] | ||
102 | + add pc, pc, r4, lsl #2 | ||
103 | + .byte (MC_put_x_16_arm_align0 - 0f)>>2 | ||
104 | + .byte (MC_put_x_16_arm_align1 - 0f)>>2 | ||
105 | + .byte (MC_put_x_16_arm_align2 - 0f)>>2 | ||
106 | + .byte (MC_put_x_16_arm_align3 - 0f)>>2 | ||
107 | +0: | ||
108 | + .word 0x01010101 | ||
109 | |||
110 | .macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4 | ||
111 | mov \R0, \R0, lsr #(\shift) | ||
112 | @@ -238,12 +241,6 @@ MC_put_x_16_arm_align3: | ||
113 | add r0, r0, r2 | ||
114 | bne 1b | ||
115 | ldmfd sp!, {r4-r11,pc} @@ update PC with LR content. | ||
116 | -MC_put_x_16_arm_align_jt: | ||
117 | - .word 0x01010101 | ||
118 | - .word MC_put_x_16_arm_align0 | ||
119 | - .word MC_put_x_16_arm_align1 | ||
120 | - .word MC_put_x_16_arm_align2 | ||
121 | - .word MC_put_x_16_arm_align3 | ||
122 | |||
123 | @ ---------------------------------------------------------------- | ||
124 | .align | ||
125 | @@ -253,12 +250,17 @@ MC_put_x_8_arm: | ||
126 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
127 | pld [r1] | ||
128 | stmfd sp!, {r4-r11,lr} @ R14 is also called LR | ||
129 | + ldr r11, 0f | ||
130 | and r4, r1, #3 | ||
131 | - adr r5, MC_put_x_8_arm_align_jt | ||
132 | - ldr r11, [r5] | ||
133 | mvn r12, r11 | ||
134 | - add r5, r5, r4, lsl #2 | ||
135 | - ldr pc, [r5, #4] | ||
136 | + ldrb r4, [pc, r4] | ||
137 | + add pc, pc, r4, lsl #2 | ||
138 | + .byte (MC_put_x_8_arm_align0 - 0f)>>2 | ||
139 | + .byte (MC_put_x_8_arm_align1 - 0f)>>2 | ||
140 | + .byte (MC_put_x_8_arm_align2 - 0f)>>2 | ||
141 | + .byte (MC_put_x_8_arm_align3 - 0f)>>2 | ||
142 | +0: | ||
143 | + .word 0x01010101 | ||
144 | |||
145 | .macro ADJ_ALIGN_DW shift, R0, R1, R2 | ||
146 | mov \R0, \R0, lsr #(\shift) | ||
147 | @@ -319,9 +321,3 @@ MC_put_x_8_arm_align3: | ||
148 | add r0, r0, r2 | ||
149 | bne 1b | ||
150 | ldmfd sp!, {r4-r11,pc} @@ update PC with LR content. | ||
151 | -MC_put_x_8_arm_align_jt: | ||
152 | - .word 0x01010101 | ||
153 | - .word MC_put_x_8_arm_align0 | ||
154 | - .word MC_put_x_8_arm_align1 | ||
155 | - .word MC_put_x_8_arm_align2 | ||
156 | - .word MC_put_x_8_arm_align3 | ||
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch b/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch deleted file mode 100644 index 5bf68b39ee..0000000000 --- a/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | From cbcff58ed670c8edc0be1004384cbe0fd07d8d26 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Wed, 5 Jul 2017 18:49:21 -0700 | ||
4 | Subject: [PATCH 1/2] check for available arm optimizations | ||
5 | |||
6 | Taken From | ||
7 | http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/65_arm-test-with-compiler.patch/ | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | --- | ||
13 | configure.ac | 12 ++++++++---- | ||
14 | 1 file changed, 8 insertions(+), 4 deletions(-) | ||
15 | |||
16 | diff --git a/configure.ac b/configure.ac | ||
17 | index acdcb1e..2c0a721 100644 | ||
18 | --- a/configure.ac | ||
19 | +++ b/configure.ac | ||
20 | @@ -59,7 +59,7 @@ elif test x"$GCC" = x"yes"; then | ||
21 | AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"]) | ||
22 | |||
23 | dnl arch-specific flags | ||
24 | - arm_conditional=false | ||
25 | + build_arm_opt=false | ||
26 | case "$host" in | ||
27 | i?86-* | k?-* | x86_64-* | amd64-*) | ||
28 | AC_DEFINE([ARCH_X86],,[x86 architecture]) | ||
29 | @@ -102,8 +102,12 @@ elif test x"$GCC" = x"yes"; then | ||
30 | alpha*) | ||
31 | AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);; | ||
32 | arm*) | ||
33 | - arm_conditional=: | ||
34 | - AC_DEFINE([ARCH_ARM],,[ARM architecture]);; | ||
35 | + AC_LANG(C) | ||
36 | + AC_COMPILE_IFELSE( | ||
37 | + [AC_LANG_SOURCE([[ | ||
38 | + void foo(void) { __asm__ volatile("pld [r1]"); }]])], | ||
39 | + build_arm_opt=true; AC_DEFINE([ARCH_ARM],,[ARM architecture]), | ||
40 | + build_arm_opt=false);; | ||
41 | esac | ||
42 | elif test x"$CC" = x"tendracc"; then | ||
43 | dnl TenDRA portability checking compiler | ||
44 | @@ -123,7 +127,7 @@ else | ||
45 | esac | ||
46 | fi | ||
47 | |||
48 | -AM_CONDITIONAL(ARCH_ARM, ${arm_conditional}) | ||
49 | +AM_CONDITIONAL(ARCH_ARM, test x$build_arm_opt = xtrue) | ||
50 | |||
51 | dnl Checks for libtool - this must be done after we set cflags | ||
52 | AC_LIBTOOL_WIN32_DLL | ||
53 | -- | ||
54 | 2.13.2 | ||
55 | |||
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch b/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch deleted file mode 100644 index 8301692368..0000000000 --- a/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | From f9d9dc92d75f8910e3cd5fdcbea72e505cdf3493 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Wed, 5 Jul 2017 19:03:36 -0700 | ||
4 | Subject: [PATCH 2/2] Set visibility of global symbols used in ARM specific | ||
5 | assembly file to internal | ||
6 | |||
7 | Taken from | ||
8 | http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/60_arm-private-symbols.patch/ | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
13 | --- | ||
14 | libmpeg2/motion_comp_arm_s.S | 12 ++++++++---- | ||
15 | 1 file changed, 8 insertions(+), 4 deletions(-) | ||
16 | |||
17 | diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S | ||
18 | index f6c3d7d..c921f7c 100644 | ||
19 | --- a/libmpeg2/motion_comp_arm_s.S | ||
20 | +++ b/libmpeg2/motion_comp_arm_s.S | ||
21 | @@ -23,7 +23,8 @@ | ||
22 | |||
23 | @ ---------------------------------------------------------------- | ||
24 | .align | ||
25 | - .global MC_put_o_16_arm | ||
26 | + .global MC_put_o_16_arm | ||
27 | + .internal MC_put_o_16_arm | ||
28 | MC_put_o_16_arm: | ||
29 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
30 | pld [r1] | ||
31 | @@ -83,7 +84,8 @@ MC_put_o_16_arm_align_jt: | ||
32 | |||
33 | @ ---------------------------------------------------------------- | ||
34 | .align | ||
35 | - .global MC_put_o_8_arm | ||
36 | + .global MC_put_o_8_arm | ||
37 | + .internal MC_put_o_8_arm | ||
38 | MC_put_o_8_arm: | ||
39 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
40 | pld [r1] | ||
41 | @@ -152,7 +154,8 @@ MC_put_o_8_arm_align_jt: | ||
42 | .endm | ||
43 | |||
44 | .align | ||
45 | - .global MC_put_x_16_arm | ||
46 | + .global MC_put_x_16_arm | ||
47 | + .internal MC_put_x_16_arm | ||
48 | MC_put_x_16_arm: | ||
49 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
50 | pld [r1] | ||
51 | @@ -244,7 +247,8 @@ MC_put_x_16_arm_align_jt: | ||
52 | |||
53 | @ ---------------------------------------------------------------- | ||
54 | .align | ||
55 | - .global MC_put_x_8_arm | ||
56 | + .global MC_put_x_8_arm | ||
57 | + .internal MC_put_x_8_arm | ||
58 | MC_put_x_8_arm: | ||
59 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
60 | pld [r1] | ||
61 | -- | ||
62 | 2.13.2 | ||
63 | |||
diff --git a/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch b/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch deleted file mode 100644 index 00b667d336..0000000000 --- a/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | Rewrite the public symbol check to verify the shared libraries, to check for | ||
2 | more things, and to avoid duplication; fixes make check on ARM | ||
3 | |||
4 | Taken From | ||
5 | https://sources.debian.org/src/mpeg2dec/0.5.1-8/debian/patches/61_global-symbol-test.patch/ | ||
6 | |||
7 | Upstream-Status: Pending | ||
8 | |||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | --- | ||
11 | test/globals | 42 +++++++++++++++++++++++++++--------------- | ||
12 | 1 file changed, 27 insertions(+), 15 deletions(-) | ||
13 | |||
14 | --- mpeg2dec.orig/test/globals | ||
15 | +++ mpeg2dec/test/globals | ||
16 | @@ -1,4 +1,8 @@ | ||
17 | #!/bin/sh | ||
18 | +# TODO | ||
19 | +# - fix checking of .a libs; problem is that "nm -g --defined-only" lists | ||
20 | +# internal symbols; this can be solved by using objdump, but it's probably | ||
21 | +# good enough to just run the tests on the shared lib | ||
22 | |||
23 | if test x"$srcdir" != x""; then | ||
24 | builddir="." # running from make check, but it does not define that | ||
25 | @@ -14,22 +18,30 @@ builddir=`cd $builddir;pwd` | ||
26 | |||
27 | error=0 | ||
28 | |||
29 | -bad_globals=`nm -g --defined-only $builddir/../libmpeg2/*.o |\ | ||
30 | - awk '{if ($3) print $3}' | grep -v '^_\?mpeg2_'` | ||
31 | - | ||
32 | -if test x"$bad_globals" != x""; then | ||
33 | - echo BAD GLOBAL SYMBOLS: | ||
34 | - for s in $bad_globals; do echo $s; done | ||
35 | +# check_bad_public_symbols <symbol prefix> <lib file> [<lib file>...] | ||
36 | +# | ||
37 | +# checks public symbols in shared libs: | ||
38 | +# - allow prefix_anything | ||
39 | +# - reject _prefixanything | ||
40 | +# - allow _anything | ||
41 | +# - reject anything else | ||
42 | +# | ||
43 | +# NB: skips missing files | ||
44 | +check_bad_public_symbols() { | ||
45 | + symbols_prefix="$1" | ||
46 | + shift | ||
47 | + lib_files=`ls "$@" 2>/dev/null` | ||
48 | + [ -z "$lib_files" ] && return | ||
49 | + bad_globals=`nm -g --defined-only $lib_files | | ||
50 | + awk '{if ($3) print $3}' | | ||
51 | + sed -n "/^${symbols_prefix}_/ d; /^_${symbols_prefix}/ { p; d }; /^_/ d; p"` | ||
52 | + [ -z "$bad_globals" ] && return | ||
53 | error=1 | ||
54 | -fi | ||
55 | - | ||
56 | -bad_globals=`nm -g --defined-only $builddir/../libmpeg2/convert/*.o |\ | ||
57 | - awk '{if ($3) print $3}' | grep -v '^_\?mpeg2convert_'` | ||
58 | + echo BAD GLOBAL SYMBOLS in $lib_files: | ||
59 | + echo "$bad_globals" | ||
60 | +} | ||
61 | |||
62 | -if test x"$bad_globals" != x""; then | ||
63 | - echo BAD GLOBAL SYMBOLS: | ||
64 | - for s in $bad_globals; do echo $s; done | ||
65 | - error=1 | ||
66 | -fi | ||
67 | +check_bad_public_symbols mpeg2 $builddir/../libmpeg2/.libs/libmpeg2.so | ||
68 | +check_bad_public_symbols mpeg2convert $builddir/../libmpeg2/convert/.libs/libmpeg2convert.so | ||
69 | |||
70 | exit $error | ||
diff --git a/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch b/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch deleted file mode 100644 index 5113ad44fe..0000000000 --- a/meta/recipes-multimedia/mpeg2dec/files/altivec_h_needed.patch +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | Add new method to judge whether <altivec.h> is needed | ||
2 | |||
3 | The original logic will use "typedef vector int t;" to judge | ||
4 | whether <altivec.h> is needed. altivec.h contains the following | ||
5 | statement: | ||
6 | |||
7 | #if !defined(__APPLE_ALTIVEC__) | ||
8 | #define vector __vector | ||
9 | #define pixel __pixel | ||
10 | #define bool | ||
11 | #endif | ||
12 | |||
13 | In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither | ||
14 | as vector, pixel, and bool. In order to make "typedef vector int t;" | ||
15 | pass the compilation, we need to include altivec.h. | ||
16 | |||
17 | However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler, | ||
18 | so as vector, pixel, and bool. We could not judge whether | ||
19 | altivec.h is needed by "typedef vector int t;". | ||
20 | Here we include another statement "int tmp = __CR6_EQ;", in | ||
21 | which __CR6_EQ is defined in altivec.h. | ||
22 | |||
23 | Upstream-Status: Pending | ||
24 | |||
25 | Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> | ||
26 | |||
27 | diff -ruN a/configure.in b/configure.in | ||
28 | --- a/configure.ac 2010-09-14 20:55:42.399687663 +0800 | ||
29 | +++ b/configure.ac 2010-09-14 20:56:43.403204648 +0800 | ||
30 | @@ -79,11 +79,11 @@ | ||
31 | CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS" | ||
32 | AC_MSG_CHECKING([if <altivec.h> is needed]) | ||
33 | AC_TRY_COMPILE([], | ||
34 | - [typedef vector int t; | ||
35 | + [typedef vector int t; int tmp = __CR6_EQ; | ||
36 | vec_ld(0, (unsigned char *)0);], | ||
37 | [have_altivec=yes; AC_MSG_RESULT(no)], | ||
38 | [AC_TRY_COMPILE([#include <altivec.h>], | ||
39 | - [typedef vector int t; vec_ld(0, (unsigned char *)0);], | ||
40 | + [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);], | ||
41 | [AC_DEFINE([HAVE_ALTIVEC_H],, | ||
42 | [Define to 1 if you have the <altivec.h> header.]) | ||
43 | have_altivec=yes; AC_MSG_RESULT(yes)], | ||
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb deleted file mode 100644 index d603602584..0000000000 --- a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | SUMMARY = "Library and test program for decoding MPEG-2 and MPEG-1 video streams" | ||
2 | DESCRIPTION = "mpeg2dec is a test program for libmpeg2. It decodes \ | ||
3 | mpeg-1 and mpeg-2 video streams, and also includes a demultiplexer \ | ||
4 | for mpeg-1 and mpeg-2 program streams. The main purpose of mpeg2dec \ | ||
5 | is to have a simple test bed for libmpeg2." | ||
6 | HOMEPAGE = "https://libmpeg2.sourceforge.io/" | ||
7 | SECTION = "libs" | ||
8 | LICENSE = "GPLv2+" | ||
9 | LICENSE_FLAGS = "commercial" | ||
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
11 | file://include/mpeg2.h;beginline=1;endline=22;md5=7766f4fcb58f0f8413c49a746f2ab89b" | ||
12 | |||
13 | SRC_URI = "http://libmpeg2.sourceforge.net/files/libmpeg2-${PV}.tar.gz \ | ||
14 | file://altivec_h_needed.patch \ | ||
15 | file://0001-check-for-available-arm-optimizations.patch \ | ||
16 | file://0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch \ | ||
17 | file://61_global-symbol-test.patch \ | ||
18 | file://0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch \ | ||
19 | " | ||
20 | |||
21 | S = "${WORKDIR}/libmpeg2-${PV}" | ||
22 | |||
23 | SRC_URI[md5sum] = "0f92c7454e58379b4a5a378485bbd8ef" | ||
24 | SRC_URI[sha256sum] = "dee22e893cb5fc2b2b6ebd60b88478ab8556cb3b93f9a0d7ce8f3b61851871d4" | ||
25 | |||
26 | UPSTREAM_CHECK_URI = "http://libmpeg2.sourceforge.net/downloads.html" | ||
27 | |||
28 | inherit autotools pkgconfig | ||
29 | |||
30 | EXTRA_OECONF = "--enable-shared --disable-sdl" | ||
31 | |||
32 | PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" | ||
33 | PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxv" | ||
34 | |||
35 | PACKAGES = "mpeg2dec-dbg mpeg2dec mpeg2dec-doc libmpeg2 libmpeg2-dev libmpeg2convert libmpeg2convert-dev libmpeg2-staticdev libmpeg2convert-staticdev" | ||
36 | |||
37 | FILES_${PN} = "${bindir}/*" | ||
38 | FILES_libmpeg2 = "${libdir}/libmpeg2.so.*" | ||
39 | FILES_libmpeg2convert = "${libdir}/libmpeg2convert.so.*" | ||
40 | FILES_libmpeg2-dev = "${libdir}/libmpeg2.so \ | ||
41 | ${libdir}/libmpeg2.la \ | ||
42 | ${libdir}/libmpeg2arch.la \ | ||
43 | ${libdir}/pkgconfig/libmpeg2.pc \ | ||
44 | ${includedir}/mpeg2dec/mpeg2.h" | ||
45 | FILES_libmpeg2-staticdev = "${libdir}/libmpeg2.a" | ||
46 | FILES_libmpeg2convert-dev = "${libdir}/libmpeg2convert.so \ | ||
47 | ${libdir}/libmpeg2convert.la \ | ||
48 | ${libdir}/libmpeg2convertarch.la \ | ||
49 | ${libdir}/pkgconfig/libmpeg2convert.pc \ | ||
50 | ${includedir}/mpeg2dec/mpeg2convert.h" | ||
51 | FILES_libmpeg2convert-staticdev = "${libdir}/libmpeg2convert.a" | ||
diff --git a/meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb b/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb index 35cad6ffc4..f7786e8588 100644 --- a/meta/recipes-multimedia/mpg123/mpg123_1.26.4.bb +++ b/meta/recipes-multimedia/mpg123/mpg123_1.32.6.bb | |||
@@ -6,11 +6,11 @@ HOMEPAGE = "http://mpg123.de/" | |||
6 | BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" | 6 | BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" |
7 | SECTION = "multimedia" | 7 | SECTION = "multimedia" |
8 | 8 | ||
9 | LICENSE = "LGPLv2.1" | 9 | LICENSE = "LGPL-2.1-only" |
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169" | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169" |
11 | 11 | ||
12 | SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" | 12 | SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" |
13 | SRC_URI[sha256sum] = "081991540df7a666b29049ad870f293cfa28863b36488ab4d58ceaa7b5846454" | 13 | SRC_URI[sha256sum] = "ccdd1d0abc31d73d8b435fc658c79049d0a905b30669b6a42a03ad169dc609e6" |
14 | 14 | ||
15 | UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar" | 15 | UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar" |
16 | 16 | ||
@@ -35,8 +35,11 @@ PACKAGECONFIG[sdl] = ",,libsdl2" | |||
35 | AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" | 35 | AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" |
36 | AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" | 36 | AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" |
37 | 37 | ||
38 | CACHED_CONFIGUREVARS:libc-musl = "ac_cv_sys_file_offset_bits=no" | ||
39 | |||
38 | EXTRA_OECONF = " \ | 40 | EXTRA_OECONF = " \ |
39 | --enable-shared \ | 41 | --enable-shared \ |
42 | --enable-largefile \ | ||
40 | --with-audio='${AUDIOMODS}' \ | 43 | --with-audio='${AUDIOMODS}' \ |
41 | ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ | 44 | ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ |
42 | ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ | 45 | ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ |
@@ -48,5 +51,5 @@ EXTRA_OECONF = " \ | |||
48 | #| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' | 51 | #| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' |
49 | #... | 52 | #... |
50 | #| make[3]: *** [equalizer.lo] Error 1 | 53 | #| make[3]: *** [equalizer.lo] Error 1 |
51 | ARM_INSTRUCTION_SET_armv4 = "arm" | 54 | ARM_INSTRUCTION_SET:armv4 = "arm" |
52 | ARM_INSTRUCTION_SET_armv5 = "arm" | 55 | ARM_INSTRUCTION_SET:armv5 = "arm" |
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc index 005cb36b8e..ae16056d24 100644 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc | |||
@@ -2,10 +2,10 @@ SUMMARY = "Sound server for Linux and Unix-like operating systems" | |||
2 | DESCRIPTION = "A general purpose sound server intended to run as a middleware \ | 2 | DESCRIPTION = "A general purpose sound server intended to run as a middleware \ |
3 | between your applications and your hardware devices, either using ALSA or OSS." | 3 | between your applications and your hardware devices, either using ALSA or OSS." |
4 | HOMEPAGE = "http://www.pulseaudio.org" | 4 | HOMEPAGE = "http://www.pulseaudio.org" |
5 | AUTHOR = "Lennart Poettering" | ||
6 | SECTION = "libs/multimedia" | 5 | SECTION = "libs/multimedia" |
7 | 6 | ||
8 | # Most of PulseAudio code is under LGPLv2.1+. There are a few exceptions: | 7 | # Most of PulseAudio code is under LGPL-2.1-or-later. There are a few |
8 | # exceptions: | ||
9 | # | 9 | # |
10 | # The "adrian" echo canceller variant has code under a non-standard permissive | 10 | # The "adrian" echo canceller variant has code under a non-standard permissive |
11 | # license. See src/modules/echo-cancel/adrian-license.txt for details. This | 11 | # license. See src/modules/echo-cancel/adrian-license.txt for details. This |
@@ -39,12 +39,13 @@ SECTION = "libs/multimedia" | |||
39 | # The dependency with the most complicated licensing considerations is libdbus. | 39 | # The dependency with the most complicated licensing considerations is libdbus. |
40 | # When PACKAGECONFIG[dbus] is enabled (like it is by default), libdbus will be | 40 | # When PACKAGECONFIG[dbus] is enabled (like it is by default), libdbus will be |
41 | # used by both the server and the client library (libpulse). Does this affect | 41 | # used by both the server and the client library (libpulse). Does this affect |
42 | # applications that use libpulse? It should be also noted that libdbus is | 42 | # applications that use libpulse? It should also be noted that libdbus is |
43 | # dual-licensed: either GPLv2+ or AFL-2 terms apply. Whose decision is it which | 43 | # dual-licensed: either GPL-2.0-or-later or AFL-2.0 terms apply. Whose decision |
44 | # of the licenses apply? What a mess. Some people hold the view that libdbus is | 44 | # is it which of the licenses apply? What a mess. Some people hold the view that |
45 | # a system library that is covered by the "special exception" in GPLv2's | 45 | # libdbus is a system library that is covered by the "special exception" in |
46 | # section 3, and therefore libdbus's GPL license doesn't affect PulseAudio. | 46 | # GPLv2's section 3, and therefore libdbus's GPL license doesn't affect |
47 | LICENSE = "LGPLv2.1+ & MIT & BSD-3-Clause" | 47 | # PulseAudio. |
48 | LICENSE = "LGPL-2.1-or-later & MIT & BSD-3-Clause" | ||
48 | 49 | ||
49 | LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \ | 50 | LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \ |
50 | file://GPL;md5=4325afd396febcb659c36b49533135d4 \ | 51 | file://GPL;md5=4325afd396febcb659c36b49533135d4 \ |
@@ -59,7 +60,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5cd938de1a7a53ea5adac38cc10c39 \ | |||
59 | " | 60 | " |
60 | 61 | ||
61 | # libtool is needed for libltdl, used in module loading. | 62 | # libtool is needed for libltdl, used in module loading. |
62 | DEPENDS = "libatomic-ops libsndfile1 libtool" | 63 | DEPENDS = "m4-native libatomic-ops libsndfile1 libtool" |
63 | # optional | 64 | # optional |
64 | DEPENDS += "udev alsa-lib glib-2.0" | 65 | DEPENDS += "udev alsa-lib glib-2.0" |
65 | DEPENDS += "speexdsp libxml-parser-perl-native libcap" | 66 | DEPENDS += "speexdsp libxml-parser-perl-native libcap" |
@@ -108,7 +109,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5' | |||
108 | " | 109 | " |
109 | 110 | ||
110 | PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus" | 111 | PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus" |
111 | PACKAGECONFIG[bluez5] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc" | 112 | PACKAGECONFIG[bluez5] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" |
112 | PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0-native glib-2.0" | 113 | PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0-native glib-2.0" |
113 | PACKAGECONFIG[ofono] = "-Dbluez5-ofono-headset=true,-Dbluez5-ofono-headset=false,ofono" | 114 | PACKAGECONFIG[ofono] = "-Dbluez5-ofono-headset=true,-Dbluez5-ofono-headset=false,ofono" |
114 | PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3" | 115 | PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3" |
@@ -133,20 +134,20 @@ set_cfg_value () { | |||
133 | fi | 134 | fi |
134 | } | 135 | } |
135 | 136 | ||
136 | do_compile_append () { | 137 | do_compile:append () { |
137 | if ${@bb.utils.contains('PACKAGECONFIG', 'autospawn-for-root', 'true', 'false', d)}; then | 138 | if ${@bb.utils.contains('PACKAGECONFIG', 'autospawn-for-root', 'true', 'false', d)}; then |
138 | set_cfg_value src/pulse/client.conf allow-autospawn-for-root yes | 139 | set_cfg_value src/pulse/client.conf allow-autospawn-for-root yes |
139 | fi | 140 | fi |
140 | } | 141 | } |
141 | 142 | ||
142 | do_install_append() { | 143 | do_install:append() { |
143 | install -d ${D}${sysconfdir}/default/volatiles | 144 | install -d ${D}${sysconfdir}/default/volatiles |
144 | install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse | 145 | install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/04_pulse |
145 | } | 146 | } |
146 | 147 | ||
147 | USERADD_PACKAGES = "pulseaudio-server" | 148 | USERADD_PACKAGES = "pulseaudio-server" |
148 | GROUPADD_PARAM_pulseaudio-server = "--system pulse" | 149 | GROUPADD_PARAM:pulseaudio-server = "--system pulse" |
149 | USERADD_PARAM_pulseaudio-server = "--system --home /var/run/pulse \ | 150 | USERADD_PARAM:pulseaudio-server = "--system --home /var/run/pulse \ |
150 | --no-create-home --shell /bin/false \ | 151 | --no-create-home --shell /bin/false \ |
151 | --groups audio,pulse --gid pulse pulse" | 152 | --groups audio,pulse --gid pulse pulse" |
152 | 153 | ||
@@ -168,58 +169,58 @@ PACKAGES =+ "\ | |||
168 | PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}" | 169 | PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'pulseaudio-module-console-kit', '', d)}" |
169 | 170 | ||
170 | #upgrade path: | 171 | #upgrade path: |
171 | RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf" | 172 | RREPLACES:pulseaudio-server = "libpulse-bin libpulse-conf" |
172 | 173 | ||
173 | PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*" | 174 | PACKAGES_DYNAMIC += "^pulseaudio-lib-.* ^pulseaudio-module-.*" |
174 | 175 | ||
175 | FILES_libpulsecore = "${libdir}/pulseaudio/libpulsecore*.so" | 176 | FILES:libpulsecore = "${libdir}/pulseaudio/libpulsecore*.so" |
176 | FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so" | 177 | FILES:libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so" |
177 | 178 | ||
178 | # client.conf configures the behaviour of libpulse, so it belongs in the same | 179 | # client.conf configures the behaviour of libpulse, so it belongs in the same |
179 | # package. | 180 | # package. |
180 | FILES_libpulse = "${libdir}/libpulse.so.* ${sysconfdir}/pulse/client.conf" | 181 | FILES:libpulse = "${libdir}/libpulse.so.* ${sysconfdir}/pulse/client.conf" |
181 | 182 | ||
182 | FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*" | 183 | FILES:libpulse-simple = "${libdir}/libpulse-simple.so.*" |
183 | FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*" | 184 | FILES:libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*" |
184 | 185 | ||
185 | FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake" | 186 | FILES:${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala" |
186 | FILES_${PN}-conf = "${sysconfdir}" | 187 | FILES:${PN}-bin += "${sysconfdir}/default/volatiles/04_pulse" |
187 | FILES_${PN}-bin += "${sysconfdir}/default/volatiles/04_pulse" | 188 | FILES:${PN}-pa-info = "${bindir}/pa-info" |
188 | FILES_${PN}-pa-info = "${bindir}/pa-info" | 189 | FILES:${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules */*/udev/rules.d/*.rules ${systemd_user_unitdir}/*" |
189 | FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules */*/udev/rules.d/*.rules ${systemd_user_unitdir}/*" | 190 | FILES:${PN}-server += "${datadir}/dbus-1/system.d/pulseaudio-system.conf" |
190 | 191 | ||
191 | #SYSTEMD_PACKAGES = "${PN}-server" | 192 | #SYSTEMD_PACKAGES = "${PN}-server" |
192 | SYSTEMD_SERVICE_${PN}-server = "pulseaudio.service" | 193 | SYSTEMD_SERVICE:${PN}-server = "pulseaudio.service" |
193 | 194 | ||
194 | FILES_${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so" | 195 | FILES:${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so" |
195 | 196 | ||
196 | # Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it) | 197 | # Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it) |
197 | FILES_${PN} = "" | 198 | FILES:${PN} = "" |
198 | ALLOW_EMPTY_${PN} = "1" | 199 | ALLOW_EMPTY:${PN} = "1" |
199 | 200 | ||
200 | CONFFILES_libpulse = "${sysconfdir}/pulse/client.conf" | 201 | CONFFILES:libpulse = "${sysconfdir}/pulse/client.conf" |
201 | 202 | ||
202 | CONFFILES_pulseaudio-server = "\ | 203 | CONFFILES:pulseaudio-server = "\ |
203 | ${sysconfdir}/pulse/default.pa \ | 204 | ${sysconfdir}/pulse/default.pa \ |
204 | ${sysconfdir}/pulse/daemon.conf \ | 205 | ${sysconfdir}/pulse/daemon.conf \ |
205 | ${sysconfdir}/pulse/system.pa \ | 206 | ${sysconfdir}/pulse/system.pa \ |
206 | " | 207 | " |
207 | 208 | ||
208 | pkg_postinst_${PN}-server() { | 209 | pkg_postinst:${PN}-server() { |
209 | if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then | 210 | if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then |
210 | ${sysconfdir}/init.d/populate-volatile.sh update | 211 | ${sysconfdir}/init.d/populate-volatile.sh update |
211 | fi | 212 | fi |
212 | } | 213 | } |
213 | 214 | ||
214 | python populate_packages_prepend() { | 215 | python populate_packages:prepend() { |
215 | plugindir = d.expand('${libdir}/pulse-${PV}/modules/') | 216 | plugindir = d.expand('${libdir}/pulseaudio/modules/') |
216 | do_split_packages(d, plugindir, r'^module-(.*)\.so$', '${PN}-module-%s', 'PulseAudio module for %s', extra_depends='', prepend=True) | 217 | do_split_packages(d, plugindir, r'^module-(.*)\.so$', '${PN}-module-%s', 'PulseAudio module for %s', extra_depends='', prepend=True) |
217 | do_split_packages(d, plugindir, r'^lib(.*)\.so$', '${PN}-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True) | 218 | do_split_packages(d, plugindir, r'^lib(.*)\.so$', '${PN}-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True) |
218 | } | 219 | } |
219 | 220 | ||
220 | # pa-info is a bash script that collects information about the audio setup. | 221 | # pa-info is a bash script that collects information about the audio setup. |
221 | # It's primarily useful for attaching an information dump when reporting bugs. | 222 | # It's primarily useful for attaching an information dump when reporting bugs. |
222 | RDEPENDS_${PN}-pa-info = "\ | 223 | RDEPENDS:${PN}-pa-info = "\ |
223 | alsa-utils-amixer \ | 224 | alsa-utils-amixer \ |
224 | alsa-utils-aplay \ | 225 | alsa-utils-aplay \ |
225 | alsa-utils-scripts \ | 226 | alsa-utils-scripts \ |
@@ -227,7 +228,7 @@ RDEPENDS_${PN}-pa-info = "\ | |||
227 | ${PN}-server \ | 228 | ${PN}-server \ |
228 | " | 229 | " |
229 | 230 | ||
230 | RDEPENDS_pulseaudio-server = " \ | 231 | RDEPENDS:pulseaudio-server = " \ |
231 | pulseaudio-module-filter-apply \ | 232 | pulseaudio-module-filter-apply \ |
232 | pulseaudio-module-filter-heuristics \ | 233 | pulseaudio-module-filter-heuristics \ |
233 | pulseaudio-module-udev-detect \ | 234 | pulseaudio-module-udev-detect \ |
@@ -253,23 +254,23 @@ RDEPENDS_pulseaudio-server = " \ | |||
253 | # If the server is installed, it's usually desirable to make ALSA applications | 254 | # If the server is installed, it's usually desirable to make ALSA applications |
254 | # use PulseAudio. alsa-plugins-pulseaudio-conf will install the configuration | 255 | # use PulseAudio. alsa-plugins-pulseaudio-conf will install the configuration |
255 | # that makes the PulseAudio plugin the default ALSA device. | 256 | # that makes the PulseAudio plugin the default ALSA device. |
256 | RDEPENDS_pulseaudio-server += "alsa-plugins-pulseaudio-conf" | 257 | RDEPENDS:pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}" |
257 | 258 | ||
258 | # pulseaudio-module-console-kit is built whenever dbus is enabled by PACKAGECONFIG | 259 | # pulseaudio-module-console-kit is built whenever dbus is enabled by PACKAGECONFIG |
259 | # but consolekit depends on libx11 and is available only for DISTRO with x11 in DISTRO_FEATURES | 260 | # but consolekit depends on libx11 and is available only for DISTRO with x11 in DISTRO_FEATURES |
260 | RDEPENDS_pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}" | 261 | RDEPENDS:pulseaudio-module-console-kit =+ "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit x11', 'consolekit', '', d)}" |
261 | RDEPENDS_pulseaudio-misc += "pulseaudio-module-cli-protocol-unix" | 262 | RDEPENDS:pulseaudio-misc += "pulseaudio-module-cli-protocol-unix" |
262 | 263 | ||
263 | FILES_${PN}-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer" | 264 | FILES:${PN}-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer" |
264 | 265 | ||
265 | GSETTINGS_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'gsettings', '${PN}-module-gsettings', '', d)}" | 266 | GSETTINGS_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'gsettings', '${PN}-module-gsettings', '', d)}" |
266 | FILES_${PN}-module-gsettings += "${libexecdir}/pulse/gsettings-helper ${datadir}/GConf/gsettings ${datadir}/glib-2.0/schemas" | 267 | FILES:${PN}-module-gsettings += "${libexecdir}/pulse/gsettings-helper ${datadir}/GConf/gsettings ${datadir}/glib-2.0/schemas" |
267 | 268 | ||
268 | # The console-kit module is good to have on X11 systems (it keeps PulseAudio | 269 | # The console-kit module is good to have on X11 systems (it keeps PulseAudio |
269 | # running for the duration of the user login session). The device-manager and | 270 | # running for the duration of the user login session). The device-manager and |
270 | # x11-* modules are referenced from the start-pulseaudio-x11 script, so those | 271 | # x11-* modules are referenced from the start-pulseaudio-x11 script, so those |
271 | # modules must be installed when X11 is enabled. | 272 | # modules must be installed when X11 is enabled. |
272 | RDEPENDS_pulseaudio-server += "\ | 273 | RDEPENDS:pulseaudio-server += "\ |
273 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '\ | 274 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '\ |
274 | pulseaudio-module-device-manager \ | 275 | pulseaudio-module-device-manager \ |
275 | pulseaudio-module-x11-cork-request \ | 276 | pulseaudio-module-x11-cork-request \ |
@@ -277,6 +278,6 @@ RDEPENDS_pulseaudio-server += "\ | |||
277 | pulseaudio-module-x11-xsmp \ | 278 | pulseaudio-module-x11-xsmp \ |
278 | ', '', d)}" | 279 | ', '', d)}" |
279 | 280 | ||
280 | RDEPENDS_pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', \ | 281 | RDEPENDS:pulseaudio-server += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', \ |
281 | bb.utils.contains('DISTRO_FEATURES', 'systemd', 'pulseaudio-module-systemd-login', 'pulseaudio-module-console-kit', d), \ | 282 | bb.utils.contains('DISTRO_FEATURES', 'systemd', 'pulseaudio-module-systemd-login', 'pulseaudio-module-console-kit', d), \ |
282 | '', d)}" | 283 | '', d)}" |
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch deleted file mode 100644 index d60a9a211f..0000000000 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch +++ /dev/null | |||
@@ -1,67 +0,0 @@ | |||
1 | From 6d202833a5ae241eeb648631cf95090c452198f9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Tanu Kaskinen <tanuk@iki.fi> | ||
3 | Date: Fri, 14 Feb 2020 07:29:33 +0200 | ||
4 | Subject: [PATCH] build-sys: Add an option for enabling/disabling Valgrind | ||
5 | |||
6 | In OpenEmbedded the PulseAudio recipe currently disables Valgrind | ||
7 | support by passing "ac_cv_header_valgrind_memcheck_h=no" to the | ||
8 | configure script (this was added to make it deterministic whether | ||
9 | Valgrdind support gets enabled or not). I'm converting the PulseAudio | ||
10 | recipe to use Meson, and I needed an option to disable Valgrind. | ||
11 | |||
12 | Upstream-Status: Backport | ||
13 | |||
14 | Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> | ||
15 | --- | ||
16 | meson.build | 6 +++++- | ||
17 | meson_options.txt | 3 +++ | ||
18 | 2 files changed, 8 insertions(+), 1 deletion(-) | ||
19 | |||
20 | diff --git a/meson.build b/meson.build | ||
21 | index 658eeee57..258962724 100644 | ||
22 | --- a/meson.build | ||
23 | +++ b/meson.build | ||
24 | @@ -220,7 +220,6 @@ check_headers = [ | ||
25 | 'sys/un.h', | ||
26 | 'sys/wait.h', | ||
27 | 'syslog.h', | ||
28 | - 'valgrind/memcheck.h', | ||
29 | 'xlocale.h', | ||
30 | ] | ||
31 | |||
32 | @@ -231,6 +230,10 @@ foreach h : check_headers | ||
33 | endif | ||
34 | endforeach | ||
35 | |||
36 | +if cc.has_header('valgrind/memcheck.h', required: get_option('valgrind')) | ||
37 | + cdata.set('HAVE_VALGRIND_MEMCHECK_H', 1) | ||
38 | +endif | ||
39 | + | ||
40 | # FIXME: move this to the above set | ||
41 | if cc.has_header('pthread.h') | ||
42 | cdata.set('HAVE_PTHREAD', 1) | ||
43 | @@ -841,6 +844,7 @@ summary = [ | ||
44 | 'Enable SoXR (resampler): @0@'.format(soxr_dep.found()), | ||
45 | 'Enable WebRTC echo canceller: @0@'.format(webrtc_dep.found()), | ||
46 | 'Enable Gcov coverage: @0@'.format(get_option('gcov')), | ||
47 | + 'Enable Valgrind: @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')), | ||
48 | 'Enable man pages: @0@'.format(get_option('man')), | ||
49 | 'Enable unit tests: @0@'.format(get_option('tests')), | ||
50 | '', | ||
51 | diff --git a/meson_options.txt b/meson_options.txt | ||
52 | index 824f24e08..115cc84af 100644 | ||
53 | --- a/meson_options.txt | ||
54 | +++ b/meson_options.txt | ||
55 | @@ -138,6 +138,9 @@ option('systemd', | ||
56 | option('udev', | ||
57 | type : 'feature', value : 'auto', | ||
58 | description : 'Optional udev support') | ||
59 | +option('valgrind', | ||
60 | + type : 'feature', value : 'auto', | ||
61 | + description : 'Optional Valgrind support') | ||
62 | option('x11', | ||
63 | type : 'feature', value : 'auto', | ||
64 | description : 'Optional X11 support') | ||
65 | -- | ||
66 | 2.20.1 | ||
67 | |||
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch new file mode 100644 index 0000000000..b1a43bd7f0 --- /dev/null +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | From 4ee244d0824e772ab35abb0f9df5e8088e16fc5d Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Kanavin <alex.kanavin@gmail.com> | ||
3 | Date: Mon, 26 Apr 2021 19:30:40 +0200 | ||
4 | Subject: [PATCH] doxygen/meson.build: remove dependency on doxygen binary | ||
5 | |||
6 | New meson refuses to complete confuguration if doxygen is absent | ||
7 | even if this target is never actually run. As we never run it, | ||
8 | let's remove it, until upstream and/or meson figure out that it's | ||
9 | optional and should be treated as such. | ||
10 | |||
11 | Upstream-Status: Inappropriate [needs proper upstream fix] | ||
12 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
13 | --- | ||
14 | doxygen/meson.build | 2 -- | ||
15 | 1 file changed, 2 deletions(-) | ||
16 | |||
17 | diff --git a/doxygen/meson.build b/doxygen/meson.build | ||
18 | index afc0e49..df55c83 100644 | ||
19 | --- a/doxygen/meson.build | ||
20 | +++ b/doxygen/meson.build | ||
21 | @@ -6,5 +6,3 @@ doxygen_conf = configure_file( | ||
22 | configuration : cdata, | ||
23 | ) | ||
24 | |||
25 | -run_target('doxygen', | ||
26 | - command : ['doxygen', doxygen_conf]) | ||
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson-Check-for-__get_cpuid.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson-Check-for-__get_cpuid.patch deleted file mode 100644 index c9d8abcbf2..0000000000 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson-Check-for-__get_cpuid.patch +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
1 | From 9d0dc8aedd08d77797f90fa6075a59613f18bf0d Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sun, 20 Dec 2020 07:56:07 -0800 | ||
4 | Subject: [PATCH] meson: Check for __get_cpuid | ||
5 | |||
6 | checking for presence of cpuid.h header alone is not sufficient in some case to use | ||
7 | cpuid related functions. e.g. when using clang which is built for | ||
8 | multiple targets will have cpuid.h header as part of compiler headers in | ||
9 | distribution but one maybe compiling pulseaudion for non-x86 target. The | ||
10 | current check in meson succeeds and then compile fails later because | ||
11 | cpuid.h is x86-specific header. Therefore checking for symbol that is | ||
12 | needed makes this robust, so even if header exist it will try to ensure | ||
13 | the given symbol can be used | ||
14 | |||
15 | Fixes | ||
16 | src/pulsecore/core-util.c:113: | ||
17 | | /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/pulseaudio/14.0-r0/recipe-sysroot-native/usr/lib/clang/11.0.1/include/cpuid.h:11:2: error: this header is for x86 only | ||
18 | | #error this header is for x86 only | ||
19 | | ^ | ||
20 | |||
21 | Upstream-Status: Pending | ||
22 | |||
23 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
24 | Cc: Tanu Kaskinen <tanuk@iki.fi> | ||
25 | --- | ||
26 | meson.build | 5 ++++- | ||
27 | src/pulsecore/core-util.c | 2 +- | ||
28 | src/pulsecore/cpu-x86.c | 2 +- | ||
29 | 3 files changed, 6 insertions(+), 3 deletions(-) | ||
30 | |||
31 | diff --git a/meson.build b/meson.build | ||
32 | index 2589627..5f5127e 100644 | ||
33 | --- a/meson.build | ||
34 | +++ b/meson.build | ||
35 | @@ -185,7 +185,6 @@ endif | ||
36 | check_headers = [ | ||
37 | 'arpa/inet.h', | ||
38 | 'byteswap.h', | ||
39 | - 'cpuid.h', | ||
40 | 'dlfcn.h', | ||
41 | 'execinfo.h', | ||
42 | 'grp.h', | ||
43 | @@ -243,6 +242,10 @@ if cc.has_header_symbol('pthread.h', 'PTHREAD_PRIO_INHERIT') | ||
44 | cdata.set('HAVE_PTHREAD_PRIO_INHERIT', 1) | ||
45 | endif | ||
46 | |||
47 | +if cc.has_header_symbol('cpuid.h', '__get_cpuid') | ||
48 | + cdata.set('HAVE_GET_CPUID', 1) | ||
49 | +endif | ||
50 | + | ||
51 | # Functions | ||
52 | |||
53 | check_functions = [ | ||
54 | diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c | ||
55 | index 601b1d1..6f34e7c 100644 | ||
56 | --- a/src/pulsecore/core-util.c | ||
57 | +++ b/src/pulsecore/core-util.c | ||
58 | @@ -109,7 +109,7 @@ | ||
59 | #include <sys/personality.h> | ||
60 | #endif | ||
61 | |||
62 | -#ifdef HAVE_CPUID_H | ||
63 | +#ifdef HAVE_GET_CPUID | ||
64 | #include <cpuid.h> | ||
65 | #endif | ||
66 | |||
67 | diff --git a/src/pulsecore/cpu-x86.c b/src/pulsecore/cpu-x86.c | ||
68 | index 4e59e14..86595d4 100644 | ||
69 | --- a/src/pulsecore/cpu-x86.c | ||
70 | +++ b/src/pulsecore/cpu-x86.c | ||
71 | @@ -24,7 +24,7 @@ | ||
72 | |||
73 | #include <stdint.h> | ||
74 | |||
75 | -#ifdef HAVE_CPUID_H | ||
76 | +#ifdef HAVE_GET_CPUID | ||
77 | #include <cpuid.h> | ||
78 | #endif | ||
79 | |||
80 | -- | ||
81 | 2.29.2 | ||
82 | |||
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb index 03b99306b3..54c79b4097 100644 --- a/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb +++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_17.0.bb | |||
@@ -3,10 +3,8 @@ require pulseaudio.inc | |||
3 | SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ | 3 | SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ |
4 | file://0001-client-conf-Add-allow-autospawn-for-root.patch \ | 4 | file://0001-client-conf-Add-allow-autospawn-for-root.patch \ |
5 | file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \ | 5 | file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \ |
6 | file://0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch \ | ||
7 | file://0001-meson-Check-for-__get_cpuid.patch \ | ||
8 | file://volatiles.04_pulse \ | 6 | file://volatiles.04_pulse \ |
7 | file://0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch \ | ||
9 | " | 8 | " |
10 | SRC_URI[md5sum] = "1efc916251910f1e9d4df7810e3e69f8" | 9 | SRC_URI[sha256sum] = "053794d6671a3e397d849e478a80b82a63cb9d8ca296bd35b73317bb5ceb87b5" |
11 | SRC_URI[sha256sum] = "75d3f7742c1ae449049a4c88900e454b8b350ecaa8c544f3488a2562a9ff66f1" | ||
12 | UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar" | 10 | UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar" |
diff --git a/meta/recipes-multimedia/sbc/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch b/meta/recipes-multimedia/sbc/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch deleted file mode 100644 index 11cec74fbb..0000000000 --- a/meta/recipes-multimedia/sbc/sbc/0001-sbc_primitives-Fix-build-on-non-x86.patch +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | From f4a1224323e386090a44bf70ee0ac9877ba7fb0d Mon Sep 17 00:00:00 2001 | ||
2 | From: Marius Bakke <marius@gnu.org> | ||
3 | Date: Tue, 22 Dec 2020 11:04:26 +0000 | ||
4 | Subject: [PATCH] sbc_primitives: Fix build on non-x86. | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Don't call __builtin_cpu_init unless targeting i386 or x86_64. | ||
10 | Otherwise we get an error at link time: | ||
11 | |||
12 | CC sbc/sbc_primitives.lo | ||
13 | sbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’: | ||
14 | sbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration] | ||
15 | [...] | ||
16 | CCLD src/sbcdec | ||
17 | ld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives': | ||
18 | sbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init' | ||
19 | |||
20 | Upstream-Status: Backport | ||
21 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> | ||
22 | --- | ||
23 | sbc/sbc_primitives.c | 2 ++ | ||
24 | 1 file changed, 2 insertions(+) | ||
25 | |||
26 | diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c | ||
27 | index 97a75be..09c214a 100644 | ||
28 | --- a/sbc/sbc_primitives.c | ||
29 | +++ b/sbc/sbc_primitives.c | ||
30 | @@ -593,6 +593,7 @@ static int sbc_calc_scalefactors_j( | ||
31 | |||
32 | static void sbc_init_primitives_x86(struct sbc_encoder_state *state) | ||
33 | { | ||
34 | +#if defined(__x86_64__) || defined(__i386__) | ||
35 | __builtin_cpu_init(); | ||
36 | |||
37 | #ifdef SBC_BUILD_WITH_MMX_SUPPORT | ||
38 | @@ -604,6 +605,7 @@ static void sbc_init_primitives_x86(struct sbc_encoder_state *state) | ||
39 | if (__builtin_cpu_supports("sse4.2")) | ||
40 | sbc_init_primitives_sse(state); | ||
41 | #endif | ||
42 | +#endif | ||
43 | } | ||
44 | |||
45 | /* | ||
diff --git a/meta/recipes-multimedia/sbc/sbc_1.5.bb b/meta/recipes-multimedia/sbc/sbc_2.0.bb index 04d82320c9..d25be9e80c 100644 --- a/meta/recipes-multimedia/sbc/sbc_1.5.bb +++ b/meta/recipes-multimedia/sbc/sbc_2.0.bb | |||
@@ -2,9 +2,9 @@ SUMMARY = "SBC Audio Codec" | |||
2 | DESCRIPTION = "Bluetooth low-complexity, subband codec (SBC) library." | 2 | DESCRIPTION = "Bluetooth low-complexity, subband codec (SBC) library." |
3 | HOMEPAGE = "https://www.bluez.org" | 3 | HOMEPAGE = "https://www.bluez.org" |
4 | SECTION = "libs" | 4 | SECTION = "libs" |
5 | LICENSE = "GPLv2+ & LGPLv2.1+" | 5 | LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" |
6 | LICENSE_${PN} = "LGPLv2.1+" | 6 | LICENSE:${PN} = "LGPL-2.1-or-later" |
7 | LICENSE_${PN}-examples = "GPLv2+" | 7 | LICENSE:${PN}-examples = "GPL-2.0-or-later" |
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ | 8 | LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ |
9 | file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \ | 9 | file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \ |
10 | file://src/sbcenc.c;beginline=1;endline=24;md5=08e7a70b127f4100ff2cd7d629147d8d \ | 10 | file://src/sbcenc.c;beginline=1;endline=24;md5=08e7a70b127f4100ff2cd7d629147d8d \ |
@@ -12,13 +12,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ | |||
12 | 12 | ||
13 | DEPENDS = "libsndfile1" | 13 | DEPENDS = "libsndfile1" |
14 | 14 | ||
15 | SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz \ | 15 | SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz" |
16 | file://0001-sbc_primitives-Fix-build-on-non-x86.patch \ | ||
17 | " | ||
18 | 16 | ||
19 | SRC_URI[sha256sum] = "0cbad69823a99e8421fe0700e8cf9eeb8fa0c1ad28e8dbc2182b3353507931d2" | 17 | SRC_URI[sha256sum] = "8f12368e1dbbf55e14536520473cfb338c84b392939cc9b64298360fd4a07992" |
20 | 18 | ||
21 | inherit autotools pkgconfig | 19 | inherit autotools pkgconfig |
22 | 20 | ||
23 | PACKAGES =+ "${PN}-examples" | 21 | PACKAGES =+ "${PN}-examples" |
24 | FILES_${PN}-examples += "${bindir}/*" | 22 | FILES:${PN}-examples += "${bindir}/*" |
diff --git a/meta/recipes-multimedia/speex/speex_1.2.0.bb b/meta/recipes-multimedia/speex/speex_1.2.1.bb index 3a0911d6f8..c40198fa8f 100644 --- a/meta/recipes-multimedia/speex/speex_1.2.0.bb +++ b/meta/recipes-multimedia/speex/speex_1.2.1.bb | |||
@@ -3,15 +3,15 @@ DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compressi | |||
3 | HOMEPAGE = "http://www.speex.org" | 3 | HOMEPAGE = "http://www.speex.org" |
4 | SECTION = "libs" | 4 | SECTION = "libs" |
5 | LICENSE = "BSD-3-Clause" | 5 | LICENSE = "BSD-3-Clause" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8 \ | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=eff3f76350f52a99a3df5eec6b79c02a \ |
7 | file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50" | 7 | file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50 \ |
8 | " | ||
8 | DEPENDS = "libogg speexdsp" | 9 | DEPENDS = "libogg speexdsp" |
9 | 10 | ||
10 | SRC_URI = "http://downloads.xiph.org/releases/speex/speex-${PV}.tar.gz" | 11 | SRC_URI = "http://downloads.xiph.org/releases/speex/speex-${PV}.tar.gz" |
11 | UPSTREAM_CHECK_REGEX = "speex-(?P<pver>\d+(\.\d+)+)\.tar" | 12 | UPSTREAM_CHECK_REGEX = "speex-(?P<pver>\d+(\.\d+)+)\.tar" |
12 | 13 | ||
13 | SRC_URI[md5sum] = "8ab7bb2589110dfaf0ed7fa7757dc49c" | 14 | SRC_URI[sha256sum] = "4b44d4f2b38a370a2d98a78329fefc56a0cf93d1c1be70029217baae6628feea" |
14 | SRC_URI[sha256sum] = "eaae8af0ac742dc7d542c9439ac72f1f385ce838392dc849cae4536af9210094" | ||
15 | 15 | ||
16 | inherit autotools pkgconfig lib_package | 16 | inherit autotools pkgconfig lib_package |
17 | 17 | ||
diff --git a/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb b/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb index 6369646761..435b56bbb8 100644 --- a/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb +++ b/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb | |||
@@ -3,14 +3,13 @@ DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library. | |||
3 | HOMEPAGE = "http://www.speex.org" | 3 | HOMEPAGE = "http://www.speex.org" |
4 | SECTION = "libs" | 4 | SECTION = "libs" |
5 | LICENSE = "BSD-3-Clause" | 5 | LICENSE = "BSD-3-Clause" |
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8" | 6 | LIC_FILES_CHKSUM = "file://COPYING;md5=eff3f76350f52a99a3df5eec6b79c02a" |
7 | 7 | ||
8 | SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz" | 8 | SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz" |
9 | 9 | ||
10 | UPSTREAM_CHECK_REGEX = "speexdsp-(?P<pver>\d+(\.\d+)+)\.tar" | 10 | UPSTREAM_CHECK_REGEX = "speexdsp-(?P<pver>\d+(\.\d+)+)\.tar" |
11 | 11 | ||
12 | SRC_URI[md5sum] = "b722df341576dc185d897131321008fc" | 12 | SRC_URI[sha256sum] = "8c777343e4a6399569c72abc38a95b24db56882c83dbdb6c6424a5f4aeb54d3d" |
13 | SRC_URI[sha256sum] = "682042fc6f9bee6294ec453f470dadc26c6ff29b9c9e9ad2ffc1f4312fd64771" | ||
14 | 13 | ||
15 | inherit autotools pkgconfig | 14 | inherit autotools pkgconfig |
16 | 15 | ||
@@ -21,7 +20,9 @@ EXTRA_OECONF = "\ | |||
21 | 20 | ||
22 | # speexdsp was split off from speex in 1.2rc2. Older versions of speex can't | 21 | # speexdsp was split off from speex in 1.2rc2. Older versions of speex can't |
23 | # be installed together with speexdsp, since they contain overlapping files. | 22 | # be installed together with speexdsp, since they contain overlapping files. |
24 | RCONFLICTS_${PN} = "speex (< 1.2rc2)" | 23 | RCONFLICTS:${PN} = "speex (< 1.2rc2)" |
25 | RCONFLICTS_${PN}-dbg = "speex-dbg (< 1.2rc2)" | 24 | RCONFLICTS:${PN}-dbg = "speex-dbg (< 1.2rc2)" |
26 | RCONFLICTS_${PN}-dev = "speex-dev (< 1.2rc2)" | 25 | RCONFLICTS:${PN}-dev = "speex-dev (< 1.2rc2)" |
27 | RCONFLICTS_${PN}-staticdev = "speex-staticdev (< 1.2rc2)" | 26 | RCONFLICTS:${PN}-staticdev = "speex-staticdev (< 1.2rc2)" |
27 | |||
28 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-multimedia/webp/libwebp_1.2.0.bb b/meta/recipes-multimedia/webp/libwebp_1.4.0.bb index 33bec2fe70..d922970479 100644 --- a/meta/recipes-multimedia/webp/libwebp_1.2.0.bb +++ b/meta/recipes-multimedia/webp/libwebp_1.4.0.bb | |||
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \ | |||
14 | file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" | 14 | file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" |
15 | 15 | ||
16 | SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" | 16 | SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" |
17 | SRC_URI[sha256sum] = "2fc8bbde9f97f2ab403c0224fb9ca62b2e6852cbc519e91ceaa7c153ffd88a0c" | 17 | SRC_URI[sha256sum] = "61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5" |
18 | 18 | ||
19 | UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" | 19 | UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" |
20 | 20 | ||
@@ -30,8 +30,8 @@ EXTRA_OECONF = " \ | |||
30 | EXTRA_OECONF_ARM = " \ | 30 | EXTRA_OECONF_ARM = " \ |
31 | ${@bb.utils.contains("TUNE_FEATURES","neon","--enable-neon","--disable-neon",d)} \ | 31 | ${@bb.utils.contains("TUNE_FEATURES","neon","--enable-neon","--disable-neon",d)} \ |
32 | " | 32 | " |
33 | EXTRA_OECONF_append_arm = " ${EXTRA_OECONF_ARM}" | 33 | EXTRA_OECONF:append:arm = " ${EXTRA_OECONF_ARM}" |
34 | EXTRA_OECONF_append_armeb = " ${EXTRA_OECONF_ARM}" | 34 | EXTRA_OECONF:append:armeb = " ${EXTRA_OECONF_ARM}" |
35 | 35 | ||
36 | inherit autotools lib_package | 36 | inherit autotools lib_package |
37 | 37 | ||
@@ -51,5 +51,7 @@ PACKAGECONFIG[gl] = "--enable-gl,--disable-gl,mesa-glut" | |||
51 | 51 | ||
52 | PACKAGES =+ "${PN}-gif2webp" | 52 | PACKAGES =+ "${PN}-gif2webp" |
53 | 53 | ||
54 | DESCRIPTION_${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP" | 54 | DESCRIPTION:${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP" |
55 | FILES_${PN}-gif2webp = "${bindir}/gif2webp" | 55 | FILES:${PN}-gif2webp = "${bindir}/gif2webp" |
56 | |||
57 | BBCLASSEXTEND += "native nativesdk" | ||
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb index f95fb0c41e..e7d9e75e8d 100644 --- a/meta/recipes-multimedia/x264/x264_git.bb +++ b/meta/recipes-multimedia/x264/x264_git.bb | |||
@@ -2,32 +2,32 @@ SUMMARY = "H.264/MPEG-4 AVC video encoder" | |||
2 | DESCRIPTION = "A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format." | 2 | DESCRIPTION = "A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format." |
3 | HOMEPAGE = "http://www.videolan.org/developers/x264.html" | 3 | HOMEPAGE = "http://www.videolan.org/developers/x264.html" |
4 | 4 | ||
5 | LICENSE = "GPLv2" | 5 | LICENSE = "GPL-2.0-only" |
6 | LICENSE_FLAGS = "commercial" | 6 | LICENSE_FLAGS = "commercial" |
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" |
8 | 8 | ||
9 | DEPENDS = "nasm-native" | 9 | DEPENDS = "nasm-native" |
10 | 10 | ||
11 | SRC_URI = "git://github.com/mirror/x264;branch=stable \ | 11 | SRC_URI = "git://github.com/mirror/x264;branch=stable;protocol=https \ |
12 | file://don-t-default-to-cortex-a9-with-neon.patch \ | 12 | file://don-t-default-to-cortex-a9-with-neon.patch \ |
13 | file://Fix-X32-build-by-disabling-asm.patch \ | 13 | file://Fix-X32-build-by-disabling-asm.patch \ |
14 | " | 14 | " |
15 | UPSTREAM_CHECK_COMMITS = "1" | 15 | UPSTREAM_CHECK_COMMITS = "1" |
16 | 16 | ||
17 | SRCREV = "544c61f082194728d0391fb280a6e138ba320a96" | 17 | SRCREV = "baee400fa9ced6f5481a728138fed6e867b0ff7f" |
18 | 18 | ||
19 | PV = "r3039+git${SRCPV}" | 19 | PV = "r3039+git" |
20 | 20 | ||
21 | S = "${WORKDIR}/git" | 21 | S = "${WORKDIR}/git" |
22 | 22 | ||
23 | inherit lib_package pkgconfig | 23 | inherit lib_package pkgconfig |
24 | 24 | ||
25 | X264_DISABLE_ASM = "" | 25 | X264_DISABLE_ASM = "" |
26 | X264_DISABLE_ASM_x86 = "--disable-asm" | 26 | X264_DISABLE_ASM:x86 = "--disable-asm" |
27 | X264_DISABLE_ASM_armv4 = "--disable-asm" | 27 | X264_DISABLE_ASM:armv4 = "--disable-asm" |
28 | X264_DISABLE_ASM_armv5 = "--disable-asm" | 28 | X264_DISABLE_ASM:armv5 = "--disable-asm" |
29 | X264_DISABLE_ASM_powerpc = "${@bb.utils.contains("TUNE_FEATURES", "spe", "--disable-asm", "", d)}" | 29 | X264_DISABLE_ASM:powerpc = "${@bb.utils.contains("TUNE_FEATURES", "spe", "--disable-asm", "", d)}" |
30 | X264_DISABLE_ASM_mipsarch = "${@bb.utils.contains("TUNE_FEATURES", "r6", "", "--disable-asm", d)}" | 30 | X264_DISABLE_ASM:mipsarch = "${@bb.utils.contains("TUNE_FEATURES", "r6", "", "--disable-asm", d)}" |
31 | 31 | ||
32 | EXTRA_OECONF = '--prefix=${prefix} \ | 32 | EXTRA_OECONF = '--prefix=${prefix} \ |
33 | --host=${HOST_SYS} \ | 33 | --host=${HOST_SYS} \ |