Bitcoin Forum
December 10, 2016, 12:48:59 PM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: [1] 2 »  All
  Print  
Author Topic: Proposal: make it so anybody could easily compile the client  (Read 2183 times)
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 07:50:47 AM
 #1


I've tried once to compile it. Gave up.

I don't understand why can't you bundle all the needed libraries and distribute the complete source code with the client?

1) You will get more trust. What's the point of doing code review if you can't compile a binary version from it?

2) You will get more developers involved. I, personally, can't spend several days, figuring out just how to compile it. But if it were a matter of loading it into VS and hitting Build, I might work on small features or optimizations.

And the most annoying is that I don't see any rational reasons not to do it! Why hasn't it been done from the beginning? Are you trying to impose some sort of an artificial "entry barrier"?


P.S. I am specifically talking about Windows.

BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
wumpus
Hero Member
*****
qt
Offline Offline

Activity: 798

No Maps for These Territories


View Profile
September 19, 2011, 08:11:34 AM
 #2

bitcoin-qt has very simple windows build instructions, only a few steps, and the dependencies are available in a downloadable (signed) package:

https://github.com/laanwj/bitcoin-qt

Bitcoin Core developer [PGP] Warning: For most, coin loss is a larger risk than coin theft. A disk can die any time. Regularly back up your wallet through FileBackup Wallet to an external storage or the (encrypted!) cloud. Use a separate offline wallet for storing larger amounts.
mtbitcoin
Legendary
*
Offline Offline

Activity: 876


Etherscan.io


View Profile
September 19, 2011, 08:12:38 AM
 #3


I've tried once to compile it. Gave up.

I don't understand why can't you bundle all the needed libraries and distribute the complete source code with the client?

1) You will get more trust. What's the point of doing code review if you can't compile a binary version from it?

2) You will get more developers involved. I, personally, can't spend several days, figuring out just how to compile it. But if it were a matter of loading it into VS and hitting Build, I might work on small features or optimizations.

And the most annoying is that I don't see any rational reasons not to do it! Why hasn't it been done from the beginning? Are you trying to impose some sort of an artificial "entry barrier"?


P.S. I am specifically talking about Windows.

+1 on this

EtherScan::Ethereum Block Explorer | BlockScan::Counterparty Block Explorer
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 08:15:07 AM
 #4

bitcoin-qt has very simple windows build instructions, only a few steps, and the dependencies are available in a downloadable (signed) package:

https://github.com/laanwj/bitcoin-qt

Is there a reason why they are "available in a downloadable (signed) package" and not included into the main source distribution?

BTW, I would like to test the new qt client, can you give a direct link to download?

BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
P4man
Hero Member
*****
Offline Offline

Activity: 504



View Profile
September 19, 2011, 08:16:57 AM
 #5

Its easy to compile on linux. Its easy to install the binary on windows (and possible to compile if you know what you are doing, though I havent tried). Really, thats all thats needed IMO. If you are wary of using closed source software, you shouldnt be running windows.

wumpus
Hero Member
*****
qt
Offline Offline

Activity: 798

No Maps for These Territories


View Profile
September 19, 2011, 08:17:38 AM
 #6

Is there a reason why they are "available in a downloadable (signed) package" and not included into the main source distribution?
Because they are binaries, they do not belong in a source package.
Quote
BTW, I would like to test the new qt client, can you give a direct link to download?
tar.gz: https://github.com/laanwj/bitcoin-qt/tarball/master
zip: https://github.com/laanwj/bitcoin-qt/zipball/master

Bitcoin Core developer [PGP] Warning: For most, coin loss is a larger risk than coin theft. A disk can die any time. Regularly back up your wallet through FileBackup Wallet to an external storage or the (encrypted!) cloud. Use a separate offline wallet for storing larger amounts.
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 08:23:37 AM
 #7

Because they are binaries, they do not belong in a source package.

Is there a rational reason why "binaries do not belong in a source package"?

So the whole idea of LIB files is a flawed concept?

Anyway, make them source code too, don't make excuses.

Learn from other projects, where you have a single solution and all the projects to build all the libraries and compiling is a matter of one click. Preferably the solution should be for multiple VS or an old one, like 2005 - it's easy to convert projects up and hard to convert down.


BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
payb.tc
Hero Member
*****
Offline Offline

Activity: 812



View Profile
September 19, 2011, 08:25:36 AM
 #8

