GithubHelp home page GithubHelp logo

nix-phps's Introduction

nix-phps

This is a repository of Nix package expressions for old versions of PHP.

Warning: backwards compatibility is not guaranteed, pin this repo if you want to avoid breakage.

Why?

PHP projects like selfoss aim to support Linux distributions that maintain their own forks of no-longer-supported PHP versions (e.g. Debian). To be able to test those PHP versions in CI, we need Nix expressions for them. Since Nixpkgs avoids unmaintained software, we maintain those expressions here.

How to use?

We use Cachix to store x86_64-linux binaries of the built packages. Install it as described in its docs and then add the cache using cachix use fossar if you want to avoid building those PHP packages yourself.

This package is regularly updated to match latest Nixpkgs and the PHP packages use the same API as those in Nixpkgs.

The following versions are currently available:

  • php56
  • php70
  • php71
  • php72
  • php73
  • php74
  • php80
  • php81
  • php82
  • php83

There is also a php package which is the alias of the default PHP version in Nixpkgs.

With niv

Assuming you have niv installed and initialized in your project, run niv add fossar/nix-phps.

Then, you will be able to use the PHP package, e.g. in shell.nix:

{
  sources ? import ./nix/sources.nix
}:

let
  nivOverlay =
    final:
    prev:
    {
      niv = (import sources.niv {}).niv;
    };

  pkgs = import sources.nixpkgs {
    overlays = [
      nivOverlay
    ];
    config = {
    };
  };

  phps = import sources.nix-phps;
in

pkgs.mkShell {
  buildInputs = [
    phps.packages.${builtins.currentSystem}.php

    # for easy updating
    pkgs.niv
  ];
}

With Nix flakes

Warning: Nix flakes are experimental technology, use it only if you are willing to accept that you might need to change your code in the future.

Add this repository to the inputs in your flake.nix’s:

  inputs = {phps.url = "github:fossar/nix-phps";
  };

then, in outputs, you will be able to use the PHP package

  outputs = { self, nixpkgs, phps, ... }: {
    devShell.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.mkShell {
      buildInputs = [
        phps.packages.x86_64-linux.php
      ];
    };
  };

nix-phps's People

Contributors

aanderse avatar ajs124 avatar danielsiepmann avatar drupol avatar github-actions[bot] avatar helloworld017 avatar jtojnar avatar mkg20001 avatar nickkadutskyi avatar reckenrode avatar shyim avatar thelissimus avatar tristanpemble avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nix-phps's Issues

`couchbase` extension is broken

Building couchbase extension is broken on:

  • nix build .#php70.extensions.couchbase -L
  • nix build .#php71.extensions.couchbase -L
  • nix build .#php72.extensions.couchbase -L

This has been found while working on loophp/nix-shell#157 and #246

I guess this issue should also be opened on NixOS/nixpkgs, the couchbase extension seems to be pretty outdated.

An issue has been created upstream to update to 4.1.4: NixOS/nixpkgs#240673

NTS/ZTS versions ?

Hello,

I would like to tests some stuff locally using NTS version of PHP.

From https://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php:

The Non-Thread Safe version should be used if you install PHP as a CGI binary, command line interface or other environment where only a single thread is used.

A thread-safe version should be used if you install PHP as an Apache module in a worker MPM (multi-processing model) or other environment where multiple PHP threads run concurrently.

I'm using my own package to provide a development shell here: https://github.com/loophp/nix-shell/

This morning, I was trying to disable ZTS support so I can use NTS, but it is not working. I committed this: loophp/nix-shell@11565ae but the PHP version produced is always ZTS.

Could you please give me some advice on how to do that?

Thanks.

Failed to evaluate with latest nixpkgs as this overrides `callPackage`

