Eliminate hacks. Upstream fixes #11

Closed
anthony-cros opened this Issue Nov 18, 2015 · 17 comments

Comments

Projects
None yet
3 participants
@anthony-cros
Member

anthony-cros commented Nov 18, 2015

No description provided.

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Nov 19, 2015

Member

Yeah ... Please could you break this up into a bug per hack? Pain in the ass, I know, but working through these may take some time, and I don't want a mega-bug. Thanks!

Member

bobsummerwill commented Nov 19, 2015

Yeah ... Please could you break this up into a bug per hack? Pain in the ass, I know, but working through these may take some time, and I don't want a mega-bug. Thanks!

@anthony-cros

This comment has been minimized.

Show comment
Hide comment
@anthony-cros

anthony-cros Nov 19, 2015

Member

Here's a breakdown:

boost:

curl:

jsoncpp:

cryptopp:

jsonrpccpp:

secp256k1:

libweb3core:

  • turning off Miniupnpc manually: 1 and 2

libethereum:

webthree:

Member

anthony-cros commented Nov 19, 2015

Here's a breakdown:

boost:

curl:

jsoncpp:

cryptopp:

jsonrpccpp:

secp256k1:

libweb3core:

  • turning off Miniupnpc manually: 1 and 2

libethereum:

webthree:

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Nov 19, 2015

Member

Thanks - could you just kill this bug and make a GitHub issue per package? Thanks! Just cut-and-pasting these button points.

Titles: Undo hacks for . Thanks!

Member

bobsummerwill commented Nov 19, 2015

Thanks - could you just kill this bug and make a GitHub issue per package? Thanks! Just cut-and-pasting these button points.

Titles: Undo hacks for . Thanks!

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Nov 19, 2015

Member

"Undo hacks for X"

Member

bobsummerwill commented Nov 19, 2015

"Undo hacks for X"

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Nov 19, 2015

Member

"turning off Miniupnpc manually" - Wasn't this the one you logged a Github issue for?

Member

bobsummerwill commented Nov 19, 2015

"turning off Miniupnpc manually" - Wasn't this the one you logged a Github issue for?

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Nov 19, 2015

Member

No. It was Odd -lOFF flags in resulting Makefile I was thinking of ...

https://github.com/ethereum/libweb3core/issues/23

Member

bobsummerwill commented Nov 19, 2015

No. It was Odd -lOFF flags in resulting Makefile I was thinking of ...

https://github.com/ethereum/libweb3core/issues/23

@bobsummerwill bobsummerwill removed the eth label Nov 28, 2015

@bobsummerwill bobsummerwill changed the title from eth scripts: address hacks when possible - work with c++ team so they get addressed properly to Eliminate hacks. Upstream fixes Nov 29, 2015

@bobsummerwill bobsummerwill self-assigned this Nov 30, 2015

@bobsummerwill bobsummerwill added bug and removed enhancement labels Nov 30, 2015

This was referenced Dec 2, 2015

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Dec 6, 2015

Member

Pull request to address unconditional use of JSRemoteConsole in main.cpp of eth:
ethereum/webthree#89

Member

bobsummerwill commented Dec 6, 2015

Pull request to address unconditional use of JSRemoteConsole in main.cpp of eth:
ethereum/webthree#89

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
Member

bobsummerwill commented Dec 6, 2015

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Dec 6, 2015

Member

Is the fundamental issue with all the OPTIONAL modules, @anthony-cros, that the semantics are "Look at my host machine's available libraries, and build different code depending on that"? Where we do NOT want such implicit behavior, because our target machine might provide different answers?

So really for cross-building scenarios, you never want OPTIONAL modules, unless there was a way of controlling that on the command-line with parameterization?

Member

bobsummerwill commented Dec 6, 2015

Is the fundamental issue with all the OPTIONAL modules, @anthony-cros, that the semantics are "Look at my host machine's available libraries, and build different code depending on that"? Where we do NOT want such implicit behavior, because our target machine might provide different answers?

