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