klipperscreen: repackage
This commit is contained in:
parent
d4825e5e4a
commit
1ebfd5f8cf
@ -1,28 +1,54 @@
|
||||
{ lib, stdenv, writeText, python3Packages, fetchFromGitHub, gtk3, gobject-introspection, gdk-pixbuf, wrapGAppsHook, librsvg }:
|
||||
python3Packages.buildPythonPackage rec {
|
||||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
, wrapGAppsHook
|
||||
, gobject-introspection
|
||||
, gitUpdater
|
||||
}: python3.pkgs.buildPythonApplication rec {
|
||||
pname = "KlipperScreen";
|
||||
version = "0.3.2";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jordanruthe";
|
||||
repo = pname;
|
||||
repo = "KlipperScreen";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-LweO5EVWr3OxziHrjtQDdWyUBCVUJ17afkw7RCZWgcg=";
|
||||
};
|
||||
patches = [ ./fix-paths.diff ];
|
||||
|
||||
buildInputs = [ gtk3 librsvg ];
|
||||
nativeBuildInputs = [ wrapGAppsHook gdk-pixbuf gobject-introspection ];
|
||||
nativeBuildInputs = [
|
||||
gobject-introspection
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ jinja2 netifaces requests websocket-client pycairo pygobject3 mpv six dbus-python numpy pycairo ];
|
||||
pythonPath = with python3.pkgs; [
|
||||
jinja2
|
||||
netifaces
|
||||
requests
|
||||
websocket-client
|
||||
pycairo
|
||||
pygobject3
|
||||
mpv
|
||||
six
|
||||
dbus-python
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
ln -s ${./setup.py} setup.py
|
||||
dontWrapGApps = true;
|
||||
|
||||
preFixup = ''
|
||||
mkdir -p $out/bin
|
||||
cp -r . $out/dist
|
||||
gappsWrapperArgs+=(--set PYTHONPATH "$PYTHONPATH")
|
||||
wrapGApp $out/dist/screen.py
|
||||
ln -s $out/dist/screen.py $out/bin/KlipperScreen
|
||||
'';
|
||||
|
||||
passthru.updateScript = gitUpdater { url = meta.homepage; };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Touchscreen GUI for the Klipper 3D printer firmware";
|
||||
homepage = "https://github.com/jordanruthe/${pname}";
|
||||
homepage = "https://github.com/jordanruthe/KlipperScreen";
|
||||
license = licenses.agpl3;
|
||||
maintainers = with maintainers; [ cab404 ];
|
||||
};
|
||||
}
|
||||
|
@ -1,22 +0,0 @@
|
||||
diff --git a/screen.py b/screen.py
|
||||
index 4fd75cd..a10779a 100755
|
||||
--- a/screen.py
|
||||
+++ b/screen.py
|
||||
@@ -48,7 +48,7 @@ PRINTER_BASE_STATUS_OBJECTS = [
|
||||
'exclude_object',
|
||||
]
|
||||
|
||||
-klipperscreendir = pathlib.Path(__file__).parent.resolve()
|
||||
+klipperscreendir = pathlib.Path(functions.__file__).parent.parent.resolve()
|
||||
|
||||
|
||||
def set_text_direction(lang=None):
|
||||
@@ -254,7 +254,7 @@ class KlipperScreen(Gtk.Window):
|
||||
def _load_panel(self, panel, *args):
|
||||
if panel not in self.load_panel:
|
||||
logging.debug(f"Loading panel: {panel}")
|
||||
- panel_path = os.path.join(os.path.dirname(__file__), 'panels', f"{panel}.py")
|
||||
+ panel_path = os.path.join(klipperscreendir, 'panels', f"{panel}.py")
|
||||
logging.info(f"Panel path: {panel_path}")
|
||||
if not os.path.exists(panel_path):
|
||||
logging.error(f"Panel {panel} does not exist")
|
@ -1,11 +0,0 @@
|
||||
from setuptools import setup
|
||||
|
||||
setup(
|
||||
name='KlipperScreen',
|
||||
install_requires=[],
|
||||
packages=['styles', 'panels', 'ks_includes', 'ks_includes.widgets'],
|
||||
package_data={'ks_includes': ['defaults.conf', 'locales/**', 'emptyCursor.xbm'], 'styles': ['**']},
|
||||
entry_points={
|
||||
'console_scripts': ['KlipperScreen=screen:main']
|
||||
},
|
||||
)
|
Loading…
Reference in New Issue
Block a user