MathSage не может скомпилировать _scproxy - PullRequest
0 голосов
/ 10 мая 2018

В macOS 10.12 я получаю следующую ошибку при попытке построить MathSage (make && make clean):

Successfully installed python2-2.7.10.p1
Deleting temporary build directory
/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1
Finished installing python2-2.7.10.p1.spkg
sage-logger 'sage-spkg atlas-3.10.2.p2' '/Applications/SageMath/logs/pkgs/atlas-3.10.2.p2.log'
Found local metadata for atlas-3.10.2.p2
Traceback (most recent call last):
  File "/Applications/SageMath/build/bin/sage-download-file", line 27, in <module>
    from sage_bootstrap.cmdline import SageDownloadFileApplication
  File "/Applications/SageMath/build/bin/../sage_bootstrap/cmdline.py", line 28, in <module>
    from sage_bootstrap.download import Download
  File "/Applications/SageMath/build/bin/../sage_bootstrap/download.py", line 23, in <module>
    from sage_bootstrap.compat import urllib
  File "/Applications/SageMath/build/bin/../sage_bootstrap/compat.py", line 23, in <module>
    import urllib
  File "/Applications/SageMath/local/lib/python/urllib.py", line 1414, in <module>
    from _scproxy import _get_proxy_settings, _get_proxies
ImportError: No module named _scproxy
make[2]: *** [/Applications/SageMath/local/var/lib/sage/installed/atlas-3.10.2.p2] Error 1
make[1]: *** [all] Error 2

real    154m30.485s
user    93m39.621s
sys 12m38.882s
***************************************************************
Error building Sage.

Как видно, он жалуется, что "scproxy" не найден.

Действительно, оглядываясь назад в журнале, я обнаружил эту ошибку, когда MathSage (очевидно?) Пытается скомпилировать _scproxy.c:

building '_scproxy' extension
creating build/temp.macosx-10.9-x86_64-2.7/Mac
creating build/temp.macosx-10.9-x86_64-2.7/Mac/Modules
gcc -fno-strict-aliasing -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1/include -DNDEBUG -g -fwrapv -O3 -Wall -Wno-unused -I/Applications/SageMath/local/include -I. -IInclude -I./Include -I/usr/local/include -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1/src/Include -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1/src -c ./Mac/Modules/_scproxy.c -o build/temp.macosx-10.9-x86_64-2.7/./Mac/Modules/_scproxy.o
In file included from /usr/include/Availability.h:190:0,
                 from /usr/include/stdio.h:65,
                 from Include/Python.h:33,
                 from ./Mac/Modules/_scproxy.c:5:
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:53:34: error: expected ',' or '}' before '__attribute__'
     kCFISO8601DateFormatWithYear API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 0),
                                  ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:80:126: error: 'introduced' undeclared here (not in a function)
 CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocator, CFISO8601DateFormatOptions formatOptions) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
                                                                                                                              ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'deprecated' undeclared here (not in a function)
 const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));
                                       ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'message' undeclared here (not in a function)
 const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));
                                       ^
In file included from /System/Library/Frameworks/Security.framework/Headers/AuthSession.h:32:0,
                 from /System/Library/Frameworks/Security.framework/Headers/Security.h:43,
                 from /System/Library/Frameworks/SystemConfiguration.framework/Headers/SCPreferences.h:35,
                 from /System/Library/Frameworks/SystemConfiguration.framework/Headers/SystemConfiguration.h:124,
                 from ./Mac/Modules/_scproxy.c:6:
/System/Library/Frameworks/Security.framework/Headers/Authorization.h:192:7: error: variably modified 'bytes' at file scope
  char bytes[kAuthorizationExternalFormLength];
       ^
./Mac/Modules/_scproxy.c: In function 'get_proxy_settings':
./Mac/Modules/_scproxy.c:67:50: warning: the comparison will always evaluate as 'true' for the address of 'kSCPropNetProxiesExcludeSimpleHostnames' will never be NULL [-Waddress]
     if (&kSCPropNetProxiesExcludeSimpleHostnames != NULL) {
                                                  ^

Это не похоже на обсуждаемую проблему здесь , потому что это связано с отсутствующей Системной копией _scproxy. (Я вижу

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_scproxy.so

в моей системе.) И для меня это тоже не похоже на проблему, обсуждаемую здесь , потому что для этого нужен файл с именем /usr/include/dispatch/object.h, являющийся Objective-C, тогда как ошибка выше жалуется о том, что что-то идет не так в /System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h.

Однако, возможно, это все же связано с моей версией gcc. Вот что я получаю, когда запускаю gcc -v:

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Кроме того, во втором посте, который я цитировал, рекомендуется использовать компилятор Sage gcc, что достигается путем «включения» опции SAGE_INSTALL_GCC=yes. Я действительно не знаю, что я делаю здесь, я пытался запустить

make clean && make SAGE_INSTALL_GCC=yes

вместо обычного make clean && make, и он столкнулся с той же ошибкой.

Любой совет?

...