Re: rpm errors upon running

2011-06-25 Thread Anders F Björklund
Miller, Vincent (Rick) wrote:

 I had not loaded berkely-db because I thought I had read somewhere that there 
 was a bundled berkley-db with RPM5.  I have since loaded Berkley-DB 5.1.x 
 from FreeBSD ports and was able to get the compile to move along further.

There used to be a bundled version, but now you use the regular BerkeleyDB. 
You'll need to add the matching flags, like 
CPPFLAGS+=-I${LOCALBASE}/include/db51 and LDFLAGS+=-L${LOCALBASE}/lib/db51

 It failed later when attempting to link against libgomp which is not 
 installed on the system.  I am planning to reconfigure disabling OpenMP, 
 unless it provides a feature we might be able to utilize.  Can you clarify 
 the features OpenMP provides to RPM5?

You can use --disable-openmp, if you don't want OpenMP. The main issue with 
multi-processing is that you'll need to enable it everywhere, if you use it for 
something like BeeCrypt (where it increases performance)

--anders

__
RPM Package Managerhttp://rpm5.org
User Communication List rpm-users@rpm5.org


Re: rpm errors upon running

2011-06-25 Thread Jeff Johnson

On Jun 23, 2011, at 1:04 PM, Miller, Vincent (Rick) wrote:

 I had not loaded berkely-db because I thought I had read somewhere that there 
 was a bundled berkley-db with RPM5.  I have since loaded Berkley-DB 5.1.x 
 from FreeBSD ports and was able to get the compile to move along further.
 

Good.

 It failed later when attempting to link against libgomp which is not 
 installed on the system.  I am planning to reconfigure disabling OpenMP, 
 unless it provides a feature we might be able to utilize.  Can you clarify 
 the features OpenMP provides to RPM5?
 

RPM is headed towards multi-threaded installs.

One way to achieve parallelism would be to use OpenMP.

When looking at feasibility, I parallelized the loop over multiple digests
(not the digest algorithms per se which are nearly impossible to parallelize)
used by RPM and benchmarked rpm digest (which can run 100 digests
in parallel directly off of input/output buffers) and measured a 7x speed-up
on a 4-way.

Since a 7x speedup from a single #pragma is a quite remarkable gain,
I parallelized --verify to see how much gain might be achieved in a
non-artificial real world case. The results there were less impressive
(~1.5x faster from a primitive implementation, since improved to ~2x
back in Jabuary in rpm-5.4.0).

The refactoring cost to use OpenMP #pragma in RPM code would
be considerable, and so likely OpenMP will NOT be used when
RPM becomes multi-threaded.

So the feature provided by using OpenMP in 5.3.1 is that --verify
would run ~1.6x faster on SMP.

I personally wouldn't bother too much with OpenMP on FreeBSD based
on my experiences compiling and using RPM on Mac OS X, where attempting
to use GOMP and GCC is a rather rugged wilderness trek, paddling upstream and 
swatting
lots and lots of mosquitoes while trying to avoid more dangerous fauna.

YMMV of course ;-)

hth

73 de Jeff



Re: rpm errors upon running

2011-06-20 Thread Jeff Johnson

