mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 09:39:52 +08:00
16fcc5de7c
It appears we can't find a system that ships rustc >= 1.67 and < 1.70, so keeping it at 1.67 gains nothing. 1.70 is used in Debian 13, so that will be able to build fish out of the box (12 was on 1.63 which was already too low).
133 lines
3.2 KiB
RPMSpec
133 lines
3.2 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
|
|
BuildRequires: cargo gettext gcc-c++ xz pcre2-devel
|
|
BuildRequires: rust >= 1.70
|
|
|
|
%if 0%{?rhel} && 0%{?rhel} < 8
|
|
BuildRequires: cmake3
|
|
%else
|
|
BuildRequires: cmake
|
|
%endif
|
|
|
|
%if 0%{?suse_version}
|
|
BuildRequires: update-desktop-files
|
|
%endif
|
|
|
|
# for tests
|
|
%if 0%{?fedora} || ( 0%{?rhel} && 0%{?rhel} > 7 )
|
|
# Need the en_US.utf-8 locale at a minimum
|
|
BuildRequires: glibc-langpack-en
|
|
%endif
|
|
BuildRequires: python3 procps
|
|
|
|
%if 0%{?rhel} && 0%{?rhel} < 8
|
|
Requires: python
|
|
%else
|
|
Requires: python3
|
|
%endif
|
|
Requires: man
|
|
|
|
# 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
|
|
%setup -q -n %{name}-@VERSION@
|
|
|
|
%build
|
|
# CMake macros define the wrong sysconfdir arguments
|
|
EXTRA_CMAKE_FLAGS="$EXTRA_CMAKE_FLAGS -DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} -DCMAKE_INSTALL_DOCDIR=%{_docdir}/fish"
|
|
%if 0%{?rhel} && 0%{?rhel} < 8
|
|
%cmake3 $EXTRA_CMAKE_FLAGS
|
|
%else
|
|
%cmake $EXTRA_CMAKE_FLAGS
|
|
%endif
|
|
%if 0%{?cmake_build:1}
|
|
%cmake_build
|
|
%else
|
|
make %{?_smp_mflags}
|
|
%endif
|
|
|
|
%install
|
|
%if 0%{?cmake_install:1}
|
|
%cmake_install
|
|
%else
|
|
%make_install
|
|
%endif
|
|
%find_lang %{name}
|
|
# OpenSUSE has strong opinions about categories which do not apply to other systems
|
|
%if 0%{?suse_version}
|
|
%suse_update_desktop_file fish "System;TerminalEmulator"
|
|
%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 -f %{name}.lang
|
|
%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
|
|
|
|
# FreeDesktop entry
|
|
%{_datadir}/applications/fish.desktop
|
|
%{_datadir}/pixmaps/fish.png
|