Bug 16275 - Nothing PROVIDES 'libseccomp-native'
Summary: Nothing PROVIDES 'libseccomp-native'
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium normal
Target Milestone: 6.1
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2026-05-01 08:26 UTC by kweihmann
Modified: 2026-07-26 13:56 UTC (History)
5 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kweihmann 2026-05-01 08:26:08 UTC
Since 6b553a5042b9d5828a9da675ede16e10f06dae90 in master
"base/bitbake.conf: Rework DISTRO_FEATURES and MACHINE_FEATURES default handling",
i get the following build error

ERROR: Nothing PROVIDES 'libseccomp-native' (but virtual:native:/path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb DEPENDS on or otherwise requires it). Close matches:
  libcomps-native
  libsm-native
  libsoup-native
ERROR: Required build target 'glibc' has no buildable providers.
Missing or unbuildable dependency chain was: ['glibc', 'rpm-native', 'elfutils-native', 'libmicrohttpd-native', 'gnutls-native', 'libseccomp-native']

In before that was fine.
I guess having PACKAGE_CLASSES = "package_rpm" contributes to the problem.

seccomp is active in my custom distro.
Comment 1 Randy MacLeod 2026-05-07 14:36:03 UTC
It's not surprising that you may have to make changes in your distro due to this commit.
The question is do you have a good reason to enable libseccomp-native and if so why?  seccomp is a distro feature and you maybe be filtering it as a native distro feature.
Comment 2 Randy MacLeod 2026-05-07 14:36:55 UTC
See previous comment.
Comment 3 kweihmann 2026-05-07 14:46:59 UTC
I do not set an native distro features.
The custom distro is basically

include poky.conf
DISTRO = "something"
DISTRO_FEATURES_DEFAULTS:remove = "opengl ptest wayland vulkan pulseaudio"
DISTRO_FEATURES = "systemd ext2"

which made it surprising to me that this error popped up.

What needs to be set to resolve this?

And no I do not need libseccomp-native for any reason
Comment 4 Richard Purdie 2026-05-07 21:20:48 UTC
documentation.conf mentions:

DISTRO_FEATURES_DEFAULTS[doc] = "The default set of distribution features, prior to any filtering. Usually you should leave this alone and modify DISTRO_FEATURES and/or DISTRO_FEATURES_OPTED_OUT."

so the :remove isn't really the preferred way to use it. Having said that, I'm not sure it is the cause of the issue. I just tried your config and it worked for me:

$ bitbake-getvar -r gnutls-native PACKAGECONFIG
[...]
# pre-expansion value:
#   "libidn libtasn1 ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)}"
PACKAGECONFIG="libidn libtasn1 

and bitbake gnutls-native doesn't show the provides error.

There has to be something about your config which we're not seeing...
Comment 5 kweihmann 2026-05-08 04:55:33 UTC
It's indeed something very weird and I have no idea why this is happening.

After some playing around here's the new testcase

distro.conf

include conf/distro/poky.conf

DISTRO_FEATURES_DEFAULTS:remove = "opengl ptest wayland vulkan pulseaudio sysvinit"
DISTRO_FEATURES:append = " systemd usrmerge ${A}"

results in

bitbake-getvar -r gnutls-native PACKAGECONFIG
#
# $PACKAGECONFIG [15 operations]
#   :append[pn-qemu-system-native] /mnt/ssd/build-sca-master/conf/local.conf:17
#     " sdl"
#   set /path/layer/openembedded-core/meta/conf/documentation.conf:311
#     [doc] "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
#   set /path/layer/openembedded-core/meta/conf/bitbake.conf:943
#     [vardepvalue] "${PACKAGECONFIG}"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:33
#     [_defaultval] "libidn libtasn1 ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)}"
#   :append[class-native] /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:34
#     " p11-kit"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:38
#     [seccomp] "--with-libseccomp-prefix=${STAGING_DIR_HOST},ac_cv_libseccomp=no,libseccomp"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:39
#     [libidn] "--with-idn,--without-idn,libidn2"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:40
#     [libtasn1] "--without-included-libtasn1,--with-included-libtasn1,libtasn1"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:41
#     [p11-kit] "--with-p11-kit,--without-p11-kit,p11-kit"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:42
#     [tpm] "--with-tpm,--without-tpm,trousers"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:43
#     [fips] "--enable-fips140-mode --with-libdl-prefix=${STAGING_DIR_HOST}"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:44
#     [dane] "--enable-libdane,--disable-libdane,unbound"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:46
#     [brotli] "--with-brotli,--without-brotli,brotli"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:47
#     [zlib] "--with-zlib,--without-zlib,zlib"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:48
#     [zstd] "--with-zstd,--without-zstd,zstd"
# pre-expansion value:
#   "libidn libtasn1 ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} p11-kit"
PACKAGECONFIG="libidn libtasn1 seccomp p11-kit"

while 

include conf/distro/poky.conf

# Remove all audio and graphics related distro backfills
# we do not need them for our purposes
DISTRO_FEATURES_DEFAULTS:remove = "opengl ptest wayland vulkan pulseaudio sysvinit"
DISTRO_FEATURES:append = " systemd usrmerge"

bitbake-getvar -r gnutls-native PACKAGECONFI
#
# $PACKAGECONFIG [15 operations]
#   :append[pn-qemu-system-native] /mnt/ssd/build-sca-master/conf/local.conf:17
#     " sdl"
#   set /path/layer/openembedded-core/meta/conf/documentation.conf:311
#     [doc] "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
#   set /path/layer/openembedded-core/meta/conf/bitbake.conf:943
#     [vardepvalue] "${PACKAGECONFIG}"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:33
#     [_defaultval] "libidn libtasn1 ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)}"
#   :append[class-native] /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:34
#     " p11-kit"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:38
#     [seccomp] "--with-libseccomp-prefix=${STAGING_DIR_HOST},ac_cv_libseccomp=no,libseccomp"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:39
#     [libidn] "--with-idn,--without-idn,libidn2"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:40
#     [libtasn1] "--without-included-libtasn1,--with-included-libtasn1,libtasn1"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:41
#     [p11-kit] "--with-p11-kit,--without-p11-kit,p11-kit"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:42
#     [tpm] "--with-tpm,--without-tpm,trousers"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:43
#     [fips] "--enable-fips140-mode --with-libdl-prefix=${STAGING_DIR_HOST}"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:44
#     [dane] "--enable-libdane,--disable-libdane,unbound"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:46
#     [brotli] "--with-brotli,--without-brotli,brotli"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:47
#     [zlib] "--with-zlib,--without-zlib,zlib"
#   set /path/layer/openembedded-core/meta/recipes-support/gnutls/gnutls_3.8.12.bb:48
#     [zstd] "--with-zstd,--without-zstd,zstd"
# pre-expansion value:
#   "libidn libtasn1 ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} p11-kit"
PACKAGECONFIG="libidn libtasn1  p11-kit"

has no seccomp set.
Only difference is the undefined variable A (something similar I have in my custom distro)

Changing DISTRO_FEATURES_DEFAULTS:remove to DISTRO_FEATURES:remove yields the same results.

@Richard I'm aware of the bad design choice of :remove, but it's an easy way for testing purposes to stay close to poky without the burden of some features, like graphics and ptests, if there's a better design that doesn't need to be constantly patched, I'm open to hear about it
Comment 6 Richard Purdie 2026-05-08 06:47:06 UTC
I worked out what was going on, there is a patch on list, "utils: Handle unexpanded variables in DISTRO_FEATURES" which detects the issue and shows warnings as well as working around the issue.
Comment 7 Richard Purdie 2026-05-08 06:47:52 UTC
Rather than use :remove with DISTRO_FEATURES you should be able to use DISTRO_FEATURES_OPTED_OUT
Comment 8 kweihmann 2026-05-08 07:27:30 UTC
Thanks Richard
Comment 10 Richard Purdie 2026-07-26 13:56:25 UTC
Fixed in the above commit