pg.ddx.io pgsql-interfaces@postgresql.org mailing list archive
help / color / mirror / Atom feedperl install problem with pg7.1
3+ messages / 3 participants
[nested] [flat]
* perl install problem with pg7.1
@ 2001-04-16 19:05 Achim Gottinger <AGottinger@t-online.de>
2001-04-17 15:58 ` Re: perl install problem with pg7.1 Peter Eisentraut <peter_e@gmx.net>
2001-04-17 16:10 ` Re: perl install problem with pg7.1 Lamar Owen <lamar.owen@wgcr.org>
0 siblings, 2 replies; 3+ messages in thread
From: AGottinger@t-online.de @ 2001-04-16 19:05 UTC (permalink / raw)
To: pgsql-interfaces
Hi devs,
If I try to install postgress7.1 in a temporary directory using $DESTDIR
it fails with the
following message:
*****
* Skipping the installation of the Perl module for lack of permissions.
* To install it, change to the directory
/mnt/cdrom/tmp/portage/postgresql-7.1/work/postgresql-7.1/src/interfaces/perl5,
* become the appropriate user, and do `make install'.
*****
this also happens if I run
make PREFIX=[mytmpdir] install
(this worked for all other perl modules I made packages from).
Installing directly works (make install), but I must make a package for
postgress so I need to install to a temporary dir.
Here is the output from perl -V:
--------------------------------------------------------------------------
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=linux, osvers=2.4.2-ac13, archname=i686-linux
uname='linux linux.bagwan 2.4.2-ac13 #3 smp sam apr 7 01:08:28 cest
2001 i686 unknown '
config_args='-des -Dprefix=/usr -Dd_dosuid -Dd_semctl_semun -Di_gdbm
-Di_db -Di_ndbm -Duseshrplib -Duselargefiles -Darchname=i686-linux'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
Compiler:
cc='cc', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
optimize='-O2 -mpentiumpro -march=pentiumpro',
cppflags='-fno-strict-aliasing'
ccversion='', gccversion='2.95.3 20010315 (release)',
gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=4, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil
perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
libc=/lib/libc-2.2.2.so, so=so, useshrplib=true, libperl=libperl.so
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic
-Wl,-rpath,/usr/lib/perl5/5.6.1/i686-linux/CORE'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under linux
Compiled at Apr 16 2001 17:23:11
@INC:
/usr/lib/perl5/5.6.1/i686-linux
/usr/lib/perl5/5.6.1
/usr/lib/perl5/site_perl/5.6.1/i686-linux
/usr/lib/perl5/site_perl/5.6.1
/usr/lib/perl5/site_perl/5.6.0/i686-linux
/usr/lib/perl5/site_perl/5.6.0
/usr/lib/perl5/site_perl
---------------------------------------------------------------------------------
I'm using the pgsql_perl5 version included in postgress7.1 and i applied
the readline4.2
patch.
Any suggestions?
bye achim~
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: perl install problem with pg7.1
2001-04-16 19:05 perl install problem with pg7.1 Achim Gottinger <AGottinger@t-online.de>
@ 2001-04-17 15:58 ` Peter Eisentraut <peter_e@gmx.net>
1 sibling, 0 replies; 3+ messages in thread
From: Peter Eisentraut @ 2001-04-17 15:58 UTC (permalink / raw)
To: achim@gentoo.org; +Cc: pgsql-interfaces
Achim Gottinger writes:
> If I try to install postgress7.1 in a temporary directory using $DESTDIR
> it fails with the
> following message:
>
> *****
> * Skipping the installation of the Perl module for lack of permissions.
> * To install it, change to the directory
> /mnt/cdrom/tmp/portage/postgresql-7.1/work/postgresql-7.1/src/interfaces/perl5,
>
> * become the appropriate user, and do `make install'.
> *****
DESTDIR doesn't work in the Perl and Python subtrees yet. Which might be
one of the reasons it's not documented yet. ;-)
--
Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: perl install problem with pg7.1
2001-04-16 19:05 perl install problem with pg7.1 Achim Gottinger <AGottinger@t-online.de>
@ 2001-04-17 16:10 ` Lamar Owen <lamar.owen@wgcr.org>
1 sibling, 0 replies; 3+ messages in thread
From: Lamar Owen @ 2001-04-17 16:10 UTC (permalink / raw)
To: achim@gentoo.org; +Cc: pgsql-interfaces
Achim Gottinger wrote:
> If I try to install postgress7.1 in a temporary directory using $DESTDIR
> it fails with the
> following message:
> *****
> * Skipping the installation of the Perl module for lack of permissions.
> * To install it, change to the directory
> /mnt/cdrom/tmp/portage/postgresql-7.1/work/postgresql-7.1/src/interfaces/perl5,
>
> * become the appropriate user, and do `make install'.
> *****
The perl build doesn't directly support DESTDIR. If you know anything
at all about RPM spec files, see the build procedure in the Source RPM.
But, to make it easy, here's what I have to do in the RPM build:
First, I patch the GNUmakefile in the perl interfaces directory (while
the patch here is against 7.1beta4, it applies cleanly against the
released 7.1):
----------------------
diff -uNr postgresql-7.1beta4.orig/src/interfaces/perl5/GNUmakefile
postgresql-7.1beta4/src/interfaces/perl5/GNUmakefile
--- postgresql-7.1beta4.orig/src/interfaces/perl5/GNUmakefile Thu Nov 16
19:08:57 2000
+++ postgresql-7.1beta4/src/interfaces/perl5/GNUmakefile Mon Jan 29
00:00:31 2001
@@ -36,8 +36,8 @@
install: Makefile
$(MAKE) -f Makefile clean
- POSTGRES_LIB="$(libdir)" \
- POSTGRES_INCLUDE="$(includedir)" \
+ POSTGRES_LIB="$(RPM_BUILD_ROOT)$(libdir)" \
+ POSTGRES_INCLUDE="$(RPM_BUILD_ROOT)$(includedir)" \
$(PERL) $(srcdir)/Makefile.PL
$(MAKE) -f Makefile all
-@if [ -w "`$(MAKE) --quiet -f Makefile echo-installdir`" ]; then \
------------------------
You will need to change the $RPM_BUILD_ROOT to $DESTDIR.
The spec file does the build in three stages. Stage one is a standard
make all after the appropriate configure line -- this builds the
Makefile and runs a compile pass on the client -- it is actually
unnecessary, but the build system does it anyway as part of the main
build.
Stage two is a make DESTDIR=$RPM_BUILD_ROOT install. This builds the Pg
module yet again -- but linked to libpq.so in the right location this
time. But the install stage fails, as you've seen.
Stage three is rather funky, as it bypasses the GNUmakefile (which has
already done all it needs to do), as well as Makefile.PL, which is not
needed at all for the actual install. As stage two's build has built the
right Makefile, but passes the wrong values to it, thus the third
half-stage is needed to finish the install -- which is more than just
putting the right files in the right location. Here's the relevant
section of the spec file that does the build stage three:
-------------------
make PREFIX=$RPM_BUILD_ROOT/usr -C src/interfaces/perl5 -f Makefile
install
# Get rid of the packing list generated by the perl Makefile, and build
my own...
find $RPM_BUILD_ROOT/usr/lib/perl5 -name .packlist -exec rm -f {} \;
find $RPM_BUILD_ROOT/usr/lib/perl5 -type f -print | \
sed -e "s|$RPM_BUILD_ROOT/|/|g" | \
sed -e "s|.*/man/.*|&\*|" > perlfiles.list
find $RPM_BUILD_ROOT/usr/lib/perl5 -type d -name Pg -print | \
sed -e "s|$RPM_BUILD_ROOT/|%dir /|g" >> perlfiles.list
# check and fixup Pg manpage location....
if [ ! -e $RPM_BUILD_ROOT%{_mandir}/man3/Pg.* ]
then
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man3
cp `find $RPM_BUILD_ROOT -name 'Pg.3*' -print`
$RPM_BUILD_ROOT%{_mandir}/man3
fi
pushd src/interfaces
mkdir -p $RPM_BUILD_ROOT/usr/share/pgsql/perl5
cp -a perl5/test.pl $RPM_BUILD_ROOT/usr/share/pgsql/perl5
popd
# remove perllocal.pod and Pg.bs from the file list - only occurs with
5.6
perl -pi -e "s/^.*perllocal.pod$//" perlfiles.list
perl -pi -e "s/^.*Pg.bs$//" perlfiles.list
mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/%{_arch}-linux/auto/Pg
------------------
Whew!
It took quite a bit of time to get that to work right with more than
one version of perl (and the work of more people than just me -- Thomas
Lockhart and Trond Eivind Glomsrød both had big parts of getting it
right), but if someone else can use it, it will make it more
worthwhile. Don't let the %{} rpm macros throw you -- substitute the
appropriate locations for your situation.
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2001-04-17 16:10 UTC | newest]
Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2001-04-16 19:05 perl install problem with pg7.1 Achim Gottinger <AGottinger@t-online.de>
2001-04-17 15:58 ` Peter Eisentraut <peter_e@gmx.net>
2001-04-17 16:10 ` Lamar Owen <lamar.owen@wgcr.org>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox