push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
diff --git a/src/octoprint/server/api/settings.py b/src/octoprint/server/api/settings.py
index c3e6cea10..ced2f8fa0 100644
--- a/src/octoprint/server/api/settings.py
+++ b/src/octoprint/server/api/settings.py
@@ -130,7 +130,7 @@ data["webcam"] = {
"webcamEnabled": s.getBoolean(["webcam", "webcamEnabled"]),
"snapshotTimeout": s.getInt(["webcam", "snapshotTimeout"]),
"timelapseEnabled": s.getBoolean(["webcam", "timelapseEnabled"]),
- "ffmpegPath": s.get(["webcam", "ffmpeg"]),
+ "ffmpegPath": "@ffmpeg@",
"ffmpegCommandline": s.get(["webcam", "ffmpegCommandline"]),
"bitrate": s.get(["webcam", "bitrate"]),
"ffmpegThreads": s.get(["webcam", "ffmpegThreads"]),
@@ -548,8 +548,6 @@ def _saveSettings(data):
["webcam", "snapshotSslValidation"],
data["webcam"]["snapshotSslValidation"],
)
- if "ffmpegPath" in data["webcam"]:
- s.set(["webcam", "ffmpeg"], data["webcam"]["ffmpegPath"])
if "ffmpegCommandline" in data["webcam"]:
commandline = data["webcam"]["ffmpegCommandline"]
if not all(

View File

@@ -0,0 +1,246 @@
{
pkgs,
stdenv,
callPackage,
lib,
fetchFromGitHub,
python3,
replaceVars,
nix-update-script,
nixosTests,
# To include additional plugins, pass them here as an overlay.
packageOverrides ? self: super: { },
}:
let
py = python3.override {
self = py;
packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) [
(
self: super: {
# fix tornado.httputil.HTTPInputError: Multiple host headers not allowed
tornado = super.tornado.overridePythonAttrs (oldAttrs: {
version = "6.4.2";
format = "setuptools";
pyproject = null;
src = fetchFromGitHub {
owner = "tornadoweb";
repo = "tornado";
tag = "v6.4.2";
hash = "sha256-qgJh8pnC1ALF8KxhAYkZFAc0DE6jHVB8R/ERJFL4OFc=";
};
doCheck = false;
});
})
# Built-in dependency
(self: super: {
octoprint-filecheck = self.buildPythonPackage rec {
pname = "OctoPrint-FileCheck";
version = "2024.11.12";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-FileCheck";
rev = version;
sha256 = "sha256-Y7yvImnYahmrf5GC4c8Ki8IsOZ8r9I4uk8mYBhEQZ28=";
};
doCheck = false;
};
})
# Built-in dependency
(self: super: {
octoprint-firmwarecheck = self.buildPythonPackage rec {
pname = "OctoPrint-FirmwareCheck";
version = "2021.10.11";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-FirmwareCheck";
rev = version;
hash = "sha256-wqbD82bhJDrDawJ+X9kZkoA6eqGxqJc1Z5dA0EUwgEI=";
};
doCheck = false;
};
})
(self: super: {
octoprint-pisupport = self.buildPythonPackage rec {
pname = "OctoPrint-PiSupport";
version = "2023.10.10";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-PiSupport";
rev = version;
hash = "sha256-VSzDoFq4Yn6KOn+RNi1uVJHzH44973kd/VoMjqzyBRA=";
};
# requires octoprint itself during tests
doCheck = false;
postPatch = ''
substituteInPlace octoprint_pi_support/__init__.py \
--replace /usr/bin/vcgencmd ${self.pkgs.libraspberrypi}/bin/vcgencmd
'';
};
})
(self: super: {
octoprint = self.buildPythonPackage rec {
pname = "OctoPrint";
version = "1.11.3";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint";
rev = version;
hash = "sha256-AyRi9aQXLFggBzc6WH2kvRPkJu1ANX/++GdCJRNhY/A=";
};
propagatedBuildInputs =
with self;
[
argon2-cffi
blinker
cachelib
click
colorlog
emoji
feedparser
filetype
flask
flask-babel
flask-assets
flask-login
flask-limiter
frozendict
itsdangerous
immutabledict
jinja2
markdown
markupsafe
netaddr
netifaces
octoprint-filecheck
octoprint-firmwarecheck
passlib
pathvalidate
pkginfo
pip
psutil
pylru
pyserial
pyyaml
regex
requests
rsa
sarge
semantic-version
sentry-sdk
setuptools
tornado
unidecode
watchdog
websocket-client
werkzeug
wrapt
zeroconf
zipstream-ng
class-doc
pydantic
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ py.pkgs.appdirs ]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ octoprint-pisupport ];
nativeCheckInputs = with self; [
ddt
mock
pytestCheckHook
];
patches = [
# substitute pip and let it find out, that it can't write anywhere
(replaceVars ./pip-path.patch {
pip = "${self.pip}/bin/pip";
})
# hardcore path to ffmpeg and hide related settings
(replaceVars ./ffmpeg-path.patch {
ffmpeg = "${pkgs.ffmpeg}/bin/ffmpeg";
})
];
postPatch =
let
ignoreVersionConstraints = [
"cachelib"
"colorlog"
"emoji"
"immutabledict"
"PyYAML"
"sarge"
"sentry-sdk"
"watchdog"
"wrapt"
"zeroconf"
"Flask-Login"
"werkzeug"
"flask"
"Flask-Limiter"
"blinker"
];
in
''
sed -r -i \
${lib.concatStringsSep "\n" (
map (e: ''-e 's@${e}[<>=]+.*@${e}",@g' \'') ignoreVersionConstraints
)}
setup.py
'';
preCheck = ''
export HOME=$(mktemp -d)
rm pytest.ini
'';
disabledTests = [
"test_check_setup" # Why should it be able to call pip?
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ "test_set_external_modification" ];
disabledTestPaths = [
"tests/test_octoprint_setuptools.py" # fails due to distutils and python3.12
];
passthru = {
inherit (self) python;
updateScript = nix-update-script { };
tests = {
plugins = (callPackage ./plugins.nix { }) super self;
inherit (nixosTests) octoprint;
};
};
meta = with lib; {
homepage = "https://octoprint.org/";
description = "Snappy web interface for your 3D printer";
mainProgram = "octoprint";
license = licenses.agpl3Only;
maintainers = with maintainers; [
WhittlesJr
gador
];
};
};
})
(callPackage ./plugins.nix { })
packageOverrides
];
};
in
with py.pkgs;
toPythonApplication octoprint

