From 46465b3cdcc6c3da95376c8a5212ae322e094cde Mon Sep 17 00:00:00 2001 From: Thomas Nixon Date: Sat, 19 Apr 2025 01:51:05 +0100 Subject: [PATCH 1/3] maintainers: add tomjnixon --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index e5b22f2d6af7..706e493ce439 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -24640,6 +24640,12 @@ githubId = 13155277; name = "Tom Houle"; }; + tomjnixon = { + name = "Tom Nixon"; + email = "nixpkgs@tomn.co.uk"; + github = "tomjnixon"; + githubId = 178226; + }; tomkoid = { email = "tomaszierl@outlook.com"; name = "Tomkoid"; From b3c14f245671ed1b6e1aac1cf6db21135e0ab48b Mon Sep 17 00:00:00 2001 From: Thomas Nixon Date: Sat, 19 Apr 2025 02:08:36 +0100 Subject: [PATCH 2/3] python3Packages.opencamlib: init at 2023.01.11 --- .../python-modules/opencamlib/default.nix | 67 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 69 insertions(+) create mode 100644 pkgs/development/python-modules/opencamlib/default.nix diff --git a/pkgs/development/python-modules/opencamlib/default.nix b/pkgs/development/python-modules/opencamlib/default.nix new file mode 100644 index 000000000000..82b817adae30 --- /dev/null +++ b/pkgs/development/python-modules/opencamlib/default.nix @@ -0,0 +1,67 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + scikit-build-core, + cmake, + ninja, + stdenv, + llvmPackages, + boost, + python, +}: + +buildPythonPackage rec { + pname = "opencamlib"; + version = "2023.01.11"; + pyproject = true; + + src = fetchFromGitHub { + owner = "aewallin"; + repo = "opencamlib"; + tag = version; + hash = "sha256-pUj71PdWo902dqF9O6SLnpvFooFU2OfLBv8hAVsH/iA="; + }; + + build-system = [ + scikit-build-core + ]; + + buildInputs = [ + boost + ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ]; + + nativeBuildInputs = [ + cmake + ninja + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'version = "2022.12.18"' 'version = "${version}"' + ''; + + dontUseCmakeConfigure = true; + env.CMAKE_ARGS = "-DVERSION_STRING=${version} -DBoost_USE_STATIC_LIBS=OFF"; + + pythonImportsCheck = [ "opencamlib" ]; + + checkPhase = '' + runHook preCheck + + pushd examples/python + # this produces a lot of non-actionalble lines on stdout + ${python.interpreter} test.py > /dev/null + popd + + runHook postCheck + ''; + + meta = { + homepage = "https://github.com/aewallin/opencamlib"; + description = "Open source computer aided manufacturing algorithms library"; + # from src/deb/debian_copyright.txt + license = lib.licenses.lgpl21Plus; + maintainers = with lib.maintainers; [ tomjnixon ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ebcbb4eefda6..7d5afb755c8d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10243,6 +10243,8 @@ self: super: with self; { openbabel = callPackage ../development/libraries/openbabel { inherit (self) python; }; }; + opencamlib = callPackage ../development/python-modules/opencamlib { }; + opencensus = callPackage ../development/python-modules/opencensus { }; opencensus-context = callPackage ../development/python-modules/opencensus-context { }; From 9ae57299e170486b5f82e3559ea71213d89ef4e9 Mon Sep 17 00:00:00 2001 From: Thomas Nixon Date: Sat, 19 Apr 2025 02:26:23 +0100 Subject: [PATCH 3/3] freecad: use opencamlib This allows use of some experimental CAM features, which must be explicitly enabled: https://wiki.freecad.org/CAM_experimental --- pkgs/by-name/fr/freecad/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/fr/freecad/package.nix b/pkgs/by-name/fr/freecad/package.nix index 642c2fdf55a4..cd3e21f4533d 100644 --- a/pkgs/by-name/fr/freecad/package.nix +++ b/pkgs/by-name/fr/freecad/package.nix @@ -44,6 +44,7 @@ let gitpython ifcopenshell matplotlib + opencamlib pivy ply py-slvs @@ -104,6 +105,7 @@ freecad-utils.makeCustomizable ( medfile mpi ode + opencamlib pivy ply # for openSCAD file support py-slvs