{ pkgs ? import {} }: with pkgs; #{ poetry2nix, runCommand, fetchFromGitHub, openldap, cyrus_sasl, pkg-config, python37 }: let version = "14.0"; commit = "122ba218265cbb2a157765b56bc961cad4fe1cc3"; poetryPackages = poetry2nix.mkPoetryPackages rec { pyproject = ./pyproject.toml; poetrylock = ./poetry.lock; python = python37; overrides = []; }; openupgrade = fetchFromGitHub { owner = "OCA"; repo = "OpenUpgrade"; rev = "df0168d3c9321e24d4ecccd2da18b92ad980a0ae"; sha256 = "08mjf9sic8ns6351x13n4jbsa9mkqbq1gbk98r5y0p087bmjs8cw"; }; poetryApp = poetry2nix.mkPoetryApplication rec { src = fetchFromGitHub { owner = "odoo"; repo = "odoo"; rev = commit; sha256 = "1ipsv12s0b5290g9v2268f7m6x8m85inf6cnqs7gwbj1pxj6gilg"; }; overrides = poetry2nix.overrides.withDefaults (self: super: { cffi = poetryPackages.python.pkgs.cffi; pyldap = super.pyldap.overridePythonAttrs (old: { buildInputs = old.buildInputs ++ [ openldap cyrus_sasl ]; nativeBuildInputs = old.nativeBuildInputs ++ [ pkg-config ]; preConfigure = old.preConfigure or "" + '' export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${cyrus_sasl.dev}/include/sasl" ''; }); }); pyproject = ./pyproject.toml; poetrylock = ./poetry.lock; python = python37; nativeBuildInputs = [ openldap ]; preBuild = '' mv addons/* odoo/addons cp -a ${openupgrade}/openupgrade_framework odoo/addons cp -a ${openupgrade}/openupgrade_scripts odoo/addons ''; }; in runCommand "python3.7-odoo-${version}" {} '' mkdir -p $out cp -a ${poetryApp}/* $out/ chmod -R u+w $out find $out -type f -exec sed -i -e "s@${poetryApp}@$out@g" {} \; cd $out/lib/python3.7/site-packages/odoo patch -p2 < ${./odoo.patch} ''