diff --git a/pkgs/clan-app/default.nix b/pkgs/clan-app/default.nix index bdbc20ad4..944ab36fd 100644 --- a/pkgs/clan-app/default.nix +++ b/pkgs/clan-app/default.nix @@ -40,6 +40,7 @@ let libadwaita webkitgtk_6_0 adwaita-icon-theme + ]; # Deps including python packages from the local project diff --git a/pkgs/clan-app/flake-module.nix b/pkgs/clan-app/flake-module.nix index 3cceb34a6..4ed9d50fb 100644 --- a/pkgs/clan-app/flake-module.nix +++ b/pkgs/clan-app/flake-module.nix @@ -14,7 +14,7 @@ else { devShells.clan-app = pkgs.callPackage ./shell.nix { - inherit (config.packages) clan-app; + inherit (config.packages) clan-app webview-wrapper; inherit self'; }; packages.clan-app = pkgs.python3.pkgs.callPackage ./default.nix { diff --git a/pkgs/clan-app/shell.nix b/pkgs/clan-app/shell.nix index 0ee55486a..d8ea8fc34 100644 --- a/pkgs/clan-app/shell.nix +++ b/pkgs/clan-app/shell.nix @@ -12,6 +12,8 @@ python3, gtk4, libadwaita, + webview-wrapper, + clang, self', }: @@ -36,6 +38,8 @@ mkShell { glib ruff gtk4 + clang + webview-wrapper gtk4.dev # has the demo called 'gtk4-widget-factory' libadwaita.devdoc # has the demo called 'adwaita-1-demo' ] @@ -51,7 +55,6 @@ mkShell { export GIT_ROOT=$(git rev-parse --show-toplevel) export PKG_ROOT=$GIT_ROOT/pkgs/clan-app - export WEBKIT_DISABLE_COMPOSITING_MODE=1 # Add current package to PYTHONPATH export PYTHONPATH="$PKG_ROOT''${PYTHONPATH:+:$PYTHONPATH:}" diff --git a/pkgs/flake-module.nix b/pkgs/flake-module.nix index 93548a7e4..85704a7cf 100644 --- a/pkgs/flake-module.nix +++ b/pkgs/flake-module.nix @@ -33,6 +33,7 @@ editor = pkgs.callPackage ./editor/clan-edit-codium.nix { }; classgen = pkgs.callPackage ./classgen { }; zerotierone = pkgs.callPackage ./zerotierone { }; + webview-wrapper = pkgs.callPackage ./webview-wrapper { }; }; }; } diff --git a/pkgs/webview-wrapper-py/default.nix b/pkgs/webview-wrapper-py/default.nix new file mode 100644 index 000000000..9d13ca739 --- /dev/null +++ b/pkgs/webview-wrapper-py/default.nix @@ -0,0 +1,56 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub + +# build-system dependencies +, setuptools +, wheel +, webview-wrapper + +}: + +buildPythonPackage rec { + pname = "python-webui"; + version = "main"; + + src = fetchFromGitHub { + owner = "webui-dev"; + repo = "python-webui"; + rev = "fa961b5ee0752c9408ac01519097f5481a0fcecf"; # Replace with specific commit hash for reproducibility + # sha256 = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; # Replace with actual hash via nix-prefetch-git + }; + + sourceRoot = "PyPI/Package"; + + # Indicate this is a recent Python project with PEP 517 support (pyproject.toml) + pyproject = true; + + # Declare the build system (setuptools and wheel are common) + buildInputs = [ + setuptools + wheel + ]; + + # Declare required Python package dependencies + propagatedBuildInputs = [ + + ]; + + # Native inputs for testing, if tests are included + nativeCheckInputs = [ + + ]; + + # If tests don't work out of the box or need adjustments, patches can be applied here + postPatch = '' + # Example: Modify or patch some test files + echo "No postPatch modifications applied yet." + ''; + + meta = with lib; { + description = "A Python library for webui-dev"; + homepage = "https://github.com/webui-dev/python-webui"; + license = licenses.mit; + maintainers = [ maintainers.yourname ]; + }; +} \ No newline at end of file diff --git a/pkgs/webview-wrapper/default.nix b/pkgs/webview-wrapper/default.nix new file mode 100644 index 000000000..4adc04ed1 --- /dev/null +++ b/pkgs/webview-wrapper/default.nix @@ -0,0 +1,39 @@ +{ pkgs }: + +pkgs.stdenv.mkDerivation rec { + pname = "webui"; + version = "nigthly"; + + src = pkgs.fetchFromGitHub { + owner = "webui-dev"; + repo = "python-webui"; + rev = "0ff3b1351b9e24be4463b1baf2c26966caeae74a"; # Use a specific commit sha or tag for reproducibility + sha256 = "sha256-xSOnCkW4iZkSSLKzk6r3hewC3bPJlV7L6aoGEchyEys="; # Replace with actual sha256 + }; + + outputs = [ "out" "dev" ]; + + # Dependencies used during the build process, if any + buildInputs = [ + pkgs.gnumake + ]; + + # Commands to build and install the project + buildPhase = '' + make + ''; + + installPhase = '' + mkdir -p $out/lib + mkdir -p $out/include + cp -r dist/* $out/lib + cp -r include/* $out/include + ''; + + meta = with pkgs.lib; { + description = "Webui is a UI library for C/C++/Go/Rust to build portable desktop/web apps using WebView"; + homepage = "https://github.com/webui-dev/webui"; + license = licenses.mit; + platforms = platforms.linux ++ platforms.darwin; # Adjust if needed + }; +} \ No newline at end of file