Pages:
Author

Topic: Why is OpenSSL needed in the official client? - page 3. (Read 4060 times)

legendary
Activity: 1064
Merit: 1001
September 29, 2012, 01:22:25 PM
#26
ouch - this is/was a manually maintained makefile (maybe you guys might be interested in my system that can automatically generate make files and handle dependencies even with the free VC++ compiler).

You should give unity builds a try. "SimpleDJ" in my signature uses that style.
legendary
Activity: 1890
Merit: 1078
Ian Knowles - CIYAM Lead Developer
September 29, 2012, 01:18:58 PM
#25
Well, it was not maintained, so it was removed from the repository.

Just checked, it was removed between 0.5.0 and 0.6.0. The latest makefile.vc file is here. You can use it as a starting point, but a lot changed since it was functional.

Thanks Pieter - but ouch - this is/was a manually maintained makefile (maybe you guys might be interested in my system that can automatically generate make files and handle dependencies even with the free VC++ compiler).

I don't know if I am really going to have enough free time to do this as I'm flat out on my own project (just have a look at how many commits I have made in https://github.com/ciyam/ciyam to get an idea) but if I do find a day or so to do this I will.
legendary
Activity: 1072
Merit: 1178
September 29, 2012, 01:11:43 PM
#24
Sorry - but I don't know how that helps me find a Visual Studio version (it is not one of the branches AFAICT).

Well, it was not maintained, so it was removed from the repository.

Just checked, it was removed between 0.5.0 and 0.6.0. The latest makefile.vc file is here. You can use it as a starting point, but a lot changed since it was functional.
legendary
Activity: 1064
Merit: 1001
September 29, 2012, 01:09:35 PM
#23
I don't think its a separate branch, I think you just need to either open the existing .vcxproj (if it exists) or make a new one and add the sources to it.
legendary
Activity: 1890
Merit: 1078
Ian Knowles - CIYAM Lead Developer
September 29, 2012, 01:02:15 PM
#22
There's a link on bitcoin.org. The source code is at http://github.com/bitcoin/bitcoin.

Sorry - but I don't know how that helps me find a Visual Studio version (it is not one of the branches AFAICT).

I do have the software on my computer but it requires MingW to build (am I missing something obvious?).
legendary
Activity: 1064
Merit: 1001
September 29, 2012, 12:56:02 PM
#21
Okay - can you give me the repository URL so I can have a look at it (am hoping it is github)?

I would be interested in hearing about your experiences with this, if you would care to "blog" your progress :-)
legendary
Activity: 1072
Merit: 1178
September 29, 2012, 12:54:45 PM
#20
Okay - can you give me the repository URL so I can have a look at it (am hoping it is github)?

There's a link on bitcoin.org. The source code is at http://github.com/bitcoin/bitcoin.
legendary
Activity: 1890
Merit: 1078
Ian Knowles - CIYAM Lead Developer
September 29, 2012, 12:52:55 PM
#19
I have no clue about Windows programming or build environments. But if you make it work with nmake, then it will...

Okay - can you give me the repository URL so I can have a look at it (am hoping it is github)?
legendary
Activity: 1072
Merit: 1178
September 29, 2012, 12:47:00 PM
#18
I could possibly be interested in doing this (I think I can cope with installing Boost but am really not interested in the whole MingW stuff) - does it support just using "nmake" rather than the IDE (I only use the console)?

I have no clue about Windows programming or build environments. But if you make it work with nmake, then it will...

The Qt GUI is built using qmake, which supports many environments. Presumably you want to adapt the qmake project file to work on your platform, rather than maintaining a separate one.
legendary
Activity: 1064
Merit: 1001
September 29, 2012, 12:41:16 PM
#17
As far as I know it is not possible to compile a Qt application using the Visual Studio IDE, you need their preprocessing junk to make sense of "slots" and "signals" keywords.
legendary
Activity: 1890
Merit: 1078
Ian Knowles - CIYAM Lead Developer
September 29, 2012, 12:35:02 PM
#16
We used to maintain a project for Visual Studio, but as none of the current developers use Windows, it got outdated. If someone wants to revive and maintain it, that is very welcome.

