Re: [OE-core] [PATCH] lib/oe/package: fix LOCALE_PATHS scan to create locale packages

2024-02-19 Thread Richard Purdie
On Mon, 2024-02-19 at 16:19 +, Jonathan GUILLOT wrote:
> split_locales() must only check subdirectories in paths added to
> LOCALE_PATHS to avoid creating weird packages based on filenames also
> present in paths.
> 
> Without such a filter, cups recipe adding ${datadir}/cups/templates
> to
> LOCALE_PATHS creates the following incorrect packages:
> - cups-locale-add-class.tmpl
> - cups-locale-add-printer.tmpl
> - cups-locale-admin.tmpl
> 
> Signed-off-by: Jonathan GUILLOT 
> ---
>  meta/conf/documentation.conf |  2 +-
>  meta/lib/oe/package.py   | 14 +-
>  2 files changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/meta/conf/documentation.conf
> b/meta/conf/documentation.conf
> index 90d8e82932..b0591881ba 100644
> --- a/meta/conf/documentation.conf
> +++ b/meta/conf/documentation.conf
> @@ -271,7 +271,7 @@ LICENSE_PATH[doc] = "Path to additional licenses
> used during the build."
>  LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in
> assembling the configuration."
>  LINUX_VERSION[doc] = "The Linux version from kernel.org on which the
> Linux kernel image being built using the OpenEmbedded build system is
> based. You define this variable in the kernel recipe."
>  LINUX_VERSION_EXTENSION[doc] = "A string extension compiled into the
> version string of the Linux kernel built with the OpenEmbedded build
> system. You define this variable in the kernel recipe."
> -LOCALE_PATHS[doc] = "Whitespace separated list of paths that are
> scanned to construct locale packages. The list already contains
> ${datadir}/locale by default."
> +LOCALE_PATHS[doc] = "Whitespace separated list of paths that are
> scanned to construct locale packages. The list already contains
> ${datadir}/locale by default. Note that all subdirectories in these
> paths are assumed to be locales."
>  LOCALE_UTF8_IS_DEFAULT[doc] = "If set, locale names are renamed such
> that those lacking an explicit encoding (e.g. en_US) will always be
> UTF-8, and non-UTF-8 encodings are renamed to, e.g., en_US.ISO-8859-
> 1. Otherwise, the encoding is specified by glibc's SUPPORTED file.
> Not supported for precompiled locales."
>  LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded
> build system writes overall log files. The default directory is
> ${TMPDIR}/log"
>  
> diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
> index d1738d3b61..587810bdaf 100644
> --- a/meta/lib/oe/package.py
> +++ b/meta/lib/oe/package.py
> @@ -652,11 +652,15 @@ def split_locales(d):
>  locales = set()
>  for localepath in (d.getVar('LOCALE_PATHS') or "").split():
>  localedir = dvar + localepath
> -    if cpath.isdir(localedir):
> -    locales.update(os.listdir(localedir))
> -    localepaths.append(localepath)
> -    else:
> -    bb.debug(1, "No locale files in %s" % localepath)
> +    if not cpath.isdir(localedir):
> +    bb.debug(1, 'No locale files in %s' % localepath)
> +    continue
> +
> +    localepaths.append(localepath)
> +    with os.scandir(localedir) as it:
> +    for entry in it:
> +    if entry.is_dir():
> +    locales.add(entry.name)
>  
>  if len(locales) == 0:
>  bb.debug(1, "No locale files in this package")
> 
> base-commit: f5e6183b9557477bef74024a587de0bfcc2b7c0d

Unfortunately this breaks glibc-locale:

https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/6379/steps/14/logs/stdio

ERROR: glibc-locale-2.39+git-r0 do_package: QA Issue: glibc-locale: 
Files/directories were installed but not shipped in any package:
  /usr/share/locale/locale.alias
Please set FILES such that these items are packaged. Alternatively if they are 
unneeded, avoid installing them or delete them within do_install.

Cheers,

Richard


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195905): 
https://lists.openembedded.org/g/openembedded-core/message/195905
Mute This Topic: https://lists.openembedded.org/mt/104449750/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH v2 1/3] image.bbclass/rootfs: archive and deploy opkg package database

2024-02-19 Thread Johannes Schneider via lists.openembedded.org
Hoi Richard,

and thanks for the feedback!

>> archive the package database after the rootfs has been put together as
>> *rootfs-pkdbfs.tar.gz, and put it into the deploy folder.
>>
>> This creates a snapshot of the package mangers state at the point in time 
>> when
>> all dependencies have been resolved and installed; which can be used by 
>> "follow
>> up" images to be built upon.
>
>I'm torn on this series. On the one hand I can see why it might be
>useful. On the other hand:
>
>* no test cases for it
>* no documentation updates
>* no real indications in the code on what it is doing (no comments)
>

point taken, i'll look into the test framework and add something with V3

and i missed the in-source docs... also sth for V3
i'll redistribute the example/documentation from the cover letter amongst the 
meta/conf/documentation.conf for the variables, and in-source comments

any other place in this repo i should be aware off/add documentation to?

>
>It also copies and pastes a lot of the debugfs code and duplicates it
>which makes me wonder if there isn't something better we should be
>doing here.

the copy comes from the similar steps having to be taken at around the 
same time.
could you elaborate on "something better"? taking different steps, 
de-duplicating code? ...?

>
>There is good info in the 0/3 series email but that will get lost once
>things merge.

good point - i'll incorporate more from the cover-letter into the code itself
with the next version.

>
>> Signed-off-by: Johannes Schneider 
>> ---
>>  meta/classes-recipe/image.bbclass | 45 ++-
>>  meta/classes-recipe/image_types.bbclass   |  1 +
>>  meta/conf/bitbake.conf|  1 +
>>  meta/lib/oe/package_manager/deb/rootfs.py |  1 +
>>  meta/lib/oe/package_manager/ipk/rootfs.py |  1 +
>>  meta/lib/oe/package_manager/rpm/rootfs.py |  1 +
>>  meta/lib/oe/rootfs.py | 35 ++
>>  7 files changed, 83 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/classes-recipe/image.bbclass 
>> b/meta/classes-recipe/image.bbclass
>> index 28be6c6362..c688c39f15 100644
>> --- a/meta/classes-recipe/image.bbclass
>> +++ b/meta/classes-recipe/image.bbclass
>> @@ -42,6 +42,9 @@ IMAGE_FEATURES ?= ""
>>  IMAGE_FEATURES[type] = "list"
>>  IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs 
>> read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password 
>> allow-empty-password allow-root-login serial-autologin-root 
>> post-install-logging overlayfs-etc"
>>
>> +# Generate snapshot of the package database?
>> +IMAGE_GEN_PKGDBFS ?= "0"
>> +
>>  # Generate companion debugfs?
>>  IMAGE_GEN_DEBUGFS ?= "0"
>>
>> @@ -131,7 +134,8 @@ def rootfs_variables(d):
>>   
>> 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
>>  'IMAGE_LINGUAS_COMPLEMENTARY', 'IMAGE_LOCALES_ARCHIVE',
>>   
>> 'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
>>   
>> 'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
>> - 'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 
>> 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 
>> 'REPRODUCIBLE_TIMESTAMP_ROOTFS', 'IMAGE_INSTALL_DEBUGFS']
>> + 'CONVERSIONTYPES', 'IMAGE_GEN_PKGDBFS', 
>> 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 
>> 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS',
>> + 'IMAGE_INSTALL_DEBUGFS']
>>  variables.extend(rootfs_command_variables(d))
>>  variables.extend(variable_depends(d))
>>  return " ".join(variables)
>> @@ -337,6 +341,19 @@ python do_image_qa_setscene () {
>>  }
>>  addtask do_image_qa_setscene
>>
>> +def setup_pkgdbfs_variables(d):
>> +d.appendVar('IMAGE_ROOTFS', '-pkgdb')
>> +if d.getVar('IMAGE_LINK_NAME'):
>> +d.appendVar('IMAGE_LINK_NAME', '-pkgdb')
>> +d.appendVar('IMAGE_NAME','-pkgdb')
>> +pkgdbfs_image_fstypes = d.getVar('IMAGE_FSTYPES_PKGDBFS')
>> +if pkgdbfs_image_fstypes:
>> +d.setVar('IMAGE_FSTYPES', pkgdbfs_image_fstypes)
>> +
>> +python setup_pkgdbfs () {
>> +setup_pkgdbfs_variables(d)
>> +}
>> +
>>  def setup_debugfs_variables(d):
>>  d.appendVar('IMAGE_ROOTFS', '-dbg')
>>  if d.getVar('IMAGE_LINK_NAME'):
>> @@ -381,6 +398,11 @@ python () {
>>  alltypes = d.getVar('IMAGE_FSTYPES').split()
>>  typedeps = {}
>>
>> +if d.getVar('IMAGE_GEN_PKGDBFS') == "1":
>> +pkgdbfs_fstypes = d.getVar('IMAGE_FSTYPES_PKGDBFS').split()
>> +for t in pkgdbfs_fstypes:
>> +alltypes.append("pkgdbfs_" + t)
>> +
>>  if d.getVar('IMAGE_GEN_DEBUGFS') == "1":
>>   

Re: [OE-core] [PATCH v2 2/3] image.bbclass/rootfs: set package-database

2024-02-19 Thread Johannes Schneider via lists.openembedded.org
Hoi Richard,

and thanks for the feedback!
your other mail is still being processed, but to get already back to you on 
this one:

>> set the package-database of a "lower image" to unpack and build upon when
>> installing packages for the current image. This way a lean image will be
>> created, which only holds the packages that are not already present in the 
>> lower
>> image, that then could be used with overlayfs or systemd-sysext to extend the
>> "lower image" on demand; for development purposes on an RO lower image for
>> example.
>>
>> Signed-off-by: Johannes Schneider 
>> ---
>>  meta/classes-recipe/image.bbclass | 10 +++-
>>  meta/lib/oe/package_manager/deb/rootfs.py |  2 ++
>>  meta/lib/oe/package_manager/ipk/rootfs.py |  6 +++--
>>  meta/lib/oe/package_manager/rpm/rootfs.py |  7 --
>>  meta/lib/oe/rootfs.py | 29 +++
>>  5 files changed, 49 insertions(+), 5 deletions(-)
>>
>> diff --git a/meta/classes-recipe/image.bbclass 
>> b/meta/classes-recipe/image.bbclass
>> index c688c39f15..b4a2460187 100644
>> --- a/meta/classes-recipe/image.bbclass
>> +++ b/meta/classes-recipe/image.bbclass
>> @@ -42,8 +42,16 @@ IMAGE_FEATURES ?= ""
>>  IMAGE_FEATURES[type] = "list"
>>  IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs 
>> read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password 
>> allow-empty-password allow-root-login serial-autologin-root 
>> post-install-logging overlayfs-etc"
>>
>> +# Image layering:
>> +# a "base image" would create a snapshot of the package-database after the
>> +# installation of all packages into the rootfs is done. The next/other image
>> +# "layered on-top" of the former would then import that database and install
>> +# further packages; without reinstalling package dependencies that are 
>> already
>> +# installed in the layer below.
>>  # Generate snapshot of the package database?
>>  IMAGE_GEN_PKGDBFS ?= "0"
>> +# Package-database of the base image, upon which to build up a new 
>> image-layer
>> +IMAGE_BASE_PKGDB ?= ""
>>
>>  # Generate companion debugfs?
>>  IMAGE_GEN_DEBUGFS ?= "0"
>> @@ -134,7 +142,7 @@ def rootfs_variables(d):
>>   
>> 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
>>  'IMAGE_LINGUAS_COMPLEMENTARY', 'IMAGE_LOCALES_ARCHIVE',
>>   
>> 'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
>>   
>> 'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
>> - 'CONVERSIONTYPES', 'IMAGE_GEN_PKGDBFS', 
>> 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 
>> 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS',
>> + 'CONVERSIONTYPES', 'IMAGE_GEN_PKGDBFS', 
>> 'IMAGE_BASE_PKGDB', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 
>> 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 
>> 'REPRODUCIBLE_TIMESTAMP_ROOTFS',
>>   'IMAGE_INSTALL_DEBUGFS']
>>  variables.extend(rootfs_command_variables(d))
>>  variables.extend(variable_depends(d))
>> diff --git a/meta/lib/oe/package_manager/deb/rootfs.py 
>> b/meta/lib/oe/package_manager/deb/rootfs.py
>> index 43107c8663..71a21df09b 100644
>> --- a/meta/lib/oe/package_manager/deb/rootfs.py
>> +++ b/meta/lib/oe/package_manager/deb/rootfs.py
>> @@ -152,6 +152,8 @@ class PkgRootfs(DpkgOpkgRootfs):
>>
>>  execute_pre_post_process(self.d, deb_pre_process_cmds)
>>
>> +self._unpack_pkg_db_rootfs(['/var/lib/dpkg'])
>> +
>>  if self.progress_reporter:
>>  self.progress_reporter.next_stage()
>>  # Don't support incremental, so skip that
>> diff --git a/meta/lib/oe/package_manager/ipk/rootfs.py 
>> b/meta/lib/oe/package_manager/ipk/rootfs.py
>> index 64d9bc7969..408faa8030 100644
>> --- a/meta/lib/oe/package_manager/ipk/rootfs.py
>> +++ b/meta/lib/oe/package_manager/ipk/rootfs.py
>> @@ -276,12 +276,16 @@ class PkgRootfs(DpkgOpkgRootfs):
>>  pkgs_to_install = self.manifest.parse_initial_manifest()
>>  opkg_pre_process_cmds = self.d.getVar('OPKG_PREPROCESS_COMMANDS')
>>  opkg_post_process_cmds = self.d.getVar('OPKG_POSTPROCESS_COMMANDS')
>> +opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
>> +opkg_dir = os.path.join(opkg_lib_dir, 'opkg')
>>
>>  # update PM index files
>>  self.pm.write_index()
>>
>>  execute_pre_post_process(self.d, opkg_pre_process_cmds)
>>
>> +self._unpack_pkg_db_rootfs([opkg_dir])
>> +
>>  if self.progress_reporter:
>>  self.progress_reporter.next_stage()
>>  # Steps are a bit different in order, skip next
>> @@ -317,8 +321,6 @@ class 

