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 <[email protected]> > Reply-To: <[email protected]> > Date: Fri, 17 Jun 2011 19:10:33 -0400 > To: <[email protected]> > 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_locks 16384 > 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 80000 not 8000.
>
> I changed mutex_set_max to 80000 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
> + /bin/rm -rf /var/local/tmp/vrsnconfig-FreeBSD-amd64-root
> + /bin/mkdir -p /var/local/tmp/vrsnconfig-FreeBSD-amd64-root
> + cd vrsnconfig-FreeBSD-amd64-1.0
> + mkdir /var/local/tmp/vrsnconfig-FreeBSD-amd64-root/etc
> + /usr/bin/install -m644 etc/motd
> /var/local/tmp/vrsnconfig-FreeBSD-amd64-root/etc
> + exit 0
> Processing files: vrsnconfig-FreeBSD-amd64-1.0-1.amd64
> error: magic_load(ms, NONE/share/file/magic) failed: could not find any magic
> files!
> Assertion failed: (mg != NULL), function rpmfcClassify, file rpmfc.c, line
> 1154.
You need to specify a path to what used to be called /etc/magic until
FHS decided to rearrange everything and left the path UNSPECIFIED
(and so distros end-up all doing something different).
There's an AutoFu ./configure option to specify what path magic resides on.
From devtool.con %fbsd8x target
--with-path-magic=${PREFIX}/share/file/magic
hth
73 de Jeff
smime.p7s
Description: S/MIME cryptographic signature
