app-misc/ollama: move from dev-ml to app-misc

Could be moved into a new category together with other end user programs
related to machine learning in the future.

Signed-off-by: Lucio Sauer <watermanpaint@posteo.net>
This commit is contained in:
Lucio Sauer
2024-07-11 14:05:44 +02:00
parent 3c4e14dddd
commit fe3d951dfa
4 changed files with 1 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
#!/sbin/openrc-run
description="Ollama Service"
command="/usr/bin/ollama"
command_args="serve"
command_user="ollama"
command_group="ollama"
command_background="yes"
pidfile="/run/ollama.pid"
log="/var/log/ollama.log"
# Ollama allows cross-origin requests from 127.0.0.1 and 0.0.0.0 by default.
# Additional origins can be configured with OLLAMA_ORIGINS.
# export OLLAMA_ORIGINS="<ip>"
start() {
ebegin "Starting $description"
exec >> >(logger -t "$RC_SVCNAME Start daemon" -p daemon.info)
start-stop-daemon --start --background --user "$command_user" --group "$command_group" \
--pidfile "$pidfile" --make-pidfile --exec $command $command_args -1 $log -2 $log
eend $?
}
stop() {
ebegin "Stopping $description"
exec >> >(logger -t "$RC_SVCNAME Stop daemon" -p daemon.info)
start-stop-daemon --stop --pidfile "$pidfile"
eend $?
}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>zdanevich.vitaly@ya.ru</email>
<name>Vitaly Zdanevich</name>
<description>A copy from https://github.com/MrPenguin07/ebuilds/tree/master/dev-ml/ollama</description>
</maintainer>
<use>
<flag name="nvidia">Add support of nvidia</flag>
<flag name="amd">Add support of amd</flag>
</use>
<upstream>
<remote-id type="github">ollama/ollama</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,74 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit git-r3 go-module
DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models."
HOMEPAGE="https://ollama.com"
EGIT_REPO_URI="https://github.com/ollama/ollama.git"
LICENSE="MIT"
SLOT="0"
IUSE="nvidia amd"
RDEPEND="
acct-group/ollama
acct-user/ollama
"
IDEPEND="${RDEPEND}"
BDEPEND="
>=dev-lang/go-1.21.0
>=dev-build/cmake-3.24
>=sys-devel/gcc-11.4.0
nvidia? ( dev-util/nvidia-cuda-toolkit )
amd? (
sci-libs/clblast
dev-libs/rocm-opencl-runtime
)
"
pkg_pretend() {
if use amd; then
ewarn "WARNING: AMD & Nvidia support in this ebuild are experimental"
einfo "If you run into issues, especially compiling dev-libs/rocm-opencl-runtime"
einfo "you may try the docker image here https://github.com/ROCm/ROCm-docker"
einfo "and follow instructions here"
einfo "https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/docker.html"
fi
}
src_unpack() {
git-r3_src_unpack
go-module_live_vendor
}
src_compile() {
VERSION=$(
git describe --tags --first-parent --abbrev=7 --long --dirty --always \
| sed -e "s/^v//g"
assert
)
export GOFLAGS="'-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=${VERSION}\"'"
ego generate ./...
ego build .
}
src_install() {
dobin ollama
doinitd "${FILESDIR}"/ollama
}
pkg_preinst() {
touch /var/log/ollama.log || die
fowners ollama:ollama /var/log/ollama.log
}
pkg_postinst() {
einfo "Quick guide:"
einfo "ollama serve"
einfo "ollama run llama3:70b"
einfo "See available models at https://ollama.com/library"
}