mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 18:03:37 +08:00
c3c8cf1e01
These are now available on all supported platforms, and the download process tends to break on build workers (where Internet access is deliberately denied).
135 lines
3.2 KiB
RPMSpec
135 lines
3.2 KiB
RPMSpec
Summary: Friendly interactive shell
|
|
Name: fish
|
|
|
|
Version: @RPMVERSION@
|
|
Release: 0.%{?dist}
|
|
|
|
License: GPL-2.0
|
|
Group: System/Shells
|
|
URL: https://fishshell.com/
|
|
|
|
Source0: %{name}_@VERSION@.orig.tar.xz
|
|
BuildRequires: ncurses-devel gettext gcc-c++ xz pcre2-devel
|
|
|
|
%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
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
|
|
%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}"
|
|
%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
|
|
cp -a README.rst %{buildroot}%{_datadir}/doc/fish/
|
|
cp -a CONTRIBUTING.rst %{buildroot}%{_datadir}/doc/fish/
|
|
|
|
%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 %{_datadir}/doc/fish/
|
|
|
|
# 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
|