Its easy to compile on linux. Its easy to install the binary on windows (and possible to compile if you know what you are doing, though I havent tried). Really, thats all thats needed IMO. If you are wary of using closed source software, you shouldnt be running windows.

what if you want to make a small modification before compiling?

in that case trusting closed source windows software has nothing to do with it.
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 08:27:13 AM
 #9

This is what I need to do just to test your client???

Quote
Windows build instructions:

* Download the QT Windows SDK and install it. You don't need the Symbian stuff, just the desktop Qt.

* Download and extract the dependencies archive [1], or compile openssl, boost and dbcxx yourself.

* Copy the contents of the folder "deps" to "X:\QtSDK\mingw", replace X:\ with the location where you installed the Qt SDK. Make sure that the contents of "deps\include" end up in the current "include" directory.

* Open the .pro file in QT creator and build as normal (ctrl-B)

[1] PGP signature: https://download.visucore.com/bitcoin/qtgui_deps_1.zip.sig (signed with RSA key ID 610945D0


Oh, hell no. Thank you very much. I will test it when there is a pre-built binary.

BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
P4man
Hero Member
*****
Offline Offline

Activity: 504



View Profile
September 19, 2011, 08:40:52 AM
 #10

what if you want to make a small modification before compiling?

in that case trusting closed source windows software has nothing to do with it.

Trust is the only reason I can see why Joe Six pack ('s smarter brother) would want to compile. But if you are a developer wanting to change the code, Im sure you can figure out how to compile it?

Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 08:46:08 AM
 #11

Let me explain, why I am so pissed off about it.

It's because I take it as a personal offense when people try to invade my time.

And that's exactly what every crappy open-source project tries to do - it wants  me to jump through hoops just for the pleasure of its makers.

Why? Because crappy open-source projects are usually written by a bunch of schoolboys with too much time on their hands. They adore Linux because they can afford time to play this little game of "type letters into command prompt and see what happens". They adore spending countless hours trying to figure stuff out.

Now I am not saying that you are a bunch of schoolboys or that this is a crappy open-source project, but then stop acting like one!

It takes just one developer, (who already have all the necessary libraries on his machine with versions that match his code), to bundle them and make it a one-click compile to save many man-hours for all the people who will later use it! Failing to do so is an insult to all of them.

Just because thousands of monkeys on the Internet do it this way doesn't mean you have to too. Do it the smart way, not the monkey way.

[Just venting. Feeling better already Smiley ]

BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
wumpus
Hero Member
*****
qt
Offline Offline

Activity: 798

No Maps for These Territories


View Profile
September 19, 2011, 08:48:39 AM
 #12

Anyway, make them source code too, don't make excuses.
You can also easily do that yourself if you have any skills working with IDEs. It's funny how people's requirements can become unreasonably high so quickly when they're not paying for something.

Oh, hell no. Thank you very much. I will test it when there is a pre-built binary.
A pre-built binary? wtf, a few posts ago you were talking about building it yourself because you want to make some changes, and so suddenly you want a prebuilt binary.

You can download one from www.bitcoin.org. In a few months it will have the new interface.

Please remind me to never try to be helpful to you again.

Quote
It's because I take it as a personal offense when people try to invade my time.
I'm now seeing it as an offense you're trying to invade my time. Welcome to my ignore list.

Bitcoin Core developer [PGP] Warning: For most, coin loss is a larger risk than coin theft. A disk can die any time. Regularly back up your wallet through FileBackup Wallet to an external storage or the (encrypted!) cloud. Use a separate offline wallet for storing larger amounts.
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 08:54:38 AM
 #13

I'm now seeing it as an offense you're trying to invade my time. Welcome to my ignore list.

Developers are few and people who will be using their project are many. That's enough reason to try and make it as easy for them as possible, to save their time and not yours.

But whatever.

BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 09:02:38 AM
 #14

It's funny how people's requirements can become unreasonably high so quickly when they're not paying for something.

It's funny how such a simple thing as bundling all the libraries, since you already have them, and creating projects for them becomes an "unreasonably high requirement".

Of course, it's better to not include them for no reason whatsoever and then force everyone who will try to help you develop the project to spend time jumping from site to site, searching for the exact versions, downloading and placing into proper folders and doing the whole setup again.

"Come on in, developers, help me develop it! But you need to dance for an hour and upload the video of your dance on YouTube, before I let you work on my project!"

That's a cool attitude. It goes great with "hey, I am not being paid, so I am free to do a crappy job".

BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
wumpus
Hero Member
*****
qt
Offline Offline

Activity: 798

No Maps for These Territories


View Profile
September 19, 2011, 09:18:19 AM
 #15

It's funny how such a simple thing as bundling all the libraries, since you already have them, and creating projects for them becomes an "unreasonably high requirement".
Then why not do it and contribute the result, to save "all those many other people" the work.

Oh wait, this is just about you.


Bitcoin Core developer [PGP] Warning: For most, coin loss is a larger risk than coin theft. A disk can die any time. Regularly back up your wallet through FileBackup Wallet to an external storage or the (encrypted!) cloud. Use a separate offline wallet for storing larger amounts.
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 09:26:42 AM
 #16

Then why not do it and contribute the result, to save "all those many other people" the work.

Oh wait, this is just about you.

Because you already have all the libraries installed! You already have it set up!

Why don't you just publish the whole project, not just a part that requires lots of dependencies?

If you dare me, hell, sure, I can do it. I would be glad to help all the future possible developers who might want to get involved.

It just would be much easier for you, since you already have it on your machine.

Besides, the "full" distribution should be supported by those, who work on it "full time".

It would be cumbersome for me to follow your release schedule and update a stand-alone "full" package for others.


BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 09:31:11 AM
 #17

Let's make it practical.

If you don't have time to create VS projects - let me do it.

Developers. Do just this step one: include all the source into the main branch. QT includes, what have you. All. No downloads required.

I will do the projects.

BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
P4man
Hero Member
*****
Offline Offline

Activity: 504



View Profile
September 19, 2011, 09:31:38 AM
 #18

You realize those libraries might be published under different licenses, some of which would prevent him from redistributing them? I dont know if its the case here, but you usually cant just go and put "everything thats needed" in a tarball for your convenience.

BTW, I just compiled bitcoin-qt. Copy pasted 3 commands (yes, I use linux) and its working and looking great. Thank you John Smith.

wumpus
Hero Member
*****
qt
Offline Offline

Activity: 798

No Maps for These Territories


View Profile
September 19, 2011, 09:35:04 AM
 #19

Because you already have all the libraries installed! You already have it set up!
No I don't. I don't even have Visual Studio and rarely use Windows. And when I do I use the Qt SDK with Qt Creator, for which I also published the four simple steps for building in the README file...

Quote
Why don't you just publish the whole project, not just a part that requires lots of dependencies?
Because on non-windows platforms it is not normal to bundle all the libraries a project makes use of. They are installed as separate packages.

Even on Windows, many people already use the libraries such as boost and openssl so have them installed in their own locations.

Releasing a tangle of source files that include copied boost, upnp, openssl headers and source files would certainly be useful for some people, but could also create more problems than it's worth.

Quote
If you dare me, hell, sure, I can do it. I would be glad to help all the future possible developers who might want to get involved.
Yes, maybe you should do that. That's a much better attitude Smiley

Bitcoin Core developer [PGP] Warning: For most, coin loss is a larger risk than coin theft. A disk can die any time. Regularly back up your wallet through FileBackup Wallet to an external storage or the (encrypted!) cloud. Use a separate offline wallet for storing larger amounts.
Alex Zee
Member
**
Offline Offline

Activity: 112



View Profile WWW
September 19, 2011, 09:51:08 AM
 #20

You raise valid points.

But if we want to attract more developers to Bitcoin, and not only "core full-time" developers, but people who will do minor optimizations and bug-fixes in their little spare time, we need to have a one-click setup. It's crucial.

Yes, a developer might use some other libraries, but they can be of different versions. And most importantly - our hypothetical developer probably wouldn't care if they will be duplicated in Bitcoin distribution.

He installed the Bitcoin client, he noticed a bug or had an idea for a "20-minute work" feature. All that he needs is to go to the "source", click on solution, make some tweaks in code, fix a bug, whatever, and compile himself a new binary.

If he is required to spend 40 minutes on top of those 20 minutes just to make it compile, he might just give up.

So, Ok, if there are nobody else to do a full Windows build, I will do it.

But now I am confused, which version to work with. Is your bitcoin-qt going to be the new official master branch as is? Or will there be some kind of merging process?


BTC Monitor - systray price ticker
RipTalk.org - new Ripple forum
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!