meta-openembedded/meta-networking
Martin Jansa d25486ee19
libtalloc, libtevent, libtdb, libldb: set PYTHONARCHDIR for waf to respect python libdir
* fixes installed-vs-shipped when libdir in target is different than in
  native python e.g. with multilib enabled:

ERROR: QA Issue: libtdb: Files/directories were installed but not shipped in any package:
  /usr/lib/python3.12/site-packages/tdb.so
  /usr/lib/python3.12/site-packages/_tdb_text.py
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
libtdb: 2 installed and not shipped files. [installed-vs-shipped]

ERROR: QA Issue: libtalloc: Files/directories were installed but not shipped in any package:
  /usr/lib/python3.12/site-packages/talloc.so
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
libtalloc: 1 installed and not shipped files. [installed-vs-shipped]

ERROR: QA Issue: libtevent: Files/directories were installed but not shipped in any package:
  /usr/lib/python3.12/site-packages/_tevent.so
  /usr/lib/python3.12/site-packages/tevent.py
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
lib32-libtevent: 2 installed and not shipped files. [installed-vs-shipped]

* waflib has some fallback to query distutils when PYTHONARCHDIR isn't
  set in environment as in:
  84c26588fc

  but this still returns wrong value from
  print(get_python_lib(plat_specific=1, standard_lib=0, prefix='/usr'))
  e.g.
  /usr/lib/python3.12/site-packages
  matching native layout instead of:
  /usr/lib64/python3.12/site-packages

* python3targetconfig inherit breaks waflib as well as shown in config.log:
['libtdb/1.4.9/recipe-sysroot-native/usr/bin/python3-native/python3', '-c', "\ntry:\n\tfrom distutils.sysconfig import get_config_var, get_python_lib\nexcept ImportError:\n\tfrom sysconfig import get_config_var, get_path\n\tdef get_python_lib(*k, **kw):\n\t\tkeyword='platlib' if kw.get('plat_specific') else 'purelib'\n\t\tif 'prefix' in kw:\n\t\t\treturn get_path(keyword, vars={'installed_base': kw['prefix'], 'platbase': kw['prefix']})\n\t\treturn get_path(keyword)\n\nprint(repr(get_python_lib(standard_lib=0, prefix='/usr') or ''))"]
err: Traceback (most recent call last):
  File "<string>", line 12, in <module>
  File "<string>", line 9, in get_python_lib
  File "libtdb/1.4.9/recipe-sysroot-native/usr/lib/python3.12/sysconfig.py", line 636, in get_path
    return get_paths(scheme, vars, expand)[name]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "libtdb/1.4.9/recipe-sysroot-native/usr/lib/python3.12/sysconfig.py", line 626, in get_paths
    return _expand_vars(scheme, vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "libtdb/1.4.9/recipe-sysroot-native/usr/lib/python3.12/sysconfig.py", line 270, in _expand_vars
    _extend_dict(vars, get_config_vars())
                       ^^^^^^^^^^^^^^^^^
  File "libtdb/1.4.9/recipe-sysroot-native/usr/lib/python3.12/sysconfig.py", line 728, in get_config_vars
    _init_config_vars()
  File "libtdb/1.4.9/recipe-sysroot-native/usr/lib/python3.12/sysconfig.py", line 670, in _init_config_vars
    _init_posix(_CONFIG_VARS)
  File "libtdb/1.4.9/recipe-sysroot-native/usr/lib/python3.12/sysconfig.py", line 536, in _init_posix
    _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '_sysconfigdata'

* setting PYTHONARCHDIR is simplest fix

* this also fixes libldb failure when it fails to find e.g. tevent after
  these installed-vs-shipped issues instealled it in wrong libdir:

Checking for system tevent (>=0.15.0)                                                           : yes
Traceback (most recent call last):
  File "lib32-libldb/2.8.0/ldb-2.8.0/third_party/waf/waflib/Scripting.py", line 159, in waf_entry_point
    run_commands()
  File "lib32-libldb/2.8.0/ldb-2.8.0/third_party/waf/waflib/Scripting.py", line 255, in run_commands
    ctx = run_command(cmd_name)
          ^^^^^^^^^^^^^^^^^^^^^
  File "lib32-libldb/2.8.0/ldb-2.8.0/third_party/waf/waflib/Scripting.py", line 239, in run_command
    ctx.execute()
  File "lib32-libldb/2.8.0/ldb-2.8.0/third_party/waf/waflib/Configure.py", line 159, in execute
    super(ConfigurationContext, self).execute()
  File "lib32-libldb/2.8.0/ldb-2.8.0/third_party/waf/waflib/Context.py", line 214, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "lib32-libldb/2.8.0/ldb-2.8.0/third_party/waf/waflib/Context.py", line 296, in recurse
    user_function(self)
  File "lib32-libldb/2.8.0/ldb-2.8.0/wscript", line 54, in configure
    conf.RECURSE('lib/tevent')
  File "lib32-libldb/2.8.0/ldb-2.8.0/buildtools/wafsamba/samba_utils.py", line 66, in fun
    return f(*k, **kw)
           ^^^^^^^^^^^
  File "lib32-libldb/2.8.0/ldb-2.8.0/buildtools/wafsamba/samba_utils.py", line 469, in RECURSE
    return ctx.recurse(relpath)
           ^^^^^^^^^^^^^^^^^^^^
  File "lib32-libldb/2.8.0/ldb-2.8.0/third_party/waf/waflib/Context.py", line 296, in recurse
    user_function(self)
  File "lib32-libldb/2.8.0/ldb-2.8.0/lib/tevent/wscript", line 51, in configure
    conf.CHECK_BUNDLED_SYSTEM_PYTHON('pytevent', 'tevent', minversion=VERSION):
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "lib32-libldb/2.8.0/ldb-2.8.0/buildtools/wafsamba/samba_utils.py", line 66, in fun
    return f(*k, **kw)
           ^^^^^^^^^^^
  File "lib32-libldb/2.8.0/ldb-2.8.0/buildtools/wafsamba/samba_bundled.py", line 270, in CHECK_BUNDLED_SYSTEM_PYTHON
    if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
           ^^^^^
UnboundLocalError: cannot access local variable 'found' where it is not associated with a value

and then it needs PYTHONARCHDIR as well to fix:

ERROR: libldb-2.8.0-r0 do_package: QA Issue: libldb: Files/directories were installed but not shipped in any package:
  /usr/lib
  /usr/lib/python3.12
  /usr/lib/python3.12/site-packages
  /usr/lib/python3.12/site-packages/_ldb_text.py
  /usr/lib/python3.12/site-packages/ldb.so
  /usr/lib/python3.12/site-packages/.debug
  /usr/lib/python3.12/site-packages/.debug/ldb.so
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
libldb: 7 installed and not shipped files. [installed-vs-shipped]

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-01-22 09:06:22 -08:00
..
classes kernel_add_regdb: Change the task order 2023-01-11 17:56:42 -08:00
conf ot-br-posix: exclude siggen dependency on ipset 2023-09-20 22:15:39 -07:00
dynamic-layers/meta-python system-config-printer: rely on setuptools to obtain distutils copy 2023-12-31 08:27:48 -08:00
files samba: upgrade 4.18.9 -> 4.19.3 2024-01-08 19:54:40 -08:00
licenses meta-networking/licenses/netperf: remove unused license 2023-04-28 06:59:50 -07:00
recipes-connectivity samba: upgrade 4.19.3 -> 4.19.4 2024-01-19 09:51:04 -08:00
recipes-core pkggrp: drop netkit 2023-11-15 09:51:45 -08:00
recipes-daemons keepalived: Move the sample configuration files to a separate package 2024-01-02 11:08:36 -08:00
recipes-devtools python3-scapy: upgrade to latest revision 2023-11-06 08:48:27 -08:00
recipes-extended tgt: Fix build with musl 2024-01-09 06:54:08 -08:00
recipes-filter ipset: upgrade 7.15 -> 7.19 2023-11-06 08:48:27 -08:00
recipes-irc weechat: upgrade 4.0.3 -> 4.0.4 2023-08-26 17:32:45 -07:00
recipes-kernel/wireguard wireguard-tools: Use PACKAGECONFIG to select wg-quick and bash-completion 2023-11-09 20:47:44 -08:00
recipes-protocols frr: Fix install conflict when enable multilib. 2024-01-12 08:51:11 -08:00
recipes-support libtalloc, libtevent, libtdb, libldb: set PYTHONARCHDIR for waf to respect python libdir 2024-01-22 09:06:22 -08:00
COPYING.MIT
MAINTAINERS MAINTANERS: drop netkit 2023-11-15 09:51:45 -08:00
README.md README: drop netkit maintainer 2023-11-15 09:51:45 -08:00

meta-networking

This layer is intended to be a central point for networking-related packages and configuration. It should be useful directly on top of oe-core and compliments meta-openembedded. It should be primarily useful to the following groups:

  - Anyone building a small networking device (eg. a home router /
    bridge / switch).

  - Anyone wanting to add network services to their device (eg.
    anything that might benefit from a small ftp/tftp server)

Dependencies

This layer depends on:

URI: git://git.openembedded.org/openembedded-core branch: master

For some recipes, the meta-oe layer is required:

URI: git://git.openembedded.org/meta-openembedded subdirectory: meta-oe branch: master

URI: git://git.openembedded.org/meta-openembedded subdirectory: meta-python branch: master

Maintenance

Layer maintainers: Khem Raj raj.khem@gmail.com

Please see the MAINTAINERS file for information on contacting the maintainers of this layer, as well as instructions for submitting patches.