On Jun 20, 2011, at 10:57 AM, Miller, Vincent (Rick) wrote:

 Hi Jeff…thanks for the reply.  See my replies inline.  Also, I have an 
 rpmbuild error at the tail of this message.
 
 
 From: Jeff Johnson n3...@mac.com
 Reply-To: rpm-users@rpm5.org
 Date: Fri, 17 Jun 2011 19:10:33 -0400
 To: rpm-users@rpm5.org
 Subject: Re: rpm errors upon running
 
 
 On Jun 17, 2011, at 1:43 PM, Miller, Vincent (Rick) wrote:
 
 Hi,
 
 I have installed RPM5 on FreeBSD 8.2-RELEASE and am now unable to do 
 anything useful with it due to errors.  I tried searching the mail archives 
 for similar issues, but only found a reference to DB_CONFIG in reference to 
 initializing a the rpm db.  Since this is a brand new install and there were 
 no db files on the host, I figured it might apply.  It mentions mmapsize, 
 which is definitely set, but offered no recommendations into calculating 
 what to set it to.
 
 
 I don't know how you installed, but
 make install
 from a build SHOULD copy a /var/lib/rpm/DB_CONFIG into place.
 
 The DB_CONFIG file is MANDATORY with @rpm5.org.
 
 The DB_CONFIG file was put into place and the truss output shows DB_CONFIG 
 being read.
 
 
 The contents (from the rpm-5_3 production branch) that pertain to locking 
 tunables are
 
 #  Locking
 set_lk_max_locks16384
 set_lk_max_lockers  16384
 set_lk_max_objects  16384
 mutex_set_max   163840
 
 The heuristic (that I use) is that the mutex_set_max should be ~10x larger
 than the other values, which is about the right scaling.
 
 The size of the others depends on how many packages are managed,
 which is an extrinsic quantity that isn't guessable a priori. 16K - 64K are
 about the right range, and conservative. There's likely something else
 wrong if you appear to need 64K.
 
 How did you build rpm? From CVS? rpm-5.4.1 or rpm-5.3.11?
 
 I downloaded a source tarball for 5.3.4 and installed with the commands below 
 after installing various ports  that appeared to be required.  The ports I 
 installed were popt, beecrypt, pcre, gss, and expat.  Some of these ports had 
 their own dependencies  they installed.
 

You likely want to use the latest production rpm-5.3.11 release instead of 
rpm-5.3.4.
The @rpm5.org project does tick,tock monthly releases.

 ./configure —with-expat CPPFLAGS=-I/usr/local/include 
 LDFLAGS=-L/usr/local/lib LIBS=-lgss
 gmake
 gmake install
 
 
 How many packages do you have?
 
 
 I currently do not have any RPM packages.  There are a couple hundred ports 
 installed, but this should have no bearing on RPM.
 

OK. In order to use RPM on FreeBSD as an add-on you will almost certainly
need to supply some dependencies.

There are two ways to do this:

1) capture the usual provides (like /bin/sh) in a virtual package and
install that first.

2) stub-in dependencies as needed. E.g. you will almost certainly have
to provide /bin/sh somehow, which can be done like this
mkdir -p /etc/rpm/sysinfo
echo /bin/sh  /etc/rpm/sysinfo/Providename

You are likely to find that the two rules
1) Every file requires its parent directory
2) Every symlink requires its endpoint.
to be a bit bothersome as well. Stub those out in /etc/rpm/sysinfo
(or what ever path you have chosen) using
echo /usr/bin  /etc/rpm/sysinfo/Dirnames
echo /path/to/endpoint  /etc/rpm/sysinfo/Filelinktos


 
 
 I'll include as much info as I can here, but it'll mean the length of this 
 mail may be substantial.
 
 The error I receive when I attempt to rpm –qa is:
 
 
 snipped but not ignored
 
 
 #  Locking
 set_lk_max_locks  8000
 set_lk_max_lockers  8000
 set_lk_max_objects  8000
 mutex_set_max 8000
 
 
 Try setting mutex_set_max to 8 not 8000.
 
 I changed mutex_set_max to 8 and ran rpm –qa and it did not produce the 
 original error.  Additionally, it appears to have created the __db files in 
 /var/local/lib/rpm/.  This is a good start.
 
 My next test is to attempt to build an RPM.  I am going with a very simple 
 test, initially, which is to create a new /etc/motd.  When I run rpmbuild on 
 the spec file, I get the following error.  Do you have any thoughts on this?
 
 [root@freebsd /usr/local/src/rpm/SPECS]# rpmbuild -bb 
 vrsnconfig-FreeBSD-amd64-1.0.spec 
 Executing(%prep): /bin/sh -e /var/local/tmp/rpm-tmp.447
 + umask 022
 + cd /usr/local/src/rpm/BUILD
 + rm -rf /var/local/tmp/vrsnconfig-FreeBSD-amd64-root
 + cd /usr/local/src/rpm/BUILD
 + rm -rf vrsnconfig-FreeBSD-amd64-1.0
 + /bin/mkdir -p vrsnconfig-FreeBSD-amd64-1.0
 + cd vrsnconfig-FreeBSD-amd64-1.0
 + + /usr/bin/gzip/usr/bin/tar -dc -xvvf 
 /usr/local/src/rpm/SOURCES/vrsnconfig-FreeBSD-amd64-1.0.tar.gz -
 
 x etc/motd
 + STATUS=0
 + [ 0 -ne 0 ]
 + exit 0
 Executing(%build): /bin/sh -e /var/local/tmp/rpm-tmp.447
 + umask 022
 + cd /usr/local/src/rpm/BUILD
 + cd vrsnconfig-FreeBSD-amd64-1.0
 + exit 0
 Executing(%install): /bin/sh -e /var/local/tmp/rpm-tmp.447
 + umask 022
 + cd /usr/local/src/rpm/BUILD

