Opened 7 years ago
Closed 7 years ago
#3916 closed defect (fixed)
Make install no longer works under mingw64
Reported by: | robe | Owned by: | strk |
---|---|---|---|
Priority: | blocker | Milestone: | PostGIS 2.2.7 |
Component: | QA/buildbots | Version: | 2.4.x |
Keywords: | Cc: |
Description
This might be my fault but hard to say since I upgraded winnie's jenkins and walked away. It's been failing for 2 weeks now.
With this error on 2.5.
---- Making install in liblwgeom make[1]: Entering directory '/projects/postgis/branches/2.5/liblwgeom' /bin/sh ../libtool --mode=install ../ liblwgeom.la "/usr/local/lib/liblwgeom.la" libtool: install: ../ .libs/liblwgeom.lai /usr/local/lib/liblwgeom.la ../libtool: line 1733: ../: Is a directory Makefile:166: recipe for target 'install-liblwgeom' failed make[1]: *** [install-liblwgeom] Error 126 make[1]: Leaving directory '/projects/postgis/branches/2.5/liblwgeom' GNUmakefile:16: recipe for target 'install' failed make: *** [install] Error 1
Though the error looks very suspicious doesn't seem to have to do with jenkins upgrade.
Change History (25)
comment:1 by , 7 years ago
Milestone: | PostGIS 2.5.0 → PostGIS 2.2.7 |
---|
comment:2 by , 7 years ago
Priority: | medium → blocker |
---|
comment:3 by , 7 years ago
I confirmed it's not just jenkins upgrade, happening to me too on my local builds
make[2]: Leaving directory '/projects/postgis/branches/2.5/doc' make[1]: Leaving directory '/projects/postgis/branches/2.5/doc' for s in liblwgeom libpgcommon postgis regress raster topology loader utils doc extensions; do \ echo "---- Making install in ${s}"; \ make -C ${s} install || exit 1; \ done; ---- Making install in liblwgeom make[1]: Entering directory '/projects/postgis/branches/2.5/liblwgeom' /bin/sh ../libtool --mode=install ../ liblwgeom.la "/usr/local/lib/liblwgeom.la" libtool: install: ../ .libs/liblwgeom.lai /usr/local/lib/liblwgeom.la ../libtool: line 1733: ../: Is a directory Makefile:166: recipe for target 'install-liblwgeom' failed make[1]: *** [install-liblwgeom] Error 126 make[1]: Leaving directory '/projects/postgis/branches/2.5/liblwgeom' GNUmakefile:16: recipe for target 'install' failed make: *** [install] Error 1
comment:4 by , 7 years ago
Owner: | changed from | to
---|
comment:5 by , 7 years ago
Summary: | winnie very unhappy failing on install → Make install no longer works under mingw64 |
---|
comment:6 by , 7 years ago
Okay I think the culprit is this change:
https://trac.osgeo.org/postgis/browser/branches/2.2/liblwgeom/Makefile.in?rev=16031#L23
Index: branches/2.2/liblwgeom/Makefile.in =================================================================== --- a/branches/2.2/liblwgeom/Makefile.in +++ b/branches/2.2/liblwgeom/Makefile.in @@ -21,5 +21,5 @@ includedir = @includedir@ SHELL = @SHELL@ -INSTALL = $(SHELL) ../install-sh +INSTALL = @INSTALL@ LIBTOOL = @LIBTOOL@
My generated Makefile now has
INSTALL = ../
comment:7 by , 7 years ago
Interesting, now we have to figure out who's in charge to set @INSTALL@ … I guess it could be AC_PROG_LIBTOOL, but I'm not sure. What version of autoconf do you have, btw ? Does upgrading that changes anything ?
comment:13 by , 7 years ago
better but still not working completely. I thought it was fixed but then realized it doesn't work if I don't have a
/usr/local/lib folder. I get this error:
/bin/sh ../libtool --mode=install /bin/install -c liblwgeom.la "/usr/local/lib/liblwgeom.la" libtool: install: /bin/install -c .libs/liblwgeom.lai /usr/local/lib/liblwgeom.la /bin/install: cannot create regular file '/usr/local/lib/liblwgeom.la': No such file or directory Makefile:166: recipe for target 'install-liblwgeom' failed make[1]: *** [install-liblwgeom] Error 1 make[1]: Leaving directory '/projects/postgis/branches/2.5/liblwgeom' GNUmakefile:16: recipe for target 'install' failed make: *** [install] Error 1
My generated makefile now has
INSTALL = /bin/install -c
Can we disable installing in system it's so annoying.
comment:14 by , 7 years ago
Just noticed that debbie's also resolves to
INSTALL = /usr/bin/install -c
Anyway to force it to resolve to install-sh instead. Changing back to install-sh correctly creates the annoying /usr/local/ folder which I constantly delete cause its f-ing annoying that I have stuff in that folder I don't want. So even better would be to not install in system at all .
comment:17 by , 7 years ago
install -c
wasn't bad, rather we probably just need to
make sure the target directories exist. I think automake generates
an "installdirs" Makefile target which is made a dependency of
install rules, we could replicate that
comment:18 by , 7 years ago
can we just not install liblwgeom in system at all or at least make it obey —prefix? I'd rather have the option not to install it
comment:19 by , 7 years ago
Our configure should already obey —prefix, or even the more restrictive —includedir, please file a separate ticket if it doesn't
Not installing it would require statically linking shp2pgsql and pgsql2shp, which should probably be a builder's choice to make. We know Debian packagers are much happier with that library being linked dynamically, to be able to provide quick fixes to security issues.
this is happening on all the tests on winnie, I suspect this change
r16031