Pages:
Author

Topic: [ANN] EasyWinBuilder - The Easy Way to Build Bitcoin on Windows - page 10. (Read 50087 times)

legendary
Activity: 1708
Merit: 1020
From 3b_run_build_dep.bat does not work > "rxvt" - is not a file or command.
Sorry forgot about that: You will have to start over from __everything_but_environment.bat or manually run this command from a mingw msys shell:
Code:
mingw-get install msys-rxvt



Im trying to get test done under a fresh Windows XP.
It all runs fine until 4a(Building Daemon part), returning the following error:

Code:
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono_options-mgw45-mt-s-1_50
collect2: ld returned 1 exit status
mingw32-make: *** [litecoind.exe] Error 1

(I've also tried without enviromnent)
It can not find the boost libraries... try the build boost batch (is there an error?) and then build daemon / build qt

Giving you my feedback under this subject, i found out your batchs are not friendly with "spaces" on folder names, like "Program Files".
Managed to workit out by moving my coin folder to c:\, yet some other stuff happened i will try to fix it and repost feedback.
Thanks for the info. For now it is only meant to work with default directories.


There is a newer version with variable directories and automatic COINNAME detection here: https://github.com/phelixnmc/namecoin-qt - this is Namecoin but can be copy pasted to Bitcoin/Altcoins.   Also I moved the easywinbuilder folder into contrib.


legendary
Activity: 1708
Merit: 1020
From 3b_run_build_dep.bat does not work > "rxvt" - is not a file or command.
Sorry forgot about that: You will have to start over from __everything_but_environment.bat or manually run this command from a mingw msys shell:
Code:
mingw-get install msys-rxvt



Im trying to get test done under a fresh Windows XP.
It all runs fine until 4a(Building Daemon part), returning the following error:

Code:
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono_options-mgw45-mt-s-1_50
collect2: ld returned 1 exit status
mingw32-make: *** [litecoind.exe] Error 1

(I've also tried without enviromnent)
It can not find the boost libraries... try the build boost batch (is there an error?) and then build daemon / build qt

Giving you my feedback under this subject, i found out your batchs are not friendly with "spaces" on folder names, like "Program Files".
Managed to workit out by moving my coin folder to c:\, yet some other stuff happened i will try to fix it and repost feedback.
Thanks for the info. For now it is only meant to work with default directories.
newbie
Activity: 33
Merit: 0
Im trying to get test done under a fresh Windows XP.
It all runs fine until 4a(Building Daemon part), returning the following error:

Code:
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono_options-mgw45-mt-s-1_50
collect2: ld returned 1 exit status
mingw32-make: *** [litecoind.exe] Error 1

(I've also tried without enviromnent)
It can not find the boost libraries... try the build boost batch (is there an error?) and then build daemon / build qt

Giving you my feedback under this subject, i found out your batchs are not friendly with "spaces" on folder names, like "Program Files".
Managed to workit out by moving my coin folder to c:\, yet some other stuff happened i will try to fix it and repost feedback.
full member
Activity: 467
Merit: 100
DIA | Data infrastructure for DeFi
From 3b_run_build_dep.bat does not work > "rxvt" - is not a file or command.
legendary
Activity: 1708
Merit: 1020
Im trying to get test done under a fresh Windows XP.
It all runs fine until 4a(Building Daemon part), returning the following error:

Code:
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono_options-mgw45-mt-s-1_50
collect2: ld returned 1 exit status
mingw32-make: *** [litecoind.exe] Error 1

(I've also tried without enviromnent)
It can not find the boost libraries... try the build boost batch (is there an error?) and then build daemon / build qt
newbie
Activity: 33
Merit: 0
Im trying to get test done under a fresh Windows XP.
It all runs fine until 4a(Building Daemon part), returning the following error:

Code:
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_system-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_filesystem-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_thread-mgw45-mt-s-1_50
c:/ming/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_chrono_options-mgw45-mt-s-1_50
collect2: ld returned 1 exit status
mingw32-make: *** [litecoind.exe] Error 1

(I've also tried without enviromnent)
legendary
Activity: 1708
Merit: 1020

I guess your intention is saving alot people right now and will in the future Roll Eyes

Great Job!
hehe, thanks.

My litecoin compiling stop at:

make: Nothing to be done for "all"
openssl...
Operating system: i686-watether-mingw

Thanks for the hint. On some systems the openssl config stalled like that - seems to be a bug in MSYS with redirects when called from a batch file. Luckily yesterday I got my hands on a system with this problem (win7, 32bit). I added a workaround so you can give it another try if you like (to speed things up you should be able to overwrite the easywinbuilder directory with the new version and continue with __everything_from_after_unpack_easywinbuilder.bat  or go through the steps manually starting with 3b).

Binary verification via disassembly hash
Also the disassembly hash for Qt matched on this third system so I think the principle of binary verification via disassembly hashes could work. If you have an opinion on the security of this verification method or a better way to get rid of the timestamp on windows / MinGW please let me know. It might be necessary to add some objdump output to the hash to make it more secure.
full member
Activity: 467
Merit: 100
DIA | Data infrastructure for DeFi
My litecoin compiling stop at:

make: Nothing to be done for "all"
openssl...
Operating system: i686-watether-mingw
newbie
Activity: 33
Merit: 0

I guess your intention is saving alot people right now and will in the future Roll Eyes

Great Job!
legendary
Activity: 1708
Merit: 1020
Will EasyWinBuilder compile litecoin ?
yes:

* Download the latest Litecoin version https://github.com/litecoin-project/litecoin/archive/master-0.8.zip and extract it
* Download https://github.com/phelixbtc/bitcoin/archive/0.8.3-EasyWinBuilder-v0.2.zip and copy ONLY the easywinbuilder folder into the litecoin folder like this:
  C:\....\litecoin-master-0.8
    - contrib
    - doc
    - easywinbuilder
    - libs
    - share
    - src
* In the easywinbuilder folder edit set_vars.bat:  @set COINNAME=bitcoin    --->  @set COINNAME=litecoin
* In the easywinbuilder folder double click __all_easywinbuilder.bat
* Follow instructions
* Post the hash it prints out at the end here to help me improve file verification (as I did in the post above)
legendary
Activity: 1708
Merit: 1020
I'm starting to lose my patience.  Huh
I pay 0.3 BTC each person that successfully explains to me: how to build a litecoin-qt client on a windows system. ->From the first download up to the final "ctrl-B command" in the Qt Creator.

* Download your favorite Litecoin version: https://github.com/litecoin-project/litecoin and extract it.
* Download https://github.com/phelixbtc/bitcoin/archive/0.8.3-EasyWinBuilder-v0.2.zip   and copy the easywinbuilder folder into the litecoin folder (so that it is next to src, doc, ...)
* In the easywinbuilder folder edit set_vars.bat:  @set COINNAME=bitcoin    --->  @set COINNAME=litecoin
* In the easywinbuilder folder double click __all_easywinbuilder.bat
* Follow instructions



unfortunately, the script crashs after some times. I will try this on an other windows machine in a few hours. but thanks anyway

If you like send me the output by pm or here https://bitcointalksearch.org/topic/ann-easywinbuilder-the-easy-way-to-build-bitcoin-on-windows-252931 and I will look into it.


The script crash after thees errors:

c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot fin
d -lboost_system-mgw44-mt-s-1_53
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot fin
d -lboost_filesystem-mgw44-mt-s-1_53
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot fin
d -lboost_program_options-mgw44-mt-s-1_53
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot fin
d -lboost_thread-mgw44-mt-s-1_53
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot fin
d -lssl
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: cannot fin
d -lcrypto

collect2.exe: Fehler: ld gab 1 als Ende-Status zurück

the debug and release folders are empty
Just tested and it worked with a single double click on __everything_but_environment_easywinbuilder.bat (because I already have the correct mingw and qt installed).

Problem seems to be that it does not find the dependencies...

I assume you got this file:
https://github.com/litecoin-project/litecoin/archive/master-0.8.zip

Directory structure should look like this before you start the batch file:

C:\....\litecoin-master-0.8
- contrib
- doc
- easywinbuilder
- libs
- share
- src

Within the libs folder the scripts will download dependency archives, unpack them to some folders. If it fails you can take a look in there to see if everything is in the right place (archives, directories named like archives).

Code:
Hash of Qt binary [experimental]...
File hash sha256:
4bbcd56ae2f2da598a31ffdbfa3df01a47d8531fdff5c200761f8bc9ed8b5810 *../release/[b]litecoin[/b]-qt.exe

Hash sha256 of disassembly [may take a while]:
93701842a5c1d85b80880e18675696d16eda10c4ac8931e2cf6e460467d27300  -

The second hash should be the same for you.
full member
Activity: 467
Merit: 100
DIA | Data infrastructure for DeFi
Will EasyWinBuilder compile litecoin ?
legendary
Activity: 1708
Merit: 1020
So, one thought:

Instead of "staging" all of the dependencies and then modifying the makefile/.pro to look for the dependencies in six different places, it would be cleaner to configure with --prefix=  and then 'make install' to put all the dependency libraries/include files in one spot. Ideally, none of the makefiles/.pro files would contain specific version numbers for anything.

Specific notes as I worked through doing that on a Windows system, putting dependencies in C:\deps :

Openssl:  /bin/perl Configure --prefix=/c/deps mingw ...etc

BDB: ../dist/configure --prefix=/c/deps ...etc

Boost: b2.exe --layout=system --prefix=C:\deps link=static threading=multi runtime-link=static toolset=gcc ...etc

Qt: configure.exe -prefix=C:\deps -I "C:\deps\include" -L "C:\deps\lib" ...etc

Thanks for the configure lines. You are saying that it is cleaner to throw all the libraries into one folder? To be frank that sounds somewhat messy to me. I would see an advantage in putting each dependency's libs into separate folder of the same structure, e.g. "C:\deps\libboost", C:\deps\libminiupnpc. But first I want to make sure the disassembly binary verifying is working.





legendary
Activity: 1652
Merit: 2311
Chief Scientist
So, one thought:

Instead of "staging" all of the dependencies and then modifying the makefile/.pro to look for the dependencies in six different places, it would be cleaner to configure with --prefix=  and then 'make install' to put all the dependency libraries/include files in one spot. Ideally, none of the makefiles/.pro files would contain specific version numbers for anything.

Specific notes as I worked through doing that on a Windows system, putting dependencies in C:\deps :

Openssl:  /bin/perl Configure --prefix=/c/deps mingw ...etc

BDB: ../dist/configure --prefix=/c/deps ...etc

Boost: b2.exe --layout=system --prefix=C:\deps link=static threading=multi runtime-link=static toolset=gcc ...etc

Qt: configure.exe -prefix=C:\deps -I "C:\deps\include" -L "C:\deps\lib" ...etc

legendary
Activity: 910
Merit: 1000
PHS 50% PoS - Stop mining start minting
Worked for me win7 64

Saved me lots of time, thanks!
legendary
Activity: 1708
Merit: 1020
Out now: v0.2
https://github.com/phelixbtc/bitcoin

The binary hash seems to work for the Qt executable. At least for the two machines I tested on with different Windows version and bits. It would be nice if somebody could post his result.

Could not get it to work with bitcoind.exe so far, any idea appreciated.

Also the way I use to get around the timestamp is quite inefficient and I am not sure if it is secure:
Code:
echo Hash sha256 of disassembly [may take a while]:
objdump -d $1 | shasum -a 256
At least it is a start and should make simple binary verification by multiple people possible without having to dive into Gitian.

Quote
Hash of Qt binary [experimental]...
File hash sha256:
bb3759f90601a092e6d6bc87f3fdfaba1a2507b6b631d3506052f37f517370a9 *../release/bit
coin-qt.exe

Hash sha256 of disassembly [may take a while]:
7e1f2a6f435cedca4304640d58ca663212b8a2ca4267e6a5ca865ce28d90dc6a  -

phelix got: 7e1f2a6f435cedca4304640d58ca663212b8a2ca4267e6a5ca865ce28d90dc6a

legendary
Activity: 1708
Merit: 1020
Somebody has written a build script before:
https://bitcointalksearch.org/topic/automatic-building-windows-bitcoin-client-from-sources-28782  [Automatic] Building windows bitcoin client from sources

The download via .vbs works on my system so it might be possible to make the whole process fully automatic.
legendary
Activity: 1708
Merit: 1020
Issues with OpenSSL seem to be fixed (it always worked for me but know I got confirmation from someone where it did not work before).
legendary
Activity: 2128
Merit: 1073
I guess this would have to be applied to all dependency builds, too? oh boy.
Of course. May I suggest that you try your differencing approach on some simpler project? Gavin had mentioned libfaketime.so; which is not applicable to build that is hosted on Windows. But you still need to develop a methodology for effectively ignoring the time stamps that get incorporated into the binaries.
legendary
Activity: 1708
Merit: 1020
[...]

2. Passes -frandom-seed=constant  to g++, so it doesn't create random names for generated methods.


Unfortunately it does not work as MinGW GCC is somewhat nondeterministic.
Have you tried
Code:
  -frandom-seed=      Make compile reproducible using 
?
I guess this would have to be applied to all dependency builds, too? oh boy.
Pages:
Jump to: