diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
index 0e64ce4..5f95d74 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
@@ -1,7 +1,7 @@
-From f05f5fc363e2510f6943532f3e14a6423f6a2cf1 Mon Sep 17 00:00:00 2001
+From 3540ddcc7448dc784b65c74424c8a25132cb8534 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 31 Jul 2018 17:24:47 +0800
-Subject: [PATCH 1/4] support authentication for kickstart
+Subject: [PATCH] support authentication for kickstart
 
 While download kickstart file from web server,
 we support basic/digest authentication.
@@ -12,6 +12,7 @@
 Upstream-Status: inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
 ---
  pykickstart/errors.py | 17 +++++++++++++++++
  pykickstart/load.py   | 34 ++++++++++++++++++++++++++++------
@@ -19,7 +20,7 @@
  3 files changed, 47 insertions(+), 8 deletions(-)
 
 diff --git a/pykickstart/errors.py b/pykickstart/errors.py
-index bf08ac5..aada7aa 100644
+index 8294f59a..3d20bf82 100644
 --- a/pykickstart/errors.py
 +++ b/pykickstart/errors.py
 @@ -32,6 +32,9 @@ This module exports several exception classes:
@@ -51,10 +52,10 @@
 +    def __str__(self):
 +        return self.value
 diff --git a/pykickstart/load.py b/pykickstart/load.py
-index fb935f2..41a2e9e 100644
+index 30e2fcfa..b984876d 100644
 --- a/pykickstart/load.py
 +++ b/pykickstart/load.py
-@@ -18,10 +18,13 @@
+@@ -18,9 +18,12 @@
  # with the express permission of Red Hat, Inc.
  #
  import requests
@@ -62,14 +63,13 @@
 +from requests.auth import HTTPBasicAuth
 +
  import shutil
- import six
  
 -from pykickstart.errors import KickstartError
 +from pykickstart.errors import KickstartError, KickstartAuthError
  from pykickstart.i18n import _
  from requests.exceptions import SSLError, RequestException
  
-@@ -29,7 +32,7 @@ _is_url = lambda location: '://' in location  # RFC 3986
+@@ -28,7 +31,7 @@ _is_url = lambda location: '://' in location  # RFC 3986
  
  SSL_VERIFY = True
  
@@ -78,7 +78,7 @@
      '''Load a destination URL or file into a string.
      Type of input is inferred automatically.
  
-@@ -40,7 +43,7 @@ def load_to_str(location):
+@@ -39,7 +42,7 @@ def load_to_str(location):
      Raises: KickstartError on error reading'''
  
      if _is_url(location):
@@ -87,7 +87,7 @@
      else:
          return _load_file(location)
  
-@@ -70,11 +73,30 @@ def load_to_file(location, destination):
+@@ -69,11 +72,30 @@ def load_to_file(location, destination):
          _copy_file(location, destination)
          return destination
  
@@ -122,10 +122,10 @@
          raise KickstartError(_('Error securely accessing URL "%s"') % location + ': {e}'.format(e=str(e)))
      except RequestException as e:
 diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index d8880eb..22d14cb 100644
+index b23e54f1..e10f06b5 100644
 --- a/pykickstart/parser.py
 +++ b/pykickstart/parser.py
-@@ -801,7 +801,7 @@ class KickstartParser(object):
+@@ -796,7 +796,7 @@ class KickstartParser(object):
          i = PutBackIterator(s.splitlines(True) + [""])
          self._stateMachine(i)
  
@@ -134,7 +134,7 @@
          """Process a kickstart file, given by the filename f."""
          if reset:
              self._reset()
-@@ -822,7 +822,7 @@ class KickstartParser(object):
+@@ -817,7 +817,7 @@ class KickstartParser(object):
          self.currentdir[self._includeDepth] = cd
  
          try:
@@ -143,6 +143,3 @@
          except KickstartError as e:
              raise KickstartError(_("Unable to open input kickstart file: %s") % str(e), lineno=0)
  
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
index 6ed15ab..bf5a197 100644
--- a/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
+++ b/meta-openembedded/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
@@ -1,7 +1,7 @@
-From ffe06c6dd812b604d6482e4353d5564fad78bc90 Mon Sep 17 00:00:00 2001
+From 737e9a7c11233183f48ce6c83d38b504c8ffed12 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Mon, 30 Jul 2018 15:52:21 +0800
-Subject: [PATCH 4/4] load.py: retry to invoke request with timeout
+Subject: [PATCH] load.py: retry to invoke request with timeout
 
 While networkless, use request to fetch kickstart file from
 network, it failed and wait 300s to break, we should retry
@@ -11,23 +11,23 @@
 Upstream-Status: inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
 ---
  pykickstart/load.py | 31 +++++++++++++++++++++++++++++++
  1 file changed, 31 insertions(+)
 
 diff --git a/pykickstart/load.py b/pykickstart/load.py
-index ad3bad1..a5cbbc5 100644
+index f75fe5d3..a8f3ed1d 100644
 --- a/pykickstart/load.py
 +++ b/pykickstart/load.py
-@@ -21,6 +21,7 @@ import requests
+@@ -21,12 +21,16 @@ import requests
  from requests.auth import HTTPDigestAuth
  from requests.auth import HTTPBasicAuth
  
 +import time
  import shutil
- import six
  
-@@ -28,6 +29,9 @@ from pykickstart.errors import KickstartError, KickstartAuthError
+ from pykickstart.errors import KickstartError, KickstartAuthError
  from pykickstart.i18n import _
  from requests.exceptions import SSLError, RequestException
  
@@ -37,7 +37,7 @@
  _is_url = lambda location: '://' in location  # RFC 3986
  
  SSL_VERIFY = False
-@@ -73,6 +77,29 @@ def load_to_file(location, destination):
+@@ -72,6 +76,29 @@ def load_to_file(location, destination):
          _copy_file(location, destination)
          return destination
  
@@ -67,7 +67,7 @@
  def _get_auth(location, user=None, passwd=None):
  
      auth = None
-@@ -94,6 +121,10 @@ def _get_auth(location, user=None, passwd=None):
+@@ -93,6 +120,10 @@ def _get_auth(location, user=None, passwd=None):
  
  def _load_url(location, user=None, passwd=None):
      '''Load a location (URL or filename) and return contents as string'''
@@ -78,6 +78,3 @@
      auth = _get_auth(location, user=user, passwd=passwd)
      try:
          request = requests.get(location, verify=SSL_VERIFY, auth=auth)
--- 
-2.7.4
-
