Opened 12 years ago
Closed 5 years ago
#37119 closed defect (fixed)
PEAR configured with incorrect php binary
Reported by: | jbarros+macports@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.2 |
Keywords: | Cc: | pixilla (Bradley Giesbrecht), miken32 (Michael Newton), 66Ton99 (Ton Sharp), chrstphrchvz (Christopher Chavez) | |
Port: |
Description
PEAR ports that use PEAR's source code replacement functionality (like pear-PHPUnit) are generating incorrect references to Apple's php binary, rather than the one installed by MacPorts.
For example, in /opt/local/lib/php/pear/bin/phpunit
, the first line is expanded as:
#!/usr/bin/php
when it should be expanded as:
#!/opt/local/bin/php
Install logs are showing the incorrect path is in the PHP_PEAR_PHP_BIN
environment variable during the build:
DEBUG: Executing org.macports.configure (pear-PHPUnit) DEBUG: Environment: CPATH='/opt/local/include' LIBRARY_PATH='/opt/local/lib' HOME='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer' PHP_PEAR_SYSCONF_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer' MACOSX_DEPLOYMENT_TARGET='10.6' PHP_PEAR_INSTALL_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer/pear' CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/.CC_PRINT_OPTIONS' PHP_PEAR_TEST_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer/pear/tests' PHP_PEAR_DATA_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer/pear/data' PHP_PEAR_WWW_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer/pear/www' PHP_PEAR_DOC_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer/pear/docs' PHP_PEAR_CFG_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer/pear/cfg' CC_PRINT_OPTIONS='YES' PHP_PEAR_BIN_DIR='/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/installer/bin' TZ='UTC' PHP_PEAR_PHP_BIN='/usr/bin/php' DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_usr_local_share_ports_php_pear-PHPUnit/pear-PHPUnit/work/PHPUnit-3.7.9/packagesource" && /usr/bin/php /opt/local/lib/php/pear/install-pear-nozlib.phar'
I'm not familiar with MacPorts internals, but I believe the solution may be to change the line in pear-1.0.tcl
from:
default pear.cmd-php {/usr/bin/php}
to:
default pear.cmd-php {${prefix}/bin/php}
Change History (10)
comment:1 follow-up: 2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 follow-up: 3 Changed 12 years ago by pixilla (Bradley Giesbrecht)
Setting pear.cmd-php to /opt/local/bin/php54 in the pear-PHPUnit Portfile did not fix the phpunit shebang.
$ tail -n1 Portfile pear.cmd-php ${prefix}/bin/php54 $ head -n1 /opt/local/lib/php/pear/bin/phpunit #!/usr/bin/php
comment:3 Changed 12 years ago by jbarros+macports@…
Making the change in the Portfile does not fix the problem for me either; however, making it in pear-1.0.tcl
does. Perhaps the Portfile change isn't early enough in the install process.
comment:5 follow-up: 6 Changed 11 years ago by miken32 (Michael Newton)
It should actually be using #!/usr/bin/env php
I think.
comment:6 Changed 11 years ago by larryv (Lawrence Velázquez)
Replying to miken32@…:
It should actually be using
#!/usr/bin/env php
I think.
That would use whichever PHP happens to come first in $PATH, which is not what we want. We want to ensure that MacPorts’ PHP is being used.
comment:8 Changed 8 years ago by miken32 (Michael Newton)
This is still a problem. Just installed pear-PhpDocumentor and am seeing the same behaviour with the wrong shebang included on /opt/local/lib/php/pear/bin/phpdoc
comment:9 Changed 6 years ago by chrstphrchvz (Christopher Chavez)
Cc: | chrstphrchvz added |
---|
comment:10 Changed 5 years ago by pmetzger (Perry E. Metzger)
Resolution: | → fixed |
---|---|
Status: | new → closed |
FYI /opt/local/bin/php as installed by the php5 port is old and is going away. The new php are /opt/local/bin/php53, /opt/local/bin/php54, /opt/local/bin/php55 as installed by their respective ports.