refactor(rpm): install binary to /usr/bin instead of /opt
Install the binary as /usr/bin/mistralrs-server-<flavour> using the
standard %{_bindir} macro. The update-alternatives system manages
the /usr/bin/mistralrs-server symlink as before. Removes the
non-standard /opt/mistralrs/<flavour>/bin/ directory structure.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -29,9 +29,6 @@ ExclusiveArch: x86_64
|
|||||||
%global __requires_exclude ^lib(cuda|cudart|cudnn|cublas|cublasLt|curand|nvrtc|nccl)
|
%global __requires_exclude ^lib(cuda|cudart|cudnn|cublas|cublasLt|curand|nvrtc|nccl)
|
||||||
Requires: systemd
|
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}
|
Provides: mistralrs-server = %{version}-%{release}
|
||||||
|
|
||||||
%description
|
%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:
|
This package provides the %{mistralrs_flavour} flavour, built with features:
|
||||||
cuda, cudnn, and optionally flash-attn and nccl depending on flavour name.
|
cuda, cudnn, and optionally flash-attn and nccl depending on flavour name.
|
||||||
|
|
||||||
Binary installs to /opt/mistralrs/%{mistralrs_flavour}/bin/ and can coexist
|
The binary installs to %{_bindir}/mistralrs-server-%{mistralrs_flavour}.
|
||||||
with other flavours. Use `update-alternatives --config mistralrs-server` to
|
Use `update-alternatives --config mistralrs-server` to select the default
|
||||||
select the default /usr/bin/mistralrs-server symlink target.
|
/usr/bin/mistralrs-server symlink target.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
# Nothing to unpack; Source0 is the binary itself
|
# Nothing to unpack; Source0 is the binary itself
|
||||||
@@ -54,14 +51,14 @@ cp %{SOURCE2} .
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
install -D -m 0755 mistralrs-server-%{mistralrs_flavour} \
|
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 \
|
install -D -m 0644 mistralrs@.service \
|
||||||
%{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service
|
%{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service
|
||||||
install -D -m 0644 mistralrs@.conf.example \
|
install -D -m 0644 mistralrs@.conf.example \
|
||||||
%{buildroot}%{_sysconfdir}/mistralrs/%{mistralrs_flavour}.conf.example
|
%{buildroot}%{_sysconfdir}/mistralrs/%{mistralrs_flavour}.conf.example
|
||||||
|
|
||||||
# Patch the unit to point at this flavour's binary
|
# 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
|
%{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service
|
||||||
sed -i "s|@FLAVOUR@|%{mistralrs_flavour}|g" \
|
sed -i "s|@FLAVOUR@|%{mistralrs_flavour}|g" \
|
||||||
%{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service
|
%{buildroot}%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service
|
||||||
@@ -77,7 +74,7 @@ case "%{mistralrs_flavour}" in
|
|||||||
*fa*) priority=20 ;;
|
*fa*) priority=20 ;;
|
||||||
esac
|
esac
|
||||||
update-alternatives --install /usr/bin/mistralrs-server mistralrs-server \
|
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
|
%systemd_post mistralrs-%{mistralrs_flavour}@.service
|
||||||
|
|
||||||
@@ -87,12 +84,12 @@ update-alternatives --install /usr/bin/mistralrs-server mistralrs-server \
|
|||||||
%postun
|
%postun
|
||||||
if [ $1 -eq 0 ]; then
|
if [ $1 -eq 0 ]; then
|
||||||
update-alternatives --remove mistralrs-server \
|
update-alternatives --remove mistralrs-server \
|
||||||
/opt/mistralrs/%{mistralrs_flavour}/bin/mistralrs-server
|
%{_bindir}/mistralrs-server-%{mistralrs_flavour}
|
||||||
fi
|
fi
|
||||||
%systemd_postun_with_restart mistralrs-%{mistralrs_flavour}@.service
|
%systemd_postun_with_restart mistralrs-%{mistralrs_flavour}@.service
|
||||||
|
|
||||||
%files
|
%files
|
||||||
/opt/mistralrs/%{mistralrs_flavour}/
|
%{_bindir}/mistralrs-server-%{mistralrs_flavour}
|
||||||
%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service
|
%{_unitdir}/mistralrs-%{mistralrs_flavour}@.service
|
||||||
%{_sysconfdir}/mistralrs/%{mistralrs_flavour}.conf.example
|
%{_sysconfdir}/mistralrs/%{mistralrs_flavour}.conf.example
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user