diff --git a/.gitignore b/.gitignore
index 37e069d..454a284 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
 /fish-2.3.1.tar.gz
 /fish-2.6.0.tar.gz
 /fish-2.7.1.tar.gz
+/fish-3.0.0.tar.gz
diff --git a/0001-Don-t-use-less-in-highlighting-test.patch b/0001-Don-t-use-less-in-highlighting-test.patch
new file mode 100644
index 0000000..bb7462c
--- /dev/null
+++ b/0001-Don-t-use-less-in-highlighting-test.patch
@@ -0,0 +1,31 @@
+From 742fde0dd68858ad603b449501f0c42cd7864fab Mon Sep 17 00:00:00 2001
+From: Fabian Homborg <FHomborg@gmail.com>
+Date: Fri, 28 Dec 2018 17:57:53 +0100
+Subject: [PATCH] Don't use less in highlighting test
+
+It doesn't have to be installed.
+
+`cat` is in our dependencies, so we can assume it's there.
+
+Fixes #5436.
+---
+ src/fish_tests.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/fish_tests.cpp b/src/fish_tests.cpp
+index f6094254..abe21a2e 100644
+--- a/src/fish_tests.cpp
++++ b/src/fish_tests.cpp
+@@ -4243,7 +4243,8 @@ static void test_highlighting() {
+         {L"cat", highlight_spec_command},
+         {L"/dev/null", highlight_spec_param},
+         {L"|", highlight_spec_statement_terminator},
+-        {L"less", highlight_spec_command},
++        // This is bogus, but we used to use "less" here and that doesn't have to be installed.
++        {L"cat", highlight_spec_command},
+         {L"2>", highlight_spec_redirection},
+     });
+ 
+-- 
+2.20.1
+
diff --git a/fish.spec b/fish.spec
index c9a6af1..4fbae09 100644
--- a/fish.spec
+++ b/fish.spec
@@ -3,8 +3,8 @@
 %global _python_bytecompile_extra 1
 
 Name:           fish
-Version:        2.7.1
-Release:        4%{?dist}
+Version:        3.0.0
+Release:        1%{?dist}
 Summary:        Friendly interactive shell
 
 # GPLv2
@@ -20,9 +20,15 @@ Summary:        Friendly interactive shell
 # LGPLv2+
 #   - src/wgetopt.c
 #   - src/wgetopt.h
-License:        GPLv2 and BSD and ISC and LGPLv2+
+# MIT
+#   - share/completions/grunt.fish
+#   - share/tools/web_config/js/angular-sanitize.js
+#   - share/tools/web_config/js/angular.js
+License:        GPLv2 and BSD and ISC and LGPLv2+ and MIT
 URL:            https://fishshell.com
 Source0:        https://github.com/fish-shell/fish-shell/releases/download/%{version}/%{name}-%{version}.tar.gz
+# https://github.com/fish-shell/fish-shell/commit/742fde0dd68858ad603b449501f0c42cd7864fab
+Patch0001:      0001-Don-t-use-less-in-highlighting-test.patch
 
 BuildRequires:  gcc
 BuildRequires:  gcc-c++
@@ -30,21 +36,15 @@ BuildRequires:  gettext
 BuildRequires:  doxygen
 BuildRequires:  ncurses-devel
 BuildRequires:  pcre2-devel
-BuildRequires:  python%{python3_pkgversion}-devel
+BuildRequires:  python3-devel
 %global __python %{__python3}
 
 # fish's 'math' command requires bc
 Requires:       bc
 # tab completion wants man-db
-%if 0%{?rhel} && 0%{?rhel} <= 7
-Requires:       man-db
-Requires:       man-pages
-Requires:       groff-base
-%else
 Recommends:     man-db
 Recommends:     man-pages
 Recommends:     groff-base
-%endif
 # Other misc requirements
 Requires:       hostname
 
@@ -56,6 +56,7 @@ nothing to learn or configure.
 
 %prep
 %autosetup -p1
+rm -vrf pcre2-*
 
 # Change the bundled scripts to invoke the python binary directly.
 for f in $(find share/tools -type f -name '*.py'); do
@@ -68,10 +69,6 @@ done
 
 %install
 %make_install
-# Fish has magical manpages (visible from inside fish) that live in
-# /usr/share/fish/man/man1.  Compress them (rpm won't do it automatically).
-# https://github.com/rpm-software-management/rpm/pull/381
-gzip -9 -n %{buildroot}%{_datadir}/fish/man/man1/*.1
 
 # Install docs from tarball root
 cp -a README.md %{buildroot}%{_pkgdocdir}
@@ -114,6 +111,9 @@ fi
 %{_pkgdocdir}
 
 %changelog
+* Fri Dec 28 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.0.0-1
+- Update to 3.0.0
+
 * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
 
diff --git a/sources b/sources
index 7ef26e7..2d903ce 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (fish-2.7.1.tar.gz) = 45ee3453404c5d6c56d307b4cd19197de862f9f42d7fa06461acec56dea7146db5675cf6419dd5f72e939b3e4b1955d3761098df1de89a8cebe47645eb6f7a4b
+SHA512 (fish-3.0.0.tar.gz) = e4159821d4263e5afb67adee82e30cfed0ad30f3772dd95beb0df71423ff52c21354970f64967f2de9fd1d31caa702208cfd9f2ce281bbf33114f3aa7cd539a2