Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add build script for Thrift 0.11.0 #83

Merged
merged 7 commits into from
Nov 6, 2018

Conversation

StephanErb
Copy link
Contributor

Build tested successfully on MacOS Sierra and Centos 6 (pantsbuild/centos6:latest).

As all existing Thrift binaries follow the old scheme of a single script in the root of the repo, I followed the same approach here. Please let me know if this should be changed.

Copy link
Contributor

@jsirois jsirois left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Stephan! I'm going to add Danny to this review since he did the cleanup work that moved build scripts out of the root and will be the best guide to making an exception here or not.

sh ./configure \
--disable-shared \
--without-cpp \
--without-c_glib \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if these were always neglected or new targets but it would be good to add:

--without-qt4 \
--without-qt5 \

We're safe in the centos image I believe, but just in case the OSX-using builder has qt installed.

@stuhood
Copy link
Member

stuhood commented Oct 17, 2018

As all existing Thrift binaries follow the old scheme of a single script in the root of the repo, I followed the same approach here. Please let me know if this should be changed.

@StephanErb : This should be changed. Sorry!

80a0051 is a good example of how to do this.

@cosmicexplorer
Copy link
Contributor

cosmicexplorer commented Oct 17, 2018

rationale, not what to do yet. what I would like to be done before merging is below

The use of any functions from utils.v1.bash is 100% optional, as is splitting the script into functions -- those are things I did in order to make it easier for me personally to write repeatable scripts.

As mentioned, one thing that we would like to maintain is placing scripts in the directories they extract their contents to -- this is shown in the commit 80a0051 linked above. Another thing that I would really appreciate is to make all the version strings used in the script into command-line arguments to the script, and then provide a build.sh script in the same directory that passes in those version strings. The other utility of a build.sh script is that you can run yum install commands in there instead of just in comments (and I personally find this separation useful).

I don't want to attach too much extra work to this PR, especially since this requires building multiple other tools. For new thrift versions we contribute here in the future, we can incrementally move the build script towards using functions (for example).

here is what I would specifically want to be done

So for this PR I would only want to see the directory placement/symlinking, and then a separation into a build.sh which invokes a template script with each relevant version string (which looks like just requires versions for thrift, bison, byacc, yacc, and flex?). Both of these processes are described in the workflow section of the README.

Please let me know if the above is unclear, if this is a huge hassle to do, or if there's additional work I haven't considered.

@cosmicexplorer
Copy link
Contributor

cosmicexplorer commented Oct 22, 2018

Hey, just as a quick example of the above, I just made #84 to provide gnu make (for a pants PR). It uses a lot of the functions in utils.v1.bash, but none of that is really necessary at all beyond the directory structure/symlinking. There is definitely a lot of automation that could be done here that we have erred against creating so far for the sake of reproducibility (and also, for the sake of easier upgrading -- hence the creation of the script parameterized by version strings). We're totally open to alternatives, I'm aware this is a lot of structure to go through.

@StephanErb
Copy link
Contributor Author

Thanks I will take a look. As this is a pretty busy week for me, it will probably take a few days until I can pick up the suggestions.

@cosmicexplorer
Copy link
Contributor

cosmicexplorer commented Oct 23, 2018 via email

@StephanErb
Copy link
Contributor Author

@cosmicexplorer I have updated the PR trying to follow the conventions of the other PRs. Please let me know if this matches what you had in mind.

Copy link
Contributor

@cosmicexplorer cosmicexplorer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for making the change, this all seems great! It fails to build on my osx 10.14 machine with the error:

checking for bison version >= 2.5... no
configure: error: Bison version 2.5 or higher must be installed on the system!

I haven't looked into why this is the case yet, I'm sure it's not an issue, I just woke up. But the structure of the PR looks good to go.

@@ -82,6 +82,9 @@ function do_extract {
*.tar.gz)
tar zxf "$archive_path"
;;
*.tgz)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding this useful extension!

build-support/bin/thrift/mac/10.12/0.11.0/build-thrift.sh Outdated Show resolved Hide resolved
Co-Authored-By: StephanErb <github@stephanerb.eu>
@StephanErb
Copy link
Contributor Author

@cosmicexplorer The bison error is strange. Did maybe the bison build fail silently for you?

Copy link
Contributor

@cosmicexplorer cosmicexplorer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did maybe the bison build fail silently for you?

