Commit Graph

64234 Commits

Author SHA1 Message Date
Adrian Perez de Castro
b4fc06c305 package/wpewebkit: security bump to version 2.36.5
Bugfix release, including the patch that can be now removed, and
security patches for CVE-2022-32792, CVE-2022-32816, and CVE-2022-2294.

Release notes:

  https://wpewebkit.org/release/wpewebkit-2.36.5.html

Accompanying security advisory:

  https://wpewebkit.org/security/WSA-2022-0007.html

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-29 13:23:29 +02:00
Adrian Perez de Castro
834aefa8da package/webkitgtk: security bump to version 2.36.5
Bugfix release, including the patch that can be now removed, and
security patches for CVE-2022-32792, CVE-2022-32816, and CVE-2022-2294.

Release notes:

  https://webkitgtk.org/2022/07/28/webkitgtk2.36.5-released.html

Accompanying security advisory:

  https://webkitgtk.org/security/WSA-2022-0007.html

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-29 13:23:28 +02:00
Bartosz Bilas
a8b45de60c configs/bananapro: bump U-Boot to 2022.04
While at it add the required OpenSSL dependency.

Fixes:
  https://gitlab.com/buildroot.org/buildroot/-/jobs/2781800516

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-29 13:22:58 +02:00
Peter Korsgaard
88d36b83f0 docs/website: update for 2022.02.4
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-07-29 12:03:34 +02:00
Peter Korsgaard
2bc14528ec Update for 2022.02.4
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 9dd3bb1963)
[Peter: drop Makefile/Vagrantfile changes]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-07-29 12:00:57 +02:00
Thomas Petazzoni
4a2388f9dd configs/aspeed_ast2500evb_defconfig: needs BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
Fixes:

  https://gitlab.com/buildroot.org/buildroot/-/jobs/2781800458

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-29 10:58:50 +02:00
Thomas Petazzoni
0005048ec6 configs/galileo_defconfig: add missing double quotes around BR2_GLOBAL_PATCH_DIR value
This bogus BR2_GLOBAL_PATCH_DIR value was added in commit
9dd5382d79 ("board/intel/galileo: fix
build failure with host gcc 10") back in February.

This should help fixing
https://gitlab.com/buildroot.org/buildroot/-/jobs/2781800667, as it
complains with:

WARN: defconfig ./configs/galileo_defconfig can't be used:
      Missing: BR2_GLOBAL_PATCH_DIR=board/intel/galileo/patches

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-29 10:39:13 +02:00
Thomas Petazzoni
8a4f76a604 configs/kontron_bl_imx8mm_defconfig: add missing BR2_TARGET_UBOOT_NEEDS_GNUTLS=y
Fixes:

  https://gitlab.com/buildroot.org/buildroot/-/jobs/2781800747

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-29 10:35:45 +02:00
Thomas Petazzoni
b1eb5b9bb6 configs/licheepi_zero_defconfig: add missing BR2_TARGET_UBOOT_NEEDS_OPENSSL
Fixes:

  https://gitlab.com/buildroot.org/buildroot/-/jobs/2781800773

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-29 10:34:24 +02:00
Julien Olivain
8c074e73b0 support/testing: add test for python-pyalsa
This is a simple test importing pyalsa, showing alsa library version and
attempting to list cards.

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 23:12:28 +02:00
Thomas Petazzoni
64f1603bb8 Makefile: enable checking of hash spacing in check-package
Now that all hash files have been fixed, enable checking of hash
spacing in check-package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 23:05:29 +02:00
Thomas Petazzoni
ebe5d9edfe boot, package, support, toolchain: switch to 2 spaces for the hash file
It's time to finally switch over globally to the new spacing format
that we have agreed on for the hash file, with 2 spaces as a separator
between fields.

This commit was mechanically generated using:

find . -type f -name '*.hash' | xargs sed -i 's%^md5[ \t]*\([^ \t]*\)[ \t]*\(.*\)$%md5  \1  \2%'
find . -type f -name '*.hash' | xargs sed -i 's%^sha1[ \t]*\([^ \t]*\)[ \t]*\(.*\)$%sha1  \1  \2%'
find . -type f -name '*.hash' | xargs sed -i 's%^sha256[ \t]*\([^ \t]*\)[ \t]*\(.*\)$%sha256  \1  \2%'
find . -type f -name '*.hash' | xargs sed -i 's%^sha512[ \t]*\([^ \t]*\)[ \t]*\(.*\)$%sha512  \1  \2%'

This commit can easily be backported on the LTS branch by re-running
the same commands, if needed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 23:05:23 +02:00
Arnout Vandecappelle (Essensium/Mind)
07aa585aa6 Makefile: always delete hwdb sources
In eudev and systemd, we have code that deletes the hwdb sources from
the target - they are not useful since a binary hwdb is created from
them. However, if eudev or systemd is not used, then those sources are
not useful either. It's possible that other packages than eudev or
systemd install hwdb files, which would be left on the system.

Always remove the hwdb files.

Note that we don't expect much space savings from this, but anything may
help. It's certainly more consistent to do it always than just in eudev
and systemd.

We do this both from /usr/lib/udev (usual installation path for systemd)
and in /etc/udev (usual installation path for eudev) because packages
may install in either location.

We keep the comment explaining why it's done in rootfs-pre-cmd instead
of target-finalize - this was only present in eudev.mk.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 23:04:46 +02:00
Arnout Vandecappelle (Essensium/Mind)
4e2567861a package/eudev: remove HOST_EUDEV_SYSCONFDIR
The HOST_EUDEV_SYSCONFDIR is a leftover from before eudev, when udev was
still built from systemd sources. Now that we have a separate file for
eudev and systemd, there's no need any more to have a condition there.
In addition, its usage in systemd.mk has been removed.

Remove the HOST_EUDEV_SYSCONFDIR variable and instead use /etc directly
in eudev.mk.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 23:04:10 +02:00
Thomas Petazzoni
8b9014e762 package/zsh: simplify BR2_STATIC_LIBS check
Use the more common ifeq ($(BR2_STATIC_LIBS),) form.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 23:00:27 +02:00
Arnout Vandecappelle (Essensium/Mind)
dba42986c0 package/zsh: add more cache variables for TRY_RUN
It turns out that zsh has a number of additional TRY_RUN calls. We
already set a few with cache variables, add a few more. They are found
based on reading the configure.ac, aczsh.m4, and the configure output.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Phil Eichinger <phil.eichinger@gmail.com>
Cc: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 23:00:17 +02:00
John Keeping
b573a70295 package/connman: add an option to disable stats generation
By default connman periodically saves network interface statistics
into an mmap'd round robin file. These are not accessible over the
D-Bus interface and the only method to interact with this is
ResetCounters() which is marked as experimental.

Continually writing statistics will increase drive wear and may not be
desirable in some devices with limited flash erase cycles, so add an
option to disable this.

Note that connman does not provide any runtime control over this
facility, it can only be disabled via the configure script.

Signed-off-by: John Keeping <john@metanate.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:58:27 +02:00
Fabrice Fontaine
ba27d5a63b package/bluez-alsa: needs alsa-lib mixer
aplay needs alsa-lib mixer since bump to version 4.0.0 in commit
e843433e18 and
7050c9a818:

In file included from alsa-mixer.c:11:
alsa-mixer.h:16:21: error: unknown type name 'snd_mixer_t'; did you mean
'snd_timer_t'?
   16 | int alsa_mixer_open(snd_mixer_t **mixer, snd_mixer_elem_t
      **elem,
      |                     ^~~~~~~~~~~
      |                     snd_timer_t

So select BR2_PACKAGE_ALSA_LIB_MIXER instead of building aplay
conditionally to keep backward compatibility

Fixes:
 - http://autobuild.buildroot.org/results/d3faac6e49fe9cc21091a5dfa44780b8c63189be

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:57:32 +02:00
Fabrice Fontaine
a223802adb package/freerdp: bump to version 2.8.0
Drop fourth patch (already in version)

https://github.com/FreeRDP/FreeRDP/releases/tag/2.8.0

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:57:24 +02:00
Fabrice Fontaine
2ba6015eb1 package/mpv: simplify alsa-lib feature selection
Instead of having the user need to figure out that 2 alsa-lib features
are needed for mpv ALSA support, have the top-level mpv option select
the relevant alsa-lib features, when alsa-lib is enabled as already done
for pulseaudio in commit 97cd3680a4

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:57:12 +02:00
Fabrice Fontaine
cc08b57079 package/wine: simplify alsa-lib feature selection
Instead of having the user need to figure out that 2 alsa-lib features
are needed for wine ALSA support, have the top-level wine option select
the relevant alsa-lib features, when alsa-lib is enabled as already done
for pulseaudio in commit 97cd3680a4

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:56:57 +02:00
Fabrice Fontaine
fd4783258b package/mediastreamer: simplify alsa-lib feature selection
Instead of having the user need to figure out that 2 alsa-lib features
are needed for mediastreamer ALSA support, have the top-level pulseaudio
option select the relevant alsa-lib features, when alsa-lib is enabled
as already done for pulseaudio in commit
97cd3680a4

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:56:30 +02:00
Fabrice Fontaine
f5e1cec700 package/libmodsecurity: select pcre2
Commit ea746f3128 forgot to select pcre2
resulting in the following build failure:

Makefile:575: *** pcre2 is in the dependency chain of libmodsecurity that has added it to its _DEPENDENCIES variable without selecting it or depending on it from Config.in.  Stop.

Fixes:
 - http://autobuild.buildroot.org/results/6528d2611bd1a45c1e94bc6b866de9c33dd90a7b

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:56:21 +02:00
Fabrice Fontaine
b3e96b1fb0 package/lapack: bump to version 3.10.1
- Drop patch (already in version)
- Update hash of LICENSE (update in year:
  e7ad0370d4)

http://www.netlib.org/lapack/lapack-3.10.1.html

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:56:10 +02:00
Fabrice Fontaine
5b4350b6b9 package/pulseaudio: fix speex dependency
pulseaudio needs speexdsp, not speex resulting in the following build
failure since commit 7752afbe4b which
explicitly enable or disable speex:

../output-1/build/pulseaudio-16.1/meson.build:713:2: ERROR: Dependency "speexdsp" not found, tried pkgconfig and cmake

Fixes:
 - http://autobuild.buildroot.org/results/8d4c5d5bfd65744753ca75180dd45a01c90f0b91

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:55:11 +02:00
Fabrice Fontaine
543333ecae package/freeradius-server: requires MD4 in openssl
Enable MD4 in openssl to avoid the following build failure raised since
the addition of the package in commit
736c4c1655:

In file included from src/lib/md4.c:16:
src/lib/md4.c: In function 'fr_md4_calc':
src/freeradius-devel/md4.h:76:33: error: unknown type name 'MD4_CTX'; did you mean 'FR_MD4_CTX'?
   76 | #  define FR_MD4_CTX            MD4_CTX
      |                                 ^~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/a8aa12a8129056391f975820ea3d1d62241ac051

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:51:16 +02:00
Fabrice Fontaine
f897a557a6 package/earlyoom: fix build with kernel < 4.3
PR_CAP_AMBIENT is only available since kernel 4.3 and
58319057b7
resulting in the following build failure since bump to version 1.7 in
commit 07b7f88668 and
9edc5cfc9a:

main.c: In function 'main':
main.c:119:11: error: 'PR_CAP_AMBIENT' undeclared (first use in this function)
     prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_CLEAR_ALL, 0, 0, 0);
           ^

Fixes:
 - http://autobuild.buildroot.org/results/5a0ad7e1f6de3c37e40c37d8f583fc699a457753

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 22:50:58 +02:00
Norbert Lange
ceb261cb42 package/zsh: enable static regex module
the builtin string =~ regexp operator needs to load the regex
module. This operator is used very often in zsh scripts, so
link it statically to avoid the overhead of dynamic loading.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:34 +02:00
Norbert Lange
2f32e668aa package/zsh: Enable dynamic modules
The autoconf scripts seem to assume that no dynamic loader
is available if crosscompiling.
This results in only a small set of modules being enabled
and linked statically.

For comparison, debian patches the fallback to enable
dynamic modules (unconditionally).

This commit enables modules if shared libraries are enabled.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:34 +02:00
Norbert Lange
960fc93df2 Makefile: remove /usr/lib/rpm directory on target
this directory is used by the rpm package manager, and packages
like systemd will install "macros" for this system.

It should be deleted just like the similar
/usr/share/aclocal directory from Autoconf.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:34 +02:00
Norbert Lange
ed3ae42807 package/systemd: remove hwdb-update service
Since the source HWDB files are already removed from the target, it
makes little sense to keep the service around.  If accidently
triggered it could create an empty database.

The service is installed in both staging and host directory as well and
not removed from there, so a user could craft his own solutions if it's
necessary to update the database.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:34 +02:00
Norbert Lange
8a1e8cd3e1 package/systemd: always delete hwdb
Up to now, the source files of the hwdb was only cleaned if systemd-hwdb
was used. However, those files should only be used by the hwdb anyway --
otherwise we shouldn't clean them even when the hwdb is enabled.
Therefore, remove them even if hwdb is disabled.

hwdb files can be put in two places: /usr/lib/udev, or /etc/udev. The
former is where systemd-compliant packages would install them, but the
latter is where they were originally placed. In systemd-land, /etc
should only contain local information, so ideally it should be empty in
the rootfs.

The reality, however, is that many packages still install files in /etc.
Thus, there are probably also packages that install hwdb files in
/etc/udev.

Therefore, clean the hwdb files both in /etc/udev and in /usr/lib/udev.

Probably, we should do this cleaning even when systemd is not selected,
since non-systemd packages may install files there which are not
relevant without systemd-hwdb (or eudev). However, that's a bigger
change which needs a separate patch (and a bit more consideration).

While we're at it, get rid of the HOST_EUDEV_SYSCONFDIR variable. This
is a leftover from when udev was still extracted from the systemd
package (i.e. before eudev became a separate package).

Signed-off-by: Norbert Lange <nolange79@gmail.com>
[Arnout: split in two separate commits]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:34 +02:00
Norbert Lange
1532252520 package/systemd: use systemd-hwdb for generating HWDB
udevadm has been deprecated for a while for building the HWDB,
systemd-hwdb should be used in its place.

This tool further has a switch to generate the database in
/usr which is a better place for a one-time created file
than the default /etc/udev.

The systemd-hwdb wasn't enabled yet in the host build, so do that.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
[Arnout: split in two separate commits]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:33 +02:00
Norbert Lange
505b5a6cdd package/pkg-autotools: use /run as runtime path
Since many years now, /run is the standard runstate directory for Linux
systems, and Buildroot follows this standard. Encode this as the default
for autotools packages.

Note that the configure script bundled with a package may be generated
with an older version of Autotools, that may not yet support the
--runstatedir option. This will give an "Unsupported arguments" warning
and the option will be ignored. We may have better luck with passing
runstatedir as a variable instead of an option, but chances are that
the configure script doesn't know that variant either (it wouldn't print
a warning in that case). Since the warning is actually preferrable, pass
it as an option after all.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
[Arnout: pass as an option instead of an argument after all]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:33 +02:00
Norbert Lange
372ecbff2d package/pkg-cmake.mk: use /run as runtime path
Since many years now, /run is the standard runstate directory for Linux
systems, and Buildroot follows this standard. Encode this as the default
for CMake packages.

