Updated version numbers to 0.85.6, updated sparkle files for 0.85.5, added some source files to Xcode project.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@562 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
Kristian Duske 2011-12-27 17:18:28 +00:00
parent ef0062741c
commit 533ae210a4
10 changed files with 256 additions and 28 deletions

View File

@ -51,6 +51,18 @@ This should be it. The guides in the link collection at the end of this document
## Building QuakeSpasm
Now you can build QuakeSpasm. Simply open the project file using XCode 4.2 and make sure that "QuakeSpasm > My Mac 64-bit" is selected as the scheme in the toolbar. Select "Product > Run" from the menu to run and debug QuakeSpasm. This will not produce a universal binary however. To produce a universal binary for Intel 64bit, Intel 32bit and PowerPC 32bit, you need to select "Product > Archive" from the menu. This will create an application archive that contains the universal binary.
# Releasing QuakeSpasm
QuakeSpasm for Mac uses the Sparkle framework for automatic updates. This means you have to provide an appcast and the zipped binary at the following location:
http://quakespasm.sourceforge.net/sparkle/appcast.xml
http://quakespasm.sourceforge.net/sparkle/QuakeSpasm <version>.zip
You may also want to update the release notes at
http://quakespasm.sourceforge.net/sparkle/rnotes.html
For security reasons, Sparkle requires updates to be signed. All this is automated using a script.
# Useful Links
- XCode 3.2.6:
http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20792

View File

@ -54,7 +54,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMenuItem" id="694149608">
<reference key="NSMenu" ref="649796088"/>
<string key="NSTitle">NewApplication</string>
<string key="NSTitle">QuakeSpasm</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@ -68,7 +68,7 @@
</object>
<string key="NSAction">submenuAction:</string>
<object class="NSMenu" key="NSSubmenu" id="110575045">
<string key="NSTitle">NewApplication</string>
<string key="NSTitle">QuakeSpasm</string>
<object class="NSMutableArray" key="NSMenuItems">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMenuItem" id="238522557">
@ -141,7 +141,7 @@
</object>
<object class="NSMenuItem" id="755159360">
<reference key="NSMenu" ref="110575045"/>
<string key="NSTitle">Hide NewApplication</string>
<string key="NSTitle">Hide QuakeSpasm</string>
<string key="NSKeyEquiv">h</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@ -179,7 +179,7 @@
</object>
<object class="NSMenuItem" id="632727374">
<reference key="NSMenu" ref="110575045"/>
<string key="NSTitle">Quit NewApplication</string>
<string key="NSTitle">Quit QuakeSpasm</string>
<string key="NSKeyEquiv">q</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
@ -1204,7 +1204,7 @@
<reference key="NSWindow"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
</object>
<string key="NSScreenRect">{{0, 0}, {1366, 746}}</string>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>

Binary file not shown.

View File

@ -19,7 +19,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>0.85.5</string>
<string>0.85.6</string>
<key>NSMainNibFile</key>
<string>Launcher</string>
<key>NSPrincipalClass</key>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>QuakeSpasm</string>
<key>CFBundleIdentifier</key>
<string>net.sf.quakespasm.QuakeSpasm</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>0.85.6</string>
<key>NSMainNibFile</key>
<string>Launcher</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>SUEnableAutomaticChecks</key>
<false/>
<key>SUFeedURL</key>
<string>http://quakespasm.sourceforge.net/sparkle/appcast.xml</string>
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>
</dict>
</plist>

View File

@ -93,6 +93,8 @@
4890A4621205A27B00452753 /* SUUpdaterDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4890A4611205A27B00452753 /* SUUpdaterDelegate.m */; };
4890A5D21205D55700452753 /* UpdateButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4890A5D11205D55700452753 /* UpdateButton.m */; };
489D8D2F0D3A630D00AA4471 /* ScreenInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 489D8D2E0D3A630D00AA4471 /* ScreenInfo.m */; };
48A7C1FC14AA34940011B754 /* strlcat.c in Sources */ = {isa = PBXBuildFile; fileRef = 48A7C1FA14AA34940011B754 /* strlcat.c */; };
48A7C1FD14AA34940011B754 /* strlcpy.c in Sources */ = {isa = PBXBuildFile; fileRef = 48A7C1FB14AA34940011B754 /* strlcpy.c */; };
48B9E7880D340B1E0001CACF /* Launcher.nib in Resources */ = {isa = PBXBuildFile; fileRef = 48B9E7860D340B1E0001CACF /* Launcher.nib */; };
48B9E7A70D340BEA0001CACF /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = 48B9E7A60D340BEA0001CACF /* AppController.m */; };
48B9E7C00D340EA80001CACF /* SDLApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 48B9E7BF0D340EA80001CACF /* SDLApplication.m */; };
@ -104,6 +106,16 @@
B021C20914A5FF7E003F18D6 /* cfgfile.c in Sources */ = {isa = PBXBuildFile; fileRef = B021C20714A5FF7E003F18D6 /* cfgfile.c */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
48A7C1F714A9E5150011B754 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
proxyType = 1;
remoteGlobalIDString = 8D1107260486CEB800E47090;
remoteInfo = QuakeSpasm;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
002F39FD09D0883400EBEB88 /* Copy Frameworks into .app bundle */ = {
isa = PBXCopyFilesBuildPhase;
@ -265,7 +277,6 @@
48728D290D3004A80004D61B /* net_dgrm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net_dgrm.h; path = ../Quake/net_dgrm.h; sourceTree = SOURCE_ROOT; };
48728D2A0D3004A80004D61B /* net_loop.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net_loop.c; path = ../Quake/net_loop.c; sourceTree = SOURCE_ROOT; };
48728D2B0D3004A80004D61B /* net_loop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net_loop.h; path = ../Quake/net_loop.h; sourceTree = SOURCE_ROOT; };
487D113A14A8E7FF008765D0 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
48895DB80D4914A000849ABF /* pl_osx.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = pl_osx.m; path = ../Quake/pl_osx.m; sourceTree = SOURCE_ROOT; };
4890A4601205A27B00452753 /* SUUpdaterDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUUpdaterDelegate.h; sourceTree = "<group>"; };
4890A4611205A27B00452753 /* SUUpdaterDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUUpdaterDelegate.m; sourceTree = "<group>"; };
@ -275,6 +286,11 @@
4890A5E71205D6D400452753 /* rnotes.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = rnotes.html; sourceTree = "<group>"; };
489D8D2D0D3A630D00AA4471 /* ScreenInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScreenInfo.h; sourceTree = "<group>"; };
489D8D2E0D3A630D00AA4471 /* ScreenInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScreenInfo.m; sourceTree = "<group>"; };
48A7C1F414A9E5000011B754 /* QuakeSpasm copy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "QuakeSpasm copy.app"; sourceTree = BUILT_PRODUCTS_DIR; };
48A7C1F614A9E5020011B754 /* QuakeSpasm copy-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "QuakeSpasm copy-Info.plist"; path = "/Users/kristian/Documents/Code/XCode/QuakeSpasm/MacOSX/QuakeSpasm copy-Info.plist"; sourceTree = "<absolute>"; };
48A7C1F914AA34940011B754 /* strl_fn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = strl_fn.h; path = ../Quake/strl_fn.h; sourceTree = "<group>"; };
48A7C1FA14AA34940011B754 /* strlcat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = strlcat.c; path = ../Quake/strlcat.c; sourceTree = "<group>"; };
48A7C1FB14AA34940011B754 /* strlcpy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = strlcpy.c; path = ../Quake/strlcpy.c; sourceTree = "<group>"; };
48B9E7870D340B1E0001CACF /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Launcher.nib; sourceTree = "<group>"; };
48B9E7A50D340BEA0001CACF /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = "<group>"; };
48B9E7A60D340BEA0001CACF /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppController.m; sourceTree = "<group>"; };
@ -336,6 +352,7 @@
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* QuakeSpasm.app */,
48A7C1F414A9E5000011B754 /* QuakeSpasm copy.app */,
);
name = Products;
sourceTree = "<group>";
@ -343,13 +360,13 @@
29B97314FDCFA39411CA2CEA /* QuakeSpasm */ = {
isa = PBXGroup;
children = (
487D113A14A8E7FF008765D0 /* libz.dylib */,
48243B060D33ED0A00C29F8F /* MacOSX */,
483A77D80D2EE8C500CB2E4C /* Quake */,
29B97317FDCFA39411CA2CEA /* Resources */,
4890A5EA1205D6ED00452753 /* Sparkle */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
48A7C1F614A9E5020011B754 /* QuakeSpasm copy-Info.plist */,
);
name = QuakeSpasm;
sourceTree = "<group>";
@ -438,6 +455,8 @@
483A781C0D2EEA5400CB2E4C /* pr_exec.c */,
483A780E0D2EEA0F00CB2E4C /* progdefs.q1 */,
483A781D0D2EEA5400CB2E4C /* sbar.c */,
48A7C1FA14AA34940011B754 /* strlcat.c */,
48A7C1FB14AA34940011B754 /* strlcpy.c */,
4847CD5E12057F94000B560F /* sys_sdl_unix.c */,
483A781F0D2EEA5400CB2E4C /* view.c */,
483A78200D2EEA5400CB2E4C /* wad.c */,
@ -541,6 +560,7 @@
483A77EF0D2EE97700CB2E4C /* progs.h */,
483A77F00D2EE97700CB2E4C /* quakedef.h */,
483A77F10D2EE97700CB2E4C /* sbar.h */,
48A7C1F914AA34940011B754 /* strl_fn.h */,
483A77F20D2EE97700CB2E4C /* sys.h */,
483A77F30D2EE97700CB2E4C /* view.h */,
483A77F40D2EE97700CB2E4C /* wad.h */,
@ -625,6 +645,23 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
48A7C18B14A9E5000011B754 /* QuakeSpasm Release */ = {
isa = PBXNativeTarget;
buildConfigurationList = 48A7C1F114A9E5000011B754 /* Build configuration list for PBXNativeTarget "QuakeSpasm Release" */;
buildPhases = (
48A7C1F014A9E5000011B754 /* Run Script */,
);
buildRules = (
);
dependencies = (
48A7C1F814A9E5150011B754 /* PBXTargetDependency */,
);
name = "QuakeSpasm Release";
productInstallPath = "$(HOME)/Applications";
productName = QuakeSpasm;
productReference = 48A7C1F414A9E5000011B754 /* QuakeSpasm copy.app */;
productType = "com.apple.product-type.application";
};
8D1107260486CEB800E47090 /* QuakeSpasm */ = {
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "QuakeSpasm" */;
@ -668,6 +705,7 @@
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* QuakeSpasm */,
48A7C18B14A9E5000011B754 /* QuakeSpasm Release */,
);
};
/* End PBXProject section */
@ -690,6 +728,23 @@
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
48A7C1F014A9E5000011B754 /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Run Script";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -o errexit\n\n[ \"$CONFIGURATION\" = \"Release\" ] || { echo Distribution target requires \"'Release'\" build style; false; }\n\nVERSION=$(defaults read \"$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app/Contents/Info\" CFBundleVersion)\nDOWNLOAD_BASE_URL=\"http://quakespasm.sourceforge.net/sparkle\"\nRELEASENOTES_URL=\"http://quakespasm.sourceforge.net/sparkle/rnotes.html#version-$VERSION\"\n\nARCHIVE_FILENAME=\"$PROJECT_NAME $VERSION.zip\"\nDOWNLOAD_URL=\"$DOWNLOAD_BASE_URL/$ARCHIVE_FILENAME\"\nKEYCHAIN_PRIVKEY_NAME=\"QuakeSpasm Sparkle Private Key\"\n\nWD=$PWD\ncd \"$BUILT_PRODUCTS_DIR\"\nrm -f \"$PROJECT_NAME\"*.zip\nditto -ck --keepParent \"$PROJECT_NAME.app\" \"$ARCHIVE_FILENAME\"\n\nSIZE=$(stat -f %z \"$ARCHIVE_FILENAME\")\nPUBDATE=$(LC_TIME=en_US date +\"%a, %d %b %G %T %z\")\nSIGNATURE=$( /usr/bin/openssl dgst -sha1 -binary < \"$ARCHIVE_FILENAME\" | /usr/bin/openssl dgst -dss1 -sign < \"$WD/dsa_priv.pem\" | /usr/bin/openssl enc -base64 )\n\n[ $SIGNATURE ] || { echo Unable to load signing private key with name \"'$KEYCHAIN_PRIVKEY_NAME'\" from keychain; false; }\n\ncat <<EOF\n<item>\n<title>Version $VERSION</title>\n<sparkle:releaseNotesLink>$RELEASENOTES_URL</sparkle:releaseNotesLink>\n<pubDate>$PUBDATE</pubDate>\n<enclosure\nurl=\"$DOWNLOAD_URL\"\nsparkle:version=\"$VERSION\"\ntype=\"application/octet-stream\"\nlength=\"$SIZE\"\nsparkle:dsaSignature=\"$SIGNATURE\"\n/>\n</item>\nEOF\n\necho scp \"'$HOME/svn/my-cool-app/build/Release/$ARCHIVE_FILENAME'\" www.example.com:download/\necho scp \"'$WD/appcast.xml'\" www.example.com:web/software/my-cool-app/appcast.xml";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@ -771,11 +826,21 @@
4818B0B812D5BA1A006DD66E /* snd_wave.c in Sources */,
4854B1B11340C646004C9F45 /* snd_mpg123.c in Sources */,
B021C20914A5FF7E003F18D6 /* cfgfile.c in Sources */,
48A7C1FC14AA34940011B754 /* strlcat.c in Sources */,
48A7C1FD14AA34940011B754 /* strlcpy.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
48A7C1F814A9E5150011B754 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8D1107260486CEB800E47090 /* QuakeSpasm */;
targetProxy = 48A7C1F714A9E5150011B754 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
@ -796,6 +861,98 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
48A7C1F214A9E5000011B754 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
x86_64,
i386,
);
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
);
FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = USE_QS_CONBACK;
HEADER_SEARCH_PATHS = (
/Library/Frameworks/SDL.framework/Headers,
/Library/Frameworks/SDL_net.framework/Headers,
"$(HEADER_SEARCH_PATHS)",
);
INFOPLIST_FILE = "QuakeSpasm copy-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)\"",
);
PRODUCT_NAME = "QuakeSpasm copy";
SDKROOT = macosx10.5;
WRAPPER_EXTENSION = app;
ZERO_LINK = YES;
};
name = Debug;
};
48A7C1F314A9E5000011B754 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
x86_64,
i386,
ppc,
);
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
);
FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = G5;
GCC_PREPROCESSOR_DEFINITIONS = (
USE_CODEC_MP3,
USE_CODEC_VORBIS,
USE_CODEC_WAVE,
USE_QS_CONBACK,
);
HEADER_SEARCH_PATHS = (
/Library/Frameworks/SDL.framework/Headers,
/Library/Frameworks/SDL_net.framework/Headers,
"$(HEADER_SEARCH_PATHS)",
);
INFOPLIST_FILE = "QuakeSpasm copy-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)\"",
);
OTHER_CFLAGS = "";
"OTHER_CFLAGS[arch=ppc64]" = (
"-arch",
ppc,
);
"OTHER_CFLAGS[arch=ppc]" = (
"-arch",
ppc,
);
OTHER_LDFLAGS = "";
"OTHER_LDFLAGS[arch=ppc64]" = (
"-arch",
ppc,
);
"OTHER_LDFLAGS[arch=ppc]" = (
"-arch",
ppc,
);
PRODUCT_NAME = "QuakeSpasm copy";
SDKROOT = macosx10.5;
WRAPPER_EXTENSION = app;
};
name = Release;
};
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -984,6 +1141,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
48A7C1F114A9E5000011B754 /* Build configuration list for PBXNativeTarget "QuakeSpasm Release" */ = {
isa = XCConfigurationList;
buildConfigurations = (
48A7C1F214A9E5000011B754 /* Debug */,
48A7C1F314A9E5000011B754 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "QuakeSpasm" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@ -15,8 +15,7 @@
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D1107260486CEB800E47090"
BuildableName = "QuakeSpasm.app"
BlueprintName = "QuakeSpasm"
ReferencedContainer = "container:QuakeSpasm.xcodeproj">
BlueprintName = "QuakeSpasm">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -94,23 +93,5 @@
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
<PostActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Script"
scriptText = "set -o errexit&#10;&#10;[ $BUILD_STYLE = Release ] || { echo Distribution target requires &quot;&apos;Release&apos;&quot; build style; false; }&#10;&#10;VERSION=$(defaults read &quot;$BUILT_PRODUCTS_DIR/$PROJECT_NAME.app/Contents/Info&quot; CFBundleVersion)&#10;DOWNLOAD_BASE_URL=&quot;http://quakespasm.sourceforge.net/sparkle&quot;&#10;RELEASENOTES_URL=&quot;http://quakespasm.sourceforge.net/sparkle/rnotes.html#version-$VERSION&quot;&#10;&#10;ARCHIVE_FILENAME=&quot;$PROJECT_NAME $VERSION.zip&quot;&#10;DOWNLOAD_URL=&quot;$DOWNLOAD_BASE_URL/$ARCHIVE_FILENAME&quot;&#10;KEYCHAIN_PRIVKEY_NAME=&quot;QuakeSpasm Sparkle Private Key&quot;&#10;&#10;WD=$PWD&#10;cd &quot;$BUILT_PRODUCTS_DIR&quot;&#10;rm -f &quot;$PROJECT_NAME&quot;*.zip&#10;ditto -ck --keepParent &quot;$PROJECT_NAME.app&quot; &quot;$ARCHIVE_FILENAME&quot;&#10;&#10;SIZE=$(stat -f %z &quot;$ARCHIVE_FILENAME&quot;)&#10;PUBDATE=$(LC_TIME=en_US date +&quot;%a, %d %b %G %T %z&quot;)&#10;SIGNATURE=$(&#10;/usr/bin/openssl dgst -sha1 -binary &lt; &quot;$ARCHIVE_FILENAME&quot; \&#10;| /usr/bin/openssl dgst -dss1 -sign &lt;(security find-generic-password -g -s &quot;$KEYCHAIN_PRIVKEY_NAME&quot; 2&gt;&amp;1 1&gt;/dev/null | perl -pe &apos;($_) = /&quot;(.+)&quot;/; s/\\012/\n/g&apos; | perl -MXML::LibXML -e &apos;print XML::LibXML-&gt;new()-&gt;parse_file(&quot;-&quot;)-&gt;findvalue(q(//string[preceding-sibling::key[1] = &quot;NOTE&quot;]))&apos;) \&#10;| /usr/bin/openssl enc -base64&#10;)&#10;[ $SIGNATURE ] || { echo Unable to load signing private key with name &quot;&apos;$KEYCHAIN_PRIVKEY_NAME&apos;&quot; from keychain; false; }&#10;&#10;cat &lt;&lt;EOF&#10;&lt;item&gt;&#10;&lt;title&gt;Version $VERSION&lt;/title&gt;&#10;&lt;sparkle:releaseNotesLink&gt;$RELEASENOTES_URL&lt;/sparkle:releaseNotesLink&gt;&#10;&lt;pubDate&gt;$PUBDATE&lt;/pubDate&gt;&#10;&lt;enclosure&#10;url=&quot;$DOWNLOAD_URL&quot;&#10;sparkle:version=&quot;$VERSION&quot;&#10;type=&quot;application/octet-stream&quot;&#10;length=&quot;$SIZE&quot;&#10;sparkle:dsaSignature=&quot;$SIGNATURE&quot;&#10;/&gt;&#10;&lt;/item&gt;&#10;EOF&#10;&#10;echo scp &quot;&apos;$HOME/svn/my-cool-app/build/Release/$ARCHIVE_FILENAME&apos;&quot; www.example.com:download/&#10;echo scp &quot;&apos;$WD/appcast.xml&apos;&quot; www.example.com:web/software/my-cool-app/appcast.xml">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D1107260486CEB800E47090"
BuildableName = "QuakeSpasm.app"
BlueprintName = "QuakeSpasm"
ReferencedContainer = "container:QuakeSpasm.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PostActions>
</ArchiveAction>
</Scheme>

View File

@ -17,5 +17,17 @@
sparkle:dsaSignature="MC4CFQDtSI8T8itHrvQoLTVG8XE4/qPa3wIVAN9qYIEN8LMpFdoIvLVZl6SxSH3m"
/>
</item>
<item>
<title>Version 0.85.5</title>
<sparkle:releaseNotesLink>http://quakespasm.sourceforge.net/sparkle/rnotes.html#version-0.85.5</sparkle:releaseNotesLink>
<pubDate>Tue, 27 Dec 2011 11:31:38 +0100</pubDate>
<enclosure
url="http://quakespasm.sourceforge.net/sparkle/QuakeSpasm 0.85.5.zip"
sparkle:version="0.85.5"
type="application/octet-stream"
length="2937479"
sparkle:dsaSignature="YmRhMjY1ZDcyYzdiZjlhYzY4ZGJkZDIyZWRjM2U4NmQ1Y2RkZjIyZQo="
/>
</item>
</channel>
</rss>

View File

@ -10,6 +10,29 @@
<body>
<br />
<table class="dots" width="100%" border="0" cellspacing="0" cellpadding="0" summary="Two column table with heading">
<tr>
<td class="blue">
<h3>QuakeSpasm 0.85.5</h3>
</td>
</tr>
<tr>
<td valign="top">
<ul>
<li>SDL input driver updated, adding native keymap and dead key support to the console</li>
<li>Fixed a crash in net play in maps with extended limits</li>
<li>Verified successful compilation using gcc-4.6.x</li>
<li>Added workaround against GL texture flicker (z fighting), controlled by new cvar 'gl_zfix'</li>
<li>Read video variables early so that a vid_restart isn't necessary after init</li>
<li>mlook and lookspring fixes</li>
<li>Added support for loading external entity files, controlled by new cvar 'external_ents'</li>
<li>Made mp3 playback to allocate system memory instead of zone</li>
<li>Some updates to the progs interpreter code</li>
<li>Fixed r_nolerp_list parsing code of fitzquake</li>
<li>Made sure that deathmatch and coop are not set at the same time</li>
<li>Several code updates from uHexen2 project, several code cleanups.</li>
</ul>
</td>
</tr>
<tr>
<td class="blue">
<h3>QuakeSpasm 0.85.4</h3>