Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to 2022.05.2 #6

Merged
merged 3,396 commits into from
Sep 7, 2022
Merged

Conversation

GuillaumeSmaha
Copy link
Contributor

@GuillaumeSmaha GuillaumeSmaha commented Sep 2, 2022

I executed the 2 build on Cirrus to validate the change:
WebOS: https://cirrus-ci.com/task/6702136972017664
LGTV: https://cirrus-ci.com/task/4555890274598912

The change I bring after the merge:

git log dc9677b436db88317fb8031f069430c7910bead7..HEAD

commit d3a044e22515535f2e9a1101afc0084dcaaae3ba
Author: Guillaume Smaha <[email protected]>
Date:   Fri Sep 2 18:32:28 2022 +0200

    cirrus: Like package/gcc: upgrade to 11.3

commit 495817915bf4496f951b23c848404da4eb11353d
Author: Guillaume Smaha <[email protected]>
Date:   Fri Sep 2 16:32:58 2022 +0200

    package/libusb: fix patch for netlink

commit dfca383cc6ae0fe9a65ae9fc0217eba14a56a00b
Author: Guillaume Smaha <[email protected]>
Date:   Fri Sep 2 13:08:03 2022 +0200

    Remove BR2_PACKAGE_LIBCURL_SONAME_BUMP=y from configs

commit 71d76681232c1853f60c24a1c1b70d81ac2a9967
Author: Guillaume Smaha <[email protected]>
Date:   Fri Sep 2 13:07:13 2022 +0200

    Revert "libcurl: added optional soname_bump switch"
    
    This reverts commit 9e252169f76991c1f22374bf7dcd85254e3c2faa.
    libcurl was update and version was bump to 12.0

commit ce434f0f5216294c99b974de1b04023c21758dd7
Author: Guillaume Smaha <[email protected]>
Date:   Thu Sep 1 19:34:27 2022 +0200

    Fix glibc: Add -O2 & disable depend headers > 3.2

commit 33889122f5586dd61466f936d6d56ca0f79ceda2
Author: Guillaume Smaha <[email protected]>
Date:   Thu Sep 1 21:45:44 2022 +0200

    Update configs webos tv & lgtv

commit a26b184aca28a3fa425d4e1f23dbf8f0aa2fb94a
Author: Guillaume Smaha <[email protected]>
Date:   Thu Sep 1 21:33:07 2022 +0200

    Update umediaserver to depend to python3
    
    Use commit af89f8ac3355027a90d7b299a78fb6fab9b6ffca instead of master to
      avoid patching issue in the future due to the PR
      https://github.com/webosose/umediaserver/pull/2

commit 3f354b52e43245431ac035dbd0084c14aff6d035
Author: Guillaume Smaha <[email protected]>
Date:   Thu Sep 1 19:04:12 2022 +0200

    Upgrade php to 8.1.10