So really for cross-building scenarios, you never want OPTIONAL modules, unless there was a way of controlling that on the command-line with parameterization?

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Dec 6, 2015

Member

Whereas the jsconsole and jsengine ones are just build system bugs of some kind, in that the C++ code itself can cope with them being on/off via #ifdefs, but we are perhaps missing an equivalent functional mechanism for skipping their build steps?

Member

bobsummerwill commented Dec 6, 2015

Whereas the jsconsole and jsengine ones are just build system bugs of some kind, in that the C++ code itself can cope with them being on/off via #ifdefs, but we are perhaps missing an equivalent functional mechanism for skipping their build steps?

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Dec 6, 2015

Member

Actually, the other thing with the OPTIONAL modules is that they are assumed to be pre-installed and available, right? They aren't being built within the native build process (V8 for example). They are just package-installed. Where we need to built them.

Aha!

Member

bobsummerwill commented Dec 6, 2015

Actually, the other thing with the OPTIONAL modules is that they are assumed to be pre-installed and available, right? They aren't being built within the native build process (V8 for example). They are just package-installed. Where we need to built them.

Aha!

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Dec 17, 2015

Member

Webthree "attach" bug has been addressed and the hack removed. This was messed-up #ifdefs.

Member

bobsummerwill commented Dec 17, 2015

Webthree "attach" bug has been addressed and the hack removed. This was messed-up #ifdefs.

@anthony-cros

This comment has been minimized.

Show comment
Hide comment
@anthony-cros

anthony-cros Dec 17, 2015

Member

crossed-off the list!

Member

anthony-cros commented Dec 17, 2015

crossed-off the list!

@bobsummerwill bobsummerwill added this to the Milestone 1 milestone Dec 24, 2015

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Dec 30, 2015

Member

OK ... I'll make a complete fresh list of all the hacks here at some point today or tomorrow, after I finish my work on #42 , which has been a complete pig. At least I have a better feeling for the shape of the whole thing now!

Member

bobsummerwill commented Dec 30, 2015

OK ... I'll make a complete fresh list of all the hacks here at some point today or tomorrow, after I finish my work on #42 , which has been a complete pig. At least I have a better feeling for the shape of the whole thing now!

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Dec 30, 2015

Member

