joinmarket icon indicating copy to clipboard operation
joinmarket copied to clipboard

Installation instructions are excessively manual

Open fortran77 opened this issue 8 years ago • 6 comments

The installation instructions are full of if-then-else types of statements that must be interpreted by the human reader. For example, the instructions say:

“The Python binding to libsecp256k1 will most likely have some dependencies....”

“In some cases, this will work (if you already have the libsecp256k1 shared library). For the large majority of people, this will not be the case, and you will see an installation failure. In that case, you have to prepare the packages required to build it...”

Surely decisions like these

    if libsecp256k1 library found then ..

    if installation failure then ..

could be place into a script or a makefile? Then they could be programmatically executed, simplifying the installation procedure.

fortran77 avatar May 07 '17 22:05 fortran77

Unfortunately nobody answered this. I think it's an entirely good point (arguably, obvious), would be great if someone could take this on. I'm not a specialist in this kind of thing, and have tons of other things to do on my plate (even when working 100% on Joinmarket).

AdamISZ avatar Aug 09 '17 12:08 AdamISZ

Just got to the point where the tests seem to be happily running for ~10 minutes.

Biggest question is on the installation of libsodium: Do we want to assume users have brew? Probably not but thats how I installed...

I think the preferred way is to use git (safe assumption that devvs have installed) and clone the repo.

Any guesses on which version of libsodium we should use? Or just whatever the master branch is?

Also I think I'll work on a *.sh script for this as mentioned elsewhere.

carlcrott avatar Aug 28 '17 22:08 carlcrott

Sorry don't have time right now but just wanted to cross reference https://github.com/AdamISZ/joinmarket-clientserver/issues/63 and https://github.com/AdamISZ/joinmarket-clientserver/issues/64 it may be of help/interest to you.

AdamISZ avatar Aug 29 '17 04:08 AdamISZ

Got it.

So which is the server and which is the client?

Or is the "joinmarket-clientserver" the canonical codebase now?

Which project should I be working to automate the install process on?

carlcrott avatar Aug 29 '17 23:08 carlcrott

It's a bit up in the air. This is the "reference codebase" for sure; I did a complete refactoring which turned into joinmarket-clientserver starting last November and have increasingly focused my efforts on it because I think it's a better model to work with. Until very recently I didn't get much feedback on it though, so didn't feel comfortable moving it to this org, that can change. You can think of it as an alternative for now.

The "client/server" in the name is misleading, the reason for the name is explained at the bottom of the readme of that repo; both client and server are the same user (even, the same process, usually), it's just about creating a more layered design that might be better for technical reasons.

Installation on the new one is a bit different mainly because of twisted.

Sorry I know this doesn't give you a clear, unambiguous answer to your question, just explaining as best I can.

AdamISZ avatar Aug 29 '17 23:08 AdamISZ

clear, unambiguous answer to your question

Nope! Not a problem.

I assume that installation guides for OSX are useful, but not enough to integrate into the install.sh script, being that most of joinmarket-clientserver will be on RasPis or other linux-specific instances.

Whats the best way for me to record the install process on OSX? Should I just add to the Wiki?

Edit: Nix the question. Most of this is related to installing btccore + filepath issues + getting tests to complete.

carlcrott avatar Aug 31 '17 20:08 carlcrott