]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2014/09/09.rss
Generated.
[homepage.git] / blog / archive / 2014 / 09 / 09.rss
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
3 <channel>
4 <title>Petter Reinholdtsen - Entries from September 2014</title>
5 <description>Entries from September 2014</description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7
8
9 <item>
10 <title>How to test Debian Edu Jessie despite some fatal problems with the installer</title>
11 <link>http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html</guid>
13 <pubDate>Fri, 26 Sep 2014 12:20:00 +0200</pubDate>
14 <description>&lt;p&gt;The &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu / Skolelinux
15 project&lt;/a&gt; provide a Linux solution for schools, including a
16 powerful desktop with education software, a central server providing
17 web pages, user database, user home directories, central login and PXE
18 boot of both clients without disk and the installation to install Debian
19 Edu on machines with disk (and a few other services perhaps to small
20 to mention here). We in the Debian Edu team are currently working on
21 the Jessie based version, trying to get everything in shape before the
22 freeze, to avoid having to maintain our own package repository in the
23 future. The
24 &lt;a href=&quot;https://wiki.debian.org/DebianEdu/Status/Jessie&quot;&gt;current
25 status&lt;/a&gt; can be seen on the Debian wiki, and there is still heaps of
26 work left. Some fatal problems block testing, breaking the installer,
27 but it is possible to work around these to get anyway. Here is a
28 recipe on how to get the installation limping along.&lt;/p&gt;
29
30 &lt;p&gt;First, download the test ISO via
31 &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;,
32 &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;
33 or rsync (use
34 ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso).
35 The ISO build was broken on Tuesday, so we do not get a new ISO every
36 12 hours or so, but thankfully the ISO we got is able to install with
37 some tweaking.&lt;/p&gt;
38
39 &lt;p&gt;When you get to the Debian Edu profile question, go to tty2
40 (use Alt-Ctrl-F2), run&lt;/p&gt;
41
42 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
43 nano /usr/bin/edu-eatmydata-install
44 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
45
46 &lt;p&gt;and add &#39;exit 0&#39; as the second line, disabling the eatmydata
47 optimization. Return to the installation, select the profile you want
48 and continue. Without this change, exim4-config will fail to install
49 due to a known bug in eatmydata.&lt;/p&gt;
50
51 &lt;p&gt;When you get the grub question at the end, answer /dev/sda (or if
52 this do not work, figure out what your correct value would be. All my
53 test machines need /dev/sda, so I have no advice if it do not fit
54 your need.&lt;/p&gt;
55
56 &lt;p&gt;If you installed a profile including a graphical desktop, log in as
57 root after the initial boot from hard drive, and install the
58 education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce
59 or mate. If you want several desktop options, install more than one
60 metapackage. Once this is done, reboot and you should have a working
61 graphical login screen. This should no longer be needed once the
62 education-tasks package version 1.801 enter testing in two days.&lt;/p&gt;
63
64 &lt;p&gt;I believe the ISO build will start working on two days when the new
65 tasksel package enter testing and Steve McIntyre get a chance to
66 update the debian-cd git repository. The eatmydata, grub and desktop
67 issues are already fixed in unstable and testing, and should show up
68 on the ISO as soon as the ISO build start working again. Well the
69 eatmydata optimization is really just disabled. The proper fix
70 require an upload by the eatmydata maintainer applying the patch
71 provided in bug &lt;a href=&quot;https://bugs.debian.org/702711&quot;&gt;#702711&lt;/a&gt;.
72 The rest have proper fixes in unstable.&lt;/p&gt;
73
74 &lt;p&gt;I hope this get you going with the installation testing, as we are
75 quickly running out of time trying to get our Jessie based
76 installation ready before the distribution freeze in a month.&lt;/p&gt;
77 </description>
78 </item>
79
80 <item>
81 <title>Suddenly I am the new upstream of the lsdvd command line tool</title>
82 <link>http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html</link>
83 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html</guid>
84 <pubDate>Thu, 25 Sep 2014 11:20:00 +0200</pubDate>
85 <description>&lt;p&gt;I use the &lt;a href=&quot;https://sourceforge.net/p/lsdvd/&quot;&gt;lsdvd tool&lt;/a&gt;
86 to handle my fairly large DVD collection. It is a nice command line
87 tool to get details about a DVD, like title, tracks, track length,
88 etc, in XML, Perl or human readable format. But lsdvd have not seen
89 any new development since 2006 and had a few irritating bugs affecting
90 its use with some DVDs. Upstream seemed to be dead, and in January I
91 sent a small probe asking for a version control repository for the
92 project, without any reply. But I use it regularly and would like to
93 get &lt;a href=&quot;https://packages.qa.debian.org/lsdvd&quot;&gt;an updated version
94 into Debian&lt;/a&gt;. So two weeks ago I tried harder to get in touch with
95 the project admin, and after getting a reply from him explaining that
96 he was no longer interested in the project, I asked if I could take
97 over. And yesterday, I became project admin.&lt;/p&gt;
98
99 &lt;p&gt;I&#39;ve been in touch with a Gentoo developer and the Debian
100 maintainer interested in joining forces to maintain the upstream
101 project, and I hope we can get a new release out fairly quickly,
102 collecting the patches spread around on the internet into on place.
103 I&#39;ve added the relevant Debian patches to the freshly created git
104 repository, and expect the Gentoo patches to make it too. If you got
105 a DVD collection and care about command line tools, check out
106 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/git/ci/master/tree/&quot;&gt;the git source&lt;/a&gt; and join
107 &lt;a href=&quot;https://sourceforge.net/p/lsdvd/mailman/&quot;&gt;the project mailing
108 list&lt;/a&gt;. :)&lt;/p&gt;
109 </description>
110 </item>
111
112 <item>
113 <title>Hva henger under skibrua over E16 på Sollihøgda?</title>
114 <link>http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html</link>
115 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html</guid>
116 <pubDate>Sun, 21 Sep 2014 09:50:00 +0200</pubDate>
117 <description>&lt;p&gt;Rundt omkring i Oslo og Østlandsområdet henger det bokser over
118 veiene som jeg har lurt på hva gjør. De har ut fra plassering og
119 vinkling sett ut som bokser som sniffer ut et eller annet fra
120 forbipasserende trafikk, men det har vært uklart for meg hva det er de
121 leser av. Her om dagen tok jeg bilde av en slik boks som henger under
122 &lt;a href=&quot;http://www.openstreetmap.no/?zoom=19&amp;mlat=59.96396&amp;mlon=10.34443&amp;layers=B00000&quot;&gt;ei
123 skibru på Sollihøgda&lt;/a&gt;:&lt;/p&gt;
124
125 &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;
126
127 &lt;p&gt;Boksen er tydelig merket «Kapsch &gt;&gt;&gt;», logoen til
128 &lt;a href=&quot;http://www.kapsch.net/&quot;&gt;det sveitsiske selskapet Kapsch&lt;/a&gt; som
129 blant annet lager sensorsystemer for veitrafikk. Men de lager mye
130 forskjellig, og jeg kjente ikke igjen boksen på utseendet etter en
131 kjapp titt på produktlista til selskapet.&lt;/p&gt;
132
133 &lt;p&gt;I og med at boksen henger over veien E16, en riksvei vedlikeholdt
134 av Statens Vegvesen, så antok jeg at det burde være mulig å bruke
135 REST-API-et som gir tilgang til vegvesenets database over veier,
136 skilter og annet veirelatert til å finne ut hva i alle dager dette
137 kunne være. De har både
138 &lt;a href=&quot;https://www.vegvesen.no/nvdb/api/dokumentasjon/datakatalog&quot;&gt;en
139 datakatalog&lt;/a&gt; og
140 &lt;a href=&quot;https://www.vegvesen.no/nvdb/api/dokumentasjon/sok&quot;&gt;et
141 søk&lt;/a&gt;, der en kan søke etter ulike typer oppføringer innen for et
142 gitt geografisk område. Jeg laget et enkelt shell-script for å hente
143 ut antall av en gitt type innenfor området skibrua dekker, og listet
144 opp navnet på typene som ble funnet. Orket ikke slå opp hvordan
145 URL-koding av aktuelle strenger kunne gjøres mer generisk, og brukte
146 en stygg sed-linje i stedet.&lt;/p&gt;
147
148 &lt;blockquote&gt;&lt;pre&gt;
149 #!/bin/sh
150 urlmap() {
151 sed \
152 -e &#39;s/ / /g&#39; -e &#39;s/{/%7B/g&#39; \
153 -e &#39;s/}/%7D/g&#39; -e &#39;s/\[/%5B/g&#39; \
154 -e &#39;s/\]/%5D/g&#39; -e &#39;s/ /%20/g&#39; \
155 -e &#39;s/,/%2C/g&#39; -e &#39;s/\&quot;/%22/g&#39; \
156 -e &#39;s/:/%3A/g&#39;
157 }
158
159 lookup() {
160 url=&quot;$1&quot;
161 curl -s -H &#39;Accept: application/vnd.vegvesen.nvdb-v1+xml&#39; \
162 &quot;https://www.vegvesen.no/nvdb/api$url&quot; | xmllint --format -
163 }
164
165 for id in $(seq 1 874) ; do
166 search=&quot;{
167 lokasjon: {
168 bbox: \&quot;10.34425,59.96386,10.34458,59.96409\&quot;,
169 srid: \&quot;WGS84\&quot;
170 },
171 objektTyper: [{
172 id: $id, antall: 10
173 }]
174 }&quot;
175
176 query=/sok?kriterie=$(echo $search | urlmap)
177 if lookup &quot;$query&quot; |
178 grep -q &#39;&amp;lt;totaltAntallReturnert&gt;0&amp;lt;&#39;
179 then
180 :
181 else
182 echo $id
183 lookup &quot;/datakatalog/objekttyper/$id&quot; |grep &#39;^ &amp;lt;navn&gt;&#39;
184 fi
185 done
186
187 exit 0
188 &lt;/pre&gt;&lt;/blockquote&gt;
189
190 Aktuelt ID-område 1-874 var riktig i datakatalogen da jeg laget
191 scriptet. Det vil endre seg over tid. Skriptet listet så opp
192 aktuelle typer i og rundt skibrua:
193
194 &lt;blockquote&gt;&lt;pre&gt;
195 5
196 &amp;lt;navn&gt;Rekkverk&amp;lt;/navn&gt;
197 14
198 &amp;lt;navn&gt;Rekkverksende&amp;lt;/navn&gt;
199 47
200 &amp;lt;navn&gt;Trafikklomme&amp;lt;/navn&gt;
201 49
202 &amp;lt;navn&gt;Trafikkøy&amp;lt;/navn&gt;
203 60
204 &amp;lt;navn&gt;Bru&amp;lt;/navn&gt;
205 79
206 &amp;lt;navn&gt;Stikkrenne/Kulvert&amp;lt;/navn&gt;
207 80
208 &amp;lt;navn&gt;Grøft, åpen&amp;lt;/navn&gt;
209 86
210 &amp;lt;navn&gt;Belysningsstrekning&amp;lt;/navn&gt;
211 95
212 &amp;lt;navn&gt;Skiltpunkt&amp;lt;/navn&gt;
213 96
214 &amp;lt;navn&gt;Skiltplate&amp;lt;/navn&gt;
215 98
216 &amp;lt;navn&gt;Referansestolpe&amp;lt;/navn&gt;
217 99
218 &amp;lt;navn&gt;Vegoppmerking, langsgående&amp;lt;/navn&gt;
219 105
220 &amp;lt;navn&gt;Fartsgrense&amp;lt;/navn&gt;
221 106
222 &amp;lt;navn&gt;Vinterdriftsstrategi&amp;lt;/navn&gt;
223 172
224 &amp;lt;navn&gt;Trafikkdeler&amp;lt;/navn&gt;
225 241
226 &amp;lt;navn&gt;Vegdekke&amp;lt;/navn&gt;
227 293
228 &amp;lt;navn&gt;Breddemåling&amp;lt;/navn&gt;
229 301
230 &amp;lt;navn&gt;Kantklippareal&amp;lt;/navn&gt;
231 318
232 &amp;lt;navn&gt;Snø-/isrydding&amp;lt;/navn&gt;
233 445
234 &amp;lt;navn&gt;Skred&amp;lt;/navn&gt;
235 446
236 &amp;lt;navn&gt;Dokumentasjon&amp;lt;/navn&gt;
237 452
238 &amp;lt;navn&gt;Undergang&amp;lt;/navn&gt;
239 528
240 &amp;lt;navn&gt;Tverrprofil&amp;lt;/navn&gt;
241 532
242 &amp;lt;navn&gt;Vegreferanse&amp;lt;/navn&gt;
243 534
244 &amp;lt;navn&gt;Region&amp;lt;/navn&gt;
245 535
246 &amp;lt;navn&gt;Fylke&amp;lt;/navn&gt;
247 536
248 &amp;lt;navn&gt;Kommune&amp;lt;/navn&gt;
249 538
250 &amp;lt;navn&gt;Gate&amp;lt;/navn&gt;
251 539
252 &amp;lt;navn&gt;Transportlenke&amp;lt;/navn&gt;
253 540
254 &amp;lt;navn&gt;Trafikkmengde&amp;lt;/navn&gt;
255 570
256 &amp;lt;navn&gt;Trafikkulykke&amp;lt;/navn&gt;
257 571
258 &amp;lt;navn&gt;Ulykkesinvolvert enhet&amp;lt;/navn&gt;
259 572
260 &amp;lt;navn&gt;Ulykkesinvolvert person&amp;lt;/navn&gt;
261 579
262 &amp;lt;navn&gt;Politidistrikt&amp;lt;/navn&gt;
263 583
264 &amp;lt;navn&gt;Vegbredde&amp;lt;/navn&gt;
265 591
266 &amp;lt;navn&gt;Høydebegrensning&amp;lt;/navn&gt;
267 592
268 &amp;lt;navn&gt;Nedbøyningsmåling&amp;lt;/navn&gt;
269 597
270 &amp;lt;navn&gt;Støy-luft, Strekningsdata&amp;lt;/navn&gt;
271 601
272 &amp;lt;navn&gt;Oppgravingsdata&amp;lt;/navn&gt;
273 602
274 &amp;lt;navn&gt;Oppgravingslag&amp;lt;/navn&gt;
275 603
276 &amp;lt;navn&gt;PMS-parsell&amp;lt;/navn&gt;
277 604
278 &amp;lt;navn&gt;Vegnormalstrekning&amp;lt;/navn&gt;
279 605
280 &amp;lt;navn&gt;Værrelatert strekning&amp;lt;/navn&gt;
281 616
282 &amp;lt;navn&gt;Feltstrekning&amp;lt;/navn&gt;
283 617
284 &amp;lt;navn&gt;Adressepunkt&amp;lt;/navn&gt;
285 626
286 &amp;lt;navn&gt;Friksjonsmåleserie&amp;lt;/navn&gt;
287 629
288 &amp;lt;navn&gt;Vegdekke, flatelapping&amp;lt;/navn&gt;
289 639
290 &amp;lt;navn&gt;Kurvatur, horisontalelement&amp;lt;/navn&gt;
291 640
292 &amp;lt;navn&gt;Kurvatur, vertikalelement&amp;lt;/navn&gt;
293 642
294 &amp;lt;navn&gt;Kurvatur, vertikalpunkt&amp;lt;/navn&gt;
295 643
296 &amp;lt;navn&gt;Statistikk, trafikkmengde&amp;lt;/navn&gt;
297 647
298 &amp;lt;navn&gt;Statistikk, vegbredde&amp;lt;/navn&gt;
299 774
300 &amp;lt;navn&gt;Nedbøyningsmåleserie&amp;lt;/navn&gt;
301 775
302 &amp;lt;navn&gt;ATK, influensstrekning&amp;lt;/navn&gt;
303 794
304 &amp;lt;navn&gt;Systemobjekt&amp;lt;/navn&gt;
305 810
306 &amp;lt;navn&gt;Vinterdriftsklasse&amp;lt;/navn&gt;
307 821
308 &amp;lt;navn&gt;Funksjonell vegklasse&amp;lt;/navn&gt;
309 825
310 &amp;lt;navn&gt;Kurvatur, stigning&amp;lt;/navn&gt;
311 838
312 &amp;lt;navn&gt;Vegbredde, beregnet&amp;lt;/navn&gt;
313 862
314 &amp;lt;navn&gt;Reisetidsregistreringspunkt&amp;lt;/navn&gt;
315 871
316 &amp;lt;navn&gt;Bruksklasse&amp;lt;/navn&gt;
317 &lt;/pre&gt;&lt;/blockquote&gt;
318
319 &lt;p&gt;Av disse ser ID 775 og 862 mest relevant ut. ID 775 antar jeg
320 refererer til fotoboksen som står like ved brua, mens
321 «Reisetidsregistreringspunkt» kanskje kan være boksen som henger der.
322 Hvordan finner jeg så ut hva dette kan være for noe. En titt på
323 &lt;a href=&quot;http://labs.vegdata.no/nvdb-datakatalog/862-Reisetidsregistreringspunkt/&quot;&gt;datakatalogsiden
324 for ID 862/Reisetidsregistreringspunkt&lt;/a&gt; viser at det er finnes 53
325 slike målere i Norge, og hvor de er plassert, men gir ellers få
326 detaljer. Det er plassert 40 på østlandet og 13 i Trondheimsregionen.
327 Men siden nevner «AutoPASS», og hvis en slår opp oppføringen på
328 Sollihøgda nevner den «Ciber AS» som ID for eksternt system. (Kan det
329 være snakk om
330 &lt;a href=&quot;http://www.proff.no/selskap/ciber-norge-as/oslo/internettdesign-og-programmering/Z0I3KMF4/&quot;&gt;Ciber
331 Norge AS&lt;/a&gt;, et selskap eid av Ciber Europe Bv?) Et nettsøk på
332 «Ciber AS autopass» fører meg til en artikkel fra NRK Trøndelag i
333 2013 med tittel
334 «&lt;a href=&quot;http://www.nrk.no/trondelag/sjekk-dette-hvis-du-vil-unnga-ko-1.11327947&quot;&gt;Sjekk
335 dette hvis du vil unngå kø&lt;/a&gt;». Artikkelen henviser til vegvesenets
336 nettside
337 &lt;a href=&quot;http://www.reisetider.no/reisetid/forside.html&quot;&gt;reisetider.no&lt;/a&gt;
338 som har en
339 &lt;a href=&quot;http://www.reisetider.no/reisetid/omrade.html?omrade=5&quot;&gt;kartside
340 for Østlandet&lt;/a&gt; som viser at det måles mellom Sandvika og Sollihøgda.
341 Det kan dermed se ut til at jeg har funnet ut hva boksene gjør.&lt;/p&gt;
342
343 &lt;p&gt;Hvis det stemmer, så er dette bokser som leser av AutoPASS-ID-en
344 til alle passerende biler med AutoPASS-brikke, og dermed gjør det mulig
345 for de som kontrollerer boksene å holde rede på hvor en gitt bil er
346 når den passerte et slikt målepunkt. NRK-artikkelen forteller at
347 denne informasjonen i dag kun brukes til å koble to
348 AutoPASS-brikkepasseringer passeringer sammen for å beregne
349 reisetiden, og at bruken er godkjent av Datatilsynet. Det er desverre
350 ikke mulig for en sjåfør som passerer under en slik boks å kontrollere
351 at AutoPASS-ID-en kun brukes til dette i dag og i fremtiden.&lt;/p&gt;
352
353 &lt;p&gt;I tillegg til denne type AutoPASS-sniffere vet jeg at det også
354 finnes mange automatiske stasjoner som tar betalt pr. passering (aka
355 bomstasjoner), og der lagres informasjon om tid, sted og bilnummer i
356 10 år. Finnes det andre slike sniffere plassert ut på veiene?&lt;/p&gt;
357
358 &lt;p&gt;Personlig har jeg valgt å ikke bruke AutoPASS-brikke, for å gjøre
359 det vanskeligere og mer kostbart for de som vil invadere privatsfæren
360 og holde rede på hvor bilen min beveger seg til enhver tid. Jeg håper
361 flere vil gjøre det samme, selv om det gir litt høyere private
362 utgifter (dyrere bompassering). Vern om privatsfæren koster i disse
363 dager.&lt;/p&gt;
364
365 &lt;p&gt;Takk til Jan Kristian Jensen i Statens Vegvesen for tips om
366 dokumentasjon på vegvesenets REST-API.&lt;/p&gt;
367 </description>
368 </item>
369
370 <item>
371 <title>Speeding up the Debian installer using eatmydata and dpkg-divert</title>
372 <link>http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html</link>
373 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html</guid>
374 <pubDate>Tue, 16 Sep 2014 14:00:00 +0200</pubDate>
375 <description>&lt;p&gt;The &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt; installer could be
376 a lot quicker. When we install more than 2000 packages in
377 &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux / Debian Edu&lt;/a&gt; using
378 tasksel in the installer, unpacking the binary packages take forever.
379 A part of the slow I/O issue was discussed in
380 &lt;a href=&quot;https://bugs.debian.org/613428&quot;&gt;bug #613428&lt;/a&gt; about too
381 much file system sync-ing done by dpkg, which is the package
382 responsible for unpacking the binary packages. Other parts (like code
383 executed by postinst scripts) might also sync to disk during
384 installation. All this sync-ing to disk do not really make sense to
385 me. If the machine crash half-way through, I start over, I do not try
386 to salvage the half installed system. So the failure sync-ing is
387 supposed to protect against, hardware or system crash, is not really
388 relevant while the installer is running.&lt;/p&gt;
389
390 &lt;p&gt;A few days ago, I thought of a way to get rid of all the file
391 system sync()-ing in a fairly non-intrusive way, without the need to
392 change the code in several packages. The idea is not new, but I have
393 not heard anyone propose the approach using dpkg-divert before. It
394 depend on the small and clever package
395 &lt;a href=&quot;https://packages.qa.debian.org/eatmydata&quot;&gt;eatmydata&lt;/a&gt;, which
396 uses LD_PRELOAD to replace the system functions for syncing data to
397 disk with functions doing nothing, thus allowing programs to live
398 dangerous while speeding up disk I/O significantly. Instead of
399 modifying the implementation of dpkg, apt and tasksel (which are the
400 packages responsible for selecting, fetching and installing packages),
401 it occurred to me that we could just divert the programs away, replace
402 them with a simple shell wrapper calling
403 &quot;eatmydata&amp;nbsp;$program&amp;nbsp;$@&quot;, to get the same effect.
404 Two days ago I decided to test the idea, and wrapped up a simple
405 implementation for the Debian Edu udeb.&lt;/p&gt;
406
407 &lt;p&gt;The effect was stunning. In my first test it reduced the running
408 time of the pkgsel step (installing tasks) from 64 to less than 44
409 minutes (20 minutes shaved off the installation) on an old Dell
410 Latitude D505 machine. I am not quite sure what the optimised time
411 would have been, as I messed up the testing a bit, causing the debconf
412 priority to get low enough for two questions to pop up during
413 installation. As soon as I saw the questions I moved the installation
414 along, but do not know how long the question were holding up the
415 installation. I did some more measurements using Debian Edu Jessie,
416 and got these results. The time measured is the time stamp in
417 /var/log/syslog between the &quot;pkgsel: starting tasksel&quot; and the
418 &quot;pkgsel: finishing up&quot; lines, if you want to do the same measurement
419 yourself. In Debian Edu, the tasksel dialog do not show up, and the
420 timing thus do not depend on how quickly the user handle the tasksel
421 dialog.&lt;/p&gt;
422
423 &lt;p&gt;&lt;table&gt;
424
425 &lt;tr&gt;
426 &lt;th&gt;Machine/setup&lt;/th&gt;
427 &lt;th&gt;Original tasksel&lt;/th&gt;
428 &lt;th&gt;Optimised tasksel&lt;/th&gt;
429 &lt;th&gt;Reduction&lt;/th&gt;
430 &lt;/tr&gt;
431
432 &lt;tr&gt;
433 &lt;td&gt;Latitude D505 Main+LTSP LXDE&lt;/td&gt;
434 &lt;td&gt;64 min (07:46-08:50)&lt;/td&gt;
435 &lt;td&gt;&lt;44 min (11:27-12:11)&lt;/td&gt;
436 &lt;td&gt;&gt;20 min 18%&lt;/td&gt;
437 &lt;/tr&gt;
438
439 &lt;tr&gt;
440 &lt;td&gt;Latitude D505 Roaming LXDE&lt;/td&gt;
441 &lt;td&gt;57 min (08:48-09:45)&lt;/td&gt;
442 &lt;td&gt;34 min (07:43-08:17)&lt;/td&gt;
443 &lt;td&gt;23 min 40%&lt;/td&gt;
444 &lt;/tr&gt;
445
446 &lt;tr&gt;
447 &lt;td&gt;Latitude D505 Minimal&lt;/td&gt;
448 &lt;td&gt;22 min (10:37-10:59)&lt;/td&gt;
449 &lt;td&gt;11 min (11:16-11:27)&lt;/td&gt;
450 &lt;td&gt;11 min 50%&lt;/td&gt;
451 &lt;/tr&gt;
452
453 &lt;tr&gt;
454 &lt;td&gt;Thinkpad X200 Minimal&lt;/td&gt;
455 &lt;td&gt;6 min (08:19-08:25)&lt;/td&gt;
456 &lt;td&gt;4 min (08:04-08:08)&lt;/td&gt;
457 &lt;td&gt;2 min 33%&lt;/td&gt;
458 &lt;/tr&gt;
459
460 &lt;tr&gt;
461 &lt;td&gt;Thinkpad X200 Roaming KDE&lt;/td&gt;
462 &lt;td&gt;19 min (09:21-09:40)&lt;/td&gt;
463 &lt;td&gt;15 min (10:25-10:40)&lt;/td&gt;
464 &lt;td&gt;4 min 21%&lt;/td&gt;
465 &lt;/tr&gt;
466
467 &lt;/table&gt;&lt;/p&gt;
468
469 &lt;p&gt;The test is done using a netinst ISO on a USB stick, so some of the
470 time is spent downloading packages. The connection to the Internet
471 was 100Mbit/s during testing, so downloading should not be a
472 significant factor in the measurement. Download typically took a few
473 seconds to a few minutes, depending on the amount of packages being
474 installed.&lt;/p&gt;
475
476 &lt;p&gt;The speedup is implemented by using two hooks in
477 &lt;a href=&quot;https://www.debian.org/devel/debian-installer/&quot;&gt;Debian
478 Installer&lt;/a&gt;, the pre-pkgsel.d hook to set up the diverts, and the
479 finish-install.d hook to remove the divert at the end of the
480 installation. I picked the pre-pkgsel.d hook instead of the
481 post-base-installer.d hook because I test using an ISO without the
482 eatmydata package included, and the post-base-installer.d hook in
483 Debian Edu can only operate on packages included in the ISO. The
484 negative effect of this is that I am unable to activate this
485 optimization for the kernel installation step in d-i. If the code is
486 moved to the post-base-installer.d hook, the speedup would be larger
487 for the entire installation.&lt;/p&gt;
488
489 &lt;p&gt;I&#39;ve implemented this in the
490 &lt;a href=&quot;https://packages.qa.debian.org/debian-edu-install&quot;&gt;debian-edu-install&lt;/a&gt;
491 git repository, and plan to provide the optimization as part of the
492 Debian Edu installation. If you want to test this yourself, you can
493 create two files in the installer (or in an udeb). One shell script
494 need do go into /usr/lib/pre-pkgsel.d/, with content like this:&lt;/p&gt;
495
496 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
497 #!/bin/sh
498 set -e
499 . /usr/share/debconf/confmodule
500 info() {
501 logger -t my-pkgsel &quot;info: $*&quot;
502 }
503 error() {
504 logger -t my-pkgsel &quot;error: $*&quot;
505 }
506 override_install() {
507 apt-install eatmydata || true
508 if [ -x /target/usr/bin/eatmydata ] ; then
509 for bin in dpkg apt-get aptitude tasksel ; do
510 file=/usr/bin/$bin
511 # Test that the file exist and have not been diverted already.
512 if [ -f /target$file ] ; then
513 info &quot;diverting $file using eatmydata&quot;
514 printf &quot;#!/bin/sh\neatmydata $bin.distrib \&quot;\$@\&quot;\n&quot; \
515 &gt; /target$file.edu
516 chmod 755 /target$file.edu
517 in-target dpkg-divert --package debian-edu-config \
518 --rename --quiet --add $file
519 ln -sf ./$bin.edu /target$file
520 else
521 error &quot;unable to divert $file, as it is missing.&quot;
522 fi
523 done
524 else
525 error &quot;unable to find /usr/bin/eatmydata after installing the eatmydata pacage&quot;
526 fi
527 }
528
529 override_install
530 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
531
532 &lt;p&gt;To clean up, another shell script should go into
533 /usr/lib/finish-install.d/ with code like this:
534
535 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
536 #! /bin/sh -e
537 . /usr/share/debconf/confmodule
538 error() {
539 logger -t my-finish-install &quot;error: $@&quot;
540 }
541 remove_install_override() {
542 for bin in dpkg apt-get aptitude tasksel ; do
543 file=/usr/bin/$bin
544 if [ -x /target$file.edu ] ; then
545 rm /target$file
546 in-target dpkg-divert --package debian-edu-config \
547 --rename --quiet --remove $file
548 rm /target$file.edu
549 else
550 error &quot;Missing divert for $file.&quot;
551 fi
552 done
553 sync # Flush file buffers before continuing
554 }
555
556 remove_install_override
557 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
558
559 &lt;p&gt;In Debian Edu, I placed both code fragments in a separate script
560 edu-eatmydata-install and call it from the pre-pkgsel.d and
561 finish-install.d scripts.&lt;/p&gt;
562
563 &lt;p&gt;By now you might ask if this change should get into the normal
564 Debian installer too? I suspect it should, but am not sure the
565 current debian-installer coordinators find it useful enough. It also
566 depend on the side effects of the change. I&#39;m not aware of any, but I
567 guess we will see if the change is safe after some more testing.
568 Perhaps there is some package in Debian depending on sync() and
569 fsync() having effect? Perhaps it should go into its own udeb, to
570 allow those of us wanting to enable it to do so without affecting
571 everyone.&lt;/p&gt;
572
573 &lt;p&gt;Update 2014-09-24: Since a few days ago, enabling this optimization
574 will break installation of all programs using gnutls because of
575 &lt;a href=&quot;https://bugs.debian.org/702711&quot;&gt;bug #702711. An updated
576 eatmydata package in Debian will solve it.&lt;/p&gt;
577 </description>
578 </item>
579
580 <item>
581 <title>Good bye subkeys.pgp.net, welcome pool.sks-keyservers.net</title>
582 <link>http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html</link>
583 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html</guid>
584 <pubDate>Wed, 10 Sep 2014 13:10:00 +0200</pubDate>
585 <description>&lt;p&gt;Yesterday, I had the pleasure of attending a talk with the
586 &lt;a href=&quot;http://www.nuug.no/&quot;&gt;Norwegian Unix User Group&lt;/a&gt; about
587 &lt;a href=&quot;http://www.nuug.no/aktiviteter/20140909-sks-keyservers/&quot;&gt;the
588 OpenPGP keyserver pool sks-keyservers.net&lt;/a&gt;, and was very happy to
589 learn that there is a large set of publicly available key servers to
590 use when looking for peoples public key. So far I have used
591 subkeys.pgp.net, and some times wwwkeys.nl.pgp.net when the former
592 were misbehaving, but those days are ended. The servers I have used
593 up until yesterday have been slow and some times unavailable. I hope
594 those problems are gone now.&lt;/p&gt;
595
596 &lt;p&gt;Behind the round robin DNS entry of the
597 &lt;a href=&quot;https://sks-keyservers.net/&quot;&gt;sks-keyservers.net&lt;/a&gt; service
598 there is a pool of more than 100 keyservers which are checked every
599 day to ensure they are well connected and up to date. It must be
600 better than what I have used so far. :)&lt;/p&gt;
601
602 &lt;p&gt;Yesterdays speaker told me that the service is the default
603 keyserver provided by the default configuration in GnuPG, but this do
604 not seem to be used in Debian. Perhaps it should?&lt;/p&gt;
605
606 &lt;p&gt;Anyway, I&#39;ve updated my ~/.gnupg/options file to now include this
607 line:&lt;/p&gt;
608
609 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
610 keyserver pool.sks-keyservers.net
611 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
612
613 &lt;p&gt;With GnuPG version 2 one can also locate the keyserver using SRV
614 entries in DNS. Just for fun, I did just that at work, so now every
615 user of GnuPG at the University of Oslo should find a OpenGPG
616 keyserver automatically should their need it:&lt;/p&gt;
617
618 &lt;p&gt;&lt;blockquote&gt;&lt;pre&gt;
619 % host -t srv _pgpkey-http._tcp.uio.no
620 _pgpkey-http._tcp.uio.no has SRV record 0 100 11371 pool.sks-keyservers.net.
621 %
622 &lt;/pre&gt;&lt;/blockquote&gt;&lt;/p&gt;
623
624 &lt;p&gt;Now if only
625 &lt;a href=&quot;http://ietfreport.isoc.org/idref/draft-shaw-openpgp-hkp/&quot;&gt;the
626 HKP lookup protocol&lt;/a&gt; supported finding signature paths, I would be
627 very happy. It can look up a given key or search for a user ID, but I
628 normally do not want that, but to find a trust path from my key to
629 another key. Given a user ID or key ID, I would like to find (and
630 download) the keys representing a signature path from my key to the
631 key in question, to be able to get a trust path between the two keys.
632 This is as far as I can tell not possible today. Perhaps something
633 for a future version of the protocol?&lt;/p&gt;
634 </description>
635 </item>
636
637 </channel>
638 </rss>