]> pere.pagekite.me Git - homepage.git/blob - blog/archive/2024/04/index.html
Generated.
[homepage.git] / blog / archive / 2024 / 04 / 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 April 2024</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="https://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="https://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="04.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <!-- XML FEED -->
13 <div class="title">
14 <h1>
15 <a href="https://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <h3>Entries from April 2024.</h3>
23
24 <div class="entry">
25 <div class="title">
26 <a href="https://people.skolelinux.org/pere/blog/45_orphaned_Debian_packages_moved_to_git__391_to_go.html">45 orphaned Debian packages moved to git, 391 to go</a>
27 </div>
28 <div class="date">
29 25th April 2024
30 </div>
31 <div class="body">
32 <p>Nine days ago, I started migrating orphaned Debian packages with no
33 version control system listed in debian/control of the source to git.
34 At the time there were 438 such packages. Now there are 391,
35 according to the UDD. In reality it is slightly less, as there is a
36 delay between uploads and UDD updates. In the nine days since, I have
37 thus been able to work my way through ten percent of the packages. I
38 am starting to run out of steam, and hope someone else will also help
39 brushing some dust of these packages. Here is a recipe how to do it.
40
41 I start by picking a random package by querying the UDD for a list of
42 10 random packages from the set of remaining packages:
43
44 <blockquote><pre>
45 PGPASSWORD="udd-mirror" psql --port=5432 --host=udd-mirror.debian.net \
46 --username=udd-mirror udd -c "select source from sources \
47 where release = 'sid' and (vcs_url ilike '%anonscm.debian.org%' \
48 OR vcs_browser ilike '%anonscm.debian.org%' or vcs_url IS NULL \
49 OR vcs_browser IS NULL) AND maintainer ilike '%packages@qa.debian.org%' \
50 order by random() limit 10;"
51 </pre></blockquote>
52
53 <p>Next, I visit http://salsa.debian.org/debian and search for the
54 package name, to ensure no git repository already exist. If it does,
55 I clone it and try to get it to an uploadable state, and add the Vcs-*
56 entries in d/control to make the repository more widely known. These
57 packages are a minority, so I will not cover that use case here.</p>
58
59 <p>For packages without an existing git repository, I run the
60 following script <tt>debian-snap-to-salsa</tt> to prepare a git
61 repository with the existing packaging.</p>
62
63 <blockquote><pre>
64 #!/bin/sh
65 #
66 # See also https://bugs.debian.org/804722#31
67
68 set -e
69
70 # Move to this Standards-Version.
71 SV_LATEST=4.7.0
72
73 PKG="$1"
74
75 if [ -z "$PKG" ]; then
76 echo "usage: $0 <pkgname>"
77 exit 1
78 fi
79
80 if [ -e "${PKG}-salsa" ]; then
81 echo "error: ${PKG}-salsa already exist, aborting."
82 exit 1
83 fi
84
85 if [ -z "ALLOWFAILURE" ] ; then
86 ALLOWFAILURE=false
87 fi
88
89 # Fetch every snapshotted source package. Manually loop until all
90 # transfers succeed, as 'gbp import-dscs --debsnap' do not fail on
91 # download failures.
92 until debsnap --force -v $PKG || $ALLOWFAILURE ; do sleep 1; done
93 mkdir ${PKG}-salsa; cd ${PKG}-salsa
94 git init
95
96 # Specify branches to override any debian/gbp.conf file present in the
97 # source package.
98 gbp import-dscs --debian-branch=master --upstream-branch=upstream \
99 --pristine-tar ../source-$PKG/*.dsc
100
101 # Add Vcs pointing to Salsa Debian project (must be manually created
102 # and pushed to).
103 if ! grep -q ^Vcs- debian/control ; then
104 awk "BEGIN { s=1 } /^\$/ { if (s==1) { print \"Vcs-Browser: https://salsa.debian.org/debian/$PKG\"; print \"Vcs-Git: https://salsa.debian.org/debian/$PKG.git\" }; s=0 } { print }" < debian/control > debian/control.new && mv debian/control.new debian/control
105 git commit -m "Updated vcs in d/control to Salsa." debian/control
106 fi
107
108 # Tell gbp to enforce the use of pristine-tar.
109 inifile +inifile debian/gbp.conf +create +section DEFAULT +key pristine-tar +value True
110 git add debian/gbp.conf
111 git commit -m "Added d/gbp.conf to enforce the use of pristine-tar." debian/gbp.conf
112
113 # Update to latest Standards-Version.
114 SV="$(grep ^Standards-Version: debian/control|awk '{print $2}')"
115 if [ $SV_LATEST != $SV ]; then
116 sed -i "s/\(Standards-Version: \)\(.*\)/\1$SV_LATEST/" debian/control
117 git commit -m "Updated Standards-Version from $SV to $SV_LATEST." debian/control
118 fi
119
120 if grep -q pkg-config debian/control; then
121 sed -i s/pkg-config/pkgconf/ debian/control
122 git commit -m "Replaced obsolete pkg-config build dependency with pkgconf." debian/control
123 fi
124
125 if grep -q libncurses5-dev debian/control; then
126 sed -i s/libncurses5-dev/libncurses-dev/ debian/control
127 git commit -m "Replaced obsolete libncurses5-dev build dependency with libncurses-dev." debian/control
128 fi
129 </pre></blockquote>
130
131 Some times the debsnap script fail to download some of the versions.
132 In those cases I investigate, and if I decide the failing versions
133 will not be missed, I call it using ALLOWFAILURE=true to ignore the
134 problem and create the git repository anyway.</p>
135
136 <p>With the git repository in place, I do a test build (gbp
137 buildpackage) to ensure the build is actually working. If it does not
138 I pick a different package, or if the build failure is trivial to fix,
139 I fix it before continuing. At this stage I revisit
140 http://salsa.debian.org/debian and create the project under this group
141 for the package. I then follow the instructions to publish the local
142 git repository. Here is from a recent example:</p>
143
144 <blockquote><pre>
145 git remote add origin git@salsa.debian.org:debian/perl-byacc.git
146 git push --set-upstream origin master upstream pristine-tar
147 git push --tags
148 </pre></blockquote>
149
150 <p>With a working build, I have a look at the build rules if I want to
151 remove some more dust. I normally try to move to debhelper compat
152 level 13, which involves removing debian/compat and modifying
153 debian/control to build depend on debhelper-compat (=13). I also test
154 with 'Rules-Requires-Root: no' in debian/control and verify in
155 debian/rules that hardening is enabled, and include all of these if
156 the package still build. If it fail to build with level 13, I try
157 with 12, 11, 10 and so on until I find a level where it build, as I do
158 not want to spend a lot of time fixing build issues.</p>
159
160 <p>Some times, when I feel inspired, I make sure debian/copyright is
161 converted to the machine readable format, often by starting with
162 'debhelper -cc' and then cleaning up the autogenerated content until
163 it matches realities. If I feel like it, I might also clean up
164 non-dh-based debian/rules files to use the short style dh build
165 rules.</p>
166
167 <p>Once I have removed all the dust I care to process for the package,
168 I run 'gbp dch' to generate a debian/changelog entry based on the
169 commits done so far, run 'dch -r' to switch from 'UNRELEASED' to
170 'unstable' and get an editor to make sure the 'QA upload' marker is in
171 place and that all long commit descriptions are wrapped into sensible
172 lengths, run 'debcommit --release -a' to commit and tag the new
173 debian/changelog entry, run 'debuild -S' to build a source only
174 package, and 'dput ../perl-byacc_2.0-10_source.changes' to do the
175 upload. During the entire process, and many times per step, I run
176 'debuild' to verify the changes done still work. I also some times
177 verify the set of built files using 'find debian' to see if I can spot
178 any problems (like no file in usr/bin any more or empty package). I
179 also try to fix all lintian issues reported at the end of each
180 'debuild' run.</p>
181
182 <p>If I find Debian specific patches, I try to ensure their metadata
183 is fairly up to date and some times I even try to reach out to
184 upstream, to make the upstream project aware of the patches. Most of
185 my emails bounce, so the success rate is low. For projects with no
186 Homepage entry in debian/control I try to track down one, and for
187 packages with no debian/watch file I try to create one. But at least
188 for some of the packages I have been unable to find a functioning
189 upstream, and must skip both of these.</p>
190
191 <p>If I could handle ten percent in nine days, twenty people could
192 complete the rest in less then five days. I use approximately twenty
193 minutes per package, when I have twenty minutes spare time to spend.
194 Perhaps you got twenty minutes to spare too?</p>
195
196 <p>As usual, if you use Bitcoin and want to show your support of my
197 activities, please send Bitcoin donations to my address
198 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
199
200 </div>
201 <div class="tags">
202
203
204 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>.
205
206
207 </div>
208 </div>
209 <div class="padding"></div>
210
211 <div class="entry">
212 <div class="title">
213 <a href="https://people.skolelinux.org/pere/blog/RAID_status_from_LSI_Megaraid_controllers_in_Debian.html">RAID status from LSI Megaraid controllers in Debian</a>
214 </div>
215 <div class="date">
216 17th April 2024
217 </div>
218 <div class="body">
219 <p>I am happy to report that
220 <a href="https://github.com/namiltd/megactl">the megactl package</a>,
221 useful to fetch RAID status when using the LSI Megaraid controller,
222 now is available in Debian. It passed NEW a few days ago, and is now
223 <a href="https://tracker.debian.org/pkg/megactl">available in
224 unstable</a>, and probably showing up in testing in a weeks time. The
225 new version should provide Appstream hardware mapping and should
226 integrate nicely with isenkram.</p>
227
228 <p>As usual, if you use Bitcoin and want to show your support of my
229 activities, please send Bitcoin donations to my address
230 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
231
232
233 </div>
234 <div class="tags">
235
236
237 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>, <a href="https://people.skolelinux.org/pere/blog/tags/raid">raid</a>.
238
239
240 </div>
241 </div>
242 <div class="padding"></div>
243
244 <div class="entry">
245 <div class="title">
246 <a href="https://people.skolelinux.org/pere/blog/Time_to_move_orphaned_Debian_packages_to_git.html">Time to move orphaned Debian packages to git</a>
247 </div>
248 <div class="date">
249 14th April 2024
250 </div>
251 <div class="body">
252 <p>There are several packages in Debian without a associated git
253 repository with the packaging history. This is unfortunate and it
254 would be nice if more of these would do so. Quote a lot of these are
255 without a maintainer, ie listed as maintained by the
256 '<a href="https://qa.debian.org/developer.php?email=packages%40qa.debian.org">Debian
257 QA Group</a>' place holder. In fact, 438 packages have this property
258 according to UDD (<tt>SELECT source FROM sources WHERE release = 'sid'
259 AND (vcs_url ilike '%anonscm.debian.org%' OR vcs_browser ilike
260 '%anonscm.debian.org%' or vcs_url IS NULL OR vcs_browser IS NULL) AND
261 maintainer ilike '%packages@qa.debian.org%';</tt>). Such packages can
262 be updated without much coordination by any Debian developer, as they
263 are considered orphaned.</p>
264
265 <p>To try to improve the situation and reduce the number of packages
266 without associated git repository, I started a few days ago to search
267 out candiates and provide them with a git repository under the
268 'debian' collaborative Salsa project. I started with the packages
269 pointing to obsolete Alioth git repositories, and am now working my
270 way across the ones completely without git references. In addition to
271 updating the Vcs-* debian/control fields, I try to update
272 Standards-Version, debhelper compat level, simplify d/rules, switch to
273 Rules-Requires-Root: no and fix lintian issues reported. I only
274 implement those that are trivial to fix, to avoid spending too much
275 time on each orphaned package. So far my experience is that it take
276 aproximately 20 minutes to convert a package without any git
277 references, and a lot more for packages with existing git repositories
278 incompatible with git-buildpackages.</p>
279
280 <p>So far I have converted 10 packages, and I will keep going until I
281 run out of steam. As should be clear from the numbers, there is
282 enough packages remaining for more people to do the same without
283 stepping on each others toes. I find it useful to start by searching
284 for a git repo already on salsa, as I find that some times a git repo
285 has already been created, but no new version is uploaded to Debian
286 yet. In those cases I start with the existing git repository. I
287 convert to the git-buildpackage+pristine-tar workflow, and ensure a
288 debian/gbp.conf file with "pristine-tar=True" is added early, to avoid
289 uploading a orig.tar.gz with the wrong checksum by mistake. Did that
290 three times in the begin before I remembered my mistake.</p>
291
292 <p>So, if you are a Debian Developer and got some spare time, perhaps
293 considering migrating some orphaned packages to git?</p>
294
295 <p>As usual, if you use Bitcoin and want to show your support of my
296 activities, please send Bitcoin donations to my address
297 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
298
299 </div>
300 <div class="tags">
301
302
303 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>.
304
305
306 </div>
307 </div>
308 <div class="padding"></div>
309
310 <p style="text-align: right;"><a href="04.rss"><img src="https://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
311 <div id="sidebar">
312
313
314
315 <h2>Archive</h2>
316 <ul>
317
318 <li>2024
319 <ul>
320
321 <li><a href="https://people.skolelinux.org/pere/blog/archive/2024/01/">January (1)</a></li>
322
323 <li><a href="https://people.skolelinux.org/pere/blog/archive/2024/02/">February (1)</a></li>
324
325 <li><a href="https://people.skolelinux.org/pere/blog/archive/2024/03/">March (2)</a></li>
326
327 <li><a href="https://people.skolelinux.org/pere/blog/archive/2024/04/">April (3)</a></li>
328
329 </ul></li>
330
331 <li>2023
332 <ul>
333
334 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/01/">January (3)</a></li>
335
336 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/02/">February (1)</a></li>
337
338 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/04/">April (2)</a></li>
339
340 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/05/">May (3)</a></li>
341
342 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/06/">June (1)</a></li>
343
344 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/08/">August (1)</a></li>
345
346 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/09/">September (1)</a></li>
347
348 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/10/">October (1)</a></li>
349
350 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/11/">November (4)</a></li>
351
352 <li><a href="https://people.skolelinux.org/pere/blog/archive/2023/12/">December (1)</a></li>
353
354 </ul></li>
355
356 <li>2022
357 <ul>
358
359 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/02/">February (1)</a></li>
360
361 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/03/">March (3)</a></li>
362
363 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/04/">April (2)</a></li>
364
365 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/06/">June (2)</a></li>
366
367 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/07/">July (1)</a></li>
368
369 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/09/">September (1)</a></li>
370
371 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/10/">October (1)</a></li>
372
373 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/12/">December (1)</a></li>
374
375 </ul></li>
376
377 <li>2021
378 <ul>
379
380 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/01/">January (2)</a></li>
381
382 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/02/">February (1)</a></li>
383
384 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/05/">May (1)</a></li>
385
386 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/06/">June (1)</a></li>
387
388 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/07/">July (3)</a></li>
389
390 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/08/">August (1)</a></li>
391
392 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/09/">September (1)</a></li>
393
394 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/10/">October (1)</a></li>
395
396 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/12/">December (1)</a></li>
397
398 </ul></li>
399
400 <li>2020
401 <ul>
402
403 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/02/">February (2)</a></li>
404
405 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/03/">March (2)</a></li>
406
407 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/04/">April (2)</a></li>
408
409 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/05/">May (3)</a></li>
410
411 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/06/">June (2)</a></li>
412
413 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/07/">July (1)</a></li>
414
415 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/09/">September (1)</a></li>
416
417 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/10/">October (1)</a></li>
418
419 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/11/">November (1)</a></li>
420
421 </ul></li>
422
423 <li>2019
424 <ul>
425
426 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
427
428 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
429
430 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
431
432 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/05/">May (2)</a></li>
433
434 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/06/">June (5)</a></li>
435
436 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/07/">July (2)</a></li>
437
438 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/08/">August (1)</a></li>
439
440 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/09/">September (1)</a></li>
441
442 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/11/">November (1)</a></li>
443
444 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/12/">December (4)</a></li>
445
446 </ul></li>
447
448 <li>2018
449 <ul>
450
451 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
452
453 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
454
455 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
456
457 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
458
459 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
460
461 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
462
463 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
464
465 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
466
467 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
468
469 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
470
471 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
472
473 </ul></li>
474
475 <li>2017
476 <ul>
477
478 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
479
480 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
481
482 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
483
484 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
485
486 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
487
488 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
489
490 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
491
492 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
493
494 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
495
496 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
497
498 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
499
500 </ul></li>
501
502 <li>2016
503 <ul>
504
505 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
506
507 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
508
509 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
510
511 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
512
513 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
514
515 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
516
517 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
518
519 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
520
521 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
522
523 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
524
525 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
526
527 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
528
529 </ul></li>
530
531 <li>2015
532 <ul>
533
534 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
535
536 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
537
538 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
539
540 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
541
542 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
543
544 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
545
546 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
547
548 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
549
550 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
551
552 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
553
554 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
555
556 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
557
558 </ul></li>
559
560 <li>2014
561 <ul>
562
563 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
564
565 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
566
567 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
568
569 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
570
571 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
572
573 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
574
575 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
576
577 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
578
579 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
580
581 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
582
583 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
584
585 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
586
587 </ul></li>
588
589 <li>2013
590 <ul>
591
592 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
593
594 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
595
596 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
597
598 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
599
600 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
601
602 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
603
604 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
605
606 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
607
608 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
609
610 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
611
612 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
613
614 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
615
616 </ul></li>
617
618 <li>2012
619 <ul>
620
621 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
622
623 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
624
625 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
626
627 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
628
629 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
630
631 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
632
633 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
634
635 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
636
637 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
638
639 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
640
641 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
642
643 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
644
645 </ul></li>
646
647 <li>2011
648 <ul>
649
650 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
651
652 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
653
654 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
655
656 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
657
658 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
659
660 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
661
662 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
663
664 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
665
666 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
667
668 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
669
670 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
671
672 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
673
674 </ul></li>
675
676 <li>2010
677 <ul>
678
679 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
680
681 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
682
683 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
684
685 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
686
687 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
688
689 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
690
691 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
692
693 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
694
695 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
696
697 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
698
699 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
700
701 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
702
703 </ul></li>
704
705 <li>2009
706 <ul>
707
708 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
709
710 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
711
712 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
713
714 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
715
716 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
717
718 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
719
720 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
721
722 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
723
724 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
725
726 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
727
728 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
729
730 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
731
732 </ul></li>
733
734 <li>2008
735 <ul>
736
737 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
738
739 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
740
741 </ul></li>
742
743 </ul>
744
745
746
747 <h2>Tags</h2>
748 <ul>
749
750 <li><a href="https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (19)</a></li>
751
752 <li><a href="https://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
753
754 <li><a href="https://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
755
756 <li><a href="https://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
757
758 <li><a href="https://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (9)</a></li>
759
760 <li><a href="https://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (13)</a></li>
761
762 <li><a href="https://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
763
764 <li><a href="https://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
765
766 <li><a href="https://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (3)</a></li>
767
768 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian">debian (199)</a></li>
769
770 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (159)</a></li>
771
772 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
773
774 <li><a href="https://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
775
776 <li><a href="https://people.skolelinux.org/pere/blog/tags/dld">dld (18)</a></li>
777
778 <li><a href="https://people.skolelinux.org/pere/blog/tags/docbook">docbook (32)</a></li>
779
780 <li><a href="https://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
781
782 <li><a href="https://people.skolelinux.org/pere/blog/tags/english">english (461)</a></li>
783
784 <li><a href="https://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
785
786 <li><a href="https://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
787
788 <li><a href="https://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (34)</a></li>
789
790 <li><a href="https://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
791
792 <li><a href="https://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
793
794 <li><a href="https://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
795
796 <li><a href="https://people.skolelinux.org/pere/blog/tags/intervju">intervju (43)</a></li>
797
798 <li><a href="https://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (18)</a></li>
799
800 <li><a href="https://people.skolelinux.org/pere/blog/tags/kart">kart (23)</a></li>
801
802 <li><a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi (6)</a></li>
803
804 <li><a href="https://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
805
806 <li><a href="https://people.skolelinux.org/pere/blog/tags/lego">lego (5)</a></li>
807
808 <li><a href="https://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
809
810 <li><a href="https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc (5)</a></li>
811
812 <li><a href="https://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
813
814 <li><a href="https://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
815
816 <li><a href="https://people.skolelinux.org/pere/blog/tags/madewithcc">madewithcc (3)</a></li>
817
818 <li><a href="https://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
819
820 <li><a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (46)</a></li>
821
822 <li><a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (15)</a></li>
823
824 <li><a href="https://people.skolelinux.org/pere/blog/tags/noark5">noark5 (25)</a></li>
825
826 <li><a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk (324)</a></li>
827
828 <li><a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug (199)</a></li>
829
830 <li><a href="https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (41)</a></li>
831
832 <li><a href="https://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
833
834 <li><a href="https://people.skolelinux.org/pere/blog/tags/opensnitch">opensnitch (4)</a></li>
835
836 <li><a href="https://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (76)</a></li>
837
838 <li><a href="https://people.skolelinux.org/pere/blog/tags/personvern">personvern (114)</a></li>
839
840 <li><a href="https://people.skolelinux.org/pere/blog/tags/raid">raid (4)</a></li>
841
842 <li><a href="https://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
843
844 <li><a href="https://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
845
846 <li><a href="https://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
847
848 <li><a href="https://people.skolelinux.org/pere/blog/tags/robot">robot (17)</a></li>
849
850 <li><a href="https://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
851
852 <li><a href="https://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
853
854 <li><a href="https://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
855
856 <li><a href="https://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (60)</a></li>
857
858 <li><a href="https://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
859
860 <li><a href="https://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
861
862 <li><a href="https://people.skolelinux.org/pere/blog/tags/standard">standard (76)</a></li>
863
864 <li><a href="https://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
865
866 <li><a href="https://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (14)</a></li>
867
868 <li><a href="https://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (65)</a></li>
869
870 <li><a href="https://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (5)</a></li>
871
872 <li><a href="https://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
873
874 <li><a href="https://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
875
876 <li><a href="https://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (22)</a></li>
877
878 <li><a href="https://people.skolelinux.org/pere/blog/tags/video">video (80)</a></li>
879
880 <li><a href="https://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
881
882 <li><a href="https://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
883
884 </ul>
885
886
887 </div>
888 <p style="text-align: right">
889 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
890 </p>
891
892 </body>
893 </html>