Commit Graph

57077 Commits

Author SHA1 Message Date
Alexander Kanavin
5249a8a3d5 bitbake.conf: drop pod2man from hosttools
pod2man writes the current date into manpages, and while later
versions of it respect SOURCE_DATE_EPOCH and use that instead,
earlier versions do not. This was found to cause reproducibility
issues.

This patch replaces host version of pod2man with one from
perl-native.

[YOCTO #13755]

(From OE-Core rev: deda455b3c1829003a4cc14520f30e616be93dfb)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03 00:10:11 +00:00
Richard Purdie
33fb77797e texinfo: Only build texinfo when api-docs enabled
Also fix the crosssdk and cross-canadian cases.

(From OE-Core rev: 95476373b20ba56c2877c70b5b36335446904f37)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03 00:10:11 +00:00
Richard Purdie
f7f6303a99 texinfo/texinfo-dummy-native: Drop native path prefix
Now we have recipe specific sysroots we don't need this native path
prefix. It was breaking the crosssdk/cross-canadian cases and causing
bugs, removing it is the simplest solution.

(From OE-Core rev: f7c9e4c4cbb2a74a3627dc8da37083eef071e3cb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03 00:10:11 +00:00
Joshua Watt
fdce09a022 oeqa: reproducible: Do not strip packages
Do not strip packages when testing reproducible builds. In some cases,
stripped data differs between builds, but then gets removed. However,
the contents affect the generation of the GCC build-id, which then
differs in the resulting ELF files, even though the data that caused
this is no longer there. Inhibit stripping so that their causes can be
evaluated.

(From OE-Core rev: 0e23c6faf8169a333ae29064553705b5d7d6b589)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03 00:10:11 +00:00
Joshua Watt
94981725b0 classes/reproducible_build: Read SDE file later
Defers the resolution of the SOURCE_DATE_EPOCH until the variable needs
to be actually realized with a value. The previous method of loading the
value in anonymous python had issues because it could occur before other
anonymous python functions that affect the location of the epoch file,
such as when a recipe uses AUTOINC/AUTOREV or allarch.bbclass.

Also adds more logging to help diagnose issues in the future.

[YOCTO #13763]

(From OE-Core rev: b3313a10a3eb93f0a3710a35de0404fb49cd6202)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03 00:10:10 +00:00
Alistair Francis
2b9781da7c opensbi: Remove dependency on FDT
U-Boot no longer requires OpenSBI to include a FDT for the HiFive
Unleashed, so remove the support from OpenSBI.

(From OE-Core rev: 472507b8c446dcfe3cb08deecfbca4e5928ca504)

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Andrey Zhizhikin
86511f94c9 gstreamer1.0-plugins-bad: resolve opencv pkg-config in meson build
When opencv is picked in PACKAGECONFIG, plugin fails to locate data
dirs. This is due to meson.build file uses 'test' utility to verify that
the data dirs path is present and not taking sysroot into prefix.

Introduce additional patch, which picks up PKG_CONFIG_SYSROOT_DIR as
prefix for 'test' utility to verify the data dir is actually present.

(From OE-Core rev: 575fca95307dafb3f7d80f9bf0e63605a9328b59)

Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Alexander Kanavin
6c09c9259f busybox: sort the .config file used by ptests
It was found to have slight variations in order of options
depending on the host. Sorting it helps reproducibility.

[YOCTO #13756]

(From OE-Core rev: 93c7fa3b369c8eb61b65cdd82111c8016d707fb6)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Khem Raj
b08607a2a9 glibc: Update to final 2.31 release
(From OE-Core rev: b0df2fcb26cb1b2b48e8f66cfcbfd351a7737099)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Khem Raj
afea43c8c2 uninative: Recognise ppc64 host ldso
(From OE-Core rev: 15f7eedf3f153f844dd64f028877aac621e040d1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Alexander Kanavin
94fab90576 icu: update SRC_URI
New releases of ICU are published on github.

(From OE-Core rev: 1a01c30653c2b0282543aa3cdae8d87af871c24a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Ross Burton
ad0b736678 glibc: merge libc-common.bbclass into glibc.bb
There's only one user of libc-common now that we don't ship both glibc and
eglibc, so copy the contents directly into the recipe.

[ YOCTO #12135 ]

(From OE-Core rev: a0bff0db1eeb128776757d5f3d0bc1ebdc135498)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Mark Hatle
1c28cf571a libgcc.inc: Fix an issue w/ a recursive symlink
If the OS is not Linux, the code could end up generating a recursive symlink.
This can happen because the same symlink can be created twice in a row.  If this
happenes, the second symlink becomes a link to itself within the directory
pointed to by the original link.

In order to prevent this, verify that the destination does not already exist.

(From OE-Core rev: ef28e5a74d939acc98d6e8e9a0efbeb143b8025f)

Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Mark Hatle
843e4935b9 toaster.bbclass: Fix error when toaster is used to monitor a build
The error being corrected looks like:

File: '/home/jenkins/workspace/OEBuild/build-32/oe-core/meta/classes/toaster.bbclass', lineno: 130, function: toaster_package_dumpdata
     0126:    lpkgdata = {}
     0127:    datadir = os.path.join(pkgdatadir, 'runtime')
     0128:
     0129:    # scan and send data for each generated package
 *** 0130:    for datafile in os.listdir(datadir):
     0131:        if not datafile.endswith('.packaged'):
     0132:            lpkgdata = _toaster_load_pkgdatafile(datadir, datafile)
     0133:            # Fire an event containing the pkg data
     0134:            bb.event.fire(bb.event.MetadataEvent("SinglePackageInfo", lpkgdata), d)
Exception: FileNotFoundError: [Errno 2] No such file or directory: '/home/jenkins/workspace/OEBuild/builds/build-32/tmp-glibc/work/core2-64-oe-linux/puzzles/2_0.0+gitAUTOINC+c6e0161dd4-r0/pkgdata/runtime'

There must be a small window before the data is available, but while the monitoring is on-going.

(From OE-Core rev: c7329b17cbbef64984196e2b79a81988db1d2bf3)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Tom Hochstein
c634b8db1a u-boot.inc: Fix devtool build u-boot for u-boot without menuconfig
For u-boot recipes without menuconfig support, running devtool results
in a do_configure error:

cp: cannot stat '/home/r60874/upstream/fsl-xwayland/tmp/work/imx8mmevk-fsl-linux/u-boot-imx/2018.03-r0/u-boot-imx-2018.03//.config': No such file or directory

The problem arises because u-boot.inc supports recipes with and without
menuconfig.

Fix the problem by properly setting DEVTOOL_DISABLE_MENUCONFIG so that devtool
can control logic that applies only for menuconfig support.

(From OE-Core rev: a6c430b0077eb56b4adbe391a0a05a52133cc8f0)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Tom Hochstein
e209b9f0bf devtool/standard.py: Allow recipe to disable menuconfig logic
u-boot.inc supports u-boot recipes with or without menuconfig [1].
However, running devtool on a u-boot recipe that does not support menuconfig
results in an error:

cp: cannot stat '/home/r60874/upstream/fsl-xwayland/tmp/work/imx8mmevk-fsl-linux/u-boot-imx/2018.03-r0/u-boot-imx-2018.03//.config': No such file or directory

The problem is the devtool logic assumes that any recipe with a do_menuconfig task
will generate a .config in do_configure().

Fix the problem by removing the assumption with a flag that the recipe can control,
like this:

do_configure() {
    if [ menuconfig-supported ]; then
        ...
    else
        DEVTOOL_DISABLE_MENUCONFIG=true
    fi
}

[1] 11278e3b2c

(From OE-Core rev: 6cc17e658c3dbadc772353f0f200561d2d988658)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Mark Hatle
753cffb105 gcc-cross-canadian: A missing space in an append caused an invalid option
When configuring the cross-candian toolchain for a non-linux target system,
the resulting gcc configuration included:

  --enable-initfini-array--without-headers

these should have been two separate options.

(From OE-Core rev: 7b52893632dae7bc9ac75dddc7ad625e19f41050)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Richard Purdie
9dd3af7f0f texinfo-dummy-native: Allow to coexist with texinfo-native
(From OE-Core rev: 0a1099d7d346d540b616f88f30ebaf1571d9eba1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Richard Purdie
9f734a34a3 autoconf-archive: Add missing texinfo inherit
(From OE-Core rev: 0675fdcc2bd29ee98adf428bcb4758dc28bf1230)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Richard Purdie
e14c2a4986 glibc-package.inc: Remove warnings about unpacked directories
If documemtation generation is disabled, the recipe throws warnings about
unpackaged files. Avoid this.

(From OE-Core rev: 811a5b1b4d4da97caaca2779c8aa5687cbf0c609)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Changhyeok Bae
bab3f110b5 iptables: upgrade 1.8.3 -> 1.8.4
(From OE-Core rev: 490dd755899a149a36cbb2e60a08a37e0c93d225)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Changhyeok Bae
d461e6b4df iw: upgrade 5.3 -> 5.4
(From OE-Core rev: 9b436d3c5625f1525a1c9e94886ff9f373ec7cf1)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Changhyeok Bae
79a5edd339 iproute2: upgrade 5.3.0 -> 5.5.0
(From OE-Core rev: 90f670a9f389f497d5dc00c0d3f955f07cff5805)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Khem Raj
cc294ed7f1 musl: Update to latest
Changelog [1]

[1] https://git.musl-libc.org/cgit/musl/log/?qt=range&q=91e662d1d941215eb024787db5e910dbfb5b169f..83350eb17b9cb355e3f08b0340c4f1e8c437fac9

(From OE-Core rev: bc922df14d128212e396658f76d63b03a6f30729)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Khem Raj
2fcd0cebe5 valgrind: Fix ptest builds on musl
(From OE-Core rev: 20e7d638322cf03f512d4f13c698f25211097f86)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Alexander Kanavin
85a0d61025 valgrind: fix the remaining ptest failures
Particularly, one test is disabled as it is failing everywhere,
two patches that actually cause failures are dropped and
some binaries are prevented from being stripped where that is
expected.

(From OE-Core rev: 64bc13f3c9c96584494f0984da5253a306e8a140)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:57:21 +00:00
Richard Purdie
c404b88959 reproducible: Allow configuration of saved debug output
If OEQA_DEBUGGING_SAVED_OUTPUT is set in the environment, use this location
to store reproducibile build failure output. This aids debugging on the
YP autobuilder in particular.

Use a date in the directory name to make it easier to find failure output.

Also clean up empty directories as they're unnecessary distracting noise.

(From OE-Core rev: 138ed4aa96ec5069f9f7fd02994a42452dbccc2d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 16:53:02 +00:00
Armin Kuster
55bd462940 parselogs: remove mpc8315e-rdb from errors
(From OE-Core rev: 0de55be071efff60944c89582ae0e736f3bdc828)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 10:39:52 +00:00
Armin Kuster
c932bf9e86 bsp-hw.json: remove mpc8315e-rdb manual tests
(From OE-Core rev: 72af20f445dfd8ac0b472f80ed84e1b1c556e8ef)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 10:39:52 +00:00
Richard Purdie
e363c40076 conf/machine: Remove mpc8315e-rdb machine
This hardware is old/obsolete and unobtainable. Its proving hard to support
with nobody fixing bugs or helping keep the platform running/up to date.

Whilst there is value in real hardware testing, this platform ist just too
old and obsolete to support. This does leave a gap for the power architecture
but at this point there is nobody willing to step up to cover it.

The TSC did discuss and agree support for this platform should be removed.

It calls into question the support/testing of the architecture by Yocto
Project which is being discussed by the TSC and governing board.

(From meta-yocto rev: aa691d49ceb6700eb1881b789fe34f8369bcb0ef)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02 10:38:55 +00:00
Jefro
18b6b2ae81 Adding memoriam to scottrif
Added a few comment lines in Makefile to commemorate Scott's
contributions

(From yocto-docs rev: 07c88e2724a223b26694c98c0e976d735aee00e6)

Signed-off-by: Jefro <jefro@jefro.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-31 08:03:08 +00:00
Richard Purdie
4a61e9fa5f MEMORIAM: Add recognition for contributors no longer with us
Its sad to have this but as the project ages, also perhaps inevitable.
Besides their contributions, remember them here.

(From OE-Core rev: cd9006b20281cef0051ed60a2cfee8c809c24f76)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-30 15:22:35 +00:00
Richard Purdie
1cebd3469e grep: Fix shell after autotools changes
After changing autotools.bbclass, CONFIG_SHELL setting no longer works
resulting in:

grep-3.4-r0 do_package_qa: QA Issue: /bin/fgrep.grep contained in package grep requires /bin/bash, but no providers found in RDEPENDS_grep? [file-rdeps]

The script can use /bin/sh so set this specifically using sed since we
want to use a consistent shell for the rest of the build but not have
the specific bash dependency.

(From OE-Core rev: 9031b66c7c817b65f75b429db6f6527d07196e8a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Richard Purdie
63bb091d2d xz: Fix shell after autotools changes
After changing autotools.bbclass, CONFIG_SHELL setting no longer works
resulting in:

xz-5.2.4-r0 do_package_qa: QA Issue: /usr/bin/xzmore contained in package xz requires /bin/bash, but no providers found in RDEPENDS_xz? [file-rdeps]

The script can use /bin/sh so set this specifically.

(From OE-Core rev: 790be4ace4da2e2d7597d4e8ccf75ed7f711184d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Richard Purdie
93739bca2a autotools: Give in and force CONFIG_SHELL to bash
At present, CONFIG_SHELL becomes /bin/sh if its bash and /bin/bash if not. This
isn't deterministic and leads to changes in ptest packages which include Makefiles.

At first glance you'd think we'd hardcode to /bin/sh since most system shells are sane.

Sadly the dash vs. bash leads to quoting differences in configure.

The bash default is probably the safest option since configure tries to find bash
and this is what most systems would end up using.

The end result is a more consisent build environment.

[YOCTO #13752]

(From OE-Core rev: 33b1e27c29ed05da783f814cf9c3035675087ecc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Denys Dmytriyenko
5c724703c5 weston: upgrade 7.0.0 -> 8.0.0
Here are some highlights:
- DRM hardware planes should be used more effectively
- The DRM backend now supports HDCP
- Headless backend now supports OpenGL
- DRM backend can now be built without GBM
- EGL_KHR_partial_update is now used when available, reducing memory
  bandwidth usage on some GPUs
- Logging framework improvements
- Documentation for weston can now be built
https://lists.freedesktop.org/archives/wayland-devel/2020-January/041147.html

(From OE-Core rev: 1aa123f176f166e8eeaa09dc9b9fda206a92ae87)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Martin Jansa
77eb2bac56 nspr, nss: use ${includedir}/nspr like e.g. ubuntu does
* instead of installing all 51 nspr header files directly in ${includedir}

* ubuntu uses /usr/include/nspr as well as shown in:
  https://packages.ubuntu.com/xenial/amd64/libnspr4-dev/filelist
  and some components assume the same path

* update nss configure to find them, similar change might be needed in
  mozjs and ecryptfs-utils

(From OE-Core rev: 274128830a9d52bdd2827cc0a323d575025ce62f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Alexander Kanavin
a57648c8bf lttng-tools: disable tests that sporadically fail
Upstream is aware, and will investigate and fix.

(From OE-Core rev: 96c286a1b2f9fc8e8bf4fb29ae62551a323af5c3)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Alexander Kanavin
dd3e190fca core-image-sato-sdk-ptest: use 2G of RAM
Particularly, 1G wasn't enough for lttng-tools ptests as
half of that went to /tmp, and lttng-tools needs more.

(From OE-Core rev: abc308a38c6e37afcaf507858a6578c10438c5d8)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Alexander Kanavin
8d1195d9e6 lttng-tools: install additional scripts needed for ptests
(From OE-Core rev: fec25d9bfd7119d6ccccadd5109b8a09683fba5e)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Alexander Kanavin
3360ba5666 default-distrovars.inc: add vfat to DISTRO_FEATURES
This is beneficial for parted ptests in particular, as
they expect vfat functionality to work.

(From OE-Core rev: 85eb0cdc16b89dc7d3bce0c0b1c22b68f684ef05)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-28 11:11:20 +00:00
Jean-Marie LEMETAYER
f6728edb7e bitbake: tests/fetch: add npmsw tests
This commit adds some tests to validate the npmsw fetcher:

     - bb.tests.fetch.NPMTest.test_npmsw
     - bb.tests.fetch.NPMTest.test_npmsw_bad_checksum
     - bb.tests.fetch.NPMTest.test_npmsw_destsuffix
     - bb.tests.fetch.NPMTest.test_npmsw_dev
     - bb.tests.fetch.NPMTest.test_npmsw_mirrors
     - bb.tests.fetch.NPMTest.test_npmsw_no_network_no_tarball
     - bb.tests.fetch.NPMTest.test_npmsw_no_network_with_tarball
     - bb.tests.fetch.NPMTest.test_npmsw_npm_reusability
     - bb.tests.fetch.NPMTest.test_npmsw_premirrors

(Bitbake rev: ba205df20b6a07a4b1125332601c6c54c7b019b5)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
e0bd972ba7 bitbake: fetch2: add the npmsw fetcher
This commit adds a new npmsw fetcher that fetches every npm dependencies
described in a npm shrinkwrap file:

  https://docs.npmjs.com/files/shrinkwrap.json.html

The main package must be fetched separately:

  SRC_URI = "npm://registry.url;package=foobar;version=1.0.0 \
             npmsw://${THISDIR}/npm-shrinkwrap.json"

Since a separation has been created between the package and its
dependencies, the package can also be fetched with a non npm fetcher
without impacting the general behavior:

  SRC_URI = "git://github.com/foo/bar.git;protocol=https \
             npmsw://${THISDIR}/npm-shrinkwrap.json"

(Bitbake rev: f5223be54450bf20e0bfbd53b372a7748a44b475)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
8b9505f1d4 bitbake: tests/fetch: add npm tests
This commit adds some tests to validate the npm fetcher:

     - bb.tests.fetch.NPMTest.test_npm
     - bb.tests.fetch.NPMTest.test_npm_bad_checksum
     - bb.tests.fetch.NPMTest.test_npm_destsuffix_downloadfilename
     - bb.tests.fetch.NPMTest.test_npm_mirrors
     - bb.tests.fetch.NPMTest.test_npm_no_network_no_tarball
     - bb.tests.fetch.NPMTest.test_npm_no_network_with_tarball
     - bb.tests.fetch.NPMTest.test_npm_package_invalid
     - bb.tests.fetch.NPMTest.test_npm_package_none
     - bb.tests.fetch.NPMTest.test_npm_premirrors
     - bb.tests.fetch.NPMTest.test_npm_registry_alternate
     - bb.tests.fetch.NPMTest.test_npm_registry_invalid
     - bb.tests.fetch.NPMTest.test_npm_registry_none
     - bb.tests.fetch.NPMTest.test_npm_version_invalid
     - bb.tests.fetch.NPMTest.test_npm_version_latest
     - bb.tests.fetch.NPMTest.test_npm_version_none

(Bitbake rev: b166bd3cc6cc1ca63e885319091f17daaaaa2537)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
d842e9e738 bitbake: fetch2/npm: refactor the npm fetcher
This commit refactors the npm fetcher to improve some points and fix
others:

 - The big change is that the fetcher is only fetching the package
   source and no more the dependencies. Thus the npm fetcher act as the
   other fetchers e.g git, wget. The dependencies will be handled later.

 - The fetcher only resolves the url of the package using 'npm view' and
   then forwards it to a proxy fetcher.

 - This commit also fixes a lot of issues with the package names (exotic
   characters, scoped packages) which were badly handled.

 - The validation files - lockdown.json and npm-shrinkwrap.json - are no
   longer used by the fetcher. Instead, the downloaded tarball is
   verified with the 'integrity' and 'shasum' provided in the 'npm view'
   of the package [1][2].

1: https://docs.npmjs.com/files/package-lock.json#integrity
2: https://www.w3.org/TR/SRI

(Bitbake rev: 0f451cdc43130d503ada53ed1b4fc5a24943f6ef)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
b9ce68a5d7 bitbake: fetch2/wget: fix downloadfilename parameter
When using a download filename with characters which can be interpreted
by the shell ('(', ')', '&', ';', ...) the command fails. Quoting the
filename fixes the issue.

(Bitbake rev: ed652dce5200161068eccdbfaaaefde33136eb09)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
c37a1bc05e bitbake: fetch2: allow fetchers to forward the done condition
This commit is necessary to introduce proxy fetchers and do not modify
the behavior of existing fetchers.

This commit allows fetchers to forwards the done condition to a
proxy fetcher.

(Bitbake rev: ee3a2545e99e6e99559a72bcda64797ae674ec71)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
4d771e2699 bitbake: fetch2: allow fetchers to forward the mirrors management
This commit is necessary to introduce proxy fetchers and do not modify
the behavior of existing fetchers.

This commit allows fetchers to forwards the "try_mirrors" functions to
a proxy fetcher.

(Bitbake rev: 462c9a2b368a1720da276310b1d5d0423b7cefea)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
fb69936b63 bitbake: fetch2: allow fetchers to forward the donestamp management
This commit is necessary to introduce proxy fetchers and do not modify
the behavior of existing fetchers.

This commit allows fetchers to forwards the "verify_donestamp" and
"update_stamp" functions to a proxy fetcher.

(Bitbake rev: f7612c0704b4252bba5157ce9a94d8888c6d0760)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00
Jean-Marie LEMETAYER
73912553c7 bitbake: fetch2: add more hash functions for checksum verification
This commit enables the "sha1", "sha384" and "sha512" hash functions in
the supported checksum list. This allows to use more SRC_URI checksums
functions for a url:

  SRC_URI[sha1sum] = "..."
  SRC_URI[sha384sum] = "..."
  SRC_URI[sha512sum] = "..."

The npm fetcher needs this to support subresource integrity:
  https://www.w3.org/TR/SRI/

(Bitbake rev: cd80a646aa841b71e68282bb8d11194abb5df0e4)

Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-27 16:48:10 +00:00