odoo15: init at 15.0-20230720

This contribution adds `odoo15` as a fixed version. To allow reusing the
existing test for Odoo, I made the package attribute configurable. To
reference the test for `odoo15` in `passthru` I added it to
`all-tests.nix`.

Changed files
+132 -1
nixos
pkgs
applications
finance
odoo
top-level
+1
nixos/tests/all-tests.nix
···
invidious = handleTest ./invidious.nix {};
oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {};
odoo = handleTest ./odoo.nix {};
# 9pnet_virtio used to mount /nix partition doesn't support
# hibernation. This test happens to work on x86_64-linux but
# not on other platforms.
···
invidious = handleTest ./invidious.nix {};
oci-containers = handleTestOn ["aarch64-linux" "x86_64-linux"] ./oci-containers.nix {};
odoo = handleTest ./odoo.nix {};
+
odoo15 = handleTest ./odoo.nix { package = pkgs.odoo15; };
# 9pnet_virtio used to mount /nix partition doesn't support
# hibernation. This test happens to work on x86_64-linux but
# not on other platforms.
+2 -1
nixos/tests/odoo.nix
···
-
import ./make-test-python.nix ({ pkgs, lib, ...} : {
name = "odoo";
meta.maintainers = with lib.maintainers; [ mkg20001 ];
···
services.odoo = {
enable = true;
domain = "localhost";
};
};
···
+
import ./make-test-python.nix ({ pkgs, lib, package ? pkgs.odoo, ...} : {
name = "odoo";
meta.maintainers = with lib.maintainers; [ mkg20001 ];
···
services.odoo = {
enable = true;
+
package = package;
domain = "localhost";
};
};
+128
pkgs/applications/finance/odoo/odoo15.nix
···
···
+
{ stdenv, lib, fetchFromGitHub, fetchurl, python310, nodePackages, wkhtmltopdf
+
, nixosTests }:
+
+
let
+
python = python310.override {
+
packageOverrides = self: super: {
+
pypdf2 = super.pypdf2.overridePythonAttrs (old: rec {
+
version = "1.28.6";
+
format = "setuptools";
+
+
src = fetchFromGitHub {
+
owner = "py-pdf";
+
repo = "pypdf";
+
rev = version;
+
fetchSubmodules = true;
+
hash = "sha256-WnRbsy/PJcotZqY9mJPLadrYqkXykOVifLIbDyNf4s4=";
+
};
+
+
nativeBuildInputs = [ ];
+
+
nativeCheckInputs = with self; [ pytestCheckHook pillow ];
+
});
+
flask = super.flask.overridePythonAttrs (old: rec {
+
version = "2.1.3";
+
src = old.src.override {
+
inherit version;
+
hash = "sha256-FZcuUBffBXXD1sCQuhaLbbkCWeYgrI1+qBOjlrrVtss=";
+
};
+
});
+
werkzeug = super.werkzeug.overridePythonAttrs (old: rec {
+
version = "2.1.2";
+
src = old.src.override {
+
inherit version;
+
hash = "sha256-HOCOgJPtZ9Y41jh5/Rujc1gX96gN42dNKT9ZhPJftuY=";
+
};
+
});
+
};
+
};
+
+
odoo_version = "15.0";
+
odoo_release = "20230720";
+
in python.pkgs.buildPythonApplication rec {
+
pname = "odoo15";
+
version = "${odoo_version}.${odoo_release}";
+
+
format = "setuptools";
+
+
# latest release is at https://github.com/odoo/docker/blob/master/15.0/Dockerfile
+
src = fetchurl {
+
url =
+
"https://nightly.odoo.com/${odoo_version}/nightly/src/odoo_${version}.tar.gz";
+
name = "${pname}-${version}";
+
hash = "sha256-XH4cN2OrPvMjN3VcDJFxCacNxKkrN65jwhUN1dnGwgo="; # odoo
+
};
+
+
unpackPhase = ''
+
tar xfz $src
+
cd odoo*
+
'';
+
+
# needs some investigation
+
doCheck = false;
+
+
makeWrapperArgs = [
+
"--prefix"
+
"PATH"
+
":"
+
"${lib.makeBinPath [ wkhtmltopdf nodePackages.rtlcss ]}"
+
];
+
+
propagatedBuildInputs = with python.pkgs; [
+
babel
+
chardet
+
decorator
+
docutils
+
ebaysdk
+
freezegun
+
gevent
+
greenlet
+
idna
+
jinja2
+
libsass
+
lxml
+
markupsafe
+
mock
+
num2words
+
ofxparse
+
passlib
+
pillow
+
polib
+
psutil
+
psycopg2
+
pydot
+
pyopenssl
+
pypdf2
+
pyserial
+
python-dateutil
+
python-ldap
+
python-stdnum
+
pytz
+
pyusb
+
qrcode
+
reportlab
+
requests
+
setuptools
+
vobject
+
werkzeug
+
xlrd
+
xlsxwriter
+
xlwt
+
zeep
+
];
+
+
# takes 5+ minutes and there are not files to strip
+
dontStrip = true;
+
+
passthru = {
+
updateScript = ./update.sh;
+
tests = { inherit (nixosTests) odoo15; };
+
};
+
+
meta = with lib; {
+
description = "Open Source ERP and CRM";
+
homepage = "https://www.odoo.com/";
+
license = licenses.lgpl3Only;
+
maintainers = with maintainers; [ mkg20001 ];
+
};
+
}
+1
pkgs/top-level/all-packages.nix
···
};
odoo = callPackage ../applications/finance/odoo { };
odafileconverter = libsForQt5.callPackage ../applications/graphics/odafileconverter { };
···
};
odoo = callPackage ../applications/finance/odoo { };
+
odoo15 = callPackage ../applications/finance/odoo/odoo15.nix { };
odafileconverter = libsForQt5.callPackage ../applications/graphics/odafileconverter { };