fixup shebang - build was not running fixupPhase, and shebang was pointing to
/bin/sh. On a system where /bin/sh links to dash, this results in errors:
/nix/store/v40yk16fl1rhvr6zz91ij753ziyphwwp-keychain-2.8.0/bin/.keychain-wrapped: 59: /nix/store/v40yk16fl1rhvr6zz91ij753ziyphwwp-keychain-2.8.0/bin/.keychain-wrapped: shopt: not found
/nix/store/v40yk16fl1rhvr6zz91ij753ziyphwwp-keychain-2.8.0/bin/.keychain-wrapped: 686: /nix/store/v40yk16fl1rhvr6zz91ij753ziyphwwp-keychain-2.8.0/bin/.keychain-wrapped: Syntax error: "(" unexpected (expecting ")")
use upstream builder - the include Makefile uses perl to generate a manpage and
insert the same text into the keychain script for '--help' output, which was
otherwise missing:
$ keychain --help
* keychain 2.8.0 ~ http://www.funtoo.org
[snip]
INSERT_POD_OUTPUT_HERE
install manpage - self explanatory
Upstream unfortunately changed the tag v2.0.0.2 from revision
b533774a704c271a6feeaef76939b0aefbf039d7 to one commit forward:
539bee3f515b13a9a55ce65c0c0593babc7c5048.
On a OSX 10.10 system:
libtool: compile: clang++ -DHAVE_CONFIG_H -I. -I../include/IL -I ./../src-IL/include -I ./../include -fgnu89-inline -msse -msse2 -msse3 -D_THREAD_SAFE -I/nix/store/7n9c36hz9sl2dqvfry8d554l935hq4ma-openexr-2.2.0/include/OpenEXR -I/nix/store/3jxslxa37wmfdnyfj1hckpxl0skscgj0-ilmbase-2.2.0/include/OpenEXR -O3 -c ./../src-IL/src/il_exr.cpp -fno-common -DPIC -o .libs/libIL_la-il_exr.o
In file included from ./../src-IL/src/il_exr.cpp:22:
In file included from ./../src-IL/include/il_exr.h:18:
In file included from /nix/store/7n9c36hz9sl2dqvfry8d554l935hq4ma-openexr-2.2.0/include/OpenEXR/ImfIO.h:49:
In file included from /nix/store/3qsrpjbsmn7w4d18i8zc6a44myiaa516-libc++-3.5.0/include/c++/v1/string:434:
/nix/store/3qsrpjbsmn7w4d18i8zc6a44myiaa516-libc++-3.5.0/include/c++/v1/__config:32:22: error: expected value in expression
#if __LITTLE_ENDIAN__
^
/nix/store/3qsrpjbsmn7w4d18i8zc6a44myiaa516-libc++-3.5.0/include/c++/v1/__config:110:11: fatal error: 'endian.h' file not found
# include <endian.h>
^
2 errors generated.
make[1]: *** [libIL_la-il_exr.lo] Error 1
make[1]: Leaving directory `/private/var/folders/1g/yfm550_10sb76p0z469bq9mr5zsthm/T/nix-build-libdevil-1.7.8.drv-1/devil-1.7.8/lib'
make: *** [all-recursive] Error 1
See http://sourceforge.net/p/resil/tickets/8/
New build system using configure script and GNU Make 4.0, and new
releases of the following using the new build system:
execline 2.0.0.0
s6 2.0.0.0
s6-dns 2.0.0.0
s6-linux-utils 2.0.0.0
s6-networking 2.0.0.0
s6-portable-utils 2.0.0.0
skalibs 2.0.0.0
New build system using configure script and GNU Make 4.0, and new
releases of the following using the new build system:
execline 2.0.0.0
s6 2.0.0.0
s6-dns 2.0.0.0
s6-linux-utils 2.0.0.0
s6-networking 2.0.0.0
s6-portable-utils 2.0.0.0
skalibs 2.0.0.0
Before this patch, building talloc on darwin (OS X 10.8.5) results in:
gcc -dynamiclib -Wl,-search_paths_first -undefined error -o libtalloc.dylib.2.0.1 ./talloc.o ./libreplace/replace.o ./libreplace/snprintf.o ./libreplace/getpass.o ./libreplace/strptime.o -install_namelibtalloc.dylib.2
gcc: error: unrecognized command line option '-install_namelibtalloc.dylib.2'
make: *** [libtalloc.dylib.2.0.1] Error 1
Setting SONAMEFLAG to either "-install_name " (note trailing space), or
"-Wl,-install_name," results in a successful build. The latter seems
more clear.
* perl is required at build time on darwin. Copied from the
mysql/5.5.x.nix
* CMake on darwin creates shared libraries with relative 'install_name'
paths which are made absolute by fixDarwinDylibNames.
See http://answers.opencv.org/question/4134/cmake-install_name_tool-absolute-path-for-library/
* The asm patch was needed to compile on darwin, though I do not
understand what is going on. Error before the patch:
[ 15%] Building C object mysys/CMakeFiles/mysys.dir/my_context.c.o
.../nix-build-mariadb-10.0.13.drv-1/mariadb-10.0.13/mysys/my_context.c:207:Unknown pseudo-op: .cfi_escape
.../nix-build-mariadb-10.0.13.drv-1/mariadb-10.0.13/mysys/my_context.c:207:Rest of line ignored. 1st junk character valued 48 (0).
make[2]: *** [mysys/CMakeFiles/mysys.dir/my_context.c.o] Error 1
s6-networking is a suite of small networking utilities for Unix systems
including UCSPI Unix and TCP tools, access control tools, and network
time management utilities.
s6-portable-utils is a set of tiny general Unix utilities, often
performing well-known tasks such as cut and grep, but optimized for
simplicity and small size.