Opened 7 months ago

Closed 6 months ago

#69728 closed defect (fixed)

py-pyobjc6: some changes to Python build system led to py*-pyobjc6 only installing docs

Reported by: barracuda156 Owned by: barracuda156
Priority: Normal Milestone:
Component: ports Version: 2.9.3
Keywords: snowleopard, leopard, tiger Cc:
Port: py-pyobjc6

Description

py-pyobjc6 was a mere restore of an earlier existing port (py-pyobjc of version 6.2.2). So it should be installing libraries etc. However, what it does now is only install documentation.

Change History (5)

comment:1 Changed 7 months ago by barracuda156

Oh wait, there is an error during the build, which is why perhaps nothing useful gets installed:

xinstall: mkdir /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/destroot/opt/local/share/doc/py38-pyobjc6
xinstall: mkdir /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/destroot/opt/local/share/doc/py38-pyobjc6/examples
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/pyobjc-6.2.2" && /opt/local/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 install.py --destdir /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/destroot 
setup.py:17: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  from pkg_resources import add_activation_listener, normalize_path, require, working_set
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/setuptools/dist.py:678: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated.
!!

        ********************************************************************************
        Please replace its usage with implicit namespaces (PEP 420).

        See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages for details.
        ********************************************************************************

!!
  ep.load()(self, ep.name, value)
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: option --destdir not recognized
Skipping 'pyobjc-framework-Accounts' because it is not supported on the current platform
Skipping 'pyobjc-framework-AdSupport' because it is not supported on the current platform
Skipping 'pyobjc-framework-AuthenticationServices' because it is not supported on the current platform
Skipping 'pyobjc-framework-AutomaticAssessmentConfiguration' because it is not supported on the current platform
Skipping 'pyobjc-framework-AVFoundation' because it is not supported on the current platform
Skipping 'pyobjc-framework-AVKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-BusinessChat' because it is not supported on the current platform
Skipping 'pyobjc-framework-CloudKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-ColorSync' because it is not supported on the current platform
Skipping 'pyobjc-framework-Contacts' because it is not supported on the current platform
Skipping 'pyobjc-framework-ContactsUI' because it is not supported on the current platform
Skipping 'pyobjc-framework-CoreBluetooth' because it is not supported on the current platform
Skipping 'pyobjc-framework-CoreHaptics' because it is not supported on the current platform
Skipping 'pyobjc-framework-CoreMedia' because it is not supported on the current platform
Skipping 'pyobjc-framework-CoreMediaIO' because it is not supported on the current platform
Skipping 'pyobjc-framework-CoreML' because it is not supported on the current platform
Skipping 'pyobjc-framework-CoreMotion' because it is not supported on the current platform
Skipping 'pyobjc-framework-CoreSpotlight' because it is not supported on the current platform
Skipping 'pyobjc-framework-CryptoTokenKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-DeviceCheck' because it is not supported on the current platform
Skipping 'pyobjc-framework-DVDPlayback' because it is not supported on the current platform
Skipping 'pyobjc-framework-EventKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-ExecutionPolicy' because it is not supported on the current platform
Skipping 'pyobjc-framework-ExternalAccessory' because it is not supported on the current platform
Skipping 'pyobjc-framework-FileProvider' because it is not supported on the current platform
Skipping 'pyobjc-framework-FileProviderUI' because it is not supported on the current platform
Skipping 'pyobjc-framework-FinderSync' because it is not supported on the current platform
Skipping 'pyobjc-framework-GameCenter' because it is not supported on the current platform
Skipping 'pyobjc-framework-GameKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-GameplayKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-IMServicePlugIn' because it is not supported on the current platform
Skipping 'pyobjc-framework-Intents' because it is not supported on the current platform
Skipping 'pyobjc-framework-libdispatch' because it is not supported on the current platform
Skipping 'pyobjc-framework-LinkPresentation' because it is not supported on the current platform
Skipping 'pyobjc-framework-LocalAuthentication' because it is not supported on the current platform
Skipping 'pyobjc-framework-MapKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-MediaAccessibility' because it is not supported on the current platform
Skipping 'pyobjc-framework-MediaLibrary' because it is not supported on the current platform
Skipping 'pyobjc-framework-MediaPlayer' because it is not supported on the current platform
Skipping 'pyobjc-framework-MediaToolbox' because it is not supported on the current platform
Skipping 'pyobjc-framework-Metal' because it is not supported on the current platform
Skipping 'pyobjc-framework-MetalKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-ModelIO' because it is not supported on the current platform
Skipping 'pyobjc-framework-MultipeerConnectivity' because it is not supported on the current platform
Skipping 'pyobjc-framework-NaturalLanguage' because it is not supported on the current platform
Skipping 'pyobjc-framework-Network' because it is not supported on the current platform
Skipping 'pyobjc-framework-NetworkExtension' because it is not supported on the current platform
Skipping 'pyobjc-framework-NotificationCenter' because it is not supported on the current platform
Skipping 'pyobjc-framework-OSLog' because it is not supported on the current platform
Skipping 'pyobjc-framework-PencilKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-Photos' because it is not supported on the current platform
Skipping 'pyobjc-framework-PhotosUI' because it is not supported on the current platform
Skipping 'pyobjc-framework-PushKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-QuickLookThumbnailing' because it is not supported on the current platform
Skipping 'pyobjc-framework-SafariServices' because it is not supported on the current platform
Skipping 'pyobjc-framework-SceneKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-Social' because it is not supported on the current platform
Skipping 'pyobjc-framework-SoundAnalysis' because it is not supported on the current platform
Skipping 'pyobjc-framework-Speech' because it is not supported on the current platform
Skipping 'pyobjc-framework-SpriteKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-StoreKit' because it is not supported on the current platform
Skipping 'pyobjc-framework-SystemExtensions' because it is not supported on the current platform
Skipping 'pyobjc-framework-UserNotifications' because it is not supported on the current platform
Skipping 'pyobjc-framework-VideoSubscriberAccount' because it is not supported on the current platform
Skipping 'pyobjc-framework-VideoToolbox' because it is not supported on the current platform
Skipping 'pyobjc-framework-Vision' because it is not supported on the current platform
Installing 'pyobjc-core' using '/opt/local/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8'
Installing 'pyobjc-core' failed (status 1)
xinstall: chdir(/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/pyobjc-6.2.2/pyobjc-core)
xinstall: HISTORIC.txt -> /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/destroot/opt/local/share/doc/py38-pyobjc6/HISTORIC.txt
xinstall: Install.txt -> /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/destroot/opt/local/share/doc/py38-pyobjc6/Install.txt
xinstall: License.txt -> /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/destroot/opt/local/share/doc/py38-pyobjc6/License.txt
xinstall: README.txt -> /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py38-pyobjc6/work/destroot/opt/local/share/doc/py38-pyobjc6/README.txt

