Bitcoin Forum
April 28, 2024, 08:42:33 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 »
  Print  
Author Topic: Building headless Bitcoin and Bitcoin-qt on Windows  (Read 419326 times)
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 10, 2013, 04:19:08 PM
 #201

I'm having some problems compiling.

First, mingw-get-setup.exe doesn't have the option to select prepackaged repository catalogues so it installs gcc 4.8.1-3. I selected all from Basic setup.

Then on the step where I compile OpenSSL:

Code:
cd /c/deps/
tar xvfz openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config
make

all goes well until i type make and get these errors at the end:

...
make[1]: gcc: Command not found
make[1]: *** [cryptlib.o] Error 127
make[1]: Leaving directory '/c/deps/openssl-1.0.1e/crypto'
make[1]: *** [build_crypto] Error 1

I've looked everywhere but witout any luck. Anyone know what the problem is?
You got the wrong MinGW installer.... you need this one:

http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/mingw-get-inst-20120426/mingw-get-inst-20120426.exe/download

Unfortunately the file is currently not available  Huh  Please eMail the MinGW guys to put it back up.

Somebody uploaded it here if you dare: https://mega.co.nz/#!iAU1hCoB!aNfcHgZko8U49l3Yf1vXEDhLw2sC4547Odx6M0cn5eg

I thought MinGW had a very bad setup experience before but their new installer is even worse.
Unlike traditional banking where clients have only a few account numbers, with Bitcoin people can create an unlimited number of accounts (addresses). This can be used to easily track payments, and it improves anonymity.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Joni
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
October 10, 2013, 04:27:11 PM
 #202

I'm having some problems compiling.

First, mingw-get-setup.exe doesn't have the option to select prepackaged repository catalogues so it installs gcc 4.8.1-3. I selected all from Basic setup.

Then on the step where I compile OpenSSL:

Code:
cd /c/deps/
tar xvfz openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config
make

all goes well until i type make and get these errors at the end:

...
make[1]: gcc: Command not found
make[1]: *** [cryptlib.o] Error 127
make[1]: Leaving directory '/c/deps/openssl-1.0.1e/crypto'
make[1]: *** [build_crypto] Error 1

I've looked everywhere but witout any luck. Anyone know what the problem is?
You got the wrong MinGW installer.... you need this one:

http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/mingw-get-inst-20120426/mingw-get-inst-20120426.exe/download

Unfortunately the file is currently not available  Huh  Please eMail the MinGW guys to put it back up.

Somebody uploaded it here if you dare: https://mega.co.nz/#!iAU1hCoB!aNfcHgZko8U49l3Yf1vXEDhLw2sC4547Odx6M0cn5eg

I thought MinGW had a very bad setup experience before but their new installer is even worse.


Thx Smiley i'll try that.
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 13, 2013, 10:23:38 AM
 #203

Has anybody ever managed to build with gcc 4.8?
nitrogenetics (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 108



View Profile
October 13, 2013, 12:26:37 PM
 #204

Yes, see posts 115 - 123
https://bitcointalk.org/index.php?topic=149479.msg2744799#msg2744799


BTC: 1NWQ4TarCCC7j1XY26KRFFEtLYbPP6S3DH
XRP: rJkbeyRaUYDmcukEyLYVfn56QDM9VhybZG
nitrogenetics (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 108



View Profile
October 13, 2013, 12:57:12 PM
 #205

Here is the bitcoind release 0.8.5 exit running on a "pure" Windows 7 machine:



Am I really the only one who ever exits bitcoind.exe on a windows machine, or shuts that machine down, or closes bitcoind.exe's window or ends the bitcoind.exe process (task manager, etc.)?

There has to be someone who has seen this on bitcoind.exe 0.8.2, 0.8.3, 0.8.4, 0.8.5?


Crashing for me too when not using bitcoind stop to stop the daemon (v0.8.5, gcc 4.8.1-release-posix-dwarf-rev5).

BTC: 1NWQ4TarCCC7j1XY26KRFFEtLYbPP6S3DH
XRP: rJkbeyRaUYDmcukEyLYVfn56QDM9VhybZG
old c coder
Sr. Member
****
Offline Offline

Activity: 260
Merit: 250



View Profile WWW
October 13, 2013, 06:45:55 PM
 #206

Here is the bitcoind release 0.8.5 exit running on a "pure" Windows 7 machine:



Am I really the only one who ever exits bitcoind.exe on a windows machine, or shuts that machine down, or closes bitcoind.exe's window or ends the bitcoind.exe process (task manager, etc.)?

There has to be someone who has seen this on bitcoind.exe 0.8.2, 0.8.3, 0.8.4, 0.8.5?


Crashing for me too when not using bitcoind stop to stop the daemon (v0.8.5, gcc 4.8.1-release-posix-dwarf-rev5).

Hello nitrogenetics,

See message #164 or #176 in this thread. I have the missing code for windows bitcoind, that traps the control-c/control-break events on Win7 and in addition can trap the window close, user log off and windows shut down on XP and who knows what other versions, Vista, W2003, Win8,...

Without this addition, for me anyway, almost every exit using stop or otherwise, of bitcoind on XP or Win7 would cause the CDBEnv::EnvShutdown exception (22) message and the popups shown. There are a few times when things appear to go smoothly.

With the code, the opposite is the case, almost every exit via whatever means, is clean. And only rarely do I see the message and popups, even though the Shutdown() and cleanup destructors are running, as shown by -printtoconsole, etc.

And I have still had no joy in trying to create static libraries in Qt in order to compile-link a version of Qt that doesn't need those 5 (or 6) .dlls in order to run.

I tried
http://falsinsoft.blogspot.com/2011/12/building-static-qt-on-windows-with.html
but haven't gotten the last step
Code:
mingw32-make sub-src
to actually produce libraries that I can statically link too?

I don't know what step I'm missing, or...

The funny thing is though, having produced "new" dynamic libraries and creating a new bitcoin-qt.exe, I now rarely see the 5, 6 or 7 popups and the above popup when doing a normal exit from bitcoin-qt, on XP or Win7. I still get the compiler warnings (see message #191) when compiling bitcoin-qt. The warning messages that say:
Code:
shared_mutex.hpp:53:52: 
warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
Go figure?

Ron


LTC: LUYiMVsrFQewUSPDasSKGzhyTPAkiTeSov BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 18, 2013, 03:01:38 PM
 #207

gcc 4.8
How did you get around the winsock trouble? Replacing define WIN32 by WIN32_LEAN_AND_MEAN did the job for me.

Bitcoind works but Bitcoin-Qt crashes on start with StackHash_5861  https://github.com/bitcoin/bitcoin/issues/2341

Back to 4.6...
Joe_Bauers
Hero Member
*****
Offline Offline

Activity: 802
Merit: 1003


GCVMMWH


View Profile
October 18, 2013, 06:21:22 PM
 #208

Replacing define WIN32 by WIN32_LEAN_AND_MEAN did the job for me.

It does the job [compiles] but causes weird errors (incorrect getbalance results, etc.), at least for yacoind.exe.
nitrogenetics (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 108



View Profile
October 19, 2013, 04:55:22 PM
 #209

Bitcoind works but Bitcoin-Qt crashes on start with StackHash_5861  https://github.com/bitcoin/bitcoin/issues/2341
Not crashing for me, at least on testnet.

And I have still had no joy in trying to create static libraries in Qt in order to compile-link a version of Qt that doesn't need those 5 (or 6) .dlls in order to run.
First post updated, static version seems to build just fine. What errors do you get?

BTC: 1NWQ4TarCCC7j1XY26KRFFEtLYbPP6S3DH
XRP: rJkbeyRaUYDmcukEyLYVfn56QDM9VhybZG
old c coder
Sr. Member
****
Offline Offline

Activity: 260
Merit: 250



View Profile WWW
October 19, 2013, 05:54:51 PM
 #210

Bitcoind works but Bitcoin-Qt crashes on start with StackHash_5861  https://github.com/bitcoin/bitcoin/issues/2341
Not crashing for me, at least on testnet.

And I have still had no joy in trying to create static libraries in Qt in order to compile-link a version of Qt that doesn't need those 5 (or 6) .dlls in order to run.
First post updated, static version seems to build just fine. What errors do you get?

Hello nitrogenetics,

If you are addressing me, I get no errors, I just don't get static libraries. I get the normal "dynamic" libraries. But your new "recipes" for Boost 1.54, Qt 5.1 and it seems a gcc 4.8.x are just what I need for bitcoin-qt, it seems.

Ron


LTC: LUYiMVsrFQewUSPDasSKGzhyTPAkiTeSov BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
petrolefr
Member
**
Offline Offline

Activity: 476
Merit: 10


View Profile
October 21, 2013, 07:01:01 PM
 #211

It s works also for litecoin?
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 21, 2013, 09:15:20 PM
 #212

Replacing define WIN32 by WIN32_LEAN_AND_MEAN did the job for me.

It does the job [compiles] but causes weird errors (incorrect getbalance results, etc.), at least for yacoind.exe.
I realized bitcoin codes relies on WIN32 quite a bit. Probably it's best to use both: WIN32 WIN32_LEAN_AND_MEAN

But it's still crashing on me on startup... so this may not be a good way to go Undecided


Bitcoind works but Bitcoin-Qt crashes on start with StackHash_5861  https://github.com/bitcoin/bitcoin/issues/2341
Not crashing for me, at least on testnet.
Still having trouble with MinGW 4.8....

Did you not run into winsock.h/winsock2.h troubles with mingw-builds?   This is driving me nuts.
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 24, 2013, 02:39:38 PM
Last edit: October 24, 2013, 03:14:26 PM by phelix
 #213

By now it is almost impossible to build Bitcoin on Windows using pre built Qt4.8... I just hope we will officially switch to Qt5 soon. Anybody have an idea when that is supposed to happen?
nitrogenetics (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 108



View Profile
October 24, 2013, 08:07:42 PM
 #214

Why don't you compile Qt 4.8?
Download sources http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.zip then
Code:
configure -release -opensource -confirm-license -no-opengl -no-vcproj -no-openssl -no-audio-backend -no-multimedia -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug
mingw32-make

You'll still need ipv6 patch to compile on gcc 4.8 from mingwbuilds with ipv6 support enabled, but you can avoid qt5 specific patches.

BTC: 1NWQ4TarCCC7j1XY26KRFFEtLYbPP6S3DH
XRP: rJkbeyRaUYDmcukEyLYVfn56QDM9VhybZG
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 24, 2013, 09:51:35 PM
 #215

Why don't you compile Qt 4.8?
Download sources http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.zip then
Code:
configure -release -opensource -confirm-license -no-opengl -no-vcproj -no-openssl -no-audio-backend -no-multimedia -no-webkit -no-script -no-scripttools -no-declarative -no-declarative-debug
mingw32-make

You'll still need ipv6 patch to compile on gcc 4.8 from mingwbuilds with ipv6 support enabled, but you can avoid qt5 specific patches.

You scared me:
Quote from: nitrogenetics
Built Qt 5.1.0 (took ~3.5 hours
But yeah, probably better than the trouble to get the latest MinGW installer to properly install gcc 4.6.
nitrogenetics (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 108



View Profile
October 24, 2013, 11:28:43 PM
 #216

Well, that was probably an unoptimized full build, using the previous configuration options along with make -j switch it takes about 20-30 mins on a 3570k @ 4.2GHz Wink

BTC: 1NWQ4TarCCC7j1XY26KRFFEtLYbPP6S3DH
XRP: rJkbeyRaUYDmcukEyLYVfn56QDM9VhybZG
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 28, 2013, 08:19:52 AM
 #217

yay, I finally manage to get mingw 4.6 working with the new mingw.org installer and once again build Bitcoin-Qt with Qt 4.8.5!


Also:

The makefile.mingw still contains an old multithreading flaw: https://github.com/bitcoin/bitcoin/pull/3121
Not sure if it is a big problem but if you are looking for a stable bitcoind.exe you might want to consider patching it.
nitrogenetics (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 108



View Profile
October 28, 2013, 07:09:48 PM
 #218

The makefile.mingw still contains an old multithreading flaw: https://github.com/bitcoin/bitcoin/pull/3121
Not sure if it is a big problem but if you are looking for a stable bitcoind.exe you might want to consider patching it.

I tried the patch, but it seems it doesn't make any difference, the compiled binaries look identical (except header timestamp).

BTC: 1NWQ4TarCCC7j1XY26KRFFEtLYbPP6S3DH
XRP: rJkbeyRaUYDmcukEyLYVfn56QDM9VhybZG
phelix
Legendary
*
Offline Offline

Activity: 1708
Merit: 1019



View Profile
October 29, 2013, 12:23:37 PM
 #219

The makefile.mingw still contains an old multithreading flaw: https://github.com/bitcoin/bitcoin/pull/3121
Not sure if it is a big problem but if you are looking for a stable bitcoind.exe you might want to consider patching it.

I tried the patch, but it seems it doesn't make any difference, the compiled binaries look identical (except header timestamp).

Interesting find... I just tried and got the same result.

It was somewhat a deal back then: http://gavintech.blogspot.co.uk/2013/08/the-macro-economics-of-alt-coins.html

The official builds use something ancient like gcc 4.3 IIRC so maybe it is necessary with them but the newer compiler versions do it automatically... ?
old c coder
Sr. Member
****
Offline Offline

Activity: 260
Merit: 250



View Profile WWW
November 19, 2013, 02:02:58 PM
 #220

Hello all

I am down to only 2, yes 2 compile time errors, compiling bitcoind (0.8.5) on MSVC++ Express 2005! Here's a pix of one of them


The other is the IMPLEMENT_SERIALIZE macro in class CAddrInfo, in addrman.h
This is due among other unknown reasons, to microsoft's inability to "stomach" the extra layer of complexity (it seems) with the line:
Code:
std::map<int, int> mapUnkIds;
in IMPLEMENT_SERIALIZE

When I comment just that and the references to mapUnkIds, the file compiles, though the macro is certainly wrong.

I don't even know if the code, when I do successfully compile it, will run, or run correctly, but you sure can debug it
wonderfully in visual studio (express). And since it really does know the convoluted interconnectedness of the include files, it compiles
only what is needed. Ah those include files!

Can anyone shed some light on what gcc thinks that msvc can't figure out in the first case, and how the second might be tackled too?

The full error in script.cpp is
 
Code:
------ Build started: Project: EmptyConsoleApp, Configuration: Debug Win32 ------
Compiling...
script.cpp
d:\program files\microsoft visual studio 8\vc\include\functional(149) : error C2678: binary '<' : no operator found which takes a left-hand operand of type 'const CSignatureCache::sigdata_type' (or there is no acceptable conversion)
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(229): could be 'bool operator <(const base_uint<BITS> &,const base_uint<BITS> &)' [found using argument-dependent lookup]
        with
        [
            BITS=160
        ]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(521): or 'bool operator <(const base_uint160 &,const uint160 &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(533): or 'bool operator <(const uint160 &,const base_uint160 &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(545): or 'bool operator <(const uint160 &,const uint160 &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(229): or 'bool operator <(const base_uint<BITS> &,const base_uint<BITS> &)' [found using argument-dependent lookup]
        with
        [
            BITS=256
        ]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(636): or 'bool operator <(const base_uint256 &,const uint256 &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(648): or 'bool operator <(const uint256 &,const base_uint256 &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(660): or 'bool operator <(const uint256 &,const uint256 &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\key.h(74): or 'bool operator <(const CPubKey &,const CPubKey &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\netbase.h(99): or 'bool operator <(const CNetAddr &,const CNetAddr &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\netbase.h(129): or 'bool operator <(const CService &,const CService &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\bignum.h(607): or 'bool operator <(const CBigNum &,const CBigNum &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\script.h(63): or 'bool operator <(const CNoDestination &,const CNoDestination &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\protocol.h(125): or 'bool operator <(const CInv &,const CInv &)' [found using argument-dependent lookup]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\mruset.h(35): or 'bool mruset<T>::operator <(const mruset<T> &,const mruset<T> &)' [found using argument-dependent lookup]
        with
        [
            T=CInv
        ]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\main.h(294): or 'bool operator <(const COutPoint &,const COutPoint &)' [found using argument-dependent lookup]
        while trying to match the argument list '(const CSignatureCache::sigdata_type, const CSignatureCache::sigdata_type)'
        d:\program files\microsoft visual studio 8\vc\include\functional(148) : while compiling class template member function 'bool std::less<_Ty>::operator ()(const _Ty &,const _Ty &) const'
        with
        [
            _Ty=CSignatureCache::sigdata_type
        ]
        d:\program files\microsoft visual studio 8\vc\include\set(60) : see reference to class template instantiation 'std::less<_Ty>' being compiled
        with
        [
            _Ty=CSignatureCache::sigdata_type
        ]
        d:\program files\microsoft visual studio 8\vc\include\xtree(26) : see reference to class template instantiation 'std::_Tset_traits<_Kty,_Pr,_Alloc,_Mfl>' being compiled
        with
        [
            _Kty=CSignatureCache::sigdata_type,
            _Pr=std::less<CSignatureCache::sigdata_type>,
            _Alloc=std::allocator<CSignatureCache::sigdata_type>,
            _Mfl=false
        ]
        d:\program files\microsoft visual studio 8\vc\include\xtree(68) : see reference to class template instantiation 'std::_Tree_nod<_Traits>' being compiled
        with
        [
            _Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
        ]
        d:\program files\microsoft visual studio 8\vc\include\xtree(94) : see reference to class template instantiation 'std::_Tree_ptr<_Traits>' being compiled
        with
        [
            _Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
        ]
        d:\program files\microsoft visual studio 8\vc\include\xtree(112) : see reference to class template instantiation 'std::_Tree_val<_Traits>' being compiled
        with
        [
            _Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
        ]
        d:\program files\microsoft visual studio 8\vc\include\set(69) : see reference to class template instantiation 'std::_Tree<_Traits>' being compiled
        with
        [
            _Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
        ]
        k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\script.cpp(1061) : see reference to class template instantiation 'std::set<_Kty>' being compiled
        with
        [
            _Kty=CSignatureCache::sigdata_type
        ]
Build log was saved at "file://k:\Backups\Drive_d_backup\MS VC++ Express 2005 tests\EmptyConsoleApp\EmptyConsoleApp\Debug\BuildLog.htm"
EmptyConsoleApp - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
How's that for an explanation!? The compiler seems to be unsure which overloaded < operator it should use, somewhere? Huh

Anyone interested in a MSVC++ 2005, 2008, 2010, 2012, 2013 Express (or full) version of bitcoind?

Ron


LTC: LUYiMVsrFQewUSPDasSKGzhyTPAkiTeSov BTC: 1DPvP6WoZzaNQ9Nxzd64hjYad1kyQzTTbx YAC: Y3ZggXDvnRJaRwtVGyGJwt6DMLN3EPQpQf 
The day is coming when a single carrot, freshly observed, will set off a revolution.  Paul Cezanne
Pages: « 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!