Opened 14 years ago

Closed 14 years ago

Last modified 13 years ago

#160 closed defect (wontfix)

prefix not recognized in 1.4.0SVN

Reported by: kneufeld Owned by: mcayland
Priority: low Milestone: PostGIS 1.4.0
Component: postgis Version: 1.4.X
Keywords: Cc:


Steps to reproduce the problem:

# on centos5.3...
svn checkout postgis-svn
cd postgis-svn/
./configure \
   --prefix=/home/kneufeld/opt/postgis/trunk                            \
   --with-pgconfig=/home/kneufeld/opt/pgsql/8.3/bin/pg_config           \
   --with-geosconfig=/home/kneufeld/opt/geos/3.1.0rc2/bin/geos-config   \
make install > output
tail -n7 output | head -n3

What do you see?

/bin/sh /home/kneufeld/opt/pgsql/8.3/lib/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./../spatial_ref_sys.sql '/home/kneufeld/opt/pgsql/8.3/share/contrib'
/bin/sh /home/kneufeld/opt/pgsql/8.3/lib/pgxs/src/makefiles/../../config/install-sh -c -m 644 postgis.sql '/home/kneufeld/opt/pgsql/8.3/share/contrib'
/bin/sh /home/kneufeld/opt/pgsql/8.3/lib/pgxs/src/makefiles/../../config/install-sh -c -m 755 '/home/kneufeld/opt/pgsql/8.3/lib/'

What do you expect to see?

the files installed to /home/kneufeld/opt/postgis/trunk as specified using the —prefix argument

Change History (11)

comment:1 by nicklas, 14 years ago

I think it works as it should at my mingw-installation, building from the trunk

configure --prefix=/c/postgres84 --with-pgconfig=/c/postgres84/bin/pg_config -with-geosconfig=/c/postgres84/bin/geos-config --with-projdir=/c/proj4
/bin/sh.exe c:/POSTGR~3/lib/pgxs/src/MAKEFI~1/../../config/install-sh -c -m 755  postgis-1.4.dll 'c:/POSTGR~3/lib/postgis-1.4.dll'
/bin/sh.exe c:/POSTGR~3/lib/pgxs/src/MAKEFI~1/../../config/install-sh -c -m 644 ./../spatial_ref_sys.sql 'c:/POSTGR~3/share/contrib'
/bin/sh.exe c:/POSTGR~3/lib/pgxs/src/MAKEFI~1/../../config/install-sh -c -m 644 postgis.sql 'c:/POSTGR~3/share/contrib'


comment:2 by kneufeld, 14 years ago

Hi Nicklas, Your —prefix and —with-pgconfig paramaters are pointing to the same location.

My observation, at least on my centos build, is that a the install doesn't go to anyplace *other* than the —with-pgconfig location.

Cheers, Kevin

comment:3 by pramsey, 14 years ago

Owner: changed from pramsey to mcayland

Yes, it looks like this is another side-effect of using pgxs. Similarly, you can't get debug flags in PostGIS unless you turn on debug in your PostgreSQL install.

comment:4 by mcayland, 14 years ago

I'm not convinced that this is necessarily a bug; the new version of configure has NO knowledge of any of the installation paths since this is handled entirely by PGXS, and for a good reason. The location of the sql files in particular has tended to change from version to version.

There may be an argument for extending PGXS so that —prefix specifies a new root directory rather than an a prefix (which is perhaps what Kevin was expecting to see?). But if you're interested in this as a feature, you'd need to chase it up with the PGSQL folks.



comment:5 by pramsey, 14 years ago

Resolution: wontfix
Status: newclosed

this ain't changing for 1.4

comment:6 by rpriedhorsky, 13 years ago

FWIW, this makes PostGIS impossible to install as a non-root user. Thus, we are stuck at 1.3.5 indefinitely and the WONTFIX designation is quite frustrating. What am I to do?

comment:7 by mcayland, 13 years ago

I'm not quite sure I understand what you mean. If you install PostgreSQL from packages, then you need either access to the root or postgres user accounts to be able to copy PostGIS into the PostgreSQL lib/ directory. I guess you could manually change all of the paths if you only have database superuser access, but it seems a bit of a long-winded way of going about the whole process.

Note that PGXS does understands DESTDIR, and so if you want to do an out-of-tree build then you can try and go with:

./configure make DESTDIR=/path/to/somewhere install



comment:8 by rpriedhorsky, 13 years ago

Hi Mark,

Installing 1.3.5 in arbitrary directories works fine. This is what we want to keep doing.

We have PostgreSQL installed using the Ubuntu package manager and are chugging along just fine with GEOS in /export/scratch/reid/geos and PostGIS in /export/scratch/reid/postgis-1.3, modulo a tweak to /etc/ (we are allowed to edit config files but not install software outside our "home" directories).

Will DESTDIR do what we want?

It also violates filesystem organization standards (e.g. FHS) to put self-compiled software under /usr. If we did have root, I'd still want to install under /usr/local, which does not appear to be supported.



comment:9 by kneufeld, 13 years ago

Hi Mark,

You mentioned that PGXS understands DESTDIR and this apparently works: ./configure make DESTDIR=/path/to/somewhere install

If so, is it possible to alter configure so that the first thing it does is take any specified —prefix value and assign it to DESTDIR? Then —prefix would work again as before, no?

— Kevin

comment:10 by mcayland, 13 years ago

Not quite because DESTDIR is used for packaging and still contains the root prefix. Having said that though, I think it should be possible to re-work the new regress test changes in 1.5 to accomodate this… I'll take a look when I get a moment.

comment:11 by rpriedhorsky, 13 years ago

Version: 1.4.X

Mark, DESTDIR only sort of works. I tried (with 1.4.1):

$ PATH=/usr/lib/postgresql/8.2/bin:/export/scratch/reid/geos/bin:$PATH ./configure —prefix=/export/scratch/reid/postgis-1.4/ —with-geos=/export/scratch/reid/geos/bin/geos-config —with-pgsql=/usr/lib/postgresql/8.2/bin/pg_config DESTDIR=/export/scratch/reid/postgis-1.4

$ make DESTDIR=/export/scratch/reid/postgis-1.4

$ make install DESTDIR=/export/scratch/reid/postgis-1.4

The install indeed writes to /export/scratch/reid/postgis-1.4, but it then also includes a bunch of unwanted additional directories below that. I haven't yet tested it, but I assume I can clean up the junk with some additional scripting.

Is the situation any different in 1.5? I didn't see anything in the release notes.

Can you please reopen this bug and boost the priority? This is non-standard configure behavior, and a regression.

Note: See TracTickets for help on using tickets.