cross-compiling rpm -- runtime issues

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

 



All,

I have built rpm 4.1 for arm-linux, to run on arm-linux. But it doesn't work. :( What am I doing wrong?

Oh, you want more detail? ;)

So far, I have rpm 4.1 built to run on x86, but create packages for armv4l.
Using that, I built rpm 4.1 to run on armv4l and use packages for armv4l.

I can then use the x86->armv4l rpm 4.1 to convert all my rpms to cpios, transfer them to the target, create a directory, cpio --extract all of those, then chroot into that directory.

In that chroot, I am now able to do an
rpm --initdb
and
rpm -qa
(which shows no output, as expected).

But, problem #1:
rpm --install complains that the packages are "intended for a armv4l architecture"
And
# rpm --eval='%{_arch}'
i386
I was expecting it to give 'armv4l' or similar instead. Ok, so I use --ignorearch to get around that for now, and rpm will install the packages successfully. The files are installed as expected.


But, problem #2:
# rpm -qa
Still shows nothing.
So,
# rm -f /var/lib/rpm/*
# rpm --initdb
# echo $?
0
# ls /var/lib/rpm
Packages __db.001 __db.002 __db.003
# rpm --install --nodeps --ignorearch gzip*.rpm
# ls /var/lib/rpm
Basenames Group Packages Requirename Sigmd5 __db.002
Dirnames Installtid Providename Requireversion Triggername __db.003
Filemd5s Name Provideversion Sha1header __db.001
# rpm -qa
Shows nothing, but /var/lib/rpm/Packages has been updated and shows some indication that gzip was added.[1]
# rpm -qa -vv
D: opening db environment /var/lib/rpm/Packages joinenv
D: opening db index /var/lib/rpm/Packages rdonly mode=0x0
D: locked db index /var/lib/rpm/Packages
D: closed db index /var/lib/rpm/Packages
D: closed db environment /var/lib/rpm/Packages


I'm using glibc 2.3.1, a 2.5 kernel in case that matters.

An strace of 'rpm -qa -vv' gives a few hundred lines of output, but I noticed that it seems to do a lot of:

fcntl64(3, F_SETLKW64, {type=F_WRLCK, whence=SEEK_SET, start=8020, len=1}, 0xbeffe81c) = 0
getpid() = 28530
fcntl64(3, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=8020, len=1}, 0xbeffe81c) = 0


Where fd 3 is:
open("/var/lib/rpm/__db.001", O_RDWR|O_LARGEFILE) = 3
Probably irrellavent, but it looked odd to me.

I'd appreciate any hints as to what I should look into here.....

TIA,

Eli

[1] I used python and did (basically) this:
for d in open('Packages').read().split('\0'):
 if len(d):
  print repr(d)
to get a basic idea of the file's contents.
--------------------. "If it ain't broke now,
Eli Carter           \                  it will be soon." -- crypto-gram
eli.carter(a)inet.com `-------------------------------------------------




------------------------------------------------------------------------ Confidentiality Notice: This e-mail transmission may contain confidential and/or privileged information that is intended only for the individual or entity named in the e-mail address. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or reliance upon the contents of this e-mail message is strictly prohibited. If you have received this e-mail transmission in error, please reply to the sender, so that proper delivery can be arranged, and please delete the message from your computer. Thank you. Inet Technologies, Inc. ------------------------------------------------------------------------


[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