[bt-devel] Mandrake, kde3, spec's, and rpm's.

Lamar Owen bt-devel@crosswire.org
Mon, 27 May 2002 23:12:11 -0400


On Sunday 26 May 2002 11:15 am, Brook Humphrey wrote:
> So any one that would like to help with the spec files please speak up. I
> know there was at least one other person who worked with the postgres
> people making rpm's that expressed a desire to help.

Yes.  Sorry for the delay.  I have been *swamped* here lately.

First, like I said earlier, I don't want to step on anyone's toes while trying 
to help. :-)  Having said that, I'm interested in seeing what you would like 
for me to work on.

I would like to see more automation in the spec file in terms of picking the 
target distribution.  From what I understand of the process as it currently 
exists, the configure script can write out a spec file tailored to the dist 
upon which configure was run.  This seems at first blush to be a very good 
thing.

And it is a very good thing -- until the day some linux distributor picks up 
Bibletime for their distribution.  I can only speak of Red Hat's build policy 
and techinques, but I'm pretty sure other distros use similar set ups.

Red Hat has a build farm for nothing but rebuilding RPMs.  Those RPM's need to 
be completely rebuildable by using 'rpm --rebuild foo.src.rpm' and nothing 
else.

So, unless someone objects, my goal would be to get intelligence in the spec 
file to fathom what distro we're building on and set the various values 
accordingly.  Things such as %prefix and the OS version.  The Mandrake menus 
and a SuSEConfig script (if needed) should be determined entirely within the 
spec file.  As an RPM packager, I'm used to a simple 'rpm --rebuild' to get 
fresh binary RPMs from whatever package I need -- in fact, I install very 
little from prepackaged binary RPMS -- I almost always --rebuild them myself.  
Bibletime requires me to perform more work to rebuild currently.  I had been 
hand editing the spec file -- I didn't know about the configure trick.  I 
haven't yet had time to try it yet, unfortunately.

Next, I would want to see about the feasibility of dynamic linking sword and 
emitting a Requires: for sword of a particular version.  I haven't dug deep 
enough yet to see the reasons that it is the way it currently is set up -- I 
might very well be full of hot air! :-)  But I know a linux distributor such 
as Red Hat would require this.

RPMs for each SWORD module don't fall under this list, but those would be very 
useful, IMO.

Since you've already split the documentation into a separate tarball, 
subpackaging the docs isn't needed.  

Bibletime is a pretty straightforward package to, uh, _package_.  I'm just 
trying to understand why the spec file is structured the way it is -- as I'm 
sure there is a rational reason why it is the way it is.

Brook, barring automatic configuration of some of those values, I have found 
that conditional defines work well:
%{?!prefix:%define prefix /opt/kde}
does this: 'If prefix is not already defined, then define prefix to be 
/opt/kde'.  What this allows is command line defines:
rpm --define 'prefix /usr' --rebuild bibletime.src.rpm
to rebuild with a different prefix.  This sort of thing is not nearly as 
optimal as automatic configuration, though.

But I'm still interested in the rationale for the existing spec file.

God bless.
-- 
Lamar Owen
WGCR Internet Radio
1 Peter 4:11