From 755f2175e5a979d98509ab37d80f439896c09be9 Mon Sep 17 00:00:00 2001 From: rob thijssen Date: Mon, 27 Apr 2026 17:09:57 +0300 Subject: [PATCH] refactor(rpm): install binary to /usr/bin instead of /opt Install the binary as /usr/bin/mistralrs-server- using the standard %{_bindir} macro. The update-alternatives system manages the /usr/bin/mistralrs-server symlink as before. Removes the non-standard /opt/mistralrs//bin/ directory structure. Co-Authored-By: Claude Opus 4.6 (1M context) --- rpm/mistralrs.spec | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/rpm/mistralrs.spec b/rpm/mistralrs.spec index f7245ed..2f63c83 100644 --- a/rpm/mistralrs.spec +++ b/rpm/mistralrs.spec @@ -29,9 +29,6 @@ ExclusiveArch: x86_64 %global __requires_exclude ^lib(cuda|cudart|cudnn|cublas|cublasLt|curand|nvrtc|nccl) Requires: systemd -# Flavours are mutually exclusive with other flavours of themselves at the -# same install path, but you can install cuda13, cuda13-fa, cuda13-fa-nccl -# side by side — they all get separate /opt paths. Provides: mistralrs-server = %{version}-%{release} %description @@ -39,9 +36,9 @@ mistral.rs is a blazingly fast LLM inference engine written in Rust. This package provides the %{mistralrs_flavour} flavour, built with features: cuda, cudnn, and optionally flash-attn and nccl depending on flavour name. -Binary installs to /opt/mistralrs/%{mistralrs_flavour}/bin/ and can coexist -with other flavours. Use `update-alternatives --config mistralrs-server` to -select the default /usr/bin/mistralrs-server symlink target. +The binary installs to %{_bindir}/mistralrs-server-%{mistralrs_flavour}. +Use `update-alternatives --config mistralrs-server` to select the default +/usr/bin/mistralrs-server symlink target. %prep # Nothing to unpack; Source0 is the binary itself @@ -54,14 +51,14 @@ cp %{SOURCE2} . %install install -D -m 0755 mistralrs-server-%{mistralrs_flavour} \ - %{buildroot}/opt/mistralrs/%{mistralrs_flavour}/bin/mistralrs-server + %{buildroot}%{_bindir}/mistralrs-server-%{mistralrs_flavour} install -D -m 0644 mistralrs@.service \ %{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service install -D -m 0644 mistralrs@.conf.example \ %{buildroot}%{_sysconfdir}/mistralrs/%{mistralrs_flavour}.conf.example # Patch the unit to point at this flavour's binary -sed -i "s|@BINARY@|/opt/mistralrs/%{mistralrs_flavour}/bin/mistralrs-server|g" \ +sed -i "s|@BINARY@|%{_bindir}/mistralrs-server-%{mistralrs_flavour}|g" \ %{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service sed -i "s|@FLAVOUR@|%{mistralrs_flavour}|g" \ %{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service @@ -77,7 +74,7 @@ case "%{mistralrs_flavour}" in *fa*) priority=20 ;; esac update-alternatives --install /usr/bin/mistralrs-server mistralrs-server \ - /opt/mistralrs/%{mistralrs_flavour}/bin/mistralrs-server "${priority}" + %{_bindir}/mistralrs-server-%{mistralrs_flavour} "${priority}" %systemd_post mistralrs-%{mistralrs_flavour}@.service @@ -87,12 +84,12 @@ update-alternatives --install /usr/bin/mistralrs-server mistralrs-server \ %postun if [ $1 -eq 0 ]; then update-alternatives --remove mistralrs-server \ - /opt/mistralrs/%{mistralrs_flavour}/bin/mistralrs-server + %{_bindir}/mistralrs-server-%{mistralrs_flavour} fi %systemd_postun_with_restart mistralrs-%{mistralrs_flavour}@.service %files -/opt/mistralrs/%{mistralrs_flavour}/ +%{_bindir}/mistralrs-server-%{mistralrs_flavour} %{_unitdir}/mistralrs-%{mistralrs_flavour}@.service %{_sysconfdir}/mistralrs/%{mistralrs_flavour}.conf.example