Add some additional logging during ICU configuration and build process.
Resolve ICU on windows link issues.
Add /tmp/icu_install (cross-compile staging build) to the travis
directory cache for future windows builds.
also includes code to validate incoming utf8
moved normalization from claimTrie; all in cache now
also fixed a few post-merge issues
added handling for support normalization
fixed failure to handle unnormalized items reinserted on rollback
fixing ICU deps for Travis build
get more info on Travis build failure
Travis experiment 2: ICU fPIC
add independent tests to check string normalization only
move comment to proper location, and note what excpetion is thrown
add RPC call checknormalization so user can see what normalization does
made expiration at norm time smarter
also rearranged unit test code to avoid some spurious errors
made ICU compile statically
also fixed early exit in reproducible_build script
changed to keep original name
removed ability to return just-added supports
it was impossible to get the normalized names correct there
apparently the -s is no longer appreciated
moved normalization code to separate file
also fixed bug on effective amount
fixed performance problem on trie upgrade
fixed issue with valid height on rollback
fixed issue with post-normalization name q data
fixed failure to remove normalized claims on rollback
post-merge fixes
post-merge fixes
build experiment 2
build experiment 3
build experiment 4
Replace flattenTrie by callback
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
Use interruption point instead of boolean condition
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
Add ability to earlier exit in rpc methods getclaimtrie and getclaimsintrie
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
simplified early exit handling
ran formatter
check out the whole repo on Travis (for formatter)
origin should be there
This is a large commit. Travis has some limitations that
the OSX build runs into so a few things needed to change:
- travis has a 4mb log limit
- log stdout/stderr to log files
- cat relevant log file if there is a build issue
- travis will kill the job if it is silent for ten minutes
- echo messages every minute
- travis has a 50 minute job limit
- add caching for dependencies
- proactively abort a build after 45 minutes to ensure the
cache will be populated
Caching creates its own set of problems so the ability to clear the
dependency folder was added and each dependency will delete its folder
if something goes wrong during the build of that dependency. This
prevents future runs from thinking a dependency has been cached when
it actually hasn't.
The build files for OSX and linux were unified into one script.
I need to debug a deployment issue and that is a pain
when the build takes 40 minutes. Caching the final result
so that I can quickly try deploying.
Will undo this change when the deployment issue is resolved.
149641e Travis: Use Blue Box VMs for IPv6 loopback support (Luke Dashjr)
c01f08d Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl (Luke Dashjr)
5d1148c Travis: Use curl rather than wget for Mac SDK (Luke Dashjr)
1ecbb3b depends: Use curl for fetching on Linux (Luke Dashjr)
1) created rpc-tests.py
2) deleted rpc-tests.sh
3) travis.yml points to rpc-tests.py
4) Modified Makefile.am
5) Updated README.md
6) Added tests_config.py and deleted tests-config.sh
7) Modified configure.ac with script to set correct path in tests_config.py
For Gitian releases:
- Windows builds remain unchanged. libstdc++ was already linked statically.
- OSX builds remain unchanged. libstdc++ is tied to the SDK and not worth
messing with.
- Linux builds now statically link libstdc++.
For Travis:
- Match the previous behavior by adding --enable-reduce-exports as
necessary.
- Use static libstdc++ for the full Linux build.
This is a long chain of errors, and there are likely other changes that could
be made to cope in other places along that chain.
If depends don't build successfully, don't bother trying again for the sake of
better logging. That's likely to hurt more than help. In this case, qt build
failed, and on the second attempt, it appeared to be successful. However, due
to a bad object from an internal gcc error on the first build, the resulting
lib was unusable. This caused bitcoin-qt to not be built, and tests and
packaging which expected bitcoin-qt to be there failed.
The root cause:
Mingw is especially crashy when using -jX, likely compounded by low-memory
environments. I've seen multiple problems with this combo in Gitian as well.
In this case:
i686-w64-mingw32-g++: internal compiler error: Killed (program cc1plus)
...
make[3]: *** [.obj/release/qdrawhelper.o] Error 4
The workaround:
Bump Travis down to using -j2 by default. Additionaly, enable --with-gui for
the windows builds. This will cause configure to fail if qt is not working
while also testing the config flag.
Other failures which may be worth revisiting separately:
- If a depends package fails, maybe remove the workdir so that it doesn't taint
subsequent runs
- See if there's anything repeatable about the ICE when building qt