Alpaca/snap/snapcraft.yaml
2024-09-16 10:20:50 -06:00

112 lines
2.3 KiB
YAML

name: alpaca
base: core24
adopt-info: alpaca
summary: An Ollama client made with GTK4 and Adwaita
description: |
Alpaca is an Ollama client where you can manage and chat with multiple models,
Alpaca provides an easy and begginer friendly way of interacting with local AI,
everything is open source and powered by Ollama.
platforms:
amd64:
confinement: strict
grade: stable
compression: lzo
slots:
dbus-alpaca:
interface: dbus
bus: session
name: com.jeffser.Alpaca
apps:
alpaca:
command: usr/bin/alpaca
desktop: meta/gui/alpaca.desktop
common-id: com.jeffser.Alpaca
extensions:
- gnome
plugs:
- network
- network-bind
- desktop
- desktop-legacy
- wayland
- opengl
- home
- removable-media
slots:
- dbus-alpaca
ollama:
command: bin/ollama
plugs:
- home
- removable-media
- network
- network-bind
- opengl
ollama-daemon:
command: bin/ollama serve
daemon: simple
install-mode: enable
restart-condition: on-failure
plugs:
- home
- removable-media
- network
- network-bind
- opengl
parts:
# Python dependencies
python-deps:
plugin: python
source: .
python-packages:
- requests==2.31.0
- pillow==10.3.0
- pypdf==4.2.0
- pytube==15.0.0
- html2text==2024.2.26
# Ollama plugin
ollama:
plugin: dump
source: https://github.com/ollama/ollama/releases/download/v0.3.10/ollama-linux-amd64.tgz
# Alpaca app
alpaca:
plugin: meson
source-type: git
source: https://github.com/Jeffser/Alpaca.git
source-tag: '2.0.2'
source-depth: 1
meson-parameters:
- --prefix=/snap/alpaca/current/usr
build-packages:
- meson
- ninja-build
- pkg-config
- libcairo2-dev
- libgtk-3-dev
- libglib2.0-dev
- gettext
- desktop-file-utils
- appstream
override-pull: |
craftctl default
craftctl set version=$(git describe --tags --abbrev=0)
override-build: |
craftctl default
sed -i '1c#!/usr/bin/env python3' $CRAFT_PART_INSTALL/snap/alpaca/current/usr/bin/alpaca
stage-packages:
- libnuma1
parse-info:
- usr/share/metainfo/com.jeffser.Alpaca.metainfo.xml
organize:
snap/alpaca/current/usr: usr
after: [python-deps]