From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id A47E7158176 for ; Sun, 19 Oct 2025 21:04:55 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 877B1341E8D for ; Sun, 19 Oct 2025 21:04:55 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 4262B11056D; Sun, 19 Oct 2025 21:04:52 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 3918B11056D for ; Sun, 19 Oct 2025 21:04:52 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 973C9341E83 for ; Sun, 19 Oct 2025 21:04:51 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id EBEA93A6A for ; Sun, 19 Oct 2025 21:04:49 +0000 (UTC) From: "Paul Zander" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Paul Zander" Message-ID: <1760905497.45cc7166ba4e115c8076a42fdb275249bd8ecdd1.negril.nx+gentoo@gentoo> Subject: [gentoo-commits] repo/proj/guru:dev commit in: sci-ml/ollama/ X-VCS-Repository: repo/proj/guru X-VCS-Files: sci-ml/ollama/Manifest sci-ml/ollama/ollama-0.10.0.ebuild sci-ml/ollama/ollama-0.10.1.ebuild sci-ml/ollama/ollama-0.11.10.ebuild sci-ml/ollama/ollama-0.11.4.ebuild sci-ml/ollama/ollama-0.11.5.ebuild sci-ml/ollama/ollama-0.11.6.ebuild sci-ml/ollama/ollama-0.9.6.ebuild X-VCS-Directories: sci-ml/ollama/ X-VCS-Committer: negril.nx+gentoo X-VCS-Committer-Name: Paul Zander X-VCS-Revision: 45cc7166ba4e115c8076a42fdb275249bd8ecdd1 X-VCS-Branch: dev Date: Sun, 19 Oct 2025 21:04:49 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: c9dfaf80-3dbd-496a-80cf-1c672a54e8cb X-Archives-Hash: cafd306b65807f7305d26aced2f93fd1 commit: 45cc7166ba4e115c8076a42fdb275249bd8ecdd1 Author: Paul Zander gmail com> AuthorDate: Sun Oct 19 20:24:57 2025 +0000 Commit: Paul Zander gmail com> CommitDate: Sun Oct 19 20:24:57 2025 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=45cc7166 sci-ml/ollama: drop old Signed-off-by: Paul Zander gmail.com> sci-ml/ollama/Manifest | 14 -- sci-ml/ollama/ollama-0.10.0.ebuild | 322 ----------------------------------- sci-ml/ollama/ollama-0.10.1.ebuild | 322 ----------------------------------- sci-ml/ollama/ollama-0.11.10.ebuild | 325 ------------------------------------ sci-ml/ollama/ollama-0.11.4.ebuild | 322 ----------------------------------- sci-ml/ollama/ollama-0.11.5.ebuild | 322 ----------------------------------- sci-ml/ollama/ollama-0.11.6.ebuild | 322 ----------------------------------- sci-ml/ollama/ollama-0.9.6.ebuild | 322 ----------------------------------- 8 files changed, 2271 deletions(-) diff --git a/sci-ml/ollama/Manifest b/sci-ml/ollama/Manifest index d4e8516481..2a513ab16a 100644 --- a/sci-ml/ollama/Manifest +++ b/sci-ml/ollama/Manifest @@ -1,18 +1,4 @@ -DIST ollama-0.10.0-vendor.tar.xz 4498000 BLAKE2B ea3bc6854c127b0c603ff41b021a234ee856c1611e3925c777d5680386092f48919a19d6508a44b688277d6a72d28f1fe3ecb0f96a056b4009881b36916308cd SHA512 5720e9166fb5f48ed5559da408d53159b639c149dc7099ffa73d909c932103fc63f8387b9cbb851e928051f491fe43e59f1a1d3a30df987e7417f51d3968debe -DIST ollama-0.10.0.gh.tar.gz 10426211 BLAKE2B be5a6e56f76cf68f7ffb7719820eda27faaa6ec332455dea49eb30d7dd0feb06ba44d79084f5fcf4dc14174a99c3aae720bd7a56b49b62755b0b4e9fd4dfe1ca SHA512 0e9b04e9265e44e1ff6c039ad5707c50001da8f1a29ac6573f415f4d7ffb156ab4635bab814327a748daa215a3f9c4f7f9ee9c4f0bb2301ef2abd6e36d8f260b -DIST ollama-0.10.1-vendor.tar.xz 4498556 BLAKE2B 881c7660b0eaf657b69ca40c4fd5514cc64ec9b94395dd226e25551fee0d992e34b282596b1c7fc6124008e20f96547c32c8c2cc248bfa655a3c1990fe7f1e06 SHA512 bbad0722a097e3616c85434ad580b0731640476e9715025509001a00a859b6f62798b754bead7b9d267b65a5acccd85094681a2f44830c41fbdca34689492e5b -DIST ollama-0.10.1.gh.tar.gz 10426173 BLAKE2B 8ddc4f0c8822e751d7938a957dbf4c5ee03a3abf54215fe109bb2330bb20572861f702835a7b36508c04c7c4551c39876c287d5ffd4956c4d2cb0197c42dd95b SHA512 845fe6756571f77ca08b9725d208ba3213cc36ca13d25ec158540d4c8cd9f683eb3f04364318ee70ba8e581350eb25f4a171262277da75c3db1ecc8e4f2cf496 -DIST ollama-0.11.10-vendor.tar.xz 4500504 BLAKE2B 16e1419638499310d824ee1425304f1d6087cfffce79b1ed39e8b0852ea61e9cb086fad35abca8de9df089f1a2e2a7bfb724993566d47f8b72356cc8da34a0d8 SHA512 abe2269d7759d074f0e702e9ced37abc733bb656027f2125c8d9a06a14c3ee23f06ee8c1737a33d7eb98538d07dd9a3f51958819e2c3e31a98ca0b04bdd289b9 -DIST ollama-0.11.10.gh.tar.gz 10991167 BLAKE2B 1473f43bb6d03bce490f4769199fd64eed64087544f9f418577dfdb8809704d8f63975c420be25910a2ffe82ae131d9a56926d99ac65530d0866f1bf7016a982 SHA512 e3f03c0d3c989c71e30c634de2a21bcd4b4ea8708be26b34620f6a23e2f4011487e1b5dda0fea0a0fc46ff2d6b27d42a8851bc894fca177ad15eb4d9636d0125 -DIST ollama-0.11.4-vendor.tar.xz 4504352 BLAKE2B 7f79eb8c0a8a611801e46a14d67209345e94bcdcfe1edf7894ff431d26ff68845dac110ebc998f166abec155c9074767651b562d9247343989ac93f7472369f9 SHA512 94b4619384c44519eebd2ae89ffcb61ccb4cc90b8104f3256c5fea723916d3be1154aab7e26df8fcdced29fefaad4cdd548b05846565d766ed312cb610a7fb70 -DIST ollama-0.11.4.gh.tar.gz 10471532 BLAKE2B 916f45548978076be949eac83a5068c7f86824928d30766c1f8c79e59b0f958ee8b0e73c4eac59bdd980605964e8f87f953cf39f81c609fcd3f53e4146bf0696 SHA512 586d6d641b6ae76fbf450be299f6a7032bf83017654df257bfdf97e9a04ad642045fd7f250eb97d55958d2b48844d6f32728e37ac35641dba208797cd5133ea8 -DIST ollama-0.11.5-vendor.tar.xz 4495744 BLAKE2B ef1d55de3ba6e7116d56a1a0178eea436d23466693497797a460525d69b7b680efe848a2fbab832ec31aa21cd5b7f5b6ab02467907b161171ec20367dff6542e SHA512 836cfb064173a27204d20b54d8988deed4f50af87c7e436c111e95c687e8c05664e098a3fac38a0346ce0c06eff24e47577679d9356410fcc9dd2673cf3261dc -DIST ollama-0.11.5.gh.tar.gz 10981612 BLAKE2B 0ade2ca5722289c6f1e32eb3af6c310cc1d6a0cd33a4bab98c385e4a62b73dc7e727149cc1dd34d26fc7eb36c081f9482ad396a007e9ba81fade143fb028ca65 SHA512 f05d0ce0105f185050e797c824b536b3d93012df6483c8b637571190832e2b1d96826e824829c3d62a691061da9b2bdda756229e2ffaa713af7335903b6b272d -DIST ollama-0.11.6-vendor.tar.xz 4496536 BLAKE2B 31cae5f914d1fe9b125d9be13588cca2bd7b1665214eb4b33ce41c9ffecea0c2cf50378f62511d8e5fb02c7a4c6a0f89f713166dd6f68580aa68b561a328b804 SHA512 ca4ec77aa86362f2c974b19e3635028c1ea743cfa8d5b5c6a9f7a7b9942596398080421cd60358178a4953244247941d97aef4e190abca4921b903dbc7d1dfa2 -DIST ollama-0.11.6.gh.tar.gz 10981671 BLAKE2B 29a6e7ab6a6732b79492695f5b8d064539c56b8455607e88776f6c84d46f61b95e22650ec637d7f0a37fd506b0f343d34eb2666a0f4aadbce26d518c1fa1a77e SHA512 7118feea14ee50c463dca3a23804298597165a8db6f831994049b384786b0391ee8f441d626347109c6b1e9e014c5d6d9890bd5a57598d55845c8d3ffdd30223 DIST ollama-0.12.3-deps.tar.xz 48057580 BLAKE2B f27521bd7755fe5d7deb57962f305ec17ddbe34b024744152531143eda1128f25a501b5923cee58dc54c832eeaaa50b7135c4a594a1f25f9eec211ac2e55e148 SHA512 cb226f4bbb46c9b76f890f12d7a9671331690a866f74440c10444c6638b2895f3df4036930a98f06401e3a3cfec562e214a4030aca1787600175760f7eaedef8 DIST ollama-0.12.3.gh.tar.gz 11024073 BLAKE2B 4de9eb2b6c1860ef93b3c396139c6fc99f71c208b717207cc22780725b8826b0f28d74c223c26ca05ab5d07a2548c60ac6bcd34cb15222b9e6b1d79a40cbe25b SHA512 22c182bc233db3f403e32bd45bbc7ef59644211434a48c95d97d624468880388a7a806af75a6d9be0497a611674d83970679f90df0b4afb536cec5ce2682db65 DIST ollama-0.12.6-deps.tar.xz 48057580 BLAKE2B f27521bd7755fe5d7deb57962f305ec17ddbe34b024744152531143eda1128f25a501b5923cee58dc54c832eeaaa50b7135c4a594a1f25f9eec211ac2e55e148 SHA512 cb226f4bbb46c9b76f890f12d7a9671331690a866f74440c10444c6638b2895f3df4036930a98f06401e3a3cfec562e214a4030aca1787600175760f7eaedef8 DIST ollama-0.12.6.gh.tar.gz 11355405 BLAKE2B 4511a5d2cf199333a63bf1b46f86ab8aa90ea6c156b63b16932c0b7356881bf6d4cd93a01c4b0390da96d18574aa272b5ebcab69b8bb5929145f4b72c0e875c7 SHA512 e9c9234914044a9f1ae0512adf1e5404161d2adc04036ef84da44a3c38d2684e883cd9705f986259199218e739dba01a7af845a93f85eecf949f81b1472eca23 -DIST ollama-0.9.6-vendor.tar.xz 4499268 BLAKE2B 8fd2834e258d92b49a75f543709ec609ec9c4ad480755ed570165f24c1259128985b9e09ce3d1ad7a94375aaf42d85ec75e4cd8de5828e225e95f1ed9dc45362 SHA512 5eca6971a8119d500562cf76039f97207bc66cad4fac78f56066fe54d64257958b3e6f74393c6797a6752776e3161b9d7fbd6fae5e0a59cdd8ed25d9b1df101d -DIST ollama-0.9.6.gh.tar.gz 10421166 BLAKE2B 98c9d61d96da502e6aa21cfe2df54f2532645808777ced00dc56bce562824952aa15fff82d769af989a8815f5f26e97853db14d549a3a02610ac755f30918955 SHA512 a3dfac78b6405128837a16588d9de898b3cd4bc9c20dae46f73e1de8d71ccf3c44068ff900f6f6770e5ea6c82a5a91db266bb275d3e159cf701e8e037be9e3c4 diff --git a/sci-ml/ollama/ollama-0.10.0.ebuild b/sci-ml/ollama/ollama-0.10.0.ebuild deleted file mode 100644 index 0a02a80575..0000000000 --- a/sci-ml/ollama/ollama-0.10.0.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# supports ROCM/HIP >=5.5, but we define 6.1 due to the eclass -ROCM_VERSION=6.1 -inherit cuda rocm -inherit cmake -inherit go-module systemd toolchain-funcs - -DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models." -HOMEPAGE="https://ollama.com" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ollama/ollama.git" -else - SRC_URI=" - https://github.com/ollama/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz - https://github.com/negril/gentoo-overlay-vendored/raw/refs/heads/blobs/${P}-vendor.tar.xz - " - KEYWORDS="~amd64" -fi - -LICENSE="MIT" -SLOT="0" - -X86_CPU_FLAGS=( - sse4_2 - avx - f16c - avx2 - bmi2 - fma3 - avx512f - avx512vbmi - avx512_vnni - avx_vnni -) -CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" ) -IUSE="${CPU_FLAGS[*]} cuda blas mkl rocm" -# IUSE+=" opencl vulkan" - -RESTRICT="test" - -COMMON_DEPEND=" - cuda? ( - dev-util/nvidia-cuda-toolkit:= - ) - blas? ( - !mkl? ( - virtual/blas - ) - mkl? ( - sci-libs/mkl - ) - ) - rocm? ( - >=sci-libs/hipBLAS-5.5:=[${ROCM_USEDEP}] - ) -" - -DEPEND=" - ${COMMON_DEPEND} - >=dev-lang/go-1.23.4 -" - -RDEPEND=" - ${COMMON_DEPEND} - acct-group/${PN} - >=acct-user/${PN}-3[cuda?] -" - -PATCHES=( - "${FILESDIR}/${PN}-0.6.3-use-GNUInstallDirs.patch" -) - -pkg_pretend() { - if use amd64; then - if use cpu_flags_x86_f16c && use cpu_flags_x86_avx2 && use cpu_flags_x86_fma3 && ! use cpu_flags_x86_bmi2; then - ewarn - ewarn "CPU_FLAGS_X86: bmi2 not enabled." - ewarn " Not building haswell runner." - ewarn " Not building skylakex runner." - ewarn " Not building icelake runner." - ewarn " Not building alderlake runner." - ewarn - if grep bmi2 /proc/cpuinfo > /dev/null; then - ewarn "bmi2 found in /proc/cpuinfo" - ewarn - fi - fi - fi -} - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_prepare() { - cmake_src_prepare - - sed \ - -e "/set(GGML_CCACHE/s/ON/OFF/g" \ - -e "/PRE_INCLUDE_REGEXES.*cu/d" \ - -e "/PRE_INCLUDE_REGEXES.*hip/d" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/ -O3//g" \ - -i ml/backend/ggml/ggml/src/ggml-cpu/cpu.go || die sed - - # fix library location - sed \ - -e "s#lib/ollama#$(get_libdir)/ollama#g" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/\"..\", \"lib\"/\"..\", \"$(get_libdir)\"/" \ - -e "s#\"lib/ollama\"#\"$(get_libdir)/ollama\"#" \ - -i \ - ml/backend/ggml/ggml/src/ggml.go \ - discover/path.go \ - || die - - if use amd64; then - if - ! use cpu_flags_x86_sse4_2; then - sed -e "/ggml_add_cpu_backend_variant(sse42/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx; then - sed -e "/ggml_add_cpu_backend_variant(sandybridge/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3; then - sed -e "/ggml_add_cpu_backend_variant(haswell/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f; then - sed -e "/ggml_add_cpu_backend_variant(skylakex/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f || - ! use cpu_flags_x86_avx512vbmi || - ! use cpu_flags_x86_avx512_vnni; then - sed -e "/ggml_add_cpu_backend_variant(icelake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx_vnni; then - sed -e "/ggml_add_cpu_backend_variant(alderlake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI) - fi - - # ml/backend/ggml/ggml/src/CMakeLists.txt - fi - - # default - # return - if use cuda; then - cuda_src_prepare - fi - - if use rocm; then - # --hip-version gets appended to the compile flags which isn't a known flag. - # This causes rocm builds to fail because -Wunused-command-line-argument is turned on. - # Use nuclear option to fix this. - # Disable -Werror's from go modules. - find "${S}" -name ".go" -exec sed -i "s/ -Werror / /g" {} + || die - fi -} - -src_configure() { - local mycmakeargs=( - -DGGML_CCACHE="no" - - # -DGGML_CPU="yes" - -DGGML_BLAS="$(usex blas)" - # -DGGML_CUDA="$(usex cuda)" - # -DGGML_HIP="$(usex rocm)" - - # -DGGML_METAL="yes" # apple - # missing from ml/backend/ggml/ggml/src/ - # -DGGML_CANN="yes" - # -DGGML_MUSA="yes" - # -DGGML_RPC="yes" - # -DGGML_SYCL="yes" - # -DGGML_KOMPUTE="$(usex kompute)" - # -DGGML_OPENCL="$(usex opencl)" - # -DGGML_VULKAN="$(usex vulkan)" - ) - - if use blas; then - if use mkl; then - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Intel" - ) - else - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Generic" - ) - fi - fi - if use cuda; then - local -x CUDAHOSTCXX CUDAHOSTLD - CUDAHOSTCXX="$(cuda_gccdir)" - CUDAHOSTLD="$(tc-getCXX)" - - cuda_add_sandbox -w - addpredict "/dev/char/" - else - mycmakeargs+=( - -DCMAKE_CUDA_COMPILER="NOTFOUND" - ) - fi - - if use rocm; then - mycmakeargs+=( - -DCMAKE_HIP_ARCHITECTURES="$(get_amdgpu_flags)" - -DCMAKE_HIP_PLATFORM="amd" - # ollama doesn't honor the default cmake options - -DAMDGPU_TARGETS="$(get_amdgpu_flags)" - ) - - local -x HIP_PATH="${ESYSROOT}/usr" - - check_amdgpu - else - mycmakeargs+=( - -DCMAKE_HIP_COMPILER="NOTFOUND" - ) - fi - - cmake_src_configure -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION=$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - ) - else - VERSION="${PVR}" - fi - GOFLAGS+=" '-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'" - - ego build - - cmake_src_compile -} - -src_install() { - dobin ollama - - cmake_src_install - - newinitd "${FILESDIR}/ollama.init" "${PN}" - newconfd "${FILESDIR}/ollama.confd" "${PN}" - - systemd_dounit "${FILESDIR}/ollama.service" -} - -pkg_preinst() { - keepdir /var/log/ollama - fperms 750 /var/log/ollama - fowners "${PN}:${PN}" /var/log/ollama -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - einfo "Quick guide:" - einfo "\tollama serve" - einfo "\tollama run llama3:70b" - einfo - einfo "See available models at https://ollama.com/library" - fi - - if use cuda ; then - einfo "When using cuda the user running ${PN} has to be in the video group or it won't detect devices." - einfo "The ebuild ensures this for user ${PN} via acct-user/${PN}[cuda]" - fi -} diff --git a/sci-ml/ollama/ollama-0.10.1.ebuild b/sci-ml/ollama/ollama-0.10.1.ebuild deleted file mode 100644 index 0a02a80575..0000000000 --- a/sci-ml/ollama/ollama-0.10.1.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# supports ROCM/HIP >=5.5, but we define 6.1 due to the eclass -ROCM_VERSION=6.1 -inherit cuda rocm -inherit cmake -inherit go-module systemd toolchain-funcs - -DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models." -HOMEPAGE="https://ollama.com" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ollama/ollama.git" -else - SRC_URI=" - https://github.com/ollama/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz - https://github.com/negril/gentoo-overlay-vendored/raw/refs/heads/blobs/${P}-vendor.tar.xz - " - KEYWORDS="~amd64" -fi - -LICENSE="MIT" -SLOT="0" - -X86_CPU_FLAGS=( - sse4_2 - avx - f16c - avx2 - bmi2 - fma3 - avx512f - avx512vbmi - avx512_vnni - avx_vnni -) -CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" ) -IUSE="${CPU_FLAGS[*]} cuda blas mkl rocm" -# IUSE+=" opencl vulkan" - -RESTRICT="test" - -COMMON_DEPEND=" - cuda? ( - dev-util/nvidia-cuda-toolkit:= - ) - blas? ( - !mkl? ( - virtual/blas - ) - mkl? ( - sci-libs/mkl - ) - ) - rocm? ( - >=sci-libs/hipBLAS-5.5:=[${ROCM_USEDEP}] - ) -" - -DEPEND=" - ${COMMON_DEPEND} - >=dev-lang/go-1.23.4 -" - -RDEPEND=" - ${COMMON_DEPEND} - acct-group/${PN} - >=acct-user/${PN}-3[cuda?] -" - -PATCHES=( - "${FILESDIR}/${PN}-0.6.3-use-GNUInstallDirs.patch" -) - -pkg_pretend() { - if use amd64; then - if use cpu_flags_x86_f16c && use cpu_flags_x86_avx2 && use cpu_flags_x86_fma3 && ! use cpu_flags_x86_bmi2; then - ewarn - ewarn "CPU_FLAGS_X86: bmi2 not enabled." - ewarn " Not building haswell runner." - ewarn " Not building skylakex runner." - ewarn " Not building icelake runner." - ewarn " Not building alderlake runner." - ewarn - if grep bmi2 /proc/cpuinfo > /dev/null; then - ewarn "bmi2 found in /proc/cpuinfo" - ewarn - fi - fi - fi -} - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_prepare() { - cmake_src_prepare - - sed \ - -e "/set(GGML_CCACHE/s/ON/OFF/g" \ - -e "/PRE_INCLUDE_REGEXES.*cu/d" \ - -e "/PRE_INCLUDE_REGEXES.*hip/d" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/ -O3//g" \ - -i ml/backend/ggml/ggml/src/ggml-cpu/cpu.go || die sed - - # fix library location - sed \ - -e "s#lib/ollama#$(get_libdir)/ollama#g" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/\"..\", \"lib\"/\"..\", \"$(get_libdir)\"/" \ - -e "s#\"lib/ollama\"#\"$(get_libdir)/ollama\"#" \ - -i \ - ml/backend/ggml/ggml/src/ggml.go \ - discover/path.go \ - || die - - if use amd64; then - if - ! use cpu_flags_x86_sse4_2; then - sed -e "/ggml_add_cpu_backend_variant(sse42/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx; then - sed -e "/ggml_add_cpu_backend_variant(sandybridge/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3; then - sed -e "/ggml_add_cpu_backend_variant(haswell/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f; then - sed -e "/ggml_add_cpu_backend_variant(skylakex/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f || - ! use cpu_flags_x86_avx512vbmi || - ! use cpu_flags_x86_avx512_vnni; then - sed -e "/ggml_add_cpu_backend_variant(icelake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx_vnni; then - sed -e "/ggml_add_cpu_backend_variant(alderlake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI) - fi - - # ml/backend/ggml/ggml/src/CMakeLists.txt - fi - - # default - # return - if use cuda; then - cuda_src_prepare - fi - - if use rocm; then - # --hip-version gets appended to the compile flags which isn't a known flag. - # This causes rocm builds to fail because -Wunused-command-line-argument is turned on. - # Use nuclear option to fix this. - # Disable -Werror's from go modules. - find "${S}" -name ".go" -exec sed -i "s/ -Werror / /g" {} + || die - fi -} - -src_configure() { - local mycmakeargs=( - -DGGML_CCACHE="no" - - # -DGGML_CPU="yes" - -DGGML_BLAS="$(usex blas)" - # -DGGML_CUDA="$(usex cuda)" - # -DGGML_HIP="$(usex rocm)" - - # -DGGML_METAL="yes" # apple - # missing from ml/backend/ggml/ggml/src/ - # -DGGML_CANN="yes" - # -DGGML_MUSA="yes" - # -DGGML_RPC="yes" - # -DGGML_SYCL="yes" - # -DGGML_KOMPUTE="$(usex kompute)" - # -DGGML_OPENCL="$(usex opencl)" - # -DGGML_VULKAN="$(usex vulkan)" - ) - - if use blas; then - if use mkl; then - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Intel" - ) - else - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Generic" - ) - fi - fi - if use cuda; then - local -x CUDAHOSTCXX CUDAHOSTLD - CUDAHOSTCXX="$(cuda_gccdir)" - CUDAHOSTLD="$(tc-getCXX)" - - cuda_add_sandbox -w - addpredict "/dev/char/" - else - mycmakeargs+=( - -DCMAKE_CUDA_COMPILER="NOTFOUND" - ) - fi - - if use rocm; then - mycmakeargs+=( - -DCMAKE_HIP_ARCHITECTURES="$(get_amdgpu_flags)" - -DCMAKE_HIP_PLATFORM="amd" - # ollama doesn't honor the default cmake options - -DAMDGPU_TARGETS="$(get_amdgpu_flags)" - ) - - local -x HIP_PATH="${ESYSROOT}/usr" - - check_amdgpu - else - mycmakeargs+=( - -DCMAKE_HIP_COMPILER="NOTFOUND" - ) - fi - - cmake_src_configure -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION=$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - ) - else - VERSION="${PVR}" - fi - GOFLAGS+=" '-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'" - - ego build - - cmake_src_compile -} - -src_install() { - dobin ollama - - cmake_src_install - - newinitd "${FILESDIR}/ollama.init" "${PN}" - newconfd "${FILESDIR}/ollama.confd" "${PN}" - - systemd_dounit "${FILESDIR}/ollama.service" -} - -pkg_preinst() { - keepdir /var/log/ollama - fperms 750 /var/log/ollama - fowners "${PN}:${PN}" /var/log/ollama -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - einfo "Quick guide:" - einfo "\tollama serve" - einfo "\tollama run llama3:70b" - einfo - einfo "See available models at https://ollama.com/library" - fi - - if use cuda ; then - einfo "When using cuda the user running ${PN} has to be in the video group or it won't detect devices." - einfo "The ebuild ensures this for user ${PN} via acct-user/${PN}[cuda]" - fi -} diff --git a/sci-ml/ollama/ollama-0.11.10.ebuild b/sci-ml/ollama/ollama-0.11.10.ebuild deleted file mode 100644 index 924b9b7b40..0000000000 --- a/sci-ml/ollama/ollama-0.11.10.ebuild +++ /dev/null @@ -1,325 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# supports ROCM/HIP >=5.5, but we define 6.1 due to the eclass -ROCM_VERSION=6.1 -inherit cuda rocm -inherit cmake -inherit go-module systemd toolchain-funcs - -DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models." -HOMEPAGE="https://ollama.com" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ollama/ollama.git" -else - SRC_URI=" - https://github.com/ollama/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz - https://github.com/negril/gentoo-overlay-vendored/raw/refs/heads/blobs/${P}-vendor.tar.xz - " - KEYWORDS="~amd64" -fi - -LICENSE="MIT" -SLOT="0" - -X86_CPU_FLAGS=( - sse4_2 - avx - f16c - avx2 - bmi2 - fma3 - avx512f - avx512vbmi - avx512_vnni - avx_vnni -) -CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" ) -IUSE="${CPU_FLAGS[*]} cuda blas mkl rocm" -# IUSE+=" opencl vulkan" - -RESTRICT="test" - -COMMON_DEPEND=" - cuda? ( - dev-util/nvidia-cuda-toolkit:= - ) - blas? ( - !mkl? ( - virtual/blas - ) - mkl? ( - sci-libs/mkl - ) - ) - rocm? ( - >=sci-libs/hipBLAS-5.5:=[${ROCM_USEDEP}] - ) -" - -DEPEND=" - ${COMMON_DEPEND} - >=dev-lang/go-1.23.4 -" - -RDEPEND=" - ${COMMON_DEPEND} - acct-group/${PN} - >=acct-user/${PN}-3[cuda?] -" - -PATCHES=( - "${FILESDIR}/${PN}-0.6.3-use-GNUInstallDirs.patch" -) - -pkg_pretend() { - if use amd64; then - if use cpu_flags_x86_f16c && use cpu_flags_x86_avx2 && use cpu_flags_x86_fma3 && ! use cpu_flags_x86_bmi2; then - ewarn - ewarn "CPU_FLAGS_X86: bmi2 not enabled." - ewarn " Not building haswell runner." - ewarn " Not building skylakex runner." - ewarn " Not building icelake runner." - ewarn " Not building alderlake runner." - ewarn - if grep bmi2 /proc/cpuinfo > /dev/null; then - ewarn "bmi2 found in /proc/cpuinfo" - ewarn - fi - fi - fi -} - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_prepare() { - cmake_src_prepare - - sed \ - -e "/set(GGML_CCACHE/s/ON/OFF/g" \ - -e "/PRE_INCLUDE_REGEXES.*cu/d" \ - -e "/PRE_INCLUDE_REGEXES.*hip/d" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/ -O3//g" \ - -i ml/backend/ggml/ggml/src/ggml-cpu/cpu.go || die sed - - # fix library location - sed \ - -e "s#lib/ollama#$(get_libdir)/ollama#g" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/\"..\", \"lib\"/\"..\", \"$(get_libdir)\"/" \ - -e "s#\"lib/ollama\"#\"$(get_libdir)/ollama\"#" \ - -i \ - ml/backend/ggml/ggml/src/ggml.go \ - discover/path.go \ - || die - - if use amd64; then - if - ! use cpu_flags_x86_sse4_2; then - sed -e "/ggml_add_cpu_backend_variant(sse42/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx; then - sed -e "/ggml_add_cpu_backend_variant(sandybridge/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3; then - sed -e "/ggml_add_cpu_backend_variant(haswell/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f; then - sed -e "/ggml_add_cpu_backend_variant(skylakex/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f || - ! use cpu_flags_x86_avx512vbmi || - ! use cpu_flags_x86_avx512_vnni; then - sed -e "/ggml_add_cpu_backend_variant(icelake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx_vnni; then - sed -e "/ggml_add_cpu_backend_variant(alderlake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI) - fi - - # ml/backend/ggml/ggml/src/CMakeLists.txt - fi - - # default - # return - if use cuda; then - cuda_src_prepare - fi - - if use rocm; then - # --hip-version gets appended to the compile flags which isn't a known flag. - # This causes rocm builds to fail because -Wunused-command-line-argument is turned on. - # Use nuclear option to fix this. - # Disable -Werror's from go modules. - find "${S}" -name ".go" -exec sed -i "s/ -Werror / /g" {} + || die - fi -} - -src_configure() { - local mycmakeargs=( - -DGGML_CCACHE="no" - - # -DGGML_CPU="yes" - -DGGML_BLAS="$(usex blas)" - # -DGGML_CUDA="$(usex cuda)" - # -DGGML_HIP="$(usex rocm)" - - # -DGGML_METAL="yes" # apple - # missing from ml/backend/ggml/ggml/src/ - # -DGGML_CANN="yes" - # -DGGML_MUSA="yes" - # -DGGML_RPC="yes" - # -DGGML_SYCL="yes" - # -DGGML_KOMPUTE="$(usex kompute)" - # -DGGML_OPENCL="$(usex opencl)" - # -DGGML_VULKAN="$(usex vulkan)" - ) - - if use blas; then - if use mkl; then - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Intel" - ) - else - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Generic" - ) - fi - fi - if use cuda; then - local -x CUDAHOSTCXX CUDAHOSTLD - CUDAHOSTCXX="$(cuda_gccdir)" - CUDAHOSTLD="$(tc-getCXX)" - - cuda_add_sandbox -w - addpredict "/dev/char/" - else - mycmakeargs+=( - -DCMAKE_CUDA_COMPILER="NOTFOUND" - ) - fi - - if use rocm; then - # 962445 - rocm_use_hipcc - - mycmakeargs+=( - -DCMAKE_HIP_ARCHITECTURES="$(get_amdgpu_flags)" - -DCMAKE_HIP_PLATFORM="amd" - # ollama doesn't honor the default cmake options - -DAMDGPU_TARGETS="$(get_amdgpu_flags)" - ) - - local -x HIP_PATH="${ESYSROOT}/usr" - - check_amdgpu - else - mycmakeargs+=( - -DCMAKE_HIP_COMPILER="NOTFOUND" - ) - fi - - cmake_src_configure -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION=$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - ) - else - VERSION="${PVR}" - fi - GOFLAGS+=" '-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'" - - ego build - - cmake_src_compile -} - -src_install() { - dobin ollama - - cmake_src_install - - newinitd "${FILESDIR}/ollama.init" "${PN}" - newconfd "${FILESDIR}/ollama.confd" "${PN}" - - systemd_dounit "${FILESDIR}/ollama.service" -} - -pkg_preinst() { - keepdir /var/log/ollama - fperms 750 /var/log/ollama - fowners "${PN}:${PN}" /var/log/ollama -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - einfo "Quick guide:" - einfo "\tollama serve" - einfo "\tollama run llama3:70b" - einfo - einfo "See available models at https://ollama.com/library" - fi - - if use cuda ; then - einfo "When using cuda the user running ${PN} has to be in the video group or it won't detect devices." - einfo "The ebuild ensures this for user ${PN} via acct-user/${PN}[cuda]" - fi -} diff --git a/sci-ml/ollama/ollama-0.11.4.ebuild b/sci-ml/ollama/ollama-0.11.4.ebuild deleted file mode 100644 index 0a02a80575..0000000000 --- a/sci-ml/ollama/ollama-0.11.4.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# supports ROCM/HIP >=5.5, but we define 6.1 due to the eclass -ROCM_VERSION=6.1 -inherit cuda rocm -inherit cmake -inherit go-module systemd toolchain-funcs - -DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models." -HOMEPAGE="https://ollama.com" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ollama/ollama.git" -else - SRC_URI=" - https://github.com/ollama/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz - https://github.com/negril/gentoo-overlay-vendored/raw/refs/heads/blobs/${P}-vendor.tar.xz - " - KEYWORDS="~amd64" -fi - -LICENSE="MIT" -SLOT="0" - -X86_CPU_FLAGS=( - sse4_2 - avx - f16c - avx2 - bmi2 - fma3 - avx512f - avx512vbmi - avx512_vnni - avx_vnni -) -CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" ) -IUSE="${CPU_FLAGS[*]} cuda blas mkl rocm" -# IUSE+=" opencl vulkan" - -RESTRICT="test" - -COMMON_DEPEND=" - cuda? ( - dev-util/nvidia-cuda-toolkit:= - ) - blas? ( - !mkl? ( - virtual/blas - ) - mkl? ( - sci-libs/mkl - ) - ) - rocm? ( - >=sci-libs/hipBLAS-5.5:=[${ROCM_USEDEP}] - ) -" - -DEPEND=" - ${COMMON_DEPEND} - >=dev-lang/go-1.23.4 -" - -RDEPEND=" - ${COMMON_DEPEND} - acct-group/${PN} - >=acct-user/${PN}-3[cuda?] -" - -PATCHES=( - "${FILESDIR}/${PN}-0.6.3-use-GNUInstallDirs.patch" -) - -pkg_pretend() { - if use amd64; then - if use cpu_flags_x86_f16c && use cpu_flags_x86_avx2 && use cpu_flags_x86_fma3 && ! use cpu_flags_x86_bmi2; then - ewarn - ewarn "CPU_FLAGS_X86: bmi2 not enabled." - ewarn " Not building haswell runner." - ewarn " Not building skylakex runner." - ewarn " Not building icelake runner." - ewarn " Not building alderlake runner." - ewarn - if grep bmi2 /proc/cpuinfo > /dev/null; then - ewarn "bmi2 found in /proc/cpuinfo" - ewarn - fi - fi - fi -} - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_prepare() { - cmake_src_prepare - - sed \ - -e "/set(GGML_CCACHE/s/ON/OFF/g" \ - -e "/PRE_INCLUDE_REGEXES.*cu/d" \ - -e "/PRE_INCLUDE_REGEXES.*hip/d" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/ -O3//g" \ - -i ml/backend/ggml/ggml/src/ggml-cpu/cpu.go || die sed - - # fix library location - sed \ - -e "s#lib/ollama#$(get_libdir)/ollama#g" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/\"..\", \"lib\"/\"..\", \"$(get_libdir)\"/" \ - -e "s#\"lib/ollama\"#\"$(get_libdir)/ollama\"#" \ - -i \ - ml/backend/ggml/ggml/src/ggml.go \ - discover/path.go \ - || die - - if use amd64; then - if - ! use cpu_flags_x86_sse4_2; then - sed -e "/ggml_add_cpu_backend_variant(sse42/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx; then - sed -e "/ggml_add_cpu_backend_variant(sandybridge/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3; then - sed -e "/ggml_add_cpu_backend_variant(haswell/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f; then - sed -e "/ggml_add_cpu_backend_variant(skylakex/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f || - ! use cpu_flags_x86_avx512vbmi || - ! use cpu_flags_x86_avx512_vnni; then - sed -e "/ggml_add_cpu_backend_variant(icelake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx_vnni; then - sed -e "/ggml_add_cpu_backend_variant(alderlake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI) - fi - - # ml/backend/ggml/ggml/src/CMakeLists.txt - fi - - # default - # return - if use cuda; then - cuda_src_prepare - fi - - if use rocm; then - # --hip-version gets appended to the compile flags which isn't a known flag. - # This causes rocm builds to fail because -Wunused-command-line-argument is turned on. - # Use nuclear option to fix this. - # Disable -Werror's from go modules. - find "${S}" -name ".go" -exec sed -i "s/ -Werror / /g" {} + || die - fi -} - -src_configure() { - local mycmakeargs=( - -DGGML_CCACHE="no" - - # -DGGML_CPU="yes" - -DGGML_BLAS="$(usex blas)" - # -DGGML_CUDA="$(usex cuda)" - # -DGGML_HIP="$(usex rocm)" - - # -DGGML_METAL="yes" # apple - # missing from ml/backend/ggml/ggml/src/ - # -DGGML_CANN="yes" - # -DGGML_MUSA="yes" - # -DGGML_RPC="yes" - # -DGGML_SYCL="yes" - # -DGGML_KOMPUTE="$(usex kompute)" - # -DGGML_OPENCL="$(usex opencl)" - # -DGGML_VULKAN="$(usex vulkan)" - ) - - if use blas; then - if use mkl; then - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Intel" - ) - else - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Generic" - ) - fi - fi - if use cuda; then - local -x CUDAHOSTCXX CUDAHOSTLD - CUDAHOSTCXX="$(cuda_gccdir)" - CUDAHOSTLD="$(tc-getCXX)" - - cuda_add_sandbox -w - addpredict "/dev/char/" - else - mycmakeargs+=( - -DCMAKE_CUDA_COMPILER="NOTFOUND" - ) - fi - - if use rocm; then - mycmakeargs+=( - -DCMAKE_HIP_ARCHITECTURES="$(get_amdgpu_flags)" - -DCMAKE_HIP_PLATFORM="amd" - # ollama doesn't honor the default cmake options - -DAMDGPU_TARGETS="$(get_amdgpu_flags)" - ) - - local -x HIP_PATH="${ESYSROOT}/usr" - - check_amdgpu - else - mycmakeargs+=( - -DCMAKE_HIP_COMPILER="NOTFOUND" - ) - fi - - cmake_src_configure -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION=$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - ) - else - VERSION="${PVR}" - fi - GOFLAGS+=" '-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'" - - ego build - - cmake_src_compile -} - -src_install() { - dobin ollama - - cmake_src_install - - newinitd "${FILESDIR}/ollama.init" "${PN}" - newconfd "${FILESDIR}/ollama.confd" "${PN}" - - systemd_dounit "${FILESDIR}/ollama.service" -} - -pkg_preinst() { - keepdir /var/log/ollama - fperms 750 /var/log/ollama - fowners "${PN}:${PN}" /var/log/ollama -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - einfo "Quick guide:" - einfo "\tollama serve" - einfo "\tollama run llama3:70b" - einfo - einfo "See available models at https://ollama.com/library" - fi - - if use cuda ; then - einfo "When using cuda the user running ${PN} has to be in the video group or it won't detect devices." - einfo "The ebuild ensures this for user ${PN} via acct-user/${PN}[cuda]" - fi -} diff --git a/sci-ml/ollama/ollama-0.11.5.ebuild b/sci-ml/ollama/ollama-0.11.5.ebuild deleted file mode 100644 index 0a02a80575..0000000000 --- a/sci-ml/ollama/ollama-0.11.5.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# supports ROCM/HIP >=5.5, but we define 6.1 due to the eclass -ROCM_VERSION=6.1 -inherit cuda rocm -inherit cmake -inherit go-module systemd toolchain-funcs - -DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models." -HOMEPAGE="https://ollama.com" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ollama/ollama.git" -else - SRC_URI=" - https://github.com/ollama/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz - https://github.com/negril/gentoo-overlay-vendored/raw/refs/heads/blobs/${P}-vendor.tar.xz - " - KEYWORDS="~amd64" -fi - -LICENSE="MIT" -SLOT="0" - -X86_CPU_FLAGS=( - sse4_2 - avx - f16c - avx2 - bmi2 - fma3 - avx512f - avx512vbmi - avx512_vnni - avx_vnni -) -CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" ) -IUSE="${CPU_FLAGS[*]} cuda blas mkl rocm" -# IUSE+=" opencl vulkan" - -RESTRICT="test" - -COMMON_DEPEND=" - cuda? ( - dev-util/nvidia-cuda-toolkit:= - ) - blas? ( - !mkl? ( - virtual/blas - ) - mkl? ( - sci-libs/mkl - ) - ) - rocm? ( - >=sci-libs/hipBLAS-5.5:=[${ROCM_USEDEP}] - ) -" - -DEPEND=" - ${COMMON_DEPEND} - >=dev-lang/go-1.23.4 -" - -RDEPEND=" - ${COMMON_DEPEND} - acct-group/${PN} - >=acct-user/${PN}-3[cuda?] -" - -PATCHES=( - "${FILESDIR}/${PN}-0.6.3-use-GNUInstallDirs.patch" -) - -pkg_pretend() { - if use amd64; then - if use cpu_flags_x86_f16c && use cpu_flags_x86_avx2 && use cpu_flags_x86_fma3 && ! use cpu_flags_x86_bmi2; then - ewarn - ewarn "CPU_FLAGS_X86: bmi2 not enabled." - ewarn " Not building haswell runner." - ewarn " Not building skylakex runner." - ewarn " Not building icelake runner." - ewarn " Not building alderlake runner." - ewarn - if grep bmi2 /proc/cpuinfo > /dev/null; then - ewarn "bmi2 found in /proc/cpuinfo" - ewarn - fi - fi - fi -} - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_prepare() { - cmake_src_prepare - - sed \ - -e "/set(GGML_CCACHE/s/ON/OFF/g" \ - -e "/PRE_INCLUDE_REGEXES.*cu/d" \ - -e "/PRE_INCLUDE_REGEXES.*hip/d" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/ -O3//g" \ - -i ml/backend/ggml/ggml/src/ggml-cpu/cpu.go || die sed - - # fix library location - sed \ - -e "s#lib/ollama#$(get_libdir)/ollama#g" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/\"..\", \"lib\"/\"..\", \"$(get_libdir)\"/" \ - -e "s#\"lib/ollama\"#\"$(get_libdir)/ollama\"#" \ - -i \ - ml/backend/ggml/ggml/src/ggml.go \ - discover/path.go \ - || die - - if use amd64; then - if - ! use cpu_flags_x86_sse4_2; then - sed -e "/ggml_add_cpu_backend_variant(sse42/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx; then - sed -e "/ggml_add_cpu_backend_variant(sandybridge/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3; then - sed -e "/ggml_add_cpu_backend_variant(haswell/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f; then - sed -e "/ggml_add_cpu_backend_variant(skylakex/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f || - ! use cpu_flags_x86_avx512vbmi || - ! use cpu_flags_x86_avx512_vnni; then - sed -e "/ggml_add_cpu_backend_variant(icelake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx_vnni; then - sed -e "/ggml_add_cpu_backend_variant(alderlake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI) - fi - - # ml/backend/ggml/ggml/src/CMakeLists.txt - fi - - # default - # return - if use cuda; then - cuda_src_prepare - fi - - if use rocm; then - # --hip-version gets appended to the compile flags which isn't a known flag. - # This causes rocm builds to fail because -Wunused-command-line-argument is turned on. - # Use nuclear option to fix this. - # Disable -Werror's from go modules. - find "${S}" -name ".go" -exec sed -i "s/ -Werror / /g" {} + || die - fi -} - -src_configure() { - local mycmakeargs=( - -DGGML_CCACHE="no" - - # -DGGML_CPU="yes" - -DGGML_BLAS="$(usex blas)" - # -DGGML_CUDA="$(usex cuda)" - # -DGGML_HIP="$(usex rocm)" - - # -DGGML_METAL="yes" # apple - # missing from ml/backend/ggml/ggml/src/ - # -DGGML_CANN="yes" - # -DGGML_MUSA="yes" - # -DGGML_RPC="yes" - # -DGGML_SYCL="yes" - # -DGGML_KOMPUTE="$(usex kompute)" - # -DGGML_OPENCL="$(usex opencl)" - # -DGGML_VULKAN="$(usex vulkan)" - ) - - if use blas; then - if use mkl; then - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Intel" - ) - else - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Generic" - ) - fi - fi - if use cuda; then - local -x CUDAHOSTCXX CUDAHOSTLD - CUDAHOSTCXX="$(cuda_gccdir)" - CUDAHOSTLD="$(tc-getCXX)" - - cuda_add_sandbox -w - addpredict "/dev/char/" - else - mycmakeargs+=( - -DCMAKE_CUDA_COMPILER="NOTFOUND" - ) - fi - - if use rocm; then - mycmakeargs+=( - -DCMAKE_HIP_ARCHITECTURES="$(get_amdgpu_flags)" - -DCMAKE_HIP_PLATFORM="amd" - # ollama doesn't honor the default cmake options - -DAMDGPU_TARGETS="$(get_amdgpu_flags)" - ) - - local -x HIP_PATH="${ESYSROOT}/usr" - - check_amdgpu - else - mycmakeargs+=( - -DCMAKE_HIP_COMPILER="NOTFOUND" - ) - fi - - cmake_src_configure -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION=$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - ) - else - VERSION="${PVR}" - fi - GOFLAGS+=" '-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'" - - ego build - - cmake_src_compile -} - -src_install() { - dobin ollama - - cmake_src_install - - newinitd "${FILESDIR}/ollama.init" "${PN}" - newconfd "${FILESDIR}/ollama.confd" "${PN}" - - systemd_dounit "${FILESDIR}/ollama.service" -} - -pkg_preinst() { - keepdir /var/log/ollama - fperms 750 /var/log/ollama - fowners "${PN}:${PN}" /var/log/ollama -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - einfo "Quick guide:" - einfo "\tollama serve" - einfo "\tollama run llama3:70b" - einfo - einfo "See available models at https://ollama.com/library" - fi - - if use cuda ; then - einfo "When using cuda the user running ${PN} has to be in the video group or it won't detect devices." - einfo "The ebuild ensures this for user ${PN} via acct-user/${PN}[cuda]" - fi -} diff --git a/sci-ml/ollama/ollama-0.11.6.ebuild b/sci-ml/ollama/ollama-0.11.6.ebuild deleted file mode 100644 index 0a02a80575..0000000000 --- a/sci-ml/ollama/ollama-0.11.6.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# supports ROCM/HIP >=5.5, but we define 6.1 due to the eclass -ROCM_VERSION=6.1 -inherit cuda rocm -inherit cmake -inherit go-module systemd toolchain-funcs - -DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models." -HOMEPAGE="https://ollama.com" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ollama/ollama.git" -else - SRC_URI=" - https://github.com/ollama/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz - https://github.com/negril/gentoo-overlay-vendored/raw/refs/heads/blobs/${P}-vendor.tar.xz - " - KEYWORDS="~amd64" -fi - -LICENSE="MIT" -SLOT="0" - -X86_CPU_FLAGS=( - sse4_2 - avx - f16c - avx2 - bmi2 - fma3 - avx512f - avx512vbmi - avx512_vnni - avx_vnni -) -CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" ) -IUSE="${CPU_FLAGS[*]} cuda blas mkl rocm" -# IUSE+=" opencl vulkan" - -RESTRICT="test" - -COMMON_DEPEND=" - cuda? ( - dev-util/nvidia-cuda-toolkit:= - ) - blas? ( - !mkl? ( - virtual/blas - ) - mkl? ( - sci-libs/mkl - ) - ) - rocm? ( - >=sci-libs/hipBLAS-5.5:=[${ROCM_USEDEP}] - ) -" - -DEPEND=" - ${COMMON_DEPEND} - >=dev-lang/go-1.23.4 -" - -RDEPEND=" - ${COMMON_DEPEND} - acct-group/${PN} - >=acct-user/${PN}-3[cuda?] -" - -PATCHES=( - "${FILESDIR}/${PN}-0.6.3-use-GNUInstallDirs.patch" -) - -pkg_pretend() { - if use amd64; then - if use cpu_flags_x86_f16c && use cpu_flags_x86_avx2 && use cpu_flags_x86_fma3 && ! use cpu_flags_x86_bmi2; then - ewarn - ewarn "CPU_FLAGS_X86: bmi2 not enabled." - ewarn " Not building haswell runner." - ewarn " Not building skylakex runner." - ewarn " Not building icelake runner." - ewarn " Not building alderlake runner." - ewarn - if grep bmi2 /proc/cpuinfo > /dev/null; then - ewarn "bmi2 found in /proc/cpuinfo" - ewarn - fi - fi - fi -} - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_prepare() { - cmake_src_prepare - - sed \ - -e "/set(GGML_CCACHE/s/ON/OFF/g" \ - -e "/PRE_INCLUDE_REGEXES.*cu/d" \ - -e "/PRE_INCLUDE_REGEXES.*hip/d" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/ -O3//g" \ - -i ml/backend/ggml/ggml/src/ggml-cpu/cpu.go || die sed - - # fix library location - sed \ - -e "s#lib/ollama#$(get_libdir)/ollama#g" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/\"..\", \"lib\"/\"..\", \"$(get_libdir)\"/" \ - -e "s#\"lib/ollama\"#\"$(get_libdir)/ollama\"#" \ - -i \ - ml/backend/ggml/ggml/src/ggml.go \ - discover/path.go \ - || die - - if use amd64; then - if - ! use cpu_flags_x86_sse4_2; then - sed -e "/ggml_add_cpu_backend_variant(sse42/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx; then - sed -e "/ggml_add_cpu_backend_variant(sandybridge/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3; then - sed -e "/ggml_add_cpu_backend_variant(haswell/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f; then - sed -e "/ggml_add_cpu_backend_variant(skylakex/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f || - ! use cpu_flags_x86_avx512vbmi || - ! use cpu_flags_x86_avx512_vnni; then - sed -e "/ggml_add_cpu_backend_variant(icelake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx_vnni; then - sed -e "/ggml_add_cpu_backend_variant(alderlake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI) - fi - - # ml/backend/ggml/ggml/src/CMakeLists.txt - fi - - # default - # return - if use cuda; then - cuda_src_prepare - fi - - if use rocm; then - # --hip-version gets appended to the compile flags which isn't a known flag. - # This causes rocm builds to fail because -Wunused-command-line-argument is turned on. - # Use nuclear option to fix this. - # Disable -Werror's from go modules. - find "${S}" -name ".go" -exec sed -i "s/ -Werror / /g" {} + || die - fi -} - -src_configure() { - local mycmakeargs=( - -DGGML_CCACHE="no" - - # -DGGML_CPU="yes" - -DGGML_BLAS="$(usex blas)" - # -DGGML_CUDA="$(usex cuda)" - # -DGGML_HIP="$(usex rocm)" - - # -DGGML_METAL="yes" # apple - # missing from ml/backend/ggml/ggml/src/ - # -DGGML_CANN="yes" - # -DGGML_MUSA="yes" - # -DGGML_RPC="yes" - # -DGGML_SYCL="yes" - # -DGGML_KOMPUTE="$(usex kompute)" - # -DGGML_OPENCL="$(usex opencl)" - # -DGGML_VULKAN="$(usex vulkan)" - ) - - if use blas; then - if use mkl; then - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Intel" - ) - else - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Generic" - ) - fi - fi - if use cuda; then - local -x CUDAHOSTCXX CUDAHOSTLD - CUDAHOSTCXX="$(cuda_gccdir)" - CUDAHOSTLD="$(tc-getCXX)" - - cuda_add_sandbox -w - addpredict "/dev/char/" - else - mycmakeargs+=( - -DCMAKE_CUDA_COMPILER="NOTFOUND" - ) - fi - - if use rocm; then - mycmakeargs+=( - -DCMAKE_HIP_ARCHITECTURES="$(get_amdgpu_flags)" - -DCMAKE_HIP_PLATFORM="amd" - # ollama doesn't honor the default cmake options - -DAMDGPU_TARGETS="$(get_amdgpu_flags)" - ) - - local -x HIP_PATH="${ESYSROOT}/usr" - - check_amdgpu - else - mycmakeargs+=( - -DCMAKE_HIP_COMPILER="NOTFOUND" - ) - fi - - cmake_src_configure -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION=$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - ) - else - VERSION="${PVR}" - fi - GOFLAGS+=" '-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'" - - ego build - - cmake_src_compile -} - -src_install() { - dobin ollama - - cmake_src_install - - newinitd "${FILESDIR}/ollama.init" "${PN}" - newconfd "${FILESDIR}/ollama.confd" "${PN}" - - systemd_dounit "${FILESDIR}/ollama.service" -} - -pkg_preinst() { - keepdir /var/log/ollama - fperms 750 /var/log/ollama - fowners "${PN}:${PN}" /var/log/ollama -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - einfo "Quick guide:" - einfo "\tollama serve" - einfo "\tollama run llama3:70b" - einfo - einfo "See available models at https://ollama.com/library" - fi - - if use cuda ; then - einfo "When using cuda the user running ${PN} has to be in the video group or it won't detect devices." - einfo "The ebuild ensures this for user ${PN} via acct-user/${PN}[cuda]" - fi -} diff --git a/sci-ml/ollama/ollama-0.9.6.ebuild b/sci-ml/ollama/ollama-0.9.6.ebuild deleted file mode 100644 index 0a02a80575..0000000000 --- a/sci-ml/ollama/ollama-0.9.6.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# supports ROCM/HIP >=5.5, but we define 6.1 due to the eclass -ROCM_VERSION=6.1 -inherit cuda rocm -inherit cmake -inherit go-module systemd toolchain-funcs - -DESCRIPTION="Get up and running with Llama 3, Mistral, Gemma, and other language models." -HOMEPAGE="https://ollama.com" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/ollama/ollama.git" -else - SRC_URI=" - https://github.com/ollama/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz - https://github.com/negril/gentoo-overlay-vendored/raw/refs/heads/blobs/${P}-vendor.tar.xz - " - KEYWORDS="~amd64" -fi - -LICENSE="MIT" -SLOT="0" - -X86_CPU_FLAGS=( - sse4_2 - avx - f16c - avx2 - bmi2 - fma3 - avx512f - avx512vbmi - avx512_vnni - avx_vnni -) -CPU_FLAGS=( "${X86_CPU_FLAGS[@]/#/cpu_flags_x86_}" ) -IUSE="${CPU_FLAGS[*]} cuda blas mkl rocm" -# IUSE+=" opencl vulkan" - -RESTRICT="test" - -COMMON_DEPEND=" - cuda? ( - dev-util/nvidia-cuda-toolkit:= - ) - blas? ( - !mkl? ( - virtual/blas - ) - mkl? ( - sci-libs/mkl - ) - ) - rocm? ( - >=sci-libs/hipBLAS-5.5:=[${ROCM_USEDEP}] - ) -" - -DEPEND=" - ${COMMON_DEPEND} - >=dev-lang/go-1.23.4 -" - -RDEPEND=" - ${COMMON_DEPEND} - acct-group/${PN} - >=acct-user/${PN}-3[cuda?] -" - -PATCHES=( - "${FILESDIR}/${PN}-0.6.3-use-GNUInstallDirs.patch" -) - -pkg_pretend() { - if use amd64; then - if use cpu_flags_x86_f16c && use cpu_flags_x86_avx2 && use cpu_flags_x86_fma3 && ! use cpu_flags_x86_bmi2; then - ewarn - ewarn "CPU_FLAGS_X86: bmi2 not enabled." - ewarn " Not building haswell runner." - ewarn " Not building skylakex runner." - ewarn " Not building icelake runner." - ewarn " Not building alderlake runner." - ewarn - if grep bmi2 /proc/cpuinfo > /dev/null; then - ewarn "bmi2 found in /proc/cpuinfo" - ewarn - fi - fi - fi -} - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_prepare() { - cmake_src_prepare - - sed \ - -e "/set(GGML_CCACHE/s/ON/OFF/g" \ - -e "/PRE_INCLUDE_REGEXES.*cu/d" \ - -e "/PRE_INCLUDE_REGEXES.*hip/d" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/ -O3//g" \ - -i ml/backend/ggml/ggml/src/ggml-cpu/cpu.go || die sed - - # fix library location - sed \ - -e "s#lib/ollama#$(get_libdir)/ollama#g" \ - -i CMakeLists.txt || die sed - - sed \ - -e "s/\"..\", \"lib\"/\"..\", \"$(get_libdir)\"/" \ - -e "s#\"lib/ollama\"#\"$(get_libdir)/ollama\"#" \ - -i \ - ml/backend/ggml/ggml/src/ggml.go \ - discover/path.go \ - || die - - if use amd64; then - if - ! use cpu_flags_x86_sse4_2; then - sed -e "/ggml_add_cpu_backend_variant(sse42/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx; then - sed -e "/ggml_add_cpu_backend_variant(sandybridge/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3; then - sed -e "/ggml_add_cpu_backend_variant(haswell/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f; then - sed -e "/ggml_add_cpu_backend_variant(skylakex/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx512f || - ! use cpu_flags_x86_avx512vbmi || - ! use cpu_flags_x86_avx512_vnni; then - sed -e "/ggml_add_cpu_backend_variant(icelake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX512 AVX512_VBMI AVX512_VNNI) - fi - if - ! use cpu_flags_x86_sse4_2 || - ! use cpu_flags_x86_avx || - ! use cpu_flags_x86_f16c || - ! use cpu_flags_x86_avx2 || - ! use cpu_flags_x86_bmi2 || - ! use cpu_flags_x86_fma3 || - ! use cpu_flags_x86_avx_vnni; then - sed -e "/ggml_add_cpu_backend_variant(alderlake/s/^/# /g" -i ml/backend/ggml/ggml/src/CMakeLists.txt || die - # SSE42 AVX F16C AVX2 BMI2 FMA AVX_VNNI) - fi - - # ml/backend/ggml/ggml/src/CMakeLists.txt - fi - - # default - # return - if use cuda; then - cuda_src_prepare - fi - - if use rocm; then - # --hip-version gets appended to the compile flags which isn't a known flag. - # This causes rocm builds to fail because -Wunused-command-line-argument is turned on. - # Use nuclear option to fix this. - # Disable -Werror's from go modules. - find "${S}" -name ".go" -exec sed -i "s/ -Werror / /g" {} + || die - fi -} - -src_configure() { - local mycmakeargs=( - -DGGML_CCACHE="no" - - # -DGGML_CPU="yes" - -DGGML_BLAS="$(usex blas)" - # -DGGML_CUDA="$(usex cuda)" - # -DGGML_HIP="$(usex rocm)" - - # -DGGML_METAL="yes" # apple - # missing from ml/backend/ggml/ggml/src/ - # -DGGML_CANN="yes" - # -DGGML_MUSA="yes" - # -DGGML_RPC="yes" - # -DGGML_SYCL="yes" - # -DGGML_KOMPUTE="$(usex kompute)" - # -DGGML_OPENCL="$(usex opencl)" - # -DGGML_VULKAN="$(usex vulkan)" - ) - - if use blas; then - if use mkl; then - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Intel" - ) - else - mycmakeargs+=( - -DGGML_BLAS_VENDOR="Generic" - ) - fi - fi - if use cuda; then - local -x CUDAHOSTCXX CUDAHOSTLD - CUDAHOSTCXX="$(cuda_gccdir)" - CUDAHOSTLD="$(tc-getCXX)" - - cuda_add_sandbox -w - addpredict "/dev/char/" - else - mycmakeargs+=( - -DCMAKE_CUDA_COMPILER="NOTFOUND" - ) - fi - - if use rocm; then - mycmakeargs+=( - -DCMAKE_HIP_ARCHITECTURES="$(get_amdgpu_flags)" - -DCMAKE_HIP_PLATFORM="amd" - # ollama doesn't honor the default cmake options - -DAMDGPU_TARGETS="$(get_amdgpu_flags)" - ) - - local -x HIP_PATH="${ESYSROOT}/usr" - - check_amdgpu - else - mycmakeargs+=( - -DCMAKE_HIP_COMPILER="NOTFOUND" - ) - fi - - cmake_src_configure -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION=$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - ) - else - VERSION="${PVR}" - fi - GOFLAGS+=" '-ldflags=-w -s \"-X=github.com/ollama/ollama/version.Version=$VERSION\" \"-X=github.com/ollama/ollama/server.mode=release\"'" - - ego build - - cmake_src_compile -} - -src_install() { - dobin ollama - - cmake_src_install - - newinitd "${FILESDIR}/ollama.init" "${PN}" - newconfd "${FILESDIR}/ollama.confd" "${PN}" - - systemd_dounit "${FILESDIR}/ollama.service" -} - -pkg_preinst() { - keepdir /var/log/ollama - fperms 750 /var/log/ollama - fowners "${PN}:${PN}" /var/log/ollama -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]] ; then - einfo "Quick guide:" - einfo "\tollama serve" - einfo "\tollama run llama3:70b" - einfo - einfo "See available models at https://ollama.com/library" - fi - - if use cuda ; then - einfo "When using cuda the user running ${PN} has to be in the video group or it won't detect devices." - einfo "The ebuild ensures this for user ${PN} via acct-user/${PN}[cuda]" - fi -}