Planet Skolelinux

October 23, 2014

Petter Reinholdtsen

I spent last weekend recording MakerCon Nordic

I spent last weekend at Makercon Nordic, a great conference and workshop for makers in Norway and the surrounding countries. I had volunteered on behalf of the Norwegian Unix Users Group (NUUG) to video record the talks, and we had a great and exhausting time recording the entire day, two days in a row. There were only two of us, Hans-Petter and me, and we used the regular video equipment for NUUG, with a dvswitch, a camera and a VGA to DV convert box, and mixed video and slides live.

Hans-Petter did the post-processing, consisting of uploading the around 180 GiB of raw video to Youtube, and the result is now becoming public on the MakerConNordic account. The videos have the license NUUG always use on our recordings, which is Creative Commons Navngivelse-Del på samme vilkår 3.0 Norge. Many great talks available. Check it out! :)

October 23, 2014 09:00 PM

October 22, 2014

Petter Reinholdtsen

listadmin, the quick way to moderate mailman lists - nice free software

If you ever had to moderate a mailman list, like the ones on alioth.debian.org, you know the web interface is fairly slow to operate. First you visit one web page, enter the moderation password and get a new page shown with a list of all the messages to moderate and various options for each email address. This take a while for every list you moderate, and you need to do it regularly to do a good job as a list moderator. But there is a quick alternative, the listadmin program. It allow you to check lists for new messages to moderate in a fraction of a second. Here is a test run on two lists I recently took over:

% time listadmin xiph
fetching data for pkg-xiph-commits@lists.alioth.debian.org ... nothing in queue
fetching data for pkg-xiph-maint@lists.alioth.debian.org ... nothing in queue

real    0m1.709s
user    0m0.232s
sys     0m0.012s
%

In 1.7 seconds I had checked two mailing lists and confirmed that there are no message in the moderation queue. Every morning I currently moderate 68 mailman lists, and it normally take around two minutes. When I took over the two pkg-xiph lists above a few days ago, there were 400 emails waiting in the moderator queue. It took me less than 15 minutes to process them all using the listadmin program.

If you install the listadmin package from Debian and create a file ~/.listadmin.ini with content like this, the moderation task is a breeze:

username@example.org
spamlevel 23
default discard
discard_if_reason "Posting restricted to members only. Remove us from your mail list."

password secret
adminurl https://{domain}/mailman/admindb/{list}
mailman-list@lists.example.com

password hidden
other-list@otherserver.example.org

There are other options to set as well. Check the manual page to learn the details.

If you are forced to moderate lists on a mailman installation where the SSL certificate is self signed or not properly signed by a generally accepted signing authority, you can set a environment variable when calling listadmin to disable SSL verification:

PERL_LWP_SSL_VERIFY_HOSTNAME=0 listadmin

If you want to moderate a subset of the lists you take care of, you can provide an argument to the listadmin script like I do in the initial screen dump (the xiph argument). Using an argument, only lists matching the argument string will be processed. This make it quick to accept messages if you notice the moderation request in your email.

Without the listadmin program, I would never be the moderator of 68 mailing lists, as I simply do not have time to spend on that if the process was any slower. The listadmin program have saved me hours of time I could spend elsewhere over the years. It truly is nice free software.

As usual, if you use Bitcoin and want to show your support of my activities, please send Bitcoin donations to my address 15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

October 22, 2014 06:00 PM

October 17, 2014

Petter Reinholdtsen

Debian Jessie, PXE and automatic firmware installation

When PXE installing laptops with Debian, I often run into the problem that the WiFi card require some firmware to work properly. And it has been a pain to fix this using preseeding in Debian. Normally something more is needed. But thanks to my isenkram package and its recent tasksel extension, it has now become easy to do this using simple preseeding.

The isenkram-cli package provide tasksel tasks which will install firmware for the hardware found in the machine (actually, requested by the kernel modules for the hardware). (It can also install user space programs supporting the hardware detected, but that is not the focus of this story.)

