Issue #5117: Case normalization was needed on ntpath.relpath(). And
fixed root directory issue on posixpath.relpath(). (Ported working fixes
from ntpath)
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index d2410f6..579673d 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -616,7 +616,7 @@
     path_abs = abspath(normpath(path))
     start_drive, start_rest = splitdrive(start_abs)
     path_drive, path_rest = splitdrive(path_abs)
-    if start_drive != path_drive:
+    if normcase(start_drive) != normcase(path_drive):
         error = "path is on mount '{0}', start on mount '{1}'".format(
             path_drive, start_drive)
         raise ValueError(error)
@@ -626,7 +626,7 @@
     # Work out how much of the filepath is shared by start and path.
     i = 0
     for e1, e2 in zip(start_list, path_list):
-        if e1 != e2:
+        if normcase(e1) != normcase(e2):
             break
         i += 1