]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Petter Reinholdtsen</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>Robot, reis deg...</title>
11 <link>http://people.skolelinux.org/pere/blog/Robot__reis_deg___.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Robot__reis_deg___.html</guid>
13 <pubDate>Sat, 21 Aug 2010 22:10:00 +0200</pubDate>
14 <description>
15 &lt;p&gt;I dag fikk jeg endelig tittet litt på mine nyinnkjøpte roboter, og
16 har brukt noen timer til å google etter interessante referanser og
17 aktuell kildekode for bruk på Linux. Det mest lovende så langt er
18 &lt;a href=&quot;http://ispykee.toyz.org/&quot;&gt;ispykee&lt;/a&gt;, som har en
19 BSD-lisensiert linux-daemon som står som mellomledd mellom roboter på
20 lokalnettet og en sentral tjeneste der en iPhone kan koble seg opp for
21 å fjernstyre roboten. Linux-daemonen implementerer deler av
22 protokollen som roboten forstår. Etter å ha knotet litt med å oppnå
23 kontakt med roboten (den oppretter et eget ad-hoc wifi-nett, så jeg
24 måtte gå av mitt vanlige nett for å få kontakt), og kommet frem til at
25 den lytter på IP-port 9000 og 9001, gikk jeg i gang med å finne ut
26 hvordan jeg kunne snakke med roboten vha. disse portene. Robotbiten
27 av protokollen er publisert av produsenten med GPL-lisens, slik at det
28 er mulig å se hvordan protokollen fungerer. Det finnes en java-klient
29 for Android som så ganske snasen ut, men fant ingen kildekode for
30 denne. Derimot hadde iphone-løsningen kildekode, så jeg tok
31 utgangspunkt i den.&lt;/p&gt;
32
33 &lt;p&gt;Daemonen ville i utgangspunktet forsøke å kontakte den sentrale
34 tjenesten som iphone-programmet kobler seg til. Jeg skrev dette om
35 til i stedet å sette opp en nettverkstjeneste på min lokale maskin,
36 som jeg kan koble meg opp til med telnet og gi kommandoer til roboten
37 (act, forward, right, left, etc). Det involverte i praksis å bytte ut
38 socket()/connect() med socket()/bind()/listen()/accept() for å gjøre
39 klienten om til en tjener.&lt;/p&gt;
40
41 &lt;p&gt;Mens jeg har forsøkt å få roboten til å bevege seg har min samboer
42 skrudd sammen resten av roboten for å få montert kamera og plastpynten
43 (armer, plastfiber for lys). Nå er det hele montert, og roboten er
44 klar til bruk. Må få flyttet den over til mitt vanlige trådløsnett
45 før det blir praktisk, men de bitene av protokollen er ikke
46 implementert i ispykee-daemonen, så der må jeg enten få tak i en mac
47 eller en windows-maskin, eller implementere det selv.&lt;/p&gt;
48
49 &lt;p&gt;Vi var tre som kjøpte slike roboter, og vi har blitt enige om å
50 samle notater og referanser på &lt;a
51 href=&quot;http://wiki.nuug.no/grupper/robot/&quot;&gt;NUUGs wiki&lt;/a&gt;. Ta en titt
52 der hvis du er nysgjerrig.&lt;/p&gt;
53 </description>
54 </item>
55
56 <item>
57 <title>2 Spykee-roboter i hus, nå skal det lekes</title>
58 <link>http://people.skolelinux.org/pere/blog/2_Spykee_roboter_i_hus__n___skal_det_lekes.html</link>
59 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/2_Spykee_roboter_i_hus__n___skal_det_lekes.html</guid>
60 <pubDate>Wed, 18 Aug 2010 13:30:00 +0200</pubDate>
61 <description>
62 &lt;p&gt;Jeg kjøpte nettopp to
63 &lt;a href=&quot;http://www.spykee-robot.com/&quot;&gt;Spykee&lt;/a&gt;-roboter, for test og
64 leking. Kjøpte to da det var så billige, og gir meg mulighet til å
65 eksperimentere uten å være veldig redd for å ødelegge alt ved å bytte
66 ut firmware og slikt. Oppdaget at lekebutikken på Bryn senter hadde
67 en liten stabel på lager som de ikke hadde klart å selge ut etter
68 fjorårets juleinnkjøp, og var villig til å selge for en femtedel av
69 vanlig pris. Jeg, Ronny og Jarle har skaffet oss restbeholdningen, og
70 det blir morsomt å se hva vi får ut av dette.&lt;/p&gt;
71
72 &lt;p&gt;Roboten har belter styrt av to motorer, kamera, høytaler, mikrofon
73 og wifi-tilkobling. Det hele styrt av en GPL-lisensiert databoks som
74 jeg mistenker kjører linux. Firmware-kildekoden ble visst publisert i
75 mai. Eneste utfordringen er at kontroller-programvaren kun finnes til
76 Windows, men det må en kunne jobbe seg rundt når vi har kildekoden til
77 firmwaren. :)&lt;/p&gt;
78
79 &lt;ul&gt;
80 &lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Spykee&quot;&gt;Wikipedia-oppføring&lt;/a&gt;&lt;/li&gt;
81 &lt;li&gt;&lt;a href=http://www.spykeeworld.com/spykee/US/freeSoftware.html&quot;&gt;Nedlasting av firmware-kilden&lt;/a&gt;&lt;/li&gt;
82 &lt;li&gt;&lt;a href=&quot;http://wiki.nuug.no/grupper/robot&quot;&gt;prosjektwiki hos NUUG&lt;/a&gt;&lt;/li&gt;
83 &lt;/ul&gt;
84 </description>
85 </item>
86
87 <item>
88 <title>Rob Weir: How to Crush Dissent</title>
89 <link>http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html</link>
90 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html</guid>
91 <pubDate>Sun, 15 Aug 2010 22:20:00 +0200</pubDate>
92 <description>
93 &lt;p&gt;I found the notes from Rob Weir on
94 &lt;a href=&quot;http://feedproxy.google.com/~r/robweir/antic-atom/~3/VGb23-kta8c/how-to-crush-dissent.html&quot;&gt;how
95 to crush dissent&lt;/a&gt; matching my own thoughts on the matter quite
96 well. Highly recommended for those wondering which road our society
97 should go down. In my view we have been heading the wrong way for a
98 long time.&lt;/p&gt;
99 </description>
100 </item>
101
102 <item>
103 <title>No hardcoded config on Debian Edu clients</title>
104 <link>http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html</link>
105 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html</guid>
106 <pubDate>Mon, 9 Aug 2010 20:15:00 +0200</pubDate>
107 <description>
108 &lt;p&gt;As reported earlier, the last few days I have looked at how Debian
109 Edu clients are configured, and tried to get rid of all hardcoded
110 configuration settings on the clients. I believe the work to be
111 mostly done, and the clients seem to work just fine with dynamically
112 generated configuration.&lt;/p&gt;
113
114 &lt;p&gt;What is the point, you might ask? The point is to allow a Debian
115 Edu desktop to integrate into an existing network infrastructure
116 without any manual configuration.&lt;/p&gt;
117
118 &lt;p&gt;This is what happens when installing a Debian Edu client here at
119 the University of Oslo using PXE. With the PXE installation, I am
120 asked for language (Norwegian Bokmål), locality (Norway) and keyboard
121 layout (no-latin1), Debian Edu profile (Roaming Workstation), if I
122 accept to reformat the hard drive (yes), if I want to submit info to
123 popcon.debian.org (no) and root password (secret). After answering
124 these questions, the installer goes ahead and does its thing, and
125 after around 50 minutes it is done. I press enter to finish the
126 installation, and the machine reboots into KDE. When the machine is
127 ready and kdm asks for login information, I enter my university
128 username and password, am told by kdm that a local home directory has
129 been created and that I must log in again, and finally log in with the
130 same username and password to the KDE 4.4 desktop. At no point during
131 this process did it ask for university specific settings, and all the
132 required configuration was dynamically detected using information
133 fetched via DHCP and DNS. The roaming workstation is now ready for
134 use.&lt;/p&gt;
135
136 &lt;p&gt;How was this done, you might wonder? First of all, here is the
137 list of things that need to be configured on the client to get it
138 working properly out of the box:&lt;/p&gt;
139
140 &lt;ul&gt;
141 &lt;li&gt;IP address/netmask and DNS server.&lt;/li&gt;
142 &lt;li&gt;Web proxy URL.&lt;/li&gt;
143 &lt;li&gt;LDAP server for NSS directory information (user, group, etc).&lt;/li&gt;
144 &lt;li&gt;Kerberos server for PAM password checking.&lt;/li&gt;
145 &lt;li&gt;SMB mount point to access the network home directory. (*)&lt;/li&gt;
146 &lt;li&gt;Central syslog server to send syslog messages to. (*)&lt;/li&gt;
147 &lt;li&gt;Sitesummary collector URL to submit info to central server. (*)&lt;/li&gt;
148 &lt;/ul&gt;
149
150 &lt;p&gt;(Hm, did I forget anything? Let me knew if I did.)&lt;/p&gt;
151
152 &lt;p&gt;The points marked (*) are not required to be able to use the
153 machine, but needed to provide central storage and allowing system
154 administrators to track their machines. Since yesterday, everything
155 but the sitesummary collector URL is dynamically discovered at boot
156 and installation time in the svn version of Debian Edu.&lt;/p&gt;
157
158 &lt;p&gt;The IP and DNS setup is fetched during boot using DHCP as usual.
159 When a DHCP update arrives, the proxy setup is updated by looking for
160 http://wpat/wpad.dat and using the content of this WPAD file to
161 configure the http and ftp proxy in /etc/environment and
162 /etc/apt/apt.conf. I decided to update the proxy setup using a DHCP
163 hook to ensure that the client stops using the Debian Edu proxy when
164 it is moved outside the Debian Edu network, and instead uses any local
165 proxy present on the new network when it moves around.&lt;/p&gt;
166
167 &lt;p&gt;The DNS names of the LDAP, Kerberos and syslog server and related
168 configuration are generated using DNS information at boot. First the
169 installer looks for a host named ldap in the current DNS domain. If
170 not found, it looks for _ldap._tcp SRV records in DNS instead. If an
171 LDAP server is found, its root DSE entry is requested and the
172 attributes namingContexts and defaultNamingContext are used to
173 determine which LDAP base to use for NSS. If there are several
174 namingContexts attibutes and the defaultNamingContext is present, that
175 LDAP subtree is used as the base. If defaultNamingContext is missing,
176 the subtrees listed as namingContexts are searched in sequence for any
177 object with class posixAccount or posixGroup, and the first one with
178 such an object is used as the LDAP base. For Kerberos, a similar
179 search is done by first looking for a host named kerberos, and then
180 for the _kerberos._tcp SRV record. I&#39;ve been unable to find a way to
181 look up the Kerberos realm, so for this the upper case string of the
182 current DNS domain is used.&lt;/p&gt;
183
184 &lt;p&gt;For the syslog server, the hosts syslog and loghost are searched
185 for, and the _syslog._udp SRV record is consulted if no such host is
186 found. This algorithm works for both Debian Edu and the University of
187 Oslo. A similar strategy would work for locating the sitesummary
188 server, but have not been implemented yet. I decided to fetch and
189 save these settings during installation, to make sure moving to a
190 different network does not change the set of users being allowed to
191 log in nor the passwords required to log in. Usernames and passwords
192 will be cached by sssd when the user logs in on the Debian Edu
193 network, and will not change as the laptop move around. For a
194 non-roaming machine, there is no caching, but given that it is
195 supposed to stay in place it should not matter much. Perhaps we
196 should switch those to use sssd too?&lt;/p&gt;
197
198 &lt;p&gt;The user&#39;s SMB mount point for the network home directory is
199 located when the user logs in for the first time. The LDAP server is
200 consulted to look for the user&#39;s LDAP object and the sambaHomePath
201 attribute is used if found. If it isn&#39;t found, the home directory
202 path fetched from NSS is used instead. Assuming the path is of the
203 form /site/server/directory/username, the second part is looked up in
204 DNS and used to generate a SMB URL of the form
205 smb://server.domain/username. This algorithm works for both Debian
206 edu and the University of Oslo. Perhaps there are better attributes
207 to use or a better algorithm that works for more sites, but this will
208 do for now. :)&lt;/p&gt;
209
210 &lt;p&gt;This work should make it easier to integrate the Debian Edu clients
211 into any LDAP/Kerberos infrastructure, and make the current setup even
212 more flexible than before. I suspect it will also work for thin
213 client servers, allowing one to easily set up LTSP and hook it into a
214 existing network infrastructure, but I have not had time to test this
215 yet.&lt;/p&gt;
216
217 &lt;p&gt;If you want to help out with implementing these things for Debian
218 Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
219
220 &lt;p&gt;Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to
221 detect Kerberos realm from DNS, by looking for _kerberos TXT entries
222 before falling back to the upper case DNS domain name. Will have to
223 implement it for Debian Edu. :)&lt;/p&gt;
224 </description>
225 </item>
226
227 <item>
228 <title>Testing if a file system can be used for home directories...</title>
229 <link>http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html</link>
230 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html</guid>
231 <pubDate>Sun, 8 Aug 2010 21:20:00 +0200</pubDate>
232 <description>
233 &lt;p&gt;A few years ago, I was involved in a project planning to use
234 Windows file servers as home directory servers for Debian
235 Edu/Skolelinux machines. This was thought to be no problem, as the
236 access would be through the SMB network file system protocol, and we
237 knew other sites used SMB with unix and samba as the file server to
238 mount home directories without any problems. But, after months of
239 struggling, we had to conclude that our goal was impossible.&lt;/p&gt;
240
241 &lt;p&gt;The reason is simply that while SMB can be used for home
242 directories when the file server is Samba running on Unix, this only
243 work because of Samba have some extensions and the fact that the
244 underlying file system is a unix file system. When using a Windows
245 file server, the underlying file system do not have POSIX semantics,
246 and several programs will fail if the users home directory where they
247 want to store their configuration lack POSIX semantics.&lt;/p&gt;
248
249 &lt;p&gt;As part of this work, I wrote a small C program I want to share
250 with you all, to replicate a few of the problematic applications (like
251 OpenOffice.org and GCompris) and see if the file system was working as
252 it should. If you find yourself in spooky file system land, it might
253 help you find your way out again. This is the fs-test.c source:&lt;/p&gt;
254
255 &lt;pre&gt;
256 /*
257 * Some tests to check the file system sematics. Used to verify that
258 * CIFS from a windows server do not work properly as a linux home
259 * directory.
260 * License: GPL v2 or later
261 *
262 * needs libsqlite3-dev and build-essential installed
263 * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
264 */
265
266 #define _FILE_OFFSET_BITS 64
267 #define _LARGEFILE_SOURCE 1
268 #define _LARGEFILE64_SOURCE 1
269
270 #define _GNU_SOURCE /* for asprintf() */
271
272 #include &amp;lt;errno.h&gt;
273 #include &amp;lt;fcntl.h&gt;
274 #include &amp;lt;stdio.h&gt;
275 #include &amp;lt;string.h&gt;
276 #include &amp;lt;stdlib.h&gt;
277 #include &amp;lt;sys/file.h&gt;
278 #include &amp;lt;sys/stat.h&gt;
279 #include &amp;lt;sys/types.h&gt;
280 #include &amp;lt;unistd.h&gt;
281
282 #ifdef TEST_SQLITE
283 /*
284 * Test sqlite open, as done by gcompris require the libsqlite3-dev
285 * package and linking with -lsqlite3. A more low level test is
286 * below.
287 * See also &amp;lt;URL: http://www.sqlite.org./faq.html#q5 &gt;.
288 */
289 #include &amp;lt;sqlite3.h&gt;
290 #define CREATE_TABLE_USERS \
291 &quot;CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); &quot;
292 int test_sqlite_open(void) {
293 char *zErrMsg;
294 char *name = &quot;testsqlite.db&quot;;
295 sqlite3 *db=NULL;
296 unlink(name);
297 int rc = sqlite3_open(name, &amp;db);
298 if( rc ){
299 printf(&quot;error: sqlite open of %s failed: %s\n&quot;, name, sqlite3_errmsg(db));
300 sqlite3_close(db);
301 return -1;
302 }
303
304 /* create tables */
305 rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL, 0, &amp;zErrMsg);
306 if( rc != SQLITE_OK ){
307 printf(&quot;error: sqlite table create failed: %s\n&quot;, zErrMsg);
308 sqlite3_close(db);
309 return -1;
310 }
311 printf(&quot;info: sqlite worked\n&quot;);
312 sqlite3_close(db);
313 return 0;
314 }
315 #endif /* TEST_SQLITE */
316
317 /*
318 * Demonstrate locking issue found in gcompris using sqlite3. This
319 * work with ext3, but not with cifs server on Windows 2003. This is
320 * done in the sqlite3 library.
321 * See also
322 * &amp;lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html&gt; and the
323 * POSIX specification
324 * &amp;lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html&gt;.
325 */
326 int test_gcompris_locking(void) {
327 struct flock fl;
328 char *name = &quot;testsqlite.db&quot;;
329 unlink(name);
330 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
331 printf(&quot;info: testing fcntl locking\n&quot;);
332
333 fl.l_whence = SEEK_SET;
334 fl.l_pid = getpid();
335 printf(&quot; Read-locking 1 byte from 1073741824&quot;);
336 fl.l_start = 1073741824;
337 fl.l_len = 1;
338 fl.l_type = F_RDLCK;
339 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
340
341 printf(&quot; Read-locking 510 byte from 1073741826&quot;);
342 fl.l_start = 1073741826;
343 fl.l_len = 510;
344 fl.l_type = F_RDLCK;
345 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
346
347 printf(&quot; Unlocking 1 byte from 1073741824&quot;);
348 fl.l_start = 1073741824;
349 fl.l_len = 1;
350 fl.l_type = F_UNLCK;
351 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
352
353 printf(&quot; Write-locking 1 byte from 1073741824&quot;);
354 fl.l_start = 1073741824;
355 fl.l_len = 1;
356 fl.l_type = F_WRLCK;
357 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
358
359 printf(&quot; Write-locking 510 byte from 1073741826&quot;);
360 fl.l_start = 1073741826;
361 fl.l_len = 510;
362 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
363
364 printf(&quot; Unlocking 2 byte from 1073741824&quot;);
365 fl.l_start = 1073741824;
366 fl.l_len = 2;
367 fl.l_type = F_UNLCK;
368 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
369
370 close(fd);
371 return 0;
372 }
373
374 /*
375 * Test if permissions of freshly created directories allow entries
376 * below them. This was a problem with OpenOffice.org and gcompris.
377 * Mounting with option &#39;sync&#39; seem to solve this problem while
378 * slowing down file operations.
379 */
380 int test_subdirectory_creation(void) {
381 #define LEVELS 5
382 char *path = strdup(&quot;test&quot;);
383 char *dirs[LEVELS];
384 int level;
385 printf(&quot;info: testing subdirectory creation\n&quot;);
386 for (level = 0; level &amp;lt; LEVELS; level++) {
387 char *newpath = NULL;
388 if (-1 == mkdir(path, 0777)) {
389 printf(&quot; error: Unable to create directory &#39;%s&#39;: %s\n&quot;,
390 path, strerror(errno));
391 break;
392 }
393 asprintf(&amp;newpath, &quot;%s/%s&quot;, path, &quot;test&quot;);
394 free(path);
395 path = newpath;
396 }
397 return 0;
398 }
399
400 /*
401 * Test if symlinks can be created. This was a problem detected with
402 * KDE.
403 */
404 int test_symlinks(void) {
405 printf(&quot;info: testing symlink creation\n&quot;);
406 unlink(&quot;symlink&quot;);
407 if (-1 == symlink(&quot;file&quot;, &quot;symlink&quot;))
408 printf(&quot; error: Unable to create symlink\n&quot;);
409 return 0;
410 }
411
412 int main(int argc, char **argv) {
413 printf(&quot;Testing POSIX/Unix sematics on file system\n&quot;);
414 test_symlinks();
415 test_subdirectory_creation();
416 #ifdef TEST_SQLITE
417 test_sqlite_open();
418 #endif /* TEST_SQLITE */
419 test_gcompris_locking();
420 return 0;
421 }
422 &lt;/pre&gt;
423
424 &lt;p&gt;When everything is working, it should print something like
425 this:&lt;/p&gt;
426
427 &lt;pre&gt;
428 Testing POSIX/Unix sematics on file system
429 info: testing symlink creation
430 info: testing subdirectory creation
431 info: sqlite worked
432 info: testing fcntl locking
433 Read-locking 1 byte from 1073741824
434 Read-locking 510 byte from 1073741826
435 Unlocking 1 byte from 1073741824
436 Write-locking 1 byte from 1073741824
437 Write-locking 510 byte from 1073741826
438 Unlocking 2 byte from 1073741824
439 &lt;/pre&gt;
440
441 &lt;p&gt;I do not remember the exact details of the problems we saw, but one
442 of them was with locking, where if I remember correctly, POSIX allow a
443 read-only lock to be upgraded to a read-write lock without unlocking
444 the read-only lock (while Windows do not). Another was a bug in the
445 CIFS/SMB client implementation in the Linux kernel where directory
446 meta information would be wrong for a fraction of a second, making
447 OpenOffice.org fail to create its deep directory tree because it was
448 not allowed to create files in its freshly created directory.&lt;/p&gt;
449
450 &lt;p&gt;Anyway, here is a nice tool for your tool box, might you never need
451 it. :)&lt;/p&gt;
452 </description>
453 </item>
454
455 <item>
456 <title>Autodetecting Client setup for roaming workstations in Debian Edu</title>
457 <link>http://people.skolelinux.org/pere/blog/Autodetecting_Client_setup_for_roaming_workstations_in_Debian_Edu.html</link>
458 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Autodetecting_Client_setup_for_roaming_workstations_in_Debian_Edu.html</guid>
459 <pubDate>Sat, 7 Aug 2010 14:45:00 +0200</pubDate>
460 <description>
461 &lt;p&gt;A few days ago, I
462 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html&quot;&gt;tried
463 to install&lt;/a&gt; a Roaming workation profile from Debian Edu/Squeeze
464 while on the university network here at the University of Oslo, and
465 noticed how much had to change to get it operational using the
466 university infrastructure. It was fairly easy, but it occured to me
467 that Debian Edu would improve a lot if I could get the client to
468 connect without any changes at all, and thus let the client configure
469 itself during installation and first boot to use the infrastructure
470 around it. Now I am a huge step further along that road.&lt;/p&gt;
471
472 &lt;p&gt;With our current squeeze-test packages, I can select the roaming
473 workstation profile and get a working laptop connecting to the
474 university LDAP server for user and group and our active directory
475 servers for Kerberos authentication. All this without any
476 configuration at all during installation. My users home directory got
477 a bookmark in the KDE menu to mount it via SMB, with the correct URL.
478 In short, openldap and sssd is correctly configured. In addition to
479 this, the client look for http://wpad/wpad.dat to configure a web
480 proxy, and when it fail to find it no proxy settings are stored in
481 /etc/environment and /etc/apt/apt.conf. Iceweasel and KDE is
482 configured to look for the same wpad configuration and also do not use
483 a proxy when at the university network. If the machine is moved to a
484 network with such wpad setup, it would automatically use it when DHCP
485 gave it a IP address.&lt;/p&gt;
486
487 &lt;p&gt;The LDAP server is located using DNS, by first looking for the DNS
488 entry ldap.$domain. If this do not exist, it look for the
489 _ldap._tcp.$domain SRV records and use the first one as the LDAP
490 server. Next, it connects to the LDAP server and search all
491 namingContexts entries for posixAccount or posixGroup objects, and
492 pick the first one as the LDAP base. For Kerberos, a similar
493 algorithm is used to locate the LDAP server, and the realm is the
494 uppercase version of $domain.&lt;/p&gt;
495
496 &lt;p&gt;So, what is not working, you might ask. SMB mounting my home
497 directory do not work. No idea why, but suspected the incorrect
498 Kerberos settings in /etc/krb5.conf and /etc/samba/smb.conf might be
499 the cause. These are not properly configured during installation, and
500 had to be hand-edited to get the correct Kerberos realm and server,
501 but SMB mounting still do not work. :(&lt;/p&gt;
502
503 &lt;p&gt;With this automatic configuration in place, I expect a Debian Edu
504 roaming profile installation would be able to automatically detect and
505 connect to any site using LDAP and Kerberos for NSS directory and PAM
506 authentication. It should also work out of the box in a Active
507 Directory environment providing posixAccount and posixGroup objects
508 with UID and GID values.&lt;/p&gt;
509
510 &lt;p&gt;If you want to help out with implementing these things for Debian
511 Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
512 </description>
513 </item>
514
515 <item>
516 <title>Debian Edu roaming workstation - at the university of Oslo</title>
517 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html</link>
518 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html</guid>
519 <pubDate>Tue, 3 Aug 2010 23:30:00 +0200</pubDate>
520 <description>
521 &lt;p&gt;The new roaming workstation profile in Debian Edu/Squeeze is fairly
522 similar to the laptop setup am I working on using Ubuntu for the
523 University of Oslo, and just for the heck of it, I tested today how
524 hard it would be to integrate that profile into the university
525 infrastructure. In this case, it is the university LDAP server,
526 Active Directory Kerberos server and SMB mounting from the Netapp file
527 servers.&lt;/p&gt;
528
529 &lt;p&gt;I was pleasantly surprised that the only three files needed to be
530 changed (/etc/sssd/sssd.conf, /etc/ldap.conf and
531 /etc/mklocaluser.d/20-debian-edu-config) and one file had to be added
532 (/usr/share/perl5/Debian/Edu_Local.pm), to get the client working.
533 Most of the changes were to get the client to use the university LDAP
534 for NSS and Kerberos server for PAM, but one was to change a hard
535 coded DNS domain name in the mklocaluser hook from .intern to
536 .uio.no.&lt;/p&gt;
537
538 &lt;p&gt;This testing was so encouraging, that I went ahead and adjusted the
539 Debian Edu scripts and setup in subversion to centralise the roaming
540 workstation setup a bit more and avoid the hardcoded DNS domain name,
541 so that when I test this tomorrow, I expect to get away with modifying
542 only /etc/sssd/sssd.conf and /etc/ldap.conf to get it to use the
543 university servers.&lt;/p&gt;
544
545 &lt;p&gt;My goal is to get the clients to have no hardcoded settings and
546 fetch all their initial setup during installation and first boot, to
547 allow them to be inserted also into environments where the default
548 setup in Debian Edu has been changed or as with the university, where
549 the environment is different but provides the protocols Debian Edu
550 uses.&lt;/p&gt;
551 </description>
552 </item>
553
554 <item>
555 <title>Circular package dependencies harms apt recovery</title>
556 <link>http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</link>
557 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</guid>
558 <pubDate>Tue, 27 Jul 2010 23:50:00 +0200</pubDate>
559 <description>
560 &lt;p&gt;I discovered this while doing
561 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html&quot;&gt;automated
562 testing of upgrades from Debian Lenny to Squeeze&lt;/a&gt;. A few packages
563 in Debian still got circular dependencies, and it is often claimed
564 that apt and aptitude should be able to handle this just fine, but
565 some times these dependency loops causes apt to fail.&lt;/p&gt;
566
567 &lt;p&gt;An example is from todays
568 &lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt&quot;&gt;upgrade
569 of KDE using aptitude&lt;/a&gt;. In it, a bug in kdebase-workspace-data
570 causes perl-modules to fail to upgrade. The cause is simple. If a
571 package fail to unpack, then only part of packages with the circular
572 dependency might end up being unpacked when unpacking aborts, and the
573 ones already unpacked will fail to configure in the recovery phase
574 because its dependencies are unavailable.&lt;/p&gt;
575
576 &lt;p&gt;In this log, the problem manifest itself with this error:&lt;/p&gt;
577
578 &lt;blockquote&gt;&lt;pre&gt;
579 dpkg: dependency problems prevent configuration of perl-modules:
580 perl-modules depends on perl (&gt;= 5.10.1-1); however:
581 Version of perl on system is 5.10.0-19lenny2.
582 dpkg: error processing perl-modules (--configure):
583 dependency problems - leaving unconfigured
584 &lt;/pre&gt;&lt;/blockquote&gt;
585
586 &lt;p&gt;The perl/perl-modules circular dependency is already
587 &lt;a href=&quot;http://bugs.debian.org/527917&quot;&gt;reported as a bug&lt;/a&gt;, and will
588 hopefully be solved as soon as possible, but it is not the only one,
589 and each one of these loops in the dependency tree can cause similar
590 failures. Of course, they only occur when there are bugs in other
591 packages causing the unpacking to fail, but it is rather nasty when
592 the failure of one package causes the problem to become worse because
593 of dependency loops.&lt;/p&gt;
594
595 &lt;p&gt;Thanks to
596 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/06/msg00116.html&quot;&gt;the
597 tireless effort by Bill Allombert&lt;/a&gt;, the number of circular
598 dependencies
599 &lt;a href=&quot;http://debian.semistable.com/debgraph.out.html&quot;&gt;left in Debian
600 is dropping&lt;/a&gt;, and perhaps it will reach zero one day. :)&lt;/p&gt;
601
602 &lt;p&gt;Todays testing also exposed a bug in
603 &lt;a href=&quot;http://bugs.debian.org/590605&quot;&gt;update-notifier&lt;/a&gt; and
604 &lt;a href=&quot;http://bugs.debian.org/590604&quot;&gt;different behaviour&lt;/a&gt; between
605 apt-get and aptitude, the latter possibly caused by some circular
606 dependency. Reported both to BTS to try to get someone to look at
607 it.&lt;/p&gt;
608 </description>
609 </item>
610
611 <item>
612 <title>First Debian Edu test release (alpha0) based on Squeeze is released</title>
613 <link>http://people.skolelinux.org/pere/blog/First_Debian_Edu_test_release__alpha0__based_on_Squeeze_is_released.html</link>
614 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_Debian_Edu_test_release__alpha0__based_on_Squeeze_is_released.html</guid>
615 <pubDate>Tue, 27 Jul 2010 17:45:00 +0200</pubDate>
616 <description>
617 &lt;p&gt;I just posted this announcement culminating several months of work
618 with the next Debian Edu release. Not nearly done, but one major step
619 completed.&lt;/p&gt;
620
621 &lt;blockquote&gt;
622 &lt;p&gt;This is the first test release based on Squeeze. The focus of this
623 release is to test the user application selection. To have a look,
624 install the standalone profile and let the developers know if the set
625 of installed packages i.e. applications should be modified. If some
626 user application is missing, or if there are some applications that no
627 longer make sense to be included in Debian Edu, please let us know.
628 Also, if a useful application is missing the translation for your
629 language of choice, please let us know too.&lt;/p&gt;
630
631 &lt;p&gt;In addition, feedback and help to polish the desktop (menus,
632 artwork, starters, etc.) is appreciated. We would like to ship a nice
633 and handy KDE4 desktop targeted for schools out of the box.&lt;/p&gt;
634
635 &lt;p&gt;The other profiles should be installable, but there is a lot more
636 work left to be done before they are ready, so do not expect to
637 much.&lt;/p&gt;
638
639 &lt;p&gt;Changes compared to the lenny based version&lt;/p&gt;
640
641 &lt;ul&gt;
642 &lt;li&gt;Everything from Debian Squeeze
643 &lt;ul&gt;
644 &lt;li&gt;Desktop environment KDE 4.4 =&gt; the new KDE desktop in
645 combination with some new artwork
646 &lt;li&gt;Web browser Iceweasel 3.5
647 &lt;li&gt;OpenOffice.org 3.2
648 &lt;li&gt;Educational toolbox GCompris 9.3
649 &lt;li&gt;Music creator Rosegarden 10.04.2
650 &lt;li&gt;Image editor Gimp 2.6.10
651 &lt;li&gt;Virtual universe Celestia 1.6.0
652 &lt;li&gt;Virtual stargazer Stellarium 0.10.4
653 &lt;li&gt;3D modeler Blender 2.49.2 (new application)
654 &lt;li&gt;Video editor Kdenlive 0.7.7 (new application)
655 &lt;/ul&gt;&lt;/li&gt;
656 &lt;li&gt;Now using Kerberos for password checking (migration not finished).
657 Enabled for:
658 &lt;ul&gt;
659 &lt;li&gt;PAM
660 &lt;li&gt;LDAP
661 &lt;li&gt;IMAP
662 &lt;li&gt;SMTP (sender verification)
663 &lt;/ul&gt;
664 &lt;/li&gt;
665 &lt;li&gt;New experimental roaming workstation profile for laptops.&lt;/li&gt;
666 &lt;li&gt;Show welcome page to users when they first log in. The URL is
667 fetched from LDAP.&lt;/li&gt;
668 &lt;li&gt;New LXDE desktop option, in addition to KDE (default) and Gnome.&lt;/li&gt;
669 &lt;li&gt;General cleanup (not finished)&lt;/li&gt;
670 &lt;/ul&gt;
671 &lt;p&gt;The following features are not working as they should&lt;/p&gt;
672
673 &lt;ul&gt;
674 &lt;li&gt;No web based administration tool for creating users and groups. The
675 scripts ldap-createuser-krb and ldap-add-user-to-group can be used
676 for testing.&lt;/li&gt;
677 &lt;li&gt;DVD installs are missing debian-installer images for the PXE boot,
678 and do not set up the PXE menu on eth0 because of this. LTSP
679 clients should still boot from eth1 on thin client servers.&lt;/li&gt;
680 &lt;li&gt;The restructured KDE menu is not implemented.&lt;/li&gt;
681 &lt;li&gt;The LDAP server setup need to be reviewed for security.&lt;/li&gt;
682 &lt;li&gt;The LDAP directory structure need to be reworked.&lt;/li&gt;
683 &lt;li&gt;Different sets of packages are installed when using the DVD and the
684 netinst CD. More packages are installed using the netinst CD.&lt;/li&gt;
685 &lt;li&gt;The jackd package fail to install. This is believed to be caused by
686 some ongoing transition, and hopefully should be solved soon. The
687 jackd1 package can be installed manually for those that need it.&lt;/li&gt;
688 &lt;li&gt;Some packages lack translations. See
689 http://wiki.debian.org/DebianEdu/Status/Squeeze for updated status,
690 and help out with translations.&lt;/li&gt;
691 &lt;/ul&gt;
692
693 &lt;p&gt;To download this multiarch netinstall release you can use&lt;/p&gt;
694
695 &lt;ul&gt;
696 &lt;li&gt;&lt;a href=&quot;ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso&quot;&gt;ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso&lt;/a&gt;&lt;/li&gt;
697 &lt;li&gt;&lt;a href=&quot;http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso&quot;&gt;http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso&lt;/a&gt;&lt;/li&gt;
698 &lt;li&gt;rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso&lt;/li&gt;
699 &lt;/ul&gt;
700 &lt;p&gt;To download this multiarch dvd release you can use&lt;/p&gt;
701
702 &lt;ul&gt;
703 &lt;li&gt;&lt;a href=&quot;ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso&quot;&gt;ftp://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso&lt;/a&gt;&lt;/li&gt;
704 &lt;li&gt;&lt;a href=&quot;http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso&quot;&gt;http://ftp.skolelinux.org/skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso&lt;/a&gt;&lt;/li&gt;
705 &lt;li&gt;rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso&lt;/li&gt;
706 &lt;/ul&gt;
707
708 &lt;p&gt;There is no source DVD available yet. It will be prepared when we
709 get closer to the final release.&lt;/p&gt;
710
711 &lt;p&gt;The MD5SUM of these images are&lt;/p&gt;
712
713 &lt;ul&gt;
714 &lt;li&gt;3dbf45d59f42a53518b6e3c9ec3b5eb6 debian-edu-6.0.0+edua0-CD.iso&lt;/li&gt;
715 &lt;li&gt;22f2cbfce281d1c6e478be452638675d debian-edu-6.0.0+edua0-DVD.iso&lt;/li&gt;
716 &lt;/ul&gt;
717
718 &lt;p&gt;The SHA1SUM of these images are&lt;/p&gt;
719 &lt;ul&gt;
720 &lt;li&gt;c53d1b69b40cf37cd27aefaf33f6f6a3821bedf0 debian-edu-6.0.0+edua0-CD.iso&lt;/li&gt;
721 &lt;li&gt;2ec29d7db676d59d32197b05c277ffe16348376c debian-edu-6.0.0+edua0-DVD.iso&lt;/li&gt;
722 &lt;/ul&gt;
723 &lt;p&gt;How to report bugs:
724 http://wiki.debian.org/DebianEdu/HowTo/ReportBugsInBugzilla&lt;/p&gt;
725
726 &lt;p&gt;Please direct replies to debian-edu@lists.debian.org&lt;/p&gt;
727 &lt;/blockquote&gt;
728 </description>
729 </item>
730
731 <item>
732 <title>One step closer to single signon in Debian Edu</title>
733 <link>http://people.skolelinux.org/pere/blog/One_step_closer_to_single_signon_in_Debian_Edu.html</link>
734 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/One_step_closer_to_single_signon_in_Debian_Edu.html</guid>
735 <pubDate>Sun, 25 Jul 2010 10:00:00 +0200</pubDate>
736 <description>
737 &lt;p&gt;The last few months me and the other Debian Edu developers have
738 been working hard to get the Debian/Squeeze based version of Debian
739 Edu/Skolelinux into shape. This future version will use Kerberos for
740 authentication, and services are slowly migrated to single signon,
741 getting rid of password questions one at the time.&lt;/p&gt;
742
743 &lt;p&gt;It will also feature a roaming workstation profile with local home
744 directory, for laptops that are only some times on the Skolelinux
745 network, and for this profile a shortcut is created in Gnome and KDE
746 to gain access to the users home directory on the file server. This
747 shortcut uses SMB at the moment, and yesterday I had time to test if
748 SMB mounting had started working in KDE after we added the cifs-utils
749 package. I was pleasantly surprised how well it worked.&lt;/p&gt;
750
751 &lt;p&gt;Thanks to the recent changes to our samba configuration to get it
752 to use Kerberos for authentication, there were no question about user
753 password when mounting the SMB volume. A simple click on the shortcut
754 in the KDE menu, and a window with the home directory popped
755 up. :)&lt;/p&gt;
756
757 &lt;p&gt;One step closer to a single signon solution out of the box in
758 Debian Edu. We already had PAM, LDAP, IMAP and SMTP in place, and now
759 also Samba. Next step is Cups and hopefully also NFS.&lt;/p&gt;
760
761 &lt;p&gt;We had planned a alpha0 release of Debian Edu for today, but thanks
762 to the autobuilder administrators for some architectures being slow to
763 sign packages, we are still missing the fixed LTSP package we need for
764 the release. It was uploaded three days ago with urgency=high, and if
765 it had entered testing yesterday we would have been able to test it in
766 time for a alpha0 release today. As the binaries for ia64 and powerpc
767 still not uploaded to the Debian archive, we need to delay the alpha
768 release another day.&lt;/p&gt;
769
770 &lt;p&gt;If you want to help out with implementing Kerberos for Debian Edu,
771 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
772 </description>
773 </item>
774
775 </channel>
776 </rss>