git: 5c2606d85f13 - main - misc/oterm: Add new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 08 Aug 2024 15:38:47 UTC
The branch main has been updated by nivit: URL: https://cgit.FreeBSD.org/ports/commit/?id=5c2606d85f13cdb4b1401985a54446ce5d474c0f commit 5c2606d85f13cdb4b1401985a54446ce5d474c0f Author: Nicola Vitale <nivit@FreeBSD.org> AuthorDate: 2024-08-08 15:37:29 +0000 Commit: Nicola Vitale <nivit@FreeBSD.org> CommitDate: 2024-08-08 15:38:37 +0000 misc/oterm: Add new port Oterm is a text-based terminal client for Ollama. Features - intuitive and simple terminal UI, no need to run servers, frontends, just type oterm in your terminal. - multiple persistent chat sessions, stored together with the context embeddings and system prompt customizations in sqlite. - can use any of the models you have pulled in Ollama, or your own custom models. - allows for easy customization of the model's system prompt and parameters. https://github.com/ggozad/oterm --- misc/Makefile | 1 + misc/py-oterm/Makefile | 32 ++++++++++++++++++++++++++++++++ misc/py-oterm/distinfo | 3 +++ misc/py-oterm/files/patch-oterm_utils.py | 26 ++++++++++++++++++++++++++ misc/py-oterm/pkg-descr | 11 +++++++++++ 5 files changed, 73 insertions(+) diff --git a/misc/Makefile b/misc/Makefile index 246769ca9f23..22b7c0d472bc 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -476,6 +476,7 @@ SUBDIR += py-orange3-educational SUBDIR += py-orange3-network SUBDIR += py-orange3-timeseries + SUBDIR += py-oterm SUBDIR += py-palettable SUBDIR += py-papermill SUBDIR += py-pexpect diff --git a/misc/py-oterm/Makefile b/misc/py-oterm/Makefile new file mode 100644 index 000000000000..844590d4d1ff --- /dev/null +++ b/misc/py-oterm/Makefile @@ -0,0 +1,32 @@ +PORTNAME= oterm +DISTVERSION= 0.2.9 +CATEGORIES= misc python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= nivit@FreeBSD.org +COMMENT= Text-based terminal client for Ollama +WWW= https://github.com/ggozad/oterm + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.9.0:devel/py-poetry-core@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiosql>=10.1:databases/py-aiosql@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}aiosqlite>=0.19.0:databases/py-aiosqlite@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}linkify-it-py>=2.0.3:textproc/py-linkify-it-py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mdit-py-plugins>=0.4.1:textproc/py-mdit-py-plugins@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ollama>=0.2.0:devel/py-ollama@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}packaging>=24.1:devel/py-packaging@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pillow>=10.3.0:graphics/py-pillow@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyperclip>=1.7.0:devel/py-pyperclip@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}python-dotenv>=1.0.1:www/py-python-dotenv@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}rich-pixels>=3.0.1:graphics/py-rich-pixels@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}textual>=0.59.0:textproc/py-textual@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typer>=0.12.3:devel/py-typer@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}uc-micro-py>=1.0.3:textproc/py-uc-micro-py@${PY_FLAVOR} + +USES= python:3.10+ +USE_PYTHON= autoplist pep517 + +.include <bsd.port.mk> diff --git a/misc/py-oterm/distinfo b/misc/py-oterm/distinfo new file mode 100644 index 000000000000..7902e93a3e1d --- /dev/null +++ b/misc/py-oterm/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1723108230 +SHA256 (oterm-0.2.9.tar.gz) = 776aa5c87ce09e2c5ef3384e13e3ef31a9fa22a2b8a1b15e3a2ef5a89bb0bf67 +SIZE (oterm-0.2.9.tar.gz) = 20019 diff --git a/misc/py-oterm/files/patch-oterm_utils.py b/misc/py-oterm/files/patch-oterm_utils.py new file mode 100644 index 000000000000..6df624e298c6 --- /dev/null +++ b/misc/py-oterm/files/patch-oterm_utils.py @@ -0,0 +1,26 @@ +--- oterm/utils.py.orig 2024-05-15 16:35:57 UTC ++++ oterm/utils.py +@@ -1,4 +1,4 @@ +-import sys ++import platform + from pathlib import Path + + +@@ -16,12 +16,13 @@ def get_default_data_dir() -> Path: + home = Path.home() + + system_paths = { +- "win32": home / "AppData/Roaming/oterm", +- "linux": home / ".local/share/oterm", +- "darwin": home / "Library/Application Support/oterm", ++ "Darwin": home / "Library/Application Support/oterm", ++ "FreeBSD": home / ".local/share/oterm", ++ "Linux": home / ".local/share/oterm", ++ "Windows": home / "AppData/Roaming/oterm", + } + +- data_path = system_paths[sys.platform] ++ data_path = system_paths[platform.system()] + return data_path + + diff --git a/misc/py-oterm/pkg-descr b/misc/py-oterm/pkg-descr new file mode 100644 index 000000000000..b1759d017fa4 --- /dev/null +++ b/misc/py-oterm/pkg-descr @@ -0,0 +1,11 @@ +Oterm is a text-based terminal client for Ollama. + +Features + + - intuitive and simple terminal UI, no need to run servers, frontends, just + type oterm in your terminal. + - multiple persistent chat sessions, stored together with the context + embeddings and system prompt customizations in sqlite. + - can use any of the models you have pulled in Ollama, or your own custom + models. + - allows for easy customization of the model's system prompt and parameters.