The build succeeded, but the produced bison continues to abort immediately when I try to run it, even after playing around with some of the configure flags. I don't think that should block this landing, though -- this could just be something strange on my machine. However, if anyone else watching could comment after running the build script in its current state on an osx machine to confirm that it works on another machine, that would be great.

@StephanErb
Copy link
Contributor Author

Is there a way to get this unblocked? Unfortunately I am stuck on an older MacOS version so I cannot reproduce the build failures seen by Danny

@stuhood
Copy link
Member

stuhood commented Nov 5, 2018

I see the same issue on 10.14, unfortunately. bison aborts with:

Process 39466 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00007fff6f71201e libsystem_kernel.dylib`__abort_with_payload + 10
libsystem_kernel.dylib`__abort_with_payload:
->  0x7fff6f71201e <+10>: jae    0x7fff6f712028            ; <+20>
    0x7fff6f712020 <+12>: movq   %rax, %rdi
    0x7fff6f712023 <+15>: jmp    0x7fff6f6f4e67            ; cerror_nocancel
    0x7fff6f712028 <+20>: retq
Target 0: (bison) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00007fff6f71201e libsystem_kernel.dylib`__abort_with_payload + 10
    frame #1: 0x00007fff6f70d561 libsystem_kernel.dylib`abort_with_payload_wrapper_internal + 82
    frame #2: 0x00007fff6f70d593 libsystem_kernel.dylib`abort_with_payload + 9
    frame #3: 0x00007fff6f61978f libsystem_c.dylib`_os_crash_fmt + 182
    frame #4: 0x00007fff6f64fb8e libsystem_c.dylib`__vfprintf + 16944
    frame #5: 0x00007fff6f67413b libsystem_c.dylib`__v2printf + 475
    frame #6: 0x00007fff6f65956f libsystem_c.dylib`_vsnprintf + 410
    frame #7: 0x00007fff6f6595cc libsystem_c.dylib`vsnprintf_l + 41
    frame #8: 0x00007fff6f64a4d5 libsystem_c.dylib`snprintf + 156
    frame #9: 0x0000000100044de0 bison`vasnprintf(resultbuf="/Users/stuhood/src/pantsbuild-binaries/build-support/bin/thrift/mac/10.12/0.11.0/bison-2.5.1-osx/bison-2.5.1/install_dir/bin/bison����", lengthp=<unavailable>, format=<unavailable>, args=<unavailable>) at vasnprintf.c:0 [opt]
    frame #10: 0x0000000100041293 bison`rpl_fprintf(fp=0x00007fffa165a240, format=<unavailable>) at fprintf.c:45 [opt]
    frame #11: 0x0000000100040eb2 bison`error(status=0, errnum=0, message="%s: missing operand") at error.c:313 [opt]
    frame #12: 0x00000001000072db bison`getargs(argc=1, argv=0x00007ffeefbff480) at getargs.c:0 [opt]
    frame #13: 0x000000010000bdc5 bison`main(argc=1, argv=0x00007ffeefbff480) at main.c:80 [opt]
    frame #14: 0x00007fff6f5bc085 libdyld.dylib`start + 1

@stuhood
Copy link
Member

stuhood commented Nov 5, 2018

And the same with bison 2.7.1.

EDIT: And as a further datapoint, it looks like the build-thrift-0.10.0.sh script sees the same failure on my machine (OSX 10.14). So it looks like perhaps this is an issue with bison+mojave.

@stuhood
Copy link
Member

stuhood commented Nov 6, 2018

As a datapoint, bison-3.2 seems to work on Mojave.

Successfully tested on macOS Sierra and Mojave.
@StephanErb
Copy link
Contributor Author

@stuhood thanks for investigating! I have pushed a change to use bison 3.2 for MacOS. However I have left it at 2.5.1 for the linux build als the new bison fails to compile in the ancient CentOS 6 image.

Copy link
Member

@stuhood stuhood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'm fine with using different bison versions on the two platforms.

I've confirmed that this works on 10.14 and in the linux image. @StephanErb : since I'm going to be building on 10.14, would you mind adjusting the symlinks such that the 10.14 binary is the actual copy, and the rest are symlinks? Then I'll merge.

Thanks!

@StephanErb
Copy link
Contributor Author

@stuhood done.

Thanks for handling the builds!

