diff --git a/config/rootfiles/common/readline b/config/rootfiles/common/readline
index b2ac26dd4..3fecb6805 100644
--- a/config/rootfiles/common/readline
+++ b/config/rootfiles/common/readline
@@ -8,11 +8,11 @@
 #usr/include/readline/rltypedefs.h
 #usr/include/readline/tilde.h
 #usr/lib/libhistory.so
-usr/lib/libhistory.so.6
-usr/lib/libhistory.so.6.3
+usr/lib/libhistory.so.8
+usr/lib/libhistory.so.8.0
 #usr/lib/libreadline.so
-usr/lib/libreadline.so.6
-usr/lib/libreadline.so.6.3
+usr/lib/libreadline.so.8
+usr/lib/libreadline.so.8.0
 #usr/share/doc/readline
 #usr/share/doc/readline/CHANGES
 #usr/share/doc/readline/INSTALL
diff --git a/lfs/readline b/lfs/readline
index 3e9e2a3d5..62097aea7 100644
--- a/lfs/readline
+++ b/lfs/readline
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2019  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 6.3
+VER        = 8.0
 
 THISAPP    = readline-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 33c8fb279e981274f485fd91da77e94a
+$(DL_FILE)_MD5 = 7e6c1f16aee3244a69aba6e438295ca3
 
 install : $(TARGET)
 
@@ -71,8 +71,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
 
-	for i in $$(seq 1 6); do \
-		cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline63-$$(printf "%03d" "$${i}") || exit 1; \
+	for i in $$(seq 1 1); do \
+		cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline80-$$(printf "%03d" "$${i}") || exit 1; \
 	done
 
 	cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
diff --git a/src/patches/readline/readline63-001 b/src/patches/readline/readline63-001
deleted file mode 100644
index bae6a2f52..000000000
--- a/src/patches/readline/readline63-001
+++ /dev/null
@@ -1,43 +0,0 @@
-			   READLINE PATCH REPORT
-			   =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-001
-
-Bug-Reported-by:	Daan van Rossum <daan@flash.uchicago.edu>
-Bug-Reference-ID:	<20140307072523.GA14250@flash.uchicago.edu>
-Bug-Reference-URL:	
-
-Bug-Description:
-
-The `.' command in vi mode cannot undo multi-key commands beginning with
-`c', `d', and `y' (command plus motion specifier).
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3/readline.c	2013-10-28 14:58:06.000000000 -0400
---- readline.c	2014-03-07 15:20:33.000000000 -0500
-***************
-*** 965,969 ****
-    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
-        key != ANYOTHERKEY &&
-!       rl_key_sequence_length == 1 &&	/* XXX */
-        _rl_vi_textmod_command (key))
-      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
---- 965,969 ----
-    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
-        key != ANYOTHERKEY &&
-!       _rl_dispatching_keymap == vi_movement_keymap &&
-        _rl_vi_textmod_command (key))
-      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
-*** ../readline-6.3/patchlevel	2013-11-15 08:11:11.000000000 -0500
---- patchlevel	2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 5
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 1
diff --git a/src/patches/readline/readline63-002 b/src/patches/readline/readline63-002
deleted file mode 100644
index 0e79f13f6..000000000
--- a/src/patches/readline/readline63-002
+++ /dev/null
@@ -1,44 +0,0 @@
-			   READLINE PATCH REPORT
-			   =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-002
-
-Bug-Reported-by:	Anatol Pomozov <anatol.pomozov@gmail.com>
-Bug-Reference-ID:	<CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
-
-Bug-Description:
-
-When in callback mode, some readline commands can cause readline to seg
-fault by passing invalid contexts to callback functions.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3/readline.c	2013-10-28 14:58:06.000000000 -0400
---- readline.c	2014-03-10 14:15:02.000000000 -0400
-***************
-*** 745,749 ****
-  
-    RL_CHECK_SIGNALS ();
-!   if (r == 0)			/* success! */
-      {
-        _rl_keyseq_chain_dispose ();
---- 745,750 ----
-  
-    RL_CHECK_SIGNALS ();
-!   /* We only treat values < 0 specially to simulate recursion. */
-!   if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0))	/* success! or failure! */
-      {
-        _rl_keyseq_chain_dispose ();
-*** ../readline-6.3/patchlevel	2013-11-15 08:11:11.000000000 -0500
---- patchlevel	2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 1
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 2
diff --git a/src/patches/readline/readline63-003 b/src/patches/readline/readline63-003
deleted file mode 100644
index d2cad94f9..000000000
--- a/src/patches/readline/readline63-003
+++ /dev/null
@@ -1,47 +0,0 @@
-			   READLINE PATCH REPORT
-			   =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-003
-
-Bug-Reported-by:
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-There are debugging functions in the readline release that are theoretically
-exploitable as security problems.  They are not public functions, but have
-global linkage.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3/util.c	2013-09-02 13:36:12.000000000 -0400
---- util.c	2014-03-20 10:25:53.000000000 -0400
-***************
-*** 477,480 ****
---- 479,483 ----
-  }
-  
-+ #if defined (DEBUG)
-  #if defined (USE_VARARGS)
-  static FILE *_rl_tracefp;
-***************
-*** 539,542 ****
---- 542,546 ----
-  }
-  #endif
-+ #endif /* DEBUG */
-  
-  
-*** ../readline-6.3/patchlevel	2013-11-15 08:11:11.000000000 -0500
---- patchlevel	2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 2
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 3
diff --git a/src/patches/readline/readline63-004 b/src/patches/readline/readline63-004
deleted file mode 100644
index 3cd89e3a0..000000000
--- a/src/patches/readline/readline63-004
+++ /dev/null
@@ -1,45 +0,0 @@
-			   READLINE PATCH REPORT
-			   =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-004
-
-Bug-Reported-by:	Egmont Koblinger <egmont@gmail.com>
-Bug-Reference-ID:	<CAGWcZk+bU5Jo1M+tutGvL-250UBE9DXjpeJVofYJSFcqFEVfMg@mail.gmail.com>
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html
-
-Bug-Description:
-
-The signal handling changes to bash and readline (to avoid running any code
-in a signal handler context) cause the cursor to be placed on the wrong
-line of a multi-line command after a ^C interrupts editing.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/display.c	2013-12-27 13:10:56.000000000 -0500
---- display.c	2014-03-27 11:52:45.000000000 -0400
-***************
-*** 2678,2682 ****
-    if (_rl_echoing_p)
-      {
-!       _rl_move_vert (_rl_vis_botlin);
-        _rl_vis_botlin = 0;
-        fflush (rl_outstream);
---- 2678,2683 ----
-    if (_rl_echoing_p)
-      {
-!       if (_rl_vis_botlin > 0)	/* minor optimization plus bug fix */
-! 	_rl_move_vert (_rl_vis_botlin);
-        _rl_vis_botlin = 0;
-        fflush (rl_outstream);
-*** ../readline-6.3/patchlevel	2013-11-15 08:11:11.000000000 -0500
---- patchlevel	2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 3
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 4
diff --git a/src/patches/readline/readline63-005 b/src/patches/readline/readline63-005
deleted file mode 100644
index 8a6373849..000000000
--- a/src/patches/readline/readline63-005
+++ /dev/null
@@ -1,58 +0,0 @@
-			   READLINE PATCH REPORT
-			   =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-005
-
-Bug-Reported-by:	Juergen Daubert <jue@jue.li>
-Bug-Reference-ID:	<20140303180430.GA7346@jue.netz>
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html
-
-Bug-Description:
-
-There are still applications using the deprecated Function/VFunction/etc.
-typedefs in rltypedefs.h.  This patch restores the typedefs, but attempts
-to mark them as deprecated using gcc/clang attributes.  Thanks to Max Horn
-for the suggestion.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/rltypedefs.h	2011-03-26 14:53:31.000000000 -0400
---- rltypedefs.h	2014-04-10 11:30:45.000000000 -0400
-***************
-*** 27,30 ****
---- 27,49 ----
-  #endif
-  
-+ /* Old-style, attempt to mark as deprecated in some way people will notice. */
-+ 
-+ #if !defined (_FUNCTION_DEF)
-+ #  define _FUNCTION_DEF
-+ 
-+ #if defined(__GNUC__) || defined(__clang__)
-+ typedef int Function () __attribute__ ((deprecated));
-+ typedef void VFunction () __attribute__ ((deprecated));
-+ typedef char *CPFunction () __attribute__ ((deprecated));
-+ typedef char **CPPFunction () __attribute__ ((deprecated));
-+ #else
-+ typedef int Function ();
-+ typedef void VFunction ();
-+ typedef char *CPFunction ();
-+ typedef char **CPPFunction ();
-+ #endif
-+ 
-+ #endif /* _FUNCTION_DEF */
-+ 
-  /* New style. */
-  
-*** ../readline-6.3/patchlevel	2013-11-15 08:11:11.000000000 -0500
---- patchlevel	2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 4
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 5
diff --git a/src/patches/readline/readline63-006 b/src/patches/readline/readline63-006
deleted file mode 100644
index a3f09304a..000000000
--- a/src/patches/readline/readline63-006
+++ /dev/null
@@ -1,63 +0,0 @@
-			   READLINE PATCH REPORT
-			   =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-006
-
-Bug-Reported-by:	<Trond.Endrestol@ximalas.info>
-Bug-Reference-ID:	<alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
-Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
-
-Bug-Description:
-
-Using reverse-i-search when horizontal scrolling is enabled does not redisplay
-the entire line containing the successful search results.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/display.c	2014-04-08 18:19:36.000000000 -0400
---- display.c	2014-04-20 18:32:52.000000000 -0400
-***************
-*** 1638,1642 ****
-       the spot of first difference is before the end of the invisible chars,
-       lendiff needs to be adjusted. */
-!   if (current_line == 0 && !_rl_horizontal_scroll_mode &&
-        current_invis_chars != visible_wrap_offset)
-      {
---- 1638,1642 ----
-       the spot of first difference is before the end of the invisible chars,
-       lendiff needs to be adjusted. */
-!   if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
-        current_invis_chars != visible_wrap_offset)
-      {
-***************
-*** 1826,1831 ****
-  		_rl_last_c_pos += bytes_to_insert;
-  
-  	      if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
-! 		goto clear_rest_of_line;
-  	    }
-  	}
---- 1826,1836 ----
-  		_rl_last_c_pos += bytes_to_insert;
-  
-+ 	      /* XXX - we only want to do this if we are at the end of the line
-+ 		 so we move there with _rl_move_cursor_relative */
-  	      if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
-! 		{
-! 		  _rl_move_cursor_relative (ne-new, new);
-! 		  goto clear_rest_of_line;
-! 		}
-  	    }
-  	}
-*** ../readline-6.3/patchlevel	2013-11-15 08:11:11.000000000 -0500
---- patchlevel	2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 5
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 6
diff --git a/src/patches/readline/readline80-001 b/src/patches/readline/readline80-001
new file mode 100644
index 000000000..aa72a9dfa
--- /dev/null
+++ b/src/patches/readline/readline80-001
@@ -0,0 +1,38 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 8.0
+Patch-ID: readline80-001
+
+Bug-Reported-by:	chet.ramey@case.edu
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+The history file reading code doesn't close the file descriptor open to
+the history file when it encounters a zero-length file.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-8.0-patched/histfile.c	2018-06-11 09:14:52.000000000 -0400
+--- histfile.c	2019-05-16 15:55:57.000000000 -0400
+***************
+*** 306,309 ****
+--- 312,316 ----
+      {
+        free (input);
++       close (file);
+        return 0;	/* don't waste time if we don't have to */
+      }
+*** ../readline-8.0/patchlevel	2013-11-15 08:11:11.000000000 -0500
+--- patchlevel	2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 0
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 1
