Reading little endian RPM db files on big endian machine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I was wondering if anyone is aware of any issues regarding
reading/using /var/lib/rpm/*  db files on a big endian machine (e.g.
PPC) that were generated on an ix86 host?   A simple "rpm -qa"  run on
the PPC lists off about 25 packages and then fails with:

memory alloc (260046852 bytes) returned NULL.

which in hex is $F800004. (This happens when it 

I noted that "file" listed the db files as being little endian, and
based on what I'd read, I did a:

/usr/lib/rpm/rpmdb_dump $i.le | /usr/lib/rpm/rpmdb_load $i

after which "file" reports them as being in native endian format;
however the result from "rpm -qa" is identical.

Searching the archives, I found:

https://www.redhat.com/archives/rpm-list/2003-May/msg00227.html

where it says:
----------------------------------------------------
I believe (but have never testsed, Red Hat didn't have any big-endian platforms
in it's current product line for a couple years, go figger) that rpm databases
can be accessed from other arches (again, not through NFS, but possible
through sunrpc).

There are 3 layers of compatibility, 2 are known to be there already:
	a) Berkeley DB is endian neutral.
	b) Package headers are always big-endian
	c) join keys for inverted list indices.

The join keys in c) are 1 or 2 ints that used to be native-endian. I believe
I have the byte swaps in place for the join keys, can/will certainly
get you a fix if you show me a problem that I can reproduce.
----------------------------------------------------

I was wondering if this is something that is known to be
broken/unsupported, or if it should simply work.    I've noted that
other rpm functions seem broke against these LE db files too (e.g.
"rpm -qf /bin/bash" segfaults).

Thanks,
Paul.

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux