bpo-31904: Fix site and sysconfig modules for VxWorks RTOS (GH-21821) · python/cpython@ab74c01 (original) (raw)

`@@ -51,34 +51,65 @@

`

51

51

`'scripts': '{base}/Scripts',

`

52

52

`'data': '{base}',

`

53

53

` },

`

54

``

`-

NOTE: When modifying "purelib" scheme, update site._get_path() too.

`

55

``

`-

'nt_user': {

`

56

``

`-

'stdlib': '{userbase}/Python{py_version_nodot_plat}',

`

57

``

`-

'platstdlib': '{userbase}/Python{py_version_nodot_plat}',

`

58

``

`-

'purelib': '{userbase}/Python{py_version_nodot_plat}/site-packages',

`

59

``

`-

'platlib': '{userbase}/Python{py_version_nodot_plat}/site-packages',

`

60

``

`-

'include': '{userbase}/Python{py_version_nodot_plat}/Include',

`

61

``

`-

'scripts': '{userbase}/Python{py_version_nodot_plat}/Scripts',

`

62

``

`-

'data': '{userbase}',

`

63

``

`-

},

`

64

``

`-

'posix_user': {

`

65

``

`-

'stdlib': '{userbase}/{platlibdir}/python{py_version_short}',

`

66

``

`-

'platstdlib': '{userbase}/{platlibdir}/python{py_version_short}',

`

67

``

`-

'purelib': '{userbase}/lib/python{py_version_short}/site-packages',

`

68

``

`-

'platlib': '{userbase}/{platlibdir}/python{py_version_short}/site-packages',

`

69

``

`-

'include': '{userbase}/include/python{py_version_short}',

`

70

``

`-

'scripts': '{userbase}/bin',

`

71

``

`-

'data': '{userbase}',

`

72

``

`-

},

`

73

``

`-

'osx_framework_user': {

`

74

``

`-

'stdlib': '{userbase}/lib/python',

`

75

``

`-

'platstdlib': '{userbase}/lib/python',

`

76

``

`-

'purelib': '{userbase}/lib/python/site-packages',

`

77

``

`-

'platlib': '{userbase}/lib/python/site-packages',

`

78

``

`-

'include': '{userbase}/include',

`

79

``

`-

'scripts': '{userbase}/bin',

`

80

``

`-

'data': '{userbase}',

`

81

``

`-

},

`

``

54

`+

}

`

``

55

+

``

56

+

``

57

`+

NOTE: site.py has copy of this function.

`

``

58

`+

Sync it when modify this function.

`

``

59

`+

def _getuserbase():

`

``

60

`+

env_base = os.environ.get("PYTHONUSERBASE", None)

`

``

61

`+

if env_base:

`

``

62

`+

return env_base

`

``

63

+

``

64

`+

VxWorks has no home directories

`

``

65

`+

if sys.platform == "vxworks":

`

``

66

`+

return None

`

``

67

+

``

68

`+

def joinuser(*args):

`

``

69

`+

return os.path.expanduser(os.path.join(*args))

`

``

70

+

``

71

`+

if os.name == "nt":

`

``

72

`+

base = os.environ.get("APPDATA") or "~"

`

``

73

`+

return joinuser(base, "Python")

`

``

74

+

``

75

`+

if sys.platform == "darwin" and sys._framework:

`

``

76

`+

return joinuser("~", "Library", sys._framework,

`

``

77

`+

"%d.%d" % sys.version_info[:2])

`

``

78

+

``

79

`+

return joinuser("~", ".local")

`

``

80

+

``

81

`+

_HAS_USER_BASE = (_getuserbase() is not None)

`

``

82

+

``

83

`+

if _HAS_USER_BASE:

`

``

84

`+

_INSTALL_SCHEMES |= {

`

``

85

`+

NOTE: When modifying "purelib" scheme, update site._get_path() too.

`

``

86

`+

'nt_user': {

`

``

87

`+

'stdlib': '{userbase}/Python{py_version_nodot_plat}',

`

``

88

`+

'platstdlib': '{userbase}/Python{py_version_nodot_plat}',

`

``

89

`+

'purelib': '{userbase}/Python{py_version_nodot_plat}/site-packages',

`

``

90

`+

'platlib': '{userbase}/Python{py_version_nodot_plat}/site-packages',

`

``

91

`+

'include': '{userbase}/Python{py_version_nodot_plat}/Include',

`

``

92

`+

'scripts': '{userbase}/Python{py_version_nodot_plat}/Scripts',

`

``

93

`+

'data': '{userbase}',

`

``

94

`+

},

`

``

95

`+

'posix_user': {

`

``

96

`+

'stdlib': '{userbase}/{platlibdir}/python{py_version_short}',

`

``

97

`+

'platstdlib': '{userbase}/{platlibdir}/python{py_version_short}',

`

``

98

`+

'purelib': '{userbase}/lib/python{py_version_short}/site-packages',

`

``

99

`+

'platlib': '{userbase}/{platlibdir}/python{py_version_short}/site-packages',

`

``

100

`+

'include': '{userbase}/include/python{py_version_short}',

`

``

101

`+

'scripts': '{userbase}/bin',

`

``

102

`+

'data': '{userbase}',

`

``

103

`+

},

`

``

104

`+

'osx_framework_user': {

`

``

105

`+

'stdlib': '{userbase}/lib/python',

`

``

106

`+

'platstdlib': '{userbase}/lib/python',

`

``

107

`+

'purelib': '{userbase}/lib/python/site-packages',

`

``

108

`+

'platlib': '{userbase}/lib/python/site-packages',

`

``

109

`+

'include': '{userbase}/include',

`

``

110

`+

'scripts': '{userbase}/bin',

`

``

111

`+

'data': '{userbase}',

`

``

112

`+

},

`

82

113

` }

`

83

114

``

84

115

`_SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include',

`

`@@ -183,25 +214,6 @@ def _get_default_scheme():

`

183

214

`return os.name

`

184

215

``

185

216

``

186

``

`-

NOTE: site.py has copy of this function.

`

187

``

`-

Sync it when modify this function.

`

188

``

`-

def _getuserbase():

`

189

``

`-

env_base = os.environ.get("PYTHONUSERBASE", None)

`

190

``

`-

if env_base:

`

191

``

`-

return env_base

`

192

``

-

193

``

`-

def joinuser(*args):

`

194

``

`-

return os.path.expanduser(os.path.join(*args))

`

195

``

-

196

``

`-

if os.name == "nt":

`

197

``

`-

base = os.environ.get("APPDATA") or "~"

`

198

``

`-

return joinuser(base, "Python")

`

199

``

-

200

``

`-

if sys.platform == "darwin" and sys._framework:

`

201

``

`-

return joinuser("~", "Library", sys._framework,

`

202

``

`-

"%d.%d" % sys.version_info[:2])

`

203

``

-

204

``

`-

return joinuser("~", ".local")

`

205

217

``

206

218

``

207

219

`def _parse_makefile(filename, vars=None):

`

`@@ -558,10 +570,11 @@ def get_config_vars(*args):

`

558

570

`SO = _CONFIG_VARS.get('EXT_SUFFIX')

`

559

571

`if SO is not None:

`

560

572

`_CONFIG_VARS['SO'] = SO

`

561

``

`-

Setting 'userbase' is done below the call to the

`

562

``

`-

init function to enable using 'get_config_var' in

`

563

``

`-

the init-function.

`

564

``

`-

_CONFIG_VARS['userbase'] = _getuserbase()

`

``

573

`+

if _HAS_USER_BASE:

`

``

574

`+

Setting 'userbase' is done below the call to the

`

``

575

`+

init function to enable using 'get_config_var' in

`

``

576

`+

the init-function.

`

``

577

`+

_CONFIG_VARS['userbase'] = _getuserbase()

`

565

578

``

566

579

`# Always convert srcdir to an absolute path

`

567

580

`srcdir = _CONFIG_VARS.get('srcdir', _PROJECT_BASE)

`