Because of this nixpkgs commit in php uses callPackage, and in your repo, here overrides callPackage with adding two arguments. This will make install-pear-nozlib-phar.nix in nixpkgs failed to evaluate as:

       error: function 'anonymous lambda' called with unexpected argument 'pkgs'

       at /nix/store/9pbyw6i1aksn6l5ymm3fxldpsjvkjg4g-source/pkgs/development/interpreters/php/install-pear-nozlib-phar.nix:1:1:

            1| {
             | ^
            2|   fetchurl

PHP Warning: Module `<module>` already loaded in...

Hi,

I'm using this package as a dependency of another one: loophp/nix-shell

I'm having an issue when running composer install:

~/d/g/collection   $…  nix-shell /home/pol/dev/git/nix-shell/resources/dev/php74/                                                                                                                                                           
Linux x260 5.10.45 x86_64
 09:31:36  up 4 days  0:20,  1 user,  load average: 1.72, 1.70, 2.17
 impure  ~/d/g/collection   $…  composer install                                                                                                                                                                             php-7.4.20 
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 118 installs, 0 updates, 0 removals
  - Locking amphp/amp (v2.5.2)
  - Locking amphp/byte-stream (v1.8.1)
  - Locking amphp/parallel (v1.4.0)
  - Locking amphp/parallel-functions (v1.0.0)
  - Locking amphp/parser (v1.0.0)
  - Locking amphp/process (v1.1.1)
  - Locking amphp/serialization (v1.0.0)
  - Locking amphp/sync (v1.4.0)
  - Locking composer/package-versions-deprecated (1.11.99.2)
  - Locking composer/semver (3.2.5)
  - Locking composer/spdx-licenses (1.5.5)
  - Locking composer/xdebug-handler (2.0.1)
  - Locking dnoegel/php-xdg-base-dir (v0.1.1)
  - Locking doctrine/annotations (1.13.1)
  - Locking doctrine/collections (1.6.7)
  - Locking doctrine/instantiator (1.4.0)
  - Locking doctrine/lexer (1.2.1)
  - Locking drupol/php-conventions (5.0.4)
  - Locking drupol/phpcsfixer-configs-php (2.0.1)
  - Locking ergebnis/composer-normalize (2.15.0)
  - Locking ergebnis/json-normalizer (1.0.3)
  - Locking ergebnis/json-printer (3.1.1)
  - Locking ergebnis/license (1.1.0)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking felixfbecker/language-server-protocol (1.5.1)
  - Locking friends-of-phpspec/phpspec-code-coverage (v6.1.0)
  - Locking friendsofphp/php-cs-fixer (v3.0.0)
  - Locking friendsoftwig/twigcs (v5.0.0)
  - Locking gitonomy/gitlib (v1.2.3)
  - Locking guzzlehttp/guzzle (7.3.0)
  - Locking guzzlehttp/promises (1.4.1)
  - Locking guzzlehttp/psr7 (1.8.2)
  - Locking halaxa/json-machine (0.7.0)
  - Locking infection/abstract-testframework-adapter (0.3.1)
  - Locking infection/extension-installer (0.1.1)
  - Locking infection/include-interceptor (0.2.4)
  - Locking infection/infection (0.23.0)
  - Locking infection/phpspec-adapter (0.1.2)
  - Locking justinrainbow/json-schema (5.2.10)
  - Locking localheinz/diff (1.1.1)
  - Locking loophp/grumphp-license-task (1.0.5)
  - Locking maglnet/composer-require-checker (3.3.0)
  - Locking monolog/monolog (2.2.0)
  - Locking netresearch/jsonmapper (v4.0.0)
  - Locking nikic/php-parser (v4.10.5)
  - Locking ondram/ci-detector (3.5.1)
  - Locking openlss/lib-array2xml (1.0.0)
  - Locking opis/closure (3.6.2)
  - Locking php-cs-fixer/diff (v2.0.2)
  - Locking php-parallel-lint/php-parallel-lint (v1.3.0)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.2.2)
  - Locking phpdocumentor/type-resolver (1.4.0)
  - Locking phpro/grumphp (v1.3.3)
  - Locking phpspec/php-diff (v1.1.3)
  - Locking phpspec/phpspec (7.1.0)
  - Locking phpspec/prophecy (1.13.0)
  - Locking phpstan/extension-installer (1.1.0)
  - Locking phpstan/phpstan (0.12.90)
  - Locking phpstan/phpstan-deprecation-rules (0.12.6)
  - Locking phpstan/phpstan-strict-rules (0.12.9)
  - Locking phpunit/php-code-coverage (9.2.6)
  - Locking phpunit/php-file-iterator (3.0.5)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking psr/cache (1.0.1)
  - Locking psr/container (1.1.1)
  - Locking psr/event-dispatcher (1.0.0)
  - Locking psr/http-client (1.0.1)
  - Locking psr/http-message (1.0.1)
  - Locking psr/log (1.1.4)
  - Locking ralouphie/getallheaders (3.0.3)
  - Locking sanmai/later (0.1.2)
  - Locking sanmai/pipeline (v5.1.0)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.6)
  - Locking sebastian/complexity (2.0.2)
  - Locking sebastian/diff (4.0.4)
  - Locking sebastian/environment (5.1.3)
  - Locking sebastian/exporter (4.0.3)
  - Locking sebastian/lines-of-code (1.0.3)
  - Locking sebastian/recursion-context (4.0.4)
  - Locking sebastian/version (3.0.2)
  - Locking seld/jsonlint (1.8.3)
  - Locking squizlabs/php_codesniffer (3.6.0)
  - Locking symfony/cache (v5.3.0)
  - Locking symfony/cache-contracts (v2.4.0)
  - Locking symfony/config (v5.3.2)
  - Locking symfony/console (v5.3.2)
  - Locking symfony/dependency-injection (v5.3.2)
  - Locking symfony/deprecation-contracts (v2.4.0)
  - Locking symfony/dotenv (v5.3.0)
  - Locking symfony/event-dispatcher (v5.3.0)
  - Locking symfony/event-dispatcher-contracts (v2.4.0)
  - Locking symfony/filesystem (v5.3.0)
  - Locking symfony/finder (v5.3.0)
  - Locking symfony/http-client (v5.3.2)
  - Locking symfony/http-client-contracts (v2.4.0)
  - Locking symfony/options-resolver (v5.3.0)
  - Locking symfony/polyfill-ctype (v1.23.0)
  - Locking symfony/polyfill-intl-grapheme (v1.23.0)
  - Locking symfony/polyfill-intl-normalizer (v1.23.0)
  - Locking symfony/polyfill-mbstring (v1.23.0)
  - Locking symfony/polyfill-php72 (v1.23.0)
  - Locking symfony/polyfill-php73 (v1.23.0)
  - Locking symfony/polyfill-php80 (v1.23.0)
  - Locking symfony/polyfill-php81 (v1.23.0)
  - Locking symfony/process (v5.3.2)
  - Locking symfony/service-contracts (v2.4.0)
  - Locking symfony/stopwatch (v5.3.0)
  - Locking symfony/string (v5.3.2)
  - Locking symfony/var-exporter (v5.3.2)
  - Locking symfony/yaml (v5.3.2)
  - Locking thecodingmachine/safe (v1.3.3)
  - Locking theseer/tokenizer (1.2.0)
  - Locking vimeo/psalm (4.8.1)
  - Locking webmozart/assert (1.10.0)
  - Locking webmozart/glob (4.3.0)
  - Locking webmozart/path-util (2.3.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 118 installs, 0 updates, 0 removals
  - Installing composer/package-versions-deprecated (1.11.99.2): Extracting archive
  - Installing infection/extension-installer (0.1.1): Extracting archive
  - Installing amphp/parser (v1.0.0): Extracting archive
  - Installing amphp/amp (v2.5.2): Extracting archive
  - Installing amphp/byte-stream (v1.8.1): Extracting archive
  - Installing amphp/process (v1.1.1): Extracting archive
  - Installing amphp/serialization (v1.0.0): Extracting archive
  - Installing amphp/sync (v1.4.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.23.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.23.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.23.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.23.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.23.0): Extracting archive
  - Installing symfony/string (v5.3.2): Extracting archive
  - Installing psr/container (1.1.1): Extracting archive
  - Installing symfony/service-contracts (v2.4.0): Extracting archive
  - Installing symfony/polyfill-php73 (v1.23.0): Extracting archive
  - Installing symfony/deprecation-contracts (v2.4.0): Extracting archive
  - Installing symfony/console (v5.3.2): Extracting archive
  - Installing psr/log (1.1.4): Extracting archive
  - Installing symfony/yaml (v5.3.2): Extracting archive
  - Installing phpstan/phpstan (0.12.90): Extracting archive
  - Installing phpstan/extension-installer (1.1.0): Extracting archive
  - Installing symfony/process (v5.3.2): Extracting archive
  - Installing symfony/options-resolver (v5.3.0): Extracting archive
  - Installing symfony/finder (v5.3.0): Extracting archive
  - Installing symfony/filesystem (v5.3.0): Extracting archive
  - Installing psr/event-dispatcher (1.0.0): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v2.4.0): Extracting archive
  - Installing symfony/event-dispatcher (v5.3.0): Extracting archive
  - Installing symfony/dotenv (v5.3.0): Extracting archive
  - Installing symfony/dependency-injection (v5.3.2): Extracting archive
  - Installing symfony/polyfill-php81 (v1.23.0): Extracting archive
  - Installing symfony/config (v5.3.2): Extracting archive
  - Installing seld/jsonlint (1.8.3): Extracting archive
  - Installing opis/closure (3.6.2): Extracting archive
  - Installing ondram/ci-detector (3.5.1): Extracting archive
  - Installing monolog/monolog (2.2.0): Extracting archive
  - Installing gitonomy/gitlib (v1.2.3): Extracting archive
  - Installing doctrine/collections (1.6.7): Extracting archive
  - Installing amphp/parallel (v1.4.0): Extracting archive
  - Installing amphp/parallel-functions (v1.0.0): Extracting archive
  - Installing phpro/grumphp (v1.3.3): Extracting archive
  - Installing localheinz/diff (1.1.1): Extracting archive
  - Installing justinrainbow/json-schema (5.2.10): Extracting archive
  - Installing ergebnis/json-printer (3.1.1): Extracting archive
  - Installing ergebnis/json-normalizer (1.0.3): Extracting archive
  - Installing ergebnis/composer-normalize (2.15.0): Extracting archive
  - Installing doctrine/lexer (1.2.1): Extracting archive
  - Installing webmozart/assert (1.10.0): Extracting archive
  - Installing webmozart/path-util (2.3.0): Extracting archive
  - Installing sebastian/diff (4.0.4): Extracting archive
  - Installing openlss/lib-array2xml (1.0.0): Extracting archive
  - Installing nikic/php-parser (v4.10.5): Extracting archive
  - Installing netresearch/jsonmapper (v4.0.0): Extracting archive
  - Installing felixfbecker/language-server-protocol (1.5.1): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.4.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.2.2): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing dnoegel/php-xdg-base-dir (v0.1.1): Extracting archive
  - Installing composer/xdebug-handler (2.0.1): Extracting archive
  - Installing composer/semver (3.2.5): Extracting archive
  - Installing vimeo/psalm (4.8.1): Extracting archive
  - Installing squizlabs/php_codesniffer (3.6.0): Extracting archive
  - Installing phpstan/phpstan-deprecation-rules (0.12.6): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.3.0): Extracting archive
  - Installing webmozart/glob (4.3.0): Extracting archive
  - Installing maglnet/composer-require-checker (3.3.0): Extracting archive
  - Installing ergebnis/license (1.1.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.5): Extracting archive
  - Installing loophp/grumphp-license-task (1.0.5): Extracting archive
  - Installing friendsoftwig/twigcs (v5.0.0): Extracting archive
  - Installing symfony/stopwatch (v5.3.0): Extracting archive
  - Installing symfony/polyfill-php72 (v1.23.0): Extracting archive
  - Installing php-cs-fixer/diff (v2.0.2): Extracting archive
  - Installing psr/cache (1.0.1): Extracting archive
  - Installing doctrine/annotations (1.13.1): Extracting archive
  - Installing friendsofphp/php-cs-fixer (v3.0.0): Extracting archive
  - Installing drupol/phpcsfixer-configs-php (2.0.1): Extracting archive
  - Installing drupol/php-conventions (5.0.4): Extracting archive
  - Installing theseer/tokenizer (1.2.0): Extracting archive
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing sebastian/lines-of-code (1.0.3): Extracting archive
  - Installing sebastian/environment (5.1.3): Extracting archive
  - Installing sebastian/complexity (2.0.2): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.5): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.6): Extracting archive
  - Installing sebastian/recursion-context (4.0.4): Extracting archive
  - Installing sebastian/exporter (4.0.3): Extracting archive
  - Installing sebastian/comparator (4.0.6): Extracting archive
  - Installing doctrine/instantiator (1.4.0): Extracting archive
  - Installing phpspec/prophecy (1.13.0): Extracting archive
  - Installing phpspec/php-diff (v1.1.3): Extracting archive
  - Installing phpspec/phpspec (7.1.0): Extracting archive
  - Installing friends-of-phpspec/phpspec-code-coverage (v6.1.0): Extracting archive
  - Installing psr/http-message (1.0.1): Extracting archive
  - Installing psr/http-client (1.0.1): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing guzzlehttp/psr7 (1.8.2): Extracting archive
  - Installing guzzlehttp/promises (1.4.1): Extracting archive
  - Installing guzzlehttp/guzzle (7.3.0): Extracting archive
  - Installing halaxa/json-machine (0.7.0): Extracting archive
  - Installing thecodingmachine/safe (v1.3.3): Extracting archive
  - Installing sanmai/pipeline (v5.1.0): Extracting archive
  - Installing sanmai/later (0.1.2): Extracting archive
  - Installing infection/include-interceptor (0.2.4): Extracting archive
  - Installing infection/abstract-testframework-adapter (0.3.1): Extracting archive
  - Installing infection/infection (0.23.0): Extracting archive
  - Installing infection/phpspec-adapter (0.1.2): Extracting archive
  - Installing phpstan/phpstan-strict-rules (0.12.9): Extracting archive
  - Installing symfony/var-exporter (v5.3.2): Extracting archive
  - Installing symfony/cache-contracts (v2.4.0): Extracting archive
  - Installing symfony/cache (v5.3.0): Extracting archive
  - Installing symfony/http-client-contracts (v2.4.0): Extracting archive
  - Installing symfony/http-client (v5.3.2): Extracting archive
