RPM build on SuSE 9.0 Professional - Mailing list pgsql-ports
From | John Griffiths |
---|---|
Subject | RPM build on SuSE 9.0 Professional |
Date | |
Msg-id | 40316730.7010302@grifent.com Whole thread Raw |
List | 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/python23.zip 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 python-2.3-52 and rpm -q python-devel python-devel-2.3-43 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/python23.zip by doing a zip -r python23.zip 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: /var/tmp/postgresql-7.4.1-root/etc/rc.d/init.d/postgresql 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 $INITD/functions 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 /etc/rc.status Since a variable, H, is used by the SuSE supplied init script in the check for status (see following), I added: H=/usr/bin/postmaster 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: