From http://www.jwz.org/xscreensaver/xscreensaver-5.26.tar.gz
authorZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 30 May 2014 16:16:36 +0000 (12:16 -0400)
committerZygo Blaxell <zblaxell@faye.furryterror.org>
Fri, 30 May 2014 16:16:45 +0000 (12:16 -0400)
-rw-r--r-- 1 zblaxell zblaxell 8760550 Dec  9 06:20 xscreensaver-5.26.tar.gz
8055822b661733e68550872a4ae6b6129c0b73fc  xscreensaver-5.26.tar.gz

14 files changed:
OSX/SaverRunner.plist
OSX/Updater.m
OSX/Updater.plist
OSX/XScreenSaver.plist
OSX/XScreenSaverView.m
OSX/bindist.rtf
OSX/iSaverRunner.plist
OSX/updates.pl
OSX/updates.xml
driver/XScreenSaver.ad.in
hacks/config/README
po/POTFILES.in
utils/version.h
xscreensaver.spec

index 7ba00ce86d62b469ad95ff7b44e77abf1f8f5e75..fc1e334d44a42af98de88f877af6c20681257c07 100644 (file)
@@ -7,7 +7,7 @@
        <key>CFBundleExecutable</key>
        <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleGetInfoString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleIconFile</key>
        <string>SaverRunner</string>
        <key>CFBundleIdentifier</key>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleLongVersionString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleName</key>
        <string>${PRODUCT_NAME}</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>LSMinimumSystemVersion</key>
        <string>${MACOSX_DEPLOYMENT_TARGET}</string>
        <key>NSHumanReadableCopyright</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>NSMainNibFile</key>
        <string>SaverRunner</string>
        <key>NSPrincipalClass</key>
index f7cd8c68097b572a15e2bdec8746e7d049972bdd..2e3ccbe1a2acf1b69b53e0bc65a915b36eea8851 100644 (file)
 
 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
 {
-  SUUpdater *updater = [SUUpdater updaterForBundle:
-                                    [NSBundle bundleForClass:[self class]]];
   NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
   [defs registerDefaults:UPDATER_DEFAULTS];
 
+  SUUpdater *updater = [SUUpdater updaterForBundle:
+                                    [NSBundle bundleForClass:[self class]]];
   [updater setDelegate:self];
 
-  // Launch the updater thread.
-  [updater checkForUpdatesInBackground];
-
-  // Now we need to wait for the Sparkle thread to finish before we can
-  // exit, so just poll waiting for it.
-  [NSTimer scheduledTimerWithTimeInterval:1
-           target:self
-           selector:@selector(exitWhenDone:)
-           userInfo:updater
-           repeats:YES];
+  [self awaitScreenSaverTermination:updater];
 }
 
+
 // Delegate method that lets us append extra info to the system-info URL.
 //
 - (NSArray *) feedParametersForUpdater:(SUUpdater *)updater
 }
 
 
+// Whether ScreenSaverEngine is currently running, meaning screen is blanked.
+//
+- (BOOL) screenSaverActive
+{
+  BOOL found = NO;
+  NSString *target = @"/ScreenSaverEngine.app";
+  ProcessSerialNumber psn = { kNoProcess, kNoProcess };
+  while (GetNextProcess(&psn) == noErr) {
+    CFDictionaryRef cfdict =
+      ProcessInformationCopyDictionary (&psn,
+        kProcessDictionaryIncludeAllInformationMask);
+    if (cfdict) {
+      NSDictionary *dict = (NSDictionary *) cfdict;
+      NSString *path = [dict objectForKey:@"BundlePath"];
+      if (path && [path hasSuffix:target])
+        found = YES;
+      CFRelease (cfdict);
+    }
+    if (found)
+      break;
+  }
+  return found;
+}
+
+
+// If the screen saver is not running, then launch the updater.
+// Otherwise, wait a while and try again.  This is because if the
+// updater tries to pop up a dialog box while the screen saver is
+// active, everything goes to hell and it never shows up.
+//
+- (void) awaitScreenSaverTermination:(SUUpdater *)updater
+{
+  if ([self screenSaverActive]) {
+    static float delay = 1;
+    [NSTimer scheduledTimerWithTimeInterval: delay
+             target:self
+             selector:@selector(awaitScreenSaverTerminationTimer:)
+             userInfo:updater
+             repeats:NO];
+    // slightly exponential back-off
+    delay *= 1.3;
+    if (delay > 120)
+      delay = 120;
+  } else {
+    // Launch the updater thread.
+    [updater checkForUpdatesInBackground];
+
+    // Now we need to wait for the Sparkle thread to finish before we can
+    // exit, so just poll waiting for it.
+    //
+    [NSTimer scheduledTimerWithTimeInterval:1
+             target:self
+             selector:@selector(exitWhenDone:)
+             userInfo:updater
+             repeats:YES];
+  }
+}
+
+
+- (void) awaitScreenSaverTerminationTimer:(NSTimer *)timer
+{
+  [self awaitScreenSaverTermination:[timer userInfo]];
+}
+
+
 - (void) exitWhenDone:(NSTimer *)timer
 {
   SUUpdater *updater = [timer userInfo];
     [[NSApplication sharedApplication] terminate:self];
 }
 