Note that we don't really care for host packages.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 21:03:33 +02:00
Peter Korsgaard
5eccf75a7c docs/website: update for 2022.05.1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-07-28 10:59:22 +02:00
Peter Korsgaard
6ba523c813 Update for 2022.05.1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 2e399893b4)
[Peter: drop Makefile change]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-07-28 10:54:31 +02:00
Fabrice Fontaine
622e5f67bd package/gdal: fix json dependency
gdal needs json-c, not libjson, resulting in the following build failure
since the addition of the package in commit
1e64fa2956:

configure: error: could not find json-c/json.h

While at it, also drop unrecognized options:

configure: WARNING: unrecognized options: --disable-gtk-doc, --disable-gtk-doc-html, --disable-doc, --disable-docs, --disable-documentation, --with-xmlto, --with-fop, --disable-dependency-tracking, --enable-ipv6, --disable-nls, --without-dods-root, --without-fme, --without-grass, --without-libgrass, --without-ingres, --without-jasper, --without-charls, --without-mdb, --without-mongocxx, --without-mrsid_lidar, --without-perl

Fixes:
 - http://autobuild.buildroot.org/results/f977675125167806e844a176a4c8c8873557b709

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 10:42:46 +02:00
Fabrice Fontaine
117c21820f package/gdal: fix license hash
license hash is wrong since the addition of the package in commit
1e64fa2956:

