{ stdenv, fetchFromGitHub, composerEnv, fetchurl, gearmand, callPackage, php74, config_file ? "/var/lib/status_engine/ui.yml" }: let gearman = php74.buildPecl rec { version = "2.1.0"; pname = "gearman"; src = fetchurl { url = "https://github.com/php/pecl-networking-gearman/archive/${pname}-${version}.tar.gz"; sha256 = "077wh1kxpp9pfmsm3xixplis85zx5fpbhilvz1d5pic6rb0ali5s"; }; configureFlags = [ "--with-gearman=${gearmand}" ]; nativeBuildInputs = [ gearmand ]; }; in (composerEnv.override { php = php74.withExtensions({ enabled, all }: enabled ++ (with all; [gearman redis mbstring bcmath json iconv])); }).buildPackage ( import ./worker_php_packages.nix { inherit composerEnv fetchurl; } // rec { name = "${pname}-${version}"; pname = "worker"; version = "02267d4-master"; src = fetchFromGitHub { owner = "statusengine"; repo = "worker"; rev = "02267d495ae69137d6765dc6b0f453f80216f1cf"; sha256 = "06ci4mkmifdf1z15yc8rxl44ppi45vjz4s136yaccq9d8vk9iyd4"; fetchSubmodules = true; }; postInstall = '' ln -s ${config_file} $out/etc/config.yml ''; preInstall = '' cp ${./worker_composer.lock} $out/composer.lock ''; })