[GRASSLIST:6249] Re: Fedora RPMs - success!

Glynn Clements glynn at gclements.plus.com
Thu Mar 24 14:58:35 EST 2005


Craig Aumann wrote:

> I successfully created some Fedora RPMS yesterday.  Although I need to
> do some more testing of the RPMS, one question I have is how to deal
> with the databases.  The configuration part of the SUSE RPM spec file
> was called without allowing databases. I.e.
> 
> #    --with-mysql \
> #    --with-mysql-includes=/usr/include/mysql/ \
> #    --with-mysql-libs=/usr/lib/mysql \
> #    --with-odbc  --with-odbc-libs=/usr/lib/
>  #  --with-odbc-includes=/usr/include/
> #    --with-postgres --with-postgres-includes=/usr/include/pgsql
> #  --with-postgres-libs=/usr/lib/ \
> 
> are all commented out. 
> 
> Should I then build two different RPM versions, one with the databases,
> one without?  As a user who uses Postgresql all the time, I would hate
> it if I as an enduser had to download the source RPM and recompile it
> just to use postgresql.  Alternatively, I certainly understand not
> wanting an enduser to have to install all these extra database packages
> just to try out GRASS.  
> 
> What's the best thing to do here?

For 6.x, build with support for all of the databases, but don't list
them as RPM dependencies.

The binding between the vector libraries and specific databases is
dynamic. The vector libraries link against the database client
library, the client library communicates with a specific database
driver (which is a separate program) via pipes, the driver links
against the specific database libraries.

The only programs which will fail to execute if the relevant
PostgreSQL/MySQL/etc shared libraries aren't present are the
corresponding database drivers. So, everything will work so long as
you don't try to create or access databases for which the
corresponding package isn't installed.

Optionally, put the individual drivers ($GISBASE/driver/db/*) into
their own RPMs, each of which would have the corresponding database
package as a dependency. That would ensure that the dependency
information was recorded, e.g. for "rpm --whatrequires ...".

The dbf driver doesn't have external dependencies, so it can go into
the main GRASS RPM.

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-user mailing list