mirror of
https://git.yoctoproject.org/git/opkg-utils
synced 2026-05-06 15:16:29 +02:00
opkg-build: Add acls and xattrs support
Add support for tar archives created with --acls and/or --xattrs options, PAX header format. GNU tar and libarchive already supports ACLs and extended attributes. We can now add this support as well to opkg-build script in order to use fsetattr or setcap inside do_install command and end up with a file in an image with the relevant ACLS and xattrs. Signed-off-by: Piotr Łobacz <p.lobacz@welotec.com> Signed-off-by: Alex Stewart <alex.stewart@ni.com>
This commit is contained in:
committed by
Alex Stewart
parent
67994e62dc
commit
dc50e85ff1
15
opkg-build
15
opkg-build
@@ -145,6 +145,7 @@ You probably want to chown these to a system user: " >&2
|
||||
###
|
||||
# opkg-build "main"
|
||||
###
|
||||
attributesargs=""
|
||||
ogargs=""
|
||||
outer=ar
|
||||
noclean=0
|
||||
@@ -166,7 +167,7 @@ compressorargs=""
|
||||
tarformat=""
|
||||
if tar --help 2>&1 | grep -- "--format" > /dev/null;
|
||||
then
|
||||
tarformat="--format=gnu"
|
||||
tarformat="--format=posix"
|
||||
fi
|
||||
|
||||
compressor_ext() {
|
||||
@@ -197,13 +198,17 @@ compressor_ext() {
|
||||
: <<=cut
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<opkg-build> [B<-c>] [B<-C>] [B<-Z> I<compressor>] [B<-a>] [B<-O>] [B<-o> I<owner>] [B<-g> I<group>] I<pkg_directory> [I<destination_directory>]
|
||||
B<opkg-build> [B<-A>] [B<-X>] [B<-c>] [B<-C>] [B<-Z> I<compressor>] [B<-a>] [B<-O>] [B<-o> I<owner>] [B<-g> I<group>] I<pkg_directory> [I<destination_directory>]
|
||||
|
||||
=cut
|
||||
|
||||
usage="Usage: $0 [-c] [-C] [-Z compressor] [-a compressor_args] [-O] [-o owner] [-g group] <pkg_directory> [<destination_directory>]"
|
||||
while getopts "a:cCg:ho:vOZ:" opt; do
|
||||
usage="Usage: $0 [-A] [-X] [-c] [-C] [-Z compressor] [-a compressor_args] [-O] [-o owner] [-g group] <pkg_directory> [<destination_directory>]"
|
||||
while getopts "Aa:cCg:ho:vOXZ:" opt; do
|
||||
case $opt in
|
||||
A ) attributesargs="--acls"
|
||||
;;
|
||||
X ) attributesargs="$attributesargs --xattrs"
|
||||
;;
|
||||
o ) owner=$OPTARG
|
||||
ogargs="--owner=$owner"
|
||||
;;
|
||||
@@ -314,7 +319,7 @@ export LANG=C
|
||||
export LC_ALL=C
|
||||
( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list )
|
||||
( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list )
|
||||
( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
|
||||
( cd $pkg_dir && tar $attributesargs $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
|
||||
( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz )
|
||||
rm $tmp_dir/file_list
|
||||
rm $tmp_dir/control_list
|
||||
|
||||
Reference in New Issue
Block a user