On Wed, 2006-03-01 at 00:50 -0600, Matt England wrote:
At 3/1/2006 12:40 AM, Paul Howarth wrote:
>On Wed, 2006-03-01 at 00:05 -0600, Matt England wrote:
> > I received the following problems while trying to build
> postgresql-8.1.3 on
> > FedoraCore4. Can anyone provide any feedback or suggestions for help?
>
>The rawhide postgres 8.1.3 package builds thread-safe; why not take the
>SRPM and try rebuilding it on FC4?
I take it "rawhide" is he codename for FC4? (I'm ignorant; I'm dealing
with porting my software to a myriad of OSes across the board.)
No, rawhide is the development branch of Fedora, soon to become FC5.
Partly. That's one of the packages (in this case, for the s390
architecture) built from the postgres SRPM.
The source file you need is:
http://download.fedora.redhat.com/pub/fedora/linux/core/development/SRPMS...
And can I confirm via the above docs somewhere that it's built
with the
'./configure --enable-thread-safety' flavor?
Looking at the spec file referenced below, you'll see the following
snippet:
%configure --disable-rpath \
%if %beta
--enable-debug \
--enable-cassert \
%endif
%if %plperl
--with-perl \
%endif
%if %pltcl
--with-tcl \
--with-tclconfig=%{_libdir} \
%endif
%if %python
--with-python \
%endif
%if %ssl
--with-openssl \
%endif
%if %pam
--with-pam \
%endif
%if %kerberos
--with-krb5 \
%endif
%if %nls
--enable-nls \
%endif
%if %pgfts
--enable-thread-safety \
%endif
--sysconfdir=/etc/sysconfig/pgsql \
--datadir=/usr/share/pgsql \
--with-docdir=%{_docdir}
RPM macros are used to specify which optional features are to be used, and these are
defined higher up the spec file:
%{!?tcldevel:%define tcldevel 1}
%{!?jdbc:%define jdbc 1}
%{!?test:%define test 1}
%{!?python:%define python 1}
%{!?pltcl:%define pltcl 1}
%{!?plperl:%define plperl 1}
%{!?tcl:%define tcl 1}
%{!?pls:%define pls 1}
%{!?ssl:%define ssl 1}
%{!?kerberos:%define kerberos 1}
%{!?nls:%define nls 1}
%{!?xml:%define xml 1}
%{!?pam:%define pam 1}
%{!?pgfts:%define pgfts 1}
%{!?runselftest:%define runselftest 1}
So by default, all of these options (including pgfts) are on.
>If you're dead set on building it yourself, you might want to
look at
>the spec file and see how RedHat do it:
>
>http://cvs.fedora.redhat.com/viewcvs/devel/postgresql/postgresql.spec?view=markup
Ok, thanks Paul for these great references. I don't yet know redhat/fedora
spec files/language, but I may learn soon enough if need be. (I suspect
this is the stuff needed to write things like .rpm packages, but I'm not sure.)
The spec file is the "recipe" for building the RPM package.
http://rpm.org/max-rpm-snapshot/ is a good reference.
My main reason for building from source: if my group finds an
integration
problem (or just general bug) when we integrate/embed with postgres, we
like to be able to address the bug in source and rebuild the integratable
portion/library/whatever and deliver it to our customers quickly...and we
don't want to have to wait around when/if said crisis hits and try to poke
around and figure out how to get the source to build when we are rushing to
deliver said fix/patch (even if it's a fix on Postgres' behalf which we
would also push back to Postgres' site).
This sounds like a great reason for learning how to build your own RPM
packages - they're wonderful for shipping pre-built/configured packages
to customers.
Paul.