diff -r 6ba86ca875a8 Lib/gzip.py --- a/Lib/gzip.py Fri Jul 15 12:16:42 2016 -0700 +++ b/Lib/gzip.py Sat Jul 16 11:56:18 2016 +0300 @@ -238,7 +238,17 @@ mtime = time.time() write32u(self.fileobj, int(mtime)) self.fileobj.write(b'\002') - self.fileobj.write(b'\377') + + if os.name == 'nt': + if sys.getwindowsversion().platform == 2: # NTFS + self.fileobj.write(b'\013') + else: + self.fileobj.write(b'\000') # FAT + elif os.name == 'posix': + self.fileobj.write(b'\003') # *NIX + else: + self.fileobj.write(b'\377') # Unknown + if fname: self.fileobj.write(fname + b'\000') diff -r 6ba86ca875a8 Lib/test/test_gzip.py --- a/Lib/test/test_gzip.py Fri Jul 15 12:16:42 2016 -0700 +++ b/Lib/test/test_gzip.py Sat Jul 16 11:56:18 2016 +0300 @@ -4,6 +4,7 @@ import unittest from test import support from test.support import bigmemtest, _4G +import sys import os import io import struct @@ -317,7 +318,12 @@ self.assertEqual(xflByte, b'\x02') # maximum compression osByte = fRead.read(1) - self.assertEqual(osByte, b'\xff') # OS "unknown" (OS-independent) + if os.name == 'nt': # Windows + self.assertIn(osByte, [b'\013', b'\000']) + elif os.name == 'posix': + self.assertEqual(osByte, b'\003') # *NIX + else: + self.assertEqual(osByte, b'\377') # Unknown # Since the FNAME flag is set, the zero-terminated filename follows. # RFC 1952 specifies that this is the name of the input file, if any.