ERROR: LICENSE.TXT has wrong sha256 hash:
ERROR: expected: b82e6cca0b13f5db2f22ab667f22254fb1f4b135ea73d5bd6238ef89aff31f6c
ERROR: got     : fac0116e799ca4de79b076ee04863b5e2b69541ea3664b9bb108c81a5355f16a
ERROR: Incomplete download, or man-in-the-middle (MITM) attack

Fixes:
 - http://autobuild.buildroot.org/results/e443db6d7ff3ae867035d169853b880b5e13d181

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 09:34:05 +02:00
Marcin Niestroj
ca80451516 package/python-pytest-asyncio: bump to version 0.19.0
Second newline at the end of licence file was removed upstream, so
update license file hash.

[1] 4c7da65d6f

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 09:33:27 +02:00
Marcin Niestroj
a5be1da1ff package/python-pytest: bump to version 7.1.2
There is just a starting year in licence file now (see [1]), but
licence itself did not change.

Also fixup the spacing in the hash file to match the "new" coding
style.

[1] ed24f29e60

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 09:32:49 +02:00
Marcin Niestroj
97eede9242 configs/orangepi_zero_plus_defconfig: switch to mainline TF-A
Use the same TF-A as orangepi_zero_plus2 board.

Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/2720001176

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 09:31:32 +02:00
Sen Hastings
76acf02c34 support/scripts/pkg-stats: fixed sortGrid() performance
sortGrid() has been rewritten to dynamically generate stylesheets with
explicit grid-row properties to re-order the rows, instead of removing
and reinserting the cells.
Performance *should* now be comperable to sorttable.js.

Signed-off-by: Sen Hastings <sen@phobosdpl.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 08:52:28 +02:00
Sen Hastings
786f8b4567 support/scripts/pkg-stats: fix duplicate package class names across rows
Like all good problems, disparate pieces work together to create
a "synergistically" hairy mess.

The sortGrid() overhaul highlighted a flaw in pkg-stats allowing
for duplicate package class names across rows.

As an example,

boot/barebox/barebox.mk and boot/barebox/barebox/barebox.mk
both get the classname ._barebox and so sortGrid() sticks them on
the same line giving a table with a vestigal row sticking out
of the right side like some kind of appendage.

Also I neglected to add a "_" to the current version column's cells
pkgname class so instead of "._pkgname" we had ".pkgname" and so
the cells were not collected properly as part of the row.

These issues explain the formatting weirdness.

package classnames are now ".path_to_package_makefile" without suffix
(.mk) (so ._boot_barebox_barebox and ._boot_barebox_barebox_barebox
instead of ._barebox) in order to guarantee uniqueness.

and what was *accidentally*
class="centered current_version data .barebox" is now
class="centered current_version data ._boot_barebox_barebox"
just like *all* the other cells in the row. :p

Signed-off-by: Sen Hastings <sen@phobosdpl.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 08:52:27 +02:00
Christian Stewart
b95b8fb44c package/nerdctl: new package
nerdctl is a CLI for containerd (package docker-containerd) which is
drop-in compatible with the Docker Daemon CLI.