40 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
composer/package-versions-deprecated: Generating version class...
composer/package-versions-deprecated: ...done generating version class
69 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
infection/extension-installer: Extensions installed
> infection/phpspec-adapter: installed
phpstan/extension-installer: Extensions installed
> phpstan/phpstan-deprecation-rules: installed
> phpstan/phpstan-strict-rules: installed
Cannot load Zend OPcache - it was already loaded
Cannot load Xdebug - it was already loaded
Cannot load Zend OPcache - it was already loaded
Cannot load Xdebug - it was already loaded
PHP Warning:  Module 'filter' already loaded in Unknown on line 0
PHP Warning:  Module 'iconv' already loaded in Unknown on line 0
PHP Warning:  Module 'ctype' already loaded in Unknown on line 0
PHP Warning:  Module 'session' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'redis' already loaded in Unknown on line 0
PHP Warning:  Module 'tokenizer' already loaded in Unknown on line 0
PHP Warning:  Module 'SimpleXML' already loaded in Unknown on line 0
PHP Warning:  Module 'dom' already loaded in Unknown on line 0
PHP Warning:  Module 'posix' already loaded in Unknown on line 0
PHP Warning:  Module 'intl' already loaded in Unknown on line 0
PHP Warning:  Module 'calendar' already loaded in Unknown on line 0
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'exif' already loaded in Unknown on line 0
PHP Warning:  Module 'fileinfo' already loaded in Unknown on line 0
PHP Warning:  Module 'gd' already loaded in Unknown on line 0
PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'pcov' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_sqlite' already loaded in Unknown on line 0
PHP Warning:  Module 'mysqlnd' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_pgsql' already loaded in Unknown on line 0
PHP Warning:  Module 'soap' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlreader' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlwriter' already loaded in Unknown on line 0
PHP Warning:  Module 'zip' already loaded in Unknown on line 0
PHP Warning:  Module 'zlib' already loaded in Unknown on line 0
PHP Warning:  Module 'filter' already loaded in Unknown on line 0
PHP Warning:  Module 'iconv' already loaded in Unknown on line 0
PHP Warning:  Module 'ctype' already loaded in Unknown on line 0
PHP Warning:  Module 'session' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'redis' already loaded in Unknown on line 0
PHP Warning:  Module 'tokenizer' already loaded in Unknown on line 0
PHP Warning:  Module 'SimpleXML' already loaded in Unknown on line 0
PHP Warning:  Module 'dom' already loaded in Unknown on line 0
PHP Warning:  Module 'posix' already loaded in Unknown on line 0
PHP Warning:  Module 'intl' already loaded in Unknown on line 0
PHP Warning:  Module 'calendar' already loaded in Unknown on line 0
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'exif' already loaded in Unknown on line 0
PHP Warning:  Module 'fileinfo' already loaded in Unknown on line 0
PHP Warning:  Module 'gd' already loaded in Unknown on line 0
PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'pcov' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_sqlite' already loaded in Unknown on line 0
PHP Warning:  Module 'mysqlnd' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_pgsql' already loaded in Unknown on line 0
PHP Warning:  Module 'soap' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlreader' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlwriter' already loaded in Unknown on line 0
PHP Warning:  Module 'zip' already loaded in Unknown on line 0
PHP Warning:  Module 'zlib' already loaded in Unknown on line 0
Cannot load Zend OPcache - it was already loaded
Cannot load Xdebug - it was already loaded
Cannot load Zend OPcache - it was already loaded
Cannot load Xdebug - it was already loaded
PHP Warning:  Module 'filter' already loaded in Unknown on line 0
PHP Warning:  Module 'iconv' already loaded in Unknown on line 0
PHP Warning:  Module 'ctype' already loaded in Unknown on line 0
PHP Warning:  Module 'session' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'redis' already loaded in Unknown on line 0
PHP Warning:  Module 'tokenizer' already loaded in Unknown on line 0
PHP Warning:  Module 'SimpleXML' already loaded in Unknown on line 0
PHP Warning:  Module 'dom' already loaded in Unknown on line 0
PHP Warning:  Module 'posix' already loaded in Unknown on line 0
PHP Warning:  Module 'intl' already loaded in Unknown on line 0
PHP Warning:  Module 'calendar' already loaded in Unknown on line 0
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'exif' already loaded in Unknown on line 0
PHP Warning:  Module 'fileinfo' already loaded in Unknown on line 0
PHP Warning:  Module 'gd' already loaded in Unknown on line 0
PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'pcov' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_sqlite' already loaded in Unknown on line 0
PHP Warning:  Module 'mysqlnd' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_pgsql' already loaded in Unknown on line 0
PHP Warning:  Module 'soap' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlreader' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlwriter' already loaded in Unknown on line 0
PHP Warning:  Module 'zip' already loaded in Unknown on line 0
PHP Warning:  Module 'zlib' already loaded in Unknown on line 0
PHP Warning:  Module 'filter' already loaded in Unknown on line 0
PHP Warning:  Module 'iconv' already loaded in Unknown on line 0
PHP Warning:  Module 'ctype' already loaded in Unknown on line 0
PHP Warning:  Module 'session' already loaded in Unknown on line 0
PHP Warning:  Module 'json' already loaded in Unknown on line 0
PHP Warning:  Module 'redis' already loaded in Unknown on line 0
PHP Warning:  Module 'tokenizer' already loaded in Unknown on line 0
PHP Warning:  Module 'SimpleXML' already loaded in Unknown on line 0
PHP Warning:  Module 'dom' already loaded in Unknown on line 0
PHP Warning:  Module 'posix' already loaded in Unknown on line 0
PHP Warning:  Module 'intl' already loaded in Unknown on line 0
PHP Warning:  Module 'calendar' already loaded in Unknown on line 0
PHP Warning:  Module 'curl' already loaded in Unknown on line 0
PHP Warning:  Module 'exif' already loaded in Unknown on line 0
PHP Warning:  Module 'fileinfo' already loaded in Unknown on line 0
PHP Warning:  Module 'gd' already loaded in Unknown on line 0
PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0
PHP Warning:  Module 'pcov' already loaded in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_sqlite' already loaded in Unknown on line 0
PHP Warning:  Module 'mysqlnd' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_mysql' already loaded in Unknown on line 0
PHP Warning:  Module 'pdo_pgsql' already loaded in Unknown on line 0
PHP Warning:  Module 'soap' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlreader' already loaded in Unknown on line 0
PHP Warning:  Module 'xmlwriter' already loaded in Unknown on line 0
PHP Warning:  Module 'zip' already loaded in Unknown on line 0
PHP Warning:  Module 'zlib' already loaded in Unknown on line 0
Watch out! GrumPHP is sniffing your commits!
 impure  ~/d/g/collection   $… 

