X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/664e29a948f20e356de06149be10c64ac3ea9b7b..4c577a2684bd40ae4a21e681a6adad7e27b6f70d:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index 4bf4664e98..06d0d1a451 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,622 @@ http://people.skolelinux.org/pere/blog/ + + New lsdvd release version 0.17 is ready + http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html + http://people.skolelinux.org/pere/blog/New_lsdvd_release_version_0_17_is_ready.html + Sat, 4 Oct 2014 08:40:00 +0200 + <p>The <a href="https://sourceforge.net/p/lsdvd/">lsdvd project</a> +got a new set of developers a few weeks ago, after the original +developer decided to step down and pass the project to fresh blood. +This project is now maintained by Petter Reinholdtsen and Steve +Dibb.</p> + +<p>I just wrapped up +<a href="https://sourceforge.net/p/lsdvd/mailman/message/32896061/">a +new lsdvd release</a>, available in git or from +<a href="https://sourceforge.net/projects/lsdvd/files/lsdvd/">the +download page</a>. This is the changelog dated 2014-10-03 for version +0.17.</p> + +<ul> + + <li>Ignore 'phantom' audio, subtitle tracks</li> + <li>Check for garbage in the program chains, which indicate that a track is + non-existant, to work around additional copy protection</li> + <li>Fix displaying content type for audio tracks, subtitles</li> + <li>Fix pallete display of first entry</li> + <li>Fix include orders</li> + <li>Ignore read errors in titles that would not be displayed anyway</li> + <li>Fix the chapter count</li> + <li>Make sure the array size and the array limit used when initialising + the palette size is the same.</li> + <li>Fix array printing.</li> + <li>Correct subsecond calculations.</li> + <li>Add sector information to the output format.</li> + <li>Clean up code to be closer to ANSI C and compile without warnings + with more GCC compiler warnings.</li> + +</ul> + +<p>This change bring together patches for lsdvd in use in various +Linux and Unix distributions, as well as patches submitted to the +project the last nine years. Please check it out. :)</p> + + + + + How to test Debian Edu Jessie despite some fatal problems with the installer + http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html + http://people.skolelinux.org/pere/blog/How_to_test_Debian_Edu_Jessie_despite_some_fatal_problems_with_the_installer.html + Fri, 26 Sep 2014 12:20:00 +0200 + <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux +project</a> provide a Linux solution for schools, including a +powerful desktop with education software, a central server providing +web pages, user database, user home directories, central login and PXE +boot of both clients without disk and the installation to install Debian +Edu on machines with disk (and a few other services perhaps to small +to mention here). We in the Debian Edu team are currently working on +the Jessie based version, trying to get everything in shape before the +freeze, to avoid having to maintain our own package repository in the +future. The +<a href="https://wiki.debian.org/DebianEdu/Status/Jessie">current +status</a> can be seen on the Debian wiki, and there is still heaps of +work left. Some fatal problems block testing, breaking the installer, +but it is possible to work around these to get anyway. Here is a +recipe on how to get the installation limping along.</p> + +<p>First, download the test ISO via +<a href="ftp://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso">ftp</a>, +<a href="http://ftp.skolelinux.no/cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso">http</a> +or rsync (use +ftp.skolelinux.org::cd-edu-testing-nolocal-netinst/debian-edu-amd64-i386-NETINST-1.iso). +The ISO build was broken on Tuesday, so we do not get a new ISO every +12 hours or so, but thankfully the ISO we already got we are able to +install with some tweaking.</p> + +<p>When you get to the Debian Edu profile question, go to tty2 +(use Alt-Ctrl-F2), run</p> + +<p><blockquote><pre> +nano /usr/bin/edu-eatmydata-install +</pre></blockquote></p> + +<p>and add 'exit 0' as the second line, disabling the eatmydata +optimization. Return to the installation, select the profile you want +and continue. Without this change, exim4-config will fail to install +due to a known bug in eatmydata.</p> + +<p>When you get the grub question at the end, answer /dev/sda (or if +this do not work, figure out what your correct value would be. All my +test machines need /dev/sda, so I have no advice if it do not fit +your need.</p> + +<p>If you installed a profile including a graphical desktop, log in as +root after the initial boot from hard drive, and install the +education-desktop-XXX metapackage. XXX can be kde, gnome, lxde, xfce +or mate. If you want several desktop options, install more than one +metapackage. Once this is done, reboot and you should have a working +graphical login screen. This workaround should no longer be needed +once the education-tasks package version 1.801 enter testing in two +days.</p> + +<p>I believe the ISO build will start working on two days when the new +tasksel package enter testing and Steve McIntyre get a chance to +update the debian-cd git repository. The eatmydata, grub and desktop +issues are already fixed in unstable and testing, and should show up +on the ISO as soon as the ISO build start working again. Well the +eatmydata optimization is really just disabled. The proper fix +require an upload by the eatmydata maintainer applying the patch +provided in bug <a href="https://bugs.debian.org/702711">#702711</a>. +The rest have proper fixes in unstable.</p> + +<p>I hope this get you going with the installation testing, as we are +quickly running out of time trying to get our Jessie based +installation ready before the distribution freeze in a month.</p> + + + + + Suddenly I am the new upstream of the lsdvd command line tool + http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html + http://people.skolelinux.org/pere/blog/Suddenly_I_am_the_new_upstream_of_the_lsdvd_command_line_tool.html + Thu, 25 Sep 2014 11:20:00 +0200 + <p>I use the <a href="https://sourceforge.net/p/lsdvd/">lsdvd tool</a> +to handle my fairly large DVD collection. It is a nice command line +tool to get details about a DVD, like title, tracks, track length, +etc, in XML, Perl or human readable format. But lsdvd have not seen +any new development since 2006 and had a few irritating bugs affecting +its use with some DVDs. Upstream seemed to be dead, and in January I +sent a small probe asking for a version control repository for the +project, without any reply. But I use it regularly and would like to +get <a href="https://packages.qa.debian.org/lsdvd">an updated version +into Debian</a>. So two weeks ago I tried harder to get in touch with +the project admin, and after getting a reply from him explaining that +he was no longer interested in the project, I asked if I could take +over. And yesterday, I became project admin.</p> + +<p>I've been in touch with a Gentoo developer and the Debian +maintainer interested in joining forces to maintain the upstream +project, and I hope we can get a new release out fairly quickly, +collecting the patches spread around on the internet into on place. +I've added the relevant Debian patches to the freshly created git +repository, and expect the Gentoo patches to make it too. If you got +a DVD collection and care about command line tools, check out +<a href="https://sourceforge.net/p/lsdvd/git/ci/master/tree/">the git source</a> and join +<a href="https://sourceforge.net/p/lsdvd/mailman/">the project mailing +list</a>. :)</p> + + + + + Hva henger under skibrua over E16 på Sollihøgda? + http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html + http://people.skolelinux.org/pere/blog/Hva_henger_under_skibrua_over_E16_p__Sollih_gda_.html + Sun, 21 Sep 2014 09:50:00 +0200 + <p>Rundt omkring i Oslo og Østlandsområdet henger det bokser over +veiene som jeg har lurt på hva gjør. De har ut fra plassering og +vinkling sett ut som bokser som sniffer ut et eller annet fra +forbipasserende trafikk, men det har vært uklart for meg hva det er de +leser av. Her om dagen tok jeg bilde av en slik boks som henger under +<a href="http://www.openstreetmap.no/?zoom=19&mlat=59.96396&mlon=10.34443&layers=B00000">ei +skibru på Sollihøgda</a>:</p> + +<p align="center"><img width="60%" src="http://people.skolelinux.org/pere/blog/images/2014-09-13-kapsch-sollihogda-crop.jpeg"></p> + +<p>Boksen er tydelig merket «Kapsch >>>», logoen til +<a href="http://www.kapsch.net/">det sveitsiske selskapet Kapsch</a> som +blant annet lager sensorsystemer for veitrafikk. Men de lager mye +forskjellig, og jeg kjente ikke igjen boksen på utseendet etter en +kjapp titt på produktlista til selskapet.</p> + +<p>I og med at boksen henger over veien E16, en riksvei vedlikeholdt +av Statens Vegvesen, så antok jeg at det burde være mulig å bruke +REST-API-et som gir tilgang til vegvesenets database over veier, +skilter og annet veirelatert til å finne ut hva i alle dager dette +kunne være. De har både +<a href="https://www.vegvesen.no/nvdb/api/dokumentasjon/datakatalog">en +datakatalog</a> og +<a href="https://www.vegvesen.no/nvdb/api/dokumentasjon/sok">et +søk</a>, der en kan søke etter ulike typer oppføringer innen for et +gitt geografisk område. Jeg laget et enkelt shell-script for å hente +ut antall av en gitt type innenfor området skibrua dekker, og listet +opp navnet på typene som ble funnet. Orket ikke slå opp hvordan +URL-koding av aktuelle strenger kunne gjøres mer generisk, og brukte +en stygg sed-linje i stedet.</p> + +<blockquote><pre> +#!/bin/sh +urlmap() { + sed \ + -e 's/ / /g' -e 's/{/%7B/g' \ + -e 's/}/%7D/g' -e 's/\[/%5B/g' \ + -e 's/\]/%5D/g' -e 's/ /%20/g' \ + -e 's/,/%2C/g' -e 's/\"/%22/g' \ + -e 's/:/%3A/g' +} + +lookup() { + url="$1" + curl -s -H 'Accept: application/vnd.vegvesen.nvdb-v1+xml' \ + "https://www.vegvesen.no/nvdb/api$url" | xmllint --format - +} + +for id in $(seq 1 874) ; do + search="{ + lokasjon: { + bbox: \"10.34425,59.96386,10.34458,59.96409\", + srid: \"WGS84\" + }, + objektTyper: [{ + id: $id, antall: 10 + }] +}" + + query=/sok?kriterie=$(echo $search | urlmap) + if lookup "$query" | + grep -q '&lt;totaltAntallReturnert>0&lt;' + then + : + else + echo $id + lookup "/datakatalog/objekttyper/$id" |grep '^ &lt;navn>' + fi +done + +exit 0 +</pre></blockquote> + +Aktuelt ID-område 1-874 var riktig i datakatalogen da jeg laget +scriptet. Det vil endre seg over tid. Skriptet listet så opp +aktuelle typer i og rundt skibrua: + +<blockquote><pre> +5 + &lt;navn>Rekkverk&lt;/navn> +14 + &lt;navn>Rekkverksende&lt;/navn> +47 + &lt;navn>Trafikklomme&lt;/navn> +49 + &lt;navn>Trafikkøy&lt;/navn> +60 + &lt;navn>Bru&lt;/navn> +79 + &lt;navn>Stikkrenne/Kulvert&lt;/navn> +80 + &lt;navn>Grøft, åpen&lt;/navn> +86 + &lt;navn>Belysningsstrekning&lt;/navn> +95 + &lt;navn>Skiltpunkt&lt;/navn> +96 + &lt;navn>Skiltplate&lt;/navn> +98 + &lt;navn>Referansestolpe&lt;/navn> +99 + &lt;navn>Vegoppmerking, langsgående&lt;/navn> +105 + &lt;navn>Fartsgrense&lt;/navn> +106 + &lt;navn>Vinterdriftsstrategi&lt;/navn> +172 + &lt;navn>Trafikkdeler&lt;/navn> +241 + &lt;navn>Vegdekke&lt;/navn> +293 + &lt;navn>Breddemåling&lt;/navn> +301 + &lt;navn>Kantklippareal&lt;/navn> +318 + &lt;navn>Snø-/isrydding&lt;/navn> +445 + &lt;navn>Skred&lt;/navn> +446 + &lt;navn>Dokumentasjon&lt;/navn> +452 + &lt;navn>Undergang&lt;/navn> +528 + &lt;navn>Tverrprofil&lt;/navn> +532 + &lt;navn>Vegreferanse&lt;/navn> +534 + &lt;navn>Region&lt;/navn> +535 + &lt;navn>Fylke&lt;/navn> +536 + &lt;navn>Kommune&lt;/navn> +538 + &lt;navn>Gate&lt;/navn> +539 + &lt;navn>Transportlenke&lt;/navn> +540 + &lt;navn>Trafikkmengde&lt;/navn> +570 + &lt;navn>Trafikkulykke&lt;/navn> +571 + &lt;navn>Ulykkesinvolvert enhet&lt;/navn> +572 + &lt;navn>Ulykkesinvolvert person&lt;/navn> +579 + &lt;navn>Politidistrikt&lt;/navn> +583 + &lt;navn>Vegbredde&lt;/navn> +591 + &lt;navn>Høydebegrensning&lt;/navn> +592 + &lt;navn>Nedbøyningsmåling&lt;/navn> +597 + &lt;navn>Støy-luft, Strekningsdata&lt;/navn> +601 + &lt;navn>Oppgravingsdata&lt;/navn> +602 + &lt;navn>Oppgravingslag&lt;/navn> +603 + &lt;navn>PMS-parsell&lt;/navn> +604 + &lt;navn>Vegnormalstrekning&lt;/navn> +605 + &lt;navn>Værrelatert strekning&lt;/navn> +616 + &lt;navn>Feltstrekning&lt;/navn> +617 + &lt;navn>Adressepunkt&lt;/navn> +626 + &lt;navn>Friksjonsmåleserie&lt;/navn> +629 + &lt;navn>Vegdekke, flatelapping&lt;/navn> +639 + &lt;navn>Kurvatur, horisontalelement&lt;/navn> +640 + &lt;navn>Kurvatur, vertikalelement&lt;/navn> +642 + &lt;navn>Kurvatur, vertikalpunkt&lt;/navn> +643 + &lt;navn>Statistikk, trafikkmengde&lt;/navn> +647 + &lt;navn>Statistikk, vegbredde&lt;/navn> +774 + &lt;navn>Nedbøyningsmåleserie&lt;/navn> +775 + &lt;navn>ATK, influensstrekning&lt;/navn> +794 + &lt;navn>Systemobjekt&lt;/navn> +810 + &lt;navn>Vinterdriftsklasse&lt;/navn> +821 + &lt;navn>Funksjonell vegklasse&lt;/navn> +825 + &lt;navn>Kurvatur, stigning&lt;/navn> +838 + &lt;navn>Vegbredde, beregnet&lt;/navn> +862 + &lt;navn>Reisetidsregistreringspunkt&lt;/navn> +871 + &lt;navn>Bruksklasse&lt;/navn> +</pre></blockquote> + +<p>Av disse ser ID 775 og 862 mest relevant ut. ID 775 antar jeg +refererer til fotoboksen som står like ved brua, mens +«Reisetidsregistreringspunkt» kanskje kan være boksen som henger der. +Hvordan finner jeg så ut hva dette kan være for noe. En titt på +<a href="http://labs.vegdata.no/nvdb-datakatalog/862-Reisetidsregistreringspunkt/">datakatalogsiden +for ID 862/Reisetidsregistreringspunkt</a> viser at det er finnes 53 +slike målere i Norge, og hvor de er plassert, men gir ellers få +detaljer. Det er plassert 40 på østlandet og 13 i Trondheimsregionen. +Men siden nevner «AutoPASS», og hvis en slår opp oppføringen på +Sollihøgda nevner den «Ciber AS» som ID for eksternt system. (Kan det +være snakk om +<a href="http://www.proff.no/selskap/ciber-norge-as/oslo/internettdesign-og-programmering/Z0I3KMF4/">Ciber +Norge AS</a>, et selskap eid av Ciber Europe Bv?) Et nettsøk på + «Ciber AS autopass» fører meg til en artikkel fra NRK Trøndelag i + 2013 med tittel +«<a href="http://www.nrk.no/trondelag/sjekk-dette-hvis-du-vil-unnga-ko-1.11327947">Sjekk +dette hvis du vil unngå kø</a>». Artikkelen henviser til vegvesenets +nettside +<a href="http://www.reisetider.no/reisetid/forside.html">reisetider.no</a> +som har en +<a href="http://www.reisetider.no/reisetid/omrade.html?omrade=5">kartside +for Østlandet</a> som viser at det måles mellom Sandvika og Sollihøgda. +Det kan dermed se ut til at jeg har funnet ut hva boksene gjør.</p> + +<p>Hvis det stemmer, så er dette bokser som leser av AutoPASS-ID-en +til alle passerende biler med AutoPASS-brikke, og dermed gjør det mulig +for de som kontrollerer boksene å holde rede på hvor en gitt bil er +når den passerte et slikt målepunkt. NRK-artikkelen forteller at +denne informasjonen i dag kun brukes til å koble to +AutoPASS-brikkepasseringer passeringer sammen for å beregne +reisetiden, og at bruken er godkjent av Datatilsynet. Det er desverre +ikke mulig for en sjåfør som passerer under en slik boks å kontrollere +at AutoPASS-ID-en kun brukes til dette i dag og i fremtiden.</p> + +<p>I tillegg til denne type AutoPASS-sniffere vet jeg at det også +finnes mange automatiske stasjoner som tar betalt pr. passering (aka +bomstasjoner), og der lagres informasjon om tid, sted og bilnummer i +10 år. Finnes det andre slike sniffere plassert ut på veiene?</p> + +<p>Personlig har jeg valgt å ikke bruke AutoPASS-brikke, for å gjøre +det vanskeligere og mer kostbart for de som vil invadere privatsfæren +og holde rede på hvor bilen min beveger seg til enhver tid. Jeg håper +flere vil gjøre det samme, selv om det gir litt høyere private +utgifter (dyrere bompassering). Vern om privatsfæren koster i disse +dager.</p> + +<p>Takk til Jan Kristian Jensen i Statens Vegvesen for tips om +dokumentasjon på vegvesenets REST-API.</p> + + + + + Speeding up the Debian installer using eatmydata and dpkg-divert + http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html + http://people.skolelinux.org/pere/blog/Speeding_up_the_Debian_installer_using_eatmydata_and_dpkg_divert.html + Tue, 16 Sep 2014 14:00:00 +0200 + <p>The <a href="https://www.debian.org/">Debian</a> installer could be +a lot quicker. When we install more than 2000 packages in +<a href="http://www.skolelinux.org/">Skolelinux / Debian Edu</a> using +tasksel in the installer, unpacking the binary packages take forever. +A part of the slow I/O issue was discussed in +<a href="https://bugs.debian.org/613428">bug #613428</a> about too +much file system sync-ing done by dpkg, which is the package +responsible for unpacking the binary packages. Other parts (like code +executed by postinst scripts) might also sync to disk during +installation. All this sync-ing to disk do not really make sense to +me. If the machine crash half-way through, I start over, I do not try +to salvage the half installed system. So the failure sync-ing is +supposed to protect against, hardware or system crash, is not really +relevant while the installer is running.</p> + +<p>A few days ago, I thought of a way to get rid of all the file +system sync()-ing in a fairly non-intrusive way, without the need to +change the code in several packages. The idea is not new, but I have +not heard anyone propose the approach using dpkg-divert before. It +depend on the small and clever package +<a href="https://packages.qa.debian.org/eatmydata">eatmydata</a>, which +uses LD_PRELOAD to replace the system functions for syncing data to +disk with functions doing nothing, thus allowing programs to live +dangerous while speeding up disk I/O significantly. Instead of +modifying the implementation of dpkg, apt and tasksel (which are the +packages responsible for selecting, fetching and installing packages), +it occurred to me that we could just divert the programs away, replace +them with a simple shell wrapper calling +"eatmydata&nbsp;$program&nbsp;$@", to get the same effect. +Two days ago I decided to test the idea, and wrapped up a simple +implementation for the Debian Edu udeb.</p> + +<p>The effect was stunning. In my first test it reduced the running +time of the pkgsel step (installing tasks) from 64 to less than 44 +minutes (20 minutes shaved off the installation) on an old Dell +Latitude D505 machine. I am not quite sure what the optimised time +would have been, as I messed up the testing a bit, causing the debconf +priority to get low enough for two questions to pop up during +installation. As soon as I saw the questions I moved the installation +along, but do not know how long the question were holding up the +installation. I did some more measurements using Debian Edu Jessie, +and got these results. The time measured is the time stamp in +/var/log/syslog between the "pkgsel: starting tasksel" and the +"pkgsel: finishing up" lines, if you want to do the same measurement +yourself. In Debian Edu, the tasksel dialog do not show up, and the +timing thus do not depend on how quickly the user handle the tasksel +dialog.</p> + +<p><table> + +<tr> +<th>Machine/setup</th> +<th>Original tasksel</th> +<th>Optimised tasksel</th> +<th>Reduction</th> +</tr> + +<tr> +<td>Latitude D505 Main+LTSP LXDE</td> +<td>64 min (07:46-08:50)</td> +<td><44 min (11:27-12:11)</td> +<td>>20 min 18%</td> +</tr> + +<tr> +<td>Latitude D505 Roaming LXDE</td> +<td>57 min (08:48-09:45)</td> +<td>34 min (07:43-08:17)</td> +<td>23 min 40%</td> +</tr> + +<tr> +<td>Latitude D505 Minimal</td> +<td>22 min (10:37-10:59)</td> +<td>11 min (11:16-11:27)</td> +<td>11 min 50%</td> +</tr> + +<tr> +<td>Thinkpad X200 Minimal</td> +<td>6 min (08:19-08:25)</td> +<td>4 min (08:04-08:08)</td> +<td>2 min 33%</td> +</tr> + +<tr> +<td>Thinkpad X200 Roaming KDE</td> +<td>19 min (09:21-09:40)</td> +<td>15 min (10:25-10:40)</td> +<td>4 min 21%</td> +</tr> + +</table></p> + +<p>The test is done using a netinst ISO on a USB stick, so some of the +time is spent downloading packages. The connection to the Internet +was 100Mbit/s during testing, so downloading should not be a +significant factor in the measurement. Download typically took a few +seconds to a few minutes, depending on the amount of packages being +installed.</p> + +<p>The speedup is implemented by using two hooks in +<a href="https://www.debian.org/devel/debian-installer/">Debian +Installer</a>, the pre-pkgsel.d hook to set up the diverts, and the +finish-install.d hook to remove the divert at the end of the +installation. I picked the pre-pkgsel.d hook instead of the +post-base-installer.d hook because I test using an ISO without the +eatmydata package included, and the post-base-installer.d hook in +Debian Edu can only operate on packages included in the ISO. The +negative effect of this is that I am unable to activate this +optimization for the kernel installation step in d-i. If the code is +moved to the post-base-installer.d hook, the speedup would be larger +for the entire installation.</p> + +<p>I've implemented this in the +<a href="https://packages.qa.debian.org/debian-edu-install">debian-edu-install</a> +git repository, and plan to provide the optimization as part of the +Debian Edu installation. If you want to test this yourself, you can +create two files in the installer (or in an udeb). One shell script +need do go into /usr/lib/pre-pkgsel.d/, with content like this:</p> + +<p><blockquote><pre> +#!/bin/sh +set -e +. /usr/share/debconf/confmodule +info() { + logger -t my-pkgsel "info: $*" +} +error() { + logger -t my-pkgsel "error: $*" +} +override_install() { + apt-install eatmydata || true + if [ -x /target/usr/bin/eatmydata ] ; then + for bin in dpkg apt-get aptitude tasksel ; do + file=/usr/bin/$bin + # Test that the file exist and have not been diverted already. + if [ -f /target$file ] ; then + info "diverting $file using eatmydata" + printf "#!/bin/sh\neatmydata $bin.distrib \"\$@\"\n" \ + > /target$file.edu + chmod 755 /target$file.edu + in-target dpkg-divert --package debian-edu-config \ + --rename --quiet --add $file + ln -sf ./$bin.edu /target$file + else + error "unable to divert $file, as it is missing." + fi + done + else + error "unable to find /usr/bin/eatmydata after installing the eatmydata pacage" + fi +} + +override_install +</pre></blockquote></p> + +<p>To clean up, another shell script should go into +/usr/lib/finish-install.d/ with code like this: + +<p><blockquote><pre> +#! /bin/sh -e +. /usr/share/debconf/confmodule +error() { + logger -t my-finish-install "error: $@" +} +remove_install_override() { + for bin in dpkg apt-get aptitude tasksel ; do + file=/usr/bin/$bin + if [ -x /target$file.edu ] ; then + rm /target$file + in-target dpkg-divert --package debian-edu-config \ + --rename --quiet --remove $file + rm /target$file.edu + else + error "Missing divert for $file." + fi + done + sync # Flush file buffers before continuing +} + +remove_install_override +</pre></blockquote></p> + +<p>In Debian Edu, I placed both code fragments in a separate script +edu-eatmydata-install and call it from the pre-pkgsel.d and +finish-install.d scripts.</p> + +<p>By now you might ask if this change should get into the normal +Debian installer too? I suspect it should, but am not sure the +current debian-installer coordinators find it useful enough. It also +depend on the side effects of the change. I'm not aware of any, but I +guess we will see if the change is safe after some more testing. +Perhaps there is some package in Debian depending on sync() and +fsync() having effect? Perhaps it should go into its own udeb, to +allow those of us wanting to enable it to do so without affecting +everyone.</p> + +<p>Update 2014-09-24: Since a few days ago, enabling this optimization +will break installation of all programs using gnutls because of +<a href="https://bugs.debian.org/702711">bug #702711. An updated +eatmydata package in Debian will solve it.</p> + + + Good bye subkeys.pgp.net, welcome pool.sks-keyservers.net http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html @@ -459,355 +1075,5 @@ you find any.</p> - - From English wiki to translated PDF and epub via Docbook - http://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html - http://people.skolelinux.org/pere/blog/From_English_wiki_to_translated_PDF_and_epub_via_Docbook.html - Tue, 17 Jun 2014 11:30:00 +0200 - <p>The <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux -project</a> provide an instruction manual for teachers, system -administrators and other users that contain useful tips for setting up -and maintaining a Debian Edu installation. This text is about how the -text processing of this manual is handled in the project.</p> - -<p>One goal of the project is to provide information in the native -language of its users, and for this we need to handle translations. -But we also want to make sure each language contain the same -information, so for this we need a good way to keep the translations -in sync. And we want it to be easy for our users to improve the -documentation, avoiding the need to learn special formats or tools to -contribute, and the obvious way to do this is to make it possible to -edit the documentation using a web browser. We also want it to be -easy for translators to keep the translation up to date, and give them -help in figuring out what need to be translated. Here is the list of -tools and the process we have found trying to reach all these -goals.</p> - -<p>We maintain the authoritative source of our manual in the -<a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">Debian -wiki</a>, as several wiki pages written in English. It consist of one -front page with references to the different chapters, several pages -for each chapter, and finally one "collection page" gluing all the -chapters together into one large web page (aka -<a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/AllInOne">the -AllInOne page</a>). The AllInOne page is the one used for further -processing and translations. Thanks to the fact that the -<a href="http://moinmo.in/">MoinMoin</a> installation on -wiki.debian.org support exporting pages in -<a href="http://www.docbook.org/">the Docbook format</a>, we can fetch -the list of pages to export using the raw version of the AllInOne -page, loop over each of them to generate a Docbook XML version of the -manual. This process also download images and transform image -references to use the locally downloaded images. The generated -Docbook XML files are slightly broken, so some post-processing is done -using the <tt>documentation/scripts/get_manual</tt> program, and the -result is a nice Docbook XML file (debian-edu-wheezy-manual.xml) and -a handfull of images. The XML file can now be used to generate PDF, HTML -and epub versions of the English manual. This is the basic step of -our process, making PDF (using dblatex), HTML (using xsltproc) and -epub (using dbtoepub) version from Docbook XML, and the resulting files -are placed in the debian-edu-doc-en binary package.</p> - -<p>But English documentation is not enough for us. We want translated -documentation too, and we want to make it easy for translators to -track the English original. For this we use the -<a href="http://packages.qa.debian.org/p/poxml.html">poxml</a> package, -which allow us to transform the English Docbook XML file into a -translation file (a .pot file), usable with the normal gettext based -translation tools used by those translating free software. The pot -file is used to create and maintain translation files (several .po -files), which the translations update with the native language -translations of all titles, paragraphs and blocks of text in the -original. The next step is combining the original English Docbook XML -and the translation file (say debian-edu-wheezy-manual.nb.po), to -create a translated Docbook XML file (in this case -debian-edu-wheezy-manual.nb.xml). This translated (or partly -translated, if the translation is not complete) Docbook XML file can -then be used like the original to create a PDF, HTML and epub version -of the documentation.</p> - -<p>The translators use different tools to edit the .po files. We -recommend using -<a href="http://www.kde.org/applications/development/lokalize/">lokalize</a>, -while some use emacs and vi, others can use web based editors like -<a href="http://pootle.translatehouse.org/">Poodle</a> or -<a href="https://www.transifex.com/">Transifex</a>. All we care about -is where the .po file end up, in our git repository. Updated -translations can either be committed directly to git, or submitted as -<a href="https://bugs.debian.org/src:debian-edu-doc">bug reports -against the debian-edu-doc package</a>.</p> - -<p>One challenge is images, which both might need to be translated (if -they show translated user applications), and are needed in different -formats when creating PDF and HTML versions (epub is a HTML version in -this regard). For this we transform the original PNG images to the -needed density and format during build, and have a way to provide -translated images by storing translated versions in -images/$LANGUAGECODE/. I am a bit unsure about the details here. The -package maintainers know more.</p> - -<p>If you wonder what the result look like, we provide -<a href="http://maintainer.skolelinux.org/debian-edu-doc/">the content -of the documentation packages on the web</a>. See for example the -<a href="http://maintainer.skolelinux.org/debian-edu-doc/it/debian-edu-wheezy-manual.pdf">Italian -PDF version</a> or the -<a href="http://maintainer.skolelinux.org/debian-edu-doc/de/debian-edu-wheezy-manual.html">German -HTML version</a>. We do not yet build the epub version by default, -but perhaps it will be done in the future.</p> - -<p>To learn more, check out -<a href="http://packages.qa.debian.org/d/debian-edu-doc.html">the -debian-edu-doc package</a>, -<a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/">the -manual on the wiki</a> and -<a href="https://wiki.debian.org/DebianEdu/Documentation/Wheezy/Translations">the -translation instructions</a> in the manual.</p> - - - - - Hvordan enkelt laste ned filmer fra NRK med den "nye" løsningen - http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html - http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK_med_den__nye__l_sningen.html - Mon, 16 Jun 2014 19:20:00 +0200 - <p>Jeg har fortsatt behov for å kunne laste ned innslag fra NRKs -nettsted av og til for å se senere når jeg ikke er på nett, men -<a href="http://people.skolelinux.org/pere/blog/Hvordan_enkelt_laste_ned_filmer_fra_NRK.html">min -oppskrift fra 2011</a> sluttet å fungere da NRK byttet -avspillermetode. I dag fikk jeg endelig lett etter oppdatert løsning, -og jeg er veldig glad for å fortelle at den enkleste måten å laste ned -innslag er å bruke siste versjon 2014.06.07 av -<a href="http://rg3.github.io/youtube-dl/">youtube-dl</a>. Støtten i -youtube-dl <a href="https://github.com/rg3/youtube-dl/issues/2980">kom -inn for 23 dager siden</a> og -<a href="http://packages.qa.debian.org/y/youtube-dl.html">versjonen i -Debian</a> fungerer fint også som backport til Debian Wheezy. Det er -et lite problem, det håndterer kun URLer med små bokstaver, men hvis -en har en URL med store bokstaver kan en bare gjøre alle store om til -små bokstaver for å få youtube-dl til å laste ned. Rapporterte -nettopp -<a href="https://github.com/rg3/youtube-dl/issues/2980">problemet til -utviklerne</a>, og antar de får fikset det snart.</p> - -<p>Dermed er alt klart til å laste ned dokumentarene om -<a href="http://tv.nrk.no/program/KOID23005014/usas-hemmelige-avlytting">USAs -hemmelige avlytting</a> og -<a href="http://tv.nrk.no/program/KOID23005114/selskapene-bak-usas-avlytting">Selskapene -bak USAs avlytting</a>, i tillegg til -<a href="http://tv.nrk.no/program/KOID20005814/et-moete-med-edward-snowden">intervjuet -med Edward Snowden gjort av den tyske tv-kanalen ARD</a>. Anbefaler -alle å se disse, sammen med -<a href="http://media.ccc.de/browse/congress/2013/30C3_-_5713_-_en_-_saal_2_-_201312301130_-_to_protect_and_infect_part_2_-_jacob.html">foredraget -til Jacob Appelbaum på siste CCC-konferanse</a>, for å forstå mer om -hvordan overvåkningen av borgerne brer om seg.</p> - -<p>Takk til gode venner på foreningen NUUGs IRC-kanal -<a href="irc://irc.freenode.net/%23nuug">#nuug på irc.freenode.net</a> -for tipsene som fikk meg i mål</a>.</p> - -<p><strong>Oppdatering 2014-06-17</strong>: Etter at jeg publiserte -denne, ble jeg tipset om bloggposten -"<a href="http://ingvar.blog.redpill-linpro.com/2012/05/31/downloading-hd-content-from-tv-nrk-no/">Downloading -HD content from tv.nrk.no</a>" av Ingvar Hagelund, som har alternativ -implementasjon og tips for å lage mkv-fil med undertekstene inkludert. -Kanskje den passer bedre for deg? I tillegg ble feilen i youtube-dl -ble fikset litt senere ut på dagen i går, samt at youtube-dl fikk -støtte for å laste ned undertitler. Takk til Anders Einar Hilden for -god innsats og youtube-dl-utviklerne for rask respons.</p> - - - - - Free software car computer solution? - http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html - http://people.skolelinux.org/pere/blog/Free_software_car_computer_solution_.html - Thu, 29 May 2014 18:45:00 +0200 - <p>Dear lazyweb. I'm planning to set up a small Raspberry Pi computer -in my car, connected to -<a href="http://www.dx.com/p/400a-4-0-tft-lcd-digital-monitor-for-vehicle-parking-reverse-camera-1440x272-12v-dc-57776">a -small screen</a> next to the rear mirror. I plan to hook it up with a -GPS and a USB wifi card too. The idea is to get my own -"<a href="http://en.wikipedia.org/wiki/Carputer">Carputer</a>". But I -wonder if someone already created a good free software solution for -such car computer.</p> - -<p>This is my current wish list for such system:</p> - -<ul> - - <li>Work on Raspberry Pi.</li> - - <li>Show current speed limit based on location, and warn if going too - fast (for example using color codes yellow and red on the screen, - or make a sound). This could be done either using either data from - <a href="http://www.openstreetmap.org/">Openstreetmap</a> or OCR - info gathered from a dashboard camera.</li> - - <li>Track automatic toll road passes and their cost, show total spent - and make it possible to calculate toll costs for planned - route.</li> - - <li>Collect GPX tracks for use with OpenStreetMap.</li> - - <li>Automatically detect and use any wireless connection to connect - to home server. Try IP over DNS - (<a href="http://dev.kryo.se/iodine/">iodine</a>) or ICMP - (<a href="http://code.gerade.org/hans/">Hans</a>) if direct - connection do not work.</li> - - <li>Set up mesh network to talk to other cars with the same system, - or some standard car mesh protocol.</li> - - <li>Warn when approaching speed cameras and speed camera ranges - (speed calculated between two cameras).</li> - - <li>Suport dashboard/front facing camera to discover speed limits and - run OCR to track registration number of passing cars.</li> - -</ul> - -<p>If you know of any free software car computer system supporting -some or all of these features, please let me know.</p> - - - - - Half the Coverity issues in Gnash fixed in the next release - http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html - http://people.skolelinux.org/pere/blog/Half_the_Coverity_issues_in_Gnash_fixed_in_the_next_release.html - Tue, 29 Apr 2014 14:20:00 +0200 - <p>I've been following <a href="http://www.getgnash.org/">the Gnash -project</a> for quite a while now. It is a free software -implementation of Adobe Flash, both a standalone player and a browser -plugin. Gnash implement support for the AVM1 format (and not the -newer AVM2 format - see -<a href="http://lightspark.github.io/">Lightspark</a> for that one), -allowing several flash based sites to work. Thanks to the friendly -developers at Youtube, it also work with Youtube videos, because the -Javascript code at Youtube detect Gnash and serve a AVM1 player to -those users. :) Would be great if someone found time to implement AVM2 -support, but it has not happened yet. If you install both Lightspark -and Gnash, Lightspark will invoke Gnash if it find a AVM1 flash file, -so you can get both handled as free software. Unfortunately, -Lightspark so far only implement a small subset of AVM2, and many -sites do not work yet.</p> - -<p>A few months ago, I started looking at -<a href="http://scan.coverity.com/">Coverity</a>, the static source -checker used to find heaps and heaps of bugs in free software (thanks -to the donation of a scanning service to free software projects by the -company developing this non-free code checker), and Gnash was one of -the projects I decided to check out. Coverity is able to find lock -errors, memory errors, dead code and more. A few days ago they even -extended it to also be able to find the heartbleed bug in OpenSSL. -There are heaps of checks being done on the instrumented code, and the -amount of bogus warnings is quite low compared to the other static -code checkers I have tested over the years.</p> - -<p>Since a few weeks ago, I've been working with the other Gnash -developers squashing bugs discovered by Coverity. I was quite happy -today when I checked the current status and saw that of the 777 issues -detected so far, 374 are marked as fixed. This make me confident that -the next Gnash release will be more stable and more dependable than -the previous one. Most of the reported issues were and are in the -test suite, but it also found a few in the rest of the code.</p> - -<p>If you want to help out, you find us on -<a href="https://lists.gnu.org/mailman/listinfo/gnash-dev">the -gnash-dev mailing list</a> and on -<a href="irc://irc.freenode.net/#gnash">the #gnash channel on -irc.freenode.net IRC server</a>.</p> - - - - - Install hardware dependent packages using tasksel (Isenkram 0.7) - http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html - http://people.skolelinux.org/pere/blog/Install_hardware_dependent_packages_using_tasksel__Isenkram_0_7_.html - Wed, 23 Apr 2014 14:50:00 +0200 - <p>It would be nice if it was easier in Debian to get all the hardware -related packages relevant for the computer installed automatically. -So I implemented one, using -<a href="http://packages.qa.debian.org/isenkram">my Isenkram -package</a>. To use it, install the tasksel and isenkram packages and -run tasksel as user root. You should be presented with a new option, -"Hardware specific packages (autodetected by isenkram)". When you -select it, tasksel will install the packages isenkram claim is fit for -the current hardware, hot pluggable or not.<p> - -<p>The implementation is in two files, one is the tasksel menu entry -description, and the other is the script used to extract the list of -packages to install. The first part is in -<tt>/usr/share/tasksel/descs/isenkram.desc</tt> and look like -this:</p> - -<p><blockquote><pre> -Task: isenkram -Section: hardware -Description: Hardware specific packages (autodetected by isenkram) - Based on the detected hardware various hardware specific packages are - proposed. -Test-new-install: mark show -Relevance: 8 -Packages: for-current-hardware -</pre></blockquote></p> - -<p>The second part is in -<tt>/usr/lib/tasksel/packages/for-current-hardware</tt> and look like -this:</p> - -<p><blockquote><pre> -#!/bin/sh -# -( - isenkram-lookup - isenkram-autoinstall-firmware -l -) | sort -u -</pre></blockquote></p> - -<p>All in all, a very short and simple implementation making it -trivial to install the hardware dependent package we all may want to -have installed on our machines. I've not been able to find a way to -get tasksel to tell you exactly which packages it plan to install -before doing the installation. So if you are curious or careful, -check the output from the isenkram-* command line tools first.</p> - -<p>The information about which packages are handling which hardware is -fetched either from the isenkram package itself in -/usr/share/isenkram/, from git.debian.org or from the APT package -database (using the Modaliases header). The APT package database -parsing have caused a nasty resource leak in the isenkram daemon (bugs -<a href="http://bugs.debian.org/719837">#719837</a> and -<a href="http://bugs.debian.org/730704">#730704</a>). The cause is in -the python-apt code (bug -<a href="http://bugs.debian.org/745487">#745487</a>), but using a -workaround I was able to get rid of the file descriptor leak and -reduce the memory leak from ~30 MiB per hardware detection down to -around 2 MiB per hardware detection. It should make the desktop -daemon a lot more useful. The fix is in version 0.7 uploaded to -unstable today.</p> - -<p>I believe the current way of mapping hardware to packages in -Isenkram is is a good draft, but in the future I expect isenkram to -use the AppStream data source for this. A proposal for getting proper -AppStream support into Debian is floating around as -<a href="https://wiki.debian.org/DEP-11">DEP-11</a>, and -<a href="https://wiki.debian.org/SummerOfCode2014/Projects#SummerOfCode2014.2FProjects.2FAppStreamDEP11Implementation.AppStream.2FDEP-11_for_the_Debian_Archive">GSoC -project</a> will take place this summer to improve the situation. I -look forward to seeing the result, and welcome patches for isenkram to -start using the information when it is ready.</p> - -<p>If you want your package to map to some specific hardware, either -add a "Xb-Modaliases" header to your control file like I did in -<a href="http://packages.qa.debian.org/pymissile">the pymissile -package</a> or submit a bug report with the details to the isenkram -package. See also -<a href="http://people.skolelinux.org/pere/blog/tags/isenkram/">all my -blog posts tagged isenkram</a> for details on the notation. I expect -the information will be migrated to AppStream eventually, but for the -moment I got no better place to store it.</p> - - -