Thanks for the detailed explanation.
So, here after I satisfied all the prerequisites, when compiling the RPM source, I encounter the following compilation errors:

In file included from dbconfig.c:14:
./rpmdb.h:433: error: expected specifier-qualifier-list before 'DB_SEQUENCE'
./rpmdb.h:490: error: expected specifier-qualifier-list before 'DB_LOGC'
./rpmdb.h: In function 'dbiCopen':
./rpmdb.h:589: error: 'struct _dbiIndex' has no member named 'dbi_vec'
./rpmdb.h: In function 'dbiCclose':
.....
.....

what do you think that is?!


On Mon, 08 Aug 2011 15:36:34 -0400, Jeff Johnson <n3...@mac.com> wrote:


On Aug 8, 2011, at 1:19 PM, Belal Salem wrote:

Actually, what I'm trying to do is the following, may be you have an advice for me: I'm running RHEL-5, I found it the most stable and secure Distro that runs smoothly almost all the high-end simulation and 3D applications that I'm using intensively, the problem is that there are dozens of simple but important applications/utilities that requires higher versions of glibc and python, those that where supplied as rpm packages that requires newer versions of the RPM to be installed!

Yes, you aren't alone here either: most "enterprise" distros have such a ;one
"supported" life that they become irrelevant.

I'm not sure that ether's any "enterprise" distro with a solid upgrade path. Dag's repository is likeliest best both reputation ally and in in "reality".
Check there first imho.

So, I decided to build a custom system installation that satisfies all my needs. I manually forced upgrade glibc with a version that gives 2.6 and 2.7 without breaking the system dependencies, and I compiled python-2.7.2, and now my system runs really great! and I can run those new applications smoothly.


Upgrading REHL5 to python-2.7.2 is non-trivial: congratulations on success.

The only one thing that I'm suffering from is that I have to manually extract and install them since they require higher signature of fileDegist, payload and rpm compressing... for that I decided to upgrade to RPM-5 to be able to install them regularly using the RPM Packager.


Yes: distros have chosen to use SHA-256 file digests without bothering
to release a compatible version of rpm.

There is a way to disable file digests using --nofdigests (I've forgotten the older option, it has been 6 years or so: --nomd5sums? something like that).

Sadly that *still* isn't enough because of the XZ! XZ! XZ! craziness. So there's
often nothing one can do except extract the payload
        rpm2cpio.sh foo*.rpm | cpio -dim
(there's a shell script that permits inserting a unxz where needed).

There are back ports of XZ and SHA256 file digests to whatever RPM is
in RHEL5 if needed: I can dig out the necessary patches if GOOG
cannot find something that Just Works.

Any advices about that! are there an easy way to let the RPM source compile both of the i686 and x86_64 bit.


All depends on what is considered "easy".

FYI: rpm-4.4.7 (on which @rpm5.org is based) treats arch simply as a string. SO
it's entirely feasible to do
        rpmbuild -ba --target=hotmommacpu foo.spec
and end up producing binary
        foo*.hotmammacpu.rpm
Whether that is useful or not is a far more complex answer: but RPM won't stop you
from attempting.

For RHEL5, its likely easiest to add (and change)
        /etc/rpm/platform
which contains in 1-line the usual config.guess string like
        x86_64-unknown-linux

There are ways to invoke with a setarch(1) prefix like
        setarch x86_64 rpmbuild -ba yadda.spec
but I find that rather more annoying than easy: usually I'm building
a set of packages, and editing /etc/rpm/platform is persistent (and easy)
even if I usually forget to check the setting when building.

What I'm confused about, is that the RPM has many dependencies, and I don't know which one of them should be compiled for both i686 and x86_64 and which needs to only compile for x86_64.


All ELF dependencies have a "color" and are attached to file(s) (if the functionality is not disabled). So color is 0 == "white", 1 == elf32, and 2 == elf64 and you can see the dependencies by doing
        rpm -qp --filerequire *.rpm
to see which dependencies are associated with each file.

There is a --fileprovide as well, and you can also see what rpm is going'
to do by typing, say,
        find /bin | /usr/lib/rpm/rpmdeps --requires
or even
        echo "/bin/sh" | …
(there's a --provides analogue to --requires too).

Other arch-specific dependencies are usually dictated by Packaging Policy Police somewhere.

Note that RHEL5 is particularly strangely painful in the way it handles ix86 <-> x86_64 "multilib".

hth

73 de Jeff

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
User Communication List                             rpm-users@rpm5.org



--
Using Opera's revolutionary email client: http://www.opera.com/mail/
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
User Communication List                             rpm-users@rpm5.org

Reply via email to