(Same with Python 3.11.)

Archaic 3.6 fails worse:

/usr/bin/gcc-4.2 -DNDEBUG -g -fwrapv -O3 -Wall -arch ppc -I/opt/local/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c Modules/objc/module.m -o build/temp.macosx-10.6-ppc-3.6/Modules/objc/module.o -g -fexceptions -Wall -Wstrict-prototypes -Wmissing-prototypes -Wformat=2 -W -Wpointer-arith -Wmissing-declarations -Wnested-externs -W -Wno-import -Wno-unknown-pragmas -Wshorten-64-to-32 -I/opt/local/include -isysroot / -DPyObjC_BUILD_RELEASE=1006
Modules/objc/module.m: In function ‘PyObjC_setAssociatedObject’:
Modules/objc/module.m:1519: error: ‘OBJC_ASSOCIATION_RETAIN’ undeclared (first use in this function)
Modules/objc/module.m:1519: error: (Each undeclared identifier is reported only once
Modules/objc/module.m:1519: error: for each function it appears in.)
Modules/objc/module.m:1521: error: ‘objc_setAssociatedObject’ undeclared (first use in this function)
Modules/objc/module.m:1536: warning: implicit declaration of function ‘objc_setAssociatedObject’
Modules/objc/module.m:1536: warning: nested extern declaration of ‘objc_setAssociatedObject’
Modules/objc/module.m: In function ‘PyObjC_getAssociatedObject’:
Modules/objc/module.m:1563: error: ‘objc_getAssociatedObject’ undeclared (first use in this function)
Modules/objc/module.m:1577: warning: implicit declaration of function ‘objc_getAssociatedObject’
Modules/objc/module.m:1577: warning: nested extern declaration of ‘objc_getAssociatedObject’
Modules/objc/module.m:1577: warning: assignment makes pointer from integer without a cast
Modules/objc/module.m: In function ‘PyObjC_removeAssociatedObjects’:
Modules/objc/module.m:1604: error: ‘objc_removeAssociatedObjects’ undeclared (first use in this function)
Modules/objc/module.m:1618: warning: implicit declaration of function ‘objc_removeAssociatedObjects’
Modules/objc/module.m:1618: warning: nested extern declaration of ‘objc_removeAssociatedObjects’
Modules/objc/module.m: At top level:
Modules/objc/module.m:2039: warning: ‘__visibility__’ attribute ignored on non-class types
Modules/objc/module.m: In function ‘PyInit__objc’:
Modules/objc/module.m:2352: error: ‘OBJC_ASSOCIATION_ASSIGN’ undeclared (first use in this function)
Modules/objc/module.m:2357: error: ‘OBJC_ASSOCIATION_RETAIN_NONATOMIC’ undeclared (first use in this function)
Modules/objc/module.m:2362: error: ‘OBJC_ASSOCIATION_COPY_NONATOMIC’ undeclared (first use in this function)
Modules/objc/module.m:2366: error: ‘OBJC_ASSOCIATION_RETAIN’ undeclared (first use in this function)
Modules/objc/module.m:2370: error: ‘OBJC_ASSOCIATION_COPY’ undeclared (first use in this function)
/opt/local/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  setuptools.SetuptoolsDeprecationWarning,
error: command '/usr/bin/gcc-4.2' failed with exit status 1

Wonder why that does not stop the build on error though and it "succeeds".

comment:2 Changed 7 months ago by barracuda156

UPD. Okay, Python 3.6 was failing on a genuine error, later ones were failing on a wrong args passed to build system (which apparently became wrong due to some pep-related modifications to the PG).

comment:3 Changed 7 months ago by barracuda156

Owner: set to barracuda156
Status: newassigned

comment:4 Changed 7 months ago by barracuda156

Looks like there are at least three issues:

  1. A move to pep517 has broken the build, so that only docs are installed (fixed now locally).
  2. This does not work at all: plistlib.readPlist:
  File "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_python_py-pyobjc6/py310-pyobjc6/work/pyobjc-core-5.3/setup.py", line 49, in get_os_level
    pl = plistlib.readPlist('/System/Library/CoreServices/SystemVersion.plist')
AttributeError: module 'plistlib' has no attribute 'readPlist'

There are multiple reports of this issue: https://bugzilla.redhat.com/show_bug.cgi?id=1793034 https://github.com/kim-do-hyeon/iphone-forensics/issues/3

  1. There are minor ppc-specific errors (trivial, just fix macros).

comment:5 Changed 6 months ago by barracuda156

Resolution: fixed
Status: assignedclosed

In e718571a6737a7ca5bb933f8be5d7214bbbeb416/macports-ports (master):

py-pyobjc6: fix the build of core library

Closes: #69728

Note: See TracTickets for help on using tickets.