]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2016/02/index.html
Generated.
[homepage.git] / blog / archive / 2016 / 02 / 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: entries from February 2016</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://www.hungry.com/~pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://www.hungry.com/~pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="02.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <!-- XML FEED -->
13 <div class="title">
14 <h1>
15 <a href="http://www.hungry.com/~pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <h3>Entries from February 2016.</h3>
23
24 <div class="entry">
25 <div class="title">
26 <a href="http://www.hungry.com/~pere/blog/Creating__updating_and_checking_debian_copyright_semi_automatically.html">Creating, updating and checking debian/copyright semi-automatically</a>
27 </div>
28 <div class="date">
29 19th February 2016
30 </div>
31 <div class="body">
32 <p>Making packages for Debian requires quite a lot of attention to
33 details. And one of the details is the content of the
34 debian/copyright file, which should list all relevant licenses used by
35 the code in the package in question, preferably in
36 <a href="https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/">machine
37 readable DEP5 format</a>.</p>
38
39 <p>For large packages with lots of contributors it is hard to write
40 and update this file manually, and if you get some detail wrong, the
41 package is normally rejected by the ftpmasters. So getting it right
42 the first time around get the package into Debian faster, and save
43 both you and the ftpmasters some work.. Today, while trying to figure
44 out what was wrong with
45 <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686447">the
46 zfsonlinux copyright file</a>, I decided to spend some time on
47 figuring out the options for doing this job automatically, or at least
48 semi-automatically.</p>
49
50 <p>Lucikly, there are at least two tools available for generating the
51 file based on the code in the source package,
52 <tt><a href="https://tracker.debian.org/pkg/debmake">debmake</a></tt>
53 and <tt><a href="https://tracker.debian.org/pkg/cme">cme</a></tt>. I'm
54 not sure which one of them came first, but both seem to be able to
55 create a sensible draft file. As far as I can tell, none of them can
56 be trusted to get the result just right, so the content need to be
57 polished a bit before the file is OK to upload. I found the debmake
58 option in
59 <a href="http://goofying-with-debian.blogspot.com/2014/07/debmake-checking-source-against-dep-5.html">a
60 blog posts from 2014</a>.
61
62 <p>To generate using debmake, use the -cc option:
63
64 <p><pre>
65 debmake -cc > debian/copyright
66 </pre></p>
67
68 <p>Note there are some problems with python and non-ASCII names, so
69 this might not be the best option.</p>
70
71 <p>The cme option is based on a config parsing library, and I found
72 this approach in
73 <a href="https://ddumont.wordpress.com/2015/04/05/improving-creation-of-debian-copyright-file/">a
74 blog post from 2015</a>. To generate using cme, use the 'update
75 dpkg-copyright' option:
76
77 <p><pre>
78 cme update dpkg-copyright
79 </pre></p>
80
81 <p>This will create or update debian/copyright. The cme tool seem to
82 handle UTF-8 names better than debmake.</p>
83
84 <p>When the copyright file is created, I would also like some help to
85 check if the file is correct. For this I found two good options,
86 <tt>debmake -k</tt> and <tt>license-reconcile</tt>. The former seem
87 to focus on license types and file matching, and is able to detect
88 ineffective blocks in the copyright file. The latter reports missing
89 copyright holders and years, but was confused by inconsistent license
90 names (like CDDL vs. CDDL-1.0). I suspect it is good to use both and
91 fix all issues reported by them before uploading. But I do not know
92 if the tools and the ftpmasters agree on what is important to fix in a
93 copyright file, so the package might still be rejected.</p>
94
95 <p>The devscripts tool <tt>licensecheck</tt> deserve mentioning. It
96 will read through the source and try to find all copyright statements.
97 It is not comparing the result to the content of debian/copyright, but
98 can be useful when verifying the content of the copyright file.</p>
99
100 <p>Are you aware of better tools in Debian to create and update
101 debian/copyright file. Please let me know, or blog about it on
102 planet.debian.org.</p>
103
104 <p>As usual, if you use Bitcoin and want to show your support of my
105 activities, please send Bitcoin donations to my address
106 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
107
108 <p><strong>Update 2016-02-20</strong>: I got a tip from Mike Gabriel
109 on how to use licensecheck and cdbs to create a draft copyright file
110
111 <p><pre>
112 licensecheck --copyright -r `find * -type f` | \
113 /usr/lib/cdbs/licensecheck2dep5 > debian/copyright.auto
114 </pre></p>
115
116 <p>He mentioned that he normally check the generated file into the
117 version control system to make it easier to discover license and
118 copyright changes in the upstream source. I will try to do the same
119 with my packages in the future.</p>
120
121 <p><strong>Update 2016-02-21</strong>: The cme author recommended
122 against using -quiet for new users, so I removed it from the proposed
123 command line.</p>
124
125 </div>
126 <div class="tags">
127
128
129 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>.
130
131
132 </div>
133 </div>
134 <div class="padding"></div>
135
136 <div class="entry">
137 <div class="title">
138 <a href="http://www.hungry.com/~pere/blog/Using_appstream_in_Debian_to_locate_packages_with_firmware_and_mime_type_support.html">Using appstream in Debian to locate packages with firmware and mime type support</a>
139 </div>
140 <div class="date">
141 4th February 2016
142 </div>
143 <div class="body">
144 <p>The <a href="https://wiki.debian.org/DEP-11">appstream system</a>
145 is taking shape in Debian, and one provided feature is a very
146 convenient way to tell you which package to install to make a given
147 firmware file available when the kernel is looking for it. This can
148 be done using apt-file too, but that is for someone else to blog
149 about. :)</p>
150
151 <p>Here is a small recipe to find the package with a given firmware
152 file, in this example I am looking for ctfw-3.2.3.0.bin, randomly
153 picked from the set of firmware announced using appstream in Debian
154 unstable. In general you would be looking for the firmware requested
155 by the kernel during kernel module loading. To find the package
156 providing the example file, do like this:</p>
157
158 <blockquote><pre>
159 % apt install appstream
160 [...]
161 % apt update
162 [...]
163 % appstreamcli what-provides firmware:runtime ctfw-3.2.3.0.bin | \
164 awk '/Package:/ {print $2}'
165 firmware-qlogic
166 %
167 </pre></blockquote>
168
169 <p>See <a href="https://wiki.debian.org/AppStream/Guidelines">the
170 appstream wiki</a> page to learn how to embed the package metadata in
171 a way appstream can use.</p>
172
173 <p>This same approach can be used to find any package supporting a
174 given MIME type. This is very useful when you get a file you do not
175 know how to handle. First find the mime type using <tt>file
176 --mime-type</tt>, and next look up the package providing support for
177 it. Lets say you got an SVG file. Its MIME type is image/svg+xml,
178 and you can find all packages handling this type like this:</p>
179
180 <blockquote><pre>
181 % apt install appstream
182 [...]
183 % apt update
184 [...]
185 % appstreamcli what-provides mimetype image/svg+xml | \
186 awk '/Package:/ {print $2}'
187 bkchem
188 phototonic
189 inkscape
190 shutter
191 tetzle
192 geeqie
193 xia
194 pinta
195 gthumb
196 karbon
197 comix
198 mirage
199 viewnior
200 postr
201 ristretto
202 kolourpaint4
203 eog
204 eom
205 gimagereader
206 midori
207 %
208 </pre></blockquote>
209
210 <p>I believe the MIME types are fetched from the desktop file for
211 packages providing appstream metadata.</p>
212
213 </div>
214 <div class="tags">
215
216
217 Tags: <a href="http://www.hungry.com/~pere/blog/tags/debian">debian</a>, <a href="http://www.hungry.com/~pere/blog/tags/english">english</a>.
218
219
220 </div>
221 </div>
222 <div class="padding"></div>
223
224 <p style="text-align: right;"><a href="02.rss"><img src="http://www.hungry.com/~pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
225 <div id="sidebar">
226
227
228
229 <h2>Archive</h2>
230 <ul>
231
232 <li>2025
233 <ul>
234
235 <li><a href="http://www.hungry.com/~pere/blog/archive/2025/01/">January (3)</a></li>
236
237 </ul></li>
238
239 <li>2024
240 <ul>
241
242 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/01/">January (1)</a></li>
243
244 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/02/">February (1)</a></li>
245
246 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/03/">March (2)</a></li>
247
248 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/04/">April (3)</a></li>
249
250 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/05/">May (1)</a></li>
251
252 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/06/">June (1)</a></li>
253
254 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/07/">July (2)</a></li>
255
256 <li><a href="http://www.hungry.com/~pere/blog/archive/2024/12/">December (1)</a></li>
257
258 </ul></li>
259
260 <li>2023
261 <ul>
262
263 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/01/">January (3)</a></li>
264
265 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/02/">February (1)</a></li>
266
267 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/04/">April (2)</a></li>
268
269 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/05/">May (3)</a></li>
270
271 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/06/">June (1)</a></li>
272
273 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/08/">August (1)</a></li>
274
275 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/09/">September (1)</a></li>
276
277 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/10/">October (1)</a></li>
278
279 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/11/">November (4)</a></li>
280
281 <li><a href="http://www.hungry.com/~pere/blog/archive/2023/12/">December (1)</a></li>
282
283 </ul></li>
284
285 <li>2022
286 <ul>
287
288 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/02/">February (1)</a></li>
289
290 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/03/">March (3)</a></li>
291
292 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/04/">April (2)</a></li>
293
294 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/06/">June (2)</a></li>
295
296 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/07/">July (1)</a></li>
297
298 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/09/">September (1)</a></li>
299
300 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/10/">October (1)</a></li>
301
302 <li><a href="http://www.hungry.com/~pere/blog/archive/2022/12/">December (1)</a></li>
303
304 </ul></li>
305
306 <li>2021
307 <ul>
308
309 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/01/">January (2)</a></li>
310
311 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/02/">February (1)</a></li>
312
313 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/05/">May (1)</a></li>
314
315 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/06/">June (1)</a></li>
316
317 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/07/">July (3)</a></li>
318
319 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/08/">August (1)</a></li>
320
321 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/09/">September (1)</a></li>
322
323 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/10/">October (1)</a></li>
324
325 <li><a href="http://www.hungry.com/~pere/blog/archive/2021/12/">December (1)</a></li>
326
327 </ul></li>
328
329 <li>2020
330 <ul>
331
332 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/02/">February (2)</a></li>
333
334 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/03/">March (2)</a></li>
335
336 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/04/">April (2)</a></li>
337
338 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/05/">May (3)</a></li>
339
340 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/06/">June (2)</a></li>
341
342 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/07/">July (1)</a></li>
343
344 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/09/">September (1)</a></li>
345
346 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/10/">October (1)</a></li>
347
348 <li><a href="http://www.hungry.com/~pere/blog/archive/2020/11/">November (1)</a></li>
349
350 </ul></li>
351
352 <li>2019
353 <ul>
354
355 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/01/">January (4)</a></li>
356
357 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/02/">February (3)</a></li>
358
359 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/03/">March (3)</a></li>
360
361 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/05/">May (2)</a></li>
362
363 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/06/">June (5)</a></li>
364
365 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/07/">July (2)</a></li>
366
367 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/08/">August (1)</a></li>
368
369 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/09/">September (1)</a></li>
370
371 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/11/">November (1)</a></li>
372
373 <li><a href="http://www.hungry.com/~pere/blog/archive/2019/12/">December (4)</a></li>
374
375 </ul></li>
376
377 <li>2018
378 <ul>
379
380 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/01/">January (1)</a></li>
381
382 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/02/">February (5)</a></li>
383
384 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/03/">March (5)</a></li>
385
386 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/04/">April (3)</a></li>
387
388 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/06/">June (2)</a></li>
389
390 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/07/">July (5)</a></li>
391
392 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/08/">August (3)</a></li>
393
394 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/09/">September (3)</a></li>
395
396 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/10/">October (5)</a></li>
397
398 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/11/">November (2)</a></li>
399
400 <li><a href="http://www.hungry.com/~pere/blog/archive/2018/12/">December (4)</a></li>
401
402 </ul></li>
403
404 <li>2017
405 <ul>
406
407 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/01/">January (4)</a></li>
408
409 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/02/">February (3)</a></li>
410
411 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/03/">March (5)</a></li>
412
413 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/04/">April (2)</a></li>
414
415 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/06/">June (5)</a></li>
416
417 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/07/">July (1)</a></li>
418
419 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/08/">August (1)</a></li>
420
421 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/09/">September (3)</a></li>
422
423 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/10/">October (5)</a></li>
424
425 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/11/">November (3)</a></li>
426
427 <li><a href="http://www.hungry.com/~pere/blog/archive/2017/12/">December (4)</a></li>
428
429 </ul></li>
430
431 <li>2016
432 <ul>
433
434 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/01/">January (3)</a></li>
435
436 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/02/">February (2)</a></li>
437
438 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/03/">March (3)</a></li>
439
440 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/04/">April (8)</a></li>
441
442 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/05/">May (8)</a></li>
443
444 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/06/">June (2)</a></li>
445
446 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/07/">July (2)</a></li>
447
448 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/08/">August (5)</a></li>
449
450 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/09/">September (2)</a></li>
451
452 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/10/">October (3)</a></li>
453
454 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/11/">November (8)</a></li>
455
456 <li><a href="http://www.hungry.com/~pere/blog/archive/2016/12/">December (5)</a></li>
457
458 </ul></li>
459
460 <li>2015
461 <ul>
462
463 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/01/">January (7)</a></li>
464
465 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/02/">February (6)</a></li>
466
467 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/03/">March (1)</a></li>
468
469 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/04/">April (4)</a></li>
470
471 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/05/">May (3)</a></li>
472
473 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/06/">June (4)</a></li>
474
475 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/07/">July (6)</a></li>
476
477 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/08/">August (2)</a></li>
478
479 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/09/">September (2)</a></li>
480
481 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/10/">October (9)</a></li>
482
483 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/11/">November (6)</a></li>
484
485 <li><a href="http://www.hungry.com/~pere/blog/archive/2015/12/">December (3)</a></li>
486
487 </ul></li>
488
489 <li>2014
490 <ul>
491
492 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/01/">January (2)</a></li>
493
494 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/02/">February (3)</a></li>
495
496 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/03/">March (8)</a></li>
497
498 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/04/">April (7)</a></li>
499
500 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/05/">May (1)</a></li>
501
502 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/06/">June (2)</a></li>
503
504 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/07/">July (2)</a></li>
505
506 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/08/">August (2)</a></li>
507
508 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/09/">September (5)</a></li>
509
510 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/10/">October (6)</a></li>
511
512 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/11/">November (3)</a></li>
513
514 <li><a href="http://www.hungry.com/~pere/blog/archive/2014/12/">December (5)</a></li>
515
516 </ul></li>
517
518 <li>2013
519 <ul>
520
521 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/01/">January (11)</a></li>
522
523 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/02/">February (9)</a></li>
524
525 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/03/">March (9)</a></li>
526
527 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/04/">April (6)</a></li>
528
529 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/05/">May (9)</a></li>
530
531 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/06/">June (10)</a></li>
532
533 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/07/">July (7)</a></li>
534
535 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/08/">August (3)</a></li>
536
537 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/09/">September (5)</a></li>
538
539 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/10/">October (7)</a></li>
540
541 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/11/">November (9)</a></li>
542
543 <li><a href="http://www.hungry.com/~pere/blog/archive/2013/12/">December (3)</a></li>
544
545 </ul></li>
546
547 <li>2012
548 <ul>
549
550 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/01/">January (7)</a></li>
551
552 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/02/">February (10)</a></li>
553
554 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/03/">March (17)</a></li>
555
556 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/04/">April (12)</a></li>
557
558 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/05/">May (12)</a></li>
559
560 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/06/">June (20)</a></li>
561
562 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/07/">July (17)</a></li>
563
564 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/08/">August (6)</a></li>
565
566 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/09/">September (9)</a></li>
567
568 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/10/">October (17)</a></li>
569
570 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/11/">November (10)</a></li>
571
572 <li><a href="http://www.hungry.com/~pere/blog/archive/2012/12/">December (7)</a></li>
573
574 </ul></li>
575
576 <li>2011
577 <ul>
578
579 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/01/">January (16)</a></li>
580
581 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/02/">February (6)</a></li>
582
583 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/03/">March (6)</a></li>
584
585 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/04/">April (7)</a></li>
586
587 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/05/">May (3)</a></li>
588
589 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/06/">June (2)</a></li>
590
591 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/07/">July (7)</a></li>
592
593 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/08/">August (6)</a></li>
594
595 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/09/">September (4)</a></li>
596
597 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/10/">October (2)</a></li>
598
599 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/11/">November (3)</a></li>
600
601 <li><a href="http://www.hungry.com/~pere/blog/archive/2011/12/">December (1)</a></li>
602
603 </ul></li>
604
605 <li>2010
606 <ul>
607
608 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/01/">January (2)</a></li>
609
610 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/02/">February (1)</a></li>
611
612 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/03/">March (3)</a></li>
613
614 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/04/">April (3)</a></li>
615
616 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/05/">May (9)</a></li>
617
618 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/06/">June (14)</a></li>
619
620 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/07/">July (12)</a></li>
621
622 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/08/">August (13)</a></li>
623
624 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/09/">September (7)</a></li>
625
626 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/10/">October (9)</a></li>
627
628 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/11/">November (13)</a></li>
629
630 <li><a href="http://www.hungry.com/~pere/blog/archive/2010/12/">December (12)</a></li>
631
632 </ul></li>
633
634 <li>2009
635 <ul>
636
637 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/01/">January (8)</a></li>
638
639 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/02/">February (8)</a></li>
640
641 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/03/">March (12)</a></li>
642
643 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/04/">April (10)</a></li>
644
645 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/05/">May (9)</a></li>
646
647 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/06/">June (3)</a></li>
648
649 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/07/">July (4)</a></li>
650
651 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/08/">August (3)</a></li>
652
653 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/09/">September (1)</a></li>
654
655 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/10/">October (2)</a></li>
656
657 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/11/">November (3)</a></li>
658
659 <li><a href="http://www.hungry.com/~pere/blog/archive/2009/12/">December (3)</a></li>
660
661 </ul></li>
662
663 <li>2008
664 <ul>
665
666 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/11/">November (5)</a></li>
667
668 <li><a href="http://www.hungry.com/~pere/blog/archive/2008/12/">December (7)</a></li>
669
670 </ul></li>
671
672 </ul>
673
674
675
676 <h2>Tags</h2>
677 <ul>
678
679 <li><a href="http://www.hungry.com/~pere/blog/tags/3d-printer">3d-printer (19)</a></li>
680
681 <li><a href="http://www.hungry.com/~pere/blog/tags/amiga">amiga (1)</a></li>
682
683 <li><a href="http://www.hungry.com/~pere/blog/tags/aros">aros (1)</a></li>
684
685 <li><a href="http://www.hungry.com/~pere/blog/tags/bankid">bankid (4)</a></li>
686
687 <li><a href="http://www.hungry.com/~pere/blog/tags/betalkontant">betalkontant (9)</a></li>
688
689 <li><a href="http://www.hungry.com/~pere/blog/tags/bitcoin">bitcoin (13)</a></li>
690
691 <li><a href="http://www.hungry.com/~pere/blog/tags/bootsystem">bootsystem (17)</a></li>
692
693 <li><a href="http://www.hungry.com/~pere/blog/tags/bsa">bsa (2)</a></li>
694
695 <li><a href="http://www.hungry.com/~pere/blog/tags/chrpath">chrpath (3)</a></li>
696
697 <li><a href="http://www.hungry.com/~pere/blog/tags/debian">debian (206)</a></li>
698
699 <li><a href="http://www.hungry.com/~pere/blog/tags/debian edu">debian edu (159)</a></li>
700
701 <li><a href="http://www.hungry.com/~pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
702
703 <li><a href="http://www.hungry.com/~pere/blog/tags/digistan">digistan (11)</a></li>
704
705 <li><a href="http://www.hungry.com/~pere/blog/tags/dld">dld (18)</a></li>
706
707 <li><a href="http://www.hungry.com/~pere/blog/tags/docbook">docbook (33)</a></li>
708
709 <li><a href="http://www.hungry.com/~pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
710
711 <li><a href="http://www.hungry.com/~pere/blog/tags/english">english (468)</a></li>
712
713 <li><a href="http://www.hungry.com/~pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
714
715 <li><a href="http://www.hungry.com/~pere/blog/tags/fildeling">fildeling (14)</a></li>
716
717 <li><a href="http://www.hungry.com/~pere/blog/tags/freeculture">freeculture (34)</a></li>
718
719 <li><a href="http://www.hungry.com/~pere/blog/tags/freedombox">freedombox (9)</a></li>
720
721 <li><a href="http://www.hungry.com/~pere/blog/tags/frikanalen">frikanalen (20)</a></li>
722
723 <li><a href="http://www.hungry.com/~pere/blog/tags/h264">h264 (20)</a></li>
724
725 <li><a href="http://www.hungry.com/~pere/blog/tags/intervju">intervju (43)</a></li>
726
727 <li><a href="http://www.hungry.com/~pere/blog/tags/isenkram">isenkram (20)</a></li>
728
729 <li><a href="http://www.hungry.com/~pere/blog/tags/kart">kart (23)</a></li>
730
731 <li><a href="http://www.hungry.com/~pere/blog/tags/kodi">kodi (6)</a></li>
732
733 <li><a href="http://www.hungry.com/~pere/blog/tags/ldap">ldap (9)</a></li>
734
735 <li><a href="http://www.hungry.com/~pere/blog/tags/lego">lego (5)</a></li>
736
737 <li><a href="http://www.hungry.com/~pere/blog/tags/lenker">lenker (8)</a></li>
738
739 <li><a href="http://www.hungry.com/~pere/blog/tags/linuxcnc">linuxcnc (8)</a></li>
740
741 <li><a href="http://www.hungry.com/~pere/blog/tags/lsdvd">lsdvd (2)</a></li>
742
743 <li><a href="http://www.hungry.com/~pere/blog/tags/ltsp">ltsp (1)</a></li>
744
745 <li><a href="http://www.hungry.com/~pere/blog/tags/madewithcc">madewithcc (3)</a></li>
746
747 <li><a href="http://www.hungry.com/~pere/blog/tags/mesh network">mesh network (8)</a></li>
748
749 <li><a href="http://www.hungry.com/~pere/blog/tags/multimedia">multimedia (46)</a></li>
750
751 <li><a href="http://www.hungry.com/~pere/blog/tags/nice free software">nice free software (15)</a></li>
752
753 <li><a href="http://www.hungry.com/~pere/blog/tags/noark5">noark5 (25)</a></li>
754
755 <li><a href="http://www.hungry.com/~pere/blog/tags/norsk">norsk (325)</a></li>
756
757 <li><a href="http://www.hungry.com/~pere/blog/tags/nuug">nuug (199)</a></li>
758
759 <li><a href="http://www.hungry.com/~pere/blog/tags/offentlig innsyn">offentlig innsyn (41)</a></li>
760
761 <li><a href="http://www.hungry.com/~pere/blog/tags/open311">open311 (2)</a></li>
762
763 <li><a href="http://www.hungry.com/~pere/blog/tags/opensnitch">opensnitch (4)</a></li>
764
765 <li><a href="http://www.hungry.com/~pere/blog/tags/opphavsrett">opphavsrett (76)</a></li>
766
767 <li><a href="http://www.hungry.com/~pere/blog/tags/personvern">personvern (114)</a></li>
768
769 <li><a href="http://www.hungry.com/~pere/blog/tags/raid">raid (4)</a></li>
770
771 <li><a href="http://www.hungry.com/~pere/blog/tags/reactos">reactos (1)</a></li>
772
773 <li><a href="http://www.hungry.com/~pere/blog/tags/reprap">reprap (11)</a></li>
774
775 <li><a href="http://www.hungry.com/~pere/blog/tags/rfid">rfid (3)</a></li>
776
777 <li><a href="http://www.hungry.com/~pere/blog/tags/robot">robot (17)</a></li>
778
779 <li><a href="http://www.hungry.com/~pere/blog/tags/rss">rss (1)</a></li>
780
781 <li><a href="http://www.hungry.com/~pere/blog/tags/ruter">ruter (7)</a></li>
782
783 <li><a href="http://www.hungry.com/~pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
784
785 <li><a href="http://www.hungry.com/~pere/blog/tags/sikkerhet">sikkerhet (60)</a></li>
786
787 <li><a href="http://www.hungry.com/~pere/blog/tags/sitesummary">sitesummary (4)</a></li>
788
789 <li><a href="http://www.hungry.com/~pere/blog/tags/skepsis">skepsis (5)</a></li>
790
791 <li><a href="http://www.hungry.com/~pere/blog/tags/standard">standard (76)</a></li>
792
793 <li><a href="http://www.hungry.com/~pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
794
795 <li><a href="http://www.hungry.com/~pere/blog/tags/stortinget">stortinget (14)</a></li>
796
797 <li><a href="http://www.hungry.com/~pere/blog/tags/surveillance">surveillance (65)</a></li>
798
799 <li><a href="http://www.hungry.com/~pere/blog/tags/sysadmin">sysadmin (5)</a></li>
800
801 <li><a href="http://www.hungry.com/~pere/blog/tags/usenix">usenix (2)</a></li>
802
803 <li><a href="http://www.hungry.com/~pere/blog/tags/valg">valg (9)</a></li>
804
805 <li><a href="http://www.hungry.com/~pere/blog/tags/verkidetfri">verkidetfri (22)</a></li>
806
807 <li><a href="http://www.hungry.com/~pere/blog/tags/video">video (80)</a></li>
808
809 <li><a href="http://www.hungry.com/~pere/blog/tags/vitenskap">vitenskap (4)</a></li>
810
811 <li><a href="http://www.hungry.com/~pere/blog/tags/web">web (42)</a></li>
812
813 </ul>
814
815
816 </div>
817 <p style="text-align: right">
818 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
819 </p>
820
821 </body>
822 </html>