Wow, thanks a lot John!
Will give it a shot and get back to you!

On 15 July 2016 at 18:05, John Sirois <[email protected]> wrote:

> Here's a workaround for you to try.  If this works, I can modify the
> Aurora pants build without modifying pants itself to do all this
> automatically.
>
> The basic idea is that pants probes a list of URLs for pre-built
> binaries.  You can add a local HTTP server to the list and point that
> server at the thrift binary Aurora builds for gradle via make.
> Below is how you do this:
>
> 0.) Ensure the Aurora gradle thrift is built.
> $ ./build-support/thrift/thriftw 0.9.1 --version
> Thrift version 0.9.1
>
> 1.) Just for reference, the pants options in-play here
> $ ./pants options | grep binaries
> binaries.baseurls = ['https://dl.bintray.com/pantsbuild/bin/build-support']
> (from HARDCODED)
> binaries.fetch_timeout_secs = 30 (from HARDCODED)
> binaries.path_by_id = {} (from NONE)
> $ ./pants options | grep binary
> thrift-binary.supportdir = bin/thrift (from HARDCODED)
> thrift-binary.version = 0.9.1 (from CONFIG in pants.ini)
>
> 2.) Grab machine name pants will try to find your thrift binary under
> (here is an example from my machine with result 'x86_64' - yours will be
> different and arm-ey):
> $ python2 -c 'import os; sysname, _, _, _, machine = os.uname(); print
> sysname.lower(), machine'
> linux x86_64
>
> 3.) Edit pants.ini to tell pants where to look for binaries for your
> machine:
> $ git diff -U1
> diff --git a/pants.ini b/pants.ini
> index de0ab30..e2cd94e 100644
> --- a/pants.ini
> +++ b/pants.ini
> @@ -32,2 +32,6 @@ backend_packages: [
>
> +[binaries]
> +baseurls: +['http://localhost:9999']
> +path_by_id: {('linux', 'x86_64'): ['local']}
> +
>  [thrift-binary]
>
> 4.) Setup the URL you told pants about above:
> $ mkdir -p build-support/thrift/serve/bin/thrift/local/0.9.1
> $ ln -s $PWD/build-support/thrift/thrift-0.9.1/compiler/cpp/thrift
> build-support/thrift/serve/bin/thrift/local/0.9.1/thrift
> $ cd build-support/thrift/serve && (nohup python2 -m SimpleHTTPServer 9999
> >&/tmp/thrift.serve &) && cd -
>
> 5.) Run pants and confirm download of a thrift binary for your machine:
> $ ./pants binary src/main/python/::
>
> 10:58:44 00:00 [main]
>                (To run a reporting server: ./pants server)
> 10:58:44 00:00   [setup]
> 10:58:44 00:00     [parse]
>                Executing tasks in goals: binary
> 10:58:44 00:00   [binary]
> 10:58:44 00:00     [binary-prep-command]
> 10:58:44 00:00     [python-binary-create]
> 10:58:44 00:00       [cache]
>                    No cached artifacts for 8 targets.
>                    Invalidated 8 targets.
> 10:58:44 00:00       [chroot]INFO] Attempting to fetch thrift binary from:
> http://localhost:9999/bin/thrift/local/0.9.1/thrift ...
> 100% .................................................. 31661 KB 0.364s
> INFO] Fetched thrift binary from:
> http://localhost:9999/bin/thrift/local/0.9.1/thrift .
> ...
>
> Let me know what you get!
>
> On Thu, Jul 14, 2016 at 6:24 AM, Yiannis Gkoufas <[email protected]>
> wrote:
>
>> Cool, can you imagine a way to work around this?
>> I have to customize pants itself right?
>>
>> On 14 July 2016 at 11:54, Erb, Stephan <[email protected]>
>> wrote:
>>
>>> Yeah, that sounds like it could be the issue here.
>>>
>>>
>>>
>>> *From: *Yiannis Gkoufas <[email protected]>
>>> *Reply-To: *"[email protected]" <[email protected]>
>>> *Date: *Thursday 14 July 2016 at 12:28
>>> *To: *"[email protected]" <[email protected]>
>>> *Subject: *Re: Build thermos executor on ARM
>>>
>>>
>>>
>>> Hi there,
>>>
>>>
>>>
>>> sure:
>>>
>>>
>>>
>>> 10:26:45 00:00   [binary]
>>>
>>> 10:26:45 00:00     [binary-jvm-prep-command]
>>>
>>> 10:26:46 00:01       [jvm_prep_command]
>>>
>>> 10:26:46 00:01     [binary-prep-command]
>>>
>>> 10:26:46 00:01     [python-binary-create]
>>>
>>>                    Detected interpreter /usr/bin/python2.7: CPython-2.7.6
>>>
>>> 10:26:46 00:01       [chroot]
>>>
>>>                      Building chroot for
>>> [PythonBinary(BuildFileAddress(BuildFile(src/main/python/apache/aurora/executor/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)),
>>> thermos_executor))]:
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(src/main/python/apache/aurora/executor/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), _executor))
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(api/src/main/thrift/org/apache/aurora/gen/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), gen))
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(src/main/python/apache/aurora/common/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), common))
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(src/main/python/apache/aurora/config/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), config))
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(src/main/python/apache/thermos/config/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), config))
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(src/main/python/apache/thermos/common/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), common))
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(src/main/python/apache/thermos/core/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), core))
>>>
>>>                        Dumping library:
>>> PythonLibrary(BuildFileAddress(BuildFile(src/main/python/apache/thermos/monitoring/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)), monitoring))
>>>
>>>                        Dumping library:
>>> PythonBinary(BuildFileAddress(BuildFile(src/main/python/apache/aurora/executor/BUILD,
>>> FileSystemProjectTree(/home/ubuntu/apache-aurora-0.15.0)),
>>> thermos_executor))
>>>
>>> FAILURE: Update --binaries-path-by-id to find binaries for Linux armv7l
>>> 3.10.40
>>>
>>>
>>>
>>> If I am not completely wrong, I think pants is looking one of the
>>> architectures outlined here:
>>>
>>>
>>>
>>>
>>> https://github.com/pantsbuild/pants/blob/master/src/python/pants/binaries/binary_util.py#L24
>>>
>>>
>>>
>>> and probably that's why it fails
>>>
>>>
>>>
>>> On 14 July 2016 at 11:17, Erb, Stephan <[email protected]>
>>> wrote:
>>>
>>> Cool, ARM J. Please try to run it like this, so that we get a little
>>> bit more output:
>>>
>>>
>>>
>>> PEX_VERBOSE=1 ./pants -ldebug binary
>>> src/main/python/apache/aurora/executor:thermos_executor
>>>
>>>
>>>
>>> *From: *Yiannis Gkoufas <[email protected]>
>>> *Reply-To: *"[email protected]" <[email protected]>
>>> *Date: *Thursday 14 July 2016 at 10:44
>>> *To: *"[email protected]" <[email protected]>
>>> *Subject: *Build thermos executor on ARM
>>>
>>>
>>>
>>> Hi guys,
>>>
>>>
>>>
>>> I have been trying to get aurora working on ARM processors.
>>>
>>> I had no problem with the scheduler, but I didn't manage to compile the
>>> thermos executor.
>>>
>>>
>>>
>>> When I give:
>>>
>>>
>>>
>>> ./pants binary src/main/python/apache/aurora/executor:thermos_executor
>>>
>>>
>>>
>>> I get back:
>>>
>>>
>>>
>>> FAILURE: Update --binaries-path-by-id to find binaries for Linux armv7l
>>> 3.10.40
>>>
>>>
>>>
>>> Let me know if you have any hints on how to workaround this.
>>>
>>>
>>>
>>> Thanks!
>>>
>>>
>>>
>>>
>>
>

Reply via email to