Mercurial > hg
view contrib/fixpax.py @ 24839:6e38b6fc4123 stable
wix: remove cacert.pem from Windows distribution
It should not be included in the Windows installers because it prevents
loading CA certificates from the system store on Python 2.7.9, implemented
by 760a86865f80. The msi packages bundles Python 2.7.9, so cacert.pem is no
longer necessary.
Backed out changeset e5c2338d76b5
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 23 Apr 2015 22:44:46 +0900 |
parents | d0ef40776999 |
children | 58eb1c5bba58 |
line wrap: on
line source
# fixpax - fix ownership in bdist_mpkg output # # Copyright 2015 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms of the # MIT license (http://opensource.org/licenses/MIT) """Set file ownership to 0 in an Archive.pax.gz. Suitable for fixing files bdist_mpkg output: *.mpkg/Contents/Packages/*.pkg/Contents/Archive.pax.gz """ import sys, os, gzip def fixpax(iname, oname): i = gzip.GzipFile(iname) o = gzip.GzipFile(oname, "w") while True: magic = i.read(6) dev = i.read(6) ino = i.read(6) mode = i.read(6) i.read(6) # uid i.read(6) # gid nlink = i.read(6) rdev = i.read(6) mtime = i.read(11) namesize = i.read(6) filesize = i.read(11) name = i.read(int(namesize, 8)) data = i.read(int(filesize, 8)) o.write(magic) o.write(dev) o.write(ino) o.write(mode) o.write("000000") o.write("000000") o.write(nlink) o.write(rdev) o.write(mtime) o.write(namesize) o.write(filesize) o.write(name) o.write(data) if name.startswith("TRAILER!!!"): o.write(i.read()) break o.close() i.close() if __name__ == '__main__': for iname in sys.argv[1:]: print 'fixing file ownership in %s' % iname oname = sys.argv[1] + '.tmp' fixpax(iname, oname) os.rename(oname, iname)