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.gz BuildRequires: ncurses-devel gettext gcc-c++ autoconf %if 0%{?rhel} && 0%{?rhel} < 8 BuildRequires: cmake3 %else BuildRequires: cmake pcre2-devel %endif %if 0%{?opensuse_bs} && 0%{?rhel} && 0%{?rhel} < 7 BuildRequires: gcc48 gcc48-c++ python-argparse %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 %if 0%{?rhel} && 0%{?rhel} > 7 BuildRequires: python3 %endif BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: python Requires: man %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 %if 0%{?opensuse_bs} && 0%{?rhel} && 0%{?rhel} < 7 export CC=gcc48 export CXX=g++48 EXTRA_CMAKE_FLAGS="-DCURSES_EXTRA_LIBRARY=tinfo" %endif # CMake macros define -DBUILD_SHARED_LIBS:BOOL=ON, which breaks the # bundled PCRE2 static library. EXTRA_CMAKE_FLAGS="$EXTRA_CMAKE_FLAGS -DBUILD_SHARED_LIBS:BOOL=OFF" # 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%{?make_jobs:1} %make_jobs %else make %{?_smp_mflags} %endif %install %if 0%{?cmake_install:1} %cmake_install %else %make_install %endif %find_lang %{name} %check # OpenSUSE does out-of-tree builds and defines __builddir %if 0%{?__builddir:1} cd %__builddir %endif make test SHOW_INTERACTIVE_LOG=1 %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 %docdir %{_datadir}/doc/fish/ %{_datadir}/doc/fish/ # man files %{_mandir}/man1/* %docdir %{_datadir}/fish/man/man1/ %{_datadir}/fish/man/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