| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is applying the version 1.1 of the specification (https://reproducible-builds.org/specs/source-date-epoch/)
where the only timestamp that Bazel puts in the final targets is overridden by the value of SOURCE_DATE_EPOCH.
This change also remove the legacy SOURCE_DATE_EPOCH handling which wasn't really following
the spec.
Note that Bazel itself tries hard to remove all timestamps from intermediary binaries and
overridde SOURCE_DATE_EPOCH in most action, which is a not according to the version 1.0 of the spec
but according to the expected change for version 1.1.
RELNOTES: SOURCE_DATE_EPOCH (https://reproducible-builds.org/specs/source-date-epoch/) can
be used to override the timestamp used for stamped target (when using --stamp).
Fixes #2240.
Change-Id: I074e7905fa6745cc706f7391340aeae9188909ca
PiperOrigin-RevId: 176489717
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an absolute javabase is desired, the following set of rules can be used:
java_runtime_suite(name="suite", default=":runtime")
java_runtime(name="runtime", java_home=<path to the JDK>)
Then --javabase can be pointed to the java_runtime_suite() rule.
Alternatively, the java_runtime rule can reference a Make variable:
java_runtime(name="runtime", java_home="$(ABSOLUTE_JAVABASE)")
Then the Javabase can be specified on the command line like this:
--javabase=<your package>:suite --define=ABSOLUTE_JAVABASE=<path to the JDK>
RELNOTES[INC]: --javabase=<absolute path> and --host_javabase=<absolute path>
are not supported anymore. If you need this functionality java_runtime_suite(name="suite", default=":runtime") java_runtime(name="runtime", java_home=<path to the JDK>) is an alternative.
PiperOrigin-RevId: 171798416
|
|
|
|
|
|
|
|
|
| |
- Test if hash(bazel1) == hash(bazel2)
This ensure that the build of bazel is a fixed point.
Change-Id: I422dfc7ec5b95aa054a2677e59427cbd8cd4ef01
PiperOrigin-RevId: 166180529
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can't yet fully bootstrap Bazel on Cygwin, but
can build Bazel from scratch. Building Bazel with
Bazel fails because gcc isn't found where it's
believed to be -- /usr/bin is a mount in Cygwin
(to /bin), not a symlink or directory.
In this change I:
- added support for the Cygwin shell as a
bootstrap platform (recognize `uname`)
- updateed the bootstrap scripts to use "windows"
as the PLATFORM string, not "mingw"
- fixed the git lookup code
- removed some hardwired msys-style path
- added a cygpath call to convert $PWD to a
mixed-style (otherwise the bootstrap script
passes --client_cwd=/cygdrive/c/... to the
server and WindowsFileSystem.java wants to make
that relative to c:/cygwin64)
See https://github.com/bazelbuild/bazel/issues/2885
Change-Id: Icc71261ea4f0c6d4a9c0846551a7977ca6020331
PiperOrigin-RevId: 154273014
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, a stamped bazel binary contains the actual timestamp at build
time. This means, that building bazel we either include no version
information at all, or the binary contains a not reproducible time
stamp. Both are not acceptable from the point of view of a downstream
maintainer of a bazel package, where the requirement is that the package
be reproducible, but the binary still provide sensible version information.
Fortunately, there is a suggested standard to solve this problem taking
the "current time" from the SOURCE_DATE_EPOCH environment variable, if
set, rather than the actual time.
See https://reproducible-builds.org/specs/source-date-epoch/.
Honor this proposed standard, so that bazel can reasonably be packaged
downstream. See issue #2240.
Note that we only use the environment variable in our bootstrap script;
for bazel itself we communicate that information via an appropriate
option.
--
Change-Id: I55409a117285b9a3446421179c20f4e8c59088f8
Reviewed-on: https://cr.bazel.build/9467
PiperOrigin-RevId: 150896326
MOS_MIGRATED_REVID=150896326
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix 3 bugs to get bootstrapping working on Windows
after it was broken in bazel-0.4.4:
* Move the definition of PATHSEP to before the
code that overrides it for Windows
* Fix the Java code processing the --javahome flag
to recognize absolute Windows paths as absolute.
See: https://github.com/bazelbuild/bazel/issues/2520
* Do not propagate the JAVA_HOME value in
variables, because it contains spaces on Windows,
and when we pass the variable to Bazel, and it's
expanded to e.g. ... --foo=C:/Program Files,
these are interpreted as two args instead of one.
Also fix a bug that is just annoying, not causing
any trouble (on Windows):
* Silently swallow errors from the "rm -rf" in the
atexit functions
Also do some refactoring:
* Rename a variable (BAZEL_ARGS) and a method to
indicate they're private. They are not used from
anywhere else as far as I know -- no occurrences
in either the bazel or the continuous-integration
repos.
Fixes: https://github.com/bazelbuild/bazel/issues/2473
--
Change-Id: I309752cd7bbff0b5dd683ddb5573f3061350043c
Reviewed-on: https://cr.bazel.build/8797
PiperOrigin-RevId: 147345194
MOS_MIGRATED_REVID=147345194
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turns out, we couldn't run jarjar because the Java launcher script looks for the .jars in the runfiles and build-runfiles is stubbed out during bootstrapping.
The only reason why this worked at all is that sandboxing *also* doesn't work during bootstrapping but it causes the creation of symlinks that happened to be just in the right place for the Java launcher to find the .jars .
The fix is:
- Explicitly disable sandboxing during bootstrapping so that coincidences like this don't happen again
- Pass a --javabase and --host_javabase option during the bootstrap build so that we don't need any symlinks to access to JVM
- Invoke jarjar using its deploy jar instead of the launcher script.
That was fun.
--
PiperOrigin-RevId: 145083357
MOS_MIGRATED_REVID=145083357
|
|
|
|
|
|
| |
--
PiperOrigin-RevId: 144296949
MOS_MIGRATED_REVID=144296949
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When `compile.sh` builds bazel using bazel, it
copies the resulting binary to `output/bazel`.
However sometimes the convenience symlink
`bazel-bin` is not created, probably because an
old one is still around and cannot be deleted.
That is clearly a bug, but to work around it, the
bootstrap builder shouldn't attempt to rely on the
creation of these symlinks in the first place.
This change updates compile.sh to use `bazel info`
to locate the `bazel-bin` directory's real path,
and attempt to copy the bazel binary from there.
This works around
https://github.com/bazelbuild/bazel/issues/1827
--
MOS_MIGRATED_REVID=134398451
|
|
|
|
|
|
|
|
|
| |
Pass "-c opt" when building bazel.
Fixes https://github.com/bazelbuild/bazel/issues/1830
--
MOS_MIGRATED_REVID=134307054
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=130406085
|
|
|
|
|
|
|
| |
This helps a lot when trying to debug Bazel from an IDE.
--
MOS_MIGRATED_REVID=127529499
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the bootstrapping process so that setting the BAZEL_WRKDIR
environment variable will tell the bootstrap process to mostly write
to that directory---apart from adding the symlinks next to the WORKSPACE
file. So setting this variable will avoid the usual writes to random
places in the file system (like /tmp and the user's home directory).
--
Change-Id: I9d1af747e75cc2a7bb1af08308acc9dfd927e920
Reviewed-on: https://bazel-review.googlesource.com/#/c/3963
MOS_MIGRATED_REVID=127075535
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=120574676
|
|
|
|
|
|
|
|
| |
Once and for all, I tested it and re-tested should
be good.
--
MOS_MIGRATED_REVID=120381352
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Along the path, fix the build for JDK 7 and get rid of
most ugliness in the JDK 7 build. Now simply setting
JAVA_VERSION to 1.7 will build a JDK 7 compatible version.
Fixes #1159.
--
Change-Id: I9599283844a57d9e053f12d37445907f22a9232e
Reviewed-on: https://bazel-review.googlesource.com/#/c/3452
MOS_MIGRATED_REVID=120332747
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change disables --java_langtools, --javabuilder_top, --singlejar_top,
--genclass_top, and --ijar_top, and finishes replacing them with
java_toolchain.{javac,javabuilder,singlejar,genclass,ijar}.
RELNOTES: Replace --java_langtools, --javabuilder_top, --singlejar_top,
--genclass_top, and --ijar_top with
java_toolchain.{javac,javabuilder,singlejar,genclass,ijar}
--
MOS_MIGRATED_REVID=120154954
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks ci.bazel.io
While the basics for fixing the build is easy (just a few typos in packages building), fixing the test is a bit more tricky. I see only one solution for fixing the test: use a select statement that would select the good bazel version but that would always pull JavaBuilder as an external dependency when we do test.
Better roll this back then check the JavaBuilder 0.1.0 as a binary in third_party before rolling forward (a similar change is still needed to decouple running the test and building the binary for JDK 7)
*** Original change description ***
Refactor build for JDK 7
Now the JDK 7 tuning happens all in Bazel, removing logic
from the CI script. It uses remote repositories to access
JDK 7 dependencies.
--
MOS_MIGRATED_REVID=119773123
|
|
|
|
|
|
|
|
|
|
|
| |
Now the JDK 7 tuning happens all in Bazel, removing logic
from the CI script. It uses remote repositories to access
JDK 7 dependencies.
--
Change-Id: Iff590c6642ca5b2343aa15096f8fd837d1c80787
Reviewed-on: https://bazel-review.googlesource.com/#/c/3327
MOS_MIGRATED_REVID=119634530
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename run_silent to run and add a global VERBOSE variable that tunes
whether the run function prints its output or not.
This is for better debugging possibilities of Bazel's self-build, though
compile.sh remains silent as before and only displays the command's output
in case of an error.
--
MOS_MIGRATED_REVID=115599355
|
|
|
|
|
|
|
|
|
|
|
| |
On Windows, MSYS will mangle all arguments that resemble Unix paths
when executing (exec*()) non-msys executables (in an attempt to convert
them to Windows paths). This affects ``//src:bazel`` (it becomes
``/src:bazel``) but not ``src:bazel``. This CL converts to the latter in
bootstrapping shell scripts to work around this issue.
--
MOS_MIGRATED_REVID=113349821
|
|
|
|
|
|
|
|
|
|
|
| |
With latest change to the bootstrap compilation, some options
were wrongly moved around.
Tested with `source scripts/ci/build.sh; bazel_build` for JAVA_VERSION
1.7 and 1.8.
--
MOS_MIGRATED_REVID=112409496
|
|
|
|
|
|
|
| |
This remove all C++ compilation in bootstrapping itself.
--
MOS_MIGRATED_REVID=112407516
|
|
|
|
|
|
|
| |
This method is used only once now so inline.
--
MOS_MIGRATED_REVID=112396086
|
|
|
|
|
|
|
|
| |
This simplify the bootstrap process and remove a C++ tool from
the bootstrap binary.
--
MOS_MIGRATED_REVID=112394555
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=112239696
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Roll-forward with fix
*** Original change description ***
Automated [] rollback of [].
*** Reason for rollback ***
Broke tests on Mac: https://google.com/url?sa=D&q=http%3A%2F%2Fci.bazel.io%2Fjob%2FBazel%2FJAVA_VERSION%3D1.8%2CPLATFORM_NAME%3Ddarwin-x86_64%2F269%2Fconsole
*** Original change description ***
Speed-up bootstrap on OS X by removing tool compilation.
--
MOS_MIGRATED_REVID=111833617
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Broke tests on Mac: https://google.com/url?sa=D&q=http%3A%2F%2Fci.bazel.io%2Fjob%2FBazel%2FJAVA_VERSION%3D1.8%2CPLATFORM_NAME%3Ddarwin-x86_64%2F269%2Fconsole
*** Original change description ***
Speed-up bootstrap on OS X by removing tool compilation.
--
MOS_MIGRATED_REVID=110785493
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=110704529
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=108500888
|
|
|
|
|
|
|
| |
Bazel builds 4x faster than before, which also speeds up CI and running the test suite.
--
MOS_MIGRATED_REVID=107067655
|
|
|
|
|
|
|
|
|
|
|
| |
@bazel_tools repository.
The fix is to always compile tools when the Bazel binary is compiled and add the bootstrap arguments to bootstrap_test. This stil litters the git client with output files in random places, which is a bit difficult to fix, since //src:bazel expects these files to be there so that it can embed them into the output binary.
I didn't notice this issue because tools/jdk/*_deploy.jar is in the .gitignore file, thus, when "git status" reported nothing, I asumed I ran the build in a clean client.
--
MOS_MIGRATED_REVID=105206124
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Follow redirects when downloading files:
The github provided file lies after several redirect, giving a bad jars
(see http://ci.bazel.io/job/Bazel/JAVA_VERSION=1.7,PLATFORM_NAME=linux-x86_64/144/console).
- Remove building tools as part of the determinism tests:
With recent update, JavaBuilder can no longer be built with Java 7,
so we use a pre-built binary from version 0.1.0. However, the
determinism test was still using it as a point of comparison. Removing
tools from the determinism test prevent building JavaBuilder without
giving up on testing actual determinism (building Bazel already contains
all the edge-cases).
Tested with `bash -c 'export JAVA_VERSION=1.7; source scripts/ci/build.sh; bazel_build'`
--
MOS_MIGRATED_REVID=104480161
|
|
|
|
|
|
|
|
|
|
|
| |
The headers were modified with
`find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'`
And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan.
The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand.
--
MOS_MIGRATED_REVID=103938715
|
|
|
|
|
|
|
| |
Adds a jar output to Java and Android rules which contains the class files for source files generated from Java annotation processors. For a java_binary foo, the jar will be foo-gen.jar, and for a java_library foo the jar will be libfoo-gen.jar, and similarly for Android. Also adds a binary serialized proto manifest file output to Java and Android rules which describes the contents of the output class jar of those rules, which is used to create the -gen.jar. See src/main/protobuf/java_compilation.proto.
--
MOS_MIGRATED_REVID=97793715
|
|
|
|
|
|
|
| |
And get rid of usage of "blazerc" flags in our scripts.
--
MOS_MIGRATED_REVID=96776423
|
|
|
|
|
|
|
|
|
| |
When doing the deterministic test on Bazel, some output files
of previous compilation where still there and the result of
the compilation wouldn't be perfect.
--
MOS_MIGRATED_REVID=96396183
|
|
|
|
|
|
|
|
|
|
| |
This will allow system-wide configuration for system-wide
installation of Bazel.
--
Change-Id: I71b7232e648f2690766c3b9184f863dc888524c0
Reviewed-on: https://bazel-review.googlesource.com/#/c/1540/
MOS_MIGRATED_REVID=95994630
|
|
Now the blessed Bazel binary is self-hosted and correctly labeled.
All tools are also built using Bazel and labeled with the release.
At the end of the compilation, the output folder only host the
Bazel binary now. We use temporary folders to store the intermediate
artifacts.
Also integrated ./bootstrap_test.sh in compile.sh so there is only
one script for everything regarding bootstraping Bazel.
--
Change-Id: Idadbd075e7b8ecb6e306b919b7a73c647c5cfbae
Reviewed-on: https://bazel-review.googlesource.com/#/c/1460/
MOS_MIGRATED_REVID=95625880
|