This is an issue that I already had when using the default Nix package, see #125405. It has been reverted since.

`enchant` extension is broken

This is broken:

  • nix build .#php56.extensions.enchant
  • nix build .#php70.extensions.enchant
  • nix build .#php71.extensions.enchant
  • nix build .#php72.extensions.enchant
  • nix build .#php73.extensions.enchant
  • nix build .#php74.extensions.enchant

This has been found while working on loophp/nix-shell#157 and #246

PHP 7.3 cannot be built

 - system: `"aarch64-darwin"`
 - host os: `Darwin 22.3.0, macOS 13.2`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.12.0`
 - channels(root): `"nixpkgs"`
 - channels(shyim): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
make: *** [Makefile:395: ext/phar/phar.phar] Bus error: 10
make: *** Waiting for unfinished jobs....

packaging php.extensions.mysql for php56

Hi @jtojnar,

I'm trying to package the mysql extension for php56 but I'm running into some issues.

    mysql = if (lib.versionOlder prev.php.version "7.0") then (pkgs.stdenv.mkDerivation rec {
      pname = "php-mysql";
      extensionName = "mysql";

      inherit (prev.php.unwrapped) version src;
      sourceRoot = "php-${prev.php.version}/ext/mysql";

      enableParallelBuilding = true;
      nativeBuildInputs = with pkgs; [ php.unwrapped autoconf pkg-config re2c ];
      configureFlags = [ "--with-mysql" ];
      internalDeps = [ final.extensions.mysqlnd ];

      prePatch = "pushd ../..";

      # Fix mysqlnd not being able to find headers.
      postPatch = ''
        popd

        ln -s $PWD/../../ext/ $PWD
      '';

      preConfigure = ''
        nullglobRestore=$(shopt -p nullglob)
        shopt -u nullglob   # To make ?-globbing work

        # Some extensions have a config0.m4 or config9.m4
        if [ -f config?.m4 ]; then
          mv config?.m4 config.m4
        fi

        $nullglobRestore
        phpize
        ${lib.concatMapStringsSep "\n"
          (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
          internalDeps}
      '';

      checkPhase = "runHook preCheck; NO_INTERACTON=yes make test; runHook postCheck";
      outputs = [ "out" "dev" ];
      installPhase = ''
        mkdir -p $out/lib/php/extensions
        cp modules/mysql.so $out/lib/php/extensions/mysql.so
        mkdir -p $dev/include
        ${pkgs.rsync}/bin/rsync -r --filter="+ */" \
                              --filter="+ *.h" \
                              --filter="- *" \
                              --prune-empty-dirs \
                              . $dev/include/
      '';

      meta = {
        description = "PHP upstream extension: mysql";
        inherit (prev.php.meta) maintainers homepage license;
      };
    }) else null;

At one point during the compilation log I see an obvious sign I'm doing something wrong:

/nix/store/6gl0ar643aby969knpajvg84sipdvg7b-php-8.0.7-dev/include/php/Zend/zend_types.h:893:5: note: in definition of macro 'ZVAL_BOOL'
  893 |    (b) ? IS_TRUE : IS_FALSE; \
      |     ^

If you get a chance can you please point out what I'm doing wrong?

Thank you!

Trying to list all extensions of a php derivation

Hi,

I was trying to get all the enabled extension of a PHP derivation. I used nix-repl to do so:

cd nix-phps
NIXPKGS_ALLOW_UNFREE=1 NIXPKGS_ALLOW_INSECURE=1 nix repl

Outputs:

❯ NIXPKGS_ALLOW_UNFREE=1 nix repl
Welcome to Nix 2.15.1. Type :? for help.

nix-repl> :lf .                                          
Added 15 variables.

nix-repl> outputs.packages.x86_64-linux.php81.extensions
{ amqp = «derivation /nix/store/7nx7i9a18ssy7wji0cg8w2mhrlggy49q-php-amqp-1.11.0.drv»; apcu = «derivation /nix/store/452g31j9qalj6fb7pb76dxdc0z4rqrig-php-apcu-5.1.22.drv»; ast = «derivation /nix/store/wzm2dlhs4ma8qzc4s6rx8jycsh48hkd6-php-ast-1.1.0.drv»; bcmath = «derivation /nix/store/4d3jqd68a66cwdp27zkqnxhah78lxvg6-php-bcmath-8.1.20.drv»; blackfire = «derivation /nix/store/8pn2v947lkp94iq37rlsj466rv265ifp-php-blackfire-1.87.2.drv»; bz2 = «derivation /nix/store/36hing8apznn7phmlyqxjf5l580zagnh-php-bz2-8.1.20.drv»; calendar = «derivation /nix/store/phpmdcizwq3jq280bpyygvrwi00sqm1k-php-calendar-8.1.20.drv»; couchbase = error:
       … while calling the 'derivationStrict' builtin

         at //builtin/derivation.nix:9:12: (source not available)

       … while evaluating derivation 'php-couchbase-3.2.2'
         whose name attribute is located at /nix/store/c6mm252czj809xzjvg2i9bqmizd2kq6f-source/pkgs/stdenv/generic/make-derivation.nix:303:7

       … while evaluating attribute 'preConfigure' of derivation 'php-couchbase-3.2.2'

         at /nix/store/0glb2cf3yk4xy22zhggdd67gkbjkykhn-source/pkgs/package-overrides.nix:60:7:

           59|     couchbase = prev.extensions.couchbase.overrideAttrs (attrs: {
           60|       preConfigure =
             |       ^
           61|         attrs.preConfigure or "" + linkInternalDeps [ final.extensions.json ];

       error: value is null while a set was expected
«derivation 
nix-repl>

Do you know why couchbase is causing this?

Provide packages entry

In nixpkgs we have those php81Packages.. It would be nice if the output could have the same. Of course, not any tool will work.

Example package: php74Packages.php-parallel-lint

Wrong sha256 hash for php73 libtool patch

The error:

error: hash mismatch in fixed-output derivation '/nix/store/cbw81xmg63889yvk52zmnwicqlzk9gq0-d016434ad33284dfaceb8d233351d34356566d7d.patch.drv':
         specified: sha256-x0vEcoXNFeQi3re1TrK/Np9AH5dy3wf95xM08xCyGE0=
            got:    sha256-Th1ZhC8t84MACxosoYud1LGDd5DtYe36Ctk1Ocjcu1s=
error: 1 dependencies of derivation '/nix/store/yxa5yj0f5xiz0614h9bnrf01y5zswfzi-php-7.3.33.drv' failed to build
error: 1 dependencies of derivation '/nix/store/qqkwr3zph3achkkwl8zh7xfvb3gcpj82-php-with-extensions-7.3.33.drv' failed to build
error: 1 dependencies of derivation '/nix/store/9khycqnlnrdl929bbzmabnc3zmypqxc3-devenv-profile.drv' failed to build
error: 1 dependencies of derivation '/nix/store/byjk8rqlw8b396k8a4p1jgl89nr8gj1c-devenv-shell-env.drv' failed to build

The hash is here:

sha256 = "sha256-x0vEcoXNFeQi3re1TrK/Np9AH5dy3wf95xM08xCyGE0=";

My flake.nix:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    nixpkgsMySQL57.url = "github:NixOS/nixpkgs/611bf8f183e6360c2a215fa70dfd659943a9857f";
    flake-utils.url = "github:numtide/flake-utils";
    phps.url = "github:fossar/nix-phps";
    devenv.url = "github:cachix/devenv/v0.6.3";
  };
  outputs =
    { nixpkgs
    , nixpkgsMySQL57
    , flake-utils
    , devenv
    , phps
    , ...
    } @ inputs:
    flake-utils.lib.eachDefaultSystem (system:
    let
      pkgs = import nixpkgs { localSystem = { inherit system; }; };
      pkgsMySQL57 = import nixpkgsMySQL57 { localSystem = { inherit system; }; };
      pkgsPhp = phps.packages.${system};
      packages = [
        pkgsPhp.php73
        pkgsPhp.php73.packages.composer
        pkgsMySQL57.mysql57
      ];
    in
    {
      devShells.default = devenv.lib.mkShell {
        inherit inputs pkgs;
        modules = [{
          inherit packages;
          services.mysql.enable = true;
        }];
      };
    }
    );
}

Any ideas how I can override the hash locally for the time being? I need php73 asap.

Also, thanks for supporting legacy PHP versions! You are a life saver!

error: attribute 'php83' missing

Hi,

Just doing my first steps in NixOS.
I can install any php version except for php83.

I'm I missing something?

error: attribute 'php83' missing

          231|       group = config.services.caddy.group;
          232|       phpPackage = phps.packages.${builtins.currentSystem}.php83;
             |                    ^
          233|       settings = {
       Did you mean one of php73, php80, php81, php82 or php?

Gr, Justin

php56.extensions.tidy broken

$ nix build .#php56.extensions.tidy -L
[…]
php-tidy> building
php-tidy> build flags: -j8 -l8 SHELL=/nix/store/pbfraw351mksnkp2ni9c4rkc9cpp89iv-bash-5.1-p12/bin/bash
php-tidy> /nix/store/pbfraw351mksnkp2ni9c4rkc9cpp89iv-bash-5.1-p12/bin/bash /build/php-5.6.40/ext/tidy/libtool --mode=compile gcc  -I. -I/build/php-5.6.40/ext/tidy -DPHP_ATOM_INC -I/build/php-5.6.40/ext/tidy/include -I/build/php-5.6.40/ext/tidy/main -I/build/php-5.6.40/ext/tidy -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/main -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/TSRM -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/Zend -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/ext -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/ext/date/lib -I/nix/store/67z2xvjmwial7fmii6cr8qpf4l334zyl-html-tidy-5.8.0/include  -DHAVE_CONFIG_H  -g -O2   -c /build/php-5.6.40/ext/tidy/tidy.c -o tidy.lo
php-tidy> mkdir .libs
php-tidy>  gcc -I. -I/build/php-5.6.40/ext/tidy -DPHP_ATOM_INC -I/build/php-5.6.40/ext/tidy/include -I/build/php-5.6.40/ext/tidy/main -I/build/php-5.6.40/ext/tidy -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/main -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/TSRM -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/Zend -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/ext -I/nix/store/agfgrrsh942wwmy2zbi2jf2rr63xj1pq-php-5.6.40-dev/include/php/ext/date/lib -I/nix/store/67z2xvjmwial7fmii6cr8qpf4l334zyl-html-tidy-5.8.0/include -DHAVE_CONFIG_H -g -O2 -c /build/php-5.6.40/ext/tidy/tidy.c  -fPIC -DPIC -o .libs/tidy.o
php-tidy> /build/php-5.6.40/ext/tidy/tidy.c:34:10: fatal error: buffio.h: No such file or directory
php-tidy>    34 | #include "buffio.h"
php-tidy>       |          ^~~~~~~~~~
php-tidy> compilation terminated.
php-tidy> make: *** [Makefile:181: tidy.lo] Error 1

Noticed in https://github.com/fossar/selfoss/runs/4924028211?check_suite_focus=true

Is there a way to install Mcrypt extension for php5.6?

I am trying to configure an old project via devenv.sh and I see that they use this package for older php versions.
But I've tried to add Mcrypt extension and it says it's missing.

I am new to Nix and don't know how to handle this better but my assumption would be to create my own derivation for Mcrypt extension, build it and provide result to nix-phps so it can pass it further to php interpreter into withExtensions function? And then withExtensions function should handle adding the Mcrypt ext to php.ini file?

Composer 1

Hey,

I would like to need Composer 1 for old projects. Is it fine to add it to this repository as it contains already also old PHP versions 😅

Many PHP builds on Darwin are failing to build

error: builder for '/nix/store/f1g1riq813pks65g3079hmz8hc3flzcp-php-7.4.33.drv' failed with exit code 2;
       last 10 log lines:
       >       _zif_dns_check_record in dns.o
       >       _zif_dns_get_record in dns.o
       >       _zif_dns_get_mx in dns.o
       >   "_res_9_search", referenced from:
       >       _zif_dns_check_record in dns.o
       >       _zif_dns_get_record in dns.o
       >       _zif_dns_get_mx in dns.o
       > ld: symbol(s) not found for architecture arm64
       > clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
       > make: *** [Makefile:306: sapi/phpdbg/phpdbg] Error 1
       For full logs, run 'nix log /nix/store/f1g1riq813pks65g3079hmz8hc3flzcp-php-7.4.33.drv'.
error: 1 dependencies of derivation '/nix/store/cpwlxi9ws2rira0l0yjamr3bn9329bny-php-with-extensions-7.4.33.drv' failed to build
error: 1 dependencies of derivation '/nix/store/5lqwmfnw7s0s5s63xny3bdyii9ap5wp9-devenv-profile.drv' failed to build
error:
       error: 1 dependencies of derivation '/nix/store/9csn7alnl1vb09ihamf1aa0gh17jdngg-devenv-shell-env.drv' failed to build

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.