mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-04-20 07:51:14 -03:00
Update our MSRV to Rust 1.85. Includes fixes for lints which were previously suppressed due to them relying on features added after Rust 1.70. Rust 1.85 prints a warning when using `#[cfg(target_os = "cygwin")]`, so we work around the one instance where this is a problem for now. This workaround can be reverted when we update to Rust 1.86 or newer. Certain old versions of macOS are no longer supported by Rust starting with Rust 1.74, so this commit raises our macOS version requirement to 10.12. https://blog.rust-lang.org/2023/09/25/Increasing-Apple-Version-Requirements/ https://github.com/fish-shell/fish-shell/pull/11961#discussion_r2442415411 Closes #11961
126 lines
3.1 KiB
RPMSpec
126 lines
3.1 KiB
RPMSpec
Summary: Friendly interactive shell
|
|
Name: fish
|
|
|
|
Version: @RPMVERSION@
|
|
Release: 0.%{?dist}
|
|
|
|
License: GPL-2.0-only AND GPL-2.0-or-later AND BSD-2-Clause AND PSF-2.0 AND ISC AND MIT
|
|
Group: System/Shells
|
|
URL: https://fishshell.com/
|
|
|
|
Source0: %{name}_@VERSION@.orig.tar.xz
|
|
Source1: %{name}_@VERSION@.orig-cargo-vendor.tar.xz
|
|
BuildRequires: cargo gettext gcc xz pcre2-devel
|
|
BuildRequires: rust >= 1.85
|
|
# Packaging guidelines say to use a BuildRequires: rust-packaging, but it adds no value for our package
|
|
|
|
BuildRequires: cmake >= 3.15
|
|
|
|
%if 0%{?suse_version}
|
|
# for tests
|
|
BuildRequires: groff
|
|
%else
|
|
BuildRequires: groff-base
|
|
%endif
|
|
|
|
# for tests
|
|
%if 0%{?fedora}
|
|
# Need the en_US.utf-8 locale at a minimum
|
|
BuildRequires: glibc-langpack-en
|
|
%endif
|
|
BuildRequires: python3 procps
|
|
|
|
%if 0%{?suse_version}
|
|
Requires: terminfo-base groff
|
|
%else
|
|
Requires: ncurses-base groff-base
|
|
%endif
|
|
Requires: file
|
|
Requires: python3
|
|
Requires: procps
|
|
|
|
# Although the build scripts mangle the version number to be RPM compatible
|
|
# for continuous builds (transforming the output of `git describe`), Fedora 32+
|
|
# also validates the version inside the pkgconfig file. There's no impetus for this
|
|
# with fish.
|
|
%define _wrong_version_format_terminate_build 0
|
|
|
|
%description
|
|
|
|
fish is a shell geared towards interactive use. Its features are
|
|
focused on user friendliness and discoverability. The language syntax
|
|
is simple but incompatible with other shell languages.
|
|
|
|
%prep
|
|
# Unpack the source tarball and overlay the vendor tarball
|
|
%setup -q -n %{name}-@VERSION@ -a 1
|
|
# Should use cargo_prep here, it overrides our vendor config changes though
|
|
|
|
%build
|
|
export CARGO_NET_OFFLINE=true
|
|
# CMake macros define the wrong sysconfdir arguments
|
|
EXTRA_CMAKE_FLAGS="$EXTRA_CMAKE_FLAGS -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} -DCMAKE_INSTALL_DOCDIR=%{_docdir}/fish"
|
|
%cmake $EXTRA_CMAKE_FLAGS
|
|
%if 0%{?cmake_build:1}
|
|
%cmake_build
|
|
%else
|
|
make %{?_smp_mflags}
|
|
%endif
|
|
|
|
%install
|
|
%if 0%{?cmake_install:1}
|
|
%cmake_install
|
|
%else
|
|
%make_install
|
|
%endif
|
|
|
|
%check
|
|
# OpenSUSE does out-of-tree builds and defines __builddir
|
|
%if 0%{?__builddir:1}
|
|
cd %__builddir
|
|
%endif
|
|
# Fedora uses __cmake_builddir
|
|
%if 0%{?__cmake_builddir:1}
|
|
cd %__cmake_builddir
|
|
%endif
|
|
make fish_run_tests
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
%post
|
|
# Add fish to the list of allowed shells in /etc/shells
|
|
if ! grep %{_bindir}/fish %{_sysconfdir}/shells >/dev/null; then
|
|
echo %{_bindir}/fish >>%{_sysconfdir}/shells
|
|
fi
|
|
|
|
%postun
|
|
# Remove fish from the list of allowed shells in /etc/shells
|
|
if [ "$1" = 0 ]; then
|
|
grep -v %{_bindir}/fish %{_sysconfdir}/shells >%{_sysconfdir}/fish.tmp
|
|
mv %{_sysconfdir}/fish.tmp %{_sysconfdir}/shells
|
|
fi
|
|
|
|
%files
|
|
%defattr(-,root,root,-)
|
|
|
|
# The documentation directory
|
|
%doc %{_docdir}/fish
|
|
%doc CONTRIBUTING.rst README.rst
|
|
|
|
# man files
|
|
%{_mandir}/man1/*
|
|
|
|
# The program binaries
|
|
%attr(0755,root,root) %{_bindir}/*
|
|
|
|
# Configuration files
|
|
%dir %{_sysconfdir}/fish/
|
|
%config(noreplace) %{_sysconfdir}/fish/config.fish
|
|
|
|
# Support files
|
|
%{_datadir}/fish/
|
|
|
|
# pkgconfig
|
|
%{_datadir}/pkgconfig/fish.pc
|