The downside is that we no longer have our .o files depend on the compiler (so we need to do a clean build after upgrading the compiler) and if there is a space in the path to the compiler, it will fail.
The upside is that we can let CC/CXX be a command with arguments, e.g. ‘xcrun clang’.
Only values from the root target goes through this code, so it wasn’t causing a problem, as none of those keys had a multi-element array, but in ruby 2.0 embedding an array in a string seems to use inspect instead of to_s:
Ruby 1.8: "#{['foo']}" #=> foo
Ruby 2.0: "#{['foo']}" #=> ["foo"]
A problem has been reported where tar will freeze while extracting the default bundles archive to a networked Application Support folder.
From the bug report (Michael Kuron):
File servers tested: SMB on OS X 10.9.3, AFP on OS X 10.9.3, AFP on OS X 10.6.8, SMB on Windows 2008 R2.
Multiple machines tested.
Using ‘gnutar’ from MacPorts does not show the problem.
Setting ‘COPYFILE_DISABLE=1’ before running tar does not show the problem (the workaround used in this commit).
Set the `capnp_prefix` variable when calling ./configure.
E.g. build and install cap’n’proto in $HOME/build:
./configure --disable-shared --prefix="$HOME/build"
make -j6 check && make install
Then configure TextMate to find it there:
capnp_prefix="$HOME/build" ./configure
This slows down signing enormously (10+ seconds) and fails most of the time when internet connectivity is suboptimal (might be related to being behind a proxy).
This changes the authentication mechanism from passing an authorization token / API key to using basic auth. Basic auth didn’t work when I initially tested the upload API, but hopefully GitHub has since added it (I did request it, but didn’t get a reply, so no idea if the omission was an oversight or by design).
Creating a release with attachment is non-atomic in that the release is first created and then we upload to that release but our build file has it as a single action, so this action should be able to handle partial success from a previous execution.
The problem is that with a bad internet connection there is a very high probability that “codesign --deep” will fail due to having to contact the timestamp server for each embedded executable object.
Long-term we probably want to sign the sub-targets as they are produced and/or link the entire thing together so that there is only a single sign target (plus embedded plug-ins).
We were using gnutar to avoid the extended header keywords that bsdtar add to the archive (for non-ASCII file names) as those will cause older versions of gnutar (like the one included with 10.8 and earlier) to give warnings/errors when extracting the archive.
Issue #1180
This is required when signing on OS X 10.9.
Although the option is not documented for the version of codesign included with 10.8, using it does not result in an error.
Closes#1158
Previously this had to be done via global constructor functions but it would seem the execution of these may happen before initialization of global data.
Use APP_VERSION instead of APP_REVISION in various target names.
Indicate a few build commands are generators, so that their output is not removed on ‘ninja -t clean’.
Move generated dummy files (for tagging, uploading, deploying, etc.) to sub-directories to reduce noise in build directory.
@executable_path is the originally-executed program, whereas @loader_path is the program that caused the load to occur (e.g. a Quick Look generator). @rpath can be changed at link time — a QL generator can specify a value that points to the enclosing app bundle’s Frameworks directory.