[OE-core] [PATCH] cve-check: Modify judgment processing using "=" in version comparison

2024-02-19 Thread Matsunaga-Shinji via lists.openembedded.org
Judgment processing of vulnerable using "=" compares characters as strings 
rather than numbers,
and misjudges "cases that do not match in strings but do match in numbers" as 
"Patched".
(e.g. PV = "1.2.0" and Vulnerabilities Affected Versions (registered with NVD) 
= "1.2")

Therefore, if the comparison operator used in the judgment processing of 
vulnerable is "=",
add numeric comparison processing.

Signed-off-by: Shinji Matsunaga 
Signed-off-by: Shunsuke Tokumoto 
---
 meta/classes/cve-check.bbclass | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
index 5191d04303..086d87687f 100644
--- a/meta/classes/cve-check.bbclass
+++ b/meta/classes/cve-check.bbclass
@@ -375,6 +375,7 @@ def check_cves(d, patched_cves):
 try:
 vulnerable_start =  (operator_start == '>=' and 
Version(pv,suffix) >= Version(version_start,suffix))
 vulnerable_start |= (operator_start == '>' and 
Version(pv,suffix) > Version(version_start,suffix))
+vulnerable_start |= (operator_start == '=' and 
Version(pv,suffix) == Version(version_start,suffix))
 except:
 bb.warn("%s: Failed to compare %s %s %s for %s" %
 (product, pv, operator_start, 
version_start, cve))
-- 
2.42.0


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195902): 
https://lists.openembedded.org/g/openembedded-core/message/195902
Mute This Topic: https://lists.openembedded.org/mt/104462613/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] libsdl2: upgrade 2.28.5 -> 2.30.0

2024-02-19 Thread Yi Zhao
License-Update: Copyright year updated to 2024.

ChangeLog (https://github.com/libsdl-org/SDL/releases/tag/release-2.30.0):
* Added support for 2 bits-per-pixel indexed surface formats
* Added the function SDL_GameControllerGetSteamHandle() to get the Steam
  API handle for a controller, if available
* Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when
  the Steam API handle for a controller changes. This could also change
  the name, VID, and PID of the controller.
* Added the environment variable SDL_LOGGING to control default log
  output

Signed-off-by: Yi Zhao 
---
 .../libsdl2/{libsdl2_2.28.5.bb => libsdl2_2.30.0.bb}  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/libsdl2/{libsdl2_2.28.5.bb => libsdl2_2.30.0.bb} 
(96%)

diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.28.5.bb 
b/meta/recipes-graphics/libsdl2/libsdl2_2.30.0.bb
similarity index 96%
rename from meta/recipes-graphics/libsdl2/libsdl2_2.28.5.bb
rename to meta/recipes-graphics/libsdl2/libsdl2_2.30.0.bb
index fd876df0ad..99dbf36477 100644
--- a/meta/recipes-graphics/libsdl2/libsdl2_2.28.5.bb
+++ b/meta/recipes-graphics/libsdl2/libsdl2_2.30.0.bb
@@ -9,7 +9,7 @@ SECTION = "libs"
 
 LICENSE = "Zlib & BSD-2-Clause"
 LIC_FILES_CHKSUM = "\
-file://LICENSE.txt;md5=31f575634fd56b27fc6b6cbe8dc9bd38 \
+file://LICENSE.txt;md5=25231a5b96ccdd8f39eb53c07717be64 \
 file://src/hidapi/LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077 \
 file://src/hidapi/LICENSE-bsd.txt;md5=b5fa085ce0926bb50d0621620a82361f \
 file://src/video/yuv2rgb/LICENSE;md5=79f8f3418d91531e05f0fc94ca67e071 \
@@ -25,7 +25,7 @@ SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz;
 
 S = "${WORKDIR}/SDL2-${PV}"
 
-SRC_URI[sha256sum] = 
"332cb37d0be20cb9541739c61f79bae5a477427d79ae85e352089afdafe4"
+SRC_URI[sha256sum] = 
"36e2e41557e0fa4a1519315c0f5958a87ccb27e25c51776beb6f1239526447b0"
 
 inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even
 
-- 
2.25.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195901): 
https://lists.openembedded.org/g/openembedded-core/message/195901
Mute This Topic: https://lists.openembedded.org/mt/104462415/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core][PATCH] bash: rebase the patch to fix ptest failure

2024-02-19 Thread Xiangyu Chen
From: Xiangyu Chen 

This fix commit oe-core: 1b69769b -- bash: changes to SIGINT handler while 
waiting for a child

Due to the patch adjust and drop some codes to be applicable the tree,
the line number has been changed, that cause test case "run-type" fail.

Signed-off-by: Xiangyu Chen 
---
 ...1-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch
 
b/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch
index df92c2475d..77d770b364 100644
--- 
a/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch
+++ 
b/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch
@@ -147,7 +147,7 @@ index bbc228e8..e0a66745 100644
 -alias m='more'
 -alias m='more'
 -m is aliased to `more'
-+./type.tests: line 59: type: morealias: not found
++./type.tests: line 56: type: morealias: not found
 +alias morealias='more'
 +alias morealias='more'
 +morealias is aliased to `more'
-- 
2.25.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195900): 
https://lists.openembedded.org/g/openembedded-core/message/195900
Mute This Topic: https://lists.openembedded.org/mt/104461495/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] python3-pyproject-metadata: HOMEPAGE; DESCRIPTION

2024-02-19 Thread Tim Orling
Add HOMEPAGE and DESCRIPTION that were missing in
the original recipe in meta-python

Signed-off-by: Tim Orling 
---
 .../python/python3-pyproject-metadata_0.7.1.bb| 11 +++
 1 file changed, 11 insertions(+)

diff --git a/meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb 
b/meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb
index e0da1d96907..8b9549f3d07 100644
--- a/meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb
+++ b/meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb
@@ -1,10 +1,21 @@
 SUMMARY = "PEP 621 metadata parsing"
+DESCRIPTION = "Dataclass for PEP 621 metadata with support for core \
+metadata generation \
+\
+This project does not implement the parsing of pyproject.toml containing \
+PEP 621 metadata.\
+\
+Instead, given a Python data structure representing PEP 621 metadata \
+(already parsed), it will validate this input and generate a \
+PEP 643-compliant metadata file (e.g. PKG-INFO)."
+HOMEPAGE = "https://github.com/FFY00/python-pyproject-metadata;
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=310439af287b0fb4780b2ad6907c256c"
 
 PYPI_PACKAGE = "pyproject-metadata"
 
 inherit pypi python_setuptools_build_meta
+
 SRC_URI[sha256sum] = 
"0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67"
 
 RDEPENDS:${PN} += " \
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195899): 
https://lists.openembedded.org/g/openembedded-core/message/195899
Mute This Topic: https://lists.openembedded.org/mt/104458405/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] python3-pyproject-metadata: move from meta-python

2024-02-19 Thread Tim Orling
This is a dependency for python3-meson-python.

Signed-off-by: Tim Orling 
---
 meta/conf/distro/include/maintainers.inc |  1 +
 .../python/python3-pyproject-metadata_0.7.1.bb   | 16 
 2 files changed, 17 insertions(+)
 create mode 100644 
meta/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb

diff --git a/meta/conf/distro/include/maintainers.inc 
b/meta/conf/distro/include/maintainers.inc
index 1ab69175bb8..7e17e9b71fa 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -629,6 +629,7 @@ RECIPE_MAINTAINER:pn-python3-dtschema-wrapper = "Bruce 
Ashfield 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195898): 
https://lists.openembedded.org/g/openembedded-core/message/195898
Mute This Topic: https://lists.openembedded.org/mt/104455875/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] Patchtest results for [PATCH 4/4] recipetool; add support for python_mesonpy class

2024-02-19 Thread Patchtest
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch 
/home/patchtest/share/mboxes/4-4-recipetool-add-support-for-python_mesonpy-class.patch

FAIL: test shortlog format: Commit shortlog (first line of commit message) 
should follow the format ": " 
(test_mbox.TestMbox.test_shortlog_format)

PASS: pretest pylint (test_python_pylint.PyLint.pretest_pylint)
PASS: test Signed-off-by presence 
(test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence 
(test_mbox.TestMbox.test_commit_message_presence)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test pylint (test_python_pylint.PyLint.test_pylint)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)

SKIP: pretest src uri left files: No modified recipes, skipping pretest 
(test_metadata.TestMetadata.pretest_src_uri_left_files)
SKIP: test CVE check ignore: No modified recipes, skipping test 
(test_metadata.TestMetadata.test_cve_check_ignore)
SKIP: test CVE tag format: No new CVE patches introduced 
(test_patch.TestPatch.test_cve_tag_format)
SKIP: test Signed-off-by presence: No new CVE patches introduced 
(test_patch.TestPatch.test_signed_off_by_presence)
SKIP: test Upstream-Status presence: No new CVE patches introduced 
(test_patch.TestPatch.test_upstream_status_presence_format)
SKIP: test bugzilla entry format: No bug ID found 
(test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum modified not mentioned: No modified recipes, 
skipping test 
(test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
SKIP: test lic files chksum presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_license_presence)
SKIP: test series merge on head: Merge test is disabled for now 
(test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test src uri left files: No modified recipes, skipping pretest 
(test_metadata.TestMetadata.test_src_uri_left_files)
SKIP: test summary presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_summary_presence)
SKIP: test target mailing list: Series merged, no reason to check other mailing 
lists (test_mbox.TestMbox.test_target_mailing_list)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195897): 
https://lists.openembedded.org/g/openembedded-core/message/195897
Mute This Topic: https://lists.openembedded.org/mt/104451585/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [kirkstone][PATCH] ldconfig-native: Fix to point correctly on the DT_NEEDED entries in an ELF file

2024-02-19 Thread Fabien Mahot
From: Fabien Mahot 

When ldconfig-native reads an ELF file, it computes an offset from a LOAD
segment, to point on DT NEEDED entries of dynstr section.
Without this patch, ldconfig-native uses only the first LOAD segment, even if
the offset is incorrect.
This patch adds conditions to compute the offset by parsing all LOAD segments,
one by one.

This is a backport from [0], ported to support endianness and 32/64 bits.

[0]: 
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=58e8f5fd2ba47b6dc47fd4d0a35e4175c7c87aaa

Signed-off-by: Fabien Mahot 
Reviewed-by: Yoann Congal 
Signed-off-by: Richard Purdie 
---
 ...-.dynstr-located-in-separate-segment.patch | 178 ++
 .../glibc/ldconfig-native_2.12.1.bb   |   1 +
 2 files changed, 179 insertions(+)
 create mode 100644 
meta/recipes-core/glibc/ldconfig-native-2.12.1/ldconfig-handle-.dynstr-located-in-separate-segment.patch

diff --git 
a/meta/recipes-core/glibc/ldconfig-native-2.12.1/ldconfig-handle-.dynstr-located-in-separate-segment.patch
 
b/meta/recipes-core/glibc/ldconfig-native-2.12.1/ldconfig-handle-.dynstr-located-in-separate-segment.patch
new file mode 100644
index 00..36f04adfde
--- /dev/null
+++ 
b/meta/recipes-core/glibc/ldconfig-native-2.12.1/ldconfig-handle-.dynstr-located-in-separate-segment.patch
@@ -0,0 +1,178 @@
+From 864054a6cb971688a181316b8227ae0361b4d69e Mon Sep 17 00:00:00 2001
+From: Andreas Schwab 
+Date: Wed, 9 Oct 2019 17:46:47 +0200
+Subject: [PATCH] ldconfig: handle .dynstr located in separate segment (bug
+ 25087)
+
+To determine the load offset of the DT_STRTAB section search for the
+segment containing it, instead of using the load offset of the first
+segment.
+
+Upstream-Status: Backport 
[https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=58e8f5fd2ba47b6dc47fd4d0a35e4175c7c87aaa]
+
+Backported: ported to support endianness and 32/64 bits.
+Signed-off-by: Fabien Mahot 
+---
+ readelflib.c | 86 +++-
+ 1 file changed, 52 insertions(+), 34 deletions(-)
+
+diff --git a/readelflib.c b/readelflib.c
+index a01e1cede3..380aed563d 100644
+--- a/readelflib.c
 b/readelflib.c
+@@ -80,7 +80,6 @@ process_elf_file32 (const char *file_name, const char *lib, 
int *flag,
+ {
+   int i;
+   unsigned int j;
+-  Elf32_Addr loadaddr;
+   unsigned int dynamic_addr;
+   size_t dynamic_size;
+   char *program_interpreter;
+@@ -110,7 +109,6 @@ process_elf_file32 (const char *file_name, const char 
*lib, int *flag,
+  libc5/libc6.  */
+   *flag = FLAG_ELF;
+ 
+-  loadaddr = -1;
+   dynamic_addr = 0;
+   dynamic_size = 0;
+   program_interpreter = NULL;
+@@ -121,11 +119,6 @@ process_elf_file32 (const char *file_name, const char 
*lib, int *flag,
+ 
+   switch (read32(segment->p_type, be))
+   {
+-  case PT_LOAD:
+-if (loadaddr == (Elf32_Addr) -1)
+-  loadaddr = read32(segment->p_vaddr, be) - read32(segment->p_offset, 
be);
+-break;
+-
+   case PT_DYNAMIC:
+ if (dynamic_addr)
+   error (0, 0, _("more than one dynamic segment\n"));
+@@ -188,11 +181,6 @@ process_elf_file32 (const char *file_name, const char 
*lib, int *flag,
+   }
+ 
+ }
+-  if (loadaddr == (Elf32_Addr) -1)
+-{
+-  /* Very strange. */
+-  loadaddr = 0;
+-}
+ 
+   /* Now we can read the dynamic sections.  */
+   if (dynamic_size == 0)
+@@ -208,11 +196,32 @@ process_elf_file32 (const char *file_name, const char 
*lib, int *flag,
+ {
+   check_ptr (dyn_entry);
+   if (read32(dyn_entry->d_tag, be) == DT_STRTAB)
+-  {
+-dynamic_strings = (char *) (file_contents + 
read32(dyn_entry->d_un.d_val, be) - loadaddr);
+-check_ptr (dynamic_strings);
+-break;
+-  }
++{
++  /* Find the file offset of the segment containing the dynamic
++ string table.  */
++  Elf32_Off loadoff = -1;
++  for (i = 0, segment = elf_pheader;
++   i < read16(elf_header->e_phnum, be); i++, segment++)
++{
++  if (read32(segment->p_type, be) == PT_LOAD
++  && read32(dyn_entry->d_un.d_val, be) >= 
read32(segment->p_vaddr, be)
++  && (read32(dyn_entry->d_un.d_val, be) - 
read32(segment->p_vaddr, be)
++  < read32(segment->p_filesz, be)))
++{
++  loadoff = read32(segment->p_vaddr, be) - 
read32(segment->p_offset, be);
++  break;
++}
++}
++  if (loadoff == (Elf32_Off) -1)
++{
++  /* Very strange. */
++  loadoff = 0;
++}
++
++  dynamic_strings = (char *) (file_contents + 
read32(dyn_entry->d_un.d_val, be) - loadoff);
++  check_ptr (dynamic_strings);
++  break;
++}
+ }
+ 
+   if (dynamic_strings == NULL)
+@@ -269,7 +278,6 @@ process_elf_file64 (const char *file_name, const char 
*lib, int *flag,
+ {
+   int i;
+   unsigned int j;

[OE-core] [PATCH 4/4] recipetool; add support for python_mesonpy class

2024-02-19 Thread Tim Orling
* Add support to detect the "mesonpy" build-backend for recipetool create.
* Add oe-selftest case for creating a recipe for "siphash24" from pypi.
  https://pypi.org/project/siphash24/

This is by far the simplest recipe using the mesonpy build backend.

Upstream does not provide LICENSE file(s) and we do not detect the
LICENSE so don't check for that result in the test. Likewise, upstream
does not define HOMEPAGE, so skip that result.

Signed-off-by: Tim Orling 
---
 meta/lib/oeqa/selftest/cases/recipetool.py| 19 +++
 .../lib/recipetool/create_buildsys_python.py  |  4 
 2 files changed, 23 insertions(+)

diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py 
b/meta/lib/oeqa/selftest/cases/recipetool.py
index 83361814dfd..2eca1800de1 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -676,6 +676,25 @@ class RecipetoolCreateTests(RecipetoolBase):
 
 self._test_recipe_contents(recipefile, checkvars, inherits)
 
+def test_recipetool_create_python3_pep517_mesonpy(self):
+# This test require python 3.11 or above for the tomllib module or 
tomli module to be installed
+needTomllib(self)
+
+# Test creating python3 package from tarball (using mesonpy class)
+temprecipe = os.path.join(self.tempdir, 'recipe')
+os.makedirs(temprecipe)
+pn = 'siphash24'
+pv = '1.4'
+recipefile = os.path.join(temprecipe, 'python3-%s_%s.bb' % (pn, pv))
+srcuri = 
'https://files.pythonhosted.org/packages/c2/32/b934a70592f314afcfa86c7f7e388804a8061be65b822e2aa07e573b6477/%s-%s.tar.gz'
 % (pn, pv)
+result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
+self.assertTrue(os.path.isfile(recipefile))
+checkvars = {}
+checkvars['SRC_URI[sha256sum]'] = 
'7fd65e39b2a7c8c4ddc3a168a687f4610751b0ac2ebb518783c0cdfc30bec4a0'
+inherits = ['python_mesonpy', 'pypi']
+
+self._test_recipe_contents(recipefile, checkvars, inherits)
+
 def test_recipetool_create_github_tarball(self):
 # Basic test to ensure github URL mangling doesn't apply to release 
tarballs.
 # Deliberately use an older release of Meson at present so we don't 
need a toml parser.
diff --git a/scripts/lib/recipetool/create_buildsys_python.py 
b/scripts/lib/recipetool/create_buildsys_python.py
index a589343cfbf..a807dafae52 100644
--- a/scripts/lib/recipetool/create_buildsys_python.py
+++ b/scripts/lib/recipetool/create_buildsys_python.py
@@ -739,6 +739,7 @@ class PythonPyprojectTomlRecipeHandler(PythonRecipeHandler):
 "flit_core.buildapi": "python_flit_core",
 "hatchling.build": "python_hatchling",
 "maturin": "python_maturin",
+"mesonpy": "python_mesonpy",
 }
 
 # setuptools.build_meta and flit declare project metadata into the 
"project" section of pyproject.toml
@@ -779,6 +780,8 @@ class PythonPyprojectTomlRecipeHandler(PythonRecipeHandler):
 "python3-poetry-core-native",
 # already provided by python_flit_core.bbclass
 "python3-flit-core-native",
+# already provided by python_mesonpy
+"python3-meson-python-native",
 ]
 
 # add here a list of known and often used packages and the corresponding 
bitbake package
@@ -790,6 +793,7 @@ class PythonPyprojectTomlRecipeHandler(PythonRecipeHandler):
 "setuptools-scm": "python3-setuptools-scm",
 "hatchling": "python3-hatchling",
 "hatch-vcs": "python3-hatch-vcs",
+"meson-python" : "python3-meson-python",
 }
 
 def __init__(self):
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195895): 
https://lists.openembedded.org/g/openembedded-core/message/195895
Mute This Topic: https://lists.openembedded.org/mt/104451076/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH 3/4] python3-numpy: inherit python_mesonpy

2024-02-19 Thread Tim Orling
Replace the deprecated setuptools3 bbclass with python_mesonpy.

The build-backend has been defined as "mesonpy" since:
https://github.com/numpy/numpy/commit/942fb8caf33a65e449fbf198ecf1cd39be953248

The vendored meson-python was dropped in:
https://github.com/numpy/numpy/commit/6544e33ac7a3a600c2fb565401c811a17ecdb3d5

While we are at it:
* Drop ${PYTHON_PN} and use python3 instead
* Sort RDEPENDS alphabetically

The ptests run, but we still have issues with sufficient memory and
free disk space (the reason python3-numpy is in PTEST_PROBLEMS).

Signed-off-by: Tim Orling 
---
 .../python/python3-numpy_1.26.4.bb| 54 ++-
 1 file changed, 28 insertions(+), 26 deletions(-)

diff --git a/meta/recipes-devtools/python/python3-numpy_1.26.4.bb 
b/meta/recipes-devtools/python/python3-numpy_1.26.4.bb
index d11b03efc3d..402d74db72d 100644
--- a/meta/recipes-devtools/python/python3-numpy_1.26.4.bb
+++ b/meta/recipes-devtools/python/python3-numpy_1.26.4.bb
@@ -20,7 +20,7 @@ UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P\d+(\.\d+)+)$"
 
 DEPENDS += "python3-cython-native"
 
-inherit ptest setuptools3 github-releases
+inherit ptest python_mesonpy github-releases
 
 S = "${WORKDIR}/numpy-${PV}"
 
@@ -33,32 +33,34 @@ do_compile:prepend() {
 FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a 
${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a"
 
 # install what is needed for numpy.test()
-RDEPENDS:${PN} = "${PYTHON_PN}-unittest \
-  ${PYTHON_PN}-difflib \
-  ${PYTHON_PN}-pprint \
-  ${PYTHON_PN}-pickle \
-  ${PYTHON_PN}-shell \
-  ${PYTHON_PN}-doctest \
-  ${PYTHON_PN}-datetime \
-  ${PYTHON_PN}-misc \
-  ${PYTHON_PN}-mmap \
-  ${PYTHON_PN}-netclient \
-  ${PYTHON_PN}-numbers \
-  ${PYTHON_PN}-pydoc \
-  ${PYTHON_PN}-pkgutil \
-  ${PYTHON_PN}-email \
-  ${PYTHON_PN}-compression \
-  ${PYTHON_PN}-ctypes \
-  ${PYTHON_PN}-threading \
-  ${PYTHON_PN}-multiprocessing \
-  ${PYTHON_PN}-json \
+RDEPENDS:${PN} = "\
+python3-compression \
+python3-ctypes \
+python3-datetime \
+python3-difflib \
+python3-doctest \
+python3-email \
+python3-json \
+python3-misc \
+python3-mmap \
+python3-multiprocessing \
+python3-netclient \
+python3-numbers \
+python3-pickle \
+python3-pkgutil \
+python3-pprint \
+python3-pydoc \
+python3-shell \
+python3-threading \
+python3-unittest \
 "
-RDEPENDS:${PN}-ptest += "${PYTHON_PN}-pytest \
- ${PYTHON_PN}-hypothesis \
- ${PYTHON_PN}-sortedcontainers \
- ${PYTHON_PN}-resource \
- ${PYTHON_PN}-typing-extensions \
- ldd \
+RDEPENDS:${PN}-ptest += "\
+ldd \
+python3-hypothesis \
+python3-pytest \
+python3-resource \
+python3-sortedcontainers \
+python3-typing-extensions \
 "
 
 BBCLASSEXTEND = "native nativesdk"
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195894): 
https://lists.openembedded.org/g/openembedded-core/message/195894
Mute This Topic: https://lists.openembedded.org/mt/104451074/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH 2/4] python_mesonpy.bbclass: move from meta-python

2024-02-19 Thread Tim Orling
Move the PEP-517 back-end bbclass from meta-python to support:

[build-system]
build-backend = "mesonpy"

This is the declared backend in python3-numpy since:
https://github.com/numpy/numpy/commit/942fb8caf33a65e449fbf198ecf1cd39be953248

Signed-off-by: Tim Orling 
---
 meta/classes-recipe/python_mesonpy.bbclass | 52 ++
 1 file changed, 52 insertions(+)
 create mode 100644 meta/classes-recipe/python_mesonpy.bbclass

diff --git a/meta/classes-recipe/python_mesonpy.bbclass 
b/meta/classes-recipe/python_mesonpy.bbclass
new file mode 100644
index 000..131fa74bede
--- /dev/null
+++ b/meta/classes-recipe/python_mesonpy.bbclass
@@ -0,0 +1,52 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+inherit meson setuptools3-base python3targetconfig python_pep517
+
+# meson_do_qa_configure does the wrong thing here because
+# mesonpy runs "meson setup ..." in do_compile context.
+# Make it a dummy function.
+meson_do_qa_configure () {
+:
+}
+
+# This prevents the meson error:
+# ERROR: Got argument buildtype as both -Dbuildtype and --buildtype. Pick one.
+MESONOPTS:remove = "--buildtype ${MESON_BUILDTYPE}"
+
+CONFIGURE_FILES = "pyproject.toml"
+
+DEPENDS += "python3-wheel-native python3-meson-python-native"
+
+def mesonpy_get_args(d):
+vars = ['MESONOPTS', 'MESON_CROSS_FILE', 'EXTRA_OEMESON']
+varlist = []
+for var in vars:
+value = d.getVar(var)
+vallist = value.split()
+for elem in vallist:
+varlist.append("-Csetup-args=" + elem)
+return ' '.join(varlist)
+
+PEP517_BUILD_OPTS = "-Cbuilddir='${B}' ${@mesonpy_get_args(d)}"
+
+# Python pyx -> c -> so build leaves absolute build paths in the code
+INSANE_SKIP:${PN} += "buildpaths"
+INSANE_SKIP:${PN}-src += "buildpaths"
+
+python_mesonpy_do_configure () {
+python_pep517_do_configure
+}
+
+python_mesonpy_do_compile () {
+python_pep517_do_compile
+}
+
+python_mesonpy_do_install () {
+python_pep517_do_install
+}
+
+EXPORT_FUNCTIONS do_configure do_compile do_install
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195893): 
https://lists.openembedded.org/g/openembedded-core/message/195893
Mute This Topic: https://lists.openembedded.org/mt/104451073/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH 1/4] python3-meson-python: move from meta-python

2024-02-19 Thread Tim Orling
meson-python is a Python build backend built on top of the Meson
build-system. It enables you to use Meson for your Python packages.

https://meson-python.readthedocs.io/en/latest/

It is used as the PEP-517 build-backend for python3-numpy and python3-scipy.

For other projects using the backend, see:
https://meson-python.readthedocs.io/en/latest/projects-using-meson-python.html

Signed-off-by: Tim Orling 
---
 meta/conf/distro/include/maintainers.inc  |  1 +
 .../python/python3-meson-python_0.15.0.bb | 27 +++
 2 files changed, 28 insertions(+)
 create mode 100644 meta/recipes-devtools/python/python3-meson-python_0.15.0.bb

diff --git a/meta/conf/distro/include/maintainers.inc 
b/meta/conf/distro/include/maintainers.inc
index f489fbe275f..1ab69175bb8 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -657,6 +657,7 @@ RECIPE_MAINTAINER:pn-python3-mako = "Trevor Gamblin 
"
 RECIPE_MAINTAINER:pn-python3-markdown = "Alexander Kanavin 
"
 RECIPE_MAINTAINER:pn-python3-markupsafe = "Richard Purdie 
"
 RECIPE_MAINTAINER:pn-python3-maturin = "Tim Orling "
+RECIPE_MAINTAINER:pn-python3-meson-python = "Tim Orling 
"
 RECIPE_MAINTAINER:pn-python3-more-itertools = "Tim Orling 
"
 RECIPE_MAINTAINER:pn-python3-ndg-httpsclient = "Tim Orling 
"
 RECIPE_MAINTAINER:pn-python3-numpy = "Trevor Gamblin "
diff --git a/meta/recipes-devtools/python/python3-meson-python_0.15.0.bb 
b/meta/recipes-devtools/python/python3-meson-python_0.15.0.bb
new file mode 100644
index 000..ad3cfe17d9e
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-meson-python_0.15.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Meson Python build backend (PEP 517)"
+HOMEPAGE = "https://github.com/mesonbuild/meson-python;
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d580b27e67cc0892a5b005b0be114b60"
+
+DEPENDS = " \
+   meson-native \
+   ninja-native \
+   patchelf-native \
+   python3-pyproject-metadata-native \
+"
+
+PYPI_PACKAGE = "meson_python"
+
+inherit pypi python_mesonpy
+SRC_URI[sha256sum] = 
"fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f"
+
+DEPENDS:remove:class-native = "python3-meson-python-native"
+
+RDEPENDS:${PN} = " \
+   meson \
+   ninja \
+   patchelf \
+   python3-pyproject-metadata \
+"
+
+BBCLASSEXTEND = "native nativesdk"
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195892): 
https://lists.openembedded.org/g/openembedded-core/message/195892
Mute This Topic: https://lists.openembedded.org/mt/104451071/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH 0/4] Add python_mesonpy ("mesonpy") PEP-517 backend support

2024-02-19 Thread Tim Orling
Move the python_mesonpy bbclass and python3-meson-python recipe from 
meta-python.

https://meson-python.readthedocs.io/en/latest/

This is the declared backend for python-numpy, so it is time to move it to 
oe-core.

The following changes since commit 4cfd0f7e4e2db19344677999572e5b71ae97dfc4:

  lib/oe/patch: Use git notes to store the filenames for the patches 
(2024-02-19 16:03:22 +)

are available in the Git repository at:

  https://git.yoctoproject.org/poky-contrib timo/python_mesonpy
  https://git.yoctoproject.org/poky-contrib/log/?h=timo/python_mesonpy

Tim Orling (4):
  python3-meson-python: move from meta-python
  python_mesonpy.bbclass: move from meta-python
  python3-numpy: inherit python_mesonpy
  recipetool; add support for python_mesonpy class

 meta/classes-recipe/python_mesonpy.bbclass| 52 ++
 meta/conf/distro/include/maintainers.inc  |  1 +
 meta/lib/oeqa/selftest/cases/recipetool.py| 19 +++
 .../python/python3-meson-python_0.15.0.bb | 27 ++
 .../python/python3-numpy_1.26.4.bb| 54 ++-
 .../lib/recipetool/create_buildsys_python.py  |  4 ++
 6 files changed, 131 insertions(+), 26 deletions(-)
 create mode 100644 meta/classes-recipe/python_mesonpy.bbclass
 create mode 100644 meta/recipes-devtools/python/python3-meson-python_0.15.0.bb

-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195891): 
https://lists.openembedded.org/g/openembedded-core/message/195891
Mute This Topic: https://lists.openembedded.org/mt/104451069/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH v2 5/5] devtool: code: Provide a generic C++ configuration

2024-02-19 Thread Enguerrand de Ribaucourt
By default, the cpptools VSCode extension will use the host's headers
and flags for linting. This results in a lot of include errors and
misleading definitions. Even though this generic configuration doesn't
include all the depenendencies, it is a proper fallback for recipe
classes we do not accurately cover, with at least the right sysroot.

Additionally, ide-sdk automatically detects and provides a launch.json
configuration for autotools recipes so we should recommend the C++
extensions for them.

Recipes which use C/C++ without a build system are not covered by this
patch.

Signed-off-by: Enguerrand de Ribaucourt 

---
 scripts/lib/devtool/ide_plugins/__init__.py |  3 +++
 scripts/lib/devtool/ide_plugins/ide_code.py | 27 +
 scripts/lib/devtool/ide_sdk.py  |  5 
 3 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/scripts/lib/devtool/ide_plugins/__init__.py 
b/scripts/lib/devtool/ide_plugins/__init__.py
index 3371b242640..59e90663908 100644
--- a/scripts/lib/devtool/ide_plugins/__init__.py
+++ b/scripts/lib/devtool/ide_plugins/__init__.py
@@ -21,6 +21,7 @@ class BuildTool(Enum):
 UNDEFINED = auto()
 CMAKE = auto()
 MESON = auto()
+AUTOTOOLS = auto()
 
 @property
 def is_c_ccp(self):
@@ -28,6 +29,8 @@ class BuildTool(Enum):
 return True
 if self is BuildTool.MESON:
 return True
+if self is BuildTool.AUTOTOOLS:
+return True
 return False
 
 
diff --git a/scripts/lib/devtool/ide_plugins/ide_code.py 
b/scripts/lib/devtool/ide_plugins/ide_code.py
index 7b683c74086..0942fde8196 100644
--- a/scripts/lib/devtool/ide_plugins/ide_code.py
+++ b/scripts/lib/devtool/ide_plugins/ide_code.py
@@ -157,31 +157,35 @@ class IdeVSCode(IdeBase):
 IdeBase.update_json_file(
 self.dot_code_dir(modified_recipe), settings_file, settings_dict)
 
-def __vscode_extensions_cmake(self, modified_recipe, recommendations):
-if modified_recipe.build_tool is not BuildTool.CMAKE:
+def __vscode_extensions_generic(self, modified_recipe, recommendations):
+if not modified_recipe.build_tool.is_c_ccp:
 return
 recommendations += [
-"twxs.cmake",
-"ms-vscode.cmake-tools",
 "ms-vscode.cpptools",
 "ms-vscode.cpptools-extension-pack",
 "ms-vscode.cpptools-themes"
 ]
 
+def __vscode_extensions_cmake(self, modified_recipe, recommendations):
+if modified_recipe.build_tool is not BuildTool.CMAKE:
+return
+recommendations += [
+"twxs.cmake",
+"ms-vscode.cmake-tools"
+]
+
 def __vscode_extensions_meson(self, modified_recipe, recommendations):
 if modified_recipe.build_tool is not BuildTool.MESON:
 return
 recommendations += [
-'mesonbuild.mesonbuild',
-"ms-vscode.cpptools",
-"ms-vscode.cpptools-extension-pack",
-"ms-vscode.cpptools-themes"
+'mesonbuild.mesonbuild'
 ]
 
 def vscode_extensions(self, modified_recipe):
 recommendations = []
 self.__vscode_extensions_cmake(modified_recipe, recommendations)
 self.__vscode_extensions_meson(modified_recipe, recommendations)
