Skip to content
Permalink
Browse files

Prevent macOS installer build failure if ABIFLAGS is empty. (GH-13012)

  • Loading branch information...
ned-deily committed Apr 29, 2019
1 parent 883dfc6 commit 9bdd6d1c2a61e0a27dba063e9eccf70e295f73a4
Showing with 4 additions and 2 deletions.
  1. +4 −2 Mac/BuildScript/build-installer.py
@@ -1207,7 +1207,8 @@ def buildPython():
if ln.startswith('VERSION='):
VERSION=ln.split()[1]
if ln.startswith('ABIFLAGS='):
ABIFLAGS=ln.split()[1]
ABIFLAGS=ln.split()
ABIFLAGS=ABIFLAGS[1] if len(ABIFLAGS) > 1 else ''
if ln.startswith('LDVERSION='):
LDVERSION=ln.split()[1]
fp.close()
@@ -1258,7 +1259,8 @@ def buildPython():
import pprint
if getVersionMajorMinor() >= (3, 6):
# XXX this is extra-fragile
path = os.path.join(path_to_lib, '_sysconfigdata_m_darwin_darwin.py')
path = os.path.join(path_to_lib,
'_sysconfigdata_%s_darwin_darwin.py' % (ABIFLAGS,))
else:
path = os.path.join(path_to_lib, '_sysconfigdata.py')
fp = open(path, 'r')

1 comment on commit 9bdd6d1

@cclauss

This comment has been minimized.

Copy link
Contributor

commented on 9bdd6d1 May 1, 2019

@ned-deily Just a few lines down from this change, the variable build_time_vars is used but it is unclear where that variable gets initiated. Could the # XXX this is extra-fragile comment be caused by an undefined variable?

flake8 testing of https://github.com/python/cpython on Python 3.7.1

$ flake8 . --count --select=E9,F63,F72,F82 --show-source --statistics

./Mac/BuildScript/build-installer.py:1272:17: F821 undefined name 'build_time_vars'
    for k, v in build_time_vars.items():
                ^
./Mac/BuildScript/build-installer.py:1543:50: F821 undefined name 'commandline'
        raise RuntimeError("command failed: %s"%(commandline,))
                                                 ^

E901,E999,F821,F822,F823 are the "showstopper" flake8 issues that can halt the runtime with a SyntaxError, NameError, etc. These 5 are different from most other flake8 issues which are merely "style violations" -- useful for readability but they do not effect runtime safety.

  • F821: undefined name name
  • F822: undefined name name in __all__
  • F823: local variable name referenced before assignment
  • E901: SyntaxError or IndentationError
  • E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree
Please sign in to comment.
You can’t perform that action at this time.