Baseline
[www.vanrenterghem.biz.git] / Linux / HOWTO_run_GSR_on_Familiar_0.8.2.shtml
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />
6 <meta name="author" content="Frederik Vanrenterghem" />
7 <meta name="Description" content="Personal homepage - GNU/Linux stuff - Running GSR on Familiar Linux 0.8.2" />
8 <title>vanrenterghem.biz - GNU/Linux - Running GSR on Familiar Linux 0.8.2</title>
9 <link rel="stylesheet" href="/styles/header.css" type="text/css" />
10 <link rel="stylesheet" href="/styles/main.css" type="text/css" />
11 </head>
12 <body>
13 <!--#include virtual='/header.shtml' -->
14 <h1>Running GSR on Familiar Linux 0.8.2</h1>
15 <h2>Introduction</h2>
16 <p>
17 Installing <a href="http://www.lightningsp.com/modules/mydownloads/singlefile.php?cid=6&amp;lid=8">GMail SMTP Relay</a> 
18 on my iPAQ was a mistake. I incorrectly believed it would act as a local SMTP server 
19 and send all its data via a HTTPS connection to Google. Turns out the former is true, but the latter sadly isn't. As 
20 I spent a considerable amount of time trying to get this thing to work, I've documented hereunder what needs to be done.
21 </p>
22 <h2>On to business...</h2>
23 <p>
24 The first requirement isn't available in <a href="http://familiar.handhelds.org/releases/v0.8.2/feed/world/">the World feed</a>, so 
25 you'll have to download <a href="http://search.cpan.org/~macgyver/SMTP-Server-1.1/Server.pm">SMTP-Server</a> yourself.
27 Simply copy the required modules to the right place in /usr/lib/perl5. README is your friend.
29 Next, do
30 </p>
31 <p>
32 <code>
33 ipkg install perl-module-arm-linux-io-socket perl-module-io-socket-inet perl-module-strict \ <br />
34 perl-module-vars perl-module-warnings-register perl-module-warnings perl-module-carp perl-module-exporter \<br />
35 perl-module-arm-linux-io-handle perl-module-symbol perl-module-selectsaver perl-module-io \<br />
36 perl-module-arm-linux-xsloader perl-module-socket perl-module-sys-hostname perl-module-arm-linux-errno \<br />
37 perl-module-io-socket-unix perl-module-arm-linux-config perl-module-sys-hostname perl-module-io-socket-inet \<br />
38 perl-module-exporter-heavy perl-module-autoloader<br />
39 </code>
40 </p>
41 <p>
42 I also took a small detour install CPAN. In retrospect, that isn't entirely necessary, but I can't tell 
43 which of the following modules might not have been necessary:
44 </p>
45 <p>
46 <code>
47 ipkg install perl-module-cpan perl-module-cwd perl-module-dirhandle perl-module-extutils-makemaker \<br />
48 perl-module-file-basename perl-module-file-path perl-module-file-copy perl-module-file-find \<br />
49 perl-module-filehandle perl-module-text-parsewords perl-module-text-wrap perl-module-file-spec \<br />
50 perl-module-extutils-mm perl-module-extutils-liblist perl-module-file-spec-unix perl-module-extutils-liblist-kid \<br />
51 perl-module-extutils-mm-unix perl-module-extutils-mm-any perl-module-extutils-my perl-module-arm-linux-io-file \<br />
52 perl-module-arm-linux-io-handle perl-module-arm-linux-io-seekable perl-module-fcntl perl-module-arm-linux-safe \<br />
53 perl-module-opcode perl-module-subs perl-module-re perl-module-text-tabs perl-module-arm-linux-lib \<br />
54 perl-module-overload perl-module-cpan-firsttime perl-module-term-readline<br />
55 </code>
56 </p>
57 <p>
58 At this point, you need to get ready to compile some modules on your own, because that whole CPAN module will make you 
59 very angry. Trust me.
60 </p>
61 <p>
62 First, <a href="http://www.handhelds.org/moin/moin.cgi/DevelopOnFamiliar">prepare your iPAQ for native development</a>. Next, 
63 replace the busybox gzip with the real one (<code>rm /bin/gzip &amp;&amp; ipkg install gzip</code>).
64 </p>
65 <p>
66 Just so you keep the hang of it, install some more modules.
67 </p>
68 <p>
69 <code>ipkg install perl-module-extutils-manifest perl-module-carp-heavy perl-module-scalar-util \<br />
70 perl-module-test perl-module-digest-md5 perl-module-digest-base perl-module-data-dumper
71 </code>
72 </p>
73 <p>
74 You'll also need the <a href="http://familiar.handhelds.org/releases/v0.8.2/feed/world/perl-dev_5.8.4-r2_arm.ipk">Perl development files</a>. Install them with a simple <code>ipkg install perl-dev_5.8.4-r2_arm.ipk</code>.
75 </p>
76 <p>
77 You are now ready to install some crypto on your machine. OK, you actually already did that with the MD5 module above, but you 
78 probably didn't notice that.
79 </p>
80 <p>
81 <code>ipkg install openssl</code>
82 </p>
83 <p>
84 Get <a href="wget http://familiar.handhelds.org/releases/v0.8.2/feed/world/openssl-dev_0.9.7e-r1_arm.ipk">the OpenSSL development files</a> too. By now you know what to do with such a file. Actually, someone that didn't know that at the top of this document, in all 
85 likelihood stopped reading quite some time ago.
86 </p>
87 <p>
88 We now need to compile and install <a href="http://search.cpan.org/CPAN/authors/id/B/BE/BEHROOZI/IO-Socket-SSL-0.96.tar.gz">IO::Socket::SSL</a>. To do that we need, guess what, some more modules...
89 </p>
90 <p>
91 <code>ipkg install perl-module-extutils-command perl-module-file-compare perl-module-file-glob \<br />
92 perl-module-extutils-install perl-module-extutils-packlist perl-module-autosplit perl-module-file-spec-functions \<br />
93 perl-module-extutils-command-mm perl-module-pod-man perl-module-pod-parselink perl-module-pod-parser \<br />
94 perl-module-pod-inputobjects perl-module-getopt-long perl-module-constant
95 </code>
96 </p>
97 <p>
98 Another requirement we have to deal with first is <a href="http://search.cpan.org/CPAN/authors/id/S/SA/SAMPO/Net_SSLeay.pm-1.25.tar.gz">Net::SSLeay</a>. In order to compile that one, we need even more Perl modules. I know, it seems hardly possible to have even more 
99 modules, but I guess that's the beauty of modular systems...
100 </p>
101 <p>
102 <code>ipkg install perl-module-extutils-mkbootstrap perl-module-dynaloader perl-module-mime-base64</code>
103 </p>
104 <p>You'll also need to get <a href="http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-HMAC-1.01.tar.gz">Digest::HMAC</a> yourself, as it's not in the feed. Untar it and move the 3 files we need to the right position: <code>cp lib/Digest/HMAC* /usr/lib/perl5/5.8.4/Digest/</code>
105 </p>
106 <p>
107 By now you should be ready to compile IO::Socket::SSL, so go ahead with that.
108 </p>
109 <p>
110 Download and compile <a href="http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz">TermReadKey</a>. Also 
111 download and compile <a href="http://search.cpan.org/CPAN/authors/id/E/EH/EHOOD/Proc-Daemon-0.03.tar.gz">Proc::Daemon</a>. Now 
112 install just a few more modules, and you're ready to roll!!!
113 </p>
114 <p>
115 <code>ipkg install perl-module-test-harness perl-module-test-harness-straps perl-module-test-harness-assert \<br />
116 perl-module-test-harness-iterator perl-module-benchmark perl-module-sys-syslog perl-module-arm-linux-io-select
117 </code>
118 </p>
119 <h2>About compiling Perl modules on Familiar 0.8.2</h2>
120 <p>
121 You will soon find out who the maintainer of Perl in this distribution is, as he seems to have made a minor mistake somewhere, which 
122 results in all your self-compiled modules being installed in <em>/home/koen/OE/build/tmp/familiar/work/arm-linux/perl-5.8.4-r2/image/usr/</em>. That 
123 is only a minor inconvenience though; simply move them to the corresponding location in <em>/usr/lib/perl5/</em> and you are 
124 good to go.
125 </p>
126 <h2>Acknowledgments</h2>
127 <p>
128 A special thanks to the people that keep releasing all these goodies, especially the <a href="http://familiar.handhelds.org/">Familiar</a> and 
129 the <a href="http://openembedded.org/">OpenEmbedded</a> folks!!!
130 </p>
131 <!--#include virtual='/footer.shtml' -->
132 </body>
133 </html>
134