diff --git a/ChangeLog b/ChangeLog index a0dcea743..60480b462 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,257 @@ +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSFileManager.h + * Source/NSFileManager.m: + Implement a method for getting attribytes of a file system path. Reuse + the implementation of -fileSystemAttributesAtPath: for this purpose but + export the last system errors to the caller. Make + -fileSystemAttributesAtPath: use the new implementation, without + exposing error info to the caller. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/Foundation.h + * Headers/Foundation/NSFileCoordinator.h + * Headers/Foundation/NSFilePresenter.h + * Headers/Foundation/NSFileVersion.h + * Headers/Foundation/NSURLSession.h + * Source/GNUmakefile + * Source/NSFileCoordinator.m + * Source/NSFileVersion.m + * Source/NSURLSession.m: + Generate class stubs (without any method definition) for + NSFileCoordinator, NSFilePresenter, NSFileVersion and NSURLSession. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURLConnection.h: + Currently, NSURLConnectionDelegate methods were defined as a category of + an NSObject. The same definitions were copied over to a new + NSURLConnectionDelegate protocol, introduced in OSX 10.7. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURLCredential.h + * Source/NSURLCredential.m: + Declare the NSURLCredentialPersistenceSynchronizable enumeration case to + NSURLCredential persistence options. Since GNUstep does not support + iCloud synchronization for credentials, this case will default to + NSURLCredentialPersistencePermanent. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURLProtectionSpace.h + * Source/GSHTTPAuthentication.m + * Source/NSURLProtectionSpace.m: + Improve handling of NSURL authentication methods. Make "HTMLForm" + authentication a no-op as it should be instead of making it fall back to + Basic authentication. + + Add stubs for NTLM and Negotiate IIS methods. They should be easily + implementable given the current framework for authentication methods. + + Add stubs for ClientCertificate and ServerTrust authentication methods. + A blocker for supporting them is the lack of a Security.framework + implementation (since they rely on SecTrustRef). They would also require + additions to the current SSL handling code for GNUstep https requests. + Also stub the -distinguishedNames property of NSURLProtectionSpace, + which also deals with certificate-related authentication methods. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURLRequest.h: + Add new values for the NSURLCachePolicy enum. Although + NSURLRequestReloadIgnoringLocalAndRemoteCacheData and + NSURLRequestReloadRevalidatingCacheData have been left unimplemented, + the same applies for the reference platform, so not supporting it does + not break API compatibility. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSZone.h: + Implement NSMakeCollectable(), an interface which makes CoreFoundation + objects eligible for garbage collection. + + Since garbage collection is a totally deprecated API, its implementation + is a no-op, which may cause objects that rely on it to leak. However, it + doesn't look like supporting actual garbage collection at this point + will bring a gain to the project -- and having this function available + will avoid breaking builds that rely on it. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSProcessInfo.h + * Source/NSProcessInfo.m: + Add stubs for sudden termination APIs and for application activity + management methods. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSProcessInfo.h + * Source/NSProcessInfo.m + * Tests/base/NSProcessInfo/general.m: + Introduce the systemUptime property to NSProcessInfo, which can compute + platform-independently what is the uptime of the system. + +2017-06-29 Daniel Ferreira + + * Source/NSHTTPCookie.m + * Tests/base/NSHTTPCookie/basic.m: + Fix a bug in NSHTTPCookie's Set-Cookie parser where it would fail to + parse more than one key-only cookie (such as "Secure; HTTPOnly;") in a + header. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSHTTPCookie.h + * Source/NSHTTPCookie.m + * Tests/base/NSHTTPCookie/basic.m: + Add support for parsing HTTPOnly cookies (those that cannot be accessed + by clients). Implement -[NSHTTPCookie isHTTPOnly]. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSHTTPCookie.h: + Make -[NSHTTPCookie isSessionOnly] and -[NSHTTPCookie isSecure] methods + become properties if possible, so that they can be also queried as + `cookie.sessionOnly` and `cookie.secure`. This increases compatibility + with applications that rely on this notation. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSFileManager.h + * Source/NSFileManager.m: + Create NSFileManagerDelegate, a more modern manner to verify whether to + proceed a file operation after an error or whether an operation should + actually be performed by NSFileManager. + + No functionality using the delegate is yet implemented. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURL.h + * Source/NSURL.m + * Source/externs.m: + Create an unimplemented stub for NSURL's -getResourceValue:... method, + which can gather a numerous set of information about a URL. + + Define the constants which are passed into -getResourceValue:... for + requiring information so that a build that relies on this method does + not break. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURL.h: + Create the NSURL.fileURL property to increase compatibility with + applications that rely on this. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURL.h + * Source/NSURL.m: + The OSX filesystem implements "aliases", a species of symlink which + tracks its source if it was moved. Create stubs for the NSURL functions + which handle these aliases. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSURL.h + * Source/NSURL.m: + Implement +[NSURL fileURLWithPath:isDirectory:], a class method added in + OSX 10.5, which was missing from the implementation. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSCoder.h + * Headers/Foundation/NSObject.h + * Source/NSCoder.m + * Source/NSKeyedUnarchiver.m: + Implement stubs for NSSecureCoding which do not break projects that rely + on it. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSDate.h + * Source/NSDate.m: + Declare a system clock change notification. Base still does not emit + this notification, but this allows applications that wait for it not to + have their build broken. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSObjCRuntime.h: + Create the NS_ROOT_CLASS macro, a wrapper around the objc_root_class + compiler attribute. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSObjCRuntime.h: + Make NS_AVAILABLE and NS_CLASS_AVAILABLE macros no-ops so that their + absence does not break projects that rely on it. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSCalendar.h: + Update NSCalendarUnit definitions with a newer specification from Cocoa. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSCalendar.h: + Add the NSCalendarOptions enum to NSCalendar for compatibility purposes. + While NSCalendar does not yet know how to handle them, it will not + generate build errors in projects that attempt to use them. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSCalendar.h + * Source/NSCalendar.m + * Source/NSLocale.m: + Add new calendar identifier constants to NSCalendar, to add + compatibility for newer OSX applications. Some identifiers do not hold + parity with the older equivalents and have been left unimplemented, with + the gregorian calendar as a fallback. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/NSGeometry.h + * Source/NSGeometry.m + * Tests/base/Functions/NSGeometry1.m: + Create the NSEdgeInsets struct in NSGeometry, introduced in OSX 10.7. + Add helper functions for creating these insets. + + This struct is not used in Base. Rather, it is used as part of newer + APIs in GUI. + +2017-06-29 Daniel Ferreira + + * Headers/Foundation/FoundationErrors.h: + Create a no-file-exists error to the FoundationErrors enums. No function + is yet implemented to throw this error, but it has been added for + compatibility with applications that handle it. + +2017-06-29 Daniel Ferreira + + * Headers/GNUstepBase/GSVersionMacros.h: + To keep compatibility with compilers prior to Objective-C 2.0 support, + added in the GCC 4.6 series, we are unable to always declare @property + attributes in classes. However, compatibility with dot-syntax + applications require us to define properties if we can. + + We already had some checks for the GS_HAS_DECLARED_PROPERTIES macro to + see whether we could or could not declare properties (or whether we + should fall back to manual getter/setter defining). However, it seems + this macro never got defined. + + This commit adds this macro, checking whether we possess either GCC >= + 4.6 or Clang. + +2017-06-29 Daniel Ferreira + + * .gitignore: + Create a .gitignore file to ease Base development using the Git version + control system. This stops object files, automake products and test + files from being accidentally inserted into the tree. + 2017-06-21 Richard Frith-Macdonald * Source/NSDistributedLock.m: Revert recent changes to use O/S