head 1.18; access; symbols pkgsrc-2023Q4:1.17.0.2 pkgsrc-2023Q4-base:1.17 pkgsrc-2023Q3:1.16.0.4 pkgsrc-2023Q3-base:1.16 pkgsrc-2023Q2:1.16.0.2 pkgsrc-2023Q2-base:1.16 pkgsrc-2023Q1:1.14.0.4 pkgsrc-2023Q1-base:1.14 pkgsrc-2022Q4:1.14.0.2 pkgsrc-2022Q4-base:1.14 pkgsrc-2022Q3:1.13.0.8 pkgsrc-2022Q3-base:1.13 pkgsrc-2022Q2:1.13.0.6 pkgsrc-2022Q2-base:1.13 pkgsrc-2022Q1:1.13.0.4 pkgsrc-2022Q1-base:1.13 pkgsrc-2021Q4:1.13.0.2 pkgsrc-2021Q4-base:1.13 pkgsrc-2021Q3:1.11.0.10 pkgsrc-2021Q3-base:1.11 pkgsrc-2021Q2:1.11.0.8 pkgsrc-2021Q2-base:1.11 pkgsrc-2021Q1:1.11.0.6 pkgsrc-2021Q1-base:1.11 pkgsrc-2020Q4:1.11.0.4 pkgsrc-2020Q4-base:1.11 pkgsrc-2020Q3:1.11.0.2 pkgsrc-2020Q3-base:1.11 pkgsrc-2020Q2:1.9.0.2 pkgsrc-2020Q2-base:1.9 pkgsrc-2020Q1:1.8.0.2 pkgsrc-2020Q1-base:1.8 pkgsrc-2019Q4:1.8.0.4 pkgsrc-2019Q4-base:1.8 pkgsrc-2019Q3:1.7.0.2 pkgsrc-2019Q3-base:1.7 pkgsrc-2019Q2:1.6.0.4 pkgsrc-2019Q2-base:1.6 pkgsrc-2019Q1:1.6.0.2 pkgsrc-2019Q1-base:1.6 pkgsrc-2018Q4:1.5.0.4 pkgsrc-2018Q4-base:1.5 pkgsrc-2018Q3:1.5.0.2 pkgsrc-2018Q3-base:1.5 pkgsrc-2018Q2:1.4.0.2 pkgsrc-2018Q2-base:1.4 pkgsrc-2018Q1:1.3.0.2 pkgsrc-2018Q1-base:1.3 pkgsrc-2017Q4:1.2.0.20 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.18 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.14 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.12 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.10 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.8 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.6 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.4 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.2 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.1.0.4 pkgsrc-2015Q3-base:1.1 pkgsrc-2015Q2:1.1.0.2 pkgsrc-2015Q2-base:1.1; locks; strict; comment @# @; 1.18 date 2024.01.23.22.14.45; author adam; state Exp; branches; next 1.17; commitid P3GdCBUtPFfXHCVE; 1.17 date 2023.11.19.17.02.50; author adam; state Exp; branches; next 1.16; commitid qxrpVORZMVPo4fNE; 1.16 date 2023.06.18.05.02.53; author adam; state Exp; branches; next 1.15; commitid mHNGsD5lWxk42otE; 1.15 date 2023.04.07.05.25.06; author adam; state Exp; branches; next 1.14; commitid CZhywVWUK2vnt8kE; 1.14 date 2022.09.27.18.12.47; author adam; state Exp; branches; next 1.13; commitid NlsfAUJrqLwjTwVD; 1.13 date 2021.10.26.10.18.49; author nia; state Exp; branches; next 1.12; commitid XMBRkrafc79x2jeD; 1.12 date 2021.10.07.13.43.30; author nia; state Exp; branches; next 1.11; commitid TK9Y8OXA04EYMSbD; 1.11 date 2020.07.09.08.36.34; author adam; state Exp; branches; next 1.10; commitid KQ67djeEwNpZJnfC; 1.10 date 2020.07.08.13.12.35; author adam; state Exp; branches; next 1.9; commitid mb5REQeAk07zihfC; 1.9 date 2020.05.23.07.03.42; author adam; state Exp; branches; next 1.8; commitid jQYXATRuTGrNJk9C; 1.8 date 2019.11.18.17.03.09; author adam; state Exp; branches; next 1.7; commitid 3BgWGyskHz204mLB; 1.7 date 2019.08.20.07.15.46; author adam; state Exp; branches; next 1.6; commitid 52PA3jNIoAdLHJzB; 1.6 date 2019.01.08.12.08.39; author adam; state Exp; branches; next 1.5; commitid fo23lFAHJfJKwY6B; 1.5 date 2018.08.15.19.00.49; author adam; state Exp; branches; next 1.4; commitid D02KBX6IVznjvfOA; 1.4 date 2018.04.14.08.29.24; author adam; state Exp; branches; next 1.3; commitid gBfAwM1SPTDQXnyA; 1.3 date 2018.02.08.19.54.19; author adam; state Exp; branches; next 1.2; commitid PDvL9sTj8FZqQ5qA; 1.2 date 2015.11.03.03.29.12; author agc; state Exp; branches; next 1.1; commitid XagoUgdES8g2ZAHy; 1.1 date 2015.04.25.10.40.49; author adam; state Exp; branches; next ; commitid K2mvC5fNn00bzXiy; desc @@ 1.18 log @py-pyobjc*: updated to 10.1 Version 10.1 Upgrade framework bindings for the macOS 14.2 SDK Make sure the install.py and develop.py scripts in the repository work when run out of tree. os.fspath(someURL) will not work with Cocoa URLs (NSURL, CFURLRef) that refer to local filesystem paths. TypeError will be raised for other URLs. This enables using regular Python filesystem APIs with URLs that refer to local filesystem paths. Fix compilation issue when building on macOS 13 or earlier Fix build error on ancient macOS versions where clang doesn’t support -flto=thin. Add a workaround for a crash in pyobjc-core when running the testsuite on macOS 10.14. Fix some issues found while running the testsuite on macOS 10.9 to macOS 13, instead of only testing on the latest macOS version. Most issues found where problems in the testsuite itself, but not all. Some of the changes skip tests on older macOS versions (10.12, 10.13 and 10.14) due to running into what appears to be crashing platform bugs. Fix dependencies between framework binding packages Fix build error with the current Python 3.13 alpha release (3.13a2). @ text @$NetBSD: distinfo,v 1.17 2023/11/19 17:02:50 adam Exp $ BLAKE2s (pyobjc-framework-AppleScriptObjC-10.1.tar.gz) = 1a2d78597d596d0b31ce7b52246e1e33d4f59ef08d193bf54f5b83b656e9d0d1 SHA512 (pyobjc-framework-AppleScriptObjC-10.1.tar.gz) = 867e7163304427bc91e5532aae0cd53abc7af172ac7c45f6984250e308e92b49f97eb5bb0da6a272a70019f9b7662c124da4cf2f7567a78293fd1630b40d8d23 Size (pyobjc-framework-AppleScriptObjC-10.1.tar.gz) = 11928 bytes @ 1.17 log @py-pyobjc*: updated to 10.0 Version 10.0 Update bindings for macOS 14 Symbols newly introduced in macOS 14 were added to the existing bindings, and the following new bindings were introduced: Cinematic MediaExtension SensitiveContentAnalysis Symbols The “IMServicePlugIn” bindings are no longer available The entire framework was deprecated in macOS 10.13 and removed in macOS 14. The bindings can not be build using the latest SDK, and had (at best) limited use. PyObjC 10 requires Python 3.8 and no longer supports Python 3.7 Removed all MAC_OS_X_VERSION* constants from objc. These constants are needed in practice (switch to objc.available() to check for platform availability), and caused unnecessary code churn. The value for objc.options.deprecation_warnings is now a string instead of an integer. Fix unintended incompatibility with pytest in PyObjCTools.TestSupport The lazy loading machinery by default no longer uses objc.ObjCLazyModule, but uses module level __dir__ and __getattr__ instead. The class objc.ObjCLazyModule is still available, but is deprecated As a side effect of this objc is no longer an attribute of framework binding packages (e.g Foundation.objc is no longer a valid attribute). Another side effect of this is that all attributes added by the import system are now correctly present in the packages for framework bindings. And a final side effect is that private symbols (prefixed with underscore) are no longer imported from dependencies of framework bindings (more closely matching the from dependency import * behaviour that the lazy importer emulates. Add attribute __framework_identifier__ to all framework bindings with the identifier of the corresponding system framework. Introduce objc.createFrameworkDirAndGetattr() to create module level __dir__ and __getattr__ for use by framework bindings. Tests now validate the bundle identifier value used in framework bindings. This resulted in a number of changes to framework bindings with incorrect bundle identifier values. This shouldn’t affect user code because the bundle loader falls back on the framework path when the identifier cannot be found. Avoid test failures in pyobjc-core when pyobjc-framework-Quartz is not installed. A number of classes can no longer be subclasses in Python because they are marked as non-subclassable in the macOS 14 SDK (either directly or as “subclassing is deprecated”: CKAllowedSharingOptions, CKAsset, CKContainer, CKDatabase, CKDatabaseNotification, CKDatabaseSubscription, CKFetchRecordZoneChangesConfiguration, CKNotification, CKNotificationID, CKNotificationInfo, CKOperationConfiguration, CKOperationGroup, CKQuery, CKQueryCursor, CKQueryNotification, CKQuerySubscription, CKRecord, CKRecordID, CKRecordZone, CKRecordZoneID, CKRecordZoneNotification, CKRecordZoneSubscription, CKReference, CKServerChangeToken, CKShare, CKShareMetadata, CKShareParticipant, CKSubscription, CKSyncEngine, CKSyncEngineAccountChangeEvent, CKSyncEngineConfiguration, CKSyncEngineDidFetchChangesEvent, CKSyncEngineDidFetchRecordZoneChangesEvent, CKSyncEngineDidSendChangesEvent, CKSyncEngineEvent, CKSyncEngineFailedRecordSave, CKSyncEngineFailedZoneSave, CKSyncEngineFetchChangesOptions, CKSyncEngineFetchedDatabaseChangesEvent, CKSyncEngineFetchedRecordDeletion, CKSyncEngineFetchedRecordZoneChangesEvent, CKSyncEngineFetchedZoneDeletion, CKSyncEnginePendingDatabaseChange, CKSyncEnginePendingRecordZoneChange, CKSyncEnginePendingZoneDelete, CKSyncEnginePendingZoneSave, CKSyncEngineRecordZoneChangeBatch, CKSyncEngineSendChangesContext, CKSyncEngineSendChangesOptions, CKSyncEngineSentDatabaseChangesEvent, CKSyncEngineSentRecordZoneChangesEvent, CKSyncEngineState, CKSyncEngineStateSerialization, CKSyncEngineStateUpdateEvent, CKSyncEngineWillFetchChangesEvent, CKSyncEngineWillFetchRecordZoneChangesEvent, CKSyncEngineWillSendChangesEvent, CKSystemSharingUIObserver, CKUserIdentity, CKUserIdentityLookupInfo. The encoding of a number of basic types changes, in particular those of CoreFoundation struct types and SIMD struct types. None of this should affect user code. objc.getClassList now has an optional positional argument to ignore classes with a name that aren’t identifiers. Some of the functionality in CoreFoundation was rewritten in Swift in macOS 14, with Swift subclasses of NSArray and NSDictionary. Those classes break an invariant of PyObjC: the superclass of the root of the Swift class hierarchy changes when the class is instantiated for the first time (from NSObject to the correct superclass). PyObjC 10 contains a workaround for this by ignoring these classes unless they are needed to create a proxy for an instance (FB12286520). Fix crash when the method signature retrieved from the Objective-C runtime contains the class name for a method returning id. Remove old 32-bit support in metadata override files. Restructure objc.simd: The matrix types are now named simd_float3x3 instead of matrix_float3x3, with the older name as an alias (to match older system headers). Fix crash when loading the libdispatch bindings on recent macOS versions (at least macOS 13, possibly earlier) dispatch.dispatch_source_t is renamed to dispatch.dispatch_source_type_t to match the type name in C code. Xcode 15 has a bug when using weak symbols and targeting older macOS versions. Switch to the old linker when detecting Xcode 15. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.16 2023/06/18 05:02:53 adam Exp $ d3 3 a5 3 BLAKE2s (pyobjc-framework-AppleScriptObjC-10.0.tar.gz) = 138e731194d94d0844ed924f9a035da6e068ccaa67b8baf47d2bea4350156f5e SHA512 (pyobjc-framework-AppleScriptObjC-10.0.tar.gz) = 4ad396d56a0230fa908b8d42f655d9d8a8b6d7341a1a484b589d3ff74baeb4590788ffe40021ba4dd555f1d5959d63a7206fa8b5f0237ebc1cd6f323512145a4 Size (pyobjc-framework-AppleScriptObjC-10.0.tar.gz) = 11931 bytes @ 1.16 log @py-pyobjc*: updated to 9.2 9.2 Version 9.2 Added warning objc.ObjCSuperWarning that is used to warn about classes that use argument-less super without binding that name to objc.super. Document that objc.super must be used instead of builtin.super when calling superclass methods in a Cocoa subclass. Add minimal pyproject.toml to all subprojects Fix crash in pyobjc-core when using Python 3.12a7. Added explicit tests for dealing with Objective-C categories that are loaded while using classes from Python. Fix the version of macOS where the SafariServices framework is present. Fixed some issues found by testing on a macOS 10.11 system Trying to implement a method with SIMD types as arguments or return value will now give a more useful error when the bridge does not support the signature. Fix incomplete metadata for CoreMediaIO.CMIOObjectSetPropertyData Fix incorrect metadata Removed Quartz.CGColorConversionInfoCreateFromListWithArguments. This function was already documented as unsupported, but was still present in the framework wrapper. Removed Quartz.CVPixelBufferCreateWithPlanarBytes. This function requires a manual binding, but was still present with a generic (and non-working) binding. Removed CoreMedia.CMBufferQueueCreate, CoreMedia.CMBufferQueueGetCallbacksForSampleBuffersSortedByOutputPTS, CoreMedia.CMBufferQueueGetCallbacksForUnsortedSampleBuffers, CoreMedia.CMVideoFormatDescriptionGetH264ParameterSetAtIndex, CoreMedia.CMVideoFormatDescriptionGetHVECParameterSetAtIndex, These functions require a manual binding, but were still present with a generic (and non-working) binding. Explicitly exclude definitions from CMIOHardwarePlugIn.h from the CoreMediaIO bindings. Added deref_result_pointer key to the metadata for a return value. Use this when a callable returns a pointer to a single value (for example CMAudioFormatDescriptionGetMostCompatibleFormat) Removed unsupported functions from the ApplicationServices bindings (not named individually due to the size of the list). Also fixed annotations for other ApplicationServices bindings. Add manual binding for CFNetwork.CFNetServiceBrowserCreate, CFNetwork.CFNetServiceSetClient, and CFNetwork.CFNetServiceMonitorCreate. Fix incompatibility with Python 3.12 beta 1. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.15 2023/04/07 05:25:06 adam Exp $ d3 3 a5 3 BLAKE2s (pyobjc-framework-AppleScriptObjC-9.2.tar.gz) = ff70cba923b250d88d89a849e2005f079160f08cd56e2ab89c22d8140b3d2760 SHA512 (pyobjc-framework-AppleScriptObjC-9.2.tar.gz) = 4d986a8d60bd47eab2af40404127133ba761b47598175b2de99b630a2e476584ad831e46f3d936af519a2083146e749bd4772749135b1bb2857b213fe955ea14 Size (pyobjc-framework-AppleScriptObjC-9.2.tar.gz) = 11502 bytes @ 1.15 log @py-pyobjc: updated to 9.0.1 Version 9.0.1 * Fix metadata for webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler: and webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler: in the WebKit bindings. * Reintroduce support for bridgesupport files that was dropped in 9.0. There are external users for this interface and the replacement used by PyObjC itself is not yet in a state where it can be used by other projects. Framework bindings were updated for the SDK included in Xcode 14.1 * Fix bad markup in overview of wrapped frameworks * Fix compile error with Python 3.12 Version 9.0 Support for macOS 13 (Xcode 14 beta 4) Updated framework bindings for macOS 13 The list below lists the frameworks that have API changes that affect the framework bindings. Added bindings for the following frameworks (all new in macOS 13): AVRouting BackgroundAssets ExtensionKit HealthKit MetalFX SafetyKit SharedWithYou SharedWithYouCore ThreadNetwork The definition of a number of basic structs has moved in the SDK for macOS 13 and PyObjC conforms to this change on all platforms. In particular: CGPoint, CGSize, CGVector, CGRect, CGAffineTransform and CGAffineTransformComponents are now defined in the CoreFoundation module. NSPoint, NSSize and NSRect are now aliases for the corresponding CG* types (instead of the other way around in previous versions of PyObjC). Both changes should require no changes to scripts, unless code relies on the particular __name__ of a type. The extension API (“pyobjc-api.h”) now has nullability annotations, which may lead to compilation errors or warnings when compiling 3th-party extensions using this API. The extension API (“pyobjc-api.h”) has a changed interface for creating method IMPs, because of this extensions for older versions of PyObjC cannot be used with PyObjC 9. * PyObjC 9.0 requires Python 3.7 or later * Remove support for BridgeSupport files The bridge itself hasn’t used these files for a long time, and system bridgesupport files are basically unusable. * Remove objc._setClassExtender This was an internal function that’s no longer used by PyObjC itself. * Remove -[OC_PythonNumber getValue:forType:] This method is never actually used by the system and is not part of the NSNumber interface (but possibly was in the past) * Removed bindings for the Message and ServerNotification frameworks. Both frameworks were removed in macOS 10.9 and hence cannot be used on a platform that’s still supported by PyObjC. * Removed the type attribute for ObjCPointer The typestr attribute contains the same value and has more consistent naming with the rest of PyObjC. * Quarrtz.CVPixelBufferCreateWithBytes now conforms to the PyObjC standard for returning values: it returns a tuple of two values, the C return value and the value return through pixelBufferOut. In older versions the return value was only the value return through pixelBufferOut. 464: The encodings objc._C_NSBOOL and objc._C_BOOL are now treated exactly the same as the types BOOL and bool have the same size and representation on arm64 and x86_64. * Add support for SIMD types in APIs (types such as vector_float3) The python representation of these types are types with the same name in defined in objc.simd. Because the FFI library used by PyObjC (libffi) does not support these types the bridge only supports the method signatures found in system frameworks, other signatures will result in exceptions at runtime. The relevant libffi issue for this is 408. But note that even if that issue were to be fixed PyObjC likely won’t use SIMD support in libffi until that’s merged in the system version on macOS. Because of the previous change APIs that have a SIMD type are now callable from Python. Changes due to generic implementation for SIMD types: SpriteKit.SK3DNode.projectPoint_: The result is now objc.simd.vector_float3 instead of a tuple SpriteKit.SK3DNode.unprojectPoint_: The result is now objc.simd.vector_float3 instead of a tuple SpriteKit.SKFieldNode.direction: The result is now objc.simd.vector_float3 instead of a tuple SpriteKit.SKPhysicsWorld.sampleFieldsAt_: The result is now objc.simd.vector_float3 instead of a tuple Still not supported (requires some more infrastructure): SpriteKit.SKFieldNode.customFieldWithEvaluationBlock_ The registered metadata can now contain a key full_signature with the full encoding type signature for a method. This is used to replace the encoding extracted from the Objective-C runtime when one or more types have an empty encoding in the Objective-C runtime (such as the SIMD types mentioned earlier) The Objective-C proxy for Python methods that require a custom helper (instead of using libffi) now use imp_implementationWithBlock. * For a number of classes in AVFoundation the system actually uses instances from a parallel class hierarchy with _Tundra as a suffix of the class name. Updated the metadata generator to automatically register the same metadata updates for these classes as for the original classes. * Fix typos in CoreMedioIO metadata for CoreFoundation types * Added two new assertions to PyObjCTools.TestSupport.TestCase: assertArgIsIDLike assertResultIsIDLike These assert that the type of an argument or return value is a Objective-C or CoreFoundation object, or a pointer to one. Fix internal error when an object that cannot be used in a boolean context is used for an ObjC argument that expects a bool or BOOL value. * Fix incompatibility with Nuitka. Earlier version of PyObjC failed when compiled using Nuitka, this version does work when using Nuitka 1.1.6 or later. Limitations: The automatic calculation of the method signature in selector() assumes that methods return id for Nuitka compiled code. That should not be a problem in practice. As a side effect of this builtin functions are accepted as the callable for a selector, even when not specifying a signature (e.g. objc.selector(dir) now works). Fixed crash in objc.selector due to uninitialized memory. Move helpers for NSInvocation from pyobjc-framework-Cocoa to pyobjc-core. * Don’t use static buffer during creation of “native” selector objects This can avoid an objc.error exception when introspecting existing Cocoa classes. * Revert change that made it impossible to replace a method with a property. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.14 2022/09/27 18:12:47 adam Exp $ d3 3 a5 3 BLAKE2s (pyobjc-framework-AppleScriptObjC-9.0.1.tar.gz) = 9e5554a42293a3cbfb9c59cc34a128b4cd494f881564a92be9bc1ad2294d0d8a SHA512 (pyobjc-framework-AppleScriptObjC-9.0.1.tar.gz) = 018a83839ce425aabc169fad43eeabc14d87dd8364b9b0eb4eaafcc631228698681516c0630d44b3b8a991f4d606d93a84e6a8d1125bd0316458e490742a2d3d Size (pyobjc-framework-AppleScriptObjC-9.0.1.tar.gz) = 11313 bytes @ 1.14 log @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. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.13 2021/10/26 10:18:49 nia Exp $ d3 3 a5 3 BLAKE2s (pyobjc-framework-AppleScriptObjC-8.5.1.tar.gz) = 6e37b0bc2f2299256e4aa00a459392f08e37d0c7863a352e778999424edd74a4 SHA512 (pyobjc-framework-AppleScriptObjC-8.5.1.tar.gz) = 162a641e25da8c94d63469d69eb9f1cda90d0e6d5ff7fd26f5861cf61dfd4b5927367814488e1fa1323c84ba3999b355182861b0e0ab8dbec5ce2b60124ddfb6 Size (pyobjc-framework-AppleScriptObjC-8.5.1.tar.gz) = 11323 bytes @ 1.13 log @archivers: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes Could not be committed due to merge conflict: devel/py-traitlets/distinfo The following distfiles were unfetchable (note: some may be only fetched conditionally): ./devel/pvs/distinfo pvs-3.2-solaris.tgz ./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.12 2021/10/07 13:43:30 nia Exp $ d3 3 a5 3 BLAKE2s (pyobjc-framework-AppleScriptObjC-6.2.2.tar.gz) = 9f57fbb92516928f2b66669ed05a407bc537589cca9fecb8fc2a0f204232f380 SHA512 (pyobjc-framework-AppleScriptObjC-6.2.2.tar.gz) = fa5d304901ace095fa8bde65a4de50833766ed1be618a7275dd377f62c1e47f528bc4e6c8ce0f54be83561294b9f126c8a8e0a3c435f519b44922c2d034362e4 Size (pyobjc-framework-AppleScriptObjC-6.2.2.tar.gz) = 10454 bytes @ 1.12 log @devel: Remove SHA1 hashes for distfiles @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.11 2020/07/09 08:36:34 adam Exp $ d3 1 a3 1 RMD160 (pyobjc-framework-AppleScriptObjC-6.2.2.tar.gz) = 4a8fee22c71938d11e280c653464dd7fcc67b9a6 @ 1.11 log @py-pyobjc: updated to 6.2.2 Version 6.2.2 Build for the Metal bindings failed on macOS 10.14 Fix incompatibility with macOS 11 in framework loader Another attempt at giving a nice error message when trying to install on platforms other than macOS. The classifiers now correctly identify supported Python versions @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.10 2020/07/08 13:12:35 adam Exp $ a2 1 SHA1 (pyobjc-framework-AppleScriptObjC-6.2.2.tar.gz) = 62319c54ccf1d25a24191216128a2e66e9997ede @ 1.10 log @py-pyobjc: updated to 6.2.1 Version 6.2.1 * Ensure package ‘pyobjc’ won’t try to build the PubSub bindings on macOS 10.15 * Minor tweaks to build and pass tests on macOS 10.14 with the latest Xcode that can be installed on that version of macOS. * Fix SystemError in block edge case * PyObjC raised a SystemError when converting a callable into an ObjC block when the callable is a bound method without positional arguments. * Fix crash on catalina caused by writing to read-only memory. * Make sure the SDK detection works when the version is not in the SDK name * There were no SDK updates in Xcode 11.5 and Xcode 11.6 (beta) @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.9 2020/05/23 07:03:42 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-6.2.1.tar.gz) = ee826938b8927bc5880cacdede8dc152364024b4 RMD160 (pyobjc-framework-AppleScriptObjC-6.2.1.tar.gz) = a4865c5e5fd9e8b927bba9919a21d585b72833a8 SHA512 (pyobjc-framework-AppleScriptObjC-6.2.1.tar.gz) = ce8747bb8a6ec6367c3d43e436a3771299e6c1d9cdbcf0b5a41e0d5c8ce4c81bcbd4ceb5a9f2017669bc88456ef8685fdc73d39c80e321485c02051d7d464df0 Size (pyobjc-framework-AppleScriptObjC-6.2.1.tar.gz) = 10416 bytes @ 1.9 log @py-pyobjc: updated to 6.2 Version 6.2 The project has moved from Bitbucket to Github Remove most remnants of Python 2 support Clean up code quality issues found using flake8 Add pre-commit hook to run black on all Python code. Fix protocol conformance testing when explicitly implementing a protocol Before this bugfix a class explicitly conforming to a protocol could not implement any method that wasn’t declared in the protocol, the bridge would erroneously raise an exception when checking the additional method. Issue reported by Georg Seifert. Fix Python 3 issues in PyObjCTools.Conversion Reported by vinolin asokan. PyObjCTools.Conversio.propertyListFromPythonCollection didn’t recursively convert members of lists and tuples. PyObjCTools.Conversio.propertyListFromPythonCollection and PyObjCTools.Conversio.pythonCollectionFromPropertyList now support sets. Update metadata for Xcode 11.4 (beta 2) Added bindings for framework AutomaticAssessmentConfiguration.framework introduced in macOS 10.15.4 In some cases the compiler uses the type encoding “^{NSObject=#}” instead of “@@”. Reported by Georg Seifert. Added bindings for the Metal framework (new in macOS 10.11) Most framework bindings now use the limited ABI for the included C extensions, reducing the number of wheels that are needed. The exception are the bindings for Cocoa, Quartz and libdispatch, those use functionality not available in the limited ABI. The bridge itself (pyobjc-core) still uses the full CPython API. The CoreAudio bindings also don’t use the limited ABI for now, those need more work to work with that ABI. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.8 2019/11/18 17:03:09 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-6.2.tar.gz) = 5d69f043e959aa1100ce5398b9d1d3121ea63ffb RMD160 (pyobjc-framework-AppleScriptObjC-6.2.tar.gz) = 9cd92e90ab1719be842440c8ce4cf35caf2e9803 SHA512 (pyobjc-framework-AppleScriptObjC-6.2.tar.gz) = f3a71d43647a38629d9dda9a392e4056e323bebaf46eb2788543d7213824e3d1eecd137de9df802b4d5a49d09cfd85e6a4864fe980a3e353e1b2b7fd4f83c875 Size (pyobjc-framework-AppleScriptObjC-6.2.tar.gz) = 10259 bytes @ 1.8 log @py-pyobjc: updated to 6.1 Version 6.1 Updated for the macOS 10.15.1 SDK (Xcode 11.2) Fix reference counting in -[OC_PythonData length], which resulted in use-after-free. Fix problems found in pyobjc-core by the clang static analyser Version 6.0.1 Remove debug print accidently left in production Surpress “-Wunguarded-availability” warnings in the extension AppKit._inlines Version 6.0 Removed Python 2 support from the C extension in pyobjc-core Reformatted code in pyobjc-core: - Use “black” for Python code - Use “clang-format” for Objective-C code Updated bindings for macOS 10.15 (Xcode 11.0) The userspace driver frameworks introduced in macOS 10.15 (DriverKit and related frameworks) will not be exposed through PyObjC. Please let me know if you have a good use case for using these frameworks with Python. Add new framework wrappers for all other new frameworks in macOS 10.15: AuthenticationServices CoreHaptics CoreMotion DeviceCheck ExecutionPolicy FileProvider FileProviderUI LinkPresentation OSLog PencilKit PushKit QuickLookThumbnailing Speech SoundAnalysis SystemExtensions Add new framework wrappers for a number of older frameworks: MetalKit (new in macOS 10.11) Fix crash when creating NSData objects on macOS 10.15 @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.7 2019/08/20 07:15:46 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-6.1.tar.gz) = 42d22ac14a3b7f93d9132890c441998abb5fcd6c RMD160 (pyobjc-framework-AppleScriptObjC-6.1.tar.gz) = 8813c45a7b7508c35b92b13852ed230269ca7a3b SHA512 (pyobjc-framework-AppleScriptObjC-6.1.tar.gz) = 884b5c65a81709f57dec5aa4ddc1b7ba5b8c9d38a4061298b64ffeab958e9864971c362023a00ea63e627aa351271bb29dd2510097c915996101eecff26a3c96 Size (pyobjc-framework-AppleScriptObjC-6.1.tar.gz) = 10420 bytes @ 1.7 log @py-pyobjc: updated to 5.2 Version 5.2 * Updated metadata for Xcode 10.2 * objc.registerStructAlias no longer emits a deprecation warning because it is still used by the framework wrappers. The function is still deprecated though, the deprecation will reappear once the metadata has been updatd. * The core bridge now uses PyDict_GetItemWithError(), which may result in exceptions being raised that were previously swallowed. * Partially switch to the new buffer API instead of the older Python 2 buffer API. The new implementation is more correct, but may keep Python objects alive longer than the previous implementation, and also affects buffer related functionality of Python objects. In particular, calling [someData bytes] on a Python object keeps the Py_buffer alive until the next flush of the autoreleasepool. * Fix incorrect metadata for the callback argument to -[AVCaptureStillImageOutput captureStillImageAsynchronouslyFromConnection:completionHandler:]. * Add bindings to the “PrintCore” APIs from the ApplicationServices framework. Python 2: UserDict.UserDict instances are now bridged to instances of a subclass of NSDictionary. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.6 2019/01/08 12:08:39 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-5.2.tar.gz) = fad3298a3e061d641cf1dc9cc2a14d8319446236 RMD160 (pyobjc-framework-AppleScriptObjC-5.2.tar.gz) = c5d4c230bf33bebba003511aa4002d88ca504cb7 SHA512 (pyobjc-framework-AppleScriptObjC-5.2.tar.gz) = 413998f316fa231e2dd4958b5a041ef8ed831b31851af7a882feee0490c44aec45e2a5f5d7ffa0bb790cfd2dca13bdffadbb38474758b98fb0d6d2aae0585655 Size (pyobjc-framework-AppleScriptObjC-5.2.tar.gz) = 9498 bytes @ 1.6 log @py-pyobjc: updated to 5.1.2 Version 5.1.2 Fix compile error on macOS 10.9 or earlier Calling completion handler failed due to incomplete runtime info PyObjC’s metadata system didn’t automaticly set the call signature for blocks passed into a method implemented in Python. This causes problems when the ObjC or Swift block does not have signature information in the ObjC/blocks runtime. Use MAP_JIT when allocating memory for the executable stubs for Python methods. With the “restricted” runtime you’ll have to add the “com.apple.security.cs.allow-jit” entitlement to use this flag, in earlier versions you’d have to use a different entitlement: “com.apple.security.cs.allow-unsigned-executable-memory”. The MAP_JIT flag is only used on macOS 10.14 or later. Ensure that PyObjC can be built using /usr/bin/python on macOS 10.14 This failed due the problems with header files in the SDK included with Xcode 10. Version 5.1.1 Update metadata for Xcode 10.1 Version 5.1 Xcode 10 “GM” contains one difference from the last beta: the constant MLComputeUnitsCPUAndGPU in the CoreML bindings. Add a proxy for C’s “FILE*” type on Python 3. This is not necessary on Python 2 because the default IO stack on Python 2 already uses FILE* internally. This proxy type is very minimal and shouldn’t not be used for general I/O. Bindings are up-to-date w.r.t. Xcode 10.1 (beta) Updated the support code for framework wrappers to be able to emit deprecation warnings on the first import of a deprecated constants (functions and methods will only raise a deprecation warning when called). This is just an infrastructure change, the actual framework bindings do not yet contain the information used to emit deprecation warnings. Add metadata for deprecation warnings to the “Contacts” framework Import ABCs from collections.abc instead of collections because the latter is deprecated. Instances of most builtin value types and sequences (int, float, str, unicode, tuple, list, set, frozenset and dict) can now be written to archives that require secureCoding. Version 5.0 Version 5.0 of PyObjC primarily adds support for macOS 10.14 (mojave), and also adds support for a couple of older frameworks that weren’t supported before. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.5 2018/08/15 19:00:49 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-5.1.2.tar.gz) = 55061f2211ba0a8a08274d1df30bb87b6461421c RMD160 (pyobjc-framework-AppleScriptObjC-5.1.2.tar.gz) = 5bebca9badf02171e88ce45c56474839c13e6724 SHA512 (pyobjc-framework-AppleScriptObjC-5.1.2.tar.gz) = 6d3ab801fa32f92e0f3f422d40ae32c6ef79b2dadb75a7eb71345268f45a5fedecefb5a3bb0963a318339dab4a89dd1ce7c8a0b687656aadcc301b29c6caa322 Size (pyobjc-framework-AppleScriptObjC-5.1.2.tar.gz) = 9482 bytes @ 1.5 log @py-pyobjc: updated to 4.2.2 Version 4.2.2: Update metadata for Xcode 9.4 The binary release now includes wheels for both variants for the Python.org installer for python 3.6 and 3.7: 32- and 64-bit for macOS 10.6 or later, and 64-bit only for macOS 10.9 or later. Ensure the context manager for NSAnimationContext defined in PyObjCTools.AppCategories actually works. Fix convenience wrappers for Foundation.NSCache. Fix convenience wrappers for Foundation.NSHashTable. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.4 2018/04/14 08:29:24 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-4.2.2.tar.gz) = 3282927cc52a3a7a4885026270a2df44107ea4dc RMD160 (pyobjc-framework-AppleScriptObjC-4.2.2.tar.gz) = 515f7e2933420013c95ea682d3dcf8458073cd8d SHA512 (pyobjc-framework-AppleScriptObjC-4.2.2.tar.gz) = a0e5a1bd8b89c44c860d04668413ef1a9b02d19b9a26dbc5870c849f79cc1e26edcb01e1da9092e7eff9824c78c1803eb193912a070b2b8a2ac37e0232dc156f Size (pyobjc-framework-AppleScriptObjC-4.2.2.tar.gz) = 9348 bytes @ 1.4 log @py-pyobjc: updated to 4.2.1 4.2.1: Bug fixes and improvements. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.3 2018/02/08 19:54:19 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-4.2.1.tar.gz) = 0e5ce96a0fb2ac833619bc9b534f794c50e1b6c8 RMD160 (pyobjc-framework-AppleScriptObjC-4.2.1.tar.gz) = a19a878deccd15f275a69bab6dafd5b609836422 SHA512 (pyobjc-framework-AppleScriptObjC-4.2.1.tar.gz) = a110ebca8668679609359922e645201c5dde192c8c6cec99b6256af383f0e4ad232ebbfb92d76bfe155e51f017287c97842e306f7707a8782657bf3066af7c84 Size (pyobjc-framework-AppleScriptObjC-4.2.1.tar.gz) = 9348 bytes @ 1.3 log @py-pyobjc: updated to 4.1 Version 4.1: Protection agains buffer overflow and negative indexes in __getitem__ and __setitem__ for objc.varlist instances. Fix incorrect metadata for +[NSEvent addLocalMonitorForEventsMatchingMask:handler:] Fix incorrect and misleading error message in the exception that is raised when return a value from a block that should not return a value. Issue 223: Fix hard crash when executing help(Cocoa) Fetching the help for PyObjC framework wrappers isn’t very useful due to the sheer size of the output (4.5 million lines of output for help(Cocoa) at the moment), but shouldn’t cause a hard crash of the interpreter. Issue 218: Explictly cause an ImportError when reloading `objc._objc` Reloading the PyObjC core extension now raises an ImportError because this cannot work and used to raise a rather vague error. Updated metadata for Xcode 9.2 Added missing `MAC_OS_X_VERSION_*` constants Fix memory error in struct wrappers which resulted in a use-after-free error in the initializer for structs. Add bindings for frameworks Security, SecurityFoundation and and SecurityInterface. The bindings for the Security framework don’t expose a number of older APIs that were deprecated in macOS 10.7. Add bindings to libdispatch. These bindings require macOS 10.8 or later, libdispatch was available earlier but macOS 10.8 changed the API in such a way that wrapping became a lot easier. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.2 2015/11/03 03:29:12 agc Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-4.1.tar.gz) = 0cafc58df85afbdf1d82f5dc912c5797fcc445ec RMD160 (pyobjc-framework-AppleScriptObjC-4.1.tar.gz) = cc085e37f7a5d2c668c97669158ffb5804081dfa SHA512 (pyobjc-framework-AppleScriptObjC-4.1.tar.gz) = dc2236ac2b855b4f1b7906a0a7c042360868c93bd43fdd35caa6ef5d782d0cb8b04d6e5e533d048e4553d78971228789c38bdd3793eca36e0e868d3f033961d2 Size (pyobjc-framework-AppleScriptObjC-4.1.tar.gz) = 9058 bytes @ 1.2 log @Add SHA512 digests for distfiles for devel category Issues found with existing distfiles: distfiles/eclipse-sourceBuild-srcIncluded-3.0.1.zip distfiles/fortran-utils-1.1.tar.gz distfiles/ivykis-0.39.tar.gz distfiles/enum-1.11.tar.gz distfiles/pvs-3.2-libraries.tgz distfiles/pvs-3.2-linux.tgz distfiles/pvs-3.2-solaris.tgz distfiles/pvs-3.2-system.tgz No changes made to these distinfo files. Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail. @ text @d1 1 a1 1 $NetBSD: distinfo,v 1.1 2015/04/25 10:40:49 adam Exp $ d3 4 a6 4 SHA1 (pyobjc-framework-AppleScriptObjC-3.0.4.tar.gz) = 0540a720e6f7c2bede683ddb4e8b7c3ff3d51409 RMD160 (pyobjc-framework-AppleScriptObjC-3.0.4.tar.gz) = 0e4c648200a49e72979643857f44a697b2082d60 SHA512 (pyobjc-framework-AppleScriptObjC-3.0.4.tar.gz) = 70b8da5a73b793ebf7a82fd9b66444ab3cdf2af8c70cc0fc392f23430d52f2362e7da0fb37b3f3244efb5108751803bb5e3ce44f146192f8891b2c0f8561792f Size (pyobjc-framework-AppleScriptObjC-3.0.4.tar.gz) = 8274 bytes @ 1.1 log @The PyObjC project aims to provide a bridge between the Python and Objective-C programming languages. The bridge is intended to be fully bidirectional, allowing the Python programmer to take full advantage of the power provided by various Objective-C based toolkits and the Objective-C programmer transparent access to Python based functionality. @ text @d1 1 a1 1 $NetBSD$ d5 1 @