TODO

  • Hack removal - xcompiler name is always arm-unknown-linux-gnueabi (see ct-ng.sh)
  • Hack removal - webthree-helper
    • EthDependencies.cmake introduces global Boost dependency
  • Hack removal - Boost #67
  • Hack removal - CryptoPP
    • Hacking GNUmakefile to add -fPIC setting
    • Hacking GNUmakefile to remove -march=native
    • Multiple hacks for irregular include path structure and CMake assumptions (including in set_cmake_include_path in utils.sh)
  • Hack removal - Curl
    • Adding CC and CXX to global path
  • Hack removal - GMP
    • Hardcoded unknown-linux-gnueabi passed to configure
  • Hack removal - jsoncpp
    • Soft-link for irregular include paths?
    • Can we remove "homogenization" of outputs?
  • Hack removal - libscrypt
    • Unnecessary boost dependency
    • Horrible webthree/CMake hack to cope with it not being its own repo
    • Can we remove "homogenization" of outputs?
  • Hack removal - MHD
    • Hardcoded unknown-linux-gnueabi passed to configure
  • Hack removal - libjson-rpc-cpp
    • Missing CXX options
    • Can we remove "homogenization" of outputs?
  • Hack removal - secp256k1
    • Unnecessary boost dependency
    • Horrible webthree/CMake hack to cope with it not being its own repo
  • Hack removal - libweb3core
    • Hacking out optional Miniupnpc dependency
    • Hack to mask unmerged PR - ethereum/libweb3core#44
    • Can we remove "homogenization" of outputs?
  • Hack removal - libethereum
    • Hacking out optional dependencies - ethash-cl, Cpuid, miniupnpc (all in main.sh)
    • BuildInfo.h and ConfigInfo.h aren't being installed properly, it seems?
    • Can we remove "homogenization" of outputs?
  • Hack removal - webthree
    • Hacking out flu, jsengine, libjsconsole (#defines for JSENGINE, but not build-file conditionals?).
    • Won't be able to handle these cases until we have V8 cross-compiled, but should at least have build-system conditional support in the meantime, vs gsub-ing the CMake files.
    • Hacking out Solidity, also needs clean conditional
    • 5 hacks for adding missing libethereum and json-rpc-cpp include paths. Might be redundant now, but needs testing.
Member

bobsummerwill commented Dec 30, 2015

TODO

  • Hack removal - xcompiler name is always arm-unknown-linux-gnueabi (see ct-ng.sh)
  • Hack removal - webthree-helper
    • EthDependencies.cmake introduces global Boost dependency
  • Hack removal - Boost #67
  • Hack removal - CryptoPP
    • Hacking GNUmakefile to add -fPIC setting
    • Hacking GNUmakefile to remove -march=native
    • Multiple hacks for irregular include path structure and CMake assumptions (including in set_cmake_include_path in utils.sh)
  • Hack removal - Curl
    • Adding CC and CXX to global path
  • Hack removal - GMP
    • Hardcoded unknown-linux-gnueabi passed to configure
  • Hack removal - jsoncpp
    • Soft-link for irregular include paths?
    • Can we remove "homogenization" of outputs?
  • Hack removal - libscrypt
    • Unnecessary boost dependency
    • Horrible webthree/CMake hack to cope with it not being its own repo
    • Can we remove "homogenization" of outputs?
  • Hack removal - MHD
    • Hardcoded unknown-linux-gnueabi passed to configure
  • Hack removal - libjson-rpc-cpp
    • Missing CXX options
    • Can we remove "homogenization" of outputs?
  • Hack removal - secp256k1
    • Unnecessary boost dependency
    • Horrible webthree/CMake hack to cope with it not being its own repo
  • Hack removal - libweb3core
    • Hacking out optional Miniupnpc dependency
    • Hack to mask unmerged PR - ethereum/libweb3core#44
    • Can we remove "homogenization" of outputs?
  • Hack removal - libethereum
    • Hacking out optional dependencies - ethash-cl, Cpuid, miniupnpc (all in main.sh)
    • BuildInfo.h and ConfigInfo.h aren't being installed properly, it seems?
    • Can we remove "homogenization" of outputs?
  • Hack removal - webthree
    • Hacking out flu, jsengine, libjsconsole (#defines for JSENGINE, but not build-file conditionals?).
    • Won't be able to handle these cases until we have V8 cross-compiled, but should at least have build-system conditional support in the meantime, vs gsub-ing the CMake files.
    • Hacking out Solidity, also needs clean conditional
    • 5 hacks for adding missing libethereum and json-rpc-cpp include paths. Might be redundant now, but needs testing.
@yep

This comment has been minimized.

Show comment
Hide comment
@yep

yep Aug 11, 2016

Contributor

Please close this bug.

As suggested above, having a separate issue for each item on this todo list is way more maintainable.

Just created issues #96, #97, #98, #99, #100, #101, #102, #103, #104, #105, #106, #107 an #108 for this (Referencing them should create a backlink to this issue).

Please update status of each individual issue if necessary.

Contributor

yep commented Aug 11, 2016

Please close this bug.

As suggested above, having a separate issue for each item on this todo list is way more maintainable.

Just created issues #96, #97, #98, #99, #100, #101, #102, #103, #104, #105, #106, #107 an #108 for this (Referencing them should create a backlink to this issue).

Please update status of each individual issue if necessary.

@bobsummerwill

This comment has been minimized.

Show comment
Hide comment
@bobsummerwill

bobsummerwill Aug 11, 2016

Member

Thanks! Quick pass through them, and they looked correct.
Just merged the ones which got merged into cpp-ethereum.

Member

bobsummerwill commented Aug 11, 2016

Thanks! Quick pass through them, and they looked correct.
Just merged the ones which got merged into cpp-ethereum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment