#2567 Issue closed: rpm unpacking fails on SLE12 PPC64LE for rear 2.6 RPM built for openSUSE Factory PPC64LE

Labels: support / question, fixed / solved / done, external tool

viper1986 opened issue at 2021-02-12 10:23:

  • ReaR version ("/usr/sbin/rear -V"): 2.6

  • OS version ("cat /etc/os-release" or "lsb_release -a" or "cat /etc/rear/os.conf"):
    SUSE Linux Enterprise Server 12 (ppc64le)

  • ReaR configuration files ("cat /etc/rear/site.conf" and/or "cat /etc/rear/local.conf"):

  • Hardware (PC or PowerNV BareMetal or ARM) or virtual machine (KVM guest or PoverVM LPAR):
    PoverVM

  • System architecture (x86 compatible or PPC64/PPC64LE or what exact ARM device):
    PPC64LE

  • Firmware (BIOS or UEFI or Open Firmware) and bootloader (GRUB or ELILO or Petitboot):

  • Storage (local disk or SSD) and/or SAN (FC or iSCSI or FCoE) and/or multipath (DM or NVMe):

  • Storage layout ("lsblk -ipo NAME,KNAME,PKNAME,TRAN,TYPE,FSTYPE,SIZE,MOUNTPOINT" or "lsblk" as makeshift):

  • Description of the issue (ideally so that others can reproduce it):
    Package was downloaded from:
    http://download.opensuse.org/repositories/Archiving:/Backup:/Rear/openSUSE_Factory_PowerPC/

susenew:~ # rpm -ivh rear-2.6-1.ppc64le.rpm
error: Failed dependencies:
        rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by rear-2.6-1.ppc64le
susenew:~ # zypper install rear-2.6-1.ppc64le.rpm
Refreshing service 'SMT-http_itesusv2_iteadm_local'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  rear

The following package has no support information from it's vendor:
  rear

1 new package to install.
Overall download size: 0 B. Already cached: 643.9 KiB. After the operation, additional 2.2 MiB will be used.
Continue? [y/n/...? shows all options] (y):
In cache rear-2.6-1.ppc64le.rpm                                                                                                                                                                         (1/1), 643.9 KiB (  2.2 MiB unpacked)

Checking for file conflicts: ...............................[done]
(1/1) Installing: rear-2.6-1.ppc64le .......................[error]
Installation of rear-2.6-1.ppc64le failed:
Error: Subprocess failed. Error: RPM failed: error: unpacking of archive failed: cpio: Bad magic
error: rear-2.6-1.ppc64le: install failed
  • Workaround, if any: none

jsmeix commented at 2021-02-12 15:37:

Currently I have no idea how we at ReaR upstream could fix

... RPM failed: error: unpacking of archive failed: cpio: Bad magic

which looks like some RPM packaging error of the
openSUSE build service where that RPM is built.

I see that the first error is

rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by rear-2.6-1.ppc64le

and I guess that leads to the unpacking of archive failed.

Off the top of my head I don't know hoe to get the missing requirement
rpmlib(PayloadIsZstd) installed.
In particular I don't know about special things on POWER architecture.

As a workaround you may do what I described in the section
"Testing current ReaR upstream GitHub master code" in
https://en.opensuse.org/SDB:Disaster_Recovery

Alternatively (not tested by me) it may work to install that RPM
built for another architecture (e.g. built for x86_64) because what you get
are only bash scripts (plus documentation) that are not architecture dependant.

E.g. the RPM from
http://download.opensuse.org/repositories/Archiving:/Backup:/Rear/SLE_12_SP1/x86_64/

Note that this RPM is built for SLE12 while in contrast yours is built
for "latest greatest newest best" openSUSE Factory.

gdha commented at 2021-02-12 16:47:

@viper1986 when you git clone the ReaR sources you can try to make rpm and see if that works fine... Perhaps OBS has a rpm requirement it cannot fulfill? If that is the case then the problem is with OBS, but wait and see if you can build a rpm yourself.

viper1986 commented at 2021-02-15 10:34:

@jsmeix
I try install x64 package but with no luck:
susenew:/home/pl12533 # rpm -ivh --nodeps rear-2.6-1.x86_64.rpm
Preparing... ################################# [100%]
package rear-2.6-1.x86_64 is intended for a different architecture

@gdha
I do not have internet access on this server.

viper1986 commented at 2021-02-15 12:04:

I just make my own RPM package on similar system and try to install on my target machine.
Installation is working.

jsmeix commented at 2021-02-22 10:16:

@gdha
the actual issue as far as I see is that ReaR for SLES12 is not built for PPC64LE
so @viper1986 used ReaR from openSUSE Factory where it is built for PPC64LE
but the RPM built for openSUSE Factory uses a newer compression method
that his rpm program on SLES12 does not support so unpacking the RPM
that was built for rpm in openSUSE Factory fails with rpm on SLES12.
Therefore as far as I see the solution is to build ReaR for SLES12 also for PPC64LE
so that the built RPM can be unpackaged with the rpm program on SLES12.

gdha commented at 2021-02-22 11:27:

@jsmeix According http://download.opensuse.org/repositories/Archiving:/Backup:/Rear/SLE_12/ppc64le/ it is there for quite a while (don't mind the timestamp). I just enabled PPC64LE on the branch Rear:Snapshot for all SLES12 and higher version too (that was not always the case).

jsmeix commented at 2021-02-22 12:02:

On https://build.opensuse.org/repositories/Archiving:Backup:Rear
I enabled ppc64 and ppc64le for SLES where possible
(i.e. where build succeeds for ppc64 and/or ppc64le)
and now ReaR 2.6. is available for POWER architecture as follows:

# osc results Archiving:Backup:Rear rear-2.6 | grep ppc
openSUSE_Leap_15.2_PowerPC ppc64le    succeeded
openSUSE_Factory_PowerPC ppc64      succeeded
openSUSE_Factory_PowerPC ppc64le    succeeded
SLE_15_SP3           ppc64le    succeeded
SLE_15_SP2           ppc64le    succeeded
SLE_15               ppc64le    succeeded
SLE_12_SP5           ppc64le    succeeded
SLE_12               ppc64le    succeeded
SLE_11_SP4           ppc64      succeeded
PowerKVM_3.1         ppc64le    succeeded
Fedora_33            ppc64le    succeeded

@viper1986
the built RPMs for SLES12 PPC64LE are now available at
http://download.opensuse.org/repositories/Archiving:/Backup:/Rear/SLE_12/ppc64le/
and
http://download.opensuse.org/repositories/Archiving:/Backup:/Rear/SLE_12_SP5/ppc64le/

jsmeix commented at 2021-02-22 12:13:

@gdha
by the way I simplified / cleaned up the openSUSE and SLE Repositories at
https://build.opensuse.org/repositories/Archiving:Backup:Rear
e.g. I kept only oldest SLE12 and newest SLE12-SP5
and removed the other SLE12 service packs in between.
In the end all rear RPMs should install the same files
so all those different kind of RPMs are mostly "cosmetic"
except serious exceptions that e.g. some newer RPMs
cannot be installed on older systems like this issue here.


[Export of Github issue for rear/rear.]