Ye olde travis config.
Ye olde travis config.

You'll never guess what happens next.

The remaining sloppy (non-containerized) parts of the build involve C libraries FAIL ON TRAVIS because of DIFFERENT LIBC VERSIONS which are being referenced during the final link.    YEEEAAAAAHHHH.

No really though:

"""
$ ./goad
/home/travis/gopath/src/github.com/polydawn/danggit/parts/libgit2/target/libgit2.a(pack-objects.c.o): In function `git__timer':
pack-objects.c:(.text+0x30e): undefined reference to `clock_gettime'
/home/travis/gopath/src/github.com/polydawn/danggit/parts/libgit2/target/libgit2.a(smart_protocol.c.o): In function `git__timer':
smart_protocol.c:(.text+0xed): undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
"""

Stackoverflow tells me that this is because of something that changed in glibc2.17 (source: https://stackoverflow.com/questions/2418157/ubuntu-linux-c-error-undefined-reference-to-clock-gettime-and-clock-settim/32649327#32649327 ).

This is why you should always pin all deps.  Yes, even libc.  glibc will change.  It will change in ways that will break your build.  Here's one of them.  It's because building on travis has exposed me to an older version, sure, and I don't fault the glibc project's backcompat for this, but I *do* fault *myself* for not properly managing this reference, and now I have to go be janitor.  The build process isn't done until all deps are pinned.  Even libc.

Signed-off-by: Eric Myhre <2346ad27d7568ba9896f1b7da6b5991251debdf2@exultant.us>

polydawn/danggit,polydawn/danggit