2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-06-12 17:30:19 +00:00

fix sles11.4 packimage return error when use tar compress method (#1743)

This commit is contained in:
penguhyang
2016-08-24 12:13:36 +08:00
committed by yangsong
parent a4abdbffae
commit c93b215c2c
3 changed files with 25 additions and 14 deletions

View File

@ -491,25 +491,24 @@ sub process_request {
}
$oldmask = umask 0077;
} elsif ($method =~ /tar/) {
my $checkoption1 = `tar --xattrs-include 2>&1`;
my $checkoption2 = `tar --selinux 2>&1`;
my $option;
if ($checkoption1 !~ /unrecognized/) {
$option .= "--xattrs-include='*' ";
}
if ($checkoption2 !~ /unrecognized/) {
$option .= "--selinux ";
}
if (!$exlistloc) {
my $checkoption = `tar --xattrs-include 2>&1`;
if ($checkoption =~ /unrecognized/) {
$excludestr = "find . -xdev -print0 | tar --selinux --no-recursion --use-compress-program=$compress --null -T - -cf ../rootimg.$suffix";
} else {
$excludestr = "find . -xdev -print0 | tar --selinux --xattrs-include='*' --no-recursion --use-compress-program=$compress --null -T - -cf ../rootimg.$suffix";
}
$excludestr = "find . -xdev -print0 | tar $option --no-recursion --use-compress-program=$compress --null -T - -cf ../rootimg.$suffix";
} else {
chdir("$rootimg_dir");
system("$excludestr >> $xcat_packimg_tmpfile");
if ($includestr) {
system("$includestr >> $xcat_packimg_tmpfile");
}
my $checkoption = `tar --xattrs-include 2>&1`;
if ($checkoption =~ /unrecognized/) {
$excludestr = "cat $xcat_packimg_tmpfile| tar --selinux --no-recursion --use-compress-program=$compress -T - -cf ../rootimg.$suffix";
} else {
$excludestr = "cat $xcat_packimg_tmpfile| tar --selinux --xattrs-include='*' --no-recursion --use-compress-program=$compress -T - -cf ../rootimg.$suffix";
}
$excludestr = "cat $xcat_packimg_tmpfile| tar $option --no-recursion --use-compress-program=$compress -T - -cf ../rootimg.$suffix";
}
$oldmask = umask 0077;
} elsif ($method =~ /squashfs/) {

View File

@ -109,8 +109,14 @@ elif [ -r /rootimg.tar.gz ] || [ -r /rootimg.tar.xz ]; then
echo -n "Extracting root filesystem:"
if [ -r /rootimg.tar.gz ]; then
tar --selinux --xattrs-include='*' -zxf /rootimg.tar.gz
if [ $? -ne 0 ]; then
tar -zxf /rootimg.tar.gz
fi
elif [ -r /rootimg.tar.xz ]; then
tar --selinux --xattrs-include='*' -Jxf /rootimg.tar.xz
if [ $? -ne 0 ]; then
tar -Jxf /rootimg.tar.xz
fi
fi
$NEWROOT/etc/init.d/localdisk
[ "$xcatdebugmode" > "0" ] && logger -t xcat -p debug "Done...."

View File

@ -1659,8 +1659,14 @@ EOMS
print $inifile " echo -n \"Extracting root filesystem:\"\n";
print $inifile " if [ -r /rootimg.tar.gz ]; then\n";
print $inifile " tar --selinux --xattrs-include='*' -zxf /rootimg.tar.gz\n";
print $inifile " if [ \$? -ne 0 ]; then\n";
print $inifile " tar -zxf /rootimg.tar.gz\n";
print $inifile " fi\n";
print $inifile " elif [ -r /rootimg.tar.xz ]; then\n";
print $inifile " tar --selinux --xattrs-include='*' -Jxf /rootimg.tar.xz\n";
print $inifile " if [ \$? -ne 0 ]; then\n";
print $inifile " tar -Jxf /rootimg.tar.xz\n";
print $inifile " fi\n";
print $inifile " fi\n";
print $inifile " echo Done\n";
print $inifile "else\n";
@ -1770,7 +1776,7 @@ EOMS
}
}
if ($mode eq "statelite") {
foreach ("sbin/ifconfig", "usr/bin/clear", "usr/bin/touch", "bin/hostname", "usr/bin/egrep", "bin/ln", "bin/ls", "usr/bin/dirname", "usr/bin/expr", "usr/bin/chroot", "usr/bin/grep", "bin/cpio", "bin/sleep", "bin/mount", "bin/umount", "sbin/dhcpcd", "bin/bash", "sbin/insmod", "bin/mkdir", "bin/mknod", "sbin/ip", "bin/cat", "usr/bin/awk", "usr/bin/wget", "bin/cp", "usr/bin/cpio", "usr/bin/zcat", "usr/bin/gzip", "lib/mkinitrd/bin/run-init", "usr/bin/uniq", "usr/bin/sed", "usr/bin/wc", "bin/sed", "sbin/udevd", "usr/bin/readlink", "usr/sbin/parted", "sbin/mke2fs", "sbin/mkswap", "sbin/swapon", "bin/chmod", "usr/bin/bc", "usr/bin/xz", "usr/bin/gzip", "usr/bin/tar") {
foreach ("sbin/ifconfig", "usr/bin/clear", "usr/bin/touch", "bin/hostname", "usr/bin/egrep", "bin/ln", "bin/ls", "usr/bin/dirname", "usr/bin/expr", "usr/bin/chroot", "usr/bin/grep", "bin/cpio", "bin/sleep", "bin/mount", "bin/umount", "sbin/dhcpcd", "bin/bash", "sbin/insmod", "bin/mkdir", "bin/mknod", "sbin/ip", "bin/cat", "usr/bin/awk", "usr/bin/wget", "bin/cp", "usr/bin/cpio", "usr/bin/zcat", "usr/bin/gzip", "lib/mkinitrd/bin/run-init", "usr/bin/uniq", "usr/bin/sed", "usr/bin/wc", "bin/sed", "sbin/udevd", "usr/bin/readlink", "usr/sbin/parted", "sbin/mke2fs", "sbin/mkswap", "sbin/swapon", "bin/chmod", "usr/bin/bc", "usr/bin/xz", "usr/bin/gzip", "bin/tar") {
getlibs($_);
push @filestoadd, $_;
}
@ -1782,7 +1788,7 @@ EOMS
}
} else {
foreach ("sbin/ifconfig", "usr/bin/clear", "usr/bin/touch", "usr/bin/grep", "usr/bin/egrep", "bin/cpio", "bin/sleep", "bin/mount", "sbin/dhcpcd", "bin/bash", "sbin/insmod", "bin/mkdir", "bin/mknod", "sbin/ip", "bin/cat", "usr/bin/awk", "usr/bin/wget", "bin/cp", "usr/bin/cpio", "usr/bin/zcat", "usr/bin/gzip", "lib/mkinitrd/bin/run-init", "usr/bin/uniq", "usr/bin/sed", "sbin/udevd", "usr/bin/readlink", "usr/bin/expr", "usr/sbin/parted", "sbin/mke2fs", "sbin/mkswap", "sbin/swapon", "bin/chmod", "usr/bin/bc", "usr/bin/xz", "usr/bin/gzip", "usr/bin/tar") {
foreach ("sbin/ifconfig", "usr/bin/clear", "usr/bin/touch", "usr/bin/grep", "usr/bin/egrep", "bin/cpio", "bin/sleep", "bin/mount", "sbin/dhcpcd", "bin/bash", "sbin/insmod", "bin/mkdir", "bin/mknod", "sbin/ip", "bin/cat", "usr/bin/awk", "usr/bin/wget", "bin/cp", "usr/bin/cpio", "usr/bin/zcat", "usr/bin/gzip", "lib/mkinitrd/bin/run-init", "usr/bin/uniq", "usr/bin/sed", "sbin/udevd", "usr/bin/readlink", "usr/bin/expr", "usr/sbin/parted", "sbin/mke2fs", "sbin/mkswap", "sbin/swapon", "bin/chmod", "usr/bin/bc", "usr/bin/xz", "usr/bin/gzip", "bin/tar") {
getlibs($_);
push @filestoadd, $_;
}