Skip to content

Commit ffae350

Browse files
committed
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1: Fix GH-11099: Generating phar.php during cross-compile can't be done
2 parents 45897f5 + 93fa961 commit ffae350

File tree

2 files changed

+34
-14
lines changed

2 files changed

+34
-14
lines changed

NEWS

+4
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ PHP NEWS
4747
- PGSQL:
4848
. Fixed parameter parsing of pg_lo_export(). (kocsismate)
4949

50+
- Phar:
51+
. Fixed bug GH-11099 (Generating phar.php during cross-compile can't be
52+
done). (peter279k)
53+
5054
- Soap:
5155
. Fixed bug GH-8426 (make test fail while soap extension build). (nielsdos)
5256

ext/phar/Makefile.frag

+30-14
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,38 @@ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
2929
-@test -d $(builddir)/phar || mkdir $(builddir)/phar
3030
-@test -f $(builddir)/phar/phar.inc || cp $(srcdir)/phar/phar.inc $(builddir)/phar/phar.inc
3131

32+
33+
TEST_PHP_EXECUTABLE = $(shell $(PHP_EXECUTABLE) -v 2>&1)
34+
TEST_PHP_EXECUTABLE_RES = $(shell echo "$(TEST_PHP_EXECUTABLE)" | grep -c 'Exec format error')
35+
3236
$(builddir)/phar.php: $(srcdir)/build_precommand.php $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH)
33-
-@echo "Generating phar.php"
34-
@$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(srcdir)/build_precommand.php > $(builddir)/phar.php
37+
-@(echo "Generating phar.php"; \
38+
if [ $(TEST_PHP_EXECUTABLE_RES) -ne 1 ]; then \
39+
$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(srcdir)/build_precommand.php > $(builddir)/phar.php; \
40+
else \
41+
echo "Skipping phar.php generating during cross compilation"; \
42+
fi)
3543

3644
$(builddir)/phar.phar: $(builddir)/phar.php $(builddir)/phar/phar.inc $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH)
37-
-@echo "Generating phar.phar"
38-
-@rm -f $(builddir)/phar.phar
39-
-@rm -f $(srcdir)/phar.phar
40-
@$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(builddir)/phar.php pack -f $(builddir)/phar.phar -a pharcommand -c auto -x \\.svn -p 0 -s $(srcdir)/phar/phar.php -h sha1 -b "$(PHP_PHARCMD_BANG)" $(srcdir)/phar/
41-
-@chmod +x $(builddir)/phar.phar
45+
-@(echo "Generating phar.phar"; \
46+
if [ $(TEST_PHP_EXECUTABLE_RES) -ne 1 ]; then \
47+
rm -f $(builddir)/phar.phar; \
48+
rm -f $(srcdir)/phar.phar; \
49+
$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(builddir)/phar.php pack -f $(builddir)/phar.phar -a pharcommand -c auto -x \\.svn -p 0 -s $(srcdir)/phar/phar.php -h sha1 -b "$(PHP_PHARCMD_BANG)" $(srcdir)/phar/; \
50+
chmod +x $(builddir)/phar.phar; \
51+
else \
52+
echo "Skipping phar.phar generating during cross compilation"; \
53+
fi)
4254

4355
install-pharcmd: pharcmd
44-
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
45-
$(INSTALL) $(builddir)/phar.phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix).phar
46-
-@rm -f $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix)
47-
$(LN_S) -f $(program_prefix)phar$(program_suffix).phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix)
48-
@$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1
49-
@$(INSTALL_DATA) $(builddir)/phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).1
50-
@$(INSTALL_DATA) $(builddir)/phar.phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).phar.1
56+
@(if [ $(TEST_PHP_EXECUTABLE_RES) -ne 1 ]; then \
57+
$(mkinstalldirs) $(INSTALL_ROOT)$(bindir); \
58+
$(INSTALL) $(builddir)/phar.phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix).phar; \
59+
rm -f $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix); \
60+
$(LN_S) -f $(program_prefix)phar$(program_suffix).phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix); \
61+
$(mkinstalldirs) $(INSTALL_ROOT)$(mandir)/man1; \
62+
$(INSTALL_DATA) $(builddir)/phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).1; \
63+
$(INSTALL_DATA) $(builddir)/phar.phar.1 $(INSTALL_ROOT)$(mandir)/man1/$(program_prefix)phar$(program_suffix).phar.1; \
64+
else \
65+
echo "Skipping install-pharcmd during cross compilation"; \
66+
fi)

0 commit comments

Comments
 (0)