@stuhood stuhood merged commit 6075ed4 into pantsbuild:master Nov 6, 2018
@stuhood
Copy link
Member

stuhood commented Nov 6, 2018

Synced to s3:

upload: bin/thrift/linux/x86_64/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/linux/x86_64/0.11.0/build.sh
upload: bin/thrift/linux/x86_64/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/linux/x86_64/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.11/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.11/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.11/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.11/0.11.0/build.sh
upload: bin/thrift/mac/10.10/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.10/0.11.0/build.sh
upload: bin/thrift/mac/10.10/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.10/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.12/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.12/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.12/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.12/0.11.0/build.sh
upload: bin/thrift/mac/10.13/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.13/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.13/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.13/0.11.0/build.sh
upload: bin/thrift/mac/10.12/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/mac/10.12/0.11.0/thrift
upload: bin/thrift/mac/10.14/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.14/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.14/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.14/0.11.0/build.sh
upload: bin/thrift/mac/10.11/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/mac/10.11/0.11.0/thrift
upload: bin/thrift/mac/10.10/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/mac/10.10/0.11.0/thrift
upload: bin/thrift/mac/10.8/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.8/0.11.0/build.sh
upload: bin/thrift/mac/10.8/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.8/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.9/0.11.0/build-thrift.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.9/0.11.0/build-thrift.sh
upload: bin/thrift/mac/10.14/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/mac/10.14/0.11.0/thrift
upload: bin/thrift/mac/10.9/0.11.0/build.sh to s3://binaries.pantsbuild.org/bin/thrift/mac/10.9/0.11.0/build.sh
upload: bin/thrift/mac/10.13/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/mac/10.13/0.11.0/thrift
upload: bin/thrift/linux/x86_64/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/linux/x86_64/0.11.0/thrift
upload: bin/thrift/mac/10.8/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/mac/10.8/0.11.0/thrift
upload: bin/thrift/mac/10.9/0.11.0/thrift to s3://binaries.pantsbuild.org/bin/thrift/mac/10.9/0.11.0/thrift

