I need a way to build a Linux executable to run on our web hosts' servers. I can't build it in Windows, and we don't have a Linux PC to use. It builds correctly in Cygwin, but Cygwin cant' build Linux executables. I didn't want to wipe any of our existing PCs, so that means we need to get a new PC. Wicked fun. I searched around the web and the classifieds and Dell's site... nothing good there. But, on a lark, I found a floor demo / refurbish of a nice little Sony
VAIO laptop at Circuit City. It was the same price as a full low-end desktop system, so I bought it.
Apparently, laptops these days don't come with system recovery CDs; you have to make your own when you get home by running a wizard that burns CDs for you. I guess it saves on shipping CDs ? Since I'm gonna put Linux on this thing, I need a way to re-Windows it, if this turns out to be a dead end (so I can return it). So, I start the recovery disk wizard; it tells me to be sure to use "good quality CD-Rs" ! And then it fails to burn six Sony
CD-Rs. Oh boy. Should I return it now or push onward? Onward. It finally works when I switch to these funky black Memorex CD-Rs that I have lying around. Yay.
System recovery disk setup complete, I pop in my Linux CD and install Linux. 30 minutes later, it's a Linux laptop. Sweet. Dismal screen resolution, but still sweet.
Now to get the source files for the license maker from the Windows box to the laptop. Neither computer has a floppy drive. Let's try sharing the Windows folders... nope, Linux can't see it. Fuss with permissions and logins and passwords... nope, no luck. FTP ? Nope, can't figure out how to enable it on either machine. Samba? Can't find it. Burn a CD! Nope, the laptop can't read the Sony CDs and I'm out of black ones. Try a DVD? Nope, laptop can't read that DVD format. FTP up to our website and then download onto the laptop ? Upload goes fine, but the laptop can't see what I've uploaded (password problems) - and now I can't delete or move the stuff I uploaded - our web host is having problems, too.
OK.. I'm stumped. Nothing is working.
Wait... what's this little slot on the side of the laptop? Label says "Memory Stick".. hmm... you mean like the one in our Sony P7 digital camera? Yup. So, drop the files onto the memory stick and pop it in, not expecting that Linux will be clever enough to find the Memory Stick or know how to use it. It finds it! Success! The files have been copied!!
Now let's build them. They built fine under Cygwin, which is just like Linux, right? right?
Of course not. Hundreds of errors whiz by.
Time to slit my wrists.
OK, I held off on the suicide thing, and fixed the build issue by downloading a new version of the Crypto++ library - not a sure bet, given that Crypto++ often totally rewrites the interfaces between versions, but this one worked. It built! Put it on the server... PHP can't find it! Dig around for a half hour, trying to figure out how to make PHP find the file that's sitting in the same directory as the PHP file itself.... Aha! It found it! Run it... oh no! Wrong version of the C++ runtime libraries... what? Umm..poke, snoop, google, test.. Aha! I installed the wrong version of Linux! Of course! Time to download a different version (it only takes an hour
on a cable modem connection) and rebuild the laptop - again!
All this, because some asshole at our credit card site didn't want to run our license generator any more. I'll think no happy thoughts for him, this Christmas.
Wait, did I say a "different" version of Linux? I meant older
. And this older version doesn't know how to read the memory card slot on the laptop. WooHoo! Still can't find a way to enable the local FTP services on either box, so I retried using the FTP site on our web host. That worked. Good. Now the source is on the new/old Linux laptop. Try to build it. Fail. Fix a bunch of things that are angering the compiler. It builds! It runs correctly! Upload it to the web server. Try it. Ta-da! It works!
Now to wrap it in a program that can send email.
Every time I get near Linux, I know I'm in for an epic adventure.