This allows using the lighter weight containerd daemon directly,
instead of via the additional docker daemon. It also implements
rootless mode.

https://github.com/containerd/nerdctl

Signed-off-by: Christian Stewart <christian@paral.in>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-28 08:43:49 +02:00
Yann E. MORIN
50e398e2d9 support/run-test: add test for systemd using dbus-broker
Add four new tests for systemd (rw and ro in each case):
  - use dbus-broker instead of the original dbus
  - use the original dbus, with dbus-broker installed

The first two extend the existing IfUpDown test cases by just enabling
dbus-broker; the second ones extend this further, by explicitly enabling
the original dbus.

For one of the tests, we overload the test_run() function to test that
the dbus-broker daemon is indeed running as root. We need not replicate
that check in the other dbus-broker-only test, and it does not make
sense to test that in tests that have the original dbus enabled.

Presence of the original dbus and dbus-broker on the same system is
valid: the original dbus is used as the default system bus daemon. We do
not test switching between the two at runtime, though as this is really
too corner-case specific. We just test to ensure the original dbus
system bus daemon is not impacted by the presence of dbus-broker.

Note: the 'full' test-case enables all systemd options, and some of them
do pull the original dbus package, so we can't use that to test the
integration of dbus-broker; instead, we extend the ifupdown case, which
does not enable the original dbus.

