Bug #63182 [Fbk->Opn]: make install to INSTALL_ROOT fails
| From: | cmb@php.net | Date: | Thu, 09 Aug 2018 16:40:40 +0000 |
| Subject: | Bug #63182 [Fbk->Opn]: make install to INSTALL_ROOT fails | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-216701@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=63182&edit=1
ID: 63182
Updated by: cmb@php.net
Reported by: mamfelt at gmail dot com
Summary: make install to INSTALL_ROOT fails
-Status: Feedback
+Status: Open
Type: Bug
-Package: Testing related
+Package: *Compile Issues
Operating System: AIX
PHP Version: 5.3.X,7.2.X,5.6.X
-Assigned To: cmb
+Assigned To:
Block user comment: N
Private report: N
New Comment:
Okay, thanks!
Previous Comments:
------------------------------------------------------------------------
[2018-08-09 11:59:45] spam2 at rhsoft dot net
@cmb@php.net:
> Any particular reason why you don't configure --prefix
because --prefix is a completly different world
--prefix=/usr
INSTALL_ROOT=/home/builduser/BUILDROOT/php
nobody right in his mind does "make install" directly into the running system
------------------------------------------------------------------------
[2018-08-09 11:54:53] cmb@php.net
Any particular reason why you don't configure --prefix (and
friends; see ./configure --help)?
------------------------------------------------------------------------
[2018-02-15 18:47:14] mamfelt at gmail dot com
still actual in 7.2.X, 5.6.X, etc.
------------------------------------------------------------------------
[2018-02-15 18:44:41] mamfelt at gmail dot com
FYI: the step to correct the refusal to install (when everything else is working) is to not try to
add to httpd.conf (as it does not exist in INSTALL_ROOT).
as such, I manually edit Makefile, $INSTALL_IT and remove the "-a" flags to apxs. Then
"make INSTALL_ROOT=/some/where/to/prep/for/packaging install" works.
------------------------------------------------------------------------
[2018-02-13 22:09:45] aixtools at felt dot demon dot nl
Bother. Your protection - has bungled a difficult post.
So, the short version:
All the files are made: note the stand-alone .so file and the archive member have are "the
same".
root@x065:[/data/prj/php/php-7.2.2]ls -l .libs
total 82216
-rw-r--r-- 1 root felt 21163709 Feb 13 21:15 libphp7.a
-rw-r--r-- 1 root felt 145998 Feb 13 21:15 libphp7.exp
lrwxrwxrwx 1 root felt 13 Feb 13 21:15 libphp7.la -> ../libphp7.la
-rw-r--r-- 1 root felt 1096 Feb 13 21:15 libphp7.lai
-rwxr-xr-x 1 root felt 20768010 Feb 13 21:15 libphp7.so
root@x065:[/data/prj/php/php-7.2.2]ar tv .libs/libphp7.a
rwxr-xr-x 0/1954 20768010 Feb 13 21:15 2018 libphp7.so
On my server (and using xlc) the test here always fails (i.e., != yes)
+99767 if test "$aix_use_runtimelinking" = yes; then
+99768 # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+99769 # instead of lib<name>.a to let people know that these are not
+99770 # typical AIX shared libraries.
+99771 library_names_spec='${libname}${release}${shared_ext}$versuffix
${libname}${release}${shared_ext}$major $libname${shared_ext}'
+99772 else
+99773 # We preserve .a as extension for shared libraries through AIX4.2
+99774 # and later when we are not doing run time linking.
+99775 library_names_spec='${libname}${release}.a $libname.a'
+99776 soname_spec='${libname}${release}${shared_ext}$major'
+99777 fi
And I expect this explains why the .la file always has the following lines:
# libphp7.la - a libtool library file
# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.492 2008/01/30 06:40:56)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# The name that we can dlopen(3).
dlname='libphp7.so'
# Names of this library.
library_names='libphp7.a libphp7.a'
*****
Note: maybe this will go away when you update libtool in the php package:
libtool-2.4.6.tar.xz 2015-02-16 05:16 950K
compared with:
[ ] libtool-1.5.26.tar.gz 2008-02-01 12:12 2.8M
*****
Anyway, for the moment I fix this problem:
rm -f /var/tmp/root/php-5.3.17.0/opt/httpd/libexec/libphp5.so
/var/apr/build-1/libtool --mode=install cp libphp5.la /var/tmp/root/php-5.3.17.0/opt/httpd/libexec/
libtool: install: cp .libs/libphp5.a /var/tmp/root/php-5.3.17.0/opt/httpd/libexec/libphp5.a
libtool: install: cp .libs/libphp5.lai /var/tmp/root/php-5.3.17.0/opt/httpd/libexec/libphp5.la
libtool: install: warning: remember to run `libtool --finish /data/prj/php/php-5.3.17/libs'
chmod 755 /var/tmp/root/php-5.3.17.0/opt/httpd/libexec/libphp5.so
chmod: cannot access `/var/tmp/root/php-5.3.17.0/opt/httpd/libexec/libphp5.so': A file or
directory in the path name does not exist.
apxs:Error: Command failed with rc=65536
with:
+3190 # func_mode_install arg...
+3191 func_mode_install ()
+3192 {
+3193 $opt_debug
+3194 # There may be an optional sh(1) argument at the beginning of
+3195 # install_prog (especially on Windows NT).
...
+3403 # See the names of the shared library.
+3404 set dummy $library_names; shift
+3405 if test -n "$1"; then
+3406 realname="$1"
+3407 shift
+3408
modified to:
+3403 # See the names of the shared library.
+3404 set dummy $dlname $library_names; shift
+3405 if test -n "$1"; then
+3406 realname="$1"
+3407 shift
+3408
In short, this issue has been around for years - and it does not look like it is in apxs or apr -
aka - apache software.
It "feels" like it is some extremely dated configure.in code (developed in 2002-2008?) and
very old version of libtool components.
Hope this helps!!
Michael
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=63182
--
Edit this bug report at https://bugs.php.net/bug.php?id=63182&edit=1