packages,shells: add axidraw
This commit is contained in:
parent
195c2e4d1c
commit
efb6657ea2
|
@ -2,11 +2,11 @@
|
|||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1702900294,
|
||||
"narHash": "sha256-pt7sSoJYNw3n8YtXw0Z/Nnr6/PfY2YrjDvqboErXnRM=",
|
||||
"lastModified": 1705204527,
|
||||
"narHash": "sha256-WVz9WdaFBhAwO/7A+HlW8HPJ4VQ8QnpCD1WZAcAPneo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "886c9aee6ca9324e127f9c2c4e6f68c2641c8256",
|
||||
"rev": "dd5621df6dcb90122b50da5ec31c411a0de3e538",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
40
flake.nix
40
flake.nix
|
@ -13,18 +13,50 @@
|
|||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
};
|
||||
inherit (pkgs) lib;
|
||||
names = builtins.attrNames (self.overlays.default pkgs pkgs);
|
||||
in {
|
||||
devShells = { zephyr = pkgs.callPackage ./shells/zephyr { }; };
|
||||
devShells = {
|
||||
axidraw = pkgs.callPackage ./shells/axidraw { };
|
||||
zephyr = pkgs.callPackage ./shells/zephyr { };
|
||||
};
|
||||
|
||||
formatter = pkgs.nixfmt;
|
||||
packages = self.overlays.default pkgs pkgs;
|
||||
packages = builtins.listToAttrs (lib.concatMap (name:
|
||||
let pkg = pkgs.${name};
|
||||
in lib.optional (builtins.typeOf pkg == "set") {
|
||||
inherit name;
|
||||
value = if lib.isDerivation pkg then
|
||||
pkg
|
||||
else
|
||||
pkg // {
|
||||
type = "derivation";
|
||||
name = "dummy-attrset";
|
||||
};
|
||||
}) names);
|
||||
}) // {
|
||||
overlays.default = final: prev: {
|
||||
jlink = final.callPackage ./packages/jlink { };
|
||||
ipsw = final.callPackage ./packages/ipsw { };
|
||||
jlink = final.callPackage ./packages/jlink { };
|
||||
zephyrPackages = final.callPackage ./packages/zephyr { };
|
||||
|
||||
inherit (final.python3.pkgs) axicli;
|
||||
|
||||
inkscape-extensions = prev.inkscape-extensions // {
|
||||
axidraw = final.callPackage ./packages/axidraw/inkscape.nix { };
|
||||
};
|
||||
|
||||
kernelPatches = prev.kernelPatches
|
||||
// final.callPackage ./packages/kernelPatches { };
|
||||
zephyrPackages = final.callPackage ./packages/zephyr { };
|
||||
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(pythonFinal: pythonPrev: {
|
||||
inherit (final.callPackage ./packages/axidraw/modules.nix {
|
||||
inherit pythonFinal pythonPrev;
|
||||
})
|
||||
ink-extensions plotink axidrawinternal axicli;
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
32
packages/axidraw/inkscape.nix
Normal file
32
packages/axidraw/inkscape.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ stdenv, lib, fetchzip, autoPatchelfHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "axidraw-inkscape";
|
||||
version = "394";
|
||||
|
||||
src = fetchzip {
|
||||
url =
|
||||
"https://cdn.evilmadscientist.com/dl/ad/public/${version}/AxiDraw_${version}_LinX86.zip";
|
||||
hash = "sha256-LoNi7mR30spELnEYikRuYFvlgUWP3w8KRbQ6Ug108vU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p "$out/share/inkscape/extensions"
|
||||
cp -rt "$out/share/inkscape/extensions" *.py *.inx axidraw_deps build_deps svg_fonts
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Inkscape extension for managing axidraw";
|
||||
homepage =
|
||||
"https://wiki.evilmadscientist.com/Axidraw_Software_Installation";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ artemist ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
65
packages/axidraw/modules.nix
Normal file
65
packages/axidraw/modules.nix
Normal file
|
@ -0,0 +1,65 @@
|
|||
{ pythonFinal, pythonPrev, fetchPypi, fetchzip }:
|
||||
let
|
||||
inherit (pythonFinal) buildPythonPackage;
|
||||
|
||||
axicliVersion = "3.9.0";
|
||||
axicliVer = builtins.replaceStrings [ "." ] [ "" ] axicliVersion;
|
||||
axicliSrc = fetchzip {
|
||||
url =
|
||||
"https://github.com/evil-mad/axidraw/releases/download/v${axicliVersion}/AxiDraw_API_${axicliVer}.zip";
|
||||
hash = "sha256-RPh00jiiH1RqqKZ10ylFP1J+iBYl5VOmZ8g0vFH8Ibg=";
|
||||
};
|
||||
in {
|
||||
ink-extensions = buildPythonPackage rec {
|
||||
pname = "ink_extensions";
|
||||
version = "1.3.2";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-9dPmoLBhIoJGBaQwOtGMZnOS9mGGel13dQXkaJdexyc=";
|
||||
};
|
||||
propagatedBuildInputs = with pythonFinal; [ lxml ];
|
||||
};
|
||||
|
||||
plotink = buildPythonPackage rec {
|
||||
pname = "plotink";
|
||||
version = "1.8.0";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-YxSASXBNXqRyGp7x6jlTU0UYJHJkiKdlEzfDMzUtKXk=";
|
||||
};
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = with pythonFinal; [ ink-extensions pyserial ];
|
||||
};
|
||||
|
||||
axidrawinternal = buildPythonPackage {
|
||||
pname = "axidrawinternal";
|
||||
version = axicliVersion;
|
||||
format = "wheel";
|
||||
src =
|
||||
"${axicliSrc}/prebuilt_dependencies/axidrawinternal-${axicliVersion}-py2.py3-none-any.whl";
|
||||
propagatedBuildInputs = with pythonFinal; [
|
||||
ink-extensions
|
||||
requests
|
||||
packaging
|
||||
plotink
|
||||
pyclipper
|
||||
tqdm
|
||||
];
|
||||
};
|
||||
|
||||
axicli = buildPythonPackage {
|
||||
pname = "axicli";
|
||||
version = axicliVersion;
|
||||
format = "setuptools";
|
||||
src = axicliSrc;
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = with pythonFinal; [
|
||||
ink-extensions
|
||||
lxml
|
||||
plotink
|
||||
pyserial
|
||||
requests
|
||||
axidrawinternal
|
||||
];
|
||||
};
|
||||
}
|
10
shells/axidraw/default.nix
Normal file
10
shells/axidraw/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ lib, mkShell, python3, inkscape-with-extensions, inkscape-extensions }:
|
||||
mkShell {
|
||||
packages = [
|
||||
(inkscape-with-extensions.override {
|
||||
inkscapeExtensions = [ inkscape-extensions.axidraw ];
|
||||
})
|
||||
python3
|
||||
] ++ (with python3.pkgs; [ ipython requests axicli ]);
|
||||
|
||||
}
|
Loading…
Reference in a new issue