diff mbox series

ODP: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr

Message ID VI1PR04MB537371C2BED481FEDB533DB89102A@VI1PR04MB5373.eurprd04.prod.outlook.com
State New
Headers show
Series ODP: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr | expand

Commit Message

Piotr Łobacz July 24, 2023, 8:50 p.m. UTC
Hello Alexandre,
this is a final patchest which works for me, even with reproducible builds, but additionally, with posix format of tar archives.

I hope that this time it will work for autobuild as well.

BR
Piotr

Od: Piotr Łobacz <p.lobacz@welotec.com>
Wysłane: poniedziałek, 24 lipca 2023 22:46
Do: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
DW: Piotr Łobacz <p.lobacz@welotec.com>
Temat: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr 
 
Extend OPKGBUILDCMD variable, with additional parameters, depending
on target distro features, in order to support ACLs and xattr.

With fix pushed to the opkg-devel:
https://groups.google.com/g/opkg-devel/c/dYNHrLjDwg8
opkg-build is able to create tar archives with ACLs and xattr.

Signed-off-by: Piotr Łobacz <p.lobacz@welotec.com>
---
 meta/classes-global/package_ipk.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alexandre Belloni July 25, 2023, 9:28 a.m. UTC | #1
Hello Piotr,

On 24/07/2023 20:50:50+0000, Piotr Łobacz wrote:
> 
> Hello Alexandre,
> this is a final patchest which works for me, even with reproducible builds, but additionally, with posix format of tar archives.
> 
> I hope that this time it will work for autobuild as well.

We are almost there, there are still reproducibility failures which I
guess where hidding in all the other other ones:

https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/3251/steps/12/logs/stdio

This time, diffoscope ran:
https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20230724-5av30jl8/packages/diff-html/

> 
> BR
> Piotr
> 
> Od: Piotr Łobacz <p.lobacz@welotec.com>
> Wysłane: poniedziałek, 24 lipca 2023 22:46
> Do: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
> DW: Piotr Łobacz <p.lobacz@welotec.com>
> Temat: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr 
>  
> Extend OPKGBUILDCMD variable, with additional parameters, depending
> on target distro features, in order to support ACLs and xattr.
> 
> With fix pushed to the opkg-devel:
> https://groups.google.com/g/opkg-devel/c/dYNHrLjDwg8
> opkg-build is able to create tar archives with ACLs and xattr.
> 
> Signed-off-by: Piotr Łobacz <p.lobacz@welotec.com>
> ---
>  meta/classes-global/package_ipk.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes-global/package_ipk.bbclass b/meta/classes-global/package_ipk.bbclass
> index b4b7bc9ac2..a0f106e4ad 100644
> --- a/meta/classes-global/package_ipk.bbclass
> +++ b/meta/classes-global/package_ipk.bbclass
> @@ -15,7 +15,7 @@ IPKGCONF_SDK_TARGET = "${WORKDIR}/opkg-sdk-target.conf"
>  PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks"
>  
>  # Program to be used to build opkg packages
> -OPKGBUILDCMD ??= 'opkg-build -Z xz -a "${XZ_DEFAULTS}"'
> +OPKGBUILDCMD ??= 'opkg-build -Z xz -a "${XZ_DEFAULTS}" ${@bb.utils.contains('DISTRO_FEATURES', 'acl', '-A', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', '-X', '', d)}'
>  
>  OPKG_ARGS += "--force_postinstall --prefer-arch-to-version"
>  OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]}"
> -- 
> 2.34.1

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#184818): https://lists.openembedded.org/g/openembedded-core/message/184818
> Mute This Topic: https://lists.openembedded.org/mt/100337925/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Piotr Łobacz July 25, 2023, 9:40 a.m. UTC | #2
Hmmm, this is odd because yesterday I have checked this and the additional parameters added to tar have fixed the issue for me.

But I have added them only for posix tar format, because for gnu format there is no need.

BTW. only these packages are different?

AssertionError: The following ipk packages are different and not in exclusion list:
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/acpid-src_2.0.34-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/avahi-src_0.8-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/bind-src_9.18.16-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/debugedit-src_5.0-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/flac-src_1.4.3-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/libjson-glib-1.0-dev_1.6.6-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/libjson-glib-1.0-ptest_1.6.6-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/libjson-glib-1.0-src_1.6.6-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/libmnl-src_1.0.5-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/libuuid-src_2.38.1-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/log4cplus-src_2.1.0-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/lttng-tools-src_2.13.9-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/python3-numpy-src_1.25.1-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/python3-pygobject-dev_3.44.1-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/python3-pygobject-src_3.44.1-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/python3-pygobject_3.44.1-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/util-linux-ptest_2.38.1-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/util-linux-src_2.38.1-r0_core2-64.ipk
/home/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/webkitgtk-src_2.40.2-r0_core2-64.ipk