Re: rpm errors upon running

2011-06-20 Thread Miller, Vincent (Rick)
Ok.  Based on your input with regards to the error I am seeing with the 
rpmbuild issues.  I'll need to rebuild RPM5.  So, I was going to download it, 
but there are no source tarballs (just source rpms) for newer versions and I 
cannot download newer sources from CVS due to a firewall.

How do you recommend I download a newer version?

From: Jeff Johnson n3npq@gmail.commailto:n3npq@gmail.com
Reply-To: rpm-users@rpm5.orgmailto:rpm-users@rpm5.org
Date: Mon, 20 Jun 2011 11:50:41 -0400
To: rpm-users@rpm5.orgmailto:rpm-users@rpm5.org
Subject: Re: rpm errors upon running


On Jun 20, 2011, at 10:57 AM, Miller, Vincent (Rick) wrote:

Hi Jeff…thanks for the reply.  See my replies inline.  Also, I have an rpmbuild 
error at the tail of this message.


From: Jeff Johnson n3...@mac.commailto:n3...@mac.com
Reply-To: rpm-users@rpm5.orgmailto:rpm-users@rpm5.org
Date: Fri, 17 Jun 2011 19:10:33 -0400
To: rpm-users@rpm5.orgmailto:rpm-users@rpm5.org
Subject: Re: rpm errors upon running


On Jun 17, 2011, at 1:43 PM, Miller, Vincent (Rick) wrote:

Hi,

I have installed RPM5 on FreeBSD 8.2-RELEASE and am now unable to do anything 
useful with it due to errors.  I tried searching the mail archives for similar 
issues, but only found a reference to DB_CONFIG in reference to initializing a 
the rpm db.  Since this is a brand new install and there were no db files on 
the host, I figured it might apply.  It mentions mmapsize, which is definitely 
set, but offered no recommendations into calculating what to set it to.


I don't know how you installed, but
make install
from a build SHOULD copy a /var/lib/rpm/DB_CONFIG into place.

The DB_CONFIG file is MANDATORY with @rpm5.org.

The DB_CONFIG file was put into place and the truss output shows DB_CONFIG 
being read.


The contents (from the rpm-5_3 production branch) that pertain to locking 
tunables are

#  Locking
set_lk_max_locks16384
set_lk_max_lockers  16384
set_lk_max_objects  16384
mutex_set_max   163840

The heuristic (that I use) is that the mutex_set_max should be ~10x larger
than the other values, which is about the right scaling.

The size of the others depends on how many packages are managed,
which is an extrinsic quantity that isn't guessable a priori. 16K - 64K are
about the right range, and conservative. There's likely something else
wrong if you appear to need 64K.

How did you build rpm? From CVS? rpm-5.4.1 or rpm-5.3.11?

I downloaded a source tarball for 5.3.4 and installed with the commands below 
after installing various ports  that appeared to be required.  The ports I 
installed were popt, beecrypt, pcre, gss, and expat.  Some of these ports had 
their own dependencies they installed.


You likely want to use the latest production rpm-5.3.11 release instead of 
rpm-5.3.4.
The @rpm5.org project does tick,tock monthly releases.

./configure —with-expat CPPFLAGS=-I/usr/local/include 
LDFLAGS=-L/usr/local/lib LIBS=-lgss
gmake
gmake install


How many packages do you have?


I currently do not have any RPM packages.  There are a couple hundred ports 
installed, but this should have no bearing on RPM.


OK. In order to use RPM on FreeBSD as an add-on you will almost certainly
need to supply some dependencies.

There are two ways to do this:

1) capture the usual provides (like /bin/sh) in a virtual package and
install that first.

2) stub-in dependencies as needed. E.g. you will almost certainly have
to provide /bin/sh somehow, which can be done like this
mkdir -p /etc/rpm/sysinfo
echo /bin/sh  /etc/rpm/sysinfo/Providename

You are likely to find that the two rules
1) Every file requires its parent directory
2) Every symlink requires its endpoint.
to be a bit bothersome as well. Stub those out in /etc/rpm/sysinfo
(or what ever path you have chosen) using
echo /usr/bin  /etc/rpm/sysinfo/Dirnames
echo /path/to/endpoint  /etc/rpm/sysinfo/Filelinktos




I'll include as much info as I can here, but it'll mean the length of this mail 
may be substantial.

The error I receive when I attempt to rpm –qa is:


snipped but not ignored


#  Locking
set_lk_max_locks 8000
set_lk_max_lockers 8000
set_lk_max_objects 8000
mutex_set_max 8000


Try setting mutex_set_max to 8 not 8000.

I changed mutex_set_max to 8 and ran rpm –qa and it did not produce the 
original error.  Additionally, it appears to have created the __db files in 
/var/local/lib/rpm/.  This is a good start.

My next test is to attempt to build an RPM.  I am going with a very simple 
test, initially, which is to create a new /etc/motd.  When I run rpmbuild on 
the spec file, I get the following error.  Do you have any thoughts on this?

[root@freebsd /usr/local/src/rpm/SPECS]# rpmbuild -bb 
vrsnconfig-FreeBSD-amd64-1.0.spec
Executing(%prep): /bin/sh -e /var/local/tmp/rpm-tmp.447
+ umask 022
+ cd /usr/local/src/rpm/BUILD
+ rm -rf /var/local/tmp/vrsnconfig-FreeBSD-amd64-root
+ cd /usr/local/src/rpm/BUILD
+ rm -rf vrsnconfig-FreeBSD-amd64-1.0

Re: rpm errors upon running

2011-06-20 Thread Jeff Johnson

On Jun 20, 2011, at 1:48 PM, Miller, Vincent (Rick) wrote:

 Ok.  Based on your input with regards to the error I am seeing with the 
 rpmbuild issues.  I'll need to rebuild RPM5.  So, I was going to download it, 
 but there are no source tarballs (just source rpms) for newer versions and I 
 cannot download newer sources from CVS due to a firewall.
 
 How do you recommend I download a newer version?

Find scripts/rpm2cpio.sh (its also on the web site).

Download the *.src.rpm and run

rpm2cpio.sh rpm-*.src.rpm | cpio -dim

You will end up w 2 tar balls and one spec file jun the current directory.

73 de Jeff



smime.p7s
Description: S/MIME cryptographic signature


Re: rpm errors upon running

