[vlc-commits] contrib/sparkle: fix compilation on Snow Leopard

Felix Paul Kühne git at videolan.org
Fri Jan 31 13:43:42 CET 2014


vlc/vlc-2.1 | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Fri Jan 31 13:32:15 2014 +0100| [75c3652601e5f9603361d775ce3bcab3e009afd6] | committer: Felix Paul Kühne

contrib/sparkle: fix compilation on Snow Leopard

No functional changes

Manual backport of 9f4a5e4dbd0fc47622161d2c2a7ef15cf6812cec

> http://git.videolan.org/gitweb.cgi/vlc/vlc-2.1.git/?a=commit;h=75c3652601e5f9603361d775ce3bcab3e009afd6
---

 contrib/src/sparkle/rules.mak                      |    1 +
 .../sparkle-fix-compilation-on-snowleopard.patch   |   79 ++++++++++++++++++++
 2 files changed, 80 insertions(+)

diff --git a/contrib/src/sparkle/rules.mak b/contrib/src/sparkle/rules.mak
index a5d4d1d..516dd61 100644
--- a/contrib/src/sparkle/rules.mak
+++ b/contrib/src/sparkle/rules.mak
@@ -18,6 +18,7 @@ $(TARBALLS)/sparkle-git.tar.xz:
 sparkle: sparkle-git.tar.xz .sum-sparkle
 	$(UNPACK)
 	$(APPLY) $(SRC)/sparkle/sparkle-fix-formatstring.patch
+	$(APPLY) $(SRC)/sparkle/sparkle-fix-compilation-on-snowleopard.patch
 	$(MOVE)
 
 .sparkle: sparkle
diff --git a/contrib/src/sparkle/sparkle-fix-compilation-on-snowleopard.patch b/contrib/src/sparkle/sparkle-fix-compilation-on-snowleopard.patch
new file mode 100644
index 0000000..ceefab6
--- /dev/null
+++ b/contrib/src/sparkle/sparkle-fix-compilation-on-snowleopard.patch
@@ -0,0 +1,79 @@
+diff -ru sparkle/SUAppcast.m sparkle-fixed/SUAppcast.m
+--- sparkle/SUAppcast.m	2013-12-09 15:23:42.000000000 +0100
++++ sparkle-fixed/SUAppcast.m	2014-01-31 13:23:11.000000000 +0100
+@@ -15,6 +15,12 @@
+ #import "SUConstants.h"
+ #import "SULog.h"
+ 
++#ifndef MAC_OS_X_VERSION_10_7
++enum {
++    NSXMLNodeLoadExternalEntitiesSameOriginOnly = 1UL << 15
++};
++#endif
++
+ @interface NSXMLElement (SUAppcastExtensions)
+ - (NSDictionary *)attributesAsDictionary;
+ @end
+@@ -32,7 +38,7 @@
+ }
+ @end
+ 
+- at interface SUAppcast () <NSURLDownloadDelegate>
++ at interface SUAppcast () // implicit NSURLDownloadDelegate
+ - (void)reportError:(NSError *)error;
+ - (NSXMLNode *)bestNodeInNodes:(NSArray *)nodes;
+ @end
+@@ -95,7 +101,7 @@
+ 	if (downloadFilename)
+ 	{
+         NSUInteger options = 0;
+-        if (NSAppKitVersionNumber < NSAppKitVersionNumber10_7) {
++        if (NSAppKitVersionNumber < 1115 && NSAppKitVersionNumber > 1038) { // Snow Leopard
+             // In order to avoid including external entities when parsing the appcast (a potential security vulnerability; see https://github.com/andymatuschak/Sparkle/issues/169), we ask NSXMLDocument to "tidy" the XML first. This happens to remove these external entities; it wouldn't be a future-proof approach, but it worked in these historical versions of OS X, and we have a more rigorous approach for 10.7+.
+             options = NSXMLDocumentTidyXML;
+         } else {
+diff -ru sparkle/SUBasicUpdateDriver.m sparkle-fixed/SUBasicUpdateDriver.m
+--- sparkle/SUBasicUpdateDriver.m	2013-12-09 15:23:42.000000000 +0100
++++ sparkle-fixed/SUBasicUpdateDriver.m	2014-01-31 13:23:36.000000000 +0100
+@@ -21,7 +21,7 @@
+ #import "SUCodeSigningVerifier.h"
+ #import "SUUpdater_Private.h"
+ 
+- at interface SUBasicUpdateDriver () <NSURLDownloadDelegate>; @end
++ at interface SUBasicUpdateDriver (); @end // implicit NSURLDownloadDelegate
+ 
+ 
+ @implementation SUBasicUpdateDriver
+diff -ru sparkle/SUDiskImageUnarchiver.m sparkle-fixed/SUDiskImageUnarchiver.m
+--- sparkle/SUDiskImageUnarchiver.m	2013-12-09 15:23:42.000000000 +0100
++++ sparkle-fixed/SUDiskImageUnarchiver.m	2014-01-31 13:25:58.000000000 +0100
+@@ -12,6 +12,13 @@
+ #import "SULog.h"
+ #import <CoreServices/CoreServices.h>
+ 
++ at interface SUDiskImageUnarchiver ()
++- (void)extractDMGWithPassword:(NSString *)password;
++- (BOOL)isEncrypted:(NSData*)resultData;
++- (void)continueWithPassword:(NSString *)password;
++- (void)requestPasswordFromDelegate;
++ at end
++
+ @implementation SUDiskImageUnarchiver
+ 
+ + (BOOL)canUnarchivePath:(NSString *)path
+diff -ru sparkle/SUPasswordPrompt.m sparkle-fixed/SUPasswordPrompt.m
+--- sparkle/SUPasswordPrompt.m	2013-12-09 15:23:42.000000000 +0100
++++ sparkle-fixed/SUPasswordPrompt.m	2014-01-31 13:27:58.000000000 +0100
+@@ -8,6 +8,12 @@
+ 
+ #import "SUPasswordPrompt.h"
+ 
++ at interface SUPasswordPrompt ()
++- (void)setName:(NSString*)name;
++- (void)setIcon:(NSImage*)icon;
++- (NSImage *)icon;
++- (void)setPassword:(NSString*)password;
++ at end
+ 
+ @implementation SUPasswordPrompt
+ 



More information about the vlc-commits mailing list