+
 - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)app
 {
   return YES;
index 6ba6c89b3b4e52d3855ced4ba82867f665b447a5..eb9a450400ffab3038c0bd7c79ac9e83c33a2f7a 100644 (file)
@@ -7,7 +7,7 @@
        <key>CFBundleExecutable</key>
        <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleGetInfoString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleIconFile</key>
        <string>SaverRunner</string>
        <key>CFBundleIdentifier</key>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleLongVersionString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleName</key>
        <string>${PRODUCT_NAME}</string>
+       <key>CFBundleDisplayName</key>
+       <string>XScreenSaver</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>LSMinimumSystemVersion</key>
        <string>${MACOSX_DEPLOYMENT_TARGET}</string>
        <key>LSUIElement</key>
        <true/>
        <key>NSHumanReadableCopyright</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>NSMainNibFile</key>
        <string>Updater</string>
        <key>NSPrincipalClass</key>
index f3638267f5fb3ed2ce3e2b8e974e5f5e2ec7c43a..a11f99aa22ddfabc2cad1e0abd6dcc1c103428f7 100644 (file)
        <key>CFBundlePackageType</key>
        <string>BNDL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.4</string>
        <key>NSMainNibFile</key>
index beb17fd78c80dfa90175d296421283bb01d93f2c..c90c7fe46221800d85f9bc7f9062e0bb99d5f8be 100644 (file)
@@ -1980,7 +1980,7 @@ double current_device_rotation (void)
                             NSWorkspaceLaunchAndHide)
                    configuration:nil
                    error:&err]) {
-    NSLog(@"Unable to launch %@: %@", updater, err);
+    NSLog(@"Unable to launch %@: %@", app_path, err);
   }
 
 # endif // !USE_IPHONE
index 43550ab292f01c5f7c2a781b8aa14dcc15ef169d..8a93570401fd27724942c7ecdd3d662738d5ad86 100644 (file)
@@ -16,7 +16,7 @@
 \b0 by Jamie Zawinski\
 and many others\
 \
-version 5.25\
+version 5.26\
 09-Dec-2013\
 \
 {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}}\
index e5456e0fbadc0121a71fde87cc144788c7649acd..27eface18b202fc3aa4f479836ef798a63b62222 100644 (file)
@@ -5,11 +5,11 @@
        <key>CFBundleName</key>
        <string>${PRODUCT_NAME}</string>
        <key>NSHumanReadableCopyright</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleDevelopmentRegion</key>
        <string>English</string>
        <key>CFBundleVersion</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>NSMainNibFile</key>
        <string>iSaverRunner</string>
        <key>CFBundlePackageType</key>
@@ -19,7 +19,7 @@
        <key>UIViewControllerBasedStatusBarAppearance</key>
        <false/>
        <key>CFBundleShortVersionString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>UIRequiredDeviceCapabilities</key>
@@ -37,7 +37,7 @@
                <string>UIInterfaceOrientationLandscapeRight</string>
        </array>
        <key>CFBundleLongVersionString</key>
-       <string>5.25</string>
+       <string>5.26</string>
        <key>CFBundleIdentifier</key>
        <string>${BUNDLE_IDENTIFIER}</string>
        <key>CFBundleSignature</key>
@@ -62,6 +62,6 @@
        <key>CFBundleDisplayName</key>
        <string>${PRODUCT_NAME}</string>
        <key>CFBundleGetInfoString</key>
-       <string>5.25</string>
+       <string>5.26</string>
 </dict>
 </plist>
index bff462d64640149893c16e9f61e58672d86be3d3..c1bfd2463a5bb8f5e5e6ae9c869fdf3d49cca764 100755 (executable)
@@ -51,6 +51,8 @@ sub generate_xml($$$$) {
       next unless $v;
       $sigs{$v}  = $sig  if $sig;
       $dates{$v} = $date if $date;
+      print STDERR "$progname: $v: " . ($date || '?') . "\n"
+        if ($verbose > 1);
     }
   }
 
