[portability] Support unknown operating systems in gclient.

Detect the name of unknown operating systems using uname, if available,
since it doesn't append the operating system version.

Change-Id: Idab7bd0db65a8d424ec2fd48f06247405b6649e4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4169240
Auto-Submit: Jonas Termansen <sortie@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
diff --git a/gclient.py b/gclient.py
index 3b7dc4b..8ec13f0 100755
--- a/gclient.py
+++ b/gclient.py
@@ -1410,7 +1410,13 @@
 
 
 def _detect_host_os():
-  return _PLATFORM_MAPPING[sys.platform]
+  if sys.platform in _PLATFORM_MAPPING:
+    return _PLATFORM_MAPPING[sys.platform]
+
+  try:
+    return os.uname().sysname.lower()
+  except AttributeError:
+    return sys.platform
 
 
 class GitDependency(Dependency):