I could possibly be interested in doing this (I think I can cope with installing Boost but am really not interested in the whole MingW stuff) - does it support just using "nmake" rather than the IDE (I only use the console)?
legendary
Activity: 1072
Merit: 1178
September 29, 2012, 12:31:23 PM
#15
it really can be a pain when a project has so many 3rd party libraries or tools (that's why I currently am not able to build bitcoin).

I looked at the build steps for the official client and ran home screaming to mommy.

Would there be any interest in a clean C++ implementation that had no external dependencies and could be easily compiled in Xcode / Visual Studio?


Are you talking about Bitcoin-Qt or bitcoind?

We used to maintain a project for Visual Studio, but as none of the current developers use Windows, it got outdated. If someone wants to revive and maintain it, that is very welcome.

Unsure how the OSX builds happen, Gavin does those.

No external dependencies... we currently depend on OpenSSL, BDB, boost, libminiupnpc (optional), Qt (optional). OpenSSL shouldn't be too hard to swap for something else. There are already alternative clients that don't use OpenSSL, afaik. BDB is going to be dropped and replaced by LevelDB (included in the source tree, not a dependency). Boost would be a lot of work to change. The others are optional.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
September 29, 2012, 12:20:17 PM
#14
OpenSSL is so easy to build that I've built it for Android, too. Not to mention is builds fine on Windows.
legendary
Activity: 1064
Merit: 1001
September 29, 2012, 12:17:33 PM
#13
Cool, but instead of degrading OpenSSL's image, try to to find a way to remove that monster known as Boost.

Boost is the lesser of these evils. Last time I tried to build OpenSSL there was a rats nest of external dependencies and build tools that I had to install. Boost at least, once you unpack it you just type "bootstrap" followed by "bjam." And if you are using just the header-only module of Boost, there is no need to build at all.
legendary
Activity: 1890
Merit: 1078
Ian Knowles - CIYAM Lead Developer
September 29, 2012, 12:13:19 PM
#12
Cool, but instead of degrading OpenSSL's image, try to to find a way to remove that monster known as Boost.

Hmm... I wasn't trying to degrade OpenSSL's image at all (it is a 3rd party library option that I use in my project and I think it is very high quality software).

I don't really have a problem with Boost either apart from the fact I do think it became a little bloated by perhaps trying to become a bit like .net or the like.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
September 29, 2012, 12:09:49 PM
#11
Seems we are on the same wavelength in regards to 3rd party libraries.

My own project only requires 3rd party libraries for DB, PDF and FCGI (I even wrote my own regex class to avoid the need for an extra library).

Although I do appreciate the quality of code such as boost (I used to contribute to comp.lang.c++.moderated years ago whilst it was being developed) it really can be a pain when a project has so many 3rd party libraries or tools (that's why I currently am not able to build bitcoin).

Cool, but instead of degrading OpenSSL's image, try to to find a way to remove that monster known as Boost.
legendary
Activity: 1064
Merit: 1001
September 29, 2012, 12:05:48 PM
#10
it really can be a pain when a project has so many 3rd party libraries or tools (that's why I currently am not able to build bitcoin).

I looked at the build steps for the official client and ran home screaming to mommy.

Would there be any interest in a clean C++ implementation that had no external dependencies and could be easily compiled in Xcode / Visual Studio?
legendary
Activity: 1072
Merit: 1178
September 29, 2012, 11:53:05 AM
#9
Indeed I think that it should be possible to go a bit more "minimalist" (I personally don't use boost either for the same reason).

And that was my next question, why is boost needed?

from the top of my head: interprocess communication, threads, locking, filesystem interaction, some datatypes, unions, program options, asio.

Quote
My preference is to have a repository that requires no external dependencies, just pull the repo and press the "build" button. I find the use of Qt quite disturbing as well. Last I checked "slots:" is not standard C++. And I don't think that the official client can be compiled in either Xcode or Visual Studio (doesn't it require some Qt tools to build?), which is quite shocking.

The GUI is a Qt application - obviously it needs Qt to build.

If you just need the daemon, there is no dependency on Qt or the Qt toolchain.
legendary
Activity: 1890
Merit: 1078
Ian Knowles - CIYAM Lead Developer
September 29, 2012, 11:50:38 AM
#8
Seems we are on the same wavelength in regards to 3rd party libraries.

My own project only requires 3rd party libraries for DB, PDF and FCGI (I even wrote my own regex class to avoid the need for an extra library).

Although I do appreciate the quality of code such as boost (I used to contribute to comp.lang.c++.moderated years ago whilst it was being developed) it really can be a pain when a project has so many 3rd party libraries or tools (that's why I currently am not able to build bitcoin).
legendary
Activity: 1072
Merit: 1178
September 29, 2012, 11:50:04 AM
#7
So no actual SSL? Because OpenSSL is a bulky nightmare to build and use. I'm contemplating writing my own bitcoind / GUI front end, but I would much like to avoid OpenSSL at all costs.

Oh yes, RPC-SSL uses actual SSL, but it's certainly possible to avoid using that (and disabling RPC-SSL support).

Quote
Open source libraries for all the operations that you described are available, most of them in cryptopp.

Certainly - but OpenSSL is also an open-source library, and it does everything we need.
Pages:
Jump to: