Whenever we create scripts that are installed to $out, we must use runtimeShell
in order to get the shell that can be executed on the machine we create the
package for. This is relevant for cross-compiling. The only use case for
stdenv.shell are scripts that are executed as part of the build system.
Usages in checkPhase are borderline however to decrease the likelyhood
of people copying the wrong examples, I decided to use runtimeShell as well.
fetchFromGitHub and thus fetchzip hashes the contents of the archive and
not the archive itself. Unicode file names lead to different checksums
on HFS+ vs. other file systems because of Unicode normalisation
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in _x002.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in _x002.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in _x002.o
ld: symbol(s) not found for architecture x86_64
This requires some small changes in the stdenv, then working around the
weird choice LLVM made to hardcode @rpath in its install name, and then
lets us remove a ton of annoying workaround hacks in many of our Go
packages. With any luck this will mean less hackery going forward.
Build the official keybase go client from source. The client includes both a
CLI for performing keybase operations and a service which will start
automatically when needed.
Keybase is a service which combines social proof with encryption. Learn more at
their site: http://keybase.io