Od: Alexandre Belloni <alexandre.belloni@bootlin.com>
Wysłane: wtorek, 25 lipca 2023 11:28
Do: Piotr Łobacz <p.lobacz@welotec.com>
DW: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
Temat: Re: ODP: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr

Hello Piotr,

On 24/07/2023 20:50:50+0000, Piotr Łobacz wrote:
>
> Hello Alexandre,
> this is a final patchest which works for me, even with reproducible builds, but additionally, with posix format of tar archives.
>
> I hope that this time it will work for autobuild as well.

We are almost there, there are still reproducibility failures which I
guess where hidding in all the other other ones:

https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/3251/steps/12/logs/stdio

This time, diffoscope ran:
https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20230724-5av30jl8/packages/diff-html/

>
> BR
> Piotr
>
> Od: Piotr Łobacz <p.lobacz@welotec.com>
> Wysłane: poniedziałek, 24 lipca 2023 22:46
> Do: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
> DW: Piotr Łobacz <p.lobacz@welotec.com>
> Temat: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr
>
> Extend OPKGBUILDCMD variable, with additional parameters, depending
> on target distro features, in order to support ACLs and xattr.
>
> With fix pushed to the opkg-devel:
> https://groups.google.com/g/opkg-devel/c/dYNHrLjDwg8
> opkg-build is able to create tar archives with ACLs and xattr.
>
> Signed-off-by: Piotr Łobacz <p.lobacz@welotec.com>
> ---
>  meta/classes-global/package_ipk.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes-global/package_ipk.bbclass b/meta/classes-global/package_ipk.bbclass
> index b4b7bc9ac2..a0f106e4ad 100644
> --- a/meta/classes-global/package_ipk.bbclass
> +++ b/meta/classes-global/package_ipk.bbclass
> @@ -15,7 +15,7 @@ IPKGCONF_SDK_TARGET = "${WORKDIR}/opkg-sdk-target.conf"
>  PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks"
>
>  # Program to be used to build opkg packages
> -OPKGBUILDCMD ??= 'opkg-build -Z xz -a "${XZ_DEFAULTS}"'
> +OPKGBUILDCMD ??= 'opkg-build -Z xz -a "${XZ_DEFAULTS}" ${@bb.utils.contains('DISTRO_FEATURES', 'acl', '-A', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', '-X', '', d)}'
>
>  OPKG_ARGS += "--force_postinstall --prefer-arch-to-version"
>  OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]}"
> --
> 2.34.1

>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#184818): https://lists.openembedded.org/g/openembedded-core/message/184818
> Mute This Topic: https://lists.openembedded.org/mt/100337925/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>


--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com/
Piotr Łobacz July 25, 2023, 9:57 a.m. UTC | #3
Yeah, I have just checked it for acpid-src packages and diffoscope worked without any errors.

Question, is this test being run with acl or/and xattr? Because from what I remember it was not. Can you check?
If this will confirm, then something is still wrong with the gnu format, because right now all posix - meaning with acl/xattr support - packages are working for me.

BR
Piotr
Alexander Kanavin July 25, 2023, 10:28 a.m. UTC | #4
On Tue, 25 Jul 2023 at 11:58, Piotr Łobacz <p.lobacz@welotec.com> wrote:
>
> Yeah, I have just checked it for acpid-src packages and diffoscope worked without any errors.
>
> Question, is this test being run with acl or/and xattr? Because from what I remember it was not. Can you check?
> If this will confirm, then something is still wrong with the gnu format, because right now all posix - meaning with acl/xattr support - packages are working for me.

Hello Piotr,

may I suggest: you need to learn to reproduce the autobuilder failures
locally. Integrators are stretched very thin, they juggle a ton of
patches (other than the ones you want to get in), and the expectation
is that when they tell you something fails, it is on you to do further
investigation. Here's how you do it:

- start by finding the failed build in the list of their definitions:
https://git.yoctoproject.org/yocto-autobuilder-helper/tree/config.json
You can see that it's this one:

        "reproducible" : {
            "MACHINE" : "qemux86-64",
            "SDKMACHINE" : "x86_64",
            "step1" : {
                "shortname" : "Reproducible Selftest",
                "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc;
OEQA_DEBUGGING_SAVED_OUTPUT=${BASE_SHAREDDIR}/pub/repro-fail/
DISPLAY=:1 oe-selftest -r reproducible"],
                "ADDLAYER" : ["${BUILDDIR}/../meta-selftest"]

            }

What that means is you need to set up a plain poky build (no extra
layers, no custom configs specific to your organization), then run
'oe-selftest -r reproducible'. That is however a heavy test as it
builds everything, so we need to narrow it down to just the failing
pieces.

- the failure log shows that reproducibility is tested via
meta/lib/oeqa/selftest/cases/reproducible.py. If you open that file,
you can see OEQA_REPRODUCIBLE_TEST_TARGET narrows down the targets
used to test reproducibility, and you can also set
OEQA_REPRODUCIBLE_TEST_PACKAGE similarly.

- now you can run oe-selftest -r reproducible. Once it finishes and
confirms the failure, head to build-st/reproducibleA and
build-st/reproducibleB, to see where the difference first appears.

You can also replicate reproducibility test by manually setting up two
different build directories with identical configs.

Alex
Piotr Łobacz July 25, 2023, 3:22 p.m. UTC | #5
Hi Alex,
at the beginning I would like to thank you for your suggestions, and I want to mention that this is what I wanted to do that from the very beginning,
but I could not find any good HowTo or manual how to do that. Right now, I have this poky-contrib:abelloni/master-next branch downloaded,
which also has the patches given by me.

Now, I'm trying to run it using these commands:

. ./oe-init-build-env build

and than:

oe-selftest -r reproducible

but for some reason it produces me an error:

raceback (most recent call last):
  File "/home/plobacz/workspace/poky-contrib/scripts/oe-selftest", line 60, in <module>
    ret = main()
  File "/home/plobacz/workspace/poky-contrib/scripts/oe-selftest", line 47, in main
    results = args.func(logger, args)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/selftest/context.py", line 406, in run
    self._process_args(logger, args)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/selftest/context.py", line 252, in _process_args
    bbvars = get_bb_vars()
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 248, in get_bb_vars
    bbenv = get_bb_env(target, postconfig=postconfig)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 244, in get_bb_env
    return bitbake("-e", postconfig=postconfig).output
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 234, in bitbake
    return runCmd(cmd, ignore_status, timeout, output_log=output_log, **options)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 212, in runCmd
    raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output))
AssertionError: Command 'bitbake  -e' returned non-zero exit status 1:
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
  chrpath

But:

echo $PATH
/home/plobacz/workspace/poky-contrib/scripts:/home/plobacz/workspace/poky-contrib/bitbake/bin:/home/plobacz/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Maybe I'm doing it somehow in wrong order?

BR
Piotr
Piotr Łobacz July 25, 2023, 3:28 p.m. UTC | #6
Oh jesus I'm a morron I haven't noticed that I'm missing chrpath​

Do not bother this messages:P

Cheers,
Piotr
________________________________
Od: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> w imieniu użytkownika Piotr Łobacz via lists.openembedded.org <p.lobacz=welotec.com@lists.openembedded.org>
Wysłane: wtorek, 25 lipca 2023 17:22
Do: Alexander Kanavin <alex.kanavin@gmail.com>
DW: Alexandre Belloni <alexandre.belloni@bootlin.com>; openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
Temat: ODP: ODP: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr


Hi Alex,
at the beginning I would like to thank you for your suggestions, and I want to mention that this is what I wanted to do that from the very beginning,
but I could not find any good HowTo or manual how to do that. Right now, I have this poky-contrib:abelloni/master-next branch downloaded,
which also has the patches given by me.

Now, I'm trying to run it using these commands:

. ./oe-init-build-env build

and than:

oe-selftest -r reproducible

but for some reason it produces me an error:

raceback (most recent call last):
  File "/home/plobacz/workspace/poky-contrib/scripts/oe-selftest", line 60, in <module>
    ret = main()
  File "/home/plobacz/workspace/poky-contrib/scripts/oe-selftest", line 47, in main
    results = args.func(logger, args)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/selftest/context.py", line 406, in run
    self._process_args(logger, args)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/selftest/context.py", line 252, in _process_args
    bbvars = get_bb_vars()
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 248, in get_bb_vars
    bbenv = get_bb_env(target, postconfig=postconfig)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 244, in get_bb_env
    return bitbake("-e", postconfig=postconfig).output
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 234, in bitbake
    return runCmd(cmd, ignore_status, timeout, output_log=output_log, **options)
  File "/home/plobacz/workspace/poky-contrib/meta/lib/oeqa/utils/commands.py", line 212, in runCmd
    raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output))