The default external toolchain for cortex-A9 is the old ARM toolchain
which has kernel headers 4.10 Since dbus-broker needs toolchain headers
>= 4.17, it can't be selected with this toolchain. Switch the systemd
tests to the Bootlin toolchains instead. We switch all of them to make
things easier. Note that we will need to take care in the future that
the headers version used in the bootlin toolchain doesn't get bigger
than the kernel that is used. The kernel is currently 5.10, the headers
in the bleeding edge bootlin toolchain are 5.4.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 00:48:54 +02:00
Yann E. MORIN
e3f1c960be package/systemd: do not force dbus if dbus-broker is available
dbus-broker fits the bill as a message bus daemon, so only enable the
original dbus if dbus-broker is not enabled.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Norbert Lange <nolange79@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 00:48:54 +02:00
Norbert Lange
bd3cf3fb5b package/dbus-broker: new package
dbus-broker is an alternate implementation of a dbus daemon. It can be
used as a drop-in replacement for the system bus daemon, as well as the
session bus daemon.

dbus-broker is (basically, and as far as we're concerned in Buildroot)
split in two components:

  - the actual message bus daemon, that relays messages across clients

  - a launcher, which is responsible for setting various aspects of the
    bus, like setting the policy et al. and opening the socket(s) the
    message bus daemon will have to listen on...

The launcher can only be used in a systemd setup (it makes heavy use of
systemd facilities), while the message bus is generic. However, the
message bus daemon is useless without a launcher. There does not exist a
non-systemd launcher, which makes dbus-broker actually a systemd-only
package; this can be revisited when/if a non-systemd launcher appears.

Note, however, that libdbus is not provided by dbus-broker. People who
want to use dbus-broker as the bus daemon, and need libdbus, will have
to enable both.

If only original dbus is enabled, things stay as they are now. This is
for the moment still the default, though we should change that once
dbus-broker has proven to work.

If only dbus-broker is enabled, it installs the necessary socket
activation units and dbus configuration files. The daemon is not
launched at boot time; instead it is socket-activated when a client
connects to the bus the first time.

If both original dbus and dbus-broker are enabled, we have a conflict
with the configuration files, the socket activation file. Also, original
dbus activates the daemon as a service in multi-user.target.wants, so it
is not socket-activated and dbus-broker would never get the opportunity
to start.

Therefore, original dbus is updated to remove the conflicting files and
the activation of dbus-daemon. Since dbus-broker installs some of the
same file that original dbus removes, we have to add a dependency to
make sure that the ones installed by dbus-broker aren't removed.

If both are installed, it is still possible to revert back to using
original dbus as system bus:
      - at build-time: by calling systemctl enable/disable from a
        post-build script (preferred), or by providing drop-in units
        or presets in an overlay (less preferred) or custom skeleton
        (as a last resort),
      - at runtime (on a RW filesystem): by calling systemctl
        enable/disable

Note about the user: the path to the system bus socket is a so-called
"well-known location": it is expected to be there, by spec. Moving it
elsewhere is going to break existing programs. So, the user running the
system bus daemon must be able to create that socket.

As we may have two packages providing a system bus daemon, they have to
be both able to create the socket, and thus must both be able to write
in the directory containing the socket. And since they can be switched
at runtime, they must be running as the same user.

We can't just reference the original dbus user, so we duplicate the
entry. What is important, is that the user be named 'dbus', as that's
what we use in both cases.

If both original dbus and dbus-broker are selected, the dbus user is
included twice, but the specifications are identical so that's fine.
mkusers will create the user only once.

Finally, the licensing terms are pretty trivial for dbus-broker itself,
but it makes use of third-party code that it inherits as git submodules
(that are bundled in the release archive). Thus the licensing is a bit
convoluted... The third-party codes claim to be licensed as "Apache-2.0
and LGP-2.1+" in their AUTHORS files, but at the same time claim
"**Apache-2.0** OR **LGPL-2.1-or-later**" in their README files. The
individual source files (that are used) do not seem to have any
licensing header to clarify the situation. So we represent the situation
with "Apache-2.0 and/or LGPL-2.1+".

Signed-off-by: Norbert Lange <nolange79@gmail.com>
[yann.morin.1998@free.fr:
  - don't select systemd; depend on it instead
  - only install config files and systemd units without original dbus
  - install a user to run the message bus as
  - fix licensing info
  - entirely reword and extend the commit log
  - add myself to DEVELOPERS as well
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
[Arnout:
 - Use dbus-broker as system bus if both are selected.
 - Remove conflicting files from dbus installation.
 - Simplify symbolic link creation.
 - Add comment to remind update of session.conf and system.conf.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-28 00:48:53 +02:00
Thomas Petazzoni
f1e3b2bb01 support/scripts/pkg-stats: add better checking in check_package_get_latest_version_by_guess()
The 'rtl8723ds' name, when queried from release-monitoring.org at
https://release-monitoring.org/api/projects/?pattern=rtl8723ds returns
one project, with one "stable_versions" array, which is empty. This
was not expected by the pkg-stats code, causing an exception:

Task exception was never retrieved
future: <Task finished name='Task-764' coro=<check_package_latest_version_get() done, defined at /home/thomas/projets/buildroot/./support/scripts/pkg-stats:558> exception=IndexError('list index out of range')>
Traceback (most recent call last):
  File "/home/thomas/projets/buildroot/./support/scripts/pkg-stats", line 566, in check_package_latest_version_get
    if await check_package_get_latest_version_by_guess(session, pkg):
  File "/home/thomas/projets/buildroot/./support/scripts/pkg-stats", line 544, in check_package_get_latest_version_by_guess
    projects[0]['stable_versions'][0],
IndexError: list index out of range

This commit therefore improves the checks done on the results received
from release-monitoring.org to avoid this issue.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-27 23:12:41 +02:00
Sen Hastings
e58e0d17c7 support/scripts/pkg-stats: updated copyright notice
Pretty straightforward. Adds my name to copyright notice.

Signed-off-by: Sen Hastings <sen@phobosdpl.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-27 23:12:41 +02:00