diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index 4e5d888c4bbd..d94af0b5bf74 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -428,7 +428,8 @@ let # Rewrite dates for everything in the FS find . -exec touch --date=2000-01-01 {} + - usage_size=$(du -sb --apparent-size . | tr -cd '[:digit:]') + # Round up to the nearest multiple of 1MB, for more deterministic du output + usage_size=$(( $(du -s --block-size=1M --apparent-size . | tr -cd '[:digit:]') * 1024 * 1024 )) # Make the image 110% as big as the files need to make up for FAT overhead image_size=$(( ($usage_size * 110) / 100 )) # Make the image fit blocks of 1M @@ -438,7 +439,16 @@ let echo "Image size: $image_size" truncate --size=$image_size "$out" faketime "2000-01-01 00:00:00" mkfs.vfat -i 12345678 -n EFIBOOT "$out" - mcopy -psvm -i "$out" ./EFI ./boot :: + + # Force a fixed order in mcopy for better determinism, and avoid file globbing + for d in $(find EFI boot -type d | sort); do + faketime "2000-01-01 00:00:00" mmd -i "$out" "::/$d" + done + + for f in $(find EFI boot -type f | sort); do + mcopy -pvm -i "$out" "$f" "::/$f" + done + # Verify the FAT partition. fsck.vfat -vn "$out" ''; # */ diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 84620ba3eb23..d3a3143c17f6 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -153,6 +153,7 @@ ./programs/iftop.nix ./programs/iotop.nix ./programs/java.nix + ./programs/kdeconnect.nix ./programs/kbdlight.nix ./programs/less.nix ./programs/liboping.nix diff --git a/nixos/modules/programs/kdeconnect.nix b/nixos/modules/programs/kdeconnect.nix new file mode 100644 index 000000000000..673449b9f633 --- /dev/null +++ b/nixos/modules/programs/kdeconnect.nix @@ -0,0 +1,35 @@ +{ config, pkgs, lib, ... }: +with lib; +{ + options.programs.kdeconnect = { + enable = mkEnableOption '' + kdeconnect. + + Note that it will open the TCP and UDP port from + 1714 to 1764 as they are needed for it to function properly. + You can use the to use + gnomeExtensions.gsconnect as an alternative + implementation if you use Gnome. + ''; + package = mkOption { + default = pkgs.kdeconnect; + defaultText = "pkgs.kdeconnect"; + type = types.package; + example = literalExample "pkgs.gnomeExtensions.gsconnect"; + description = '' + The package providing the implementation for kdeconnect. + ''; + }; + }; + config = + let + cfg = config.programs.kdeconnect; + in + mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + networking.firewall = rec { + allowedTCPPortRanges = [ { from = 1714; to = 1764; } ]; + allowedUDPPortRanges = allowedTCPPortRanges; + }; + }; +} diff --git a/nixos/tests/php/default.nix b/nixos/tests/php/default.nix index cf78c9db53b7..c0386385753f 100644 --- a/nixos/tests/php/default.nix +++ b/nixos/tests/php/default.nix @@ -1,5 +1,5 @@ { system ? builtins.currentSystem -, config ? {} +, config ? { } , pkgs ? import ../../.. { inherit system config; } , php ? pkgs.php }: @@ -8,7 +8,8 @@ let php' = php.buildEnv { extensions = { enabled, all }: with all; enabled ++ [ apcu ]; }; -in { +in +{ fpm = import ./fpm.nix { inherit system pkgs; php = php'; }; httpd = import ./httpd.nix { inherit system pkgs; php = php'; }; pcre = import ./pcre.nix { inherit system pkgs; php = php'; }; diff --git a/nixos/tests/php/fpm.nix b/nixos/tests/php/fpm.nix index b11f85d39cb6..31a79bb4dbe3 100644 --- a/nixos/tests/php/fpm.nix +++ b/nixos/tests/php/fpm.nix @@ -1,4 +1,4 @@ -import ../make-test-python.nix ({pkgs, lib, php, ...}: { +import ../make-test-python.nix ({ pkgs, lib, php, ... }: { name = "php-${php.version}-fpm-nginx-test"; meta.maintainers = lib.teams.php.members; @@ -8,21 +8,23 @@ import ../make-test-python.nix ({pkgs, lib, php, ...}: { services.nginx = { enable = true; - virtualHosts."phpfpm" = let - testdir = pkgs.writeTextDir "web/index.php" "/dev/null' - done - '' + '' - ./buildconf --copy --force + export EXTENSION_DIR=$out/lib/php/extensions + '' + # PKG_CONFIG need not be a relative path + + lib.optionalString (!lib.versionAtLeast version "7.4") '' + for i in $(find . -type f -name "*.m4"); do + substituteInPlace $i \ + --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null' + done + '' + '' + ./buildconf --copy --force - if test -f $src/genfiles; then - ./genfiles - fi - '' + lib.optionalString stdenv.isDarwin '' - substituteInPlace configure --replace "-lstdc++" "-lc++" - ''; + if test -f $src/genfiles; then + ./genfiles + fi + '' + lib.optionalString stdenv.isDarwin '' + substituteInPlace configure --replace "-lstdc++" "-lc++" + ''; postInstall = '' test -d $out/etc || mkdir $out/etc @@ -264,8 +285,8 @@ let outputs = [ "out" "dev" ]; passthru = { - buildEnv = mkBuildEnv {} []; - withExtensions = mkWithExtensions {} []; + buildEnv = mkBuildEnv { } [ ]; + withExtensions = mkWithExtensions { } [ ]; inherit ztsSupport; }; @@ -278,4 +299,5 @@ let outputsToInstall = [ "out" "dev" ]; }; }; -in generic +in +generic diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix index 7a9a5a80700f..eb0f34db26f5 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/default.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "indilib"; - version = "1.9.0"; + version = "1.9.1"; src = fetchFromGitHub { owner = "indilib"; repo = "indi"; rev = "v${version}"; - sha256 = "sha256-YdVBzhz+Gim27/Js5MhEJNukoXp5eK9/dZ+JQVyls0M="; + sha256 = "sha256-qXGTHyXhJrApexQL31fba0ZvnHEyTsY3Tb7aB4GpGn4="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix index 50aa9fb8b4ac..4ac9a122fd2f 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix @@ -1,12 +1,12 @@ { stdenv, lib, callPackage, fetchFromGitHub, indilib }: let - indi-version = "1.9.0"; + indi-version = "1.9.1"; indi-3rdparty-src = fetchFromGitHub { owner = "indilib"; repo = "indi-3rdparty"; rev = "v${indi-version}"; - sha256 = "sha256-5VR1MN52a0ZtaHYw4lD6LWmnvc1oHlfE5GLGbfBKvqE="; + sha256 = "sha256-F0O4WUYdUL6IjJyON/XJp78v4n5rj0unm1xTzEsEH0k="; }; indi-firmware = callPackage ./indi-firmware.nix { version = indi-version; diff --git a/pkgs/development/php-packages/event/default.nix b/pkgs/development/php-packages/event/default.nix index 727543e6ee63..ed23bcc4b0b6 100644 --- a/pkgs/development/php-packages/event/default.nix +++ b/pkgs/development/php-packages/event/default.nix @@ -2,8 +2,8 @@ buildPecl { pname = "event"; - version = "3.0.4"; - sha256 = "13yb3zvlx43cncawymiwbqyz8gzpq1g03vd0xjlw9vz75b4mwn1x"; + version = "3.0.5"; + sha256 = "0q5a83mcl97cyry5rd85j5xsjvflnki6s5cm56igjm0szxvgj39c"; configureFlags = [ "--with-event-libevent-dir=${libevent.dev}" diff --git a/pkgs/development/php-packages/igbinary/default.nix b/pkgs/development/php-packages/igbinary/default.nix index caedac9acdfd..258b0debbae0 100644 --- a/pkgs/development/php-packages/igbinary/default.nix +++ b/pkgs/development/php-packages/igbinary/default.nix @@ -3,8 +3,8 @@ buildPecl { pname = "igbinary"; - version = "3.2.2"; - sha256 = "0321pb0298fa67qwj5nhhabkjiaxna5mag15ljyrqzpivimvny92"; + version = "3.2.3"; + sha256 = "1ffaqhckkk1qr5dk1fl7f8dm2w4lj4gqrgazzmc67acsdmp7z5f0"; configureFlags = [ "--enable-igbinary" ]; makeFlags = [ "phpincludedir=$(dev)/include" ]; diff --git a/pkgs/development/php-packages/imagick/default.nix b/pkgs/development/php-packages/imagick/default.nix index 1af4f1a23b47..7da324b2e1a2 100644 --- a/pkgs/development/php-packages/imagick/default.nix +++ b/pkgs/development/php-packages/imagick/default.nix @@ -1,23 +1,10 @@ -{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre2 }: +{ buildPecl, lib, imagemagick, pkg-config, pcre2 }: buildPecl { pname = "imagick"; - version = "3.4.4"; - sha256 = "0xvhaqny1v796ywx83w7jyjyd0nrxkxf34w9zi8qc8aw8qbammcd"; - - patches = [ - # Fix compatibility with PHP 8. - (fetchpatch { - url = "https://github.com/Imagick/imagick/pull/336.patch"; - sha256 = "nuRdh02qaMx0s/5OzlfWjyYgZG1zgrYnAjsZ/UVIrUM="; - }) - # Fix detection of ImageMagick 7. - (fetchpatch { - url = "https://github.com/Imagick/imagick/commit/09551fbf38c16cdaf4ade7c08744501cd82d2747.patch"; - sha256 = "qUeQHP08kKOzuQdEpR8RSZ18Yhi0U9z24KwQcAx1UVg="; - }) - ]; + version = "3.5.0"; + sha256 = "0afjyll6rr79am6d1p041bl4dj44hp9z4gzmlhrkvkdsdz1vfpbr"; configureFlags = [ "--with-imagick=${imagemagick.dev}" ]; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix index bec701a7fc59..b65862750e72 100644 --- a/pkgs/development/php-packages/mongodb/default.nix +++ b/pkgs/development/php-packages/mongodb/default.nix @@ -1,5 +1,15 @@ -{ stdenv, buildPecl, lib, pcre2, pkg-config, cyrus_sasl, icu64 -, openssl, snappy, zlib, darwin }: +{ stdenv +, buildPecl +, lib +, pcre2 +, pkg-config +, cyrus_sasl +, icu64 +, openssl +, snappy +, zlib +, darwin +}: buildPecl { pname = "mongodb"; diff --git a/pkgs/development/php-packages/php-cs-fixer/default.nix b/pkgs/development/php-packages/php-cs-fixer/default.nix index c2e6a1292c7b..0c76ff56a604 100644 --- a/pkgs/development/php-packages/php-cs-fixer/default.nix +++ b/pkgs/development/php-packages/php-cs-fixer/default.nix @@ -1,14 +1,14 @@ { mkDerivation, fetchurl, makeWrapper, lib, php }: let pname = "php-cs-fixer"; - version = "2.18.4"; + version = "3.0.0"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar"; - sha256 = "sha256-ZgnWv7Xd+0XgZ/IPdjVpAEraNNJq2KHB3aUUIG1SirU="; + sha256 = "141rkcr0wbsqnc4s5vg4bk4dmxwigwxa3j0vi5c42b5k1lq3sgwr"; }; phases = [ "installPhase" ]; diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix index 902529806a3b..048ae71ff299 100644 --- a/pkgs/development/php-packages/phpstan/default.nix +++ b/pkgs/development/php-packages/phpstan/default.nix @@ -1,14 +1,14 @@ { mkDerivation, fetchurl, makeWrapper, lib, php }: let pname = "phpstan"; - version = "0.12.82"; + version = "0.12.90"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar"; - sha256 = "sha256-fX7YK4z6xUhSJ2jTCy7bRK13TxXSn/qo7E5DeZlv2Nw="; + sha256 = "0f8858w9b421s3dfz8a56g0mik4zyi1lp88lijw4zs2d94dcdl9s"; }; phases = [ "installPhase" ]; diff --git a/pkgs/development/php-packages/protobuf/default.nix b/pkgs/development/php-packages/protobuf/default.nix index 11db92e92e02..87007b1ea12b 100644 --- a/pkgs/development/php-packages/protobuf/default.nix +++ b/pkgs/development/php-packages/protobuf/default.nix @@ -3,8 +3,8 @@ buildPecl { pname = "protobuf"; - version = "3.17.2"; - sha256 = "0i4npj4sl8ihkzxc6m3vv3nlqk952z9bfwnrk90a9yakw5gfhlz5"; + version = "3.17.3"; + sha256 = "05nn6ps271vwrbr9w08lyyzsszabnqhz1x0vbblg0q8y2xrmb6dl"; buildInputs = [ pcre2 ]; diff --git a/pkgs/development/php-packages/psalm/default.nix b/pkgs/development/php-packages/psalm/default.nix index 01160fc35fe6..b5c5550806f2 100644 --- a/pkgs/development/php-packages/psalm/default.nix +++ b/pkgs/development/php-packages/psalm/default.nix @@ -1,14 +1,14 @@ { mkDerivation, fetchurl, makeWrapper, lib, php }: let pname = "psalm"; - version = "4.6.1"; + version = "4.7.3"; in mkDerivation { inherit pname version; src = fetchurl { url = "https://github.com/vimeo/psalm/releases/download/${version}/psalm.phar"; - sha256 = "sha256-YFeTSIfZ2u1KmpoKV5I7pMMvCk3u5ILktsunvoDnBsg="; + sha256 = "0d8gxkpm4rc00a8br5wzjpglkwx95kr15s4z3cvxyf6iik1j5r47"; }; phases = [ "installPhase" ]; diff --git a/pkgs/development/python-modules/alpha-vantage/default.nix b/pkgs/development/python-modules/alpha-vantage/default.nix new file mode 100644 index 000000000000..7a67f9d6b0d1 --- /dev/null +++ b/pkgs/development/python-modules/alpha-vantage/default.nix @@ -0,0 +1,49 @@ +{ lib +, aiohttp +, aioresponses +, buildPythonPackage +, fetchFromGitHub +, pandas +, pytestCheckHook +, requests +, requests-mock +}: + +buildPythonPackage rec { + pname = "alpha-vantage"; + version = "2.3.1"; + + src = fetchFromGitHub { + owner = "RomelTorres"; + repo = "alpha_vantage"; + rev = version; + sha256 = "0cyw6zw7c7r076rmhnmg905ihwb9r7g511n6gdlph06v74pdls8d"; + }; + + propagatedBuildInputs = [ + aiohttp + requests + ]; + + checkInputs = [ + aioresponses + requests-mock + pandas + pytestCheckHook + ]; + + disabledTestPaths = [ + # Tests require network access + "test_alpha_vantage/test_integration_alphavantage.py" + "test_alpha_vantage/test_integration_alphavantage_async.py" + ]; + + pythonImportsCheck = [ "alpha_vantage" ]; + + meta = with lib; { + description = "Python module for the Alpha Vantage API"; + homepage = "https://github.com/RomelTorres/alpha_vantage"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/bizkaibus/default.nix b/pkgs/development/python-modules/bizkaibus/default.nix new file mode 100644 index 000000000000..7de8f2ca223c --- /dev/null +++ b/pkgs/development/python-modules/bizkaibus/default.nix @@ -0,0 +1,35 @@ +{ lib +, requests +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +}: + +buildPythonPackage rec { + pname = "bizkaibus"; + version = "0.1.4"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "UgaitzEtxebarria"; + repo = "BizkaibusRTPI"; + rev = version; + sha256 = "1v7k9fclndb4x9npzhzj68kbrc3lb3wr6cwal2x46ib207593ckr"; + }; + + propagatedBuildInputs = [ + requests + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ "bizkaibus" ]; + + meta = with lib; { + description = "Python module to get information about Bizkaibus buses"; + homepage = "https://github.com/UgaitzEtxebarria/BizkaibusRTPI"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/dtlssocket/default.nix b/pkgs/development/python-modules/dtlssocket/default.nix new file mode 100644 index 000000000000..28eae55ef9a6 --- /dev/null +++ b/pkgs/development/python-modules/dtlssocket/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildPythonPackage +, fetchPypi +, autoconf +, cython +}: + +buildPythonPackage rec { + pname = "dtlssocket"; + version = "0.1.12"; + + src = fetchPypi { + pname = "DTLSSocket"; + inherit version; + sha256 = "909a8f52f1890ec9e92fd46ef609daa8875c2a1c262c0b61200e73c6c2dd5099"; + }; + + nativeBuildInputs = [ + autoconf + cython + ]; + + # no tests on PyPI, no tags on GitLab + doCheck = false; + + pythonImportsCheck = [ "DTLSSocket" ]; + + meta = with lib; { + description = "Cython wrapper for tinydtls with a Socket like interface"; + homepage = "https://git.fslab.de/jkonra2m/tinydtls-cython"; + license = licenses.epl10; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/fordpass/default.nix b/pkgs/development/python-modules/fordpass/default.nix new file mode 100644 index 000000000000..d3120e7bb6fc --- /dev/null +++ b/pkgs/development/python-modules/fordpass/default.nix @@ -0,0 +1,35 @@ +{ lib +, requests +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +}: + +buildPythonPackage rec { + pname = "fordpass"; + version = "0.0.4"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "clarkd"; + repo = "fordpass-python"; + rev = version; + sha256 = "0i1dlswxc2bv1smc5d4r1adbxbl7sgr1swh2cjfajp73vs43xa0m"; + }; + + propagatedBuildInputs = [ + requests + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ "fordpass" ]; + + meta = with lib; { + description = "Python module for the FordPass API"; + homepage = "https://github.com/clarkd/fordpass-python"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pyhomepilot/default.nix b/pkgs/development/python-modules/pyhomepilot/default.nix new file mode 100644 index 000000000000..12c395ff954b --- /dev/null +++ b/pkgs/development/python-modules/pyhomepilot/default.nix @@ -0,0 +1,35 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pyhomepilot"; + version = "0.0.3"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "nico0302"; + repo = pname; + rev = "v${version}"; + sha256 = "00gmqx8cwsd15iccnlr8ypgqrdg6nw9ha518cfk7pyp8vhw1ziwy"; + }; + + propagatedBuildInputs = [ + aiohttp + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ "pyhomepilot" ]; + + meta = with lib; { + description = "Python module to communicate with the Rademacher HomePilot API"; + homepage = "https://github.com/nico0302/pyhomepilot"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pytradfri/default.nix b/pkgs/development/python-modules/pytradfri/default.nix new file mode 100644 index 000000000000..e06a7e681351 --- /dev/null +++ b/pkgs/development/python-modules/pytradfri/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitHub +, aiocoap +, dtlssocket +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "pytradfri"; + version = "7.0.6"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "home-assistant-libs"; + repo = "pytradfri"; + rev = version; + sha256 = "0ckh2waz3xpz51pmigg1q336igqvvkl2pzncszvblkwv38a0rj3a"; + }; + + propagatedBuildInputs = [ + aiocoap + dtlssocket + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "pytradfri" ]; + + meta = with lib; { + description = "Python package to communicate with the IKEA Trådfri ZigBee Gateway"; + homepage = "https://github.com/home-assistant-libs/pytradfri"; + license = licenses.mit; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/web/protege-distribution/default.nix b/pkgs/development/web/protege-distribution/default.nix index 49d28cb17ee8..3b885e651510 100644 --- a/pkgs/development/web/protege-distribution/default.nix +++ b/pkgs/development/web/protege-distribution/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl, unzip, jre8, copyDesktopItems, makeDesktopItem }: +{ lib, stdenv, fetchurl, unzip, jre8 +, copyDesktopItems +, makeDesktopItem +, iconConvTools +}: stdenv.mkDerivation rec { pname = "protege-distribution"; @@ -9,23 +13,21 @@ stdenv.mkDerivation rec { sha256 = "092x22wyisdnhccx817mqq15sxqdfc7iz4whr4mbvzrd9di6ipjq"; }; - nativeBuildInputs = [ unzip copyDesktopItems ]; + nativeBuildInputs = [ unzip copyDesktopItems iconConvTools ]; + + patches = [ + # Replace logic for searching the install directory with a static cd into $out + ./static-path.patch + # Disable console logging, maintaining only file-based logging + ./disable-console-log.patch + ]; postPatch = '' - # Delete all those commands meant to change directory to the source directory - sed -i -e '3,9d' run.sh - - # Change directory to where the application is stored to avoid heavy patching - # of searchpaths - sed -i -e "2a\ - cd $out/protege" run.sh - - # Set the correct Java executable (Protege is a JRE 8 application) + # Resolve @out@ (introduced by "static-path.patch") to $out, and set the + # correct Java executable (Protege is a JRE 8 application) substituteInPlace run.sh \ - --replace "java -X" "exec ${jre8.outPath}/bin/java -X" \ - - # Silence console logs, since these are not shown in graphical environments - sed -i -e '4,8d;21d' conf/logback.xml + --subst-var-by out $out \ + --replace "java -X" "exec ${jre8.outPath}/bin/java -X" ''; dontConfigure = true; @@ -42,8 +44,8 @@ stdenv.mkDerivation rec { # Move launch script into /bin, giving it a recognizable name install -D run.sh $out/bin/run-protege - # Copy icon to where it can be found - install -D app/Protege.ico $out/share/icons/hicolor/128x128/apps/protege.ico + # Generate and copy icons to where they can be found + icoFileToHiColorTheme app/Protege.ico protege $out # Move everything else under protege/ mkdir $out/protege @@ -56,8 +58,9 @@ stdenv.mkDerivation rec { (makeDesktopItem { name = "Protege"; desktopName = "Protege Desktop"; - icon = "protege.ico"; + icon = "protege"; comment = "OWL2 ontology editor"; + categories = "Development"; exec = "run-protege"; }) ]; diff --git a/pkgs/development/web/protege-distribution/disable-console-log.patch b/pkgs/development/web/protege-distribution/disable-console-log.patch new file mode 100644 index 000000000000..edd6277ffa3a --- /dev/null +++ b/pkgs/development/web/protege-distribution/disable-console-log.patch @@ -0,0 +1,28 @@ +--- a/conf/logback.xml 2021-06-25 00:49:10.446416341 +0900 ++++ b/conf/logback.xml 2021-06-25 00:50:32.889120465 +0900 +@@ -1,13 +1,6 @@ + + + +- +- +- %highlight(%msg) %n +- +- +- +- + + ${user.home}/.Protege/logs/protege.log + true +@@ -18,9 +11,8 @@ + + + +- + + + + +- +\ No newline at end of file ++ diff --git a/pkgs/development/web/protege-distribution/static-path.patch b/pkgs/development/web/protege-distribution/static-path.patch new file mode 100644 index 000000000000..66762f70ca9f --- /dev/null +++ b/pkgs/development/web/protege-distribution/static-path.patch @@ -0,0 +1,16 @@ +--- a/run.sh 2021-06-24 22:30:20.764897745 +0900 ++++ b/run.sh 2021-06-24 22:29:47.211210142 +0900 +@@ -1,12 +1,6 @@ + #!/usr/bin/env bash + +-SOURCE="${BASH_SOURCE[0]}" +-while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink +- DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" +- SOURCE="$(readlink "$SOURCE")" +- [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +-done +-cd "$( cd -P "$( dirname "$SOURCE" )" && pwd )" ++cd @out@/protege + + java -Xmx500M -Xms200M \ + -Xss16M \ diff --git a/pkgs/os-specific/linux/apfs/default.nix b/pkgs/os-specific/linux/apfs/default.nix new file mode 100644 index 000000000000..e27272a61473 --- /dev/null +++ b/pkgs/os-specific/linux/apfs/default.nix @@ -0,0 +1,35 @@ +{ lib +, stdenv +, fetchFromGitHub +, kernel +}: + +stdenv.mkDerivation { + pname = "apfs"; + version = "unstable-2021-06-25-${kernel.version}"; + + src = fetchFromGitHub { + owner = "linux-apfs"; + repo = "linux-apfs-rw"; + rev = "2ce6d06dc73036d113da5166c59393233bf54229"; + sha256 = "sha256-18HFtPr0qcTIZ8njwEtveiPYO+HGlj90bdUoL47UUY0="; + }; + + hardeningDisable = [ "pic" ]; + nativeBuildInputs = kernel.moduleBuildDependencies; + + makeFlags = [ + "KERNELRELEASE=${kernel.modDirVersion}" + "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "INSTALL_MOD_PATH=$(out)" + ]; + + meta = with lib; { + description = "APFS module for linux"; + homepage = "https://github.com/linux-apfs/linux-apfs-rw"; + license = licenses.gpl2Only; + platforms = platforms.linux; + broken = kernel.kernelOlder "4.19"; + maintainers = with maintainers; [ Luflosi ]; + }; +} diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 8fff6d0c3df2..4dcc6a32d058 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -25,7 +25,7 @@ "alert" = ps: with ps; [ ]; "alexa" = ps: with ps; [ aiohttp-cors ]; "almond" = ps: with ps; [ aiohttp-cors pyalmond ]; - "alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage + "alpha_vantage" = ps: with ps; [ alpha-vantage ]; "amazon_polly" = ps: with ps; [ boto3 ]; "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ]; "ambient_station" = ps: with ps; [ aioambient ]; @@ -79,7 +79,7 @@ "bh1750" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense "binary_sensor" = ps: with ps; [ ]; "bitcoin" = ps: with ps; [ blockchain ]; - "bizkaibus" = ps: with ps; [ ]; # missing inputs: bizkaibus + "bizkaibus" = ps: with ps; [ bizkaibus ]; "blackbird" = ps: with ps; [ pyblackbird ]; "blebox" = ps: with ps; [ blebox-uniapi ]; "blink" = ps: with ps; [ blinkpy ]; @@ -880,7 +880,7 @@ "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar "trace" = ps: with ps; [ ]; "trackr" = ps: with ps; [ ]; # missing inputs: pytrackr - "tradfri" = ps: with ps; [ ]; # missing inputs: pytradfri[async] + "tradfri" = ps: with ps; [ pytradfri ]; "trafikverket_train" = ps: with ps; [ pytrafikverket ]; "trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ]; "transmission" = ps: with ps; [ transmissionrpc ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index eb05ecd9e6e4..c31dde4fd3ed 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -703,6 +703,7 @@ in with py.pkgs; buildPythonApplication rec { "toon" "tplink" "trace" + "tradfri" "transmission" "trend" "tts" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 75ef16c57c9c..d6f6191a7a66 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20838,6 +20838,8 @@ in anbox = callPackage ../os-specific/linux/anbox/kmod.nix { }; + apfs = callPackage ../os-specific/linux/apfs { }; + batman_adv = callPackage ../os-specific/linux/batman-adv {}; bcc = callPackage ../os-specific/linux/bcc { diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index 744e40c95dd2..e518ee68f7b8 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -1,9 +1,49 @@ -{ stdenv, lib, pkgs, fetchgit, phpPackage, autoconf, pkg-config, re2c -, gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium -, html-tidy, libzip, zlib, pcre2, libxslt, aspell, openldap, cyrus_sasl -, uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng -, freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit -, readline, rsync, fetchpatch, valgrind +{ stdenv +, lib +, pkgs +, fetchgit +, phpPackage +, autoconf +, pkg-config +, aspell +, bzip2 +, curl +, cyrus_sasl +, enchant1 +, fetchpatch +, freetds +, freetype +, gd +, gettext +, gmp +, html-tidy +, icu64 +, libXpm +, libedit +, libffi +, libiconv +, libjpeg +, libpng +, libsodium +, libwebp +, libxml2 +, libxslt +, libzip +, net-snmp +, oniguruma +, openldap +, openssl +, pam +, pcre2 +, postgresql +, re2c +, readline +, rsync +, sqlite +, unixODBC +, uwimap +, valgrind +, zlib }: lib.makeScope pkgs.newScope (self: with self; { @@ -129,401 +169,475 @@ lib.makeScope pkgs.newScope (self: with self; { xdebug = callPackage ../development/php-packages/xdebug { }; yaml = callPackage ../development/php-packages/yaml { }; - } // (let - # Function to build a single php extension based on the php version. - # - # Name passed is the name of the extension and is automatically used - # to add the configureFlag "--enable-${name}", which can be overriden. - # - # Build inputs is used for extra deps that may be needed. And zendExtension - # will mark the extension as a zend extension or not. - mkExtension = { - name - , configureFlags ? [ "--enable-${name}" ] - , internalDeps ? [] - , postPhpize ? "" - , buildInputs ? [] - , zendExtension ? false - , doCheck ? true - , ... - }@args: stdenv.mkDerivation ((builtins.removeAttrs args [ "name" ]) // { - pname = "php-${name}"; - extensionName = name; + } // ( + let + # Function to build a single php extension based on the php version. + # + # Name passed is the name of the extension and is automatically used + # to add the configureFlag "--enable-${name}", which can be overriden. + # + # Build inputs is used for extra deps that may be needed. And zendExtension + # will mark the extension as a zend extension or not. + mkExtension = + { name + , configureFlags ? [ "--enable-${name}" ] + , internalDeps ? [ ] + , postPhpize ? "" + , buildInputs ? [ ] + , zendExtension ? false + , doCheck ? true + , ... + }@args: stdenv.mkDerivation ((builtins.removeAttrs args [ "name" ]) // { + pname = "php-${name}"; + extensionName = name; - inherit (php.unwrapped) version src; - sourceRoot = "php-${php.version}/ext/${name}"; + inherit (php.unwrapped) version src; + sourceRoot = "php-${php.version}/ext/${name}"; - enableParallelBuilding = true; - nativeBuildInputs = [ php.unwrapped autoconf pkg-config re2c ]; - inherit configureFlags internalDeps buildInputs - zendExtension doCheck; + enableParallelBuilding = true; + nativeBuildInputs = [ php.unwrapped autoconf pkg-config re2c ]; + inherit configureFlags internalDeps buildInputs + zendExtension doCheck; - prePatch = "pushd ../.."; - postPatch = "popd"; + prePatch = "pushd ../.."; + postPatch = "popd"; - preConfigure = '' - nullglobRestore=$(shopt -p nullglob) - shopt -u nullglob # To make ?-globbing work + 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 + # Some extensions have a config0.m4 or config9.m4 + if [ -f config?.m4 ]; then + mv config?.m4 config.m4 + fi - $nullglobRestore - phpize - ${postPhpize} - ${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/${name}.so $out/lib/php/extensions/${name}.so - mkdir -p $dev/include - ${rsync}/bin/rsync -r --filter="+ */" \ - --filter="+ *.h" \ - --filter="- *" \ - --prune-empty-dirs \ - . $dev/include/ - ''; + $nullglobRestore + phpize + ${postPhpize} + ${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/${name}.so $out/lib/php/extensions/${name}.so + mkdir -p $dev/include + ${rsync}/bin/rsync -r --filter="+ */" \ + --filter="+ *.h" \ + --filter="- *" \ + --prune-empty-dirs \ + . $dev/include/ + ''; - meta = { - description = "PHP upstream extension: ${name}"; - inherit (php.meta) maintainers homepage license; - }; - }); + meta = { + description = "PHP upstream extension: ${name}"; + inherit (php.meta) maintainers homepage license; + }; + }); - # This list contains build instructions for different modules that one may - # want to build. - # - # These will be passed as arguments to mkExtension above. - extensionData = [ - { name = "bcmath"; } - { name = "bz2"; buildInputs = [ bzip2 ]; configureFlags = [ "--with-bz2=${bzip2.dev}" ]; } - { name = "calendar"; } - { name = "ctype"; } - { name = "curl"; - buildInputs = [ curl ]; - configureFlags = [ "--with-curl=${curl.dev}" ]; - doCheck = false; } - { name = "dba"; } - { name = "dom"; - buildInputs = [ libxml2 ]; - patches = [ - # https://github.com/php/php-src/pull/7030 - (fetchpatch { - url = "https://github.com/php/php-src/commit/4cc261aa6afca2190b1b74de39c3caa462ec6f0b.patch"; - sha256 = "11qsdiwj1zmpfc2pgh6nr0sn7qa1nyjg4jwf69cgwnd57qfjcy4k"; - excludes = [ "ext/dom/tests/bug43364.phpt" "ext/dom/tests/bug80268.phpt" ]; - }) - ]; - # For some reason `patch` fails to remove these files correctly. - # Since `postPatch` is already used in `mkExtension`, we have to make it here. - preCheck = '' - rm tests/bug43364.phpt - rm tests/bug80268.phpt - ''; - configureFlags = [ "--enable-dom" ] - # Required to build on darwin. - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; } - { name = "enchant"; - buildInputs = [ enchant1 ]; - configureFlags = [ "--with-enchant=${enchant1}" ]; - # enchant1 doesn't build on darwin. - enable = (!stdenv.isDarwin); - doCheck = false; } - { name = "exif"; doCheck = false; } - { name = "ffi"; buildInputs = [ libffi ]; enable = lib.versionAtLeast php.version "7.4"; } - { name = "fileinfo"; buildInputs = [ pcre2 ]; } - { name = "filter"; buildInputs = [ pcre2 ]; } - { name = "ftp"; buildInputs = [ openssl ]; } - { name = "gd"; - buildInputs = [ zlib gd ]; - configureFlags = [ - "--enable-gd" - "--with-external-gd=${gd.dev}" - "--enable-gd-jis-conv" - ]; - doCheck = false; - enable = lib.versionAtLeast php.version "7.4"; } - { name = "gd"; - buildInputs = [ zlib gd libXpm ]; - configureFlags = [ - "--with-gd=${gd.dev}" - "--with-freetype-dir=${freetype.dev}" - "--with-jpeg-dir=${libjpeg.dev}" - "--with-png-dir=${libpng.dev}" - "--with-webp-dir=${libwebp}" - "--with-xpm-dir=${libXpm.dev}" - "--with-zlib-dir=${zlib.dev}" - "--enable-gd-jis-conv" - ]; - doCheck = false; - enable = lib.versionOlder php.version "7.4"; } - { name = "gettext"; - buildInputs = [ gettext ]; - patches = lib.optionals (lib.versionOlder php.version "7.4") [ - (fetchpatch { - url = "https://github.com/php/php-src/commit/632b6e7aac207194adc3d0b41615bfb610757f41.patch"; - sha256 = "0xn3ivhc4p070vbk5yx0mzj2n7p04drz3f98i77amr51w0vzv046"; - }) - ]; - postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' ''; - configureFlags = [ "--with-gettext=${gettext}" ]; } - { name = "gmp"; - buildInputs = [ gmp ]; - configureFlags = [ "--with-gmp=${gmp.dev}" ]; } - { name = "hash"; enable = lib.versionOlder php.version "7.4"; } - { name = "iconv"; - configureFlags = [ - "--with-iconv${lib.optionalString stdenv.isDarwin "=${libiconv}"}" - ]; - patches = lib.optionals (lib.versionOlder php.version "8.0") [ - # Header path defaults to FHS location, preventing the configure script from detecting errno support. - (fetchpatch { - url = "https://github.com/fossar/nix-phps/raw/263861a8c9bdafd7abe44db6db4ef0179643680c/pkgs/iconv-header-path.patch"; - sha256 = "7GHnEUu+hcsQ4h3itDwk6p46ZKfib9JZ2XpWlXrdn6E="; - }) - ]; - doCheck = false; } - { name = "imap"; - buildInputs = [ uwimap openssl pam pcre2 ]; - configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ]; - # uwimap doesn't build on darwin. - enable = (!stdenv.isDarwin); } - { name = "intl"; - buildInputs = [ icu64 ]; - patches = lib.optionals (lib.versionOlder php.version "7.4") [ - (fetchpatch { - url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch"; - sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4"; - }) - ]; - } - { name = "json"; enable = lib.versionOlder php.version "8.0"; } - { name = "ldap"; - buildInputs = [ openldap cyrus_sasl ]; - configureFlags = [ - "--with-ldap" - "LDAP_DIR=${openldap.dev}" - "LDAP_INCDIR=${openldap.dev}/include" - "LDAP_LIBDIR=${openldap.out}/lib" - ] ++ lib.optionals stdenv.isLinux [ - "--with-ldap-sasl=${cyrus_sasl.dev}" - ]; - doCheck = false; } - { name = "mbstring"; buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [ - pcre2 - ]; doCheck = false; } - { name = "mysqli"; - internalDeps = [ php.extensions.mysqlnd ]; - configureFlags = [ "--with-mysqli=mysqlnd" "--with-mysql-sock=/run/mysqld/mysqld.sock" ]; - doCheck = false; } - { name = "mysqlnd"; - buildInputs = [ zlib openssl ]; - # The configure script doesn't correctly add library link - # flags, so we add them to the variable used by the Makefile - # when linking. - MYSQLND_SHARED_LIBADD = "-lssl -lcrypto"; - # The configure script builds a config.h which is never - # included. Let's include it in the main header file - # included by all .c-files. - patches = [ - (pkgs.writeText "mysqlnd_config.patch" '' - --- a/ext/mysqlnd/mysqlnd.h - +++ b/ext/mysqlnd/mysqlnd.h - @@ -1,3 +1,6 @@ - +#ifdef HAVE_CONFIG_H - +#include "config.h" - +#endif - /* - +----------------------------------------------------------------------+ - | Copyright (c) The PHP Group | - '') - ] ++ lib.optionals (lib.versionOlder php.version "7.4.8") [ - (pkgs.writeText "mysqlnd_fix_compression.patch" '' - --- a/ext/mysqlnd/mysqlnd.h - +++ b/ext/mysqlnd/mysqlnd.h - @@ -48,7 +48,7 @@ - #define MYSQLND_DBG_ENABLED 0 - #endif + # This list contains build instructions for different modules that one may + # want to build. + # + # These will be passed as arguments to mkExtension above. + extensionData = [ + { name = "bcmath"; } + { name = "bz2"; buildInputs = [ bzip2 ]; configureFlags = [ "--with-bz2=${bzip2.dev}" ]; } + { name = "calendar"; } + { name = "ctype"; } + { + name = "curl"; + buildInputs = [ curl ]; + configureFlags = [ "--with-curl=${curl.dev}" ]; + doCheck = false; + } + { name = "dba"; } + { + name = "dom"; + buildInputs = [ libxml2 ]; + patches = [ + # https://github.com/php/php-src/pull/7030 + (fetchpatch { + url = "https://github.com/php/php-src/commit/4cc261aa6afca2190b1b74de39c3caa462ec6f0b.patch"; + sha256 = "11qsdiwj1zmpfc2pgh6nr0sn7qa1nyjg4jwf69cgwnd57qfjcy4k"; + excludes = [ "ext/dom/tests/bug43364.phpt" "ext/dom/tests/bug80268.phpt" ]; + }) + ]; + # For some reason `patch` fails to remove these files correctly. + # Since `postPatch` is already used in `mkExtension`, we have to make it here. + preCheck = '' + rm tests/bug43364.phpt + rm tests/bug80268.phpt + ''; + configureFlags = [ "--enable-dom" ] + # Required to build on darwin. + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; + } + { + name = "enchant"; + buildInputs = [ enchant1 ]; + configureFlags = [ "--with-enchant=${enchant1}" ]; + # enchant1 doesn't build on darwin. + enable = (!stdenv.isDarwin); + doCheck = false; + } + { name = "exif"; doCheck = false; } + { name = "ffi"; buildInputs = [ libffi ]; enable = lib.versionAtLeast php.version "7.4"; } + { name = "fileinfo"; buildInputs = [ pcre2 ]; } + { name = "filter"; buildInputs = [ pcre2 ]; } + { name = "ftp"; buildInputs = [ openssl ]; } + { + name = "gd"; + buildInputs = [ zlib gd ]; + configureFlags = [ + "--enable-gd" + "--with-external-gd=${gd.dev}" + "--enable-gd-jis-conv" + ]; + doCheck = false; + enable = lib.versionAtLeast php.version "7.4"; + } + { + name = "gd"; + buildInputs = [ zlib gd libXpm ]; + configureFlags = [ + "--with-gd=${gd.dev}" + "--with-freetype-dir=${freetype.dev}" + "--with-jpeg-dir=${libjpeg.dev}" + "--with-png-dir=${libpng.dev}" + "--with-webp-dir=${libwebp}" + "--with-xpm-dir=${libXpm.dev}" + "--with-zlib-dir=${zlib.dev}" + "--enable-gd-jis-conv" + ]; + doCheck = false; + enable = lib.versionOlder php.version "7.4"; + } + { + name = "gettext"; + buildInputs = [ gettext ]; + patches = lib.optionals (lib.versionOlder php.version "7.4") [ + (fetchpatch { + url = "https://github.com/php/php-src/commit/632b6e7aac207194adc3d0b41615bfb610757f41.patch"; + sha256 = "0xn3ivhc4p070vbk5yx0mzj2n7p04drz3f98i77amr51w0vzv046"; + }) + ]; + postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' ''; + configureFlags = [ "--with-gettext=${gettext}" ]; + } + { + name = "gmp"; + buildInputs = [ gmp ]; + configureFlags = [ "--with-gmp=${gmp.dev}" ]; + } + { name = "hash"; enable = lib.versionOlder php.version "7.4"; } + { + name = "iconv"; + configureFlags = [ + "--with-iconv${lib.optionalString stdenv.isDarwin "=${libiconv}"}" + ]; + patches = lib.optionals (lib.versionOlder php.version "8.0") [ + # Header path defaults to FHS location, preventing the configure script from detecting errno support. + (fetchpatch { + url = "https://github.com/fossar/nix-phps/raw/263861a8c9bdafd7abe44db6db4ef0179643680c/pkgs/iconv-header-path.patch"; + sha256 = "7GHnEUu+hcsQ4h3itDwk6p46ZKfib9JZ2XpWlXrdn6E="; + }) + ]; + doCheck = false; + } + { + name = "imap"; + buildInputs = [ uwimap openssl pam pcre2 ]; + configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ]; + # uwimap doesn't build on darwin. + enable = (!stdenv.isDarwin); + } + { + name = "intl"; + buildInputs = [ icu64 ]; + patches = lib.optionals (lib.versionOlder php.version "7.4") [ + (fetchpatch { + url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch"; + sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4"; + }) + ]; + } + { name = "json"; enable = lib.versionOlder php.version "8.0"; } + { + name = "ldap"; + buildInputs = [ openldap cyrus_sasl ]; + configureFlags = [ + "--with-ldap" + "LDAP_DIR=${openldap.dev}" + "LDAP_INCDIR=${openldap.dev}/include" + "LDAP_LIBDIR=${openldap.out}/lib" + ] ++ lib.optionals stdenv.isLinux [ + "--with-ldap-sasl=${cyrus_sasl.dev}" + ]; + doCheck = false; + } + { + name = "mbstring"; + buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [ + pcre2 + ]; + doCheck = false; + } + { + name = "mysqli"; + internalDeps = [ php.extensions.mysqlnd ]; + configureFlags = [ "--with-mysqli=mysqlnd" "--with-mysql-sock=/run/mysqld/mysqld.sock" ]; + doCheck = false; + } + { + name = "mysqlnd"; + buildInputs = [ zlib openssl ]; + # The configure script doesn't correctly add library link + # flags, so we add them to the variable used by the Makefile + # when linking. + MYSQLND_SHARED_LIBADD = "-lssl -lcrypto"; + # The configure script builds a config.h which is never + # included. Let's include it in the main header file + # included by all .c-files. + patches = [ + (pkgs.writeText "mysqlnd_config.patch" '' + --- a/ext/mysqlnd/mysqlnd.h + +++ b/ext/mysqlnd/mysqlnd.h + @@ -1,3 +1,6 @@ + +#ifdef HAVE_CONFIG_H + +#include "config.h" + +#endif + /* + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + '') + ] ++ lib.optionals (lib.versionOlder php.version "7.4.8") [ + (pkgs.writeText "mysqlnd_fix_compression.patch" '' + --- a/ext/mysqlnd/mysqlnd.h + +++ b/ext/mysqlnd/mysqlnd.h + @@ -48,7 +48,7 @@ + #define MYSQLND_DBG_ENABLED 0 + #endif - -#if defined(MYSQLND_COMPRESSION_WANTED) && defined(HAVE_ZLIB) - +#if defined(MYSQLND_COMPRESSION_WANTED) - #define MYSQLND_COMPRESSION_ENABLED 1 - #endif - '') - ]; - postPhpize = lib.optionalString (lib.versionOlder php.version "7.4") '' - substituteInPlace configure --replace '$OPENSSL_LIBDIR' '${openssl}/lib' \ - --replace '$OPENSSL_INCDIR' '${openssl.dev}/include' - ''; } - # oci8 (7.4, 7.3, 7.2) - # odbc (7.4, 7.3, 7.2) - { name = "opcache"; - buildInputs = [ pcre2 ] ++ lib.optionals (lib.versionAtLeast php.version "8.0" && !stdenv.isDarwin && lib.meta.availableOn stdenv.hostPlatform valgrind) [ - valgrind.dev - ]; - patches = lib.optionals (lib.versionOlder php.version "7.4") [ - (pkgs.writeText "zend_file_cache_config.patch" '' - --- a/ext/opcache/zend_file_cache.c - +++ b/ext/opcache/zend_file_cache.c - @@ -27,9 +27,9 @@ - #include "ext/standard/md5.h" - #endif + -#if defined(MYSQLND_COMPRESSION_WANTED) && defined(HAVE_ZLIB) + +#if defined(MYSQLND_COMPRESSION_WANTED) + #define MYSQLND_COMPRESSION_ENABLED 1 + #endif + '') + ]; + postPhpize = lib.optionalString (lib.versionOlder php.version "7.4") '' + substituteInPlace configure --replace '$OPENSSL_LIBDIR' '${openssl}/lib' \ + --replace '$OPENSSL_INCDIR' '${openssl.dev}/include' + ''; + } + # oci8 (7.4, 7.3, 7.2) + # odbc (7.4, 7.3, 7.2) + { + name = "opcache"; + buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [ + valgrind.dev + ]; + patches = lib.optionals (lib.versionOlder php.version "7.4") [ + (pkgs.writeText "zend_file_cache_config.patch" '' + --- a/ext/opcache/zend_file_cache.c + +++ b/ext/opcache/zend_file_cache.c + @@ -27,9 +27,9 @@ + #include "ext/standard/md5.h" + #endif - +#include "ZendAccelerator.h" - #ifdef HAVE_OPCACHE_FILE_CACHE + +#include "ZendAccelerator.h" + #ifdef HAVE_OPCACHE_FILE_CACHE - -#include "ZendAccelerator.h" - #include "zend_file_cache.h" - #include "zend_shared_alloc.h" - #include "zend_accelerator_util_funcs.h" - '') ]; - zendExtension = true; - doCheck = !(lib.versionOlder php.version "7.4"); - # Tests launch the builtin webserver. - __darwinAllowLocalNetworking = true; } - { name = "openssl"; - buildInputs = [ openssl ]; - configureFlags = [ "--with-openssl" ]; - doCheck = false; } - { name = "pcntl"; } - { name = "pdo"; doCheck = false; } - { name = "pdo_dblib"; - internalDeps = [ php.extensions.pdo ]; - configureFlags = [ "--with-pdo-dblib=${freetds}" ]; - # Doesn't seem to work on darwin. - enable = (!stdenv.isDarwin); - doCheck = false; } - # pdo_firebird (7.4, 7.3, 7.2) - { name = "pdo_mysql"; - internalDeps = with php.extensions; [ pdo mysqlnd ]; - configureFlags = [ "--with-pdo-mysql=mysqlnd" "PHP_MYSQL_SOCK=/run/mysqld/mysqld.sock" ]; - doCheck = false; } - # pdo_oci (7.4, 7.3, 7.2) - { name = "pdo_odbc"; - internalDeps = [ php.extensions.pdo ]; - configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ]; - doCheck = false; } - { name = "pdo_pgsql"; - internalDeps = [ php.extensions.pdo ]; - configureFlags = [ "--with-pdo-pgsql=${postgresql}" ]; - doCheck = false; } - { name = "pdo_sqlite"; - internalDeps = [ php.extensions.pdo ]; - buildInputs = [ sqlite ]; - configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ]; - doCheck = false; } - { name = "pgsql"; - buildInputs = [ pcre2 ]; - configureFlags = [ "--with-pgsql=${postgresql}" ]; - doCheck = false; } - { name = "posix"; doCheck = false; } - { name = "pspell"; configureFlags = [ "--with-pspell=${aspell}" ]; } - { name = "readline"; - buildInputs = [ libedit readline ]; - configureFlags = [ "--with-readline=${readline.dev}" ]; - postPhpize = lib.optionalString (lib.versionOlder php.version "7.4") '' - substituteInPlace configure --replace 'as_fn_error $? "Please reinstall libedit - I cannot find readline.h" "$LINENO" 5' ':' - ''; - doCheck = false; - } - { name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); } - { name = "shmop"; } - { name = "simplexml"; - buildInputs = [ libxml2 pcre2 ]; - configureFlags = [ "--enable-simplexml" ] - # Required to build on darwin. - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; } - { name = "snmp"; - buildInputs = [ net-snmp openssl ]; - configureFlags = [ "--with-snmp" ]; - # net-snmp doesn't build on darwin. - enable = (!stdenv.isDarwin); - doCheck = false; } - { name = "soap"; - buildInputs = [ libxml2 ]; - configureFlags = [ "--enable-soap" ] - # Required to build on darwin. - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; - doCheck = false; } - { name = "sockets"; doCheck = false; } - { name = "sodium"; buildInputs = [ libsodium ]; } - { name = "sqlite3"; buildInputs = [ sqlite ]; } - { name = "sysvmsg"; } - { name = "sysvsem"; } - { name = "sysvshm"; } - { name = "tidy"; configureFlags = [ "--with-tidy=${html-tidy}" ]; doCheck = false; } - { name = "tokenizer"; } - { name = "wddx"; - buildInputs = [ libxml2 ]; - internalDeps = [ php.extensions.session ]; - configureFlags = [ "--enable-wddx" "--with-libxml-dir=${libxml2.dev}" ]; - # Removed in php 7.4. - enable = lib.versionOlder php.version "7.4"; } - { name = "xml"; - buildInputs = [ libxml2 ]; - configureFlags = [ "--enable-xml" ] - # Required to build on darwin. - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; - doCheck = false; } - { name = "xmlreader"; - buildInputs = [ libxml2 ]; - internalDeps = [ php.extensions.dom ]; - NIX_CFLAGS_COMPILE = [ "-I../.." "-DHAVE_DOM" ]; - configureFlags = [ "--enable-xmlreader" ] - # Required to build on darwin. - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; } - { name = "xmlrpc"; - buildInputs = [ libxml2 libiconv ]; - # xmlrpc was unbundled in 8.0 https://php.watch/versions/8.0/xmlrpc - enable = lib.versionOlder php.version "8.0"; - configureFlags = [ "--with-xmlrpc" ] - # Required to build on darwin. - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; } - { name = "xmlwriter"; - buildInputs = [ libxml2 ]; - configureFlags = [ "--enable-xmlwriter" ] - # Required to build on darwin. - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; } - { name = "xsl"; - buildInputs = [ libxslt libxml2 ]; - doCheck = lib.versionOlder php.version "8.0"; - configureFlags = [ "--with-xsl=${libxslt.dev}" ]; } - { name = "zend_test"; } - { name = "zip"; - buildInputs = [ libzip pcre2 ]; - configureFlags = [ "--with-zip" ] - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ] - ++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ]; - doCheck = false; } - { name = "zlib"; - buildInputs = [ zlib ]; - patches = lib.optionals (lib.versionOlder php.version "7.4") [ - # Derived from https://github.com/php/php-src/commit/f16b012116d6c015632741a3caada5b30ef8a699 - ../development/interpreters/php/zlib-darwin-tests.patch - ]; - configureFlags = [ "--with-zlib" ] - ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]; } - ]; + -#include "ZendAccelerator.h" + #include "zend_file_cache.h" + #include "zend_shared_alloc.h" + #include "zend_accelerator_util_funcs.h" + '') + ]; + zendExtension = true; + doCheck = !(lib.versionOlder php.version "7.4"); + # Tests launch the builtin webserver. + __darwinAllowLocalNetworking = true; + } + { + name = "openssl"; + buildInputs = [ openssl ]; + configureFlags = [ "--with-openssl" ]; + doCheck = false; + } + { name = "pcntl"; } + { name = "pdo"; doCheck = false; } + { + name = "pdo_dblib"; + internalDeps = [ php.extensions.pdo ]; + configureFlags = [ "--with-pdo-dblib=${freetds}" ]; + # Doesn't seem to work on darwin. + enable = (!stdenv.isDarwin); + doCheck = false; + } + # pdo_firebird (7.4, 7.3, 7.2) + { + name = "pdo_mysql"; + internalDeps = with php.extensions; [ pdo mysqlnd ]; + configureFlags = [ "--with-pdo-mysql=mysqlnd" "PHP_MYSQL_SOCK=/run/mysqld/mysqld.sock" ]; + doCheck = false; + } + # pdo_oci (7.4, 7.3, 7.2) + { + name = "pdo_odbc"; + internalDeps = [ php.extensions.pdo ]; + configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ]; + doCheck = false; + } + { + name = "pdo_pgsql"; + internalDeps = [ php.extensions.pdo ]; + configureFlags = [ "--with-pdo-pgsql=${postgresql}" ]; + doCheck = false; + } + { + name = "pdo_sqlite"; + internalDeps = [ php.extensions.pdo ]; + buildInputs = [ sqlite ]; + configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ]; + doCheck = false; + } + { + name = "pgsql"; + buildInputs = [ pcre2 ]; + configureFlags = [ "--with-pgsql=${postgresql}" ]; + doCheck = false; + } + { name = "posix"; doCheck = false; } + { name = "pspell"; configureFlags = [ "--with-pspell=${aspell}" ]; } + { + name = "readline"; + buildInputs = [ libedit readline ]; + configureFlags = [ "--with-readline=${readline.dev}" ]; + postPhpize = lib.optionalString (lib.versionOlder php.version "7.4") '' + substituteInPlace configure --replace 'as_fn_error $? "Please reinstall libedit - I cannot find readline.h" "$LINENO" 5' ':' + ''; + doCheck = false; + } + { name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); } + { name = "shmop"; } + { + name = "simplexml"; + buildInputs = [ libxml2 pcre2 ]; + configureFlags = [ "--enable-simplexml" ] + # Required to build on darwin. + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; + } + { + name = "snmp"; + buildInputs = [ net-snmp openssl ]; + configureFlags = [ "--with-snmp" ]; + # net-snmp doesn't build on darwin. + enable = (!stdenv.isDarwin); + doCheck = false; + } + { + name = "soap"; + buildInputs = [ libxml2 ]; + configureFlags = [ "--enable-soap" ] + # Required to build on darwin. + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; + doCheck = false; + } + { name = "sockets"; doCheck = false; } + { name = "sodium"; buildInputs = [ libsodium ]; } + { name = "sqlite3"; buildInputs = [ sqlite ]; } + { name = "sysvmsg"; } + { name = "sysvsem"; } + { name = "sysvshm"; } + { name = "tidy"; configureFlags = [ "--with-tidy=${html-tidy}" ]; doCheck = false; } + { name = "tokenizer"; } + { + name = "wddx"; + buildInputs = [ libxml2 ]; + internalDeps = [ php.extensions.session ]; + configureFlags = [ "--enable-wddx" "--with-libxml-dir=${libxml2.dev}" ]; + # Removed in php 7.4. + enable = lib.versionOlder php.version "7.4"; + } + { + name = "xml"; + buildInputs = [ libxml2 ]; + configureFlags = [ "--enable-xml" ] + # Required to build on darwin. + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; + doCheck = false; + } + { + name = "xmlreader"; + buildInputs = [ libxml2 ]; + internalDeps = [ php.extensions.dom ]; + NIX_CFLAGS_COMPILE = [ "-I../.." "-DHAVE_DOM" ]; + configureFlags = [ "--enable-xmlreader" ] + # Required to build on darwin. + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; + } + { + name = "xmlrpc"; + buildInputs = [ libxml2 libiconv ]; + # xmlrpc was unbundled in 8.0 https://php.watch/versions/8.0/xmlrpc + enable = lib.versionOlder php.version "8.0"; + configureFlags = [ "--with-xmlrpc" ] + # Required to build on darwin. + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; + } + { + name = "xmlwriter"; + buildInputs = [ libxml2 ]; + configureFlags = [ "--enable-xmlwriter" ] + # Required to build on darwin. + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; + } + { + name = "xsl"; + buildInputs = [ libxslt libxml2 ]; + doCheck = lib.versionOlder php.version "8.0"; + configureFlags = [ "--with-xsl=${libxslt.dev}" ]; + } + { name = "zend_test"; } + { + name = "zip"; + buildInputs = [ libzip pcre2 ]; + configureFlags = [ "--with-zip" ] + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ] + ++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ]; + doCheck = false; + } + { + name = "zlib"; + buildInputs = [ zlib ]; + patches = lib.optionals (lib.versionOlder php.version "7.4") [ + # Derived from https://github.com/php/php-src/commit/f16b012116d6c015632741a3caada5b30ef8a699 + ../development/interpreters/php/zlib-darwin-tests.patch + ]; + configureFlags = [ "--with-zlib" ] + ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]; + } + ]; - # Convert the list of attrs: - # [ { name = ; ... } ... ] - # to a list of - # [ { name = ; value = ; } ... ] - # - # which we later use listToAttrs to make all attrs available by name. - # - # Also filter out extensions based on the enable property. - namedExtensions = builtins.map (drv: { - name = drv.name; - value = mkExtension drv; - }) (builtins.filter (i: i.enable or true) extensionData); + # Convert the list of attrs: + # [ { name = ; ... } ... ] + # to a list of + # [ { name = ; value = ; } ... ] + # + # which we later use listToAttrs to make all attrs available by name. + # + # Also filter out extensions based on the enable property. + namedExtensions = builtins.map + (drv: { + name = drv.name; + value = mkExtension drv; + }) + (builtins.filter (i: i.enable or true) extensionData); - # Produce the final attribute set of all extensions defined. - in builtins.listToAttrs namedExtensions); + # Produce the final attribute set of all extensions defined. + in + builtins.listToAttrs namedExtensions + ); }) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 723751e7877c..b18a424ea36a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -397,6 +397,8 @@ in { alot = callPackage ../development/python-modules/alot { }; + alpha-vantage = callPackage ../development/python-modules/alpha-vantage { }; + altair = callPackage ../development/python-modules/altair { }; amazon_kclpy = callPackage ../development/python-modules/amazon_kclpy { }; @@ -1097,6 +1099,8 @@ in { bitvavo-aio = callPackage ../development/python-modules/bitvavo-aio { }; + bizkaibus = callPackage ../development/python-modules/bizkaibus { }; + bjoern = callPackage ../development/python-modules/bjoern { }; bkcharts = callPackage ../development/python-modules/bkcharts { }; @@ -2186,6 +2190,8 @@ in { dsmr-parser = callPackage ../development/python-modules/dsmr-parser { }; + dtlssocket = callPackage ../development/python-modules/dtlssocket { }; + duckdb = callPackage ../development/python-modules/duckdb { inherit (pkgs) duckdb; }; @@ -2676,6 +2682,8 @@ in { forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { }; + fordpass = callPackage ../development/python-modules/fordpass { }; + fortiosapi = callPackage ../development/python-modules/fortiosapi { }; FormEncode = callPackage ../development/python-modules/FormEncode { }; @@ -5992,6 +6000,8 @@ in { pyhomematic = callPackage ../development/python-modules/pyhomematic { }; + pyhomepilot = callPackage ../development/python-modules/pyhomepilot { }; + pyhs100 = callPackage ../development/python-modules/pyhs100 { }; pyi2cflash = callPackage ../development/python-modules/pyi2cflash { }; @@ -7130,6 +7140,8 @@ in { cudaSupport = false; }; + pytradfri = callPackage ../development/python-modules/pytradfri { }; + pytrafikverket = callPackage ../development/python-modules/pytrafikverket { }; pytrends = callPackage ../development/python-modules/pytrends { };