summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/alsa
AgeCommit message (Collapse)Author
2021-03-11recipes-multimedia: Add missing HOMEPAGE and DESCRIPTION for recipes.Meh Mbeh Ida Delphine
Fixes: [YOCTO #13471] Signed-off-by: Ida Delphine <idadelm@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 312994268bb68a012a61c99e1c3697e8de60a2ce) Signed-off-by: Steve Sakoman <steve@sakoman.com>
2020-11-09alsa-utils: Fix license to GPLv2 onlyRichard Purdie
Parts of alsa-utils are v2 only, parts are v2 or later. The effect is the end result is GPLv2 and there seems little value in marking everything as being a mixture of both. Fix LICENSE to match reality. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit a9a17a991174b732597e21045763ea851f486a01) Signed-off-by: Steve Sakoman <steve@sakoman.com>
2020-09-28alsa-plugins: improve .la removalRoss Burton
Don't assume that the .la files are installed, because some libtool alternatives don't install these. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit e92b24368b71e4b178f81097b2a8d141c3b65481) Signed-off-by: Steve Sakoman <steve@sakoman.com>
2020-08-19alsa-ucm-conf: use ${datadir} in do_install()Mikko Rapeli
Fixes build with custom directory structure. Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 710567168eca3d9a580f768a82db033f1cca3cec) Signed-off-by: Steve Sakoman <steve@sakoman.com>
2020-08-19alsa-topology-conf: use ${datadir} in do_install()Mikko Rapeli
Fixes build with custom directory structure. Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 9eec98b3842bb046cbd202140b9b5ccf09d20466) Signed-off-by: Steve Sakoman <steve@sakoman.com>
2020-01-10alsa-plugins: 1.1.9 -> 1.2.1Tanu Kaskinen
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-10alsa-utils: 1.1.9 -> 1.2.1Tanu Kaskinen
I moved the ALLOW_EMPTY line next to the line that sets FILES to "". That makes it easier to see that the package is not only allowed to be empty, but forced to be empty. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-10alsa-topology-conf: new recipe, version 1.2.1Tanu Kaskinen
The topology configuration files were moved from the alsa-lib repository to a new alsa-topology-conf repository. The move was accompanied by a license change from LGPL2.1 to BSD-3-Clause. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-10alsa-ucm-conf: new recipe, version 1.2.1.2Tanu Kaskinen
The UCM configuration files were moved from the alsa-lib repository to a new alsa-ucm-conf repository. The move was accompanied by a license change from LGPL2.1 to BSD-3-Clause. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-10alsa-lib: 1.1.9 -> 1.2.1.2Tanu Kaskinen
Changelogs: https://alsa-project.org/wiki/Changes_v1.1.9_v1.2.1 https://alsa-project.org/wiki/Changes_v1.2.1_v1.2.1.1 https://alsa-project.org/wiki/Changes_v1.2.1.1_v1.2.1.2 This upgrade brings support for the new "UCM2" configuration format. Another big change is that the UCM and topology configuration files were moved to separate repositories, so those are removed from alsa-lib and will need to be packaged separately. The topology API was moved from libasound to a separate libatopology library. This seems like a recipe for regressions for applications that used to use libasound for the topology stuff, but I don't think there are many applications in existence that use the topology API. I hope the upstream knows what they are doing. Patches added: 0001-configure.ac-remove-an-unnecessary-libtool-fix.patch This fixes a failure during configure. 0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch 0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch Backports. I don't know if these are regression fixes, but since the UCM code was heavily worked on in this upgrade, it seems likely that these patches fix regressions. 0003-namehint-correct-the-args-check.patch 0004-namehint-improve-the-previous-patch-check-the-return.patch Backports. A change in alsa-plugins caused a regression in the pulse plugin, but that was actually due to a bug in alsa-lib, which is fixed by these patches. 0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch Backport. Fixes a regression with some Intel hardware. 0001-Fix-alsa-sound-.h-for-external-programs.patch 0001-uapi-Move-typedefs-from-uapi-to-sound.patch Backports. These fix build failures in alsa-tools. I removed alsa-doc from PACKAGES, because no files were assigned to it. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-27alsa-utils: Trim the text part used for the license file checksumPeter Kjellerstedt
This avoids including irrelevant information when calculating the license checksum. License-Update: Trim the text part used for the license file checksum Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-27alsa-lib: Trim the text part used for the license file checksumPeter Kjellerstedt
This avoids including irrelevant information when calculating the license checksum. License-Update: Trim the text part used for the license file checksum Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-10alsa-utils: disable tools using GTK+2Ross Burton
Change the default configuration so that it doesn't need GTK+ 2 to build, as GTK+ 2 is obsolete. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22alsa-lib: upgrade 1.1.8 -> 1.1.9Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22alsa-utils: upgrade 1.1.8 -> 1.1.9Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-22alsa-plugins: upgrade 1.1.8 -> 1.1.9Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-26alsa-tools: 1.1.6 -> 1.1.7Tanu Kaskinen
Changelog: http://alsa-project.org/main/index.php/Changes_v1.1.6_v1.1.7 The two patches have now been upstreamed. Apart from those changes, the only thing that changed was the hwmixvolume tool, which got ported from PyGTK to PyGObject, and from GTK 2 to GTK 3. When testing hwmixvolume, I found that it depends on pyalsa, which has not been packaged for OE. I believe hwmixvolume has never worked on OE. It certainly didn't work before this patch, trying to build it failed due to python-pygtk not being available. Even if python-pygtk was available at some point in the past, hwmixvolume has always used pyalsa, but the alsa-tools recipe has never had that dependency declared. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25alsa-tools: use a better SRC_URITanu Kaskinen
The ftp server has been flaky recently. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25alsa-utils: 1.1.6 -> 1.1.8Tanu Kaskinen
Changelogs: http://alsa-project.org/main/index.php/Changes_v1.1.6_v1.1.7 http://alsa-project.org/main/index.php/Changes_v1.1.7_v1.1.8 There's a new program, axfer, which is a reimplementation of aplay (and arecord). The purpose of the rewrite is to have code that is easier to maintain. For now both implementations exist, and I decided to put both in the aplay package. The new 89-alsa-ucm.rules udev file initializes the mixer settings for certain hardware. It's needed for making the hardware usable at boot, in case there's no higher level software (such as PulseAudio) managing the mixer settings. Shipping hardware specific configuration in alsa-utils seems wrong, but I don't know what else to do. I added it to the alsaucm package, because it's kind of tied to the alsaucm utility (the udev rules execute the alsaucm program, and the build system installs the rules file only when alsaucm is enabled). Ideally the UCM configuration in alsa-lib would define the default UCM verb for each hardware, then the udev rules file could just enable the default verb, and there would be no hardware specific configuration in alsa-utils. But that requires upstream development effort. SRC_URI was changed to a more reliable source (at least currently the ftp server is flaky). Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25alsa-plugins: 1.1.6 -> 1.1.8Tanu Kaskinen
Changelogs: http://alsa-project.org/main/index.php/Changes_v1.1.6_v1.1.7 http://alsa-project.org/main/index.php/Changes_v1.1.7_v1.1.8 The --enable-avcodec configure option was renamed to --enable-libav, and I renamed the respective packageconfig item too. There's a new pcm plugin: aaf (AVTP Audio Format). I added a packageconfig item for it, but I didn't test it, because libavtp doesn't seem to be currently packaged for OpenEmbedded. There are now configuration files for most of the plugins. I removed the symlink creation for 50-pulseaudio.conf, because upstream now creates the symlinks for us. 99-pulseaudio-default.conf is an exception, because upstream ships it only as an example, and upstream doesn't install a symlink for it (upstream actually installs it directly under /etc, but I moved it back to /usr/share), so for that file we still have to create the symlink ourselves. The lavcrate plugin was converted to use libavresample (and renamed to lavrate). Libavresample is provided by ffmpeg, but ffmpeg was by default built with libavresample disabled. This patch now enables libavresample by default in the ffmpeg recipe in order to not cause a regression in alsa-plugins. SRC_URI was changed to a more reliable source (at least currently the ftp server is flaky). Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-25alsa-lib: 1.1.6 -> 1.1.8Tanu Kaskinen
Changelogs: http://alsa-project.org/main/index.php/Changes_v1.1.6_v1.1.7 http://alsa-project.org/main/index.php/Changes_v1.1.7_v1.1.8 One significant change was that the search path of add-on configuration files was changed from /usr/share/alsa/alsa.conf.d to /etc/alsa/conf.d. Packages that install such files should still use the /usr/share location, though. Symlinks need to be created from /etc to /usr/share. The rationale for using /etc is that the system administrator can better control the configuration that way, and the rationale for installing files under /usr/share is that configuration snippets that are installed by packages are not meant to be directly edited by the administrator. alsa-plugins had to be modified to add symlinks for the configuration snippets that it installs. I also added FILES_${PN} = "", because the alsa-plugins package is supposed to be empty, but also because for some reason that I don't understand the symlinks would otherwise go to the alsa-plugins package rather than alsa-plugins-pulseaudio-conf. SRC_URI was changed to a more reliable source (at least currently the ftp server is flaky). Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-14meta: Fix Deprecated warnings from regexsRichard Purdie
Fix handling of escape characters in regexs and hence fix python Deprecation warnings which will be problematic in python 3.8. Note that some show up as: """ meta/classes/package.bbclass:1293: DeprecationWarning: invalid escape sequence \.   """ where the problem isn't on 1293 in package.bbclass but in some _prepend to a package.bbclass function in a different file like mesa.inc, often from do_package_split() calls. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-07alsa-lib: Cleanup packagingJoshua Watt
Cleans up the packaging by moving libasound.so.2 back into the alsa-lib package which was previously empty. Previously, it was difficult to create an image that had libasound.so.2, then create an SDK from that image that had the proper development files, because the only way to get libasound.so.2 was to do: IMAGE_INSTALL += "libasound" This however caused a problem because all of the development files that would be desired in the SDK were located in alsa-lib-dev, which wouldn't be included because alsa-lib wasn't included, and it was impossible to include alsa-lib because it was an empty package that was culled. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15alsa-tools: rewrite packagingRoss Burton
alsa-tools is actually a collection of 20 separate tools, each with their own configure scripts. The dependencies are varied, old, and estoric (FLTK, GTK+ 1, 2, and 3, PyGTK 2, Qt3). Instead of maintaining patches to try and pick a subset that builds, use PACKAGECONFIG and some magic to build what the user requests. By default we build all the tools which have no dependencies, and the tools which need GTK+ 2 or GTK+ 3 if the relevant DISTRO_FEATURES are enabled. Add a patch to fix the build of ld10k1 with musl. The ncurses build dependency doesn't seem to be checked for, so remove that. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-29alsa-utils: 1.1.5 -> 1.1.6Tanu Kaskinen
Dropped 0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch, because an equivalent patch is included in the new release. License-Update: FSF address updated Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-05-29alsa-plugins: 1.1.5 -> 1.1.6Tanu Kaskinen
License-Update: FSF address updated Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-05-15alsa-lib: Upgrade to 1.1.6Khem Raj
License-Update: FSF address updated Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-05-15alsa-tools: Update to 1.1.6Khem Raj
License-Update: FSF address updated in hdsploader/COPYING and ld10k1/COPYING.LIB Fix built with clang along the way Package python dependent tools into a separate package Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-05-09alsa-lib: move contents of alsa-fpu.inc into alsa-lib recipeAndre McCurdy
Merge historical .inc file into the only recipe which uses it. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-05-04alsa-utils: Fix error when removing unwanted udev rulesMike Crowe
If alsa-utils configure is not passed a --with-udev-rules-dir option then it defaults to using /lib/udev/rules.d. This meant that the hard-coded use of ${D}/lib in do_install in 262e69c9c7acf0beb7bb6b96299e3c993c906434 worked correctly to remove the unwanted rules. Subsequently, 0a4372705a030ca54ed420cdfec33d46ab93499c changed do_install to use ${nonarch_base_libdir}, claiming to fix this in the usrmerge case. This means that if udev is not present in PACKAGECONFIG and usrmerge is present in DISTRO_FEATURES then the alsa-utils build system will install the rules in ${D}/lib/udev/rules.d but do_install will attempt to remove ${D}/usr/lib, resulting in something like: rmdir: failed to remove '.../tmp-glibc/work/i586-oe-linux/alsa-utils/1.1.5-r0/image/usr/lib': No such file or directory To fix this, let's just tell configure to install the rules in a specific known location when udev is disabled. This location can then easily be cleaned up in do_install without doing any harm if udev is enabled. Tested both with and without usrmerge in DISTRO_FEATURES and with and without udev in PACKAGECONFIG. Signed-off-by: Mike Crowe <mac@mcrowe.com> Cc: Phil Blundell <pb@pbcl.net> Cc: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-12-09alsa-utils: 1.1.4 -> 1.1.5Tanu Kaskinen
Changes: http://www.alsa-project.org/main/index.php/Changes_v1.1.4_v1.1.5 Rebased 0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-12-09alsa-tools: 1.1.3 -> 1.1.5Tanu Kaskinen
Changes: http://www.alsa-project.org/main/index.php/Changes_v1.1.4_v1.1.5 Rebased autotools.patch and makefile_no_gtk.patch. Dropped 0001-as10k1-Make-output_tram_line-static-inline.patch with the assumption that it's not needed any more. The patch added a "static" qualifier to a function. According to the commit message, this was done to improve optimization. Upstream removed the "inline" qualifier from that same function, because it caused some trouble with clang. My guess is that the patch author actually ran into the same clang problem as upstream, but came up with a different fix. It doesn't seem like a function whose optimization anyone would really be interested in. Cc: Khem Raj <raj.khem@gmail.com> Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-12-09alsa-plugins: 1.1.4 -> 1.1.5Tanu Kaskinen
Changes: http://www.alsa-project.org/main/index.php/Changes_v1.1.4_v1.1.5 Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-12-09alsa-lib: 1.1.4.1 -> 1.1.5Tanu Kaskinen
Changes: http://www.alsa-project.org/main/index.php/Changes_v1.1.4_v1.1.5 Dropped all patches. The poll.h patch is included in the release, and the wordexp patch is not needed any more, because the wordexp function is replaced by an internal reimplementation. It would still be possible to enable the use of wordexp with the --with-wordexp configure option. The option exists, because the internal reimplementation covers only part of what wordexp can do, so not using wordexp can in theory cause regressions. However, it seems that regressions are quite unlikely in practice. Here's some discussion about the topic: http://mailman.alsa-project.org/pipermail/alsa-devel/2017-July/122667.html Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-09-11alsa-utils: Do not hardcode path to /lib/udevPeter Kjellerstedt
Use ${nonarch_base_libdir}/udev instead. This avoids problems when usrmerge is enabled in DISTRO_FEATURES and udev support is disabled. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-06-16meta: Drop remnants of uclibc supportRichard Purdie
uclibc support was removed a while ago and musl works much better. Start to remove the various overrides and patches related to uclibc which are no longer needed. uclibc support in a layer would still be possible. I have strong reasons to believe nobody is still using uclibc since patches are missing and I doubt the metadata even parses anymore. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-12alsa-lib: 1.1.3 -> 1.1.4.1Tanu Kaskinen
Changelogs: http://alsa-project.org/main/index.php/Changes_v1.1.3_v1.1.4 http://alsa-project.org/main/index.php/Changes_v1.1.4_v1.1.4.1 Dropped backported patch 0001-ucm-parser-needs-limits.h.patch. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-06-12alsa-utils: 1.1.3 -> 1.1.4Tanu Kaskinen
Changelog: http://alsa-project.org/main/index.php/Changes_v1.1.3_v1.1.4 Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-06-12alsa-plugins: 1.1.1 -> 1.1.4Tanu Kaskinen
Changelog: http://alsa-project.org/main/index.php/Changes_v1.1.3_v1.1.4 Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21meta: replace uses of bb.data.expand(VARNAME, d) with d.expand(VARNAME)Joshua Lock
bb.data.expand(x, d) is deprecated API. [YOCTO #10678] Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-01recipes: Make use of the new bb.utils.filter() functionPeter Kjellerstedt
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-23alsa-lib: merge alsa-conf-base into alsa-confTanu Kaskinen
As far as I can see, there's no benefit in having separate alsa-conf and alsa-conf-base packages. libasound depended on both, so it was not really possible to only install alsa-conf-base. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-23alsa-lib: fix softfloat enablingTanu Kaskinen
EXTRA_OECONF = "--disable-python" overrode the previous EXTRA_OECONF assignment, so softfloat didn't get enabled when needed. Fixed this by replacing "=" with "+=". Bitbake then complained about tabs in alsa-fpu.inc, changed them to spaces. Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-23alsa-lib: 1.1.2 -> 1.1.3Tanu Kaskinen
Changelog: http://alsa-project.org/main/index.php/Changes_v1.1.2_v1.1.3 Added a patch to fix a build failure with musl (cherry-picked from upstream). The new release doesn't any more install the smixer modules when Python support is disabled. The modules weren't usable without Python support before either, so this change does not constitute a loss of functionality [1]. alsa-lib-dev has automatic dependencies on alsa-lib and libasound, but since the smixer modules were the only thing in the alsa-lib package, the alsa-lib package doesn't get generated any more. alsa-lib-dev still has an automatic dependency on alsa-lib, however, so I had to override the RDEPENDS of alsa-lib-dev to only include libasound. [1] http://mailman.alsa-project.org/pipermail/alsa-devel/2016-November/114682.html Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-23alsa-tools: 1.1.0 -> 1.1.3Tanu Kaskinen
Drop 0001-Cus428Midi-Explicitly-cast-constant-to-char-type.patch, because the new release has an equivalent fix (and that's actually the only change in the new release). Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-23alsa-utils(-scripts): fix compile on build machines with python-docutils ↵Andreas Müller
installed Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-23alsa-utils-scripts: update 1.1.2 -> 1.1.3Andreas Müller
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-23alsa-utils: update 1.1.2 -> 1.1.3Andreas Müller
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-23Switch to Recipe Specific SysrootsRichard Purdie
This patch is comparatively large and invasive. It does only do one thing, switching the system to build using recipe specific sysroots and where changes could be isolated from it, that has been done. With the current single sysroot approach, its possible for software to find things which aren't in their dependencies. This leads to a determinism problem and is a growing issue in several of the market segments where OE makes sense. The way to solve this problem for OE is to have seperate sysroots for each recipe and these will only contain the dependencies for that recipe. Its worth noting that this is not task specific sysroots and that OE's dependencies do vary enormously by task. This did result in some implementation challenges. There is nothing stopping the implementation of task specific sysroots at some later point based on this work but that as deemed a bridge too far right now. Implementation details: * Rather than installing the sysroot artefacts into a combined sysroots, they are now placed in TMPDIR/sysroot-components/PACKAGE_ARCH/PN. * WORKDIR/recipe-sysroot and WORKDIR/recipe-sysroot-native are built by hardlinking in files from the sysroot-component trees. These new directories are known as RECIPE_SYSROOT and RECIPE_SYSROOT_NATIVE. * This construction is primarily done by a new do_prepare_recipe_sysroot task which runs before do_configure and consists of a call to the extend_recipe_sysroot function. * Other tasks need things in the sysroot before/after this, e.g. do_patch needs quilt-native and do_package_write_deb needs dpkg-native. The code therefore inspects the dependencies for each task and adds extend_recipe_sysroot as a prefunc if it has populate_sysroot dependencies. * We have to do a search/replace 'fixme' operation on the files installed into the sysroot to change hardcoded paths into the correct ones. We create a fixmepath file in the component directory which lists the files which need this operation. * Some files have "postinstall" commands which need to run against them, e.g. gdk-pixbuf each time a new loader is added. These are handled by adding files in bindir with the name prefixed by "postinst-" and are run in each sysroot as its created if they're present. This did mean most sstate postinstalls have to be rewritten but there shouldn't be many of them. * Since a recipe can have multiple tasks and these tasks can run against each other at the same time we have to have a lock when we perform write operations against the sysroot. We also have to maintain manifests of what we install against a task checksum of the dependency. If the checksum changes, we remove its files and then add the new ones. * The autotools logic for filtering the view of m4 files is no longer needed (and was the model for the way extend_recipe_sysroot works). * For autotools, we used to build a combined m4 macros directory which had both the native and target m4 files. We can no longer do this so we use the target sysroot as the default and add the native sysroot as an extra backup include path. If we don't do this, we'd have to build target pkg-config before we could built anything using pkg-config for example (ditto gettext). Such dependencies would be painful so we haven't required that. * PKDDATA_DIR was moved out the sysroot and works as before using sstate to build a hybrid copy for each machine. The paths therefore changed, the behaviour did not. * The ccache class had to be reworked to function with rss. * The TCBOOTSTRAP sysroot for compiler bootstrap is no longer needed but the -initial data does have to be filtered out from the main recipe sysroots. Putting "-initial" in a normal recipe name therefore remains a bad idea. * The logic in insane needed tweaks to deal with the new path layout, as did the debug source file extraction code in package.bbclass. * The logic in sstate.bbclass had to be rewritten since it previously only performed search and replace on extracted sstate and we now need this to happen even if the compiled path was "correct". This in theory could cause a mild performance issue but since the sysroot data was the main data that needed this and we'd have to do it there regardless with rss, I've opted just to change the way the class for everything. The built output used to build the sstate output is now retained and installed rather than deleted. * The search and replace logic used in sstate objects also seemed weak/incorrect and didn't hold up against testing. This has been rewritten too. There are some assumptions made about paths, we save the 'proper' search and replace operations to fixmepath.cmd but then ignore this. What is here works but is a little hardcoded and an area for future improvement. * In order to work with eSDK we need a way to build something that looks like the old style sysroot. "bitbake build-sysroots" will construct such a sysroot based on everything in the components directory that matches the current MACHINE. It will allow transition of external tools and can built target or native variants or both. It also supports a clean task. I'd suggest not relying on this for anything other than transitional purposes though. To see XXX in that sysroot, you'd have to have built that in a previous bitbake invocation. * pseudo is run out of its components directory. This is fine as its statically linked. * The hacks for wayland to see allarch dependencies in the multilib case are no longer needed and can be dropped. * wic needed more extensive changes to work with rss and the fixes are in a separate commit series * Various oe-selftest tweaks were needed since tests did assume the location to binaries and the combined sysroot in several cases. * Most missing dependencies this work found have been sent out as separate patches as they were found but a few tweaks are still included here. * A late addition is that extend_recipe_sysroot became multilib aware and able to populate multilib sysroots. I had hoped not to have to add that complexity but the meta-environment recipe forced my hand. That implementation can probably be neater but this is on the list of things to cleanup later at this point. In summary, the impact people will likely see after this change: * Recipes may fail with missing dependencies, particularly native tools like gettext-native, glib-2.0-native and libxml2.0-native. Some hosts have these installed and will mask these errors * Any recipe/class using SSTATEPOSTINSTFUNCS will need that code rewriting into a postinst * There was a separate patch series dealing with roots postinst native dependency issues. Any postinst which expects native tools at rootfs time will need to mark that dependency with PACKAGE_WRITE_DEPS. There could well be other issues. This has been tested repeatedly against our autobuilders and oe-selftest and issues found have been fixed. We believe at least OE-Core is in good shape but that doesn't mean we've found all the issues. Also, the logging is a bit chatty at the moment. It does help if something goes wrong and goes to the task logfiles, not the console so I've intentionally left this like that for now. We can turn it down easily enough in due course. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-16meta: remove True option to getVar callsJoshua Lock
getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>