Commit Graph

398 Commits

Author SHA1 Message Date
Jan Tojnar
d4884bbc9e php.extensions: Remove fixes for abandoned PHP versions 2022-05-10 00:37:55 +02:00
Kim Lindberger
5dc982e272
Merge pull request #170962 from jtojnar/php-ext-fixes
php.extensions: improve correctness and usability
2022-05-09 18:26:21 +02:00
Elis Hirwing
64db84dbb0
Merge pull request #168149 from johanjanssens/master
phpExtensions.openswoole: init at 4.11.1
2022-05-04 15:15:51 +02:00
Johan Janssens
81b77fd384
php74Extensions.openswoole: init at 4.11.1
Request to add openswoole: https://pecl.php.net/package/openswoole

Open Swoole is a fork of [Swoole](https://github.com/johanjanssens/nixpkgs/tree/master/pkgs/development/php-packages/swoole). It is actively maintained by some of the original developers and has growing community.

- https://github.com/openswoole
- https://openswoole.com/
- https://twitter.com/openswoole
2022-05-04 14:29:00 +02:00
Jan Tojnar
9cdbd72004 php.extensions.readline: Actually use readline
Building readline extension would say:

    checking for libedit readline replacement... yes, shared

even when configuring `--without-libedit`. This is because `PHP_ARG_WITH(libedit, …)`, internally calls `PHP_ALWAYS_SHARED`, which in `phpize`-generated `configure.ac` is defined as always forcing the value to shared. This will prevent `PHP_ARG_WITH(readline, …)` from being invoked so `READLINE_DIR` variable will never be defined.

This was not an issue before we split the extension out of php.unwrapped in 282337799b, as `PHP_ALWAYS_SHARED` is empty there.

-----

Additionally, because the build script passed `-L$READLINE_DIR/lib` as a flag to the compiler on PHP < 7.4 (built by the nix-phps repository), this ended up with a FHS-like path being passed to the linker. And once we bumped GCC to 11 in 52f8cf58a4, the linker would fail:

	  gcc -shared  .libs/readline.o .libs/readline_cli.o  -Wl,--rpath -Wl,/lib -L/lib -ledit -lncurses  -Wl,-soname -Wl,readline.so -o .libs/readline.so
	  impure path `/lib' used in link
	  collect2: error: ld returned 1 exit status

This no longer happens with PHP ≥ 7.4, since they switched to getting the linker flags from pkg-config in b537203d20.

----

As a compromise, let’s make the `PHP_ALWAYS_SHARED` function force `shared` status but only for flags that are not disabled. That will allow us to remove the libedit dependency and also the nasty patch for configure script due to `--with-libedit` not being passed (which would be required for PHP < 7.4 to be able to find readline.h from libedit).

Thanks to Pol Dellaiera for both bisections.
2022-05-02 04:30:34 +02:00
Jan Tojnar
03e31c533c php.mkExtension: make source name agnostic
PHP obtained from Git contains files directly in the top-level directory,
which will be placed in Nix store. The generic builder will then copy it
to the /build sandbox as its basename with hash stripped (e.g. source/).
This breaks the assumption of `mkExtension`, which expects that PHP’s
source will be extracted into `php-«version»/` directory, since that
is what the release tarballs contain.

Let’s unset the `sourceRoot`, leaving it to `unpackPhase` to find
the source directory. Then, we will be able go to the extension
directory from there.

We use custom pre-configure phase so that both `postPatch` and
`preConfigure` is available to consumers.
2022-05-02 03:56:12 +02:00
Jan Tojnar
b2ae4d5a0e php.mkExtension: Run installPhase pre/post hooks 2022-05-02 03:55:17 +02:00
Jan Tojnar
497d46b012 php.mkExtension: Format 2022-05-02 03:55:17 +02:00
Anders Kaseorg
6920d8ca42 treewide: Simplify negated uses of versionAtLeast, versionOlder
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-04-25 13:35:24 -07:00
Elis Hirwing
f2fd01f3b6
Merge pull request #162376 from shayne/master
php.extensions.datadog_trace: init at 0.70.0
2022-04-08 11:10:36 +02:00
Pol Dellaiera
a6aceda140
php.packages.phive: init at 0.15.0 2022-03-13 16:37:37 +01:00
shayne
72c95f2878
php.extensions.datadog_trace: init at 0.70.0 2022-03-01 11:40:47 -05:00
Pol Dellaiera
ff2d50e1dd
php.packages.grumphp: init at 1.8.1 2022-03-01 08:07:12 +01:00
Pol Dellaiera
cdfd5b47fc
php.packages.phing: init at 2.17.1 2022-02-24 21:08:05 +01:00
Pol Dellaiera
96983152e7
php81: 8.1.2 -> 8.1.3 2022-02-20 11:07:32 +01:00
Pol Dellaiera
b94195fc84
phpExtensions.ds: init at 1.4.0 2022-01-26 22:16:26 +01:00
Pol Dellaiera
6794a2c3f6
php81: 8.1.1 -> 8.1.2 2022-01-23 18:23:57 +01:00
Elis Hirwing
e3a7c62565
Merge pull request #147411 from drupol/php/php-8.1.0
php: Init at 8.1.1
2021-12-21 12:33:07 +01:00
Stéphan Kochen
2dbf96e7cc
php81Extensions.tokenizer: fix build
(cherry picked from commit cf7f4c058e822ee8eeaa2120c45f04b5b460a5db)
2021-12-21 10:13:10 +01:00
ajs124
4e9870ffa2
php80Extensions.xmlreader: fix build
(cherry picked from commit cede244af9)
2021-12-20 15:51:00 +01:00
Konrad Borowski
0af523ae77 phpExtensions: skip performance sensitive tests 2021-12-15 20:55:31 +01:00
ajs124
cede244af9 php80Extensions.xmlreader: fix build 2021-11-25 18:18:21 +01:00
taikx4
9571ac967f
phpExtensions.gnupg: init at 1.5.0 2021-11-23 20:06:39 +01:00
Eduard Bopp
637be68d8f phpExtensions.amqp: init at 1.11.0beta 2021-10-08 18:10:44 +02:00
ajs124
4c424870e6 phpPackages.dom: drop patch
does not apply to to 7.4.21 and 8.0.8 anymore
2021-07-01 14:07:39 +02:00
Aaron Andersen
485d0fc973 php: expose mkExtension 2021-06-29 07:38:12 -04:00
Elis Hirwing
94d07b7492
php: Run nixpkgs-fmt on all php related files 2021-06-26 20:07:56 +02:00
Zhaofeng Li
1f007dd009 Use lib.meta.availableOn for optional Valgrind dependency 2021-06-12 23:17:13 -07:00
Elis Hirwing
fb644190a0
php: Drop package composer1
Composer2 has been stable for some time now.
2021-06-04 09:27:04 +02:00
Elis Hirwing
be7451bc14
php: Drop extensions (pcs, v8, v8js, zmq, pthreads)
They have been marked as broken for a long time so they shouldn't be
used by anyone really.

They don't build in any of the supported versions.
2021-06-04 09:26:57 +02:00
Elis Hirwing
68eb5305ac
php: Drop PHP 7.3 support
PHP 7.3 won't be supported by upstream for the entire life cycle of
the 21.11 release.

Also drop the pcre' alias since it isn't needed anymore since we don't
need different pcre versions anymore.
2021-06-04 09:26:54 +02:00
Sandro
bc64755cfa
Merge pull request #124603 from mjsir911/msirabella/peclCheck
php.buildPecl: Add checkPhase
2021-06-01 16:34:42 +02:00
Sandro
3850fdb330
Merge pull request #120699 from NorfairKing/package-php-snuffleupagus
php.extensions.snuffleupagus: init at 0.7.0
2021-06-01 15:47:53 +02:00
Tom Sydney Kerckhove
52248df095 php.extensions.snuffleupagus: init at 0.7.0 2021-05-31 16:15:02 +02:00
Marco Sirabella
3a66432f26
php.buildPecl: Add checkPhase
Also update phpPackages' to use NO_INTERACTION
2021-05-27 12:19:14 -04:00
Maximilian Bosch
53951c0c14
phpExtensions.dom: fix build
ZHF #122042
2021-05-23 21:26:27 +02:00
Jan Tojnar
024243bac4
php74.extensions.iconv: fix error signalling
The configure script checks whether iconv supports errno. Unfortunately, on PHP < 8, the test program includes $PHP_ICONV_H_PATH, which defaults to FHS path so it fails to build:

	conftest.c:13:10: fatal error: /usr/include/iconv.h: No such file or directory
	   13 | #include </usr/include/iconv.h>
	      |          ^~~~~~~~~~~~~~~~~~~~~~

That causes the feature check to report a false negative, leading PHP to use a degraded code that returns PHP_ICONV_ERR_UNKNOWN when error occurs, breaking granular error handling in applications.

To prevent this, let’s just include <iconv.h>.

PHP 8 just uses include path so the detection works there: 7bd1d70341
2021-05-23 00:10:02 +02:00
Aaron Andersen
1c5c5be21b php.packages.deployer: init at 6.8.0 2021-05-05 08:38:28 -04:00
talyz
30cae53dbb
v8: 7.4.255 -> 8.4.255 2021-03-29 15:25:17 +02:00
Robert Scott
96390f4286
Merge pull request #115487 from stephank/fix-darwin-php
php80: fix on darwin
2021-03-14 17:58:44 +00:00
Elis Hirwing
7b44695658
php.extensions.swoole: init at 4.6.4 2021-03-11 18:17:45 +01:00
Stéphan Kochen
da049ba377 php80: fix on darwin 2021-03-10 11:57:29 +01:00
Sandro Jäckel
af32607630
php-packages: cleanup 2021-03-08 02:01:14 +01:00
Jan Tojnar
3f4d4ee05a
Merge pull request #114210 from jtojnar/fix-optionals
top-level/php-packages: fix types
2021-03-06 22:13:01 +01:00
Maximilian Bosch
8c26eaa144
Revert "php: Add php package versions to extensions/packages pnames"
This reverts commit a081dcf86d.
2021-03-04 15:26:36 +01:00
Elis Hirwing
a081dcf86d
php: Add php package versions to extensions/packages pnames 2021-02-27 21:57:02 +01:00
Elis Hirwing
ad990d49aa
php.packages.composer2: deinit package since main package is updated 2021-02-27 12:27:18 +01:00
Elis Hirwing
89dacdd7a5
php.packages.composer1: init at 1.10.15 2021-02-27 12:26:38 +01:00
Jan Tojnar
22bf2d0331
top-level/php-packages: fix types
Passing list to `optional` wraps it in another list but we just want to return it as is.

Let’s just use `optionals` everywhere as that is much more predictable and makes such mistakes obvious.
2021-02-24 08:26:36 +01:00
Elis Hirwing
173edd9547
Merge pull request #112360 from helsinki-systems/fix/php-xls-xmlrpc
phpExtensions80: fix xls, disable xmlrpc
2021-02-10 10:35:21 +01:00