diff mbox series

[kirkstone,v2,1/4] package.bbclase: Add ACLs and xattrs to perform_packagecopy

Message ID 20230403122409.3067997-1-p.lobacz@welotec.com
State New, archived
Headers show
Series [kirkstone,v2,1/4] package.bbclase: Add ACLs and xattrs to perform_packagecopy | expand

Commit Message

Piotr Łobacz April 3, 2023, 12:24 p.m. UTC
This is necessary in order to preserve all the extended attributes
set in do_install also in PKGD directory, otherwise they are
dropped and not stored in created package(s).

For the momemnt it is only supported by OPKG package manager
as it has support for libarchive and tar implementations, which
supports ACLs and xattrs.

Fixes: [YOCTO #9858]

Signed-off-by: Piotr Łobacz <p.lobacz@welotec.com>
---
 meta/classes/package.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Richard Purdie April 3, 2023, 1:32 p.m. UTC | #1
On Mon, 2023-04-03 at 14:24 +0200, Piotr Łobacz wrote:
> This is necessary in order to preserve all the extended attributes
> set in do_install also in PKGD directory, otherwise they are
> dropped and not stored in created package(s).
> 
> For the momemnt it is only supported by OPKG package manager
> as it has support for libarchive and tar implementations, which
> supports ACLs and xattrs.
> 
> Fixes: [YOCTO #9858]
> 
> Signed-off-by: Piotr Łobacz <p.lobacz@welotec.com>
> ---
>  meta/classes/package.bbclass | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index 2950218145..b0334d9190 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -863,8 +863,8 @@ python perform_packagecopy () {
>  
>      # Start by package population by taking a copy of the installed
>      # files to operate on
> -    # Preserve sparse files and hard links
> -    cmd = 'tar --exclude=./sysroot-only -cf - -C %s -p -S . | tar -xf - -C %s' % (dest, dvar)
> +    # Preserve sparse files, hard links, ACLs and extended attributes
> +    cmd = 'tar --acls --xattrs --exclude=./sysroot-only -cf - -C %s -p -S . | tar --acls --xattrs -xf - -C %s' % (dest, dvar)
>      subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
>  
>      # replace RPATHs for the nativesdk binaries, to make them relocatable

Just to be clear, new feature development work happens on master, not
on our LTS stable release branches. That means these can't merge for
kirkstone and they don't apply to master so whilst I appreciate you
sharing them, they're unlikely to move forward without someone picking
them up and working on master with them.

Cheers,

Richard
diff mbox series

Patch

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 2950218145..b0334d9190 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -863,8 +863,8 @@  python perform_packagecopy () {
 
     # Start by package population by taking a copy of the installed
     # files to operate on
-    # Preserve sparse files and hard links
-    cmd = 'tar --exclude=./sysroot-only -cf - -C %s -p -S . | tar -xf - -C %s' % (dest, dvar)
+    # Preserve sparse files, hard links, ACLs and extended attributes
+    cmd = 'tar --acls --xattrs --exclude=./sysroot-only -cf - -C %s -p -S . | tar --acls --xattrs -xf - -C %s' % (dest, dvar)
     subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
 
     # replace RPATHs for the nativesdk binaries, to make them relocatable