cosmicexplorer added a commit to cosmicexplorer/binaries that referenced this pull request Nov 16, 2020
Add buildozer 0.6.0-80c7f0d45d7e40fa1f7362852697d4a03df557b3 (pantsbuild#56)

Synchronize docker instructions with pantsbuild/pants. (pantsbuild#58)

Add clang (pantsbuild#57)

Switch to a workflow without committed binaries (pantsbuild#59)

* Update the README to indicate that no new binaries should be committed here.
* Formalize the script location to improve maintainability.

Add Go 1.9.4 and 1.10 (pantsbuild#61)

Here we add `build.sh` scripts for Go 1.9.4 and 1.10, and a helper
script for generating the `build.sh` scripts. We also clarify in the
docs what platforms are supported (i386 and macOS pre 10.8 are not
supported going forward).

update some of the commands described in the README (pantsbuild#63)

add gcc 7.3.0 and clang 6.0.0 cross platform, binutils 2.30 for linux, edit clang 5.0.1 to conform to pantsbuild#59 (pantsbuild#62)

```
$ ./sync-s3.sh
upload: bin/clang/linux/x86_64/6.0.0/build-cmake.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-cmake.sh
upload: bin/clang/linux/x86_64/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build.sh
upload: bin/binutils/linux/x86_64/2.30/build.sh to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/build.sh
upload: bin/binutils/linux/x86_64/2.30/build-binutils.sh to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/build-binutils.sh
upload: bin/binutils/linux/x86_64/2.30/binutils.tar.gz to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/binutils.tar.gz
upload: bin/clang/mac/10.10/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/build-clang.sh
upload: bin/clang/mac/10.10/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/build.sh
upload: bin/clang/linux/x86_64/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.11/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/build-clang.sh
upload: bin/clang/mac/10.11/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/build.sh
upload: bin/clang/linux/x86_64/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-clang.sh
upload: bin/clang/linux/x86_64/6.0.0/build-clang-for-linux-with-cmake.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-clang-for-linux-with-cmake.sh
upload: bin/clang/mac/10.12/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/build-clang.sh
upload: bin/clang/mac/10.12/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/build.sh
upload: bin/clang/mac/10.10/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.12/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.13/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/build-clang.sh
upload: bin/clang/mac/10.13/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/build.sh
upload: bin/clang/mac/10.11/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.8/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/build.sh
upload: bin/clang/mac/10.8/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/build-clang.sh
upload: bin/clang/mac/10.13/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.9/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/build-clang.sh
upload: bin/clang/mac/10.9/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/build.sh
upload: bin/clang/mac/10.8/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/clang.tar.gz
upload: bin/gcc/linux/x86_64/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/build.sh
upload: bin/gcc/linux/x86_64/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/build-gcc.sh
upload: bin/clang/mac/10.9/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/clang.tar.gz
upload: bin/gcc/mac/10.10/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.10/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/build.sh
upload: bin/gcc/mac/10.11/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/build-gcc.sh
upload: bin/gcc/linux/x86_64/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.11/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/build.sh
upload: bin/gcc/mac/10.12/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.12/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/build.sh
upload: bin/gcc/mac/10.10/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.11/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.13/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.13/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/build.sh
upload: bin/gcc/mac/10.12/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.8/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.8/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/build.sh
upload: bin/gcc/mac/10.13/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.9/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.9/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/build.sh
upload: bin/gcc/mac/10.8/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.9/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/gcc.tar.gz
```

add xz package (pantsbuild#66)

cloc and isort are now fetched from `bin`, but without the platform-specific path component. (pantsbuild#68)

add --disable-rpath when configuring xz (pantsbuild#71)

This removes the need to set `DYLD_LIBRARY_PATH` or `LD_LIBRARY_PATH` in pantsbuild/pants#5936. The `xz` binary will use the version of `xz` and `liblzma` in the installation directory when invoked.

add xz wrapper script to set the library path (pantsbuild#72)

See pantsbuild#71, where we added `--disable-rpath` to `xz` to stop it from using a hardcoded library path at runtime. However, that still fails in Travis in pantsbuild/pants#5936 with the output:
```
INFO] Fetched llvm.tar.xz binary from: https://releases.llvm.org/6.0.0/clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz .
INFO] Extracting /home/travis/.cache/pants/bin/llvm/linux/x86_64/6.0.0/llvm.tar.xz to /home/travis/.cache/pants/bin/llvm/linux/x86_64/6.0.0/llvm .
xz: /lib/x86_64-linux-gnu/liblzma.so.5: version `XZ_5.2' not found (required by xz)
```
While we had removed the query for the hardcoded path, we still need to actually set our own path. We had been doing that on the pants side -- instead, this PR adds a (very short) python script at the path of the real `xz` binary (a suggestion from @illicitonion in that PR) which sets `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` appropriately, not clobbering any existing values. This works with the current version of pantsbuild/pants#5936 for me on osx and linux.

statically link xz (pantsbuild#74)

See pantsbuild#71, pantsbuild#72, pantsbuild#73. Our `xz` is picking up travis's `xz` installation and using its (incompatible) `liblzma` shared library. On the suggestion of @stuhood in pantsbuild/pants#5936, we statically link `xz` here to avoid ever having this problem ever again. Proof:
*linux*:
```
> ldd ./xz-5.2.4-linux/xz-install/bin/xz
        linux-vdso.so.1 (0x00007ffc865cd000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1fa385f000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f1fa34a3000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f1fa3cb4000)
```
*osx*:
```
> otool -L ./xz-5.2.4-linux/xz-install/bin/xz
./xz-5.2.4-linux/xz-install/bin/xz:
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
```

add llvm 6.0.0 package. (pantsbuild#75)

See pantsbuild/pants#5991. This adds the binary I should have provided when we added the ability to download `BinaryTool`s from external urls, in the exact same way we do it within Pants.

Upgrade isort to 4.3.4. (pantsbuild#76)

This adds support for more python3 stdlib symbols.

Also introduce a build script.

Fixup isort path structure.

Node.js 10.7.0 and Yarnpkg 1.7.0 (pantsbuild#80)

Four small scripts, each named "build.sh" have been added.  These will build a specific version of Node.js or Yarnpkg in the current directory.

Symlinks from older macOS to 10.13 are included.

Add build scripts and symlinks for Node 8.11.3 and Yarnpkg 1.6.0 (pantsbuild#81)

Adding Node v10.13.0 build scripts for Mac 10.8-10.13 and Linux X64 (pantsbuild#86)

Add go 1.10.5 (pantsbuild#87)

Add build script for Thrift 0.11.0 (pantsbuild#83)

Add build scripts and symlinks for Yarnpkg 1.12.3 (pantsbuild#89)

Add updated go versions to pants binaries (pantsbuild#90)

* Add updated go versions to pants binaries

* Expanded the mac_versions into a map to encode the OSX min version requirements of the latest builds of go.

Add build scripts and symlinks for Yarnpkg 1.16.0 (pantsbuild#91)

* Add build scripts and symlinks for Yarnpkg 1.16.0

Add go 1.12.7 (pantsbuild#92)

* Add go 1.12.7

Upgrade to cloc 1.82 (pantsbuild#93)

Add cloc 1.80 (pantsbuild#94)

The current version of cloc (version 1.82) has a bug where the --ignored
flag is not working properly ( AlDanial/cloc#401 ).
The pants test for the cloc goal tests this behavior, so as long as this
bug is not fixed upstream, pants will fail this test. I've confirmed
that version 1.80 of cloc does not have this bug, so we should be able
to use it until upstream cloc fixes the bug in a new verson.

Add go 1.13.8 for linux and mac 10.11+
cosmicexplorer added a commit to cosmicexplorer/binaries that referenced this pull request Nov 16, 2020
Add buildozer 0.6.0-80c7f0d45d7e40fa1f7362852697d4a03df557b3 (pantsbuild#56)

Synchronize docker instructions with pantsbuild/pants. (pantsbuild#58)

Add clang (pantsbuild#57)

Switch to a workflow without committed binaries (pantsbuild#59)

* Update the README to indicate that no new binaries should be committed here.
* Formalize the script location to improve maintainability.

Add Go 1.9.4 and 1.10 (pantsbuild#61)

Here we add `build.sh` scripts for Go 1.9.4 and 1.10, and a helper
script for generating the `build.sh` scripts. We also clarify in the
docs what platforms are supported (i386 and macOS pre 10.8 are not
supported going forward).

update some of the commands described in the README (pantsbuild#63)

add gcc 7.3.0 and clang 6.0.0 cross platform, binutils 2.30 for linux, edit clang 5.0.1 to conform to pantsbuild#59 (pantsbuild#62)

```
$ ./sync-s3.sh
upload: bin/clang/linux/x86_64/6.0.0/build-cmake.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-cmake.sh
upload: bin/clang/linux/x86_64/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build.sh
upload: bin/binutils/linux/x86_64/2.30/build.sh to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/build.sh
upload: bin/binutils/linux/x86_64/2.30/build-binutils.sh to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/build-binutils.sh
upload: bin/binutils/linux/x86_64/2.30/binutils.tar.gz to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/binutils.tar.gz
upload: bin/clang/mac/10.10/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/build-clang.sh
upload: bin/clang/mac/10.10/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/build.sh
upload: bin/clang/linux/x86_64/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.11/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/build-clang.sh
upload: bin/clang/mac/10.11/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/build.sh
upload: bin/clang/linux/x86_64/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-clang.sh
upload: bin/clang/linux/x86_64/6.0.0/build-clang-for-linux-with-cmake.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-clang-for-linux-with-cmake.sh
upload: bin/clang/mac/10.12/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/build-clang.sh
upload: bin/clang/mac/10.12/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/build.sh
upload: bin/clang/mac/10.10/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.12/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.13/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/build-clang.sh
upload: bin/clang/mac/10.13/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/build.sh
upload: bin/clang/mac/10.11/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.8/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/build.sh
upload: bin/clang/mac/10.8/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/build-clang.sh
upload: bin/clang/mac/10.13/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.9/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/build-clang.sh
upload: bin/clang/mac/10.9/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/build.sh
upload: bin/clang/mac/10.8/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/clang.tar.gz
upload: bin/gcc/linux/x86_64/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/build.sh
upload: bin/gcc/linux/x86_64/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/build-gcc.sh
upload: bin/clang/mac/10.9/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/clang.tar.gz
upload: bin/gcc/mac/10.10/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.10/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/build.sh
upload: bin/gcc/mac/10.11/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/build-gcc.sh
upload: bin/gcc/linux/x86_64/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.11/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/build.sh
upload: bin/gcc/mac/10.12/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.12/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/build.sh
upload: bin/gcc/mac/10.10/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.11/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.13/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.13/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/build.sh
upload: bin/gcc/mac/10.12/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.8/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.8/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/build.sh
upload: bin/gcc/mac/10.13/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.9/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.9/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/build.sh
upload: bin/gcc/mac/10.8/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.9/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/gcc.tar.gz
```

add xz package (pantsbuild#66)

cloc and isort are now fetched from `bin`, but without the platform-specific path component. (pantsbuild#68)

add --disable-rpath when configuring xz (pantsbuild#71)

This removes the need to set `DYLD_LIBRARY_PATH` or `LD_LIBRARY_PATH` in pantsbuild/pants#5936. The `xz` binary will use the version of `xz` and `liblzma` in the installation directory when invoked.

add xz wrapper script to set the library path (pantsbuild#72)

See pantsbuild#71, where we added `--disable-rpath` to `xz` to stop it from using a hardcoded library path at runtime. However, that still fails in Travis in pantsbuild/pants#5936 with the output:
```
INFO] Fetched llvm.tar.xz binary from: https://releases.llvm.org/6.0.0/clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz .
INFO] Extracting /home/travis/.cache/pants/bin/llvm/linux/x86_64/6.0.0/llvm.tar.xz to /home/travis/.cache/pants/bin/llvm/linux/x86_64/6.0.0/llvm .
xz: /lib/x86_64-linux-gnu/liblzma.so.5: version `XZ_5.2' not found (required by xz)
```
While we had removed the query for the hardcoded path, we still need to actually set our own path. We had been doing that on the pants side -- instead, this PR adds a (very short) python script at the path of the real `xz` binary (a suggestion from @illicitonion in that PR) which sets `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` appropriately, not clobbering any existing values. This works with the current version of pantsbuild/pants#5936 for me on osx and linux.

statically link xz (pantsbuild#74)

See pantsbuild#71, pantsbuild#72, pantsbuild#73. Our `xz` is picking up travis's `xz` installation and using its (incompatible) `liblzma` shared library. On the suggestion of @stuhood in pantsbuild/pants#5936, we statically link `xz` here to avoid ever having this problem ever again. Proof:
*linux*:
```
> ldd ./xz-5.2.4-linux/xz-install/bin/xz
        linux-vdso.so.1 (0x00007ffc865cd000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1fa385f000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f1fa34a3000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f1fa3cb4000)
```
*osx*:
```
> otool -L ./xz-5.2.4-linux/xz-install/bin/xz
./xz-5.2.4-linux/xz-install/bin/xz:
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
```

add llvm 6.0.0 package. (pantsbuild#75)

See pantsbuild/pants#5991. This adds the binary I should have provided when we added the ability to download `BinaryTool`s from external urls, in the exact same way we do it within Pants.

Upgrade isort to 4.3.4. (pantsbuild#76)

This adds support for more python3 stdlib symbols.

Also introduce a build script.

Fixup isort path structure.

Node.js 10.7.0 and Yarnpkg 1.7.0 (pantsbuild#80)

Four small scripts, each named "build.sh" have been added.  These will build a specific version of Node.js or Yarnpkg in the current directory.

Symlinks from older macOS to 10.13 are included.

Add build scripts and symlinks for Node 8.11.3 and Yarnpkg 1.6.0 (pantsbuild#81)

Adding Node v10.13.0 build scripts for Mac 10.8-10.13 and Linux X64 (pantsbuild#86)

Add go 1.10.5 (pantsbuild#87)

Add build script for Thrift 0.11.0 (pantsbuild#83)

Add build scripts and symlinks for Yarnpkg 1.12.3 (pantsbuild#89)

Add updated go versions to pants binaries (pantsbuild#90)

* Add updated go versions to pants binaries

* Expanded the mac_versions into a map to encode the OSX min version requirements of the latest builds of go.

Add build scripts and symlinks for Yarnpkg 1.16.0 (pantsbuild#91)

* Add build scripts and symlinks for Yarnpkg 1.16.0

Add go 1.12.7 (pantsbuild#92)

* Add go 1.12.7

Upgrade to cloc 1.82 (pantsbuild#93)

Add cloc 1.80 (pantsbuild#94)

The current version of cloc (version 1.82) has a bug where the --ignored
flag is not working properly ( AlDanial/cloc#401 ).
The pants test for the cloc goal tests this behavior, so as long as this
bug is not fixed upstream, pants will fail this test. I've confirmed
that version 1.80 of cloc does not have this bug, so we should be able
to use it until upstream cloc fixes the bug in a new verson.

Add go 1.13.8 for linux and mac 10.11+
cosmicexplorer added a commit to cosmicexplorer/binaries that referenced this pull request Nov 16, 2020
Add buildozer 0.6.0-80c7f0d45d7e40fa1f7362852697d4a03df557b3 (pantsbuild#56)

Synchronize docker instructions with pantsbuild/pants. (pantsbuild#58)

Add clang (pantsbuild#57)

Switch to a workflow without committed binaries (pantsbuild#59)

* Update the README to indicate that no new binaries should be committed here.
* Formalize the script location to improve maintainability.

Add Go 1.9.4 and 1.10 (pantsbuild#61)

Here we add `build.sh` scripts for Go 1.9.4 and 1.10, and a helper
script for generating the `build.sh` scripts. We also clarify in the
docs what platforms are supported (i386 and macOS pre 10.8 are not
supported going forward).

update some of the commands described in the README (pantsbuild#63)

add gcc 7.3.0 and clang 6.0.0 cross platform, binutils 2.30 for linux, edit clang 5.0.1 to conform to pantsbuild#59 (pantsbuild#62)

```
$ ./sync-s3.sh
upload: bin/clang/linux/x86_64/6.0.0/build-cmake.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-cmake.sh
upload: bin/clang/linux/x86_64/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build.sh
upload: bin/binutils/linux/x86_64/2.30/build.sh to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/build.sh
upload: bin/binutils/linux/x86_64/2.30/build-binutils.sh to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/build-binutils.sh
upload: bin/binutils/linux/x86_64/2.30/binutils.tar.gz to s3://binaries.pantsbuild.org/bin/binutils/linux/x86_64/2.30/binutils.tar.gz
upload: bin/clang/mac/10.10/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/build-clang.sh
upload: bin/clang/mac/10.10/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/build.sh
upload: bin/clang/linux/x86_64/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.11/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/build-clang.sh
upload: bin/clang/mac/10.11/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/build.sh
upload: bin/clang/linux/x86_64/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-clang.sh
upload: bin/clang/linux/x86_64/6.0.0/build-clang-for-linux-with-cmake.sh to s3://binaries.pantsbuild.org/bin/clang/linux/x86_64/6.0.0/build-clang-for-linux-with-cmake.sh
upload: bin/clang/mac/10.12/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/build-clang.sh
upload: bin/clang/mac/10.12/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/build.sh
upload: bin/clang/mac/10.10/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.10/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.12/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.12/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.13/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/build-clang.sh
upload: bin/clang/mac/10.13/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/build.sh
upload: bin/clang/mac/10.11/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.11/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.8/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/build.sh
upload: bin/clang/mac/10.8/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/build-clang.sh
upload: bin/clang/mac/10.13/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.13/6.0.0/clang.tar.gz
upload: bin/clang/mac/10.9/6.0.0/build-clang.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/build-clang.sh
upload: bin/clang/mac/10.9/6.0.0/build.sh to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/build.sh
upload: bin/clang/mac/10.8/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.8/6.0.0/clang.tar.gz
upload: bin/gcc/linux/x86_64/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/build.sh
upload: bin/gcc/linux/x86_64/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/build-gcc.sh
upload: bin/clang/mac/10.9/6.0.0/clang.tar.gz to s3://binaries.pantsbuild.org/bin/clang/mac/10.9/6.0.0/clang.tar.gz
upload: bin/gcc/mac/10.10/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.10/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/build.sh
upload: bin/gcc/mac/10.11/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/build-gcc.sh
upload: bin/gcc/linux/x86_64/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/linux/x86_64/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.11/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/build.sh
upload: bin/gcc/mac/10.12/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.12/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/build.sh
upload: bin/gcc/mac/10.10/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.10/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.11/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.11/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.13/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.13/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/build.sh
upload: bin/gcc/mac/10.12/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.12/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.8/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.8/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/build.sh
upload: bin/gcc/mac/10.13/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.13/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.9/7.3.0/build-gcc.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/build-gcc.sh
upload: bin/gcc/mac/10.9/7.3.0/build.sh to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/build.sh
upload: bin/gcc/mac/10.8/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.8/7.3.0/gcc.tar.gz
upload: bin/gcc/mac/10.9/7.3.0/gcc.tar.gz to s3://binaries.pantsbuild.org/bin/gcc/mac/10.9/7.3.0/gcc.tar.gz
```

add xz package (pantsbuild#66)

cloc and isort are now fetched from `bin`, but without the platform-specific path component. (pantsbuild#68)

add --disable-rpath when configuring xz (pantsbuild#71)

This removes the need to set `DYLD_LIBRARY_PATH` or `LD_LIBRARY_PATH` in pantsbuild/pants#5936. The `xz` binary will use the version of `xz` and `liblzma` in the installation directory when invoked.

add xz wrapper script to set the library path (pantsbuild#72)

See pantsbuild#71, where we added `--disable-rpath` to `xz` to stop it from using a hardcoded library path at runtime. However, that still fails in Travis in pantsbuild/pants#5936 with the output:
```
INFO] Fetched llvm.tar.xz binary from: https://releases.llvm.org/6.0.0/clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz .
INFO] Extracting /home/travis/.cache/pants/bin/llvm/linux/x86_64/6.0.0/llvm.tar.xz to /home/travis/.cache/pants/bin/llvm/linux/x86_64/6.0.0/llvm .
xz: /lib/x86_64-linux-gnu/liblzma.so.5: version `XZ_5.2' not found (required by xz)
```
While we had removed the query for the hardcoded path, we still need to actually set our own path. We had been doing that on the pants side -- instead, this PR adds a (very short) python script at the path of the real `xz` binary (a suggestion from @illicitonion in that PR) which sets `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` appropriately, not clobbering any existing values. This works with the current version of pantsbuild/pants#5936 for me on osx and linux.

statically link xz (pantsbuild#74)

See pantsbuild#71, pantsbuild#72, pantsbuild#73. Our `xz` is picking up travis's `xz` installation and using its (incompatible) `liblzma` shared library. On the suggestion of @stuhood in pantsbuild/pants#5936, we statically link `xz` here to avoid ever having this problem ever again. Proof:
*linux*:
```
> ldd ./xz-5.2.4-linux/xz-install/bin/xz
        linux-vdso.so.1 (0x00007ffc865cd000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1fa385f000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f1fa34a3000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f1fa3cb4000)
```
*osx*:
```
> otool -L ./xz-5.2.4-linux/xz-install/bin/xz
./xz-5.2.4-linux/xz-install/bin/xz:
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
```

add llvm 6.0.0 package. (pantsbuild#75)

See pantsbuild/pants#5991. This adds the binary I should have provided when we added the ability to download `BinaryTool`s from external urls, in the exact same way we do it within Pants.

Upgrade isort to 4.3.4. (pantsbuild#76)

This adds support for more python3 stdlib symbols.

Also introduce a build script.

Fixup isort path structure.

Node.js 10.7.0 and Yarnpkg 1.7.0 (pantsbuild#80)

Four small scripts, each named "build.sh" have been added.  These will build a specific version of Node.js or Yarnpkg in the current directory.

Symlinks from older macOS to 10.13 are included.

Add build scripts and symlinks for Node 8.11.3 and Yarnpkg 1.6.0 (pantsbuild#81)

Adding Node v10.13.0 build scripts for Mac 10.8-10.13 and Linux X64 (pantsbuild#86)

Add go 1.10.5 (pantsbuild#87)

Add build script for Thrift 0.11.0 (pantsbuild#83)

Add build scripts and symlinks for Yarnpkg 1.12.3 (pantsbuild#89)

Add updated go versions to pants binaries (pantsbuild#90)

* Add updated go versions to pants binaries

* Expanded the mac_versions into a map to encode the OSX min version requirements of the latest builds of go.

Add build scripts and symlinks for Yarnpkg 1.16.0 (pantsbuild#91)

* Add build scripts and symlinks for Yarnpkg 1.16.0

Add go 1.12.7 (pantsbuild#92)

* Add go 1.12.7

Upgrade to cloc 1.82 (pantsbuild#93)

Add cloc 1.80 (pantsbuild#94)

The current version of cloc (version 1.82) has a bug where the --ignored
flag is not working properly ( AlDanial/cloc#401 ).
The pants test for the cloc goal tests this behavior, so as long as this
bug is not fixed upstream, pants will fail this test. I've confirmed
that version 1.80 of cloc does not have this bug, so we should be able
to use it until upstream cloc fixes the bug in a new verson.

Add go 1.13.8 for linux and mac 10.11+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants