]> pere.pagekite.me Git - homepage.git/blob - blog/tags/english/english.rss
500a44e77b90fde5bc12bb8cf97a5b09b061f99c
[homepage.git] / blog / tags / english / english.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
3 <channel>
4 <title>Petter Reinholdtsen - Entries tagged english</title>
5 <description>Entries tagged english</description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7
8
9 <item>
10 <title>The sorry state of multimedia browser plugins in Debian</title>
11 <link>http://people.skolelinux.org/pere/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_sorry_state_of_multimedia_browser_plugins_in_Debian.html</guid>
13 <pubDate>Tue, 25 Nov 2008 00:10:00 +0100</pubDate>
14 <description>&lt;p&gt;Recently I have spent some time evaluating the multimedia browser
15 plugins available in Debian Lenny, to see which one we should use by
16 default in Debian Edu. We need an embedded video playing plugin with
17 control buttons to pause or stop the video, and capable of streaming
18 all the multimedia content available on the web. The test results and
19 notes are available on
20 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/BrowserMultimedia&quot;&gt;the
21 Debian wiki&lt;/a&gt;. I was surprised how few of the plugins are able to
22 fill this need. My personal video player favorite, VLC, has a really
23 bad plugin which fail on a lot of the test pages. A lot of the MIME
24 types I would expect to work with any free software player (like
25 video/ogg), just do not work. And simple formats like the
26 audio/x-mplegurl format (m3u playlists), just isn&#39;t supported by the
27 totem and vlc plugins. I hope the situation will improve soon. No
28 wonder sites use the proprietary Adobe flash to play video.&lt;/p&gt;
29
30 &lt;p&gt;For Lenny, we seem to end up with the mplayer plugin. It seem to
31 be the only one fitting our needs. :/&lt;/p&gt;
32 </description>
33 </item>
34
35 <item>
36 <title>Devcamp brought us closer to the Lenny based Debian Edu release</title>
37 <link>http://people.skolelinux.org/pere/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html</link>
38 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Devcamp_brought_us_closer_to_the_Lenny_based_Debian_Edu_release.html</guid>
39 <pubDate>Sun, 7 Dec 2008 12:00:00 +0100</pubDate>
40 <description>&lt;p&gt;This weekend we had a small developer gathering for Debian Edu in
41 Oslo. Most of Saturday was used for the general assemly for the
42 member organization, but the rest of the weekend I used to tune the
43 LTSP installation. LTSP now work out of the box on the 10-network.
44 Acer Aspire One proved to be a very nice thin client, with both
45 screen, mouse and keybard in a small box. Was working on getting the
46 diskless workstation setup configured out of the box, but did not
47 finish it before the weekend was up.&lt;/p&gt;
48
49 &lt;p&gt;Did not find time to look at the 4 VGA cards in one box we got from
50 the Brazilian group, so that will have to wait for the next
51 development gathering. Would love to have the Debian Edu installer
52 automatically detect and configure a multiseat setup when it find one
53 of these cards.&lt;/p&gt;
54 </description>
55 </item>
56
57 <item>
58 <title>Software video mixer on a USB stick</title>
59 <link>http://people.skolelinux.org/pere/blog/Software_video_mixer_on_a_USB_stick.html</link>
60 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Software_video_mixer_on_a_USB_stick.html</guid>
61 <pubDate>Sun, 28 Dec 2008 15:40:00 +0100</pubDate>
62 <description>&lt;p&gt;The &lt;a href=&quot;http://www.nuug.no/&quot;&gt;Norwegian Unix User Group&lt;/a&gt; is
63 recording our montly presentation on video, and recently we have
64 worked on improving the quality of the recordings by mixing the slides
65 directly with the video stream. For this, we use the
66 &lt;a href=&quot;http://dvswitch.alioth.debian.org/&quot;&gt;dvswitch&lt;/a&gt; package from
67 the Debian video team. As this require quite one computer per video
68 source, and NUUG do not have enough laptops available, we need to
69 borrow laptops. And to avoid having to install extra software on
70 these borrwed laptops, I have wrapped up all the programs needed on a
71 bootable USB stick. The software required is dvswitch with assosiated
72 source, sink and mixer applications and
73 &lt;a href=&quot;http://www.kinodv.org/&quot;&gt;dvgrab&lt;/a&gt;. To allow this setup to
74 work without any configuration, I&#39;ve patched dvswitch to use
75 &lt;a href=&quot;http://www.avahi.org/&quot;&gt;avahi&lt;/a&gt; to connect the various parts
76 together. And to allow us to use laptops without firewire plugs, I
77 upgraded dvgrab to the one from Debian/unstable to get one that work
78 with USB sources. We have not yet tested this setup in a production
79 setup, but I hope it will work properly, and allow us to set up a
80 video mixer in a very short time frame. We will need it for
81 &lt;a href=&quot;http://www.goopen.no/&quot;&gt;Go Open 2009&lt;/a&gt;.&lt;/p&gt;
82
83 &lt;p&gt;&lt;a href=&quot;http://www.nuug.no/pub/video/bin/usbstick-dvswitch.img.gz&quot;&gt;The
84 USB image&lt;/a&gt; is for a 1 GB memory stick, but can be used on any
85 larger stick as well.&lt;/p&gt;
86 </description>
87 </item>
88
89 <item>
90 <title>When web browser developers make a video player...</title>
91 <link>http://people.skolelinux.org/pere/blog/When_web_browser_developers_make_a_video_player___.html</link>
92 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/When_web_browser_developers_make_a_video_player___.html</guid>
93 <pubDate>Sat, 17 Jan 2009 18:50:00 +0100</pubDate>
94 <description>&lt;p&gt;As part of the work we do in &lt;a href=&quot;http://www.nuug.no&quot;&gt;NUUG&lt;/a&gt;
95 to publish video recordings of our monthly presentations, we provide a
96 page with embedded video for easy access to the recording. Putting a
97 good set of HTML tags together to get working embedded video in all
98 browsers and across all operating systems is not easy. I hope this
99 will become easier when the &amp;lt;video&amp;gt; tag is implemented in all
100 browsers, but I am not sure. We provide the recordings in several
101 formats, MPEG1, Ogg Theora, H.264 and Quicktime, and want the
102 browser/media plugin to pick one it support and use it to play the
103 recording, using whatever embed mechanism the browser understand.
104 There is at least four different tags to use for this, the new HTML5
105 &amp;lt;video&amp;gt; tag, the &amp;lt;object&amp;gt; tag, the &amp;lt;embed&amp;gt; tag and
106 the &amp;lt;applet&amp;gt; tag. All of these take a lot of options, and
107 finding the best options is a major challenge.&lt;/p&gt;
108
109 &lt;p&gt;I just tested the experimental Opera browser available from &lt;a
110 href=&quot;http://labs.opera.com&quot;&gt;labs.opera.com&lt;/a&gt;, to see how it handled
111 a &amp;lt;video&amp;gt; tag with a few video sources and no extra attributes.
112 I was not very impressed. The browser start by fetching a picture
113 from the video stream. Not sure if it is the first frame, but it is
114 definitely very early in the recording. So far, so good. Next,
115 instead of streaming the 76 MiB video file, it start to download all
116 of it, but do not start to play the video. This mean I have to wait
117 for several minutes for the downloading to finish. When the download
118 is done, the playing of the video do not start! Waiting for the
119 download, but I do not get to see the video? Some testing later, I
120 discover that I have to add the controls=&quot;true&quot; attribute to be able
121 to get a play button to pres to start the video. Adding
122 autoplay=&quot;true&quot; did not help. I sure hope this is a misfeature of the
123 test version of Opera, and that future implementations of the
124 &amp;lt;video&amp;gt; tag will stream recordings by default, or at least start
125 playing when the download is done.&lt;/p&gt;
126
127 &lt;p&gt;The test page I used (since changed to add more attributes) is
128 &lt;a href=&quot;http://www.nuug.no/aktiviteter/20090113-foredrag-om-foredrag/&quot;&gt;available
129 from the nuug site&lt;/a&gt;. Will have to test it with the new Firefox
130 too.&lt;/p&gt;
131
132 &lt;p&gt;In the test process, I discovered a missing feature. I was unable
133 to find a way to get the URL of the playing video out of Opera, so I
134 am not quite sure it picked the Ogg Theora version of the video. I
135 sure hope it was using the announced Ogg Theora support. :)&lt;/p&gt;
136 </description>
137 </item>
138
139 <item>
140 <title>Using bar codes at a computing center</title>
141 <link>http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html</link>
142 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_bar_codes_at_a_computing_center.html</guid>
143 <pubDate>Fri, 20 Feb 2009 08:50:00 +0100</pubDate>
144 <description>&lt;p&gt;At work with the University of Oslo, we have several hundred computers
145 in our computing center. This give us a challenge in tracking the
146 location and cabling of the computers, when they are added, moved and
147 removed. Some times the location register is not updated when a
148 computer is inserted or moved and we then have to search the room for
149 the &quot;missing&quot; computer.&lt;/p&gt;
150
151 &lt;p&gt;In the last issue of Linux Journal, I came across a project
152 &lt;a href=&quot;http://www.libdmtx.org/&quot;&gt;libdmtx&lt;/a&gt; to write and read bar
153 code blocks as defined in the
154 &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_Matrix&quot;&gt;The Data Matrix
155 Standard&lt;/a&gt;. This is bar codes that can be read with a normal
156 digital camera, for example that on a cell phone, and several such bar
157 codes can be read by libdmtx from one picture. The bar code standard
158 allow up to 2 KiB to be written in the tag. There is another project
159 with &lt;a href=&quot;http://www.terryburton.co.uk/barcodewriter/&quot;&gt;a bar code
160 writer written in postscript&lt;/a&gt; capable of creating such bar codes,
161 but this was the first time I found a tool to read these bar
162 codes.&lt;/p&gt;
163
164 &lt;p&gt;It occurred to me that this could be used to tag and track the
165 machines in our computing center. If both racks and computers are
166 tagged this way, we can use a picture of the rack and all its
167 computers to detect the rack location of any computer in that rack.
168 If we do this regularly for the entire room, we will find all
169 locations, and can detect movements and removals.&lt;/p&gt;
170
171 &lt;p&gt;I decided to test if this would work in practice, and picked a
172 random rack and tagged all the machines with their names. Next, I
173 took pictures with my digital camera, and gave the dmtxread program
174 these JPEG pictures to see how many tags it could read. This worked
175 fairly well. If the pictures was well focused and not taken from the
176 side, all tags in the image could be read. Because of limited space
177 between the racks, I was unable to get a good picture of the entire
178 rack, but could without problem read all tags from a picture covering
179 about half the rack. I had to limit the search time used by dmtxread
180 to 60000 ms to make sure it terminated in a reasonable time frame.&lt;/p&gt;
181
182 &lt;p&gt;My conclusion is that this could work, and we should probably look
183 at adjusting our computer tagging procedures to use bar codes for
184 easier automatic tracking of computers.&lt;/p&gt;
185 </description>
186 </item>
187
188 <item>
189 <title>Checking server hardware support status for Dell, HP and IBM servers</title>
190 <link>http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html</link>
191 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Checking_server_hardware_support_status_for_Dell__HP_and_IBM_servers.html</guid>
192 <pubDate>Sat, 28 Feb 2009 23:50:00 +0100</pubDate>
193 <description>&lt;p&gt;At work, we have a few hundred Linux servers, and with that amount
194 of hardware it is important to keep track of when the hardware support
195 contract expire for each server. We have a machine (and service)
196 register, which until recently did not contain much useful besides the
197 machine room location and contact information for the system owner for
198 each machine. To make it easier for us to track support contract
199 status, I&#39;ve recently spent time on extending the machine register to
200 include information about when the support contract expire, and to tag
201 machines with expired contracts to make it easy to get a list of such
202 machines. I extended a perl script already being used to import
203 information about machines into the register, to also do some screen
204 scraping off the sites of Dell, HP and IBM (our majority of machines
205 are from these vendors), and automatically check the support status
206 for the relevant machines. This make the support status information
207 easily available and I hope it will make it easier for the computer
208 owner to know when to get new hardware or renew the support contract.
209 The result of this work documented that 27% of the machines in the
210 registry is without a support contract, and made it very easy to find
211 them. 27% might seem like a lot, but I see it more as the case of us
212 using machines a bit longer than the 3 years a normal support contract
213 last, to have test machines and a platform for less important
214 services. After all, the machines without a contract are working fine
215 at the moment and the lack of contract is only a problem if any of
216 them break down. When that happen, we can either fix it using spare
217 parts from other machines or move the service to another old
218 machine.&lt;/p&gt;
219
220 &lt;p&gt;I believe the code for screen scraping the Dell site was originally
221 written by Trond Hasle Amundsen, and later adjusted by me and Morten
222 Werner Forsbring. The HP scraping was written by me after reading a
223 nice article in ;login: about how to use WWW::Mechanize, and the IBM
224 scraping was written by me based on the Dell code. I know the HTML
225 parsing could be done using nice libraries, but did not want to
226 introduce more dependencies. This is the current incarnation:&lt;/p&gt;
227
228 &lt;pre&gt;
229 use LWP::Simple;
230 use POSIX;
231 use WWW::Mechanize;
232 use Date::Parse;
233 [...]
234 sub get_support_info {
235 my ($machine, $model, $serial, $productnumber) = @_;
236 my $str;
237
238 if ( $model =~ m/^Dell / ) {
239 # fetch website from Dell support
240 my $url = &quot;http://support.euro.dell.com/support/topics/topic.aspx/emea/shared/support/my_systems_info/no/details?c=no&amp;amp;cs=nodhs1&amp;amp;l=no&amp;amp;s=dhs&amp;amp;ServiceTag=$serial&quot;;
241 my $webpage = get($url);
242 return undef unless ($webpage);
243
244 my $daysleft = -1;
245 my @lines = split(/\n/, $webpage);
246 foreach my $line (@lines) {
247 next unless ($line =~ m/Beskrivelse/);
248 $line =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
249 $line =~ s/^.+?;(Beskrivelse;)/$1/;
250
251 my @f = split(/\;/, $line);
252 @f = @f[13 .. $#f];
253 my $lastend = &quot;&quot;;
254 while ($f[3] eq &quot;DELL&quot;) {
255 my ($type, $startstr, $endstr, $days) = @f[0, 5, 7, 10];
256
257 my $start = POSIX::strftime(&quot;%Y-%m-%d&quot;,
258 localtime(str2time($startstr)));
259 my $end = POSIX::strftime(&quot;%Y-%m-%d&quot;,
260 localtime(str2time($endstr)));
261 $str .= &quot;$type $start -&gt; $end &quot;;
262 @f = @f[14 .. $#f];
263 $lastend = $end if ($end gt $lastend);
264 }
265 my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
266 tag_machine_unsupported($machine)
267 if ($lastend lt $today);
268 }
269 } elsif ( $model =~ m/^HP / ) {
270 my $mech = WWW::Mechanize-&gt;new();
271 my $url =
272 &#39;http://www1.itrc.hp.com/service/ewarranty/warrantyInput.do&#39;;
273 $mech-&gt;get($url);
274 my $fields = {
275 &#39;BODServiceID&#39; =&gt; &#39;NA&#39;,
276 &#39;RegisteredPurchaseDate&#39; =&gt; &#39;&#39;,
277 &#39;country&#39; =&gt; &#39;NO&#39;,
278 &#39;productNumber&#39; =&gt; $productnumber,
279 &#39;serialNumber1&#39; =&gt; $serial,
280 };
281 $mech-&gt;submit_form( form_number =&gt; 2,
282 fields =&gt; $fields );
283 # Next step is screen scraping
284 my $content = $mech-&gt;content();
285
286 $content =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
287 $content =~ s/\s+/ /gm;
288 $content =~ s/;\s*;/;;/gm;
289 $content =~ s/;[\s;]+/;/gm;
290
291 my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
292
293 while ($content =~ m/;Warranty Type;/) {
294 my ($type, $status, $startstr, $stopstr) = $content =~
295 m/;Warranty Type;([^;]+);.+?;Status;(\w+);Start Date;([^;]+);End Date;([^;]+);/;
296 $content =~ s/^.+?;Warranty Type;//;
297 my $start = POSIX::strftime(&quot;%Y-%m-%d&quot;,
298 localtime(str2time($startstr)));
299 my $end = POSIX::strftime(&quot;%Y-%m-%d&quot;,
300 localtime(str2time($stopstr)));
301
302 $str .= &quot;$type ($status) $start -&gt; $end &quot;;
303
304 tag_machine_unsupported($machine)
305 if ($end lt $today);
306 }
307 } elsif ( $model =~ m/^IBM / ) {
308 # This code ignore extended support contracts.
309 my ($producttype) = $model =~ m/.*-\[(.{4}).+\]-/;
310 if ($producttype &amp;amp;&amp;amp; $serial) {
311 my $content =
312 get(&quot;http://www-947.ibm.com/systems/support/supportsite.wss/warranty?action=warranty&amp;amp;brandind=5000008&amp;amp;Submit=Submit&amp;amp;type=$producttype&amp;amp;serial=$serial&quot;);
313 if ($content) {
314 $content =~ s/&amp;lt;[^&gt;]+?&gt;/;/gm;
315 $content =~ s/\s+/ /gm;
316 $content =~ s/;\s*;/;;/gm;
317 $content =~ s/;[\s;]+/;/gm;
318
319 $content =~ s/^.+?;Warranty status;//;
320 my ($status, $end) = $content =~ m/;Warranty status;([^;]+)\s*;Expiration date;(\S+) ;/;
321
322 $str .= &quot;($status) -&gt; $end &quot;;
323
324 my $today = POSIX::strftime(&quot;%Y-%m-%d&quot;, localtime(time));
325 tag_machine_unsupported($machine)
326 if ($end lt $today);
327 }
328 }
329 }
330 return $str;
331 }
332 &lt;/pre&gt;
333
334 &lt;p&gt;Here are some examples on how to use the function, using fake
335 serial numbers. The information passed in as arguments are fetched
336 from dmidecode.&lt;/p&gt;
337
338 &lt;pre&gt;
339 print get_support_info(&quot;hp.host&quot;, &quot;HP ProLiant BL460c G1&quot;, &quot;1234567890&quot;
340 &quot;447707-B21&quot;);
341 print get_support_info(&quot;dell.host&quot;, &quot;Dell Inc. PowerEdge 2950&quot;, &quot;1234567&quot;);
342 print get_support_info(&quot;ibm.host&quot;, &quot;IBM eserver xSeries 345 -[867061X]-&quot;,
343 &quot;1234567&quot;);
344 &lt;/pre&gt;
345
346 &lt;p&gt;I would recommend this approach for tracking support contracts for
347 everyone with more than a few computers to administer. :)&lt;/p&gt;
348
349 &lt;p&gt;Update 2009-03-06: The IBM page do not include extended support
350 contracts, so it is useless in that case. The original Dell code do
351 not handle extended support contracts either, but has been updated to
352 do so.&lt;/p&gt;
353 </description>
354 </item>
355
356 <item>
357 <title>Time for new LDAP schemas replacing RFC 2307?</title>
358 <link>http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html</link>
359 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html</guid>
360 <pubDate>Sun, 29 Mar 2009 20:30:00 +0200</pubDate>
361 <description>&lt;p&gt;The state of standardized LDAP schemas on Linux is far from
362 optimal. There is RFC 2307 documenting one way to store NIS maps in
363 LDAP, and a modified version of this normally called RFC 2307bis, with
364 some modifications to be compatible with Active Directory. The RFC
365 specification handle the content of a lot of system databases, but do
366 not handle DNS zones and DHCP configuration.&lt;/p&gt;
367
368 &lt;p&gt;In &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu/Skolelinux&lt;/a&gt;,
369 we would like to store information about users, SMB clients/hosts,
370 filegroups, netgroups (users and hosts), DHCP and DNS configuration,
371 and LTSP configuration in LDAP. These objects have a lot in common,
372 but with the current LDAP schemas it is not possible to have one
373 object per entity. For example, one need to have at least three LDAP
374 objects for a given computer, one with the SMB related stuff, one with
375 DNS information and another with DHCP information. The schemas
376 provided for DNS and DHCP are impossible to combine into one LDAP
377 object. In addition, it is impossible to implement quick queries for
378 netgroup membership, because of the way NIS triples are implemented.
379 It just do not scale. I believe it is time for a few RFC
380 specifications to cleam up this mess.&lt;/p&gt;
381
382 &lt;p&gt;I would like to have one LDAP object representing each computer in
383 the network, and this object can then keep the SMB (ie host key), DHCP
384 (mac address/name) and DNS (name/IP address) settings in one place.
385 It need to be efficently stored to make sure it scale well.&lt;/p&gt;
386
387 &lt;p&gt;I would also like to have a quick way to map from a user or
388 computer and to the net group this user or computer is a member.&lt;/p&gt;
389
390 &lt;p&gt;Active Directory have done a better job than unix heads like myself
391 in this regard, and the unix side need to catch up. Time to start a
392 new IETF work group?&lt;/p&gt;
393 </description>
394 </item>
395
396 <item>
397 <title>Returning from Skolelinux developer gathering</title>
398 <link>http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html</link>
399 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html</guid>
400 <pubDate>Sun, 29 Mar 2009 21:00:00 +0200</pubDate>
401 <description>&lt;p&gt;I&#39;m sitting on the train going home from this weekends Debian
402 Edu/Skolelinux development gathering. I got a bit done tuning the
403 desktop, and looked into the dynamic service location protocol
404 implementation avahi. It look like it could be useful for us. Almost
405 30 people participated, and I believe it was a great environment to
406 get to know the Skolelinux system. Walter Bender, involved in the
407 development of the Sugar educational platform, presented his stuff and
408 also helped me improve my OLPC installation. He also showed me that
409 his Turtle Art application can be used in standalone mode, and we
410 agreed that I would help getting it packaged for Debian. As a
411 standalone application it would be great for Debian Edu. We also
412 tried to get the video conferencing working with two OLPCs, but that
413 proved to be too hard for us. The application seem to need more work
414 before it is ready for me. I look forward to getting home and relax
415 now. :)&lt;/p&gt;
416 </description>
417 </item>
418
419 <item>
420 <title>Standardize on protocols and formats, not vendors and applications</title>
421 <link>http://people.skolelinux.org/pere/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html</link>
422 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html</guid>
423 <pubDate>Mon, 30 Mar 2009 11:50:00 +0200</pubDate>
424 <description>&lt;p&gt;Where I work at the University of Oslo, one decision stand out as a
425 very good one to form a long lived computer infrastructure. It is the
426 simple one, lost by many in todays computer industry: Standardize on
427 open network protocols and open exchange/storage formats, not applications.
428 Applications come and go, while protocols and files tend to stay, and
429 thus one want to make it easy to change application and vendor, while
430 avoiding conversion costs and locking users to a specific platform or
431 application.&lt;/p&gt;
432
433 &lt;p&gt;This approach make it possible to replace the client applications
434 independently of the server applications. One can even allow users to
435 use several different applications as long as they handle the selected
436 protocol and format. In the normal case, only one client application
437 is recommended and users only get help if they choose to use this
438 application, but those that want to deviate from the easy path are not
439 blocked from doing so.&lt;/p&gt;
440
441 &lt;p&gt;It also allow us to replace the server side without forcing the
442 users to replace their applications, and thus allow us to select the
443 best server implementation at any moment, when scale and resouce
444 requirements change.&lt;/p&gt;
445
446 &lt;p&gt;I strongly recommend standardizing - on open network protocols and
447 open formats, but I would never recommend standardizing on a single
448 application that do not use open network protocol or open formats.&lt;/p&gt;
449 </description>
450 </item>
451
452 <item>
453 <title>Recording video from cron using VLC</title>
454 <link>http://people.skolelinux.org/pere/blog/Recording_video_from_cron_using_VLC.html</link>
455 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Recording_video_from_cron_using_VLC.html</guid>
456 <pubDate>Sun, 5 Apr 2009 10:00:00 +0200</pubDate>
457 <description>&lt;p&gt;One think I have wanted to figure out for a along time is how to
458 run vlc from cron to do recording of video streams on the net. The
459 task is trivial with mplayer, but I do not really trust the security
460 of mplayer (it crashes too often on strange input), and thus prefer
461 vlc. I finally found a way to do it today. I spent an hour or so
462 searching the web for recipes and reading the documentation. The
463 hardest part was to get rid of the GUI window, but after finding the
464 dummy interface, the command line finally presented itself:&lt;/p&gt;
465
466 &lt;blockquote&gt;&lt;pre&gt;URL=http://www.ping.uio.no/video/rms-oslo_2009.ogg
467 SAVEFILE=rms.ogg
468 DISPLAY= vlc -q $URL \
469 --sout=&quot;#duplicate{dst=std{access=file,url=&#39;$SAVEFILE&#39;},dst=nodisplay}&quot; \
470 --intf=dummy&lt;/pre&gt;&lt;/blockquote&gt;
471
472 &lt;p&gt;The command stream the URL and store it in the SAVEFILE by
473 duplicating the output stream to &quot;nodisplay&quot; and the file, using the
474 dummy interface. The dummy interface and the nodisplay output make
475 sure no X interface is needed.&lt;/p&gt;
476
477 &lt;p&gt;The cron job then need to start this job with the appropriate URL
478 and file name to save, sleep for the duration wanted, and then kill
479 the vlc process with SIGTERM. Here is a complete script
480 &lt;tt&gt;vlc-record&lt;/tt&gt; to use from &lt;tt&gt;at&lt;/tt&gt; or &lt;tt&gt;cron&lt;/tt&gt;:&lt;/p&gt;
481
482 &lt;blockquote&gt;&lt;pre&gt;#!/bin/sh
483 set -e
484 URL=&quot;$1&quot;
485 SAVEFILE=&quot;$2&quot;
486 DURATION=&quot;$3&quot;
487 DISPLAY= vlc -q &quot;$URL&quot; \
488 --sout=&quot;#duplicate{dst=std{access=file,url=&#39;$SAVEFILE&#39;},dst=nodisplay}&quot; \
489 --intf=dummy &lt; /dev/null &gt; /dev/null 2&gt;&amp;1 &amp;
490 pid=$!
491 sleep $DURATION
492 kill $pid
493 wait $pid&lt;/pre&gt;&lt;/blockquote&gt;
494 </description>
495 </item>
496
497 <item>
498 <title>No patch is not better than a useless patch</title>
499 <link>http://people.skolelinux.org/pere/blog/No_patch_is_not_better_than_a_useless_patch.html</link>
500 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/No_patch_is_not_better_than_a_useless_patch.html</guid>
501 <pubDate>Tue, 28 Apr 2009 09:30:00 +0200</pubDate>
502 <description>&lt;p&gt;Julien Blache
503 &lt;a href=&quot;http://blog.technologeek.org/2009/04/12/214&quot;&gt;claim that no
504 patch is better than a useless patch&lt;/a&gt;. I completely disagree, as a
505 patch allow one to discuss a concrete and proposed solution, and also
506 prove that the issue at hand is important enough for someone to spent
507 time on fixing it. No patch do not provide any of these positive
508 properties.&lt;/p&gt;
509 </description>
510 </item>
511
512 <item>
513 <title>Two projects that have improved the quality of free software a lot</title>
514 <link>http://people.skolelinux.org/pere/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html</link>
515 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html</guid>
516 <pubDate>Sat, 2 May 2009 15:00:00 +0200</pubDate>
517 <description>&lt;p&gt;There are two software projects that have had huge influence on the
518 quality of free software, and I wanted to mention both in case someone
519 do not yet know them.&lt;/p&gt;
520
521 &lt;p&gt;The first one is &lt;a href=&quot;http://valgrind.org/&quot;&gt;valgrind&lt;/a&gt;, a
522 tool to detect and expose errors in the memory handling of programs.
523 It is easy to use, all one need to do is to run &#39;valgrind program&#39;,
524 and it will report any problems on stdout. It is even better if the
525 program include debug information. With debug information, it is able
526 to report the source file name and line number where the problem
527 occurs. It can report things like &#39;reading past memory block in file
528 X line N, the memory block was allocated in file Y, line M&#39;, and
529 &#39;using uninitialised value in control logic&#39;. This tool has made it
530 trivial to investigate reproducible crash bugs in programs, and have
531 reduced the number of this kind of bugs in free software a lot.
532
533 &lt;p&gt;The second one is
534 &lt;a href=&quot;http://en.wikipedia.org/wiki/Coverity&quot;&gt;Coverity&lt;/a&gt; which is
535 a source code checker. It is able to process the source of a program
536 and find problems in the logic without running the program. It
537 started out as the Stanford Checker and became well known when it was
538 used to find bugs in the Linux kernel. It is now a commercial tool
539 and the company behind it is running
540 &lt;a href=&quot;http://www.scan.coverity.com/&quot;&gt;a community service&lt;/a&gt; for the
541 free software community, where a lot of free software projects get
542 their source checked for free. Several thousand defects have been
543 found and fixed so far. It can find errors like &#39;lock L taken in file
544 X line N is never released if exiting in line M&#39;, or &#39;the code in file
545 Y lines O to P can never be executed&#39;. The projects included in the
546 community service project have managed to get rid of a lot of
547 reliability problems thanks to Coverity.&lt;/p&gt;
548
549 &lt;p&gt;I believe tools like this, that are able to automatically find
550 errors in the source, are vital to improve the quality of software and
551 make sure we can get rid of the crashing and failing software we are
552 surrounded by today.&lt;/p&gt;
553 </description>
554 </item>
555
556 <item>
557 <title>Debian boots quicker and quicker</title>
558 <link>http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html</link>
559 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html</guid>
560 <pubDate>Wed, 24 Jun 2009 21:40:00 +0200</pubDate>
561 <description>&lt;p&gt;I spent Monday and tuesday this week in London with a lot of the
562 people involved in the boot system on Debian and Ubuntu, to see if we
563 could find more ways to speed up the boot system. This was an Ubuntu
564 funded
565 &lt;a href=&quot;https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint&quot;&gt;developer
566 gathering&lt;/a&gt;. It was quite productive. We also discussed the future
567 of boot systems, and ways to handle the increasing number of boot
568 issues introduced by the Linux kernel becoming more and more
569 asynchronous and event base. The Ubuntu approach using udev and
570 upstart might be a good way forward. Time will show.&lt;/p&gt;
571
572 &lt;p&gt;Anyway, there are a few ways at the moment to speed up the boot
573 process in Debian. All of these should be applied to get a quick
574 boot:&lt;/p&gt;
575
576 &lt;ul&gt;
577
578 &lt;li&gt;Use dash as /bin/sh.&lt;/li&gt;
579
580 &lt;li&gt;Disable the init.d/hwclock*.sh scripts and make sure the hardware
581 clock is in UTC.&lt;/li&gt;
582
583 &lt;li&gt;Install and activate the insserv package to enable
584 &lt;a href=&quot;http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&quot;&gt;dependency
585 based boot sequencing&lt;/a&gt;, and enable concurrent booting.&lt;/li&gt;
586
587 &lt;/ul&gt;
588
589 These points are based on the Google summer of code work done by
590 &lt;a href=&quot;http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/&quot;&gt;Carlos
591 Villegas&lt;/a&gt;.
592
593 &lt;p&gt;Support for makefile-style concurrency during boot was uploaded to
594 unstable yesterday. When we tested it, we were able to cut 6 seconds
595 from the boot sequence. It depend on very correct dependency
596 declaration in all init.d scripts, so I expect us to find edge cases
597 where the dependences in some scripts are slightly wrong when we start
598 using this.&lt;/p&gt;
599
600 &lt;p&gt;On our IRC channel for this effort, #pkg-sysvinit, a new idea was
601 introduced by Raphael Geissert today, one that could affect the
602 startup speed as well. Instead of starting some scripts concurrently
603 from rcS.d/ and another set of scripts from rc2.d/, it would be
604 possible to run a of them in the same process. A quick way to test
605 this would be to enable insserv and run &#39;mv /etc/rc2.d/S* /etc/rcS.d/;
606 insserv&#39;. Will need to test if that work. :)&lt;/p&gt;
607 </description>
608 </item>
609
610 <item>
611 <title>Taking over sysvinit development</title>
612 <link>http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html</link>
613 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html</guid>
614 <pubDate>Wed, 22 Jul 2009 23:00:00 +0200</pubDate>
615 <description>&lt;p&gt;After several years of frustration with the lack of activity from
616 the existing sysvinit upstream developer, I decided a few weeks ago to
617 take over the package and become the new upstream. The number of
618 patches to track for the Debian package was becoming a burden, and the
619 lack of synchronization between the distribution made it hard to keep
620 the package up to date.&lt;/p&gt;
621
622 &lt;p&gt;On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
623 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
624 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
625 and Fedora), based on the patches currently in use in these
626 distributions. We Debian maintainers plan to move to this tarball as
627 the new upstream as soon as we find time to do the merge. Since the
628 new tarball was created, we agreed with Werner at SuSe to make a new
629 upstream project at &lt;a href=&quot;http://savannah.nongnu.org/&quot;&gt;Savannah&lt;/a&gt;, and continue
630 development there. The project is registered and currently waiting
631 for approval by the Savannah administrators, and as soon as it is
632 approved, we will import the old versions from svn and continue
633 working on the future release.&lt;/p&gt;
634
635 &lt;p&gt;It is a bit ironic that this is done now, when some of the involved
636 distributions are moving to upstart as a syvinit replacement.&lt;/p&gt;
637 </description>
638 </item>
639
640 <item>
641 <title>Debian has switched to dependency based boot sequencing</title>
642 <link>http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html</link>
643 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html</guid>
644 <pubDate>Mon, 27 Jul 2009 23:50:00 +0200</pubDate>
645 <description>&lt;p&gt;Since this evening, with the upload of sysvinit version 2.87dsf-2,
646 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
647 have been migrated to using dependency based boot sequencing. This
648 conclude work me and others have been doing for the last three days.
649 It feels great to see this finally part of the default Debian
650 installation. Now we just need to weed out the last few problems that
651 are bound to show up, to get everything ready for Squeeze.&lt;/p&gt;
652
653 &lt;p&gt;The next step is migrating /sbin/init from sysvinit to upstart, and
654 fixing the more fundamental problem of handing the event based
655 non-predictable kernel in the early boot.&lt;/p&gt;
656 </description>
657 </item>
658
659 <item>
660 <title>ISO still hope to fix OOXML</title>
661 <link>http://people.skolelinux.org/pere/blog/ISO_still_hope_to_fix_OOXML.html</link>
662 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/ISO_still_hope_to_fix_OOXML.html</guid>
663 <pubDate>Sat, 8 Aug 2009 14:00:00 +0200</pubDate>
664 <description>&lt;p&gt;According to &lt;a
665 href=&quot;http://twerner.blogspot.com/2009/08/defects-of-office-open-xml.html&quot;&gt;a
666 blog post from Torsten Werner&lt;/a&gt;, the current defect report for ISO
667 29500 (ISO OOXML) is 809 pages. His interesting point is that the
668 defect report is 71 pages more than the full ODF 1.1 specification.
669 Personally I find it more interesting that ISO still believe ISO OOXML
670 can be fixed in ISO. Personally, I believe it is broken beyon repair,
671 and I completely lack any trust in ISO for being able to get anywhere
672 close to solving the problems. I was part of the Norwegian committee
673 involved in the OOXML fast track process, and was not impressed with
674 Standard Norway and ISO in how they handled it.&lt;/p&gt;
675
676 &lt;p&gt;These days I focus on ODF instead, which seem like a specification
677 with the future ahead of it. We are working in NUUG to organise a ODF
678 seminar this autumn.&lt;/p&gt;
679 </description>
680 </item>
681
682 <item>
683 <title>Relative popularity of document formats (MS Office vs. ODF)</title>
684 <link>http://people.skolelinux.org/pere/blog/Relative_popularity_of_document_formats__MS_Office_vs__ODF_.html</link>
685 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Relative_popularity_of_document_formats__MS_Office_vs__ODF_.html</guid>
686 <pubDate>Wed, 12 Aug 2009 15:50:00 +0200</pubDate>
687 <description>&lt;p&gt;Just for fun, I did a search right now on Google for a few file ODF
688 and MS Office based formats (not to be mistaken for ISO or ECMA
689 OOXML), to get an idea of their relative usage. I searched using
690 &#39;filetype:odt&#39; and equvalent terms, and got these results:&lt;/P&gt;
691
692 &lt;table&gt;
693 &lt;tr&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;ODF&lt;/th&gt;&lt;th&gt;MS Office&lt;/th&gt;&lt;/tr&gt;
694 &lt;tr&gt;&lt;td&gt;Tekst&lt;/td&gt; &lt;td&gt;odt:282000&lt;/td&gt; &lt;td&gt;docx:308000&lt;/td&gt;&lt;/tr&gt;
695 &lt;tr&gt;&lt;td&gt;Presentasjon&lt;/td&gt; &lt;td&gt;odp:75600&lt;/td&gt; &lt;td&gt;pptx:183000&lt;/td&gt;&lt;/tr&gt;
696 &lt;tr&gt;&lt;td&gt;Regneark&lt;/td&gt; &lt;td&gt;ods:26500 &lt;/td&gt; &lt;td&gt;xlsx:145000&lt;/td&gt;&lt;/tr&gt;
697 &lt;/table&gt;
698
699 &lt;p&gt;Next, I added a &#39;site:no&#39; limit to get the numbers for Norway, and
700 got these numbers:&lt;/p&gt;
701
702 &lt;table&gt;
703 &lt;tr&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;ODF&lt;/th&gt;&lt;th&gt;MS Office&lt;/th&gt;&lt;/tr&gt;
704 &lt;tr&gt;&lt;td&gt;Tekst&lt;/td&gt; &lt;td&gt;odt:2480 &lt;/td&gt; &lt;td&gt;docx:4460&lt;/td&gt;&lt;/tr&gt;
705 &lt;tr&gt;&lt;td&gt;Presentasjon&lt;/td&gt; &lt;td&gt;odp:299 &lt;/td&gt; &lt;td&gt;pptx:741&lt;/td&gt;&lt;/tr&gt;
706 &lt;tr&gt;&lt;td&gt;Regneark&lt;/td&gt; &lt;td&gt;ods:187 &lt;/td&gt; &lt;td&gt;xlsx:372&lt;/td&gt;&lt;/tr&gt;
707 &lt;/table&gt;
708
709 &lt;p&gt;I wonder how these numbers change over time.&lt;/p&gt;
710
711 &lt;p&gt;I am aware of Google returning different results and numbers based
712 on where the search is done, so I guess these numbers will differ if
713 they are conduced in another country. Because of this, I did the same
714 search from a machine in California, USA, a few minutes after the
715 search done from a machine here in Norway.&lt;/p&gt;
716
717
718 &lt;table&gt;
719 &lt;tr&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;ODF&lt;/th&gt;&lt;th&gt;MS Office&lt;/th&gt;&lt;/tr&gt;
720 &lt;tr&gt;&lt;td&gt;Tekst&lt;/td&gt; &lt;td&gt;odt:129000&lt;/td&gt; &lt;td&gt;docx:308000&lt;/td&gt;&lt;/tr&gt;
721 &lt;tr&gt;&lt;td&gt;Presentasjon&lt;/td&gt; &lt;td&gt;odp:44200&lt;/td&gt; &lt;td&gt;pptx:93900&lt;/td&gt;&lt;/tr&gt;
722 &lt;tr&gt;&lt;td&gt;Regneark&lt;/td&gt; &lt;td&gt;ods:26500 &lt;/td&gt; &lt;td&gt;xlsx:82400&lt;/td&gt;&lt;/tr&gt;
723 &lt;/table&gt;
724
725 &lt;p&gt;And with &#39;site:no&#39;:
726
727 &lt;table&gt;
728 &lt;tr&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;ODF&lt;/th&gt;&lt;th&gt;MS Office&lt;/th&gt;&lt;/tr&gt;
729 &lt;tr&gt;&lt;td&gt;Tekst&lt;/td&gt; &lt;td&gt;odt:2480&lt;/td&gt; &lt;td&gt;docx:3410&lt;/td&gt;&lt;/tr&gt;
730 &lt;tr&gt;&lt;td&gt;Presentasjon&lt;/td&gt; &lt;td&gt;odp:175&lt;/td&gt; &lt;td&gt;pptx:604&lt;/td&gt;&lt;/tr&gt;
731 &lt;tr&gt;&lt;td&gt;Regneark&lt;/td&gt; &lt;td&gt;ods:186 &lt;/td&gt; &lt;td&gt;xlsx:296&lt;/td&gt;&lt;/tr&gt;
732 &lt;/table&gt;
733
734 &lt;p&gt;Interesting difference, not sure what to conclude from these
735 numbers.&lt;/p&gt;
736 </description>
737 </item>
738
739 <item>
740 <title>Automatic Munin and Nagios configuration</title>
741 <link>http://people.skolelinux.org/pere/blog/Automatic_Munin_and_Nagios_configuration.html</link>
742 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Automatic_Munin_and_Nagios_configuration.html</guid>
743 <pubDate>Wed, 27 Jan 2010 15:15:00 +0100</pubDate>
744 <description>&lt;p&gt;One of the new features in the next Debian/Lenny based release of
745 Debian Edu/Skolelinux, which is scheduled for release in the next few
746 days, is automatic configuration of the service monitoring system
747 Nagios. The previous release had automatic configuration of trend
748 analysis using Munin, and this Lenny based release take that a step
749 further.&lt;/p&gt;
750
751 &lt;p&gt;When installing a Debian Edu Main-server, it is automatically
752 configured as a Munin and Nagios server. In addition, it is
753 configured to be a server for the
754 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/HowTo/SiteSummary&quot;&gt;SiteSummary
755 system&lt;/a&gt; I have written for use in Debian Edu. The SiteSummary
756 system is inspired by a system used by the University of Oslo where I
757 work. In short, the system provide a centralised collector of
758 information about the computers on the network, and a client on each
759 computer submitting information to this collector. This allow for
760 automatic information on which packages are installed on each machine,
761 which kernel the machines are using, what kind of configuration the
762 packages got etc. This also allow us to automatically generate Munin
763 and Nagios configuration.&lt;/p&gt;
764
765 &lt;p&gt;All computers reporting to the sitesummary collector with the
766 munin-node package installed is automatically enabled as a Munin
767 client and graphs from the statistics collected from that machine show
768 up automatically on http://www/munin/ on the Main-server.&lt;/p&gt;
769
770 &lt;p&gt;All non-laptop computers reporting to the sitesummary collector are
771 automatically monitored for network presence (ping and any network
772 services detected). In addition, all computers (also laptops) with
773 the nagios-nrpe-server package installed and configured the way
774 sitesummary would configure it, are monitored for full disks, software
775 raid status, swap free and other checks that need to run locally on
776 the machine.&lt;/p&gt;
777
778 &lt;p&gt;The result is that the administrator on a school using Debian Edu
779 based on Lenny will be able to check the health of his installation
780 with one look at the Nagios settings, without having to spend any time
781 keeping the Nagios configuration up-to-date.&lt;/p&gt;
782
783 &lt;p&gt;The only configuration one need to do to get Nagios up and running
784 is to set the password used to get access via HTTP. The system
785 administrator need to run &quot;&lt;tt&gt;htpasswd /etc/nagios3/htpasswd.users
786 nagiosadmin&lt;/tt&gt;&quot; to create a nagiosadmin user and set a password for
787 it to be able to log into the Nagios web pages. After that,
788 everything is taken care of.&lt;/p&gt;
789 </description>
790 </item>
791
792 <item>
793 <title>Debian Edu / Skolelinux based on Lenny released, work continues</title>
794 <link>http://people.skolelinux.org/pere/blog/Debian_Edu___Skolelinux_based_on_Lenny_released__work_continues.html</link>
795 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu___Skolelinux_based_on_Lenny_released__work_continues.html</guid>
796 <pubDate>Thu, 11 Feb 2010 17:15:00 +0100</pubDate>
797 <description>&lt;p&gt;On Tuesday, the Debian/Lenny based version of
798 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux&lt;/a&gt; was finally
799 shipped. This was a major leap forward for the project, and I am very
800 pleased that we finally got the release wrapped up. Work on the first
801 point release starts imediately, as we plan to get that one out a
802 month after the major release, to include all fixes for bugs we found
803 and fixed too late in the release process to include last Tuesday.&lt;/p&gt;
804
805 &lt;p&gt;Perhaps it even is time for some partying?&lt;/p&gt;
806
807 &lt;p&gt;After this first point release, my plan is to focus again on the
808 next major release, based on Squeeze. We will try to get as many of
809 the fixes we need into the official Debian packages before the freeze,
810 and have just a few weeks or months to make it happen.&lt;/p&gt;
811 </description>
812 </item>
813
814 <item>
815 <title>After 6 years of waiting, the Xreset.d feature is implemented</title>
816 <link>http://people.skolelinux.org/pere/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html</link>
817 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html</guid>
818 <pubDate>Sat, 6 Mar 2010 18:15:00 +0100</pubDate>
819 <description>&lt;p&gt;6 years ago, as part of the Debian Edu development I am involved
820 in, I asked for a hook in the kdm and gdm setup to run scripts as root
821 when the user log out. A bug was submitted against the xfree86-common
822 package in 2004 (&lt;a href=&quot;http://bugs.debian.org/230422&quot;&gt;#230422&lt;/a&gt;),
823 and revisited every time Debian Edu was working on a new release.
824 Today, this finally paid off.&lt;/p&gt;
825
826 &lt;p&gt;The framework for this feature was today commited to the git
827 repositry for the xorg package, and the git repository for xdm has
828 been updated to use this framework. Next on my agenda is to make sure
829 kdm and gdm also add code to use this framework.&lt;/p&gt;
830
831 &lt;p&gt;In Debian Edu, we want to ability to run commands as root when the
832 user log out, to get rid of runaway processes and do general cleanup
833 after a user. With this framework in place, we finally can do that in
834 a generic way that work with all display managers using this
835 framework. My goal is to get all display managers in Debian use it,
836 similar to how they use the Xsession.d framework today.&lt;p&gt;
837 </description>
838 </item>
839
840 <item>
841 <title>Kerberos for Debian Edu/Squeeze?</title>
842 <link>http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html</link>
843 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html</guid>
844 <pubDate>Wed, 14 Apr 2010 17:20:00 +0200</pubDate>
845 <description>&lt;p&gt;&lt;a href=&quot;http://www.nuug.no/aktiviteter/20100413-kerberos/&quot;&gt;Yesterdays
846 NUUG presentation&lt;/a&gt; about Kerberos was inspiring, and reminded me
847 about the need to start using Kerberos in Skolelinux. Setting up a
848 Kerberos server seem to be straight forward, and if we get this in
849 place a long time before the Squeeze version of Debian freezes, we
850 have a chance to migrate Skolelinux away from NFSv3 for the home
851 directories, and over to an architecture where the infrastructure do
852 not have to trust IP addresses and machines, and instead can trust
853 users and cryptographic keys instead.&lt;/p&gt;
854
855 &lt;p&gt;A challenge will be integration and administration. Is there a
856 Kerberos implementation for Debian where one can control the
857 administration access in Kerberos using LDAP groups? With it, the
858 school administration will have to maintain access control using flat
859 files on the main server, which give a huge potential for errors.&lt;/p&gt;
860
861 &lt;p&gt;A related question I would like to know is how well Kerberos and
862 pam-ccreds (offline password check) work together. Anyone know?&lt;/p&gt;
863
864 &lt;p&gt;Next step will be to use Kerberos for access control in Lwat and
865 Nagios. I have no idea how much work that will be to implement. We
866 would also need to document how to integrate with Windows AD, as such
867 shared network will require two Kerberos realms that need to cooperate
868 to work properly.&lt;/p&gt;
869
870 &lt;p&gt;I believe a good start would be to start using Kerberos on the
871 skolelinux.no machines, and this way get ourselves experience with
872 configuration and integration. A natural starting point would be
873 setting up ldap.skolelinux.no as the Kerberos server, and migrate the
874 rest of the machines from PAM via LDAP to PAM via Kerberos one at the
875 time.&lt;/p&gt;
876
877 &lt;p&gt;If you would like to contribute to get this working in Skolelinux,
878 I recommend you to see the video recording from yesterdays NUUG
879 presentation, and start using Kerberos at home. The video show show
880 up in a few days.&lt;/p&gt;
881 </description>
882 </item>
883
884 <item>
885 <title>Great book: &quot;Content: Selected Essays on Technology, Creativity, Copyright, and the Future of the Future&quot;</title>
886 <link>http://people.skolelinux.org/pere/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html</link>
887 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html</guid>
888 <pubDate>Mon, 19 Apr 2010 17:10:00 +0200</pubDate>
889 <description>&lt;p&gt;The last few weeks i have had the pleasure of reading a
890 thought-provoking collection of essays by Cory Doctorow, on topics
891 touching copyright, virtual worlds, the future of man when the
892 conscience mind can be duplicated into a computer and many more. The
893 book titled &quot;Content: Selected Essays on Technology, Creativity,
894 Copyright, and the Future of the Future&quot; is available with few
895 restrictions on the web, for example from
896 &lt;a href=&quot;http://craphound.com/content/&quot;&gt;his own site&lt;/a&gt;. I read the
897 epub-version from
898 &lt;a href=&quot;http://www.feedbooks.com/book/2883&quot;&gt;feedbooks&lt;/a&gt; using
899 &lt;a href=&quot;http://www.fbreader.org/&quot;&gt;fbreader&lt;/a&gt; and my N810. I
900 strongly recommend this book.&lt;/p&gt;
901 </description>
902 </item>
903
904 <item>
905 <title>Thoughts on roaming laptop setup for Debian Edu</title>
906 <link>http://people.skolelinux.org/pere/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html</link>
907 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html</guid>
908 <pubDate>Wed, 28 Apr 2010 20:40:00 +0200</pubDate>
909 <description>&lt;p&gt;For some years now, I have wondered how we should handle laptops in
910 Debian Edu. The Debian Edu infrastructure is mostly designed to
911 handle stationary computers, and less suited for computers that come
912 and go.&lt;/p&gt;
913
914 &lt;p&gt;Now I finally believe I have an sensible idea on how to adjust
915 Debian Edu for laptops, by introducing a new profile for them, for
916 example called Roaming Workstations. Here are my thought on this.
917 The setup would consist of the following:&lt;/p&gt;
918
919 &lt;ul&gt;
920
921 &lt;li&gt;During installation, the user name of the owner / primary user of
922 the laptop is requested and a local home directory is set up for
923 the user, with uid and gid information fetched from the LDAP
924 server. This allow the user to work also when offline. The
925 central home directory can be available in a subdirectory on
926 request, for example mounted via CIFS. It could be mounted
927 automatically when a user log in while on the Debian Edu network,
928 and unmounted when the machine is taken away (network down,
929 hibernate, etc), it can be set up to do automatic mounting on
930 request (using autofs), or perhaps some GUI button on the desktop
931 can be used to access it when needed. Perhaps it is enough to use
932 the fish protocol in KDE?&lt;/li&gt;
933
934 &lt;li&gt;Password checking is set up to use LDAP or Kerberos
935 authentication when the machine is on the Debian Edu network, and
936 to cache the password for offline checking when the machine unable
937 to reach the LDAP or Kerberos server. This can be done using
938 &lt;a href=&quot;http://www.padl.com/OSS/pam_ccreds.html&quot;&gt;libpam-ccreds&lt;/a&gt;
939 or the Fedora developed
940 &lt;a href=&quot;https://fedoraproject.org/wiki/Features/SSSD&quot;&gt;System
941 Security Services Daemon&lt;/a&gt; packages.&lt;/li&gt;
942
943 &lt;li&gt;File synchronisation with the central home directory is set up
944 using a shared directory in both the local and the central home
945 directory, using unison.&lt;/li&gt;
946
947 &lt;li&gt;Printing should be set up to print to all printers broadcasting
948 their existence on the local network, and should then work out of
949 the box with CUPS. For sites needing accurate printer quotas, some
950 system with Kerberos authentication or printing via ssh could be
951 implemented.&lt;/li&gt;
952
953 &lt;li&gt;For users that should have local root access to their laptop,
954 sudo should be used to allow this to the local user.&lt;/li&gt;
955
956 &lt;li&gt;It would be nice if user and group information from LDAP is
957 cached on the client, but given that there are entries for the
958 local user and primary group in /etc/, it should not be needed.&lt;/li&gt;
959
960 &lt;/ul&gt;
961
962 &lt;p&gt;I believe all the pieces to implement this are in Debian/testing at
963 the moment. If we work quickly, we should be able to get this ready
964 in time for the Squeeze release to freeze. Some of the pieces need
965 tweaking, like libpam-ccreds should get support for pam-auth-update
966 (&lt;a href=&quot;http://bugs.debian.org/566718&quot;&gt;#566718&lt;/a&gt;) and nslcd (or
967 perhaps debian-edu-config) should get some integration code to stop
968 its daemon when the LDAP server is unavailable to avoid long timeouts
969 when disconnected from the net. If we get Kerberos enabled, we need
970 to make sure we avoid long timeouts there too.&lt;/p&gt;
971
972 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
973 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
974 </description>
975 </item>
976
977 <item>
978 <title>Forcing new users to change their password on first login</title>
979 <link>http://people.skolelinux.org/pere/blog/Forcing_new_users_to_change_their_password_on_first_login.html</link>
980 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Forcing_new_users_to_change_their_password_on_first_login.html</guid>
981 <pubDate>Sun, 2 May 2010 13:47:00 +0200</pubDate>
982 <description>&lt;p&gt;One interesting feature in Active Directory, is the ability to
983 create a new user with an expired password, and thus force the user to
984 change the password on the first login attempt.&lt;/p&gt;
985
986 &lt;p&gt;I&#39;m not quite sure how to do that with the LDAP setup in Debian
987 Edu, but did some initial testing with a local account. The account
988 and password aging information is available in /etc/shadow, but
989 unfortunately, it is not possible to specify an expiration time for
990 passwords, only a maximum age for passwords.&lt;/p&gt;
991
992 &lt;p&gt;A freshly created account (using adduser test) will have these
993 settings in /etc/shadow:&lt;/p&gt;
994
995 &lt;blockquote&gt;&lt;pre&gt;
996 root@tjener:~# chage -l test
997 Last password change : May 02, 2010
998 Password expires : never
999 Password inactive : never
1000 Account expires : never
1001 Minimum number of days between password change : 0
1002 Maximum number of days between password change : 99999
1003 Number of days of warning before password expires : 7
1004 root@tjener:~#
1005 &lt;/pre&gt;&lt;/blockquote&gt;
1006
1007 &lt;p&gt;The only way I could come up with to create a user with an expired
1008 account, is to change the date of the last password change to the
1009 lowest value possible (January 1th 1970), and the maximum password age
1010 to the difference in days between that date and today. To make it
1011 simple, I went for 30 years (30 * 365 = 10950) and January 2th (to
1012 avoid testing if 0 is a valid value).&lt;/p&gt;
1013
1014 &lt;p&gt;After using these commands to set it up, it seem to work as
1015 intended:&lt;/p&gt;
1016
1017 &lt;blockquote&gt;&lt;pre&gt;
1018 root@tjener:~# chage -d 1 test; chage -M 10950 test
1019 root@tjener:~# chage -l test
1020 Last password change : Jan 02, 1970
1021 Password expires : never
1022 Password inactive : never
1023 Account expires : never
1024 Minimum number of days between password change : 0
1025 Maximum number of days between password change : 10950
1026 Number of days of warning before password expires : 7
1027 root@tjener:~#
1028 &lt;/pre&gt;&lt;/blockquote&gt;
1029
1030 &lt;p&gt;So far I have tested this with ssh and console, and kdm (in
1031 Squeeze) login, and all ask for a new password before login in the
1032 user (with ssh, I was thrown out and had to log in again).&lt;/p&gt;
1033
1034 &lt;p&gt;Perhaps we should set up something similar for Debian Edu, to make
1035 sure only the user itself have the account password?&lt;/p&gt;
1036
1037 &lt;p&gt;If you want to comment on or help out with implementing this for
1038 Debian Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1039
1040 &lt;p&gt;Update 2010-05-02 17:20: Paul Tötterman tells me on IRC that the
1041 shadow(8) page in Debian/testing now state that setting the date of
1042 last password change to zero (0) will force the password to be changed
1043 on the first login. This was not mentioned in the manual in Lenny, so
1044 I did not notice this in my initial testing. I have tested it on
1045 Squeeze, and &#39;&lt;tt&gt;chage -d 0 username&lt;/tt&gt;&#39; do work there. I have not
1046 tested it on Lenny yet.&lt;/p&gt;
1047
1048 &lt;p&gt;Update 2010-05-02-19:05: Jim Paris tells me via email that an
1049 equivalent command to expire a password is &#39;&lt;tt&gt;passwd -e
1050 username&lt;/tt&gt;&#39;, which insert zero into the date of the last password
1051 change.&lt;/p&gt;
1052 </description>
1053 </item>
1054
1055 <item>
1056 <title>Parallellizing the boot in Debian Squeeze - ready for wider testing</title>
1057 <link>http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html</link>
1058 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html</guid>
1059 <pubDate>Thu, 6 May 2010 23:25:00 +0200</pubDate>
1060 <description>&lt;p&gt;These days, the init.d script dependencies in Squeeze are quite
1061 complete, so complete that it is actually possible to run all the
1062 init.d scripts in parallell based on these dependencies. If you want
1063 to test your Squeeze system, make sure
1064 &lt;a href=&quot;http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&quot;&gt;dependency
1065 based boot sequencing&lt;/a&gt; is enabled, and add this line to
1066 /etc/default/rcS:&lt;/p&gt;
1067
1068 &lt;blockquote&gt;&lt;pre&gt;
1069 CONCURRENCY=makefile
1070 &lt;/pre&gt;&lt;/blockquote&gt;
1071
1072 &lt;p&gt;That is it. It will cause sysv-rc to use the startpar tool to run
1073 scripts in parallel using the dependency information stored in
1074 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
1075 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
1076 to try to start the kdm and gdm scripts as early as possible, and will
1077 start the facilities required by kdm or gdm as early as possible to
1078 make this happen.&lt;/p&gt;
1079
1080 &lt;p&gt;Give it a try, and see if you like the result. If some services
1081 fail to start properly, it is most likely because they have incomplete
1082 init.d script dependencies in their startup script (or some of their
1083 dependent scripts have incomplete dependencies). Report bugs and get
1084 the package maintainers to fix it. :)&lt;/p&gt;
1085
1086 &lt;p&gt;Running scripts in parallel could be the default in Debian when we
1087 manage to get the init.d script dependencies complete and correct. I
1088 expect we will get there in Squeeze+1, if we get manage to test and
1089 fix the remaining issues.&lt;/p&gt;
1090
1091 &lt;p&gt;If you report any problems with dependencies in init.d scripts to
1092 the BTS, please usertag the report to get it to show up at
1093 &lt;a href=&quot;http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org&quot;&gt;the
1094 list of usertagged bugs related to this&lt;/a&gt;.&lt;/p&gt;
1095 </description>
1096 </item>
1097
1098 <item>
1099 <title>systemd, an interesting alternative to upstart</title>
1100 <link>http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html</link>
1101 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html</guid>
1102 <pubDate>Thu, 13 May 2010 22:20:00 +0200</pubDate>
1103 <description>&lt;p&gt;The last few days a new boot system called
1104 &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd&quot;&gt;systemd&lt;/a&gt;
1105 has been
1106 &lt;a href=&quot;http://0pointer.de/blog/projects/systemd.html&quot;&gt;introduced&lt;/a&gt;
1107
1108 to the free software world. I have not yet had time to play around
1109 with it, but it seem to be a very interesting alternative to
1110 &lt;a href=&quot;http://upstart.ubuntu.com/&quot;&gt;upstart&lt;/a&gt;, and might prove to be
1111 a good alternative for Debian when we are able to switch to an event
1112 based boot system. Tollef is
1113 &lt;a href=&quot;http://bugs.debian.org/580814&quot;&gt;in the process&lt;/a&gt; of getting
1114 systemd into Debian, and I look forward to seeing how well it work. I
1115 like the fact that systemd handles init.d scripts with dependency
1116 information natively, allowing them to run in parallel where upstart
1117 at the moment do not.&lt;/p&gt;
1118
1119 &lt;p&gt;Unfortunately do systemd have the same problem as upstart regarding
1120 platform support. It only work on recent Linux kernels, and also need
1121 some new kernel features enabled to function properly. This means
1122 kFreeBSD and Hurd ports of Debian will need a port or a different boot
1123 system. Not sure how that will be handled if systemd proves to be the
1124 way forward.&lt;/p&gt;
1125
1126 &lt;p&gt;In the mean time, based on the
1127 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/05/msg00122.html&quot;&gt;input
1128 on debian-devel@&lt;/a&gt; regarding parallel booting in Debian, I have
1129 decided to enable full parallel booting as the default in Debian as
1130 soon as possible (probably this weekend or early next week), to see if
1131 there are any remaining serious bugs in the init.d dependencies. A
1132 new version of the sysvinit package implementing this change is
1133 already in experimental. If all go well, Squeeze will be released
1134 with parallel booting enabled by default.&lt;/p&gt;
1135 </description>
1136 </item>
1137
1138 <item>
1139 <title>Sitesummary tip: Listing MAC address of all clients</title>
1140 <link>http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html</link>
1141 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html</guid>
1142 <pubDate>Fri, 14 May 2010 21:10:00 +0200</pubDate>
1143 <description>&lt;p&gt;In the recent Debian Edu versions, the
1144 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/HowTo/SiteSummary&quot;&gt;sitesummary
1145 system&lt;/a&gt; is used to keep track of the machines in the school
1146 network. Each machine will automatically report its status to the
1147 central server after boot and once per night. The network setup is
1148 also reported, and using this information it is possible to get the
1149 MAC address of all network interfaces in the machines. This is useful
1150 to update the DHCP configuration.&lt;/p&gt;
1151
1152 &lt;p&gt;To give some idea how to use sitesummary, here is a one-liner to
1153 ist all MAC addresses of all machines reporting to sitesummary. Run
1154 this on the collector host:&lt;/p&gt;
1155
1156 &lt;blockquote&gt;&lt;pre&gt;
1157 perl -MSiteSummary -e &#39;for_all_hosts(sub { print join(&quot; &quot;, get_macaddresses(shift)), &quot;\n&quot;; });&#39;
1158 &lt;/pre&gt;&lt;/blockquote&gt;
1159
1160 &lt;p&gt;This will list all MAC addresses assosiated with all machine, one
1161 line per machine and with space between the MAC addresses.&lt;/p&gt;
1162
1163 &lt;p&gt;To allow system administrators easier job at adding static DHCP
1164 addresses for hosts, it would be possible to extend this to fetch
1165 machine information from sitesummary and update the DHCP and DNS
1166 tables in LDAP using this information. Such tool is unfortunately not
1167 written yet.&lt;/p&gt;
1168 </description>
1169 </item>
1170
1171 <item>
1172 <title>Parallellized boot is now the default in Debian/unstable</title>
1173 <link>http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html</link>
1174 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html</guid>
1175 <pubDate>Fri, 14 May 2010 22:40:00 +0200</pubDate>
1176 <description>&lt;p&gt;Since this evening, parallel booting is the default in
1177 Debian/unstable for machines using dependency based boot sequencing.
1178 Apparently the testing of concurrent booting has been wider than
1179 expected, if I am to believe the
1180 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/05/msg00122.html&quot;&gt;input
1181 on debian-devel@&lt;/a&gt;, and I concluded a few days ago to move forward
1182 with the feature this weekend, to give us some time to detect any
1183 remaining problems before Squeeze is frozen. If serious problems are
1184 detected, it is simple to change the default back to sequential boot.
1185 The upload of the new sysvinit package also activate a new upstream
1186 version.&lt;/p&gt;
1187
1188 More information about
1189 &lt;a href=&quot;http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&quot;&gt;dependency
1190 based boot sequencing&lt;/a&gt; is available from the Debian wiki. It is
1191 currently possible to disable parallel booting when one run into
1192 problems caused by it, by adding this line to /etc/default/rcS:&lt;/p&gt;
1193
1194 &lt;blockquote&gt;&lt;pre&gt;
1195 CONCURRENCY=none
1196 &lt;/pre&gt;&lt;/blockquote&gt;
1197
1198 &lt;p&gt;If you report any problems with dependencies in init.d scripts to
1199 the BTS, please usertag the report to get it to show up at
1200 &lt;a href=&quot;http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org&quot;&gt;the
1201 list of usertagged bugs related to this&lt;/a&gt;.&lt;/p&gt;
1202 </description>
1203 </item>
1204
1205 <item>
1206 <title>Pieces of the roaming laptop puzzle in Debian</title>
1207 <link>http://people.skolelinux.org/pere/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html</link>
1208 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Pieces_of_the_roaming_laptop_puzzle_in_Debian.html</guid>
1209 <pubDate>Wed, 19 May 2010 19:00:00 +0200</pubDate>
1210 <description>&lt;p&gt;Today, the last piece of the puzzle for roaming laptops in Debian
1211 Edu finally entered the Debian archive. Today, the new
1212 &lt;a href=&quot;http://packages.qa.debian.org/libp/libpam-mklocaluser.html&quot;&gt;libpam-mklocaluser&lt;/a&gt;
1213 package was accepted. Two days ago, two other pieces was accepted
1214 into unstable. The
1215 &lt;a href=&quot;http://packages.qa.debian.org/p/pam-python.html&quot;&gt;pam-python&lt;/a&gt;
1216 package needed by libpam-mklocaluser, and the
1217 &lt;a href=&quot;http://packages.qa.debian.org/s/sssd.html&quot;&gt;sssd&lt;/a&gt; package
1218 passed NEW on Monday. In addition, the
1219 &lt;a href=&quot;http://packages.qa.debian.org/libp/libpam-ccreds.html&quot;&gt;libpam-ccreds&lt;/a&gt;
1220 package we need is in experimental (version 10-4) since Saturday, and
1221 hopefully will be moved to unstable soon.&lt;/p&gt;
1222
1223 &lt;p&gt;This collection of packages allow for two different setups for
1224 roaming laptops. The traditional setup would be using libpam-ccreds,
1225 nscd and libpam-mklocaluser with LDAP or Kerberos authentication,
1226 which should work out of the box if the configuration changes proposed
1227 for nscd in &lt;a href=&quot;http://bugs.debian.org/485282&quot;&gt;BTS report
1228 #485282&lt;/a&gt; is implemented. The alternative setup is to use sssd with
1229 libpam-mklocaluser to connect to LDAP or Kerberos and let sssd take
1230 care of the caching of passwords and group information.&lt;/p&gt;
1231
1232 &lt;p&gt;I have so far been unable to get sssd to work with the LDAP server
1233 at the University, but suspect the issue is some SSL/GnuTLS related
1234 problem with the server certificate. I plan to update the Debian
1235 package to version 1.2, which is scheduled for next week, and hope to
1236 find time to make sure the next release will include both the
1237 Debian/Ubuntu specific patches. Upstream is friendly and responsive,
1238 and I am sure we will find a good solution.&lt;/p&gt;
1239
1240 &lt;p&gt;The idea is to set up the roaming laptops to authenticate using
1241 LDAP or Kerberos and create a local user with home directory in /home/
1242 when a usre in LDAP logs in via KDM or GDM for the first time, and
1243 cache the password for offline checking, as well as caching group
1244 memberhips and other relevant LDAP information. The
1245 libpam-mklocaluser package was created to make sure the local home
1246 directory is in /home/, instead of /site/server/directory/ which would
1247 be the home directory if pam_mkhomedir was used. To avoid confusion
1248 with support requests and configuration, we do not want local laptops
1249 to have users in a path that is used for the same users home directory
1250 on the home directory servers.&lt;/p&gt;
1251
1252 &lt;p&gt;One annoying problem with gdm is that it do not show the PAM
1253 message passed to the user from libpam-mklocaluser when the local user
1254 is created. Instead gdm simply reject the login with some generic
1255 message. The message is shown in kdm, ssh and login, so I guess it is
1256 a bug in gdm. Have not investigated if there is some other message
1257 type that can be used instead to get gdm to also show the message.&lt;/p&gt;
1258
1259 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
1260 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1261 </description>
1262 </item>
1263
1264 <item>
1265 <title>More flexible firmware handling in debian-installer</title>
1266 <link>http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html</link>
1267 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html</guid>
1268 <pubDate>Sat, 22 May 2010 21:30:00 +0200</pubDate>
1269 <description>&lt;p&gt;After a long break from debian-installer development, I finally
1270 found time today to return to the project. Having to spend less time
1271 working dependency based boot in debian, as it is almost complete now,
1272 definitely helped freeing some time.&lt;/p&gt;
1273
1274 &lt;p&gt;A while back, I ran into a problem while working on Debian Edu. We
1275 include some firmware packages on the Debian Edu CDs, those needed to
1276 get disk and network controllers working. Without having these
1277 firmware packages available during installation, it is impossible to
1278 install Debian Edu on the given machine, and because our target group
1279 are non-technical people, asking them to provide firmware packages on
1280 an external medium is a support pain. Initially, I expected it to be
1281 enough to include the firmware packages on the CD to get
1282 debian-installer to find and use them. This proved to be wrong.
1283 Next, I hoped it was enough to symlink the relevant firmware packages
1284 to some useful location on the CD (tried /cdrom/ and
1285 /cdrom/firmware/). This also proved to not work, and at this point I
1286 found time to look at the debian-installer code to figure out what was
1287 going to work.&lt;/p&gt;
1288
1289 &lt;p&gt;The firmware loading code is in the hw-detect package, and a closer
1290 look revealed that it would only look for firmware packages outside
1291 the installation media, so the CD was never checked for firmware
1292 packages. It would only check USB sticks, floppies and other
1293 &quot;external&quot; media devices. Today I changed it to also look in the
1294 /cdrom/firmware/ directory on the mounted CD or DVD, which should
1295 solve the problem I ran into with Debian edu. I also changed it to
1296 look in /firmware/, to make sure the installer also find firmware
1297 provided in the initrd when booting the installer via PXE, to allow us
1298 to provide the same feature in the PXE setup included in Debian
1299 Edu.&lt;/p&gt;
1300
1301 &lt;p&gt;To make sure firmware deb packages with a license questions are not
1302 activated without asking if the license is accepted, I extended
1303 hw-detect to look for preinst scripts in the firmware packages, and
1304 run these before activating the firmware during installation. The
1305 license question is asked using debconf in the preinst, so this should
1306 solve the issue for the firmware packages I have looked at so far.&lt;/p&gt;
1307
1308 &lt;p&gt;If you want to discuss the details of these features, please
1309 contact us on debian-boot@lists.debian.org.&lt;/p&gt;
1310 </description>
1311 </item>
1312
1313 <item>
1314 <title>Parallellized boot seem to hold up well in Debian/testing</title>
1315 <link>http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html</link>
1316 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html</guid>
1317 <pubDate>Thu, 27 May 2010 23:55:00 +0200</pubDate>
1318 <description>&lt;p&gt;A few days ago, parallel booting was enabled in Debian/testing.
1319 The feature seem to hold up pretty well, but three fairly serious
1320 issues are known and should be solved:
1321
1322 &lt;p&gt;&lt;ul&gt;
1323
1324 &lt;li&gt;The wicd package seen to
1325 &lt;a href=&quot;http://bugs.debian.org/508289&quot;&gt;break NFS mounting&lt;/a&gt; and
1326 &lt;a href=&quot;http://bugs.debian.org/581586&quot;&gt;network setup&lt;/a&gt; when
1327 parallel booting is enabled. No idea why, but the wicd maintainer
1328 seem to be on the case.&lt;/li&gt;
1329
1330 &lt;li&gt;The nvidia X driver seem to
1331 &lt;a href=&quot;http://bugs.debian.org/583312&quot;&gt;have a race condition&lt;/a&gt;
1332 triggered more easily when parallel booting is in effect. The
1333 maintainer is on the case.&lt;/li&gt;
1334
1335 &lt;li&gt;The sysv-rc package fail to properly enable dependency based boot
1336 sequencing (the shutdown is broken) when old file-rc users
1337 &lt;a href=&quot;http://bugs.debian.org/575080&quot;&gt;try to switch back&lt;/a&gt; to
1338 sysv-rc. One way to solve it would be for file-rc to create
1339 /etc/init.d/.legacy-bootordering, and another is to try to make
1340 sysv-rc more robust. Will investigate some more and probably upload a
1341 workaround in sysv-rc to help those trying to move from file-rc to
1342 sysv-rc get a working shutdown.&lt;/li&gt;
1343
1344 &lt;/ul&gt;&lt;/p&gt;
1345
1346 &lt;p&gt;All in all not many surprising issues, and all of them seem
1347 solvable before Squeeze is released. In addition to these there are
1348 some packages with bugs in their dependencies and run level settings,
1349 which I expect will be fixed in a reasonable time span.&lt;/p&gt;
1350
1351 &lt;p&gt;If you report any problems with dependencies in init.d scripts to
1352 the BTS, please usertag the report to get it to show up at
1353 &lt;a href=&quot;http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org&quot;&gt;the
1354 list of usertagged bugs related to this&lt;/a&gt;.&lt;/p&gt;
1355
1356 &lt;p&gt;Update: Correct bug number to file-rc issue.&lt;/p&gt;
1357 </description>
1358 </item>
1359
1360 <item>
1361 <title>KDM fail at boot with NVidia cards - and no one try to fix it?</title>
1362 <link>http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html</link>
1363 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html</guid>
1364 <pubDate>Tue, 1 Jun 2010 17:05:00 +0200</pubDate>
1365 <description>&lt;p&gt;It is strange to watch how a bug in Debian causing KDM to fail to
1366 start at boot when an NVidia video card is used is handled. The
1367 problem seem to be that the nvidia X.org driver uses a long time to
1368 initialize, and this duration is longer than kdm is configured to
1369 wait.&lt;/p&gt;
1370
1371 &lt;p&gt;I came across two bugs related to this issue,
1372 &lt;a href=&quot;http://bugs.debian.org/583312&quot;&gt;#583312&lt;/a&gt; initially filed
1373 against initscripts and passed on to nvidia-glx when it became obvious
1374 that the nvidia drivers were involved, and
1375 &lt;a href=&quot;http://bugs.debian.org/524751&quot;&gt;#524751&lt;/a&gt; initially filed against
1376 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.&lt;/p&gt;
1377
1378 &lt;p&gt;To me, it seem that no-one is interested in actually solving the
1379 problem nvidia video card owners experience and make sure the Debian
1380 distribution work out of the box for these users. The nvidia driver
1381 maintainers expect kdm to be set up to wait longer, while kdm expect
1382 the nvidia driver maintainers to fix the driver to start faster, and
1383 while they wait for each other I guess the users end up switching to a
1384 distribution that work for them. I have no idea what the solution is,
1385 but I am pretty sure that waiting for each other is not it.&lt;/p&gt;
1386
1387 &lt;p&gt;I wonder why we end up handling bugs this way.&lt;/p&gt;
1388 </description>
1389 </item>
1390
1391 <item>
1392 <title>Sitesummary tip: Listing computer hardware models used at site</title>
1393 <link>http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html</link>
1394 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html</guid>
1395 <pubDate>Thu, 3 Jun 2010 12:05:00 +0200</pubDate>
1396 <description>&lt;p&gt;When using sitesummary at a site to track machines, it is possible
1397 to get a list of the machine types in use thanks to the DMI
1398 information extracted from each machine. The script to do so is
1399 included in the sitesummary package, and here is example output from
1400 the Skolelinux build servers:&lt;/p&gt;
1401
1402 &lt;blockquote&gt;&lt;pre&gt;
1403 maintainer:~# /usr/lib/sitesummary/hardware-model-summary
1404 vendor count
1405 Dell Computer Corporation 1
1406 PowerEdge 1750 1
1407 IBM 1
1408 eserver xSeries 345 -[8670M1X]- 1
1409 Intel 2
1410 [no-dmi-info] 3
1411 maintainer:~#
1412 &lt;/pre&gt;&lt;/blockquote&gt;
1413
1414 &lt;p&gt;The quality of the report depend on the quality of the DMI tables
1415 provided in each machine. Here there are Intel machines without model
1416 information listed with Intel as vendor and no model, and virtual Xen
1417 machines listed as [no-dmi-info]. One can add -l as a command line
1418 option to list the individual machines.&lt;/p&gt;
1419
1420 &lt;p&gt;A larger list is
1421 &lt;a href=&quot;http://narvikskolen.no/sitesummary/&quot;&gt;available from the the
1422 city of Narvik&lt;/a&gt;, which uses Skolelinux on all their shools and also
1423 provide the basic sitesummary report publicly. In their report there
1424 are ~1400 machines. I know they use both Ubuntu and Skolelinux on
1425 their machines, and as sitesummary is available in both distributions,
1426 it is trivial to get all of them to report to the same central
1427 collector.&lt;/p&gt;
1428 </description>
1429 </item>
1430
1431 <item>
1432 <title>A manual for standards wars...</title>
1433 <link>http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html</link>
1434 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html</guid>
1435 <pubDate>Sun, 6 Jun 2010 14:15:00 +0200</pubDate>
1436 <description>&lt;p&gt;Via the
1437 &lt;a href=&quot;http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html&quot;&gt;blog
1438 of Rob Weir&lt;/a&gt; I came across the very interesting essay named
1439 &lt;a href=&quot;http://faculty.haas.berkeley.edu/shapiro/wars.pdf&quot;&gt;The Art of
1440 Standards Wars&lt;/a&gt; (PDF 25 pages). I recommend it for everyone
1441 following the standards wars of today.&lt;/p&gt;
1442 </description>
1443 </item>
1444
1445 <item>
1446 <title>Upstart or sysvinit - as init.d scripts see it</title>
1447 <link>http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html</link>
1448 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html</guid>
1449 <pubDate>Sun, 6 Jun 2010 23:55:00 +0200</pubDate>
1450 <description>&lt;p&gt;If Debian is to migrate to upstart on Linux, I expect some init.d
1451 scripts to migrate (some of) their operations to upstart job while
1452 keeping the init.d for hurd and kfreebsd. The packages with such
1453 needs will need a way to get their init.d scripts to behave
1454 differently when used with sysvinit and with upstart. Because of
1455 this, I had a look at the environment variables set when a init.d
1456 script is running under upstart, and when it is not.&lt;/p&gt;
1457
1458 &lt;p&gt;With upstart, I notice these environment variables are set when a
1459 script is started from rcS.d/ (ignoring some irrelevant ones like
1460 COLUMNS):&lt;/p&gt;
1461
1462 &lt;blockquote&gt;&lt;pre&gt;
1463 DEFAULT_RUNLEVEL=2
1464 previous=N
1465 PREVLEVEL=
1466 RUNLEVEL=
1467 runlevel=S
1468 UPSTART_EVENTS=startup
1469 UPSTART_INSTANCE=
1470 UPSTART_JOB=rc-sysinit
1471 &lt;/pre&gt;&lt;/blockquote&gt;
1472
1473 &lt;p&gt;With sysvinit, these environment variables are set for the same
1474 script.&lt;/p&gt;
1475
1476 &lt;blockquote&gt;&lt;pre&gt;
1477 INIT_VERSION=sysvinit-2.88
1478 previous=N
1479 PREVLEVEL=N
1480 RUNLEVEL=S
1481 runlevel=S
1482 &lt;/pre&gt;&lt;/blockquote&gt;
1483
1484 &lt;p&gt;The RUNLEVEL and PREVLEVEL environment variables passed on from
1485 sysvinit are not set by upstart. Not sure if it is intentional or not
1486 to not be compatible with sysvinit in this regard.&lt;/p&gt;
1487
1488 &lt;p&gt;For scripts needing to behave differently when upstart is used,
1489 looking for the UPSTART_JOB environment variable seem to be a good
1490 choice.&lt;/p&gt;
1491 </description>
1492 </item>
1493
1494 <item>
1495 <title>Automatic upgrade testing from Lenny to Squeeze</title>
1496 <link>http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html</link>
1497 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html</guid>
1498 <pubDate>Fri, 11 Jun 2010 22:50:00 +0200</pubDate>
1499 <description>&lt;p&gt;The last few days I have done some upgrade testing in Debian, to
1500 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
1501 have been discovered and reported in the process
1502 (&lt;a href=&quot;http://bugs.debian.org/585410&quot;&gt;#585410&lt;/a&gt; in nagios3-cgi,
1503 &lt;a href=&quot;http://bugs.debian.org/584879&quot;&gt;#584879&lt;/a&gt; already fixed in
1504 enscript and &lt;a href=&quot;http://bugs.debian.org/584861&quot;&gt;#584861&lt;/a&gt; in
1505 kdebase-workspace-data), and to get a more regular testing going on, I
1506 am working on a script to automate the test.&lt;/p&gt;
1507
1508 &lt;p&gt;The idea is to create a Lenny chroot and use tasksel to install a
1509 Gnome or KDE desktop installation inside the chroot before upgrading
1510 it. To ensure no services are started in the chroot, a policy-rc.d
1511 script is inserted. To make sure tasksel believe it is to install a
1512 desktop on a laptop, the tasksel tests are replaced in the chroot
1513 (only acceptable because this is a throw-away chroot).&lt;/p&gt;
1514
1515 &lt;p&gt;A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
1516 currently always fail because udev refuses to upgrade with the kernel
1517 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
1518 is created. The bug report
1519 &lt;a href=&quot;http://bugs.debian.org/566000&quot;&gt;#566000&lt;/a&gt; make me suspect
1520 this problem do not trigger in a chroot, but I touch the file anyway
1521 to make sure the upgrade go well. Testing on virtual and real
1522 hardware have failed me because of udev so far, and creating this file
1523 do the trick in such settings anyway. This is a
1524 &lt;a href=&quot;http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/&quot;&gt;known
1525 issue&lt;/a&gt; and the current udev behaviour is intended by the udev
1526 maintainer because he lack the resources to rewrite udev to keep
1527 working with old kernels or something like that. I really wish the
1528 udev upstream would keep udev backwards compatible, to avoid such
1529 upgrade problem, but given that they fail to do so, I guess
1530 documenting the way out of this mess is the best option we got for
1531 Debian Squeeze.&lt;/p&gt;
1532
1533 &lt;p&gt;Anyway, back to the task at hand, testing upgrades. This test
1534 script, which I call &lt;tt&gt;upgrade-test&lt;/tt&gt; for now, is doing the
1535 trick:&lt;/p&gt;
1536
1537 &lt;blockquote&gt;&lt;pre&gt;
1538 #!/bin/sh
1539 set -ex
1540
1541 if [ &quot;$1&quot; ] ; then
1542 desktop=$1
1543 else
1544 desktop=gnome
1545 fi
1546
1547 from=lenny
1548 to=squeeze
1549
1550 exec &amp;lt; /dev/null
1551 unset LANG
1552 mirror=http://ftp.skolelinux.org/debian
1553 tmpdir=chroot-$from-upgrade-$to-$desktop
1554 fuser -mv .
1555 debootstrap $from $tmpdir $mirror
1556 chroot $tmpdir aptitude update
1557 cat &gt; $tmpdir/usr/sbin/policy-rc.d &amp;lt;&amp;lt;EOF
1558 #!/bin/sh
1559 exit 101
1560 EOF
1561 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
1562 exit_cleanup() {
1563 umount $tmpdir/proc
1564 }
1565 mount -t proc proc $tmpdir/proc
1566 # Make sure proc is unmounted also on failure
1567 trap exit_cleanup EXIT INT
1568
1569 chroot $tmpdir aptitude -y install debconf-utils
1570
1571 # Make sure tasksel autoselection trigger. It need the test scripts
1572 # to return the correct answers.
1573 echo tasksel tasksel/desktop multiselect $desktop | \
1574 chroot $tmpdir debconf-set-selections
1575
1576 # Include the desktop and laptop task
1577 for test in desktop laptop ; do
1578 echo &gt; $tmpdir/usr/lib/tasksel/tests/$test &amp;lt;&amp;lt;EOF
1579 #!/bin/sh
1580 exit 2
1581 EOF
1582 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
1583 done
1584
1585 DEBIAN_FRONTEND=noninteractive
1586 DEBIAN_PRIORITY=critical
1587 export DEBIAN_FRONTEND DEBIAN_PRIORITY
1588 chroot $tmpdir tasksel --new-install
1589
1590 echo deb $mirror $to main &gt; $tmpdir/etc/apt/sources.list
1591 chroot $tmpdir aptitude update
1592 touch $tmpdir/etc/udev/kernel-upgrade
1593 chroot $tmpdir aptitude -y dist-upgrade
1594 fuser -mv
1595 &lt;/pre&gt;&lt;/blockquote&gt;
1596
1597 &lt;p&gt;I suspect it would be useful to test upgrades with both apt-get and
1598 with aptitude, but I have not had time to look at how they behave
1599 differently so far. I hope to get a cron job running to do the test
1600 regularly and post the result on the web. The Gnome upgrade currently
1601 work, while the KDE upgrade fail because of the bug in
1602 kdebase-workspace-data&lt;/p&gt;
1603
1604 &lt;p&gt;I am not quite sure what kind of extract from the huge upgrade logs
1605 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
1606 post, so I will refrain from trying. I can report that for Gnome,
1607 aptitude report 760 packages upgraded, 448 newly installed, 129 to
1608 remove and 1 not upgraded and 1024MB need to be downloaded while for
1609 KDE the same numbers are 702 packages upgraded, 507 newly installed,
1610 193 to remove and 0 not upgraded and 1117MB need to be downloaded&lt;/p&gt;
1611
1612 &lt;p&gt;I am very happy to notice that the Gnome desktop + laptop upgrade
1613 is able to migrate to dependency based boot sequencing and parallel
1614 booting without a hitch. Was unsure if there were still bugs with
1615 packages failing to clean up their obsolete init.d script during
1616 upgrades, and no such problem seem to affect the Gnome desktop+laptop
1617 packages.&lt;/p&gt;
1618 </description>
1619 </item>
1620
1621 <item>
1622 <title>Lenny-&gt;Squeeze upgrades, removals by apt and aptitude</title>
1623 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html</link>
1624 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html</guid>
1625 <pubDate>Sun, 13 Jun 2010 09:05:00 +0200</pubDate>
1626 <description>&lt;p&gt;My
1627 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html&quot;&gt;testing
1628 of Debian upgrades&lt;/a&gt; from Lenny to Squeeze continues, and I&#39;ve
1629 finally made the upgrade logs available from
1630 &lt;a href=&quot;http://people.skolelinux.org/pere/debian-upgrade-testing/&quot;&gt;http://people.skolelinux.org/pere/debian-upgrade-testing/&lt;/a&gt;.
1631 I am now testing dist-upgrade of Gnome and KDE in a chroot using both
1632 apt and aptitude, and found their differences interesting. This time
1633 I will only focus on their removal plans.&lt;/p&gt;
1634
1635 &lt;p&gt;After installing a Gnome desktop and the laptop task, apt-get wants
1636 to remove 72 packages when dist-upgrading from Lenny to Squeeze. The
1637 surprising part is that it want to remove xorg and all
1638 xserver-xorg-video* drivers. Clearly not a good choice, but I am not
1639 sure why. When asking aptitude to do the same, it want to remove 129
1640 packages, but most of them are library packages I suspect are no
1641 longer needed. Both of them want to remove bluetooth packages, which
1642 I do not know. Perhaps these bluetooth packages are obsolete?&lt;/p&gt;
1643
1644 &lt;p&gt;For KDE, apt-get want to remove 82 packages, among them kdebase
1645 which seem like a bad idea and xorg the same way as with Gnome. Asking
1646 aptitude for the same, it wants to remove 192 packages, none which are
1647 too surprising.&lt;/p&gt;
1648
1649 &lt;p&gt;I guess the removal of xorg during upgrades should be investigated
1650 and avoided, and perhaps others as well. Here are the complete list
1651 of planned removals. The complete logs is available from the URL
1652 above. Note if you want to repeat these tests, that the upgrade test
1653 for kde+apt-get hung in the tasksel setup because of dpkg asking
1654 conffile questions. No idea why. I worked around it by using
1655 &#39;&lt;tt&gt;echo &gt;&gt; /proc/&lt;em&gt;pidofdpkg&lt;/em&gt;/fd/0&lt;/tt&gt;&#39; to tell dpkg to
1656 continue.&lt;/p&gt;
1657
1658 &lt;p&gt;&lt;b&gt;apt-get gnome 72&lt;/b&gt;
1659 &lt;br&gt;bluez-gnome cupsddk-drivers deskbar-applet gnome
1660 gnome-desktop-environment gnome-network-admin gtkhtml3.14
1661 iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
1662 libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
1663 nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
1664 serpentine swfdec-mozilla update-manager xorg xserver-xorg
1665 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
1666 xserver-xorg-input-kbd xserver-xorg-input-mouse
1667 xserver-xorg-input-synaptics xserver-xorg-input-wacom
1668 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
1669 xserver-xorg-video-ati xserver-xorg-video-chips
1670 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
1671 xserver-xorg-video-dummy xserver-xorg-video-fbdev
1672 xserver-xorg-video-glint xserver-xorg-video-i128
1673 xserver-xorg-video-i740 xserver-xorg-video-imstt
1674 xserver-xorg-video-intel xserver-xorg-video-mach64
1675 xserver-xorg-video-mga xserver-xorg-video-neomagic
1676 xserver-xorg-video-nsc xserver-xorg-video-nv
1677 xserver-xorg-video-openchrome xserver-xorg-video-r128
1678 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
1679 xserver-xorg-video-rendition xserver-xorg-video-s3
1680 xserver-xorg-video-s3virge xserver-xorg-video-savage
1681 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
1682 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
1683 xserver-xorg-video-tga xserver-xorg-video-trident
1684 xserver-xorg-video-tseng xserver-xorg-video-v4l
1685 xserver-xorg-video-vesa xserver-xorg-video-vga
1686 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
1687 xulrunner-1.9-gnome-support&lt;/p&gt;
1688
1689 &lt;p&gt;&lt;b&gt;aptitude gnome 129&lt;/b&gt;
1690
1691 &lt;br&gt;bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
1692 djvulibre-desktop finger gnome-app-install gnome-mount
1693 gnome-network-admin gnome-spell gnome-vfs-obexftp
1694 gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
1695 libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
1696 libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
1697 libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
1698 libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
1699 libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
1700 libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
1701 libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
1702 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
1703 libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
1704 libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
1705 libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
1706 libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
1707 libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
1708 libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
1709 libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
1710 libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
1711 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
1712 libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
1713 libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
1714 libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
1715 openoffice.org-writer2latex openssl-blacklist p7zip
1716 python-4suite-xml python-eggtrayicon python-gnome2-desktop
1717 python-gnome2-extras python-gtkhtml2 python-gtkmozembed
1718 python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
1719 swfdec-mozilla totem-gstreamer update-manager wodim
1720 xserver-xorg-video-cyrix xserver-xorg-video-imstt
1721 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
1722 zip&lt;/p&gt;
1723
1724 &lt;p&gt;&lt;b&gt;apt-get kde 82&lt;/b&gt;
1725
1726 &lt;br&gt;cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
1727 kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
1728 kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
1729 kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
1730 kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
1731 libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
1732 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
1733 xserver-xorg-input-kbd xserver-xorg-input-mouse
1734 xserver-xorg-input-synaptics xserver-xorg-input-wacom
1735 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
1736 xserver-xorg-video-ati xserver-xorg-video-chips
1737 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
1738 xserver-xorg-video-dummy xserver-xorg-video-fbdev
1739 xserver-xorg-video-glint xserver-xorg-video-i128
1740 xserver-xorg-video-i740 xserver-xorg-video-imstt
1741 xserver-xorg-video-intel xserver-xorg-video-mach64
1742 xserver-xorg-video-mga xserver-xorg-video-neomagic
1743 xserver-xorg-video-nsc xserver-xorg-video-nv
1744 xserver-xorg-video-openchrome xserver-xorg-video-r128
1745 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
1746 xserver-xorg-video-rendition xserver-xorg-video-s3
1747 xserver-xorg-video-s3virge xserver-xorg-video-savage
1748 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
1749 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
1750 xserver-xorg-video-tga xserver-xorg-video-trident
1751 xserver-xorg-video-tseng xserver-xorg-video-v4l
1752 xserver-xorg-video-vesa xserver-xorg-video-vga
1753 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9&lt;/p&gt;
1754
1755 &lt;p&gt;&lt;b&gt;aptitude kde 192&lt;/b&gt;
1756 &lt;br&gt;bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
1757 djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
1758 ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
1759 kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
1760 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
1761 kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
1762 kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
1763 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
1764 kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
1765 kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
1766 kghostview khelpcenter khexedit kiconedit kitchensync klatin
1767 klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
1768 kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
1769 krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
1770 ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
1771 kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
1772 kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
1773 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
1774 libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
1775 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
1776 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
1777 libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
1778 libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
1779 libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
1780 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
1781 libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
1782 libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
1783 libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
1784 libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
1785 libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
1786 libxerces2-java-gcj libxtrap6 mpeglib networkstatus
1787 openoffice.org-writer2latex pmount poster psutils quanta quanta-data
1788 superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
1789 texlive-common texlive-doc-base texlive-fonts-recommended
1790 xserver-xorg-video-cyrix xserver-xorg-video-imstt
1791 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
1792 xulrunner-1.9&lt;/p&gt;
1793
1794 </description>
1795 </item>
1796
1797 <item>
1798 <title>Officeshots taking shape</title>
1799 <link>http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html</link>
1800 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html</guid>
1801 <pubDate>Sun, 13 Jun 2010 11:40:00 +0200</pubDate>
1802 <description>&lt;p&gt;For those of us caring about document exchange and
1803 interoperability, &lt;a href=&quot;http://www.officeshots.org/&quot;&gt;OfficeShots&lt;/a&gt;
1804 is a great service. It is to ODF documents what
1805 &lt;a href=&quot;http://browsershots.org/&quot;&gt;BrowserShots&lt;/a&gt; is for web
1806 pages.&lt;/p&gt;
1807
1808 &lt;p&gt;A while back, I was contacted by Knut Yrvin at the part of Nokia
1809 that used to be Trolltech, who wanted to help the OfficeShots project
1810 and wondered if the University of Oslo where I work would be
1811 interested in supporting the project. I helped him to navigate his
1812 request to the right people at work, and his request was answered with
1813 a spot in the machine room with power and network connected, and Knut
1814 arranged funding for a machine to fill the spot. The machine is
1815 administrated by the OfficeShots people, so I do not have daily
1816 contact with its progress, and thus from time to time check back to
1817 see how the project is doing.&lt;/p&gt;
1818
1819 &lt;p&gt;Today I had a look, and was happy to see that the Dell box in our
1820 machine room now is the host for several virtual machines running as
1821 OfficeShots factories, and the project is able to render ODF documents
1822 in 17 different document processing implementation on Linux and
1823 Windows. This is great.&lt;/p&gt;
1824 </description>
1825 </item>
1826
1827 <item>
1828 <title>Calling tasksel like the installer, while still getting useful output</title>
1829 <link>http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html</link>
1830 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html</guid>
1831 <pubDate>Wed, 16 Jun 2010 14:55:00 +0200</pubDate>
1832 <description>&lt;p&gt;A few times I have had the need to simulate the way tasksel
1833 installs packages during the normal debian-installer run. Until now,
1834 I have ended up letting tasksel do the work, with the annoying problem
1835 of not getting any feedback at all when something fails (like a
1836 conffile question from dpkg or a download that fails), using code like
1837 this:
1838
1839 &lt;blockquote&gt;&lt;pre&gt;
1840 export DEBIAN_FRONTEND=noninteractive
1841 tasksel --new-install
1842 &lt;/pre&gt;&lt;/blockquote&gt;
1843
1844 This would invoke tasksel, let its automatic task selection pick the
1845 tasks to install, and continue to install the requested tasks without
1846 any output what so ever.
1847
1848 Recently I revisited this problem while working on the automatic
1849 package upgrade testing, because tasksel would some times hang without
1850 any useful feedback, and I want to see what is going on when it
1851 happen. Then it occured to me, I can parse the output from tasksel
1852 when asked to run in test mode, and use that aptitude command line
1853 printed by tasksel then to simulate the tasksel run. I ended up using
1854 code like this:
1855
1856 &lt;blockquote&gt;&lt;pre&gt;
1857 export DEBIAN_FRONTEND=noninteractive
1858 cmd=&quot;$(in_target tasksel -t --new-install | sed &#39;s/debconf-apt-progress -- //&#39;)&quot;
1859 $cmd
1860 &lt;/pre&gt;&lt;/blockquote&gt;
1861
1862 &lt;p&gt;The content of $cmd is typically something like &quot;&lt;tt&gt;aptitude -q
1863 --without-recommends -o APT::Install-Recommends=no -y install
1864 ~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
1865 ~pimportant&lt;/tt&gt;&quot;, which will install the gnome desktop task, the
1866 laptop task and all packages with priority standard , required and
1867 important, just like tasksel would have done it during
1868 installation.&lt;/p&gt;
1869
1870 &lt;p&gt;A better approach is probably to extend tasksel to be able to
1871 install packages without using debconf-apt-progress, for use cases
1872 like this.&lt;/p&gt;
1873 </description>
1874 </item>
1875
1876 <item>
1877 <title>Idea for a change to LDAP schemas allowing DNS and DHCP info to be combined into one object</title>
1878 <link>http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html</link>
1879 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html</guid>
1880 <pubDate>Thu, 24 Jun 2010 00:35:00 +0200</pubDate>
1881 <description>&lt;p&gt;A while back, I
1882 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html&quot;&gt;complained
1883 about the fact&lt;/a&gt; that it is not possible with the provided schemas
1884 for storing DNS and DHCP information in LDAP to combine the two sets
1885 of information into one LDAP object representing a computer.&lt;/p&gt;
1886
1887 &lt;p&gt;In the mean time, I discovered that a simple fix would be to make
1888 the dhcpHost object class auxiliary, to allow it to be combined with
1889 the dNSDomain object class, and thus forming one object for one
1890 computer when storing both DHCP and DNS information in LDAP.&lt;/p&gt;
1891
1892 &lt;p&gt;If I understand this correctly, it is not safe to do this change
1893 without also changing the assigned number for the object class, and I
1894 do not know enough about LDAP schema design to do that properly for
1895 Debian Edu.&lt;/p&gt;
1896
1897 &lt;p&gt;Anyway, for future reference, this is how I believe we could change
1898 the
1899 &lt;a href=&quot;http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00&quot;&gt;DHCP
1900 schema&lt;/a&gt; to solve at least part of the problem with the LDAP schemas
1901 available today from IETF.&lt;/p&gt;
1902
1903 &lt;pre&gt;
1904 --- dhcp.schema (revision 65192)
1905 +++ dhcp.schema (working copy)
1906 @@ -376,7 +376,7 @@
1907 objectclass ( 2.16.840.1.113719.1.203.6.6
1908 NAME &#39;dhcpHost&#39;
1909 DESC &#39;This represents information about a particular client&#39;
1910 - SUP top
1911 + SUP top AUXILIARY
1912 MUST cn
1913 MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
1914 X-NDS_CONTAINMENT (&#39;dhcpService&#39; &#39;dhcpSubnet&#39; &#39;dhcpGroup&#39;) )
1915 &lt;/pre&gt;
1916
1917 &lt;p&gt;I very much welcome clues on how to do this properly for Debian
1918 Edu/Squeeze. We provide the DHCP schema in our debian-edu-config
1919 package, and should thus be free to rewrite it as we see fit.&lt;/p&gt;
1920
1921 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
1922 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1923 </description>
1924 </item>
1925
1926 <item>
1927 <title>LUMA, a very nice LDAP GUI</title>
1928 <link>http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html</link>
1929 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html</guid>
1930 <pubDate>Mon, 28 Jun 2010 00:30:00 +0200</pubDate>
1931 <description>&lt;p&gt;The last few days I have been looking into the status of the LDAP
1932 directory in Debian Edu, and in the process I started to miss a GUI
1933 tool to browse the LDAP tree. The only one I was able to find in
1934 Debian/Squeeze and Lenny is
1935 &lt;a href=&quot;http://luma.sourceforge.net/&quot;&gt;LUMA&lt;/a&gt;, which has proved to
1936 be a great tool to get a overview of the current LDAP directory
1937 populated by default in Skolelinux. Thanks to it, I have been able to
1938 find empty and obsolete subtrees, misplaced objects and duplicate
1939 objects. It will be installed by default in Debian/Squeeze. If you
1940 are working with LDAP, give it a go. :)&lt;/p&gt;
1941
1942 &lt;p&gt;I did notice one problem with it I have not had time to report to
1943 the BTS yet. There is no .desktop file in the package, so the tool do
1944 not show up in the Gnome and KDE menus, but only deep down in in the
1945 Debian submenu in KDE. I hope that can be fixed before Squeeze is
1946 released.&lt;/p&gt;
1947
1948 &lt;p&gt;I have not yet been able to get it to modify the tree yet. I would
1949 like to move objects and remove subtrees directly in the GUI, but have
1950 not found a way to do that with LUMA yet. So in the mean time, I use
1951 &lt;a href=&quot;http://www.lichteblau.com/ldapvi/&quot;&gt;ldapvi&lt;/a&gt; for that.&lt;/p&gt;
1952
1953 &lt;p&gt;If you have tips on other GUI tools for LDAP that might be useful
1954 in Debian Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1955
1956 &lt;p&gt;Update 2010-06-29: Ross Reedstrom tipped us about the
1957 &lt;a href=&quot;http://packages.qa.debian.org/g/gq.html&quot;&gt;gq&lt;/a&gt; package as a
1958 useful GUI alternative. It seem like a good tool, but is unmaintained
1959 in Debian and got a RC bug keeping it out of Squeeze. Unless that
1960 changes, it will not be an option for Debian Edu based on Squeeze.&lt;/p&gt;
1961 </description>
1962 </item>
1963
1964 <item>
1965 <title>Caching password, user and group on a roaming Debian laptop</title>
1966 <link>http://people.skolelinux.org/pere/blog/Caching_password__user_and_group_on_a_roaming_Debian_laptop.html</link>
1967 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Caching_password__user_and_group_on_a_roaming_Debian_laptop.html</guid>
1968 <pubDate>Thu, 1 Jul 2010 11:40:00 +0200</pubDate>
1969 <description>&lt;p&gt;For a laptop, centralized user directories and password checking is
1970 a bit troubling. Laptops are typically used also when not connected
1971 to the network, and it is vital for a user to be able to log in or
1972 unlock the screen saver also when a central server is unavailable.
1973 This is possible by caching passwords and directory information (user
1974 and group attributes) locally, and the packages to do so are available
1975 in Debian. Here follow two recipes to set this up in Debian/Squeeze.
1976 It is also possible to set up in Debian/Lenny, but require more manual
1977 setup there because pam-auth-update is missing in Lenny.&lt;/p&gt;
1978
1979 &lt;h2&gt;LDAP/Kerberos + nscd + libpam-ccreds + libpam-mklocaluser/pam_mkhomedir&lt;/h2&gt;
1980
1981 This is the traditional method with a twist. The password caching is
1982 provided by libpam-ccreds (version 10-4 or later is needed on
1983 Squeeze), and the directory caching is done by nscd. The directory
1984 lookup and password checking is done using LDAP. If one want to use
1985 Kerberos for password checking the libpam-ldapd package can be
1986 replaced with libpam-krb5 or libpam-heimdal. If one is happy having a
1987 local home directory with the path listed in LDAP, one can use the
1988 pam_mkhomedir module from pam-modules to make this happen instead of
1989 using libpam-mklocaluser. A setup for pam-auth-update to enable
1990 pam_mkhomedir will have to be written until a fix for
1991 &lt;a href=&quot;http://bugs.debian.org/568577&quot;&gt;bug #568577&lt;/a&gt; is in the
1992 archive. Because I believe it is a bad idea to have local home
1993 directories using misleading paths like /site/server/partition/, I
1994 prefer to create a local user with the home directory in /home/. This
1995 is done using the libpam-mklocaluser package.&lt;/p&gt;
1996
1997 &lt;p&gt;These packages need to be installed and configured&lt;/p&gt;
1998
1999 &lt;blockquote&gt;&lt;pre&gt;
2000 libnss-ldapd libpam-ldapd nscd libpam-ccreds libpam-mklocaluser
2001 &lt;/pre&gt;&lt;/blockquote&gt;
2002
2003 &lt;p&gt;The ldapd packages will ask for LDAP connection information, and
2004 one have to fill in the values that fits ones own site. Make sure the
2005 PAM part uses encrypted connections, to make sure the password is not
2006 sent in clear text to the LDAP server. I&#39;ve been unable to get TLS
2007 certificate checking for a self signed certificate working, which make
2008 LDAP authentication unsafe for Debian Edu (nslcd is not checking if it
2009 is talking to the correct LDAP server), and very much welcome feedback
2010 on how to get this working.&lt;/p&gt;
2011
2012 &lt;p&gt;Because nscd do not have a default configuration fit for offline
2013 caching until &lt;a href=&quot;http://bugs.debian.org/485282&quot;&gt;bug #485282&lt;/a&gt;
2014 is fixed, this configuration should be used instead of the one
2015 currently in /etc/nscd.conf. The changes are in the fields
2016 reload-count and positive-time-to-live, and is based on the
2017 instructions I found in the
2018 &lt;a href=&quot;http://www.flyn.org/laptopldap/&quot;&gt;LDAP for Mobile Laptops&lt;/a&gt;
2019 instructions by Flyn Computing.&lt;/p&gt;
2020
2021 &lt;blockquote&gt;&lt;pre&gt;
2022 debug-level 0
2023 reload-count unlimited
2024 paranoia no
2025
2026 enable-cache passwd yes
2027 positive-time-to-live passwd 2592000
2028 negative-time-to-live passwd 20
2029 suggested-size passwd 211
2030 check-files passwd yes
2031 persistent passwd yes
2032 shared passwd yes
2033 max-db-size passwd 33554432
2034 auto-propagate passwd yes
2035
2036 enable-cache group yes
2037 positive-time-to-live group 2592000
2038 negative-time-to-live group 20
2039 suggested-size group 211
2040 check-files group yes
2041 persistent group yes
2042 shared group yes
2043 max-db-size group 33554432
2044 auto-propagate group yes
2045
2046 enable-cache hosts no
2047 positive-time-to-live hosts 2592000
2048 negative-time-to-live hosts 20
2049 suggested-size hosts 211
2050 check-files hosts yes
2051 persistent hosts yes
2052 shared hosts yes
2053 max-db-size hosts 33554432
2054
2055 enable-cache services yes
2056 positive-time-to-live services 2592000
2057 negative-time-to-live services 20
2058 suggested-size services 211
2059 check-files services yes
2060 persistent services yes
2061 shared services yes
2062 max-db-size services 33554432
2063 &lt;/pre&gt;&lt;/blockquote&gt;
2064
2065 &lt;p&gt;While we wait for a mechanism to update /etc/nsswitch.conf
2066 automatically like the one provided in
2067 &lt;a href=&quot;http://bugs.debian.org/496915&quot;&gt;bug #496915&lt;/a&gt;, the file
2068 content need to be manually replaced to ensure LDAP is used as the
2069 directory service on the machine. /etc/nsswitch.conf should normally
2070 look like this:&lt;/p&gt;
2071
2072 &lt;blockquote&gt;&lt;pre&gt;
2073 passwd: files ldap
2074 group: files ldap
2075 shadow: files ldap
2076 hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
2077 networks: files
2078 protocols: files
2079 services: files
2080 ethers: files
2081 rpc: files
2082 netgroup: files ldap
2083 &lt;/pre&gt;&lt;/blockquote&gt;
2084
2085 &lt;p&gt;The important parts are that ldap is listed last for passwd, group,
2086 shadow and netgroup.&lt;/p&gt;
2087
2088 &lt;p&gt;With these changes in place, any user in LDAP will be able to log
2089 in locally on the machine using for example kdm, get a local home
2090 directory created and have the password as well as user and group
2091 attributes cached.
2092
2093 &lt;h2&gt;LDAP/Kerberos + nss-updatedb + libpam-ccreds +
2094 libpam-mklocaluser/pam_mkhomedir&lt;/h2&gt;
2095
2096 &lt;p&gt;Because nscd have had its share of problems, and seem to have
2097 problems doing proper caching, I&#39;ve seen suggestions and recipes to
2098 use nss-updatedb to copy parts of the LDAP database locally when the
2099 LDAP database is available. I have not tested such setup, because I
2100 discovered sssd.&lt;/p&gt;
2101
2102 &lt;h2&gt;LDAP/Kerberos + sssd + libpam-mklocaluser&lt;/h2&gt;
2103
2104 &lt;p&gt;A more flexible and robust setup than the nscd combination
2105 mentioned earlier that has shown up recently, is the
2106 &lt;a href=&quot;https://fedorahosted.org/sssd/&quot;&gt;sssd&lt;/a&gt; package from Redhat.
2107 It is part of the &lt;a href=&quot;http://www.freeipa.org/&quot;&gt;FreeIPA&lt;/A&gt; project
2108 to provide a Active Directory like directory service for Linux
2109 machines. The sssd system combines the caching of passwords and user
2110 information into one package, and remove the need for nscd and
2111 libpam-ccreds. It support LDAP and Kerberos, but not NIS. Version
2112 1.2 do not support netgroups, but it is said that it will support this
2113 in version 1.5 expected to show up later in 2010. Because the
2114 &lt;a href=&quot;http://packages.qa.debian.org/s/sssd.html&quot;&gt;sssd package&lt;/a&gt;
2115 was missing in Debian, I ended up co-maintaining it with Werner, and
2116 version 1.2 is now in testing.
2117
2118 &lt;p&gt;These packages need to be installed and configured to get the
2119 roaming setup I want&lt;/p&gt;
2120
2121 &lt;blockquote&gt;&lt;pre&gt;
2122 libpam-sss libnss-sss libpam-mklocaluser
2123 &lt;/pre&gt;&lt;/blockquote&gt;
2124
2125 The complete setup of sssd is done by editing/creating
2126 &lt;tt&gt;/etc/sssd/sssd.conf&lt;/tt&gt;.
2127
2128 &lt;blockquote&gt;&lt;pre&gt;
2129 [sssd]
2130 config_file_version = 2
2131 reconnection_retries = 3
2132 sbus_timeout = 30
2133 services = nss, pam
2134 domains = INTERN
2135
2136 [nss]
2137 filter_groups = root
2138 filter_users = root
2139 reconnection_retries = 3
2140
2141 [pam]
2142 reconnection_retries = 3
2143
2144 [domain/INTERN]
2145 enumerate = false
2146 cache_credentials = true
2147
2148 id_provider = ldap
2149 auth_provider = ldap
2150 chpass_provider = ldap
2151
2152 ldap_uri = ldap://ldap
2153 ldap_search_base = dc=skole,dc=skolelinux,dc=no
2154 ldap_tls_reqcert = never
2155 ldap_tls_cacert = /etc/ssl/certs/ca-certificates.crt
2156 &lt;/pre&gt;&lt;/blockquote&gt;
2157
2158 &lt;p&gt;I got the same problem here with certificate checking. Had to set
2159 &quot;ldap_tls_reqcert = never&quot; to get it working.&lt;/p&gt;
2160
2161 &lt;p&gt;With the libnss-sss package in testing at the moment, the
2162 nsswitch.conf file is update automatically, so there is no need to
2163 modify it manually.&lt;/p&gt;
2164
2165 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
2166 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
2167 </description>
2168 </item>
2169
2170 <item>
2171 <title>Lenny-&gt;Squeeze upgrades, apt vs aptitude with the Gnome desktop</title>
2172 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html</link>
2173 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html</guid>
2174 <pubDate>Sat, 3 Jul 2010 23:55:00 +0200</pubDate>
2175 <description>&lt;p&gt;Here is a short update on my &lt;a
2176 href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;my
2177 Debian Lenny-&gt;Squeeze upgrade testing&lt;/a&gt;. Here is a summary of the
2178 difference for Gnome when it is upgraded by apt-get and aptitude. I&#39;m
2179 not reporting the status for KDE, because the upgrade crashes when
2180 aptitude try because of missing conflicts
2181 (&lt;a href=&quot;http://bugs.debian.org/584861&quot;&gt;#584861&lt;/a&gt; and
2182 &lt;a href=&quot;http://bugs.debian.org/585716&quot;&gt;#585716&lt;/a&gt;).&lt;/p&gt;
2183
2184 &lt;p&gt;At the end of the upgrade test script, dpkg -l is executed to get a
2185 complete list of the installed packages. Based on this I see these
2186 differences when I did a test run today. As usual, I do not really
2187 know what the correct set of packages would be, but thought it best to
2188 publish the difference.&lt;/p&gt;
2189
2190 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
2191
2192 &lt;blockquote&gt;&lt;p&gt;
2193 at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
2194 libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
2195 libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
2196 libgtksourceview-common libpt-1.10.10-plugins-alsa
2197 libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
2198 libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
2199 python-4suite-xml python-eggtrayicon python-gtkhtml2
2200 python-gtkmozembed svgalibg1 xserver-xephyr zip
2201 &lt;/p&gt;&lt;/blockquote&gt;
2202
2203 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
2204
2205 &lt;blockquote&gt;&lt;p&gt;
2206 bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
2207 gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
2208 libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
2209 libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
2210 libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
2211 libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
2212 libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
2213 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
2214 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
2215 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
2216 libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
2217 libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
2218 libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
2219 libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
2220 libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
2221 libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
2222 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
2223 libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
2224 libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
2225 mysql-common swfdec-gnome totem-gstreamer wodim
2226 &lt;/p&gt;&lt;/blockquote&gt;
2227
2228 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
2229
2230 &lt;blockquote&gt;&lt;p&gt;
2231 gnome gnome-desktop-environment hamster-applet python-gnomeapplet
2232 python-gnomekeyring python-wnck rhythmbox-plugins xorg
2233 xserver-xorg-input-all xserver-xorg-input-evdev
2234 xserver-xorg-input-kbd xserver-xorg-input-mouse
2235 xserver-xorg-input-synaptics xserver-xorg-video-all
2236 xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
2237 xserver-xorg-video-chips xserver-xorg-video-cirrus
2238 xserver-xorg-video-dummy xserver-xorg-video-fbdev
2239 xserver-xorg-video-glint xserver-xorg-video-i128
2240 xserver-xorg-video-i740 xserver-xorg-video-mach64
2241 xserver-xorg-video-mga xserver-xorg-video-neomagic
2242 xserver-xorg-video-nouveau xserver-xorg-video-nv
2243 xserver-xorg-video-r128 xserver-xorg-video-radeon
2244 xserver-xorg-video-radeonhd xserver-xorg-video-rendition
2245 xserver-xorg-video-s3 xserver-xorg-video-s3virge
2246 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
2247 xserver-xorg-video-sis xserver-xorg-video-sisusb
2248 xserver-xorg-video-tdfx xserver-xorg-video-tga
2249 xserver-xorg-video-trident xserver-xorg-video-tseng
2250 xserver-xorg-video-vesa xserver-xorg-video-vmware
2251 xserver-xorg-video-voodoo
2252 &lt;/p&gt;&lt;/blockquote&gt;
2253
2254 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
2255
2256 &lt;blockquote&gt;&lt;p&gt;
2257 deskbar-applet xserver-xorg xserver-xorg-core
2258 xserver-xorg-input-wacom xserver-xorg-video-intel
2259 xserver-xorg-video-openchrome
2260 &lt;/p&gt;&lt;/blockquote&gt;
2261
2262 &lt;p&gt;I was told on IRC that the xorg-xserver package was
2263 &lt;a href=&quot;http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120&quot;&gt;changed
2264 in git&lt;/a&gt; today to try to get apt-get to not remove xorg completely.
2265 No idea when it hits Squeeze, but when it does I hope it will reduce
2266 the difference somewhat.
2267 </description>
2268 </item>
2269
2270 <item>
2271 <title>jXplorer, a very nice LDAP GUI</title>
2272 <link>http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html</link>
2273 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html</guid>
2274 <pubDate>Fri, 9 Jul 2010 12:55:00 +0200</pubDate>
2275 <description>&lt;p&gt;Since
2276 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html&quot;&gt;my
2277 last post&lt;/a&gt; about available LDAP tools in Debian, I was told about a
2278 LDAP GUI that is even better than luma. The java application
2279 &lt;a href=&quot;http://jxplorer.org/&quot;&gt;jXplorer&lt;/a&gt; is claimed to be capable of
2280 moving LDAP objects and subtrees using drag-and-drop, and can
2281 authenticate using Kerberos. I have only tested the Kerberos
2282 authentication, but do not have a LDAP setup allowing me to rewrite
2283 LDAP with my test user yet. It is
2284 &lt;a href=&quot;http://packages.qa.debian.org/j/jxplorer.html&quot;&gt;available in
2285 Debian&lt;/a&gt; testing and unstable at the moment. The only problem I
2286 have with it is how it handle errors. If something go wrong, its
2287 non-intuitive behaviour require me to go through some query work list
2288 and remove the failing query. Nothing big, but very annoying.&lt;/p&gt;
2289 </description>
2290 </item>
2291
2292 <item>
2293 <title>Idea for storing LTSP configuration in LDAP</title>
2294 <link>http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html</link>
2295 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html</guid>
2296 <pubDate>Sun, 11 Jul 2010 22:00:00 +0200</pubDate>
2297 <description>&lt;p&gt;Vagrant mentioned on IRC today that ltsp_config now support
2298 sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
2299 clients, and that this can be used to fetch configuration from LDAP if
2300 Debian Edu choose to store configuration there.&lt;/p&gt;
2301
2302 &lt;p&gt;Armed with this information, I got inspired and wrote a test module
2303 to get configuration from LDAP. The idea is to look up the MAC
2304 address of the client in LDAP, and look for attributes on the form
2305 ltspconfigsetting=value, and use this to export SETTING=value to the
2306 LTSP clients.&lt;/p&gt;
2307
2308 &lt;p&gt;The goal is to be able to store the LTSP configuration attributes
2309 in a &quot;computer&quot; LDAP object used by both DNS and DHCP, and thus
2310 allowing us to store all information about a computer in one place.&lt;/p&gt;
2311
2312 &lt;p&gt;This is a untested draft implementation, and I welcome feedback on
2313 this approach. A real LDAP schema for the ltspClientAux objectclass
2314 need to be written. Comments, suggestions, etc?&lt;/p&gt;
2315
2316 &lt;blockquote&gt;&lt;pre&gt;
2317 # Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
2318 #
2319 # Fetch LTSP client settings from LDAP based on MAC address
2320 #
2321 # Uses ethernet address as stored in the dhcpHost objectclass using
2322 # the dhcpHWAddress attribute or ethernet address stored in the
2323 # ieee802Device objectclass with the macAddress attribute.
2324 #
2325 # This module is written to be schema agnostic, and only depend on the
2326 # existence of attribute names.
2327 #
2328 # The LTSP configuration variables are saved directly using a
2329 # ltspConfig prefix and uppercasing the rest of the attribute name.
2330 # To set the SERVER variable, set the ltspConfigServer attribute.
2331 #
2332 # Some LDAP schema should be created with all the relevant
2333 # configuration settings. Something like this should work:
2334 #
2335 # objectclass ( 1.1.2.2 NAME &#39;ltspClientAux&#39;
2336 # SUP top
2337 # AUXILIARY
2338 # MAY ( ltspConfigServer $ ltsConfigSound $ ... )
2339
2340 LDAPSERVER=$(debian-edu-ldapserver)
2341 if [ &quot;$LDAPSERVER&quot; ] ; then
2342 LDAPBASE=$(debian-edu-ldapserver -b)
2343 for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk &#39;{print $5}&#39;|sort -u) ; do
2344 filter=&quot;(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))&quot;
2345 ldapsearch -h &quot;$LDAPSERVER&quot; -b &quot;$LDAPBASE&quot; -v -x &quot;$filter&quot; | \
2346 grep &#39;^ltspConfig&#39; | while read attr value ; do
2347 # Remove prefix and convert to upper case
2348 attr=$(echo $attr | sed &#39;s/^ltspConfig//i&#39; | tr a-z A-Z)
2349 # bass value on to clients
2350 eval &quot;$attr=$value; export $attr&quot;
2351 done
2352 done
2353 fi
2354 &lt;/pre&gt;&lt;/blockquote&gt;
2355
2356 &lt;p&gt;I&#39;m not sure this shell construction will work, because I suspect
2357 the while block might end up in a subshell causing the variables set
2358 there to not show up in ltsp-config, but if that is the case I am sure
2359 the code can be restructured to make sure the variables are passed on.
2360 I expect that can be solved with some testing. :)&lt;/p&gt;
2361
2362 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
2363 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
2364
2365 &lt;p&gt;Update 2010-07-17: I am aware of another effort to store LTSP
2366 configuration in LDAP that was created around year 2000 by
2367 &lt;a href=&quot;http://www.pcxperience.com/thinclient/documentation/ldap.html&quot;&gt;PC
2368 Xperience, Inc., 2000&lt;/a&gt;. I found its
2369 &lt;a href=&quot;http://people.redhat.com/alikins/ltsp/ldap/&quot;&gt;files&lt;/a&gt; on a
2370 personal home page over at redhat.com.&lt;/p&gt;
2371 </description>
2372 </item>
2373
2374 <item>
2375 <title>Combining PowerDNS and ISC DHCP LDAP objects</title>
2376 <link>http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html</link>
2377 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html</guid>
2378 <pubDate>Wed, 14 Jul 2010 23:45:00 +0200</pubDate>
2379 <description>&lt;p&gt;For a while now, I have wanted to find a way to change the DNS and
2380 DHCP services in Debian Edu to use the same LDAP objects for a given
2381 computer, to avoid the possibility of having a inconsistent state for
2382 a computer in LDAP (as in DHCP but no DNS entry or the other way
2383 around) and make it easier to add computers to LDAP.&lt;/p&gt;
2384
2385 &lt;p&gt;I&#39;ve looked at how powerdns and dhcpd is using LDAP, and using this
2386 information finally found a solution that seem to work.&lt;/p&gt;
2387
2388 &lt;p&gt;The old setup required three LDAP objects for a given computer.
2389 One forward DNS entry, one reverse DNS entry and one DHCP entry. If
2390 we switch powerdns to use its strict LDAP method (ldap-method=strict
2391 in pdns-debian-edu.conf), the forward and reverse DNS entries are
2392 merged into one while making it impossible to transfer the reverse map
2393 to a slave DNS server.&lt;/p&gt;
2394
2395 &lt;p&gt;If we also replace the object class used to get the DNS related
2396 attributes to one allowing these attributes to be combined with the
2397 dhcphost object class, we can merge the DNS and DHCP entries into one.
2398 I&#39;ve written such object class in the dnsdomainaux.schema file (need
2399 proper OIDs, but that is a minor issue), and tested the setup. It
2400 seem to work.&lt;/p&gt;
2401
2402 &lt;p&gt;With this test setup in place, we can get away with one LDAP object
2403 for both DNS and DHCP, and even the LTSP configuration I suggested in
2404 an earlier email. The combined LDAP object will look something like
2405 this:&lt;/p&gt;
2406
2407 &lt;blockquote&gt;&lt;pre&gt;
2408 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
2409 cn: hostname
2410 objectClass: dhcphost
2411 objectclass: domainrelatedobject
2412 objectclass: dnsdomainaux
2413 associateddomain: hostname.intern
2414 arecord: 10.11.12.13
2415 dhcphwaddress: ethernet 00:00:00:00:00:00
2416 dhcpstatements: fixed-address hostname
2417 ldapconfigsound: Y
2418 &lt;/pre&gt;&lt;/blockquote&gt;
2419
2420 &lt;p&gt;The DNS server uses the associateddomain and arecord entries, while
2421 the DHCP server uses the dhcphwaddress and dhcpstatements entries
2422 before asking DNS to resolve the fixed-adddress. LTSP will use
2423 dhcphwaddress or associateddomain and the ldapconfig* attributes.&lt;/p&gt;
2424
2425 &lt;p&gt;I am not yet sure if I can get the DHCP server to look for its
2426 dhcphost in a different location, to allow us to put the objects
2427 outside the &quot;DHCP Config&quot; subtree, but hope to figure out a way to do
2428 that. If I can&#39;t figure out a way to do that, we can still get rid of
2429 the hosts subtree and move all its content into the DHCP Config tree
2430 (which probably should be renamed to be more related to the new
2431 content. I suspect cn=dnsdhcp,ou=services or something like that
2432 might be a good place to put it.&lt;/p&gt;
2433
2434 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
2435 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
2436 </description>
2437 </item>
2438
2439 <item>
2440 <title>What are they searching for - PowerDNS and ISC DHCP in LDAP</title>
2441 <link>http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html</link>
2442 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html</guid>
2443 <pubDate>Sat, 17 Jul 2010 21:00:00 +0200</pubDate>
2444 <description>&lt;p&gt;This is a
2445 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html&quot;&gt;followup&lt;/a&gt;
2446 on my
2447 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html&quot;&gt;previous
2448 work&lt;/a&gt; on
2449 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html&quot;&gt;merging
2450 all&lt;/a&gt; the computer related LDAP objects in Debian Edu.&lt;/p&gt;
2451
2452 &lt;p&gt;As a step to try to see if it possible to merge the DNS and DHCP
2453 LDAP objects, I have had a look at how the packages pdns-backend-ldap
2454 and dhcp3-server-ldap in Debian use the LDAP server. The two
2455 implementations are quite different in how they use LDAP.&lt;/p&gt;
2456
2457 To get this information, I started slapd with debugging enabled and
2458 dumped the debug output to a file to get the LDAP searches performed
2459 on a Debian Edu main-server. Here is a summary.
2460
2461 &lt;p&gt;&lt;strong&gt;powerdns&lt;/strong&gt;&lt;/p&gt;
2462
2463 &lt;a href=&quot;http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend&quot;&gt;Clues
2464 on how to&lt;/a&gt; set up PowerDNS to use a LDAP backend is available on
2465 the web.
2466
2467 &lt;p&gt;PowerDNS have two modes of operation using LDAP as its backend.
2468 One &quot;strict&quot; mode where the forward and reverse DNS lookups are done
2469 using the same LDAP objects, and a &quot;tree&quot; mode where the forward and
2470 reverse entries are in two different subtrees in LDAP with a structure
2471 based on the DNS names, as in tjener.intern and
2472 2.2.0.10.in-addr.arpa.&lt;/p&gt;
2473
2474 &lt;p&gt;In tree mode, the server is set up to use a LDAP subtree as its
2475 base, and uses a &quot;base&quot; scoped search for the DNS name by adding
2476 &quot;dc=tjener,dc=intern,&quot; to the base with a filter for
2477 &quot;(associateddomain=tjener.intern)&quot; for the forward entry and
2478 &quot;dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,&quot; with a filter for
2479 &quot;(associateddomain=2.2.0.10.in-addr.arpa)&quot; for the reverse entry. For
2480 forward entries, it is looking for attributes named dnsttl, arecord,
2481 nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord,
2482 txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord,
2483 srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord,
2484 ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord,
2485 spfrecord and modifytimestamp. For reverse entries it is looking for
2486 the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord,
2487 ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord,
2488 locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent
2489 ldapsearch commands could look like this:&lt;/p&gt;
2490
2491 &lt;blockquote&gt;&lt;pre&gt;
2492 ldapsearch -h ldap \
2493 -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
2494 -s base -x &#39;(associateddomain=tjener.intern)&#39; dNSTTL aRecord nSRecord \
2495 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
2496 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
2497 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
2498 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
2499
2500 ldapsearch -h ldap \
2501 -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
2502 -s base -x &#39;(associateddomain=2.2.0.10.in-addr.arpa)&#39;
2503 dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
2504 hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
2505 srvrecord naptrrecord modifytimestamp
2506 &lt;/pre&gt;&lt;/blockquote&gt;
2507
2508 &lt;p&gt;In Debian Edu/Lenny, the PowerDNS tree mode is used with
2509 ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two
2510 example LDAP objects used there. In addition to these objects, the
2511 parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no
2512 also exist.&lt;/p&gt;
2513
2514 &lt;blockquote&gt;&lt;pre&gt;
2515 dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
2516 objectclass: top
2517 objectclass: dnsdomain
2518 objectclass: domainrelatedobject
2519 dc: tjener
2520 arecord: 10.0.2.2
2521 associateddomain: tjener.intern
2522
2523 dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
2524 objectclass: top
2525 objectclass: dnsdomain2
2526 objectclass: domainrelatedobject
2527 dc: 2
2528 ptrrecord: tjener.intern
2529 associateddomain: 2.2.0.10.in-addr.arpa
2530 &lt;/pre&gt;&lt;/blockquote&gt;
2531
2532 &lt;p&gt;In strict mode, the server behaves differently. When looking for
2533 forward DNS entries, it is doing a &quot;subtree&quot; scoped search with the
2534 same base as in the tree mode for a object with filter
2535 &quot;(associateddomain=tjener.intern)&quot; and requests the attributes dnsttl,
2536 arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord,
2537 mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord,
2538 naptrrecord and modifytimestamp. For reverse entires it also do a
2539 subtree scoped search but this time the filter is &quot;(arecord=10.0.2.2)&quot;
2540 and the requested attributes are associateddomain, dnsttl and
2541 modifytimestamp. In short, in strict mode the objects with ptrrecord
2542 go away, and the arecord attribute in the forward object is used
2543 instead.&lt;/p&gt;
2544
2545 &lt;p&gt;The forward and reverse searches can be simulated using ldapsearch
2546 like this:&lt;/p&gt;
2547
2548 &lt;blockquote&gt;&lt;pre&gt;
2549 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
2550 &#39;(associateddomain=tjener.intern)&#39; dNSTTL aRecord nSRecord \
2551 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
2552 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
2553 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
2554 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
2555
2556 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
2557 &#39;(arecord=10.0.2.2)&#39; associateddomain dnsttl modifytimestamp
2558 &lt;/pre&gt;&lt;/blockquote&gt;
2559
2560 &lt;p&gt;In addition to the forward and reverse searches , there is also a
2561 search for SOA records, which behave similar to the forward and
2562 reverse lookups.&lt;/p&gt;
2563
2564 &lt;p&gt;A thing to note with the PowerDNS behaviour is that it do not
2565 specify any objectclass names, and instead look for the attributes it
2566 need to generate a DNS reply. This make it able to work with any
2567 objectclass that provide the needed attributes.&lt;/p&gt;
2568
2569 &lt;p&gt;The attributes are normally provided in the cosine (RFC 1274) and
2570 dnsdomain2 schemas. The latter is used for reverse entries like
2571 ptrrecord and recent DNS additions like aaaarecord and srvrecord.&lt;/p&gt;
2572
2573 &lt;p&gt;In Debian Edu, we have created DNS objects using the object classes
2574 dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS
2575 attributes) and domainrelatedobject (for associatedDomain). The use
2576 of structural object classes make it impossible to combine these
2577 classes with the object classes used by DHCP.&lt;/p&gt;
2578
2579 &lt;p&gt;There are other schemas that could be used too, for example the
2580 dnszone structural object class used by Gosa and bind-sdb for the DNS
2581 attributes combined with the domainrelatedobject object class, but in
2582 this case some unused attributes would have to be included as well
2583 (zonename and relativedomainname).&lt;/p&gt;
2584
2585 &lt;p&gt;My proposal for Debian Edu would be to switch PowerDNS to strict
2586 mode and not use any of the existing objectclasses (dnsdomain,
2587 dnsdomain2 and dnszone) when one want to combine the DNS information
2588 with DHCP information, and instead create a auxiliary object class
2589 defined something like this (using the attributes defined for
2590 dnsdomain and dnsdomain2 or dnszone):&lt;/p&gt;
2591
2592 &lt;blockquote&gt;&lt;pre&gt;
2593 objectclass ( some-oid NAME &#39;dnsDomainAux&#39;
2594 SUP top
2595 AUXILIARY
2596 MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
2597 DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
2598 TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
2599 NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
2600 A6Record $ DNAMERecord
2601 ))
2602 &lt;/pre&gt;&lt;/blockquote&gt;
2603
2604 &lt;p&gt;This will allow any object to become a DNS entry when combined with
2605 the domainrelatedobject object class, and allow any entity to include
2606 all the attributes PowerDNS wants. I&#39;ve sent an email to the PowerDNS
2607 developers asking for their view on this schema and if they are
2608 interested in providing such schema with PowerDNS, and I hope my
2609 message will be accepted into their mailing list soon.&lt;/p&gt;
2610
2611 &lt;p&gt;&lt;strong&gt;ISC dhcp&lt;/strong&gt;&lt;/p&gt;
2612
2613 &lt;p&gt;The DHCP server searches for specific objectclass and requests all
2614 the object attributes, and then uses the attributes it want. This
2615 make it harder to figure out exactly what attributes are used, but
2616 thanks to the working example in Debian Edu I can at least get an idea
2617 what is needed without having to read the source code.&lt;/p&gt;
2618
2619 &lt;p&gt;In the DHCP server configuration, the LDAP base to use and the
2620 search filter to use to locate the correct dhcpServer entity is
2621 stored. These are the relevant entries from
2622 /etc/dhcp3/dhcpd.conf:&lt;/p&gt;
2623
2624 &lt;blockquote&gt;&lt;pre&gt;
2625 ldap-base-dn &quot;dc=skole,dc=skolelinux,dc=no&quot;;
2626 ldap-dhcp-server-cn &quot;dhcp&quot;;
2627 &lt;/pre&gt;&lt;/blockquote&gt;
2628
2629 &lt;p&gt;The DHCP server uses this information to nest all the DHCP
2630 configuration it need. The cn &quot;dhcp&quot; is located using the given LDAP
2631 base and the filter &quot;(&amp;(objectClass=dhcpServer)(cn=dhcp))&quot;. The
2632 search result is this entry:&lt;/p&gt;
2633
2634 &lt;blockquote&gt;&lt;pre&gt;
2635 dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
2636 cn: dhcp
2637 objectClass: top
2638 objectClass: dhcpServer
2639 dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
2640 &lt;/pre&gt;&lt;/blockquote&gt;
2641
2642 &lt;p&gt;The content of the dhcpServiceDN attribute is next used to locate the
2643 subtree with DHCP configuration. The DHCP configuration subtree base
2644 is located using a base scope search with base &quot;cn=DHCP
2645 Config,dc=skole,dc=skolelinux,dc=no&quot; and filter
2646 &quot;(&amp;(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))&quot;.
2647 The search result is this entry:&lt;/p&gt;
2648
2649 &lt;blockquote&gt;&lt;pre&gt;
2650 dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
2651 cn: DHCP Config
2652 objectClass: top
2653 objectClass: dhcpService
2654 objectClass: dhcpOptions
2655 dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
2656 dhcpStatements: ddns-update-style none
2657 dhcpStatements: authoritative
2658 dhcpOption: smtp-server code 69 = array of ip-address
2659 dhcpOption: www-server code 72 = array of ip-address
2660 dhcpOption: wpad-url code 252 = text
2661 &lt;/pre&gt;&lt;/blockquote&gt;
2662
2663 &lt;p&gt;Next, the entire subtree is processed, one level at the time. When
2664 all the DHCP configuration is loaded, it is ready to receive requests.
2665 The subtree in Debian Edu contain objects with object classes
2666 top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions,
2667 top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options
2668 and information about netmasks, dynamic range etc. Leaving out the
2669 details here because it is not relevant for the focus of my
2670 investigation, which is to see if it is possible to merge dns and dhcp
2671 related computer objects.&lt;/p&gt;
2672
2673 &lt;p&gt;When a DHCP request come in, LDAP is searched for the MAC address
2674 of the client (00:00:00:00:00:00 in this example), using a subtree
2675 scoped search with &quot;cn=DHCP Config,dc=skole,dc=skolelinux,dc=no&quot; as
2676 the base and &quot;(&amp;(objectClass=dhcpHost)(dhcpHWAddress=ethernet
2677 00:00:00:00:00:00))&quot; as the filter. This is what a host object look
2678 like:&lt;/p&gt;
2679
2680 &lt;blockquote&gt;&lt;pre&gt;
2681 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
2682 cn: hostname
2683 objectClass: top
2684 objectClass: dhcpHost
2685 dhcpHWAddress: ethernet 00:00:00:00:00:00
2686 dhcpStatements: fixed-address hostname
2687 &lt;/pre&gt;&lt;/blockquote&gt;
2688
2689 &lt;p&gt;There is less flexiblity in the way LDAP searches are done here.
2690 The object classes need to have fixed names, and the configuration
2691 need to be stored in a fairly specific LDAP structure. On the
2692 positive side, the invidiual dhcpHost entires can be anywhere without
2693 the DN pointed to by the dhcpServer entries. The latter should make
2694 it possible to group all host entries in a subtree next to the
2695 configuration entries, and this subtree can also be shared with the
2696 DNS server if the schema proposed above is combined with the dhcpHost
2697 structural object class.
2698
2699 &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
2700
2701 &lt;p&gt;The PowerDNS implementation seem to be very flexible when it come
2702 to which LDAP schemas to use. While its &quot;tree&quot; mode is rigid when it
2703 come to the the LDAP structure, the &quot;strict&quot; mode is very flexible,
2704 allowing DNS objects to be stored anywhere under the base cn specified
2705 in the configuration.&lt;/p&gt;
2706
2707 &lt;p&gt;The DHCP implementation on the other hand is very inflexible, both
2708 regarding which LDAP schemas to use and which LDAP structure to use.
2709 I guess one could implement ones own schema, as long as the
2710 objectclasses and attributes have the names used, but this do not
2711 really help when the DHCP subtree need to have a fairly fixed
2712 structure.&lt;/p&gt;
2713
2714 &lt;p&gt;Based on the observed behaviour, I suspect a LDAP structure like
2715 this might work for Debian Edu:&lt;/p&gt;
2716
2717 &lt;blockquote&gt;&lt;pre&gt;
2718 ou=services
2719 cn=machine-info (dhcpService) - dhcpServiceDN points here
2720 cn=dhcp (dhcpServer)
2721 cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
2722 cn=10.0.2.0 (dhcpSubnet)
2723 cn=group1 (dhcpGroup/dhcpOptions)
2724 cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
2725 cn=192.168.0.0 (dhcpSubnet)
2726 cn=group1 (dhcpGroup/dhcpOptions)
2727 ou=machines - PowerDNS base points here
2728 cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
2729 &lt;/pre&gt;&lt;/blockquote&gt;
2730
2731 &lt;P&gt;This is not tested yet. If the DHCP server require the dhcpHost
2732 entries to be in the dhcpGroup subtrees, the entries can be stored
2733 there instead of a common machines subtree, and the PowerDNS base
2734 would have to be moved one level up to the machine-info subtree.&lt;/p&gt;
2735
2736 &lt;p&gt;The combined object under the machines subtree would look something
2737 like this:&lt;/p&gt;
2738
2739 &lt;blockquote&gt;&lt;pre&gt;
2740 dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
2741 dc: hostname
2742 objectClass: top
2743 objectClass: dhcpHost
2744 objectclass: domainrelatedobject
2745 objectclass: dnsDomainAux
2746 associateddomain: hostname.intern
2747 arecord: 10.11.12.13
2748 dhcpHWAddress: ethernet 00:00:00:00:00:00
2749 dhcpStatements: fixed-address hostname.intern
2750 &lt;/pre&gt;&lt;/blockquote&gt;
2751
2752 &lt;/p&gt;One could even add the LTSP configuration associated with a given
2753 machine, as long as the required attributes are available in a
2754 auxiliary object class.&lt;/p&gt;
2755 </description>
2756 </item>
2757
2758 <item>
2759 <title>OpenStreetmap one step closer to having routing on its front page</title>
2760 <link>http://people.skolelinux.org/pere/blog/OpenStreetmap_one_step_closer_to_having_routing_on_its_front_page.html</link>
2761 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/OpenStreetmap_one_step_closer_to_having_routing_on_its_front_page.html</guid>
2762 <pubDate>Sun, 18 Jul 2010 16:45:00 +0200</pubDate>
2763 <description>&lt;p&gt;Thanks to
2764 &lt;a href=&quot;http://feedproxy.google.com/~r/Opengeodata/~3/wUTCzDZk3lc/project-of-the-week-which-way-home&quot;&gt;todays
2765 opengeodata blog entry&lt;/a&gt;, I just discovered that the
2766 OpenStreetmap.org site have gotten
2767 &lt;a href=&quot;http://nroets.dev.openstreetmap.org/demo/index.html?layers=B000FTFTT&quot;&gt;support
2768 for calculating routes&lt;/a&gt;. The support is still experimental and
2769 only available from the development server, until more experience is
2770 gathered on the user interface and any scalability issues.&lt;/p&gt;
2771
2772 &lt;p&gt;Earlier, the routing I knew about using the OpenStreetmap.org data
2773 was provided by &lt;a href=&quot;http://maps.cloudmade.com/&quot;&gt;Cloudmade&lt;/a&gt;,
2774 but having it on the main page is required to make everyone aware of
2775 the issue. I&#39;ve had people reject Openstreetmap.org as a viable
2776 alternative for them because the front page lacked routing support,
2777 and I hope their needs will be catered for when routing show up on the
2778 www.openstreetmap.org front page.&lt;/p&gt;
2779 </description>
2780 </item>
2781
2782 <item>
2783 <title>One step closer to single signon in Debian Edu</title>
2784 <link>http://people.skolelinux.org/pere/blog/One_step_closer_to_single_signon_in_Debian_Edu.html</link>
2785 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/One_step_closer_to_single_signon_in_Debian_Edu.html</guid>
2786 <pubDate>Sun, 25 Jul 2010 10:00:00 +0200</pubDate>
2787 <description>&lt;p&gt;The last few months me and the other Debian Edu developers have
2788 been working hard to get the Debian/Squeeze based version of Debian
2789 Edu/Skolelinux into shape. This future version will use Kerberos for
2790 authentication, and services are slowly migrated to single signon,
2791 getting rid of password questions one at the time.&lt;/p&gt;
2792
2793 &lt;p&gt;It will also feature a roaming workstation profile with local home
2794 directory, for laptops that are only some times on the Skolelinux
2795 network, and for this profile a shortcut is created in Gnome and KDE
2796 to gain access to the users home directory on the file server. This
2797 shortcut uses SMB at the moment, and yesterday I had time to test if
2798 SMB mounting had started working in KDE after we added the cifs-utils
2799 package. I was pleasantly surprised how well it worked.&lt;/p&gt;
2800
2801 &lt;p&gt;Thanks to the recent changes to our samba configuration to get it
2802 to use Kerberos for authentication, there were no question about user
2803 password when mounting the SMB volume. A simple click on the shortcut
2804 in the KDE menu, and a window with the home directory popped
2805 up. :)&lt;/p&gt;
2806
2807 &lt;p&gt;One step closer to a single signon solution out of the box in
2808 Debian Edu. We already had PAM, LDAP, IMAP and SMTP in place, and now
2809 also Samba. Next step is Cups and hopefully also NFS.&lt;/p&gt;
2810
2811 &lt;p&gt;We had planned a alpha0 release of Debian Edu for today, but thanks
2812 to the autobuilder administrators for some architectures being slow to
2813 sign packages, we are still missing the fixed LTSP package we need for
2814 the release. It was uploaded three days ago with urgency=high, and if
2815 it had entered testing yesterday we would have been able to test it in
2816 time for a alpha0 release today. As the binaries for ia64 and powerpc
2817 still not uploaded to the Debian archive, we need to delay the alpha
2818 release another day.&lt;/p&gt;
2819
2820 &lt;p&gt;If you want to help out with implementing Kerberos for Debian Edu,
2821 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
2822 </description>
2823 </item>
2824
2825 <item>
2826 <title>First Debian Edu test release (alpha0) based on Squeeze is released</title>
2827 <link>http://people.skolelinux.org/pere/blog/First_Debian_Edu_test_release__alpha0__based_on_Squeeze_is_released.html</link>
2828 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_Debian_Edu_test_release__alpha0__based_on_Squeeze_is_released.html</guid>
2829 <pubDate>Tue, 27 Jul 2010 17:45:00 +0200</pubDate>
2830 <description>&lt;p&gt;I just posted this announcement culminating several months of work
2831 with the next Debian Edu release. Not nearly done, but one major step
2832 completed.&lt;/p&gt;
2833
2834 &lt;blockquote&gt;
2835 &lt;p&gt;This is the first test release based on Squeeze. The focus of this
2836 release is to test the user application selection. To have a look,
2837 install the standalone profile and let the developers know if the set
2838 of installed packages i.e. applications should be modified. If some
2839 user application is missing, or if there are some applications that no
2840 longer make sense to be included in Debian Edu, please let us know.
2841 Also, if a useful application is missing the translation for your
2842 language of choice, please let us know too.&lt;/p&gt;
2843
2844 &lt;p&gt;In addition, feedback and help to polish the desktop (menus,
2845 artwork, starters, etc.) is appreciated. We would like to ship a nice
2846 and handy KDE4 desktop targeted for schools out of the box.&lt;/p&gt;
2847
2848 &lt;p&gt;The other profiles should be installable, but there is a lot more
2849 work left to be done before they are ready, so do not expect to
2850 much.&lt;/p&gt;
2851
2852 &lt;p&gt;Changes compared to the lenny based version&lt;/p&gt;
2853
2854 &lt;ul&gt;
2855 &lt;li&gt;Everything from Debian Squeeze
2856 &lt;ul&gt;
2857 &lt;li&gt;Desktop environment KDE 4.4 =&gt; the new KDE desktop in
2858 combination with some new artwork
2859 &lt;li&gt;Web browser Iceweasel 3.5
2860 &lt;li&gt;OpenOffice.org 3.2
2861 &lt;li&gt;Educational toolbox GCompris 9.3
2862 &lt;li&gt;Music creator Rosegarden 10.04.2
2863 &lt;li&gt;Image editor Gimp 2.6.10
2864 &lt;li&gt;Virtual universe Celestia 1.6.0
2865 &lt;li&gt;Virtual stargazer Stellarium 0.10.4
2866 &lt;li&gt;3D modeler Blender 2.49.2 (new application)
2867 &lt;li&gt;Video editor Kdenlive 0.7.7 (new application)
2868 &lt;/ul&gt;&lt;/li&gt;
2869 &lt;li&gt;Now using Kerberos for password checking (migration not finished).
2870 Enabled for:
2871 &lt;ul&gt;
2872 &lt;li&gt;PAM
2873 &lt;li&gt;LDAP
2874 &lt;li&gt;IMAP
2875 &lt;li&gt;SMTP (sender verification)
2876 &lt;/ul&gt;
2877 &lt;/li&gt;
2878 &lt;li&gt;New experimental roaming workstation profile for laptops.&lt;/li&gt;
2879 &lt;li&gt;Show welcome page to users when they first log in. The URL is
2880 fetched from LDAP.&lt;/li&gt;
2881 &lt;li&gt;New LXDE desktop option, in addition to KDE (default) and Gnome.&lt;/li&gt;
2882 &lt;li&gt;General cleanup (not finished)&lt;/li&gt;
2883 &lt;/ul&gt;
2884 &lt;p&gt;The following features are not working as they should&lt;/p&gt;
2885
2886 &lt;ul&gt;
2887 &lt;li&gt;No web based administration tool for creating users and groups. The
2888 scripts ldap-createuser-krb and ldap-add-user-to-group can be used
2889 for testing.&lt;/li&gt;
2890 &lt;li&gt;DVD installs are missing debian-installer images for the PXE boot,
2891 and do not set up the PXE menu on eth0 because of this. LTSP
2892 clients should still boot from eth1 on thin client servers.&lt;/li&gt;
2893 &lt;li&gt;The restructured KDE menu is not implemented.&lt;/li&gt;
2894 &lt;li&gt;The LDAP server setup need to be reviewed for security.&lt;/li&gt;
2895 &lt;li&gt;The LDAP directory structure need to be reworked.&lt;/li&gt;
2896 &lt;li&gt;Different sets of packages are installed when using the DVD and the
2897 netinst CD. More packages are installed using the netinst CD.&lt;/li&gt;
2898 &lt;li&gt;The jackd package fail to install. This is believed to be caused by
2899 some ongoing transition, and hopefully should be solved soon. The
2900 jackd1 package can be installed manually for those that need it.&lt;/li&gt;
2901 &lt;li&gt;Some packages lack translations. See
2902 http://wiki.debian.org/DebianEdu/Status/Squeeze for updated status,
2903 and help out with translations.&lt;/li&gt;
2904 &lt;/ul&gt;
2905
2906 &lt;p&gt;To download this multiarch netinstall release you can use&lt;/p&gt;
2907
2908 &lt;ul&gt;
2909 &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;
2910 &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;
2911 &lt;li&gt;rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-CD.iso&lt;/li&gt;
2912 &lt;/ul&gt;
2913 &lt;p&gt;To download this multiarch dvd release you can use&lt;/p&gt;
2914
2915 &lt;ul&gt;
2916 &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;
2917 &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;
2918 &lt;li&gt;rsync -avzP ftp.skolelinux.org::skolelinux-cd/squeeze-alpha/debian-edu-6.0.0+edua0-DVD.iso&lt;/li&gt;
2919 &lt;/ul&gt;
2920
2921 &lt;p&gt;There is no source DVD available yet. It will be prepared when we
2922 get closer to the final release.&lt;/p&gt;
2923
2924 &lt;p&gt;The MD5SUM of these images are&lt;/p&gt;
2925
2926 &lt;ul&gt;
2927 &lt;li&gt;3dbf45d59f42a53518b6e3c9ec3b5eb6 debian-edu-6.0.0+edua0-CD.iso&lt;/li&gt;
2928 &lt;li&gt;22f2cbfce281d1c6e478be452638675d debian-edu-6.0.0+edua0-DVD.iso&lt;/li&gt;
2929 &lt;/ul&gt;
2930
2931 &lt;p&gt;The SHA1SUM of these images are&lt;/p&gt;
2932 &lt;ul&gt;
2933 &lt;li&gt;c53d1b69b40cf37cd27aefaf33f6f6a3821bedf0 debian-edu-6.0.0+edua0-CD.iso&lt;/li&gt;
2934 &lt;li&gt;2ec29d7db676d59d32197b05c277ffe16348376c debian-edu-6.0.0+edua0-DVD.iso&lt;/li&gt;
2935 &lt;/ul&gt;
2936 &lt;p&gt;How to report bugs:
2937 http://wiki.debian.org/DebianEdu/HowTo/ReportBugsInBugzilla&lt;/p&gt;
2938
2939 &lt;p&gt;Please direct replies to debian-edu@lists.debian.org&lt;/p&gt;
2940 &lt;/blockquote&gt;
2941 </description>
2942 </item>
2943
2944 <item>
2945 <title>Circular package dependencies harms apt recovery</title>
2946 <link>http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</link>
2947 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</guid>
2948 <pubDate>Tue, 27 Jul 2010 23:50:00 +0200</pubDate>
2949 <description>&lt;p&gt;I discovered this while doing
2950 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html&quot;&gt;automated
2951 testing of upgrades from Debian Lenny to Squeeze&lt;/a&gt;. A few packages
2952 in Debian still got circular dependencies, and it is often claimed
2953 that apt and aptitude should be able to handle this just fine, but
2954 some times these dependency loops causes apt to fail.&lt;/p&gt;
2955
2956 &lt;p&gt;An example is from todays
2957 &lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt&quot;&gt;upgrade
2958 of KDE using aptitude&lt;/a&gt;. In it, a bug in kdebase-workspace-data
2959 causes perl-modules to fail to upgrade. The cause is simple. If a
2960 package fail to unpack, then only part of packages with the circular
2961 dependency might end up being unpacked when unpacking aborts, and the
2962 ones already unpacked will fail to configure in the recovery phase
2963 because its dependencies are unavailable.&lt;/p&gt;
2964
2965 &lt;p&gt;In this log, the problem manifest itself with this error:&lt;/p&gt;
2966
2967 &lt;blockquote&gt;&lt;pre&gt;
2968 dpkg: dependency problems prevent configuration of perl-modules:
2969 perl-modules depends on perl (&gt;= 5.10.1-1); however:
2970 Version of perl on system is 5.10.0-19lenny2.
2971 dpkg: error processing perl-modules (--configure):
2972 dependency problems - leaving unconfigured
2973 &lt;/pre&gt;&lt;/blockquote&gt;
2974
2975 &lt;p&gt;The perl/perl-modules circular dependency is already
2976 &lt;a href=&quot;http://bugs.debian.org/527917&quot;&gt;reported as a bug&lt;/a&gt;, and will
2977 hopefully be solved as soon as possible, but it is not the only one,
2978 and each one of these loops in the dependency tree can cause similar
2979 failures. Of course, they only occur when there are bugs in other
2980 packages causing the unpacking to fail, but it is rather nasty when
2981 the failure of one package causes the problem to become worse because
2982 of dependency loops.&lt;/p&gt;
2983
2984 &lt;p&gt;Thanks to
2985 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/06/msg00116.html&quot;&gt;the
2986 tireless effort by Bill Allombert&lt;/a&gt;, the number of circular
2987 dependencies
2988 &lt;a href=&quot;http://debian.semistable.com/debgraph.out.html&quot;&gt;left in Debian
2989 is dropping&lt;/a&gt;, and perhaps it will reach zero one day. :)&lt;/p&gt;
2990
2991 &lt;p&gt;Todays testing also exposed a bug in
2992 &lt;a href=&quot;http://bugs.debian.org/590605&quot;&gt;update-notifier&lt;/a&gt; and
2993 &lt;a href=&quot;http://bugs.debian.org/590604&quot;&gt;different behaviour&lt;/a&gt; between
2994 apt-get and aptitude, the latter possibly caused by some circular
2995 dependency. Reported both to BTS to try to get someone to look at
2996 it.&lt;/p&gt;
2997 </description>
2998 </item>
2999
3000 <item>
3001 <title>Debian Edu roaming workstation - at the university of Oslo</title>
3002 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html</link>
3003 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html</guid>
3004 <pubDate>Tue, 3 Aug 2010 23:30:00 +0200</pubDate>
3005 <description>&lt;p&gt;The new roaming workstation profile in Debian Edu/Squeeze is fairly
3006 similar to the laptop setup am I working on using Ubuntu for the
3007 University of Oslo, and just for the heck of it, I tested today how
3008 hard it would be to integrate that profile into the university
3009 infrastructure. In this case, it is the university LDAP server,
3010 Active Directory Kerberos server and SMB mounting from the Netapp file
3011 servers.&lt;/p&gt;
3012
3013 &lt;p&gt;I was pleasantly surprised that the only three files needed to be
3014 changed (/etc/sssd/sssd.conf, /etc/ldap.conf and
3015 /etc/mklocaluser.d/20-debian-edu-config) and one file had to be added
3016 (/usr/share/perl5/Debian/Edu_Local.pm), to get the client working.
3017 Most of the changes were to get the client to use the university LDAP
3018 for NSS and Kerberos server for PAM, but one was to change a hard
3019 coded DNS domain name in the mklocaluser hook from .intern to
3020 .uio.no.&lt;/p&gt;
3021
3022 &lt;p&gt;This testing was so encouraging, that I went ahead and adjusted the
3023 Debian Edu scripts and setup in subversion to centralise the roaming
3024 workstation setup a bit more and avoid the hardcoded DNS domain name,
3025 so that when I test this tomorrow, I expect to get away with modifying
3026 only /etc/sssd/sssd.conf and /etc/ldap.conf to get it to use the
3027 university servers.&lt;/p&gt;
3028
3029 &lt;p&gt;My goal is to get the clients to have no hardcoded settings and
3030 fetch all their initial setup during installation and first boot, to
3031 allow them to be inserted also into environments where the default
3032 setup in Debian Edu has been changed or as with the university, where
3033 the environment is different but provides the protocols Debian Edu
3034 uses.&lt;/p&gt;
3035 </description>
3036 </item>
3037
3038 <item>
3039 <title>Autodetecting Client setup for roaming workstations in Debian Edu</title>
3040 <link>http://people.skolelinux.org/pere/blog/Autodetecting_Client_setup_for_roaming_workstations_in_Debian_Edu.html</link>
3041 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Autodetecting_Client_setup_for_roaming_workstations_in_Debian_Edu.html</guid>
3042 <pubDate>Sat, 7 Aug 2010 14:45:00 +0200</pubDate>
3043 <description>&lt;p&gt;A few days ago, I
3044 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Debian_Edu_roaming_workstation___at_the_university_of_Oslo.html&quot;&gt;tried
3045 to install&lt;/a&gt; a Roaming workation profile from Debian Edu/Squeeze
3046 while on the university network here at the University of Oslo, and
3047 noticed how much had to change to get it operational using the
3048 university infrastructure. It was fairly easy, but it occured to me
3049 that Debian Edu would improve a lot if I could get the client to
3050 connect without any changes at all, and thus let the client configure
3051 itself during installation and first boot to use the infrastructure
3052 around it. Now I am a huge step further along that road.&lt;/p&gt;
3053
3054 &lt;p&gt;With our current squeeze-test packages, I can select the roaming
3055 workstation profile and get a working laptop connecting to the
3056 university LDAP server for user and group and our active directory
3057 servers for Kerberos authentication. All this without any
3058 configuration at all during installation. My users home directory got
3059 a bookmark in the KDE menu to mount it via SMB, with the correct URL.
3060 In short, openldap and sssd is correctly configured. In addition to
3061 this, the client look for http://wpad/wpad.dat to configure a web
3062 proxy, and when it fail to find it no proxy settings are stored in
3063 /etc/environment and /etc/apt/apt.conf. Iceweasel and KDE is
3064 configured to look for the same wpad configuration and also do not use
3065 a proxy when at the university network. If the machine is moved to a
3066 network with such wpad setup, it would automatically use it when DHCP
3067 gave it a IP address.&lt;/p&gt;
3068
3069 &lt;p&gt;The LDAP server is located using DNS, by first looking for the DNS
3070 entry ldap.$domain. If this do not exist, it look for the
3071 _ldap._tcp.$domain SRV records and use the first one as the LDAP
3072 server. Next, it connects to the LDAP server and search all
3073 namingContexts entries for posixAccount or posixGroup objects, and
3074 pick the first one as the LDAP base. For Kerberos, a similar
3075 algorithm is used to locate the LDAP server, and the realm is the
3076 uppercase version of $domain.&lt;/p&gt;
3077
3078 &lt;p&gt;So, what is not working, you might ask. SMB mounting my home
3079 directory do not work. No idea why, but suspected the incorrect
3080 Kerberos settings in /etc/krb5.conf and /etc/samba/smb.conf might be
3081 the cause. These are not properly configured during installation, and
3082 had to be hand-edited to get the correct Kerberos realm and server,
3083 but SMB mounting still do not work. :(&lt;/p&gt;
3084
3085 &lt;p&gt;With this automatic configuration in place, I expect a Debian Edu
3086 roaming profile installation would be able to automatically detect and
3087 connect to any site using LDAP and Kerberos for NSS directory and PAM
3088 authentication. It should also work out of the box in a Active
3089 Directory environment providing posixAccount and posixGroup objects
3090 with UID and GID values.&lt;/p&gt;
3091
3092 &lt;p&gt;If you want to help out with implementing these things for Debian
3093 Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
3094 </description>
3095 </item>
3096
3097 <item>
3098 <title>Testing if a file system can be used for home directories...</title>
3099 <link>http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html</link>
3100 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html</guid>
3101 <pubDate>Sun, 8 Aug 2010 21:20:00 +0200</pubDate>
3102 <description>&lt;p&gt;A few years ago, I was involved in a project planning to use
3103 Windows file servers as home directory servers for Debian
3104 Edu/Skolelinux machines. This was thought to be no problem, as the
3105 access would be through the SMB network file system protocol, and we
3106 knew other sites used SMB with unix and samba as the file server to
3107 mount home directories without any problems. But, after months of
3108 struggling, we had to conclude that our goal was impossible.&lt;/p&gt;
3109
3110 &lt;p&gt;The reason is simply that while SMB can be used for home
3111 directories when the file server is Samba running on Unix, this only
3112 work because of Samba have some extensions and the fact that the
3113 underlying file system is a unix file system. When using a Windows
3114 file server, the underlying file system do not have POSIX semantics,
3115 and several programs will fail if the users home directory where they
3116 want to store their configuration lack POSIX semantics.&lt;/p&gt;
3117
3118 &lt;p&gt;As part of this work, I wrote a small C program I want to share
3119 with you all, to replicate a few of the problematic applications (like
3120 OpenOffice.org and GCompris) and see if the file system was working as
3121 it should. If you find yourself in spooky file system land, it might
3122 help you find your way out again. This is the fs-test.c source:&lt;/p&gt;
3123
3124 &lt;pre&gt;
3125 /*
3126 * Some tests to check the file system sematics. Used to verify that
3127 * CIFS from a windows server do not work properly as a linux home
3128 * directory.
3129 * License: GPL v2 or later
3130 *
3131 * needs libsqlite3-dev and build-essential installed
3132 * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
3133 */
3134
3135 #define _FILE_OFFSET_BITS 64
3136 #define _LARGEFILE_SOURCE 1
3137 #define _LARGEFILE64_SOURCE 1
3138
3139 #define _GNU_SOURCE /* for asprintf() */
3140
3141 #include &amp;lt;errno.h&gt;
3142 #include &amp;lt;fcntl.h&gt;
3143 #include &amp;lt;stdio.h&gt;
3144 #include &amp;lt;string.h&gt;
3145 #include &amp;lt;stdlib.h&gt;
3146 #include &amp;lt;sys/file.h&gt;
3147 #include &amp;lt;sys/stat.h&gt;
3148 #include &amp;lt;sys/types.h&gt;
3149 #include &amp;lt;unistd.h&gt;
3150
3151 #ifdef TEST_SQLITE
3152 /*
3153 * Test sqlite open, as done by gcompris require the libsqlite3-dev
3154 * package and linking with -lsqlite3. A more low level test is
3155 * below.
3156 * See also &amp;lt;URL: http://www.sqlite.org./faq.html#q5 &gt;.
3157 */
3158 #include &amp;lt;sqlite3.h&gt;
3159 #define CREATE_TABLE_USERS \
3160 &quot;CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); &quot;
3161 int test_sqlite_open(void) {
3162 char *zErrMsg;
3163 char *name = &quot;testsqlite.db&quot;;
3164 sqlite3 *db=NULL;
3165 unlink(name);
3166 int rc = sqlite3_open(name, &amp;db);
3167 if( rc ){
3168 printf(&quot;error: sqlite open of %s failed: %s\n&quot;, name, sqlite3_errmsg(db));
3169 sqlite3_close(db);
3170 return -1;
3171 }
3172
3173 /* create tables */
3174 rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL, 0, &amp;zErrMsg);
3175 if( rc != SQLITE_OK ){
3176 printf(&quot;error: sqlite table create failed: %s\n&quot;, zErrMsg);
3177 sqlite3_close(db);
3178 return -1;
3179 }
3180 printf(&quot;info: sqlite worked\n&quot;);
3181 sqlite3_close(db);
3182 return 0;
3183 }
3184 #endif /* TEST_SQLITE */
3185
3186 /*
3187 * Demonstrate locking issue found in gcompris using sqlite3. This
3188 * work with ext3, but not with cifs server on Windows 2003. This is
3189 * done in the sqlite3 library.
3190 * See also
3191 * &amp;lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html&gt; and the
3192 * POSIX specification
3193 * &amp;lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html&gt;.
3194 */
3195 int test_gcompris_locking(void) {
3196 struct flock fl;
3197 char *name = &quot;testsqlite.db&quot;;
3198 unlink(name);
3199 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
3200 printf(&quot;info: testing fcntl locking\n&quot;);
3201
3202 fl.l_whence = SEEK_SET;
3203 fl.l_pid = getpid();
3204 printf(&quot; Read-locking 1 byte from 1073741824&quot;);
3205 fl.l_start = 1073741824;
3206 fl.l_len = 1;
3207 fl.l_type = F_RDLCK;
3208 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
3209
3210 printf(&quot; Read-locking 510 byte from 1073741826&quot;);
3211 fl.l_start = 1073741826;
3212 fl.l_len = 510;
3213 fl.l_type = F_RDLCK;
3214 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
3215
3216 printf(&quot; Unlocking 1 byte from 1073741824&quot;);
3217 fl.l_start = 1073741824;
3218 fl.l_len = 1;
3219 fl.l_type = F_UNLCK;
3220 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
3221
3222 printf(&quot; Write-locking 1 byte from 1073741824&quot;);
3223 fl.l_start = 1073741824;
3224 fl.l_len = 1;
3225 fl.l_type = F_WRLCK;
3226 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
3227
3228 printf(&quot; Write-locking 510 byte from 1073741826&quot;);
3229 fl.l_start = 1073741826;
3230 fl.l_len = 510;
3231 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
3232
3233 printf(&quot; Unlocking 2 byte from 1073741824&quot;);
3234 fl.l_start = 1073741824;
3235 fl.l_len = 2;
3236 fl.l_type = F_UNLCK;
3237 if (0 != fcntl(fd, F_SETLK, &amp;fl) ) printf(&quot; - error!\n&quot;); else printf(&quot;\n&quot;);
3238
3239 close(fd);
3240 return 0;
3241 }
3242
3243 /*
3244 * Test if permissions of freshly created directories allow entries
3245 * below them. This was a problem with OpenOffice.org and gcompris.
3246 * Mounting with option &#39;sync&#39; seem to solve this problem while
3247 * slowing down file operations.
3248 */
3249 int test_subdirectory_creation(void) {
3250 #define LEVELS 5
3251 char *path = strdup(&quot;test&quot;);
3252 char *dirs[LEVELS];
3253 int level;
3254 printf(&quot;info: testing subdirectory creation\n&quot;);
3255 for (level = 0; level &amp;lt; LEVELS; level++) {
3256 char *newpath = NULL;
3257 if (-1 == mkdir(path, 0777)) {
3258 printf(&quot; error: Unable to create directory &#39;%s&#39;: %s\n&quot;,
3259 path, strerror(errno));
3260 break;
3261 }
3262 asprintf(&amp;newpath, &quot;%s/%s&quot;, path, &quot;test&quot;);
3263 free(path);
3264 path = newpath;
3265 }
3266 return 0;
3267 }
3268
3269 /*
3270 * Test if symlinks can be created. This was a problem detected with
3271 * KDE.
3272 */
3273 int test_symlinks(void) {
3274 printf(&quot;info: testing symlink creation\n&quot;);
3275 unlink(&quot;symlink&quot;);
3276 if (-1 == symlink(&quot;file&quot;, &quot;symlink&quot;))
3277 printf(&quot; error: Unable to create symlink\n&quot;);
3278 return 0;
3279 }
3280
3281 int main(int argc, char **argv) {
3282 printf(&quot;Testing POSIX/Unix sematics on file system\n&quot;);
3283 test_symlinks();
3284 test_subdirectory_creation();
3285 #ifdef TEST_SQLITE
3286 test_sqlite_open();
3287 #endif /* TEST_SQLITE */
3288 test_gcompris_locking();
3289 return 0;
3290 }
3291 &lt;/pre&gt;
3292
3293 &lt;p&gt;When everything is working, it should print something like
3294 this:&lt;/p&gt;
3295
3296 &lt;pre&gt;
3297 Testing POSIX/Unix sematics on file system
3298 info: testing symlink creation
3299 info: testing subdirectory creation
3300 info: sqlite worked
3301 info: testing fcntl locking
3302 Read-locking 1 byte from 1073741824
3303 Read-locking 510 byte from 1073741826
3304 Unlocking 1 byte from 1073741824
3305 Write-locking 1 byte from 1073741824
3306 Write-locking 510 byte from 1073741826
3307 Unlocking 2 byte from 1073741824
3308 &lt;/pre&gt;
3309
3310 &lt;p&gt;I do not remember the exact details of the problems we saw, but one
3311 of them was with locking, where if I remember correctly, POSIX allow a
3312 read-only lock to be upgraded to a read-write lock without unlocking
3313 the read-only lock (while Windows do not). Another was a bug in the
3314 CIFS/SMB client implementation in the Linux kernel where directory
3315 meta information would be wrong for a fraction of a second, making
3316 OpenOffice.org fail to create its deep directory tree because it was
3317 not allowed to create files in its freshly created directory.&lt;/p&gt;
3318
3319 &lt;p&gt;Anyway, here is a nice tool for your tool box, might you never need
3320 it. :)&lt;/p&gt;
3321
3322 &lt;p&gt;Update 2010-08-27: Michael Gebetsroither report that he found the
3323 script so useful that he created a GIT repository and stored it in
3324 &lt;a href=&quot;http://github.com/gebi/fs-test&quot;&gt;http://github.com/gebi/fs-test&lt;/a&gt;.&lt;/p&gt;
3325 </description>
3326 </item>
3327
3328 <item>
3329 <title>No hardcoded config on Debian Edu clients</title>
3330 <link>http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html</link>
3331 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html</guid>
3332 <pubDate>Mon, 9 Aug 2010 20:15:00 +0200</pubDate>
3333 <description>&lt;p&gt;As reported earlier, the last few days I have looked at how Debian
3334 Edu clients are configured, and tried to get rid of all hardcoded
3335 configuration settings on the clients. I believe the work to be
3336 mostly done, and the clients seem to work just fine with dynamically
3337 generated configuration.&lt;/p&gt;
3338
3339 &lt;p&gt;What is the point, you might ask? The point is to allow a Debian
3340 Edu desktop to integrate into an existing network infrastructure
3341 without any manual configuration.&lt;/p&gt;
3342
3343 &lt;p&gt;This is what happens when installing a Debian Edu client here at
3344 the University of Oslo using PXE. With the PXE installation, I am
3345 asked for language (Norwegian Bokmål), locality (Norway) and keyboard
3346 layout (no-latin1), Debian Edu profile (Roaming Workstation), if I
3347 accept to reformat the hard drive (yes), if I want to submit info to
3348 popcon.debian.org (no) and root password (secret). After answering
3349 these questions, the installer goes ahead and does its thing, and
3350 after around 50 minutes it is done. I press enter to finish the
3351 installation, and the machine reboots into KDE. When the machine is
3352 ready and kdm asks for login information, I enter my university
3353 username and password, am told by kdm that a local home directory has
3354 been created and that I must log in again, and finally log in with the
3355 same username and password to the KDE 4.4 desktop. At no point during
3356 this process did it ask for university specific settings, and all the
3357 required configuration was dynamically detected using information
3358 fetched via DHCP and DNS. The roaming workstation is now ready for
3359 use.&lt;/p&gt;
3360
3361 &lt;p&gt;How was this done, you might wonder? First of all, here is the
3362 list of things that need to be configured on the client to get it
3363 working properly out of the box:&lt;/p&gt;
3364
3365 &lt;ul&gt;
3366 &lt;li&gt;IP address/netmask and DNS server.&lt;/li&gt;
3367 &lt;li&gt;Web proxy URL.&lt;/li&gt;
3368 &lt;li&gt;LDAP server for NSS directory information (user, group, etc).&lt;/li&gt;
3369 &lt;li&gt;Kerberos server for PAM password checking.&lt;/li&gt;
3370 &lt;li&gt;SMB mount point to access the network home directory. (*)&lt;/li&gt;
3371 &lt;li&gt;Central syslog server to send syslog messages to. (*)&lt;/li&gt;
3372 &lt;li&gt;Sitesummary collector URL to submit info to central server. (*)&lt;/li&gt;
3373 &lt;/ul&gt;
3374
3375 &lt;p&gt;(Hm, did I forget anything? Let me knew if I did.)&lt;/p&gt;
3376
3377 &lt;p&gt;The points marked (*) are not required to be able to use the
3378 machine, but needed to provide central storage and allowing system
3379 administrators to track their machines. Since yesterday, everything
3380 but the sitesummary collector URL is dynamically discovered at boot
3381 and installation time in the svn version of Debian Edu.&lt;/p&gt;
3382
3383 &lt;p&gt;The IP and DNS setup is fetched during boot using DHCP as usual.
3384 When a DHCP update arrives, the proxy setup is updated by looking for
3385 http://wpat/wpad.dat and using the content of this WPAD file to
3386 configure the http and ftp proxy in /etc/environment and
3387 /etc/apt/apt.conf. I decided to update the proxy setup using a DHCP
3388 hook to ensure that the client stops using the Debian Edu proxy when
3389 it is moved outside the Debian Edu network, and instead uses any local
3390 proxy present on the new network when it moves around.&lt;/p&gt;
3391
3392 &lt;p&gt;The DNS names of the LDAP, Kerberos and syslog server and related
3393 configuration are generated using DNS information at boot. First the
3394 installer looks for a host named ldap in the current DNS domain. If
3395 not found, it looks for _ldap._tcp SRV records in DNS instead. If an
3396 LDAP server is found, its root DSE entry is requested and the
3397 attributes namingContexts and defaultNamingContext are used to
3398 determine which LDAP base to use for NSS. If there are several
3399 namingContexts attibutes and the defaultNamingContext is present, that
3400 LDAP subtree is used as the base. If defaultNamingContext is missing,
3401 the subtrees listed as namingContexts are searched in sequence for any
3402 object with class posixAccount or posixGroup, and the first one with
3403 such an object is used as the LDAP base. For Kerberos, a similar
3404 search is done by first looking for a host named kerberos, and then
3405 for the _kerberos._tcp SRV record. I&#39;ve been unable to find a way to
3406 look up the Kerberos realm, so for this the upper case string of the
3407 current DNS domain is used.&lt;/p&gt;
3408
3409 &lt;p&gt;For the syslog server, the hosts syslog and loghost are searched
3410 for, and the _syslog._udp SRV record is consulted if no such host is
3411 found. This algorithm works for both Debian Edu and the University of
3412 Oslo. A similar strategy would work for locating the sitesummary
3413 server, but have not been implemented yet. I decided to fetch and
3414 save these settings during installation, to make sure moving to a
3415 different network does not change the set of users being allowed to
3416 log in nor the passwords required to log in. Usernames and passwords
3417 will be cached by sssd when the user logs in on the Debian Edu
3418 network, and will not change as the laptop move around. For a
3419 non-roaming machine, there is no caching, but given that it is
3420 supposed to stay in place it should not matter much. Perhaps we
3421 should switch those to use sssd too?&lt;/p&gt;
3422
3423 &lt;p&gt;The user&#39;s SMB mount point for the network home directory is
3424 located when the user logs in for the first time. The LDAP server is
3425 consulted to look for the user&#39;s LDAP object and the sambaHomePath
3426 attribute is used if found. If it isn&#39;t found, the home directory
3427 path fetched from NSS is used instead. Assuming the path is of the
3428 form /site/server/directory/username, the second part is looked up in
3429 DNS and used to generate a SMB URL of the form
3430 smb://server.domain/username. This algorithm works for both Debian
3431 edu and the University of Oslo. Perhaps there are better attributes
3432 to use or a better algorithm that works for more sites, but this will
3433 do for now. :)&lt;/p&gt;
3434
3435 &lt;p&gt;This work should make it easier to integrate the Debian Edu clients
3436 into any LDAP/Kerberos infrastructure, and make the current setup even
3437 more flexible than before. I suspect it will also work for thin
3438 client servers, allowing one to easily set up LTSP and hook it into a
3439 existing network infrastructure, but I have not had time to test this
3440 yet.&lt;/p&gt;
3441
3442 &lt;p&gt;If you want to help out with implementing these things for Debian
3443 Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
3444
3445 &lt;p&gt;Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to
3446 detect Kerberos realm from DNS, by looking for _kerberos TXT entries
3447 before falling back to the upper case DNS domain name. Will have to
3448 implement it for Debian Edu. :)&lt;/p&gt;
3449 </description>
3450 </item>
3451
3452 <item>
3453 <title>Rob Weir: How to Crush Dissent</title>
3454 <link>http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html</link>
3455 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html</guid>
3456 <pubDate>Sun, 15 Aug 2010 22:20:00 +0200</pubDate>
3457 <description>&lt;p&gt;I found the notes from Rob Weir on
3458 &lt;a href=&quot;http://feedproxy.google.com/~r/robweir/antic-atom/~3/VGb23-kta8c/how-to-crush-dissent.html&quot;&gt;how
3459 to crush dissent&lt;/a&gt; matching my own thoughts on the matter quite
3460 well. Highly recommended for those wondering which road our society
3461 should go down. In my view we have been heading the wrong way for a
3462 long time.&lt;/p&gt;
3463 </description>
3464 </item>
3465
3466 <item>
3467 <title>Broken umask handling with sshfs</title>
3468 <link>http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html</link>
3469 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html</guid>
3470 <pubDate>Thu, 26 Aug 2010 13:30:00 +0200</pubDate>
3471 <description>&lt;p&gt;My file system sematics program
3472 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html&quot;&gt;presented
3473 a few days ago&lt;/a&gt; is very useful to verify that a file system can
3474 work as a unix home directory,and today I had to extend it a bit. I&#39;m
3475 looking into alternatives for home directory access here at the
3476 University of Oslo, and one of the options is sshfs. My friend
3477 Finn-Arne mentioned a while back that they had used sshfs with Debian
3478 Edu, but stopped because of problems. I asked today what the problems
3479 where, and he mentioned that sshfs failed to handle umask properly.
3480 Trying to detect the problem I wrote this addition to my fs testing
3481 script:&lt;/p&gt;
3482
3483 &lt;pre&gt;
3484 mode_t touch_get_mode(const char *name, mode_t mode) {
3485 mode_t retval = 0;
3486 int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, mode);
3487 if (-1 != fd) {
3488 unlink(name);
3489 struct stat statbuf;
3490 if (-1 != fstat(fd, &amp;statbuf)) {
3491 retval = statbuf.st_mode &amp; 0x1ff;
3492 }
3493 close(fd);
3494 }
3495 return retval;
3496 }
3497
3498 /* Try to detect problem discovered using sshfs */
3499 int test_umask(void) {
3500 printf(&quot;info: testing umask effect on file creation\n&quot;);
3501
3502 mode_t orig_umask = umask(000);
3503 mode_t newmode;
3504 if (0666 != (newmode = touch_get_mode(&quot;foobar&quot;, 0666))) {
3505 printf(&quot; error: Wrong file mode %o when creating using mode 666 and umask 000\n&quot;,
3506 newmode);
3507 }
3508 umask(007);
3509 if (0660 != (newmode = touch_get_mode(&quot;foobar&quot;, 0666))) {
3510 printf(&quot; error: Wrong file mode %o when creating using mode 666 and umask 007\n&quot;,
3511 newmode);
3512 }
3513
3514 umask (orig_umask);
3515 return 0;
3516 }
3517
3518 int main(int argc, char **argv) {
3519 [...]
3520 test_umask();
3521 return 0;
3522 }
3523 &lt;/pre&gt;
3524
3525 &lt;p&gt;Sure enough. On NFS to a netapp, I get this result:&lt;/p&gt;
3526
3527 &lt;pre&gt;
3528 Testing POSIX/Unix sematics on file system
3529 info: testing symlink creation
3530 info: testing subdirectory creation
3531 info: testing fcntl locking
3532 Read-locking 1 byte from 1073741824
3533 Read-locking 510 byte from 1073741826
3534 Unlocking 1 byte from 1073741824
3535 Write-locking 1 byte from 1073741824
3536 Write-locking 510 byte from 1073741826
3537 Unlocking 2 byte from 1073741824
3538 info: testing umask effect on file creation
3539 &lt;/pre&gt;
3540
3541 &lt;p&gt;When mounting the same directory using sshfs, I get this
3542 result:&lt;/p&gt;
3543
3544 &lt;pre&gt;
3545 Testing POSIX/Unix sematics on file system
3546 info: testing symlink creation
3547 info: testing subdirectory creation
3548 info: testing fcntl locking
3549 Read-locking 1 byte from 1073741824
3550 Read-locking 510 byte from 1073741826
3551 Unlocking 1 byte from 1073741824
3552 Write-locking 1 byte from 1073741824
3553 Write-locking 510 byte from 1073741826
3554 Unlocking 2 byte from 1073741824
3555 info: testing umask effect on file creation
3556 error: Wrong file mode 644 when creating using mode 666 and umask 000
3557 error: Wrong file mode 640 when creating using mode 666 and umask 007
3558 &lt;/pre&gt;
3559
3560 &lt;p&gt;So, I can conclude that sshfs is better than smb to a Netapp or a
3561 Windows server, but not good enough to be used as a home
3562 directory.&lt;/p&gt;
3563
3564 &lt;p&gt;Update 2010-08-26: Reported the issue in
3565 &lt;a href=&quot;http://bugs.debian.org/594498&quot;&gt;BTS report #594498&lt;/a&gt;&lt;/p&gt;
3566
3567 &lt;p&gt;Update 2010-08-27: Michael Gebetsroither report that he found the
3568 script so useful that he created a GIT repository and stored it in
3569 &lt;a href=&quot;http://github.com/gebi/fs-test&quot;&gt;http://github.com/gebi/fs-test&lt;/a&gt;.&lt;/p&gt;
3570 </description>
3571 </item>
3572
3573 <item>
3574 <title>Broken hard link handling with sshfs</title>
3575 <link>http://people.skolelinux.org/pere/blog/Broken_hard_link_handling_with_sshfs.html</link>
3576 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Broken_hard_link_handling_with_sshfs.html</guid>
3577 <pubDate>Mon, 30 Aug 2010 19:30:00 +0200</pubDate>
3578 <description>&lt;p&gt;Just got an email from Tobias Gruetzmacher as a followup on my
3579 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html&quot;&gt;previous
3580 post about sshfs&lt;/a&gt;. He reported another problem with sshfs. It
3581 fail to handle hard links properly. A simple way to spot this is to
3582 look at the . and .. entries in the directory tree. These should have
3583 a link count &gt;1, but on sshfs the count is 1. I just tested to see
3584 what happen when trying to hardlink, and this fail as well:&lt;/p&gt;
3585
3586 &lt;pre&gt;
3587 % ln foo bar
3588 ln: creating hard link `bar&#39; =&gt; `foo&#39;: Function not implemented
3589 %
3590 &lt;/pre&gt;
3591
3592 &lt;p&gt;I have not yet found time to implement a test for this in my file
3593 system test code, but believe having working hard links is useful to
3594 avoid surprised unix programs. Not as useful as working file locking
3595 and symlinks, which are required to get a working desktop, but useful
3596 nevertheless. :)&lt;/p&gt;
3597
3598 &lt;p&gt;The latest version of the file system test code is available via
3599 git from
3600 &lt;a href=&quot;http://github.com/gebi/fs-test&quot;&gt;http://github.com/gebi/fs-test&lt;/a&gt;&lt;/p&gt;
3601 </description>
3602 </item>
3603
3604 <item>
3605 <title>My first perl GUI application - controlling a Spykee robot</title>
3606 <link>http://people.skolelinux.org/pere/blog/My_first_perl_GUI_application___controlling_a_Spykee_robot.html</link>
3607 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/My_first_perl_GUI_application___controlling_a_Spykee_robot.html</guid>
3608 <pubDate>Wed, 1 Sep 2010 21:00:00 +0200</pubDate>
3609 <description>&lt;p&gt;This evening I made my first Perl GUI application. The last few
3610 days I have worked on a Perl module for controlling my recently
3611 aquired Spykee robots, and the module is now getting complete enought
3612 that it is possible to use it to control the robot driving at least.
3613 It was now time to figure out how to use it to create some GUI to
3614 allow me to drive the robot around. I picked PerlQt as I have had
3615 positive experiences with the Qt API before, and spent a few minutes
3616 browsing the web for examples. Using Qt Designer seemed like a short
3617 cut, so I ended up writing the perl GUI using Qt Designer and
3618 compiling it into a perl program using the puic program from
3619 libqt-perl. Nothing fancy yet, but it got buttons to connect and
3620 drive around.&lt;/p&gt;
3621
3622 &lt;p&gt;The perl module I have written provide a object oriented API for
3623 controlling the robot. Here is an small example on how to use it:&lt;/p&gt;
3624
3625 &lt;p&gt;&lt;pre&gt;
3626 use Spykee;
3627 Spykee::discover(sub {$robot{$_[0]} = $_[1]});
3628 my $host = (keys %robot)[0];
3629 my $spykee = Spykee-&gt;new();
3630 $spykee-&gt;contact($host, &quot;admin&quot;, &quot;admin&quot;);
3631 $spykee-&gt;left();
3632 sleep 2;
3633 $spykee-&gt;right();
3634 sleep 2;
3635 $spykee-&gt;forward();
3636 sleep 2;
3637 $spykee-&gt;back();
3638 sleep 2;
3639 $spykee-&gt;stop();
3640 &lt;/pre&gt;&lt;/p&gt;
3641
3642 &lt;p&gt;Thanks to the release of the source of the robot firmware, I could
3643 peek into the implementation at the other end to figure out how to
3644 implement the protocol used by the robot. I&#39;ve implemented several of
3645 the commands the robot understand, but is still missing the camera
3646 support to make it possible to control the robot from remote. First I
3647 want to implement support for uploading new firmware and configuring
3648 the wireless network, to make it possible to bootstrap a Spykee robot
3649 without the producers Windows and MacOSX software (I only have Linux,
3650 so I had to ask a friend to come over to get the robot testing
3651 going. :).&lt;/p&gt;
3652
3653 &lt;p&gt;Will release the source to the public soon, but need to figure out
3654 where to make it available first. I will add a link to
3655 &lt;a href=&quot;http://wiki.nuug.no/grupper/robot/&quot;&gt;the NUUG wiki&lt;/a&gt; for
3656 those that want to check back later to find it.&lt;/p&gt;
3657 </description>
3658 </item>
3659
3660 <item>
3661 <title>Some notes on Flash in Debian and Debian Edu</title>
3662 <link>http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html</link>
3663 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html</guid>
3664 <pubDate>Sat, 4 Sep 2010 10:10:00 +0200</pubDate>
3665 <description>&lt;p&gt;In the &lt;a href=&quot;http://popcon.debian.org/unknown/by_vote&quot;&gt;Debian
3666 popularity-contest numbers&lt;/a&gt;, the adobe-flashplugin package the
3667 second most popular used package that is missing in Debian. The sixth
3668 most popular is flashplayer-mozilla. This is a clear indication that
3669 working flash is important for Debian users. Around 10 percent of the
3670 users submitting data to popcon.debian.org have this package
3671 installed.&lt;/p&gt;
3672
3673 &lt;p&gt;In the report written by Lars Risan in August 2008
3674&lt;a href=&quot;http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&amp;do=view&amp;target=Skolelinux_i_bruk_rapport_1.0.pdf&quot;&gt;Skolelinux
3675 i bruk – Rapport for Hurum kommune, Universitetet i Agder og
3676 stiftelsen SLX Debian Labs&lt;/a&gt;»), one of the most important problems
3677 schools experienced with &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian
3678 Edu/Skolelinux&lt;/a&gt; was the lack of working Flash. A lot of educational
3679 web sites require Flash to work, and lacking working Flash support in
3680 the web browser and the problems with installing it was perceived as a
3681 good reason to stay with Windows.&lt;/p&gt;
3682
3683 &lt;p&gt;I once saw a funny and sad comment in a web forum, where Linux was
3684 said to be the retarded cousin that did not really understand
3685 everything you told him but could work fairly well. This was a
3686 comment regarding the problems Linux have with proprietary formats and
3687 non-standard web pages, and is sad because it exposes a fairly common
3688 understanding of whose fault it is if web pages that only work in for
3689 example Internet Explorer 6 fail to work on Firefox, and funny because
3690 it explain very well how annoying it is for users when Linux
3691 distributions do not work with the documents they receive or the web
3692 pages they want to visit.&lt;/p&gt;
3693
3694 &lt;p&gt;This is part of the reason why I believe it is important for Debian
3695 and Debian Edu to have a well working Flash implementation in the
3696 distribution, to get at least popular sites as Youtube and Google
3697 Video to working out of the box. For Squeeze, Debian have the chance
3698 to include the latest version of Gnash that will make this happen, as
3699 the new release 0.8.8 was published a few weeks ago and is resting in
3700 unstable. The new version work with more sites that version 0.8.7.
3701 The Gnash maintainers have asked for a freeze exception, but the
3702 release team have not had time to reply to it yet. I hope they agree
3703 with me that Flash is important for the Debian desktop users, and thus
3704 accept the new package into Squeeze.&lt;/p&gt;
3705 </description>
3706 </item>
3707
3708 <item>
3709 <title>Terms of use for video produced by a Canon IXUS 130 digital camera</title>
3710 <link>http://people.skolelinux.org/pere/blog/Terms_of_use_for_video_produced_by_a_Canon_IXUS_130_digital_camera.html</link>
3711 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Terms_of_use_for_video_produced_by_a_Canon_IXUS_130_digital_camera.html</guid>
3712 <pubDate>Thu, 9 Sep 2010 23:55:00 +0200</pubDate>
3713 <description>&lt;p&gt;A few days ago I had the mixed pleasure of bying a new digital
3714 camera, a Canon IXUS 130. It was instructive and very disturbing to
3715 be able to verify that also this camera producer have the nerve to
3716 specify how I can or can not use the videos produced with the camera.
3717 Even thought I was aware of the issue, the options with new cameras
3718 are limited and I ended up bying the camera anyway. What is the
3719 problem, you might ask? It is software patents, MPEG-4, H.264 and the
3720 MPEG-LA that is the problem, and our right to record our experiences
3721 without asking for permissions that is at risk.
3722
3723 &lt;p&gt;On page 27 of the Danish instruction manual, this section is
3724 written:&lt;/p&gt;
3725
3726 &lt;blockquote&gt;
3727 &lt;p&gt;This product is licensed under AT&amp;T patents for the MPEG-4 standard
3728 and may be used for encoding MPEG-4 compliant video and/or decoding
3729 MPEG-4 compliant video that was encoded only (1) for a personal and
3730 non-commercial purpose or (2) by a video provider licensed under the
3731 AT&amp;T patents to provide MPEG-4 compliant video.&lt;/p&gt;
3732
3733 &lt;p&gt;No license is granted or implied for any other use for MPEG-4
3734 standard.&lt;/p&gt;
3735 &lt;/blockquote&gt;
3736
3737 &lt;p&gt;In short, the camera producer have chosen to use technology
3738 (MPEG-4/H.264) that is only provided if I used it for personal and
3739 non-commercial purposes, or ask for permission from the organisations
3740 holding the knowledge monopoly (patent) for technology used.&lt;/p&gt;
3741
3742 &lt;p&gt;This issue has been brewing for a while, and I recommend you to
3743 read
3744 &quot;&lt;a href=&quot;http://www.osnews.com/story/23236/Why_Our_Civilization_s_Video_Art_and_Culture_is_Threatened_by_the_MPEG-LA&quot;&gt;Why
3745 Our Civilization&#39;s Video Art and Culture is Threatened by the
3746 MPEG-LA&lt;/a&gt;&quot; by Eugenia Loli-Queru and
3747 &quot;&lt;a href=&quot;http://webmink.com/2010/09/03/h-264-and-foss/&quot;&gt;H.264 Is Not
3748 The Sort Of Free That Matters&lt;/a&gt;&quot; by Simon Phipps to learn more about
3749 the issue. The solution is to support the
3750 &lt;a href=&quot;http://www.digistan.org/open-standard:definition&quot;&gt;free and
3751 open standards&lt;/a&gt; for video, like &lt;a href=&quot;http://www.theora.org/&quot;&gt;Ogg
3752 Theora&lt;/a&gt;, and avoid MPEG-4 and H.264 if you can.&lt;/p&gt;
3753 </description>
3754 </item>
3755
3756 <item>
3757 <title>Links for 2010-10-03</title>
3758 <link>http://people.skolelinux.org/pere/blog/Links_for_2010_10_03.html</link>
3759 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Links_for_2010_10_03.html</guid>
3760 <pubDate>Sun, 3 Oct 2010 22:30:00 +0200</pubDate>
3761 <description>&lt;p&gt;&lt;ul&gt;
3762
3763 &lt;li&gt;&lt;a href=&quot;http://arstechnica.com/business/news/2010/09/there-is-no-plan-b-why-the-ipv4-to-ipv6-transition-will-be-ugly.ars&quot;&gt;There
3764 is no Plan B: why the IPv4-to-IPv6 transition will be ugly&lt;/a&gt;&lt;/li&gt;
3765
3766 &lt;li&gt;Scanner looking under clothes
3767 &lt;a href=&quot;http://www.dagbladet.no/2010/10/03/nyheter/utenriks/reise/overvakingskamera/flyplasser/13667192/&quot;&gt;has
3768 already been misused at Heathrow&lt;/a&gt;.&lt;/li&gt;
3769
3770 &lt;li&gt;&lt;a href=&quot;http://wiki.softwarelivre.org/Landell&quot;&gt;Landell
3771 Webcasting&lt;/a&gt; - interesting alternative for
3772 &lt;ahref=&quot;http://dvswitch.alioth.debian.org/wiki/&quot;&gt;DVSwitch&lt;/a&gt; with
3773 simple setup.
3774
3775 &lt;/ul&gt;&lt;/p&gt;
3776 </description>
3777 </item>
3778
3779 <item>
3780 <title>First version of a Perl library to control the Spykee robot</title>
3781 <link>http://people.skolelinux.org/pere/blog/First_version_of_a_Perl_library_to_control_the_Spykee_robot.html</link>
3782 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_version_of_a_Perl_library_to_control_the_Spykee_robot.html</guid>
3783 <pubDate>Sat, 9 Oct 2010 14:00:00 +0200</pubDate>
3784 <description>&lt;p&gt;This summer I got the chance to buy cheap Spykee robots, and since
3785 then I have worked on getting Linux software in place to control them.
3786 The firmware for the robot is available from the producer, and using
3787 that source it was trivial to figure out the protocol specification.
3788 I&#39;ve started on a perl library to control it, and made some demo
3789 programs using this perl library to allow one to control the
3790 robots.&lt;/p&gt;
3791
3792 &lt;p&gt;The library is quite functional already, and capable of controlling
3793 the driving, fetching video, uploading MP3s and play them. There are
3794 a few less important features too.&lt;/p&gt;
3795
3796 &lt;p&gt;Since a few weeks ago, I ran out of time to spend on this project,
3797 but I never got around to releasing the current source. I decided
3798 today that it was time to do something about it, and uploaded the
3799 source to my Debian package store at people.skolelinux.org.&lt;/p&gt;
3800
3801 &lt;p&gt;Because it was simpler for me, I made a Debian package and
3802 published the source and deb. If you got a spykee robot, grab the
3803 source or binary package:&lt;/p&gt;
3804
3805 &lt;p&gt;&lt;ul&gt;
3806 &lt;li&gt;&lt;a href=&quot;http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.tar.gz&quot;&gt;libspykee-perl_0.0.20101009-1.tar.gz&lt;/a&gt;&lt;/li&gt;
3807 &lt;li&gt;&lt;a href=&quot;http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.dsc&quot;&gt;libspykee-perl_0.0.20101009-1.dsc&lt;/a&gt;&lt;/li&gt;
3808 &lt;li&gt;&lt;a href=&quot;http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1_all.deb&quot;&gt;libspykee-perl_0.0.20101009-1_all.deb&lt;/a&gt;&lt;/li&gt;
3809 &lt;/ul&gt;&lt;/p&gt;
3810
3811 &lt;p&gt;If you are interested in helping out with developing this library,
3812 please let me know.&lt;/p&gt;
3813 </description>
3814 </item>
3815
3816 <item>
3817 <title>Pledge for funding to the Gnash project to get AVM2 support</title>
3818 <link>http://people.skolelinux.org/pere/blog/Pledge_for_funding_to_the_Gnash_project_to_get_AVM2_support.html</link>
3819 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Pledge_for_funding_to_the_Gnash_project_to_get_AVM2_support.html</guid>
3820 <pubDate>Tue, 19 Oct 2010 14:45:00 +0200</pubDate>
3821 <description>&lt;p&gt;&lt;a href=&quot;http://www.getgnash.org/&quot;&gt;The Gnash project&lt;/a&gt; is the
3822 most promising solution for a Free Software Flash implementation. It
3823 has done great so far, but there is still far to go, and recently its
3824 funding has dried up. I believe AVM2 support in Gnash is vital to the
3825 continued progress of the project, as more and more sites show up with
3826 AVM2 flash files.&lt;/p&gt;
3827
3828 &lt;p&gt;To try to get funding for developing such support, I have started
3829 &lt;a href=&quot;http://www.pledgebank.com/gnash-avm2&quot;&gt;a pledge&lt;/a&gt; with the
3830 following text:&lt;/P&gt;
3831
3832 &lt;p&gt;&lt;blockquote&gt;
3833
3834 &lt;p&gt;&quot;I will pay 100$ to the Gnash project to develop AVM2 support but
3835 only if 10 other people will do the same.&quot;&lt;/p&gt;
3836
3837 &lt;p&gt;- Petter Reinholdtsen, free software developer&lt;/p&gt;
3838
3839 &lt;p&gt;Deadline to sign up by: 24th December 2010&lt;/p&gt;
3840
3841 &lt;p&gt;The Gnash project need to get support for the new Flash file
3842 format AVM2 to work with a lot of sites using Flash on the
3843 web. Gnash already work with a lot of Flash sites using the old AVM1
3844 format, but more and more sites are using the AVM2 format these
3845 days. The project web page is available from
3846 http://www.getgnash.org/ . Gnash is a free software implementation
3847 of Adobe Flash, allowing those of us that do not accept the terms of
3848 the Adobe Flash license to get access to Flash sites.&lt;/p&gt;
3849
3850 &lt;p&gt;The project need funding to get developers to put aside enough
3851 time to develop the AVM2 support, and this pledge is my way to try
3852 to get this to happen.&lt;/p&gt;
3853
3854 &lt;p&gt;The project accept donations via the OpenMediaNow foundation,
3855 &lt;a href=&quot;http://www.openmedianow.org/?q=node/32&quot;&gt;http://www.openmedianow.org/?q=node/32&lt;/a&gt; .&lt;/p&gt;
3856
3857 &lt;/blockquote&gt;&lt;/p&gt;
3858
3859 &lt;p&gt;I hope you will support this effort too. I hope more than 10
3860 people will participate to make this happen. The more money the
3861 project gets, the more features it can develop using these funds.
3862 :)&lt;/p&gt;
3863 </description>
3864 </item>
3865
3866 <item>
3867 <title>Software updates 2010-10-24</title>
3868 <link>http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html</link>
3869 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html</guid>
3870 <pubDate>Sun, 24 Oct 2010 22:45:00 +0200</pubDate>
3871 <description>&lt;p&gt;Some updates.&lt;/p&gt;
3872
3873 &lt;p&gt;My &lt;a href=&quot;http://pledgebank.com/gnash-avm2&quot;&gt;gnash pledge&lt;/a&gt; to
3874 raise money for the project is going well. The lower limit of 10
3875 signers was reached in 24 hours, and so far 13 people have signed it.
3876 More signers and more funding is most welcome, and I am really curious
3877 how far we can get before the time limit of December 24 is reached.
3878 :)&lt;/p&gt;
3879
3880 &lt;p&gt;On the #gnash IRC channel on irc.freenode.net, I was just tipped
3881 about what appear to be a great code coverage tool capable of
3882 generating code coverage stats without any changes to the source code.
3883 It is called
3884 &lt;a href=&quot;http://simonkagstrom.github.com/kcov/index.html&quot;&gt;kcov&lt;/a&gt;,
3885 and can be used using &lt;tt&gt;kcov &amp;lt;directory&amp;gt; &amp;lt;binary&amp;gt;&lt;/tt&gt;.
3886 It is missing in Debian, but the git source built just fine in Squeeze
3887 after I installed libelf-dev, libdwarf-dev, pkg-config and
3888 libglib2.0-dev. Failed to build in Lenny, but suspect that is
3889 solvable. I hope kcov make it into Debian soon.&lt;/p&gt;
3890
3891 &lt;p&gt;Finally found time to wrap up the release notes for &lt;a
3892 href=&quot;http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html&quot;&gt;a
3893 new alpha release of Debian Edu&lt;/a&gt;, and just published the second
3894 alpha test release of the Squeeze based Debian Edu /
3895 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux&lt;/a&gt;
3896 release. Give it a try if you need a complete linux solution for your
3897 school, including central infrastructure server, workstations, thin
3898 client servers and diskless workstations. A nice touch added
3899 yesterday is RDP support on the thin client servers, for windows
3900 clients to get a Linux desktop on request.&lt;/p&gt;
3901 </description>
3902 </item>
3903
3904 <item>
3905 <title>Making room on the Debian Edu/Sqeeze DVD</title>
3906 <link>http://people.skolelinux.org/pere/blog/Making_room_on_the_Debian_Edu_Sqeeze_DVD.html</link>
3907 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Making_room_on_the_Debian_Edu_Sqeeze_DVD.html</guid>
3908 <pubDate>Sun, 7 Nov 2010 11:45:00 +0100</pubDate>
3909 <description>&lt;p&gt;Prioritising packages for the Debian Edu /
3910 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux&lt;/a&gt; DVD, which is
3911 supposed provide a school with all the services and user applications
3912 needed on the pupils computer network has always been hard. Even
3913 schools without Internet connections should be able to get Debian Edu
3914 working using this DVD.&lt;/p&gt;
3915
3916 &lt;p&gt;The job became a lot harder when apt and aptitude started
3917 installing recommended packages by default. We want the same set of
3918 packages to be installed when using the DVD and the netinst CD, and
3919 that means all recommended packages need to be on the DVD. I created
3920 a patch for debian-cd in &lt;a href=&quot;http://bugs.debian.org/601203&quot;&gt;BTS
3921 report #601203&lt;/a&gt; to do this, and since this change was applied to
3922 the Debian Edu DVD build, we have been seriously short on space.&lt;/p&gt;
3923
3924 &lt;p&gt;A few days ago we decided to drop blender, wxmaxima and kicad from
3925 the default installation to save space on the DVD, believing that
3926 those needing these applications are few and can get them from the
3927 Debian archive.&lt;/p&gt;
3928
3929 &lt;p&gt;Yesterday, I had a look what source packages to see which packages
3930 were using most space. A few large packages are well know;
3931 openoffice.org, openclipart and fluid-soundfont. But I also
3932 discovered that lilypond used 106 MiB and fglrx-driver used 53 MiB.
3933 The lilypond package is pulled in as a dependency for rosegarden, and
3934 when looking a bit closer I discovered that 99 MiB of the 106 MiB were
3935 the documentation package, which is recommended by the binary package.
3936 I decided to drop this documentation package from our DVD, as most of
3937 our users will use the GUI front-ends and do not need the lilypond
3938 documentation. Similarly, I dropped the non-free fglrx-driver package
3939 which might be installed by d-i when its hardware is detected, as the
3940 free X driver should work.&lt;/p&gt;
3941
3942 &lt;p&gt;With this change, we finally got space for the LXDE and Gnome
3943 desktop packages as well as the language specific packages making the
3944 DVD more useful again.&lt;/p&gt;
3945 </description>
3946 </item>
3947
3948 <item>
3949 <title>Debian in 3D</title>
3950 <link>http://people.skolelinux.org/pere/blog/Debian_in_3D.html</link>
3951 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_in_3D.html</guid>
3952 <pubDate>Tue, 9 Nov 2010 16:10:00 +0100</pubDate>
3953 <description>&lt;p&gt;&lt;img src=&quot;http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg&quot;&gt;&lt;/p&gt;
3954
3955 &lt;p&gt;3D printing is just great. I just came across this Debian logo in
3956 3D linked in from
3957 &lt;a href=&quot;http://blog.thingiverse.com/2010/11/09/participatory-branding/&quot;&gt;the
3958 thingiverse blog&lt;/a&gt;.&lt;/p&gt;
3959 </description>
3960 </item>
3961
3962 <item>
3963 <title>Gnash buildbot slave and Debian kfreebsd</title>
3964 <link>http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html</link>
3965 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html</guid>
3966 <pubDate>Sat, 20 Nov 2010 07:20:00 +0100</pubDate>
3967 <description>&lt;p&gt;Answering
3968 &lt;a href=&quot;http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html&quot;&gt;the
3969 call from the Gnash project&lt;/a&gt; for
3970 &lt;a href=&quot;http://www.gnashdev.org:8010&quot;&gt;buildbot&lt;/a&gt; slaves to test the
3971 current source, I have set up a virtual KVM machine on the Debian
3972 Edu/Skolelinux virtualization host to test the git source on
3973 Debian/Squeeze. I hope this can help the developers in getting new
3974 releases out more often.&lt;/p&gt;
3975
3976 &lt;p&gt;As the developers want less main-stream build platforms tested to,
3977 I have considered setting up a &lt;a
3978 href=&quot;http://www.debian.org/ports/kfreebsd-gnu/&quot;&gt;Debian/kfreebsd&lt;/a&gt;
3979 machine as well. I have also considered using the kfreebsd
3980 architecture in Debian as a file server in NUUG to get access to the 5
3981 TB zfs volume we currently use to store DV video. Because of this, I
3982 finally got around to do a test installation of Debian/Squeeze with
3983 kfreebsd. Installation went fairly smooth, thought I noticed some
3984 visual glitches in the cdebconf dialogs (black cursor left on the
3985 screen at random locations). Have not gotten very far with the
3986 testing. Noticed cfdisk did not work, but fdisk did so it was not a
3987 fatal problem. Have to spend some more time on it to see if it is
3988 useful as a file server for NUUG. Will try to find time to set up a
3989 gnash buildbot slave on the Debian Edu/Skolelinux this weekend.&lt;/p&gt;
3990 </description>
3991 </item>
3992
3993 <item>
3994 <title>Lenny-&gt;Squeeze upgrades, apt vs aptitude with the Gnome and KDE desktop</title>
3995 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html</link>
3996 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html</guid>
3997 <pubDate>Sat, 20 Nov 2010 22:50:00 +0100</pubDate>
3998 <description>&lt;p&gt;I&#39;m still running upgrade testing of the
3999 &lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;Lenny
4000 Gnome and KDE Desktop&lt;/a&gt;, but have not had time to spend on reporting the
4001 status. Here is a short update based on a test I ran 20101118.&lt;/p&gt;
4002
4003 &lt;p&gt;I still do not know what a correct migration should look like, so I
4004 report any differences between apt and aptitude and hope someone else
4005 can see if anything should be changed.&lt;/p&gt;
4006
4007 &lt;p&gt;This is for Gnome:&lt;/p&gt;
4008
4009 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
4010
4011 &lt;blockquote&gt;&lt;p&gt;
4012 apache2.2-bin aptdaemon at-spi baobab binfmt-support
4013 browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
4014 dmz-cursor-theme empathy empathy-common finger
4015 freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
4016 gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
4017 geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
4018 gnome-cards-data gnome-codec-install gnome-core
4019 gnome-desktop-environment gnome-disk-utility gnome-screenshot
4020 gnome-search-tool gnome-session-canberra gnome-spell
4021 gnome-system-log gnome-themes-extras gnome-themes-more
4022 gnome-user-share gs-common gstreamer0.10-fluendo-mp3
4023 gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
4024 gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
4025 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
4026 libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
4027 libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
4028 libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
4029 libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
4030 libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
4031 libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
4032 libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
4033 libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
4034 libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
4035 libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
4036 libgtk2.0-cil libgtkglext1 libgtksourceview-common
4037 libgtksourceview2.0-common libmono-addins-gui0.2-cil
4038 libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
4039 libmono-i18n-west2.0-cil libmono-posix2.0-cil
4040 libmono-security2.0-cil libmono-sharpzip2.84-cil
4041 libmono-system2.0-cil libmtp8 libmusicbrainz3-6
4042 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
4043 libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
4044 libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
4045 libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
4046 libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
4047 libxalan2-java libxerces2-java media-player-info mesa-utils
4048 mono-2.0-gac mono-gac mono-runtime nautilus-sendto
4049 nautilus-sendto-empathy openoffice.org-writer2latex
4050 openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
4051 python-aptdaemon python-aptdaemon-gtk python-axiom
4052 python-beautifulsoup python-bugbuddy python-clientform
4053 python-coherence python-configobj python-crypto python-cupshelpers
4054 python-cupsutils python-eggtrayicon python-elementtree
4055 python-epsilon python-evolution python-feedparser python-gdata
4056 python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
4057 python-gtksourceview2 python-httplib2 python-louie python-mako
4058 python-markupsafe python-mechanize python-nevow python-notify
4059 python-opengl python-openssl python-pam python-pkg-resources
4060 python-pyasn1 python-pysqlite2 python-rdflib python-serial
4061 python-tagpy python-twisted-bin python-twisted-conch
4062 python-twisted-core python-twisted-web python-utidylib python-webkit
4063 python-xdg python-zope.interface remmina remmina-plugin-data
4064 remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
4065 rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
4066 software-center svgalibg1 system-config-printer-udev
4067 telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
4068 totem totem-coherence totem-mozilla totem-plugins
4069 transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
4070 zip
4071 &lt;/p&gt;&lt;/blockquote&gt;
4072
4073 Installed using apt-get, removed with aptitude
4074
4075 &lt;blockquote&gt;&lt;p&gt;
4076 arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
4077 epiphany-extensions epiphany-gecko evolution-exchange
4078 fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
4079 gedit-common gnome-app-install gnome-games gnome-games-data
4080 gnome-nettool gnome-system-tools gnome-themes gnome-utils
4081 gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
4082 guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
4083 libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
4084 libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
4085 libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
4086 libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
4087 libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
4088 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
4089 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
4090 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
4091 libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
4092 libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
4093 libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
4094 libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
4095 libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
4096 libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
4097 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
4098 libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
4099 libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
4100 libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
4101 libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
4102 libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
4103 sound-juicer swfdec-gnome system-config-printer totem-common
4104 totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
4105 &lt;/p&gt;&lt;/blockquote&gt;
4106
4107 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
4108
4109 &lt;blockquote&gt;&lt;p&gt;
4110 gstreamer0.10-gnomevfs
4111 &lt;/p&gt;&lt;/blockquote&gt;
4112
4113 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
4114
4115 &lt;blockquote&gt;&lt;p&gt;
4116 [nothing]
4117 &lt;/p&gt;&lt;/blockquote&gt;
4118
4119 &lt;p&gt;This is for KDE:&lt;/p&gt;
4120
4121 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
4122
4123 &lt;blockquote&gt;&lt;p&gt;
4124 autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
4125 edict espeak espeak-data eyesapplet fifteenapplet finger gettext
4126 ghostscript-x git gnome-audio gnugo granatier gs-common
4127 gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
4128 kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
4129 kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
4130 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
4131 kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
4132 kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
4133 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
4134 kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
4135 kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
4136 killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
4137 kollision kpf krosspython ksirk ksmserver ksquares kstars-data
4138 ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
4139 libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
4140 libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
4141 libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
4142 libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
4143 libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
4144 libkrossui4 libmailtools-perl libmime-tools-perl
4145 libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
4146 libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
4147 libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
4148 lirc luatex marble networkstatus noatun-plugins
4149 openoffice.org-writer2latex palapeli palapeli-data parley
4150 parley-data poster psutils pulseaudio pulseaudio-esound-compat
4151 pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
4152 speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
4153 ttf-sazanami-gothic
4154 &lt;/p&gt;&lt;/blockquote&gt;
4155
4156 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
4157
4158 &lt;blockquote&gt;&lt;p&gt;
4159 amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
4160 dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
4161 kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
4162 kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
4163 keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
4164 kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
4165 kitchensync kiten kjumpingcube klatin klettres klickety klines
4166 klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
4167 kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
4168 kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
4169 kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
4170 ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
4171 ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
4172 kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
4173 kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
4174 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
4175 libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
4176 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
4177 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
4178 libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
4179 libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
4180 libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
4181 libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
4182 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
4183 libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
4184 libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
4185 libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
4186 libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
4187 libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
4188 libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
4189 mpeglib network-manager-kde noatun pmount tex-common texlive-base
4190 texlive-common texlive-doc-base texlive-fonts-recommended tidy
4191 ttf-dustin ttf-kochi-gothic ttf-sjfonts
4192 &lt;/p&gt;&lt;/blockquote&gt;
4193
4194 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
4195
4196 &lt;blockquote&gt;&lt;p&gt;
4197 dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
4198 kdeartwork kdebase kdebase-apps kdebase-workspace
4199 kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
4200 kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
4201 netpbm plasma-widget-folderview plasma-widget-networkmanagement
4202 xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
4203 xscreensaver-screensaver-bsod
4204 &lt;/p&gt;&lt;/blockquote&gt;
4205
4206 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
4207
4208 &lt;blockquote&gt;&lt;p&gt;
4209 kdebase-bin konq-plugins konqueror
4210 &lt;/p&gt;&lt;/blockquote&gt;
4211 </description>
4212 </item>
4213
4214 <item>
4215 <title>Migrating Xen virtual machines using LVM to KVM using disk images</title>
4216 <link>http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html</link>
4217 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html</guid>
4218 <pubDate>Mon, 22 Nov 2010 11:20:00 +0100</pubDate>
4219 <description>&lt;p&gt;Most of the computers in use by the
4220 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu/Skolelinux project&lt;/a&gt;
4221 are virtual machines. And they have been Xen machines running on a
4222 fairly old IBM eserver xseries 345 machine, and we wanted to migrate
4223 them to KVM on a newer Dell PowerEdge 2950 host machine. This was a
4224 bit harder that it could have been, because we set up the Xen virtual
4225 machines to get the virtual partitions from LVM, which as far as I
4226 know is not supported by KVM. So to migrate, we had to convert
4227 several LVM logical volumes to partitions on a virtual disk file.&lt;/p&gt;
4228
4229 &lt;p&gt;I found
4230 &lt;a href=&quot;http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM&quot;&gt;a
4231 nice recipe&lt;/a&gt; to do this, and wrote the following script to do the
4232 migration. It uses qemu-img from the qemu package to make the disk
4233 image, parted to partition it, losetup and kpartx to present the disk
4234 image partions as devices, and dd to copy the data. I NFS mounted the
4235 new servers storage area on the old server to do the migration.&lt;/p&gt;
4236
4237 &lt;pre&gt;
4238 #!/bin/sh
4239
4240 # Based on
4241 # http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
4242
4243 set -e
4244 set -x
4245
4246 if [ -z &quot;$1&quot; ] ; then
4247 echo &quot;Usage: $0 &amp;lt;hostname&amp;gt;&quot;
4248 exit 1
4249 else
4250 host=&quot;$1&quot;
4251 fi
4252
4253 if [ ! -e /dev/vg_data/$host-disk ] ; then
4254 echo &quot;error: unable to find LVM volume for $host&quot;
4255 exit 1
4256 fi
4257
4258 # Partitions need to be a bit bigger than the LVM LVs. not sure why.
4259 disksize=$( lvs --units m | grep $host-disk | awk &#39;{sum = sum + $4} END { print int(sum * 1.05) }&#39;)
4260 swapsize=$( lvs --units m | grep $host-swap | awk &#39;{sum = sum + $4} END { print int(sum * 1.05) }&#39;)
4261 totalsize=$(( ( $disksize + $swapsize ) ))
4262
4263 img=$host.img
4264 #dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
4265 qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
4266
4267 parted $img mklabel msdos
4268 parted $img mkpart primary linux-swap 0 $disksize
4269 parted $img mkpart primary ext2 $disksize $totalsize
4270 parted $img set 1 boot on
4271
4272 modprobe dm-mod
4273 losetup /dev/loop0 $img
4274 kpartx -a /dev/loop0
4275
4276 dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
4277 fsck.ext3 -f /dev/mapper/loop0p1 || true
4278 mkswap /dev/mapper/loop0p2
4279
4280 kpartx -d /dev/loop0
4281 losetup -d /dev/loop0
4282 &lt;/pre&gt;
4283
4284 &lt;p&gt;The script is perhaps so simple that it is not copyrightable, but
4285 if it is, it is licenced using GPL v2 or later at your discretion.&lt;/p&gt;
4286
4287 &lt;p&gt;After doing this, I booted a Debian CD in rescue mode in KVM with
4288 the new disk image attached, installed grub-pc and linux-image-686 and
4289 set up grub to boot from the disk image. After this, the KVM machines
4290 seem to work just fine.&lt;/p&gt;
4291 </description>
4292 </item>
4293
4294 <item>
4295 <title>Lenny-&gt;Squeeze upgrades of the Gnome and KDE desktop, now with apt-get autoremove</title>
4296 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html</link>
4297 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html</guid>
4298 <pubDate>Mon, 22 Nov 2010 14:15:00 +0100</pubDate>
4299 <description>&lt;p&gt;Michael Biebl suggested to me on IRC, that I changed my automated
4300 upgrade testing of the
4301 &lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;Lenny
4302 Gnome and KDE Desktop&lt;/a&gt; to do &lt;tt&gt;apt-get autoremove&lt;/tt&gt; when using apt-get.
4303 This seem like a very good idea, so I adjusted by test scripts and
4304 can now present the updated result from today:&lt;/p&gt;
4305
4306 &lt;p&gt;This is for Gnome:&lt;/p&gt;
4307
4308 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
4309
4310 &lt;blockquote&gt;&lt;p&gt;
4311 apache2.2-bin
4312 aptdaemon
4313 baobab
4314 binfmt-support
4315 browser-plugin-gnash
4316 cheese-common
4317 cli-common
4318 cups-pk-helper
4319 dmz-cursor-theme
4320 empathy
4321 empathy-common
4322 freedesktop-sound-theme
4323 freeglut3
4324 gconf-defaults-service
4325 gdm-themes
4326 gedit-plugins
4327 geoclue
4328 geoclue-hostip
4329 geoclue-localnet
4330 geoclue-manual
4331 geoclue-yahoo
4332 gnash
4333 gnash-common
4334 gnome
4335 gnome-backgrounds
4336 gnome-cards-data
4337 gnome-codec-install
4338 gnome-core
4339 gnome-desktop-environment
4340 gnome-disk-utility
4341 gnome-screenshot
4342 gnome-search-tool
4343 gnome-session-canberra
4344 gnome-system-log
4345 gnome-themes-extras
4346 gnome-themes-more
4347 gnome-user-share
4348 gstreamer0.10-fluendo-mp3
4349 gstreamer0.10-tools
4350 gtk2-engines
4351 gtk2-engines-pixbuf
4352 gtk2-engines-smooth
4353 hamster-applet
4354 libapache2-mod-dnssd
4355 libapr1
4356 libaprutil1
4357 libaprutil1-dbd-sqlite3
4358 libaprutil1-ldap
4359 libart2.0-cil
4360 libboost-date-time1.42.0
4361 libboost-python1.42.0
4362 libboost-thread1.42.0
4363 libchamplain-0.4-0
4364 libchamplain-gtk-0.4-0
4365 libcheese-gtk18
4366 libclutter-gtk-0.10-0
4367 libcryptui0
4368 libdiscid0
4369 libelf1
4370 libepc-1.0-2
4371 libepc-common
4372 libepc-ui-1.0-2
4373 libfreerdp-plugins-standard
4374 libfreerdp0
4375 libgconf2.0-cil
4376 libgdata-common
4377 libgdata7
4378 libgdu-gtk0
4379 libgee2
4380 libgeoclue0
4381 libgexiv2-0
4382 libgif4
4383 libglade2.0-cil
4384 libglib2.0-cil
4385 libgmime2.4-cil
4386 libgnome-vfs2.0-cil
4387 libgnome2.24-cil
4388 libgnomepanel2.24-cil
4389 libgpod-common
4390 libgpod4
4391 libgtk2.0-cil
4392 libgtkglext1
4393 libgtksourceview2.0-common
4394 libmono-addins-gui0.2-cil
4395 libmono-addins0.2-cil
4396 libmono-cairo2.0-cil
4397 libmono-corlib2.0-cil
4398 libmono-i18n-west2.0-cil
4399 libmono-posix2.0-cil
4400 libmono-security2.0-cil
4401 libmono-sharpzip2.84-cil
4402 libmono-system2.0-cil
4403 libmtp8
4404 libmusicbrainz3-6
4405 libndesk-dbus-glib1.0-cil
4406 libndesk-dbus1.0-cil
4407 libopal3.6.8
4408 libpolkit-gtk-1-0
4409 libpt2.6.7
4410 libpython2.6
4411 librpm1
4412 librpmio1
4413 libsdl1.2debian
4414 libsrtp0
4415 libssh-4
4416 libtelepathy-farsight0
4417 libtelepathy-glib0
4418 libtidy-0.99-0
4419 media-player-info
4420 mesa-utils
4421 mono-2.0-gac
4422 mono-gac
4423 mono-runtime
4424 nautilus-sendto
4425 nautilus-sendto-empathy
4426 p7zip-full
4427 pkg-config
4428 python-aptdaemon
4429 python-aptdaemon-gtk
4430 python-axiom
4431 python-beautifulsoup
4432 python-bugbuddy
4433 python-clientform
4434 python-coherence
4435 python-configobj
4436 python-crypto
4437 python-cupshelpers
4438 python-elementtree
4439 python-epsilon
4440 python-evolution
4441 python-feedparser
4442 python-gdata
4443 python-gdbm
4444 python-gst0.10
4445 python-gtkglext1
4446 python-gtksourceview2
4447 python-httplib2
4448 python-louie
4449 python-mako
4450 python-markupsafe
4451 python-mechanize
4452 python-nevow
4453 python-notify
4454 python-opengl
4455 python-openssl
4456 python-pam
4457 python-pkg-resources
4458 python-pyasn1
4459 python-pysqlite2
4460 python-rdflib
4461 python-serial
4462 python-tagpy
4463 python-twisted-bin
4464 python-twisted-conch
4465 python-twisted-core
4466 python-twisted-web
4467 python-utidylib
4468 python-webkit
4469 python-xdg
4470 python-zope.interface
4471 remmina
4472 remmina-plugin-data
4473 remmina-plugin-rdp
4474 remmina-plugin-vnc
4475 rhythmbox-plugin-cdrecorder
4476 rhythmbox-plugins
4477 rpm-common
4478 rpm2cpio
4479 seahorse-plugins
4480 shotwell
4481 software-center
4482 system-config-printer-udev
4483 telepathy-gabble
4484 telepathy-mission-control-5
4485 telepathy-salut
4486 tomboy
4487 totem
4488 totem-coherence
4489 totem-mozilla
4490 totem-plugins
4491 transmission-common
4492 xdg-user-dirs
4493 xdg-user-dirs-gtk
4494 xserver-xephyr
4495 &lt;/p&gt;&lt;/blockquote&gt;
4496
4497 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
4498
4499 &lt;blockquote&gt;&lt;p&gt;
4500 cheese
4501 ekiga
4502 eog
4503 epiphany-extensions
4504 evolution-exchange
4505 fast-user-switch-applet
4506 file-roller
4507 gcalctool
4508 gconf-editor
4509 gdm
4510 gedit
4511 gedit-common
4512 gnome-games
4513 gnome-games-data
4514 gnome-nettool
4515 gnome-system-tools
4516 gnome-themes
4517 gnuchess
4518 gucharmap
4519 guile-1.8-libs
4520 libavahi-ui0
4521 libdmx1
4522 libgalago3
4523 libgtk-vnc-1.0-0
4524 libgtksourceview2.0-0
4525 liblircclient0
4526 libsdl1.2debian-alsa
4527 libspeexdsp1
4528 libsvga1
4529 rhythmbox
4530 seahorse
4531 sound-juicer
4532 system-config-printer
4533 totem-common
4534 transmission-gtk
4535 vinagre
4536 vino
4537 &lt;/p&gt;&lt;/blockquote&gt;
4538
4539 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
4540
4541 &lt;blockquote&gt;&lt;p&gt;
4542 gstreamer0.10-gnomevfs
4543 &lt;/p&gt;&lt;/blockquote&gt;
4544
4545 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
4546
4547 &lt;blockquote&gt;&lt;p&gt;
4548 [nothing]
4549 &lt;/p&gt;&lt;/blockquote&gt;
4550
4551 &lt;p&gt;This is for KDE:&lt;/p&gt;
4552
4553 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
4554
4555 &lt;blockquote&gt;&lt;p&gt;
4556 ksmserver
4557 &lt;/p&gt;&lt;/blockquote&gt;
4558
4559 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
4560
4561 &lt;blockquote&gt;&lt;p&gt;
4562 kwin
4563 network-manager-kde
4564 &lt;/p&gt;&lt;/blockquote&gt;
4565
4566 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
4567
4568 &lt;blockquote&gt;&lt;p&gt;
4569 arts
4570 dolphin
4571 freespacenotifier
4572 google-gadgets-gst
4573 google-gadgets-xul
4574 kappfinder
4575 kcalc
4576 kcharselect
4577 kde-core
4578 kde-plasma-desktop
4579 kde-standard
4580 kde-window-manager
4581 kdeartwork
4582 kdeartwork-emoticons
4583 kdeartwork-style
4584 kdeartwork-theme-icon
4585 kdebase
4586 kdebase-apps
4587 kdebase-workspace
4588 kdebase-workspace-bin
4589 kdebase-workspace-data
4590 kdeeject
4591 kdelibs
4592 kdeplasma-addons
4593 kdeutils
4594 kdewallpapers
4595 kdf
4596 kfloppy
4597 kgpg
4598 khelpcenter4
4599 kinfocenter
4600 konq-plugins-l10n
4601 konqueror-nsplugins
4602 kscreensaver
4603 kscreensaver-xsavers
4604 ktimer
4605 kwrite
4606 libgle3
4607 libkde4-ruby1.8
4608 libkonq5
4609 libkonq5-templates
4610 libnetpbm10
4611 libplasma-ruby
4612 libplasma-ruby1.8
4613 libqt4-ruby1.8
4614 marble-data
4615 marble-plugins
4616 netpbm
4617 nuvola-icon-theme
4618 plasma-dataengines-workspace
4619 plasma-desktop
4620 plasma-desktopthemes-artwork
4621 plasma-runners-addons
4622 plasma-scriptengine-googlegadgets
4623 plasma-scriptengine-python
4624 plasma-scriptengine-qedje
4625 plasma-scriptengine-ruby
4626 plasma-scriptengine-webkit
4627 plasma-scriptengines
4628 plasma-wallpapers-addons
4629 plasma-widget-folderview
4630 plasma-widget-networkmanagement
4631 ruby
4632 sweeper
4633 update-notifier-kde
4634 xscreensaver-data-extra
4635 xscreensaver-gl
4636 xscreensaver-gl-extra
4637 xscreensaver-screensaver-bsod
4638 &lt;/p&gt;&lt;/blockquote&gt;
4639
4640 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
4641
4642 &lt;blockquote&gt;&lt;p&gt;
4643 ark
4644 google-gadgets-common
4645 google-gadgets-qt
4646 htdig
4647 kate
4648 kdebase-bin
4649 kdebase-data
4650 kdepasswd
4651 kfind
4652 klipper
4653 konq-plugins
4654 konqueror
4655 ksysguard
4656 ksysguardd
4657 libarchive1
4658 libcln6
4659 libeet1
4660 libeina-svn-06
4661 libggadget-1.0-0b
4662 libggadget-qt-1.0-0b
4663 libgps19
4664 libkdecorations4
4665 libkephal4
4666 libkonq4
4667 libkonqsidebarplugin4a
4668 libkscreensaver5
4669 libksgrd4
4670 libksignalplotter4
4671 libkunitconversion4
4672 libkwineffects1a
4673 libmarblewidget4
4674 libntrack-qt4-1
4675 libntrack0
4676 libplasma-geolocation-interface4
4677 libplasmaclock4a
4678 libplasmagenericshell4
4679 libprocesscore4a
4680 libprocessui4a
4681 libqalculate5
4682 libqedje0a
4683 libqtruby4shared2
4684 libqzion0a
4685 libruby1.8
4686 libscim8c2a
4687 libsmokekdecore4-3
4688 libsmokekdeui4-3
4689 libsmokekfile3
4690 libsmokekhtml3
4691 libsmokekio3
4692 libsmokeknewstuff2-3
4693 libsmokeknewstuff3-3
4694 libsmokekparts3
4695 libsmokektexteditor3
4696 libsmokekutils3
4697 libsmokenepomuk3
4698 libsmokephonon3
4699 libsmokeplasma3
4700 libsmokeqtcore4-3
4701 libsmokeqtdbus4-3
4702 libsmokeqtgui4-3
4703 libsmokeqtnetwork4-3
4704 libsmokeqtopengl4-3
4705 libsmokeqtscript4-3
4706 libsmokeqtsql4-3
4707 libsmokeqtsvg4-3
4708 libsmokeqttest4-3
4709 libsmokeqtuitools4-3
4710 libsmokeqtwebkit4-3
4711 libsmokeqtxml4-3
4712 libsmokesolid3
4713 libsmokesoprano3
4714 libtaskmanager4a
4715 libtidy-0.99-0
4716 libweather-ion4a
4717 libxklavier16
4718 libxxf86misc1
4719 okteta
4720 oxygencursors
4721 plasma-dataengines-addons
4722 plasma-scriptengine-superkaramba
4723 plasma-widget-lancelot
4724 plasma-widgets-addons
4725 plasma-widgets-workspace
4726 polkit-kde-1
4727 ruby1.8
4728 systemsettings
4729 update-notifier-common
4730 &lt;/p&gt;&lt;/blockquote&gt;
4731
4732 &lt;p&gt;Running apt-get autoremove made the results using apt-get and
4733 aptitude a bit more similar, but there are still quite a lott of
4734 differences. I have no idea what packages should be installed after
4735 the upgrade, but hope those that do can have a look.&lt;/p&gt;
4736 </description>
4737 </item>
4738
4739 <item>
4740 <title>Why isn&#39;t Debian Edu using VLC?</title>
4741 <link>http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html</link>
4742 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html</guid>
4743 <pubDate>Sat, 27 Nov 2010 11:30:00 +0100</pubDate>
4744 <description>&lt;p&gt;In the latest issue of Linux Journal, the readers choices were
4745 presented, and the winner among the multimedia player were VLC.
4746 Personally, I like VLC, and it is my player of choice when I first try
4747 to play a video file or stream. Only if VLC fail will I drag out
4748 gmplayer to see if it can do better. The reason is mostly the failure
4749 model and trust. When VLC fail, it normally pop up a error message
4750 reporting the problem. When mplayer fail, it normally segfault or
4751 just hangs. The latter failure mode drain my trust in the program.&lt;p&gt;
4752
4753 &lt;p&gt;But even if VLC is my player of choice, we have choosen to use
4754 mplayer in &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian
4755 Edu/Skolelinux&lt;/a&gt;. The reason is simple. We need a good browser
4756 plugin to play web videos seamlessly, and the VLC browser plugin is
4757 not very good. For example, it lack in-line control buttons, so there
4758 is no way for the user to pause the video. Also, when I
4759 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/BrowserMultimedia&quot;&gt;last
4760 tested the browser plugins&lt;/a&gt; available in Debian, the VLC plugin
4761 failed on several video pages where mplayer based plugins worked. If
4762 the browser plugin for VLC was as good as the gecko-mediaplayer
4763 package (which uses mplayer), we would switch.&lt;/P&gt;
4764
4765 &lt;p&gt;While VLC is a good player, its user interface is slightly
4766 annoying. The most annoying feature is its inconsistent use of
4767 keyboard shortcuts. When the player is in full screen mode, its
4768 shortcuts are different from when it is playing the video in a window.
4769 For example, space only work as pause when in full screen mode. I
4770 wish it had consisten shortcuts and that space also would work when in
4771 window mode. Another nice shortcut in gmplayer is [enter] to restart
4772 the current video. It is very nice when playing short videos from the
4773 web and want to restart it when new people arrive to have a look at
4774 what is going on.&lt;/p&gt;
4775 </description>
4776 </item>
4777
4778 <item>
4779 <title>Debian Edu development gathering and General Assembly for FRiSK</title>
4780 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_development_gathering_and_General_Assembly_for_FRiSK.html</link>
4781 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_development_gathering_and_General_Assembly_for_FRiSK.html</guid>
4782 <pubDate>Mon, 29 Nov 2010 18:40:00 +0100</pubDate>
4783 <description>&lt;p&gt;On friday, the first Debian Edu / Skolelinux
4784 &lt;a href=&quot;http://www.friprogramvareiskolen.no/Gathering/2010-12-03-05-Oslo&quot;&gt;development
4785 gathering&lt;/a&gt; in a long time take place here in Oslo, Norway. I
4786 really look forward to seeing all the good people working on the
4787 Squeeze release. The gathering is open for everyone interested in
4788 learning more about Debian Edu / Skolelinux.&lt;/p&gt;
4789
4790 &lt;p&gt;On Saturday, the Norwegian member organization taking care of
4791 organizing these development gatherings, Fri Programvare i Skolen,
4792 will hold its
4793 &lt;a href=&quot;http://friprogramvareiskolen.no/Genfors/2010&quot;&gt;General Assembly
4794 for 2010&lt;/a&gt;. Membership is open for all, and currently there are 388
4795 people registered as members. Last year 32 members cast their vote in
4796 the memberdb based election system. I hope more people find time to
4797 vote this year.&lt;/p&gt;
4798 </description>
4799 </item>
4800
4801 <item>
4802 <title>Student group continue the work on my Reprap 3D printer</title>
4803 <link>http://people.skolelinux.org/pere/blog/Student_group_continue_the_work_on_my_Reprap_3D_printer.html</link>
4804 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Student_group_continue_the_work_on_my_Reprap_3D_printer.html</guid>
4805 <pubDate>Thu, 9 Dec 2010 19:30:00 +0100</pubDate>
4806 <description>&lt;p&gt;A few days ago, I was introduces to some students in the robot
4807 student assosiation &lt;a href=&quot;http://www.robotica.no/&quot;&gt;Robotica
4808 Osloensis&lt;/a&gt; at the University of Oslo where I work, who planned to
4809 get their own 3D printer. They wanted to learn from me based on my
4810 work in the area. After having a short lunch meeting with them, I
4811 offered them to borrow my reprap kit, as I never had time to complete
4812 the build and this seem unlike to change any time soon. I look
4813 forward to see how this goes. This monday their volunteer driver
4814 picked up my kit and drove it to their lab, and tomorrow I am told the
4815 last exam is over so they can start work on getting the 3D printer
4816 operational.&lt;/p&gt;
4817
4818 &lt;p&gt;The robotic group have already build several robots on their own,
4819 and seem capable of getting the reprap operational. I really look
4820 forward to being able to print all the cool 3D designs published on
4821 &lt;a href=&quot;http://www.thingiverse.com/&quot;&gt;Thingiverse&lt;/a&gt;. I even got
4822 some 3D scans I got made during Dagen@IFI when one of the groups at
4823 the computer science department at the university demonstrated their
4824 very cool 3D scanner.&lt;/p&gt;
4825 </description>
4826 </item>
4827
4828 <item>
4829 <title>Now accepting bitcoins - anonymous and distributed p2p crypto-money</title>
4830 <link>http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html</link>
4831 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html</guid>
4832 <pubDate>Fri, 10 Dec 2010 08:20:00 +0100</pubDate>
4833 <description>&lt;p&gt;With this weeks lawless
4834 &lt;a href=&quot;http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html&quot;&gt;governmental
4835 attacks&lt;/a&gt; on Wikileak and
4836 &lt;a href=&quot;http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech&quot;&gt;free
4837 speech&lt;/a&gt;, it has become obvious that PayPal, visa and mastercard can
4838 not be trusted to handle money transactions.
4839 A blog post from
4840 &lt;a href=&quot;http://webmink.com/2010/12/06/now-accepting-bitcoin/&quot;&gt;Simon
4841 Phipps on bitcoin&lt;/a&gt; reminded me about a project that a friend of
4842 mine mentioned earlier. I decided to follow Simon&#39;s example, and get
4843 involved with &lt;a href=&quot;http://www.bitcoin.org/&quot;&gt;BitCoin&lt;/a&gt;. I got
4844 some help from my friend to get it all running, and he even handed me
4845 some bitcoins to get started. I even donated a few bitcoins to Simon
4846 for helping me remember BitCoin.&lt;/p&gt;
4847
4848 &lt;p&gt;So, what is bitcoins, you probably wonder? It is a digital
4849 crypto-currency, decentralised and handled using peer-to-peer
4850 networks. It allows anonymous transactions and prohibits central
4851 control over the transactions, making it impossible for governments
4852 and companies alike to block donations and other transactions. The
4853 source is free software, and while the key dependency wxWidgets 2.9
4854 for the graphical user interface is missing in Debian, the command
4855 line client builds just fine. Hopefully Jonas
4856 &lt;a href=&quot;http://bugs.debian.org/578157&quot;&gt;will get the package into
4857 Debian&lt;/a&gt; soon.&lt;/p&gt;
4858
4859 &lt;p&gt;Bitcoins can be converted to other currencies, like USD and EUR.
4860 There are &lt;a href=&quot;http://www.bitcoin.org/trade&quot;&gt;companies accepting
4861 bitcoins&lt;/a&gt; when selling services and goods, and there are even
4862 currency &quot;stock&quot; markets where the exchange rate is decided. There
4863 are not many users so far, but the concept seems promising. If you
4864 want to get started and lack a friend with any bitcoins to spare,
4865 you can even get
4866 &lt;a href=&quot;https://freebitcoins.appspot.com/&quot;&gt;some for free&lt;/a&gt; (0.05
4867 bitcoin at the time of writing). Use
4868 &lt;a href=&quot;http://www.bitcoinwatch.com/&quot;&gt;BitcoinWatch&lt;/a&gt; to keep an eye
4869 on the current exchange rates.&lt;/p&gt;
4870
4871 &lt;p&gt;As an experiment, I have decided to set up bitcoind on one of my
4872 machines. If you want to support my activity, please send Bitcoin
4873 donations to the address
4874 &lt;b&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/b&gt;. Thank you!&lt;/p&gt;
4875 </description>
4876 </item>
4877
4878 <item>
4879 <title>Some thoughts on BitCoins</title>
4880 <link>http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html</link>
4881 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html</guid>
4882 <pubDate>Sat, 11 Dec 2010 15:10:00 +0100</pubDate>
4883 <description>&lt;p&gt;As I continue to explore
4884 &lt;a href=&quot;http://www.bitcoin.org/&quot;&gt;BitCoin&lt;/a&gt;, I&#39;ve starting to wonder
4885 what properties the system have, and how it will be affected by laws
4886 and regulations here in Norway. Here are some random notes.&lt;/p&gt;
4887
4888 &lt;p&gt;One interesting thing to note is that since the transactions are
4889 verified using a peer to peer network, all details about a transaction
4890 is known to everyone. This means that if a BitCoin address has been
4891 published like I did with mine in my initial post about BitCoin, it is
4892 possible for everyone to see how many BitCoins have been transfered to
4893 that address. There is even a web service to look at the details for
4894 all transactions. There I can see that my address
4895 &lt;a href=&quot;http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;
4896 have received 16.06 Bitcoin, the
4897 &lt;a href=&quot;http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3&quot;&gt;1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3&lt;/a&gt;
4898 address of Simon Phipps have received 181.97 BitCoin and the address
4899 &lt;a href=&quot;http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt&quot;&gt;1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt&lt;/A&gt;
4900 of EFF have received 2447.38 BitCoins so far. Thank you to each and
4901 every one of you that donated bitcoins to support my activity. The
4902 fact that anyone can see how much money was transfered to a given
4903 address make it more obvious why the BitCoin community recommend to
4904 generate and hand out a new address for each transaction. I&#39;m told
4905 there is no way to track which addresses belong to a given person or
4906 organisation without the person or organisation revealing it
4907 themselves, as Simon, EFF and I have done.&lt;/p&gt;
4908
4909 &lt;p&gt;In Norway, and in most other countries, there are laws and
4910 regulations limiting how much money one can transfer across the border
4911 without declaring it. There are money laundering, tax and accounting
4912 laws and regulations I would expect to apply to the use of BitCoin.
4913 If the Skolelinux foundation
4914 (&lt;a href=&quot;http://linuxiskolen.no/slxdebianlabs/donations.html&quot;&gt;SLX
4915 Debian Labs&lt;/a&gt;) were to accept donations in BitCoin in addition to
4916 normal bank transfers like EFF is doing, how should this be accounted?
4917 Given that it is impossible to know if money can across the border or
4918 not, should everything or nothing be declared? What exchange rate
4919 should be used when calculating taxes? Would receivers have to pay
4920 income tax if the foundation were to pay Skolelinux contributors in
4921 BitCoin? I have no idea, but it would be interesting to know.&lt;/p&gt;
4922
4923 &lt;p&gt;For a currency to be useful and successful, it must be trusted and
4924 accepted by a lot of users. It must be possible to get easy access to
4925 the currency (as a wage or using currency exchanges), and it must be
4926 easy to spend it. At the moment BitCoin seem fairly easy to get
4927 access to, but there are very few places to spend it. I am not really
4928 a regular user of any of the vendor types currently accepting BitCoin,
4929 so I wonder when my kind of shop would start accepting BitCoins. I
4930 would like to buy electronics, travels and subway tickets, not herbs
4931 and books. :) The currency is young, and this will improve over time
4932 if it become popular, but I suspect regular banks will start to lobby
4933 to get BitCoin declared illegal if it become popular. I&#39;m sure they
4934 will claim it is helping fund terrorism and money laundering (which
4935 probably would be true, as is any currency in existence), but I
4936 believe the problems should be solved elsewhere and not by blaming
4937 currencies.&lt;/p&gt;
4938
4939 &lt;p&gt;The process of creating new BitCoins is called mining, and it is
4940 CPU intensive process that depend on a bit of luck as well (as one is
4941 competing against all the other miners currently spending CPU cycles
4942 to see which one get the next lump of cash). The &quot;winner&quot; get 50
4943 BitCoin when this happen. Yesterday I came across the obvious way to
4944 join forces to increase ones changes of getting at least some coins,
4945 by coordinating the work on mining BitCoins across several machines
4946 and people, and sharing the result if one is lucky and get the 50
4947 BitCoins. Check out
4948 &lt;a href=&quot;http://www.bluishcoder.co.nz/bitcoin-pool/&quot;&gt;BitCoin Pool&lt;/a&gt;
4949 if this sounds interesting. I have not had time to try to set up a
4950 machine to participate there yet, but have seen that running on ones
4951 own for a few days have not yield any BitCoins througth mining
4952 yet.&lt;/p&gt;
4953
4954 &lt;p&gt;Update 2010-12-15: Found an &lt;a
4955 href=&quot;http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi&quot;&gt;interesting
4956 criticism&lt;/a&gt; of bitcoin. Not quite sure how valid it is, but thought
4957 it was interesting to read. The arguments presented seem to be
4958 equally valid for gold, which was used as a currency for many years.&lt;/p&gt;
4959 </description>
4960 </item>
4961
4962 <item>
4963 <title>How to test if a laptop is working with Linux</title>
4964 <link>http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html</link>
4965 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html</guid>
4966 <pubDate>Wed, 22 Dec 2010 14:55:00 +0100</pubDate>
4967 <description>&lt;p&gt;The last few days I have spent at work here at the &lt;a
4968 href=&quot;http://www.uio.no/&quot;&gt;University of Oslo&lt;/a&gt; testing if the new
4969 batch of computers will work with Linux. Every year for the last few
4970 years the university have organised shared bid of a few thousand
4971 computers, and this year HP won the bid. Two different desktops and
4972 five different laptops are on the list this year. We in the UNIX
4973 group want to know which one of these computers work well with RHEL
4974 and Ubuntu, the two Linux distributions we currently handle at the
4975 university.&lt;/p&gt;
4976
4977 &lt;p&gt;My test method is simple, and I share it here to get feedback and
4978 perhaps inspire others to test hardware as well. To test, I PXE
4979 install the OS version of choice, and log in as my normal user and run
4980 a few applications and plug in selected pieces of hardware. When
4981 something fail, I make a note about this in the test matrix and move
4982 on. If I have some spare time I try to report the bug to the OS
4983 vendor, but as I only have the machines for a short time, I rarely
4984 have the time to do this for all the problems I find.&lt;/p&gt;
4985
4986 &lt;p&gt;Anyway, to get to the point of this post. Here is the simple tests
4987 I perform on a new model.&lt;/p&gt;
4988
4989 &lt;ul&gt;
4990
4991 &lt;li&gt;Is PXE installation working? I&#39;m testing with RHEL6, Ubuntu Lucid
4992 and Ubuntu Maverik at the moment. If I feel like it, I also test with
4993 RHEL5 and Debian Edu/Squeeze.&lt;/li&gt;
4994
4995 &lt;li&gt;Is X.org working? If the graphical login screen show up after
4996 installation, X.org is working.&lt;/li&gt;
4997
4998 &lt;li&gt;Is hardware accelerated OpenGL working? Running glxgears (in
4999 package mesa-utils on Ubuntu) and writing down the frames per second
5000 reported by the program.&lt;/li&gt;
5001
5002 &lt;li&gt;Is sound working? With Gnome and KDE, a sound is played when
5003 logging in, and if I can hear this the test is successful. If there
5004 are several audio exits on the machine, I try them all and check if
5005 the Gnome/KDE audio mixer can control where to send the sound. I
5006 normally test this by playing
5007 &lt;a href=&quot;http://www.nuug.no/aktiviteter/20101012-chef/ &quot;&gt;a HTML5
5008 video&lt;/a&gt; in Firefox/Iceweasel.&lt;/li&gt;
5009
5010 &lt;li&gt;Is the USB subsystem working? I test this by plugging in a USB
5011 memory stick and see if Gnome/KDE notices this.&lt;/li&gt;
5012
5013 &lt;li&gt;Is the CD/DVD player working? I test this by inserting any CD/DVD
5014 I have lying around, and see if Gnome/KDE notices this.&lt;/li&gt;
5015
5016 &lt;li&gt;Is any built in camera working? Test using cheese, and see if a
5017 picture from the v4l device show up.&lt;/li&gt;
5018
5019 &lt;li&gt;Is bluetooth working? Use the Gnome/KDE browsing tool to see if
5020 any bluetooth devices are discovered. In my office, I normally see a
5021 few.&lt;/li&gt;
5022
5023 &lt;li&gt;For laptops, is the SD or Compaq Flash reader working. I have
5024 memory modules lying around, and stick them in and see if Gnome/KDE
5025 notice this.&lt;/li&gt;
5026
5027 &lt;li&gt;For laptops, is suspend/hibernate working? I&#39;m testing if the
5028 special button work, and if the laptop continue to work after
5029 resume.&lt;/li&gt;
5030
5031 &lt;li&gt;For laptops, is the extra buttons working, like audio level,
5032 adjusting background light, switching on/off external video output,
5033 switching on/off wifi, bluetooth, etc? The set of buttons differ from
5034 laptop to laptop, so I just write down which are working and which are
5035 not.&lt;/li&gt;
5036
5037 &lt;li&gt;Some laptops have smart card readers, finger print readers,
5038 acceleration sensors etc. I rarely test these, as I do not know how
5039 to quickly test if they are working or not, so I only document their
5040 existence.&lt;/li&gt;
5041
5042 &lt;/ul&gt;
5043
5044 &lt;p&gt;By now I suspect you are really curious what the test results are
5045 for the HP machines I am testing. I&#39;m not done yet, so I will report
5046 the test results later. For now I can report that HP 8100 Elite work
5047 fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
5048 and audio fail on RHEL6. Ubuntu Maverik worked with 8440p. As you
5049 can see, I have most machines left to test. One interesting
5050 observation is that Ubuntu Lucid has almost twice the frame rate than
5051 RHEL6 with glxgears. No idea why.&lt;/p&gt;
5052 </description>
5053 </item>
5054
5055 <item>
5056 <title>Officeshots still going strong</title>
5057 <link>http://people.skolelinux.org/pere/blog/Officeshots_still_going_strong.html</link>
5058 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Officeshots_still_going_strong.html</guid>
5059 <pubDate>Sat, 25 Dec 2010 09:40:00 +0100</pubDate>
5060 <description>&lt;p&gt;Half a year ago I
5061 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Officeshots_taking_shape.html&quot;&gt;wrote
5062 a bit&lt;/a&gt; about &lt;a href=&quot;http://www.officeshots.org/&quot;&gt;OfficeShots&lt;/a&gt;,
5063 a web service to allow anyone to test how ODF documents are handled by
5064 the different programs reading and writing the ODF format.&lt;/p&gt;
5065
5066 &lt;p&gt;I just had a look at the service, and it seem to be going strong.
5067 Very interesting to see the results reported in the gallery, how
5068 different Office implementations handle different ODF features. Sad
5069 to see that KOffice was not doing it very well, and happy to see that
5070 LibreOffice has been tested already (but sadly not listed as a option
5071 for OfficeShots users yet). I am glad to see that the ODF community
5072 got such a great test tool available.&lt;/p&gt;
5073 </description>
5074 </item>
5075
5076 <item>
5077 <title>The reply from Edgar Villanueva to Microsoft in Peru</title>
5078 <link>http://people.skolelinux.org/pere/blog/The_reply_from_Edgar_Villanueva_to_Microsoft_in_Peru.html</link>
5079 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_reply_from_Edgar_Villanueva_to_Microsoft_in_Peru.html</guid>
5080 <pubDate>Sat, 25 Dec 2010 10:50:00 +0100</pubDate>
5081 <description>&lt;p&gt;A few days ago
5082 &lt;a href=&quot;http://www.idg.no/computerworld/article189879.ece&quot;&gt;an
5083 article&lt;/a&gt; in the Norwegian Computerworld magazine about how version
5084 2.0 of
5085 &lt;a href=&quot;http://en.wikipedia.org/wiki/European_Interoperability_Framework&quot;&gt;European
5086 Interoperability Framework&lt;/a&gt; has been successfully lobbied by the
5087 proprietary software industry to remove the focus on free software.
5088 Nothing very surprising there, given
5089 &lt;a href=&quot;http://news.slashdot.org/story/10/03/29/2115235/Open-Source-Open-Standards-Under-Attack-In-Europe&quot;&gt;earlier
5090 reports&lt;/a&gt; on how Microsoft and others have stacked the committees in
5091 this work. But I find this very sad. The definition of
5092 &lt;a href=&quot;http://www.nuug.no/dokumenter/standard-presse-def-200506.txt&quot;&gt;an
5093 open standard from version 1&lt;/a&gt; was very good, and something I
5094 believe should be used also in the future, alongside
5095 &lt;a href=&quot;http://www.digistan.org/open-standard:definition&quot;&gt;the
5096 definition from Digistan&lt;/A&gt;. Version 2 have removed the open
5097 standard definition from its content.&lt;/p&gt;
5098
5099 &lt;p&gt;Anyway, the news reminded me of the great reply sent by Dr. Edgar
5100 Villanueva, congressman in Peru at the time, to Microsoft as a reply
5101 to Microsofts attack on his proposal regarding the use of free software
5102 in the public sector in Peru. As the text was not available from a
5103 few of the URLs where it used to be available, I copy it here from
5104 &lt;a href=&quot;http://gnuwin.epfl.ch/articles/en/reponseperou/villanueva_to_ms.html&quot;&gt;my
5105 source&lt;/a&gt; to ensure it is available also in the future. Some
5106 background information about that story is available in
5107 &lt;a href=&quot;http://www.linuxjournal.com/article/6099&quot;&gt;an article&lt;/a&gt; from
5108 Linux Journal in 2002.&lt;/p&gt;
5109
5110 &lt;blockquote&gt;
5111 &lt;p&gt;Lima, 8th of April, 2002&lt;br&gt;
5112 To: Señor JUAN ALBERTO GONZÁLEZ&lt;br&gt;
5113 General Manager of Microsoft Perú&lt;/p&gt;
5114
5115 &lt;p&gt;Dear Sir:&lt;/p&gt;
5116
5117 &lt;p&gt;First of all, I thank you for your letter of March 25, 2002 in which you state the official position of Microsoft relative to Bill Number 1609, Free Software in Public Administration, which is indubitably inspired by the desire for Peru to find a suitable place in the global technological context. In the same spirit, and convinced that we will find the best solutions through an exchange of clear and open ideas, I will take this opportunity to reply to the commentaries included in your letter.&lt;/p&gt;
5118
5119 &lt;p&gt;While acknowledging that opinions such as yours constitute a significant contribution, it would have been even more worthwhile for me if, rather than formulating objections of a general nature (which we will analyze in detail later) you had gathered solid arguments for the advantages that proprietary software could bring to the Peruvian State, and to its citizens in general, since this would have allowed a more enlightening exchange in respect of each of our positions.&lt;/p&gt;
5120
5121 &lt;p&gt;With the aim of creating an orderly debate, we will assume that what you call &quot;open source software&quot; is what the Bill defines as &quot;free software&quot;, since there exists software for which the source code is distributed together with the program, but which does not fall within the definition established by the Bill; and that what you call &quot;commercial software&quot; is what the Bill defines as &quot;proprietary&quot; or &quot;unfree&quot;, given that there exists free software which is sold in the market for a price like any other good or service.&lt;/p&gt;
5122
5123 &lt;p&gt;It is also necessary to make it clear that the aim of the Bill we are discussing is not directly related to the amount of direct savings that can by made by using free software in state institutions. That is in any case a marginal aggregate value, but in no way is it the chief focus of the Bill. The basic principles which inspire the Bill are linked to the basic guarantees of a state of law, such as:&lt;/p&gt;
5124
5125 &lt;p&gt;
5126 &lt;ul&gt;
5127 &lt;li&gt;Free access to public information by the citizen. &lt;/li&gt;
5128 &lt;li&gt;Permanence of public data. &lt;/li&gt;
5129 &lt;li&gt;Security of the State and citizens.&lt;/li&gt;
5130 &lt;/ul&gt;
5131 &lt;/p&gt;
5132
5133 &lt;p&gt;To guarantee the free access of citizens to public information, it is indispensable that the encoding of data is not tied to a single provider. The use of standard and open formats gives a guarantee of this free access, if necessary through the creation of compatible free software.&lt;/p&gt;
5134
5135 &lt;p&gt;To guarantee the permanence of public data, it is necessary that the usability and maintenance of the software does not depend on the goodwill of the suppliers, or on the monopoly conditions imposed by them. For this reason the State needs systems the development of which can be guaranteed due to the availability of the source code.&lt;/p&gt;
5136
5137 &lt;p&gt;To guarantee national security or the security of the State, it is indispensable to be able to rely on systems without elements which allow control from a distance or the undesired transmission of information to third parties. Systems with source code freely accessible to the public are required to allow their inspection by the State itself, by the citizens, and by a large number of independent experts throughout the world. Our proposal brings further security, since the knowledge of the source code will eliminate the growing number of programs with *spy code*. &lt;/p&gt;
5138
5139 &lt;p&gt;In the same way, our proposal strengthens the security of the citizens, both in their role as legitimate owners of information managed by the state, and in their role as consumers. In this second case, by allowing the growth of a widespread availability of free software not containing *spy code* able to put at risk privacy and individual freedoms.&lt;/p&gt;
5140
5141 &lt;p&gt;In this sense, the Bill is limited to establishing the conditions under which the state bodies will obtain software in the future, that is, in a way compatible with these basic principles.&lt;/p&gt;
5142
5143
5144 &lt;p&gt;From reading the Bill it will be clear that once passed:&lt;br&gt;
5145 &lt;li&gt;the law does not forbid the production of proprietary software&lt;/li&gt;
5146 &lt;li&gt;the law does not forbid the sale of proprietary software&lt;/li&gt;
5147 &lt;li&gt;the law does not specify which concrete software to use&lt;/li&gt;
5148 &lt;li&gt;the law does not dictate the supplier from whom software will be bought&lt;/li&gt;
5149 &lt;li&gt;the law does not limit the terms under which a software product can be licensed.&lt;/li&gt;
5150
5151 &lt;/p&gt;
5152
5153 &lt;p&gt;What the Bill does express clearly, is that, for software to be acceptable for the state it is not enough that it is technically capable of fulfilling a task, but that further the contractual conditions must satisfy a series of requirements regarding the license, without which the State cannot guarantee the citizen adequate processing of his data, watching over its integrity, confidentiality, and accessibility throughout time, as these are very critical aspects for its normal functioning.&lt;/p&gt;
5154
5155 &lt;p&gt;We agree, Mr. Gonzalez, that information and communication technology have a significant impact on the quality of life of the citizens (whether it be positive or negative). We surely also agree that the basic values I have pointed out above are fundamental in a democratic state like Peru. So we are very interested to know of any other way of guaranteeing these principles, other than through the use of free software in the terms defined by the Bill.&lt;/p&gt;
5156
5157 &lt;p&gt;As for the observations you have made, we will now go on to analyze them in detail:&lt;/p&gt;
5158
5159 &lt;p&gt;Firstly, you point out that: &quot;1. The bill makes it compulsory for all public bodies to use only free software, that is to say open source software, which breaches the principles of equality before the law, that of non-discrimination and the right of free private enterprise, freedom of industry and of contract, protected by the constitution.&quot;&lt;/p&gt;
5160
5161 &lt;p&gt;This understanding is in error. The Bill in no way affects the rights you list; it limits itself entirely to establishing conditions for the use of software on the part of state institutions, without in any way meddling in private sector transactions. It is a well established principle that the State does not enjoy the wide spectrum of contractual freedom of the private sector, as it is limited in its actions precisely by the requirement for transparency of public acts; and in this sense, the preservation of the greater common interest must prevail when legislating on the matter.&lt;/p&gt;
5162
5163 &lt;p&gt;The Bill protects equality under the law, since no natural or legal person is excluded from the right of offering these goods to the State under the conditions defined in the Bill and without more limitations than those established by the Law of State Contracts and Purchasing (T.U.O. by Supreme Decree No. 012-2001-PCM).&lt;/p&gt;
5164
5165 &lt;p&gt;The Bill does not introduce any discrimination whatever, since it only establishes *how* the goods have to be provided (which is a state power) and not *who* has to provide them (which would effectively be discriminatory, if restrictions based on national origin, race religion, ideology, sexual preference etc. were imposed). On the contrary, the Bill is decidedly antidiscriminatory. This is so because by defining with no room for doubt the conditions for the provision of software, it prevents state bodies from using software which has a license including discriminatory conditions.&lt;/p&gt;
5166
5167 &lt;p&gt;It should be obvious from the preceding two paragraphs that the Bill does not harm free private enterprise, since the latter can always choose under what conditions it will produce software; some of these will be acceptable to the State, and others will not be since they contradict the guarantee of the basic principles listed above. This free initiative is of course compatible with the freedom of industry and freedom of contract (in the limited form in which the State can exercise the latter). Any private subject can produce software under the conditions which the State requires, or can refrain from doing so. Nobody is forced to adopt a model of production, but if they wish to provide software to the State, they must provide the mechanisms which guarantee the basic principles, and which are those described in the Bill.&lt;/p&gt;
5168
5169 &lt;p&gt;By way of an example: nothing in the text of the Bill would prevent your company offering the State bodies an office &quot;suite&quot;, under the conditions defined in the Bill and setting the price that you consider satisfactory. If you did not, it would not be due to restrictions imposed by the law, but to business decisions relative to the method of commercializing your products, decisions with which the State is not involved.&lt;/p&gt;
5170
5171 &lt;p&gt;To continue; you note that:&quot; 2. The bill, by making the use of open source software compulsory, would establish discriminatory and non competitive practices in the contracting and purchasing by public bodies...&quot;&lt;/p&gt;
5172
5173 &lt;p&gt;This statement is just a reiteration of the previous one, and so the response can be found above. However, let us concern ourselves for a moment with your comment regarding &quot;non-competitive ... practices.&quot;&lt;/p&gt;
5174
5175 &lt;p&gt;Of course, in defining any kind of purchase, the buyer sets conditions which relate to the proposed use of the good or service. From the start, this excludes certain manufacturers from the possibility of competing, but does not exclude them &quot;a priori&quot;, but rather based on a series of principles determined by the autonomous will of the purchaser, and so the process takes place in conformance with the law. And in the Bill it is established that *no one* is excluded from competing as far as he guarantees the fulfillment of the basic principles.&lt;/p&gt;
5176
5177 &lt;p&gt;Furthermore, the Bill *stimulates* competition, since it tends to generate a supply of software with better conditions of usability, and to better existing work, in a model of continuous improvement.&lt;/p&gt;
5178
5179 &lt;p&gt;On the other hand, the central aspect of competivity is the chance to provide better choices to the consumer. Now, it is impossible to ignore the fact that marketing does not play a neutral role when the product is offered on the market (since accepting the opposite would lead one to suppose that firms&#39; expenses in marketing lack any sense), and that therefore a significant expense under this heading can influence the decisions of the purchaser. This influence of marketing is in large measure reduced by the bill that we are backing, since the choice within the framework proposed is based on the *technical merits* of the product and not on the effort put into commercialization by the producer; in this sense, competitiveness is increased, since the smallest software producer can compete on equal terms with the most powerful corporations.&lt;/p&gt;
5180
5181 &lt;p&gt;It is necessary to stress that there is no position more anti-competitive than that of the big software producers, which frequently abuse their dominant position, since in innumerable cases they propose as a solution to problems raised by users: &quot;update your software to the new version&quot; (at the user&#39;s expense, naturally); furthermore, it is common to find arbitrary cessation of technical help for products, which, in the provider&#39;s judgment alone, are &quot;old&quot;; and so, to receive any kind of technical assistance, the user finds himself forced to migrate to new versions (with non-trivial costs, especially as changes in hardware platform are often involved). And as the whole infrastructure is based on proprietary data formats, the user stays &quot;trapped&quot; in the need to continue using products from the same supplier, or to make the huge effort to change to another environment (probably also proprietary).&lt;/p&gt;
5182
5183 &lt;p&gt;You add: &quot;3. So, by compelling the State to favor a business model based entirely on open source, the bill would only discourage the local and international manufacturing companies, which are the ones which really undertake important expenditures, create a significant number of direct and indirect jobs, as well as contributing to the GNP, as opposed to a model of open source software which tends to have an ever weaker economic impact, since it mainly creates jobs in the service sector.&quot;&lt;/p&gt;
5184
5185 &lt;p&gt;I do not agree with your statement. Partly because of what you yourself point out in paragraph 6 of your letter, regarding the relative weight of services in the context of software use. This contradiction alone would invalidate your position. The service model, adopted by a large number of companies in the software industry, is much larger in economic terms, and with a tendency to increase, than the licensing of programs.&lt;/p&gt;
5186
5187 &lt;p&gt;On the other hand, the private sector of the economy has the widest possible freedom to choose the economic model which best suits its interests, even if this freedom of choice is often obscured subliminally by the disproportionate expenditure on marketing by the producers of proprietary software.&lt;/p&gt;
5188
5189 &lt;p&gt;In addition, a reading of your opinion would lead to the conclusion that the State market is crucial and essential for the proprietary software industry, to such a point that the choice made by the State in this bill would completely eliminate the market for these firms. If that is true, we can deduce that the State must be subsidizing the proprietary software industry. In the unlikely event that this were true, the State would have the right to apply the subsidies in the area it considered of greatest social value; it is undeniable, in this improbable hypothesis, that if the State decided to subsidize software, it would have to do so choosing the free over the proprietary, considering its social effect and the rational use of taxpayers money.&lt;/p&gt;
5190
5191 &lt;p&gt;In respect of the jobs generated by proprietary software in countries like ours, these mainly concern technical tasks of little aggregate value; at the local level, the technicians who provide support for proprietary software produced by transnational companies do not have the possibility of fixing bugs, not necessarily for lack of technical capability or of talent, but because they do not have access to the source code to fix it. With free software one creates more technically qualified employment and a framework of free competence where success is only tied to the ability to offer good technical support and quality of service, one stimulates the market, and one increases the shared fund of knowledge, opening up alternatives to generate services of greater total value and a higher quality level, to the benefit of all involved: producers, service organizations, and consumers.&lt;/p&gt;
5192
5193 &lt;p&gt;It is a common phenomenon in developing countries that local software industries obtain the majority of their takings in the service sector, or in the creation of &quot;ad hoc&quot; software. Therefore, any negative impact that the application of the Bill might have in this sector will be more than compensated by a growth in demand for services (as long as these are carried out to high quality standards). If the transnational software companies decide not to compete under these new rules of the game, it is likely that they will undergo some decrease in takings in terms of payment for licenses; however, considering that these firms continue to allege that much of the software used by the State has been illegally copied, one can see that the impact will not be very serious. Certainly, in any case their fortune will be determined by market laws, changes in which cannot be avoided; many firms traditionally associated with proprietary software have already set out on the road (supported by copious expense) of providing services associated with free software, which shows that the models are not mutually exclusive.&lt;/p&gt;
5194
5195 &lt;p&gt;With this bill the State is deciding that it needs to preserve certain fundamental values. And it is deciding this based on its sovereign power, without affecting any of the constitutional guarantees. If these values could be guaranteed without having to choose a particular economic model, the effects of the law would be even more beneficial. In any case, it should be clear that the State does not choose an economic model; if it happens that there only exists one economic model capable of providing software which provides the basic guarantee of these principles, this is because of historical circumstances, not because of an arbitrary choice of a given model.&lt;/p&gt;
5196
5197 &lt;p&gt;Your letter continues: &quot;4. The bill imposes the use of open source software without considering the dangers that this can bring from the point of view of security, guarantee, and possible violation of the intellectual property rights of third parties.&quot;&lt;/p&gt;
5198
5199 &lt;p&gt;Alluding in an abstract way to &quot;the dangers this can bring&quot;, without specifically mentioning a single one of these supposed dangers, shows at the least some lack of knowledge of the topic. So, allow me to enlighten you on these points.&lt;/p&gt;
5200
5201 &lt;p&gt;On security:&lt;/p&gt;
5202
5203 &lt;p&gt;National security has already been mentioned in general terms in the initial discussion of the basic principles of the bill. In more specific terms, relative to the security of the software itself, it is well known that all software (whether proprietary or free) contains errors or &quot;bugs&quot; (in programmers&#39; slang). But it is also well known that the bugs in free software are fewer, and are fixed much more quickly, than in proprietary software. It is not in vain that numerous public bodies responsible for the IT security of state systems in developed countries require the use of free software for the same conditions of security and efficiency.&lt;/p&gt;
5204
5205 &lt;p&gt;What is impossible to prove is that proprietary software is more secure than free, without the public and open inspection of the scientific community and users in general. This demonstration is impossible because the model of proprietary software itself prevents this analysis, so that any guarantee of security is based only on promises of good intentions (biased, by any reckoning) made by the producer itself, or its contractors.&lt;/p&gt;
5206
5207 &lt;p&gt;It should be remembered that in many cases, the licensing conditions include Non-Disclosure clauses which prevent the user from publicly revealing security flaws found in the licensed proprietary product.&lt;/p&gt;
5208
5209 &lt;p&gt;In respect of the guarantee:&lt;/p&gt;
5210
5211 &lt;p&gt;As you know perfectly well, or could find out by reading the &quot;End User License Agreement&quot; of the products you license, in the great majority of cases the guarantees are limited to replacement of the storage medium in case of defects, but in no case is compensation given for direct or indirect damages, loss of profits, etc... If as a result of a security bug in one of your products, not fixed in time by yourselves, an attacker managed to compromise crucial State systems, what guarantees, reparations and compensation would your company make in accordance with your licensing conditions? The guarantees of proprietary software, inasmuch as programs are delivered ``AS IS&#39;&#39;, that is, in the state in which they are, with no additional responsibility of the provider in respect of function, in no way differ from those normal with free software.&lt;/p&gt;
5212
5213 &lt;p&gt;On Intellectual Property:&lt;/p&gt;
5214
5215 &lt;p&gt;Questions of intellectual property fall outside the scope of this bill, since they are covered by specific other laws. The model of free software in no way implies ignorance of these laws, and in fact the great majority of free software is covered by copyright. In reality, the inclusion of this question in your observations shows your confusion in respect of the legal framework in which free software is developed. The inclusion of the intellectual property of others in works claimed as one&#39;s own is not a practice that has been noted in the free software community; whereas, unfortunately, it has been in the area of proprietary software. As an example, the condemnation by the Commercial Court of Nanterre, France, on 27th September 2001 of Microsoft Corp. to a penalty of 3 million francs in damages and interest, for violation of intellectual property (piracy, to use the unfortunate term that your firm commonly uses in its publicity).&lt;/p&gt;
5216
5217 &lt;p&gt;You go on to say that: &quot;The bill uses the concept of open source software incorrectly, since it does not necessarily imply that the software is free or of zero cost, and so arrives at mistaken conclusions regarding State savings, with no cost-benefit analysis to validate its position.&quot;&lt;/p&gt;
5218
5219 &lt;p&gt;This observation is wrong; in principle, freedom and lack of cost are orthogonal concepts: there is software which is proprietary and charged for (for example, MS Office), software which is proprietary and free of charge (MS Internet Explorer), software which is free and charged for (Red Hat, SuSE etc GNU/Linux distributions), software which is free and not charged for (Apache, Open Office, Mozilla), and even software which can be licensed in a range of combinations (MySQL).&lt;/p&gt;
5220
5221 &lt;p&gt;Certainly free software is not necessarily free of charge. And the text of the bill does not state that it has to be so, as you will have noted after reading it. The definitions included in the Bill state clearly *what* should be considered free software, at no point referring to freedom from charges. Although the possibility of savings in payments for proprietary software licenses are mentioned, the foundations of the bill clearly refer to the fundamental guarantees to be preserved and to the stimulus to local technological development. Given that a democratic State must support these principles, it has no other choice than to use software with publicly available source code, and to exchange information only in standard formats.&lt;/p&gt;
5222
5223 &lt;p&gt;If the State does not use software with these characteristics, it will be weakening basic republican principles. Luckily, free software also implies lower total costs; however, even given the hypothesis (easily disproved) that it was more expensive than proprietary software, the simple existence of an effective free software tool for a particular IT function would oblige the State to use it; not by command of this Bill, but because of the basic principles we enumerated at the start, and which arise from the very essence of the lawful democratic State.&lt;/p&gt;
5224
5225 &lt;p&gt;You continue: &quot;6. It is wrong to think that Open Source Software is free of charge. Research by the Gartner Group (an important investigator of the technological market recognized at world level) has shown that the cost of purchase of software (operating system and applications) is only 8% of the total cost which firms and institutions take on for a rational and truly beneficial use of the technology. The other 92% consists of: installation costs, enabling, support, maintenance, administration, and down-time.&quot;&lt;/p&gt;
5226
5227 &lt;p&gt;This argument repeats that already given in paragraph 5 and partly contradicts paragraph 3. For the sake of brevity we refer to the comments on those paragraphs. However, allow me to point out that your conclusion is logically false: even if according to Gartner Group the cost of software is on average only 8% of the total cost of use, this does not in any way deny the existence of software which is free of charge, that is, with a licensing cost of zero.&lt;/p&gt;
5228
5229 &lt;p&gt;In addition, in this paragraph you correctly point out that the service components and losses due to down-time make up the largest part of the total cost of software use, which, as you will note, contradicts your statement regarding the small value of services suggested in paragraph 3. Now the use of free software contributes significantly to reduce the remaining life-cycle costs. This reduction in the costs of installation, support etc. can be noted in several areas: in the first place, the competitive service model of free software, support and maintenance for which can be freely contracted out to a range of suppliers competing on the grounds of quality and low cost. This is true for installation, enabling, and support, and in large part for maintenance. In the second place, due to the reproductive characteristics of the model, maintenance carried out for an application is easily replicable, without incurring large costs (that is, without paying more than once for the same thing) since modifications, if one wishes, can be incorporated in the common fund of knowledge. Thirdly, the huge costs caused by non-functioning software (&quot;blue screens of death&quot;, malicious code such as virus, worms, and trojans, exceptions, general protection faults and other well-known problems) are reduced considerably by using more stable software; and it is well known that one of the most notable virtues of free software is its stability.&lt;/p&gt;
5230
5231 &lt;p&gt;You further state that: &quot;7. One of the arguments behind the bill is the supposed freedom from costs of open-source software, compared with the costs of commercial software, without taking into account the fact that there exist types of volume licensing which can be highly advantageous for the State, as has happened in other countries.&quot;&lt;/p&gt;
5232
5233 &lt;p&gt;I have already pointed out that what is in question is not the cost of the software but the principles of freedom of information, accessibility, and security. These arguments have been covered extensively in the preceding paragraphs to which I would refer you.&lt;/p&gt;
5234
5235 &lt;p&gt;On the other hand, there certainly exist types of volume licensing (although unfortunately proprietary software does not satisfy the basic principles). But as you correctly pointed out in the immediately preceding paragraph of your letter, they only manage to reduce the impact of a component which makes up no more than 8% of the total.&lt;/p&gt;
5236
5237 &lt;p&gt;You continue: &quot;8. In addition, the alternative adopted by the bill (I) is clearly more expensive, due to the high costs of software migration, and (II) puts at risk compatibility and interoperability of the IT platforms within the State, and between the State and the private sector, given the hundreds of versions of open source software on the market.&quot;&lt;/p&gt;
5238
5239 &lt;p&gt;Let us analyze your statement in two parts. Your first argument, that migration implies high costs, is in reality an argument in favor of the Bill. Because the more time goes by, the more difficult migration to another technology will become; and at the same time, the security risks associated with proprietary software will continue to increase. In this way, the use of proprietary systems and formats will make the State ever more dependent on specific suppliers. Once a policy of using free software has been established (which certainly, does imply some cost) then on the contrary migration from one system to another becomes very simple, since all data is stored in open formats. On the other hand, migration to an open software context implies no more costs than migration between two different proprietary software contexts, which invalidates your argument completely.&lt;/p&gt;
5240
5241 &lt;p&gt;The second argument refers to &quot;problems in interoperability of the IT platforms within the State, and between the State and the private sector&quot; This statement implies a certain lack of knowledge of the way in which free software is built, which does not maximize the dependence of the user on a particular platform, as normally happens in the realm of proprietary software. Even when there are multiple free software distributions, and numerous programs which can be used for the same function, interoperability is guaranteed as much by the use of standard formats, as required by the bill, as by the possibility of creating interoperable software given the availability of the source code.&lt;/p&gt;
5242
5243 &lt;p&gt;You then say that: &quot;9. The majority of open source code does not offer adequate levels of service nor the guarantee from recognized manufacturers of high productivity on the part of the users, which has led various public organizations to retract their decision to go with an open source software solution and to use commercial software in its place.&quot;&lt;/p&gt;
5244
5245 &lt;p&gt;This observation is without foundation. In respect of the guarantee, your argument was rebutted in the response to paragraph 4. In respect of support services, it is possible to use free software without them (just as also happens with proprietary software), but anyone who does need them can obtain support separately, whether from local firms or from international corporations, again just as in the case of proprietary software.&lt;/p&gt;
5246
5247 &lt;p&gt;On the other hand, it would contribute greatly to our analysis if you could inform us about free software projects *established* in public bodies which have already been abandoned in favor of proprietary software. We know of a good number of cases where the opposite has taken place, but not know of any where what you describe has taken place.&lt;/p&gt;
5248
5249 &lt;p&gt;You continue by observing that: &quot;10. The bill discourages the creativity of the Peruvian software industry, which invoices 40 million US$/year, exports 4 million US$ (10th in ranking among non-traditional exports, more than handicrafts) and is a source of highly qualified employment. With a law that encourages the use of open source, software programmers lose their intellectual property rights and their main source of payment.&quot;&lt;/p&gt;
5250
5251 &lt;p&gt;It is clear enough that nobody is forced to commercialize their code as free software. The only thing to take into account is that if it is not free software, it cannot be sold to the public sector. This is not in any case the main market for the national software industry. We covered some questions referring to the influence of the Bill on the generation of employment which would be both highly technically qualified and in better conditions for competition above, so it seems unnecessary to insist on this point.&lt;/p&gt;
5252
5253 &lt;p&gt;What follows in your statement is incorrect. On the one hand, no author of free software loses his intellectual property rights, unless he expressly wishes to place his work in the public domain. The free software movement has always been very respectful of intellectual property, and has generated widespread public recognition of its authors. Names like those of Richard Stallman, Linus Torvalds, Guido van Rossum, Larry Wall, Miguel de Icaza, Andrew Tridgell, Theo de Raadt, Andrea Arcangeli, Bruce Perens, Darren Reed, Alan Cox, Eric Raymond, and many others, are recognized world-wide for their contributions to the development of software that is used today by millions of people throughout the world. On the other hand, to say that the rewards for authors rights make up the main source of payment of Peruvian programmers is in any case a guess, in particular since there is no proof to this effect, nor a demonstration of how the use of free software by the State would influence these payments.&lt;/p&gt;
5254
5255 &lt;p&gt;You go on to say that: &quot;11. Open source software, since it can be distributed without charge, does not allow the generation of income for its developers through exports. In this way, the multiplier effect of the sale of software to other countries is weakened, and so in turn is the growth of the industry, while Government rules ought on the contrary to stimulate local industry.&quot;&lt;/p&gt;
5256
5257 &lt;p&gt;This statement shows once again complete ignorance of the mechanisms of and market for free software. It tries to claim that the market of sale of non- exclusive rights for use (sale of licenses) is the only possible one for the software industry, when you yourself pointed out several paragraphs above that it is not even the most important one. The incentives that the bill offers for the growth of a supply of better qualified professionals, together with the increase in experience that working on a large scale with free software within the State will bring for Peruvian technicians, will place them in a highly competitive position to offer their services abroad.&lt;/p&gt;
5258
5259 &lt;p&gt;You then state that: &quot;12. In the Forum, the use of open source software in education was discussed, without mentioning the complete collapse of this initiative in a country like Mexico, where precisely the State employees who founded the project now state that open source software did not make it possible to offer a learning experience to pupils in the schools, did not take into account the capability at a national level to give adequate support to the platform, and that the software did not and does not allow for the levels of platform integration that now exist in schools.&quot;&lt;/p&gt;
5260
5261 &lt;p&gt;In fact Mexico has gone into reverse with the Red Escolar (Schools Network) project. This is due precisely to the fact that the driving forces behind the Mexican project used license costs as their main argument, instead of the other reasons specified in our project, which are far more essential. Because of this conceptual mistake, and as a result of the lack of effective support from the SEP (Secretary of State for Public Education), the assumption was made that to implant free software in schools it would be enough to drop their software budget and send them a CD ROM with Gnu/Linux instead. Of course this failed, and it couldn&#39;t have been otherwise, just as school laboratories fail when they use proprietary software and have no budget for implementation and maintenance. That&#39;s exactly why our bill is not limited to making the use of free software mandatory, but recognizes the need to create a viable migration plan, in which the State undertakes the technical transition in an orderly way in order to then enjoy the advantages of free software.&lt;/p&gt;
5262
5263 &lt;p&gt;You end with a rhetorical question: &quot;13. If open source software satisfies all the requirements of State bodies, why do you need a law to adopt it? Shouldn&#39;t it be the market which decides freely which products give most benefits or value?&quot;&lt;/p&gt;
5264
5265 &lt;p&gt;We agree that in the private sector of the economy, it must be the market that decides which products to use, and no state interference is permissible there. However, in the case of the public sector, the reasoning is not the same: as we have already established, the state archives, handles, and transmits information which does not belong to it, but which is entrusted to it by citizens, who have no alternative under the rule of law. As a counterpart to this legal requirement, the State must take extreme measures to safeguard the integrity, confidentiality, and accessibility of this information. The use of proprietary software raises serious doubts as to whether these requirements can be fulfilled, lacks conclusive evidence in this respect, and so is not suitable for use in the public sector.&lt;/p&gt;
5266
5267 &lt;p&gt;The need for a law is based, firstly, on the realization of the fundamental principles listed above in the specific area of software; secondly, on the fact that the State is not an ideal homogeneous entity, but made up of multiple bodies with varying degrees of autonomy in decision making. Given that it is inappropriate to use proprietary software, the fact of establishing these rules in law will prevent the personal discretion of any state employee from putting at risk the information which belongs to citizens. And above all, because it constitutes an up-to-date reaffirmation in relation to the means of management and communication of information used today, it is based on the republican principle of openness to the public.&lt;/p&gt;
5268
5269 &lt;p&gt;In conformance with this universally accepted principle, the citizen has the right to know all information held by the State and not covered by well- founded declarations of secrecy based on law. Now, software deals with information and is itself information. Information in a special form, capable of being interpreted by a machine in order to execute actions, but crucial information all the same because the citizen has a legitimate right to know, for example, how his vote is computed or his taxes calculated. And for that he must have free access to the source code and be able to prove to his satisfaction the programs used for electoral computations or calculation of his taxes.&lt;/p&gt;
5270
5271 &lt;p&gt;I wish you the greatest respect, and would like to repeat that my office will always be open for you to expound your point of view to whatever level of detail you consider suitable.&lt;/p&gt;
5272
5273 &lt;p&gt;Cordially,&lt;br&gt;
5274 DR. EDGAR DAVID VILLANUEVA NUÑEZ&lt;br&gt;
5275 Congressman of the Republic of Perú.&lt;/p&gt;
5276 &lt;/blockquote&gt;
5277 </description>
5278 </item>
5279
5280 <item>
5281 <title>Is Ogg Theora a free and open standard?</title>
5282 <link>http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html</link>
5283 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html</guid>
5284 <pubDate>Sat, 25 Dec 2010 20:25:00 +0100</pubDate>
5285 <description>&lt;p&gt;&lt;a href=&quot;http://www.digistan.org/open-standard:definition&quot;&gt;The
5286 Digistan definition&lt;/a&gt; of a free and open standard reads like this:&lt;/p&gt;
5287
5288 &lt;blockquote&gt;
5289
5290 &lt;p&gt;The Digital Standards Organization defines free and open standard
5291 as follows:&lt;/p&gt;
5292
5293 &lt;ol&gt;
5294
5295 &lt;li&gt;A free and open standard is immune to vendor capture at all stages
5296 in its life-cycle. Immunity from vendor capture makes it possible to
5297 freely use, improve upon, trust, and extend a standard over time.&lt;/li&gt;
5298
5299 &lt;li&gt;The standard is adopted and will be maintained by a not-for-profit
5300 organisation, and its ongoing development occurs on the basis of an
5301 open decision-making procedure available to all interested
5302 parties.&lt;/li&gt;
5303
5304 &lt;li&gt;The standard has been published and the standard specification
5305 document is available freely. It must be permissible to all to copy,
5306 distribute, and use it freely.&lt;/li&gt;
5307
5308 &lt;li&gt;The patents possibly present on (parts of) the standard are made
5309 irrevocably available on a royalty-free basis.&lt;/li&gt;
5310
5311 &lt;li&gt;There are no constraints on the re-use of the standard.&lt;/li&gt;
5312
5313 &lt;/ol&gt;
5314
5315 &lt;p&gt;The economic outcome of a free and open standard, which can be
5316 measured, is that it enables perfect competition between suppliers of
5317 products based on the standard.&lt;/p&gt;
5318 &lt;/blockquote&gt;
5319
5320 &lt;p&gt;For a while now I have tried to figure out of Ogg Theora is a free
5321 and open standard according to this definition. Here is a short
5322 writeup of what I have been able to gather so far. I brought up the
5323 topic on the Xiph advocacy mailing list
5324 &lt;a href=&quot;http://lists.xiph.org/pipermail/advocacy/2009-July/001632.html&quot;&gt;in
5325 July 2009&lt;/a&gt;, for those that want to see some background information.
5326 According to Ivo Emanuel Gonçalves and Monty Montgomery on that list
5327 the Ogg Theora specification fulfils the Digistan definition.&lt;/p&gt;
5328
5329 &lt;p&gt;&lt;strong&gt;Free from vendor capture?&lt;/strong&gt;&lt;/p&gt;
5330
5331 &lt;p&gt;As far as I can see, there is no single vendor that can control the
5332 Ogg Theora specification. It can be argued that the
5333 &lt;a href=&quot;http://www.xiph.org/&quot;&gt;Xiph foundation&lt;/A&gt; is such vendor, but
5334 given that it is a non-profit foundation with the expressed goal
5335 making free and open protocols and standards available, it is not
5336 obvious that this is a real risk. One issue with the Xiph
5337 foundation is that its inner working (as in board member list, or who
5338 control the foundation) are not easily available on the web. I&#39;ve
5339 been unable to find out who is in the foundation board, and have not
5340 seen any accounting information documenting how money is handled nor
5341 where is is spent in the foundation. It is thus not obvious for an
5342 external observer who control The Xiph foundation, and for all I know
5343 it is possible for a single vendor to take control over the
5344 specification. But it seem unlikely.&lt;/p&gt;
5345
5346 &lt;p&gt;&lt;strong&gt;Maintained by open not-for-profit organisation?&lt;/strong&gt;&lt;/p&gt;
5347
5348 &lt;p&gt;Assuming that the Xiph foundation is the organisation its web pages
5349 claim it to be, this point is fulfilled. If Xiph foundation is
5350 controlled by a single vendor, it isn&#39;t, but I have not found any
5351 documentation indicating this.&lt;/p&gt;
5352
5353 &lt;p&gt;According to
5354 &lt;a href=&quot;http://media.hiof.no/diverse/fad/rapport_4.pdf&quot;&gt;a report&lt;/a&gt;
5355 prepared by Audun Vaaler og Børre Ludvigsen for the Norwegian
5356 government, the Xiph foundation is a non-commercial organisation and
5357 the development process is open, transparent and non-Discrimatory.
5358 Until proven otherwise, I believe it make most sense to believe the
5359 report is correct.&lt;/p&gt;
5360
5361 &lt;p&gt;&lt;strong&gt;Specification freely available?&lt;/strong&gt;&lt;/p&gt;
5362
5363 &lt;p&gt;The specification for the &lt;a href=&quot;http://www.xiph.org/ogg/doc/&quot;&gt;Ogg
5364 container format&lt;/a&gt; and both the
5365 &lt;a href=&quot;http://www.xiph.org/vorbis/doc/&quot;&gt;Vorbis&lt;/a&gt; and
5366 &lt;a href=&quot;http://theora.org/doc/&quot;&gt;Theora&lt;/a&gt; codeces are available on
5367 the web. This are the terms in the Vorbis and Theora specification:
5368
5369 &lt;blockquote&gt;
5370
5371 Anyone may freely use and distribute the Ogg and [Vorbis/Theora]
5372 specifications, whether in private, public, or corporate
5373 capacity. However, the Xiph.Org Foundation and the Ogg project reserve
5374 the right to set the Ogg [Vorbis/Theora] specification and certify
5375 specification compliance.
5376
5377 &lt;/blockquote&gt;
5378
5379 &lt;p&gt;The Ogg container format is specified in IETF
5380 &lt;a href=&quot;http://www.xiph.org/ogg/doc/rfc3533.txt&quot;&gt;RFC 3533&lt;/a&gt;, and
5381 this is the term:&lt;p&gt;
5382
5383 &lt;blockquote&gt;
5384
5385 &lt;p&gt;This document and translations of it may be copied and furnished to
5386 others, and derivative works that comment on or otherwise explain it
5387 or assist in its implementation may be prepared, copied, published and
5388 distributed, in whole or in part, without restriction of any kind,
5389 provided that the above copyright notice and this paragraph are
5390 included on all such copies and derivative works. However, this
5391 document itself may not be modified in any way, such as by removing
5392 the copyright notice or references to the Internet Society or other
5393 Internet organizations, except as needed for the purpose of developing
5394 Internet standards in which case the procedures for copyrights defined
5395 in the Internet Standards process must be followed, or as required to
5396 translate it into languages other than English.&lt;/p&gt;
5397
5398 &lt;p&gt;The limited permissions granted above are perpetual and will not be
5399 revoked by the Internet Society or its successors or assigns.&lt;/p&gt;
5400 &lt;/blockquote&gt;
5401
5402 &lt;p&gt;All these terms seem to allow unlimited distribution and use, an
5403 this term seem to be fulfilled. There might be a problem with the
5404 missing permission to distribute modified versions of the text, and
5405 thus reuse it in other specifications. Not quite sure if that is a
5406 requirement for the Digistan definition.&lt;/p&gt;
5407
5408 &lt;p&gt;&lt;strong&gt;Royalty-free?&lt;/strong&gt;&lt;/p&gt;
5409
5410 &lt;p&gt;There are no known patent claims requiring royalties for the Ogg
5411 Theora format.
5412 &lt;a href=&quot;http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=65782&quot;&gt;MPEG-LA&lt;/a&gt;
5413 and
5414 &lt;a href=&quot;http://yro.slashdot.org/story/10/04/30/237238/Steve-Jobs-Hints-At-Theora-Lawsuit&quot;&gt;Steve
5415 Jobs&lt;/a&gt; in Apple claim to know about some patent claims (submarine
5416 patents) against the Theora format, but no-one else seem to believe
5417 them. Both Opera Software and the Mozilla Foundation have looked into
5418 this and decided to implement Ogg Theora support in their browsers
5419 without paying any royalties. For now the claims from MPEG-LA and
5420 Steve Jobs seem more like FUD to scare people to use the H.264 codec
5421 than any real problem with Ogg Theora.&lt;/p&gt;
5422
5423 &lt;p&gt;&lt;strong&gt;No constraints on re-use?&lt;/strong&gt;&lt;/p&gt;
5424
5425 &lt;p&gt;I am not aware of any constraints on re-use.&lt;/p&gt;
5426
5427 &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
5428
5429 &lt;p&gt;3 of 5 requirements seem obviously fulfilled, and the remaining 2
5430 depend on the governing structure of the Xiph foundation. Given the
5431 background report used by the Norwegian government, I believe it is
5432 safe to assume the last two requirements are fulfilled too, but it
5433 would be nice if the Xiph foundation web site made it easier to verify
5434 this.&lt;/p&gt;
5435
5436 &lt;p&gt;It would be nice to see other analysis of other specifications to
5437 see if they are free and open standards.&lt;/p&gt;
5438 </description>
5439 </item>
5440
5441 <item>
5442 <title>The many definitions of a open standard</title>
5443 <link>http://people.skolelinux.org/pere/blog/The_many_definitions_of_a_open_standard.html</link>
5444 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_many_definitions_of_a_open_standard.html</guid>
5445 <pubDate>Mon, 27 Dec 2010 14:45:00 +0100</pubDate>
5446 <description>&lt;p&gt;One of the reasons I like the Digistan definition of
5447 &quot;&lt;a href=&quot;http://www.digistan.org/open-standard:definition&quot;&gt;Free and
5448 Open Standard&lt;/a&gt;&quot; is that this is a new term, and thus the meaning of
5449 the term has been decided by Digistan. The term &quot;Open Standard&quot; has
5450 become so misunderstood that it is no longer very useful when talking
5451 about standards. One end up discussing which definition is the best
5452 one and with such frame the only one gaining are the proponents of
5453 de-facto standards and proprietary solutions.&lt;/p&gt;
5454
5455 &lt;p&gt;But to give us an idea about the diversity of definitions of open
5456 standards, here are a few that I know about. This list is not
5457 complete, but can be a starting point for those that want to do a
5458 complete survey. More definitions are available on the
5459 &lt;a href=&quot;http://en.wikipedia.org/wiki/Open_standard&quot;&gt;wikipedia
5460 page&lt;/a&gt;.&lt;/p&gt;
5461
5462 &lt;p&gt;First off is my favourite, the definition from the European
5463 Interoperability Framework version 1.0. Really sad to notice that BSA
5464 and others has succeeded in getting it removed from version 2.0 of the
5465 framework by stacking the committee drafting the new version with
5466 their own people. Anyway, the definition is still available and it
5467 include the key properties needed to make sure everyone can use a
5468 specification on equal terms.&lt;/p&gt;
5469
5470 &lt;blockquote&gt;
5471
5472 &lt;p&gt;The following are the minimal characteristics that a specification
5473 and its attendant documents must have in order to be considered an
5474 open standard:&lt;/p&gt;
5475
5476 &lt;ul&gt;
5477
5478 &lt;li&gt;The standard is adopted and will be maintained by a not-for-profit
5479 organisation, and its ongoing development occurs on the basis of an
5480 open decision-making procedure available to all interested parties
5481 (consensus or majority decision etc.).&lt;/li&gt;
5482
5483 &lt;li&gt;The standard has been published and the standard specification
5484 document is available either freely or at a nominal charge. It must be
5485 permissible to all to copy, distribute and use it for no fee or at a
5486 nominal fee.&lt;/li&gt;
5487
5488 &lt;li&gt;The intellectual property - i.e. patents possibly present - of
5489 (parts of) the standard is made irrevocably available on a royalty-
5490 free basis.&lt;/li&gt;
5491
5492 &lt;li&gt;There are no constraints on the re-use of the standard.&lt;/li&gt;
5493
5494 &lt;/ul&gt;
5495 &lt;/blockquote&gt;
5496
5497 &lt;p&gt;Another one originates from my friends over at
5498 &lt;a href=&quot;http://www.dkuug.dk/&quot;&gt;DKUUG&lt;/a&gt;, who coined and gathered
5499 support for &lt;a href=&quot;http://www.aaben-standard.dk/&quot;&gt;this
5500 definition&lt;/a&gt; in 2004. It even made it into the Danish parlament as
5501 &lt;a href=&quot;http://www.ft.dk/dokumenter/tingdok.aspx?/samling/20051/beslutningsforslag/B103/som_fremsat.htm&quot;&gt;their
5502 definition of a open standard&lt;/a&gt;. Another from a different part of
5503 the Danish government is available from the wikipedia page.&lt;/p&gt;
5504
5505 &lt;blockquote&gt;
5506
5507 &lt;p&gt;En åben standard opfylder følgende krav:&lt;/p&gt;
5508
5509 &lt;ol&gt;
5510
5511 &lt;li&gt;Veldokumenteret med den fuldstændige specifikation offentligt
5512 tilgængelig.&lt;/li&gt;
5513
5514 &lt;li&gt;Frit implementerbar uden økonomiske, politiske eller juridiske
5515 begrænsninger på implementation og anvendelse.&lt;/li&gt;
5516
5517 &lt;li&gt;Standardiseret og vedligeholdt i et åbent forum (en såkaldt
5518 &quot;standardiseringsorganisation&quot;) via en åben proces.&lt;/li&gt;
5519
5520 &lt;/ol&gt;
5521
5522 &lt;/blockquote&gt;
5523
5524 &lt;p&gt;Then there is &lt;a href=&quot;http://www.fsfe.org/projects/os/def.html&quot;&gt;the
5525 definition&lt;/a&gt; from Free Software Foundation Europe.&lt;/p&gt;
5526
5527 &lt;blockquote&gt;
5528
5529 &lt;p&gt;An Open Standard refers to a format or protocol that is&lt;/p&gt;
5530
5531 &lt;ol&gt;
5532
5533 &lt;li&gt;subject to full public assessment and use without constraints in a
5534 manner equally available to all parties;&lt;/li&gt;
5535
5536 &lt;li&gt;without any components or extensions that have dependencies on
5537 formats or protocols that do not meet the definition of an Open
5538 Standard themselves;&lt;/li&gt;
5539
5540 &lt;li&gt;free from legal or technical clauses that limit its utilisation by
5541 any party or in any business model;&lt;/li&gt;
5542
5543 &lt;li&gt;managed and further developed independently of any single vendor
5544 in a process open to the equal participation of competitors and third
5545 parties;&lt;/li&gt;
5546
5547 &lt;li&gt;available in multiple complete implementations by competing
5548 vendors, or as a complete implementation equally available to all
5549 parties.&lt;/li&gt;
5550
5551 &lt;/ol&gt;
5552
5553 &lt;/blockquote&gt;
5554
5555 &lt;p&gt;A long time ago, SUN Microsystems, now bought by Oracle, created
5556 its
5557 &lt;a href=&quot;http://blogs.sun.com/dennisding/resource/Open%20Standard%20Definition.pdf&quot;&gt;Open
5558 Standards Checklist&lt;/a&gt; with a fairly detailed description.&lt;/p&gt;
5559
5560 &lt;blockquote&gt;
5561 &lt;p&gt;Creation and Management of an Open Standard
5562
5563 &lt;ul&gt;
5564
5565 &lt;li&gt;Its development and management process must be collaborative and
5566 democratic:
5567
5568 &lt;ul&gt;
5569
5570 &lt;li&gt;Participation must be accessible to all those who wish to
5571 participate and can meet fair and reasonable criteria
5572 imposed by the organization under which it is developed
5573 and managed.&lt;/li&gt;
5574
5575 &lt;li&gt;The processes must be documented and, through a known
5576 method, can be changed through input from all
5577 participants.&lt;/li&gt;
5578
5579 &lt;li&gt;The process must be based on formal and binding commitments for
5580 the disclosure and licensing of intellectual property rights.&lt;/li&gt;
5581
5582 &lt;li&gt;Development and management should strive for consensus,
5583 and an appeals process must be clearly outlined.&lt;/li&gt;
5584
5585 &lt;li&gt;The standard specification must be open to extensive
5586 public review at least once in its life-cycle, with
5587 comments duly discussed and acted upon, if required.&lt;/li&gt;
5588
5589 &lt;/ul&gt;
5590
5591 &lt;/li&gt;
5592
5593 &lt;/ul&gt;
5594
5595 &lt;p&gt;Use and Licensing of an Open Standard&lt;/p&gt;
5596 &lt;ul&gt;
5597
5598 &lt;li&gt;The standard must describe an interface, not an implementation,
5599 and the industry must be capable of creating multiple, competing
5600 implementations to the interface described in the standard without
5601 undue or restrictive constraints. Interfaces include APIs,
5602 protocols, schemas, data formats and their encoding.&lt;/li&gt;
5603
5604 &lt;li&gt; The standard must not contain any proprietary &quot;hooks&quot; that create
5605 a technical or economic barriers&lt;/li&gt;
5606
5607 &lt;li&gt;Faithful implementations of the standard must
5608 interoperate. Interoperability means the ability of a computer
5609 program to communicate and exchange information with other computer
5610 programs and mutually to use the information which has been
5611 exchanged. This includes the ability to use, convert, or exchange
5612 file formats, protocols, schemas, interface information or
5613 conventions, so as to permit the computer program to work with other
5614 computer programs and users in all the ways in which they are
5615 intended to function.&lt;/li&gt;
5616
5617 &lt;li&gt;It must be permissible for anyone to copy, distribute and read the
5618 standard for a nominal fee, or even no fee. If there is a fee, it
5619 must be low enough to not preclude widespread use.&lt;/li&gt;
5620
5621 &lt;li&gt;It must be possible for anyone to obtain free (no royalties or
5622 fees; also known as &quot;royalty free&quot;), worldwide, non-exclusive and
5623 perpetual licenses to all essential patent claims to make, use and
5624 sell products based on the standard. The only exceptions are
5625 terminations per the reciprocity and defensive suspension terms
5626 outlined below. Essential patent claims include pending, unpublished
5627 patents, published patents, and patent applications. The license is
5628 only for the exact scope of the standard in question.
5629
5630 &lt;ul&gt;
5631
5632 &lt;li&gt; May be conditioned only on reciprocal licenses to any of
5633 licensees&#39; patent claims essential to practice that standard
5634 (also known as a reciprocity clause)&lt;/li&gt;
5635
5636 &lt;li&gt; May be terminated as to any licensee who sues the licensor
5637 or any other licensee for infringement of patent claims
5638 essential to practice that standard (also known as a
5639 &quot;defensive suspension&quot; clause)&lt;/li&gt;
5640
5641 &lt;li&gt; The same licensing terms are available to every potential
5642 licensor&lt;/li&gt;
5643
5644 &lt;/ul&gt;
5645 &lt;/li&gt;
5646
5647 &lt;li&gt;The licensing terms of an open standards must not preclude
5648 implementations of that standard under open source licensing terms
5649 or restricted licensing terms&lt;/li&gt;
5650
5651 &lt;/ul&gt;
5652
5653 &lt;/blockquote&gt;
5654
5655 &lt;p&gt;It is said that one of the nice things about standards is that
5656 there are so many of them. As you can see, the same holds true for
5657 open standard definitions. Most of the definitions have a lot in
5658 common, and it is not really controversial what properties a open
5659 standard should have, but the diversity of definitions have made it
5660 possible for those that want to avoid a level marked field and real
5661 competition to downplay the significance of open standards. I hope we
5662 can turn this tide by focusing on the advantages of Free and Open
5663 Standards.&lt;/p&gt;
5664 </description>
5665 </item>
5666
5667 <item>
5668 <title>What standards are Free and Open as defined by Digistan?</title>
5669 <link>http://people.skolelinux.org/pere/blog/What_standards_are_Free_and_Open_as_defined_by_Digistan_.html</link>
5670 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_standards_are_Free_and_Open_as_defined_by_Digistan_.html</guid>
5671 <pubDate>Thu, 30 Dec 2010 23:15:00 +0100</pubDate>
5672 <description>&lt;p&gt;After trying to
5673 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Is_Ogg_Theora_a_free_and_open_standard_.html&quot;&gt;compare
5674 Ogg Theora&lt;/a&gt; to
5675 &lt;a href=&quot;http://www.digistan.org/open-standard:definition&quot;&gt;the Digistan
5676 definition&lt;/a&gt; of a free and open standard, I concluded that this need
5677 to be done for more standards and started on a framework for doing
5678 this. As a start, I want to get the status for all the standards in
5679 the Norwegian reference directory, which include UTF-8, HTML, PDF, ODF,
5680 JPEG, PNG, SVG and others. But to be able to complete this in a
5681 reasonable time frame, I will need help.&lt;/p&gt;
5682
5683 &lt;p&gt;If you want to help out with this work, please visit
5684 &lt;a href=&quot;http://wiki.nuug.no/grupper/standard/digistan-analyse&quot;&gt;the
5685 wiki pages I have set up for this&lt;/a&gt;, and let me know that you want
5686 to help out. The IRC channel #nuug on irc.freenode.net is a good
5687 place to coordinate this for now, as it is the IRC channel for the
5688 NUUG association where I have created the framework (I am the leader
5689 of the Norwegian Unix User Group).&lt;/p&gt;
5690
5691 &lt;p&gt;The framework is still forming, and a lot is left to do. Do not be
5692 scared by the sketchy form of the current pages. :)&lt;/p&gt;
5693 </description>
5694 </item>
5695
5696 <item>
5697 <title>Chrome plan to drop H.264 support for HTML5 &amp;lt;video&amp;gt;</title>
5698 <link>http://people.skolelinux.org/pere/blog/Chrome_plan_to_drop_H_264_support_for_HTML5__lt_video_gt_.html</link>
5699 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Chrome_plan_to_drop_H_264_support_for_HTML5__lt_video_gt_.html</guid>
5700 <pubDate>Wed, 12 Jan 2011 22:10:00 +0100</pubDate>
5701 <description>&lt;p&gt;Today I discovered
5702 &lt;a href=&quot;http://www.digi.no/860070/google-dropper-h264-stotten-i-chrome&quot;&gt;via
5703 digi.no&lt;/a&gt; that the Chrome developers, in a surprising announcement,
5704 &lt;a href=&quot;http://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html&quot;&gt;yesterday
5705 announced&lt;/a&gt; plans to drop H.264 support for HTML5 &amp;lt;video&amp;gt; in
5706 the browser. The argument used is that H.264 is not a &quot;completely
5707 open&quot; codec technology. If you believe H.264 was free for everyone
5708 to use, I recommend having a look at the essay
5709 &quot;&lt;a href=&quot;http://webmink.com/essays/h-264/&quot;&gt;H.264 – Not The Kind Of
5710 Free That Matters&lt;/a&gt;&quot;. It is not free of cost for creators of video
5711 tools, nor those of us that want to publish on the Internet, and the
5712 terms provided by MPEG-LA excludes free software projects from
5713 licensing the patents needed for H.264. Some background information
5714 on the Google announcement is available from
5715 &lt;a href=&quot;http://www.osnews.com/story/24243/Google_To_Drop_H264_Support_from_Chrome&quot;&gt;OSnews&lt;/a&gt;.
5716 A good read. :)&lt;/p&gt;
5717
5718 &lt;p&gt;Personally, I believe it is great that Google is taking a stand to
5719 promote equal terms for everyone when it comes to video publishing on
5720 the Internet. This can only be done by publishing using free and open
5721 standards, which is only possible if the web browsers provide support
5722 for these free and open standards. At the moment there seem to be two
5723 camps in the web browser world when it come to video support. Some
5724 browsers support H.264, and others support
5725 &lt;a href=&quot;http://www.theora.org/&quot;&gt;Ogg Theora&lt;/a&gt; and
5726 &lt;a href=&quot;http://www.webmproject.org/&quot;&gt;WebM&lt;/a&gt;
5727 (&lt;a href=&quot;http://www.diracvideo.org/&quot;&gt;Dirac&lt;/a&gt; is not really an option
5728 yet), forcing those of us that want to publish video on the Internet
5729 and which can not accept the terms of use presented by MPEG-LA for
5730 H.264 to not reach all potential viewers.
5731 Wikipedia keep &lt;a href=&quot;http://en.wikipedia.org/wiki/HTML5_video&quot;&gt;an
5732 updated summary&lt;/a&gt; of the current browser support.&lt;/p&gt;
5733
5734 &lt;p&gt;Not surprising, several people would prefer Google to keep
5735 promoting H.264, and John Gruber
5736 &lt;a href=&quot;http://daringfireball.net/2011/01/simple_questions&quot;&gt;presents
5737 the mind set&lt;/a&gt; of these people quite well. His rhetorical questions
5738 provoked a reply from Thom Holwerda with another set of questions
5739 &lt;a href=&quot;http://www.osnews.com/story/24245/10_Questions_for_John_Gruber_Regarding_H_264_WebM&quot;&gt;presenting
5740 the issues with H.264&lt;/a&gt;. Both are worth a read.&lt;/p&gt;
5741
5742 &lt;p&gt;Some argue that if Google is dropping H.264 because it isn&#39;t free,
5743 they should also drop support for the Adobe Flash plugin. This
5744 argument was covered by Simon Phipps in
5745 &lt;a href=&quot;http://blogs.computerworlduk.com/simon-says/2011/01/google-and-h264---far-from-hypocritical/index.htm&quot;&gt;todays
5746 blog post&lt;/a&gt;, which I find to put the issue in context. To me it
5747 make perfect sense to drop native H.264 support for HTML5 in the
5748 browser while still allowing plugins.&lt;/p&gt;
5749
5750 &lt;p&gt;I suspect the reason this announcement make so many people protest,
5751 is that all the users and promoters of H.264 suddenly get an uneasy
5752 feeling that they might be backing the wrong horse. A lot of TV
5753 broadcasters have been moving to H.264 the last few years, and a lot
5754 of money has been invested in hardware based on the belief that they
5755 could use the same video format for both broadcasting and web
5756 publishing. Suddenly this belief is shaken.&lt;/p&gt;
5757
5758 &lt;p&gt;An interesting question is why Google is doing this. While the
5759 presented argument might be true enough, I believe Google would only
5760 present the argument if the change make sense from a business
5761 perspective. One reason might be that they are currently negotiating
5762 with MPEG-LA over royalties or usage terms, and giving MPEG-LA the
5763 feeling that dropping H.264 completely from Chroome, Youtube and
5764 Google Video would improve the negotiation position of Google.
5765 Another reason might be that Google want to save money by not having
5766 to pay the video tax to MPEG-LA at all, and thus want to move to a
5767 video format not requiring royalties at all. A third reason might be
5768 that the Chrome development team simply want to avoid the
5769 Chrome/Chromium split to get more help with the development of Chrome.
5770 I guess time will tell.&lt;/p&gt;
5771
5772 &lt;p&gt;Update 2011-01-15: The Google Chrome team provided
5773 &lt;a href=&quot;http://blog.chromium.org/2011/01/more-about-chrome-html-video-codec.html&quot;&gt;more
5774 background and information on the move&lt;/a&gt; it a blog post yesterday.&lt;/p&gt;
5775 </description>
5776 </item>
5777
5778 <item>
5779 <title>The video format most supported in web browsers?</title>
5780 <link>http://people.skolelinux.org/pere/blog/The_video_format_most_supported_in_web_browsers_.html</link>
5781 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_video_format_most_supported_in_web_browsers_.html</guid>
5782 <pubDate>Sun, 16 Jan 2011 00:20:00 +0100</pubDate>
5783 <description>&lt;p&gt;The video format struggle on the web continues, and the three
5784 contenders seem to be Ogg Theora, H.264 and WebM. Most video sites
5785 seem to use H.264, while others use Ogg Theora. Interestingly enough,
5786 the comments I see give me the feeling that a lot of people believe
5787 H.264 is the most supported video format in browsers, but according to
5788 the Wikipedia article on
5789 &lt;a href=&quot;http://en.wikipedia.org/wiki/HTML5_video&quot;&gt;HTML5 video&lt;/a&gt;,
5790 this is not true. Check out the nice table of supprted formats in
5791 different browsers there. The format supported by most browsers is
5792 Ogg Theora, supported by released versions of Mozilla Firefox, Google
5793 Chrome, Chromium, Opera, Konqueror, Epiphany, Origyn Web Browser and
5794 BOLT browser, while not supported by Internet Explorer nor Safari.
5795 The runner up is WebM supported by released versions of Google Chrome
5796 Chromium Opera and Origyn Web Browser, and test versions of Mozilla
5797 Firefox. H.264 is supported by released versions of Safari, Origyn
5798 Web Browser and BOLT browser, and the test version of Internet
5799 Explorer. Those wanting Ogg Theora support in Internet Explorer and
5800 Safari can install plugins to get it.&lt;/p&gt;
5801
5802 &lt;p&gt;To me, the simple conclusion from this is that to reach most users
5803 without any extra software installed, one uses Ogg Theora with the
5804 HTML5 video tag. Of course to reach all those without a browser
5805 handling HTML5, one need fallback mechanisms. In
5806 &lt;a href=&quot;http://www.nuug.no/&quot;&gt;NUUG&lt;/a&gt;, we provide first fallback to a
5807 plugin capable of playing MPEG1 video, and those without such support
5808 we have a second fallback to the Cortado java applet playing Ogg
5809 Theora. This seem to work quite well, as can be seen in an &lt;a
5810 href=&quot;http://www.nuug.no/aktiviteter/20110111-semantic-web/&quot;&gt;example
5811 from last week&lt;/a&gt;.&lt;/p&gt;
5812
5813 &lt;p&gt;The reason Ogg Theora is the most supported format, and H.264 is
5814 the least supported is simple. Implementing and using H.264
5815 require royalty payment to MPEG-LA, and the terms of use from MPEG-LA
5816 are incompatible with free software licensing. If you believed H.264
5817 was without royalties and license terms, check out
5818 &quot;&lt;a href=&quot;http://webmink.com/essays/h-264/&quot;&gt;H.264 – Not The Kind Of
5819 Free That Matters&lt;/a&gt;&quot; by Simon Phipps.&lt;/p&gt;
5820
5821 &lt;p&gt;A incomplete list of sites providing video in Ogg Theora is
5822 available from
5823 &lt;a href=&quot;http://wiki.xiph.org/index.php/List_of_Theora_videos&quot;&gt;the
5824 Xiph.org wiki&lt;/a&gt;, if you want to have a look. I&#39;m not aware of a
5825 similar list for WebM nor H.264.&lt;/p&gt;
5826
5827 &lt;p&gt;Update 2011-01-16 09:40: A question from Tollef on IRC made me
5828 realise that I failed to make it clear enough this text is about the
5829 &amp;lt;video&amp;gt; tag support in browsers and not the video support
5830 provided by external plugins like the Flash plugins.&lt;/p&gt;
5831 </description>
5832 </item>
5833
5834 <item>
5835 <title>Which module is loaded for a given PCI and USB device?</title>
5836 <link>http://people.skolelinux.org/pere/blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html</link>
5837 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html</guid>
5838 <pubDate>Sun, 23 Jan 2011 00:20:00 +0100</pubDate>
5839 <description>&lt;p&gt;In the
5840 &lt;a href=&quot;http://packages.qa.debian.org/discover-data&quot;&gt;discover-data&lt;/a&gt;
5841 package in Debian, there is a script to report useful information
5842 about the running hardware for use when people report missing
5843 information. One part of this script that I find very useful when
5844 debugging hardware problems, is the part mapping loaded kernel module
5845 to the PCI device it claims. It allow me to quickly see if the kernel
5846 module I expect is driving the hardware I am struggling with. To see
5847 the output, make sure discover-data is installed and run
5848 &lt;tt&gt;/usr/share/bug/discover-data 3&gt;&amp;1&lt;/tt&gt;. The relevant output on
5849 one of my machines like this:&lt;/p&gt;
5850
5851 &lt;pre&gt;
5852 loaded modules:
5853 10de:03eb i2c_nforce2
5854 10de:03f1 ohci_hcd
5855 10de:03f2 ehci_hcd
5856 10de:03f0 snd_hda_intel
5857 10de:03ec pata_amd
5858 10de:03f6 sata_nv
5859 1022:1103 k8temp
5860 109e:036e bttv
5861 109e:0878 snd_bt87x
5862 11ab:4364 sky2
5863 &lt;/pre&gt;
5864
5865 &lt;p&gt;The code in question look like this, slightly modified for
5866 readability and to drop the output to file descriptor 3:&lt;/p&gt;
5867
5868 &lt;pre&gt;
5869 if [ -d /sys/bus/pci/devices/ ] ; then
5870 echo loaded pci modules:
5871 (
5872 cd /sys/bus/pci/devices/
5873 for address in * ; do
5874 if [ -d &quot;$address/driver/module&quot; ] ; then
5875 module=`cd $address/driver/module ; pwd -P | xargs basename`
5876 if grep -q &quot;^$module &quot; /proc/modules ; then
5877 address=$(echo $address |sed s/0000://)
5878 id=`lspci -n -s $address | tail -n 1 | awk &#39;{print $3}&#39;`
5879 echo &quot;$id $module&quot;
5880 fi
5881 fi
5882 done
5883 )
5884 echo
5885 fi
5886 &lt;/pre&gt;
5887
5888 &lt;p&gt;Similar code could be used to extract USB device module
5889 mappings:&lt;/p&gt;
5890
5891 &lt;pre&gt;
5892 if [ -d /sys/bus/usb/devices/ ] ; then
5893 echo loaded usb modules:
5894 (
5895 cd /sys/bus/usb/devices/
5896 for address in * ; do
5897 if [ -d &quot;$address/driver/module&quot; ] ; then
5898 module=`cd $address/driver/module ; pwd -P | xargs basename`
5899 if grep -q &quot;^$module &quot; /proc/modules ; then
5900 address=$(echo $address |sed s/0000://)
5901 id=$(lsusb -s $address | tail -n 1 | awk &#39;{print $6}&#39;)
5902 if [ &quot;$id&quot; ] ; then
5903 echo &quot;$id $module&quot;
5904 fi
5905 fi
5906 fi
5907 done
5908 )
5909 echo
5910 fi
5911 &lt;/pre&gt;
5912
5913 &lt;p&gt;This might perhaps be something to include in other tools as
5914 well.&lt;/p&gt;
5915 </description>
5916 </item>
5917
5918 <item>
5919 <title>Using NVD and CPE to track CVEs in locally maintained software</title>
5920 <link>http://people.skolelinux.org/pere/blog/Using_NVD_and_CPE_to_track_CVEs_in_locally_maintained_software.html</link>
5921 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_NVD_and_CPE_to_track_CVEs_in_locally_maintained_software.html</guid>
5922 <pubDate>Fri, 28 Jan 2011 15:40:00 +0100</pubDate>
5923 <description>&lt;p&gt;The last few days I have looked at ways to track open security
5924 issues here at my work with the University of Oslo. My idea is that
5925 it should be possible to use the information about security issues
5926 available on the Internet, and check our locally
5927 maintained/distributed software against this information. It should
5928 allow us to verify that no known security issues are forgotten. The
5929 CVE database listing vulnerabilities seem like a great central point,
5930 and by using the package lists from Debian mapped to CVEs provided by
5931 the testing security team, I believed it should be possible to figure
5932 out which security holes were present in our free software
5933 collection.&lt;/p&gt;
5934
5935 &lt;p&gt;After reading up on the topic, it became obvious that the first
5936 building block is to be able to name software packages in a unique and
5937 consistent way across data sources. I considered several ways to do
5938 this, for example coming up with my own naming scheme like using URLs
5939 to project home pages or URLs to the Freshmeat entries, or using some
5940 existing naming scheme. And it seem like I am not the first one to
5941 come across this problem, as MITRE already proposed and implemented a
5942 solution. Enter the &lt;a href=&quot;http://cpe.mitre.org/index.html&quot;&gt;Common
5943 Platform Enumeration&lt;/a&gt; dictionary, a vocabulary for referring to
5944 software, hardware and other platform components. The CPE ids are
5945 mapped to CVEs in the &lt;a href=&quot;http://web.nvd.nist.gov/&quot;&gt;National
5946 Vulnerability Database&lt;/a&gt;, allowing me to look up know security
5947 issues for any CPE name. With this in place, all I need to do is to
5948 locate the CPE id for the software packages we use at the university.
5949 This is fairly trivial (I google for &#39;cve cpe $package&#39; and check the
5950 NVD entry if a CVE for the package exist).&lt;/p&gt;
5951
5952 &lt;p&gt;To give you an example. The GNU gzip source package have the CPE
5953 name cpe:/a:gnu:gzip. If the old version 1.3.3 was the package to
5954 check out, one could look up
5955 &lt;a href=&quot;http://web.nvd.nist.gov/view/vuln/search?cpe=cpe%3A%2Fa%3Agnu%3Agzip:1.3.3&quot;&gt;cpe:/a:gnu:gzip:1.3.3
5956 in NVD&lt;/a&gt; and get a list of 6 security holes with public CVE entries.
5957 The most recent one is
5958 &lt;a href=&quot;http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001&quot;&gt;CVE-2010-0001&lt;/a&gt;,
5959 and at the bottom of the NVD page for this vulnerability the complete
5960 list of affected versions is provided.&lt;/p&gt;
5961
5962 &lt;p&gt;The NVD database of CVEs is also available as a XML dump, allowing
5963 for offline processing of issues. Using this dump, I&#39;ve written a
5964 small script taking a list of CPEs as input and list all CVEs
5965 affecting the packages represented by these CPEs. One give it CPEs
5966 with version numbers as specified above and get a list of open
5967 security issues out.&lt;/p&gt;
5968
5969 &lt;p&gt;Of course for this approach to be useful, the quality of the NVD
5970 information need to be high. For that to happen, I believe as many as
5971 possible need to use and contribute to the NVD database. I notice
5972 RHEL is providing
5973 &lt;a href=&quot;https://www.redhat.com/security/data/metrics/rhsamapcpe.txt&quot;&gt;a
5974 map from CVE to CPE&lt;/a&gt;, indicating that they are using the CPE
5975 information. I&#39;m not aware of Debian and Ubuntu doing the same.&lt;/p&gt;
5976
5977 &lt;p&gt;To get an idea about the quality for free software, I spent some
5978 time making it possible to compare the CVE database from Debian with
5979 the CVE database in NVD. The result look fairly good, but there are
5980 some inconsistencies in NVD (same software package having several
5981 CPEs), and some inaccuracies (NVD not mentioning buggy packages that
5982 Debian believe are affected by a CVE). Hope to find time to improve
5983 the quality of NVD, but that require being able to get in touch with
5984 someone maintaining it. So far my three emails with questions and
5985 corrections have not seen any reply, but I hope contact can be
5986 established soon.&lt;/p&gt;
5987
5988 &lt;p&gt;An interesting application for CPEs is cross platform package
5989 mapping. It would be useful to know which packages in for example
5990 RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
5991 this would be trivial if all linux distributions provided CPE entries
5992 for their packages.&lt;/p&gt;
5993 </description>
5994 </item>
5995
5996 <item>
5997 <title>A Norwegian FixMyStreet have kept me busy the last few weeks</title>
5998 <link>http://people.skolelinux.org/pere/blog/A_Norwegian_FixMyStreet_have_kept_me_busy_the_last_few_weeks.html</link>
5999 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_Norwegian_FixMyStreet_have_kept_me_busy_the_last_few_weeks.html</guid>
6000 <pubDate>Sun, 3 Apr 2011 22:50:00 +0200</pubDate>
6001 <description>&lt;p&gt;Here is a small update for my English readers. Most of my blog
6002 posts have been in Norwegian the last few weeks, so here is a short
6003 update in English.&lt;/p&gt;
6004
6005 &lt;p&gt;The kids still keep me too busy to get much free software work
6006 done, but I did manage to organise a project to get a Norwegian port
6007 of the British service
6008 &lt;a href=&quot;http://www.fixmystreet.com/&quot;&gt;FixMyStreet&lt;/a&gt; up and running,
6009 and it has been running for a month now. The entire project has been
6010 organised by me and two others. Around Christmas we gathered sponsors
6011 to fund the development work. In January I drafted a contract with
6012 &lt;a href=&quot;http://www.mysociety.org/&quot;&gt;mySociety&lt;/a&gt; on what to develop,
6013 and in February the development took place. Most of it involved
6014 converting the source to use GPS coordinates instead of British
6015 easting/northing, and the resulting code should be a lot easier to get
6016 running in any country by now. The Norwegian
6017 &lt;a href=&quot;http://www.fiksgatami.no/&quot;&gt;FiksGataMi&lt;/a&gt; is using
6018 &lt;a href=&quot;http://www.openstreetmap.org/&quot;&gt;OpenStreetmap&lt;/a&gt; as the map
6019 source and the source for administrative borders in Norway, and
6020 support for this had to be added/fixed.&lt;/p&gt;
6021
6022 &lt;p&gt;The Norwegian version went live March 3th, and we spent the weekend
6023 polishing the system before we announced it March 7th. The system is
6024 running on a KVM instance of Debian/Squeeze, and has seen almost 3000
6025 problem reports in a few weeks. Soon we hope to announce the Android
6026 and iPhone versions making it even easier to report problems with the
6027 public infrastructure.&lt;/p&gt;
6028
6029 &lt;p&gt;Perhaps something to consider for those of you in countries without
6030 such service?&lt;/p&gt;
6031 </description>
6032 </item>
6033
6034 <item>
6035 <title>Gnash enteres Google Summer of Code 2011</title>
6036 <link>http://people.skolelinux.org/pere/blog/Gnash_enteres_Google_Summer_of_Code_2011.html</link>
6037 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Gnash_enteres_Google_Summer_of_Code_2011.html</guid>
6038 <pubDate>Wed, 6 Apr 2011 09:00:00 +0200</pubDate>
6039 <description>&lt;p&gt;&lt;a href=&quot;http://www.getgnash.org/&quot;&gt;The Gnash project&lt;/a&gt; is still
6040 the most promising solution for a Free Software Flash implementation.
6041 A few days ago the project
6042 &lt;a href=&quot;http://lists.gnu.org/archive/html/gnash-dev/2011-04/msg00011.html&quot;&gt;announced&lt;/a&gt;
6043 that it will participate in Google Summer of Code. I hope many
6044 students apply, and that some of them succeed in getting AVM2 support
6045 into Gnash.&lt;/p&gt;
6046 </description>
6047 </item>
6048
6049 <item>
6050 <title>Initial notes on adding Open311 server API on FixMyStreet</title>
6051 <link>http://people.skolelinux.org/pere/blog/Initial_notes_on_adding_Open311_server_API_on_FixMyStreet.html</link>
6052 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Initial_notes_on_adding_Open311_server_API_on_FixMyStreet.html</guid>
6053 <pubDate>Fri, 29 Apr 2011 10:00:00 +0200</pubDate>
6054 <description>&lt;p&gt;The last few days I have spent some time trying to add support for
6055 the &lt;a href=&quot;http://www.open311.org/&quot;&gt;Open311 API&lt;/a&gt; in the
6056 &lt;a href=&quot;http://www.fiksgatami.no/&quot;&gt;Norwegian FixMyStreet service&lt;/a&gt;.
6057 Earlier I believed Open311 would be a useful API to use to submit
6058 reports to the municipalities, but when I noticed that the
6059 &lt;a href=&quot;http://fixmystreet.org.nz/&quot;&gt;New Zealand version&lt;/a&gt; of
6060 FixMyStreet had implemented Open311 on the server side, it occurred to
6061 me that this was a nice way to allow the public, press and
6062 municipalities to do data mining directly in the FixMyStreet service.
6063 Thus I went to work implementing the Open311 specification for
6064 FixMyStreet. The implementation is not yet ready, but I am starting
6065 to get a draft limping along. In the process, I have discovered a few
6066 issues with the Open311 specification.&lt;/p&gt;
6067
6068 &lt;p&gt;One obvious missing feature is the lack of natural language
6069 handling in the specification. The specification seem to assume all
6070 reports will be written in English, and do not provide a way for the
6071 receiving end to specify which languages are understood there. To be
6072 able to use the same client and submit to several Open311 receivers,
6073 it would be useful to know which language to use when writing reports.
6074 I believe the specification should be extended to allow the receivers
6075 of problem reports to specify which language they accept, and the
6076 submitter to specify which language the report is written in.
6077 Language of a text can also be automatically guessed using statistical
6078 methods, but for multi-lingual persons like myself, it is useful to
6079 know which language to use when writing a problem report. I suspect
6080 some lang=nb,nn kind of attribute would solve it.&lt;/p&gt;
6081
6082 &lt;p&gt;A key part of the Open311 API is the list of services provided,
6083 which is similar to the categories used by FixMyStreet. One issue I
6084 run into is the need to specify both name and unique identifier for
6085 each category. The specification do not state that the identifier
6086 should be numeric, but all example implementations have used numbers
6087 here. In FixMyStreet, there is no number associated with each
6088 category. As the specification do not forbid it, I will use the name
6089 as the unique identifier for now and see how open311 clients handle
6090 it.&lt;/p&gt;
6091
6092 &lt;p&gt;The report format in open311 and the report format in FixMyStreet
6093 differ in a key part. FixMyStreet have a title and a description,
6094 while Open311 only have a description and lack the title. I&#39;m not
6095 quite sure how to best handle this yet. When asking for a FixMyStreet
6096 report in Open311 format, I just merge title an description into the
6097 open311 description, but this is not going to work if the open311 API
6098 should be used for submitting new reports to FixMyStreet.&lt;/p&gt;
6099
6100 &lt;p&gt;The search feature in Open311 is missing a way to ask for problems
6101 near a geographic location. I believe this is important if one is to
6102 use Open311 as the query language for mobile units. The specification
6103 should be extended to handle this, probably using some new lat=, lon=
6104 and range= options.&lt;/p&gt;
6105
6106 &lt;p&gt;The final challenge I see is that the FixMyStreet code handle
6107 several administrations in one interface, while the Open311 API seem
6108 to assume only one administration. For FixMyStreet, this mean a
6109 report can be sent to several administrations, and the categories
6110 available depend on the location of the problem. Not quite sure how
6111 to best handle this. I&#39;ve noticed
6112 &lt;a href=&quot;http://seeclickfix.com/open311/&quot;&gt;SeeClickFix&lt;/a&gt; added
6113 latitude and longitude options to the services request, but it do not
6114 solve the problem of what to return when no location is specified.
6115 Will have to investigate this a bit more.&lt;/p&gt;
6116
6117 &lt;p&gt;My distaste for web forums have kept me from bringing these issues
6118 up with the open311 developer group. I really wish they had a email
6119 list available via &lt;a href=&quot;http://www.gmane.org/&quot;&gt;Gmane&lt;/a&gt; to use for
6120 discussions instead of only
6121 &lt;a href=&quot;http://lists.open311.org/groups/discuss&quot;&gt;a forum&lt;a/&gt;. Oh,
6122 well. That will probably resolve itself, one way or another. I&#39;ve
6123 also tried visiting the IRC channel #open311 on FreeNode, but no-one
6124 seem to reply to my questions there. This make me wonder if I just
6125 fail to understand how the open311 community work. It sure do not
6126 work like the free software project communities I am used to.&lt;/p&gt;
6127 </description>
6128 </item>
6129
6130 <item>
6131 <title>Experimental Open311 API for the mySociety fixmystreet system</title>
6132 <link>http://people.skolelinux.org/pere/blog/Experimental_Open311_API_for_the_mySociety_fixmystreet_system.html</link>
6133 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Experimental_Open311_API_for_the_mySociety_fixmystreet_system.html</guid>
6134 <pubDate>Sat, 30 Apr 2011 17:20:00 +0200</pubDate>
6135 <description>&lt;p&gt;Today, the first draft implementation of an
6136 &lt;a href=&quot;http://www.open311.org/&quot;&gt;Open311 API&lt;/a&gt; for the Norwegian
6137 service &lt;a href=&quot;http://www.fiksgatami.no/&quot;&gt;FiksGataMi&lt;/a&gt; started to
6138 work. It is only available on the developer server for now, and I
6139 have not tested it using any existing Open311 client (I lack the
6140 platforms needed to run the clients I have found so far), but it is
6141 able to query the database and extract a list of open and closed
6142 requests within a given category and reported to a given municipality.
6143 I believe that is a good start to create a useful service for those
6144 that want to do data mining on the requests submitted so far.&lt;/p&gt;
6145
6146 &lt;p&gt;Where is it? Visit
6147 &lt;a href=&quot;http://fiksgatami-dev.nuug.no/open311.cgi/v2/&quot;&gt;http://fiksgatami-dev.nuug.no/open311.cgi/v2/&lt;/a&gt;
6148 to have a look. Please send feedback to the
6149 &lt;a href=&quot;http://lists.nuug.no/mailman/listinfo/fiksgatami&quot;&gt;fiksgatami
6150 (at) nuug.no&lt;/a&gt; mailing list.&lt;/p&gt;
6151 </description>
6152 </item>
6153
6154 <item>
6155 <title>Free Software vs. proprietary softare...</title>
6156 <link>http://people.skolelinux.org/pere/blog/Free_Software_vs__proprietary_softare___.html</link>
6157 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Free_Software_vs__proprietary_softare___.html</guid>
6158 <pubDate>Mon, 20 Jun 2011 12:50:00 +0200</pubDate>
6159 <description>&lt;p&gt;Reading
6160 &lt;a href=&quot;http://blog.thingiverse.com/2011/06/20/open-source-vs-closed-source-eulas/&quot;&gt;the
6161 thingiverse blog&lt;/a&gt;, I came across two highlights of interesting
6162 parts of the
6163 &lt;a href=&quot;http://wiki.blender.org/index.php/Autodesk_EULA&quot;&gt;Autodesk&lt;/a&gt;
6164 and
6165 &lt;a href=&quot;http://blog.makezine.com/archive/2011/06/things-you-cant-do-with-the-microsoft-kinect-sdk.html&quot;&gt;Microsoft
6166 Kinect&lt;/a&gt; End User License Agreements (EULAs), which illustrates
6167 quite well why I stay away from software with EULAs. Whenever I take
6168 the time to read their content, the terms are simply unacceptable.&lt;/p&gt;
6169 </description>
6170 </item>
6171
6172 <item>
6173 <title>Perl modules used by FixMyStreet which are missing in Debian/Squeeze</title>
6174 <link>http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html</link>
6175 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html</guid>
6176 <pubDate>Tue, 26 Jul 2011 12:25:00 +0200</pubDate>
6177 <description>&lt;p&gt;The Norwegian &lt;a href=&quot;http://www.fiksgatami.no/&quot;&gt;FiksGataMi&lt;/A&gt;
6178 site is build on Debian/Squeeze, and this platform was chosen because
6179 I am most familiar with Debian (being a Debian Developer for around 10
6180 years) because it is the latest stable Debian release which should get
6181 security support for a few years.&lt;/p&gt;
6182
6183 &lt;p&gt;The web service is written in Perl, and depend on some perl modules
6184 that are missing in Debian at the moment. It would be great if these
6185 modules were added to the Debian archive, allowing anyone to set up
6186 their own &lt;a href=&quot;http://www.fixmystreet.com&quot;&gt;FixMyStreet&lt;/a&gt; clone
6187 in their own country using only Debian packages. The list of modules
6188 missing in Debian/Squeeze isn&#39;t very long, and I hope the perl group
6189 will find time to package the 12 modules Catalyst::Plugin::SmartURI,
6190 Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
6191 Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
6192 Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
6193 URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
6194 easier in the future.&lt;/p&gt;
6195
6196 &lt;p&gt;Thanks to the great tools in Debian, getting the missing modules
6197 installed on my server was a simple call to &#39;cpan2deb Module::Name&#39;
6198 and &#39;dpkg -i&#39; to install the resulting package. But this leave me
6199 with the responsibility of tracking security problems, which I really
6200 do not have time for.&lt;/p&gt;
6201 </description>
6202 </item>
6203
6204 <item>
6205 <title>What is missing in the Debian desktop, or why my parents use Kubuntu</title>
6206 <link>http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html</link>
6207 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html</guid>
6208 <pubDate>Fri, 29 Jul 2011 08:10:00 +0200</pubDate>
6209 <description>&lt;p&gt;While at Debconf11, I have several times during discussions
6210 mentioned the issues I believe should be improved in Debian for its
6211 desktop to be useful for more people. The use case for this is my
6212 parents, which are currently running Kubuntu which solve the
6213 issues.&lt;/p&gt;
6214
6215 &lt;p&gt;I suspect these four missing features are not very hard to
6216 implement. After all, they are present in Ubuntu, so if we wanted to
6217 do this in Debian we would have a source.&lt;/p&gt;
6218
6219 &lt;ol&gt;
6220
6221 &lt;li&gt;&lt;strong&gt;Simple GUI based upgrade of packages.&lt;/strong&gt; When there
6222 are new packages available for upgrades, a icon in the KDE status bar
6223 indicate this, and clicking on it will activate the simple upgrade
6224 tool to handle it. I have no problem guiding both of my parents
6225 through the process over the phone. If a kernel reboot is required,
6226 this too is indicated by the status bars and the upgrade tool. Last
6227 time I checked, nothing with the same features was working in KDE in
6228 Debian.&lt;/li&gt;
6229
6230 &lt;li&gt;&lt;strong&gt;Simple handling of missing Firefox browser
6231 plugins.&lt;/strong&gt; When the browser encounter a MIME type it do not
6232 currently have a handler for, it will ask the user if the system
6233 should search for a package that would add support for this MIME type,
6234 and if the user say yes, the APT sources will be searched for packages
6235 advertising the MIME type in their control file (visible in the
6236 Packages file in the APT archive). If one or more packages are found,
6237 it is a simple click of the mouse to add support for the missing mime
6238 type. If the package require the user to accept some non-free
6239 license, this is explained to the user. The entire process make it
6240 more clear to the user why something do not work in the browser, and
6241 make the chances higher for the user to blame the web page authors and
6242 not the browser for any missing features.&lt;/li&gt;
6243
6244 &lt;li&gt;&lt;strong&gt;Simple handling of missing multimedia codec/format
6245 handlers.&lt;/strong&gt; When the media players encounter a format or codec
6246 it is not supporting, a dialog pop up asking the user if the system
6247 should search for a package that would add support for it. This
6248 happen with things like MP3, Windows Media or H.264. The selection
6249 and installation procedure is very similar to the Firefox browser
6250 plugin handling. This is as far as I know implemented using a
6251 gstreamer hook. The end result is that the user easily get access to
6252 the codecs that are present from the APT archives available, while
6253 explaining more on why a given format is unsupported by Ubuntu.&lt;/li&gt;
6254
6255 &lt;li&gt;&lt;strong&gt;Better browser handling of some MIME types.&lt;/strong&gt; When
6256 displaying a text/plain file in my Debian browser, it will propose to
6257 start emacs to show it. If I remember correctly, when doing the same
6258 in Kunbutu it show the file as a text file in the browser. At least I
6259 know Opera will show text files within the browser. I much prefer the
6260 latter behaviour.&lt;/li&gt;
6261
6262 &lt;/ol&gt;
6263
6264 &lt;p&gt;There are other nice features as well, like the simplified suite
6265 upgrader, but given that I am the one mostly doing the dist-upgrade,
6266 it do not matter much.&lt;/p&gt;
6267
6268 &lt;p&gt;I really hope we could get these features in place for the next
6269 Debian release. It would require the coordinated effort of several
6270 maintainers, but would make the end user experience a lot better.&lt;/p&gt;
6271 </description>
6272 </item>
6273
6274 <item>
6275 <title>What should start from /etc/rcS.d/ in Debian? - almost nothing</title>
6276 <link>http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html</link>
6277 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html</guid>
6278 <pubDate>Sat, 30 Jul 2011 14:00:00 +0200</pubDate>
6279 <description>&lt;p&gt;In the Debian boot system, several packages include scripts that
6280 are started from /etc/rcS.d/. In fact, there is a bite more of them
6281 than make sense, and this causes a few problems. What kind of
6282 problems, you might ask. There are at least two problems. The first
6283 is that it is not possible to recover a machine after switching to
6284 runlevel 1. One need to actually reboot to get the machine back to
6285 the expected state. The other is that single user boot will sometimes
6286 run into problems because some of the subsystems are activated before
6287 the root login is presented, causing problems when trying to recover a
6288 machine from a problem in that subsystem. A minor additional point is
6289 that moving more scripts out of rcS.d/ and into the other rc#.d/
6290 directories will increase the amount of scripts that can run in
6291 parallel during boot, and thus decrease the boot time.&lt;/p&gt;
6292
6293 &lt;p&gt;So, which scripts should start from rcS.d/. In short, only the
6294 scripts that _have_ to execute before the root login prompt is
6295 presented during a single user boot should go there. Everything else
6296 should go into the numeric runlevels. This means things like
6297 lm-sensors, fuse and x11-common should not run from rcS.d, but from
6298 the numeric runlevels. Today in Debian, there are around 115 init.d
6299 scripts that are started from rcS.d/, and most of them should be moved
6300 out. Do your package have one of them? Please help us make single
6301 user and runlevel 1 better by moving it.&lt;/p&gt;
6302
6303 &lt;p&gt;Scripts setting up the screen, keyboard, system partitions
6304 etc. should still be started from rcS.d/, but there is for example no
6305 need to have the network enabled before the single user login prompt
6306 is presented.&lt;/p&gt;
6307
6308 &lt;p&gt;As always, things are not so easy to fix as they sound. To keep
6309 Debian systems working while scripts migrate and during upgrades, the
6310 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
6311 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
6312 and the next ones can only be moved when their dependencies have been
6313 moved first. This migration must be done sequentially while we ensure
6314 that the package system upgrade packages in the right order to keep
6315 the system state correct. This will require some coordination when it
6316 comes to network related packages, but most of the packages with
6317 scripts that should migrate do not have anything in rcS.d/ depending
6318 on them. Some packages have already been updated, like the sudo
6319 package, while others are still left to do. I wish I had time to work
6320 on this myself, but real live constrains make it unlikely that I will
6321 find time to push this forward.&lt;/p&gt;
6322 </description>
6323 </item>
6324
6325 <item>
6326 <title>How is booting into runlevel 1 different from single user boots?</title>
6327 <link>http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html</link>
6328 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html</guid>
6329 <pubDate>Thu, 4 Aug 2011 12:40:00 +0200</pubDate>
6330 <description>&lt;p&gt;Wouter Verhelst have some
6331 &lt;a href=&quot;http://grep.be/blog/en/retorts/pere_kubuntu_boot&quot;&gt;interesting
6332 comments and opinions&lt;/a&gt; on my blog post on
6333 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html&quot;&gt;the
6334 need to clean up /etc/rcS.d/ in Debian&lt;/a&gt; and my blog post about
6335 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html&quot;&gt;the
6336 default KDE desktop in Debian&lt;/a&gt;. I only have time to address one
6337 small piece of his comment now, and though it best to address the
6338 misunderstanding he bring forward:&lt;/p&gt;
6339
6340 &lt;p&gt;&lt;blockquote&gt;
6341 Currently, a system admin has four options: [...] boot to a
6342 single-user system (by adding &#39;single&#39; to the kernel command line;
6343 this runs rcS and rc1 scripts)
6344 &lt;/blockquote&gt;&lt;/p&gt;
6345
6346 &lt;p&gt;This make me believe Wouter believe booting into single user mode
6347 and booting into runlevel 1 is the same. I am not surprised he
6348 believe this, because it would make sense and is a quite sensible
6349 thing to believe. But because the boot in Debian is slightly broken,
6350 runlevel 1 do not work properly and it isn&#39;t the same as single user
6351 mode. I&#39;ll try to explain what is actually happing, but it is a bit
6352 hard to explain.&lt;/p&gt;
6353
6354 &lt;p&gt;Single user mode is defined like this in /etc/inittab:
6355 &quot;&lt;tt&gt;~~:S:wait:/sbin/sulogin&lt;/tt&gt;&quot;. This means the only thing that is
6356 executed in single user mode is sulogin. Single user mode is a boot
6357 state &quot;between&quot; the runlevels, and when booting into single user mode,
6358 only the scripts in /etc/rcS.d/ are executed before the init process
6359 enters the single user state. When switching to runlevel 1, the state
6360 is in fact not ending in runlevel 1, but it passes through runlevel 1
6361 and end up in the single user mode (see /etc/rc1.d/S03single, which
6362 runs &quot;init -t1 S&quot; to switch to single user mode at the end of runlevel
6363 1. It is confusing that the &#39;S&#39; (single user) init mode is not the
6364 mode enabled by /etc/rcS.d/ (which is more like the initial boot
6365 mode).&lt;/p&gt;
6366
6367 &lt;p&gt;This summary might make it clearer. When booting for the first
6368 time into single user mode, the following commands are executed:
6369 &quot;&lt;tt&gt;/etc/init.d/rc S; /sbin/sulogin&lt;/tt&gt;&quot;. When booting into
6370 runlevel 1, the following commands are executed: &quot;&lt;tt&gt;/etc/init.d/rc
6371 S; /etc/init.d/rc 1; /sbin/sulogin&lt;/tt&gt;&quot;. A problem show up when
6372 trying to continue after visiting single user mode. Not all services
6373 are started again as they should, causing the machine to end up in an
6374 unpredicatble state. This is why Debian admins recommend rebooting
6375 after visiting single user mode.&lt;/p&gt;
6376
6377 &lt;p&gt;A similar problem with runlevel 1 is caused by the amount of
6378 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
6379 to runlevel 1, the services started from /etc/rcS.d/ are not properly
6380 stopped when passing through the scripts in /etc/rc1.d/, and not
6381 started again when switching away from runlevel 1 to the runlevels
6382 2-5. I believe the problem is best fixed by moving all the scripts
6383 out of /etc/rcS.d/ that are not &lt;strong&gt;required&lt;/strong&gt; to get a
6384 functioning single user mode during boot.&lt;/p&gt;
6385
6386 &lt;p&gt;I have spent several years investigating the Debian boot system,
6387 and discovered this problem a few years ago. I suspect it originates
6388 from when sysvinit was introduced into Debian, a long time ago.&lt;/p&gt;
6389 </description>
6390 </item>
6391
6392 <item>
6393 <title>Ripping problematic DVDs using dvdbackup and genisoimage</title>
6394 <link>http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html</link>
6395 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Ripping_problematic_DVDs_using_dvdbackup_and_genisoimage.html</guid>
6396 <pubDate>Sat, 17 Sep 2011 20:20:00 +0200</pubDate>
6397 <description>&lt;p&gt;For convenience, I want to store copies of all my DVDs on my file
6398 server. It allow me to save shelf space flat while still having my
6399 movie collection easily available. It also make it possible to let
6400 the kids see their favourite DVDs without wearing the physical copies
6401 down. I prefer to store the DVDs as ISOs to keep the DVD menu and
6402 subtitle options intact. It also ensure that the entire film is one
6403 file on the disk. As this is for personal use, the ripping is
6404 perfectly legal here in Norway.&lt;/p&gt;
6405
6406 &lt;p&gt;Normally I rip the DVDs using dd like this:&lt;/p&gt;
6407
6408 &lt;blockquote&gt;&lt;pre&gt;
6409 #!/bin/sh
6410 # apt-get install lsdvd
6411 title=$(lsdvd 2&gt;/dev/null|awk &#39;/Disc Title: / {print $3}&#39;)
6412 dd if=/dev/dvd of=/storage/dvds/$title.iso bs=1M
6413 &lt;/pre&gt;&lt;/blockquote&gt;
6414
6415 &lt;p&gt;But some DVDs give a input/output error when I read it, and I have
6416 been looking for a better alternative. I have no idea why this I/O
6417 error occur, but suspect my DVD drive, the Linux kernel driver or
6418 something fishy with the DVDs in question. Or perhaps all three.&lt;/p&gt;
6419
6420 &lt;p&gt;Anyway, I believe I found a solution today using dvdbackup and
6421 genisoimage. This script gave me a working ISO for a problematic
6422 movie by first extracting the DVD file system and then re-packing it
6423 back as an ISO.
6424
6425 &lt;blockquote&gt;&lt;pre&gt;
6426 #!/bin/sh
6427 # apt-get install lsdvd dvdbackup genisoimage
6428 set -e
6429 tmpdir=/storage/dvds/
6430 title=$(lsdvd 2&gt;/dev/null|awk &#39;/Disc Title: / {print $3}&#39;)
6431 dvdbackup -i /dev/dvd -M -o $tmpdir -n$title
6432 genisoimage -dvd-video -o $tmpdir/$title.iso $tmpdir/$title
6433 rm -rf $tmpdir/$title
6434 &lt;/pre&gt;&lt;/blockquote&gt;
6435
6436 &lt;p&gt;Anyone know of a better way available in Debian/Squeeze?&lt;/p&gt;
6437
6438 &lt;p&gt;Update 2011-09-18: I got a tip from Konstantin Khomoutov about the
6439 readom program from the wodim package. It is specially written to
6440 read optical media, and is called like this: &lt;tt&gt;readom dev=/dev/dvd
6441 f=image.iso&lt;/tt&gt;. It got 6 GB along with the problematic Cars DVD
6442 before it failed, and failed right away with a Timmy Time DVD.&lt;/p&gt;
6443
6444 &lt;p&gt;Next, I got a tip from Bastian Blank about
6445 &lt;a href=&quot;http://bblank.thinkmo.de/blog/new-software-python-dvdvideo&quot;&gt;his
6446 program python-dvdvideo&lt;/a&gt;, which seem to be just what I am looking
6447 for. Tested it with my problematic Timmy Time DVD, and it succeeded
6448 creating a ISO image. The git source built and installed just fine in
6449 Squeeze, so I guess this will be my tool of choice in the future.&lt;/p&gt;
6450 </description>
6451 </item>
6452
6453 <item>
6454 <title>Free e-book kiosk for the public libraries?</title>
6455 <link>http://people.skolelinux.org/pere/blog/Free_e_book_kiosk_for_the_public_libraries_.html</link>
6456 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Free_e_book_kiosk_for_the_public_libraries_.html</guid>
6457 <pubDate>Fri, 7 Oct 2011 19:20:00 +0200</pubDate>
6458 <description>&lt;p&gt;Here in Norway the public libraries are debating with the
6459 publishing houses how to handle electronic books. Surprisingly, the
6460 libraries seem to be willing to accept digital restriction mechanisms
6461 (DRM) on books and renting e-books with artificial scarcity from the
6462 publishing houses. Time limited renting (2-3 years) is one proposed
6463 model, and only allowing X borrowers for each book is another.
6464 Personally I find it amazing that libraries are even considering such
6465 models.&lt;/p&gt;
6466
6467 &lt;p&gt;Anyway, while reading &lt;a href=&quot;http://boklaben.no/?p=220&quot;&gt;part of
6468 this debate&lt;/a&gt;, it occurred to me that someone should present a more
6469 sensible approach to the libraries, to allow its borrowers to get used
6470 to a better model. The idea is simple:&lt;/p&gt;
6471
6472 &lt;p&gt;Create a computer system for the libraries, either in the form of a
6473 Live DVD or a installable distribution, that provide a simple kiosk
6474 solution to hand out free e-books. As a start, the books distributed
6475 by &lt;a href=&quot;http://www.gutenberg.org/&quot;&gt;Project Gutenberg&lt;/a&gt; (abount
6476 36,000 books), &lt;a href=&quot;http://runeberg.org/&quot;&gt;Project Runenberg&lt;/a&gt;
6477 (1149 books) and &lt;a href=&quot;http://www.archive.org/details/texts&quot;&gt;The
6478 Internet Archive&lt;/a&gt; (3,033,748 books) could be included, but any book
6479 where the copyright has expired or with a free licence could be
6480 distributed.&lt;/p&gt;
6481
6482 &lt;p&gt;The computer system would make it easy to:&lt;/p&gt;
6483
6484 &lt;ul&gt;
6485
6486 &lt;li&gt;Copy e-books into a USB stick, reading tablets, cell phones and
6487 other relevant equipment.&lt;/li&gt;
6488
6489 &lt;li&gt;Show the books for reading on the the screen in the library.&lt;/li&gt;
6490
6491 &lt;/ul&gt;
6492
6493 &lt;p&gt;In addition to such kiosk solution, there should probably be a web
6494 site as well to allow people easy access to these books without
6495 visiting the library. The site would be the distribution point for
6496 the kiosk systems, which would connect regularly to fetch any new
6497 books available.&lt;/p&gt;
6498
6499 &lt;p&gt;Are there anyone working on a system like this? I guess it would
6500 fit any library in the world, and not just the Norwegian public
6501 libraries. :)&lt;/p&gt;
6502 </description>
6503 </item>
6504
6505 <item>
6506 <title>Automatically upgrading server firmware on Dell PowerEdge</title>
6507 <link>http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html</link>
6508 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html</guid>
6509 <pubDate>Mon, 21 Nov 2011 12:00:00 +0100</pubDate>
6510 <description>&lt;p&gt;At work we have heaps of servers. I believe the total count is
6511 around 1000 at the moment. To be able to get help from the vendors
6512 when something go wrong, we want to keep the firmware on the servers
6513 up to date. If the firmware isn&#39;t the latest and greatest, the
6514 vendors typically refuse to start debugging any problems until the
6515 firmware is upgraded. So before every reboot, we want to upgrade the
6516 firmware, and we would really like everyone handling servers at the
6517 university to do this themselves when they plan to reboot a machine.
6518 For that to happen we at the unix server admin group need to provide
6519 the tools to do so.&lt;/p&gt;
6520
6521 &lt;p&gt;To make firmware upgrading easier, I am working on a script to
6522 fetch and install the latest firmware for the servers we got. Most of
6523 our hardware are from Dell and HP, so I have focused on these servers
6524 so far. This blog post is about the Dell part.&lt;/P&gt;
6525
6526 &lt;p&gt;On the Dell FTP site I was lucky enough to find
6527 &lt;a href=&quot;ftp://ftp.us.dell.com/catalog/Catalog.xml.gz&quot;&gt;an XML file&lt;/a&gt;
6528 with firmware information for all 11th generation servers, listing
6529 which firmware should be used on a given model and where on the FTP
6530 site I can find it. Using a simple perl XML parser I can then
6531 download the shell scripts Dell provides to do firmware upgrades from
6532 within Linux and reboot when all the firmware is primed and ready to
6533 be activated on the first reboot.&lt;/p&gt;
6534
6535 &lt;p&gt;This is the Dell related fragment of the perl code I am working on.
6536 Are there anyone working on similar tools for firmware upgrading all
6537 servers at a site? Please get in touch and lets share resources.&lt;/p&gt;
6538
6539 &lt;p&gt;&lt;pre&gt;
6540 #!/usr/bin/perl
6541 use strict;
6542 use warnings;
6543 use File::Temp qw(tempdir);
6544 BEGIN {
6545 # Install needed RHEL packages if missing
6546 my %rhelmodules = (
6547 &#39;XML::Simple&#39; =&gt; &#39;perl-XML-Simple&#39;,
6548 );
6549 for my $module (keys %rhelmodules) {
6550 eval &quot;use $module;&quot;;
6551 if ($@) {
6552 my $pkg = $rhelmodules{$module};
6553 system(&quot;yum install -y $pkg&quot;);
6554 eval &quot;use $module;&quot;;
6555 }
6556 }
6557 }
6558 my $errorsto = &#39;pere@hungry.com&#39;;
6559
6560 upgrade_dell();
6561
6562 exit 0;
6563
6564 sub run_firmware_script {
6565 my ($opts, $script) = @_;
6566 unless ($script) {
6567 print STDERR &quot;fail: missing script name\n&quot;;
6568 exit 1
6569 }
6570 print STDERR &quot;Running $script\n\n&quot;;
6571
6572 if (0 == system(&quot;sh $script $opts&quot;)) { # FIXME correct exit code handling
6573 print STDERR &quot;success: firmware script ran succcessfully\n&quot;;
6574 } else {
6575 print STDERR &quot;fail: firmware script returned error\n&quot;;
6576 }
6577 }
6578
6579 sub run_firmware_scripts {
6580 my ($opts, @dirs) = @_;
6581 # Run firmware packages
6582 for my $dir (@dirs) {
6583 print STDERR &quot;info: Running scripts in $dir\n&quot;;
6584 opendir(my $dh, $dir) or die &quot;Unable to open directory $dir: $!&quot;;
6585 while (my $s = readdir $dh) {
6586 next if $s =~ m/^\.\.?/;
6587 run_firmware_script($opts, &quot;$dir/$s&quot;);
6588 }
6589 closedir $dh;
6590 }
6591 }
6592
6593 sub download {
6594 my $url = shift;
6595 print STDERR &quot;info: Downloading $url\n&quot;;
6596 system(&quot;wget --quiet \&quot;$url\&quot;&quot;);
6597 }
6598
6599 sub upgrade_dell {
6600 my @dirs;
6601 my $product = `dmidecode -s system-product-name`;
6602 chomp $product;
6603
6604 if ($product =~ m/PowerEdge/) {
6605
6606 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
6607 system(&#39;yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail&#39;);
6608
6609 my $tmpdir = tempdir(
6610 CLEANUP =&gt; 1
6611 );
6612 chdir($tmpdir);
6613 fetch_dell_fw(&#39;catalog/Catalog.xml.gz&#39;);
6614 system(&#39;gunzip Catalog.xml.gz&#39;);
6615 my @paths = fetch_dell_fw_list(&#39;Catalog.xml&#39;);
6616 # -q is quiet, disabling interactivity and reducing console output
6617 my $fwopts = &quot;-q&quot;;
6618 if (@paths) {
6619 for my $url (@paths) {
6620 fetch_dell_fw($url);
6621 }
6622 run_firmware_scripts($fwopts, $tmpdir);
6623 } else {
6624 print STDERR &quot;error: Unsupported Dell model &#39;$product&#39;.\n&quot;;
6625 print STDERR &quot;error: Please report to $errorsto.\n&quot;;
6626 }
6627 chdir(&#39;/&#39;);
6628 } else {
6629 print STDERR &quot;error: Unsupported Dell model &#39;$product&#39;.\n&quot;;
6630 print STDERR &quot;error: Please report to $errorsto.\n&quot;;
6631 }
6632 }
6633
6634 sub fetch_dell_fw {
6635 my $path = shift;
6636 my $url = &quot;ftp://ftp.us.dell.com/$path&quot;;
6637 download($url);
6638 }
6639
6640 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
6641 # firmware packages to download from Dell. Only work for Linux
6642 # machines and 11th generation Dell servers.
6643 sub fetch_dell_fw_list {
6644 my $filename = shift;
6645
6646 my $product = `dmidecode -s system-product-name`;
6647 chomp $product;
6648 my ($mybrand, $mymodel) = split(/\s+/, $product);
6649
6650 print STDERR &quot;Finding firmware bundles for $mybrand $mymodel\n&quot;;
6651
6652 my $xml = XMLin($filename);
6653 my @paths;
6654 for my $bundle (@{$xml-&gt;{SoftwareBundle}}) {
6655 my $brand = $bundle-&gt;{TargetSystems}-&gt;{Brand}-&gt;{Display}-&gt;{content};
6656 my $model = $bundle-&gt;{TargetSystems}-&gt;{Brand}-&gt;{Model}-&gt;{Display}-&gt;{content};
6657 my $oscode;
6658 if (&quot;ARRAY&quot; eq ref $bundle-&gt;{TargetOSes}-&gt;{OperatingSystem}) {
6659 $oscode = $bundle-&gt;{TargetOSes}-&gt;{OperatingSystem}[0]-&gt;{osCode};
6660 } else {
6661 $oscode = $bundle-&gt;{TargetOSes}-&gt;{OperatingSystem}-&gt;{osCode};
6662 }
6663 if ($mybrand eq $brand &amp;&amp; $mymodel eq $model &amp;&amp; &quot;LIN&quot; eq $oscode)
6664 {
6665 @paths = map { $_-&gt;{path} } @{$bundle-&gt;{Contents}-&gt;{Package}};
6666 }
6667 }
6668 for my $component (@{$xml-&gt;{SoftwareComponent}}) {
6669 my $componenttype = $component-&gt;{ComponentType}-&gt;{value};
6670
6671 # Drop application packages, only firmware and BIOS
6672 next if &#39;APAC&#39; eq $componenttype;
6673
6674 my $cpath = $component-&gt;{path};
6675 for my $path (@paths) {
6676 if ($cpath =~ m%/$path$%) {
6677 push(@paths, $cpath);
6678 }
6679 }
6680 }
6681 return @paths;
6682 }
6683 &lt;/pre&gt;
6684
6685 &lt;p&gt;The code is only tested on RedHat Enterprise Linux, but I suspect
6686 it could work on other platforms with some tweaking. Anyone know a
6687 index like Catalog.xml is available from HP for HP servers? At the
6688 moment I maintain a similar list manually and it is quickly getting
6689 outdated.&lt;/p&gt;
6690 </description>
6691 </item>
6692
6693 <item>
6694 <title>Fixing an hanging debian installer for Debian Edu</title>
6695 <link>http://people.skolelinux.org/pere/blog/Fixing_an_hanging_debian_installer_for_Debian_Edu.html</link>
6696 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Fixing_an_hanging_debian_installer_for_Debian_Edu.html</guid>
6697 <pubDate>Tue, 3 Jan 2012 11:25:00 +0100</pubDate>
6698 <description>&lt;p&gt;During christmas, I have been working getting the next version of
6699 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt; ready
6700 for release. The initial problem I looked at was particularly
6701 interesting.&lt;/p&gt;
6702
6703 &lt;P&gt;The installer would hang at the end when it was doing it
6704 post-installation configuration, and whatevery I did to try to find
6705 the cause and fix it always worked while I tested it, but never when I
6706 integrated it into the installer and ran the installation from
6707 scratch. I would try to restart processes, close file descriptors,
6708 remove or create files, and the installer would always unblock and
6709 wrap up its tasks.&lt;/p&gt;
6710
6711 &lt;p&gt;Eventually the cause was found. The kernel was simply running out
6712 of entropy, causing the Kerberos setup to hang waiting for more.
6713 Pressing keys was adding entropy to the kernel, and thus all my tries
6714 to fix the problem worked not because what I was typing to fix it, but
6715 because I was typing.&lt;/P&gt;
6716
6717 &lt;p&gt;The fix I implemented was to add a background process looking at
6718 the level of entropy in the kernel (by checking
6719 /proc/sys/kernel/random/entropy_avail), and if it was too small, the
6720 installer will flush the kernel file buffers and do &#39;find /&#39; to
6721 generate some disk IO. Disk IO generate entropy in the kernel, and is
6722 one of the few things that can be initated from within the system to
6723 generate entropy.&lt;/p&gt;
6724
6725 &lt;p&gt;The fix is in
6726 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/Documentation/Squeeze/Installation&quot;&gt;beta1
6727 of the Debian Edu/Squeeze&lt;/a&gt; version, and we
6728 &lt;a href=&quot;http://wiki.debian.org/DebianEdu&quot;&gt;welcome more testers and
6729 developers&lt;/a&gt;. We plan to release beta2 this weekend.&lt;/p&gt;
6730 </description>
6731 </item>
6732
6733 <item>
6734 <title>Second beta version of Debian Edu / Skolelinux based on Squeeze</title>
6735 <link>http://people.skolelinux.org/pere/blog/Second_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</link>
6736 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Second_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</guid>
6737 <pubDate>Sat, 7 Jan 2012 22:50:00 +0100</pubDate>
6738 <description>&lt;p&gt;I am happy to announce that today we managed to wrap up and publish
6739 the second beta version of
6740 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt;. If
6741 you want to test a LDAP backed Kerberos server with out of the box PXE
6742 configuration for running diskless machines and installing new
6743 machines, check it out. If you need a software solution for your
6744 school, check it out too. The full announcement is
6745 &lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/01/msg00000.html&quot;&gt;available&lt;/a&gt;
6746 on the project announcement list.&lt;/p&gt;
6747 </description>
6748 </item>
6749
6750 <item>
6751 <title>Changing the default Iceweasel start page in Debian Edu/Squeeze</title>
6752 <link>http://people.skolelinux.org/pere/blog/Changing_the_default_Iceweasel_start_page_in_Debian_Edu_Squeeze.html</link>
6753 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Changing_the_default_Iceweasel_start_page_in_Debian_Edu_Squeeze.html</guid>
6754 <pubDate>Tue, 10 Jan 2012 15:30:00 +0100</pubDate>
6755 <description>&lt;p&gt;In the Squeeze version of
6756 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt; soon
6757 to be released, users of the system will get their default browser
6758 start page set from LDAP, allowing the system administrator to point
6759 all users to the school web page by updating one setting in LDAP. In
6760 addition to setting the default start page when a machine boots, users
6761 are shown the same page as a welcome page when they log in for the
6762 first time.&lt;/p&gt;
6763
6764 &lt;p&gt;The LDAP object dc=skole,dc=skolelinux,dc=no have an attribute
6765 labeledURI with &quot;http://www/ LDAP for Debian Edu/Skolelinux&quot; as the
6766 default content. By changing this value to another URL, all users get
6767 to see the page behind this new URL.&lt;/p&gt;
6768
6769 &lt;p&gt;An easy way to update it is by using the ldapvi tool. It can be
6770 called as &quot;&lt;tt&gt;ldapvi -ZD &#39;(cn=admin)&#39;&lt;/tt&gt;&#39; to update LDAP with the
6771 new setting.&lt;/p&gt;
6772
6773 &lt;p&gt;We have written the code to adjust the default start page and show
6774 the welcome page, and I wonder if there is an easier way to do this
6775 from within Iceweasel instead.&lt;/p&gt;
6776 </description>
6777 </item>
6778
6779 <item>
6780 <title>Setting up a new school with Debian Edu/Squeeze</title>
6781 <link>http://people.skolelinux.org/pere/blog/Setting_up_a_new_school_with_Debian_Edu_Squeeze.html</link>
6782 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Setting_up_a_new_school_with_Debian_Edu_Squeeze.html</guid>
6783 <pubDate>Wed, 25 Jan 2012 21:00:00 +0100</pubDate>
6784 <description>&lt;p&gt;The next version of &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu
6785 / Skolelinux&lt;/a&gt; will include a new tool
6786 &lt;tt&gt;sitesummary2ldapdhcp&lt;/tt&gt;, which can be used to quickly set up all
6787 the computers in a school without much manual labour. Here is a short
6788 summary on how to use it to set up a new school.&lt;/p&gt;
6789
6790 &lt;p&gt;First, install a combined Main Server and Thin Client Server as the
6791 central server in the network. Next, PXE boot all the client machines
6792 as thin clients and wait 5 minutes after the last client booted to
6793 allow the clients to report their existence to the central server. When
6794 this is done, log on to the central server and run
6795 &lt;tt&gt;sitesummary2ldapdhcp -a&lt;/tt&gt; in the &lt;tt&gt;konsole&lt;/tt&gt; to use the
6796 collected information to generate system objects in LDAP. The output
6797 will look similar to this:&lt;/p&gt;
6798
6799 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
6800 % sitesummary2ldapdhcp -a
6801 info: Updating machine tjener.intern [10.0.2.2] id ether-00:01:02:03:04:05.
6802 info: Create GOsa machine for auto-mac-00-01-02-03-04-06 [10.0.16.20] id ether-00:01:02:03:04:06.
6803
6804 Enter password if you want to activate these changes, and ^c to abort.
6805
6806 Connecting to LDAP as cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
6807 enter password: *******
6808 %
6809 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
6810
6811 &lt;p&gt;After providing the LDAP administrative password (the same as the
6812 root password set during installation), the LDAP database will be
6813 populated with system objects for each PXE booted machine with
6814 automatically generated names. The final step to set up the school is
6815 then to log into &lt;a href=&quot;https://oss.gonicus.de/labs/gosa/&quot;&gt;GOsa&lt;/a&gt;,
6816 the web based user, group and system administration system to change
6817 system names, add systems to the correct host groups and finally
6818 enable DHCP and DNS for the systems. All clients that should be used
6819 as diskless workstations should be added to the workstation-hosts
6820 group. After this is done, all computers can be booted again via PXE
6821 and get their assigned names and group based configuration
6822 automatically.&lt;/p&gt;
6823
6824 &lt;p&gt;We plan to release beta3 with the updated version of this feature
6825 enabled this weekend. You might want to give it a try.&lt;/p&gt;
6826
6827 &lt;p&gt;Update 2012-01-28: When calling sitesummary2ldapdhcp to add new
6828 hosts, one need to add the option -a. I forgot to mention this in my
6829 original text, and have added it to the text now.&lt;/p&gt;
6830 </description>
6831 </item>
6832
6833 <item>
6834 <title>Handling non-free firmware in Debian Edu/Squeeze</title>
6835 <link>http://people.skolelinux.org/pere/blog/Handling_non_free_firmware_in_Debian_Edu_Squeeze.html</link>
6836 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Handling_non_free_firmware_in_Debian_Edu_Squeeze.html</guid>
6837 <pubDate>Fri, 27 Jan 2012 23:30:00 +0100</pubDate>
6838 <description>&lt;p&gt;With some computer hardware, one need non-free firmware blobs.
6839 This is the sad fact of todays computers. In the next version of
6840 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt; based
6841 on Squeeze, we provide several scripts and modifications to make
6842 firmware blobs easier to handle. The common use case I run into is a
6843 laptop with a wireless network card requiring non-free firmware to
6844 work, but there are other use cases as well.&lt;/p&gt;
6845
6846 &lt;p&gt;First and foremost, Debian Edu provide ISO images for DVD and CD
6847 with all firmware packages in the Debian sections main and non-free
6848 included, to ensure debian-installer find and can install all of them
6849 during installation. This take care firmware for network devices used
6850 by the installer when installing from from local media. But for
6851 example multimedia devices are not activated in the installer and are
6852 not taken care of by this.&lt;/p&gt;
6853
6854 &lt;p&gt;For non-network devices, we provide the script
6855 &lt;tt&gt;/usr/share/debian-edu-config/tools/auto-addfirmware&lt;/tt&gt; which
6856 search through the &lt;tt&gt;dmesg&lt;/tt&gt; output for drivers requesting extra
6857 firmware. The firmware file name is looked up in the Contents-ARCH.gz
6858 file available in the package repository, and the packages providing
6859 the requested firmware file(s) is installed. I have proposed to do
6860 something similar in debian-installer (BTS report
6861 &lt;a href=&quot;http://bugs.debian.org/655507&quot;&gt;#655507&lt;/a&gt;), to allow PXE
6862 installs of Debian to handle firmware installation better. Run the
6863 script as root from the command line to fetch and install the needed
6864 firmware packages.&lt;/p&gt;
6865
6866 &lt;p&gt;Debian Edu provide PXE installation of Debian out of the box, and
6867 because some machines need firmware to get their network cards
6868 working, the installation initrd some times need extra firmware
6869 included to be able to install at all. To fill the PXE installation
6870 initrd with extra firmware, the
6871 &lt;tt&gt;/usr/share/debian-edu-config/tools/pxe-addfirmware&lt;/tt&gt; script is
6872 provided. Again, just run it as root on the command line to fill the
6873 PXE initrd with firmware packages.&lt;/p&gt;
6874
6875 &lt;p&gt;Last, some LTSP clients might also need firmware to get their
6876 network cards working. For this,
6877 &lt;tt&gt;/usr/share/debian-edu-config/tools/ltsp-addfirmware&lt;/tt&gt; is
6878 provided to update the LTSP initrd with firmware blobs. It is used
6879 the same way as the other firmware related tools.&lt;/p&gt;
6880
6881 &lt;p&gt;At the moment, we do not run any of these during installation. We
6882 do not know if this is acceptable for the local administrator to use
6883 non-free software, and it is their choice.&lt;/p&gt;
6884
6885 &lt;p&gt;We plan to release beta3 this weekend. You might want to give it a
6886 try.&lt;/p&gt;
6887 </description>
6888 </item>
6889
6890 <item>
6891 <title>Third beta version of Debian Edu / Skolelinux based on Squeeze</title>
6892 <link>http://people.skolelinux.org/pere/blog/Third_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</link>
6893 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Third_beta_version_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</guid>
6894 <pubDate>Sat, 4 Feb 2012 13:25:00 +0100</pubDate>
6895 <description>&lt;p&gt;I am happy to announce that finally we managed today to wrap up and
6896 publish the third beta version of
6897 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt; based
6898 on Squeeze. If you want to test a LDAP backed Kerberos server with
6899 out of the box PXE configuration for running diskless machines and
6900 installing new machines, check it out. If you need a software
6901 solution for your school, check it out too. The full announcement is
6902 &lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/02/msg00000.html&quot;&gt;available&lt;/a&gt;
6903 on the project announcement list.&lt;/p&gt;
6904
6905 &lt;p&gt;I am very happy to report these changes and improvements since
6906 beta2 (there are more, see announcement for full list):&lt;/p&gt;
6907
6908 &lt;ul&gt;
6909
6910 &lt;li&gt;It is now possible to change the pre-configured IP subnet from
6911 10.0.0.0/8 to something else by using the subnet-change tool after
6912 the installation.&lt;/li&gt;
6913
6914 &lt;li&gt;Too full partitions are now automatically extended on the Main
6915 Server, based on the rules specified in /etc/fsautoresizetab.&lt;/li&gt;
6916
6917 &lt;li&gt;The CUPS queues are now automatically flushed every night, and all
6918 disabled queues are restarted every hour. This should cut down on
6919 the amount of manual administration needed for printers.&lt;/li&gt;
6920
6921 &lt;li&gt;The set of initial users have been changed. Now a personal user
6922 for the local system administrator is created during installation
6923 instead of the previously created localadmin and super-admin users,
6924 and this user is granted administrative privileges using group
6925 membership. This reduces the number of passwords one need to keep
6926 up to date on the system.&lt;/li&gt;
6927
6928 &lt;/ul&gt;
6929
6930 &lt;p&gt;The new main server seem to work so well that I am testing it as my
6931 private DNS/LDAP/Kerberos/PXE/LTSP server at home. I will use it look
6932 for issues we could fix to polish Debian Edu even further before the
6933 final Squeeze release is published.&lt;/p&gt;
6934
6935 &lt;p&gt;Next weekend the project organise a
6936 &lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/01/msg00001.html&quot;&gt;developer
6937 gathering&lt;/a&gt; in Oslo. We will continue the work on the Squeeze
6938 version, and start initial planning for the Wheezy version. Perhaps I
6939 will see you there?&lt;/p&gt;
6940 </description>
6941 </item>
6942
6943 <item>
6944 <title>Saving power with Debian Edu / Skolelinux using shutdown-at-night</title>
6945 <link>http://people.skolelinux.org/pere/blog/Saving_power_with_Debian_Edu___Skolelinux_using_shutdown_at_night.html</link>
6946 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Saving_power_with_Debian_Edu___Skolelinux_using_shutdown_at_night.html</guid>
6947 <pubDate>Sun, 5 Feb 2012 09:45:00 +0100</pubDate>
6948 <description>&lt;p&gt;Since the Lenny version of
6949 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt;, a
6950 feature to save power have been included. It is as simple as it is
6951 practical: Shut down unused clients at night, and turn them on again
6952 in the morning. This is done using the
6953 &lt;a href=&quot;http://packages.qa.debian.org/s/shutdown-at-night.html&quot;&gt;shutdown-at-night&lt;/a&gt; Debian package.&lt;/p&gt;
6954
6955 &lt;p&gt;To enable this feature on a client, the machine need to be added to
6956 the netgroup shutdown-at-night-hosts. For Debian Edu, this is done in
6957 LDAP, and once this is in place, the machine in question will check
6958 every hour from 16:00 until 06:00 to see if the machine is unused, and
6959 shut it down if it is. If the hardware in question is supported by
6960 the
6961 &lt;a href=&quot;http://packages.qa.debian.org/n/nvram-wakeup.html&quot;&gt;nvram-wakeup&lt;/a&gt;
6962 package, the BIOS is told to turn the machine back on around 07:00 +-
6963 10 minutes. If this isn&#39;t working, one can configure wake-on-lan to
6964 try to turn on the client. The wake-on-lan option is only documented
6965 and not enabled by default in Debian Edu.&lt;/p&gt;
6966
6967 &lt;p&gt;It is important to not turn all machines on at once, as this can
6968 blow a fuse if several computers are connected to the same fuse like
6969 the common setup for a classroom. The nvram-wakeup method only work
6970 for machines with a functioning hardware/BIOS clock. I&#39;ve seen old
6971 machines where the BIOS battery were dead and the hardware clock were
6972 starting from 0 (or was it 1990?) every boot. If you have one of
6973 those, you have to turn on the computer manually.&lt;/p&gt;
6974
6975 &lt;p&gt;The shutdown-at-night package is completely self contained, and can
6976 also be used outside the Debian Edu environment. For those without a
6977 central LDAP server with netgroups, one can instead touch the file
6978 &lt;tt&gt;/etc/shutdown-at-night/shutdown-at-night&lt;/tt&gt; to enable it.
6979 Perhaps you too can use it to save some power?&lt;/p&gt;
6980 </description>
6981 </item>
6982
6983 <item>
6984 <title>Automatic proxy configuration with Debian Edu / Skolelinux</title>
6985 <link>http://people.skolelinux.org/pere/blog/Automatic_proxy_configuration_with_Debian_Edu___Skolelinux.html</link>
6986 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Automatic_proxy_configuration_with_Debian_Edu___Skolelinux.html</guid>
6987 <pubDate>Mon, 13 Feb 2012 23:40:00 +0100</pubDate>
6988 <description>&lt;p&gt;New in the Squeeze version of
6989 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt; is the
6990 ability for clients to automatically configure their proxy settings
6991 based on their environment. We want all systems on the client to use
6992 the WPAD based proxy definition fetched from &lt;tt&gt;http://wpad/wpad.dat&lt;/tt&gt;, to
6993 allow sites to control the proxy setting from a central place and make
6994 sure clients do not have hard coded proxy settings. The schools can
6995 change the global proxy setting by editing
6996 &lt;tt&gt;tjener:/etc/debian-edu/www/wpad.dat&lt;/tt&gt; and the change propagate
6997 to all Debian Edu clients in the network.&lt;/p&gt;
6998
6999 &lt;p&gt;The problem is that some systems do not understand the WPAD system.
7000 In other words, how do one get from a WPAD file like this (this is a
7001 simple one, they can run arbitrary code):&lt;/p&gt;
7002
7003 &lt;blockquote&gt;&lt;pre&gt;
7004 function FindProxyForURL(url, host)
7005 {
7006 if (!isResolvable(host) ||
7007 isPlainHostName(host) ||
7008 dnsDomainIs(host, &quot;.intern&quot;))
7009 return &quot;DIRECT&quot;;
7010 else
7011 return &quot;PROXY webcache:3128; DIRECT&quot;;
7012 }
7013 &lt;/pre&gt;&lt;/blockquote&gt;
7014
7015 &lt;p&gt;to a proxy setting in the process environment looking like this:&lt;/p&gt;
7016
7017 &lt;blockquote&gt;&lt;pre&gt;
7018 http_proxy=http://webcache:3128/
7019 ftp_proxy=http://webcache:3128/
7020 &lt;/pre&gt;&lt;/blockquote&gt;
7021
7022 &lt;p&gt;To do this conversion I developed a perl script that will execute
7023 the javascript fragment in the WPAD file and return the proxy that
7024 would be used for
7025 &lt;tt&gt;&lt;a href=&quot;http://www.debian.org/&quot;&gt;http://www.debian.org/&lt;/a&gt;&lt;/tt&gt;,
7026 and insert this extracted proxy URL in &lt;tt&gt;/etc/environment&lt;/tt&gt; and
7027 &lt;tt&gt;/etc/apt/apt.conf&lt;/tt&gt;. The perl script wpad-extract work just
7028 fine in Squeeze, but in Wheezy the library it need to run the
7029 javascript code is &lt;a href=&quot;http://bugs.debian.org/631045&quot;&gt;no longer
7030 able to build&lt;/a&gt; because the C library it depended on is now a C++
7031 library. I hope someone find a solution to that problem before Wheezy
7032 is frozen. An alternative would be for us to rewrite wpad-extract to
7033 use some other javascript library currently working in Wheezy, but no
7034 known alternative is known at the moment.&lt;/p&gt;
7035
7036 &lt;p&gt;This automatic proxy system allow the roaming workstation (aka
7037 laptop) setup in Debian Edu/Squeeze to use the proxy when the laptop
7038 is connected to the backbone network in a Debian Edu setup, and to
7039 automatically use any proxy present and announced using the WPAD
7040 feature when it is connected to other networks. And if no proxy is
7041 announced, direct connections will be used instead.&lt;/p&gt;
7042
7043 &lt;p&gt;Silently using a proxy announced on the network might be a privacy
7044 or security problem. But those controlling DHCP and DNS on a network
7045 could just as easily set up a transparent proxy, and force all HTTP
7046 and FTP connections to use a proxy anyway, so I consider that
7047 distinction to be academic. If you are afraid of using the wrong
7048 proxy, you should avoid connecting to the network in question in the
7049 first place. In Debian Edu, the proxy setup is updated using dhcp and
7050 ifupdown hooks, to make sure the configuration is updated every time
7051 the network setup changes.&lt;/p&gt;
7052
7053 &lt;p&gt;The WPAD system is documented in a
7054 &lt;a href=&quot;http://tools.ietf.org/html/draft-ietf-wrec-wpad-01&quot;&gt;IETF
7055 draft&lt;/a&gt; and a
7056 &lt;a href=&quot;http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol&quot;&gt;Wikipedia
7057 page&lt;/a&gt; for those that want to learn more.&lt;/p&gt;
7058 </description>
7059 </item>
7060
7061 <item>
7062 <title>How to figure out which RAID disk to replace when it fail</title>
7063 <link>http://people.skolelinux.org/pere/blog/How_to_figure_out_which_RAID_disk_to_replace_when_it_fail.html</link>
7064 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_figure_out_which_RAID_disk_to_replace_when_it_fail.html</guid>
7065 <pubDate>Tue, 14 Feb 2012 21:25:00 +0100</pubDate>
7066 <description>&lt;p&gt;Once in a while my home server have disk problems. Thanks to Linux
7067 Software RAID, I have not lost data yet (but
7068 &lt;a href=&quot;http://comments.gmane.org/gmane.linux.raid/34532&quot;&gt;I was
7069 close&lt;/a&gt; this summer :). But once a disk is starting to behave
7070 funny, a practical problem present itself. How to get from the Linux
7071 device name (like /dev/sdd) to something that can be used to identify
7072 the disk when the computer is turned off? In my case I have SATA
7073 disks with a unique ID printed on the label. All I need is a way to
7074 figure out how to query the disk to get the ID out.&lt;/p&gt;
7075
7076 &lt;p&gt;After fumbling a bit, I
7077 &lt;a href=&quot;http://www.cyberciti.biz/faq/linux-getting-scsi-ide-harddisk-information/&quot;&gt;found
7078 that hdparm -I&lt;/a&gt; will report the disk serial number, which is
7079 printed on the disk label. The following (almost) one-liner can be
7080 used to look up the ID of all the failed disks:&lt;/p&gt;
7081
7082 &lt;blockquote&gt;&lt;pre&gt;
7083 for d in $(cat /proc/mdstat |grep &#39;(F)&#39;|tr &#39; &#39; &quot;\n&quot;|grep &#39;(F)&#39;|cut -d\[ -f1|sort -u);
7084 do
7085 printf &quot;Failed disk $d: &quot;
7086 hdparm -I /dev/$d |grep &#39;Serial Num&#39;
7087 done
7088 &lt;/blockquote&gt;&lt;/pre&gt;
7089
7090 &lt;p&gt;Putting it here to make sure I do not have to search for it the
7091 next time, and in case other find it useful.&lt;/p&gt;
7092
7093 &lt;p&gt;At the moment I have two failing disk. :(&lt;/p&gt;
7094
7095 &lt;blockquote&gt;&lt;pre&gt;
7096 Failed disk sdd1: Serial Number: WD-WCASJ1860823
7097 Failed disk sdd2: Serial Number: WD-WCASJ1860823
7098 Failed disk sde2: Serial Number: WD-WCASJ1840589
7099 &lt;/blockquote&gt;&lt;/pre&gt;
7100
7101 &lt;p&gt;The last time I had failing disks, I added the serial number on
7102 labels I printed and stuck on the short sides of each disk, to be able
7103 to figure out which disk to take out of the box without having to
7104 remove each disk to look at the physical vendor label. The vendor
7105 label is at the top of the disk, which is hidden when the disks are
7106 mounted inside my box.&lt;/p&gt;
7107
7108 &lt;p&gt;I really wish the check_linux_raid Nagios plugin for checking Linux
7109 Software RAID in the
7110 &lt;a href=&quot;http://packages.qa.debian.org/n/nagios-plugins.html&quot;&gt;nagios-plugins-standard&lt;/a&gt;
7111 debian package would look up this value automatically, as it would
7112 make the plugin a lot more useful when my disks fail. At the moment
7113 it only report a failure when there are no more spares left (it really
7114 should warn as soon as a disk is failing), and it do not tell me which
7115 disk(s) is failing when the RAID is running short on disks.&lt;/p&gt;
7116 </description>
7117 </item>
7118
7119 <item>
7120 <title>First release candidate of Debian Edu / Skolelinux based on Squeeze</title>
7121 <link>http://people.skolelinux.org/pere/blog/First_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</link>
7122 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</guid>
7123 <pubDate>Sun, 19 Feb 2012 23:10:00 +0100</pubDate>
7124 <description>&lt;p&gt;One week delayed due to DVD build problems, we managed today to
7125 wrap up and publish the first release candidate for
7126 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt; based
7127 on Squeeze. The full announcement is
7128 &lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/02/msg00001.html&quot;&gt;available&lt;/a&gt;
7129 on the project announcement list. Check it out if you need a software
7130 solution for your school.&lt;/p&gt;
7131 </description>
7132 </item>
7133
7134 <item>
7135 <title>Second release candidate of Debian Edu / Skolelinux based on Squeeze</title>
7136 <link>http://people.skolelinux.org/pere/blog/Second_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</link>
7137 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Second_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</guid>
7138 <pubDate>Mon, 27 Feb 2012 14:00:00 +0100</pubDate>
7139 <description>&lt;p&gt;This weekend we wrapped up and published the second release
7140 candidate for &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu /
7141 Skolelinux&lt;/a&gt; based on Squeeze. The full announcement did for some
7142 reason not make it the project announcement list, but is
7143 &lt;a href=&quot;http://lists.debian.org/debian-devel-announce/2012/02/msg00015.html&quot;&gt;available&lt;/a&gt;
7144 from the Debian development announcement list. Check it out if you
7145 need a software solution for your school.&lt;/p&gt;
7146 </description>
7147 </item>
7148
7149 <item>
7150 <title>Stopmotion for making stop motion animations on Linux - reloaded</title>
7151 <link>http://people.skolelinux.org/pere/blog/Stopmotion_for_making_stop_motion_animations_on_Linux___reloaded.html</link>
7152 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Stopmotion_for_making_stop_motion_animations_on_Linux___reloaded.html</guid>
7153 <pubDate>Sat, 3 Mar 2012 12:50:00 +0100</pubDate>
7154 <description>&lt;p&gt;Many years ago, the &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux
7155 / Debian Edu project&lt;/a&gt; initiated a student project to create a tool
7156 for making stop motion movies. The proposal came from a teacher
7157 needing such tool on Skolelinux. The project, called &quot;stopmotion&quot;,
7158 was manned by two extraordinary students and won a school award and a
7159 national aware with this great project. The project was initiated and
7160 mentored by Herman Robak, and manned by the students Bjørn Erik Nilsen
7161 and Fredrik Berg Kjølstad. They got in touch with people at Aardman
7162 Animation studio and received feedback on how professionals would like
7163 such stopmotion tool to work, and the end result was and is used by
7164 animators around the globe. But as is usual after studying, both got
7165 jobs and went elsewhere, and did not have time to properly tend to the
7166 project, and it has been lingering for a few years now. Until last
7167 year...&lt;/p&gt;
7168
7169 &lt;p&gt;Last year some of the users got together with Herman, and moved the
7170 project to Sourceforge and in effect restarted the project under a new
7171 name,
7172 &lt;a href=&quot;http://sourceforge.net/projects/linuxstopmotion/&quot;&gt;linuxstopmotion&lt;/a&gt;.
7173 The name change was done to make it possible to find the project using
7174 Internet search engines (try to search for &#39;stopmotion&#39; to see what I
7175 mean). I&#39;ve been following
7176 &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/linuxstopmotion-community&quot;&gt;the
7177 mailing list&lt;/a&gt; and the improvement already in place and planned for
7178 the future is encouraging. If you want to make stop motion movies.
7179 Check it out. :)&lt;/p&gt;
7180 </description>
7181 </item>
7182
7183 <item>
7184 <title>Third release candidate of Debian Edu / Skolelinux based on Squeeze</title>
7185 <link>http://people.skolelinux.org/pere/blog/Third_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</link>
7186 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Third_release_candidate_of_Debian_Edu___Skolelinux_based_on_Squeeze.html</guid>
7187 <pubDate>Sun, 4 Mar 2012 18:20:00 +0100</pubDate>
7188 <description>&lt;p&gt;This weekend we wrapped up and published the third release
7189 candidate for &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu /
7190 Skolelinux&lt;/a&gt; based on Squeeze. The full announcement is
7191 &lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/03/msg00000.html&quot;&gt;available&lt;/a&gt;
7192 from the project announcement list. Check it out if you
7193 need a software solution for your school.&lt;/p&gt;
7194 </description>
7195 </item>
7196
7197 <item>
7198 <title>Debian Edu screencast: Mass creation of user accounts in Squeeze</title>
7199 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_screencast__Mass_creation_of_user_accounts_in_Squeeze.html</link>
7200 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_screencast__Mass_creation_of_user_accounts_in_Squeeze.html</guid>
7201 <pubDate>Wed, 7 Mar 2012 13:40:00 +0100</pubDate>
7202 <description>&lt;!-- Video HTML based on http://www.diveintohtml5.net/video.html --&gt;
7203
7204 &lt;p&gt;One of the Debian Edu developers, Wolfgang Schweer, just created a
7205 screen cast documenting how to create a lot of new users in LDAP on
7206 Debian Edu Squeeze. The video is embedded here in quarter size, and
7207 also available from &lt;a href=&quot;http://vimeo.com/37675399&quot;&gt;vimeo&lt;/a&gt; and
7208 download as a
7209 &lt;a href=&quot;http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv&quot;&gt;Ogg
7210 Theora&lt;/a&gt; file. Check it out below.&lt;/p&gt;
7211
7212 &lt;p&gt;&lt;video id=&quot;gosa-mass-user-create-movie&quot; width=&quot;256&quot; height=&quot;184&quot; preload controls&gt;
7213 &lt;source src=&quot;http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv&quot; type=&#39;video/ogg; codecs=&quot;theora, vorbis&quot;&#39; /&gt;
7214 &lt;p&gt;Download video as
7215 &lt;a href=&quot;http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-02-29-debian_edu_mass_create_user_accounts.ogv&quot;&gt;Ogg&lt;/a&gt;.&lt;/p&gt;
7216 &lt;/video&gt;&lt;/p&gt;
7217 </description>
7218 </item>
7219
7220 <item>
7221 <title>Debian Edu interview: Nigel Barker</title>
7222 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Nigel_Barker.html</link>
7223 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Nigel_Barker.html</guid>
7224 <pubDate>Fri, 9 Mar 2012 11:30:00 +0100</pubDate>
7225 <description>&lt;p&gt;Inspired by &lt;a href=&quot;http://raphaelhertzog.com/tag/interview/&quot;&gt;the
7226 interview series&lt;/a&gt; conducted by Raphael, I started a Norwegian
7227 interview series with people involved in the Debian Edu / Skolelinux
7228 community. This was so popular that I believe it is time to move to a
7229 more international audience.&lt;/p&gt;
7230
7231 &lt;p&gt;While &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu and
7232 Skolelinux&lt;/a&gt; originated in France and Norway, and have most users in
7233 Europe, there are users all around the globe. One of those far away
7234 from me is Nigel Barker, a long time Debian Edu system administrator
7235 and contributor. It is thanks to him that Debian Edu is adjusted to
7236 work out of the box in Japan. I got him to answer a few questions,
7237 and am happy to share the response with you. :)
7238
7239
7240 &lt;p&gt;&lt;strong&gt;Who are you, and how do you spend your days?&lt;/strong&gt;&lt;/p&gt;
7241
7242 &lt;p&gt;My name is Nigel Barker, and I am British. I am married to Yumiko,
7243 and we have three lovely children, aged 15, 14 and 4(!) I am the IT
7244 Coordinator at Hiroshima International School, Japan. I am also a
7245 teacher, and in fact I spend most of my day teaching Mathematics,
7246 Science, IT, and Chemistry. I was originally a Chemistry teacher, but
7247 I have always had an interest in computers. Another teacher teaches
7248 primary school IT, but apart from that I am the only computer person,
7249 so that means I am the network manager, technician and webmaster,
7250 also, and I help people with their computer problems. I teach python
7251 to beginners in an after-school club. I am way too busy, so I really
7252 appreciate the simplicity of Skolelinux.&lt;/p&gt;
7253
7254 &lt;p&gt;&lt;strong&gt;How did you get in contact with the Skolelinux/Debian Edu
7255 project?&lt;/strong&gt;&lt;/p&gt;
7256
7257 &lt;p&gt;In around 2004 or 5 I discovered the ltsp project, and set up a
7258 server in the IT lab. I wanted some way to connect it to our central
7259 samba server, which I was also quite poor at configuring. I discovered
7260 Edubuntu when it came out, but it didn&#39;t really improve my setup. I
7261 did various desperate searches for things like &quot;school Linux server&quot;
7262 and ended up in a document called &quot;Drift&quot; something or other. Reading
7263 there it became clear that Skolelinux was going to solve all my
7264 problems in one go. I was very excited, but apprehensive, because my
7265 previous attempts to install Debian had ended in failure (I used
7266 Mandrake for everything - ltsp, samba, apache, mail, ns...). I
7267 downloaded a beta version, had some problems, so subscribed to the
7268 Debian Edu list for help. I have remained subscribed ever since, and
7269 my school has run a Skolelinux network since Sarge.&lt;/p&gt;
7270
7271 &lt;p&gt;&lt;strong&gt;What do you see as the advantages of Skolelinux/Debian
7272 Edu?&lt;/strong&gt;&lt;/p&gt;
7273
7274 &lt;p&gt;For me the integrated setup. This is not just the server, or the
7275 workstation, or the ltsp. Its all of them, and its all configured
7276 ready to go. I read somewhere in the early documentation that it is
7277 designed to be setup and managed by the Maths or Science teacher, who
7278 doesn&#39;t necessarily know much about computers, in a small Norwegian
7279 school. That describes me perfectly if you replace Norway with
7280 Japan.&lt;/p&gt;
7281
7282 &lt;p&gt;&lt;strong&gt;What do you see as the disadvantages of Skolelinux/Debian
7283 Edu?&lt;/strong&gt;&lt;/p&gt;
7284
7285 &lt;p&gt;The desktop is fairly plain. If you compare it with Edubuntu, who
7286 have fun themes for children, or with distributions such as Mint, who
7287 make the desktop beautiful. They create a good impression on people
7288 who don&#39;t need to understand how to use any of it, but who might be
7289 important to the school. School administrators or directors, for
7290 instance, or parents. Even kids. Debian itself usually has ugly
7291 default theme settings. It was my dream a few years back that some
7292 kind of integration would allow Edubuntu to do the desktop stuff and
7293 Debian Edu the servers, but now I realise how impossible that is. A
7294 second disadvantage is that if something goes wrong, or you need to
7295 customise something, then suddenly the level of expertise required
7296 multiplies. For example, backup wasn&#39;t working properly in Lenny. It
7297 took me ages to learn how to set up my own server to do rsync backups.
7298 I am afraid of anything to do with ldap, but perhaps Gosa will
7299 help.&lt;/p&gt;
7300
7301 &lt;p&gt;&lt;strong&gt;Which free software do you use daily?&lt;/strong&gt;&lt;/p&gt;
7302
7303 &lt;p&gt;Nowadays I only use Debian on my personal computers. I have one for
7304 studio work (I play guitar and write songs), running AV Linux
7305 (customised Debian) a netbook running Squeeze, and a bigger laptop
7306 still running Skolelinux Lenny workstation. I have a Tjener in my
7307 house, that&#39;s very useful for the family photos and music. At school
7308 the students only use Skolelinux. (Some teachers and the office still
7309 have windows). So that means we only use free software all day every
7310 day. Open office, The GIMP, Firefox/Iceweasel, VLC and Audacity are
7311 installed on every computer in school, irrespective of OS. We also
7312 have Koha on Debian for the library, and Apache, Moodle, b2evolution
7313 and Etomite on Debian for the www. The firewall is Untangle.&lt;/p&gt;
7314
7315 &lt;p&gt;&lt;strong&gt;Which strategy do you believe is the right one to use to
7316 get schools to use free software?&lt;/strong&gt;&lt;/p&gt;
7317
7318 &lt;p&gt;Current trends are in our favour. Open source is big in industry,
7319 and ordinary people have heard of it. The spread of Android and the
7320 popularity of Apple have helped to weaken the impression that you have
7321 to have Microsoft on everything. People complain to me much less about
7322 file formats and Word than they did 5 years ago. The Edu aspect is
7323 also a selling point. This is all customised for schools. Where is the
7324 Windows-edu, or the Mac-edu? But of course the main attraction is
7325 budget.The trick is to convince people that the quality is not
7326 compromised when you stop paying and use free software instead. That
7327 is one reason why I say the desktop experience is a weakness. People
7328 are not impressed when their USB drive doesn&#39;t work, or their browser
7329 doesn&#39;t play flash, for example.&lt;/p&gt;
7330 </description>
7331 </item>
7332
7333 <item>
7334 <title>Skolelinux / Debian Edu Squeeze is out!</title>
7335 <link>http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_Squeeze_is_out_.html</link>
7336 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Skolelinux___Debian_Edu_Squeeze_is_out_.html</guid>
7337 <pubDate>Sun, 11 Mar 2012 23:00:00 +0100</pubDate>
7338 <description>&lt;p&gt;This weekend we finally published the first stable release of
7339 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux / Debian Edu&lt;/a&gt; based
7340 on Debian/Squeeze. The full announcement is
7341 &lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html&quot;&gt;available&lt;/a&gt;
7342 from the project announcement list. Now is a good time to test if it
7343 you have not done so already.&lt;/p&gt;
7344
7345 &lt;p&gt;I plan to present the new version at
7346 &lt;a href=&quot;http://www.nuug.no/aktiviteter/20120313-skolelinux/&quot;&gt;a NUUG
7347 meeting&lt;/a&gt; on tuesday. I look forward to seeing you there if you are
7348 in Oslo, Norway.&lt;/p&gt;
7349 </description>
7350 </item>
7351
7352 <item>
7353 <title>Writing and translating documentation in Debian Edu</title>
7354 <link>http://people.skolelinux.org/pere/blog/Writing_and_translating_documentation_in_Debian_Edu.html</link>
7355 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Writing_and_translating_documentation_in_Debian_Edu.html</guid>
7356 <pubDate>Fri, 16 Mar 2012 09:55:00 +0100</pubDate>
7357 <description>&lt;p&gt;Documentation in Debian Edu is provided in several languages, and
7358 it is important to make it both easy to contribute and to keep the
7359 translated versions in sync. To do this we have come up with what we
7360 believe is a very efficient work flow.&lt;/p&gt;
7361
7362 &lt;ol&gt;
7363
7364 &lt;li&gt;The documentation is written in a
7365 &lt;a href=&quot;http://moinmo.in&quot;&gt;moinmoin wiki&lt;/a&gt; (see for example
7366 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/Documentation/Squeeze&quot;&gt;the
7367 Squeeze release manual&lt;/a&gt;) with support for exporting the content as
7368 docbook XML.&lt;/li&gt;
7369
7370 &lt;li&gt;This docbook document is given to po4a to extract a gettext style
7371 .pot file with the content, which in turn is used to create .po files
7372 with the translated text.&lt;/li&gt;
7373
7374 &lt;li&gt;The .po files are given to translators, and they can always tell
7375 which part of the original wiki document is new or changed. They can
7376 use their normal translation tools like lokalize or poedit to write
7377 the translation. There is even a system in place to handle translated
7378 images.&lt;/li&gt;
7379
7380 &lt;li&gt;The translated .po files are combined with the original docbook
7381 XML document using po4a to create a translated docbook document.&lt;/li&gt;
7382
7383 &lt;li&gt;The final step is to use all the generated docbook files and
7384 create PDF and HTML version of the original and translated documents.&lt;/li&gt;
7385
7386 &lt;/ol&gt;
7387
7388 &lt;p&gt;This setup work very well, but have a few issues. The biggest
7389 issue is that &lt;a href=&quot;http://moinmo.in/DocBook&quot;&gt;the docbook support
7390 we use in moinmoin&lt;/a&gt; is not actively maintained. The docbook
7391 support is also buggy, and our build system contain workarounds to
7392 make sure the generated docbook is usable despite these bugs.&lt;/p&gt;
7393
7394 &lt;p&gt;If you want to have a look at our setup, it is all there in the
7395 &lt;a href=&quot;http://packages.qa.debian.org/debian-edu-doc&quot;&gt;debian-edu-doc
7396 package&lt;/a&gt;.&lt;/p&gt;
7397 </description>
7398 </item>
7399
7400 <item>
7401 <title>Debian Edu interview: John Ingleby</title>
7402 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_interview__John_Ingleby.html</link>
7403 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_interview__John_Ingleby.html</guid>
7404 <pubDate>Mon, 19 Mar 2012 21:15:00 +0100</pubDate>
7405 <description>&lt;p&gt;&lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt;
7406 users are spread all across the globe. The second inteview after
7407 &lt;a href=&quot;http://lists.debian.org/debian-edu-announce/2012/03/msg00001.html&quot;&gt;the
7408 Squeeze release&lt;/a&gt; was publised is with John Ingleby, a teacher and
7409 long time Linux user in United Kingdom.&lt;/p&gt;
7410
7411 &lt;p&gt;&lt;strong&gt;Who are you, and how do you spend your days?&lt;/strong&gt;&lt;/p&gt;
7412
7413 &lt;p&gt;I teach ICT part time at the Rudolf Steiner School in Kings
7414 Langley, near London, UK. Previously I worked as a technical
7415 author/trainer while my children attended the school, and I also
7416 contributed to the Schoolforge UK community with the aim of
7417 encouraging UK schools to adopt free/open source software. Five or six
7418 years ago we had about 50 schools interested in some way, but we
7419 weren&#39;t able to convert many of them into sustainable
7420 installations.&lt;/p&gt;
7421
7422 &lt;p&gt;&lt;strong&gt;How did you get in contact with the Skolelinux/Debian Edu
7423 project?&lt;/strong&gt;&lt;/p&gt;
7424
7425 &lt;p&gt;Skolelinux had two representatives at an early Edubuntu meeting in
7426 London which I attended. However at that time our school network had
7427 just been installed using CentOS, LTSP 4 and GNOME. When LTSP 5 came
7428 along we switched to Edubuntu thin client servers so now we have a
7429 mixed environment which includes Windows PCs and student laptops, as
7430 well as their MacBooks and iPads. However, the proprietary systems
7431 have always been rather problematic, and we never built a GUI for the
7432 LDAP server, so when I discovered Skolelinux is configured for all
7433 these things we decided to try it.&lt;/p&gt;
7434
7435 &lt;p&gt;&lt;strong&gt;What do you see as the advantages of Skolelinux/Debian
7436 Edu?&lt;/strong&gt;&lt;/p&gt;
7437
7438 &lt;p&gt;By far the biggest advantage is the Debian Edu community. Apart
7439 from that I have always believed in the same &quot;sustainable computing&quot;
7440 goals that Skolelinux is built on: installing Linux on computers which
7441 would otherwise be thrown away, to provide a reliable, secure and
7442 low-cost IT environment for schools. From my own experience I know
7443 that a part-time person can teach and manage a network of about 25
7444 Linux computers, but it would take much more of my time if we had
7445 proprietary software everywhere.&lt;/p&gt;
7446
7447 &lt;p&gt;&lt;strong&gt;What do you see as the disadvantages of Skolelinux/Debian
7448 Edu?&lt;/strong&gt;&lt;/p&gt;
7449
7450 &lt;p&gt;As a newcomer I&#39;m just finding out who&#39;s who in the community and
7451 how you&#39;re organised, and what your procedures are for dealing with
7452 various things such as editing manual pages and so-on. The only
7453 English language mailing list seems to be for developers as well as
7454 users, so my inbox needs heavy pruning each day!&lt;/p&gt;
7455
7456 &lt;p&gt;&lt;strong&gt;Which free software do you use daily?&lt;/strong&gt;&lt;/p&gt;
7457
7458 &lt;p&gt;Besides the software already mentioned at school we use Samba,
7459 OpenLDAP, CUPS, Nagios and Dansguardian for the network, and on the
7460 desktops we have LibreOffice, Firefox, GIMP and Inkscape. At home I
7461 use Ubuntu and an Android 4 eePad Transformer (but I&#39;m not sure if
7462 that counts...)&lt;/p&gt;
7463
7464 &lt;p&gt;&lt;strong&gt;Which strategy do you believe is the right one to use to
7465 get schools to use free software?&lt;/strong&gt;&lt;/p&gt;
7466
7467 &lt;p&gt;That&#39;s a tough question! For very many years UK schools installed
7468 and taught only proprietary software, so that at the highest levels
7469 the notion of &quot;computer&quot; means simply &quot;proprietary office
7470 applications&quot;. However, schools today are experiencing budget
7471 constraints, and many are having to think hard about upgrading Windows
7472 XP. At the same time, we have students showing teachers how to use
7473 iPads, MacBooks and Android, so the choice of operating system is no
7474 longer quite so automatic. What is more, our government at last
7475 realised that we need people with programming skills, so they&#39;re
7476 putting coding back in the curriculum! And it&#39;s encouraging that the
7477 first 10,000 Raspberry Pi units sold out in 2 hours.&lt;/p&gt;
7478
7479 &lt;p&gt;I don&#39;t really know what strategy is going to get UK schools to use
7480 free software, but building an active community of Skolelinux/Debian
7481 Edu users in this country has to be part of it.&lt;/p&gt;
7482 </description>
7483 </item>
7484
7485 <item>
7486 <title>Debian Edu screencast: Checking email with kmail using Kerberos authentication</title>
7487 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_screencast__Checking_email_with_kmail_using_Kerberos_authentication.html</link>
7488 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_screencast__Checking_email_with_kmail_using_Kerberos_authentication.html</guid>
7489 <pubDate>Sun, 25 Mar 2012 10:00:00 +0200</pubDate>
7490 <description>&lt;!-- Video HTML based on http://www.diveintohtml5.net/video.html --&gt;
7491
7492 &lt;p&gt;The same Debian Edu developer that did the last screen cast I
7493 published, Wolfgang Schweer, has created a new screen cast showing how
7494 to set up Kmail in Debian Edu Squeze to authenticate using Kerberos,
7495 allowing users to check their local email account without providing
7496 any password. The video is embedded here in quarter size,
7497 and also available from &lt;a href=&quot;https://vimeo.com/38601767&quot;&gt;vimeo&lt;/a&gt;
7498 and download as a
7499 &lt;a href=&quot;http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv&quot;&gt;Ogg
7500 Theora&lt;/a&gt; file. Check it out below.&lt;/p&gt;
7501
7502 &lt;p&gt;&lt;video id=&quot;kmail-kerberos-movie&quot; width=&quot;256&quot; height=&quot;184&quot; preload controls&gt;
7503 &lt;source src=&quot;http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv&quot; type=&#39;video/ogg; codecs=&quot;theora, vorbis&quot;&#39; /&gt;
7504 &lt;p&gt;Download video as
7505 &lt;a href=&quot;http://ftp.skolelinux.org/skolelinux/press/screencasts/2012-03-14-Debian-Edu_Configure_Kmail_for_internal_usage.ogv&quot;&gt;Ogg&lt;/a&gt;.&lt;/p&gt;
7506 &lt;/video&gt;&lt;/p&gt;
7507 </description>
7508 </item>
7509
7510 <item>
7511 <title>Debian Edu interview: Wolfgang Schweer</title>
7512 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Wolfgang_Schweer.html</link>
7513 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_interview__Wolfgang_Schweer.html</guid>
7514 <pubDate>Sun, 1 Apr 2012 23:00:00 +0200</pubDate>
7515 <description>&lt;p&gt;Germany is a core area for the
7516 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu and Skolelinux&lt;/a&gt;
7517 user community, and this time I managed to get hold of Wolfgang
7518 Schweer, a valuable contributor to the project from Germany.
7519
7520 &lt;p&gt;&lt;strong&gt;Who are you, and how do you spend your days?&lt;/strong&gt;&lt;/p&gt;
7521
7522 &lt;p&gt;I&#39;ve studied Mathematics at the university &#39;Ruhr-Universität&#39; in
7523 Bochum, Germany. Since 1981 I&#39;m working as a teacher at the school
7524 &quot;&lt;a href=&quot;http://www.westfalenkolleg-dortmund.de/&quot;&gt;Westfalen-Kolleg
7525 Dortmund&lt;/a&gt;&quot;, a second chance school. Here, young adults is given
7526 the opportunity to get further education in order to do the school
7527 examination &#39;Abitur&#39;, which will allow to study at a university. This
7528 second chance is of value for those who want a better job perspective
7529 or failed to get a higher school examination being teens.&lt;/p&gt;
7530
7531 &lt;p&gt;Besides teaching I was involved in developing online courses for a
7532 blended learning project called &#39;abitur-online.nrw&#39; and in some other
7533 information technology related projects. For about ten years I&#39;ve been
7534 teacher and coordinator for the &#39;abitur-online&#39; project at my
7535 school. Being now in my early sixties, I&#39;ve decided to leave school at
7536 the end of April this year.&lt;/p&gt;
7537
7538 &lt;p&gt;&lt;strong&gt;How did you get in contact with the Skolelinux/Debian Edu
7539 project?&lt;/strong&gt;&lt;/p&gt;
7540
7541 &lt;p&gt;The first information about Skolelinux must have come to my
7542 attention years ago and somehow related to LTSP (Linux Terminal Server
7543 Project). At school, we had set up a network at the beginning of 1997
7544 using Suse Linux on the desktop, replacing a Novell network. Since
7545 2002, we used old machines from the city council of Dortmund as thin
7546 clients (LTSP, later Ubuntu/Lessdisks) cause new hardware was out of
7547 reach. At home I&#39;m using Debian since years and - subscribed to the
7548 Debian news letter - heard from time to time about Skolelinux. About
7549 two years ago I proposed to replace the (somehow undocumented and only
7550 known to me) system at school by a well known Debian based system:
7551 Skolelinux.&lt;/p&gt;
7552
7553 &lt;p&gt;Students and teachers appreciated the new system because of a
7554 better look and feel and an enhanced access to local media on thin
7555 clients. The possibility to alter and/or reset passwords using a GUI
7556 was welcomed, too. Being able to do administrative tasks using a GUI
7557 and to easily set up workstations using PXE was of very high value for
7558 the admin teachers.&lt;/p&gt;
7559
7560 &lt;p&gt;&lt;strong&gt;What do you see as the advantages of Skolelinux/Debian
7561 Edu?&lt;/strong&gt;&lt;/p&gt;
7562
7563 &lt;p&gt;It&#39;s open source, easy to set up, stable and flexible due to it&#39;s
7564 Debian base. It integrates LTSP out-of-the-box. And it is documented!
7565 So it was a perfect choice.&lt;/p&gt;
7566
7567 &lt;p&gt;Being open source, there are no license problems and so it&#39;s
7568 possible to point teachers and students to programs like
7569 OpenOffice.org, ViewYourMind (mind mapping) and The Gimp. It&#39;s of
7570 high value to be able to adapt parts of the system to special needs of
7571 a school and to choose where to get support for this.&lt;/p&gt;
7572
7573 &lt;p&gt;&lt;strong&gt;What do you see as the disadvantages of Skolelinux/Debian
7574 Edu?&lt;/strong&gt;&lt;/p&gt;
7575
7576 &lt;p&gt;Nothing yet.&lt;/p&gt;
7577
7578 &lt;p&gt;&lt;strong&gt;Which free software do you use daily?&lt;/strong&gt;&lt;/p&gt;
7579
7580 &lt;p&gt;At home (Debian Sid with Gnome Desktop): Iceweasel, LibreOffice,
7581 Mutt, Gedit, Document Viewer, Midnight Commander, flpsed (PDF
7582 Annotator). At school (Skolelinux Lenny): Iceweasel, Gedit,
7583 LibreOffice.&lt;/p&gt;
7584
7585 &lt;p&gt;&lt;strong&gt;Which strategy do you believe is the right one to use to
7586 get schools to use free software?&lt;/strong&gt;&lt;/p&gt;
7587
7588 &lt;p&gt;Some time ago I thought it was enough to tell people about it. But
7589 that doesn&#39;t seem to work quite well. Now I concentrate on those more
7590 interested and hope to get multiplicators that way.&lt;/p&gt;
7591 </description>
7592 </item>
7593
7594 <item>
7595 <title>Debian Edu in the Linux Weekly News</title>
7596 <link>http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html</link>
7597 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html</guid>
7598 <pubDate>Thu, 5 Apr 2012 08:00:00 +0200</pubDate>
7599 <description>&lt;p&gt;About two weeks ago, I was interviewed via email about
7600 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu and Skolelinux&lt;/a&gt; by
7601 Bruce Byfield in Linux Weekly News. The result was made public for
7602 non-subscribers today. I am pleased to see liked our Linux solution
7603 for schools. Check out his article
7604 &lt;a href=&quot;https://lwn.net/Articles/488805/&quot;&gt;Debian Edu/Skolelinux: A
7605 distribution for education&lt;/a&gt; if you want to learn more.&lt;/p&gt;
7606 </description>
7607 </item>
7608
7609 <item>
7610 <title>Why the KDE menu is slow when /usr/ is NFS mounted - and a workaround</title>
7611 <link>http://people.skolelinux.org/pere/blog/Why_the_KDE_menu_is_slow_when__usr__is_NFS_mounted___and_a_workaround.html</link>
7612 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Why_the_KDE_menu_is_slow_when__usr__is_NFS_mounted___and_a_workaround.html</guid>
7613 <pubDate>Fri, 6 Apr 2012 22:40:00 +0200</pubDate>
7614 <description>&lt;p&gt;Recently I have spent time with
7615 &lt;a href=&quot;http://www.slxdrift.no/&quot;&gt;Skolelinux Drift AS&lt;/a&gt; on speeding
7616 up a &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux&lt;/a&gt;
7617 Lenny installation using LTSP diskless workstations, and in the
7618 process I discovered something very surprising. The reason the KDE
7619 menu was responding slow when using it for the first time, was mostly
7620 due to the way KDE find application icons. I discovered that showing
7621 the Multimedia menu would cause more than 20 000 IP packages to be
7622 passed between the LTSP client and the NFS server. Most of these were
7623
7624 NFS LOOKUP calls, resulting in a NFS3ERR_NOENT response. Because the
7625 ping times between the client and the server were in the range 2-20
7626 ms, the menus would be very slow. Looking at the strace of kicker in
7627 Lenny (or plasma-desktop i Squeeze - same problem there), I see that
7628 the source of these NFS calls are access(2) system calls for
7629 non-existing files. KDE can do hundreds of access(2) calls to find
7630 one icon file. In my example, just finding the mplayer icon required
7631 around 230 access(2) calls.&lt;/p&gt;
7632
7633 &lt;p&gt;The KDE code seem to search for icons using a list of icon
7634 directories, and the list of possible directories is large. In
7635 (almost) each directory, it look for files ending in .png, .svgz, .svg
7636 and .xpm. The result is a very slow KDE menu when /usr/ is NFS
7637 mounted. Showing a single sub menu may result in thousands of NFS
7638 requests. I am not the first one to discover this. I found a
7639 &lt;a href=&quot;https://bugs.kde.org/show_bug.cgi?id=211416&quot;&gt;KDE bug report
7640 from 2009&lt;/a&gt; about this problem, and it is still unsolved.&lt;/p&gt;
7641
7642 &lt;p&gt;My solution to speed up the KDE menu was to create a package
7643 kde-icon-cache that upon installation will look at all .desktop files
7644 used to generate the KDE menu, find their icons, search the icon paths
7645 for the file that KDE will end up finding at run time, and copying the
7646 icon file to /var/lib/kde-icon-cache/. Finally, I add symlinks to
7647 these icon files in one of the first directories where KDE will look
7648 for them. This cut down the number of file accesses required to find
7649 one icon from several hundred to less than 5, and make the KDE menu
7650 almost instantaneous. I&#39;m not quite sure where to make the package
7651 publicly available, so for now it is only available on request.&lt;/p&gt;
7652
7653 &lt;p&gt;The bug report mention that this do not only affect the KDE menu
7654 and icon handling, but also the login process. Not quite sure how to
7655 speed up that part without replacing NFS with for example NBD, and
7656 that is not really an option at the moment.&lt;/p&gt;
7657
7658 &lt;p&gt;If you got feedback on this issue, please let us know on debian-edu
7659 (at) lists.debian.org.&lt;/p&gt;
7660 </description>
7661 </item>
7662
7663 </channel>
7664 </rss>