mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-06-13 01:23:18 +03:00
Merge pull request #1291 from radarhere/winbuild_health
Style/health fixes
This commit is contained in:
commit
05c482655c
|
@ -105,7 +105,6 @@ post-patch:
|
||||||
test_output = BytesIO()
|
test_output = BytesIO()
|
||||||
im.save(test_output, "JPEG", qtables=qtables)
|
im.save(test_output, "JPEG", qtables=qtables)
|
||||||
|
|
||||||
|
|
||||||
def test_exif_leak(self):
|
def test_exif_leak(self):
|
||||||
"""
|
"""
|
||||||
pre patch:
|
pre patch:
|
||||||
|
|
|
@ -233,6 +233,7 @@ def netpbm_available():
|
||||||
def imagemagick_available():
|
def imagemagick_available():
|
||||||
return IMCONVERT and command_succeeds([IMCONVERT, '-version'])
|
return IMCONVERT and command_succeeds([IMCONVERT, '-version'])
|
||||||
|
|
||||||
|
|
||||||
def on_appveyor():
|
def on_appveyor():
|
||||||
return 'APPVEYOR' in os.environ
|
return 'APPVEYOR' in os.environ
|
||||||
|
|
||||||
|
|
1
setup.py
1
setup.py
|
@ -758,4 +758,3 @@ setup(
|
||||||
zip_safe=not debug_build(),
|
zip_safe=not debug_build(),
|
||||||
)
|
)
|
||||||
# End of file
|
# End of file
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,13 @@
|
||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import shutil
|
import shutil
|
||||||
import sys, getopt
|
import sys
|
||||||
|
import getopt
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from config import *
|
from config import *
|
||||||
|
|
||||||
|
|
||||||
def setup_vms():
|
def setup_vms():
|
||||||
ret = []
|
ret = []
|
||||||
for py in pythons.keys():
|
for py in pythons.keys():
|
||||||
|
@ -20,6 +22,7 @@ def setup_vms():
|
||||||
(VIRT_BASE, py, arch))
|
(VIRT_BASE, py, arch))
|
||||||
return "\n".join(ret)
|
return "\n".join(ret)
|
||||||
|
|
||||||
|
|
||||||
def run_script(params):
|
def run_script(params):
|
||||||
(version, script) = params
|
(version, script) = params
|
||||||
try:
|
try:
|
||||||
|
@ -53,11 +56,13 @@ set BLDOPT=%s
|
||||||
cd /D %%MPLSRC%%
|
cd /D %%MPLSRC%%
|
||||||
""" % (op)
|
""" % (op)
|
||||||
|
|
||||||
|
|
||||||
def footer():
|
def footer():
|
||||||
return """endlocal
|
return """endlocal
|
||||||
exit
|
exit
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def build_one(py_ver, compiler):
|
def build_one(py_ver, compiler):
|
||||||
# UNDONE virtual envs if we're not running on appveyor
|
# UNDONE virtual envs if we're not running on appveyor
|
||||||
args = {}
|
args = {}
|
||||||
|
@ -87,6 +92,7 @@ endlocal
|
||||||
endlocal
|
endlocal
|
||||||
""" % args
|
""" % args
|
||||||
|
|
||||||
|
|
||||||
def clean():
|
def clean():
|
||||||
try:
|
try:
|
||||||
shutil.rmtree('../build')
|
shutil.rmtree('../build')
|
||||||
|
@ -95,6 +101,7 @@ def clean():
|
||||||
pass
|
pass
|
||||||
run_script(('virtualenvs', setup_vms()))
|
run_script(('virtualenvs', setup_vms()))
|
||||||
|
|
||||||
|
|
||||||
def main(op):
|
def main(op):
|
||||||
scripts = []
|
scripts = []
|
||||||
|
|
||||||
|
@ -116,12 +123,12 @@ def main(op):
|
||||||
for (version, status, trace, err) in results:
|
for (version, status, trace, err) in results:
|
||||||
print("Compiled %s: %s" % (version, status and 'ERR' or 'OK'))
|
print("Compiled %s: %s" % (version, status and 'ERR' or 'OK'))
|
||||||
|
|
||||||
|
|
||||||
def run_one(op):
|
def run_one(op):
|
||||||
|
|
||||||
compiler = compiler_fromEnv()
|
compiler = compiler_fromEnv()
|
||||||
py_version = pyversion_fromEnv()
|
py_version = pyversion_fromEnv()
|
||||||
|
|
||||||
|
|
||||||
run_script((py_version,
|
run_script((py_version,
|
||||||
"\n".join([header(op),
|
"\n".join([header(op),
|
||||||
build_one(py_version, compiler),
|
build_one(py_version, compiler),
|
||||||
|
@ -129,8 +136,6 @@ def run_one(op):
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
opts, args = getopt.getopt(sys.argv[1:], '', ['clean', 'dist'])
|
opts, args = getopt.getopt(sys.argv[1:], '', ['clean', 'dist'])
|
||||||
opts = dict(opts)
|
opts = dict(opts)
|
||||||
|
|
|
@ -1,22 +1,26 @@
|
||||||
from fetch import fetch
|
from fetch import fetch
|
||||||
from unzip import unzip
|
from unzip import unzip
|
||||||
from untar import untar
|
from untar import untar
|
||||||
import os, hashlib
|
import os
|
||||||
import shutil
|
import hashlib
|
||||||
|
|
||||||
from config import *
|
from config import *
|
||||||
|
|
||||||
|
|
||||||
def _relpath(*args):
|
def _relpath(*args):
|
||||||
return os.path.join(os.getcwd(), *args)
|
return os.path.join(os.getcwd(), *args)
|
||||||
|
|
||||||
|
|
||||||
def _relbuild(*args):
|
def _relbuild(*args):
|
||||||
return _relpath('build', *args)
|
return _relpath('build', *args)
|
||||||
|
|
||||||
build_dir = _relpath('build')
|
build_dir = _relpath('build')
|
||||||
inc_dir = _relpath('depends')
|
inc_dir = _relpath('depends')
|
||||||
|
|
||||||
|
|
||||||
def check_hash(filename, checksum):
|
def check_hash(filename, checksum):
|
||||||
if not checksum: return filename
|
if not checksum:
|
||||||
|
return filename
|
||||||
|
|
||||||
(algo, value) = checksum.split(':')
|
(algo, value) = checksum.split(':')
|
||||||
h = hashlib.new(algo)
|
h = hashlib.new(algo)
|
||||||
|
@ -26,31 +30,35 @@ def check_hash(filename, checksum):
|
||||||
raise ValueError('Checksum Mismatch for %s' % filename)
|
raise ValueError('Checksum Mismatch for %s' % filename)
|
||||||
return filename
|
return filename
|
||||||
|
|
||||||
|
|
||||||
def check_sig(filename, signame):
|
def check_sig(filename, signame):
|
||||||
# UNDONE -- need gpg
|
# UNDONE -- need gpg
|
||||||
return filename
|
return filename
|
||||||
|
|
||||||
|
|
||||||
def mkdirs():
|
def mkdirs():
|
||||||
try:
|
try:
|
||||||
os.mkdir(build_dir)
|
os.mkdir(build_dir)
|
||||||
except:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
os.mkdir(inc_dir)
|
os.mkdir(inc_dir)
|
||||||
except:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
for compiler in compilers.values():
|
for compiler in compilers.values():
|
||||||
try:
|
try:
|
||||||
os.mkdir(os.path.join(inc_dir, compiler['inc_dir']))
|
os.mkdir(os.path.join(inc_dir, compiler['inc_dir']))
|
||||||
except:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def extract(src, dest):
|
def extract(src, dest):
|
||||||
if '.zip' in src:
|
if '.zip' in src:
|
||||||
return unzip(src, dest)
|
return unzip(src, dest)
|
||||||
if '.tar.gz' in src or '.tgz' in src:
|
if '.tar.gz' in src or '.tgz' in src:
|
||||||
return untar(src, dest)
|
return untar(src, dest)
|
||||||
|
|
||||||
|
|
||||||
def fetch_libs():
|
def fetch_libs():
|
||||||
for name, lib in libs.items():
|
for name, lib in libs.items():
|
||||||
if name == 'openjpeg':
|
if name == 'openjpeg':
|
||||||
|
@ -63,18 +71,11 @@ def fetch_libs():
|
||||||
else:
|
else:
|
||||||
extract(check_hash(fetch(lib['url']), lib['hash']), build_dir)
|
extract(check_hash(fetch(lib['url']), lib['hash']), build_dir)
|
||||||
|
|
||||||
|
|
||||||
def extract_binlib():
|
def extract_binlib():
|
||||||
lib = bin_libs['openjpeg']
|
lib = bin_libs['openjpeg']
|
||||||
extract(lib['filename'], build_dir)
|
extract(lib['filename'], build_dir)
|
||||||
return
|
|
||||||
base = os.path.splitext(lib['filename'])[0]
|
|
||||||
for compiler in compilers.values():
|
|
||||||
shutil.copy(os.path.join(inc_dir, base, 'include', 'openjpeg-%s' % lib['version']),
|
|
||||||
os.path.join(inc_dir, compiler['inc_dir']))
|
|
||||||
shutil.copy(os.path.join(inc_dir, base, 'bin', 'openjp2.dll'),
|
|
||||||
os.path.join(inc_dir, compiler['inc_dir']))
|
|
||||||
shutil.copy(os.path.join(inc_dir, base, 'lib', 'openjp2.lib'),
|
|
||||||
os.path.join(inc_dir, compiler['inc_dir']))
|
|
||||||
|
|
||||||
def extract_openjpeg(compiler):
|
def extract_openjpeg(compiler):
|
||||||
return r"""
|
return r"""
|
||||||
|
@ -89,6 +90,7 @@ copy /Y /B openjpeg-2.0.0-win32-x86\lib\ %%INCLIB%%
|
||||||
endlocal
|
endlocal
|
||||||
""" % compiler
|
""" % compiler
|
||||||
|
|
||||||
|
|
||||||
def cp_tk():
|
def cp_tk():
|
||||||
return r"""
|
return r"""
|
||||||
mkdir %INCLIB%\tcl85\include\X11
|
mkdir %INCLIB%\tcl85\include\X11
|
||||||
|
@ -102,6 +104,7 @@ copy /Y /B %BUILD%\tk8.6.4\generic\*.h %INCLIB%\tcl86\include\
|
||||||
copy /Y /B %BUILD%\tk8.6.4\xlib\X11\* %INCLIB%\tcl86\include\X11\
|
copy /Y /B %BUILD%\tk8.6.4\xlib\X11\* %INCLIB%\tcl86\include\X11\
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def header():
|
def header():
|
||||||
return r"""setlocal
|
return r"""setlocal
|
||||||
set MSBUILD=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
|
set MSBUILD=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
|
||||||
|
@ -111,17 +114,20 @@ set BUILD=%~dp0\build
|
||||||
""" + "\n".join('set %s=%%BUILD%%\%s' % (k.upper(), v['dir'])
|
""" + "\n".join('set %s=%%BUILD%%\%s' % (k.upper(), v['dir'])
|
||||||
for (k, v) in libs.items() if v['dir'])
|
for (k, v) in libs.items() if v['dir'])
|
||||||
|
|
||||||
|
|
||||||
def setup_compiler(compiler):
|
def setup_compiler(compiler):
|
||||||
return r"""setlocal EnableDelayedExpansion
|
return r"""setlocal EnableDelayedExpansion
|
||||||
call "%%ProgramFiles%%\Microsoft SDKs\Windows\%(env_version)s\Bin\SetEnv.Cmd" /Release %(env_flags)s
|
call "%%ProgramFiles%%\Microsoft SDKs\Windows\%(env_version)s\Bin\SetEnv.Cmd" /Release %(env_flags)s
|
||||||
set INCLIB=%%INCLIB%%\%(inc_dir)s
|
set INCLIB=%%INCLIB%%\%(inc_dir)s
|
||||||
""" % compiler
|
""" % compiler
|
||||||
|
|
||||||
|
|
||||||
def end_compiler():
|
def end_compiler():
|
||||||
return """
|
return """
|
||||||
endlocal
|
endlocal
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def nmake_openjpeg(compiler):
|
def nmake_openjpeg(compiler):
|
||||||
atts = {'op_ver': '2.1'}
|
atts = {'op_ver': '2.1'}
|
||||||
atts.update(compiler)
|
atts.update(compiler)
|
||||||
|
@ -139,6 +145,7 @@ copy /Y /B src\lib\openjp2\*.h %%INCLIB%%\openjpeg-%(op_ver)s
|
||||||
endlocal
|
endlocal
|
||||||
""" % atts
|
""" % atts
|
||||||
|
|
||||||
|
|
||||||
def msbuild_openjpeg(compiler):
|
def msbuild_openjpeg(compiler):
|
||||||
atts = {'op_ver': '2.1'}
|
atts = {'op_ver': '2.1'}
|
||||||
atts.update(compiler)
|
atts.update(compiler)
|
||||||
|
@ -158,7 +165,6 @@ endlocal
|
||||||
""" % atts
|
""" % atts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def nmake_libs(compiler):
|
def nmake_libs(compiler):
|
||||||
# undone -- pre, makes, headers, libs
|
# undone -- pre, makes, headers, libs
|
||||||
return r"""
|
return r"""
|
||||||
|
@ -211,11 +217,13 @@ endlocal
|
||||||
|
|
||||||
""" % compiler
|
""" % compiler
|
||||||
|
|
||||||
|
|
||||||
def msbuild_freetype(compiler):
|
def msbuild_freetype(compiler):
|
||||||
if compiler['env_version'] == 'v7.1':
|
if compiler['env_version'] == 'v7.1':
|
||||||
return msbuild_freetype_71(compiler)
|
return msbuild_freetype_71(compiler)
|
||||||
return msbuild_freetype_70(compiler)
|
return msbuild_freetype_70(compiler)
|
||||||
|
|
||||||
|
|
||||||
def msbuild_freetype_71(compiler):
|
def msbuild_freetype_71(compiler):
|
||||||
return r"""
|
return r"""
|
||||||
rem Build freetype
|
rem Build freetype
|
||||||
|
@ -227,6 +235,7 @@ copy /Y /B %%FREETYPE%%\objs\vc%(vc_version)s\%(platform)s\*.lib %%INCLIB%%\free
|
||||||
endlocal
|
endlocal
|
||||||
""" % compiler
|
""" % compiler
|
||||||
|
|
||||||
|
|
||||||
def msbuild_freetype_70(compiler):
|
def msbuild_freetype_70(compiler):
|
||||||
return r"""
|
return r"""
|
||||||
rem Build freetype
|
rem Build freetype
|
||||||
|
@ -241,14 +250,17 @@ copy /Y /B %%FREETYPE%%\objs\win32\vc%(vc_version)s\*.lib %%INCLIB%%\freetype.li
|
||||||
endlocal
|
endlocal
|
||||||
""" % compiler
|
""" % compiler
|
||||||
|
|
||||||
|
|
||||||
def build_lcms2(compiler):
|
def build_lcms2(compiler):
|
||||||
if compiler['env_version'] == 'v7.1':
|
if compiler['env_version'] == 'v7.1':
|
||||||
return build_lcms_71(compiler)
|
return build_lcms_71(compiler)
|
||||||
return build_lcms_70(compiler)
|
return build_lcms_70(compiler)
|
||||||
|
|
||||||
|
|
||||||
def build_lcms_70(compiler):
|
def build_lcms_70(compiler):
|
||||||
"""Link error here on x64"""
|
"""Link error here on x64"""
|
||||||
if compiler['platform'] == 'x64': return ''
|
if compiler['platform'] == 'x64':
|
||||||
|
return ''
|
||||||
|
|
||||||
"""Build LCMS on VC2008. This version is only 32bit/Win32"""
|
"""Build LCMS on VC2008. This version is only 32bit/Win32"""
|
||||||
return r"""
|
return r"""
|
||||||
|
@ -263,6 +275,7 @@ copy /Y /B %%LCMS%%\Projects\VC%(vc_version)s\Release\*.lib %%INCLIB%%
|
||||||
endlocal
|
endlocal
|
||||||
""" % compiler
|
""" % compiler
|
||||||
|
|
||||||
|
|
||||||
def build_lcms_71(compiler):
|
def build_lcms_71(compiler):
|
||||||
return r"""
|
return r"""
|
||||||
rem Build lcms2
|
rem Build lcms2
|
||||||
|
@ -289,14 +302,12 @@ def add_compiler(compiler):
|
||||||
script.append(end_compiler())
|
script.append(end_compiler())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mkdirs()
|
mkdirs()
|
||||||
fetch_libs()
|
fetch_libs()
|
||||||
# extract_binlib()
|
# extract_binlib()
|
||||||
script = [header(), cp_tk()]
|
script = [header(), cp_tk()]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if 'PYTHON' in os.environ:
|
if 'PYTHON' in os.environ:
|
||||||
add_compiler(compiler_fromEnv())
|
add_compiler(compiler_fromEnv())
|
||||||
else:
|
else:
|
||||||
|
@ -307,7 +318,3 @@ else:
|
||||||
|
|
||||||
with open('build_deps.cmd', 'w') as f:
|
with open('build_deps.cmd', 'w') as f:
|
||||||
f.write("\n".join(script))
|
f.write("\n".join(script))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,7 @@ libs = { 'zlib':{
|
||||||
'url': 'http://downloads.webmproject.org/releases/webp/libwebp-0.4.3.tar.gz',
|
'url': 'http://downloads.webmproject.org/releases/webp/libwebp-0.4.3.tar.gz',
|
||||||
'hash': 'sha1:1c307a61c4d0018620b4ba9a58e8f48a8d6640ef',
|
'hash': 'sha1:1c307a61c4d0018620b4ba9a58e8f48a8d6640ef',
|
||||||
'dir': 'libwebp-0.4.3',
|
'dir': 'libwebp-0.4.3',
|
||||||
|
|
||||||
},
|
},
|
||||||
'openjpeg': {
|
'openjpeg': {
|
||||||
'url': SF_MIRROR+'/project/openjpeg/openjpeg/2.1.0/openjpeg-2.1.0.tar.gz',
|
'url': SF_MIRROR+'/project/openjpeg/openjpeg/2.1.0/openjpeg-2.1.0.tar.gz',
|
||||||
|
@ -118,7 +119,7 @@ def pyversion_fromEnv():
|
||||||
py = os.environ['PYTHON']
|
py = os.environ['PYTHON']
|
||||||
|
|
||||||
py_version = '27'
|
py_version = '27'
|
||||||
for k,v in pythons.items():
|
for k in pythons.keys():
|
||||||
if k in py:
|
if k in py:
|
||||||
py_version = k
|
py_version = k
|
||||||
break
|
break
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
import sys, os, urllib.parse, urllib.request
|
import sys
|
||||||
|
import os
|
||||||
|
import urllib.parse
|
||||||
|
import urllib.request
|
||||||
|
|
||||||
|
|
||||||
def fetch(url):
|
def fetch(url):
|
||||||
name = urllib.parse.urlsplit(url)[2].split('/')[-1]
|
name = urllib.parse.urlsplit(url)[2].split('/')[-1]
|
||||||
|
@ -12,5 +16,3 @@ def fetch(url):
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
fetch(sys.argv[1])
|
fetch(sys.argv[1])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import sys
|
||||||
|
|
||||||
from config import *
|
from config import *
|
||||||
|
|
||||||
|
|
||||||
def test_one(params):
|
def test_one(params):
|
||||||
python, architecture = params
|
python, architecture = params
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import sys, tarfile
|
import sys
|
||||||
|
import tarfile
|
||||||
|
|
||||||
|
|
||||||
def untar(src, dest):
|
def untar(src, dest):
|
||||||
with tarfile.open(src, 'r:gz') as tgz:
|
with tarfile.open(src, 'r:gz') as tgz:
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import sys, zipfile
|
import sys
|
||||||
|
import zipfile
|
||||||
|
|
||||||
|
|
||||||
def unzip(src, dest):
|
def unzip(src, dest):
|
||||||
with zipfile.ZipFile(src) as zf:
|
with zipfile.ZipFile(src) as zf:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user