]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Petter Reinholdtsen</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>First Jessie based Debian Edu released (alpha0)</title>
11 <link>http://people.skolelinux.org/pere/blog/First_Jessie_based_Debian_Edu_released__alpha0_.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_Jessie_based_Debian_Edu_released__alpha0_.html</guid>
13 <pubDate>Mon, 27 Oct 2014 20:40:00 +0100</pubDate>
14 <description>&lt;p&gt;I am happy to report that I just sent out
15 &lt;a href=&quot;https://lists.debian.org/debian-edu-announce/2014/10/msg00000.html&quot;&gt;this
16 announcement&lt;/a&gt;:&lt;/p&gt;
17
18 &lt;pre&gt;
19 The Debian Edu Team is pleased to announce the release of Debian Edu
20 Jessie 8.0+edu0~alpha0
21
22 Debian Edu is a complete operating system for schools. Through its
23 various installation profiles you can install servers, workstations
24 and laptops which will work together on the school network. With
25 Debian Edu, the teachers themselves or their technical support can
26 roll out a complete multi-user multi-machine study environment within
27 hours or a few days. Debian Edu comes with hundreds of applications
28 pre-installed, but you can always add more packages from Debian.
29
30 For those who want to give Debian Edu Jessie a try, download and
31 installation instructions are available, including detailed
32 instructions in the manual[1] explaining the first steps, such as
33 setting up a network or adding users. Please note that the password
34 for the user your prompted for during installation must have a length
35 of at least 5 characters!
36
37 [1] &amp;lt;URL: &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Documentation/Jessie&quot;&gt;https://wiki.debian.org/DebianEdu/Documentation/Jessie&lt;/a&gt; &amp;gt;
38
39 Would you like to give your school&#39;s computer a longer life? Are you
40 tired of sneaker administration, running from computer to computer
41 reinstalling the operating system? Would you like to administrate all
42 the computers in your school using only a couple of hours every week?
43 Check out Debian Edu Jessie!
44
45 Skolelinux is used by at least two hundred schools all over the world,
46 mostly in Germany and Norway.
47
48 About Debian Edu and Skolelinux
49 ===============================
50
51 Debian Edu, also known as Skolelinux[2], is a Linux distribution based
52 on Debian providing an out-of-the box environment of a completely
53 configured school network. Immediately after installation a school
54 server running all services needed for a school network is set up just
55 waiting for users and machines being added via GOsa², a comfortable
56 Web-UI. A netbooting environment is prepared using PXE, so after
57 initial installation of the main server from CD or USB stick all other
58 machines can be installed via the network. The provided school server
59 provides LDAP database and Kerberos authentication service,
60 centralized home directories, DHCP server, web proxy and many other
61 services. The desktop contains more than 60 educational software
62 packages[3] and more are available from the Debian archive, and
63 schools can choose between KDE, Gnome, LXDE, Xfce and MATE desktop
64 environment.
65
66 [2] &amp;lt;URL: &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;http://www.skolelinux.org/&lt;/a&gt; &amp;gt;
67 [3] &amp;lt;URL: &lt;a href=&quot;http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html&quot;&gt;http://people.skolelinux.org/pere/blog/Educational_applications_included_in_Debian_Edu___Skolelinux__the_screenshot_collection____.html&lt;/a&gt; &amp;gt;
68
69 Full release notes and manual
70 =============================
71
72 Below the download URLs there is a list of some of the new features
73 and bugfixes of Debian Edu 8.0+edu0~alpha0 Codename Jessie. The full
74 list is part of the manual. (See the feature list in the manual[4] for
75 the English version.) For some languages manual translations are
76 available, see the manual translation overview[5].
77
78 [4] &amp;lt;URL: &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features&quot;&gt;https://wiki.debian.org/DebianEdu/Documentation/Jessie/Features&lt;/a&gt; &amp;gt;
79 [5] &amp;lt;URL: &lt;a href=&quot;http://maintainer.skolelinux.org/debian-edu-doc/&quot;&gt;http://maintainer.skolelinux.org/debian-edu-doc/&lt;/a&gt; &amp;gt;
80
81 Where to get it
82 ---------------
83
84 To download the multiarch netinstall CD release (624 MiB) you can use
85
86 * &lt;a href=&quot;ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&quot;&gt;ftp://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&lt;/a&gt;
87 * &lt;a href=&quot;http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&quot;&gt;http://ftp.skolelinux.org/skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso&lt;/a&gt;
88 * rsync -avzP ftp.skolelinux.org::skolelinux-cd/debian-edu-8.0+edu0~alpha0-CD.iso .
89
90 The SHA1SUM of this image is: 361188818e036ce67280a572f757de82ebfeb095
91
92 New features for Debian Edu 8.0+edu0~alpha0 Codename Jessie released 2014-10-27
93 ===============================================================================
94
95
96 Installation changes
97 --------------------
98
99 * PXE installation now installs firmware automatically for the hardware present.
100
101 Software updates
102 ----------------
103
104 Everything which is new in Debian Jessie 8.0, eg:
105
106 * Linux kernel 3.16.x
107 * Desktop environments KDE &quot;Plasma&quot; 4.11.12, GNOME 3.14, Xfce 4.10,
108 LXDE 0.5.6 and MATE 1.8 (KDE &quot;Plasma&quot; is installed by default; to
109 choose one of the others see manual.)
110 * the browsers Iceweasel 31 ESR and Chromium 38
111 * !LibreOffice 4.3.3
112 * GOsa 2.7.4
113 * LTSP 5.5.4
114 * CUPS print system 1.7.5
115 * new boot framework: systemd
116 * Educational toolbox GCompris 14.07
117 * Music creator Rosegarden 14.02
118 * Image editor Gimp 2.8.14
119 * Virtual stargazer Stellarium 0.13.0
120 * golearn 0.9
121 * tuxpaint 0.9.22
122 * New version of debian-installer from Debian Jessie.
123 * Debian Jessie includes about 42000 packages available for
124 installation.
125 * More information about Debian Jessie 8.0 is provided in the release
126 notes[6] and the installation manual[7].
127
128 [6] &amp;lt;URL: &lt;a href=&quot;http://www.debian.org/releases/jessie/releasenotes&quot;&gt;http://www.debian.org/releases/jessie/releasenotes&lt;/a&gt; &amp;gt;
129 [7] &amp;lt;URL: &lt;a href=&quot;http://www.debian.org/releases/jessie/installmanual&quot;&gt;http://www.debian.org/releases/jessie/installmanual&lt;/a&gt; &amp;gt;
130
131 Fixed bugs
132 ----------
133
134 * Inserting incorrect DNS information in Gosa will no longer break
135 DNS completely, but instead stop DNS updates until the incorrect
136 information is corrected (Debian bug #710362)
137 * and many others.
138
139 Documentation and translation updates
140 -------------------------------------
141
142 * The Debian Edu Jessie Manual is fully translated to German, French,
143 Italian, Danish and Dutch. Partly translated versions exist for
144 Norwegian Bokmal and Spanish.
145
146 Other changes
147 -------------
148
149 * Due to new Squid settings, powering off or rebooting the main
150 server takes more time.
151 * To manage printers localhost:631 has to be used, currently www:631
152 doesn&#39;t work.
153
154 Regressions / known problems
155 ----------------------------
156
157 * Installing LTSP chroot fails with a bug related to eatmydata about
158 exim4-config failing to run its postinst (see Debian bug #765694
159 and Debian bug #762103).
160 * Munin collection is not properly configured on clients (Debian bug
161 #764594). The fix is available in a newer version of munin-node.
162 * PXE setup for Main Server and Thin Client Server setup does not
163 work when installing on a machine without direct Internet access.
164 Will be fixed when Debian bug #766960 is fixed in Jessie.
165
166 See the status page[8] for the complete list.
167
168 [8] &amp;lt;URL: &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Status/Jessie&quot;&gt;https://wiki.debian.org/DebianEdu/Status/Jessie&lt;/a&gt; &amp;gt;
169
170 How to report bugs
171 ------------------
172
173 &amp;lt;URL: &lt;a href=&quot;http://wiki.debian.org/DebianEdu/HowTo/ReportBugs&quot;&gt;http://wiki.debian.org/DebianEdu/HowTo/ReportBugs&lt;/a&gt; &amp;gt;
174
175 About Debian
176 ============
177
178 The Debian Project was founded in 1993 by Ian Murdock to be a truly
179 free community project. Since then the project has grown to be one of
180 the largest and most influential open source projects. Thousands of
181 volunteers from all over the world work together to create and
182 maintain Debian software. Available in 70 languages, and supporting a
183 huge range of computer types, Debian calls itself the universal
184 operating system.
185
186 Contact Information
187 For further information, please visit the Debian web pages[9] or send
188 mail to press@debian.org.
189
190 [9] &amp;lt;URL: &lt;a href=&quot;http://www.debian.org/&quot;&gt;http://www.debian.org/&lt;/a&gt; &amp;gt;
191 &lt;/pre&gt;
192 </description>
193 </item>
194
195 <item>
196 <title>I spent last weekend recording MakerCon Nordic</title>
197 <link>http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html</link>
198 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/I_spent_last_weekend_recording_MakerCon_Nordic.html</guid>
199 <pubDate>Thu, 23 Oct 2014 23:00:00 +0200</pubDate>
200 <description>&lt;p&gt;I spent last weekend at &lt;a href=&quot;http://www.makercon.no/&quot;&gt;Makercon
201 Nordic&lt;/a&gt;, a great conference and workshop for makers in Norway and
202 the surrounding countries. I had volunteered on behalf of the
203 Norwegian Unix Users Group (NUUG) to video record the talks, and we
204 had a great and exhausting time recording the entire day, two days in
205 a row. There were only two of us, Hans-Petter and me, and we used the
206 regular video equipment for NUUG, with a
207 &lt;a href=&quot;http://dvswitch.alioth.debian.org/wiki/&quot;&gt;dvswitch&lt;/a&gt;, a
208 camera and a VGA to DV convert box, and mixed video and slides
209 live.&lt;/p&gt;
210
211 &lt;p&gt;Hans-Petter did the post-processing, consisting of uploading the
212 around 180 GiB of raw video to Youtube, and the result is
213 &lt;a href=&quot;https://www.youtube.com/user/MakerConNordic/&quot;&gt;now becoming
214 public&lt;/a&gt; on the MakerConNordic account. The videos have the license
215 NUUG always use on our recordings, which is
216 &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/no/&quot;&gt;Creative
217 Commons Navngivelse-Del på samme vilkår 3.0 Norge&lt;/a&gt;. Many great
218 talks available. Check it out! :)&lt;/p&gt;
219 </description>
220 </item>
221
222 <item>
223 <title>listadmin, the quick way to moderate mailman lists - nice free software</title>
224 <link>http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html</link>
225 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/listadmin__the_quick_way_to_moderate_mailman_lists___nice_free_software.html</guid>
226 <pubDate>Wed, 22 Oct 2014 20:00:00 +0200</pubDate>
227 <description>&lt;p&gt;If you ever had to moderate a mailman list, like the ones on
228 alioth.debian.org, you know the web interface is fairly slow to
229 operate. First you visit one web page, enter the moderation password
230 and get a new page shown with a list of all the messages to moderate
231 and various options for each email address. This take a while for
232 every list you moderate, and you need to do it regularly to do a good
233 job as a list moderator. But there is a quick alternative,
234 &lt;a href=&quot;http://heim.ifi.uio.no/kjetilho/hacks/#listadmin&quot;&gt;the
235 listadmin program&lt;/a&gt;. It allow you to check lists for new messages
236 to moderate in a fraction of a second. Here is a test run on two
237 lists I recently took over:&lt;/p&gt;
238
239 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
240 % time listadmin xiph
241 fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
242 fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue
243
244 real 0m1.709s
245 user 0m0.232s
246 sys 0m0.012s
247 %
248 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
249
250 &lt;p&gt;In 1.7 seconds I had checked two mailing lists and confirmed that
251 there are no message in the moderation queue. Every morning I
252 currently moderate 68 mailman lists, and it normally take around two
253 minutes. When I took over the two pkg-xiph lists above a few days
254 ago, there were 400 emails waiting in the moderator queue. It took me
255 less than 15 minutes to process them all using the listadmin
256 program.&lt;/p&gt;
257
258 &lt;p&gt;If you install
259 &lt;a href=&quot;https://tracker.debian.org/pkg/listadmin&quot;&gt;the listadmin
260 package&lt;/a&gt; from Debian and create a file &lt;tt&gt;~/.listadmin.ini&lt;/tt&gt;
261 with content like this, the moderation task is a breeze:&lt;/p&gt;
262
263 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
264 username username@example.org
265 spamlevel 23
266 default discard
267 discard_if_reason &quot;Posting restricted to members only. Remove us from your mail list.&quot;
268
269 password secret
270 adminurl https://{domain}/mailman/admindb/{list}
271 mailman-list@lists.example.com
272
273 password hidden
274 other-list@otherserver.example.org
275 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
276
277 &lt;p&gt;There are other options to set as well. Check the manual page to
278 learn the details.&lt;/p&gt;
279
280 &lt;p&gt;If you are forced to moderate lists on a mailman installation where
281 the SSL certificate is self signed or not properly signed by a
282 generally accepted signing authority, you can set a environment
283 variable when calling listadmin to disable SSL verification:&lt;/p&gt;
284
285 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
286 PERL_LWP_SSL_VERIFY_HOSTNAME=0 listadmin
287 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
288
289 &lt;p&gt;If you want to moderate a subset of the lists you take care of, you
290 can provide an argument to the listadmin script like I do in the
291 initial screen dump (the xiph argument). Using an argument, only
292 lists matching the argument string will be processed. This make it
293 quick to accept messages if you notice the moderation request in your
294 email.&lt;/p&gt;
295
296 &lt;p&gt;Without the listadmin program, I would never be the moderator of 68
297 mailing lists, as I simply do not have time to spend on that if the
298 process was any slower. The listadmin program have saved me hours of
299 time I could spend elsewhere over the years. It truly is nice free
300 software.&lt;/p&gt;
301
302 &lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
303 activities, please send Bitcoin donations to my address
304 &lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&amp;label=PetterReinholdtsenBlog&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
305
306 &lt;p&gt;Update 2014-10-27: Added missing &#39;username&#39; statement in
307 configuration example. Also, I&#39;ve been told that the
308 PERL_LWP_SSL_VERIFY_HOSTNAME=0 setting do not work for everyone. Not
309 sure why.&lt;/p&gt;
310 </description>
311 </item>
312
313 <item>
314 <title>Debian Jessie, PXE and automatic firmware installation</title>
315 <link>http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html</link>
316 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_Jessie__PXE_and_automatic_firmware_installation.html</guid>
317 <pubDate>Fri, 17 Oct 2014 14:10:00 +0200</pubDate>
318 <description>&lt;p&gt;When PXE installing laptops with Debian, I often run into the
319 problem that the WiFi card require some firmware to work properly.
320 And it has been a pain to fix this using preseeding in Debian.
321 Normally something more is needed. But thanks to
322 &lt;a href=&quot;https://packages.qa.debian.org/i/isenkram.html&quot;&gt;my isenkram
323 package&lt;/a&gt; and its recent tasksel extension, it has now become easy
324 to do this using simple preseeding.&lt;/p&gt;
325
326 &lt;p&gt;The isenkram-cli package provide tasksel tasks which will install
327 firmware for the hardware found in the machine (actually, requested by
328 the kernel modules for the hardware). (It can also install user space
329 programs supporting the hardware detected, but that is not the focus
330 of this story.)&lt;/p&gt;
331
332 &lt;p&gt;To get this working in the default installation, two preeseding
333 values are needed. First, the isenkram-cli package must be installed
334 into the target chroot (aka the hard drive) before tasksel is executed
335 in the pkgsel step of the debian-installer system. This is done by
336 preseeding the base-installer/includes debconf value to include the
337 isenkram-cli package. The package name is next passed to debootstrap
338 for installation. With the isenkram-cli package in place, tasksel
339 will automatically use the isenkram tasks to detect hardware specific
340 packages for the machine being installed and install them, because
341 isenkram-cli contain tasksel tasks.&lt;/p&gt;
342
343 &lt;p&gt;Second, one need to enable the non-free APT repository, because
344 most firmware unfortunately is non-free. This is done by preseeding
345 the apt-mirror-setup step. This is unfortunate, but for a lot of
346 hardware it is the only option in Debian.&lt;/p&gt;
347
348 &lt;p&gt;The end result is two lines needed in your preseeding file to get
349 firmware installed automatically by the installer:&lt;/p&gt;
350
351 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
352 base-installer base-installer/includes string isenkram-cli
353 apt-mirror-setup apt-setup/non-free boolean true
354 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
355
356 &lt;p&gt;The current version of isenkram-cli in testing/jessie will install
357 both firmware and user space packages when using this method. It also
358 do not work well, so use version 0.15 or later. Installing both
359 firmware and user space packages might give you a bit more than you
360 want, so I decided to split the tasksel task in two, one for firmware
361 and one for user space programs. The firmware task is enabled by
362 default, while the one for user space programs is not. This split is
363 implemented in the package currently in unstable.&lt;/p&gt;
364
365 &lt;p&gt;If you decide to give this a go, please let me know (via email) how
366 this recipe work for you. :)&lt;/p&gt;
367
368 &lt;p&gt;So, I bet you are wondering, how can this work. First and
369 foremost, it work because tasksel is modular, and driven by whatever
370 files it find in /usr/lib/tasksel/ and /usr/share/tasksel/. So the
371 isenkram-cli package place two files for tasksel to find. First there
372 is the task description file (/usr/share/tasksel/descs/isenkram.desc):&lt;/p&gt;
373
374 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
375 Task: isenkram-packages
376 Section: hardware
377 Description: Hardware specific packages (autodetected by isenkram)
378 Based on the detected hardware various hardware specific packages are
379 proposed.
380 Test-new-install: show show
381 Relevance: 8
382 Packages: for-current-hardware
383
384 Task: isenkram-firmware
385 Section: hardware
386 Description: Hardware specific firmware packages (autodetected by isenkram)
387 Based on the detected hardware various hardware specific firmware
388 packages are proposed.
389 Test-new-install: mark show
390 Relevance: 8
391 Packages: for-current-hardware-firmware
392 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
393
394 &lt;p&gt;The key parts are Test-new-install which indicate how the task
395 should be handled and the Packages line referencing to a script in
396 /usr/lib/tasksel/packages/. The scripts use other scripts to get a
397 list of packages to install. The for-current-hardware-firmware script
398 look like this to list relevant firmware for the machine:
399
400 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
401 #!/bin/sh
402 #
403 PATH=/usr/sbin:$PATH
404 export PATH
405 isenkram-autoinstall-firmware -l
406 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
407
408 &lt;p&gt;With those two pieces in place, the firmware is installed by
409 tasksel during the normal d-i run. :)&lt;/p&gt;
410
411 &lt;p&gt;If you want to test what tasksel will install when isenkram-cli is
412 installed, run &lt;tt&gt;DEBIAN_PRIORITY=critical tasksel --test
413 --new-install&lt;/tt&gt; to get the list of packages that tasksel would
414 install.&lt;/p&gt;
415
416 &lt;p&gt;&lt;a href=&quot;https://wiki.debian.org/DebianEdu/&quot;&gt;Debian Edu&lt;/a&gt; will be
417 pilots in testing this feature, as isenkram is used there now to
418 install firmware, replacing the earlier scripts.&lt;/p&gt;
419 </description>
420 </item>
421
422 <item>
423 <title>Ubuntu used to show the bread prizes at ICA Storo</title>
424 <link>http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html</link>
425 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Ubuntu_used_to_show_the_bread_prizes_at_ICA_Storo.html</guid>
426 <pubDate>Sat, 4 Oct 2014 15:20:00 +0200</pubDate>
427 <description>&lt;p&gt;Today I came across an unexpected Ubuntu boot screen. Above the
428 bread shelf on the ICA shop at Storo in Oslo, the grub menu of Ubuntu
429 with Linux kernel 3.2.0-23 (ie probably version 12.04 LTS) was stuck
430 on a screen normally showing the bread types and prizes:&lt;/p&gt;
431
432 &lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;70%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2014-10-04-ubuntu-ica-storo-crop.jpeg&quot;&gt;&lt;/p&gt;
433
434 &lt;p&gt;If it had booted as it was supposed to, I would never had known
435 about this hidden Linux installation. It is interesting what
436 &lt;a href=&quot;http://revealingerrors.com/&quot;&gt;errors can reveal&lt;/a&gt;.&lt;/p&gt;
437 </description>
438 </item>
439
440 <item>
441 <title>New lsdvd release version 0.17 is ready</title>
442 <link>http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html</link>
443 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html</guid>
444 <pubDate>Sat, 4 Oct 2014 08:40:00 +0200</pubDate>
445 <description>&lt;p&gt;The &lt;a href=&quot;https://sourceforge.net/p/lsdvd/&quot;&gt;lsdvd project&lt;/a&gt;
446 got a new set of developers a few weeks ago, after the original
447 developer decided to step down and pass the project to fresh blood.
448 This project is now maintained by Petter Reinholdtsen and Steve
449 Dibb.&lt;/p&gt;
450
451 &lt;p&gt;I just wrapped up
452 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/mailman/message/32896061/&quot;&gt;a
453 new lsdvd release&lt;/a&gt;, available in git or from
454 &lt;a href=&quot;https://sourceforge.net/projects/lsdvd/files/lsdvd/&quot;&gt;the
455 download page&lt;/a&gt;. This is the changelog dated 2014-10-03 for version
456 0.17.&lt;/p&gt;
457
458 &lt;ul&gt;
459
460 &lt;li&gt;Ignore &#39;phantom&#39; audio, subtitle tracks&lt;/li&gt;
461 &lt;li&gt;Check for garbage in the program chains, which indicate that a track is
462 non-existant, to work around additional copy protection&lt;/li&gt;
463 &lt;li&gt;Fix displaying content type for audio tracks, subtitles&lt;/li&gt;
464 &lt;li&gt;Fix pallete display of first entry&lt;/li&gt;
465 &lt;li&gt;Fix include orders&lt;/li&gt;
466 &lt;li&gt;Ignore read errors in titles that would not be displayed anyway&lt;/li&gt;
467 &lt;li&gt;Fix the chapter count&lt;/li&gt;
468 &lt;li&gt;Make sure the array size and the array limit used when initialising
469 the palette size is the same.&lt;/li&gt;
470 &lt;li&gt;Fix array printing.&lt;/li&gt;
471 &lt;li&gt;Correct subsecond calculations.&lt;/li&gt;
472 &lt;li&gt;Add sector information to the output format.&lt;/li&gt;
473 &lt;li&gt;Clean up code to be closer to ANSI C and compile without warnings
474 with more GCC compiler warnings.&lt;/li&gt;
475
476 &lt;/ul&gt;
477
478 &lt;p&gt;This change bring together patches for lsdvd in use in various
479 Linux and Unix distributions, as well as patches submitted to the
480 project the last nine years. Please check it out. :)&lt;/p&gt;
481 </description>
482 </item>
483
484 <item>
485 <title>How to test Debian Edu Jessie despite some fatal problems with the installer</title>
486 <link>http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html</link>
487 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html</guid>
488 <pubDate>Fri, 26 Sep 2014 12:20:00 +0200</pubDate>
489 <description>&lt;p&gt;The &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux
490 project&lt;/a&gt; provide a Linux solution for schools, including a
491 powerful desktop with education software, a central server providing
492 web pages, user database, user home directories, central login and PXE
493 boot of both clients without disk and the installation to install Debian
494 Edu on machines with disk (and a few other services perhaps to small
495 to mention here). We in the Debian Edu team are currently working on
496 the Jessie based version, trying to get everything in shape before the
497 freeze, to avoid having to maintain our own package repository in the
498 future. The
499 &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Status/Jessie&quot;&gt;current
500 status&lt;/a&gt; can be seen on the Debian wiki, and there is still heaps of
501 work left. Some fatal problems block testing, breaking the installer,
502 but it is possible to work around these to get anyway. Here is a
503 recipe on how to get the installation limping along.&lt;/p&gt;
504
505 &lt;p&gt;First, download the test ISO via
506 &lt;a href=&quot;ftp://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso&quot;&gt;ftp&lt;/a&gt;,
507 &lt;a href=&quot;http://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso&quot;&gt;http&lt;/a&gt;
508 or rsync (use
509 ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso).
510 The ISO build was broken on Tuesday, so we do not get a new ISO every
511 12 hours or so, but thankfully the ISO we already got we are able to
512 install with some tweaking.&lt;/p&gt;
513
514 &lt;p&gt;When you get to the Debian Edu profile question, go to tty2
515 (use Alt-Ctrl-F2), run&lt;/p&gt;
516
517 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
518 nano /usr/bin/edu-eatmydata-install
519 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
520
521 &lt;p&gt;and add &#39;exit 0&#39; as the second line, disabling the eatmydata
522 optimization. Return to the installation, select the profile you want
523 and continue. Without this change, exim4-config will fail to install
524 due to a known bug in eatmydata.&lt;/p&gt;
525
526 &lt;p&gt;When you get the grub question at the end, answer /dev/sda (or if
527 this do not work, figure out what your correct value would be. All my
528 test machines need /dev/sda, so I have no advice if it do not fit
529 your need.&lt;/p&gt;
530
531 &lt;p&gt;If you installed a profile including a graphical desktop, log in as
532 root after the initial boot from hard drive, and install the
533 education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce
534 or mate. If you want several desktop options, install more than one
535 metapackage. Once this is done, reboot and you should have a working
536 graphical login screen. This workaround should no longer be needed
537 once the education-tasks package version 1.801 enter testing in two
538 days.&lt;/p&gt;
539
540 &lt;p&gt;I believe the ISO build will start working on two days when the new
541 tasksel package enter testing and Steve McIntyre get a chance to
542 update the debian-cd git repository. The eatmydata, grub and desktop
543 issues are already fixed in unstable and testing, and should show up
544 on the ISO as soon as the ISO build start working again. Well the
545 eatmydata optimization is really just disabled. The proper fix
546 require an upload by the eatmydata maintainer applying the patch
547 provided in bug &lt;a href=&quot;https://bugs.debian.org/702711&quot;&gt;#702711&lt;/a&gt;.
548 The rest have proper fixes in unstable.&lt;/p&gt;
549
550 &lt;p&gt;I hope this get you going with the installation testing, as we are
551 quickly running out of time trying to get our Jessie based
552 installation ready before the distribution freeze in a month.&lt;/p&gt;
553 </description>
554 </item>
555
556 <item>
557 <title>Suddenly I am the new upstream of the lsdvd command line tool</title>
558 <link>http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html</link>
559 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html</guid>
560 <pubDate>Thu, 25 Sep 2014 11:20:00 +0200</pubDate>
561 <description>&lt;p&gt;I use the &lt;a href=&quot;https://sourceforge.net/p/lsdvd/&quot;&gt;lsdvd tool&lt;/a&gt;
562 to handle my fairly large DVD collection. It is a nice command line
563 tool to get details about a DVD, like title, tracks, track length,
564 etc, in XML, Perl or human readable format. But lsdvd have not seen
565 any new development since 2006 and had a few irritating bugs affecting
566 its use with some DVDs. Upstream seemed to be dead, and in January I
567 sent a small probe asking for a version control repository for the
568 project, without any reply. But I use it regularly and would like to
569 get &lt;a href=&quot;https://packages.qa.debian.org/lsdvd&quot;&gt;an updated version
570 into Debian&lt;/a&gt;. So two weeks ago I tried harder to get in touch with
571 the project admin, and after getting a reply from him explaining that
572 he was no longer interested in the project, I asked if I could take
573 over. And yesterday, I became project admin.&lt;/p&gt;
574
575 &lt;p&gt;I&#39;ve been in touch with a Gentoo developer and the Debian
576 maintainer interested in joining forces to maintain the upstream
577 project, and I hope we can get a new release out fairly quickly,
578 collecting the patches spread around on the internet into on place.
579 I&#39;ve added the relevant Debian patches to the freshly created git
580 repository, and expect the Gentoo patches to make it too. If you got
581 a DVD collection and care about command line tools, check out
582 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/git/ci/master/tree/&quot;&gt;the git source&lt;/a&gt; and join
583 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/mailman/&quot;&gt;the project mailing
584 list&lt;/a&gt;. :)&lt;/p&gt;
585 </description>
586 </item>
587
588 <item>
589 <title>Hva henger under skibrua over E16 på Sollihøgda?</title>
590 <link>http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html</link>
591 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html</guid>
592 <pubDate>Sun, 21 Sep 2014 09:50:00 +0200</pubDate>
593 <description>&lt;p&gt;Rundt omkring i Oslo og Østlandsområdet henger det bokser over
594 veiene som jeg har lurt på hva gjør. De har ut fra plassering og
595 vinkling sett ut som bokser som sniffer ut et eller annet fra
596 forbipasserende trafikk, men det har vært uklart for meg hva det er de
597 leser av. Her om dagen tok jeg bilde av en slik boks som henger under
598 &lt;a href=&quot;http://www.openstreetmap.no/?zoom=19&amp;mlat=59.96396&amp;mlon=10.34443&amp;layers=B00000&quot;&gt;ei
599 skibru på Sollihøgda&lt;/a&gt;:&lt;/p&gt;
600
601 &lt;p align=&quot;center&quot;&gt;&lt;img width=&quot;60%&quot; src=&quot;http://people.skolelinux.org/pere/blog/images/2014-09-13-kapsch-sollihogda-crop.jpeg&quot;&gt;&lt;/p&gt;
602
603 &lt;p&gt;Boksen er tydelig merket «Kapsch &gt;&gt;&gt;», logoen til
604 &lt;a href=&quot;http://www.kapsch.net/&quot;&gt;det sveitsiske selskapet Kapsch&lt;/a&gt; som
605 blant annet lager sensorsystemer for veitrafikk. Men de lager mye
606 forskjellig, og jeg kjente ikke igjen boksen på utseendet etter en
607 kjapp titt på produktlista til selskapet.&lt;/p&gt;
608
609 &lt;p&gt;I og med at boksen henger over veien E16, en riksvei vedlikeholdt
610 av Statens Vegvesen, så antok jeg at det burde være mulig å bruke
611 REST-API-et som gir tilgang til vegvesenets database over veier,
612 skilter og annet veirelatert til å finne ut hva i alle dager dette
613 kunne være. De har både
614 &lt;a href=&quot;https://www.vegvesen.no/nvdb/api/dokumentasjon/datakatalog&quot;&gt;en
615 datakatalog&lt;/a&gt; og
616 &lt;a href=&quot;https://www.vegvesen.no/nvdb/api/dokumentasjon/sok&quot;&gt;et
617 søk&lt;/a&gt;, der en kan søke etter ulike typer oppføringer innen for et
618 gitt geografisk område. Jeg laget et enkelt shell-script for å hente
619 ut antall av en gitt type innenfor området skibrua dekker, og listet
620 opp navnet på typene som ble funnet. Orket ikke slå opp hvordan
621 URL-koding av aktuelle strenger kunne gjøres mer generisk, og brukte
622 en stygg sed-linje i stedet.&lt;/p&gt;
623
624 &lt;blockquote&gt;&lt;pre&gt;
625 #!/bin/sh
626 urlmap() {
627 sed \
628 -e &#39;s/ / /g&#39; -e &#39;s/{/%7B/g&#39; \
629 -e &#39;s/}/%7D/g&#39; -e &#39;s/\[/%5B/g&#39; \
630 -e &#39;s/\]/%5D/g&#39; -e &#39;s/ /%20/g&#39; \
631 -e &#39;s/,/%2C/g&#39; -e &#39;s/\&quot;/%22/g&#39; \
632 -e &#39;s/:/%3A/g&#39;
633 }
634
635 lookup() {
636 url=&quot;$1&quot;
637 curl -s -H &#39;Accept: application/vnd.vegvesen.nvdb-v1+xml&#39; \
638 &quot;https://www.vegvesen.no/nvdb/api$url&quot; | xmllint --format -
639 }
640
641 for id in $(seq 1 874) ; do
642 search=&quot;{
643 lokasjon: {
644 bbox: \&quot;10.34425,59.96386,10.34458,59.96409\&quot;,
645 srid: \&quot;WGS84\&quot;
646 },
647 objektTyper: [{
648 id: $id, antall: 10
649 }]
650 }&quot;
651
652 query=/sok?kriterie=$(echo $search | urlmap)
653 if lookup &quot;$query&quot; |
654 grep -q &#39;&amp;lt;totaltAntallReturnert&gt;0&amp;lt;&#39;
655 then
656 :
657 else
658 echo $id
659 lookup &quot;/datakatalog/objekttyper/$id&quot; |grep &#39;^ &amp;lt;navn&gt;&#39;
660 fi
661 done
662
663 exit 0
664 &lt;/pre&gt;&lt;/blockquote&gt;
665
666 Aktuelt ID-område 1-874 var riktig i datakatalogen da jeg laget
667 scriptet. Det vil endre seg over tid. Skriptet listet så opp
668 aktuelle typer i og rundt skibrua:
669
670 &lt;blockquote&gt;&lt;pre&gt;
671 5
672 &amp;lt;navn&gt;Rekkverk&amp;lt;/navn&gt;
673 14
674 &amp;lt;navn&gt;Rekkverksende&amp;lt;/navn&gt;
675 47
676 &amp;lt;navn&gt;Trafikklomme&amp;lt;/navn&gt;
677 49
678 &amp;lt;navn&gt;Trafikkøy&amp;lt;/navn&gt;
679 60
680 &amp;lt;navn&gt;Bru&amp;lt;/navn&gt;
681 79
682 &amp;lt;navn&gt;Stikkrenne/Kulvert&amp;lt;/navn&gt;
683 80
684 &amp;lt;navn&gt;Grøft, åpen&amp;lt;/navn&gt;
685 86
686 &amp;lt;navn&gt;Belysningsstrekning&amp;lt;/navn&gt;
687 95
688 &amp;lt;navn&gt;Skiltpunkt&amp;lt;/navn&gt;
689 96
690 &amp;lt;navn&gt;Skiltplate&amp;lt;/navn&gt;
691 98
692 &amp;lt;navn&gt;Referansestolpe&amp;lt;/navn&gt;
693 99
694 &amp;lt;navn&gt;Vegoppmerking, langsgående&amp;lt;/navn&gt;
695 105
696 &amp;lt;navn&gt;Fartsgrense&amp;lt;/navn&gt;
697 106
698 &amp;lt;navn&gt;Vinterdriftsstrategi&amp;lt;/navn&gt;
699 172
700 &amp;lt;navn&gt;Trafikkdeler&amp;lt;/navn&gt;
701 241
702 &amp;lt;navn&gt;Vegdekke&amp;lt;/navn&gt;
703 293
704 &amp;lt;navn&gt;Breddemåling&amp;lt;/navn&gt;
705 301
706 &amp;lt;navn&gt;Kantklippareal&amp;lt;/navn&gt;
707 318
708 &amp;lt;navn&gt;Snø-/isrydding&amp;lt;/navn&gt;
709 445
710 &amp;lt;navn&gt;Skred&amp;lt;/navn&gt;
711 446
712 &amp;lt;navn&gt;Dokumentasjon&amp;lt;/navn&gt;
713 452
714 &amp;lt;navn&gt;Undergang&amp;lt;/navn&gt;
715 528
716 &amp;lt;navn&gt;Tverrprofil&amp;lt;/navn&gt;
717 532
718 &amp;lt;navn&gt;Vegreferanse&amp;lt;/navn&gt;
719 534
720 &amp;lt;navn&gt;Region&amp;lt;/navn&gt;
721 535
722 &amp;lt;navn&gt;Fylke&amp;lt;/navn&gt;
723 536
724 &amp;lt;navn&gt;Kommune&amp;lt;/navn&gt;
725 538
726 &amp;lt;navn&gt;Gate&amp;lt;/navn&gt;
727 539
728 &amp;lt;navn&gt;Transportlenke&amp;lt;/navn&gt;
729 540
730 &amp;lt;navn&gt;Trafikkmengde&amp;lt;/navn&gt;
731 570
732 &amp;lt;navn&gt;Trafikkulykke&amp;lt;/navn&gt;
733 571
734 &amp;lt;navn&gt;Ulykkesinvolvert enhet&amp;lt;/navn&gt;
735 572
736 &amp;lt;navn&gt;Ulykkesinvolvert person&amp;lt;/navn&gt;
737 579
738 &amp;lt;navn&gt;Politidistrikt&amp;lt;/navn&gt;
739 583
740 &amp;lt;navn&gt;Vegbredde&amp;lt;/navn&gt;
741 591
742 &amp;lt;navn&gt;Høydebegrensning&amp;lt;/navn&gt;
743 592
744 &amp;lt;navn&gt;Nedbøyningsmåling&amp;lt;/navn&gt;
745 597
746 &amp;lt;navn&gt;Støy-luft, Strekningsdata&amp;lt;/navn&gt;
747 601
748 &amp;lt;navn&gt;Oppgravingsdata&amp;lt;/navn&gt;
749 602
750 &amp;lt;navn&gt;Oppgravingslag&amp;lt;/navn&gt;
751 603
752 &amp;lt;navn&gt;PMS-parsell&amp;lt;/navn&gt;
753 604
754 &amp;lt;navn&gt;Vegnormalstrekning&amp;lt;/navn&gt;
755 605
756 &amp;lt;navn&gt;Værrelatert strekning&amp;lt;/navn&gt;
757 616
758 &amp;lt;navn&gt;Feltstrekning&amp;lt;/navn&gt;
759 617
760 &amp;lt;navn&gt;Adressepunkt&amp;lt;/navn&gt;
761 626
762 &amp;lt;navn&gt;Friksjonsmåleserie&amp;lt;/navn&gt;
763 629
764 &amp;lt;navn&gt;Vegdekke, flatelapping&amp;lt;/navn&gt;
765 639
766 &amp;lt;navn&gt;Kurvatur, horisontalelement&amp;lt;/navn&gt;
767 640
768 &amp;lt;navn&gt;Kurvatur, vertikalelement&amp;lt;/navn&gt;
769 642
770 &amp;lt;navn&gt;Kurvatur, vertikalpunkt&amp;lt;/navn&gt;
771 643
772 &amp;lt;navn&gt;Statistikk, trafikkmengde&amp;lt;/navn&gt;
773 647
774 &amp;lt;navn&gt;Statistikk, vegbredde&amp;lt;/navn&gt;
775 774
776 &amp;lt;navn&gt;Nedbøyningsmåleserie&amp;lt;/navn&gt;
777 775
778 &amp;lt;navn&gt;ATK, influensstrekning&amp;lt;/navn&gt;
779 794
780 &amp;lt;navn&gt;Systemobjekt&amp;lt;/navn&gt;
781 810
782 &amp;lt;navn&gt;Vinterdriftsklasse&amp;lt;/navn&gt;
783 821
784 &amp;lt;navn&gt;Funksjonell vegklasse&amp;lt;/navn&gt;
785 825
786 &amp;lt;navn&gt;Kurvatur, stigning&amp;lt;/navn&gt;
787 838
788 &amp;lt;navn&gt;Vegbredde, beregnet&amp;lt;/navn&gt;
789 862
790 &amp;lt;navn&gt;Reisetidsregistreringspunkt&amp;lt;/navn&gt;
791 871
792 &amp;lt;navn&gt;Bruksklasse&amp;lt;/navn&gt;
793 &lt;/pre&gt;&lt;/blockquote&gt;
794
795 &lt;p&gt;Av disse ser ID 775 og 862 mest relevant ut. ID 775 antar jeg
796 refererer til fotoboksen som står like ved brua, mens
797 «Reisetidsregistreringspunkt» kanskje kan være boksen som henger der.
798 Hvordan finner jeg så ut hva dette kan være for noe. En titt på
799 &lt;a href=&quot;http://labs.vegdata.no/nvdb-datakatalog/862-Reisetidsregistreringspunkt/&quot;&gt;datakatalogsiden
800 for ID 862/Reisetidsregistreringspunkt&lt;/a&gt; viser at det er finnes 53
801 slike målere i Norge, og hvor de er plassert, men gir ellers få
802 detaljer. Det er plassert 40 på østlandet og 13 i Trondheimsregionen.
803 Men siden nevner «AutoPASS», og hvis en slår opp oppføringen på
804 Sollihøgda nevner den «Ciber AS» som ID for eksternt system. (Kan det
805 være snakk om
806 &lt;a href=&quot;http://www.proff.no/selskap/ciber-norge-as/oslo/internettdesign-og-programmering/Z0I3KMF4/&quot;&gt;Ciber
807 Norge AS&lt;/a&gt;, et selskap eid av Ciber Europe Bv?) Et nettsøk på
808 «Ciber AS autopass» fører meg til en artikkel fra NRK Trøndelag i
809 2013 med tittel
810 «&lt;a href=&quot;http://www.nrk.no/trondelag/sjekk-dette-hvis-du-vil-unnga-ko-1.11327947&quot;&gt;Sjekk
811 dette hvis du vil unngå kø&lt;/a&gt;». Artikkelen henviser til vegvesenets
812 nettside
813 &lt;a href=&quot;http://www.reisetider.no/reisetid/forside.html&quot;&gt;reisetider.no&lt;/a&gt;
814 som har en
815 &lt;a href=&quot;http://www.reisetider.no/reisetid/omrade.html?omrade=5&quot;&gt;kartside
816 for Østlandet&lt;/a&gt; som viser at det måles mellom Sandvika og Sollihøgda.
817 Det kan dermed se ut til at jeg har funnet ut hva boksene gjør.&lt;/p&gt;
818
819 &lt;p&gt;Hvis det stemmer, så er dette bokser som leser av AutoPASS-ID-en
820 til alle passerende biler med AutoPASS-brikke, og dermed gjør det mulig
821 for de som kontrollerer boksene å holde rede på hvor en gitt bil er
822 når den passerte et slikt målepunkt. NRK-artikkelen forteller at
823 denne informasjonen i dag kun brukes til å koble to
824 AutoPASS-brikkepasseringer passeringer sammen for å beregne
825 reisetiden, og at bruken er godkjent av Datatilsynet. Det er desverre
826 ikke mulig for en sjåfør som passerer under en slik boks å kontrollere
827 at AutoPASS-ID-en kun brukes til dette i dag og i fremtiden.&lt;/p&gt;
828
829 &lt;p&gt;I tillegg til denne type AutoPASS-sniffere vet jeg at det også
830 finnes mange automatiske stasjoner som tar betalt pr. passering (aka
831 bomstasjoner), og der lagres informasjon om tid, sted og bilnummer i
832 10 år. Finnes det andre slike sniffere plassert ut på veiene?&lt;/p&gt;
833
834 &lt;p&gt;Personlig har jeg valgt å ikke bruke AutoPASS-brikke, for å gjøre
835 det vanskeligere og mer kostbart for de som vil invadere privatsfæren
836 og holde rede på hvor bilen min beveger seg til enhver tid. Jeg håper
837 flere vil gjøre det samme, selv om det gir litt høyere private
838 utgifter (dyrere bompassering). Vern om privatsfæren koster i disse
839 dager.&lt;/p&gt;
840
841 &lt;p&gt;Takk til Jan Kristian Jensen i Statens Vegvesen for tips om
842 dokumentasjon på vegvesenets REST-API.&lt;/p&gt;
843 </description>
844 </item>
845
846 <item>
847 <title>Speeding up the Debian installer using eatmydata and dpkg-divert</title>
848 <link>http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html</link>
849 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html</guid>
850 <pubDate>Tue, 16 Sep 2014 14:00:00 +0200</pubDate>
851 <description>&lt;p&gt;The &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt; installer could be
852 a lot quicker. When we install more than 2000 packages in
853 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux / Debian Edu&lt;/a&gt; using
854 tasksel in the installer, unpacking the binary packages take forever.
855 A part of the slow I/O issue was discussed in
856 &lt;a href=&quot;https://bugs.debian.org/613428&quot;&gt;bug #613428&lt;/a&gt; about too
857 much file system sync-ing done by dpkg, which is the package
858 responsible for unpacking the binary packages. Other parts (like code
859 executed by postinst scripts) might also sync to disk during
860 installation. All this sync-ing to disk do not really make sense to
861 me. If the machine crash half-way through, I start over, I do not try
862 to salvage the half installed system. So the failure sync-ing is
863 supposed to protect against, hardware or system crash, is not really
864 relevant while the installer is running.&lt;/p&gt;
865
866 &lt;p&gt;A few days ago, I thought of a way to get rid of all the file
867 system sync()-ing in a fairly non-intrusive way, without the need to
868 change the code in several packages. The idea is not new, but I have
869 not heard anyone propose the approach using dpkg-divert before. It
870 depend on the small and clever package
871 &lt;a href=&quot;https://packages.qa.debian.org/eatmydata&quot;&gt;eatmydata&lt;/a&gt;, which
872 uses LD_PRELOAD to replace the system functions for syncing data to
873 disk with functions doing nothing, thus allowing programs to live
874 dangerous while speeding up disk I/O significantly. Instead of
875 modifying the implementation of dpkg, apt and tasksel (which are the
876 packages responsible for selecting, fetching and installing packages),
877 it occurred to me that we could just divert the programs away, replace
878 them with a simple shell wrapper calling
879 &quot;eatmydata&amp;nbsp;$program&amp;nbsp;$@&quot;, to get the same effect.
880 Two days ago I decided to test the idea, and wrapped up a simple
881 implementation for the Debian Edu udeb.&lt;/p&gt;
882
883 &lt;p&gt;The effect was stunning. In my first test it reduced the running
884 time of the pkgsel step (installing tasks) from 64 to less than 44
885 minutes (20 minutes shaved off the installation) on an old Dell
886 Latitude D505 machine. I am not quite sure what the optimised time
887 would have been, as I messed up the testing a bit, causing the debconf
888 priority to get low enough for two questions to pop up during
889 installation. As soon as I saw the questions I moved the installation
890 along, but do not know how long the question were holding up the
891 installation. I did some more measurements using Debian Edu Jessie,
892 and got these results. The time measured is the time stamp in
893 /var/log/syslog between the &quot;pkgsel: starting tasksel&quot; and the
894 &quot;pkgsel: finishing up&quot; lines, if you want to do the same measurement
895 yourself. In Debian Edu, the tasksel dialog do not show up, and the
896 timing thus do not depend on how quickly the user handle the tasksel
897 dialog.&lt;/p&gt;
898
899 &lt;p&gt;&lt;table&gt;
900
901 &lt;tr&gt;
902 &lt;th&gt;Machine/setup&lt;/th&gt;
903 &lt;th&gt;Original tasksel&lt;/th&gt;
904 &lt;th&gt;Optimised tasksel&lt;/th&gt;
905 &lt;th&gt;Reduction&lt;/th&gt;
906 &lt;/tr&gt;
907
908 &lt;tr&gt;
909 &lt;td&gt;Latitude D505 Main+LTSP LXDE&lt;/td&gt;
910 &lt;td&gt;64 min (07:46-08:50)&lt;/td&gt;
911 &lt;td&gt;&lt;44 min (11:27-12:11)&lt;/td&gt;
912 &lt;td&gt;&gt;20 min 18%&lt;/td&gt;
913 &lt;/tr&gt;
914
915 &lt;tr&gt;
916 &lt;td&gt;Latitude D505 Roaming LXDE&lt;/td&gt;
917 &lt;td&gt;57 min (08:48-09:45)&lt;/td&gt;
918 &lt;td&gt;34 min (07:43-08:17)&lt;/td&gt;
919 &lt;td&gt;23 min 40%&lt;/td&gt;
920 &lt;/tr&gt;
921
922 &lt;tr&gt;
923 &lt;td&gt;Latitude D505 Minimal&lt;/td&gt;
924 &lt;td&gt;22 min (10:37-10:59)&lt;/td&gt;
925 &lt;td&gt;11 min (11:16-11:27)&lt;/td&gt;
926 &lt;td&gt;11 min 50%&lt;/td&gt;
927 &lt;/tr&gt;
928
929 &lt;tr&gt;
930 &lt;td&gt;Thinkpad X200 Minimal&lt;/td&gt;
931 &lt;td&gt;6 min (08:19-08:25)&lt;/td&gt;
932 &lt;td&gt;4 min (08:04-08:08)&lt;/td&gt;
933 &lt;td&gt;2 min 33%&lt;/td&gt;
934 &lt;/tr&gt;
935
936 &lt;tr&gt;
937 &lt;td&gt;Thinkpad X200 Roaming KDE&lt;/td&gt;
938 &lt;td&gt;19 min (09:21-09:40)&lt;/td&gt;
939 &lt;td&gt;15 min (10:25-10:40)&lt;/td&gt;
940 &lt;td&gt;4 min 21%&lt;/td&gt;
941 &lt;/tr&gt;
942
943 &lt;/table&gt;&lt;/p&gt;
944
945 &lt;p&gt;The test is done using a netinst ISO on a USB stick, so some of the
946 time is spent downloading packages. The connection to the Internet
947 was 100Mbit/s during testing, so downloading should not be a
948 significant factor in the measurement. Download typically took a few
949 seconds to a few minutes, depending on the amount of packages being
950 installed.&lt;/p&gt;
951
952 &lt;p&gt;The speedup is implemented by using two hooks in
953 &lt;a href=&quot;https://www.debian.org/devel/debian-installer/&quot;&gt;Debian
954 Installer&lt;/a&gt;, the pre-pkgsel.d hook to set up the diverts, and the
955 finish-install.d hook to remove the divert at the end of the
956 installation. I picked the pre-pkgsel.d hook instead of the
957 post-base-installer.d hook because I test using an ISO without the
958 eatmydata package included, and the post-base-installer.d hook in
959 Debian Edu can only operate on packages included in the ISO. The
960 negative effect of this is that I am unable to activate this
961 optimization for the kernel installation step in d-i. If the code is
962 moved to the post-base-installer.d hook, the speedup would be larger
963 for the entire installation.&lt;/p&gt;
964
965 &lt;p&gt;I&#39;ve implemented this in the
966 &lt;a href=&quot;https://packages.qa.debian.org/debian-edu-install&quot;&gt;debian-edu-install&lt;/a&gt;
967 git repository, and plan to provide the optimization as part of the
968 Debian Edu installation. If you want to test this yourself, you can
969 create two files in the installer (or in an udeb). One shell script
970 need do go into /usr/lib/pre-pkgsel.d/, with content like this:&lt;/p&gt;
971
972 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
973 #!/bin/sh
974 set -e
975 . /usr/share/debconf/confmodule
976 info() {
977 logger -t my-pkgsel &quot;info: $*&quot;
978 }
979 error() {
980 logger -t my-pkgsel &quot;error: $*&quot;
981 }
982 override_install() {
983 apt-install eatmydata || true
984 if [ -x /target/usr/bin/eatmydata ] ; then
985 for bin in dpkg apt-get aptitude tasksel ; do
986 file=/usr/bin/$bin
987 # Test that the file exist and have not been diverted already.
988 if [ -f /target$file ] ; then
989 info &quot;diverting $file using eatmydata&quot;
990 printf &quot;#!/bin/sh\neatmydata $bin.distrib \&quot;\$@\&quot;\n&quot; \
991 &gt; /target$file.edu
992 chmod 755 /target$file.edu
993 in-target dpkg-divert --package debian-edu-config \
994 --rename --quiet --add $file
995 ln -sf ./$bin.edu /target$file
996 else
997 error &quot;unable to divert $file, as it is missing.&quot;
998 fi
999 done
1000 else
1001 error &quot;unable to find /usr/bin/eatmydata after installing the eatmydata pacage&quot;
1002 fi
1003 }
1004
1005 override_install
1006 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
1007
1008 &lt;p&gt;To clean up, another shell script should go into
1009 /usr/lib/finish-install.d/ with code like this:
1010
1011 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
1012 #! /bin/sh -e
1013 . /usr/share/debconf/confmodule
1014 error() {
1015 logger -t my-finish-install &quot;error: $@&quot;
1016 }
1017 remove_install_override() {
1018 for bin in dpkg apt-get aptitude tasksel ; do
1019 file=/usr/bin/$bin
1020 if [ -x /target$file.edu ] ; then
1021 rm /target$file
1022 in-target dpkg-divert --package debian-edu-config \
1023 --rename --quiet --remove $file
1024 rm /target$file.edu
1025 else
1026 error &quot;Missing divert for $file.&quot;
1027 fi
1028 done
1029 sync # Flush file buffers before continuing
1030 }
1031
1032 remove_install_override
1033 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
1034
1035 &lt;p&gt;In Debian Edu, I placed both code fragments in a separate script
1036 edu-eatmydata-install and call it from the pre-pkgsel.d and
1037 finish-install.d scripts.&lt;/p&gt;
1038
1039 &lt;p&gt;By now you might ask if this change should get into the normal
1040 Debian installer too? I suspect it should, but am not sure the
1041 current debian-installer coordinators find it useful enough. It also
1042 depend on the side effects of the change. I&#39;m not aware of any, but I
1043 guess we will see if the change is safe after some more testing.
1044 Perhaps there is some package in Debian depending on sync() and
1045 fsync() having effect? Perhaps it should go into its own udeb, to
1046 allow those of us wanting to enable it to do so without affecting
1047 everyone.&lt;/p&gt;
1048
1049 &lt;p&gt;Update 2014-09-24: Since a few days ago, enabling this optimization
1050 will break installation of all programs using gnutls because of
1051 &lt;a href=&quot;https://bugs.debian.org/702711&quot;&gt;bug #702711&lt;/a&gt;. An updated
1052 eatmydata package in Debian will solve it.&lt;/p&gt;
1053
1054 &lt;p&gt;Update 2014-10-17: The bug mentioned above is fixed in testing and
1055 the optimization work again. And I have discovered that the
1056 dpkg-divert trick is not really needed and implemented a slightly
1057 simpler approach as part of the debian-edu-install package. See
1058 tools/edu-eatmydata-install in the source package.&lt;/p&gt;
1059 </description>
1060 </item>
1061
1062 </channel>
1063 </rss>