X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/9da2199ce9673d2aeb21f64f6245c9dc4739fb60..fa4e14fe2faecdba7833edabf9f9fe20fb3be1c7:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index bed861033f..4fcf4416e6 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,531 @@ http://people.skolelinux.org/pere/blog/ + + 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 +<ahref="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 + http://people.skolelinux.org/pere/blog/Good_bye_subkeys_pgp_net__welcome_pool_sks_keyservers_net.html + Wed, 10 Sep 2014 13:10:00 +0200 + <p>Yesterday, I had the pleasure of attending a talk with the +<a href="http://www.nuug.no/">Norwegian Unix User Group</a> about +<a href="http://www.nuug.no/aktiviteter/20140909-sks-keyservers/">the +OpenPGP keyserver pool sks-keyservers.net</a>, and was very happy to +learn that there is a large set of publicly available key servers to +use when looking for peoples public key. So far I have used +subkeys.pgp.net, and some times wwwkeys.nl.pgp.net when the former +were misbehaving, but those days are ended. The servers I have used +up until yesterday have been slow and some times unavailable. I hope +those problems are gone now.</p> + +<p>Behind the round robin DNS entry of the +<a href="https://sks-keyservers.net/">sks-keyservers.net</a> service +there is a pool of more than 100 keyservers which are checked every +day to ensure they are well connected and up to date. It must be +better than what I have used so far. :)</p> + +<p>Yesterdays speaker told me that the service is the default +keyserver provided by the default configuration in GnuPG, but this do +not seem to be used in Debian. Perhaps it should?</p> + +<p>Anyway, I've updated my ~/.gnupg/options file to now include this +line:</p> + +<p><blockquote><pre> +keyserver pool.sks-keyservers.net +</pre></blockquote></p> + +<p>With GnuPG version 2 one can also locate the keyserver using SRV +entries in DNS. Just for fun, I did just that at work, so now every +user of GnuPG at the University of Oslo should find a OpenGPG +keyserver automatically should their need it:</p> + +<p><blockquote><pre> +% host -t srv _pgpkey-http._tcp.uio.no +_pgpkey-http._tcp.uio.no has SRV record 0 100 11371 pool.sks-keyservers.net. +% +</pre></blockquote></p> + +<p>Now if only +<a href="http://ietfreport.isoc.org/idref/draft-shaw-openpgp-hkp/">the +HKP lookup protocol</a> supported finding signature paths, I would be +very happy. It can look up a given key or search for a user ID, but I +normally do not want that, but to find a trust path from my key to +another key. Given a user ID or key ID, I would like to find (and +download) the keys representing a signature path from my key to the +key in question, to be able to get a trust path between the two keys. +This is as far as I can tell not possible today. Perhaps something +for a future version of the protocol?</p> + + + Do you need an agreement with MPEG-LA to publish and broadcast H.264 video in Norway? http://people.skolelinux.org/pere/blog/Do_you_need_an_agreement_with_MPEG_LA_to_publish_and_broadcast_H_264_video_in_Norway_.html @@ -614,226 +1139,5 @@ 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> - - - - - FreedomBox milestone - all packages now in Debian Sid - http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html - http://people.skolelinux.org/pere/blog/FreedomBox_milestone___all_packages_now_in_Debian_Sid.html - Tue, 15 Apr 2014 22:10:00 +0200 - <p>The <a href="https://wiki.debian.org/FreedomBox">Freedombox -project</a> is working on providing the software and hardware to make -it easy for non-technical people to host their data and communication -at home, and being able to communicate with their friends and family -encrypted and away from prying eyes. It is still going strong, and -today a major mile stone was reached.</p> - -<p>Today, the last of the packages currently used by the project to -created the system images were accepted into Debian Unstable. It was -the freedombox-setup package, which is used to configure the images -during build and on the first boot. Now all one need to get going is -the build code from the freedom-maker git repository and packages from -Debian. And once the freedombox-setup package enter testing, we can -build everything directly from Debian. :)</p> - -<p>Some key packages used by Freedombox are -<a href="http://packages.qa.debian.org/freedombox-setup">freedombox-setup</a>, -<a href="http://packages.qa.debian.org/plinth">plinth</a>, -<a href="http://packages.qa.debian.org/pagekite">pagekite</a>, -<a href="http://packages.qa.debian.org/tor">tor</a>, -<a href="http://packages.qa.debian.org/privoxy">privoxy</a>, -<a href="http://packages.qa.debian.org/owncloud">owncloud</a> and -<a href="http://packages.qa.debian.org/dnsmasq">dnsmasq</a>. There -are plans to integrate more packages into the setup. User -documentation is maintained on the Debian wiki. Please -<a href="https://wiki.debian.org/FreedomBox/Manual/Jessie">check out -the manual</a> and help us improve it.</p> - -<p>To test for yourself and create boot images with the FreedomBox -setup, run this on a Debian machine using a user with sudo rights to -become root:</p> - -<p><pre> -sudo apt-get install git vmdebootstrap mercurial python-docutils \ - mktorrent extlinux virtualbox qemu-user-static binfmt-support \ - u-boot-tools -git clone http://anonscm.debian.org/git/freedombox/freedom-maker.git \ - freedom-maker -make -C freedom-maker dreamplug-image raspberry-image virtualbox-image -</pre></p> - -<p>Root access is needed to run debootstrap and mount loopback -devices. See the README in the freedom-maker git repo for more -details on the build. If you do not want all three images, trim the -make line. Note that the virtualbox-image target is not really -virtualbox specific. It create a x86 image usable in kvm, qemu, -vmware and any other x86 virtual machine environment. You might need -the version of vmdebootstrap in Jessie to get the build working, as it -include fixes for a race condition with kpartx.</p> - -<p>If you instead want to install using a Debian CD and the preseed -method, boot a Debian Wheezy ISO and use this boot argument to load -the preseed values:</p> - -<p><pre> -url=<a href="http://www.reinholdtsen.name/freedombox/preseed-jessie.dat">http://www.reinholdtsen.name/freedombox/preseed-jessie.dat</a> -</pre></p> - -<p>I have not tested it myself the last few weeks, so I do not know if -it still work.</p> - -<p>If you wonder how to help, one task you could look at is using -systemd as the boot system. It will become the default for Linux in -Jessie, so we need to make sure it is usable on the Freedombox. I did -a simple test a few weeks ago, and noticed dnsmasq failed to start -during boot when using systemd. I suspect there are other problems -too. :) To detect problems, there is a test suite included, which can -be run from the plinth web interface.</p> - -<p>Give it a go and let us know how it goes on the mailing list, and help -us get the new release published. :) Please join us on -<a href="irc://irc.debian.org:6667/%23freedombox">IRC (#freedombox on -irc.debian.org)</a> and -<a href="http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss">the -mailing list</a> if you want to help make this vision come true.</p> - - -