AssertionError: Command 'bitbake  -e' returned non-zero exit status 1:
ERROR: The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:
  chrpath

But:

echo $PATH
/home/plobacz/workspace/poky-contrib/scripts:/home/plobacz/workspace/poky-contrib/bitbake/bin:/home/plobacz/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Maybe I'm doing it somehow in wrong order?

BR
Piotr




________________________________
Od: Alexander Kanavin <alex.kanavin@gmail.com>
Wysłane: wtorek, 25 lipca 2023 12:28
Do: Piotr Łobacz <p.lobacz@welotec.com>
DW: Alexandre Belloni <alexandre.belloni@bootlin.com>; openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org>
Temat: Re: ODP: [OE-Core][PATCH v10][master-next 1/5] package_ipk.bbclass: add support for ACLs and xattr

On Tue, 25 Jul 2023 at 11:58, Piotr Łobacz <p.lobacz@welotec.com> wrote:
>
> Yeah, I have just checked it for acpid-src packages and diffoscope worked without any errors.
>
> Question, is this test being run with acl or/and xattr? Because from what I remember it was not. Can you check?
> If this will confirm, then something is still wrong with the gnu format, because right now all posix - meaning with acl/xattr support - packages are working for me.

Hello Piotr,

may I suggest: you need to learn to reproduce the autobuilder failures
locally. Integrators are stretched very thin, they juggle a ton of
patches (other than the ones you want to get in), and the expectation
is that when they tell you something fails, it is on you to do further
investigation. Here's how you do it:

- start by finding the failed build in the list of their definitions:
https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.yoctoproject.org%2Fyocto-autobuilder-helper%2Ftree%2Fconfig.json&data=05%7C01%7Cp.lobacz%40welotec.com%7C29e17992f2b148e9206c08db8cf9e54c%7C25111a7f1d5a4c51a4ca7f8e44011b39%7C0%7C0%7C638258777149507734%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3czxntfPZq68MvQxKQtJT6Rk5la4O0cca9osxYGcVqI%3D&reserved=0<https://git.yoctoproject.org/yocto-autobuilder-helper/tree/config.json>
You can see that it's this one:

        "reproducible" : {
            "MACHINE" : "qemux86-64",
            "SDKMACHINE" : "x86_64",
            "step1" : {
                "shortname" : "Reproducible Selftest",
                "EXTRACMDS" : ["${SCRIPTSDIR}/checkvnc;
OEQA_DEBUGGING_SAVED_OUTPUT=${BASE_SHAREDDIR}/pub/repro-fail/
DISPLAY=:1 oe-selftest -r reproducible"],
                "ADDLAYER" : ["${BUILDDIR}/../meta-selftest"]

            }

What that means is you need to set up a plain poky build (no extra
layers, no custom configs specific to your organization), then run
'oe-selftest -r reproducible'. That is however a heavy test as it
builds everything, so we need to narrow it down to just the failing
pieces.

- the failure log shows that reproducibility is tested via
meta/lib/oeqa/selftest/cases/reproducible.py. If you open that file,
you can see OEQA_REPRODUCIBLE_TEST_TARGET narrows down the targets
used to test reproducibility, and you can also set
OEQA_REPRODUCIBLE_TEST_PACKAGE similarly.

- now you can run oe-selftest -r reproducible. Once it finishes and
confirms the failure, head to build-st/reproducibleA and
build-st/reproducibleB, to see where the difference first appears.

You can also replicate reproducibility test by manually setting up two
different build directories with identical configs.

Alex
H
diff mbox series

Patch

diff --git a/meta/classes-global/package_ipk.bbclass b/meta/classes-global/package_ipk.bbclass
index b4b7bc9ac2..a0f106e4ad 100644
--- a/meta/classes-global/package_ipk.bbclass
+++ b/meta/classes-global/package_ipk.bbclass
@@ -15,7 +15,7 @@  IPKGCONF_SDK_TARGET = "${WORKDIR}/opkg-sdk-target.conf"
 PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks"
 
 # Program to be used to build opkg packages
-OPKGBUILDCMD ??= 'opkg-build -Z xz -a "${XZ_DEFAULTS}"'
+OPKGBUILDCMD ??= 'opkg-build -Z xz -a "${XZ_DEFAULTS}" ${@bb.utils.contains('DISTRO_FEATURES', 'acl', '-A', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', '-X', '', d)}'
 
 OPKG_ARGS += "--force_postinstall --prefer-arch-to-version"
 OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]}"