Skip to content

Commit

Permalink
Prevent macOS installer build failure if ABIFLAGS is empty. (GH-13012)
Browse files Browse the repository at this point in the history
  • Loading branch information
ned-deily committed Apr 29, 2019
1 parent 883dfc6 commit 9bdd6d1
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions Mac/BuildScript/build-installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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')
Expand Down

1 comment on commit 9bdd6d1

@cclauss
Copy link
Contributor

@cclauss cclauss commented on 9bdd6d1 May 1, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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.