RPM Community Forums

Mailing List Message of <rpm-users>

RE: Attempting to compile rpm5 for RH Linux EL5

From: Saravanan Shanmugham (sarvi) <sarvi@cisco.com>
Date: Fri 18 Sep 2009 - 02:44:38 CEST
Message-ID: <C6A1C20DB743364EB446E923B2229FEF097C281A@xmb-sjc-229.amer.cisco.com>
I pulled xar 1.5.2 from the RPM5, applied the xar 1.5.2.patch.
And tried compiling it.
/usr/bin/ranlib lib/libxar.a 
sed -e s/@LIBXAR_SNAME@/libxar.a/ -e s/@LIBXAR_LNAME@/libxar.a.1/ -e
s/@LIBXAR_ANAME@/libxar.a/ < lib/libxar.la.in > lib/libxar.la
gcc -Wall -g  -Iinclude -Iinclude -D_GNU_SOURCE -I/usr/include/libxml2
-c src/xar.c -o src/xar.o
gcc -Wall -g  -o src/xar src/xar.o -Wl,-rpath,/operator/xar-1.5.2/lib
-Llib  lib/libxar.a -lbz2 -lz -lcrypto -lacl  -L/usr/lib -lxml2 -lz
-lpthread -lm
lib/libxar.a(archive.static.o)(.text+0x2c5d): In function
`xar_unserialize':
lib/archive.c:1346: undefined reference to `xmlDictCleanup'
lib/libxar.a(archive.static.o)(.text+0x2cd4):lib/archive.c:1363:
undefined reference to `xmlDictCleanup'
lib/libxar.a(archive.static.o)(.text+0x2e45):lib/archive.c:1403:
undefined reference to `xmlDictCleanup'
lib/libxar.a(archive.static.o)(.text+0x2e6c):lib/archive.c:1411:
undefined reference to `xmlDictCleanup'
lib/libxar.a(archive.static.o)(.text+0x2e8d):lib/archive.c:1417:
undefined reference to `xmlDictCleanup'
collect2: ld returned 1 exit status
make: *** [src/xar] Error 1
rm src/xar.o
[operator@nova-stuttgart xar-1.5.2]#

Sarvi 

-----Original Message-----
From: rpm-users-owner@rpm5.org [mailto:rpm-users-owner@rpm5.org] On
Behalf Of Saravanan Shanmugham (sarvi)
Sent: Thursday, September 17, 2009 5:12 PM
To: rpm-users@rpm5.org
Subject: RE: Attempting to compile rpm5 for RH Linux EL5

 
I got popt 1.15 from
http://www.sfr-fresh.com/linux/misc/popt-1.15.tar.gz
Compiled and installed it.
Now I get the following error during compilation

o -lm /usr/lib/libmagic.so -lbeecrypt -lz /usr/lib/libpopt.so -lpthread
-lrt -Wl,-rpath -Wl,/usr/local/lib
../lib/.libs/librpm.so: undefined reference to `poptReadConfigFiles'
../lib/.libs/librpm.so: undefined reference to `poptReadFile'
collect2: ld returned 1 exit status
make[3]: *** [rpm2cpio] Error 1
make[3]: Leaving directory `/operator/rpm-5.1.9/tools'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/operator/rpm-5.1.9/tools'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/operator/rpm-5.1.9'
make: *** [all] Error 2


Is there a list of components/versions and where to get them, I need so
that I can install them and make sure compile install goes fine? I
notice that all the components like popt, xar all have copies in the
RPM5 CVS. Is this where we should pulling stuff from?

Also I am trying to compile RPM5 with XAR support. Additionally I want
the RPM tooling to be compiled and installed  at
/my/own-nfs/tooling/dir. I want this central install to be usable by all
the machines on the network, to mostly build RPMS in private workspace
and install those RPMs into private workspace. Installation of RPMs
should not happen to root (/). Is this doable with RPM5?

Sarvi


-----Original Message-----
From: rpm-users-owner@rpm5.org [mailto:rpm-users-owner@rpm5.org] On
Behalf Of Jeff Johnson
Sent: Thursday, September 17, 2009 11:13 AM
To: rpm-users@rpm5.org
Subject: Re: Attempting to compile rpm5 for RH Linux EL5


On Sep 17, 2009, at 1:50 PM, Saravanan Shanmugham (sarvi) wrote:

> I am trying to compile and install RPM 5.1.9.tar.gz And am running 
> into the following errors. Is there any configure option I should be 
> trying.
> Has this been fixed in a later release?
>
> gcc -DHAVE_CONFIG_H -I. -I..  -I. -I.. -I../build -I../lib -I../lib 
> -I../rpmdb -I../rpmio -I../misc -I../db3 -I../db3 -I../pcre -I../pcre
> -DRPM_OS_LINUX=020609  -g -O2 -D_GNU_SOURCE -D_REENTRANT -MT 
> rpmdigest.o -MD -MP -MF .deps/rpmdigest.Tpo -c -o rpmdigest.o 
> rpmdigest.c
> rpmdigest.c:265: error: optionsTable[1].argInfo')
> rpmdigest.c:267: error: initializer element is not constant
> rpmdigest.c:267: error: (near initialization for POPT_ARG_ARGV'  
> undeclared here (not in a
> function)<BR>rpmdigest.c:265: error: initializer element is not
> constant<BR>rpmdigest.c:265: error: (near initialization for
> optionsTable[1]')<BR>rpmdigest.c:270: error: initializer element is 
> not constant<BR></FONT></DIV> <DIV><FONT face=Arial 
> size=2></FONT>&nbsp;</DIV> <DIV><FONT face=Arial 
> size=2></FONT>&nbsp;</DIV> <DIV><SPAN class=156564317-17092009><FONT 
> face=Arial size=2>Sarvi</FONT></SPAN></DIV></BODY></HTML>


You need popt-1.15 (or you need to patch out POPT_ARG_ARGV, which should
be in slightly older versions of RPM, POPT_ARG_ARGV was added to popt
like a year ago or so).

I'll attach a copy of a rpmdigest.c that has the necessary retrofit,
rpmdigest.c is rather small.

Look for the

	#if !defined(POPT_ARG_ARGV)
	...
	#endif

sections.

Installing popt-1.15 is the preferred solution.

You can also easily live without building rpmdigest.c, nothing in RPM
itself needs rpmdigest, which is mostly included in RPM so that the same
code paths used by RPM internally can also be exercised externally in a
standalone executable.

73 de Jeff

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
User Communication List                             rpm-users@rpm5.org
Received on Fri Sep 18 02:51:58 2009
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.