Subject: CVS commit: pkgsrc/devel
From: Adam Ciarcinski
Date: 2022-09-27 20:13:03
Message id: 20220927181306.19066FA90@cvs.NetBSD.org

Log Message:
py-pyobjc*: updated to 8.5.1

Version 8.5

This release continues the work on test coverage in pyobjc-core, resulting in a \ 
number of minor bug fixes.

Added two options to the build_ext command in the setup.py of pyobjc-core:

--no-lto: Disable link time optimization
--no-warnings-as-errors: Disable -Werror
For struct bindings in frameworks the “in” operator no longer swallows \ 
exceptions raised by the __eq__ method.

Improved handing of invalid type encodings for struct types.

Fix crash while handling a struct wrapper with an invalid type encoding.

Fix handling of empty structs (such as struct foo { }; in objc.repythonify().

The type for NSObject.pyobjc_instanceMethod and NSObject.pyobjc_classMethods now \ 
supports the GC protocol to avoid garbage collection issues when the value for \ 
these properties is stored as an attribute (which introduces a reference cycle)

PyObjC should work with Python 3.11 alpha release, starting at alpha 6. Earlier \ 
alpha’s are not supported due to reverting a workaround for a bug that was \ 
fixed in alpha 6.

NSObject.alloc = 42 now fails. It was already impossible to replace a selector \ 
by something else through instances (NSObject.new().description = 42 raises).

Added objc.ObjCPointer.typestr with the same value as objc.ObjCPonter.type. The \ 
latter is now deprecated and will be removed in PyObjC 9.

Better error messages when a class implementing a protocol inherits a method of \ 
the wrong kind (“class” vs. “instance”).

The value of __slots__ in a class definition is now kept in the created class \ 
(previous versions always set the attribute to an empty tuple).

This is primarily useful when __slots__ is a dict that is used to document \ 
attributes.

Raise the correct exception when the name of a method is not an ASCII string.

objc.loadSpecialVar() now better enforces that the module_globals argument is a \ 
Python dictionary.

Fixed a crash in objc.loadSpecialVar() due to a missing pointer dereference.

pip install pyobjc-framework-... for a framework that is not present on the \ 
current machine will now give a better error message when the “wheel” \ 
package is not installed.

Setting an integer option in objc.options to a value of an incompatible type \ 
(such as a string) will now raise an exception as intended, instead of breaking \ 
the interpreter.

Trying to delete an attribute from objc.options now raises \ 
:type:`AttributeError` instead of :type:`TypeError`.

objc.selector now copies the default signature from its argument when that \ 
argument is another objc.selector.

Until now this would raise an exception.

Added some missing error checking in calls to PyObject_New() and PyObject_GC_New().

It is now possible to create an objc.selector from a callable that is not a \ 
function or bound method. This may require specifying the method signature in \ 
the call to objc.selector.

For pyobjc-core the build_ext command in setup.py now includes the command-line \ 
option from the standaard command, which means python setup.py build_ext -j 4 \ 
can now be used for parallel builds.

On my M1 laptop using python setup.py build_ext -j 8 halves the time needed to \ 
build the extension.

The test command setup.py now supports the -v option to print test cases while \ 
they are run, in previoius versions this required using the --verbosity option.

Improve error handling when dealing with “isHidden” selectors.

Added pyobjc_hiddenSelectors(classmethods) to objc.objc_class

This method returns a copy of the dictionary with “hidden” selectors, that \ 
is Objective-C selectors that are hidden from view.

The method is primarily a debugging aid for development of PyObjC itself.

ApplicationServices.AXIsProcessTrustedWithOptions and \ 
Quartrz.CGPDFArrayGetObject had incorrect metadata.

The testsuites for the various framework bindings now have a test that does some \ 
basic checks on function and selector metadata. This test found the problem with \ 
CGPDFArrayGetObject.

Added objc._C_ATOMIC and objc._C_COMPLEX, both extracted from the clang sources \ 
after finding some type encodings that PyObjC could not decode.

objc._C_ATOMIC is ignored by PyObjC (for now), and objc._C_COMPLEX is not yet \ 
supported.

Fix internal error for _C_OUT argument markup on arguments that are \ 
CoreFoundation types.

This can only happen with invalid metadata definitions in framework bindings, \ 
and earlier versions this resulted in an internal assertion error. With this \ 
change the “output” argument is always None in the result.

Fix metadata for a number of functions with a C string argument

The metadata for the following functions was changed to have the correct type \ 
encoding for string argument, to fix issues with using non-ASCII (byte) strings.

ApplicationServices.PMWorkflowSubmitPDFWithOptions
CoreServices.LocaleRefGetPartString
Foundation.NSGetSizeAndAlignment
Network.nw_advertise_descriptor_create_bonjour_service
Network.nw_browse_descriptor_create_bonjour_service
Network.nw_browse_descriptor_get_bonjour_service_domain
Network.nw_browse_descriptor_get_bonjour_service_type
Network.nw_connection_copy_description
Network.nw_content_context_create
Network.nw_content_context_get_identifier
Network.nw_endpoint_copy_address_string
Network.nw_endpoint_copy_port_string
Network.nw_endpoint_create_bonjour_service
Network.nw_endpoint_create_host
Network.nw_endpoint_create_url
Network.nw_endpoint_get_bonjour_service_domain
Network.nw_endpoint_get_bonjour_service_name
Network.nw_endpoint_get_bonjour_service_type
Network.nw_endpoint_get_hostname
Network.nw_framer_create_definition
Network.nw_framer_message_access_value
Network.nw_framer_message_copy_object_value
Network.nw_framer_message_set_object_value
Network.nw_framer_message_set_value
Network.nw_framer_options_set_object_value
Network.nw_listener_create_with_port
Network.nw_privacy_context_create
Network.nw_quic_get_application_error_reason
Network.nw_quic_set_application_error
Network.nw_txt_record_access_key
Network.nw_ws_options_add_additional_header
Network.nw_ws_options_add_subprotocol
Quartz.CGContextSelectFont
Quartz.CGContextShowText
Quartz.CGContextShowTextAtPoint
Quartz.CGDataProviderCreateWithFilename
Quartz.CGPDFArrayGetName
Quartz.CGPDFContentStreamGetResource
Quartz.CGPDFDictionaryGetArray
Quartz.CGPDFDictionaryGetBoolean
Quartz.CGPDFDictionaryGetName
Quartz.CGPDFDocumentUnlockWithPassword
Quartz.CGPDFScannerPopName
Quartz.CGPDFTagTypeGetName
While fixing this issue I found problems with the metadata for these functions:

CoreMIDI.MIDIExternalDeviceCreate
CoreMedia.CMBlockBufferAccessDataBytes
CoreMedia.CMBlockBufferGetDataPointer
CoreMedia.CMBufferQueueInstallTriggerHandler
CoreMedia.CMBufferQueueInstallTriggerHandlerWithIntegerThreshold
CoreMedia.CMTextFormatDescriptionGetJustification
CoreServices.TECGetTextEncodingFromInternetNameOrMIB
DVDPlayback.DVDGetScanRate
MediaAccessibility.MACaptionAppearanceAddSelectedLanguage
There’s also a new test that checks for this problem in all exposed functions.

Fix incorrect reset of the “inline_list” attribute of the lazy importer, \ 
this could result in an incorrect TypeError when trying to access an \ 
non-existing attribute after looking at __all__.

Fix uniqueness of symbols exposed in the OpenDirectory bindings.

Unhide manual bindings for Security.SecKeychainFindGenericPassword and \ 
Security.SecKeychainFindInternetPassword.

Files:
RevisionActionfile
1.13modifypkgsrc/devel/py-pyobjc/Makefile.common
1.8modifypkgsrc/devel/py-pyobjc-core/Makefile
1.15modifypkgsrc/devel/py-pyobjc-core/distinfo
1.3modifypkgsrc/devel/py-pyobjc-core/patches/patch-setup.py
1.4modifypkgsrc/devel/py-pyobjc-framework-AVFoundation/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-AVFoundation/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-AVKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-AVKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-Accounts/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-Accounts/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-AddressBook/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-AddressBook/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-AppleScriptKit/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-AppleScriptKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-AppleScriptObjC/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-AppleScriptObjC/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-ApplicationServices/Makefile
1.3modifypkgsrc/devel/py-pyobjc-framework-ApplicationServices/PLIST
1.12modifypkgsrc/devel/py-pyobjc-framework-ApplicationServices/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-Automator/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-Automator/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-CFNetwork/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-CFNetwork/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-CalendarStore/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-CalendarStore/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-CloudKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-CloudKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-Cocoa/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-Cocoa/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-Collaboration/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-Collaboration/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-ColorSync/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-ColorSync/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-Contacts/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-Contacts/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-ContactsUI/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-ContactsUI/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-CoreAudio/Makefile
1.6modifypkgsrc/devel/py-pyobjc-framework-CoreAudio/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-CoreBluetooth/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-CoreBluetooth/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-CoreData/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-CoreData/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-CoreLocation/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-CoreLocation/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-CoreML/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-CoreML/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-CoreMedia/Makefile
1.2modifypkgsrc/devel/py-pyobjc-framework-CoreMedia/PLIST
1.6modifypkgsrc/devel/py-pyobjc-framework-CoreMedia/distinfo
1.4modifypkgsrc/devel/py-pyobjc-framework-CoreServices/Makefile
1.9modifypkgsrc/devel/py-pyobjc-framework-CoreServices/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-CoreSpotlight/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-CoreSpotlight/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-CoreText/Makefile
1.3modifypkgsrc/devel/py-pyobjc-framework-CoreText/PLIST
1.14modifypkgsrc/devel/py-pyobjc-framework-CoreText/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-CoreWLAN/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-CoreWLAN/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-CryptoTokenKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-CryptoTokenKit/distinfo
1.6modifypkgsrc/devel/py-pyobjc-framework-DictionaryServices/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-DictionaryServices/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-DiskArbitration/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-DiskArbitration/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-EventKit/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-EventKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-ExceptionHandling/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-ExceptionHandling/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-ExternalAccessory/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-ExternalAccessory/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-FSEvents/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-FSEvents/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-FinderSync/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-FinderSync/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-GameCenter/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-GameCenter/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-GameController/Makefile
1.2modifypkgsrc/devel/py-pyobjc-framework-GameController/PLIST
1.12modifypkgsrc/devel/py-pyobjc-framework-GameController/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-GameKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-GameKit/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-GameplayKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-GameplayKit/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-IOSurface/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-IOSurface/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-ImageCaptureCore/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-ImageCaptureCore/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-InputMethodKit/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-InputMethodKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-InstallerPlugins/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-InstallerPlugins/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-InstantMessage/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-InstantMessage/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-Intents/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-Intents/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-LatentSemanticMapping/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-LatentSemanticMapping/distinfo
1.6modifypkgsrc/devel/py-pyobjc-framework-LaunchServices/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-LaunchServices/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-LocalAuthentication/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-LocalAuthentication/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-MapKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-MapKit/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-MediaAccessibility/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-MediaAccessibility/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-MediaLibrary/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-MediaLibrary/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-MediaPlayer/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-MediaPlayer/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-Metal/Makefile
1.6modifypkgsrc/devel/py-pyobjc-framework-Metal/distinfo
1.4modifypkgsrc/devel/py-pyobjc-framework-MetalKit/Makefile
1.7modifypkgsrc/devel/py-pyobjc-framework-MetalKit/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-ModelIO/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-ModelIO/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-MultipeerConnectivity/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-MultipeerConnectivity/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-NaturalLanguage/Makefile
1.6modifypkgsrc/devel/py-pyobjc-framework-NaturalLanguage/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-NetFS/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-NetFS/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-NetworkExtension/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-NetworkExtension/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-NotificationCenter/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-NotificationCenter/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-OpenDirectory/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-OpenDirectory/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-Photos/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-Photos/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-PhotosUI/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-PhotosUI/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-PreferencePanes/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-PreferencePanes/distinfo
1.6modifypkgsrc/devel/py-pyobjc-framework-PubSub/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-PubSub/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-Quartz/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-Quartz/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-SafariServices/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-SafariServices/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-SceneKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-SceneKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-ScreenSaver/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-ScreenSaver/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-ScriptingBridge/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-ScriptingBridge/distinfo
1.6modifypkgsrc/devel/py-pyobjc-framework-SearchKit/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-SearchKit/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-Security/Makefile
1.4modifypkgsrc/devel/py-pyobjc-framework-Security/PLIST
1.12modifypkgsrc/devel/py-pyobjc-framework-Security/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-SecurityInterface/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-SecurityInterface/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-ServiceManagement/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-ServiceManagement/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-Social/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-Social/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-SpriteKit/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-SpriteKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-StoreKit/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-StoreKit/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-SyncServices/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-SyncServices/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-SystemConfiguration/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-SystemConfiguration/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-Vision/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-Vision/distinfo
1.5modifypkgsrc/devel/py-pyobjc-framework-WebKit/Makefile
1.14modifypkgsrc/devel/py-pyobjc-framework-WebKit/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-iTunesLibrary/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-iTunesLibrary/distinfo
1.3modifypkgsrc/devel/py-pyobjc-framework-libdispatch/Makefile
1.12modifypkgsrc/devel/py-pyobjc-framework-libdispatch/distinfo
1.1removepkgsrc/devel/py-pyobjc-framework-QTKit/DESCR
1.5removepkgsrc/devel/py-pyobjc-framework-QTKit/Makefile
1.3removepkgsrc/devel/py-pyobjc-framework-QTKit/PLIST
1.13removepkgsrc/devel/py-pyobjc-framework-QTKit/distinfo