+self.__vscode_extensions_generic(modified_recipe, recommendations)
 extensions_file = 'extensions.json'
 IdeBase.update_json_file(
 self.dot_code_dir(modified_recipe), extensions_file, 
{"recommendations": recommendations})
@@ -194,8 +198,11 @@ class IdeVSCode(IdeBase):
 properties_dict["configurationProvider"] = "ms-vscode.cmake-tools"
 elif modified_recipe.build_tool is BuildTool.MESON:
 properties_dict["configurationProvider"] = "mesonbuild.mesonbuild"
-else:  # no C/C++ build
-return
+elif modified_recipe.build_tool.is_c_ccp:
+# Provide a generic linting configuration
+# We provide a C++ configuration with the proper sysroot
+properties_dict["compilerPath"] = 
os.path.join(modified_recipe.staging_bindir_toolchain, 
modified_recipe.cxx.split()[0])
+properties_dict["compilerArgs"] = modified_recipe.cxx.split()[1:]
 
 properties_dicts = {
 "configurations": [
diff --git a/scripts/lib/devtool/ide_sdk.py b/scripts/lib/devtool/ide_sdk.py
index f292edbe25c..6313daa8700 100755
--- a/scripts/lib/devtool/ide_sdk.py
+++ b/scripts/lib/devtool/ide_sdk.py
@@ -345,6 +345,7 @@ class RecipeModified:
 self.base_libdir = recipe_d.getVar('base_libdir')
 self.bblayers = recipe_d.getVar('BBLAYERS').split()
 self.bpn = recipe_d.getVar('BPN')
+self.cxx = recipe_d.getVar('CXX')
 self.d = recipe_d.getVar('D')
 self.fakerootcmd = recipe_d.getVar('FAKEROOTCMD')
 self.fakerootenv = recipe_d.getVar('FAKEROOTENV')
@@ -361,6 +362,8 @@ class RecipeModified:

[OE-core] [PATCH v2 3/5] devtool: ide: vscode: Configure read-only files

2024-02-19 Thread Enguerrand de Ribaucourt
When debugging or browsing files, the user may fall into external
sources from other packages in the sysroot or dbg-rootfs. Modifying them
will only lead to confusion since they will be overwritten by Yocto. The
user should open them in a separate devtool modify session if they want
to make changes. Meanwhile, we should prevent write access to them.

Signed-off-by: Enguerrand de Ribaucourt 

---
 scripts/lib/devtool/ide_plugins/ide_code.py | 11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/scripts/lib/devtool/ide_plugins/ide_code.py 
b/scripts/lib/devtool/ide_plugins/ide_code.py
index c063b7d0590..7b683c74086 100644
--- a/scripts/lib/devtool/ide_plugins/ide_code.py
+++ b/scripts/lib/devtool/ide_plugins/ide_code.py
@@ -125,7 +125,7 @@ class IdeVSCode(IdeBase):
 settings_dict["cmake.configureOnOpen"] = True
 settings_dict["cmake.sourceDirectory"] = modified_recipe.real_srctree
 
-def vscode_settings(self, modified_recipe):
+def vscode_settings(self, modified_recipe, image_recipe):
 files_excludes = {
 "**/.git/**": True,
 "**/oe-logs/**": True,
@@ -138,9 +138,16 @@ class IdeVSCode(IdeBase):
 "**/oe-workdir/**",
 "**/source-date-epoch/**"
 ]
+files_readonly = {
+modified_recipe.recipe_sysroot + '/**': True,
+modified_recipe.recipe_sysroot_native + '/**': True,
+}
+if image_recipe.rootfs_dbg is not None:
+files_readonly[image_recipe.rootfs_dbg + '/**'] = True
 settings_dict = {
 "files.watcherExclude": files_excludes,
 "files.exclude": files_excludes,
+"files.readonlyInclude": files_readonly,
 "python.analysis.exclude": python_exclude
 }
 self.__vscode_settings_cmake(settings_dict, modified_recipe)
@@ -425,7 +432,7 @@ class IdeVSCode(IdeBase):
 self.vscode_tasks_fallback(args, modified_recipe)
 
 def setup_modified_recipe(self, args, image_recipe, modified_recipe):
-self.vscode_settings(modified_recipe)
+self.vscode_settings(modified_recipe, image_recipe)
 self.vscode_extensions(modified_recipe)
 self.vscode_c_cpp_properties(modified_recipe)
 if args.target:
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195888): 
https://lists.openembedded.org/g/openembedded-core/message/195888
Mute This Topic: https://lists.openembedded.org/mt/104450242/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH v2 1/5] devtool: ide_sdk: Use bitbake's python3 for generated scripts

2024-02-19 Thread Enguerrand de Ribaucourt
The generated scripts use the sys.path configuration found inside
bitbake. It can be a different python version than the one used on the
host through the IDE.

For instance, when running the generated script
deploy_target_cmake-example-core2-64 from an eSDK generated on another
machine, I got the following exception:
AssertionError: SRE module mismatch

We need to match the sys.executable to the sys.path.

Signed-off-by: Enguerrand de Ribaucourt 

---
 scripts/lib/devtool/ide_sdk.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/lib/devtool/ide_sdk.py b/scripts/lib/devtool/ide_sdk.py
index 3986dc1436a..14679744807 100755
--- a/scripts/lib/devtool/ide_sdk.py
+++ b/scripts/lib/devtool/ide_sdk.py
@@ -750,7 +750,7 @@ class RecipeModified:
 does not need to start a bitbake server. All information from tinfoil
 is hard-coded in the generated script.
 """
-cmd_lines = ['#!/usr/bin/env python3']
+cmd_lines = ['#!%s' % str(sys.executable)]
 cmd_lines.append('import sys')
 cmd_lines.append('devtool_sys_path = %s' % str(sys.path))
 cmd_lines.append('devtool_sys_path.reverse()')
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195886): 
https://lists.openembedded.org/g/openembedded-core/message/195886
Mute This Topic: https://lists.openembedded.org/mt/104450240/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH v2 4/5] meson: use absolute cross-compiler paths

2024-02-19 Thread Enguerrand de Ribaucourt
Among the files generated by meson is compile_commands.json. It is not
used by bitbake during the build. However, if the devtool workspace is
opened inside an IDE, that IDE can use compile_commands.json to
configure linting and code completion. This is notably relied on by the
new devtool ide-sdk command.

The problem is that the IDE using compile_commands.json does not know
the $PATH set-up by bitbake, so it won't find the compiler. This results
in linting errors, like missing headers. We can fix this by expliciting
the absolute compiler paths in meson.cross.

The compile_commands.json specification expressly states:
"All paths specified in the command or file fields must be either
absolute or relative to this directory."
Link: https://clang.llvm.org/docs/JSONCompilationDatabase.html

An alternative way to implement this is to directly change CXX inside
bitbake.conf to make all recipes use absolute compiler paths.Since this
would affect all recipes, so I would like to have the maintainers'
opinion on this. It could make sense to use absolute compiler paths for
all toolchain binaries, we already do so for the sysroot
TOOLCHAIN_OPTIONS.

Discussions have been opened with meson/ninja maintainers to implement
this at their level:
 - https://github.com/ninja-build/ninja/issues/2383
 - https://github.com/mesonbuild/meson/issues/12834
These tools have even less information on the environment so it makes
sense for Yocto to provide the absolute paths.

Signed-off-by: Enguerrand de Ribaucourt 

---
 meta/classes-recipe/meson-routines.bbclass | 6 ++
 meta/classes-recipe/meson.bbclass  | 7 +--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/meta/classes-recipe/meson-routines.bbclass 
b/meta/classes-recipe/meson-routines.bbclass
index a944a8fff1c..9925465ed8f 100644
--- a/meta/classes-recipe/meson-routines.bbclass
+++ b/meta/classes-recipe/meson-routines.bbclass
@@ -10,6 +10,12 @@ def meson_array(var, d):
 items = d.getVar(var).split()
 return repr(items[0] if len(items) == 1 else items)
 
+def meson_array_abspath(var, d):
+import shutil
+items = d.getVar(var).split()
+items[0] = shutil.which(items[0]) or items[0]
+return repr(items[0] if len(items) == 1 else items)
+
 # Map our ARCH values to what Meson expects:
 # http://mesonbuild.com/Reference-tables.html#cpu-families
 def meson_cpu_family(var, d):
diff --git a/meta/classes-recipe/meson.bbclass 
b/meta/classes-recipe/meson.bbclass
index 03fa2c06eb4..31675cf42d1 100644
--- a/meta/classes-recipe/meson.bbclass
+++ b/meta/classes-recipe/meson.bbclass
@@ -64,10 +64,13 @@ addtask write_config before do_configure
 do_write_config[vardeps] += "CC CXX AR NM STRIP READELF OBJCOPY CFLAGS 
CXXFLAGS LDFLAGS RUSTC RUSTFLAGS EXEWRAPPER_ENABLED"
 do_write_config() {
 # This needs to be Py to split the args into single-element lists
+# The generated compile_commands.json file can be used by external IDEs
+# which do not know the $PATH set-up by bitbake. They need the absolute
+# compiler paths.
 cat >${WORKDIR}/meson.cross <
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195889): 
https://lists.openembedded.org/g/openembedded-core/message/195889
Mute This Topic: https://lists.openembedded.org/mt/104450243/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH v2 2/5] devtool: code: Add source mapping for debug source files

2024-02-19 Thread Enguerrand de Ribaucourt
When launching the debug configuration, the source files from the debug
rootfs were openened in the editor instead of the local workspace files.
We add an exception to properly map them to the file being developed and
compiled by the IDE integration. This also more closely matches what the
user would expect compared to native development.

This is also true for the devtool fallback mode.

Signed-off-by: Enguerrand de Ribaucourt 

---
 scripts/lib/devtool/ide_plugins/ide_code.py | 1 +
 scripts/lib/devtool/ide_sdk.py  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/scripts/lib/devtool/ide_plugins/ide_code.py 
b/scripts/lib/devtool/ide_plugins/ide_code.py
index b2193130d2e..c063b7d0590 100644
--- a/scripts/lib/devtool/ide_plugins/ide_code.py
+++ b/scripts/lib/devtool/ide_plugins/ide_code.py
@@ -234,6 +234,7 @@ class IdeVSCode(IdeBase):
 if gdb_cross_config.image_recipe.rootfs_dbg:
 launch_config['additionalSOLibSearchPath'] = 
modified_recipe.solib_search_path_str(
 gdb_cross_config.image_recipe)
+src_file_map[os.path.join("/usr/src/debug", modified_recipe.pn, 
modified_recipe.pv)] = "${workspaceFolder}"
 src_file_map["/usr/src/debug"] = os.path.join(
 gdb_cross_config.image_recipe.rootfs_dbg, "usr", "src", 
"debug")
 else:
diff --git a/scripts/lib/devtool/ide_sdk.py b/scripts/lib/devtool/ide_sdk.py
index 14679744807..f292edbe25c 100755
--- a/scripts/lib/devtool/ide_sdk.py
+++ b/scripts/lib/devtool/ide_sdk.py
@@ -356,6 +356,7 @@ class RecipeModified:
 'PACKAGE_DEBUG_SPLIT_STYLE')
 self.path = recipe_d.getVar('PATH')
 self.pn = recipe_d.getVar('PN')
+self.pv = recipe_d.getVar('PV')
 self.recipe_sysroot = os.path.realpath(
 recipe_d.getVar('RECIPE_SYSROOT'))
 self.recipe_sysroot_native = os.path.realpath(
-- 
2.34.1


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195887): 
https://lists.openembedded.org/g/openembedded-core/message/195887
Mute This Topic: https://lists.openembedded.org/mt/104450241/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH v2 0/5] devtool: ide: Improve VSCode support

2024-02-19 Thread Enguerrand de Ribaucourt
These patches improve the VSCode support in devtool ide-sdk from Adrian
Freihofer.

I added a generic C++ configuration for the VScode extension while
awaiting for autotools support.

A refactoring is proposed for the meson class. Without absolute compiler
paths, the linter inside VSCode will not be able to find the
cross-compiler. Let me know if you have any concerns about this
refactoring.

The other bug fixes are relatively minor and make the tool work for some
edge cases.

v2:
 - Added signed-off-by mentions
 - Removed duplicate topdir exception fix
 - Added a condition for the generic C++ configuration (matching autotools)
 - Kept the source mapping for debug source as it was required to not open the
   local files instead of the read-only files in the editor on some
   configurations



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195885): 
https://lists.openembedded.org/g/openembedded-core/message/195885
Mute This Topic: https://lists.openembedded.org/mt/104450239/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] lib/oe/package: fix LOCALE_PATHS scan to create locale packages

2024-02-19 Thread Jonathan GUILLOT
split_locales() must only check subdirectories in paths added to
LOCALE_PATHS to avoid creating weird packages based on filenames also
present in paths.

Without such a filter, cups recipe adding ${datadir}/cups/templates to
LOCALE_PATHS creates the following incorrect packages:
- cups-locale-add-class.tmpl
- cups-locale-add-printer.tmpl
- cups-locale-admin.tmpl

Signed-off-by: Jonathan GUILLOT 
---
 meta/conf/documentation.conf |  2 +-
 meta/lib/oe/package.py   | 14 +-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
index 90d8e82932..b0591881ba 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -271,7 +271,7 @@ LICENSE_PATH[doc] = "Path to additional licenses used 
during the build."
 LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the 
configuration."
 LINUX_VERSION[doc] = "The Linux version from kernel.org on which the Linux 
kernel image being built using the OpenEmbedded build system is based. You 
define this variable in the kernel recipe."
 LINUX_VERSION_EXTENSION[doc] = "A string extension compiled into the version 
string of the Linux kernel built with the OpenEmbedded build system. You define 
this variable in the kernel recipe."
-LOCALE_PATHS[doc] = "Whitespace separated list of paths that are scanned to 
construct locale packages. The list already contains ${datadir}/locale by 
default."
+LOCALE_PATHS[doc] = "Whitespace separated list of paths that are scanned to 
construct locale packages. The list already contains ${datadir}/locale by 
default. Note that all subdirectories in these paths are assumed to be locales."
 LOCALE_UTF8_IS_DEFAULT[doc] = "If set, locale names are renamed such that 
those lacking an explicit encoding (e.g. en_US) will always be UTF-8, and 
non-UTF-8 encodings are renamed to, e.g., en_US.ISO-8859-1. Otherwise, the 
encoding is specified by glibc's SUPPORTED file. Not supported for precompiled 
locales."
 LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system 
writes overall log files. The default directory is ${TMPDIR}/log"
 
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index d1738d3b61..587810bdaf 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -652,11 +652,15 @@ def split_locales(d):
 locales = set()
 for localepath in (d.getVar('LOCALE_PATHS') or "").split():
 localedir = dvar + localepath
-if cpath.isdir(localedir):
-locales.update(os.listdir(localedir))
-localepaths.append(localepath)
-else:
-bb.debug(1, "No locale files in %s" % localepath)
+if not cpath.isdir(localedir):
+bb.debug(1, 'No locale files in %s' % localepath)
+continue
+
+localepaths.append(localepath)
+with os.scandir(localedir) as it:
+for entry in it:
+if entry.is_dir():
+locales.add(entry.name)
 
 if len(locales) == 0:
 bb.debug(1, "No locale files in this package")

base-commit: f5e6183b9557477bef74024a587de0bfcc2b7c0d
-- 
2.43.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195884): 
https://lists.openembedded.org/g/openembedded-core/message/195884
Mute This Topic: https://lists.openembedded.org/mt/104449750/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] python: Drop ${PYTHON_PN}

2024-02-19 Thread Richard Purdie
python 2 is gone and we don't need the abstraction now, drop the remaining usage
of this variable.

The definition in python3-dir.bbclass is left for now for other layers.

Signed-off-by: Richard Purdie 
---
 .../python/python-async-test.inc  |  2 +-
 meta/classes-recipe/setuptools3-base.bbclass  |  6 +--
 meta/classes-recipe/setuptools3.bbclass   |  4 +-
 .../classes-recipe/setuptools3_legacy.bbclass |  8 +--
 meta/lib/oeqa/selftest/cases/recipeutils.py   |  2 +-
 .../recipes-devtools/python/python-cython.inc | 30 +--
 meta/recipes-devtools/python/python-pbr.inc   |  2 +-
 .../recipes-devtools/python/python-pyasn1.inc | 12 ++---
 meta/recipes-devtools/python/python-six.inc   |  2 +-
 .../python/python-testtools.inc   | 12 ++---
 .../python/python3-asn1crypto_1.5.1.bb| 16 +++---
 .../python/python3-atomicwrites_1.4.1.bb  |  8 +--
 .../python/python3-attrs_23.2.0.bb|  6 +--
 .../python/python3-babel_2.14.0.bb| 18 +++
 .../python/python3-bcrypt_4.1.2.bb| 14 ++---
 .../python/python3-calver_2022.6.26.bb|  6 +--
 .../python/python3-cffi_1.16.0.bb | 10 ++--
 .../python/python3-chardet_5.2.0.bb   |  4 +-
 .../python/python3-click_8.1.7.bb | 10 ++--
 .../python3-cryptography-vectors_42.0.2.bb|  2 +-
 .../python/python3-cryptography_42.0.2.bb | 30 +--
 .../python/python3-dbusmock_0.30.2.bb |  8 +--
 .../python/python3-git_3.1.41.bb  | 20 +++
 .../python/python3-hypothesis_6.97.3.bb   |  2 +-
 .../python/python3-idna_3.6.bb|  2 +-
 .../python3-importlib-metadata_7.0.1.bb   |  4 +-
 .../python/python3-iso8601_2.1.0.bb   |  4 +-
 .../python/python3-jinja2_3.1.3.bb| 32 ++--
 .../python/python3-jsonpointer_2.4.bb |  8 +--
 .../python/python3-jsonschema_4.17.3.bb   | 44 
 .../python/python3-libarchive-c_5.0.bb|  6 +--
 .../python3-license-expression_30.2.0.bb  | 16 +++---
 .../python/python3-lxml_5.0.0.bb  |  2 +-
 .../python/python3-magic_0.4.27.bb|  8 +--
 .../python/python3-mako_1.3.2.bb  | 10 ++--
 .../python/python3-markdown_3.5.2.bb  |  2 +-
 .../python/python3-markupsafe_2.1.5.bb|  6 +--
 .../python/python3-more-itertools_10.2.0.bb   |  8 +--
 .../python/python3-ndg-httpsclient_0.5.1.bb   | 12 ++---
 .../python/python3-numpy_1.26.4.bb| 48 -
 .../python/python3-pathlib2_2.3.7.bb  |  2 +-
 .../python/python3-pluggy_1.4.0.bb| 10 ++--
 .../python/python3-ply_3.11.bb|  4 +-
 .../python/python3-psutil_5.9.8.bb| 14 ++---
 .../python/python3-py_1.11.0.bb   |  4 +-
 .../python/python3-pycparser_2.21.bb  |  6 +--
 .../python/python3-pyelftools_0.30.bb |  2 +-
 .../python/python3-pyopenssl_24.0.0.bb|  8 +--
 .../python/python3-pyparsing_3.1.1.bb | 16 +++---
 .../python/python3-pyrsistent_0.20.0.bb   |  2 +-
 .../python/python3-pysocks_1.7.1.bb   | 10 ++--
 .../python/python3-pytest-runner_6.0.1.bb |  6 +--
 .../python/python3-pytest-subtests_0.11.0.bb  |  4 +-
 .../python/python3-pytest_8.0.0.bb| 32 ++--
 .../python/python3-pytz_2023.4.bb | 16 +++---
 .../python/python3-pyyaml_6.0.1.bb| 10 ++--
 .../python/python3-rdflib_7.0.0.bb| 14 ++---
 .../python/python3-requests_2.31.0.bb | 22 
 .../python/python3-rfc3339-validator_0.1.4.bb |  6 +--
 .../python/python3-ruamel-yaml_0.17.35.bb |  6 +--
 .../python/python3-semantic-version_2.10.0.bb |  2 +-
 .../python/python3-setuptools-scm_8.0.4.bb| 16 +++---
 .../python/python3-setuptools_69.0.3.bb   | 52 +--
 .../python/python3-smmap_6.0.0.bb |  4 +-
 .../python/python3-toml_0.10.2.bb |  2 +-
 .../python3-trove-classifiers_2024.1.8.bb |  4 +-
 .../python/python3-typogrify_2.0.7.bb |  2 +-
 .../python/python3-urllib3_2.1.0.bb   | 18 +++
 .../python/python3-wcwidth_0.2.12.bb  |  4 +-
 .../python/python3-webcolors_1.13.bb  |  6 +--
 .../python/python3-xmltodict_0.13.0.bb|  8 +--
 .../python/python3-yamllint_1.33.0.bb |  4 +-
 .../python/python3-zipp_3.17.0.bb | 10 ++--
 73 files changed, 386 insertions(+), 386 deletions(-)

diff --git a/meta-selftest/recipes-devtools/python/python-async-test.inc 
b/meta-selftest/recipes-devtools/python/python-async-test.inc
index 6d7c7458b03..a7dd1744f2d 100644
--- a/meta-selftest/recipes-devtools/python/python-async-test.inc
+++ b/meta-selftest/recipes-devtools/python/python-async-test.inc
@@ -11,6 +11,6 @@ PYPI_PACKAGE = "async"
 SRC_URI[md5sum] = "9b06b5997de2154f3bc0273f80bcef6b"
 SRC_URI[sha256sum] = 
"ac6894d876e45878faae493b0cf61d0e28ec417334448ac0a6ea2229d8343051"
 
-RDEPENDS:${PN} += "${PYTHON_PN}-threading"

Re: [OE-core] [PATCHv2 5/5] lib/oe/patch: Use git notes to store the filenames for the patches

2024-02-19 Thread Ross Burton
On 19 Feb 2024, at 15:03, Peter Kjellerstedt  
wrote:
>> This is all that is needed for the new code to work correctly with an old
>> worktree, right?
> 
> Well, it relies on the fallback (i.e., the exception clause) in 
> GitApplyTree.getNotes() 
> that reads from the commit message in case a Git note cannot be found. Do you 
> want me 
> to extend the comment so that it includes that refence as well?

No need, I was just checking that the new code would work on an old worktree 
using comments.

Ross
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195882): 
https://lists.openembedded.org/g/openembedded-core/message/195882
Mute This Topic: https://lists.openembedded.org/mt/104439182/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH v4 3/3] cups: use LOCALE_PATHS to split localized HTML templates

2024-02-19 Thread Richard Purdie
On Mon, 2024-02-19 at 11:00 +0100, Jonathan GUILLOT wrote:
> Thanks Ross,
> 
> I was too focus on English and French packages and missed this point.
> Listing all items in CUPS added locale path is not OK. I should at
> least only get directories (not files) in this path to create the
> locale list. However, it remains an issue if some directories in the
> path would not be dedicated to locales. This is not the point in CUPS
> but could be in an other recipe. Do you think it is possible to
> determine if the directory name is a valid language code? Is it
> reliable to consider locale directories will always be : 2-letter ISO
> 639 code followed by optional hyphen and ISO 3166 country code?

Fixing cups is the priority right now. I was hoping for a fix rather
than having to revert things.

Fixing the core code to only handle directories would also be good. We
should probably just note that all subdirectories are assumed to be
locales in a comment where LOCALE_PATHS is given it's default.

Cheers,

Richard

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195881): 
https://lists.openembedded.org/g/openembedded-core/message/195881
Mute This Topic: https://lists.openembedded.org/mt/104312268/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCHv2 5/5] lib/oe/patch: Use git notes to store the filenames for the patches

2024-02-19 Thread Peter Kjellerstedt


> -Original Message-
> From: Ross Burton 
> Sent: den 19 februari 2024 13:56
> To: Peter Kjellerstedt 
> Cc: openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCHv2 5/5] lib/oe/patch: Use git notes to store
> the filenames for the patches
> 
> On 19 Feb 2024, at 01:28, Peter Kjellerstedt via lists.openembedded.org
>  wrote:
> > +@staticmethod
> > +def addNote(repo, ref, key, value=None):
> > +note = key + (": %s" % value if value else "")
> > +notes_ref = GitApplyTree.notes_ref
> > +runcmd(["git", "config", "notes.rewriteMode", "ignore"], repo)
> > +runcmd(["git", "config", "notes.displayRef", notes_ref, 
> > notes_ref], repo)
> > +runcmd(["git", "config", "notes.rewriteRef", notes_ref, 
> > notes_ref], repo)
> > +runcmd(["git", "notes", "--ref", notes_ref, "append", "-m", note, 
> > ref], repo)
> 
> It feels like the config calls could be done once when setting up the
> repository somehow?

While I do agree that would be better, the reason I did it like this is because 
there is nothing in this class that is related to setting up the repositories 
that are used while calling this function. Thus it felt wrong to rely on that 
the repository has been configured correctly beforehand for the function to 
work as intended.

> > +# This loop, which is used to remove any line that
> > +# starts with "%% original patch", is kept for 
> > backwards
> > +# compatibility. If/when that compatibility is 
> > dropped,
> > +# it can be replaced with code to just read the 
> > first
> > +# line of the patch file to get the SHA-1, and the 
> > code
> > +# below that writes the modified patch file can be
> > +# replaced with a simple file move.
> 
> This is all that is needed for the new code to work correctly with an old
> worktree, right?

Well, it relies on the fallback (i.e., the exception clause) in 
GitApplyTree.getNotes() 
that reads from the commit message in case a Git note cannot be found. Do you 
want me 
to extend the comment so that it includes that refence as well?

> 
> Ross

//Peter


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195880): 
https://lists.openembedded.org/g/openembedded-core/message/195880
Mute This Topic: https://lists.openembedded.org/mt/104439182/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCHv2 3/5] devtool: Make use of oe.patch.GitApplyTree.commitIgnored()

2024-02-19 Thread Peter Kjellerstedt
> -Original Message-
> From: Ross Burton 
> Sent: den 19 februari 2024 13:54
> To: Peter Kjellerstedt 
> Cc: openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCHv2 3/5] devtool: Make use of
> oe.patch.GitApplyTree.commitIgnored()
> 
> On 19 Feb 2024, at 01:28, Peter Kjellerstedt via lists.openembedded.org
>  wrote:
> >
> > This makes use of the oe.patch.GitApplyTree.commitIgnored() function to
> > create commits that shall be ignored by `devtool finish`.
> 
> If we’re using notes to store the filename info, couldn’t the ignores
> state also be a note?
> 
> Ross

Yes, that comes with patch 5. This was just a preparation to get the three 
different places that create ignore commits gathered into one place.

//Peter


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195879): 
https://lists.openembedded.org/g/openembedded-core/message/195879
Mute This Topic: https://lists.openembedded.org/mt/104439181/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH v2 2/3] image.bbclass/rootfs: set package-database

2024-02-19 Thread Richard Purdie
On Tue, 2024-02-13 at 11:00 +0100, Johannes Schneider via 
lists.openembedded.org wrote:
> set the package-database of a "lower image" to unpack and build upon when
> installing packages for the current image. This way a lean image will be
> created, which only holds the packages that are not already present in the 
> lower
> image, that then could be used with overlayfs or systemd-sysext to extend the
> "lower image" on demand; for development purposes on an RO lower image for
> example.
> 
> Signed-off-by: Johannes Schneider 
> ---
>  meta/classes-recipe/image.bbclass | 10 +++-
>  meta/lib/oe/package_manager/deb/rootfs.py |  2 ++
>  meta/lib/oe/package_manager/ipk/rootfs.py |  6 +++--
>  meta/lib/oe/package_manager/rpm/rootfs.py |  7 --
>  meta/lib/oe/rootfs.py | 29 +++
>  5 files changed, 49 insertions(+), 5 deletions(-)
> 
> diff --git a/meta/classes-recipe/image.bbclass 
> b/meta/classes-recipe/image.bbclass
> index c688c39f15..b4a2460187 100644
> --- a/meta/classes-recipe/image.bbclass
> +++ b/meta/classes-recipe/image.bbclass
> @@ -42,8 +42,16 @@ IMAGE_FEATURES ?= ""
>  IMAGE_FEATURES[type] = "list"
>  IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs 
> read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password 
> allow-empty-password allow-root-login serial-autologin-root 
> post-install-logging overlayfs-etc"
>  
> +# Image layering:
> +# a "base image" would create a snapshot of the package-database after the
> +# installation of all packages into the rootfs is done. The next/other image
> +# "layered on-top" of the former would then import that database and install
> +# further packages; without reinstalling package dependencies that are 
> already
> +# installed in the layer below.
>  # Generate snapshot of the package database?
>  IMAGE_GEN_PKGDBFS ?= "0"
> +# Package-database of the base image, upon which to build up a new 
> image-layer
> +IMAGE_BASE_PKGDB ?= ""
>  
>  # Generate companion debugfs?
>  IMAGE_GEN_DEBUGFS ?= "0"
> @@ -134,7 +142,7 @@ def rootfs_variables(d):
>   
> 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
>  'IMAGE_LINGUAS_COMPLEMENTARY', 'IMAGE_LOCALES_ARCHIVE',
>   
> 'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
>   
> 'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
> - 'CONVERSIONTYPES', 'IMAGE_GEN_PKGDBFS', 
> 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 
> 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS',
> + 'CONVERSIONTYPES', 'IMAGE_GEN_PKGDBFS', 'IMAGE_BASE_PKGDB', 
> 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 
> 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS',
>   'IMAGE_INSTALL_DEBUGFS']
>  variables.extend(rootfs_command_variables(d))
>  variables.extend(variable_depends(d))
> diff --git a/meta/lib/oe/package_manager/deb/rootfs.py 
> b/meta/lib/oe/package_manager/deb/rootfs.py
> index 43107c8663..71a21df09b 100644
> --- a/meta/lib/oe/package_manager/deb/rootfs.py
> +++ b/meta/lib/oe/package_manager/deb/rootfs.py
> @@ -152,6 +152,8 @@ class PkgRootfs(DpkgOpkgRootfs):
>  
>  execute_pre_post_process(self.d, deb_pre_process_cmds)
>  
> +    self._unpack_pkg_db_rootfs(['/var/lib/dpkg'])
> +
>  if self.progress_reporter:
>  self.progress_reporter.next_stage()
>  # Don't support incremental, so skip that
> diff --git a/meta/lib/oe/package_manager/ipk/rootfs.py 
> b/meta/lib/oe/package_manager/ipk/rootfs.py
> index 64d9bc7969..408faa8030 100644
> --- a/meta/lib/oe/package_manager/ipk/rootfs.py
> +++ b/meta/lib/oe/package_manager/ipk/rootfs.py
> @@ -276,12 +276,16 @@ class PkgRootfs(DpkgOpkgRootfs):
>  pkgs_to_install = self.manifest.parse_initial_manifest()
>  opkg_pre_process_cmds = self.d.getVar('OPKG_PREPROCESS_COMMANDS')
>  opkg_post_process_cmds = self.d.getVar('OPKG_POSTPROCESS_COMMANDS')
> +    opkg_lib_dir = self.d.getVar('OPKGLIBDIR')
> +    opkg_dir = os.path.join(opkg_lib_dir, 'opkg')
>  
>  # update PM index files
>  self.pm.write_index()
>  
>  execute_pre_post_process(self.d, opkg_pre_process_cmds)
>  
> +    self._unpack_pkg_db_rootfs([opkg_dir])
> +
>  if self.progress_reporter:
>  self.progress_reporter.next_stage()
>  # Steps are a bit different in order, skip next
> @@ -317,8 +321,6 @@ class PkgRootfs(DpkgOpkgRootfs):
>  if self.progress_reporter:
>  self.progress_reporter.next_stage()
>  
> -    

Re: [OE-core] [PATCH v2 1/3] image.bbclass/rootfs: archive and deploy opkg package database

2024-02-19 Thread Richard Purdie
On Tue, 2024-02-13 at 11:00 +0100, Johannes Schneider via 
lists.openembedded.org wrote:
> archive the package database after the rootfs has been put together as
> *rootfs-pkdbfs.tar.gz, and put it into the deploy folder.
> 
> This creates a snapshot of the package mangers state at the point in time when
> all dependencies have been resolved and installed; which can be used by 
> "follow
> up" images to be built upon.

I'm torn on this series. On the one hand I can see why it might be
useful. On the other hand:

* no test cases for it
* no documentation updates
* no real indications in the code on what it is doing (no comments)

It also copies and pastes a lot of the debugfs code and duplicates it
which makes me wonder if there isn't something better we should be
doing here.

There is good info in the 0/3 series email but that will get lost once
things merge.

> Signed-off-by: Johannes Schneider 
> ---
>  meta/classes-recipe/image.bbclass | 45 ++-
>  meta/classes-recipe/image_types.bbclass   |  1 +
>  meta/conf/bitbake.conf    |  1 +
>  meta/lib/oe/package_manager/deb/rootfs.py |  1 +
>  meta/lib/oe/package_manager/ipk/rootfs.py |  1 +
>  meta/lib/oe/package_manager/rpm/rootfs.py |  1 +
>  meta/lib/oe/rootfs.py | 35 ++
>  7 files changed, 83 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes-recipe/image.bbclass 
> b/meta/classes-recipe/image.bbclass
> index 28be6c6362..c688c39f15 100644
> --- a/meta/classes-recipe/image.bbclass
> +++ b/meta/classes-recipe/image.bbclass
> @@ -42,6 +42,9 @@ IMAGE_FEATURES ?= ""
>  IMAGE_FEATURES[type] = "list"
>  IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs 
> read-only-rootfs-delayed-postinsts stateless-rootfs empty-root-password 
> allow-empty-password allow-root-login serial-autologin-root 
> post-install-logging overlayfs-etc"
>  
> +# Generate snapshot of the package database?
> +IMAGE_GEN_PKGDBFS ?= "0"
> +
>  # Generate companion debugfs?
>  IMAGE_GEN_DEBUGFS ?= "0"
>  
> @@ -131,7 +134,8 @@ def rootfs_variables(d):
>   
> 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
>  'IMAGE_LINGUAS_COMPLEMENTARY', 'IMAGE_LOCALES_ARCHIVE',
>   
> 'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
>   
> 'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
> - 'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 
> 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY', 
> 'REPRODUCIBLE_TIMESTAMP_ROOTFS', 'IMAGE_INSTALL_DEBUGFS']
> + 'CONVERSIONTYPES', 'IMAGE_GEN_PKGDBFS', 
> 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 
> 'PACKAGE_EXCLUDE_COMPLEMENTARY', 'REPRODUCIBLE_TIMESTAMP_ROOTFS',
> + 'IMAGE_INSTALL_DEBUGFS']
>  variables.extend(rootfs_command_variables(d))
>  variables.extend(variable_depends(d))
>  return " ".join(variables)
> @@ -337,6 +341,19 @@ python do_image_qa_setscene () {
>  }
>  addtask do_image_qa_setscene
>  
> +def setup_pkgdbfs_variables(d):
> +    d.appendVar('IMAGE_ROOTFS', '-pkgdb')
> +    if d.getVar('IMAGE_LINK_NAME'):
> +    d.appendVar('IMAGE_LINK_NAME', '-pkgdb')
> +    d.appendVar('IMAGE_NAME','-pkgdb')
> +    pkgdbfs_image_fstypes = d.getVar('IMAGE_FSTYPES_PKGDBFS')
> +    if pkgdbfs_image_fstypes:
> +    d.setVar('IMAGE_FSTYPES', pkgdbfs_image_fstypes)
> +
> +python setup_pkgdbfs () {
> +    setup_pkgdbfs_variables(d)
> +}
> +
>  def setup_debugfs_variables(d):
>  d.appendVar('IMAGE_ROOTFS', '-dbg')
>  if d.getVar('IMAGE_LINK_NAME'):
> @@ -381,6 +398,11 @@ python () {
>  alltypes = d.getVar('IMAGE_FSTYPES').split()
>  typedeps = {}
>  
> +    if d.getVar('IMAGE_GEN_PKGDBFS') == "1":
> +    pkgdbfs_fstypes = d.getVar('IMAGE_FSTYPES_PKGDBFS').split()
> +    for t in pkgdbfs_fstypes:
> +    alltypes.append("pkgdbfs_" + t)
> +
>  if d.getVar('IMAGE_GEN_DEBUGFS') == "1":
>  debugfs_fstypes = d.getVar('IMAGE_FSTYPES_DEBUGFS').split()
>  for t in debugfs_fstypes:
> @@ -393,6 +415,10 @@ python () {
>  basetypes[baset]= []
>  if t not in basetypes[baset]:
>  basetypes[baset].append(t)
> +    pkgdb = ""
> +    if t.startswith("pkgdbfs_"):
> +    t = t[8:]
> +    pkgdb = "pkgdbfs_"
>  debug = ""
>  if t.startswith("debugfs_"):
>  t = t[8:]
> @@ -401,6 +427,13 @@ python () {
>  vardeps.add('IMAGE_TYPEDEP:' + t)
>  if baset not in typedeps:
>  typedeps[baset] = set()
> +    deps = [pkgdb + dep for dep in deps]
> +    for 

Patchtest results for [OE-core][kirkstone][PATCH v2] libuv: fix CVE-2024-24806

2024-02-19 Thread Patchtest
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch 
/home/patchtest/share/mboxes/kirkstone-v2-libuv-fix-CVE-2024-24806.patch

FAIL: test Signed-off-by presence: A patch file has been added without a 
Signed-off-by tag: 'CVE-2024-24806-1.patch' 
(test_patch.TestPatch.test_signed_off_by_presence)

PASS: pretest src uri left files 
(test_metadata.TestMetadata.pretest_src_uri_left_files)
PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence 
(test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Upstream-Status presence 
(test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence 
(test_mbox.TestMbox.test_commit_message_presence)
PASS: test lic files chksum modified not mentioned 
(test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test src uri left files 
(test_metadata.TestMetadata.test_src_uri_left_files)

SKIP: pretest pylint: No python related patches, skipping test 
(test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found 
(test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test 
(test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now 
(test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test summary presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_summary_presence)
SKIP: test target mailing list: Series merged, no reason to check other mailing 
lists (test_mbox.TestMbox.test_target_mailing_list)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195876): 
https://lists.openembedded.org/g/openembedded-core/message/195876
Mute This Topic: https://lists.openembedded.org/mt/104446414/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCHv2 5/5] lib/oe/patch: Use git notes to store the filenames for the patches

2024-02-19 Thread Ross Burton
On 19 Feb 2024, at 01:28, Peter Kjellerstedt via lists.openembedded.org 
 wrote:
> +@staticmethod
> +def addNote(repo, ref, key, value=None):
> +note = key + (": %s" % value if value else "")
> +notes_ref = GitApplyTree.notes_ref
> +runcmd(["git", "config", "notes.rewriteMode", "ignore"], repo)
> +runcmd(["git", "config", "notes.displayRef", notes_ref, notes_ref], 
> repo)
> +runcmd(["git", "config", "notes.rewriteRef", notes_ref, notes_ref], 
> repo)
> +runcmd(["git", "notes", "--ref", notes_ref, "append", "-m", note, 
> ref], repo)

It feels like the config calls could be done once when setting up the 
repository somehow?

> +# This loop, which is used to remove any line that
> +# starts with "%% original patch", is kept for 
> backwards
> +# compatibility. If/when that compatibility is 
> dropped,
> +# it can be replaced with code to just read the first
> +# line of the patch file to get the SHA-1, and the 
> code
> +# below that writes the modified patch file can be
> +# replaced with a simple file move.

This is all that is needed for the new code to work correctly with an old 
worktree, right?

Ross


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195873): 
https://lists.openembedded.org/g/openembedded-core/message/195873
Mute This Topic: https://lists.openembedded.org/mt/104439182/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCHv2 3/5] devtool: Make use of oe.patch.GitApplyTree.commitIgnored()

2024-02-19 Thread Ross Burton
On 19 Feb 2024, at 01:28, Peter Kjellerstedt via lists.openembedded.org 
 wrote:
> 
> This makes use of the oe.patch.GitApplyTree.commitIgnored() function to
> create commits that shall be ignored by `devtool finish`.

If we’re using notes to store the filename info, couldn’t the ignores state 
also be a note?

Ross
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195872): 
https://lists.openembedded.org/g/openembedded-core/message/195872
Mute This Topic: https://lists.openembedded.org/mt/104439181/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Patchtest results for [OE-core][kirkstone][PATCH] libuv: fix CVE-2024-24806

2024-02-19 Thread Patchtest
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch 
/home/patchtest/share/mboxes/kirkstone-libuv-fix-CVE-2024-24806.patch

FAIL: test Signed-off-by presence: A patch file has been added without a 
Signed-off-by tag: 'CVE-2024-24806-1.patch' 
(test_patch.TestPatch.test_signed_off_by_presence)

PASS: pretest src uri left files 
(test_metadata.TestMetadata.pretest_src_uri_left_files)
PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence 
(test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Upstream-Status presence 
(test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence 
(test_mbox.TestMbox.test_commit_message_presence)
PASS: test lic files chksum modified not mentioned 
(test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test src uri left files 
(test_metadata.TestMetadata.test_src_uri_left_files)

SKIP: pretest pylint: No python related patches, skipping test 
(test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found 
(test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test 
(test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now 
(test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test summary presence: No added recipes, skipping test 
(test_metadata.TestMetadata.test_summary_presence)
SKIP: test target mailing list: Series merged, no reason to check other mailing 
lists (test_mbox.TestMbox.test_target_mailing_list)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195871): 
https://lists.openembedded.org/g/openembedded-core/message/195871
Mute This Topic: https://lists.openembedded.org/mt/10913/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] Yocto Project Status 13 February 2024 (WW07)

2024-02-19 Thread Alexander Kanavin
On Fri, 16 Feb 2024 at 12:34, Richard Purdie
 wrote:
> I'm sure there are some things I'm forgetting too.
>
> Please let me know ASAP if there is anything else pending.
>
> The good news is that several problematic issues do seem to be finding
> resolutions in the last 48h.

Last week I got the build replicator script and several supplementary
fixes to the point where they do what they're meant to, and they have
tests:
https://git.yoctoproject.org/poky-contrib/log/?h=akanavin/sstate-for-all

Locally it's all working fine, including oe-selftest, but the same
oe-selftest on the AB is failing. Depending on how fast I can fix
this, and how many other issues there are in preparing for LTS, it'll
probably be delayed to after that. I'm ok with that, although I wish
the feature would be a part of that.

Alex

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195870): 
https://lists.openembedded.org/g/openembedded-core/message/195870
Mute This Topic: https://lists.openembedded.org/mt/104334498/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH v4 3/3] cups: use LOCALE_PATHS to split localized HTML templates

2024-02-19 Thread Jonathan GUILLOT
Thanks Ross,

I was too focus on English and French packages and missed this point.
Listing all items in CUPS added locale path is not OK. I should at least
only get directories (not files) in this path to create the locale list.
However, it remains an issue if some directories in the path would not be
dedicated to locales. This is not the point in CUPS but could be in an
other recipe. Do you think it is possible to determine if the directory
name is a valid language code? Is it reliable to consider locale
directories will always be : 2-letter ISO 639 code followed by optional
hyphen and ISO 3166 country code?

Regards,
Jonathan GUILLOT

Le jeu. 15 févr. 2024 à 17:27, Ross Burton  a écrit :

> On 6 Dec 2023, at 16:06, Jonathan GUILLOT via lists.openembedded.org
>  wrote:
> > +LOCALE_PATHS += "${datadir}/cups/templates”
>
> This doesn’t quite do what you expect. Listing the packages generated by
> cups I see:
>
> cups-locale-da:
> /usr/share/cups/templates/da/add-class.tmpl
> /usr/share/cups/templates/da/add-printer.tmpl
> /usr/share/cups/templates/da/admin.tmpl
>
> Which is good.   But I also see:
>
> cups-locale-add-class.tmpl:
> /usr/share/cups/templates/add-class.tmpl
> cups-locale-add-printer.tmpl:
> /usr/share/cups/templates/add-printer.tmpl
> cups-locale-admin.tmpl:
> /usr/share/cups/templates/admin.tmpl
>
> That doesn’t look right!
>
> Ross

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195868): 
https://lists.openembedded.org/g/openembedded-core/message/195868
Mute This Topic: https://lists.openembedded.org/mt/104312268/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] iproute2: add bridge package

2024-02-19 Thread Michael Haener via lists.openembedded.org
From: Michael Haener 

Add package for using the bridge tool.

Signed-off-by: Michael Haener 
---
 meta/recipes-connectivity/iproute2/iproute2_6.7.0.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-connectivity/iproute2/iproute2_6.7.0.bb 
b/meta/recipes-connectivity/iproute2/iproute2_6.7.0.bb
index 640b3013f1..8c460adf73 100644
--- a/meta/recipes-connectivity/iproute2/iproute2_6.7.0.bb
+++ b/meta/recipes-connectivity/iproute2/iproute2_6.7.0.bb
@@ -59,6 +59,7 @@ do_install () {
 INSANE_SKIP:${PN}-tc = "dev-so"
 
 IPROUTE2_PACKAGES =+ "\
+${PN}-bridge \
 ${PN}-devlink \
 ${PN}-genl \
 ${PN}-ifstat \
@@ -91,6 +92,7 @@ FILES:${PN}-tipc = "${base_sbindir}/tipc"
 FILES:${PN}-devlink = "${base_sbindir}/devlink"
 FILES:${PN}-rdma = "${base_sbindir}/rdma"
 FILES:${PN}-routel = "${base_sbindir}/routel"
+FILES:${PN}-bridge = "${base_sbindir}/bridge"
 
 RDEPENDS:${PN}-routel = "python3-core"
 
-- 
2.43.0


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195867): 
https://lists.openembedded.org/g/openembedded-core/message/195867
Mute This Topic: https://lists.openembedded.org/mt/104443161/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [RFC 5/7] lib/oe/buildcfg.py: Add additional git functions

2024-02-19 Thread Jermain Horsman
> Was there a reason why this wasn't merged in the end (other than being sent 
> as RFC)?

I'm assuming you meant to reply to this one instead:
https://lists.openembedded.org/g/openembedded-core/message/190292

I did not include this in the final version as we ended up going in a bit of a 
different direction,
as a result I did not change the file that used these functions, and therefore 
did not include this patch.

I'd be more than happy to send this as a standalone though.

Sincerely,

Jermain Horsman

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195866): 
https://lists.openembedded.org/g/openembedded-core/message/195866
Mute This Topic: https://lists.openembedded.org/mt/102444609/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH 2/9] minicom: upgrade 2.8 -> 2.9

2024-02-19 Thread Anuj Mittal
On Sat, 2024-02-17 at 12:38 +, Richard Purdie wrote:
> On Fri, 2024-02-16 at 19:40 +0800, Anuj Mittal wrote:
> > Drop patches that have been merged upstream and available in this
> > version.
> > 
> > Signed-off-by: Anuj Mittal 
> > ---
> >  ...ix-minicom-h-v-return-value-is-not-0.patch | 33 ---
> > 
> >  .../minicom/allow.to.disable.lockdev.patch    | 30 ---
> > --
> >  .../{minicom_2.8.bb => minicom_2.9.bb}    |  7 ++--
> >  3 files changed, 2 insertions(+), 68 deletions(-)
> >  delete mode 100644 meta/recipes-extended/minicom/minicom/0001-fix-
> > minicom-h-v-return-value-is-not-0.patch
> >  delete mode 100644 meta/recipes-
> > extended/minicom/minicom/allow.to.disable.lockdev.patch
> >  rename meta/recipes-extended/minicom/{minicom_2.8.bb =>
> > minicom_2.9.bb} (80%)
> 
> I think devtool testing is using something here in oe-selftest:
> 
> https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/6422/steps/14/logs/stdio
> 
> but haven't 100% confirmed that yet as there are multiple patches in
> master-next.

The upgrade removed "minicom" directory that had the patches so
untracked files output from git status in the test changed. I will send
a patch.

Thanks,

Anuj

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195865): 
https://lists.openembedded.org/g/openembedded-core/message/195865
Mute This Topic: https://lists.openembedded.org/mt/104390925/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-