To get this working in the default installation, two preeseding values are needed. First, the isenkram-cli package must be installed into the target chroot (aka the hard drive) before tasksel is executed in the pkgsel step of the debian-installer system. This is done by preseeding the base-installer/includes debconf value to include the isenkram-cli package. The package name is next passed to debootstrap for installation. With the isenkram-cli package in place, tasksel will automatically use the isenkram tasks to detect hardware specific packages for the machine being installed and install them, because isenkram-cli contain tasksel tasks.

Second, one need to enable the non-free APT repository, because most firmware unfortunately is non-free. This is done by preseeding the apt-mirror-setup step. This is unfortunate, but for a lot of hardware it is the only option in Debian.

The end result is two lines needed in your preseeding file to get firmware installed automatically by the installer:

base-installer base-installer/includes string isenkram-cli
apt-mirror-setup apt-setup/non-free boolean true

The current version of isenkram-cli in testing/jessie will install both firmware and user space packages when using this method. It also do not work well, so use version 0.15 or later. Installing both firmware and user space packages might give you a bit more than you want, so I decided to split the tasksel task in two, one for firmware and one for user space programs. The firmware task is enabled by default, while the one for user space programs is not. This split is implemented in the package currently in unstable.

If you decide to give this a go, please let me know (via email) how this recipe work for you. :)

So, I bet you are wondering, how can this work. First and foremost, it work because tasksel is modular, and driven by whatever files it find in /usr/lib/tasksel/ and /usr/share/tasksel/. So the isenkram-cli package place two files for tasksel to find. First there is the task description file (/usr/share/tasksel/descs/isenkram.desc):

Task: isenkram-packages
Section: hardware
Description: Hardware specific packages (autodetected by isenkram)
 Based on the detected hardware various hardware specific packages are
 proposed.
Test-new-install: show show
Relevance: 8
Packages: for-current-hardware

Task: isenkram-firmware
Section: hardware
Description: Hardware specific firmware packages (autodetected by isenkram)
 Based on the detected hardware various hardware specific firmware
 packages are proposed.
Test-new-install: mark show
Relevance: 8
Packages: for-current-hardware-firmware

The key parts are Test-new-install which indicate how the task should be handled and the Packages line referencing to a script in /usr/lib/tasksel/packages/. The scripts use other scripts to get a list of packages to install. The for-current-hardware-firmware script look like this to list relevant firmware for the machine:

#!/bin/sh
#
PATH=/usr/sbin:$PATH
export PATH
isenkram-autoinstall-firmware -l

With those two pieces in place, the firmware is installed by tasksel during the normal d-i run. :)

If you want to test what tasksel will install when isenkram-cli is installed, run DEBIAN_PRIORITY=critical tasksel --test --new-install to get the list of packages that tasksel would install.

Debian Edu will be pilots in testing this feature, as isenkram is used there now to install firmware, replacing the earlier scripts.

October 17, 2014 12:10 PM

October 04, 2014

Petter Reinholdtsen

Ubuntu used to show the bread prizes at ICA Storo

Today I came across an unexpected Ubuntu boot screen. Above the bread shelf on the ICA shop at Storo in Oslo, the grub menu of Ubuntu with Linux kernel 3.2.0-23 (ie probably version 12.04 LTS) was stuck on a screen normally showing the bread types and prizes:

If it had booted as it was supposed to, I would never had known about this hidden Linux installation. It is interesting what errors can reveal.

October 04, 2014 01:20 PM

Anders Kringstad, in Norwegian

¥ ~E og en bakstreversk mann

I blant hender det man lirer av seg noe man faktisk ikke helt forstår rekkevidden av. Man tenker som så at «jada, nå skal jeg smelle til og fortelle hva jeg mener om DETTE!». I denne sammenhengen er «DETTE» den o-så-store debatten på Internetts fora (IRC og div. forum) rundt innføringen av UTF-8 som standard tegnsett på de fleste plattformer.

Som ivrig nerd i IT-Komiteen på Studentersamfundet skrev jeg side opp og side ned på diverse kanaler om endringene som ble trykket ned over hodet på oss. Det gikk sågar så langt som at jeg deltok i protester der man ikke godtok å samtale med personer med «feil tegnsett».

Den 31. oktober 2006 falt følgende utblåsning fra mitt digitale jeg ut av meg:

15:28:49 <@akai> jeg bruker ISO-8859-15 som standardtegnsett fordi det er det de fleste tingene jeg bruker gjør, jeg bruker også Apache1.3 noen steder, BIND4, DHCP2, og IMAPv3, dessuten er jeg tilhenger av /etc/hosts fremfor DNS.
15:28:54 <@akai> OK?

– Anders har satt fast en fot i fortidens hengemyr, #itk, 2006-10-31

Nå er oktober 2014 her, og jeg føler det er på tide å innrømme at jeg var bakstreversk. Jeg nektet å ta i bruk det moderne tegnsettet UTF-8. Jeg kompilerte mine egne Linux-kjerner til langt inn på 2010-tallet (mest for å faktisk bevise for meg selv at jeg faktisk fortsatt besitter evnen til å gjøre det med de moderne kjernene vi i dag har) og jeg brukte gamle Apache-server-utgaver, fordi det var de jeg hadde masse kompetanse på som følge av min iver etter å lære å mestre det de kunne tilby på slutten av 90-tallet.

Så: Hva er status for meg i dag? Bruker jeg Apache 1.3, BIND4, DHCPv2 og IMAPv3? er det UTF-8-feil i alle sesjoner på mine maskiner fordi jeg har ISO-8859-* som inndatametode? Nei. Jeg har kommet meg opp av hengemyren som ITK mente jeg hang fast i. Jeg bruker Apache 2.2, sågar bruker jeg nginx framfor Apache mange steder, og jaggu sitter jeg med både PowerDNS, Knot-DNS og BIND9. Dessuten har jeg pensjonert store deler av DHCP-delen av hjernen min, men jeg foredler og bruker fortsatt til enkelte prosjekter en høy-tilgjengelig-utgave (HA) av ISC DHCP-server med støtte for VLAN m.m. i konfigurasjon. Dessuten har jeg sett lyset på tegnsettfronten. Å ha en felles tolkning av tegn skrevet på en datamaskin er nyttig. Det fører til mindre rot og feil for sluttbrukere og maskinell lesing går enklere når man slipper å skrive rutiner som må tolke ulike tegnsett. Dessuten har jeg tro på at parkeringsselskapene snart får oppdatert maskinvaren sin slik at de tolker UTF-8 som UTF-8 slik at det ikke lenger står «~Epningstider» «s¥ndager» og lignende.

Så til alle dere som ikke hadde troen. Noen av oss har bare litt tyngre for det. Ha en god l¥rdag!

by Anders at October 04, 2014 09:06 AM

Petter Reinholdtsen

New lsdvd release version 0.17 is ready

The lsdvd project 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.

I just wrapped up a new lsdvd release, available in git or from the download page. This is the changelog dated 2014-10-03 for version 0.17.

  • Ignore 'phantom' audio, subtitle tracks
  • Check for garbage in the program chains, which indicate that a track is non-existant, to work around additional copy protection
  • Fix displaying content type for audio tracks, subtitles
  • Fix pallete display of first entry
  • Fix include orders
  • Ignore read errors in titles that would not be displayed anyway
  • Fix the chapter count
  • Make sure the array size and the array limit used when initialising the palette size is the same.
  • Fix array printing.
  • Correct subsecond calculations.
  • Add sector information to the output format.
  • Clean up code to be closer to ANSI C and compile without warnings with more GCC compiler warnings.

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. :)

October 04, 2014 06:40 AM