]> pere.pagekite.me Git - homepage.git/blob - blog/tags/debian/debian.rss
7087e6a9bb67f06b84103f8ff624cbaacee77874
[homepage.git] / blog / tags / debian / debian.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 debian</title>
5 <description>Entries tagged debian</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>Endelig er Debian Lenny gitt ut</title>
59 <link>http://people.skolelinux.org/pere/blog/Endelig_er_Debian_Lenny_gitt_ut.html</link>
60 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Endelig_er_Debian_Lenny_gitt_ut.html</guid>
61 <pubDate>Sun, 15 Feb 2009 11:50:00 +0100</pubDate>
62 <description>&lt;p&gt;Endelig er &lt;a href=&quot;http://www.debian.org/&quot;&gt;Debian&lt;/a&gt;
63 &lt;a href=&quot;http://www.debian.org/News/2009/20090214&quot;&gt;Lenny&lt;/a&gt; gitt ut.
64 Et langt steg videre for Debian-prosjektet, og en rekke nye
65 programpakker blir nå tilgjengelig for de av oss som bruker den
66 stabile utgaven av Debian. Neste steg er nå å få
67 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux&lt;/a&gt; /
68 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/&quot;&gt;Debian Edu&lt;/a&gt; ferdig
69 oppdatert for den nye utgaven, slik at en oppdatert versjon kan
70 slippes løs på skolene. Takk til alle debian-utviklerne som har
71 gjort dette mulig. Endelig er f.eks. fungerende avhengighetsstyrt
72 bootsekvens tilgjengelig i stabil utgave, vha pakken
73 &lt;tt&gt;insserv&lt;/tt&gt;.&lt;/p&gt;
74 </description>
75 </item>
76
77 <item>
78 <title>Time for new LDAP schemas replacing RFC 2307?</title>
79 <link>http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html</link>
80 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html</guid>
81 <pubDate>Sun, 29 Mar 2009 20:30:00 +0200</pubDate>
82 <description>&lt;p&gt;The state of standardized LDAP schemas on Linux is far from
83 optimal. There is RFC 2307 documenting one way to store NIS maps in
84 LDAP, and a modified version of this normally called RFC 2307bis, with
85 some modifications to be compatible with Active Directory. The RFC
86 specification handle the content of a lot of system databases, but do
87 not handle DNS zones and DHCP configuration.&lt;/p&gt;
88
89 &lt;p&gt;In &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu/Skolelinux&lt;/a&gt;,
90 we would like to store information about users, SMB clients/hosts,
91 filegroups, netgroups (users and hosts), DHCP and DNS configuration,
92 and LTSP configuration in LDAP. These objects have a lot in common,
93 but with the current LDAP schemas it is not possible to have one
94 object per entity. For example, one need to have at least three LDAP
95 objects for a given computer, one with the SMB related stuff, one with
96 DNS information and another with DHCP information. The schemas
97 provided for DNS and DHCP are impossible to combine into one LDAP
98 object. In addition, it is impossible to implement quick queries for
99 netgroup membership, because of the way NIS triples are implemented.
100 It just do not scale. I believe it is time for a few RFC
101 specifications to cleam up this mess.&lt;/p&gt;
102
103 &lt;p&gt;I would like to have one LDAP object representing each computer in
104 the network, and this object can then keep the SMB (ie host key), DHCP
105 (mac address/name) and DNS (name/IP address) settings in one place.
106 It need to be efficently stored to make sure it scale well.&lt;/p&gt;
107
108 &lt;p&gt;I would also like to have a quick way to map from a user or
109 computer and to the net group this user or computer is a member.&lt;/p&gt;
110
111 &lt;p&gt;Active Directory have done a better job than unix heads like myself
112 in this regard, and the unix side need to catch up. Time to start a
113 new IETF work group?&lt;/p&gt;
114 </description>
115 </item>
116
117 <item>
118 <title>Returning from Skolelinux developer gathering</title>
119 <link>http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html</link>
120 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Returning_from_Skolelinux_developer_gathering.html</guid>
121 <pubDate>Sun, 29 Mar 2009 21:00:00 +0200</pubDate>
122 <description>&lt;p&gt;I&#39;m sitting on the train going home from this weekends Debian
123 Edu/Skolelinux development gathering. I got a bit done tuning the
124 desktop, and looked into the dynamic service location protocol
125 implementation avahi. It look like it could be useful for us. Almost
126 30 people participated, and I believe it was a great environment to
127 get to know the Skolelinux system. Walter Bender, involved in the
128 development of the Sugar educational platform, presented his stuff and
129 also helped me improve my OLPC installation. He also showed me that
130 his Turtle Art application can be used in standalone mode, and we
131 agreed that I would help getting it packaged for Debian. As a
132 standalone application it would be great for Debian Edu. We also
133 tried to get the video conferencing working with two OLPCs, but that
134 proved to be too hard for us. The application seem to need more work
135 before it is ready for me. I look forward to getting home and relax
136 now. :)&lt;/p&gt;
137 </description>
138 </item>
139
140 <item>
141 <title>Standardize on protocols and formats, not vendors and applications</title>
142 <link>http://people.skolelinux.org/pere/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html</link>
143 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Standardize_on_protocols_and_formats__not_vendors_and_applications.html</guid>
144 <pubDate>Mon, 30 Mar 2009 11:50:00 +0200</pubDate>
145 <description>&lt;p&gt;Where I work at the University of Oslo, one decision stand out as a
146 very good one to form a long lived computer infrastructure. It is the
147 simple one, lost by many in todays computer industry: Standardize on
148 open network protocols and open exchange/storage formats, not applications.
149 Applications come and go, while protocols and files tend to stay, and
150 thus one want to make it easy to change application and vendor, while
151 avoiding conversion costs and locking users to a specific platform or
152 application.&lt;/p&gt;
153
154 &lt;p&gt;This approach make it possible to replace the client applications
155 independently of the server applications. One can even allow users to
156 use several different applications as long as they handle the selected
157 protocol and format. In the normal case, only one client application
158 is recommended and users only get help if they choose to use this
159 application, but those that want to deviate from the easy path are not
160 blocked from doing so.&lt;/p&gt;
161
162 &lt;p&gt;It also allow us to replace the server side without forcing the
163 users to replace their applications, and thus allow us to select the
164 best server implementation at any moment, when scale and resouce
165 requirements change.&lt;/p&gt;
166
167 &lt;p&gt;I strongly recommend standardizing - on open network protocols and
168 open formats, but I would never recommend standardizing on a single
169 application that do not use open network protocol or open formats.&lt;/p&gt;
170 </description>
171 </item>
172
173 <item>
174 <title>No patch is not better than a useless patch</title>
175 <link>http://people.skolelinux.org/pere/blog/No_patch_is_not_better_than_a_useless_patch.html</link>
176 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/No_patch_is_not_better_than_a_useless_patch.html</guid>
177 <pubDate>Tue, 28 Apr 2009 09:30:00 +0200</pubDate>
178 <description>&lt;p&gt;Julien Blache
179 &lt;a href=&quot;http://blog.technologeek.org/2009/04/12/214&quot;&gt;claim that no
180 patch is better than a useless patch&lt;/a&gt;. I completely disagree, as a
181 patch allow one to discuss a concrete and proposed solution, and also
182 prove that the issue at hand is important enough for someone to spent
183 time on fixing it. No patch do not provide any of these positive
184 properties.&lt;/p&gt;
185 </description>
186 </item>
187
188 <item>
189 <title>Two projects that have improved the quality of free software a lot</title>
190 <link>http://people.skolelinux.org/pere/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html</link>
191 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Two_projects_that_have_improved_the_quality_of_free_software_a_lot.html</guid>
192 <pubDate>Sat, 2 May 2009 15:00:00 +0200</pubDate>
193 <description>&lt;p&gt;There are two software projects that have had huge influence on the
194 quality of free software, and I wanted to mention both in case someone
195 do not yet know them.&lt;/p&gt;
196
197 &lt;p&gt;The first one is &lt;a href=&quot;http://valgrind.org/&quot;&gt;valgrind&lt;/a&gt;, a
198 tool to detect and expose errors in the memory handling of programs.
199 It is easy to use, all one need to do is to run &#39;valgrind program&#39;,
200 and it will report any problems on stdout. It is even better if the
201 program include debug information. With debug information, it is able
202 to report the source file name and line number where the problem
203 occurs. It can report things like &#39;reading past memory block in file
204 X line N, the memory block was allocated in file Y, line M&#39;, and
205 &#39;using uninitialised value in control logic&#39;. This tool has made it
206 trivial to investigate reproducible crash bugs in programs, and have
207 reduced the number of this kind of bugs in free software a lot.
208
209 &lt;p&gt;The second one is
210 &lt;a href=&quot;http://en.wikipedia.org/wiki/Coverity&quot;&gt;Coverity&lt;/a&gt; which is
211 a source code checker. It is able to process the source of a program
212 and find problems in the logic without running the program. It
213 started out as the Stanford Checker and became well known when it was
214 used to find bugs in the Linux kernel. It is now a commercial tool
215 and the company behind it is running
216 &lt;a href=&quot;http://www.scan.coverity.com/&quot;&gt;a community service&lt;/a&gt; for the
217 free software community, where a lot of free software projects get
218 their source checked for free. Several thousand defects have been
219 found and fixed so far. It can find errors like &#39;lock L taken in file
220 X line N is never released if exiting in line M&#39;, or &#39;the code in file
221 Y lines O to P can never be executed&#39;. The projects included in the
222 community service project have managed to get rid of a lot of
223 reliability problems thanks to Coverity.&lt;/p&gt;
224
225 &lt;p&gt;I believe tools like this, that are able to automatically find
226 errors in the source, are vital to improve the quality of software and
227 make sure we can get rid of the crashing and failing software we are
228 surrounded by today.&lt;/p&gt;
229 </description>
230 </item>
231
232 <item>
233 <title>Kryptert harddisk - naturligvis</title>
234 <link>http://people.skolelinux.org/pere/blog/Kryptert_harddisk___naturligvis.html</link>
235 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Kryptert_harddisk___naturligvis.html</guid>
236 <pubDate>Sat, 2 May 2009 15:30:00 +0200</pubDate>
237 <description>&lt;p&gt;&lt;a href=&quot;http://www.dagensit.no/trender/article1658676.ece&quot;&gt;Dagens
238 IT melder&lt;/a&gt; at Intel hevder at det er dyrt å miste en datamaskin,
239 når en tar tap av arbeidstid, fortrolige dokumenter,
240 personopplysninger og alt annet det innebærer. Det er ingen tvil om
241 at det er en kostbar affære å miste sin datamaskin, og det er årsaken
242 til at jeg har kryptert harddisken på både kontormaskinen og min
243 bærbare. Begge inneholder personopplysninger jeg ikke ønsker skal
244 komme på avveie, den første informasjon relatert til jobben min ved
245 Universitetet i Oslo, og den andre relatert til blant annet
246 foreningsarbeide. Kryptering av diskene gjør at det er lite
247 sannsynlig at dophoder som kan finne på å rappe maskinene får noe ut
248 av dem. Maskinene låses automatisk etter noen minutter uten bruk,
249 og en reboot vil gjøre at de ber om passord før de vil starte opp.
250 Jeg bruker Debian på begge maskinene, og installasjonssystemet der
251 gjør det trivielt å sette opp krypterte disker. Jeg har LVM på toppen
252 av krypterte partisjoner, slik at alt av datapartisjoner er kryptert.
253 Jeg anbefaler alle å kryptere diskene på sine bærbare. Kostnaden når
254 det er gjort slik jeg gjør det er minimale, og gevinstene er
255 betydelige. En bør dog passe på passordet. Hvis det går tapt, må
256 maskinen reinstalleres og alt er tapt.&lt;/p&gt;
257
258 &lt;p&gt;Krypteringen vil ikke stoppe kompetente angripere som f.eks. kjøler
259 ned minnebrikkene før maskinen rebootes med programvare for å hente ut
260 krypteringsnøklene. Kostnaden med å forsvare seg mot slike angripere
261 er for min del høyere enn gevinsten. Jeg tror oddsene for at
262 f.eks. etteretningsorganisasjoner har glede av å titte på mine
263 maskiner er minimale, og ulempene jeg ville oppnå ved å forsøke å
264 gjøre det vanskeligere for angripere med kompetanse og ressurser er
265 betydelige.&lt;/p&gt;
266 </description>
267 </item>
268
269 <item>
270 <title>IDG mener linux i servermarkedet vil vokse med 21% i 2009</title>
271 <link>http://people.skolelinux.org/pere/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html</link>
272 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/IDG_mener_linux_i_servermarkedet_vil_vokse_med_21__i_2009.html</guid>
273 <pubDate>Thu, 7 May 2009 22:30:00 +0200</pubDate>
274 <description>&lt;p&gt;Kom over
275 &lt;a href=&quot;http://news.cnet.com/8301-13505_3-10216873-16.html&quot;&gt;interessante
276 tall&lt;/a&gt; fra IDG om utviklingen av linuxservermarkedet. Fikk meg til
277 å tenke på antall tjenermaskiner ved Universitetet i Oslo der jeg
278 jobber til daglig. En rask opptelling forteller meg at vi har 490
279 (61%) fysiske unix-tjener (mest linux men også noen solaris) og 196
280 (25%) windowstjenere, samt 112 (14%) virtuelle unix-tjenere. Med den
281 bakgrunnskunnskapen kan jeg godt tro at IDG er inne på noe.&lt;/p&gt;
282 </description>
283 </item>
284
285 <item>
286 <title>BSAs påstander om piratkopiering møter motstand</title>
287 <link>http://people.skolelinux.org/pere/blog/BSAs_p_stander_om_piratkopiering_m_ter_motstand.html</link>
288 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/BSAs_p_stander_om_piratkopiering_m_ter_motstand.html</guid>
289 <pubDate>Sun, 17 May 2009 23:05:00 +0200</pubDate>
290 <description>&lt;p&gt;Hvert år de siste årene har BSA, lobbyfronten til de store
291 programvareselskapene som Microsoft og Apple, publisert en rapport der
292 de gjetter på hvor mye piratkopiering påfører i tapte inntekter i
293 ulike land rundt om i verden. Resultatene er tendensiøse. For noen
294 dager siden kom
295 &lt;a href=&quot;http://global.bsa.org/globalpiracy2008/studies/globalpiracy2008.pdf&quot;&gt;siste
296 rapport&lt;/a&gt;, og det er flere kritiske kommentarer publisert de siste
297 dagene. Et spesielt interessant kommentar fra Sverige,
298 &lt;a href=&quot;http://www.idg.se/2.1085/1.229795/bsa-hoftade-sverigesiffror&quot;&gt;BSA
299 höftade Sverigesiffror&lt;/a&gt;, oppsummeres slik:&lt;/p&gt;
300
301 &lt;blockquote&gt;
302 I sin senaste rapport slår BSA fast att 25 procent av all mjukvara i
303 Sverige är piratkopierad. Det utan att ha pratat med ett enda svenskt
304 företag. &quot;Man bör nog kanske inte se de här siffrorna som helt
305 exakta&quot;, säger BSAs Sverigechef John Hugosson.
306 &lt;/blockquote&gt;
307
308 &lt;p&gt;Mon tro om de er like metodiske når de gjetter på andelen piratkopiering i Norge? To andre kommentarer er &lt;a
309 href=&quot;http://www.vnunet.com/vnunet/comment/2242134/bsa-piracy-figures-shot-reality&quot;&gt;BSA
310 piracy figures need a shot of reality&lt;/a&gt; og &lt;a
311 href=&quot;http://www.michaelgeist.ca/content/view/3958/125/&quot;&gt;Does The WIPO
312 Copyright Treaty Work?&lt;/a&gt;&lt;/p&gt;
313
314 &lt;p&gt;Fant lenkene via &lt;a
315 href=&quot;http://tech.slashdot.org/article.pl?sid=09/05/17/1632242&quot;&gt;oppslag
316 på Slashdot&lt;/a&gt;.&lt;/p&gt;
317 </description>
318 </item>
319
320 <item>
321 <title>Debian boots quicker and quicker</title>
322 <link>http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html</link>
323 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html</guid>
324 <pubDate>Wed, 24 Jun 2009 21:40:00 +0200</pubDate>
325 <description>&lt;p&gt;I spent Monday and tuesday this week in London with a lot of the
326 people involved in the boot system on Debian and Ubuntu, to see if we
327 could find more ways to speed up the boot system. This was an Ubuntu
328 funded
329 &lt;a href=&quot;https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint&quot;&gt;developer
330 gathering&lt;/a&gt;. It was quite productive. We also discussed the future
331 of boot systems, and ways to handle the increasing number of boot
332 issues introduced by the Linux kernel becoming more and more
333 asynchronous and event base. The Ubuntu approach using udev and
334 upstart might be a good way forward. Time will show.&lt;/p&gt;
335
336 &lt;p&gt;Anyway, there are a few ways at the moment to speed up the boot
337 process in Debian. All of these should be applied to get a quick
338 boot:&lt;/p&gt;
339
340 &lt;ul&gt;
341
342 &lt;li&gt;Use dash as /bin/sh.&lt;/li&gt;
343
344 &lt;li&gt;Disable the init.d/hwclock*.sh scripts and make sure the hardware
345 clock is in UTC.&lt;/li&gt;
346
347 &lt;li&gt;Install and activate the insserv package to enable
348 &lt;a href=&quot;http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&quot;&gt;dependency
349 based boot sequencing&lt;/a&gt;, and enable concurrent booting.&lt;/li&gt;
350
351 &lt;/ul&gt;
352
353 These points are based on the Google summer of code work done by
354 &lt;a href=&quot;http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/&quot;&gt;Carlos
355 Villegas&lt;/a&gt;.
356
357 &lt;p&gt;Support for makefile-style concurrency during boot was uploaded to
358 unstable yesterday. When we tested it, we were able to cut 6 seconds
359 from the boot sequence. It depend on very correct dependency
360 declaration in all init.d scripts, so I expect us to find edge cases
361 where the dependences in some scripts are slightly wrong when we start
362 using this.&lt;/p&gt;
363
364 &lt;p&gt;On our IRC channel for this effort, #pkg-sysvinit, a new idea was
365 introduced by Raphael Geissert today, one that could affect the
366 startup speed as well. Instead of starting some scripts concurrently
367 from rcS.d/ and another set of scripts from rc2.d/, it would be
368 possible to run a of them in the same process. A quick way to test
369 this would be to enable insserv and run &#39;mv /etc/rc2.d/S* /etc/rcS.d/;
370 insserv&#39;. Will need to test if that work. :)&lt;/p&gt;
371 </description>
372 </item>
373
374 <item>
375 <title>Taking over sysvinit development</title>
376 <link>http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html</link>
377 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html</guid>
378 <pubDate>Wed, 22 Jul 2009 23:00:00 +0200</pubDate>
379 <description>&lt;p&gt;After several years of frustration with the lack of activity from
380 the existing sysvinit upstream developer, I decided a few weeks ago to
381 take over the package and become the new upstream. The number of
382 patches to track for the Debian package was becoming a burden, and the
383 lack of synchronization between the distribution made it hard to keep
384 the package up to date.&lt;/p&gt;
385
386 &lt;p&gt;On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
387 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
388 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
389 and Fedora), based on the patches currently in use in these
390 distributions. We Debian maintainers plan to move to this tarball as
391 the new upstream as soon as we find time to do the merge. Since the
392 new tarball was created, we agreed with Werner at SuSe to make a new
393 upstream project at &lt;a href=&quot;http://savannah.nongnu.org/&quot;&gt;Savannah&lt;/a&gt;, and continue
394 development there. The project is registered and currently waiting
395 for approval by the Savannah administrators, and as soon as it is
396 approved, we will import the old versions from svn and continue
397 working on the future release.&lt;/p&gt;
398
399 &lt;p&gt;It is a bit ironic that this is done now, when some of the involved
400 distributions are moving to upstart as a syvinit replacement.&lt;/p&gt;
401 </description>
402 </item>
403
404 <item>
405 <title>Debian has switched to dependency based boot sequencing</title>
406 <link>http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html</link>
407 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html</guid>
408 <pubDate>Mon, 27 Jul 2009 23:50:00 +0200</pubDate>
409 <description>&lt;p&gt;Since this evening, with the upload of sysvinit version 2.87dsf-2,
410 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
411 have been migrated to using dependency based boot sequencing. This
412 conclude work me and others have been doing for the last three days.
413 It feels great to see this finally part of the default Debian
414 installation. Now we just need to weed out the last few problems that
415 are bound to show up, to get everything ready for Squeeze.&lt;/p&gt;
416
417 &lt;p&gt;The next step is migrating /sbin/init from sysvinit to upstart, and
418 fixing the more fundamental problem of handing the event based
419 non-predictable kernel in the early boot.&lt;/p&gt;
420 </description>
421 </item>
422
423 <item>
424 <title>Parallellizing the boot in Debian Squeeze - ready for wider testing</title>
425 <link>http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html</link>
426 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html</guid>
427 <pubDate>Thu, 6 May 2010 23:25:00 +0200</pubDate>
428 <description>&lt;p&gt;These days, the init.d script dependencies in Squeeze are quite
429 complete, so complete that it is actually possible to run all the
430 init.d scripts in parallell based on these dependencies. If you want
431 to test your Squeeze system, make sure
432 &lt;a href=&quot;http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&quot;&gt;dependency
433 based boot sequencing&lt;/a&gt; is enabled, and add this line to
434 /etc/default/rcS:&lt;/p&gt;
435
436 &lt;blockquote&gt;&lt;pre&gt;
437 CONCURRENCY=makefile
438 &lt;/pre&gt;&lt;/blockquote&gt;
439
440 &lt;p&gt;That is it. It will cause sysv-rc to use the startpar tool to run
441 scripts in parallel using the dependency information stored in
442 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
443 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
444 to try to start the kdm and gdm scripts as early as possible, and will
445 start the facilities required by kdm or gdm as early as possible to
446 make this happen.&lt;/p&gt;
447
448 &lt;p&gt;Give it a try, and see if you like the result. If some services
449 fail to start properly, it is most likely because they have incomplete
450 init.d script dependencies in their startup script (or some of their
451 dependent scripts have incomplete dependencies). Report bugs and get
452 the package maintainers to fix it. :)&lt;/p&gt;
453
454 &lt;p&gt;Running scripts in parallel could be the default in Debian when we
455 manage to get the init.d script dependencies complete and correct. I
456 expect we will get there in Squeeze+1, if we get manage to test and
457 fix the remaining issues.&lt;/p&gt;
458
459 &lt;p&gt;If you report any problems with dependencies in init.d scripts to
460 the BTS, please usertag the report to get it to show up at
461 &lt;a href=&quot;http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org&quot;&gt;the
462 list of usertagged bugs related to this&lt;/a&gt;.&lt;/p&gt;
463 </description>
464 </item>
465
466 <item>
467 <title>systemd, an interesting alternative to upstart</title>
468 <link>http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html</link>
469 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html</guid>
470 <pubDate>Thu, 13 May 2010 22:20:00 +0200</pubDate>
471 <description>&lt;p&gt;The last few days a new boot system called
472 &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd&quot;&gt;systemd&lt;/a&gt;
473 has been
474 &lt;a href=&quot;http://0pointer.de/blog/projects/systemd.html&quot;&gt;introduced&lt;/a&gt;
475
476 to the free software world. I have not yet had time to play around
477 with it, but it seem to be a very interesting alternative to
478 &lt;a href=&quot;http://upstart.ubuntu.com/&quot;&gt;upstart&lt;/a&gt;, and might prove to be
479 a good alternative for Debian when we are able to switch to an event
480 based boot system. Tollef is
481 &lt;a href=&quot;http://bugs.debian.org/580814&quot;&gt;in the process&lt;/a&gt; of getting
482 systemd into Debian, and I look forward to seeing how well it work. I
483 like the fact that systemd handles init.d scripts with dependency
484 information natively, allowing them to run in parallel where upstart
485 at the moment do not.&lt;/p&gt;
486
487 &lt;p&gt;Unfortunately do systemd have the same problem as upstart regarding
488 platform support. It only work on recent Linux kernels, and also need
489 some new kernel features enabled to function properly. This means
490 kFreeBSD and Hurd ports of Debian will need a port or a different boot
491 system. Not sure how that will be handled if systemd proves to be the
492 way forward.&lt;/p&gt;
493
494 &lt;p&gt;In the mean time, based on the
495 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/05/msg00122.html&quot;&gt;input
496 on debian-devel@&lt;/a&gt; regarding parallel booting in Debian, I have
497 decided to enable full parallel booting as the default in Debian as
498 soon as possible (probably this weekend or early next week), to see if
499 there are any remaining serious bugs in the init.d dependencies. A
500 new version of the sysvinit package implementing this change is
501 already in experimental. If all go well, Squeeze will be released
502 with parallel booting enabled by default.&lt;/p&gt;
503 </description>
504 </item>
505
506 <item>
507 <title>Sitesummary tip: Listing MAC address of all clients</title>
508 <link>http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html</link>
509 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html</guid>
510 <pubDate>Fri, 14 May 2010 21:10:00 +0200</pubDate>
511 <description>&lt;p&gt;In the recent Debian Edu versions, the
512 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/HowTo/SiteSummary&quot;&gt;sitesummary
513 system&lt;/a&gt; is used to keep track of the machines in the school
514 network. Each machine will automatically report its status to the
515 central server after boot and once per night. The network setup is
516 also reported, and using this information it is possible to get the
517 MAC address of all network interfaces in the machines. This is useful
518 to update the DHCP configuration.&lt;/p&gt;
519
520 &lt;p&gt;To give some idea how to use sitesummary, here is a one-liner to
521 ist all MAC addresses of all machines reporting to sitesummary. Run
522 this on the collector host:&lt;/p&gt;
523
524 &lt;blockquote&gt;&lt;pre&gt;
525 perl -MSiteSummary -e &#39;for_all_hosts(sub { print join(&quot; &quot;, get_macaddresses(shift)), &quot;\n&quot;; });&#39;
526 &lt;/pre&gt;&lt;/blockquote&gt;
527
528 &lt;p&gt;This will list all MAC addresses assosiated with all machine, one
529 line per machine and with space between the MAC addresses.&lt;/p&gt;
530
531 &lt;p&gt;To allow system administrators easier job at adding static DHCP
532 addresses for hosts, it would be possible to extend this to fetch
533 machine information from sitesummary and update the DHCP and DNS
534 tables in LDAP using this information. Such tool is unfortunately not
535 written yet.&lt;/p&gt;
536 </description>
537 </item>
538
539 <item>
540 <title>Parallellized boot is now the default in Debian/unstable</title>
541 <link>http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html</link>
542 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html</guid>
543 <pubDate>Fri, 14 May 2010 22:40:00 +0200</pubDate>
544 <description>&lt;p&gt;Since this evening, parallel booting is the default in
545 Debian/unstable for machines using dependency based boot sequencing.
546 Apparently the testing of concurrent booting has been wider than
547 expected, if I am to believe the
548 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/05/msg00122.html&quot;&gt;input
549 on debian-devel@&lt;/a&gt;, and I concluded a few days ago to move forward
550 with the feature this weekend, to give us some time to detect any
551 remaining problems before Squeeze is frozen. If serious problems are
552 detected, it is simple to change the default back to sequential boot.
553 The upload of the new sysvinit package also activate a new upstream
554 version.&lt;/p&gt;
555
556 More information about
557 &lt;a href=&quot;http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&quot;&gt;dependency
558 based boot sequencing&lt;/a&gt; is available from the Debian wiki. It is
559 currently possible to disable parallel booting when one run into
560 problems caused by it, by adding this line to /etc/default/rcS:&lt;/p&gt;
561
562 &lt;blockquote&gt;&lt;pre&gt;
563 CONCURRENCY=none
564 &lt;/pre&gt;&lt;/blockquote&gt;
565
566 &lt;p&gt;If you report any problems with dependencies in init.d scripts to
567 the BTS, please usertag the report to get it to show up at
568 &lt;a href=&quot;http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org&quot;&gt;the
569 list of usertagged bugs related to this&lt;/a&gt;.&lt;/p&gt;
570 </description>
571 </item>
572
573 <item>
574 <title>More flexible firmware handling in debian-installer</title>
575 <link>http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html</link>
576 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/More_flexible_firmware_handling_in_debian_installer.html</guid>
577 <pubDate>Sat, 22 May 2010 21:30:00 +0200</pubDate>
578 <description>&lt;p&gt;After a long break from debian-installer development, I finally
579 found time today to return to the project. Having to spend less time
580 working dependency based boot in debian, as it is almost complete now,
581 definitely helped freeing some time.&lt;/p&gt;
582
583 &lt;p&gt;A while back, I ran into a problem while working on Debian Edu. We
584 include some firmware packages on the Debian Edu CDs, those needed to
585 get disk and network controllers working. Without having these
586 firmware packages available during installation, it is impossible to
587 install Debian Edu on the given machine, and because our target group
588 are non-technical people, asking them to provide firmware packages on
589 an external medium is a support pain. Initially, I expected it to be
590 enough to include the firmware packages on the CD to get
591 debian-installer to find and use them. This proved to be wrong.
592 Next, I hoped it was enough to symlink the relevant firmware packages
593 to some useful location on the CD (tried /cdrom/ and
594 /cdrom/firmware/). This also proved to not work, and at this point I
595 found time to look at the debian-installer code to figure out what was
596 going to work.&lt;/p&gt;
597
598 &lt;p&gt;The firmware loading code is in the hw-detect package, and a closer
599 look revealed that it would only look for firmware packages outside
600 the installation media, so the CD was never checked for firmware
601 packages. It would only check USB sticks, floppies and other
602 &quot;external&quot; media devices. Today I changed it to also look in the
603 /cdrom/firmware/ directory on the mounted CD or DVD, which should
604 solve the problem I ran into with Debian edu. I also changed it to
605 look in /firmware/, to make sure the installer also find firmware
606 provided in the initrd when booting the installer via PXE, to allow us
607 to provide the same feature in the PXE setup included in Debian
608 Edu.&lt;/p&gt;
609
610 &lt;p&gt;To make sure firmware deb packages with a license questions are not
611 activated without asking if the license is accepted, I extended
612 hw-detect to look for preinst scripts in the firmware packages, and
613 run these before activating the firmware during installation. The
614 license question is asked using debconf in the preinst, so this should
615 solve the issue for the firmware packages I have looked at so far.&lt;/p&gt;
616
617 &lt;p&gt;If you want to discuss the details of these features, please
618 contact us on debian-boot@lists.debian.org.&lt;/p&gt;
619 </description>
620 </item>
621
622 <item>
623 <title>Parallellized boot seem to hold up well in Debian/testing</title>
624 <link>http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html</link>
625 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html</guid>
626 <pubDate>Thu, 27 May 2010 23:55:00 +0200</pubDate>
627 <description>&lt;p&gt;A few days ago, parallel booting was enabled in Debian/testing.
628 The feature seem to hold up pretty well, but three fairly serious
629 issues are known and should be solved:
630
631 &lt;p&gt;&lt;ul&gt;
632
633 &lt;li&gt;The wicd package seen to
634 &lt;a href=&quot;http://bugs.debian.org/508289&quot;&gt;break NFS mounting&lt;/a&gt; and
635 &lt;a href=&quot;http://bugs.debian.org/581586&quot;&gt;network setup&lt;/a&gt; when
636 parallel booting is enabled. No idea why, but the wicd maintainer
637 seem to be on the case.&lt;/li&gt;
638
639 &lt;li&gt;The nvidia X driver seem to
640 &lt;a href=&quot;http://bugs.debian.org/583312&quot;&gt;have a race condition&lt;/a&gt;
641 triggered more easily when parallel booting is in effect. The
642 maintainer is on the case.&lt;/li&gt;
643
644 &lt;li&gt;The sysv-rc package fail to properly enable dependency based boot
645 sequencing (the shutdown is broken) when old file-rc users
646 &lt;a href=&quot;http://bugs.debian.org/575080&quot;&gt;try to switch back&lt;/a&gt; to
647 sysv-rc. One way to solve it would be for file-rc to create
648 /etc/init.d/.legacy-bootordering, and another is to try to make
649 sysv-rc more robust. Will investigate some more and probably upload a
650 workaround in sysv-rc to help those trying to move from file-rc to
651 sysv-rc get a working shutdown.&lt;/li&gt;
652
653 &lt;/ul&gt;&lt;/p&gt;
654
655 &lt;p&gt;All in all not many surprising issues, and all of them seem
656 solvable before Squeeze is released. In addition to these there are
657 some packages with bugs in their dependencies and run level settings,
658 which I expect will be fixed in a reasonable time span.&lt;/p&gt;
659
660 &lt;p&gt;If you report any problems with dependencies in init.d scripts to
661 the BTS, please usertag the report to get it to show up at
662 &lt;a href=&quot;http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org&quot;&gt;the
663 list of usertagged bugs related to this&lt;/a&gt;.&lt;/p&gt;
664
665 &lt;p&gt;Update: Correct bug number to file-rc issue.&lt;/p&gt;
666 </description>
667 </item>
668
669 <item>
670 <title>KDM fail at boot with NVidia cards - and no one try to fix it?</title>
671 <link>http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html</link>
672 <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>
673 <pubDate>Tue, 1 Jun 2010 17:05:00 +0200</pubDate>
674 <description>&lt;p&gt;It is strange to watch how a bug in Debian causing KDM to fail to
675 start at boot when an NVidia video card is used is handled. The
676 problem seem to be that the nvidia X.org driver uses a long time to
677 initialize, and this duration is longer than kdm is configured to
678 wait.&lt;/p&gt;
679
680 &lt;p&gt;I came across two bugs related to this issue,
681 &lt;a href=&quot;http://bugs.debian.org/583312&quot;&gt;#583312&lt;/a&gt; initially filed
682 against initscripts and passed on to nvidia-glx when it became obvious
683 that the nvidia drivers were involved, and
684 &lt;a href=&quot;http://bugs.debian.org/524751&quot;&gt;#524751&lt;/a&gt; initially filed against
685 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.&lt;/p&gt;
686
687 &lt;p&gt;To me, it seem that no-one is interested in actually solving the
688 problem nvidia video card owners experience and make sure the Debian
689 distribution work out of the box for these users. The nvidia driver
690 maintainers expect kdm to be set up to wait longer, while kdm expect
691 the nvidia driver maintainers to fix the driver to start faster, and
692 while they wait for each other I guess the users end up switching to a
693 distribution that work for them. I have no idea what the solution is,
694 but I am pretty sure that waiting for each other is not it.&lt;/p&gt;
695
696 &lt;p&gt;I wonder why we end up handling bugs this way.&lt;/p&gt;
697 </description>
698 </item>
699
700 <item>
701 <title>Sitesummary tip: Listing computer hardware models used at site</title>
702 <link>http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html</link>
703 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html</guid>
704 <pubDate>Thu, 3 Jun 2010 12:05:00 +0200</pubDate>
705 <description>&lt;p&gt;When using sitesummary at a site to track machines, it is possible
706 to get a list of the machine types in use thanks to the DMI
707 information extracted from each machine. The script to do so is
708 included in the sitesummary package, and here is example output from
709 the Skolelinux build servers:&lt;/p&gt;
710
711 &lt;blockquote&gt;&lt;pre&gt;
712 maintainer:~# /usr/lib/sitesummary/hardware-model-summary
713 vendor count
714 Dell Computer Corporation 1
715 PowerEdge 1750 1
716 IBM 1
717 eserver xSeries 345 -[8670M1X]- 1
718 Intel 2
719 [no-dmi-info] 3
720 maintainer:~#
721 &lt;/pre&gt;&lt;/blockquote&gt;
722
723 &lt;p&gt;The quality of the report depend on the quality of the DMI tables
724 provided in each machine. Here there are Intel machines without model
725 information listed with Intel as vendor and no model, and virtual Xen
726 machines listed as [no-dmi-info]. One can add -l as a command line
727 option to list the individual machines.&lt;/p&gt;
728
729 &lt;p&gt;A larger list is
730 &lt;a href=&quot;http://narvikskolen.no/sitesummary/&quot;&gt;available from the the
731 city of Narvik&lt;/a&gt;, which uses Skolelinux on all their shools and also
732 provide the basic sitesummary report publicly. In their report there
733 are ~1400 machines. I know they use both Ubuntu and Skolelinux on
734 their machines, and as sitesummary is available in both distributions,
735 it is trivial to get all of them to report to the same central
736 collector.&lt;/p&gt;
737 </description>
738 </item>
739
740 <item>
741 <title>A manual for standards wars...</title>
742 <link>http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html</link>
743 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html</guid>
744 <pubDate>Sun, 6 Jun 2010 14:15:00 +0200</pubDate>
745 <description>&lt;p&gt;Via the
746 &lt;a href=&quot;http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html&quot;&gt;blog
747 of Rob Weir&lt;/a&gt; I came across the very interesting essay named
748 &lt;a href=&quot;http://faculty.haas.berkeley.edu/shapiro/wars.pdf&quot;&gt;The Art of
749 Standards Wars&lt;/a&gt; (PDF 25 pages). I recommend it for everyone
750 following the standards wars of today.&lt;/p&gt;
751 </description>
752 </item>
753
754 <item>
755 <title>Upstart or sysvinit - as init.d scripts see it</title>
756 <link>http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html</link>
757 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html</guid>
758 <pubDate>Sun, 6 Jun 2010 23:55:00 +0200</pubDate>
759 <description>&lt;p&gt;If Debian is to migrate to upstart on Linux, I expect some init.d
760 scripts to migrate (some of) their operations to upstart job while
761 keeping the init.d for hurd and kfreebsd. The packages with such
762 needs will need a way to get their init.d scripts to behave
763 differently when used with sysvinit and with upstart. Because of
764 this, I had a look at the environment variables set when a init.d
765 script is running under upstart, and when it is not.&lt;/p&gt;
766
767 &lt;p&gt;With upstart, I notice these environment variables are set when a
768 script is started from rcS.d/ (ignoring some irrelevant ones like
769 COLUMNS):&lt;/p&gt;
770
771 &lt;blockquote&gt;&lt;pre&gt;
772 DEFAULT_RUNLEVEL=2
773 previous=N
774 PREVLEVEL=
775 RUNLEVEL=
776 runlevel=S
777 UPSTART_EVENTS=startup
778 UPSTART_INSTANCE=
779 UPSTART_JOB=rc-sysinit
780 &lt;/pre&gt;&lt;/blockquote&gt;
781
782 &lt;p&gt;With sysvinit, these environment variables are set for the same
783 script.&lt;/p&gt;
784
785 &lt;blockquote&gt;&lt;pre&gt;
786 INIT_VERSION=sysvinit-2.88
787 previous=N
788 PREVLEVEL=N
789 RUNLEVEL=S
790 runlevel=S
791 &lt;/pre&gt;&lt;/blockquote&gt;
792
793 &lt;p&gt;The RUNLEVEL and PREVLEVEL environment variables passed on from
794 sysvinit are not set by upstart. Not sure if it is intentional or not
795 to not be compatible with sysvinit in this regard.&lt;/p&gt;
796
797 &lt;p&gt;For scripts needing to behave differently when upstart is used,
798 looking for the UPSTART_JOB environment variable seem to be a good
799 choice.&lt;/p&gt;
800 </description>
801 </item>
802
803 <item>
804 <title>Automatic upgrade testing from Lenny to Squeeze</title>
805 <link>http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html</link>
806 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html</guid>
807 <pubDate>Fri, 11 Jun 2010 22:50:00 +0200</pubDate>
808 <description>&lt;p&gt;The last few days I have done some upgrade testing in Debian, to
809 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
810 have been discovered and reported in the process
811 (&lt;a href=&quot;http://bugs.debian.org/585410&quot;&gt;#585410&lt;/a&gt; in nagios3-cgi,
812 &lt;a href=&quot;http://bugs.debian.org/584879&quot;&gt;#584879&lt;/a&gt; already fixed in
813 enscript and &lt;a href=&quot;http://bugs.debian.org/584861&quot;&gt;#584861&lt;/a&gt; in
814 kdebase-workspace-data), and to get a more regular testing going on, I
815 am working on a script to automate the test.&lt;/p&gt;
816
817 &lt;p&gt;The idea is to create a Lenny chroot and use tasksel to install a
818 Gnome or KDE desktop installation inside the chroot before upgrading
819 it. To ensure no services are started in the chroot, a policy-rc.d
820 script is inserted. To make sure tasksel believe it is to install a
821 desktop on a laptop, the tasksel tests are replaced in the chroot
822 (only acceptable because this is a throw-away chroot).&lt;/p&gt;
823
824 &lt;p&gt;A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
825 currently always fail because udev refuses to upgrade with the kernel
826 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
827 is created. The bug report
828 &lt;a href=&quot;http://bugs.debian.org/566000&quot;&gt;#566000&lt;/a&gt; make me suspect
829 this problem do not trigger in a chroot, but I touch the file anyway
830 to make sure the upgrade go well. Testing on virtual and real
831 hardware have failed me because of udev so far, and creating this file
832 do the trick in such settings anyway. This is a
833 &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
834 issue&lt;/a&gt; and the current udev behaviour is intended by the udev
835 maintainer because he lack the resources to rewrite udev to keep
836 working with old kernels or something like that. I really wish the
837 udev upstream would keep udev backwards compatible, to avoid such
838 upgrade problem, but given that they fail to do so, I guess
839 documenting the way out of this mess is the best option we got for
840 Debian Squeeze.&lt;/p&gt;
841
842 &lt;p&gt;Anyway, back to the task at hand, testing upgrades. This test
843 script, which I call &lt;tt&gt;upgrade-test&lt;/tt&gt; for now, is doing the
844 trick:&lt;/p&gt;
845
846 &lt;blockquote&gt;&lt;pre&gt;
847 #!/bin/sh
848 set -ex
849
850 if [ &quot;$1&quot; ] ; then
851 desktop=$1
852 else
853 desktop=gnome
854 fi
855
856 from=lenny
857 to=squeeze
858
859 exec &amp;lt; /dev/null
860 unset LANG
861 mirror=http://ftp.skolelinux.org/debian
862 tmpdir=chroot-$from-upgrade-$to-$desktop
863 fuser -mv .
864 debootstrap $from $tmpdir $mirror
865 chroot $tmpdir aptitude update
866 cat &gt; $tmpdir/usr/sbin/policy-rc.d &amp;lt;&amp;lt;EOF
867 #!/bin/sh
868 exit 101
869 EOF
870 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
871 exit_cleanup() {
872 umount $tmpdir/proc
873 }
874 mount -t proc proc $tmpdir/proc
875 # Make sure proc is unmounted also on failure
876 trap exit_cleanup EXIT INT
877
878 chroot $tmpdir aptitude -y install debconf-utils
879
880 # Make sure tasksel autoselection trigger. It need the test scripts
881 # to return the correct answers.
882 echo tasksel tasksel/desktop multiselect $desktop | \
883 chroot $tmpdir debconf-set-selections
884
885 # Include the desktop and laptop task
886 for test in desktop laptop ; do
887 echo &gt; $tmpdir/usr/lib/tasksel/tests/$test &amp;lt;&amp;lt;EOF
888 #!/bin/sh
889 exit 2
890 EOF
891 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
892 done
893
894 DEBIAN_FRONTEND=noninteractive
895 DEBIAN_PRIORITY=critical
896 export DEBIAN_FRONTEND DEBIAN_PRIORITY
897 chroot $tmpdir tasksel --new-install
898
899 echo deb $mirror $to main &gt; $tmpdir/etc/apt/sources.list
900 chroot $tmpdir aptitude update
901 touch $tmpdir/etc/udev/kernel-upgrade
902 chroot $tmpdir aptitude -y dist-upgrade
903 fuser -mv
904 &lt;/pre&gt;&lt;/blockquote&gt;
905
906 &lt;p&gt;I suspect it would be useful to test upgrades with both apt-get and
907 with aptitude, but I have not had time to look at how they behave
908 differently so far. I hope to get a cron job running to do the test
909 regularly and post the result on the web. The Gnome upgrade currently
910 work, while the KDE upgrade fail because of the bug in
911 kdebase-workspace-data&lt;/p&gt;
912
913 &lt;p&gt;I am not quite sure what kind of extract from the huge upgrade logs
914 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
915 post, so I will refrain from trying. I can report that for Gnome,
916 aptitude report 760 packages upgraded, 448 newly installed, 129 to
917 remove and 1 not upgraded and 1024MB need to be downloaded while for
918 KDE the same numbers are 702 packages upgraded, 507 newly installed,
919 193 to remove and 0 not upgraded and 1117MB need to be downloaded&lt;/p&gt;
920
921 &lt;p&gt;I am very happy to notice that the Gnome desktop + laptop upgrade
922 is able to migrate to dependency based boot sequencing and parallel
923 booting without a hitch. Was unsure if there were still bugs with
924 packages failing to clean up their obsolete init.d script during
925 upgrades, and no such problem seem to affect the Gnome desktop+laptop
926 packages.&lt;/p&gt;
927 </description>
928 </item>
929
930 <item>
931 <title>Lenny-&gt;Squeeze upgrades, removals by apt and aptitude</title>
932 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html</link>
933 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html</guid>
934 <pubDate>Sun, 13 Jun 2010 09:05:00 +0200</pubDate>
935 <description>&lt;p&gt;My
936 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html&quot;&gt;testing
937 of Debian upgrades&lt;/a&gt; from Lenny to Squeeze continues, and I&#39;ve
938 finally made the upgrade logs available from
939 &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;.
940 I am now testing dist-upgrade of Gnome and KDE in a chroot using both
941 apt and aptitude, and found their differences interesting. This time
942 I will only focus on their removal plans.&lt;/p&gt;
943
944 &lt;p&gt;After installing a Gnome desktop and the laptop task, apt-get wants
945 to remove 72 packages when dist-upgrading from Lenny to Squeeze. The
946 surprising part is that it want to remove xorg and all
947 xserver-xorg-video* drivers. Clearly not a good choice, but I am not
948 sure why. When asking aptitude to do the same, it want to remove 129
949 packages, but most of them are library packages I suspect are no
950 longer needed. Both of them want to remove bluetooth packages, which
951 I do not know. Perhaps these bluetooth packages are obsolete?&lt;/p&gt;
952
953 &lt;p&gt;For KDE, apt-get want to remove 82 packages, among them kdebase
954 which seem like a bad idea and xorg the same way as with Gnome. Asking
955 aptitude for the same, it wants to remove 192 packages, none which are
956 too surprising.&lt;/p&gt;
957
958 &lt;p&gt;I guess the removal of xorg during upgrades should be investigated
959 and avoided, and perhaps others as well. Here are the complete list
960 of planned removals. The complete logs is available from the URL
961 above. Note if you want to repeat these tests, that the upgrade test
962 for kde+apt-get hung in the tasksel setup because of dpkg asking
963 conffile questions. No idea why. I worked around it by using
964 &#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
965 continue.&lt;/p&gt;
966
967 &lt;p&gt;&lt;b&gt;apt-get gnome 72&lt;/b&gt;
968 &lt;br&gt;bluez-gnome cupsddk-drivers deskbar-applet gnome
969 gnome-desktop-environment gnome-network-admin gtkhtml3.14
970 iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
971 libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
972 nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
973 serpentine swfdec-mozilla update-manager xorg xserver-xorg
974 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
975 xserver-xorg-input-kbd xserver-xorg-input-mouse
976 xserver-xorg-input-synaptics xserver-xorg-input-wacom
977 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
978 xserver-xorg-video-ati xserver-xorg-video-chips
979 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
980 xserver-xorg-video-dummy xserver-xorg-video-fbdev
981 xserver-xorg-video-glint xserver-xorg-video-i128
982 xserver-xorg-video-i740 xserver-xorg-video-imstt
983 xserver-xorg-video-intel xserver-xorg-video-mach64
984 xserver-xorg-video-mga xserver-xorg-video-neomagic
985 xserver-xorg-video-nsc xserver-xorg-video-nv
986 xserver-xorg-video-openchrome xserver-xorg-video-r128
987 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
988 xserver-xorg-video-rendition xserver-xorg-video-s3
989 xserver-xorg-video-s3virge xserver-xorg-video-savage
990 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
991 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
992 xserver-xorg-video-tga xserver-xorg-video-trident
993 xserver-xorg-video-tseng xserver-xorg-video-v4l
994 xserver-xorg-video-vesa xserver-xorg-video-vga
995 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
996 xulrunner-1.9-gnome-support&lt;/p&gt;
997
998 &lt;p&gt;&lt;b&gt;aptitude gnome 129&lt;/b&gt;
999
1000 &lt;br&gt;bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
1001 djvulibre-desktop finger gnome-app-install gnome-mount
1002 gnome-network-admin gnome-spell gnome-vfs-obexftp
1003 gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
1004 libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
1005 libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
1006 libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
1007 libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
1008 libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
1009 libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
1010 libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
1011 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
1012 libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
1013 libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
1014 libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
1015 libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
1016 libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
1017 libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
1018 libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
1019 libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
1020 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
1021 libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
1022 libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
1023 libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
1024 openoffice.org-writer2latex openssl-blacklist p7zip
1025 python-4suite-xml python-eggtrayicon python-gnome2-desktop
1026 python-gnome2-extras python-gtkhtml2 python-gtkmozembed
1027 python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
1028 swfdec-mozilla totem-gstreamer update-manager wodim
1029 xserver-xorg-video-cyrix xserver-xorg-video-imstt
1030 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
1031 zip&lt;/p&gt;
1032
1033 &lt;p&gt;&lt;b&gt;apt-get kde 82&lt;/b&gt;
1034
1035 &lt;br&gt;cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
1036 kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
1037 kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
1038 kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
1039 kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
1040 libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
1041 xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
1042 xserver-xorg-input-kbd xserver-xorg-input-mouse
1043 xserver-xorg-input-synaptics xserver-xorg-input-wacom
1044 xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
1045 xserver-xorg-video-ati xserver-xorg-video-chips
1046 xserver-xorg-video-cirrus xserver-xorg-video-cyrix
1047 xserver-xorg-video-dummy xserver-xorg-video-fbdev
1048 xserver-xorg-video-glint xserver-xorg-video-i128
1049 xserver-xorg-video-i740 xserver-xorg-video-imstt
1050 xserver-xorg-video-intel xserver-xorg-video-mach64
1051 xserver-xorg-video-mga xserver-xorg-video-neomagic
1052 xserver-xorg-video-nsc xserver-xorg-video-nv
1053 xserver-xorg-video-openchrome xserver-xorg-video-r128
1054 xserver-xorg-video-radeon xserver-xorg-video-radeonhd
1055 xserver-xorg-video-rendition xserver-xorg-video-s3
1056 xserver-xorg-video-s3virge xserver-xorg-video-savage
1057 xserver-xorg-video-siliconmotion xserver-xorg-video-sis
1058 xserver-xorg-video-sisusb xserver-xorg-video-tdfx
1059 xserver-xorg-video-tga xserver-xorg-video-trident
1060 xserver-xorg-video-tseng xserver-xorg-video-v4l
1061 xserver-xorg-video-vesa xserver-xorg-video-vga
1062 xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9&lt;/p&gt;
1063
1064 &lt;p&gt;&lt;b&gt;aptitude kde 192&lt;/b&gt;
1065 &lt;br&gt;bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
1066 djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
1067 ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
1068 kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
1069 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
1070 kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
1071 kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
1072 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
1073 kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
1074 kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
1075 kghostview khelpcenter khexedit kiconedit kitchensync klatin
1076 klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
1077 kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
1078 krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
1079 ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
1080 kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
1081 kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
1082 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
1083 libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
1084 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
1085 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
1086 libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
1087 libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
1088 libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
1089 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
1090 libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
1091 libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
1092 libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
1093 libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
1094 libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
1095 libxerces2-java-gcj libxtrap6 mpeglib networkstatus
1096 openoffice.org-writer2latex pmount poster psutils quanta quanta-data
1097 superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
1098 texlive-common texlive-doc-base texlive-fonts-recommended
1099 xserver-xorg-video-cyrix xserver-xorg-video-imstt
1100 xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
1101 xulrunner-1.9&lt;/p&gt;
1102
1103 </description>
1104 </item>
1105
1106 <item>
1107 <title>Calling tasksel like the installer, while still getting useful output</title>
1108 <link>http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html</link>
1109 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html</guid>
1110 <pubDate>Wed, 16 Jun 2010 14:55:00 +0200</pubDate>
1111 <description>&lt;p&gt;A few times I have had the need to simulate the way tasksel
1112 installs packages during the normal debian-installer run. Until now,
1113 I have ended up letting tasksel do the work, with the annoying problem
1114 of not getting any feedback at all when something fails (like a
1115 conffile question from dpkg or a download that fails), using code like
1116 this:
1117
1118 &lt;blockquote&gt;&lt;pre&gt;
1119 export DEBIAN_FRONTEND=noninteractive
1120 tasksel --new-install
1121 &lt;/pre&gt;&lt;/blockquote&gt;
1122
1123 This would invoke tasksel, let its automatic task selection pick the
1124 tasks to install, and continue to install the requested tasks without
1125 any output what so ever.
1126
1127 Recently I revisited this problem while working on the automatic
1128 package upgrade testing, because tasksel would some times hang without
1129 any useful feedback, and I want to see what is going on when it
1130 happen. Then it occured to me, I can parse the output from tasksel
1131 when asked to run in test mode, and use that aptitude command line
1132 printed by tasksel then to simulate the tasksel run. I ended up using
1133 code like this:
1134
1135 &lt;blockquote&gt;&lt;pre&gt;
1136 export DEBIAN_FRONTEND=noninteractive
1137 cmd=&quot;$(in_target tasksel -t --new-install | sed &#39;s/debconf-apt-progress -- //&#39;)&quot;
1138 $cmd
1139 &lt;/pre&gt;&lt;/blockquote&gt;
1140
1141 &lt;p&gt;The content of $cmd is typically something like &quot;&lt;tt&gt;aptitude -q
1142 --without-recommends -o APT::Install-Recommends=no -y install
1143 ~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
1144 ~pimportant&lt;/tt&gt;&quot;, which will install the gnome desktop task, the
1145 laptop task and all packages with priority standard , required and
1146 important, just like tasksel would have done it during
1147 installation.&lt;/p&gt;
1148
1149 &lt;p&gt;A better approach is probably to extend tasksel to be able to
1150 install packages without using debconf-apt-progress, for use cases
1151 like this.&lt;/p&gt;
1152 </description>
1153 </item>
1154
1155 <item>
1156 <title>Idea for a change to LDAP schemas allowing DNS and DHCP info to be combined into one object</title>
1157 <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>
1158 <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>
1159 <pubDate>Thu, 24 Jun 2010 00:35:00 +0200</pubDate>
1160 <description>&lt;p&gt;A while back, I
1161 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html&quot;&gt;complained
1162 about the fact&lt;/a&gt; that it is not possible with the provided schemas
1163 for storing DNS and DHCP information in LDAP to combine the two sets
1164 of information into one LDAP object representing a computer.&lt;/p&gt;
1165
1166 &lt;p&gt;In the mean time, I discovered that a simple fix would be to make
1167 the dhcpHost object class auxiliary, to allow it to be combined with
1168 the dNSDomain object class, and thus forming one object for one
1169 computer when storing both DHCP and DNS information in LDAP.&lt;/p&gt;
1170
1171 &lt;p&gt;If I understand this correctly, it is not safe to do this change
1172 without also changing the assigned number for the object class, and I
1173 do not know enough about LDAP schema design to do that properly for
1174 Debian Edu.&lt;/p&gt;
1175
1176 &lt;p&gt;Anyway, for future reference, this is how I believe we could change
1177 the
1178 &lt;a href=&quot;http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00&quot;&gt;DHCP
1179 schema&lt;/a&gt; to solve at least part of the problem with the LDAP schemas
1180 available today from IETF.&lt;/p&gt;
1181
1182 &lt;pre&gt;
1183 --- dhcp.schema (revision 65192)
1184 +++ dhcp.schema (working copy)
1185 @@ -376,7 +376,7 @@
1186 objectclass ( 2.16.840.1.113719.1.203.6.6
1187 NAME &#39;dhcpHost&#39;
1188 DESC &#39;This represents information about a particular client&#39;
1189 - SUP top
1190 + SUP top AUXILIARY
1191 MUST cn
1192 MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
1193 X-NDS_CONTAINMENT (&#39;dhcpService&#39; &#39;dhcpSubnet&#39; &#39;dhcpGroup&#39;) )
1194 &lt;/pre&gt;
1195
1196 &lt;p&gt;I very much welcome clues on how to do this properly for Debian
1197 Edu/Squeeze. We provide the DHCP schema in our debian-edu-config
1198 package, and should thus be free to rewrite it as we see fit.&lt;/p&gt;
1199
1200 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
1201 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1202 </description>
1203 </item>
1204
1205 <item>
1206 <title>LUMA, a very nice LDAP GUI</title>
1207 <link>http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html</link>
1208 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html</guid>
1209 <pubDate>Mon, 28 Jun 2010 00:30:00 +0200</pubDate>
1210 <description>&lt;p&gt;The last few days I have been looking into the status of the LDAP
1211 directory in Debian Edu, and in the process I started to miss a GUI
1212 tool to browse the LDAP tree. The only one I was able to find in
1213 Debian/Squeeze and Lenny is
1214 &lt;a href=&quot;http://luma.sourceforge.net/&quot;&gt;LUMA&lt;/a&gt;, which has proved to
1215 be a great tool to get a overview of the current LDAP directory
1216 populated by default in Skolelinux. Thanks to it, I have been able to
1217 find empty and obsolete subtrees, misplaced objects and duplicate
1218 objects. It will be installed by default in Debian/Squeeze. If you
1219 are working with LDAP, give it a go. :)&lt;/p&gt;
1220
1221 &lt;p&gt;I did notice one problem with it I have not had time to report to
1222 the BTS yet. There is no .desktop file in the package, so the tool do
1223 not show up in the Gnome and KDE menus, but only deep down in in the
1224 Debian submenu in KDE. I hope that can be fixed before Squeeze is
1225 released.&lt;/p&gt;
1226
1227 &lt;p&gt;I have not yet been able to get it to modify the tree yet. I would
1228 like to move objects and remove subtrees directly in the GUI, but have
1229 not found a way to do that with LUMA yet. So in the mean time, I use
1230 &lt;a href=&quot;http://www.lichteblau.com/ldapvi/&quot;&gt;ldapvi&lt;/a&gt; for that.&lt;/p&gt;
1231
1232 &lt;p&gt;If you have tips on other GUI tools for LDAP that might be useful
1233 in Debian Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1234
1235 &lt;p&gt;Update 2010-06-29: Ross Reedstrom tipped us about the
1236 &lt;a href=&quot;http://packages.qa.debian.org/g/gq.html&quot;&gt;gq&lt;/a&gt; package as a
1237 useful GUI alternative. It seem like a good tool, but is unmaintained
1238 in Debian and got a RC bug keeping it out of Squeeze. Unless that
1239 changes, it will not be an option for Debian Edu based on Squeeze.&lt;/p&gt;
1240 </description>
1241 </item>
1242
1243 <item>
1244 <title>Lenny-&gt;Squeeze upgrades, apt vs aptitude with the Gnome desktop</title>
1245 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html</link>
1246 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html</guid>
1247 <pubDate>Sat, 3 Jul 2010 23:55:00 +0200</pubDate>
1248 <description>&lt;p&gt;Here is a short update on my &lt;a
1249 href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;my
1250 Debian Lenny-&gt;Squeeze upgrade testing&lt;/a&gt;. Here is a summary of the
1251 difference for Gnome when it is upgraded by apt-get and aptitude. I&#39;m
1252 not reporting the status for KDE, because the upgrade crashes when
1253 aptitude try because of missing conflicts
1254 (&lt;a href=&quot;http://bugs.debian.org/584861&quot;&gt;#584861&lt;/a&gt; and
1255 &lt;a href=&quot;http://bugs.debian.org/585716&quot;&gt;#585716&lt;/a&gt;).&lt;/p&gt;
1256
1257 &lt;p&gt;At the end of the upgrade test script, dpkg -l is executed to get a
1258 complete list of the installed packages. Based on this I see these
1259 differences when I did a test run today. As usual, I do not really
1260 know what the correct set of packages would be, but thought it best to
1261 publish the difference.&lt;/p&gt;
1262
1263 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
1264
1265 &lt;blockquote&gt;&lt;p&gt;
1266 at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
1267 libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
1268 libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
1269 libgtksourceview-common libpt-1.10.10-plugins-alsa
1270 libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
1271 libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
1272 python-4suite-xml python-eggtrayicon python-gtkhtml2
1273 python-gtkmozembed svgalibg1 xserver-xephyr zip
1274 &lt;/p&gt;&lt;/blockquote&gt;
1275
1276 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
1277
1278 &lt;blockquote&gt;&lt;p&gt;
1279 bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
1280 gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
1281 libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
1282 libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
1283 libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
1284 libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
1285 libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
1286 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
1287 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
1288 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
1289 libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
1290 libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
1291 libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
1292 libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
1293 libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
1294 libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
1295 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
1296 libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
1297 libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
1298 mysql-common swfdec-gnome totem-gstreamer wodim
1299 &lt;/p&gt;&lt;/blockquote&gt;
1300
1301 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
1302
1303 &lt;blockquote&gt;&lt;p&gt;
1304 gnome gnome-desktop-environment hamster-applet python-gnomeapplet
1305 python-gnomekeyring python-wnck rhythmbox-plugins xorg
1306 xserver-xorg-input-all xserver-xorg-input-evdev
1307 xserver-xorg-input-kbd xserver-xorg-input-mouse
1308 xserver-xorg-input-synaptics xserver-xorg-video-all
1309 xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
1310 xserver-xorg-video-chips xserver-xorg-video-cirrus
1311 xserver-xorg-video-dummy xserver-xorg-video-fbdev
1312 xserver-xorg-video-glint xserver-xorg-video-i128
1313 xserver-xorg-video-i740 xserver-xorg-video-mach64
1314 xserver-xorg-video-mga xserver-xorg-video-neomagic
1315 xserver-xorg-video-nouveau xserver-xorg-video-nv
1316 xserver-xorg-video-r128 xserver-xorg-video-radeon
1317 xserver-xorg-video-radeonhd xserver-xorg-video-rendition
1318 xserver-xorg-video-s3 xserver-xorg-video-s3virge
1319 xserver-xorg-video-savage xserver-xorg-video-siliconmotion
1320 xserver-xorg-video-sis xserver-xorg-video-sisusb
1321 xserver-xorg-video-tdfx xserver-xorg-video-tga
1322 xserver-xorg-video-trident xserver-xorg-video-tseng
1323 xserver-xorg-video-vesa xserver-xorg-video-vmware
1324 xserver-xorg-video-voodoo
1325 &lt;/p&gt;&lt;/blockquote&gt;
1326
1327 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
1328
1329 &lt;blockquote&gt;&lt;p&gt;
1330 deskbar-applet xserver-xorg xserver-xorg-core
1331 xserver-xorg-input-wacom xserver-xorg-video-intel
1332 xserver-xorg-video-openchrome
1333 &lt;/p&gt;&lt;/blockquote&gt;
1334
1335 &lt;p&gt;I was told on IRC that the xorg-xserver package was
1336 &lt;a href=&quot;http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120&quot;&gt;changed
1337 in git&lt;/a&gt; today to try to get apt-get to not remove xorg completely.
1338 No idea when it hits Squeeze, but when it does I hope it will reduce
1339 the difference somewhat.
1340 </description>
1341 </item>
1342
1343 <item>
1344 <title>jXplorer, a very nice LDAP GUI</title>
1345 <link>http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html</link>
1346 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html</guid>
1347 <pubDate>Fri, 9 Jul 2010 12:55:00 +0200</pubDate>
1348 <description>&lt;p&gt;Since
1349 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html&quot;&gt;my
1350 last post&lt;/a&gt; about available LDAP tools in Debian, I was told about a
1351 LDAP GUI that is even better than luma. The java application
1352 &lt;a href=&quot;http://jxplorer.org/&quot;&gt;jXplorer&lt;/a&gt; is claimed to be capable of
1353 moving LDAP objects and subtrees using drag-and-drop, and can
1354 authenticate using Kerberos. I have only tested the Kerberos
1355 authentication, but do not have a LDAP setup allowing me to rewrite
1356 LDAP with my test user yet. It is
1357 &lt;a href=&quot;http://packages.qa.debian.org/j/jxplorer.html&quot;&gt;available in
1358 Debian&lt;/a&gt; testing and unstable at the moment. The only problem I
1359 have with it is how it handle errors. If something go wrong, its
1360 non-intuitive behaviour require me to go through some query work list
1361 and remove the failing query. Nothing big, but very annoying.&lt;/p&gt;
1362 </description>
1363 </item>
1364
1365 <item>
1366 <title>Idea for storing LTSP configuration in LDAP</title>
1367 <link>http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html</link>
1368 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html</guid>
1369 <pubDate>Sun, 11 Jul 2010 22:00:00 +0200</pubDate>
1370 <description>&lt;p&gt;Vagrant mentioned on IRC today that ltsp_config now support
1371 sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
1372 clients, and that this can be used to fetch configuration from LDAP if
1373 Debian Edu choose to store configuration there.&lt;/p&gt;
1374
1375 &lt;p&gt;Armed with this information, I got inspired and wrote a test module
1376 to get configuration from LDAP. The idea is to look up the MAC
1377 address of the client in LDAP, and look for attributes on the form
1378 ltspconfigsetting=value, and use this to export SETTING=value to the
1379 LTSP clients.&lt;/p&gt;
1380
1381 &lt;p&gt;The goal is to be able to store the LTSP configuration attributes
1382 in a &quot;computer&quot; LDAP object used by both DNS and DHCP, and thus
1383 allowing us to store all information about a computer in one place.&lt;/p&gt;
1384
1385 &lt;p&gt;This is a untested draft implementation, and I welcome feedback on
1386 this approach. A real LDAP schema for the ltspClientAux objectclass
1387 need to be written. Comments, suggestions, etc?&lt;/p&gt;
1388
1389 &lt;blockquote&gt;&lt;pre&gt;
1390 # Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
1391 #
1392 # Fetch LTSP client settings from LDAP based on MAC address
1393 #
1394 # Uses ethernet address as stored in the dhcpHost objectclass using
1395 # the dhcpHWAddress attribute or ethernet address stored in the
1396 # ieee802Device objectclass with the macAddress attribute.
1397 #
1398 # This module is written to be schema agnostic, and only depend on the
1399 # existence of attribute names.
1400 #
1401 # The LTSP configuration variables are saved directly using a
1402 # ltspConfig prefix and uppercasing the rest of the attribute name.
1403 # To set the SERVER variable, set the ltspConfigServer attribute.
1404 #
1405 # Some LDAP schema should be created with all the relevant
1406 # configuration settings. Something like this should work:
1407 #
1408 # objectclass ( 1.1.2.2 NAME &#39;ltspClientAux&#39;
1409 # SUP top
1410 # AUXILIARY
1411 # MAY ( ltspConfigServer $ ltsConfigSound $ ... )
1412
1413 LDAPSERVER=$(debian-edu-ldapserver)
1414 if [ &quot;$LDAPSERVER&quot; ] ; then
1415 LDAPBASE=$(debian-edu-ldapserver -b)
1416 for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk &#39;{print $5}&#39;|sort -u) ; do
1417 filter=&quot;(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))&quot;
1418 ldapsearch -h &quot;$LDAPSERVER&quot; -b &quot;$LDAPBASE&quot; -v -x &quot;$filter&quot; | \
1419 grep &#39;^ltspConfig&#39; | while read attr value ; do
1420 # Remove prefix and convert to upper case
1421 attr=$(echo $attr | sed &#39;s/^ltspConfig//i&#39; | tr a-z A-Z)
1422 # bass value on to clients
1423 eval &quot;$attr=$value; export $attr&quot;
1424 done
1425 done
1426 fi
1427 &lt;/pre&gt;&lt;/blockquote&gt;
1428
1429 &lt;p&gt;I&#39;m not sure this shell construction will work, because I suspect
1430 the while block might end up in a subshell causing the variables set
1431 there to not show up in ltsp-config, but if that is the case I am sure
1432 the code can be restructured to make sure the variables are passed on.
1433 I expect that can be solved with some testing. :)&lt;/p&gt;
1434
1435 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
1436 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1437
1438 &lt;p&gt;Update 2010-07-17: I am aware of another effort to store LTSP
1439 configuration in LDAP that was created around year 2000 by
1440 &lt;a href=&quot;http://www.pcxperience.com/thinclient/documentation/ldap.html&quot;&gt;PC
1441 Xperience, Inc., 2000&lt;/a&gt;. I found its
1442 &lt;a href=&quot;http://people.redhat.com/alikins/ltsp/ldap/&quot;&gt;files&lt;/a&gt; on a
1443 personal home page over at redhat.com.&lt;/p&gt;
1444 </description>
1445 </item>
1446
1447 <item>
1448 <title>Combining PowerDNS and ISC DHCP LDAP objects</title>
1449 <link>http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html</link>
1450 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html</guid>
1451 <pubDate>Wed, 14 Jul 2010 23:45:00 +0200</pubDate>
1452 <description>&lt;p&gt;For a while now, I have wanted to find a way to change the DNS and
1453 DHCP services in Debian Edu to use the same LDAP objects for a given
1454 computer, to avoid the possibility of having a inconsistent state for
1455 a computer in LDAP (as in DHCP but no DNS entry or the other way
1456 around) and make it easier to add computers to LDAP.&lt;/p&gt;
1457
1458 &lt;p&gt;I&#39;ve looked at how powerdns and dhcpd is using LDAP, and using this
1459 information finally found a solution that seem to work.&lt;/p&gt;
1460
1461 &lt;p&gt;The old setup required three LDAP objects for a given computer.
1462 One forward DNS entry, one reverse DNS entry and one DHCP entry. If
1463 we switch powerdns to use its strict LDAP method (ldap-method=strict
1464 in pdns-debian-edu.conf), the forward and reverse DNS entries are
1465 merged into one while making it impossible to transfer the reverse map
1466 to a slave DNS server.&lt;/p&gt;
1467
1468 &lt;p&gt;If we also replace the object class used to get the DNS related
1469 attributes to one allowing these attributes to be combined with the
1470 dhcphost object class, we can merge the DNS and DHCP entries into one.
1471 I&#39;ve written such object class in the dnsdomainaux.schema file (need
1472 proper OIDs, but that is a minor issue), and tested the setup. It
1473 seem to work.&lt;/p&gt;
1474
1475 &lt;p&gt;With this test setup in place, we can get away with one LDAP object
1476 for both DNS and DHCP, and even the LTSP configuration I suggested in
1477 an earlier email. The combined LDAP object will look something like
1478 this:&lt;/p&gt;
1479
1480 &lt;blockquote&gt;&lt;pre&gt;
1481 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
1482 cn: hostname
1483 objectClass: dhcphost
1484 objectclass: domainrelatedobject
1485 objectclass: dnsdomainaux
1486 associateddomain: hostname.intern
1487 arecord: 10.11.12.13
1488 dhcphwaddress: ethernet 00:00:00:00:00:00
1489 dhcpstatements: fixed-address hostname
1490 ldapconfigsound: Y
1491 &lt;/pre&gt;&lt;/blockquote&gt;
1492
1493 &lt;p&gt;The DNS server uses the associateddomain and arecord entries, while
1494 the DHCP server uses the dhcphwaddress and dhcpstatements entries
1495 before asking DNS to resolve the fixed-adddress. LTSP will use
1496 dhcphwaddress or associateddomain and the ldapconfig* attributes.&lt;/p&gt;
1497
1498 &lt;p&gt;I am not yet sure if I can get the DHCP server to look for its
1499 dhcphost in a different location, to allow us to put the objects
1500 outside the &quot;DHCP Config&quot; subtree, but hope to figure out a way to do
1501 that. If I can&#39;t figure out a way to do that, we can still get rid of
1502 the hosts subtree and move all its content into the DHCP Config tree
1503 (which probably should be renamed to be more related to the new
1504 content. I suspect cn=dnsdhcp,ou=services or something like that
1505 might be a good place to put it.&lt;/p&gt;
1506
1507 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
1508 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
1509 </description>
1510 </item>
1511
1512 <item>
1513 <title>What are they searching for - PowerDNS and ISC DHCP in LDAP</title>
1514 <link>http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html</link>
1515 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html</guid>
1516 <pubDate>Sat, 17 Jul 2010 21:00:00 +0200</pubDate>
1517 <description>&lt;p&gt;This is a
1518 &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;
1519 on my
1520 &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
1521 work&lt;/a&gt; on
1522 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html&quot;&gt;merging
1523 all&lt;/a&gt; the computer related LDAP objects in Debian Edu.&lt;/p&gt;
1524
1525 &lt;p&gt;As a step to try to see if it possible to merge the DNS and DHCP
1526 LDAP objects, I have had a look at how the packages pdns-backend-ldap
1527 and dhcp3-server-ldap in Debian use the LDAP server. The two
1528 implementations are quite different in how they use LDAP.&lt;/p&gt;
1529
1530 To get this information, I started slapd with debugging enabled and
1531 dumped the debug output to a file to get the LDAP searches performed
1532 on a Debian Edu main-server. Here is a summary.
1533
1534 &lt;p&gt;&lt;strong&gt;powerdns&lt;/strong&gt;&lt;/p&gt;
1535
1536 &lt;a href=&quot;http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend&quot;&gt;Clues
1537 on how to&lt;/a&gt; set up PowerDNS to use a LDAP backend is available on
1538 the web.
1539
1540 &lt;p&gt;PowerDNS have two modes of operation using LDAP as its backend.
1541 One &quot;strict&quot; mode where the forward and reverse DNS lookups are done
1542 using the same LDAP objects, and a &quot;tree&quot; mode where the forward and
1543 reverse entries are in two different subtrees in LDAP with a structure
1544 based on the DNS names, as in tjener.intern and
1545 2.2.0.10.in-addr.arpa.&lt;/p&gt;
1546
1547 &lt;p&gt;In tree mode, the server is set up to use a LDAP subtree as its
1548 base, and uses a &quot;base&quot; scoped search for the DNS name by adding
1549 &quot;dc=tjener,dc=intern,&quot; to the base with a filter for
1550 &quot;(associateddomain=tjener.intern)&quot; for the forward entry and
1551 &quot;dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,&quot; with a filter for
1552 &quot;(associateddomain=2.2.0.10.in-addr.arpa)&quot; for the reverse entry. For
1553 forward entries, it is looking for attributes named dnsttl, arecord,
1554 nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord,
1555 txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord,
1556 srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord,
1557 ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord,
1558 spfrecord and modifytimestamp. For reverse entries it is looking for
1559 the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord,
1560 ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord,
1561 locrecord, srvrecord, naptrrecord and modifytimestamp. The equivalent
1562 ldapsearch commands could look like this:&lt;/p&gt;
1563
1564 &lt;blockquote&gt;&lt;pre&gt;
1565 ldapsearch -h ldap \
1566 -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
1567 -s base -x &#39;(associateddomain=tjener.intern)&#39; dNSTTL aRecord nSRecord \
1568 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
1569 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
1570 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
1571 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
1572
1573 ldapsearch -h ldap \
1574 -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
1575 -s base -x &#39;(associateddomain=2.2.0.10.in-addr.arpa)&#39;
1576 dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
1577 hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
1578 srvrecord naptrrecord modifytimestamp
1579 &lt;/pre&gt;&lt;/blockquote&gt;
1580
1581 &lt;p&gt;In Debian Edu/Lenny, the PowerDNS tree mode is used with
1582 ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two
1583 example LDAP objects used there. In addition to these objects, the
1584 parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no
1585 also exist.&lt;/p&gt;
1586
1587 &lt;blockquote&gt;&lt;pre&gt;
1588 dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
1589 objectclass: top
1590 objectclass: dnsdomain
1591 objectclass: domainrelatedobject
1592 dc: tjener
1593 arecord: 10.0.2.2
1594 associateddomain: tjener.intern
1595
1596 dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
1597 objectclass: top
1598 objectclass: dnsdomain2
1599 objectclass: domainrelatedobject
1600 dc: 2
1601 ptrrecord: tjener.intern
1602 associateddomain: 2.2.0.10.in-addr.arpa
1603 &lt;/pre&gt;&lt;/blockquote&gt;
1604
1605 &lt;p&gt;In strict mode, the server behaves differently. When looking for
1606 forward DNS entries, it is doing a &quot;subtree&quot; scoped search with the
1607 same base as in the tree mode for a object with filter
1608 &quot;(associateddomain=tjener.intern)&quot; and requests the attributes dnsttl,
1609 arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord,
1610 mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord,
1611 naptrrecord and modifytimestamp. For reverse entires it also do a
1612 subtree scoped search but this time the filter is &quot;(arecord=10.0.2.2)&quot;
1613 and the requested attributes are associateddomain, dnsttl and
1614 modifytimestamp. In short, in strict mode the objects with ptrrecord
1615 go away, and the arecord attribute in the forward object is used
1616 instead.&lt;/p&gt;
1617
1618 &lt;p&gt;The forward and reverse searches can be simulated using ldapsearch
1619 like this:&lt;/p&gt;
1620
1621 &lt;blockquote&gt;&lt;pre&gt;
1622 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
1623 &#39;(associateddomain=tjener.intern)&#39; dNSTTL aRecord nSRecord \
1624 cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
1625 rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
1626 nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
1627 rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
1628
1629 ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
1630 &#39;(arecord=10.0.2.2)&#39; associateddomain dnsttl modifytimestamp
1631 &lt;/pre&gt;&lt;/blockquote&gt;
1632
1633 &lt;p&gt;In addition to the forward and reverse searches , there is also a
1634 search for SOA records, which behave similar to the forward and
1635 reverse lookups.&lt;/p&gt;
1636
1637 &lt;p&gt;A thing to note with the PowerDNS behaviour is that it do not
1638 specify any objectclass names, and instead look for the attributes it
1639 need to generate a DNS reply. This make it able to work with any
1640 objectclass that provide the needed attributes.&lt;/p&gt;
1641
1642 &lt;p&gt;The attributes are normally provided in the cosine (RFC 1274) and
1643 dnsdomain2 schemas. The latter is used for reverse entries like
1644 ptrrecord and recent DNS additions like aaaarecord and srvrecord.&lt;/p&gt;
1645
1646 &lt;p&gt;In Debian Edu, we have created DNS objects using the object classes
1647 dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS
1648 attributes) and domainrelatedobject (for associatedDomain). The use
1649 of structural object classes make it impossible to combine these
1650 classes with the object classes used by DHCP.&lt;/p&gt;
1651
1652 &lt;p&gt;There are other schemas that could be used too, for example the
1653 dnszone structural object class used by Gosa and bind-sdb for the DNS
1654 attributes combined with the domainrelatedobject object class, but in
1655 this case some unused attributes would have to be included as well
1656 (zonename and relativedomainname).&lt;/p&gt;
1657
1658 &lt;p&gt;My proposal for Debian Edu would be to switch PowerDNS to strict
1659 mode and not use any of the existing objectclasses (dnsdomain,
1660 dnsdomain2 and dnszone) when one want to combine the DNS information
1661 with DHCP information, and instead create a auxiliary object class
1662 defined something like this (using the attributes defined for
1663 dnsdomain and dnsdomain2 or dnszone):&lt;/p&gt;
1664
1665 &lt;blockquote&gt;&lt;pre&gt;
1666 objectclass ( some-oid NAME &#39;dnsDomainAux&#39;
1667 SUP top
1668 AUXILIARY
1669 MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
1670 DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
1671 TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
1672 NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
1673 A6Record $ DNAMERecord
1674 ))
1675 &lt;/pre&gt;&lt;/blockquote&gt;
1676
1677 &lt;p&gt;This will allow any object to become a DNS entry when combined with
1678 the domainrelatedobject object class, and allow any entity to include
1679 all the attributes PowerDNS wants. I&#39;ve sent an email to the PowerDNS
1680 developers asking for their view on this schema and if they are
1681 interested in providing such schema with PowerDNS, and I hope my
1682 message will be accepted into their mailing list soon.&lt;/p&gt;
1683
1684 &lt;p&gt;&lt;strong&gt;ISC dhcp&lt;/strong&gt;&lt;/p&gt;
1685
1686 &lt;p&gt;The DHCP server searches for specific objectclass and requests all
1687 the object attributes, and then uses the attributes it want. This
1688 make it harder to figure out exactly what attributes are used, but
1689 thanks to the working example in Debian Edu I can at least get an idea
1690 what is needed without having to read the source code.&lt;/p&gt;
1691
1692 &lt;p&gt;In the DHCP server configuration, the LDAP base to use and the
1693 search filter to use to locate the correct dhcpServer entity is
1694 stored. These are the relevant entries from
1695 /etc/dhcp3/dhcpd.conf:&lt;/p&gt;
1696
1697 &lt;blockquote&gt;&lt;pre&gt;
1698 ldap-base-dn &quot;dc=skole,dc=skolelinux,dc=no&quot;;
1699 ldap-dhcp-server-cn &quot;dhcp&quot;;
1700 &lt;/pre&gt;&lt;/blockquote&gt;
1701
1702 &lt;p&gt;The DHCP server uses this information to nest all the DHCP
1703 configuration it need. The cn &quot;dhcp&quot; is located using the given LDAP
1704 base and the filter &quot;(&amp;(objectClass=dhcpServer)(cn=dhcp))&quot;. The
1705 search result is this entry:&lt;/p&gt;
1706
1707 &lt;blockquote&gt;&lt;pre&gt;
1708 dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
1709 cn: dhcp
1710 objectClass: top
1711 objectClass: dhcpServer
1712 dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
1713 &lt;/pre&gt;&lt;/blockquote&gt;
1714
1715 &lt;p&gt;The content of the dhcpServiceDN attribute is next used to locate the
1716 subtree with DHCP configuration. The DHCP configuration subtree base
1717 is located using a base scope search with base &quot;cn=DHCP
1718 Config,dc=skole,dc=skolelinux,dc=no&quot; and filter
1719 &quot;(&amp;(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))&quot;.
1720 The search result is this entry:&lt;/p&gt;
1721
1722 &lt;blockquote&gt;&lt;pre&gt;
1723 dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
1724 cn: DHCP Config
1725 objectClass: top
1726 objectClass: dhcpService
1727 objectClass: dhcpOptions
1728 dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
1729 dhcpStatements: ddns-update-style none
1730 dhcpStatements: authoritative
1731 dhcpOption: smtp-server code 69 = array of ip-address
1732 dhcpOption: www-server code 72 = array of ip-address
1733 dhcpOption: wpad-url code 252 = text
1734 &lt;/pre&gt;&lt;/blockquote&gt;
1735
1736 &lt;p&gt;Next, the entire subtree is processed, one level at the time. When
1737 all the DHCP configuration is loaded, it is ready to receive requests.
1738 The subtree in Debian Edu contain objects with object classes
1739 top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions,
1740 top/dhcpSubnet, top/dhcpGroup and top/dhcpHost. These provide options
1741 and information about netmasks, dynamic range etc. Leaving out the
1742 details here because it is not relevant for the focus of my
1743 investigation, which is to see if it is possible to merge dns and dhcp
1744 related computer objects.&lt;/p&gt;
1745
1746 &lt;p&gt;When a DHCP request come in, LDAP is searched for the MAC address
1747 of the client (00:00:00:00:00:00 in this example), using a subtree
1748 scoped search with &quot;cn=DHCP Config,dc=skole,dc=skolelinux,dc=no&quot; as
1749 the base and &quot;(&amp;(objectClass=dhcpHost)(dhcpHWAddress=ethernet
1750 00:00:00:00:00:00))&quot; as the filter. This is what a host object look
1751 like:&lt;/p&gt;
1752
1753 &lt;blockquote&gt;&lt;pre&gt;
1754 dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
1755 cn: hostname
1756 objectClass: top
1757 objectClass: dhcpHost
1758 dhcpHWAddress: ethernet 00:00:00:00:00:00
1759 dhcpStatements: fixed-address hostname
1760 &lt;/pre&gt;&lt;/blockquote&gt;
1761
1762 &lt;p&gt;There is less flexiblity in the way LDAP searches are done here.
1763 The object classes need to have fixed names, and the configuration
1764 need to be stored in a fairly specific LDAP structure. On the
1765 positive side, the invidiual dhcpHost entires can be anywhere without
1766 the DN pointed to by the dhcpServer entries. The latter should make
1767 it possible to group all host entries in a subtree next to the
1768 configuration entries, and this subtree can also be shared with the
1769 DNS server if the schema proposed above is combined with the dhcpHost
1770 structural object class.
1771
1772 &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
1773
1774 &lt;p&gt;The PowerDNS implementation seem to be very flexible when it come
1775 to which LDAP schemas to use. While its &quot;tree&quot; mode is rigid when it
1776 come to the the LDAP structure, the &quot;strict&quot; mode is very flexible,
1777 allowing DNS objects to be stored anywhere under the base cn specified
1778 in the configuration.&lt;/p&gt;
1779
1780 &lt;p&gt;The DHCP implementation on the other hand is very inflexible, both
1781 regarding which LDAP schemas to use and which LDAP structure to use.
1782 I guess one could implement ones own schema, as long as the
1783 objectclasses and attributes have the names used, but this do not
1784 really help when the DHCP subtree need to have a fairly fixed
1785 structure.&lt;/p&gt;
1786
1787 &lt;p&gt;Based on the observed behaviour, I suspect a LDAP structure like
1788 this might work for Debian Edu:&lt;/p&gt;
1789
1790 &lt;blockquote&gt;&lt;pre&gt;
1791 ou=services
1792 cn=machine-info (dhcpService) - dhcpServiceDN points here
1793 cn=dhcp (dhcpServer)
1794 cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
1795 cn=10.0.2.0 (dhcpSubnet)
1796 cn=group1 (dhcpGroup/dhcpOptions)
1797 cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
1798 cn=192.168.0.0 (dhcpSubnet)
1799 cn=group1 (dhcpGroup/dhcpOptions)
1800 ou=machines - PowerDNS base points here
1801 cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
1802 &lt;/pre&gt;&lt;/blockquote&gt;
1803
1804 &lt;P&gt;This is not tested yet. If the DHCP server require the dhcpHost
1805 entries to be in the dhcpGroup subtrees, the entries can be stored
1806 there instead of a common machines subtree, and the PowerDNS base
1807 would have to be moved one level up to the machine-info subtree.&lt;/p&gt;
1808
1809 &lt;p&gt;The combined object under the machines subtree would look something
1810 like this:&lt;/p&gt;
1811
1812 &lt;blockquote&gt;&lt;pre&gt;
1813 dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
1814 dc: hostname
1815 objectClass: top
1816 objectClass: dhcpHost
1817 objectclass: domainrelatedobject
1818 objectclass: dnsDomainAux
1819 associateddomain: hostname.intern
1820 arecord: 10.11.12.13
1821 dhcpHWAddress: ethernet 00:00:00:00:00:00
1822 dhcpStatements: fixed-address hostname.intern
1823 &lt;/pre&gt;&lt;/blockquote&gt;
1824
1825 &lt;/p&gt;One could even add the LTSP configuration associated with a given
1826 machine, as long as the required attributes are available in a
1827 auxiliary object class.&lt;/p&gt;
1828 </description>
1829 </item>
1830
1831 <item>
1832 <title>Circular package dependencies harms apt recovery</title>
1833 <link>http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</link>
1834 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</guid>
1835 <pubDate>Tue, 27 Jul 2010 23:50:00 +0200</pubDate>
1836 <description>&lt;p&gt;I discovered this while doing
1837 &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html&quot;&gt;automated
1838 testing of upgrades from Debian Lenny to Squeeze&lt;/a&gt;. A few packages
1839 in Debian still got circular dependencies, and it is often claimed
1840 that apt and aptitude should be able to handle this just fine, but
1841 some times these dependency loops causes apt to fail.&lt;/p&gt;
1842
1843 &lt;p&gt;An example is from todays
1844 &lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt&quot;&gt;upgrade
1845 of KDE using aptitude&lt;/a&gt;. In it, a bug in kdebase-workspace-data
1846 causes perl-modules to fail to upgrade. The cause is simple. If a
1847 package fail to unpack, then only part of packages with the circular
1848 dependency might end up being unpacked when unpacking aborts, and the
1849 ones already unpacked will fail to configure in the recovery phase
1850 because its dependencies are unavailable.&lt;/p&gt;
1851
1852 &lt;p&gt;In this log, the problem manifest itself with this error:&lt;/p&gt;
1853
1854 &lt;blockquote&gt;&lt;pre&gt;
1855 dpkg: dependency problems prevent configuration of perl-modules:
1856 perl-modules depends on perl (&gt;= 5.10.1-1); however:
1857 Version of perl on system is 5.10.0-19lenny2.
1858 dpkg: error processing perl-modules (--configure):
1859 dependency problems - leaving unconfigured
1860 &lt;/pre&gt;&lt;/blockquote&gt;
1861
1862 &lt;p&gt;The perl/perl-modules circular dependency is already
1863 &lt;a href=&quot;http://bugs.debian.org/527917&quot;&gt;reported as a bug&lt;/a&gt;, and will
1864 hopefully be solved as soon as possible, but it is not the only one,
1865 and each one of these loops in the dependency tree can cause similar
1866 failures. Of course, they only occur when there are bugs in other
1867 packages causing the unpacking to fail, but it is rather nasty when
1868 the failure of one package causes the problem to become worse because
1869 of dependency loops.&lt;/p&gt;
1870
1871 &lt;p&gt;Thanks to
1872 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/06/msg00116.html&quot;&gt;the
1873 tireless effort by Bill Allombert&lt;/a&gt;, the number of circular
1874 dependencies
1875 &lt;a href=&quot;http://debian.semistable.com/debgraph.out.html&quot;&gt;left in Debian
1876 is dropping&lt;/a&gt;, and perhaps it will reach zero one day. :)&lt;/p&gt;
1877
1878 &lt;p&gt;Todays testing also exposed a bug in
1879 &lt;a href=&quot;http://bugs.debian.org/590605&quot;&gt;update-notifier&lt;/a&gt; and
1880 &lt;a href=&quot;http://bugs.debian.org/590604&quot;&gt;different behaviour&lt;/a&gt; between
1881 apt-get and aptitude, the latter possibly caused by some circular
1882 dependency. Reported both to BTS to try to get someone to look at
1883 it.&lt;/p&gt;
1884 </description>
1885 </item>
1886
1887 <item>
1888 <title>Some notes on Flash in Debian and Debian Edu</title>
1889 <link>http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html</link>
1890 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html</guid>
1891 <pubDate>Sat, 4 Sep 2010 10:10:00 +0200</pubDate>
1892 <description>&lt;p&gt;In the &lt;a href=&quot;http://popcon.debian.org/unknown/by_vote&quot;&gt;Debian
1893 popularity-contest numbers&lt;/a&gt;, the adobe-flashplugin package the
1894 second most popular used package that is missing in Debian. The sixth
1895 most popular is flashplayer-mozilla. This is a clear indication that
1896 working flash is important for Debian users. Around 10 percent of the
1897 users submitting data to popcon.debian.org have this package
1898 installed.&lt;/p&gt;
1899
1900 &lt;p&gt;In the report written by Lars Risan in August 2008
1901&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
1902 i bruk – Rapport for Hurum kommune, Universitetet i Agder og
1903 stiftelsen SLX Debian Labs&lt;/a&gt;»), one of the most important problems
1904 schools experienced with &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian
1905 Edu/Skolelinux&lt;/a&gt; was the lack of working Flash. A lot of educational
1906 web sites require Flash to work, and lacking working Flash support in
1907 the web browser and the problems with installing it was perceived as a
1908 good reason to stay with Windows.&lt;/p&gt;
1909
1910 &lt;p&gt;I once saw a funny and sad comment in a web forum, where Linux was
1911 said to be the retarded cousin that did not really understand
1912 everything you told him but could work fairly well. This was a
1913 comment regarding the problems Linux have with proprietary formats and
1914 non-standard web pages, and is sad because it exposes a fairly common
1915 understanding of whose fault it is if web pages that only work in for
1916 example Internet Explorer 6 fail to work on Firefox, and funny because
1917 it explain very well how annoying it is for users when Linux
1918 distributions do not work with the documents they receive or the web
1919 pages they want to visit.&lt;/p&gt;
1920
1921 &lt;p&gt;This is part of the reason why I believe it is important for Debian
1922 and Debian Edu to have a well working Flash implementation in the
1923 distribution, to get at least popular sites as Youtube and Google
1924 Video to working out of the box. For Squeeze, Debian have the chance
1925 to include the latest version of Gnash that will make this happen, as
1926 the new release 0.8.8 was published a few weeks ago and is resting in
1927 unstable. The new version work with more sites that version 0.8.7.
1928 The Gnash maintainers have asked for a freeze exception, but the
1929 release team have not had time to reply to it yet. I hope they agree
1930 with me that Flash is important for the Debian desktop users, and thus
1931 accept the new package into Squeeze.&lt;/p&gt;
1932 </description>
1933 </item>
1934
1935 <item>
1936 <title>Software updates 2010-10-24</title>
1937 <link>http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html</link>
1938 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html</guid>
1939 <pubDate>Sun, 24 Oct 2010 22:45:00 +0200</pubDate>
1940 <description>&lt;p&gt;Some updates.&lt;/p&gt;
1941
1942 &lt;p&gt;My &lt;a href=&quot;http://pledgebank.com/gnash-avm2&quot;&gt;gnash pledge&lt;/a&gt; to
1943 raise money for the project is going well. The lower limit of 10
1944 signers was reached in 24 hours, and so far 13 people have signed it.
1945 More signers and more funding is most welcome, and I am really curious
1946 how far we can get before the time limit of December 24 is reached.
1947 :)&lt;/p&gt;
1948
1949 &lt;p&gt;On the #gnash IRC channel on irc.freenode.net, I was just tipped
1950 about what appear to be a great code coverage tool capable of
1951 generating code coverage stats without any changes to the source code.
1952 It is called
1953 &lt;a href=&quot;http://simonkagstrom.github.com/kcov/index.html&quot;&gt;kcov&lt;/a&gt;,
1954 and can be used using &lt;tt&gt;kcov &amp;lt;directory&amp;gt; &amp;lt;binary&amp;gt;&lt;/tt&gt;.
1955 It is missing in Debian, but the git source built just fine in Squeeze
1956 after I installed libelf-dev, libdwarf-dev, pkg-config and
1957 libglib2.0-dev. Failed to build in Lenny, but suspect that is
1958 solvable. I hope kcov make it into Debian soon.&lt;/p&gt;
1959
1960 &lt;p&gt;Finally found time to wrap up the release notes for &lt;a
1961 href=&quot;http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html&quot;&gt;a
1962 new alpha release of Debian Edu&lt;/a&gt;, and just published the second
1963 alpha test release of the Squeeze based Debian Edu /
1964 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux&lt;/a&gt;
1965 release. Give it a try if you need a complete linux solution for your
1966 school, including central infrastructure server, workstations, thin
1967 client servers and diskless workstations. A nice touch added
1968 yesterday is RDP support on the thin client servers, for windows
1969 clients to get a Linux desktop on request.&lt;/p&gt;
1970 </description>
1971 </item>
1972
1973 <item>
1974 <title>Debian in 3D</title>
1975 <link>http://people.skolelinux.org/pere/blog/Debian_in_3D.html</link>
1976 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_in_3D.html</guid>
1977 <pubDate>Tue, 9 Nov 2010 16:10:00 +0100</pubDate>
1978 <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;
1979
1980 &lt;p&gt;3D printing is just great. I just came across this Debian logo in
1981 3D linked in from
1982 &lt;a href=&quot;http://blog.thingiverse.com/2010/11/09/participatory-branding/&quot;&gt;the
1983 thingiverse blog&lt;/a&gt;.&lt;/p&gt;
1984 </description>
1985 </item>
1986
1987 <item>
1988 <title>Gnash buildbot slave and Debian kfreebsd</title>
1989 <link>http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html</link>
1990 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html</guid>
1991 <pubDate>Sat, 20 Nov 2010 07:20:00 +0100</pubDate>
1992 <description>&lt;p&gt;Answering
1993 &lt;a href=&quot;http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html&quot;&gt;the
1994 call from the Gnash project&lt;/a&gt; for
1995 &lt;a href=&quot;http://www.gnashdev.org:8010&quot;&gt;buildbot&lt;/a&gt; slaves to test the
1996 current source, I have set up a virtual KVM machine on the Debian
1997 Edu/Skolelinux virtualization host to test the git source on
1998 Debian/Squeeze. I hope this can help the developers in getting new
1999 releases out more often.&lt;/p&gt;
2000
2001 &lt;p&gt;As the developers want less main-stream build platforms tested to,
2002 I have considered setting up a &lt;a
2003 href=&quot;http://www.debian.org/ports/kfreebsd-gnu/&quot;&gt;Debian/kfreebsd&lt;/a&gt;
2004 machine as well. I have also considered using the kfreebsd
2005 architecture in Debian as a file server in NUUG to get access to the 5
2006 TB zfs volume we currently use to store DV video. Because of this, I
2007 finally got around to do a test installation of Debian/Squeeze with
2008 kfreebsd. Installation went fairly smooth, thought I noticed some
2009 visual glitches in the cdebconf dialogs (black cursor left on the
2010 screen at random locations). Have not gotten very far with the
2011 testing. Noticed cfdisk did not work, but fdisk did so it was not a
2012 fatal problem. Have to spend some more time on it to see if it is
2013 useful as a file server for NUUG. Will try to find time to set up a
2014 gnash buildbot slave on the Debian Edu/Skolelinux this weekend.&lt;/p&gt;
2015 </description>
2016 </item>
2017
2018 <item>
2019 <title>Lenny-&gt;Squeeze upgrades, apt vs aptitude with the Gnome and KDE desktop</title>
2020 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html</link>
2021 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html</guid>
2022 <pubDate>Sat, 20 Nov 2010 22:50:00 +0100</pubDate>
2023 <description>&lt;p&gt;I&#39;m still running upgrade testing of the
2024 &lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;Lenny
2025 Gnome and KDE Desktop&lt;/a&gt;, but have not had time to spend on reporting the
2026 status. Here is a short update based on a test I ran 20101118.&lt;/p&gt;
2027
2028 &lt;p&gt;I still do not know what a correct migration should look like, so I
2029 report any differences between apt and aptitude and hope someone else
2030 can see if anything should be changed.&lt;/p&gt;
2031
2032 &lt;p&gt;This is for Gnome:&lt;/p&gt;
2033
2034 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
2035
2036 &lt;blockquote&gt;&lt;p&gt;
2037 apache2.2-bin aptdaemon at-spi baobab binfmt-support
2038 browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
2039 dmz-cursor-theme empathy empathy-common finger
2040 freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
2041 gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
2042 geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
2043 gnome-cards-data gnome-codec-install gnome-core
2044 gnome-desktop-environment gnome-disk-utility gnome-screenshot
2045 gnome-search-tool gnome-session-canberra gnome-spell
2046 gnome-system-log gnome-themes-extras gnome-themes-more
2047 gnome-user-share gs-common gstreamer0.10-fluendo-mp3
2048 gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
2049 gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
2050 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
2051 libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
2052 libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
2053 libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
2054 libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
2055 libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
2056 libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
2057 libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
2058 libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
2059 libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
2060 libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
2061 libgtk2.0-cil libgtkglext1 libgtksourceview-common
2062 libgtksourceview2.0-common libmono-addins-gui0.2-cil
2063 libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
2064 libmono-i18n-west2.0-cil libmono-posix2.0-cil
2065 libmono-security2.0-cil libmono-sharpzip2.84-cil
2066 libmono-system2.0-cil libmtp8 libmusicbrainz3-6
2067 libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
2068 libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
2069 libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
2070 libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
2071 libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
2072 libxalan2-java libxerces2-java media-player-info mesa-utils
2073 mono-2.0-gac mono-gac mono-runtime nautilus-sendto
2074 nautilus-sendto-empathy openoffice.org-writer2latex
2075 openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
2076 python-aptdaemon python-aptdaemon-gtk python-axiom
2077 python-beautifulsoup python-bugbuddy python-clientform
2078 python-coherence python-configobj python-crypto python-cupshelpers
2079 python-cupsutils python-eggtrayicon python-elementtree
2080 python-epsilon python-evolution python-feedparser python-gdata
2081 python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
2082 python-gtksourceview2 python-httplib2 python-louie python-mako
2083 python-markupsafe python-mechanize python-nevow python-notify
2084 python-opengl python-openssl python-pam python-pkg-resources
2085 python-pyasn1 python-pysqlite2 python-rdflib python-serial
2086 python-tagpy python-twisted-bin python-twisted-conch
2087 python-twisted-core python-twisted-web python-utidylib python-webkit
2088 python-xdg python-zope.interface remmina remmina-plugin-data
2089 remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
2090 rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
2091 software-center svgalibg1 system-config-printer-udev
2092 telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
2093 totem totem-coherence totem-mozilla totem-plugins
2094 transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
2095 zip
2096 &lt;/p&gt;&lt;/blockquote&gt;
2097
2098 Installed using apt-get, removed with aptitude
2099
2100 &lt;blockquote&gt;&lt;p&gt;
2101 arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
2102 epiphany-extensions epiphany-gecko evolution-exchange
2103 fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
2104 gedit-common gnome-app-install gnome-games gnome-games-data
2105 gnome-nettool gnome-system-tools gnome-themes gnome-utils
2106 gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
2107 guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
2108 libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
2109 libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
2110 libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
2111 libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
2112 libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
2113 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
2114 libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
2115 libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
2116 libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
2117 libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
2118 libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
2119 libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
2120 libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
2121 libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
2122 libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
2123 libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
2124 libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
2125 libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
2126 libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
2127 libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
2128 sound-juicer swfdec-gnome system-config-printer totem-common
2129 totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
2130 &lt;/p&gt;&lt;/blockquote&gt;
2131
2132 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
2133
2134 &lt;blockquote&gt;&lt;p&gt;
2135 gstreamer0.10-gnomevfs
2136 &lt;/p&gt;&lt;/blockquote&gt;
2137
2138 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
2139
2140 &lt;blockquote&gt;&lt;p&gt;
2141 [nothing]
2142 &lt;/p&gt;&lt;/blockquote&gt;
2143
2144 &lt;p&gt;This is for KDE:&lt;/p&gt;
2145
2146 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
2147
2148 &lt;blockquote&gt;&lt;p&gt;
2149 autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
2150 edict espeak espeak-data eyesapplet fifteenapplet finger gettext
2151 ghostscript-x git gnome-audio gnugo granatier gs-common
2152 gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
2153 kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
2154 kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
2155 kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
2156 kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
2157 kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
2158 kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
2159 kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
2160 kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
2161 killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
2162 kollision kpf krosspython ksirk ksmserver ksquares kstars-data
2163 ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
2164 libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
2165 libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
2166 libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
2167 libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
2168 libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
2169 libkrossui4 libmailtools-perl libmime-tools-perl
2170 libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
2171 libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
2172 libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
2173 lirc luatex marble networkstatus noatun-plugins
2174 openoffice.org-writer2latex palapeli palapeli-data parley
2175 parley-data poster psutils pulseaudio pulseaudio-esound-compat
2176 pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
2177 speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
2178 ttf-sazanami-gothic
2179 &lt;/p&gt;&lt;/blockquote&gt;
2180
2181 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
2182
2183 &lt;blockquote&gt;&lt;p&gt;
2184 amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
2185 dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
2186 kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
2187 kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
2188 keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
2189 kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
2190 kitchensync kiten kjumpingcube klatin klettres klickety klines
2191 klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
2192 kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
2193 kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
2194 kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
2195 ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
2196 ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
2197 kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
2198 kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
2199 libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
2200 libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
2201 libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
2202 libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
2203 libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
2204 libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
2205 libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
2206 libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
2207 libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
2208 libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
2209 libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
2210 libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
2211 libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
2212 libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
2213 libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
2214 mpeglib network-manager-kde noatun pmount tex-common texlive-base
2215 texlive-common texlive-doc-base texlive-fonts-recommended tidy
2216 ttf-dustin ttf-kochi-gothic ttf-sjfonts
2217 &lt;/p&gt;&lt;/blockquote&gt;
2218
2219 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
2220
2221 &lt;blockquote&gt;&lt;p&gt;
2222 dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
2223 kdeartwork kdebase kdebase-apps kdebase-workspace
2224 kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
2225 kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
2226 netpbm plasma-widget-folderview plasma-widget-networkmanagement
2227 xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
2228 xscreensaver-screensaver-bsod
2229 &lt;/p&gt;&lt;/blockquote&gt;
2230
2231 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
2232
2233 &lt;blockquote&gt;&lt;p&gt;
2234 kdebase-bin konq-plugins konqueror
2235 &lt;/p&gt;&lt;/blockquote&gt;
2236 </description>
2237 </item>
2238
2239 <item>
2240 <title>Migrating Xen virtual machines using LVM to KVM using disk images</title>
2241 <link>http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html</link>
2242 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html</guid>
2243 <pubDate>Mon, 22 Nov 2010 11:20:00 +0100</pubDate>
2244 <description>&lt;p&gt;Most of the computers in use by the
2245 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu/Skolelinux project&lt;/a&gt;
2246 are virtual machines. And they have been Xen machines running on a
2247 fairly old IBM eserver xseries 345 machine, and we wanted to migrate
2248 them to KVM on a newer Dell PowerEdge 2950 host machine. This was a
2249 bit harder that it could have been, because we set up the Xen virtual
2250 machines to get the virtual partitions from LVM, which as far as I
2251 know is not supported by KVM. So to migrate, we had to convert
2252 several LVM logical volumes to partitions on a virtual disk file.&lt;/p&gt;
2253
2254 &lt;p&gt;I found
2255 &lt;a href=&quot;http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM&quot;&gt;a
2256 nice recipe&lt;/a&gt; to do this, and wrote the following script to do the
2257 migration. It uses qemu-img from the qemu package to make the disk
2258 image, parted to partition it, losetup and kpartx to present the disk
2259 image partions as devices, and dd to copy the data. I NFS mounted the
2260 new servers storage area on the old server to do the migration.&lt;/p&gt;
2261
2262 &lt;pre&gt;
2263 #!/bin/sh
2264
2265 # Based on
2266 # http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
2267
2268 set -e
2269 set -x
2270
2271 if [ -z &quot;$1&quot; ] ; then
2272 echo &quot;Usage: $0 &amp;lt;hostname&amp;gt;&quot;
2273 exit 1
2274 else
2275 host=&quot;$1&quot;
2276 fi
2277
2278 if [ ! -e /dev/vg_data/$host-disk ] ; then
2279 echo &quot;error: unable to find LVM volume for $host&quot;
2280 exit 1
2281 fi
2282
2283 # Partitions need to be a bit bigger than the LVM LVs. not sure why.
2284 disksize=$( lvs --units m | grep $host-disk | awk &#39;{sum = sum + $4} END { print int(sum * 1.05) }&#39;)
2285 swapsize=$( lvs --units m | grep $host-swap | awk &#39;{sum = sum + $4} END { print int(sum * 1.05) }&#39;)
2286 totalsize=$(( ( $disksize + $swapsize ) ))
2287
2288 img=$host.img
2289 #dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
2290 qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
2291
2292 parted $img mklabel msdos
2293 parted $img mkpart primary linux-swap 0 $disksize
2294 parted $img mkpart primary ext2 $disksize $totalsize
2295 parted $img set 1 boot on
2296
2297 modprobe dm-mod
2298 losetup /dev/loop0 $img
2299 kpartx -a /dev/loop0
2300
2301 dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
2302 fsck.ext3 -f /dev/mapper/loop0p1 || true
2303 mkswap /dev/mapper/loop0p2
2304
2305 kpartx -d /dev/loop0
2306 losetup -d /dev/loop0
2307 &lt;/pre&gt;
2308
2309 &lt;p&gt;The script is perhaps so simple that it is not copyrightable, but
2310 if it is, it is licenced using GPL v2 or later at your discretion.&lt;/p&gt;
2311
2312 &lt;p&gt;After doing this, I booted a Debian CD in rescue mode in KVM with
2313 the new disk image attached, installed grub-pc and linux-image-686 and
2314 set up grub to boot from the disk image. After this, the KVM machines
2315 seem to work just fine.&lt;/p&gt;
2316 </description>
2317 </item>
2318
2319 <item>
2320 <title>Lenny-&gt;Squeeze upgrades of the Gnome and KDE desktop, now with apt-get autoremove</title>
2321 <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html</link>
2322 <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>
2323 <pubDate>Mon, 22 Nov 2010 14:15:00 +0100</pubDate>
2324 <description>&lt;p&gt;Michael Biebl suggested to me on IRC, that I changed my automated
2325 upgrade testing of the
2326 &lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;Lenny
2327 Gnome and KDE Desktop&lt;/a&gt; to do &lt;tt&gt;apt-get autoremove&lt;/tt&gt; when using apt-get.
2328 This seem like a very good idea, so I adjusted by test scripts and
2329 can now present the updated result from today:&lt;/p&gt;
2330
2331 &lt;p&gt;This is for Gnome:&lt;/p&gt;
2332
2333 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
2334
2335 &lt;blockquote&gt;&lt;p&gt;
2336 apache2.2-bin
2337 aptdaemon
2338 baobab
2339 binfmt-support
2340 browser-plugin-gnash
2341 cheese-common
2342 cli-common
2343 cups-pk-helper
2344 dmz-cursor-theme
2345 empathy
2346 empathy-common
2347 freedesktop-sound-theme
2348 freeglut3
2349 gconf-defaults-service
2350 gdm-themes
2351 gedit-plugins
2352 geoclue
2353 geoclue-hostip
2354 geoclue-localnet
2355 geoclue-manual
2356 geoclue-yahoo
2357 gnash
2358 gnash-common
2359 gnome
2360 gnome-backgrounds
2361 gnome-cards-data
2362 gnome-codec-install
2363 gnome-core
2364 gnome-desktop-environment
2365 gnome-disk-utility
2366 gnome-screenshot
2367 gnome-search-tool
2368 gnome-session-canberra
2369 gnome-system-log
2370 gnome-themes-extras
2371 gnome-themes-more
2372 gnome-user-share
2373 gstreamer0.10-fluendo-mp3
2374 gstreamer0.10-tools
2375 gtk2-engines
2376 gtk2-engines-pixbuf
2377 gtk2-engines-smooth
2378 hamster-applet
2379 libapache2-mod-dnssd
2380 libapr1
2381 libaprutil1
2382 libaprutil1-dbd-sqlite3
2383 libaprutil1-ldap
2384 libart2.0-cil
2385 libboost-date-time1.42.0
2386 libboost-python1.42.0
2387 libboost-thread1.42.0
2388 libchamplain-0.4-0
2389 libchamplain-gtk-0.4-0
2390 libcheese-gtk18
2391 libclutter-gtk-0.10-0
2392 libcryptui0
2393 libdiscid0
2394 libelf1
2395 libepc-1.0-2
2396 libepc-common
2397 libepc-ui-1.0-2
2398 libfreerdp-plugins-standard
2399 libfreerdp0
2400 libgconf2.0-cil
2401 libgdata-common
2402 libgdata7
2403 libgdu-gtk0
2404 libgee2
2405 libgeoclue0
2406 libgexiv2-0
2407 libgif4
2408 libglade2.0-cil
2409 libglib2.0-cil
2410 libgmime2.4-cil
2411 libgnome-vfs2.0-cil
2412 libgnome2.24-cil
2413 libgnomepanel2.24-cil
2414 libgpod-common
2415 libgpod4
2416 libgtk2.0-cil
2417 libgtkglext1
2418 libgtksourceview2.0-common
2419 libmono-addins-gui0.2-cil
2420 libmono-addins0.2-cil
2421 libmono-cairo2.0-cil
2422 libmono-corlib2.0-cil
2423 libmono-i18n-west2.0-cil
2424 libmono-posix2.0-cil
2425 libmono-security2.0-cil
2426 libmono-sharpzip2.84-cil
2427 libmono-system2.0-cil
2428 libmtp8
2429 libmusicbrainz3-6
2430 libndesk-dbus-glib1.0-cil
2431 libndesk-dbus1.0-cil
2432 libopal3.6.8
2433 libpolkit-gtk-1-0
2434 libpt2.6.7
2435 libpython2.6
2436 librpm1
2437 librpmio1
2438 libsdl1.2debian
2439 libsrtp0
2440 libssh-4
2441 libtelepathy-farsight0
2442 libtelepathy-glib0
2443 libtidy-0.99-0
2444 media-player-info
2445 mesa-utils
2446 mono-2.0-gac
2447 mono-gac
2448 mono-runtime
2449 nautilus-sendto
2450 nautilus-sendto-empathy
2451 p7zip-full
2452 pkg-config
2453 python-aptdaemon
2454 python-aptdaemon-gtk
2455 python-axiom
2456 python-beautifulsoup
2457 python-bugbuddy
2458 python-clientform
2459 python-coherence
2460 python-configobj
2461 python-crypto
2462 python-cupshelpers
2463 python-elementtree
2464 python-epsilon
2465 python-evolution
2466 python-feedparser
2467 python-gdata
2468 python-gdbm
2469 python-gst0.10
2470 python-gtkglext1
2471 python-gtksourceview2
2472 python-httplib2
2473 python-louie
2474 python-mako
2475 python-markupsafe
2476 python-mechanize
2477 python-nevow
2478 python-notify
2479 python-opengl
2480 python-openssl
2481 python-pam
2482 python-pkg-resources
2483 python-pyasn1
2484 python-pysqlite2
2485 python-rdflib
2486 python-serial
2487 python-tagpy
2488 python-twisted-bin
2489 python-twisted-conch
2490 python-twisted-core
2491 python-twisted-web
2492 python-utidylib
2493 python-webkit
2494 python-xdg
2495 python-zope.interface
2496 remmina
2497 remmina-plugin-data
2498 remmina-plugin-rdp
2499 remmina-plugin-vnc
2500 rhythmbox-plugin-cdrecorder
2501 rhythmbox-plugins
2502 rpm-common
2503 rpm2cpio
2504 seahorse-plugins
2505 shotwell
2506 software-center
2507 system-config-printer-udev
2508 telepathy-gabble
2509 telepathy-mission-control-5
2510 telepathy-salut
2511 tomboy
2512 totem
2513 totem-coherence
2514 totem-mozilla
2515 totem-plugins
2516 transmission-common
2517 xdg-user-dirs
2518 xdg-user-dirs-gtk
2519 xserver-xephyr
2520 &lt;/p&gt;&lt;/blockquote&gt;
2521
2522 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
2523
2524 &lt;blockquote&gt;&lt;p&gt;
2525 cheese
2526 ekiga
2527 eog
2528 epiphany-extensions
2529 evolution-exchange
2530 fast-user-switch-applet
2531 file-roller
2532 gcalctool
2533 gconf-editor
2534 gdm
2535 gedit
2536 gedit-common
2537 gnome-games
2538 gnome-games-data
2539 gnome-nettool
2540 gnome-system-tools
2541 gnome-themes
2542 gnuchess
2543 gucharmap
2544 guile-1.8-libs
2545 libavahi-ui0
2546 libdmx1
2547 libgalago3
2548 libgtk-vnc-1.0-0
2549 libgtksourceview2.0-0
2550 liblircclient0
2551 libsdl1.2debian-alsa
2552 libspeexdsp1
2553 libsvga1
2554 rhythmbox
2555 seahorse
2556 sound-juicer
2557 system-config-printer
2558 totem-common
2559 transmission-gtk
2560 vinagre
2561 vino
2562 &lt;/p&gt;&lt;/blockquote&gt;
2563
2564 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
2565
2566 &lt;blockquote&gt;&lt;p&gt;
2567 gstreamer0.10-gnomevfs
2568 &lt;/p&gt;&lt;/blockquote&gt;
2569
2570 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
2571
2572 &lt;blockquote&gt;&lt;p&gt;
2573 [nothing]
2574 &lt;/p&gt;&lt;/blockquote&gt;
2575
2576 &lt;p&gt;This is for KDE:&lt;/p&gt;
2577
2578 &lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
2579
2580 &lt;blockquote&gt;&lt;p&gt;
2581 ksmserver
2582 &lt;/p&gt;&lt;/blockquote&gt;
2583
2584 &lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
2585
2586 &lt;blockquote&gt;&lt;p&gt;
2587 kwin
2588 network-manager-kde
2589 &lt;/p&gt;&lt;/blockquote&gt;
2590
2591 &lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
2592
2593 &lt;blockquote&gt;&lt;p&gt;
2594 arts
2595 dolphin
2596 freespacenotifier
2597 google-gadgets-gst
2598 google-gadgets-xul
2599 kappfinder
2600 kcalc
2601 kcharselect
2602 kde-core
2603 kde-plasma-desktop
2604 kde-standard
2605 kde-window-manager
2606 kdeartwork
2607 kdeartwork-emoticons
2608 kdeartwork-style
2609 kdeartwork-theme-icon
2610 kdebase
2611 kdebase-apps
2612 kdebase-workspace
2613 kdebase-workspace-bin
2614 kdebase-workspace-data
2615 kdeeject
2616 kdelibs
2617 kdeplasma-addons
2618 kdeutils
2619 kdewallpapers
2620 kdf
2621 kfloppy
2622 kgpg
2623 khelpcenter4
2624 kinfocenter
2625 konq-plugins-l10n
2626 konqueror-nsplugins
2627 kscreensaver
2628 kscreensaver-xsavers
2629 ktimer
2630 kwrite
2631 libgle3
2632 libkde4-ruby1.8
2633 libkonq5
2634 libkonq5-templates
2635 libnetpbm10
2636 libplasma-ruby
2637 libplasma-ruby1.8
2638 libqt4-ruby1.8
2639 marble-data
2640 marble-plugins
2641 netpbm
2642 nuvola-icon-theme
2643 plasma-dataengines-workspace
2644 plasma-desktop
2645 plasma-desktopthemes-artwork
2646 plasma-runners-addons
2647 plasma-scriptengine-googlegadgets
2648 plasma-scriptengine-python
2649 plasma-scriptengine-qedje
2650 plasma-scriptengine-ruby
2651 plasma-scriptengine-webkit
2652 plasma-scriptengines
2653 plasma-wallpapers-addons
2654 plasma-widget-folderview
2655 plasma-widget-networkmanagement
2656 ruby
2657 sweeper
2658 update-notifier-kde
2659 xscreensaver-data-extra
2660 xscreensaver-gl
2661 xscreensaver-gl-extra
2662 xscreensaver-screensaver-bsod
2663 &lt;/p&gt;&lt;/blockquote&gt;
2664
2665 &lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
2666
2667 &lt;blockquote&gt;&lt;p&gt;
2668 ark
2669 google-gadgets-common
2670 google-gadgets-qt
2671 htdig
2672 kate
2673 kdebase-bin
2674 kdebase-data
2675 kdepasswd
2676 kfind
2677 klipper
2678 konq-plugins
2679 konqueror
2680 ksysguard
2681 ksysguardd
2682 libarchive1
2683 libcln6
2684 libeet1
2685 libeina-svn-06
2686 libggadget-1.0-0b
2687 libggadget-qt-1.0-0b
2688 libgps19
2689 libkdecorations4
2690 libkephal4
2691 libkonq4
2692 libkonqsidebarplugin4a
2693 libkscreensaver5
2694 libksgrd4
2695 libksignalplotter4
2696 libkunitconversion4
2697 libkwineffects1a
2698 libmarblewidget4
2699 libntrack-qt4-1
2700 libntrack0
2701 libplasma-geolocation-interface4
2702 libplasmaclock4a
2703 libplasmagenericshell4
2704 libprocesscore4a
2705 libprocessui4a
2706 libqalculate5
2707 libqedje0a
2708 libqtruby4shared2
2709 libqzion0a
2710 libruby1.8
2711 libscim8c2a
2712 libsmokekdecore4-3
2713 libsmokekdeui4-3
2714 libsmokekfile3
2715 libsmokekhtml3
2716 libsmokekio3
2717 libsmokeknewstuff2-3
2718 libsmokeknewstuff3-3
2719 libsmokekparts3
2720 libsmokektexteditor3
2721 libsmokekutils3
2722 libsmokenepomuk3
2723 libsmokephonon3
2724 libsmokeplasma3
2725 libsmokeqtcore4-3
2726 libsmokeqtdbus4-3
2727 libsmokeqtgui4-3
2728 libsmokeqtnetwork4-3
2729 libsmokeqtopengl4-3
2730 libsmokeqtscript4-3
2731 libsmokeqtsql4-3
2732 libsmokeqtsvg4-3
2733 libsmokeqttest4-3
2734 libsmokeqtuitools4-3
2735 libsmokeqtwebkit4-3
2736 libsmokeqtxml4-3
2737 libsmokesolid3
2738 libsmokesoprano3
2739 libtaskmanager4a
2740 libtidy-0.99-0
2741 libweather-ion4a
2742 libxklavier16
2743 libxxf86misc1
2744 okteta
2745 oxygencursors
2746 plasma-dataengines-addons
2747 plasma-scriptengine-superkaramba
2748 plasma-widget-lancelot
2749 plasma-widgets-addons
2750 plasma-widgets-workspace
2751 polkit-kde-1
2752 ruby1.8
2753 systemsettings
2754 update-notifier-common
2755 &lt;/p&gt;&lt;/blockquote&gt;
2756
2757 &lt;p&gt;Running apt-get autoremove made the results using apt-get and
2758 aptitude a bit more similar, but there are still quite a lott of
2759 differences. I have no idea what packages should be installed after
2760 the upgrade, but hope those that do can have a look.&lt;/p&gt;
2761 </description>
2762 </item>
2763
2764 <item>
2765 <title>Why isn&#39;t Debian Edu using VLC?</title>
2766 <link>http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html</link>
2767 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html</guid>
2768 <pubDate>Sat, 27 Nov 2010 11:30:00 +0100</pubDate>
2769 <description>&lt;p&gt;In the latest issue of Linux Journal, the readers choices were
2770 presented, and the winner among the multimedia player were VLC.
2771 Personally, I like VLC, and it is my player of choice when I first try
2772 to play a video file or stream. Only if VLC fail will I drag out
2773 gmplayer to see if it can do better. The reason is mostly the failure
2774 model and trust. When VLC fail, it normally pop up a error message
2775 reporting the problem. When mplayer fail, it normally segfault or
2776 just hangs. The latter failure mode drain my trust in the program.&lt;p&gt;
2777
2778 &lt;p&gt;But even if VLC is my player of choice, we have choosen to use
2779 mplayer in &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian
2780 Edu/Skolelinux&lt;/a&gt;. The reason is simple. We need a good browser
2781 plugin to play web videos seamlessly, and the VLC browser plugin is
2782 not very good. For example, it lack in-line control buttons, so there
2783 is no way for the user to pause the video. Also, when I
2784 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/BrowserMultimedia&quot;&gt;last
2785 tested the browser plugins&lt;/a&gt; available in Debian, the VLC plugin
2786 failed on several video pages where mplayer based plugins worked. If
2787 the browser plugin for VLC was as good as the gecko-mediaplayer
2788 package (which uses mplayer), we would switch.&lt;/P&gt;
2789
2790 &lt;p&gt;While VLC is a good player, its user interface is slightly
2791 annoying. The most annoying feature is its inconsistent use of
2792 keyboard shortcuts. When the player is in full screen mode, its
2793 shortcuts are different from when it is playing the video in a window.
2794 For example, space only work as pause when in full screen mode. I
2795 wish it had consisten shortcuts and that space also would work when in
2796 window mode. Another nice shortcut in gmplayer is [enter] to restart
2797 the current video. It is very nice when playing short videos from the
2798 web and want to restart it when new people arrive to have a look at
2799 what is going on.&lt;/p&gt;
2800 </description>
2801 </item>
2802
2803 <item>
2804 <title>Now accepting bitcoins - anonymous and distributed p2p crypto-money</title>
2805 <link>http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html</link>
2806 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html</guid>
2807 <pubDate>Fri, 10 Dec 2010 08:20:00 +0100</pubDate>
2808 <description>&lt;p&gt;With this weeks lawless
2809 &lt;a href=&quot;http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html&quot;&gt;governmental
2810 attacks&lt;/a&gt; on Wikileak and
2811 &lt;a href=&quot;http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech&quot;&gt;free
2812 speech&lt;/a&gt;, it has become obvious that PayPal, visa and mastercard can
2813 not be trusted to handle money transactions.
2814 A blog post from
2815 &lt;a href=&quot;http://webmink.com/2010/12/06/now-accepting-bitcoin/&quot;&gt;Simon
2816 Phipps on bitcoin&lt;/a&gt; reminded me about a project that a friend of
2817 mine mentioned earlier. I decided to follow Simon&#39;s example, and get
2818 involved with &lt;a href=&quot;http://www.bitcoin.org/&quot;&gt;BitCoin&lt;/a&gt;. I got
2819 some help from my friend to get it all running, and he even handed me
2820 some bitcoins to get started. I even donated a few bitcoins to Simon
2821 for helping me remember BitCoin.&lt;/p&gt;
2822
2823 &lt;p&gt;So, what is bitcoins, you probably wonder? It is a digital
2824 crypto-currency, decentralised and handled using peer-to-peer
2825 networks. It allows anonymous transactions and prohibits central
2826 control over the transactions, making it impossible for governments
2827 and companies alike to block donations and other transactions. The
2828 source is free software, and while the key dependency wxWidgets 2.9
2829 for the graphical user interface is missing in Debian, the command
2830 line client builds just fine. Hopefully Jonas
2831 &lt;a href=&quot;http://bugs.debian.org/578157&quot;&gt;will get the package into
2832 Debian&lt;/a&gt; soon.&lt;/p&gt;
2833
2834 &lt;p&gt;Bitcoins can be converted to other currencies, like USD and EUR.
2835 There are &lt;a href=&quot;http://www.bitcoin.org/trade&quot;&gt;companies accepting
2836 bitcoins&lt;/a&gt; when selling services and goods, and there are even
2837 currency &quot;stock&quot; markets where the exchange rate is decided. There
2838 are not many users so far, but the concept seems promising. If you
2839 want to get started and lack a friend with any bitcoins to spare,
2840 you can even get
2841 &lt;a href=&quot;https://freebitcoins.appspot.com/&quot;&gt;some for free&lt;/a&gt; (0.05
2842 bitcoin at the time of writing). Use
2843 &lt;a href=&quot;http://www.bitcoinwatch.com/&quot;&gt;BitcoinWatch&lt;/a&gt; to keep an eye
2844 on the current exchange rates.&lt;/p&gt;
2845
2846 &lt;p&gt;As an experiment, I have decided to set up bitcoind on one of my
2847 machines. If you want to support my activity, please send Bitcoin
2848 donations to the address
2849 &lt;b&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/b&gt;. Thank you!&lt;/p&gt;
2850 </description>
2851 </item>
2852
2853 <item>
2854 <title>Some thoughts on BitCoins</title>
2855 <link>http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html</link>
2856 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html</guid>
2857 <pubDate>Sat, 11 Dec 2010 15:10:00 +0100</pubDate>
2858 <description>&lt;p&gt;As I continue to explore
2859 &lt;a href=&quot;http://www.bitcoin.org/&quot;&gt;BitCoin&lt;/a&gt;, I&#39;ve starting to wonder
2860 what properties the system have, and how it will be affected by laws
2861 and regulations here in Norway. Here are some random notes.&lt;/p&gt;
2862
2863 &lt;p&gt;One interesting thing to note is that since the transactions are
2864 verified using a peer to peer network, all details about a transaction
2865 is known to everyone. This means that if a BitCoin address has been
2866 published like I did with mine in my initial post about BitCoin, it is
2867 possible for everyone to see how many BitCoins have been transfered to
2868 that address. There is even a web service to look at the details for
2869 all transactions. There I can see that my address
2870 &lt;a href=&quot;http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;
2871 have received 16.06 Bitcoin, the
2872 &lt;a href=&quot;http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3&quot;&gt;1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3&lt;/a&gt;
2873 address of Simon Phipps have received 181.97 BitCoin and the address
2874 &lt;a href=&quot;http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt&quot;&gt;1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt&lt;/A&gt;
2875 of EFF have received 2447.38 BitCoins so far. Thank you to each and
2876 every one of you that donated bitcoins to support my activity. The
2877 fact that anyone can see how much money was transfered to a given
2878 address make it more obvious why the BitCoin community recommend to
2879 generate and hand out a new address for each transaction. I&#39;m told
2880 there is no way to track which addresses belong to a given person or
2881 organisation without the person or organisation revealing it
2882 themselves, as Simon, EFF and I have done.&lt;/p&gt;
2883
2884 &lt;p&gt;In Norway, and in most other countries, there are laws and
2885 regulations limiting how much money one can transfer across the border
2886 without declaring it. There are money laundering, tax and accounting
2887 laws and regulations I would expect to apply to the use of BitCoin.
2888 If the Skolelinux foundation
2889 (&lt;a href=&quot;http://linuxiskolen.no/slxdebianlabs/donations.html&quot;&gt;SLX
2890 Debian Labs&lt;/a&gt;) were to accept donations in BitCoin in addition to
2891 normal bank transfers like EFF is doing, how should this be accounted?
2892 Given that it is impossible to know if money can across the border or
2893 not, should everything or nothing be declared? What exchange rate
2894 should be used when calculating taxes? Would receivers have to pay
2895 income tax if the foundation were to pay Skolelinux contributors in
2896 BitCoin? I have no idea, but it would be interesting to know.&lt;/p&gt;
2897
2898 &lt;p&gt;For a currency to be useful and successful, it must be trusted and
2899 accepted by a lot of users. It must be possible to get easy access to
2900 the currency (as a wage or using currency exchanges), and it must be
2901 easy to spend it. At the moment BitCoin seem fairly easy to get
2902 access to, but there are very few places to spend it. I am not really
2903 a regular user of any of the vendor types currently accepting BitCoin,
2904 so I wonder when my kind of shop would start accepting BitCoins. I
2905 would like to buy electronics, travels and subway tickets, not herbs
2906 and books. :) The currency is young, and this will improve over time
2907 if it become popular, but I suspect regular banks will start to lobby
2908 to get BitCoin declared illegal if it become popular. I&#39;m sure they
2909 will claim it is helping fund terrorism and money laundering (which
2910 probably would be true, as is any currency in existence), but I
2911 believe the problems should be solved elsewhere and not by blaming
2912 currencies.&lt;/p&gt;
2913
2914 &lt;p&gt;The process of creating new BitCoins is called mining, and it is
2915 CPU intensive process that depend on a bit of luck as well (as one is
2916 competing against all the other miners currently spending CPU cycles
2917 to see which one get the next lump of cash). The &quot;winner&quot; get 50
2918 BitCoin when this happen. Yesterday I came across the obvious way to
2919 join forces to increase ones changes of getting at least some coins,
2920 by coordinating the work on mining BitCoins across several machines
2921 and people, and sharing the result if one is lucky and get the 50
2922 BitCoins. Check out
2923 &lt;a href=&quot;http://www.bluishcoder.co.nz/bitcoin-pool/&quot;&gt;BitCoin Pool&lt;/a&gt;
2924 if this sounds interesting. I have not had time to try to set up a
2925 machine to participate there yet, but have seen that running on ones
2926 own for a few days have not yield any BitCoins througth mining
2927 yet.&lt;/p&gt;
2928
2929 &lt;p&gt;Update 2010-12-15: Found an &lt;a
2930 href=&quot;http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi&quot;&gt;interesting
2931 criticism&lt;/a&gt; of bitcoin. Not quite sure how valid it is, but thought
2932 it was interesting to read. The arguments presented seem to be
2933 equally valid for gold, which was used as a currency for many years.&lt;/p&gt;
2934 </description>
2935 </item>
2936
2937 <item>
2938 <title>How to test if a laptop is working with Linux</title>
2939 <link>http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html</link>
2940 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html</guid>
2941 <pubDate>Wed, 22 Dec 2010 14:55:00 +0100</pubDate>
2942 <description>&lt;p&gt;The last few days I have spent at work here at the &lt;a
2943 href=&quot;http://www.uio.no/&quot;&gt;University of Oslo&lt;/a&gt; testing if the new
2944 batch of computers will work with Linux. Every year for the last few
2945 years the university have organised shared bid of a few thousand
2946 computers, and this year HP won the bid. Two different desktops and
2947 five different laptops are on the list this year. We in the UNIX
2948 group want to know which one of these computers work well with RHEL
2949 and Ubuntu, the two Linux distributions we currently handle at the
2950 university.&lt;/p&gt;
2951
2952 &lt;p&gt;My test method is simple, and I share it here to get feedback and
2953 perhaps inspire others to test hardware as well. To test, I PXE
2954 install the OS version of choice, and log in as my normal user and run
2955 a few applications and plug in selected pieces of hardware. When
2956 something fail, I make a note about this in the test matrix and move
2957 on. If I have some spare time I try to report the bug to the OS
2958 vendor, but as I only have the machines for a short time, I rarely
2959 have the time to do this for all the problems I find.&lt;/p&gt;
2960
2961 &lt;p&gt;Anyway, to get to the point of this post. Here is the simple tests
2962 I perform on a new model.&lt;/p&gt;
2963
2964 &lt;ul&gt;
2965
2966 &lt;li&gt;Is PXE installation working? I&#39;m testing with RHEL6, Ubuntu Lucid
2967 and Ubuntu Maverik at the moment. If I feel like it, I also test with
2968 RHEL5 and Debian Edu/Squeeze.&lt;/li&gt;
2969
2970 &lt;li&gt;Is X.org working? If the graphical login screen show up after
2971 installation, X.org is working.&lt;/li&gt;
2972
2973 &lt;li&gt;Is hardware accelerated OpenGL working? Running glxgears (in
2974 package mesa-utils on Ubuntu) and writing down the frames per second
2975 reported by the program.&lt;/li&gt;
2976
2977 &lt;li&gt;Is sound working? With Gnome and KDE, a sound is played when
2978 logging in, and if I can hear this the test is successful. If there
2979 are several audio exits on the machine, I try them all and check if
2980 the Gnome/KDE audio mixer can control where to send the sound. I
2981 normally test this by playing
2982 &lt;a href=&quot;http://www.nuug.no/aktiviteter/20101012-chef/ &quot;&gt;a HTML5
2983 video&lt;/a&gt; in Firefox/Iceweasel.&lt;/li&gt;
2984
2985 &lt;li&gt;Is the USB subsystem working? I test this by plugging in a USB
2986 memory stick and see if Gnome/KDE notices this.&lt;/li&gt;
2987
2988 &lt;li&gt;Is the CD/DVD player working? I test this by inserting any CD/DVD
2989 I have lying around, and see if Gnome/KDE notices this.&lt;/li&gt;
2990
2991 &lt;li&gt;Is any built in camera working? Test using cheese, and see if a
2992 picture from the v4l device show up.&lt;/li&gt;
2993
2994 &lt;li&gt;Is bluetooth working? Use the Gnome/KDE browsing tool to see if
2995 any bluetooth devices are discovered. In my office, I normally see a
2996 few.&lt;/li&gt;
2997
2998 &lt;li&gt;For laptops, is the SD or Compaq Flash reader working. I have
2999 memory modules lying around, and stick them in and see if Gnome/KDE
3000 notice this.&lt;/li&gt;
3001
3002 &lt;li&gt;For laptops, is suspend/hibernate working? I&#39;m testing if the
3003 special button work, and if the laptop continue to work after
3004 resume.&lt;/li&gt;
3005
3006 &lt;li&gt;For laptops, is the extra buttons working, like audio level,
3007 adjusting background light, switching on/off external video output,
3008 switching on/off wifi, bluetooth, etc? The set of buttons differ from
3009 laptop to laptop, so I just write down which are working and which are
3010 not.&lt;/li&gt;
3011
3012 &lt;li&gt;Some laptops have smart card readers, finger print readers,
3013 acceleration sensors etc. I rarely test these, as I do not know how
3014 to quickly test if they are working or not, so I only document their
3015 existence.&lt;/li&gt;
3016
3017 &lt;/ul&gt;
3018
3019 &lt;p&gt;By now I suspect you are really curious what the test results are
3020 for the HP machines I am testing. I&#39;m not done yet, so I will report
3021 the test results later. For now I can report that HP 8100 Elite work
3022 fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
3023 and audio fail on RHEL6. Ubuntu Maverik worked with 8440p. As you
3024 can see, I have most machines left to test. One interesting
3025 observation is that Ubuntu Lucid has almost twice the frame rate than
3026 RHEL6 with glxgears. No idea why.&lt;/p&gt;
3027 </description>
3028 </item>
3029
3030 <item>
3031 <title>Which module is loaded for a given PCI and USB device?</title>
3032 <link>http://people.skolelinux.org/pere/blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html</link>
3033 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Which_module_is_loaded_for_a_given_PCI_and_USB_device_.html</guid>
3034 <pubDate>Sun, 23 Jan 2011 00:20:00 +0100</pubDate>
3035 <description>&lt;p&gt;In the
3036 &lt;a href=&quot;http://packages.qa.debian.org/discover-data&quot;&gt;discover-data&lt;/a&gt;
3037 package in Debian, there is a script to report useful information
3038 about the running hardware for use when people report missing
3039 information. One part of this script that I find very useful when
3040 debugging hardware problems, is the part mapping loaded kernel module
3041 to the PCI device it claims. It allow me to quickly see if the kernel
3042 module I expect is driving the hardware I am struggling with. To see
3043 the output, make sure discover-data is installed and run
3044 &lt;tt&gt;/usr/share/bug/discover-data 3&gt;&amp;1&lt;/tt&gt;. The relevant output on
3045 one of my machines like this:&lt;/p&gt;
3046
3047 &lt;pre&gt;
3048 loaded modules:
3049 10de:03eb i2c_nforce2
3050 10de:03f1 ohci_hcd
3051 10de:03f2 ehci_hcd
3052 10de:03f0 snd_hda_intel
3053 10de:03ec pata_amd
3054 10de:03f6 sata_nv
3055 1022:1103 k8temp
3056 109e:036e bttv
3057 109e:0878 snd_bt87x
3058 11ab:4364 sky2
3059 &lt;/pre&gt;
3060
3061 &lt;p&gt;The code in question look like this, slightly modified for
3062 readability and to drop the output to file descriptor 3:&lt;/p&gt;
3063
3064 &lt;pre&gt;
3065 if [ -d /sys/bus/pci/devices/ ] ; then
3066 echo loaded pci modules:
3067 (
3068 cd /sys/bus/pci/devices/
3069 for address in * ; do
3070 if [ -d &quot;$address/driver/module&quot; ] ; then
3071 module=`cd $address/driver/module ; pwd -P | xargs basename`
3072 if grep -q &quot;^$module &quot; /proc/modules ; then
3073 address=$(echo $address |sed s/0000://)
3074 id=`lspci -n -s $address | tail -n 1 | awk &#39;{print $3}&#39;`
3075 echo &quot;$id $module&quot;
3076 fi
3077 fi
3078 done
3079 )
3080 echo
3081 fi
3082 &lt;/pre&gt;
3083
3084 &lt;p&gt;Similar code could be used to extract USB device module
3085 mappings:&lt;/p&gt;
3086
3087 &lt;pre&gt;
3088 if [ -d /sys/bus/usb/devices/ ] ; then
3089 echo loaded usb modules:
3090 (
3091 cd /sys/bus/usb/devices/
3092 for address in * ; do
3093 if [ -d &quot;$address/driver/module&quot; ] ; then
3094 module=`cd $address/driver/module ; pwd -P | xargs basename`
3095 if grep -q &quot;^$module &quot; /proc/modules ; then
3096 address=$(echo $address |sed s/0000://)
3097 id=$(lsusb -s $address | tail -n 1 | awk &#39;{print $6}&#39;)
3098 if [ &quot;$id&quot; ] ; then
3099 echo &quot;$id $module&quot;
3100 fi
3101 fi
3102 fi
3103 done
3104 )
3105 echo
3106 fi
3107 &lt;/pre&gt;
3108
3109 &lt;p&gt;This might perhaps be something to include in other tools as
3110 well.&lt;/p&gt;
3111 </description>
3112 </item>
3113
3114 <item>
3115 <title>Using NVD and CPE to track CVEs in locally maintained software</title>
3116 <link>http://people.skolelinux.org/pere/blog/Using_NVD_and_CPE_to_track_CVEs_in_locally_maintained_software.html</link>
3117 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Using_NVD_and_CPE_to_track_CVEs_in_locally_maintained_software.html</guid>
3118 <pubDate>Fri, 28 Jan 2011 15:40:00 +0100</pubDate>
3119 <description>&lt;p&gt;The last few days I have looked at ways to track open security
3120 issues here at my work with the University of Oslo. My idea is that
3121 it should be possible to use the information about security issues
3122 available on the Internet, and check our locally
3123 maintained/distributed software against this information. It should
3124 allow us to verify that no known security issues are forgotten. The
3125 CVE database listing vulnerabilities seem like a great central point,
3126 and by using the package lists from Debian mapped to CVEs provided by
3127 the testing security team, I believed it should be possible to figure
3128 out which security holes were present in our free software
3129 collection.&lt;/p&gt;
3130
3131 &lt;p&gt;After reading up on the topic, it became obvious that the first
3132 building block is to be able to name software packages in a unique and
3133 consistent way across data sources. I considered several ways to do
3134 this, for example coming up with my own naming scheme like using URLs
3135 to project home pages or URLs to the Freshmeat entries, or using some
3136 existing naming scheme. And it seem like I am not the first one to
3137 come across this problem, as MITRE already proposed and implemented a
3138 solution. Enter the &lt;a href=&quot;http://cpe.mitre.org/index.html&quot;&gt;Common
3139 Platform Enumeration&lt;/a&gt; dictionary, a vocabulary for referring to
3140 software, hardware and other platform components. The CPE ids are
3141 mapped to CVEs in the &lt;a href=&quot;http://web.nvd.nist.gov/&quot;&gt;National
3142 Vulnerability Database&lt;/a&gt;, allowing me to look up know security
3143 issues for any CPE name. With this in place, all I need to do is to
3144 locate the CPE id for the software packages we use at the university.
3145 This is fairly trivial (I google for &#39;cve cpe $package&#39; and check the
3146 NVD entry if a CVE for the package exist).&lt;/p&gt;
3147
3148 &lt;p&gt;To give you an example. The GNU gzip source package have the CPE
3149 name cpe:/a:gnu:gzip. If the old version 1.3.3 was the package to
3150 check out, one could look up
3151 &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
3152 in NVD&lt;/a&gt; and get a list of 6 security holes with public CVE entries.
3153 The most recent one is
3154 &lt;a href=&quot;http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0001&quot;&gt;CVE-2010-0001&lt;/a&gt;,
3155 and at the bottom of the NVD page for this vulnerability the complete
3156 list of affected versions is provided.&lt;/p&gt;
3157
3158 &lt;p&gt;The NVD database of CVEs is also available as a XML dump, allowing
3159 for offline processing of issues. Using this dump, I&#39;ve written a
3160 small script taking a list of CPEs as input and list all CVEs
3161 affecting the packages represented by these CPEs. One give it CPEs
3162 with version numbers as specified above and get a list of open
3163 security issues out.&lt;/p&gt;
3164
3165 &lt;p&gt;Of course for this approach to be useful, the quality of the NVD
3166 information need to be high. For that to happen, I believe as many as
3167 possible need to use and contribute to the NVD database. I notice
3168 RHEL is providing
3169 &lt;a href=&quot;https://www.redhat.com/security/data/metrics/rhsamapcpe.txt&quot;&gt;a
3170 map from CVE to CPE&lt;/a&gt;, indicating that they are using the CPE
3171 information. I&#39;m not aware of Debian and Ubuntu doing the same.&lt;/p&gt;
3172
3173 &lt;p&gt;To get an idea about the quality for free software, I spent some
3174 time making it possible to compare the CVE database from Debian with
3175 the CVE database in NVD. The result look fairly good, but there are
3176 some inconsistencies in NVD (same software package having several
3177 CPEs), and some inaccuracies (NVD not mentioning buggy packages that
3178 Debian believe are affected by a CVE). Hope to find time to improve
3179 the quality of NVD, but that require being able to get in touch with
3180 someone maintaining it. So far my three emails with questions and
3181 corrections have not seen any reply, but I hope contact can be
3182 established soon.&lt;/p&gt;
3183
3184 &lt;p&gt;An interesting application for CPEs is cross platform package
3185 mapping. It would be useful to know which packages in for example
3186 RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and
3187 this would be trivial if all linux distributions provided CPE entries
3188 for their packages.&lt;/p&gt;
3189 </description>
3190 </item>
3191
3192 <item>
3193 <title>A Norwegian FixMyStreet have kept me busy the last few weeks</title>
3194 <link>http://people.skolelinux.org/pere/blog/A_Norwegian_FixMyStreet_have_kept_me_busy_the_last_few_weeks.html</link>
3195 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_Norwegian_FixMyStreet_have_kept_me_busy_the_last_few_weeks.html</guid>
3196 <pubDate>Sun, 3 Apr 2011 22:50:00 +0200</pubDate>
3197 <description>&lt;p&gt;Here is a small update for my English readers. Most of my blog
3198 posts have been in Norwegian the last few weeks, so here is a short
3199 update in English.&lt;/p&gt;
3200
3201 &lt;p&gt;The kids still keep me too busy to get much free software work
3202 done, but I did manage to organise a project to get a Norwegian port
3203 of the British service
3204 &lt;a href=&quot;http://www.fixmystreet.com/&quot;&gt;FixMyStreet&lt;/a&gt; up and running,
3205 and it has been running for a month now. The entire project has been
3206 organised by me and two others. Around Christmas we gathered sponsors
3207 to fund the development work. In January I drafted a contract with
3208 &lt;a href=&quot;http://www.mysociety.org/&quot;&gt;mySociety&lt;/a&gt; on what to develop,
3209 and in February the development took place. Most of it involved
3210 converting the source to use GPS coordinates instead of British
3211 easting/northing, and the resulting code should be a lot easier to get
3212 running in any country by now. The Norwegian
3213 &lt;a href=&quot;http://www.fiksgatami.no/&quot;&gt;FiksGataMi&lt;/a&gt; is using
3214 &lt;a href=&quot;http://www.openstreetmap.org/&quot;&gt;OpenStreetmap&lt;/a&gt; as the map
3215 source and the source for administrative borders in Norway, and
3216 support for this had to be added/fixed.&lt;/p&gt;
3217
3218 &lt;p&gt;The Norwegian version went live March 3th, and we spent the weekend
3219 polishing the system before we announced it March 7th. The system is
3220 running on a KVM instance of Debian/Squeeze, and has seen almost 3000
3221 problem reports in a few weeks. Soon we hope to announce the Android
3222 and iPhone versions making it even easier to report problems with the
3223 public infrastructure.&lt;/p&gt;
3224
3225 &lt;p&gt;Perhaps something to consider for those of you in countries without
3226 such service?&lt;/p&gt;
3227 </description>
3228 </item>
3229
3230 <item>
3231 <title>Perl modules used by FixMyStreet which are missing in Debian/Squeeze</title>
3232 <link>http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html</link>
3233 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Perl_modules_used_by_FixMyStreet_which_are_missing_in_Debian_Squeeze.html</guid>
3234 <pubDate>Tue, 26 Jul 2011 12:25:00 +0200</pubDate>
3235 <description>&lt;p&gt;The Norwegian &lt;a href=&quot;http://www.fiksgatami.no/&quot;&gt;FiksGataMi&lt;/A&gt;
3236 site is build on Debian/Squeeze, and this platform was chosen because
3237 I am most familiar with Debian (being a Debian Developer for around 10
3238 years) because it is the latest stable Debian release which should get
3239 security support for a few years.&lt;/p&gt;
3240
3241 &lt;p&gt;The web service is written in Perl, and depend on some perl modules
3242 that are missing in Debian at the moment. It would be great if these
3243 modules were added to the Debian archive, allowing anyone to set up
3244 their own &lt;a href=&quot;http://www.fixmystreet.com&quot;&gt;FixMyStreet&lt;/a&gt; clone
3245 in their own country using only Debian packages. The list of modules
3246 missing in Debian/Squeeze isn&#39;t very long, and I hope the perl group
3247 will find time to package the 12 modules Catalyst::Plugin::SmartURI,
3248 Catalyst::Plugin::Unicode::Encoding, Catalyst::View::TT, Devel::Hide,
3249 Sort::Key, Statistics::Distributions, Template::Plugin::Comma,
3250 Template::Plugin::DateTime::Format, Term::Size::Any, Term::Size::Perl,
3251 URI::SmartURI and Web::Scraper to make the maintenance of FixMyStreet
3252 easier in the future.&lt;/p&gt;
3253
3254 &lt;p&gt;Thanks to the great tools in Debian, getting the missing modules
3255 installed on my server was a simple call to &#39;cpan2deb Module::Name&#39;
3256 and &#39;dpkg -i&#39; to install the resulting package. But this leave me
3257 with the responsibility of tracking security problems, which I really
3258 do not have time for.&lt;/p&gt;
3259 </description>
3260 </item>
3261
3262 <item>
3263 <title>What is missing in the Debian desktop, or why my parents use Kubuntu</title>
3264 <link>http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html</link>
3265 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html</guid>
3266 <pubDate>Fri, 29 Jul 2011 08:10:00 +0200</pubDate>
3267 <description>&lt;p&gt;While at Debconf11, I have several times during discussions
3268 mentioned the issues I believe should be improved in Debian for its
3269 desktop to be useful for more people. The use case for this is my
3270 parents, which are currently running Kubuntu which solve the
3271 issues.&lt;/p&gt;
3272
3273 &lt;p&gt;I suspect these four missing features are not very hard to
3274 implement. After all, they are present in Ubuntu, so if we wanted to
3275 do this in Debian we would have a source.&lt;/p&gt;
3276
3277 &lt;ol&gt;
3278
3279 &lt;li&gt;&lt;strong&gt;Simple GUI based upgrade of packages.&lt;/strong&gt; When there
3280 are new packages available for upgrades, a icon in the KDE status bar
3281 indicate this, and clicking on it will activate the simple upgrade
3282 tool to handle it. I have no problem guiding both of my parents
3283 through the process over the phone. If a kernel reboot is required,
3284 this too is indicated by the status bars and the upgrade tool. Last
3285 time I checked, nothing with the same features was working in KDE in
3286 Debian.&lt;/li&gt;
3287
3288 &lt;li&gt;&lt;strong&gt;Simple handling of missing Firefox browser
3289 plugins.&lt;/strong&gt; When the browser encounter a MIME type it do not
3290 currently have a handler for, it will ask the user if the system
3291 should search for a package that would add support for this MIME type,
3292 and if the user say yes, the APT sources will be searched for packages
3293 advertising the MIME type in their control file (visible in the
3294 Packages file in the APT archive). If one or more packages are found,
3295 it is a simple click of the mouse to add support for the missing mime
3296 type. If the package require the user to accept some non-free
3297 license, this is explained to the user. The entire process make it
3298 more clear to the user why something do not work in the browser, and
3299 make the chances higher for the user to blame the web page authors and
3300 not the browser for any missing features.&lt;/li&gt;
3301
3302 &lt;li&gt;&lt;strong&gt;Simple handling of missing multimedia codec/format
3303 handlers.&lt;/strong&gt; When the media players encounter a format or codec
3304 it is not supporting, a dialog pop up asking the user if the system
3305 should search for a package that would add support for it. This
3306 happen with things like MP3, Windows Media or H.264. The selection
3307 and installation procedure is very similar to the Firefox browser
3308 plugin handling. This is as far as I know implemented using a
3309 gstreamer hook. The end result is that the user easily get access to
3310 the codecs that are present from the APT archives available, while
3311 explaining more on why a given format is unsupported by Ubuntu.&lt;/li&gt;
3312
3313 &lt;li&gt;&lt;strong&gt;Better browser handling of some MIME types.&lt;/strong&gt; When
3314 displaying a text/plain file in my Debian browser, it will propose to
3315 start emacs to show it. If I remember correctly, when doing the same
3316 in Kunbutu it show the file as a text file in the browser. At least I
3317 know Opera will show text files within the browser. I much prefer the
3318 latter behaviour.&lt;/li&gt;
3319
3320 &lt;/ol&gt;
3321
3322 &lt;p&gt;There are other nice features as well, like the simplified suite
3323 upgrader, but given that I am the one mostly doing the dist-upgrade,
3324 it do not matter much.&lt;/p&gt;
3325
3326 &lt;p&gt;I really hope we could get these features in place for the next
3327 Debian release. It would require the coordinated effort of several
3328 maintainers, but would make the end user experience a lot better.&lt;/p&gt;
3329 </description>
3330 </item>
3331
3332 <item>
3333 <title>What should start from /etc/rcS.d/ in Debian? - almost nothing</title>
3334 <link>http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html</link>
3335 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html</guid>
3336 <pubDate>Sat, 30 Jul 2011 14:00:00 +0200</pubDate>
3337 <description>&lt;p&gt;In the Debian boot system, several packages include scripts that
3338 are started from /etc/rcS.d/. In fact, there is a bite more of them
3339 than make sense, and this causes a few problems. What kind of
3340 problems, you might ask. There are at least two problems. The first
3341 is that it is not possible to recover a machine after switching to
3342 runlevel 1. One need to actually reboot to get the machine back to
3343 the expected state. The other is that single user boot will sometimes
3344 run into problems because some of the subsystems are activated before
3345 the root login is presented, causing problems when trying to recover a
3346 machine from a problem in that subsystem. A minor additional point is
3347 that moving more scripts out of rcS.d/ and into the other rc#.d/
3348 directories will increase the amount of scripts that can run in
3349 parallel during boot, and thus decrease the boot time.&lt;/p&gt;
3350
3351 &lt;p&gt;So, which scripts should start from rcS.d/. In short, only the
3352 scripts that _have_ to execute before the root login prompt is
3353 presented during a single user boot should go there. Everything else
3354 should go into the numeric runlevels. This means things like
3355 lm-sensors, fuse and x11-common should not run from rcS.d, but from
3356 the numeric runlevels. Today in Debian, there are around 115 init.d
3357 scripts that are started from rcS.d/, and most of them should be moved
3358 out. Do your package have one of them? Please help us make single
3359 user and runlevel 1 better by moving it.&lt;/p&gt;
3360
3361 &lt;p&gt;Scripts setting up the screen, keyboard, system partitions
3362 etc. should still be started from rcS.d/, but there is for example no
3363 need to have the network enabled before the single user login prompt
3364 is presented.&lt;/p&gt;
3365
3366 &lt;p&gt;As always, things are not so easy to fix as they sound. To keep
3367 Debian systems working while scripts migrate and during upgrades, the
3368 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
3369 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
3370 and the next ones can only be moved when their dependencies have been
3371 moved first. This migration must be done sequentially while we ensure
3372 that the package system upgrade packages in the right order to keep
3373 the system state correct. This will require some coordination when it
3374 comes to network related packages, but most of the packages with
3375 scripts that should migrate do not have anything in rcS.d/ depending
3376 on them. Some packages have already been updated, like the sudo
3377 package, while others are still left to do. I wish I had time to work
3378 on this myself, but real live constrains make it unlikely that I will
3379 find time to push this forward.&lt;/p&gt;
3380 </description>
3381 </item>
3382
3383 <item>
3384 <title>How is booting into runlevel 1 different from single user boots?</title>
3385 <link>http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html</link>
3386 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html</guid>
3387 <pubDate>Thu, 4 Aug 2011 12:40:00 +0200</pubDate>
3388 <description>&lt;p&gt;Wouter Verhelst have some
3389 &lt;a href=&quot;http://grep.be/blog/en/retorts/pere_kubuntu_boot&quot;&gt;interesting
3390 comments and opinions&lt;/a&gt; on my blog post on
3391 &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
3392 need to clean up /etc/rcS.d/ in Debian&lt;/a&gt; and my blog post about
3393 &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
3394 default KDE desktop in Debian&lt;/a&gt;. I only have time to address one
3395 small piece of his comment now, and though it best to address the
3396 misunderstanding he bring forward:&lt;/p&gt;
3397
3398 &lt;p&gt;&lt;blockquote&gt;
3399 Currently, a system admin has four options: [...] boot to a
3400 single-user system (by adding &#39;single&#39; to the kernel command line;
3401 this runs rcS and rc1 scripts)
3402 &lt;/blockquote&gt;&lt;/p&gt;
3403
3404 &lt;p&gt;This make me believe Wouter believe booting into single user mode
3405 and booting into runlevel 1 is the same. I am not surprised he
3406 believe this, because it would make sense and is a quite sensible
3407 thing to believe. But because the boot in Debian is slightly broken,
3408 runlevel 1 do not work properly and it isn&#39;t the same as single user
3409 mode. I&#39;ll try to explain what is actually happing, but it is a bit
3410 hard to explain.&lt;/p&gt;
3411
3412 &lt;p&gt;Single user mode is defined like this in /etc/inittab:
3413 &quot;&lt;tt&gt;~~:S:wait:/sbin/sulogin&lt;/tt&gt;&quot;. This means the only thing that is
3414 executed in single user mode is sulogin. Single user mode is a boot
3415 state &quot;between&quot; the runlevels, and when booting into single user mode,
3416 only the scripts in /etc/rcS.d/ are executed before the init process
3417 enters the single user state. When switching to runlevel 1, the state
3418 is in fact not ending in runlevel 1, but it passes through runlevel 1
3419 and end up in the single user mode (see /etc/rc1.d/S03single, which
3420 runs &quot;init -t1 S&quot; to switch to single user mode at the end of runlevel
3421 1. It is confusing that the &#39;S&#39; (single user) init mode is not the
3422 mode enabled by /etc/rcS.d/ (which is more like the initial boot
3423 mode).&lt;/p&gt;
3424
3425 &lt;p&gt;This summary might make it clearer. When booting for the first
3426 time into single user mode, the following commands are executed:
3427 &quot;&lt;tt&gt;/etc/init.d/rc S; /sbin/sulogin&lt;/tt&gt;&quot;. When booting into
3428 runlevel 1, the following commands are executed: &quot;&lt;tt&gt;/etc/init.d/rc
3429 S; /etc/init.d/rc 1; /sbin/sulogin&lt;/tt&gt;&quot;. A problem show up when
3430 trying to continue after visiting single user mode. Not all services
3431 are started again as they should, causing the machine to end up in an
3432 unpredicatble state. This is why Debian admins recommend rebooting
3433 after visiting single user mode.&lt;/p&gt;
3434
3435 &lt;p&gt;A similar problem with runlevel 1 is caused by the amount of
3436 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
3437 to runlevel 1, the services started from /etc/rcS.d/ are not properly
3438 stopped when passing through the scripts in /etc/rc1.d/, and not
3439 started again when switching away from runlevel 1 to the runlevels
3440 2-5. I believe the problem is best fixed by moving all the scripts
3441 out of /etc/rcS.d/ that are not &lt;strong&gt;required&lt;/strong&gt; to get a
3442 functioning single user mode during boot.&lt;/p&gt;
3443
3444 &lt;p&gt;I have spent several years investigating the Debian boot system,
3445 and discovered this problem a few years ago. I suspect it originates
3446 from when sysvinit was introduced into Debian, a long time ago.&lt;/p&gt;
3447 </description>
3448 </item>
3449
3450 <item>
3451 <title>Automatically upgrading server firmware on Dell PowerEdge</title>
3452 <link>http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html</link>
3453 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Automatically_upgrading_server_firmware_on_Dell_PowerEdge.html</guid>
3454 <pubDate>Mon, 21 Nov 2011 12:00:00 +0100</pubDate>
3455 <description>&lt;p&gt;At work we have heaps of servers. I believe the total count is
3456 around 1000 at the moment. To be able to get help from the vendors
3457 when something go wrong, we want to keep the firmware on the servers
3458 up to date. If the firmware isn&#39;t the latest and greatest, the
3459 vendors typically refuse to start debugging any problems until the
3460 firmware is upgraded. So before every reboot, we want to upgrade the
3461 firmware, and we would really like everyone handling servers at the
3462 university to do this themselves when they plan to reboot a machine.
3463 For that to happen we at the unix server admin group need to provide
3464 the tools to do so.&lt;/p&gt;
3465
3466 &lt;p&gt;To make firmware upgrading easier, I am working on a script to
3467 fetch and install the latest firmware for the servers we got. Most of
3468 our hardware are from Dell and HP, so I have focused on these servers
3469 so far. This blog post is about the Dell part.&lt;/P&gt;
3470
3471 &lt;p&gt;On the Dell FTP site I was lucky enough to find
3472 &lt;a href=&quot;ftp://ftp.us.dell.com/catalog/Catalog.xml.gz&quot;&gt;an XML file&lt;/a&gt;
3473 with firmware information for all 11th generation servers, listing
3474 which firmware should be used on a given model and where on the FTP
3475 site I can find it. Using a simple perl XML parser I can then
3476 download the shell scripts Dell provides to do firmware upgrades from
3477 within Linux and reboot when all the firmware is primed and ready to
3478 be activated on the first reboot.&lt;/p&gt;
3479
3480 &lt;p&gt;This is the Dell related fragment of the perl code I am working on.
3481 Are there anyone working on similar tools for firmware upgrading all
3482 servers at a site? Please get in touch and lets share resources.&lt;/p&gt;
3483
3484 &lt;p&gt;&lt;pre&gt;
3485 #!/usr/bin/perl
3486 use strict;
3487 use warnings;
3488 use File::Temp qw(tempdir);
3489 BEGIN {
3490 # Install needed RHEL packages if missing
3491 my %rhelmodules = (
3492 &#39;XML::Simple&#39; =&gt; &#39;perl-XML-Simple&#39;,
3493 );
3494 for my $module (keys %rhelmodules) {
3495 eval &quot;use $module;&quot;;
3496 if ($@) {
3497 my $pkg = $rhelmodules{$module};
3498 system(&quot;yum install -y $pkg&quot;);
3499 eval &quot;use $module;&quot;;
3500 }
3501 }
3502 }
3503 my $errorsto = &#39;pere@hungry.com&#39;;
3504
3505 upgrade_dell();
3506
3507 exit 0;
3508
3509 sub run_firmware_script {
3510 my ($opts, $script) = @_;
3511 unless ($script) {
3512 print STDERR &quot;fail: missing script name\n&quot;;
3513 exit 1
3514 }
3515 print STDERR &quot;Running $script\n\n&quot;;
3516
3517 if (0 == system(&quot;sh $script $opts&quot;)) { # FIXME correct exit code handling
3518 print STDERR &quot;success: firmware script ran succcessfully\n&quot;;
3519 } else {
3520 print STDERR &quot;fail: firmware script returned error\n&quot;;
3521 }
3522 }
3523
3524 sub run_firmware_scripts {
3525 my ($opts, @dirs) = @_;
3526 # Run firmware packages
3527 for my $dir (@dirs) {
3528 print STDERR &quot;info: Running scripts in $dir\n&quot;;
3529 opendir(my $dh, $dir) or die &quot;Unable to open directory $dir: $!&quot;;
3530 while (my $s = readdir $dh) {
3531 next if $s =~ m/^\.\.?/;
3532 run_firmware_script($opts, &quot;$dir/$s&quot;);
3533 }
3534 closedir $dh;
3535 }
3536 }
3537
3538 sub download {
3539 my $url = shift;
3540 print STDERR &quot;info: Downloading $url\n&quot;;
3541 system(&quot;wget --quiet \&quot;$url\&quot;&quot;);
3542 }
3543
3544 sub upgrade_dell {
3545 my @dirs;
3546 my $product = `dmidecode -s system-product-name`;
3547 chomp $product;
3548
3549 if ($product =~ m/PowerEdge/) {
3550
3551 # on RHEL, these pacakges are needed by the firwmare upgrade scripts
3552 system(&#39;yum install -y compat-libstdc++-33.i686 libstdc++.i686 libxml2.i686 procmail&#39;);
3553
3554 my $tmpdir = tempdir(
3555 CLEANUP =&gt; 1
3556 );
3557 chdir($tmpdir);
3558 fetch_dell_fw(&#39;catalog/Catalog.xml.gz&#39;);
3559 system(&#39;gunzip Catalog.xml.gz&#39;);
3560 my @paths = fetch_dell_fw_list(&#39;Catalog.xml&#39;);
3561 # -q is quiet, disabling interactivity and reducing console output
3562 my $fwopts = &quot;-q&quot;;
3563 if (@paths) {
3564 for my $url (@paths) {
3565 fetch_dell_fw($url);
3566 }
3567 run_firmware_scripts($fwopts, $tmpdir);
3568 } else {
3569 print STDERR &quot;error: Unsupported Dell model &#39;$product&#39;.\n&quot;;
3570 print STDERR &quot;error: Please report to $errorsto.\n&quot;;
3571 }
3572 chdir(&#39;/&#39;);
3573 } else {
3574 print STDERR &quot;error: Unsupported Dell model &#39;$product&#39;.\n&quot;;
3575 print STDERR &quot;error: Please report to $errorsto.\n&quot;;
3576 }
3577 }
3578
3579 sub fetch_dell_fw {
3580 my $path = shift;
3581 my $url = &quot;ftp://ftp.us.dell.com/$path&quot;;
3582 download($url);
3583 }
3584
3585 # Using ftp://ftp.us.dell.com/catalog/Catalog.xml.gz, figure out which
3586 # firmware packages to download from Dell. Only work for Linux
3587 # machines and 11th generation Dell servers.
3588 sub fetch_dell_fw_list {
3589 my $filename = shift;
3590
3591 my $product = `dmidecode -s system-product-name`;
3592 chomp $product;
3593 my ($mybrand, $mymodel) = split(/\s+/, $product);
3594
3595 print STDERR &quot;Finding firmware bundles for $mybrand $mymodel\n&quot;;
3596
3597 my $xml = XMLin($filename);
3598 my @paths;
3599 for my $bundle (@{$xml-&gt;{SoftwareBundle}}) {
3600 my $brand = $bundle-&gt;{TargetSystems}-&gt;{Brand}-&gt;{Display}-&gt;{content};
3601 my $model = $bundle-&gt;{TargetSystems}-&gt;{Brand}-&gt;{Model}-&gt;{Display}-&gt;{content};
3602 my $oscode;
3603 if (&quot;ARRAY&quot; eq ref $bundle-&gt;{TargetOSes}-&gt;{OperatingSystem}) {
3604 $oscode = $bundle-&gt;{TargetOSes}-&gt;{OperatingSystem}[0]-&gt;{osCode};
3605 } else {
3606 $oscode = $bundle-&gt;{TargetOSes}-&gt;{OperatingSystem}-&gt;{osCode};
3607 }
3608 if ($mybrand eq $brand &amp;&amp; $mymodel eq $model &amp;&amp; &quot;LIN&quot; eq $oscode)
3609 {
3610 @paths = map { $_-&gt;{path} } @{$bundle-&gt;{Contents}-&gt;{Package}};
3611 }
3612 }
3613 for my $component (@{$xml-&gt;{SoftwareComponent}}) {
3614 my $componenttype = $component-&gt;{ComponentType}-&gt;{value};
3615
3616 # Drop application packages, only firmware and BIOS
3617 next if &#39;APAC&#39; eq $componenttype;
3618
3619 my $cpath = $component-&gt;{path};
3620 for my $path (@paths) {
3621 if ($cpath =~ m%/$path$%) {
3622 push(@paths, $cpath);
3623 }
3624 }
3625 }
3626 return @paths;
3627 }
3628 &lt;/pre&gt;
3629
3630 &lt;p&gt;The code is only tested on RedHat Enterprise Linux, but I suspect
3631 it could work on other platforms with some tweaking. Anyone know a
3632 index like Catalog.xml is available from HP for HP servers? At the
3633 moment I maintain a similar list manually and it is quickly getting
3634 outdated.&lt;/p&gt;
3635 </description>
3636 </item>
3637
3638 </channel>
3639 </rss>