@@ -108,6 +110,9 @@ sub generate_xml($$$$) {
     # Re-generate the sig if the file date changed.
     $sig = undef if ($odate && $odate ne $date);
 
+    print STDERR "$progname: $v1: $date " . ($sig ? "Y" : "N") . "\n"
+      if ($verbose > 1);
+
     if (!$sig && $zip) {
       local %ENV = %ENV;
       $ENV{PATH} = "/usr/bin:$ENV{PATH}";
index c11966433164d19f573b52cc9d5db9d41e962961..ef7295bcfa5b341a4f355ba03755a7b6432ea70b 100644 (file)
@@ -7,6 +7,17 @@
   <link>http://www.jwz.org/xscreensaver/updates.xml</link>
   <description>Updates to xscreensaver.</description>
   <language>en</language>
+  <item>
+   <title>Version 5.25</title>
+   <link>http://www.jwz.org/xscreensaver/xscreensaver-5.25.dmg</link>
+   <description><![CDATA[&bull; Try harder to bypass Quarrantine and Gatekeeper in OSX installer. <BR>&bull; Some files were missing from the tarball.]]></description>
+   <pubDate>Mon, 09 Dec 2013 00:38:35 -0800</pubDate>
+   <enclosure url="http://www.jwz.org/xscreensaver/xscreensaver-5.25.dmg"
+    sparkle:version="5.25"
+    sparkle:dsaSignature="MC0CFQCr8H3E7MQ9UF8WoSfkNMYAeezkCgIUCEfh4LmhELZlR53pihwrbPn8/gw="
+    length="50492771"
+    type="application/octet-stream" />
+  </item>
   <item>
    <title>Version 5.24</title>
    <link>http://www.jwz.org/xscreensaver/xscreensaver-5.24.dmg</link>
     length="50258845"
     type="application/octet-stream" />
   </item>
-  <item>
-   <title>Version 5.23</title>
-   <link>http://www.jwz.org/xscreensaver/xscreensaver-5.23.dmg</link>
-   <description><![CDATA[&bull; New hack, `geodesic'. <BR>&bull; iOS and OSX: huge XCopyArea performance improvements. <BR>&bull; More heuristics for using RSS feeds as image sources. <BR>&bull; Improved Wikipedia parser. <BR>&bull; Updated `webcollage' for recent Flickr changes. <BR>&bull; Added Android to `bsod'. <BR>&bull; OSX: Added a real installer. <BR>&bull; iOS and OSX: fixed a font-metrics bug. <BR>&bull; iOS: Fixed aspect ratio bug in non-rotating apps when launched in landscape mode. <BR>&bull; Made `quasicrystal' work on weak graphics cards. <BR>&bull; iOS: fixed `ifs'. <BR>&bull; Better compression on icons, plists and XML files: smaller distribution and installation footprint. <BR>&bull; Reverted that DEACTIVATE change. Bad idea. <BR>&bull; `Phosphor' now supports amber as well as green.]]></description>
-   <pubDate>Sat, 09 Nov 2013 13:29:07 -0800</pubDate>
-   <enclosure url="http://www.jwz.org/xscreensaver/xscreensaver-5.23.dmg"
-    sparkle:version="5.23"
-    sparkle:dsaSignature="MC0CFQCn+J0qyxUxXj8qTqIzccyEjv90uQIURPhd0yT6PdDlQnXYGKhF30PvsLo="
-    length="47275494"
-    type="application/octet-stream" />
-  </item>
   <item>
    <title>Version 5.14</title>
    <link>http://www.jwz.org/xscreensaver/xscreensaver-5.14.dmg</link>
index aa59c7c086349de040ed0f39ed9405da66e7d47b..aa92e34748015acc04b13a87a52d1e76ea50df8d 100644 (file)
@@ -4,7 +4,7 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 5.25
+!                              version 5.26
 !                              09-Dec-2013
 !
 ! See "man xscreensaver" for more info.  The latest version is always
index 03242c129f8a7448a251fe77a54245f1918a13cd..2d2b9589c7342fedc24cc75f8bc58b53550e1b43 100644 (file)
@@ -4,7 +4,7 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
-                              version 5.25
+                              version 5.26
                                09-Dec-2013
 
                      http://www.jwz.org/xscreensaver/
index 97606c7feb510be11ba256e2f551d8f682a74b5f..e10c35e5f925b7d030085baa02269e4c173b7225 100644 (file)
@@ -1,4 +1,4 @@
-# Auto-generated: Mon Dec  9 00:26:15 PST 2013
+# Auto-generated: Mon Dec  9 03:01:47 PST 2013
 driver/demo-Gtk-conf.c
 driver/demo-Gtk-support.c
 driver/demo-Gtk-widgets.c
index bfd977992277c9ede265b60dcfe76a83020af751..970c920d6f3937cc65a05694755e46fc00f45f69 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 5.25 (09-Dec-2013), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 5.26 (09-Dec-2013), by Jamie Zawinski (jwz@jwz.org)";
index a0f8ceaeacc8aee3a1f1d8bcffcb5f86e9967601..ad355be847bfe020e346bfa41f8bbd98327e79c8 100644 (file)
@@ -1,5 +1,5 @@
 %define        name xscreensaver
-%define        version 5.25
+%define        version 5.26
 
 Summary:       X screen saver and locker
 Name:          %{name}