# Copyright 2024-2026 Arran Ubels # Distributed under the terms of the GNU General Public License v2 # Generated by: # .github/workflows/app-misc-ollama-bin-update.yaml EAPI=8 DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other LLMs" HOMEPAGE="https://ollama.com" MY_PV="${PV/_/-}" OLLAMA_RELEASE_BASE="github.com/ollama/ollama/releases/download" SRC_URI=" amd64? ( https://${OLLAMA_RELEASE_BASE}/v${MY_PV}/ollama-linux-amd64.tar.zst -> ${P}.amd64.tar.zst ) arm64? ( https://${OLLAMA_RELEASE_BASE}/v${MY_PV}/ollama-linux-arm64.tar.zst -> ${P}.arm64.tar.zst ) rocm? ( https://${OLLAMA_RELEASE_BASE}/v${MY_PV}/ollama-linux-amd64-rocm.tar.zst -> ${P}.rocm.tar.zst )" S="${WORKDIR}" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~arm64" IUSE="+systemd rocm" RESTRICT="strip" BDEPEND="app-arch/zstd" DEPEND="acct-user/ollama acct-group/ollama" RDEPEND="acct-user/ollama acct-group/ollama" inherit systemd src_unpack() { if use rocm; then tar --zstd -xf "${DISTDIR}/${P}.rocm.tar.zst" \ -C "${WORKDIR}" || die "Failed to unpack rocm" fi if use amd64; then tar --zstd -xf "${DISTDIR}/${P}.amd64.tar.zst" \ -C "${WORKDIR}" || die "Failed to unpack amd64" elif use arm64; then tar --zstd -xf "${DISTDIR}/${P}.arm64.tar.zst" \ -C "${WORKDIR}" || die "Failed to unpack arm64" fi } src_install() { exeinto /opt/Ollama/bin doexe "${WORKDIR}/bin/ollama" || die "Failed to install binary" insinto /opt/Ollama/lib doins -r "${WORKDIR}/lib/ollama/" fperms -R +x /opt/Ollama/lib/ollama dosym ../Ollama/bin/ollama /opt/bin/ollama { echo "[Unit]" echo "Description=Ollama Service" echo "After=network-online.target" echo "" echo "[Service]" echo "ExecStart=/opt/Ollama/bin/ollama serve" echo "User=ollama" echo "Group=ollama" echo "Restart=always" echo "RestartSec=3" echo "" echo "[Install]" echo "WantedBy=default.target" } > "${T}/ollama.service" systemd_dounit "${T}/ollama.service" } src_prepare() { eapply_user } pkg_postinst() { einfo "Quick guide:" if use systemd; then einfo " To start the system-wide service:" einfo " systemctl start ollama" einfo " Or to run it manually as your user:" fi einfo " ollama serve" einfo "" einfo "To run a model:" einfo " ollama run llama3:70b" einfo "" einfo "See available models at https://ollama.com/library" }