Compare commits
3 commits
be4c446e1d
...
4dc6a6a61a
Author | SHA1 | Date | |
---|---|---|---|
Artemis Tosini | 4dc6a6a61a | ||
Artemis Tosini | 4ff4e7b859 | ||
Artemis Tosini | 99c062b6af |
|
@ -2,11 +2,11 @@
|
|||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1711532879,
|
||||
"narHash": "sha256-VUvOxVoxBokiZETZdZU97MnJpeKa19KqSOPlC84QB9Y=",
|
||||
"lastModified": 1717459389,
|
||||
"narHash": "sha256-I8/plBsua4/NZ5bKgj+z7/ThiWuud1YFwLsn1QQ5PgE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2230a20f2b5a14f2db3d7f13a2dc3c22517e790b",
|
||||
"rev": "3b01abcc24846ae49957b30f4345bab4b3f1d14b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
114
flake.nix
114
flake.nix
|
@ -6,8 +6,14 @@
|
|||
utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, utils }:
|
||||
utils.lib.eachDefaultSystem (system:
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
utils,
|
||||
}:
|
||||
utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
|
@ -15,62 +21,68 @@
|
|||
};
|
||||
inherit (pkgs) lib;
|
||||
names = builtins.attrNames (self.overlays.default pkgs pkgs);
|
||||
in {
|
||||
in
|
||||
{
|
||||
devShells = {
|
||||
plotter = pkgs.callPackage ./shells/plotter { };
|
||||
ryujinx = pkgs.callPackage ./shells/ryujinx { };
|
||||
zephyr = pkgs.callPackage ./shells/zephyr { };
|
||||
};
|
||||
|
||||
formatter = pkgs.nixfmt;
|
||||
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: {
|
||||
attic = final.callPackage ./packages/attic { };
|
||||
attic-client = final.attic.override { clientOnly = true; };
|
||||
cups-dymo-patched = final.callPackage ./packages/cups-dymo { };
|
||||
hactoolnet = final.callPackage ./packages/hactoolnet { };
|
||||
ipsw = final.callPackage ./packages/ipsw { };
|
||||
jlink = final.callPackage ./packages/jlink { };
|
||||
stlink-tool = final.callPackage ./packages/stlink-tool { };
|
||||
zephyrPackages = final.callPackage ./packages/zephyr { };
|
||||
formatter = pkgs.nixfmt-rfc-style;
|
||||
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: {
|
||||
apotris = final.callPackage ./packages/apotris { };
|
||||
attic = final.callPackage ./packages/attic { };
|
||||
attic-client = final.attic.override { clientOnly = true; };
|
||||
cups-dymo-patched = final.callPackage ./packages/cups-dymo { };
|
||||
hactoolnet = final.callPackage ./packages/hactoolnet { };
|
||||
ipsw = final.callPackage ./packages/ipsw { };
|
||||
jlink = final.callPackage ./packages/jlink { };
|
||||
stlink-tool = final.callPackage ./packages/stlink-tool { };
|
||||
zephyrPackages = final.callPackage ./packages/zephyr { };
|
||||
|
||||
inherit (final.python3.pkgs) axicli vpype;
|
||||
inherit (final.python3.pkgs) axicli vpype;
|
||||
|
||||
inkscape-extensions = prev.inkscape-extensions // {
|
||||
axidraw = final.callPackage ./packages/axidraw/inkscape.nix { };
|
||||
};
|
||||
|
||||
kernelPatches = prev.kernelPatches
|
||||
// final.callPackage ./packages/kernelPatches { };
|
||||
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(pythonFinal: pythonPrev:
|
||||
{
|
||||
pnoise = final.callPackage ./packages/pnoise {
|
||||
python3 = pythonFinal;
|
||||
};
|
||||
vpype =
|
||||
final.callPackage ./packages/vpype { python3 = pythonFinal; };
|
||||
vpype-gcode = final.callPackage ./packages/vpype-gcode {
|
||||
python3 = pythonFinal;
|
||||
};
|
||||
} // (final.callPackage ./packages/axidraw/modules.nix {
|
||||
python3 = pythonFinal;
|
||||
}))
|
||||
];
|
||||
inkscape-extensions = prev.inkscape-extensions // {
|
||||
axidraw = final.callPackage ./packages/axidraw/inkscape.nix { };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
kernelPatches = prev.kernelPatches // final.callPackage ./packages/kernelPatches { };
|
||||
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(
|
||||
pythonFinal: pythonPrev:
|
||||
{
|
||||
pnoise = final.callPackage ./packages/pnoise { python3 = pythonFinal; };
|
||||
vpype = final.callPackage ./packages/vpype { python3 = pythonFinal; };
|
||||
vpype-gcode = final.callPackage ./packages/vpype-gcode { python3 = pythonFinal; };
|
||||
}
|
||||
// (final.callPackage ./packages/axidraw/modules.nix { python3 = pythonFinal; })
|
||||
)
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
78
packages/apotris/default.nix
Normal file
78
packages/apotris/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitea,
|
||||
cmake,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
python3,
|
||||
xxd,
|
||||
|
||||
SDL2,
|
||||
SDL2_mixer,
|
||||
libX11,
|
||||
libXScrnSaver,
|
||||
libXcursor,
|
||||
libXext,
|
||||
libXfixes,
|
||||
libXi,
|
||||
libXrandr,
|
||||
libogg,
|
||||
libopus,
|
||||
zlib,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "apotris";
|
||||
version = "4.0.2";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "gitea.com";
|
||||
owner = "akouzoukos";
|
||||
repo = pname;
|
||||
fetchSubmodules = true;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-w9uv7A1UIn82ORyyvT8dxWHUK9chVfJ191bnI53sANU=";
|
||||
};
|
||||
|
||||
patches = [ ./paths.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
xxd
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
SDL2_mixer
|
||||
libX11
|
||||
libXScrnSaver
|
||||
libXcursor
|
||||
libXext
|
||||
libXfixes
|
||||
libXi
|
||||
libXrandr
|
||||
libogg
|
||||
libopus
|
||||
zlib
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs --build tools
|
||||
substituteAllInPlace source/liba_window.cpp
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Multiplatform open-source block stacking game";
|
||||
mainProgram = "Apotris";
|
||||
homepage = "https://apotris.com";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [ artemist ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
52
packages/apotris/paths.patch
Normal file
52
packages/apotris/paths.patch
Normal file
|
@ -0,0 +1,52 @@
|
|||
diff --git a/source/liba_window.cpp b/source/liba_window.cpp
|
||||
index 5c05b92..b3dfacf 100644
|
||||
--- a/source/liba_window.cpp
|
||||
+++ b/source/liba_window.cpp
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <iostream>
|
||||
#include <dirent.h>
|
||||
#include <cstdio>
|
||||
+#include <cstdlib>
|
||||
|
||||
#include "def.h"
|
||||
|
||||
@@ -85,7 +86,7 @@ void windowInit(){
|
||||
|
||||
refreshWindowSize();
|
||||
|
||||
- loadAudio("");
|
||||
+ loadAudio("@out@/");
|
||||
|
||||
nanotime_step_init(&stepper, (uint64_t) (NANOTIME_NSEC_PER_SEC / FPS_TARGET), nanotime_now_max(),nanotime_now,nanotime_sleep);
|
||||
|
||||
@@ -334,9 +335,20 @@ void toggleRendering(bool r){
|
||||
|
||||
void initRumble(){};
|
||||
|
||||
+static std::string savePath() {
|
||||
+ char *home;
|
||||
+ if((home = getenv("XDG_DATA_HOME")) != NULL) {
|
||||
+ return std::string(home) + "/Apotris.sav";
|
||||
+ }
|
||||
+ if((home = getenv("HOME")) != NULL) {
|
||||
+ return std::string(home) + "/.local/share/Apotris.sav";
|
||||
+ }
|
||||
+ return "Apotris.sav";
|
||||
+}
|
||||
+
|
||||
void loadSavefile(){
|
||||
|
||||
- std::ifstream input("Apotris.sav",std::ios::binary | std::ios::in);
|
||||
+ std::ifstream input(savePath(),std::ios::binary | std::ios::in);
|
||||
|
||||
if(savefile == nullptr)
|
||||
savefile = new Save();
|
||||
@@ -355,7 +367,7 @@ void loadSavefile(){
|
||||
|
||||
void saveSavefile(){
|
||||
|
||||
- std::ofstream output("Apotris.sav",std::ios::binary | std::ios::out);
|
||||
+ std::ofstream output(savePath(),std::ios::binary | std::ios::out);
|
||||
|
||||
char * dst = (char * ) savefile;
|
||||
|
|
@ -1,14 +1,28 @@
|
|||
# Based on original package.nix from zhaofengli
|
||||
|
||||
{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, installShellFiles, nix
|
||||
, boost, darwin
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
installShellFiles,
|
||||
nix,
|
||||
boost,
|
||||
darwin,
|
||||
|
||||
# Only build the client
|
||||
, clientOnly ? false
|
||||
# Only build the client
|
||||
clientOnly ? false,
|
||||
|
||||
# Only build certain crates
|
||||
, crates ?
|
||||
if clientOnly then [ "attic-client" ] else [ "attic-client" "attic-server" ]
|
||||
crates ?
|
||||
if clientOnly then
|
||||
[ "attic-client" ]
|
||||
else
|
||||
[
|
||||
"attic-client"
|
||||
"attic-server"
|
||||
],
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
|
@ -27,32 +41,34 @@ rustPlatform.buildRustPackage {
|
|||
allowBuiltinFetchGit = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config installShellFiles ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
buildInputs = [ nix boost ] ++ lib.optionals stdenv.isDarwin
|
||||
(with darwin.apple_sdk.frameworks; [ SystemConfiguration ]);
|
||||
buildInputs = [
|
||||
nix
|
||||
boost
|
||||
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ SystemConfiguration ]);
|
||||
|
||||
cargoBuildFlags = lib.concatMapStrings (c: "-p ${c} ") crates;
|
||||
|
||||
ATTIC_DISTRIBUTOR = "artemist";
|
||||
|
||||
# Workaround for https://github.com/NixOS/nixpkgs/issues/166205
|
||||
env = lib.optionalAttrs stdenv.cc.isClang {
|
||||
NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
|
||||
};
|
||||
env = lib.optionalAttrs stdenv.cc.isClang { NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; };
|
||||
|
||||
# Recursive Nix is not stable yet
|
||||
doCheck = false;
|
||||
|
||||
postInstall =
|
||||
lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
|
||||
if [[ -f $out/bin/attic ]]; then
|
||||
installShellCompletion --cmd attic \
|
||||
--bash <($out/bin/attic gen-completions bash) \
|
||||
--zsh <($out/bin/attic gen-completions zsh) \
|
||||
--fish <($out/bin/attic gen-completions fish)
|
||||
fi
|
||||
'';
|
||||
postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
|
||||
if [[ -f $out/bin/attic ]]; then
|
||||
installShellCompletion --cmd attic \
|
||||
--bash <($out/bin/attic gen-completions bash) \
|
||||
--zsh <($out/bin/attic gen-completions zsh) \
|
||||
--fish <($out/bin/attic gen-completions fish)
|
||||
fi
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Multi-tenant Nix binary cache system";
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
{ stdenv, lib, fetchzip, autoPatchelfHook }:
|
||||
{
|
||||
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";
|
||||
url = "https://cdn.evilmadscientist.com/dl/ad/public/${version}/AxiDraw_${version}_LinX86.zip";
|
||||
hash = "sha256-LoNi7mR30spELnEYikRuYFvlgUWP3w8KRbQ6Ug108vU=";
|
||||
};
|
||||
|
||||
|
@ -23,8 +27,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with lib; {
|
||||
description = "Inkscape extension for managing axidraw";
|
||||
homepage =
|
||||
"https://wiki.evilmadscientist.com/Axidraw_Software_Installation";
|
||||
homepage = "https://wiki.evilmadscientist.com/Axidraw_Software_Installation";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ artemist ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
|
|
|
@ -1,22 +1,26 @@
|
|||
{ python3, fetchPypi, fetchzip, fetchurl }:
|
||||
{
|
||||
python3,
|
||||
fetchPypi,
|
||||
fetchzip,
|
||||
fetchurl,
|
||||
}:
|
||||
let
|
||||
inherit (python3) 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";
|
||||
url = "https://github.com/evil-mad/axidraw/releases/download/v${axicliVersion}/AxiDraw_API_${axicliVer}.zip";
|
||||
hash = "sha256-RPh00jiiH1RqqKZ10ylFP1J+iBYl5VOmZ8g0vFH8Ibg=";
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
drawsvg = buildPythonPackage {
|
||||
pname = "drawsvg";
|
||||
version = "2.3.0";
|
||||
format = "wheel";
|
||||
src = fetchurl {
|
||||
url =
|
||||
"https://files.pythonhosted.org/packages/27/4f/65d72a014026495d8d2847e66bbe542cf899e50f087a50e0abab9c58ef3c/drawsvg-2.3.0-py3-none-any.whl";
|
||||
url = "https://files.pythonhosted.org/packages/27/4f/65d72a014026495d8d2847e66bbe542cf899e50f087a50e0abab9c58ef3c/drawsvg-2.3.0-py3-none-any.whl";
|
||||
sha256 = "1gqa5q5b7y38isyw1kgq2lprw5709jv13pic9s6bk80dbm32pbck";
|
||||
};
|
||||
};
|
||||
|
@ -39,15 +43,17 @@ in {
|
|||
hash = "sha256-YxSASXBNXqRyGp7x6jlTU0UYJHJkiKdlEzfDMzUtKXk=";
|
||||
};
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = with python3; [ ink-extensions pyserial ];
|
||||
propagatedBuildInputs = with python3; [
|
||||
ink-extensions
|
||||
pyserial
|
||||
];
|
||||
};
|
||||
|
||||
axidrawinternal = buildPythonPackage {
|
||||
pname = "axidrawinternal";
|
||||
version = axicliVersion;
|
||||
format = "wheel";
|
||||
src =
|
||||
"${axicliSrc}/prebuilt_dependencies/axidrawinternal-${axicliVersion}-py2.py3-none-any.whl";
|
||||
src = "${axicliSrc}/prebuilt_dependencies/axidrawinternal-${axicliVersion}-py2.py3-none-any.whl";
|
||||
propagatedBuildInputs = with python3; [
|
||||
ink-extensions
|
||||
requests
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
{ stdenv, lib, fetchFromGitHub, autoconf, automake, boost, cups, ... }:
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
autoconf,
|
||||
automake,
|
||||
boost,
|
||||
cups,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "cups-dymo";
|
||||
|
@ -11,9 +20,15 @@ stdenv.mkDerivation {
|
|||
hash = "sha256-IwdTJxCOKyqsl1B5UQqCDpepz04U4VF+G3mqaJTQJ/w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoconf automake ];
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
];
|
||||
|
||||
buildInputs = [ boost cups ];
|
||||
buildInputs = [
|
||||
boost
|
||||
cups
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
touch NEWS AUTHORS INSTALL README ChangeLog
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, buildDotnetModule, dotnetCorePackages, fetchFromGitHub }:
|
||||
{
|
||||
lib,
|
||||
buildDotnetModule,
|
||||
dotnetCorePackages,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "hactoolnet";
|
||||
|
@ -22,8 +27,7 @@ buildDotnetModule rec {
|
|||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Thealexbarney/LibHac";
|
||||
description =
|
||||
"Example program for LibHac, which implements parts of Horizon OS";
|
||||
description = "Example program for LibHac, which implements parts of Horizon OS";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
# This file was automatically generated by passthru.fetch-deps.
|
||||
# Please dont edit it manually, your changes might get overwritten!
|
||||
|
||||
{ fetchNuGet }: [
|
||||
{ fetchNuGet }:
|
||||
[
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.AspNetCore.App.Ref";
|
||||
version = "7.0.16";
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
{ lib, buildGo122Module, fetchFromGitHub, unicorn, libusb, pkg-config }:
|
||||
{
|
||||
lib,
|
||||
buildGo122Module,
|
||||
fetchFromGitHub,
|
||||
unicorn,
|
||||
libusb,
|
||||
pkg-config,
|
||||
}:
|
||||
|
||||
buildGo122Module rec {
|
||||
pname = "ipsw";
|
||||
|
@ -15,14 +22,20 @@ buildGo122Module rec {
|
|||
patches = [ ./fix-build.patch ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ unicorn libusb ];
|
||||
buildInputs = [
|
||||
unicorn
|
||||
libusb
|
||||
];
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/blacktop/ipsw/cmd/ipsw/cmd.AppVersion=${version}"
|
||||
"-X github.com/blacktop/ipsw/cmd/ipsw/cmd.AppBuildTime=19700101"
|
||||
];
|
||||
tags = [ "unicorn" "libusb" ];
|
||||
tags = [
|
||||
"unicorn"
|
||||
"libusb"
|
||||
];
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,10 +1,29 @@
|
|||
{ stdenv, lib, fetchurl, autoPatchelfHook, fontconfig, freetype, libgcc, libusb
|
||||
, libICE, libSM, ncurses5, udev, libX11, libXext, libXcursor, libXfixes
|
||||
, libXrender, libXrandr }:
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
autoPatchelfHook,
|
||||
fontconfig,
|
||||
freetype,
|
||||
libgcc,
|
||||
libusb,
|
||||
libICE,
|
||||
libSM,
|
||||
ncurses5,
|
||||
udev,
|
||||
libX11,
|
||||
libXext,
|
||||
libXcursor,
|
||||
libXfixes,
|
||||
libXrender,
|
||||
libXrandr,
|
||||
}:
|
||||
let
|
||||
conf = (lib.importJSON ./version.json).${stdenv.hostPlatform.system} or (throw
|
||||
"unsupported system ${stdenv.hostPlatform.system}");
|
||||
in stdenv.mkDerivation rec {
|
||||
conf =
|
||||
(lib.importJSON ./version.json).${stdenv.hostPlatform.system}
|
||||
or (throw "unsupported system ${stdenv.hostPlatform.system}");
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jlink";
|
||||
version = conf.version;
|
||||
|
||||
|
@ -52,7 +71,12 @@ in stdenv.mkDerivation rec {
|
|||
homepage = "https://www.segger.com/downloads/jlink";
|
||||
description = "SEGGER J-Link";
|
||||
license = licenses.unfree;
|
||||
platforms = [ "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"i686-linux"
|
||||
"armv7l-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
maintainers = with maintainers; [ artemist ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ ... }: {
|
||||
{ ... }:
|
||||
{
|
||||
increase_max_topo = {
|
||||
name = "increase-max-topo";
|
||||
patch = ./increase-max-topo.patch;
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{ lib, python3, fetchFromGitHub }:
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
python3.buildPythonPackage rec {
|
||||
pname = "pnoise";
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ stdenv, fetchFromGitHub, pkg-config, libusb1 }:
|
||||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
libusb1,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "stlink-tool";
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{ lib, python3, fetchFromGitHub }:
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
python3.buildPythonPackage rec {
|
||||
pname = "vpype";
|
||||
|
@ -12,7 +16,11 @@ python3.buildPythonPackage rec {
|
|||
hash = "sha256-waSHw4DBgozcBwNTgZwGfvmg0UHaENJIGrCqnMu0ruU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3; [ click numpy vpype ];
|
||||
propagatedBuildInputs = with python3; [
|
||||
click
|
||||
numpy
|
||||
vpype
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "gcode extension for vpype";
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, python3, fetchFromGitHub, withViewer ? true }:
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
withViewer ? true,
|
||||
}:
|
||||
|
||||
python3.buildPythonPackage rec {
|
||||
pname = "vpype";
|
||||
|
@ -15,33 +20,36 @@ python3.buildPythonPackage rec {
|
|||
|
||||
nativeBuildInputs = with python3; [ poetry-core ];
|
||||
|
||||
propagatedBuildInputs = with python3;
|
||||
([
|
||||
asteval
|
||||
cachetools
|
||||
click
|
||||
multiprocess
|
||||
numpy
|
||||
pnoise
|
||||
pyphen
|
||||
scipy
|
||||
shapely
|
||||
svgelements
|
||||
svgwrite
|
||||
tomli
|
||||
] ++ lib.optionals withViewer [
|
||||
glcontext
|
||||
matplotlib
|
||||
moderngl
|
||||
pillow
|
||||
pyside6
|
||||
]);
|
||||
propagatedBuildInputs =
|
||||
with python3;
|
||||
(
|
||||
[
|
||||
asteval
|
||||
cachetools
|
||||
click
|
||||
multiprocess
|
||||
numpy
|
||||
pnoise
|
||||
pyphen
|
||||
scipy
|
||||
shapely
|
||||
svgelements
|
||||
svgwrite
|
||||
tomli
|
||||
]
|
||||
++ lib.optionals withViewer [
|
||||
glcontext
|
||||
matplotlib
|
||||
moderngl
|
||||
pillow
|
||||
pyside6
|
||||
]
|
||||
);
|
||||
|
||||
# No checks since they want OpenGL and a GUI
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
"The Swiss-Army-knife command-line tool for plotter vector graphics";
|
||||
description = "The Swiss-Army-knife command-line tool for plotter vector graphics";
|
||||
homepage = "https://vpype.readthedocs.io/en/latest/";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ artemist ];
|
||||
|
|
|
@ -1,19 +1,27 @@
|
|||
{ callPackage, stdenv, lib, fetchFromGitHub }:
|
||||
{
|
||||
callPackage,
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
let
|
||||
assets = lib.importJSON ./assets.json;
|
||||
modules = lib.importJSON ./modules.json;
|
||||
buildModule = module: callPackage ./module.nix { inherit module; };
|
||||
in {
|
||||
in
|
||||
{
|
||||
host-tools = callPackage ./host-tools.nix {
|
||||
inherit (assets) version hosts;
|
||||
sources = assets.host_tools;
|
||||
};
|
||||
|
||||
toolchains = lib.mapAttrs (target: sources:
|
||||
toolchains = lib.mapAttrs (
|
||||
target: sources:
|
||||
callPackage ./toolchain.nix {
|
||||
inherit target sources;
|
||||
inherit (assets) version hosts;
|
||||
}) assets.toolchains;
|
||||
}
|
||||
) assets.toolchains;
|
||||
|
||||
sdk = callPackage ./sdk.nix {
|
||||
inherit (assets) version hosts;
|
||||
|
|
|
@ -1,9 +1,21 @@
|
|||
{ stdenv, fetchurl, hosts, lib, python3, sources, version, which }:
|
||||
{
|
||||
stdenv,
|
||||
fetchurl,
|
||||
hosts,
|
||||
lib,
|
||||
python3,
|
||||
sources,
|
||||
version,
|
||||
which,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "zephyr-host-tools";
|
||||
inherit version;
|
||||
|
||||
nativeBuildInputs = [ python3 which ];
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
which
|
||||
];
|
||||
src = fetchurl (sources."${stdenv.hostPlatform.system}");
|
||||
|
||||
dontUnpack = true;
|
||||
|
|
|
@ -1,14 +1,21 @@
|
|||
{ stdenvNoCC, lib, fetchFromGitHub, symlinkJoin, fetchurl, version ? null
|
||||
, module }:
|
||||
{
|
||||
stdenvNoCC,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
symlinkJoin,
|
||||
fetchurl,
|
||||
version ? null,
|
||||
module,
|
||||
}:
|
||||
let
|
||||
labeledName = label:
|
||||
if version != null then
|
||||
"${module.name}-${label}-${version}"
|
||||
else
|
||||
"${module.name}-${label}";
|
||||
fetchBlob = blob:
|
||||
let blobFile = fetchurl { inherit (blob) url sha256; };
|
||||
in stdenvNoCC.mkDerivation {
|
||||
labeledName =
|
||||
label: if version != null then "${module.name}-${label}-${version}" else "${module.name}-${label}";
|
||||
fetchBlob =
|
||||
blob:
|
||||
let
|
||||
blobFile = fetchurl { inherit (blob) url sha256; };
|
||||
in
|
||||
stdenvNoCC.mkDerivation {
|
||||
name = "blob-${blob.path}";
|
||||
passAsFile = [ "buildCommand" ];
|
||||
buildCommand = ''
|
||||
|
@ -16,12 +23,21 @@ let
|
|||
ln -s ${blobFile} $out/${blob.path}
|
||||
'';
|
||||
};
|
||||
baseSrc = fetchFromGitHub { inherit (module) owner repo rev name sha256; };
|
||||
baseSrc = fetchFromGitHub {
|
||||
inherit (module)
|
||||
owner
|
||||
repo
|
||||
rev
|
||||
name
|
||||
sha256
|
||||
;
|
||||
};
|
||||
blobbedSrc = symlinkJoin {
|
||||
name = labeledName "with-blobs";
|
||||
paths = [ baseSrc ] ++ (map fetchBlob module.blobs);
|
||||
};
|
||||
in stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
name = labeledName "wrapped";
|
||||
|
||||
passthru.modulePath = "${finalAttrs.finalPackage.out}/${module.name}";
|
||||
|
@ -32,4 +48,3 @@ in stdenvNoCC.mkDerivation (finalAttrs: {
|
|||
ln -s ${blobbedSrc} "$out/${module.name}"
|
||||
'';
|
||||
})
|
||||
|
||||
|
|
|
@ -1,7 +1,17 @@
|
|||
{ lib, symlinkJoin, fetchurl, zephyrPackages, source, version, hosts
|
||||
, toolchains ? [ ] }:
|
||||
let src = fetchurl source;
|
||||
in symlinkJoin rec {
|
||||
{
|
||||
lib,
|
||||
symlinkJoin,
|
||||
fetchurl,
|
||||
zephyrPackages,
|
||||
source,
|
||||
version,
|
||||
hosts,
|
||||
toolchains ? [ ],
|
||||
}:
|
||||
let
|
||||
src = fetchurl source;
|
||||
in
|
||||
symlinkJoin rec {
|
||||
pname = "zephyr-sdk";
|
||||
inherit version;
|
||||
name = "${pname}-${version}";
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
{ stdenv, lib, fetchurl, autoPatchelfHook, target, sources, version, hosts }:
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
autoPatchelfHook,
|
||||
target,
|
||||
sources,
|
||||
version,
|
||||
hosts,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "zephyr-toolchain-${target}";
|
||||
|
@ -35,8 +44,7 @@ stdenv.mkDerivation {
|
|||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.zephyrproject.org/";
|
||||
description =
|
||||
"Toolchain for building Zephyr for the ${target} architecture";
|
||||
description = "Toolchain for building Zephyr for the ${target} architecture";
|
||||
license = licenses.asl20;
|
||||
platforms = hosts;
|
||||
maintainers = with maintainers; [ artemist ];
|
||||
|
|
|
@ -1,24 +1,31 @@
|
|||
{ lib, mkShell, python3, inkscape-with-extensions, inkscape-extensions, jupyter
|
||||
{
|
||||
lib,
|
||||
mkShell,
|
||||
python3,
|
||||
inkscape-with-extensions,
|
||||
inkscape-extensions,
|
||||
jupyter,
|
||||
}:
|
||||
mkShell {
|
||||
packages = [
|
||||
(inkscape-with-extensions.override {
|
||||
inkscapeExtensions = with inkscape-extensions; [
|
||||
silhouette
|
||||
inkcut
|
||||
axidraw
|
||||
];
|
||||
})
|
||||
python3
|
||||
jupyter
|
||||
] ++ (with python3.pkgs; [
|
||||
axicli
|
||||
drawsvg
|
||||
ipython
|
||||
pillow
|
||||
requests
|
||||
vpype
|
||||
vpype-gcode
|
||||
]);
|
||||
|
||||
packages =
|
||||
[
|
||||
(inkscape-with-extensions.override {
|
||||
inkscapeExtensions = with inkscape-extensions; [
|
||||
silhouette
|
||||
inkcut
|
||||
axidraw
|
||||
];
|
||||
})
|
||||
python3
|
||||
jupyter
|
||||
]
|
||||
++ (with python3.pkgs; [
|
||||
axicli
|
||||
drawsvg
|
||||
ipython
|
||||
pillow
|
||||
requests
|
||||
vpype
|
||||
vpype-gcode
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,28 @@
|
|||
{ lib, mkShell, dotnetCorePackages, libX11, libgdiplus, SDL2_mixer, openal
|
||||
, libsoundio, sndio, pulseaudio, vulkan-loader, ffmpeg, libICE, libSM, libXi
|
||||
, libXcursor, libXext, libXrandr, fontconfig, glew, libGL, SDL2, udev }:
|
||||
{
|
||||
lib,
|
||||
mkShell,
|
||||
dotnetCorePackages,
|
||||
libX11,
|
||||
libgdiplus,
|
||||
SDL2_mixer,
|
||||
openal,
|
||||
libsoundio,
|
||||
sndio,
|
||||
pulseaudio,
|
||||
vulkan-loader,
|
||||
ffmpeg,
|
||||
libICE,
|
||||
libSM,
|
||||
libXi,
|
||||
libXcursor,
|
||||
libXext,
|
||||
libXrandr,
|
||||
fontconfig,
|
||||
glew,
|
||||
libGL,
|
||||
SDL2,
|
||||
udev,
|
||||
}:
|
||||
|
||||
mkShell {
|
||||
packages = [
|
||||
|
|
|
@ -1,34 +1,62 @@
|
|||
{ lib, mkShell, zephyrPackages, cmake, ninja, gnumake, python3
|
||||
, toolchains ? with zephyrPackages.toolchains; [ arm-zephyr-eabi ]
|
||||
, enableWest ? false, zephyrSrc ? zephyrPackages.src, modules ? [ ]
|
||||
, extraPackages ? [ ], extraAttrs ? { } }:
|
||||
let zephyr-sdk = zephyrPackages.sdk.override { inherit toolchains; };
|
||||
in mkShell ({
|
||||
packages = [ cmake ninja gnumake python3 ] ++ (with python3.pkgs;
|
||||
[
|
||||
# requirements-base.txt
|
||||
pyelftools
|
||||
pyyaml
|
||||
pykwalify
|
||||
canopen
|
||||
packaging
|
||||
progress
|
||||
psutil
|
||||
pylink-square
|
||||
pyserial
|
||||
requests
|
||||
anytree
|
||||
intelhex
|
||||
] ++ lib.optional enableWest python3.pkgs.west ++ extraPackages);
|
||||
{
|
||||
lib,
|
||||
mkShell,
|
||||
zephyrPackages,
|
||||
cmake,
|
||||
ninja,
|
||||
gnumake,
|
||||
python3,
|
||||
toolchains ? with zephyrPackages.toolchains; [ arm-zephyr-eabi ],
|
||||
enableWest ? false,
|
||||
zephyrSrc ? zephyrPackages.src,
|
||||
modules ? [ ],
|
||||
extraPackages ? [ ],
|
||||
extraAttrs ? { },
|
||||
}:
|
||||
let
|
||||
zephyr-sdk = zephyrPackages.sdk.override { inherit toolchains; };
|
||||
in
|
||||
mkShell (
|
||||
{
|
||||
packages =
|
||||
[
|
||||
cmake
|
||||
ninja
|
||||
gnumake
|
||||
python3
|
||||
]
|
||||
++ (
|
||||
with python3.pkgs;
|
||||
[
|
||||
# requirements-base.txt
|
||||
pyelftools
|
||||
pyyaml
|
||||
pykwalify
|
||||
canopen
|
||||
packaging
|
||||
progress
|
||||
psutil
|
||||
pylink-square
|
||||
pyserial
|
||||
requests
|
||||
anytree
|
||||
intelhex
|
||||
]
|
||||
++ lib.optional enableWest python3.pkgs.west
|
||||
++ extraPackages
|
||||
);
|
||||
|
||||
ZEPHYR_TOOLCHAIN_VARIANT = "zephyr";
|
||||
ZEPHYR_SDK_INSTALL_DIR = "${zephyr-sdk}";
|
||||
} // lib.optionalAttrs (zephyrSrc != null) {
|
||||
ZEPHYR_BASE = "${zephyrSrc}";
|
||||
shellHook = ''
|
||||
PATH="${zephyrSrc}/scripts:$PATH"
|
||||
'';
|
||||
} // lib.optionalAttrs (modules != [ ]) {
|
||||
ZEPHYR_MODULES =
|
||||
lib.concatStringsSep ";" (map (pkg: pkg.passthru.modulePath) modules);
|
||||
} // extraAttrs)
|
||||
ZEPHYR_TOOLCHAIN_VARIANT = "zephyr";
|
||||
ZEPHYR_SDK_INSTALL_DIR = "${zephyr-sdk}";
|
||||
}
|
||||
// lib.optionalAttrs (zephyrSrc != null) {
|
||||
ZEPHYR_BASE = "${zephyrSrc}";
|
||||
shellHook = ''
|
||||
PATH="${zephyrSrc}/scripts:$PATH"
|
||||
'';
|
||||
}
|
||||
// lib.optionalAttrs (modules != [ ]) {
|
||||
ZEPHYR_MODULES = lib.concatStringsSep ";" (map (pkg: pkg.passthru.modulePath) modules);
|
||||
}
|
||||
// extraAttrs
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue