It looks like happening in macOS only because macOS has the same command
of tools but entirely different on the parameters or usage. I personally
don't build Heron on my Macbook but I know the frustration of doing that
if the project does not support macOS natively.
I believe this is just a missing piece for the bazel configure for using
special parameters on different distros, just like what I have
encountered on Debian as well. I would vote for a yes to add a distro
check before running `mktemp` here, if I have a voting right here. :P
Regards J,
*Windham Wong*
OSWE, OSCP, GCIA, Specialist in Cybersecurity
Co-Founder, Managing Partner of
*Stormeye.io, Hong Kong Managed Security Operation Center Limited*
Specialist in Cybersecurity, Log Management and SIEM System
<https://www.stormeye.io>
Email // [email protected]
Phone // +852_3590_2212_|_+852_9832_0707 <tel:+85235902212>
Fax // +852_3590_2202 <tel:+852_3590_2202>
On 27/2/2022 3:18, Josh Fischer wrote:
Is that the suggested fix for this? Or is this just a short term solution?
I thought we had Bazel conditionals that used the appropriate tools based
on the distro Heron is being built on.
On Sat, Feb 26, 2022 at 1:50 AM Nicholas Nezis<[email protected]>
wrote:
It seems that `mktemp` on Darwin has different arguments compared to Linux.
If you `brew install coreutils` and set `gnubin` on your `PATH`, you might
be able to get matching `mktemp` as you'd have on linux.
On Fri, Feb 25, 2022 at 9:06 PM Josh Fischer<[email protected]> wrote:
I tried to build off master expecting errors since I'm on an M1. Anyone
seen this "mktmp" error before? Python version is 3.8.x. You'll see the
full Python version at the bottom of the shell snippet.
bazel build --config=darwin_nostyle scripts/packages:binpkgs
--host_javabase=@local_jdk//:jdk --verbose_failures
INFO: Analyzed target //scripts/packages:binpkgs (0 packages loaded, 0
targets configured).
INFO: Found 1 target...
ERROR:
/Users/joshfischer/Source/apache/incubator-heron/tools/rules/pex/BUILD:57:8:
Bootstrapping pex //tools/rules/pex:pex_wrapper [for host] failed: (Exit
1): bash failed: error executing command
(cd
/private/var/tmp/_bazel_joshfischer/70e9bd6aaead2621044e8d790ac25401/execroot/org_apache_heron
&& \
exec env - \
PATH=' left out for brevity
/bin/bash -c 'source
external/bazel_tools/tools/genrule/genrule-setup.sh;
OUTDIR=$(cd bazel-out/host/bin/tools/rules/pex && pwd)
# Workaround really long shebang lines breaking on linux:
# Use a /tmp path, but keep the actual venv inside the bazel outdir.
# Avoids having to worry about cleanup, even if sandboxing is off.
TMPF=$(mktemp -d -p /tmp pex.XXXXX)
ln -sf "$OUTDIR" "$TMPF"
VENV="${TMPF}/venv"
python3 -m venv $VENV --clear
VIRTUAL_ENV_DISABLE_PROMPT=1 source "$VENV/bin/activate"
TEMP="bazel-out/host/bin/tools/rules/pex/pexbuild"
pip install pex --quiet --no-cache-dir --no-index
--find-links
$(dirname external/pex_pkg/file/pex-2.1.62-py2.py3-none-any.whl)
--find-links $(dirname external/wheel_pkg/file/wheel-0.36.1.tar.gz)
--find-links $(dirname
external/setuptools_pkg/file/setuptools-51.0.0-py3-none-any.whl)
# Work around setuptools insistance on writing to the source directory,
# which is discouraged by Bazel (and annoying)
cp -r $(dirname tools/rules/pex/wrapper/setup.py)
bazel-out/host/bin/tools/rules/pex/.pex_wrapper
# Use the bootstrapped pex to build pex_wrapper.pex
pex bazel-out/host/bin/tools/rules/pex/.pex_wrapper
--disable-cache
--no-index --entry-point=pex_wrapper
--output-file=bazel-out/host/bin/tools/rules/pex/pex_wrapper.pex
--find-links $(dirname
external/pex_pkg/file/pex-2.1.62-py2.py3-none-any.whl)
--find-links
$(dirname
external/setuptools_pkg/file/setuptools-51.0.0-py3-none-any.whl)
--find-links $(dirname
external/requests_pkg/file/requests-2.27.1-py2.py3-none-any.whl)
--find-links $(dirname
external/charset_pkg/file/charset_normalizer-2.0.10-py3-none-any.whl)
--find-links $(dirname
external/idna_pkg/file/idna-3.3-py2.py3-none-any.whl)
--find-links
$(dirname external/urllib3_pkg/file/urllib3-1.26.8-py2.py3-none-any.whl)
--find-links $(dirname
external/certifi_pkg/file/certifi-2021.10.8-py2.py3-none-any.whl)
--find-links $(dirname external/wheel_pkg/file/wheel-0.36.1.tar.gz)')
Execution platform: @local_config_platform//:host
mktemp: illegal option -- p
usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
mktemp [-d] [-q] [-u] -t prefix
Target //scripts/packages:binpkgs failed to build
INFO: Elapsed time: 0.245s, Critical Path: 0.03s
INFO: 14 processes: 14 internal.
FAILED: Build did NOT complete successfully
MacBook-Pro:incubator-heron joshfischer$ python -V
Python 3.8.12
On Fri, Feb 25, 2022 at 12:08 PM Saad Ur Rahman <[email protected]
wrote:
I just checked the diff on the PR and it is in fact Python 3.8 - I
stand
corrected. I am not sure about the ASF infra issues but I believe it
was
related to PEX and Python. The recent PRs should, hopefully, fix the
issue.
On Fri, Feb 25, 2022 at 12:09 PM Josh Fischer<[email protected]>
wrote:
Ahh, 3.9, even better.
Random question: did we ever figure out what the build issue was
when
building heron in containers on the Apache jenkins instance?
On Fri, Feb 25, 2022 at 11:05 AM Saad Ur Rahman <
[email protected]
wrote:
It is a drastic improvement, but a minor correction on the base
version
of
Python: it is currently 3.9. We really should run a test build on
the
ASF
build infrastructure to see if it builds smoothly.
On Fri, Feb 25, 2022 at 11:48 AM Josh Fischer <[email protected]
wrote:
Fantastic. This helps remove the pressure of the native Python
rules
for
the moment.
On Fri, Feb 25, 2022 at 10:44 AM Saad Ur Rahman <
[email protected]
wrote:
Correct, the base Python version was bumped up to 3.8. It was
the
last
major PR merged in #3646 (
https://github.com/apache/incubator-heron/pull/3646). I
believe
the
base
Ubuntu container version is now 20.04 LTS.
On Fri, Feb 25, 2022 at 11:36 AM Josh Fischer <
[email protected]
wrote:
I remember reading somewhere that during a meet up that some
work
was
done
to upgrade the current supported version of Python within the
Heron
code
base. Am I remembering this correctly?--
Sent from A Mobile Device
--
Sent from A Mobile Device
--
Sent from A Mobile Device