Skip site navigation (1) Skip section navigation (2)

RPM build on SuSE 9.0 Professional

From: John Griffiths <postgrebugs(at)grifent(dot)com>
To: pgsql-ports(at)postgresql(dot)org
Subject: RPM build on SuSE 9.0 Professional
Date: 2004-02-17 00:58:24
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-ports
Platform: SuSE Linux 9.0 Professional

I got an error when trying to include python in the build. Would like a 
solution for it.
Also got an error for trying to include Kerberos. I did not have the 
actual kerberos RPMs installed. I do have the Heimdal  installed.

Got a dependency problem when installing the RPMs that were build. It 
failed on "initscripts" which the package postgresql-7.4.1-1PGDG wants 
for ldconfig. I chose to do a --nodeps installation and postgesql seems 
to work just fine. Would like a solution here, please.

Trying to install the build postgresql-devel RPM failed with:
file /usr/include/libpgtcl.h from install of 
postgresql-devel-7.4.1-1PGDG conflicts with file from package PgTcl-1.4-162

I also included some configuration and script changes I made in order to 
get PostgreSQL 7.4.1 RPMs to build and PostgreSQL 7.4.1 to run.

During build of PostgreSQL 7.4.1 on SuSE 9.0 Professional, I got:

checking for python... /usr/bin/python
checking Python installation directories... /usr/lib/
checking how to link an embedded Python application... no
configure: error: Python Makefile not found
error: Bad exit status from /var/tmp/rpm-tmp.64666 (%build)

But rpm -q python reports
and rpm -q python-devel
and this exists in /usr/lib/
rwxrwxrwx    1 root     root            9 Feb 12 00:16 python -> python2.3
drwxr-xr-x   16 root     root        17680 Feb 15 22:11 python2.3

I even created /usr/lib/ by doing a
zip -r python2.3
but still got the same build error.

Changed build to:
rpmbuild --rebuild postgresql-7.4.1-1PGDG.src.rpm --define 'kerberos 0' 
--define 'python 0'
and got:
    File not found: 

This is due to SuSE 9.0 not having a /etc/rc.d/init.d directory. SuSE 
uses /etc/init.d as the boot directory. SuSE does have an /etc/rc.d 
directory, but I it is a symbolic link to /etc/init.d. I solved this 
error by adding a symbolic link in /etc/rc.d for init.d->/etc/init.d

I have reported this to SuSE, but thought I should mention it here too.

Had to modify the postgres init script for use in SuSE.

SuSE does not have an /etc/rc.d/init.d/functions file. SuSE uses 
/etc/rc.status to report status stuff. That means that the command 
success, failure, echo_success, and echo_failure do not exist. I 
commented out


and added the following from the SuSE supplied init script for 7.3.4.

# Shell functions sourced from /etc/rc.status:
#      rc_check         check and set local and overall rc status
#      rc_status        check and set local and overall rc status
#      rc_status -v     ditto but be verbose in local rc status
#      rc_status -v -r  ditto and clear the local rc status
#      rc_failed        set local and overall rc status to failed
#      rc_reset         clear local rc status (overall remains)
#      rc_exit          exit appropriate to overall rc status

Since a variable, H, is used by the SuSE supplied init script in the 
check for status (see following), I added:

test -x $H || exit 5

from the SuSE script. I know I could have just used /usr/bin/postmaster 
in the status command, but I wanted to preserve the original structure 
of the SuSE status command.

Replacing success, failure, echo_success, and echo_failure with 
rc_status -v works just fine.

There is no status command so

status postmaster

does not work. Replaced that line with:

        echo -n "Checking for PostgreSQL: "
        ## Check status with checkproc(8), if process is running
        ## checkproc will return with exit status 0.

        # Status has a slightly different for the status command:
        # 0 - service running
        # 1 - service dead, but /var/run/  pid  file exists
        # 2 - service dead, but /var/lock/ lock file exists
        # 3 - service not running

        # NOTE: checkproc returns LSB compliant status values.
        checkproc $H
        rc_status -v

/etc/sysconfig/network is not a file but a directory. I really did not 
know what to do here so I just commented out the sourcing of the file 
and it seems to work fine.

SuSE symbolic links /usr/sbin/rcpostgres to their supplied init script, 
so I made that symbolic link as well.

pgsql-ports by date

Next:From: SODate: 2004-02-17 05:33:25
Subject: rpm for postgresql
Previous:From: bknightDate: 2004-02-16 00:28:59
Subject: BCC32.mak will not complile

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group