This commit is contained in:
mjallen18
2025-09-30 18:29:34 -05:00
parent ec23a7fe14
commit 751b4f9f69
37 changed files with 814 additions and 971 deletions

View File

@@ -1,44 +1,45 @@
{ lib
, stdenv
, fetchzip
, autoPatchelfHook
, makeWrapper
# Core dependencies
, alsa-lib
, at-spi2-core
, cairo
, cups
, dbus
, expat
, fontconfig
, freetype
, gdk-pixbuf
, glib
, gtk3
, libarchive
, libdrm
, libGL
, libx11
, libxcb
, libxext
, libxkbcommon
, mesa
, nspr
, nss
, pango
, systemd
, xorg
, zlib
# Additional CEF/Chromium dependencies
, libnotify
, libpulseaudio
, libuuid
, libva
, pipewire
, udev
, wayland
, jdk17 # for RuneLite/HDOS
, gtk2 ? null # for RS3
{
lib,
stdenv,
fetchzip,
autoPatchelfHook,
makeWrapper,
# Core dependencies
alsa-lib,
at-spi2-core,
cairo,
cups,
dbus,
expat,
fontconfig,
freetype,
gdk-pixbuf,
glib,
gtk3,
libarchive,
libdrm,
libGL,
libx11,
libxcb,
libxext,
libxkbcommon,
mesa,
nspr,
nss,
pango,
systemd,
xorg,
zlib,
# Additional CEF/Chromium dependencies
libnotify,
libpulseaudio,
libuuid,
libva,
pipewire,
udev,
wayland,
jdk17 # for RuneLite/HDOS
, # for RS3
}:
stdenv.mkDerivation rec {
@@ -79,7 +80,7 @@ stdenv.mkDerivation rec {
nspr
nss
pango
stdenv.cc.cc.lib # for libstdc++.so.6
stdenv.cc.cc.lib # for libstdc++.so.6
systemd
zlib
# Additional CEF/Chromium deps
@@ -90,7 +91,8 @@ stdenv.mkDerivation rec {
pipewire
udev
wayland
] ++ (with xorg; [
]
++ (with xorg; [
libXcomposite
libXcursor
libXdamage
@@ -119,10 +121,10 @@ stdenv.mkDerivation rec {
# Copy all files to lib directory
cp -r ./bolt-launcher/* $out/lib/bolt-launcher/
# The main executable is 'bolt' (lowercase)
chmod +x $out/lib/bolt-launcher/bolt
# Also make chrome-sandbox executable (needed for CEF)
if [ -f $out/lib/bolt-launcher/chrome-sandbox ]; then
chmod +x $out/lib/bolt-launcher/chrome-sandbox
@@ -155,7 +157,7 @@ stdenv.mkDerivation rec {
# Make sure they can find each other
patchelf --set-rpath "$out/lib/bolt-launcher:${lib.makeLibraryPath buildInputs}" \
$out/lib/bolt-launcher/bolt || true
# Patch the CEF libraries
for lib in $out/lib/bolt-launcher/*.so*; do
if [ -f "$lib" ]; then
@@ -168,8 +170,11 @@ stdenv.mkDerivation rec {
description = "Free open-source third-party implementation of the Jagex Launcher";
homepage = "https://bolt.adamcake.com/";
license = licenses.agpl3Only;
platforms = [ "x86_64-linux" "aarch64-linux" ];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
maintainers = with maintainers; [ ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
};
}
}

View File

@@ -20,7 +20,7 @@ buildHomeAssistantComponent rec {
beautifulsoup4
];
meta = {
meta = {
changelog = "https://github.com/natekspencer/ha-bedjet/releases/tag/${version}";
description = "This project provides various entities to allow control of a BedJet device.";
homepage = "https://github.com/natekspencer/ha-bedjet";

View File

@@ -7,4 +7,4 @@ fetchNextcloudApp {
sha256 = "sha256-F2hh/0RlLG2zcEatfd4fejRV0i2hMkwONM4P7nhdh18=";
url = "https://github.com/nextcloud/photos/archive/refs/tags/v31.0.8.tar.gz";
license = "agpl3Only";
}
}

View File

@@ -29,20 +29,22 @@ python3Packages.buildPythonPackage rec {
build-system = with python3Packages; [ poetry-core ];
dependencies = with python3Packages; [
aiohttp
aiomqtt
async-timeout
click
construct
dacite
paho-mqtt
pycryptodome
pyrate-limiter
vacuum-map-parser-roborock
pyshark
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ pycryptodomex ];
dependencies =
with python3Packages;
[
aiohttp
aiomqtt
async-timeout
click
construct
dacite
paho-mqtt
pycryptodome
pyrate-limiter
vacuum-map-parser-roborock
pyshark
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ pycryptodomex ];
nativeCheckInputs = with python3Packages; [
aioresponses
@@ -61,4 +63,4 @@ python3Packages.buildPythonPackage rec {
maintainers = with maintainers; [ fab ];
mainProgram = "roborock";
};
}
}

View File

@@ -35,4 +35,4 @@ python3Packages.buildPythonPackage rec {
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}
}

View File

@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
# Set up yarn
export HOME=$TMPDIR
cd frontend
# Fix up yarn.lock and set up offline cache
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror ${yarnDeps}
@@ -82,98 +82,107 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
runHook preInstall
runHook preInstall
# Create output directories
mkdir -p $out/lib/tabby-web
mkdir -p $out/bin
mkdir -p $out/share/tabby-web
# Create output directories
mkdir -p $out/lib/tabby-web
mkdir -p $out/bin
mkdir -p $out/share/tabby-web
# Install backend
cp -r backend/* $out/lib/tabby-web/
# Install frontend build output
if [ -d frontend/dist ]; then
cp -r frontend/dist/* $out/share/tabby-web/
elif [ -d frontend/build ]; then
cp -r frontend/build/* $out/share/tabby-web/
fi
# Install backend
cp -r backend/* $out/lib/tabby-web/
# Install frontend build output
if [ -d frontend/dist ]; then
cp -r frontend/dist/* $out/share/tabby-web/
elif [ -d frontend/build ]; then
cp -r frontend/build/* $out/share/tabby-web/
fi
# Create main executable wrapper
makeWrapper ${python3.withPackages (ps: with ps; [ gunicorn django ])}/bin/python $out/bin/tabby-web \
--add-flags "-m gunicorn tabby_web.wsgi:application" \
--set PYTHONPATH "$out/lib/tabby-web" \
--set DJANGO_SETTINGS_MODULE "tabby_web.settings" \
--set STATIC_ROOT "$out/share/tabby-web" \
--run "cd $out/lib/tabby-web" \
--run 'export DATABASE_URL="''${DATABASE_URL:-sqlite:///tmp/tabby-web.db}"' \
--run 'export APP_DIST_STORAGE="''${APP_DIST_STORAGE:-file:///tmp/tabby-web-dist}"' \
--run 'export PORT="''${PORT:-9000}"' \
--add-flags '--bind "0.0.0.0:$PORT"' \
--add-flags "--workers 4" \
--add-flags "--timeout 120"
# Create main executable wrapper
makeWrapper ${
python3.withPackages (
ps: with ps; [
gunicorn
django
]
)
}/bin/python $out/bin/tabby-web \
--add-flags "-m gunicorn tabby_web.wsgi:application" \
--set PYTHONPATH "$out/lib/tabby-web" \
--set DJANGO_SETTINGS_MODULE "tabby_web.settings" \
--set STATIC_ROOT "$out/share/tabby-web" \
--run "cd $out/lib/tabby-web" \
--run 'export DATABASE_URL="''${DATABASE_URL:-sqlite:///tmp/tabby-web.db}"' \
--run 'export APP_DIST_STORAGE="''${APP_DIST_STORAGE:-file:///tmp/tabby-web-dist}"' \
--run 'export PORT="''${PORT:-9000}"' \
--add-flags '--bind "0.0.0.0:$PORT"' \
--add-flags "--workers 4" \
--add-flags "--timeout 120"
# Create Django management wrapper
makeWrapper ${python3.withPackages (ps: with ps; [ django ])}/bin/python $out/bin/tabby-web-manage \
--add-flags "manage.py" \
--set PYTHONPATH "$out/lib/tabby-web" \
--set DJANGO_SETTINGS_MODULE "tabby_web.settings" \
--set STATIC_ROOT "$out/share/tabby-web" \
--run "cd $out/lib/tabby-web" \
--run 'export DATABASE_URL="''${DATABASE_URL:-sqlite:///tmp/tabby-web.db}"' \
--run 'export APP_DIST_STORAGE="''${APP_DIST_STORAGE:-file:///tmp/tabby-web-dist}"'
# Create Django management wrapper
makeWrapper ${
python3.withPackages (ps: with ps; [ django ])
}/bin/python $out/bin/tabby-web-manage \
--add-flags "manage.py" \
--set PYTHONPATH "$out/lib/tabby-web" \
--set DJANGO_SETTINGS_MODULE "tabby_web.settings" \
--set STATIC_ROOT "$out/share/tabby-web" \
--run "cd $out/lib/tabby-web" \
--run 'export DATABASE_URL="''${DATABASE_URL:-sqlite:///tmp/tabby-web.db}"' \
--run 'export APP_DIST_STORAGE="''${APP_DIST_STORAGE:-file:///tmp/tabby-web-dist}"'
# Create a help script
cat > $out/bin/tabby-web-help << 'HELP_EOF'
#!/bin/bash
cat << 'HELP'
Tabby Web - Terminal application server
# Create a help script
cat > $out/bin/tabby-web-help << 'HELP_EOF'
#!/bin/bash
cat << 'HELP'
Tabby Web - Terminal application server
Usage:
tabby-web Start the server
tabby-web-manage <command> Run Django management commands
tabby-web-help Show this help
Usage:
tabby-web Start the server
tabby-web-manage <command> Run Django management commands
tabby-web-help Show this help
Environment Variables:
DATABASE_URL Database connection URL
Examples: sqlite:///path/to/db.sqlite
postgresql://user:pass@host:5432/dbname
APP_DIST_STORAGE Storage URL for app distributions
Examples: file:///path/to/storage
s3://bucket-name/path
gcs://bucket-name/path
PORT Server port (default: 9000)
Social Authentication (optional):
SOCIAL_AUTH_GITHUB_KEY GitHub OAuth key
SOCIAL_AUTH_GITHUB_SECRET GitHub OAuth secret
SOCIAL_AUTH_GITLAB_KEY GitLab OAuth key
SOCIAL_AUTH_GITLAB_SECRET GitLab OAuth secret
SOCIAL_AUTH_MICROSOFT_GRAPH_KEY Microsoft Graph OAuth key
SOCIAL_AUTH_MICROSOFT_GRAPH_SECRET Microsoft Graph OAuth secret
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY Google OAuth2 key
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET Google OAuth2 secret
Environment Variables:
DATABASE_URL Database connection URL
Examples: sqlite:///path/to/db.sqlite
postgresql://user:pass@host:5432/dbname
APP_DIST_STORAGE Storage URL for app distributions
Examples: file:///path/to/storage
s3://bucket-name/path
gcs://bucket-name/path
PORT Server port (default: 9000)
Social Authentication (optional):
SOCIAL_AUTH_GITHUB_KEY GitHub OAuth key
SOCIAL_AUTH_GITHUB_SECRET GitHub OAuth secret
SOCIAL_AUTH_GITLAB_KEY GitLab OAuth key
SOCIAL_AUTH_GITLAB_SECRET GitLab OAuth secret
SOCIAL_AUTH_MICROSOFT_GRAPH_KEY Microsoft Graph OAuth key
SOCIAL_AUTH_MICROSOFT_GRAPH_SECRET Microsoft Graph OAuth secret
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY Google OAuth2 key
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET Google OAuth2 secret
Examples:
# Development with defaults
tabby-web
# Production with PostgreSQL
DATABASE_URL="postgresql://user:pass@localhost:5432/tabby" tabby-web
# Run migrations
tabby-web-manage migrate
# Add app version
tabby-web-manage add_version 1.0.156-nightly.2
HELP
HELP_EOF
Examples:
# Development with defaults
tabby-web
# Production with PostgreSQL
DATABASE_URL="postgresql://user:pass@localhost:5432/tabby" tabby-web
# Run migrations
tabby-web-manage migrate
# Add app version
tabby-web-manage add_version 1.0.156-nightly.2
HELP
HELP_EOF
chmod +x $out/bin/tabby-web-help
chmod +x $out/bin/tabby-web-help
runHook postInstall
runHook postInstall
'';
meta = with lib; {