2011-06-20 Thread Jeff Johnson
 use in this function)
 ./rpmdb.h:924: error: 'struct rpmdb_s' has no member named '_dbi'
 ./rpmdb.h:925: error: 'DB_ENV' has no member named 'log_cursor'
 ./rpmdb.h:926: error: 'struct rpmdb_s' has no member named 'db_logc'
 ./rpmdb.h: At top level:
 ./rpmdb.h:933: error: expected declaration specifiers or '...' before 'DB_LSN'
 ./rpmdb.h: In function 'rpmlgcGet':
 ./rpmdb.h:935: error: 'DB_LOGC' undeclared (first use in this function)
 ./rpmdb.h:935: error: '_logc' undeclared (first use in this function)
 ./rpmdb.h:935: error: 'struct rpmdb_s' has no member named 'db_logc'
 ./rpmdb.h:936: error: '_lsn' undeclared (first use in this function)
 ./rpmdb.h: In function 'rpmlgcClose':
 ./rpmdb.h:945: error: 'DB_LOGC' undeclared (first use in this function)
 ./rpmdb.h:945: error: '_logc' undeclared (first use in this function)
 ./rpmdb.h:945: error: 'struct rpmdb_s' has no member named 'db_logc'
 ./rpmdb.h:948: error: 'struct rpmdb_s' has no member named 'db_logc'
 ./rpmdb.h: At top level:
 ./rpmdb.h:955: error: expected ';', ',' or ')' before '*' token
 ./rpmdb.h:965: error: expected ';', ',' or ')' before '*' token
 ./rpmdb.h: In function 'rpmlgcPrintf':
 ./rpmdb.h:979: error: 'DB_ENV' has no member named 'log_printf'
 ./rpmdb.h: At top level:
 ./rpmdb.h:986: error: expected declaration specifiers or '...' before 'DB_LSN'
 ./rpmdb.h: In function 'rpmlgcPut':
 ./rpmdb.h:989: error: 'DB_ENV' has no member named 'log_put'
 ./rpmdb.h:989: error: '_lsn' undeclared (first use in this function)
 ./rpmdb.h: In function 'rpmmpfSyncAll':
 ./rpmdb.h:999: error: 'DB_LSN' undeclared (first use in this function)
 ./rpmdb.h:999: error: '_lsn' undeclared (first use in this function)
 ./rpmdb.h:1000: error: 'struct rpmdb_s' has no member named '_dbi'
 ./rpmdb.h:1001: error: 'DB_ENV' has no member named 'memp_sync'
 ./rpmdb.h: In function 'rpmmpfTrickle':
 ./rpmdb.h:1013: error: 'struct rpmdb_s' has no member named '_dbi'
 ./rpmdb.h:1014: error: 'DB_ENV' has no member named 'memp_trickle'
 ./rpmdb.h: In function 'rpmmpfClose':
 ./rpmdb.h:1023: error: 'DB_MPOOLFILE' undeclared (first use in this function)
 ./rpmdb.h:1023: error: 'mpf' undeclared (first use in this function)
 ./rpmdb.h:1023: error: 'struct rpmdb_s' has no member named 'db_mpf'
 ./rpmdb.h:1026: error: 'struct rpmdb_s' has no member named 'db_mpf'
 ./rpmdb.h: In function 'rpmmpfGet':
 ./rpmdb.h:1035: error: 'DB_MPOOLFILE' undeclared (first use in this function)
 ./rpmdb.h:1035: error: 'mpf' undeclared (first use in this function)
 ./rpmdb.h:1035: error: 'struct rpmdb_s' has no member named 'db_mpf'
 ./rpmdb.h: In function 'rpmmpfOpen':
 ./rpmdb.h:1047: error: 'DB_MPOOLFILE' undeclared (first use in this function)
 ./rpmdb.h:1047: error: 'mpf' undeclared (first use in this function)
 ./rpmdb.h:1048: error: 'struct rpmdb_s' has no member named '_dbi'
 ./rpmdb.h:1051: error: 'struct rpmdb_s' has no member named '_dbi'
 ./rpmdb.h:1052: error: 'DB_ENV' has no member named 'memp_fcreate'
 ./rpmdb.h:1058: error: 'struct rpmdb_s' has no member named 'db_mpf'
 ./rpmdb.h: In function 'rpmmpfPut':
 ./rpmdb.h:1069: error: 'DB_MPOOLFILE' undeclared (first use in this function)
 ./rpmdb.h:1069: error: 'mpf' undeclared (first use in this function)
 ./rpmdb.h:1069: error: 'struct rpmdb_s' has no member named 'db_mpf'
 ./rpmdb.h:1070: error: 'DB_PRIORITY_DEFAULT' undeclared (first use in this 
 function)
 ./rpmdb.h:1071: error: 'DB_CACHE_PRIORITY' undeclared (first use in this 
 function)
 ./rpmdb.h:1071: error: expected ')' before '_priority'
 ./rpmdb.h: In function 'rpmmpfSync':
 ./rpmdb.h:1080: error: 'DB_MPOOLFILE' undeclared (first use in this function)
 ./rpmdb.h:1080: error: 'mpf' undeclared (first use in this function)
 ./rpmdb.h:1080: error: 'struct rpmdb_s' has no member named 'db_mpf'
 gmake[4]: *** [librpmdb_la-dbconfig.lo] Error 1
 gmake[4]: Leaving directory `/usr/home/vmiller/rpm-5.3.11/rpmdb'
 gmake[3]: *** [all-recursive] Error 1
 gmake[3]: Leaving directory `/usr/home/vmiller/rpm-5.3.11/rpmdb'
 gmake[2]: *** [all] Error 2
 gmake[2]: Leaving directory `/usr/home/vmiller/rpm-5.3.11/rpmdb'
 gmake[1]: *** [all-recursive] Error 1
 gmake[1]: Leaving directory `/usr/home/vmiller/rpm-5.3.11'
 gmake: *** [all] Error 2
 
 ==
 Vincent (Rick) Miller
 Systems Engineer
 vmil...@verisign.com
 
 t: 703-948-4395
 21345 Ridgetop Cir Dulles, VA 20166
 
 VerisignInc.com   
 
 From: Jeff Johnson n3...@mac.com
 Reply-To: rpm-users@rpm5.org
 Date: Mon, 20 Jun 2011 13:56:34 -0400
 To: rpm-users@rpm5.org
 Subject: Re: rpm errors upon running
 
 
 On Jun 20, 2011, at 1:48 PM, Miller, Vincent (Rick) wrote:
 
 Ok.  Based on your input with regards to the error I am seeing with the 
 rpmbuild issues.  I'll need to rebuild RPM5.  So, I was going to download 
 it, but there are no source tarballs (just source rpms) for newer versions 
 and I cannot download newer sources from CVS due to a firewall.
 
 How do you recommend I download a newer version?
 
 Find scripts/rpm2cpio.sh (its also

Re: rpm errors upon running

2011-06-17 Thread Jeff Johnson

On Jun 17, 2011, at 1:43 PM, Miller, Vincent (Rick) wrote:

 Hi,
 
 I have installed RPM5 on FreeBSD 8.2-RELEASE and am now unable to do anything 
 useful with it due to errors.  I tried searching the mail archives for 
 similar issues, but only found a reference to DB_CONFIG in reference to 
 initializing a the rpm db.  Since this is a brand new install and there were 
 no db files on the host, I figured it might apply.  It mentions mmapsize, 
 which is definitely set, but offered no recommendations into calculating what 
 to set it to.
 

I don't know how you installed, but
make install
from a build SHOULD copy a /var/lib/rpm/DB_CONFIG into place.

The DB_CONFIG file is MANDATORY with @rpm5.org.

The contents (from the rpm-5_3 production branch) that pertain to locking 
tunables are

#  Locking
set_lk_max_locks16384
set_lk_max_lockers  16384
set_lk_max_objects  16384
mutex_set_max   163840

The heuristic (that I use) is that the mutex_set_max should be ~10x larger
than the other values, which is about the right scaling.

The size of the others depends on how many packages are managed,
which is an extrinsic quantity that isn't guessable a priori. 16K - 64K are
about the right range, and conservative. There's likely something else
wrong if you appear to need 64K.

How did you build rpm? From CVS? rpm-5.4.1 or rpm-5.3.11?

How many packages do you have?


 I'll include as much info as I can here, but it'll mean the length of this 
 mail may be substantial.
 
 The error I receive when I attempt to rpm –qa is:
 

snipped but not ignored

 
 #  Locking
 set_lk_max_locks  8000
 set_lk_max_lockers  8000
 set_lk_max_objects  8000
 mutex_set_max 8000
 

Try setting mutex_set_max to 8 not 8000.

 
73 de Jeff

smime.p7s
Description: S/MIME cryptographic signature