git diff dc9677b436db88317fb8031f069430c7910bead7..HEAD (without change on configs/* because it is too long)

diff --git a/.cirrus.yml b/.cirrus.yml
index 4b955e0c39..d8ccd3e2c2 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -10,7 +10,7 @@ linux_x64_task:
   container:
     cpu: 8
     memory: 8G
-    image: gcc:11.2
+    image: gcc:11.3

   matrix:
     - name: WebOS config
diff --git a/package/glibc/Config.in b/package/glibc/Config.in
index 2c6dc40139..b0fb29a7b4 100644
--- a/package/glibc/Config.in
+++ b/package/glibc/Config.in
@@ -33,7 +33,7 @@ config BR2_PACKAGE_GLIBC_SUPPORTS
 	# Make sure to keep these dependencies in sync with the
 	# Config.in comments in
 	# toolchain/toolchain-buildroot/Config.in
-	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
+	# depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 || !BR2_powerpc64le
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0 || !BR2_RISCV_64
diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
index 471ebefcd0..85e50edb84 100644
--- a/package/glibc/glibc.mk
+++ b/package/glibc/glibc.mk
@@ -156,6 +156,8 @@ ifeq ($(BR2_OPTIMIZE_FAST),y)
 GLIBC_CFLAGS += -O2
 endif

+GLIBC_CFLAGS = -O2
+
 define GLIBC_CONFIGURE_CMDS
 	mkdir -p $(@D)/build
 	# Do the configuration
@@ -176,9 +178,8 @@ define GLIBC_CONFIGURE_CMDS
 		--disable-werror \
 		--without-gd \
 		--enable-obsolete-rpc \
-		--enable-kernel=$(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)) \
 		--with-headers=$(STAGING_DIR)/usr/include \
-		--enable-add-ons=nptl,ports)
+		--enable-add-ons=nptl,ports \
 		$(GLIBC_CONF_OPTS))
 	$(GLIBC_ADD_MISSING_STUB_H)
 endef
diff --git a/package/libcurl/0001-Revert-configure-remove-enable-soname-bump-and-SONAM.patch b/package/libcurl/0001-Revert-configure-remove-enable-soname-bump-and-SONAM.patch
deleted file mode 100644
index 6685b4e022..0000000000
--- a/package/libcurl/0001-Revert-configure-remove-enable-soname-bump-and-SONAM.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From fcc15933495eb770170063abde85b2ed71a35668 Mon Sep 17 00:00:00 2001
-From: Stefano Moioli <[email protected]>
-Date: Tue, 11 Jan 2022 20:01:00 +0100
-Subject: [PATCH] Revert "configure: remove --enable-soname-bump and
- SONAME_BUMP"
-
-This reverts commit d1da545a6881dbeafff86077f696f0dc22d3fc81.
----
- configure.ac    | 33 +++++++++++++++++++++++++++++++++
- lib/Makefile.am | 14 ++++++++++++++
- 2 files changed, 47 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 7430bd747..900bfef06 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3150,6 +3150,8 @@ AX_COMPILE_CHECK_SIZEOF(curl_off_t, [
- ])
- CPPFLAGS=$o
-
-+soname_bump=no
-+
- AC_CHECK_TYPE(long long,
-    [AC_DEFINE(HAVE_LONGLONG, 1,
-       [Define to 1 if the compiler supports the 'long long' data type.])]
-@@ -3943,6 +3945,26 @@ dnl hiding of library internal symbols
- dnl
- CURL_CONFIGURE_SYMBOL_HIDING
-
-+dnl ************************************************************
-+dnl enforce SONAME bump
-+dnl
-+
-+AC_MSG_CHECKING([whether to enforce SONAME bump])
-+AC_ARG_ENABLE(soname-bump,
-+AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump])
-+AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]),
-+[ case "$enableval" in
-+  yes)   AC_MSG_RESULT(yes)
-+         soname_bump=yes
-+         ;;
-+  *)
-+         AC_MSG_RESULT(no)
-+         ;;
-+  esac ],
-+        AC_MSG_RESULT($soname_bump)
-+)
-+AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes)
-+
- dnl
- dnl All the library dependencies put into $LIB apply to libcurl only.
- dnl
-@@ -4305,3 +4327,14 @@ if test -n "$experimental"; then
-   WARNING: $experimental enabled but marked EXPERIMENTAL. Use with caution!
- _EOF
- fi
-+
-+if test "x$soname_bump" = "xyes"; then
-+
-+cat <<EOM
-+  SONAME bump:     yes - WARNING: this library will be built with the SONAME
-+                   number bumped due to (a detected) ABI breakage.
-+                   See lib/README.curl_off_t for details on this.
-+EOM
-+
-+fi
-+
-diff --git a/lib/Makefile.am b/lib/Makefile.am
-index 769363941..0b3325d2d 100644
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -66,7 +66,21 @@ endif
- # Prevent LIBS from being used for all link targets
- LIBS = $(BLANK_AT_MAKETIME)
-
-+if SONAME_BUMP
-+#
-+# Bumping of SONAME conditionally may seem like a weird thing to do, and yeah
-+# it is. The problem is that we try to avoid the bump as hard as possible, but
-+# yet it is still necessary for a few rare situations. The configure script will
-+# attempt to figure out these situations, and it can be forced to consider this
-+# to be such a case! See README.curl_off_t for further details.
-+#
-+# This conditional soname bump SHOULD be removed at next "proper" bump.
-+#
-+VERSIONINFO=-version-info 12:0:7
-+else
- VERSIONINFO=-version-info 11:0:7
-+endif
-+
- # This flag accepts an argument of the form current[:revision[:age]]. So,
- # passing -version-info 3:12:1 sets current to 3, revision to 12, and age to
- # 1.
---
-2.33.0
-
diff --git a/package/libcurl/Config.in b/package/libcurl/Config.in
index ecd34d1ff4..218309ed56 100644
--- a/package/libcurl/Config.in
+++ b/package/libcurl/Config.in
@@ -19,9 +19,6 @@ config BR2_PACKAGE_LIBCURL_VERBOSE
 	help
 	  Enable verbose text strings

-config BR2_PACKAGE_LIBCURL_SONAME_BUMP
-	bool "force soname bump"
-
 config BR2_PACKAGE_LIBCURL_PROXY_SUPPORT
 	bool "proxy support"
 	default y
diff --git a/package/libcurl/libcurl.mk b/package/libcurl/libcurl.mk
index 3950686077..dc0f1230f1 100644
--- a/package/libcurl/libcurl.mk
+++ b/package/libcurl/libcurl.mk
@@ -28,10 +28,6 @@ LIBCURL_CONF_OPTS = --disable-manual --disable-ntlm-wb \
 	--with-random=/dev/urandom --disable-curldebug \
 	--disable-libcurl-option --disable-ldap --disable-ldaps

-ifeq ($(BR2_PACKAGE_LIBCURL_SONAME_BUMP),y)
-LIBCURL_CONF_OPTS += --enable-soname-bump
-endif
-
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
 LIBCURL_CONF_OPTS += --enable-threaded-resolver
 else
diff --git a/package/libusb/0002-netlink-includes-fix.patch b/package/libusb/0003-netlink-includes-fix.patch
similarity index 54%
rename from package/libusb/0002-netlink-includes-fix.patch
rename to package/libusb/0003-netlink-includes-fix.patch
index 6e9b8e4e36..a13e5e003b 100644
--- a/package/libusb/0002-netlink-includes-fix.patch
+++ b/package/libusb/0003-netlink-includes-fix.patch
@@ -1,7 +1,7 @@
 diff -rbu a/configure.ac b/configure.ac
 --- a/configure.ac	2020-12-10 04:53:11.000000000 +0100
-+++ b/configure.ac	2022-03-08 22:09:29.442009059 +0100
-@@ -178,7 +178,7 @@
++++ b/configure.ac	2022-09-02 16:39:04.210025308 +0200
+@@ -180,7 +180,7 @@
  		AC_CHECK_LIB([udev], [udev_new], [], [AC_MSG_ERROR([udev support requested but libudev not installed])])
  	else
  		AC_CHECK_HEADERS([asm/types.h])
@@ -10,16 +10,3 @@ diff -rbu a/configure.ac b/configure.ac
  		AC_CHECK_HEADER([sys/socket.h], [], [AC_MSG_ERROR([Linux socket header not found])])
  	fi
  	;;
-diff -rbu a/libusb/os/linux_netlink.c b/libusb/os/linux_netlink.c
---- a/libusb/os/linux_netlink.c	2020-08-13 03:50:39.000000000 +0200
-+++ b/libusb/os/linux_netlink.c	2022-03-08 22:09:42.882148133 +0100
-@@ -34,8 +34,8 @@
- #ifdef HAVE_ASM_TYPES_H
- #include <asm/types.h>
- #endif
--#include <linux/netlink.h>
- #include <sys/socket.h>
-+#include <linux/netlink.h>
-
- #define NL_GROUP_KERNEL 1
-
diff --git a/package/php/php.hash b/package/php/php.hash
index 19235a9105..d5c0602ead 100644
--- a/package/php/php.hash
+++ b/package/php/php.hash
@@ -1,6 +1,6 @@
 # From https://www.php.net/downloads.php
 sha256  973fec765336ee01f47536a5db1c2eee98df9d34a41522b7b6c760159bf0a77b  php-8.0.20.tar.xz
-sha256  6b448242fd360c1a9f265b7263abf3da25d28f2b2b0f5465533b69be51a391dd  php-8.1.2.tar.xz
+sha256  90e7120c77ee83630e6ac928d23bc6396603d62d83a3cf5df8a450d2e3070162  php-8.1.10.tar.xz

 # License file
 sha256  a188db807d711536f71e27b7d36879d63480f7994dc18adc08e624b3c5430fff  LICENSE
diff --git a/package/php/php.mk b/package/php/php.mk
index 1898e8d148..946725ed2a 100644
--- a/package/php/php.mk
+++ b/package/php/php.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################

-PHP_VERSION = 8.1.2
+PHP_VERSION = 8.1.10
 PHP_SITE = https://www.php.net/distributions
 PHP_SOURCE = php-$(PHP_VERSION).tar.xz
 PHP_INSTALL_STAGING = YES
diff --git a/package/umediaserver/002-python3-compatibility.patch b/package/umediaserver/002-python3-compatibility.patch
new file mode 100644
index 0000000000..60bd20f11d
--- /dev/null
+++ b/package/umediaserver/002-python3-compatibility.patch
@@ -0,0 +1,313 @@
+diff -rub a/test/python/binding/uMediaServer/uMSTest/main.py b/test/python/binding/uMediaServer/uMSTest/main.py
+--- a/test/python/binding/uMediaServer/uMSTest/main.py
++++ b/test/python/binding/uMediaServer/uMSTest/main.py
+@@ -11,7 +11,7 @@ class Timer(object):
+         self.tstart = time.time()
+
+     def __exit__(self, type, value, traceback):
+-        print "\nComplete '%s' in %.3fs" % (self.name, (time.time() - self.tstart))
++        print("\nComplete '%s' in %.3fs" % (self.name, (time.time() - self.tstart)))
+
+ class uMSTest:
+     suite = {}
+@@ -25,7 +25,7 @@ class uMSTest:
+         self.umc_ = umc if umc else uMediaClient.MediaPlayer()
+         self.umc_.setQueue(self.q_)
+         self.verbose_ = verbose
+-        if self.verbose_ > 2: print 'test: umc is', self.umc_
++        if self.verbose_ > 2: print('test: umc is', self.umc_)
+
+     def sendDebugMsg(self, msg):
+         self.umc_.sendDebugMsg(msg)
+@@ -40,11 +40,11 @@ class uMSTest:
+         if not timeout:
+             timeout = self.timeout_
+
+-        if self.verbose_ > 2: print "going to wait for", tags
++        if self.verbose_ > 2: print("going to wait for", tags)
+         while tags:
+             try:
+                 (ev, data) = self.q_.get(timeout = timeout)
+-                if self.verbose_ > 2: print 'got ev "%s" (data = %s)' % (ev, data)
++                if self.verbose_ > 2: print('got ev "%s" (data = %s)' % (ev, data))
+                 if ev != 'unknown':
+                     setattr(resp, ev, data)
+                 tags.remove(ev)
+@@ -68,14 +68,14 @@ class uMSTest:
+             if not tf: raise Exception('test "%s" specified in suite cannot be found' % tn)
+             with Timer(tn):
+                 for i in xrange(tc):
+-                    if self.verbose_: print 'test case "%s", loop #%d' % (tn, i+1)
++                    if self.verbose_: print('test case "%s", loop #%d' % (tn, i+1))
+                     self.umc_.loadAsync(self.uri_, self.class_, self.payload_)
+                     video = self.parse_reply(['load', 'duration'])
+-                    if self.verbose_ > 1: print 'video (duration = {0:.3f}s) loaded'.format(video.duration/1000.)
++                    if self.verbose_ > 1: print('video (duration = {0:.3f}s) loaded'.format(video.duration/1000.))
+
+                     try:
+                         tf(video)
+                     except Exception as e:
+-                        print "Unexpected error:", e.args[0]
++                        print("Unexpected error:", e.args[0])
+                     finally:
+                         self.umc_.unload()
+diff -rub a/test/python/client.py b/test/python/client.py
+--- a/test/python/client.py
++++ b/test/python/client.py
+@@ -9,7 +9,7 @@ class Test(uMSTest):
+
+     def Client(self, video):
+         pauses = dict([(random()*video.duration, self.dice(3)) for i in xrange(0, self.dice(2))])
+-        print "!!!", pauses
++        print("!!!", pauses)
+
+         ct = 0
+         self.do_one_cmd('play')
+@@ -23,16 +23,16 @@ class Test(uMSTest):
+
+         # if current time is second till end we most likely miss 'eos' event
+         if ct < video.duration - 1000:
+-            print "!!! waiting for EOS"
++            print("!!! waiting for EOS")
+             self.parse_reply(['eos'], timeout = 1)
+
+         if self.dice() > 4:
+             ct = random()*video.duration
+-            print "!!! seek back to", ct
++            print("!!! seek back to", ct)
+             self.do_one_cmd('seek', int(ct))
+             self.do_one_cmd('play')
+             self.sleep(video.duration - ct)
+-            print "!!! waiting for EOS"
++            print("!!! waiting for EOS")
+             self.parse_reply(['eos'], timeout = 1)
+
+ Test(**(cmd_line().get_args())).run()
+diff -rub a/test/python/console.py b/test/python/console.py
+--- a/test/python/console.py
++++ b/test/python/console.py
+@@ -24,7 +24,7 @@ import argparse
+
+ from uMediaServer.uMediaClient import MediaPlayer
+
+-print "uMediaClient OO (python)\n"
++print("uMediaClient OO (python)\n")
+
+ # commands:
+ # load <file/uri>
+@@ -40,7 +40,7 @@ done = False
+ def ev_worker(q):
+     while True:
+         (ev, data) = q.get()
+-        print "ev '%s' = (%s)" % (ev, data)
++        print("ev '%s' = (%s)" % (ev, data))
+
+ def start_ev_wrk(umc):
+     q = Queue.Queue()
+@@ -59,7 +59,7 @@ start_ev_wrk(umc)
+
+ while (not done):
+     input_command = raw_input("COMMANDS: 'load file:////media_files/rat.mp4', 'play', 'pause', 'unload', 'exit' : ")
+-    print " ", input_command
++    print(" ", input_command)
+
+     args = input_command.split(" ")
+
+@@ -67,7 +67,7 @@ while (not done):
+         if len(args) >= 2:
+             umc.load(args[1], args[2], args[3])
+         else:
+-            print "load command requires <file/uri>"
++            print("load command requires <file/uri>")
+
+     if args[0] == "play":
+         umc.play()
+diff -rub a/test/python/endurance.py b/test/python/endurance.py
+--- a/test/python/endurance.py
++++ b/test/python/endurance.py
+@@ -54,7 +54,7 @@ else:
+     umc = None
+
+ for i in xrange(conf.count):
+-    if conf.verbose: print 'Test loop #%d' % (i+1)
+-    if conf.verbose > 2: print 'umc is', umc
++    if conf.verbose: print('Test loop #%d' % (i+1))
++    if conf.verbose > 2: print('umc is', umc)
+
+     Test(umc=umc, **args).run()
+diff -rub a/test/python/framework/src/cli_analyzer.py b/test/python/framework/src/cli_analyzer.py
+--- a/test/python/framework/src/cli_analyzer.py
++++ b/test/python/framework/src/cli_analyzer.py
+@@ -44,4 +44,4 @@ for line in log_file:
+     except LSMessage.ParseException as e:
+         sys.stderr.write(e.args[0] + '\n')
+ detector.finalize()
+-print detector.summary()
++print(detector.summary())
+diff -rub a/test/python/framework/src/cli_controller.py b/test/python/framework/src/cli_controller.py
+--- a/test/python/framework/src/cli_controller.py
++++ b/test/python/framework/src/cli_controller.py
+@@ -83,9 +83,9 @@ def list_sessions(log_file):
+             sessions[session].add(parsed['msg']['message'][len(session_binder):])
+
+     for sid in sessions:
+-        print 'session: ' + sid
++        print('session: ' + sid)
+         for pid in sessions[sid]:
+-            print '\tpipeline: ' + pid
++            print('\tpipeline: ' + pid)
+
+ def filter_log(log_file):
+     # session => { pipelines : [], messages : [] }
+@@ -152,14 +152,14 @@ def filter_log(log_file):
+         if args['pipeline'] in pipelines:
+             pipeline = pipelines[args['pipeline']]
+             for parsed in pipeline['messages']:
+-                print Formatter.format(parsed, args['format']);
++                print(Formatter.format(parsed, args['format']);)
+         elif args['session'] in sessions:
+             session = sessions[args['session']]
+             for parsed in session['messages']:
+-                print Formatter.format(parsed, args['format']);
++                print(Formatter.format(parsed, args['format']);)
+         else:
+             for parsed in unfiltered:
+-                 print Formatter.format(parsed, args['format']);
++                 print(Formatter.format(parsed, args['format']);)
+
+     for line in log_file:
+         process_log_line(line)
+diff -rub a/test/python/hang.py b/test/python/hang.py
+--- a/test/python/hang.py
++++ b/test/python/hang.py
+@@ -7,7 +7,7 @@ from uMediaServer.uMediaClient import MediaPlayer
+ def proxy_thr(recv, send):
+     while True:
+         (ev, data) = recv.get()
+-        print "ev '%s' = (%s)" % (ev, data)
++        print("ev '%s' = (%s)" % (ev, data))
+         send.put_nowait((ev, data))
+
+ def start_proxy(umc, send):
+diff -rub a/test/python/load.py b/test/python/load.py
+--- a/test/python/load.py
++++ b/test/python/load.py
+@@ -27,6 +27,6 @@ args = cl.get_args()
+ conf = cl.get_conf()
+
+ for i in xrange(conf.count):
+-    if conf.verbose: print 'Test loop #%d' % (i+1)
++    if conf.verbose: print('Test loop #%d' % (i+1))
+
+     Test(**args).run()
+diff -rub a/test/python/memleak.py b/test/python/memleak.py
+--- a/test/python/memleak.py
++++ b/test/python/memleak.py
+@@ -32,7 +32,7 @@ def get_mem_info(pid):
+ def print_mem_info_diff(m1, m2):
+     for k in m2:
+         if m2[k] > m1[k]:
+-            print "usage of", k, "increased from", m1[k], "kB to", m2[k], "kB"
++            print("usage of", k, "increased from", m1[k], "kB to", m2[k], "kB")
+
+ def get_duration(raw):
+     scale = { 's': 1, 'm': 60, 'h': 60*60, 'd': 24*60*60 }
+@@ -58,15 +58,15 @@ meminfo_start = get_mem_info(pid)
+ meminfo_last  = meminfo_start
+
+ if conf.verbose:
+-    print "initial mem info:", meminfo_start
++    print("initial mem info:", meminfo_start)
+
+ begin = time.time()
+ while time.time() - begin < duration:
+     test.run()
+     meminfo = get_mem_info(pid)
+-    if conf.verbose: print "current mem info:", meminfo
++    if conf.verbose: print("current mem info:", meminfo)
+     print_mem_info_diff(meminfo_last, meminfo)
+     meminfo_last = meminfo
+
+-print "--- overal change info ---"
++print("--- overal change info ---")
+ print_mem_info_diff(meminfo_start, meminfo_last)
+diff -rub a/test/python/ping-pong.py b/test/python/ping-pong.py
+--- a/test/python/ping-pong.py
++++ b/test/python/ping-pong.py
+@@ -8,7 +8,7 @@ from uMediaServer.uMSTest import cmd_line
+ def proxy_thr(num, recv, send):
+     while True:
+         (ev, data) = recv.get()
+-        print '!!! %02d -> %s = %s' % (num, ev, data)
++        print('!!! %02d -> %s = %s' % (num, ev, data))
+         send.put_nowait((ev, data))
+
+ def start_proxy(num, umc, send):
+@@ -23,16 +23,16 @@ def play(uri, wait=1, number=3, count=1, verbose=0, timeout=5, media_class="sim"
+     def flush_queue(queue):
+         while not queue.empty():
+             (ev, data) = queue.get_nowait()
+-            if verbose > 0: print '<<< %s = %s' % (ev, data)
++            if verbose > 0: print('<<< %s = %s' % (ev, data))
+     def parse_reply(queue, tags):
+         class Resp: pass
+         resp = Resp()
+
+-        if verbose > 0: print ">>> wait for", tags
++        if verbose > 0: print(">>> wait for", tags)
+         while tags:
+             try:
+                 (ev, data) = queue.get(timeout = timeout)
+-                if verbose > 0: print '>>> %s = %s' % (ev, data)
++                if verbose > 0: print('>>> %s = %s' % (ev, data))
+                 if ev != 'unknown':
+                     setattr(resp, ev, data)
+                 tags.remove(ev)
+@@ -43,12 +43,12 @@ def play(uri, wait=1, number=3, count=1, verbose=0, timeout=5, media_class="sim"
+     if verbose == 0:
+         sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+
+-    print "Working", ("with" if flush else "without"), "flush"
++    print("Working", ("with" if flush else "without"), "flush")
+     queue = []
+     umc = []
+     for i in xrange(number):
+         if verbose > 0:
+-            print "load(%d)" % i
++            print("load(%d)" % i)
+         else:
+             sys.stdout.write("loading %d\n" % (i+1))
+         queue.append(Queue.Queue())
+@@ -64,7 +64,7 @@ def play(uri, wait=1, number=3, count=1, verbose=0, timeout=5, media_class="sim"
+     for k in xrange(count):
+         for i in xrange(number):
+             if verbose > 0:
+-                print "play(%d)" % i
++                print("play(%d)" % i)
+             else:
+                 sys.stdout.write("->%d" % (i+1))
+             if flush:
+diff -rub a/test/python/pipelinePoolPerf.py b/test/python/pipelinePoolPerf.py
+--- a/test/python/pipelinePoolPerf.py
++++ b/test/python/pipelinePoolPerf.py
+@@ -9,7 +9,7 @@ from uMediaServer.uMediaClient import MediaPlayer
+ def proxy_thr(recv, send):
+     while True:
+         (ev, data) = recv.get()
+-        print "ev '%s' = (%s)" % (ev, data)
++        print("ev '%s' = (%s)" % (ev, data))
+         send.put_nowait((ev, data))
+
+ def start_proxy(umc, send):
+diff -rub a/test/python/simple.py b/test/python/simple.py
+--- a/test/python/simple.py
++++ b/test/python/simple.py
+@@ -9,7 +9,7 @@ from uMediaServer.uMediaClient import MediaPlayer
+ def proxy_thr(recv, send):
+     while True:
+         (ev, data) = recv.get()
+-        print "ev '%s' = (%s)" % (ev, data)
++        print("ev '%s' = (%s)" % (ev, data))
+         send.put_nowait((ev, data))
+
+ def start_proxy(umc, send):
diff --git a/package/umediaserver/Config.in b/package/umediaserver/Config.in
index 71ca233913..1973f67c88 100644
--- a/package/umediaserver/Config.in
+++ b/package/umediaserver/Config.in
@@ -10,4 +10,4 @@ config BR2_PACKAGE_UMEDIASERVER
 	select BR2_PACKAGE_GSTREAMER1
 	select BR2_PACKAGE_GST1_PLUGINS_BASE
 	select BR2_PACKAGE_SQLITE
-	select BR2_PACKAGE_PYTHON
\ No newline at end of file
+	select BR2_PACKAGE_PYTHON3
\ No newline at end of file
diff --git a/package/umediaserver/umediaserver.mk b/package/umediaserver/umediaserver.mk
index 9b080ae39a..3f0b348504 100644
--- a/package/umediaserver/umediaserver.mk
+++ b/package/umediaserver/umediaserver.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################

-UMEDIASERVER_VERSION = master
+UMEDIASERVER_VERSION = af89f8ac3355027a90d7b299a78fb6fab9b6ffca
 UMEDIASERVER_SITE = $(call github,webosose,umediaserver,$(UMEDIASERVER_VERSION))
 UMEDIASERVER_INSTALL_STAGING = YES
 UMEDIASERVER_SUPPORTS_IN_SOURCE_BUILD = NO
@@ -20,7 +20,7 @@ UMEDIASERVER_DEPENDENCIES = \
 	boost \
 	gstreamer1 \
 	sqlite \
-	python
+	python3

 define UMEDIASERVER_LINK_CMAKE_MODULES
 	ln -snf $(STAGING_DIR)/usr/local/webos/Modules/webOS $(@D)/webOS

tpetazzoni and others added 30 commits July 11, 2022 19:10
…ith BR2_ARM dependency

This commit regenerates the toolchain-external-bootlin Config.in file
after the ARM toolchain description was modified to make sure they
only match the ARM little endian configurations.

Fixes:

  http://autobuild.buildroot.net/results/7befbb686bb972016ba4e742976dcdb3fed1be11/

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit b079f58)
Signed-off-by: Peter Korsgaard <[email protected]>
…oolchains

The Bootlin i686 toolchain was already made available only on BR2_i386
with !BR2_x86_i486 && !BR2_x86_i586 && !BR2_x86_1000. However, this
was not sufficient as a few other architecture variants of BR2_i386
are "lower" than i686, and they need to be excluded as well.

Allows to fix:

  http://autobuild.buildroot.net/results/56ac1a8fa5b34a9ca10eef98ae9fb090b8c762c4/

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 26dee54)
Signed-off-by: Peter Korsgaard <[email protected]>
…fter i686 toolchain dependency fixes

Fixes:

  http://autobuild.buildroot.net/results/56ac1a8fa5b34a9ca10eef98ae9fb090b8c762c4/

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit ae8177b)
Signed-off-by: Peter Korsgaard <[email protected]>
…RVER option

Some external toolchains do not have gdbserver available, but the
option BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY is always visible. And
when enabled, this option aborts with an error when gdbserver cannot
be found:

  Could not find gdbserver in external toolchain

Due to that, some random configurations fail to build when
BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y, for example with the Bootlin
toolchains for Microblaze or OpenRISC (because there's no GDB support
for those architectures).

One solution could be to make "Could not find gdbserver in external
toolchain" a warning instead of a hard error, but then nobody would
notice about this issue, in cases where it should legitimately abort
with a hard error.

So, the clean solution would be to add a
BR2_TOOLCHAIN_EXTERNAL_HAS_GDBSERVER. But that means all existing
external toolchains would have to be modified to select this option.

Instead, and as an exception, we chose to use inverted logic, and
create an option that is the opposite:
BR2_TOOLCHAIN_EXTERNAL_HAS_NO_GDBSERVER. By default, we assume
external toolchains have gdbserver. If
BR2_TOOLCHAIN_EXTERNAL_HAS_NO_GDBSERVER is enabled, we disallow the
BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY option.

Note that the case of custom external toolchain does not matter: by
definition they are not tested by the autobuilders, and by definition,
we cannot know in menuconfig if the custom toolchain has or does not
have gdbserver. We could make a user-visible option for it, but that
adds no value over simply erroring out because the gdbserver binary
can't be found.

Similarly, we could add
default y if BR2_PACKAGE_GDB_ARCH_SUPPORTS
but that would make it impossible for someone to include a custom
gdbserver in their external toolchain, and gives no benefit at all.

This will help fixing:

  http://autobuild.buildroot.net/results/6315ef7b66ee4ae8f870c92186bc674d65f62f2c/

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 80a24d0)
Signed-off-by: Peter Korsgaard <[email protected]>
…ERNAL_HAS_NO_GDBSERVER

The microblazeel, microblazebe and openrisc toolchains need to select
this option as they don't have any gdb/gdbserver.

Helps in fixing:

  http://autobuild.buildroot.net/results/6315ef7b66ee4ae8f870c92186bc674d65f62f2c/

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit a5599d7)
Signed-off-by: Peter Korsgaard <[email protected]>
…for a certain arch

The "arches" dict lists the architectures for which Bootlin toolchains
are available, along with the corresponding Buildroot conditions for
those architecture variants.

However, there is nothing that checks that such architectures really
have Bootlin toolchains available. Even if no toolchain is available,
the architecture is considered as support, and will be listed in the
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARCH_SUPPORTS option, making menuconfig
believe that some Bootlin toolchain is available for the selected
architecture variant.

This is currently the case with the "mips64" architecture (as
identified by the Bootlin toolchains project). Such toolchains have
been made obsolete in toolchains.bootlin.com and replaced by the
mips64-n32 toolchains. But "mips64" is still listed in "arches",
causing this architecture to be considered as having Bootlin
toolchains available.

To avoid this to happen in the future, this commit adds a check that
verifies that an architecture listed in "arches" really has at least
one toolchain available.

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 3c11e6f)
Signed-off-by: Peter Korsgaard <[email protected]>
…riant

These toolchains have been marked obsolete by toolchains.bootlin.com
as they are replaced by the mips64-n32 toolchains. See commit:

  bootlin/toolchains-builder@121e788

Will allow to fix:

  http://autobuild.buildroot.net/results/d13b35ba5a0f68f72e6592bdd9218b625a3c6554/

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit db37e75)
Signed-off-by: Peter Korsgaard <[email protected]>
Signed-off-by: Francois Perrad <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 9ff3cd1)
Signed-off-by: Peter Korsgaard <[email protected]>
Commit be38432 wrongly assumed that
is_trivially_copy_constructible was available since gcc 4.9 but it
wasn't fully available until gcc 5.1 and
gcc-mirror/gcc@f5e523b
resulting in the following build failure with gcc 4.9.1:

In file included from /nvmedata/autobuild/instance-13/output-1/build/gtest-1.11.0/googletest/include/gtest/internal/gtest-death-test-internal.h:39:0,
                 from /nvmedata/autobuild/instance-13/output-1/build/gtest-1.11.0/googletest/include/gtest/gtest-death-test.h:41,
                 from /nvmedata/autobuild/instance-13/output-1/build/gtest-1.11.0/googletest/include/gtest/gtest.h:64,
                 from /nvmedata/autobuild/instance-13/output-1/build/gtest-1.11.0/googletest/src/gtest-all.cc:38:
/nvmedata/autobuild/instance-13/output-1/build/gtest-1.11.0/googletest/include/gtest/gtest-matchers.h: In static member function 'static constexpr bool testing::internal::MatcherBase<T>::IsInlined()':
/nvmedata/autobuild/instance-13/output-1/build/gtest-1.11.0/googletest/include/gtest/gtest-matchers.h:414:12: error: 'is_trivially_copy_constructible' is not a member of 'std'
            std::is_trivially_copy_constructible<M>::value &&
            ^

Fixes:
 - http://autobuild.buildroot.org/results/1723705cb7aea5f6fcc7e6722d866ed3bd098115

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 3dd5b65)
Signed-off-by: Peter Korsgaard <[email protected]>
Signed-off-by: Francois Perrad <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit c253f84)
Signed-off-by: Peter Korsgaard <[email protected]>
https://github.com/tinyproxy/tinyproxy/releases/tag/1.11.1

Signed-off-by: Alexander Mukhin <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 96de6bf)
Signed-off-by: Peter Korsgaard <[email protected]>
Fix CVE-2022-1348: A vulnerability was found in logrotate in how the
state file is created. The state file is used to prevent parallel
executions of multiple instances of logrotate by acquiring and releasing
a file lock. When the state file does not exist, it is created with
world-readable permission, allowing an unprivileged user to lock the
state file, stopping any rotation. This flaw affects logrotate versions
before 3.20.

https://github.com/logrotate/logrotate/blob/3.20.1/ChangeLog.md

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit d6e7d92)
Signed-off-by: Peter Korsgaard <[email protected]>
Fix the following build failure with libressl raised since bump to
version 3.5.2 in commit 8b21692:

ossl_pkey.c: In function 'ossl_pkey_export_traditional':
ossl_pkey.c:681:62: error: invalid use of incomplete typedef 'EVP_PKEY' {aka 'struct evp_pkey_st'}
  681 |  EVP_PKEY_asn1_get0_info(NULL, NULL, NULL, NULL, &aname, pkey->ameth);
      |                                                              ^~

Fixes:
 - http://autobuild.buildroot.org/results/9b2622fbc4c2c2b787578ee83fc6a23795a84415

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 19f7a19)
Signed-off-by: Peter Korsgaard <[email protected]>
Changelog: https://downloads.apache.org/httpd/CHANGES_2.4.54

Fixes CVE-2022-26377, CVE-2022-28330, CVE-2022-28614, CVE-2022-28615,
CVE-2022-29404, CVE-2022-30522, CVE-2022-30556 and CVE-2022-31813.

Signed-off-by: Bernd Kuhls <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 78e5a9c)
Signed-off-by: Peter Korsgaard <[email protected]>
Changelog: https://www.php.net/ChangeLog-8.php#8.0.20

Fixes CVE-2022-31625 and CVE-2022-31626.

Signed-off-by: Bernd Kuhls <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 719ba45)
Signed-off-by: Peter Korsgaard <[email protected]>
ABSL_RUN_TESTS has been replaced by the standard BUILD_TESTING option
(which is already passed by cmake infrastructure) since version
20210324.0 and
abseil/abseil-cpp@a50ae36

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 6d0c0f1)
Signed-off-by: Peter Korsgaard <[email protected]>
Upstream removed the wddx extension with version 7.4:
php/php-src@6bbb18a

and moved it to pecl: https://pecl.php.net/package/wddx

The pecl package is unmaintained however so we do not add it as a new
package to buildroot.

Signed-off-by: Bernd Kuhls <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit 0704420)
Signed-off-by: Peter Korsgaard <[email protected]>
Since php-7.4 upstream switched to pkg-config to detect icu:
php/php-src@20fa2e7

Remove all unneeded code from php.mk.

Signed-off-by: Bernd Kuhls <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit f939cf7)
Signed-off-by: Peter Korsgaard <[email protected]>
Fixes CVE-2022-33903.

Release notes:
https://raw.githubusercontent.com/torproject/tor/release-0.4.7/ReleaseNotes

Signed-off-by: Bernd Kuhls <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit 0e36d3a)
Signed-off-by: Peter Korsgaard <[email protected]>
libeastl needs threads since its addition in commit
ed9ddaa and
electronicarts/EASTL@800bc26:

In file included from /home/autobuild/autobuild/instance-7/output-1/build/libeastl-45469730d641868ce05433fff2e199510c7d45c3/source/thread_support.cpp:7:
/home/autobuild/autobuild/instance-7/output-1/build/libeastl-45469730d641868ce05433fff2e199510c7d45c3/include/EASTL/internal/thread_support.h:37:18: fatal error: pthread.h: No such file or directory
   37 |         #include <pthread.h>
      |                  ^~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/54ff018467d157530bde4d35602fd1820d9eb348

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit 4c478bb)
Signed-off-by: Peter Korsgaard <[email protected]>
Following the update to mbedTLS 2.28.0 in commit 0f8aab0, ualpn can
work with mbedTLS without restrictions.

References
https://git.buildroot.net/buildroot/commit?id=96c3b52132b41716ca445b4c73a1a8886c26e5ee
ndilieto/uacme#23 (comment)
ndilieto/uacme@bbee626
Mbed-TLS/mbedtls#3243

Signed-off-by: Nicola Di Lieto <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit 6c7b469)
Signed-off-by: Peter Korsgaard <[email protected]>
libnetfilter_conntrack dependency is wrongly duplicated since commit
b835171

Signed-off-by: Fabrice Fontaine <[email protected]>
[Peter: drop from "main" _DEPENDENCIES instead]
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit 857447d)
Signed-off-by: Peter Korsgaard <[email protected]>
This script uses "chown user.group" instead of the POSIX "chown
user:group".  The first syntax is a deprecated GNU extension.
Since coreutils 9.1, chown started issuing a warning when this syntax is
used¹.

The result is that if both avahi and coreutils are enabled, this message
appears during boot:

chown: warning: '.' should be ':': 'avahi.avahi'

[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/lib/userspec.c?id=23cca8268d21f5d58ed0209002d5673d0518c426

Signed-off-by: Nicolas Cavallari <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit ccea032)
Signed-off-by: Peter Korsgaard <[email protected]>
Release notes:
https://www.postgresql.org/about/news/postgresql-144-released-2470/

Signed-off-by: Bernd Kuhls <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit 2579cc2)
Signed-off-by: Peter Korsgaard <[email protected]>
Fix the following musl build failure on mips:

In file included from /nvmedata/autobuild/instance-15/output-1/build/libabseil-cpp-20211102.0/absl/base/internal/low_level_alloc.cc:26:
/nvmedata/autobuild/instance-15/output-1/build/libabseil-cpp-20211102.0/absl/base/internal/direct_mmap.h:49:10: fatal error: sgidefs.h: No such file or directory
   49 | #include <sgidefs.h>
      |          ^~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/3fa027e602bacb22316fb5d9b233baa0b0f0e845

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit 4e56904)
Signed-off-by: Peter Korsgaard <[email protected]>
This is a maintenance release includes important security updates that
fixes possible vulnerability in URL decoding (see the report attached
below). All the qDecoder users are recommended to upgrade to this
version as soon as possible.

Fix CVE-2022-32265

Update hash of COPYING (change in year and URL removed:
wolkykim/qdecoder@51bdcc2
wolkykim/qdecoder@7458782)

https://github.com/wolkykim/qdecoder/releases/tag/v12.1.0

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
(cherry picked from commit c79d8cb)
Signed-off-by: Peter Korsgaard <[email protected]>
Default configuration file is wrong for the default compiling options.

Fixes:

Successfully initialized wpa_supplicant
Line 1: unknown global field 'ctrl_interface=/var/run/wpa_supplicant'.
Line 1: Invalid configuration line
'ctrl_interface=/var/run/wpa_supplicant'.
Failed to read or parse configuration '/etc/wpa_supplicant.conf'.

Signed-off-by: Angelo Compagnucci <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit a76294c)
Signed-off-by: Peter Korsgaard <[email protected]>
cpe:2.3:a:signalwire:sofia-sip is a valid CPE identifier for this
package:

  https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=cpe%3A2.3%3Aa%3Asignalwire%3Asofia-sip

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
(cherry picked from commit b77ee6c)
Signed-off-by: Peter Korsgaard <[email protected]>
ffontaine and others added 16 commits August 30, 2022 18:08
Add systemd optional dependency (enabled by default)

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
(cherry picked from commit 166ea61)
Signed-off-by: Peter Korsgaard <[email protected]>
Disable example tools (enabled by default since bump to version 1.9.20
in commit 26ca7fe and
jackaudio/jack2@508d95a)

Signed-off-by: Fabrice Fontaine <[email protected]>
Signed-off-by: Thomas Petazzoni <[email protected]>
(cherry picked from commit d4ab37a)
Signed-off-by: Peter Korsgaard <[email protected]>
Given a .config with:

    FOO="1234"
    BAR="$(FOO)"

and then:

    $(call KCONFIG_SET_OPT,FOO,azerty)

would yield a .config with just:

    FOO="azerty"

because \<FOO\> would match the assignment to BAR.

Reported-by: Yann E. MORIN <[email protected]>
Signed-off-by: TIAN Yuanhao <[email protected]>
Cc: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
(cherry picked from commit ff506cd)
Signed-off-by: Peter Korsgaard <[email protected]>
The --testcases option of run-tests says how many test cases to build in
parallel. It automatically derives a jlevel from it by dividing the
number of cores + 1 by the number of parallel testcases. However, this
will typically result in a fractional number. Make doesn't like
fractional numbers as argument to -j.

Convert the number to integer (rounding down).

* br2_jlevel is an int, as multiprocessing.cpu_count() is an int, so it
  will be always >=2  (cpu_count() raises an error if it can't determine
  the number of CPU, so it will always return at least 1);

* args.testcases is an int, and is checked to be >=1

So br2_jlevel + args.testcases is guaranteed to always be bigger
than or equal to args.testcases, and the division thus bigger than 1.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
[[email protected]:
  - ensure division provide at least 1
  - drop the test below
]
Signed-off-by: Yann E. MORIN <[email protected]>
(cherry picked from commit 8dce595)
Signed-off-by: Peter Korsgaard <[email protected]>
Somewhere between binutils 2.35 and 2.37, some functionality was
added in readelf to parse more DWARF information. Unfortunately, as
reported in binutils bug
28981 ("https://sourceware.org/bugzilla/show_bug.cgi?id=28981"), this
feature causes a number of fairly scary warnings to be displayed when
running readelf on binaries built with Clang, such as the pre-built
rustc and rustdoc binaries part of the host-rust-bin package. It
looks like this:

readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x23
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Bogus end-of-siblings marker detected at offset 2f in .debug_info section
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Bogus end-of-siblings marker detected at offset 10b in .debug_info section
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Bogus end-of-siblings marker detected at offset 10c in .debug_info section
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Further warnings about bogus end-of-sibling markers suppressed
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x23
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x23
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x23
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x23
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: Unrecognized form: 0x22
readelf: /home/thomas/projets/buildroot/output/host/bin/rustc: Warning: DIE at offset 0x1da refers to abbreviation number 5827 which does not exist

These warnings are caused by the readelf calls done by the
support/scripts/check-host-rpath script. The annoying thing is that
once host-rust-bin has been installed in $(HOST_DIR), this warning
appears after the installation of every single host package, because
support/scripts/check-host-rpath rescans all binaries every time.

To avoid showing those scary warnings, this commit sends the error
output of readelf to /dev/null.

Of course, it would be nicer to only filter out those warnings, but
filtering the error output without merging the error output into the
standard output is tricky, so let's keep things simple. If there is
really an error, readelf will abort.

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Yann E. MORIN <[email protected]>
(cherry picked from commit d353d30)
Signed-off-by: Peter Korsgaard <[email protected]>
…atest_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 <[email protected]>
(cherry picked from commit f1e3b2b)
Signed-off-by: Peter Korsgaard <[email protected]>
Signed-off-by: Peter Korsgaard <[email protected]>
Use commit af89f8ac3355027a90d7b299a78fb6fab9b6ffca instead of master to
  avoid patching issue in the future due to the PR
  webosose/umediaserver#2
This reverts commit 9e25216.
libcurl was update and version was bump to 12.0
@smx-smx
Copy link
Member

smx-smx commented Sep 2, 2022

Many thanks for taking the time to make these adjustments and create a pull request. I'll be back to my desk on Monday to review it properly.
For now i added a few messages to some commits but they are just notes more than requests for change.
In general it looks good to me

@GuillaumeSmaha
Copy link
Contributor Author

You are welcome.
I tried the follow and understand the change made previously.
For example for php, I can't explain why 8.1.x was needed. But I upgraded it because there are fix in the recent release for ICU >= 69 and ICU was upgraded to 70.

@smx-smx
Copy link
Member

smx-smx commented Sep 2, 2022

There is no particular reason, it just was the most recent stable at the time. If you're instead asking "why php", i chose it as an optional scripting language for ezinject to place hooks inside RELEASE or other binaries. I therefore prepared buildroot to optionally build php with embed SAPI. libfrida and capstone are two other optional dependencies that can be used by ezinject

@smx-smx
Copy link
Member

smx-smx commented Sep 7, 2022

Looks good to me, thanks again!

@smx-smx smx-smx merged commit 94716bc into openlgtv:master Sep 7, 2022
@GuillaumeSmaha GuillaumeSmaha deleted the update_2022.05.2 branch September 7, 2022 17:40
@GuillaumeSmaha
Copy link
Contributor Author

Thanks you for the time to review it too.

@GuillaumeSmaha
Copy link
Contributor Author

It seems I made a mistake on LGTV configuration. I am going to fix that. I don't know why the build passed on the PR itself

@GuillaumeSmaha
Copy link
Contributor Author

GuillaumeSmaha commented Sep 7, 2022

Found the issue: a submodule of moonlight-tv 1.3.1 is not available anymore. (Repo was delete or became private recently):
https://github.com/LnxPrgr3/message_queue
https://webcache.googleusercontent.com/search?q=cache:IjxnQiOmsMoJ:https://github.com/LnxPrgr3/message_queue&cd=1&hl=en&ct=clnk&gl=fr

This dependency was removed on moonlight-tv 1.4.5: https://github.com/mariotaku/moonlight-tv/blob/v1.4.5/.gitmodules

@smx-smx
Copy link
Member

smx-smx commented Sep 7, 2022

It's likely because the CI runner caches downloaded packages and also uses ccache.
I trusted it enough to not do a full build myself (which likely would also have had the package cached anyways)

@smx-smx
Copy link
Member

smx-smx commented Sep 7, 2022

I also just ran in this problem in my local build, for umediaserver

-- Found SWIG: /mnt/ExtData/buildroot-nc4/output/host/bin/swig4.0 (found version "4.0.2")
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.18", minimum required is "2.7")
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "2.7")
CMake Deprecation Warning at /usr/share/cmake-3.23/Modules/UseSWIG.cmake:734 (message):
  SWIG_ADD_MODULE is deprecated.  Use SWIG_ADD_LIBRARY instead.
Call Stack (most recent call first):
  test/python/binding/CMakeLists.txt:35 (SWIG_ADD_MODULE)

I guess you also need to update the CMake check for python3, here: https://github.com/webosose/umediaserver/blob/65b7ef50edda460433081ddddd0dc785363110e9/test/python/binding/CMakeLists.txt#L27-L28

@smx-smx
Copy link
Member

smx-smx commented Sep 7, 2022

I took care of the umediaserver issue: 0b0d9ca

@GuillaumeSmaha
Copy link
Contributor Author

I think I found a solution without upgrading to >=1.4.5 for moonlight-tv: #7

@smx-smx
Copy link
Member

smx-smx commented Sep 7, 2022

Nice, but i don't think there's anything against an upgrade tho

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.