View File

@@ -0,0 +1,12 @@
diff --git a/src/octoprint/util/pip.py b/src/octoprint/util/pip.py
index 53500e5d5..39f76c1e5 100644
--- a/src/octoprint/util/pip.py
+++ b/src/octoprint/util/pip.py
@@ -284,6 +284,7 @@ class PipCaller(CommandlineCaller):
@classmethod
def autodetect_pip(cls):
commands = [
+ ["@pip@"],
[sys.executable, "-m", "pip"],
[
os.path.join(

View File

@@ -0,0 +1,673 @@
{
lib,
config,
fetchFromGitHub,
fetchFromGitLab,
fetchpatch,
marlin-calc,
}:
self: super:
let
buildPlugin =
args:
self.buildPythonPackage (
args
// {
pname = "octoprint-plugin-${args.pname}";
inherit (args) version format;
propagatedBuildInputs = (args.propagatedBuildInputs or [ ]) ++ [ super.octoprint ];
# none of the following have tests
doCheck = false;
}
);
in
{
inherit buildPlugin;
m86motorsoff = buildPlugin rec {
pname = "m84motorsoff";
version = "0.1.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "ntoff";
repo = "Octoprint-M84MotOff";
rev = "v${version}";
sha256 = "1w6h4hia286lbz2gy33rslq02iypx067yqn413xcipb07ivhvdq7";
};
meta = with lib; {
description = "Changes the \"Motors off\" button in octoprint's control tab to issue an M84 command to allow compatibility with Repetier firmware Resources";
homepage = "https://github.com/ntoff/OctoPrint-M84MotOff";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
abl-expert = buildPlugin rec {
pname = "abl-expert";
version = "0.6";
format = "setuptools";
src = fetchFromGitLab {
domain = "framagit.org";
owner = "razer";
repo = "Octoprint_ABL_Expert";
rev = version;
sha256 = "0ij3rvdwya1sbymwm5swlh2j4jagb6fal945g88zrzh5xf26hzjh";
};
meta = with lib; {
description = "Marlin auto bed leveling control, mesh correction, and z probe handling";
homepage = "https://framagit.org/razer/Octoprint_ABL_Expert/";
license = licenses.agpl3Only;
maintainers = with maintainers; [ WhittlesJr ];
};
};
bedlevelvisualizer = buildPlugin rec {
pname = "bedlevelvisualizer";
version = "1.1.1";
format = "setuptools";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-BedLevelVisualizer";
rev = version;
sha256 = "sha256-6JcYvYgEmphp5zz4xZi4G0yTo4FCIR6Yh+MXYK7H7+w=";
};
meta = with lib; {
description = "Displays 3D mesh of bed topography report";
homepage = "https://github.com/jneilliii/OctoPrint-BedLevelVisualizer";
license = licenses.mit;
maintainers = with maintainers; [ lovesegfault ];
};
};
costestimation = buildPlugin rec {
pname = "costestimation";
version = "3.4.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "OllisGit";
repo = "OctoPrint-CostEstimation";
rev = version;
sha256 = "sha256-04OPa/RpM8WehUmOp195ocsAjAvKdVY7iD5ybzQO7Dg=";
};
meta = with lib; {
description = "Plugin to display the estimated print cost for the loaded model";
homepage = "https://github.com/OllisGit/OctoPrint-CostEstimation";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
curaenginelegacy = buildPlugin rec {
pname = "curaenginelegacy";
version = "1.1.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-CuraEngineLegacy";
rev = version;
sha256 = "sha256-54siSmzgPlnCRpkpZhXU9theNQ3hqL3j+Ip4Ie2w2vA=";
};
meta = with lib; {
description = "Plugin for slicing via Cura Legacy from within OctoPrint";
homepage = "https://github.com/OctoPrint/OctoPrint-CuraEngineLegacy";
license = licenses.agpl3Only;
maintainers = [ ];
};
};
displayprogress = buildPlugin rec {
pname = "displayprogress";
version = "0.1.3";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-DisplayProgress";
rev = version;
sha256 = "080prvfwggl4vkzyi369vxh1n8231hrl8a44f399laqah3dn5qw4";
};
meta = with lib; {
description = "Displays the job progress on the printer's display";
homepage = "https://github.com/OctoPrint/OctoPrint-DisplayProgress";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
displaylayerprogress = buildPlugin rec {
pname = "displaylayerprogress";
version = "1.26.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "OllisGit";
repo = "OctoPrint-DisplayLayerProgress";
rev = version;
sha256 = "sha256-hhHc2SPixZCPJzCP8enMMWNYaYbNZAU0lNSx1B0d++4=";
};
meta = with lib; {
description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
license = licenses.agpl3Only;
maintainers = with maintainers; [ j0hax ];
};
};
ender3v2tempfix = buildPlugin {
pname = "ender3v2tempfix";
version = "unstable-2021-04-27";
format = "setuptools";
src = fetchFromGitHub {
owner = "SimplyPrint";
repo = "OctoPrint-Creality2xTemperatureReportingFix";
rev = "2c4183b6a0242a24ebf646d7ac717cd7a2db2bcf";
sha256 = "03bc2zbffw4ksk8if90kxhs3179nbhb4xikp4f0adm3lrnvxkd3s";
};
meta = with lib; {
description = "Fixes the double temperature reporting from the Creality Ender-3 v2 printer";
homepage = "https://github.com/SimplyPrint/OctoPrint-Creality2xTemperatureReportingFix";
license = licenses.mit;
maintainers = with maintainers; [ illustris ];
};
};
firmwareupdater = buildPlugin rec {
pname = "firmwareupdater";
version = "1.14.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-FirmwareUpdater";
rev = version;
sha256 = "sha256-CUNjM/IJJS/lqccZ2B0mDOzv3k8AgmDreA/X9wNJ7iY=";
};
propagatedBuildInputs = with super; [ pyserial ];
meta = with lib; {
description = "Printer Firmware Updater";
homepage = "https://github.com/OctoPrint/OctoPrint-FirmwareUpdater";
license = licenses.agpl3Only;
maintainers = with maintainers; [ tri-ler ];
};
};
fullscreen = buildPlugin rec {
pname = "fullscreen";
version = "0.0.6";
format = "setuptools";
src = fetchFromGitHub {
owner = "BillyBlaze";
repo = "OctoPrint-FullScreen";
rev = version;
sha256 = "sha256-Z8twpj+gqgbiWWxNd9I9qflEAln5Obpb3cn34KwSc5A=";
};
meta = with lib; {
description = "Open webcam in fullscreen mode";
homepage = "https://github.com/BillyBlaze/OctoPrint-FullScreen";
license = licenses.agpl3Only;
maintainers = with maintainers; [ tri-ler ];
};
};
gcodeeditor = buildPlugin rec {
pname = "gcodeeditor";
version = "0.2.12";
format = "setuptools";
src = fetchFromGitHub {
owner = "ieatacid";
repo = "OctoPrint-GcodeEditor";
rev = version;
sha256 = "sha256-1Sk2ri3DKW8q8VJ/scFjpRsz65Pwt8OEURP1k70aydE=";
};
meta = with lib; {
description = "Edit gcode on OctoPrint";
homepage = "https://github.com/ieatacid/OctoPrint-GcodeEditor";
license = licenses.agpl3Only;
maintainers = with maintainers; [ WhittlesJr ];
};
};
marlingcodedocumentation = buildPlugin rec {
pname = "marlingcodedocumentation";
version = "0.13.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "costas-basdekis";
repo = "MarlinGcodeDocumentation";
rev = "v${version}";
sha256 = "sha256-3ay6iCxZk8QkFM/2Y14VTpPoxr6NXq14BFSHofn3q7I=";
};
meta = with lib; {
description = "Displays GCode documentation for Marlin in the Octoprint terminal command line";
homepage = "https://github.com/costas-basdekis/MarlinGcodeDocumentation";
license = licenses.agpl3Only;
maintainers = with maintainers; [ lovesegfault ];
};
};
mqtt = buildPlugin rec {
pname = "mqtt";
version = "0.8.16";
format = "setuptools";
src = fetchFromGitHub {
owner = "OctoPrint";
repo = "OctoPrint-MQTT";
rev = version;
sha256 = "sha256-K8DydzmsDzWn5GXpxPGvAHDFpgk/mbyVBflCgOoB94U=";
};
propagatedBuildInputs = with super; [ paho-mqtt ];
meta = with lib; {
description = "Publish printer status MQTT";
homepage = "https://github.com/OctoPrint/OctoPrint-MQTT";
license = licenses.agpl3Only;
maintainers = with maintainers; [ peterhoeg ];
};
};
mqttchambertemperature = buildPlugin rec {
pname = "mqttchambertemperature";
version = "0.0.3";
format = "setuptools";
src = fetchFromGitHub {
owner = "synman";
repo = "OctoPrint-MqttChamberTemperature";
rev = version;
sha256 = "sha256-CvNpi8HcBBUfCs3X8yflbhe0YCU0kW3u2ADSro/qnuI=";
};
propagatedBuildInputs = with super; [ jsonpath-ng ];
meta = with lib; {
description = "Enables Chamber temperature reporting via subscribing to an MQTT topic";
homepage = "https://github.com/synman/OctoPrint-MqttChamberTemperature";
license = licenses.wtfpl;
maintainers = with maintainers; [ tri-ler ];
};
};
navbartemp = buildPlugin rec {
pname = "navbartemp";
version = "0.15";
format = "setuptools";
src = fetchFromGitHub {
owner = "imrahil";
repo = "OctoPrint-NavbarTemp";
rev = version;
sha256 = "sha256-ZPpTx+AadRffUb53sZbMUbCZa7xYGQW/5si7UB8mnVI=";
};
meta = with lib; {
description = "Displays temperatures on navbar";
homepage = "https://github.com/imrahil/OctoPrint-NavbarTemp";
license = licenses.agpl3Only;
maintainers = with maintainers; [ tri-ler ];
};
};
obico = buildPlugin rec {
pname = "obico";
version = "2.5.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "TheSpaghettiDetective";
repo = "OctoPrint-Obico";
rev = version;
sha256 = "sha256-cAUXe/lRTqYuWnrRiNDuDjcayL5yV9/PtTd9oeSC8KA=";
};
propagatedBuildInputs = with super; [
backoff
sentry-sdk
bson
distro
];
meta = with lib; {
description = "Monitor Octoprint-connected printers with Obico";
homepage = "https://www.obico.io/";
license = licenses.agpl3Only;
maintainers = with maintainers; [ tri-ler ];
};
};
octopod = buildPlugin rec {
pname = "octopod";
version = "0.3.18";
format = "setuptools";
src = fetchFromGitHub {
owner = "gdombiak";
repo = "OctoPrint-OctoPod";
rev = version;
sha256 = "sha256-HLR5402hFlUX0MLg3HXE7bIHKNnOI0buGAViqDt8mLc=";
};
propagatedBuildInputs = with super; [ pillow ];
meta = with lib; {
description = "OctoPod extension for OctoPrint";
homepage = "https://github.com/gdombiak/OctoPrint-OctoPod";
license = licenses.asl20;
maintainers = with maintainers; [ tri-ler ];
};
};
printtimegenius = buildPlugin rec {
pname = "printtimegenius";
version = "2.4.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "eyal0";
repo = "OctoPrint-PrintTimeGenius";
rev = version;
sha256 = "sha256-+EmM61s8HHcTIf0xoHkxEP7eqaNYB6ls61YwSXiVzyA=";
};
propagatedBuildInputs = with super; [
psutil
sarge
];
preConfigure = ''
# PrintTimeGenius ships with marlin-calc binaries for multiple architectures
rm */analyzers/marlin-calc*
sed 's@"{}.{}".format(binary_base_name, machine)@"${marlin-calc}/bin/marlin-calc"@' -i */analyzers/analyze_progress.py
'';
meta = with lib; {
description = "Better print time estimation for OctoPrint";
homepage = "https://github.com/eyal0/OctoPrint-PrintTimeGenius";
license = licenses.agpl3Only;
maintainers = [ ];
};
};
prusaslicerthumbnails = buildPlugin rec {
pname = "prusaslicerthumbnails";
version = "1.0.8";
format = "setuptools";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-PrusaSlicerThumbnails";
rev = version;
sha256 = "sha256-5TUx64i3VIUXtpIf4mo3hP//kXE+LuuLaZEJYgv4hVs=";
};
propagatedBuildInputs = with super; [ psutil ];
meta = with lib; {
description = "Plugin that extracts thumbnails from uploaded gcode files sliced by PrusaSlicer";
homepage = "https://github.com/jneilliii/OctoPrint-PrusaSlicerThumbnails";
license = licenses.agpl3Only;
maintainers = with maintainers; [ tri-ler ];
};
};
psucontrol = buildPlugin rec {
pname = "psucontrol";
version = "1.0.6";
format = "setuptools";
src = fetchFromGitHub {
owner = "kantlivelong";
repo = "OctoPrint-PSUControl";
rev = version;
sha256 = "sha256-S+lPm85+ZEO/3BXYsrxE4FU29EGWzWrSw3y1DLdByrM=";
};
propagatedBuildInputs = with super; [
python-periphery
];
preConfigure = ''
# optional; RPi.GPIO is broken on vanilla kernels
sed /RPi.GPIO/d -i requirements.txt
'';
meta = with lib; {
description = "OctoPrint plugin to control ATX/AUX power supply";
homepage = "https://github.com/kantlivelong/OctoPrint-PSUControl";
license = licenses.agpl3Only;
maintainers = [ ];
};
};
resource-monitor = buildPlugin rec {
pname = "resource-monitor";
version = "0.3.16";
format = "setuptools";
src = fetchFromGitHub {
owner = "Renaud11232";
repo = "OctoPrint-Resource-Monitor";
rev = version;
sha256 = "sha256-w1PBxO+Qf7cSSNocu7BiulZE7kesSa+LGV3uJlmd0ao=";
};
propagatedBuildInputs = with super; [ psutil ];
meta = with lib; {
description = "Plugin to view the current CPU and RAM usage on your system";
homepage = "https://github.com/Renaud11232/OctoPrint-Resource-Monitor";
license = licenses.mit;
maintainers = with maintainers; [ tri-ler ];
};
};
simpleemergencystop = buildPlugin rec {
pname = "simpleemergencystop";
version = "1.0.5";
format = "setuptools";
src = fetchFromGitHub {
owner = "Sebclem";
repo = "OctoPrint-SimpleEmergencyStop";
rev = version;
sha256 = "sha256-MbP3cKa9FPElQ/M8ykYh9kVXl8hNvmGiCHDvjgWvm9k=";
};
meta = with lib; {
description = "Simple plugin that add an emergency stop buton on NavBar of OctoPrint";
homepage = "https://github.com/Sebclem/OctoPrint-SimpleEmergencyStop";
license = licenses.agpl3Only;
maintainers = with maintainers; [ WhittlesJr ];
};
};
stlviewer = buildPlugin rec {
pname = "stlviewer";
version = "0.4.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-STLViewer";
rev = "refs/tags/${version}";
sha256 = "sha256-S7zjEbyo59OJpa7INCv1o4ybQ+Sy6a3EJ5AJ6wiBe1Y=";
};
meta = with lib; {
description = "Simple stl viewer tab for OctoPrint";
homepage = "https://github.com/jneilliii/Octoprint-STLViewer";
license = licenses.agpl3Only;
maintainers = [ ];
};
};
telegram = buildPlugin rec {
pname = "telegram";
version = "1.6.5";
format = "setuptools";
src = fetchFromGitHub {
owner = "fabianonline";
repo = "OctoPrint-Telegram";
rev = version;
sha256 = "sha256-SckJCbPNCflgGYLHFiXy0juCtpvo8YS1BQsFpc1f5rg=";
};
propagatedBuildInputs = with super; [ pillow ];
meta = with lib; {
description = "Plugin to send status messages and receive commands via Telegram messenger";
homepage = "https://github.com/fabianonline/OctoPrint-Telegram";
license = licenses.agpl3Only;
maintainers = with maintainers; [ stunkymonkey ];
};
};
themeify = buildPlugin rec {
pname = "themeify";
version = "1.2.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "Birkbjo";
repo = "Octoprint-Themeify";
rev = "v${version}";
sha256 = "sha256-om9IUSmxU8y0x8DrodW1EU/pilAN3+PbtYck6KfROEg=";
};
meta = with lib; {
description = "Beautiful themes for OctoPrint";
homepage = "https://github.com/birkbjo/OctoPrint-Themeify";
license = licenses.agpl3Only;
maintainers = with maintainers; [ lovesegfault ];
};
};
timelapsepurger = buildPlugin rec {
pname = "firmwareupdater";
version = "0.1.4";
format = "setuptools";
src = fetchFromGitHub {
owner = "jneilliii";
repo = "OctoPrint-TimelapsePurger";
rev = version;
sha256 = "sha256-XS4m4KByScGTPfVE4kuRLw829gNE2CdM0RyhRqGGxyw=";
};
meta = with lib; {
description = "Automatically deletes timelapses that are older than configured timeframe";
homepage = "https://github.com/jneilliii/OctoPrint-TimelapsePurger";
license = licenses.agpl3Only;
maintainers = with maintainers; [ tri-ler ];
};
};
titlestatus = buildPlugin rec {
pname = "titlestatus";
version = "0.0.5";
format = "setuptools";
src = fetchFromGitHub {
owner = "MoonshineSG";
repo = "OctoPrint-TitleStatus";
rev = version;
sha256 = "10nxjrixg0i6n6x8ghc1ndshm25c97bvkcis5j9kmlkkzs36i2c6";
};
meta = with lib; {
description = "Show printers status in window title";
homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus";
license = licenses.agpl3Only;
maintainers = [ ];
};
};
touchui = buildPlugin rec {
pname = "touchui";
version = "0.3.18";
format = "setuptools";
src = fetchFromGitHub {
owner = "BillyBlaze";
repo = "OctoPrint-TouchUI";
rev = version;
sha256 = "sha256-PNDCjY7FhfnwK7Nd86el9ZQ00G4uMANH2Sk080iMYXw=";
};
meta = with lib; {
description = "Touch friendly interface for a small TFT module or phone for OctoPrint";
homepage = "https://github.com/BillyBlaze/OctoPrint-TouchUI";
license = licenses.agpl3Only;
maintainers = [ ];
};
};
octoklipper = buildPlugin rec {
pname = "octoklipper";
version = "0.3.8.3";
format = "setuptools";
src = fetchFromGitHub {
owner = "AliceGrey";
repo = "OctoprintKlipperPlugin";
rev = version;
sha256 = "sha256-6r5jJDSR0DxlDQ/XWmQgYUgeL1otNNBnwurX7bbcThg=";
};
meta = with lib; {
description = "Plugin for a better integration of Klipper into OctoPrint";
homepage = "https://github.com/AliceGrey/OctoprintKlipperPlugin";
license = licenses.agpl3Only;
maintainers = with maintainers; [ lovesegfault ];
};
};
dashboard = buildPlugin rec {
pname = "dashboard";
version = "1.18.3";
format = "setuptools";
src = fetchFromGitHub {
owner = "StefanCohen";
repo = "OctoPrint-Dashboard";
rev = version;
sha256 = "sha256-hLHT3Uze/6PlOCEICVZ2ieFTyXgcqCvgHOlIIEquujg=";
};
meta = with lib; {
description = "Dashboard for Octoprint";
homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ j0hax ];
};
};
}
// lib.optionalAttrs config.allowAliases {
octolapse = throw "octoprint.python.pkgs.octolapse has been removed because it has been marked as broken since at least November 2024."; # Added 2025-09-29
octoprint-dashboard = super.dashboard;
}