about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/by-name/al/alpaca/flatpak_path_fixes.patch159
-rw-r--r--pkgs/by-name/al/alpaca/package.nix10
2 files changed, 2 insertions, 167 deletions
diff --git a/pkgs/by-name/al/alpaca/flatpak_path_fixes.patch b/pkgs/by-name/al/alpaca/flatpak_path_fixes.patch
deleted file mode 100644
index ad04310e70ca..000000000000
--- a/pkgs/by-name/al/alpaca/flatpak_path_fixes.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-diff --git a/src/internal.py b/src/internal.py
-new file mode 100644
-index 0000000..b41e415
---- /dev/null
-+++ b/src/internal.py
-@@ -0,0 +1,22 @@
-+import os
-+
-+app_id = "com.jeffser.Alpaca"
-+
-+in_flatpak = True if os.getenv("FLATPAK_ID") else False
-+
-+def get_xdg_home(env, default):
-+    if in_flatpak:
-+        return os.getenv(env)
-+    else:
-+        base = os.getenv(env) or os.path.expanduser(default)
-+        path = os.path.join(base, app_id)
-+        if not os.path.exists(path):
-+            os.makedirs(path)
-+        return path
-+
-+
-+data_dir = get_xdg_home("XDG_DATA_HOME", "~/.local/share")
-+config_dir = get_xdg_home("XDG_CONFIG_HOME", "~/.config")
-+cache_dir = get_xdg_home("XDG_CACHE_HOME", "~/.cache")
-+
-+source_dir = os.path.abspath(os.path.dirname(__file__))
-diff --git a/src/local_instance.py b/src/local_instance.py
-index cb3ee51..1866f83 100644
---- a/src/local_instance.py
-+++ b/src/local_instance.py
-@@ -2,24 +2,24 @@
- import subprocess, os, threading
- from time import sleep
- from logging import getLogger
-+from .internal import data_dir, cache_dir
- 
- 
- logger = getLogger(__name__)
- 
- instance = None
- port = 11435
--data_dir = os.getenv("XDG_DATA_HOME")
- overrides = {}
- 
- def start():
--    if not os.path.isdir(os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp/ollama')):
--        os.mkdir(os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp/ollama'))
-+    if not os.path.isdir(os.path.join(cache_dir, 'tmp/ollama')):
-+        os.mkdir(os.path.join(cache_dir, 'tmp/ollama'))
-     global instance, overrides
-     params = overrides.copy()
-     params["OLLAMA_HOST"] = f"127.0.0.1:{port}" # You can't change this directly sorry :3
-     params["HOME"] = data_dir
--    params["TMPDIR"] = os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp/ollama')
--    instance = subprocess.Popen(["/app/bin/ollama", "serve"], env={**os.environ, **params}, stderr=subprocess.PIPE, text=True)
-+    params["TMPDIR"] = os.path.join(cache_dir, 'tmp/ollama')
-+    instance = subprocess.Popen(["ollama", "serve"], env={**os.environ, **params}, stderr=subprocess.PIPE, text=True)
-     logger.info("Starting Alpaca's Ollama instance...")
-     logger.debug(params)
-     sleep(1)
-diff --git a/src/main.py b/src/main.py
-index 278914f..eeb54cd 100644
---- a/src/main.py
-+++ b/src/main.py
-@@ -27,6 +27,7 @@ gi.require_version('Adw', '1')
- 
- from gi.repository import Gtk, Gio, Adw, GLib
- from .window import AlpacaWindow
-+from .internal import cache_dir, data_dir
- 
- 
- logger = logging.getLogger(__name__)
-@@ -63,7 +64,7 @@ class AlpacaApplication(Adw.Application):
-             issue_url='https://github.com/Jeffser/Alpaca/issues',
-             license_type=3,
-             website="https://jeffser.com/alpaca",
--            debug_info=open(os.path.join(os.getenv("XDG_DATA_HOME"), 'tmp.log'), 'r').read())
-+            debug_info=open(os.path.join(data_dir, 'tmp.log'), 'r').read())
-         about.present(parent=self.props.active_window)
- 
-     def create_action(self, name, callback, shortcuts=None):
-@@ -75,16 +76,16 @@ class AlpacaApplication(Adw.Application):
- 
- 
- def main(version):
--    if os.path.isfile(os.path.join(os.getenv("XDG_DATA_HOME"), 'tmp.log')):
--        os.remove(os.path.join(os.getenv("XDG_DATA_HOME"), 'tmp.log'))
--    if os.path.isdir(os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp')):
--        os.system('rm -rf ' + os.path.join(os.getenv("XDG_CACHE_HOME"), "tmp/*"))
-+    if os.path.isfile(os.path.join(data_dir, 'tmp.log')):
-+        os.remove(os.path.join(data_dir, 'tmp.log'))
-+    if os.path.isdir(os.path.join(cache_dir, 'tmp')):
-+        os.system('rm -rf ' + os.path.join(cache_dir, "tmp/*"))
-     else:
--        os.mkdir(os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp'))
-+        os.mkdir(os.path.join(cache_dir, 'tmp'))
-     logging.basicConfig(
-         format="%(levelname)s\t[%(filename)s | %(funcName)s] %(message)s",
-         level=logging.INFO,
--        handlers=[logging.FileHandler(filename=os.path.join(os.getenv("XDG_DATA_HOME"), 'tmp.log')), logging.StreamHandler(stream=sys.stdout)]
-+        handlers=[logging.FileHandler(filename=os.path.join(data_dir, 'tmp.log')), logging.StreamHandler(stream=sys.stdout)]
-     )
-     app = AlpacaApplication(version)
-     logger.info(f"Alpaca version: {app.version}")
-diff --git a/src/meson.build b/src/meson.build
-index 1781b7a..b212cbf 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -44,7 +44,8 @@ alpaca_sources = [
-   'local_instance.py',
-   'available_models.json',
-   'available_models_descriptions.py',
--  'table_widget.py'
-+  'table_widget.py',
-+  'internal.py'
- ]
- 
- install_data(alpaca_sources, install_dir: moduledir)
-diff --git a/src/window.py b/src/window.py
-index 0771919..0f3b892 100644
---- a/src/window.py
-+++ b/src/window.py
-@@ -29,20 +29,21 @@ from pypdf import PdfReader
- from datetime import datetime
- from . import dialogs, local_instance, connection_handler, available_models_descriptions
- from .table_widget import TableWidget
-+from .internal import config_dir, data_dir, cache_dir, source_dir
- 
- logger = logging.getLogger(__name__)
- 
- 
- @Gtk.Template(resource_path='/com/jeffser/Alpaca/window.ui')
- class AlpacaWindow(Adw.ApplicationWindow):
--    config_dir = os.getenv("XDG_CONFIG_HOME")
--    data_dir = os.getenv("XDG_DATA_HOME")
-     app_dir = os.getenv("FLATPAK_DEST")
--    cache_dir = os.getenv("XDG_CACHE_HOME")
-+    config_dir = config_dir
-+    data_dir = data_dir
-+    cache_dir = cache_dir
- 
-     __gtype_name__ = 'AlpacaWindow'
- 
--    localedir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'locale')
-+    localedir = os.path.join(source_dir, 'locale')
- 
-     gettext.bindtextdomain('com.jeffser.Alpaca', localedir)
-     gettext.textdomain('com.jeffser.Alpaca')
-@@ -1602,7 +1603,7 @@ Generate a title following these rules:
-     def __init__(self, **kwargs):
-         super().__init__(**kwargs)
-         GtkSource.init()
--        with open('/app/share/Alpaca/alpaca/available_models.json', 'r') as f:
-+        with open(os.path.join(source_dir, 'available_models.json'), 'r') as f:
-             self.available_models = json.load(f)
-         if not os.path.exists(os.path.join(self.data_dir, "chats")):
-             os.makedirs(os.path.join(self.data_dir, "chats"))
diff --git a/pkgs/by-name/al/alpaca/package.nix b/pkgs/by-name/al/alpaca/package.nix
index 93e2f0e64450..25219aa1c410 100644
--- a/pkgs/by-name/al/alpaca/package.nix
+++ b/pkgs/by-name/al/alpaca/package.nix
@@ -17,22 +17,16 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "alpaca";
-  version = "1.0.5";
+  version = "1.0.6";
   pyproject = false; # Built with meson
 
   src = fetchFromGitHub {
     owner = "Jeffser";
     repo = "Alpaca";
     rev = version;
-    hash = "sha256-xNQLaMvZaJq7Bmz+c8OQhta3IdFXpVB2bSNwXCRj6rY=";
+    hash = "sha256-3xsntOPkcCV8ZizRS6du8cG1ZZEekehjf+4m3pofZBs=";
   };
 
-  patches = [
-    # Change the way XDG paths are handled so it makes sense outside of flatpak
-    # https://github.com/Jeffser/Alpaca/pull/187
-    ./flatpak_path_fixes.patch
-  ];
-
   nativeBuildInputs = [
     appstream
     meson