From f0ef1bb0b0fc2198c30f7a27c146212f00981352 Mon Sep 17 00:00:00 2001 From: hobbycoder <168180007+gg582@users.noreply.github.com> Date: Sun, 31 Aug 2025 03:02:31 +0900 Subject: [PATCH] feat(linux): Add deb, rpm packages as installation formats (#524) --- Cargo.lock | 74 +++--- apps/stage-tamagotchi/src-tauri/Cargo.toml | 2 +- .../src-tauri/tauri.conf.json | 249 +++++++++++++++++- nix/package.nix | 12 +- 4 files changed, 290 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7ef1158c1..f458af17d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -57,6 +57,43 @@ dependencies = [ "memchr", ] +[[package]] +name = "airi" +version = "0.7.2-beta.2" +dependencies = [ + "anyhow", + "byteorder", + "clap", + "crossbeam-channel", + "hf-hub", + "log", + "ndarray", + "rubato", + "serde", + "serde_json", + "specta", + "specta-typescript", + "symphonia", + "tauri", + "tauri-build", + "tauri-plugin-global-shortcut", + "tauri-plugin-ipc-audio-transcription-ort", + "tauri-plugin-ipc-audio-vad-ort", + "tauri-plugin-log", + "tauri-plugin-mcp", + "tauri-plugin-os", + "tauri-plugin-positioner", + "tauri-plugin-prevent-default", + "tauri-plugin-rdev", + "tauri-plugin-window-pass-through-on-hover", + "tauri-plugin-window-router-link", + "tauri-plugin-window-state", + "tauri-specta", + "tokenizers", + "tokio", + "url", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -160,43 +197,6 @@ version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" -[[package]] -name = "app" -version = "0.7.2-beta.2" -dependencies = [ - "anyhow", - "byteorder", - "clap", - "crossbeam-channel", - "hf-hub", - "log", - "ndarray", - "rubato", - "serde", - "serde_json", - "specta", - "specta-typescript", - "symphonia", - "tauri", - "tauri-build", - "tauri-plugin-global-shortcut", - "tauri-plugin-ipc-audio-transcription-ort", - "tauri-plugin-ipc-audio-vad-ort", - "tauri-plugin-log", - "tauri-plugin-mcp", - "tauri-plugin-os", - "tauri-plugin-positioner", - "tauri-plugin-prevent-default", - "tauri-plugin-rdev", - "tauri-plugin-window-pass-through-on-hover", - "tauri-plugin-window-router-link", - "tauri-plugin-window-state", - "tauri-specta", - "tokenizers", - "tokio", - "url", -] - [[package]] name = "arrayvec" version = "0.7.6" diff --git a/apps/stage-tamagotchi/src-tauri/Cargo.toml b/apps/stage-tamagotchi/src-tauri/Cargo.toml index 5532621f6..35250a7f1 100644 --- a/apps/stage-tamagotchi/src-tauri/Cargo.toml +++ b/apps/stage-tamagotchi/src-tauri/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "app" +name = "airi" version.workspace = true description = "AIRI tamagotchi app built with Tauri" authors = [ "LemonNekoGH " ] diff --git a/apps/stage-tamagotchi/src-tauri/tauri.conf.json b/apps/stage-tamagotchi/src-tauri/tauri.conf.json index 5f8f8a328..0a6323d8b 100644 --- a/apps/stage-tamagotchi/src-tauri/tauri.conf.json +++ b/apps/stage-tamagotchi/src-tauri/tauri.conf.json @@ -17,7 +17,7 @@ }, "bundle": { "active": true, - "targets": ["dmg", "appimage", "nsis"], + "targets": ["dmg", "appimage", "deb", "rpm", "nsis"], "icon": [ "icons/32x32.png", "icons/64x64.png", @@ -31,6 +31,253 @@ }, "macOS": { "entitlements": "./Entitlements.plist" + }, + "linux": { + "deb": { + "depends": [ + "libatk-bridge2.0-0", + "libatk1.0-0", + "libatomic1", + "libatspi2.0-0", + "libblkid1", + "libbrotli1", + "libbsd0", + "libbz2-1.0", + "libc6", + "libcairo-gobject2", + "libcairo2", + "libcap2", + "libcom-err2", + "libdatrie1", + "libdbus-1-3", + "libdrm2", + "libdw1", + "libegl1", + "libelf1", + "libenchant-2-2", + "libepoxy0", + "libevdev2", + "libexpat1", + "libffi8", + "libfontconfig1", + "libfreetype6", + "libfribidi0", + "libgbm1", + "libgcc-s1", + "libgcrypt20", + "libgdk-pixbuf-2.0-0", + "libgl1", + "libglib2.0-0", + "libglvnd0", + "libglx0", + "libgpg-error0", + "libgraphite2-3", + "libgssapi-krb5-2", + "libgstreamer-gl1.0-0", + "libgstreamer-plugins-base1.0-0", + "libgstreamer1.0-0", + "libgtk-3-0", + "libgudev-1.0-0", + "libharfbuzz-icu0", + "libharfbuzz0b", + "libhyphen0", + "libicu74", + "libidn2-0", + "libjavascriptcoregtk-4.1-0", + "libjpeg-turbo8", + "libk5crypto3", + "libkeyutils1", + "libkrb5-3", + "libkrb5support0", + "liblcms2-2", + "liblz4-1", + "liblzma5", + "libmanette-0.2-0", + "libmd0", + "libmount1", + "libnghttp2-14", + "liborc-0.4-0", + "libpango-1.0-0", + "libpangocairo-1.0-0", + "libpangoft2-1.0-0", + "libpcre2-8-0", + "libpixman-1-0", + "libpng16-16", + "libpsl5", + "libseccomp2", + "libsecret-1-0", + "libselinux1", + "libsharpyuv0", + "libsqlite3-0", + "libsoup-3.0-0", + "libssl3", + "libstdc++6", + "libsystemd0", + "libtasn1-6", + "libthai0", + "libudev1", + "libunistring5", + "libunwind8", + "libwayland-client0", + "libwayland-cursor0", + "libwayland-egl1", + "libwayland-server0", + "libwebkit2gtk-4.1-0", + "libwebp7", + "libwebpdemux2", + "libwebpmux3", + "libwoff1", + "libx11-6", + "libx11-xcb1", + "libxau6", + "libxcb-render0", + "libxcb-shm0", + "libxcb1", + "libxcomposite1", + "libxcursor1", + "libxdamage1", + "libxdmcp6", + "libxext6", + "libxfixes3", + "libxi6", + "libxinerama1", + "libxkbcommon0", + "libxml2", + "libxrandr2", + "libxrender1", + "libxslt1.1", + "libxtst6", + "libzstd1" + ] + }, + "rpm": { + "depends": [ + "at-spi2-atk", + "at-spi2-core", + "atk", + "bzip2-libs", + "cairo", + "cairo-gobject", + "dbus-libs", + "elfutils-libelf", + "elfutils-libs", + "enchant2", + "expat", + "flac-libs", + "flite", + "fontconfig", + "freetype", + "fribidi", + "gdk-pixbuf2", + "glib2", + "glibc", + "gmp", + "gnutls", + "graphite2", + "gsm", + "gstreamer1", + "gstreamer1-plugins-bad-free-libs", + "gstreamer1-plugins-base", + "gtk3", + "harfbuzz", + "harfbuzz-icu", + "hidapi", + "highway", + "hyphen", + "javascriptcoregtk4.1", + "json-glib", + "keyutils-libs", + "krb5-libs", + "lame-libs", + "lcms2", + "libX11", + "libX11-xcb", + "libXau", + "libXcomposite", + "libXcursor", + "libXdamage", + "libXext", + "libXfixes", + "libXi", + "libXinerama", + "libXrandr", + "libXrender", + "libXtst", + "libaom", + "libasyncns", + "libavif", + "libblkid", + "libbrotli", + "libcap", + "libcloudproviders", + "libcom_err", + "libdatrie", + "libdav1d", + "libdrm", + "libepoxy", + "libevdev", + "libffi", + "libgcc", + "libgcrypt", + "libglvnd", + "libglvnd-egl", + "libglvnd-glx", + "libgpg-error", + "libgudev", + "libicu", + "libidn2", + "libjpeg-turbo", + "libjxl", + "libmanette", + "libmount", + "libnghttp2", + "libogg", + "libpng", + "libpsl", + "libseccomp", + "libsecret", + "libselinux", + "libsndfile", + "libsoup3", + "libstdc++", + "libtasn1", + "libthai", + "libtinysparql", + "libunistring", + "libunwind", + "libvorbis", + "libwayland-client", + "libwayland-cursor", + "libwayland-egl", + "libwayland-server", + "libwebp", + "libxcb", + "libxkbcommon", + "libxml2", + "libxslt", + "libyuv", + "libzstd", + "mesa-libgbm", + "mpg123-libs", + "nettle", + "openssl-libs", + "opus", + "orc", + "p11-kit", + "pango", + "pcre2", + "pixman", + "pulseaudio-libs", + "rav1e-libs", + "sqlite-libs", + "svt-av1-libs", + "systemd-libs", + "webkit2gtk4.1", + "woff2", + "xz-libs", + "zlib-ng-compat" + ] + } } } } diff --git a/nix/package.nix b/nix/package.nix index 4b0f4d21a..b28b39b54 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -118,14 +118,10 @@ rustPlatform.buildRustPackage (final: { buildAndTestSubdir = "apps/stage-tamagotchi"; buildType = if debugBuild then "debug" else "release"; - postInstall = - lib.optionalString stdenv.isLinux '' - mv $out/bin/app $out/bin/airi - '' - + lib.optionalString stdenv.isDarwin '' - mkdir -p "$out/bin" - ln -sf "$out/Applications/AIRI.app/Contents/MacOS/app" "$out/bin/airi" - ''; + postInstall = lib.optionalString stdenv.isDarwin '' + mkdir -p "$out/bin" + ln -sf "$out/Applications/AIRI.app/Contents/MacOS/airi" "$out/bin/airi" + ''; # Add missing runtime dependency preFixup = lib.optionalString stdenv.isLinux ''