]> pere.pagekite.me Git - homepage.git/blobdiff - blog/tags/debian/debian.rss
Generated.
[homepage.git] / blog / tags / debian / debian.rss
index d6e7a1d2109fc3320002cd46b9d425628716fdf9..29bf65cc71bb8025bb842bf9c591e8c82b3472a1 100644 (file)
@@ -686,5 +686,2392 @@ list of usertagged bugs related to this</a>.</p>
 </description>
        </item>
        
 </description>
        </item>
        
+       <item>
+               <title>KDM fail at boot with NVidia cards - and no one try to fix it?</title>
+               <link>http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html</guid>
+                <pubDate>Tue, 1 Jun 2010 17:05:00 +0200</pubDate>
+               <description>
+&lt;p&gt;It is strange to watch how a bug in Debian causing KDM to fail to
+start at boot when an NVidia video card is used is handled.  The
+problem seem to be that the nvidia X.org driver uses a long time to
+initialize, and this duration is longer than kdm is configured to
+wait.&lt;/p&gt;
+
+&lt;p&gt;I came across two bugs related to this issue,
+&lt;a href=&quot;http://bugs.debian.org/583312&quot;&gt;#583312&lt;/a&gt; initially filed
+against initscripts and passed on to nvidia-glx when it became obvious
+that the nvidia drivers were involved, and
+&lt;a href=&quot;http://bugs.debian.org/524751&quot;&gt;#524751&lt;/a&gt; initially filed against
+kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.&lt;/p&gt;
+
+&lt;p&gt;To me, it seem that no-one is interested in actually solving the
+problem nvidia video card owners experience and make sure the Debian
+distribution work out of the box for these users.  The nvidia driver
+maintainers expect kdm to be set up to wait longer, while kdm expect
+the nvidia driver maintainers to fix the driver to start faster, and
+while they wait for each other I guess the users end up switching to a
+distribution that work for them.  I have no idea what the solution is,
+but I am pretty sure that waiting for each other is not it.&lt;/p&gt;
+
+&lt;p&gt;I wonder why we end up handling bugs this way.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Sitesummary tip: Listing computer hardware models used at site</title>
+               <link>http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_computer_hardware_models_used_at_site.html</guid>
+                <pubDate>Thu, 3 Jun 2010 12:05:00 +0200</pubDate>
+               <description>
+&lt;p&gt;When using sitesummary at a site to track machines, it is possible
+to get a list of the machine types in use thanks to the DMI
+information extracted from each machine.  The script to do so is
+included in the sitesummary package, and here is example output from
+the Skolelinux build servers:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+maintainer:~# /usr/lib/sitesummary/hardware-model-summary
+  vendor                    count
+  Dell Computer Corporation     1
+    PowerEdge 1750              1
+  IBM                           1
+    eserver xSeries 345 -[8670M1X]-     1
+  Intel                         2
+  [no-dmi-info]                 3
+maintainer:~#
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;The quality of the report depend on the quality of the DMI tables
+provided in each machine.  Here there are Intel machines without model
+information listed with Intel as vendor and mo model, and virtual Xen
+machines listed as [no-dmi-info].  One can add -l as a command line
+option to list the individual machines.&lt;/p&gt;
+
+&lt;p&gt;A larger list is
+&lt;a href=&quot;http://narvikskolen.no/sitesummary/&quot;&gt;available from the the
+city of Narvik&lt;/a&gt;, which uses Skolelinux on all their shools and also
+provide the basic sitesummary report publicly.  In their report there
+are ~1400 machines. I know they use both Ubuntu and Skolelinux on
+their machines, and as sitesummary is available in both distributions,
+it is trivial to get all of them to report to the same central
+collector.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>A manual for standards wars...</title>
+               <link>http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/A_manual_for_standards_wars___.html</guid>
+                <pubDate>Sun, 6 Jun 2010 14:15:00 +0200</pubDate>
+               <description>
+&lt;p&gt;Via the
+&lt;a href=&quot;http://feedproxy.google.com/~r/robweir/antic-atom/~3/QzU4RgoAGMg/weekly-links-10.html&quot;&gt;blog
+of Rob Weir&lt;/a&gt; I came across the very interesting essay named
+&lt;a href=&quot;http://faculty.haas.berkeley.edu/shapiro/wars.pdf&quot;&gt;The Art of
+Standards Wars&lt;/a&gt; (PDF 25 pages).  I recommend it for everyone
+following the standards wars of today.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Upstart or sysvinit - as init.d scripts see it</title>
+               <link>http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html</guid>
+                <pubDate>Sun, 6 Jun 2010 23:55:00 +0200</pubDate>
+               <description>
+&lt;p&gt;If Debian is to migrate to upstart on Linux, I expect some init.d
+scripts to migrate (some of) their operations to upstart job while
+keeping the init.d for hurd and kfreebsd.  The packages with such
+needs will need a way to get their init.d scripts to behave
+differently when used with sysvinit and with upstart.  Because of
+this, I had a look at the environment variables set when a init.d
+script is running under upstart, and when it is not.&lt;/p&gt;
+
+&lt;p&gt;With upstart, I notice these environment variables are set when a
+script is started from rcS.d/ (ignoring some irrelevant ones like
+COLUMNS):&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+DEFAULT_RUNLEVEL=2
+previous=N
+PREVLEVEL=
+RUNLEVEL=
+runlevel=S
+UPSTART_EVENTS=startup
+UPSTART_INSTANCE=
+UPSTART_JOB=rc-sysinit
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;With sysvinit, these environment variables are set for the same
+script.&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+INIT_VERSION=sysvinit-2.88
+previous=N
+PREVLEVEL=N
+RUNLEVEL=S
+runlevel=S
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;The RUNLEVEL and PREVLEVEL environment variables passed on from
+sysvinit are not set by upstart.  Not sure if it is intentional or not
+to not be compatible with sysvinit in this regard.&lt;/p&gt;
+
+&lt;p&gt;For scripts needing to behave differently when upstart is used,
+looking for the UPSTART_JOB environment variable seem to be a good
+choice.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Automatic upgrade testing from Lenny to Squeeze</title>
+               <link>http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html</guid>
+                <pubDate>Fri, 11 Jun 2010 22:50:00 +0200</pubDate>
+               <description>
+&lt;p&gt;The last few days I have done some upgrade testing in Debian, to
+see if the upgrade from Lenny to Squeeze will go smoothly.  A few bugs
+have been discovered and reported in the process
+(&lt;a href=&quot;http://bugs.debian.org/585410&quot;&gt;#585410&lt;/a&gt; in nagios3-cgi,
+&lt;a href=&quot;http://bugs.debian.org/584879&quot;&gt;#584879&lt;/a&gt; already fixed in
+enscript and &lt;a href=&quot;http://bugs.debian.org/584861&quot;&gt;#584861&lt;/a&gt; in
+kdebase-workspace-data), and to get a more regular testing going on, I
+am working on a script to automate the test.&lt;/p&gt;
+
+&lt;p&gt;The idea is to create a Lenny chroot and use tasksel to install a
+Gnome or KDE desktop installation inside the chroot before upgrading
+it.  To ensure no services are started in the chroot, a policy-rc.d
+script is inserted.  To make sure tasksel believe it is to install a
+desktop on a laptop, the tasksel tests are replaced in the chroot
+(only acceptable because this is a throw-away chroot).&lt;/p&gt;
+
+&lt;p&gt;A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
+currently always fail because udev refuses to upgrade with the kernel
+in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
+is created.  The bug report
+&lt;a href=&quot;http://bugs.debian.org/566000&quot;&gt;#566000&lt;/a&gt; make me suspect
+this problem do not trigger in a chroot, but I touch the file anyway
+to make sure the upgrade go well.  Testing on virtual and real
+hardware have failed me because of udev so far, and creating this file
+do the trick in such settings anyway.  This is a
+&lt;a href=&quot;http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/&quot;&gt;known
+issue&lt;/a&gt; and the current udev behaviour is intended by the udev
+maintainer because he lack the resources to rewrite udev to keep
+working with old kernels or something like that.  I really wish the
+udev upstream would keep udev backwards compatible, to avoid such
+upgrade problem, but given that they fail to do so, I guess
+documenting the way out of this mess is the best option we got for
+Debian Squeeze.&lt;/p&gt;
+
+&lt;p&gt;Anyway, back to the task at hand, testing upgrades.  This test
+script, which I call &lt;tt&gt;upgrade-test&lt;/tt&gt; for now, is doing the
+trick:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+#!/bin/sh
+set -ex
+
+if [ &quot;$1&quot; ] ; then
+    desktop=$1
+else
+    desktop=gnome
+fi
+
+from=lenny
+to=squeeze
+
+exec &amp;lt; /dev/null
+unset LANG
+mirror=http://ftp.skolelinux.org/debian
+tmpdir=chroot-$from-upgrade-$to-$desktop
+fuser -mv .
+debootstrap $from $tmpdir $mirror
+chroot $tmpdir aptitude update
+cat &gt; $tmpdir/usr/sbin/policy-rc.d &amp;lt;&amp;lt;EOF
+#!/bin/sh
+exit 101
+EOF
+chmod a+rx $tmpdir/usr/sbin/policy-rc.d
+exit_cleanup() {
+    umount $tmpdir/proc
+}
+mount -t proc proc $tmpdir/proc
+# Make sure proc is unmounted also on failure
+trap exit_cleanup EXIT INT
+
+chroot $tmpdir aptitude -y install debconf-utils
+
+# Make sure tasksel autoselection trigger.  It need the test scripts
+# to return the correct answers.
+echo tasksel tasksel/desktop multiselect $desktop | \
+    chroot $tmpdir debconf-set-selections
+
+# Include the desktop and laptop task
+for test in desktop laptop ; do
+    echo &gt; $tmpdir/usr/lib/tasksel/tests/$test &amp;lt;&amp;lt;EOF
+#!/bin/sh
+exit 2
+EOF
+    chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
+done
+
+DEBIAN_FRONTEND=noninteractive
+DEBIAN_PRIORITY=critical
+export DEBIAN_FRONTEND DEBIAN_PRIORITY
+chroot $tmpdir tasksel --new-install
+
+echo deb $mirror $to main &gt; $tmpdir/etc/apt/sources.list
+chroot $tmpdir aptitude update
+touch $tmpdir/etc/udev/kernel-upgrade
+chroot $tmpdir aptitude -y dist-upgrade
+fuser -mv
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;I suspect it would be useful to test upgrades with both apt-get and
+with aptitude, but I have not had time to look at how they behave
+differently so far.  I hope to get a cron job running to do the test
+regularly and post the result on the web.  The Gnome upgrade currently
+work, while the KDE upgrade fail because of the bug in
+kdebase-workspace-data&lt;/p&gt;
+
+&lt;p&gt;I am not quite sure what kind of extract from the huge upgrade logs
+(KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
+post, so I will refrain from trying.  I can report that for Gnome,
+aptitude report 760 packages upgraded, 448 newly installed, 129 to
+remove and 1 not upgraded and 1024MB need to be downloaded while for
+KDE the same numbers are 702 packages upgraded, 507 newly installed,
+193 to remove and 0 not upgraded and 1117MB need to be downloaded&lt;/p&gt;
+
+&lt;p&gt;I am very happy to notice that the Gnome desktop + laptop upgrade
+is able to migrate to dependency based boot sequencing and parallel
+booting without a hitch.  Was unsure if there were still bugs with
+packages failing to clean up their obsolete init.d script during
+upgrades, and no such problem seem to affect the Gnome desktop+laptop
+packages.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Lenny-&gt;Squeeze upgrades, removals by apt and aptitude</title>
+               <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__removals_by_apt_and_aptitude.html</guid>
+                <pubDate>Sun, 13 Jun 2010 09:05:00 +0200</pubDate>
+               <description>
+&lt;p&gt;My
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html&quot;&gt;testing
+of Debian upgrades&lt;/a&gt; from Lenny to Squeeze continues, and I&#39;ve
+finally made the upgrade logs available from
+&lt;a href=&quot;http://people.skolelinux.org/pere/debian-upgrade-testing/&quot;&gt;http://people.skolelinux.org/pere/debian-upgrade-testing/&lt;/a&gt;.
+I am now testing dist-upgrade of Gnome and KDE in a chroot using both
+apt and aptitude, and found their differences interesting.  This time
+I will only focus on their removal plans.&lt;/p&gt;
+
+&lt;p&gt;After installing a Gnome desktop and the laptop task, apt-get wants
+to remove 72 packages when dist-upgrading from Lenny to Squeeze.  The
+surprising part is that it want to remove xorg and all
+xserver-xorg-video* drivers.  Clearly not a good choice, but I am not
+sure why.  When asking aptitude to do the same, it want to remove 129
+packages, but most of them are library packages I suspect are no
+longer needed.  Both of them want to remove bluetooth packages, which
+I do not know.  Perhaps these bluetooth packages are obsolete?&lt;/p&gt;
+
+&lt;p&gt;For KDE, apt-get want to remove 82 packages, among them kdebase
+which seem like a bad idea and xorg the same way as with Gnome. Asking
+aptitude for the same, it wants to remove 192 packages, none which are
+too surprising.&lt;/p&gt;
+
+&lt;p&gt;I guess the removal of xorg during upgrades should be investigated
+and avoided, and perhaps others as well.  Here are the complete list
+of planned removals.  The complete logs is available from the URL
+above.  Note if you want to repeat these tests, that the upgrade test
+for kde+apt-get hung in the tasksel setup because of dpkg asking
+conffile questions.  No idea why.  I worked around it by using
+&#39;&lt;tt&gt;echo &gt;&gt; /proc/&lt;em&gt;pidofdpkg&lt;/em&gt;/fd/0&lt;/tt&gt;&#39; to tell dpkg to
+continue.&lt;/p&gt;
+
+&lt;p&gt;&lt;b&gt;apt-get gnome 72&lt;/b&gt;
+&lt;br&gt;bluez-gnome cupsddk-drivers deskbar-applet gnome
+  gnome-desktop-environment gnome-network-admin gtkhtml3.14
+  iceweasel-gnome-support libavcodec51 libdatrie0 libgdl-1-0
+  libgnomekbd2 libgnomekbdui2 libmetacity0 libslab0 libxcb-xlib0
+  nautilus-cd-burner python-gnome2-desktop python-gnome2-extras
+  serpentine swfdec-mozilla update-manager xorg xserver-xorg
+  xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
+  xserver-xorg-input-kbd xserver-xorg-input-mouse
+  xserver-xorg-input-synaptics xserver-xorg-input-wacom
+  xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
+  xserver-xorg-video-ati xserver-xorg-video-chips
+  xserver-xorg-video-cirrus xserver-xorg-video-cyrix
+  xserver-xorg-video-dummy xserver-xorg-video-fbdev
+  xserver-xorg-video-glint xserver-xorg-video-i128
+  xserver-xorg-video-i740 xserver-xorg-video-imstt
+  xserver-xorg-video-intel xserver-xorg-video-mach64
+  xserver-xorg-video-mga xserver-xorg-video-neomagic
+  xserver-xorg-video-nsc xserver-xorg-video-nv
+  xserver-xorg-video-openchrome xserver-xorg-video-r128
+  xserver-xorg-video-radeon xserver-xorg-video-radeonhd
+  xserver-xorg-video-rendition xserver-xorg-video-s3
+  xserver-xorg-video-s3virge xserver-xorg-video-savage
+  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
+  xserver-xorg-video-sisusb xserver-xorg-video-tdfx
+  xserver-xorg-video-tga xserver-xorg-video-trident
+  xserver-xorg-video-tseng xserver-xorg-video-v4l
+  xserver-xorg-video-vesa xserver-xorg-video-vga
+  xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9
+  xulrunner-1.9-gnome-support&lt;/p&gt;
+
+&lt;p&gt;&lt;b&gt;aptitude gnome 129&lt;/b&gt;
+
+&lt;br&gt;bluez-gnome bluez-utils cpp-4.3 cupsddk-drivers dhcdbd
+  djvulibre-desktop finger gnome-app-install gnome-mount
+  gnome-network-admin gnome-spell gnome-vfs-obexftp
+  gnome-volume-manager gstreamer0.10-gnomevfs gtkhtml3.14 libao2
+  libavahi-compat-libdnssd1 libavahi-core5 libavcodec51 libbluetooth2
+  libcamel1.2-11 libcdio7 libcucul0 libcupsys2 libcurl3 libdatrie0
+  libdirectfb-1.0-0 libdvdread3 libedataserver1.2-9 libeel2-2.20
+  libeel2-data libepc-1.0-1 libepc-ui-1.0-1 libfaad0 libgail-common
+  libgd2-noxpm libgda3-3 libgda3-common libgdl-1-0 libgdl-1-common
+  libggz2 libggzcore9 libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0
+  libgnomecups1.0-1 libgnomekbd2 libgnomekbdui2 libgnomeprint2.2-0
+  libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common
+  libgnomevfs2-bin libgpod3 libgraphviz4 libgtkhtml2-0
+  libgtksourceview-common libgtksourceview1.0-0 libgucharmap6
+  libhesiod0 libicu38 libiw29 libkpathsea4 libltdl3 libmagick++10
+  libmagick10 libmalaga7 libmetacity0 libmtp7 libmysqlclient15off
+  libnautilus-burn4 libneon27 libnm-glib0 libnm-util0 libopal-2.2
+  libosp5 libparted1.8-10 libpoppler-glib3 libpoppler3 libpt-1.10.10
+  libpt-1.10.10-plugins-alsa libpt-1.10.10-plugins-v4l libraw1394-8
+  libsensors3 libslab0 libsmbios2 libsoup2.2-8 libssh2-1
+  libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1 libtotem-plparser10
+  libtrackerclient0 libxalan2-java libxalan2-java-gcj libxcb-xlib0
+  libxerces2-java libxerces2-java-gcj libxklavier12 libxtrap6
+  libxxf86misc1 libzephyr3 mysql-common nautilus-cd-burner
+  openoffice.org-writer2latex openssl-blacklist p7zip
+  python-4suite-xml python-eggtrayicon python-gnome2-desktop
+  python-gnome2-extras python-gtkhtml2 python-gtkmozembed
+  python-numeric python-sexy serpentine svgalibg1 swfdec-gnome
+  swfdec-mozilla totem-gstreamer update-manager wodim
+  xserver-xorg-video-cyrix xserver-xorg-video-imstt
+  xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
+  zip&lt;/p&gt;
+
+&lt;p&gt;&lt;b&gt;apt-get kde 82&lt;/b&gt;
+
+&lt;br&gt;cupsddk-drivers karm kaudiocreator kcoloredit kcontrol kde kde-core
+  kdeaddons kdeartwork kdebase kdebase-bin kdebase-bin-kde3
+  kdebase-kio-plugins kdesktop kdeutils khelpcenter kicker
+  kicker-applets knewsticker kolourpaint konq-plugins konqueror korn
+  kpersonalizer kscreensaver ksplash libavcodec51 libdatrie0 libkiten1
+  libxcb-xlib0 quanta superkaramba texlive-base-bin xorg xserver-xorg
+  xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-evdev
+  xserver-xorg-input-kbd xserver-xorg-input-mouse
+  xserver-xorg-input-synaptics xserver-xorg-input-wacom
+  xserver-xorg-video-all xserver-xorg-video-apm xserver-xorg-video-ark
+  xserver-xorg-video-ati xserver-xorg-video-chips
+  xserver-xorg-video-cirrus xserver-xorg-video-cyrix
+  xserver-xorg-video-dummy xserver-xorg-video-fbdev
+  xserver-xorg-video-glint xserver-xorg-video-i128
+  xserver-xorg-video-i740 xserver-xorg-video-imstt
+  xserver-xorg-video-intel xserver-xorg-video-mach64
+  xserver-xorg-video-mga xserver-xorg-video-neomagic
+  xserver-xorg-video-nsc xserver-xorg-video-nv
+  xserver-xorg-video-openchrome xserver-xorg-video-r128
+  xserver-xorg-video-radeon xserver-xorg-video-radeonhd
+  xserver-xorg-video-rendition xserver-xorg-video-s3
+  xserver-xorg-video-s3virge xserver-xorg-video-savage
+  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
+  xserver-xorg-video-sisusb xserver-xorg-video-tdfx
+  xserver-xorg-video-tga xserver-xorg-video-trident
+  xserver-xorg-video-tseng xserver-xorg-video-v4l
+  xserver-xorg-video-vesa xserver-xorg-video-vga
+  xserver-xorg-video-vmware xserver-xorg-video-voodoo xulrunner-1.9&lt;/p&gt;
+
+&lt;p&gt;&lt;b&gt;aptitude kde 192&lt;/b&gt;
+&lt;br&gt;bluez-utils cpp-4.3 cupsddk-drivers cvs dcoprss dhcdbd
+  djvulibre-desktop dosfstools eyesapplet fifteenapplet finger gettext
+  ghostscript-x imlib-base imlib11 indi kandy karm kasteroids
+  kaudiocreator kbackgammon kbstate kcoloredit kcontrol kcron kdat
+  kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
+  kdebase-bin-kde3 kdebase-kio-plugins kdeedu-data
+  kdegraphics-kfile-plugins kdelirc kdemultimedia-kappfinder-data
+  kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
+  kdepim-kfile-plugins kdepim-kio-plugins kdeprint kdesktop kdessh
+  kdict kdnssd kdvi kedit keduca kenolaba kfax kfaxview kfouleggs
+  kghostview khelpcenter khexedit kiconedit kitchensync klatin
+  klickety kmailcvt kmenuedit kmid kmilo kmoon kmrml kodo kolourpaint
+  kooka korn kpager kpdf kpercentage kpf kpilot kpoker kpovmodeler
+  krec kregexpeditor ksayit ksim ksirc ksirtet ksmiletris ksmserver
+  ksnake ksokoban ksplash ksvg ksysv ktip ktnef kuickshow kverbos
+  kview kviewshell kvoctrain kwifimanager kwin kwin4 kworldclock
+  kxsldbg libakode2 libao2 libarts1-akode libarts1-audiofile
+  libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
+  libavahi-core5 libavc1394-0 libavcodec51 libbluetooth2
+  libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0 libdatrie0
+  libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
+  libgail-common libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0
+  libicu38 libiec61883-0 libindex0 libiw29 libk3b3 libkcal2b libkcddb1
+  libkdeedu3 libkdepim1a libkgantt0 libkiten1 libkleopatra1 libkmime2
+  libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
+  libksieve0 libktnef1 liblockdev1 libltdl3 libmagick10 libmimelib1c2a
+  libmozjs1d libmpcdec3 libneon27 libnm-util0 libopensync0 libpisock9
+  libpoppler-glib3 libpoppler-qt2 libpoppler3 libraw1394-8 libsmbios2
+  libssh2-1 libsuitesparse-3.1.0 libtalloc1 libtiff-tools
+  libxalan2-java libxalan2-java-gcj libxcb-xlib0 libxerces2-java
+  libxerces2-java-gcj libxtrap6 mpeglib networkstatus
+  openoffice.org-writer2latex pmount poster psutils quanta quanta-data
+  superkaramba svgalibg1 tex-common texlive-base texlive-base-bin
+  texlive-common texlive-doc-base texlive-fonts-recommended
+  xserver-xorg-video-cyrix xserver-xorg-video-imstt
+  xserver-xorg-video-nsc xserver-xorg-video-v4l xserver-xorg-video-vga
+  xulrunner-1.9&lt;/p&gt;
+
+</description>
+       </item>
+       
+       <item>
+               <title>Calling tasksel like the installer, while still getting useful output</title>
+               <link>http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Calling_tasksel_like_the_installer__while_still_getting_useful_output.html</guid>
+                <pubDate>Wed, 16 Jun 2010 14:55:00 +0200</pubDate>
+               <description>
+&lt;p&gt;A few times I have had the need to simulate the way tasksel
+installs packages during the normal debian-installer run.  Until now,
+I have ended up letting tasksel do the work, with the annoying problem
+of not getting any feedback at all when something fails (like a
+conffile question from dpkg or a download that fails), using code like
+this:
+
+&lt;blockquote&gt;&lt;pre&gt;
+export DEBIAN_FRONTEND=noninteractive
+tasksel --new-install
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+This would invoke tasksel, let its automatic task selection pick the
+tasks to install, and continue to install the requested tasks without
+any output what so ever.
+
+Recently I revisited this problem while working on the automatic
+package upgrade testing, because tasksel would some times hang without
+any useful feedback, and I want to see what is going on when it
+happen.  Then it occured to me, I can parse the output from tasksel
+when asked to run in test mode, and use that aptitude command line
+printed by tasksel then to simulate the tasksel run.  I ended up using
+code like this:
+
+&lt;blockquote&gt;&lt;pre&gt;
+export DEBIAN_FRONTEND=noninteractive
+cmd=&quot;$(in_target tasksel -t --new-install | sed &#39;s/debconf-apt-progress -- //&#39;)&quot;
+$cmd
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;The content of $cmd is typically something like &quot;&lt;tt&gt;aptitude -q
+--without-recommends -o APT::Install-Recommends=no -y install
+~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired
+~pimportant&lt;/tt&gt;&quot;, which will install the gnome desktop task, the
+laptop task and all packages with priority standard , required and
+important, just like tasksel would have done it during
+installation.&lt;/p&gt;
+
+&lt;p&gt;A better approach is probably to extend tasksel to be able to
+install packages without using debconf-apt-progress, for use cases
+like this.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Idea for a change to LDAP schemas allowing DNS and DHCP info to be combined into one object</title>
+               <link>http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html</guid>
+                <pubDate>Thu, 24 Jun 2010 00:35:00 +0200</pubDate>
+               <description>
+&lt;p&gt;A while back, I
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html&quot;&gt;complained
+about the fact&lt;/a&gt; that it is not possible with the provided schemas
+for storing DNS and DHCP information in LDAP to combine the two sets
+of information into one LDAP object representing a computer.&lt;/p&gt;
+
+&lt;p&gt;In the mean time, I discovered that a simple fix would be to make
+the dhcpHost object class auxiliary, to allow it to be combined with
+the dNSDomain object class, and thus forming one object for one
+computer when storing both DHCP and DNS information in LDAP.&lt;/p&gt;
+
+&lt;p&gt;If I understand this correctly, it is not safe to do this change
+without also changing the assigned number for the object class, and I
+do not know enough about LDAP schema design to do that properly for
+Debian Edu.&lt;/p&gt;
+
+&lt;p&gt;Anyway, for future reference, this is how I believe we could change
+the
+&lt;a href=&quot;http://tools.ietf.org/html/draft-ietf-dhc-ldap-schema-00&quot;&gt;DHCP
+schema&lt;/a&gt; to solve at least part of the problem with the LDAP schemas
+available today from IETF.&lt;/p&gt;
+
+&lt;pre&gt;
+--- dhcp.schema    (revision 65192)
++++ dhcp.schema    (working copy)
+@@ -376,7 +376,7 @@
+ objectclass ( 2.16.840.1.113719.1.203.6.6
+        NAME &#39;dhcpHost&#39;
+        DESC &#39;This represents information about a particular client&#39;
+-       SUP top
++       SUP top AUXILIARY
+        MUST cn
+        MAY  (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption)
+        X-NDS_CONTAINMENT (&#39;dhcpService&#39; &#39;dhcpSubnet&#39; &#39;dhcpGroup&#39;) )
+&lt;/pre&gt;
+
+&lt;p&gt;I very much welcome clues on how to do this properly for Debian
+Edu/Squeeze.  We provide the DHCP schema in our debian-edu-config
+package, and should thus be free to rewrite it as we see fit.&lt;/p&gt;
+
+&lt;p&gt;If you want to help out with implementing this for Debian Edu,
+please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>LUMA, a very nice LDAP GUI</title>
+               <link>http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html</guid>
+                <pubDate>Mon, 28 Jun 2010 00:30:00 +0200</pubDate>
+               <description>
+&lt;p&gt;The last few days I have been looking into the status of the LDAP
+directory in Debian Edu, and in the process I started to miss a GUI
+tool to browse the LDAP tree.  The only one I was able to find in
+Debian/Squeeze and Lenny is
+&lt;a href=&quot;http://luma.sourceforge.net/&quot;&gt;LUMA&lt;/a&gt;, which has proved to
+be a great tool to get a overview of the current LDAP directory
+populated by default in Skolelinux.  Thanks to it, I have been able to
+find empty and obsolete subtrees, misplaced objects and duplicate
+objects.  It will be installed by default in Debian/Squeeze.  If you
+are working with LDAP, give it a go. :)&lt;/p&gt;
+
+&lt;p&gt;I did notice one problem with it I have not had time to report to
+the BTS yet.  There is no .desktop file in the package, so the tool do
+not show up in the Gnome and KDE menus, but only deep down in in the
+Debian submenu in KDE.  I hope that can be fixed before Squeeze is
+released.&lt;/p&gt;
+
+&lt;p&gt;I have not yet been able to get it to modify the tree yet.  I would
+like to move objects and remove subtrees directly in the GUI, but have
+not found a way to do that with LUMA yet.  So in the mean time, I use
+&lt;a href=&quot;http://www.lichteblau.com/ldapvi/&quot;&gt;ldapvi&lt;/a&gt; for that.&lt;/p&gt;
+
+&lt;p&gt;If you have tips on other GUI tools for LDAP that might be useful
+in Debian Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
+
+&lt;p&gt;Update 2010-06-29: Ross Reedstrom tipped us about the
+&lt;a href=&quot;http://packages.qa.debian.org/g/gq.html&quot;&gt;gq&lt;/a&gt; package as a
+useful GUI alternative.  It seem like a good tool, but is unmaintained
+in Debian and got a RC bug keeping it out of Squeeze.  Unless that
+changes, it will not be an option for Debian Edu based on Squeeze.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Lenny-&gt;Squeeze upgrades, apt vs aptitude with the Gnome desktop</title>
+               <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_desktop.html</guid>
+                <pubDate>Sat, 3 Jul 2010 23:55:00 +0200</pubDate>
+               <description>
+&lt;p&gt;Here is a short update on my &lt;a
+href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;my
+Debian Lenny-&gt;Squeeze upgrade testing&lt;/a&gt;.  Here is a summary of the
+difference for Gnome when it is upgraded by apt-get and aptitude.  I&#39;m
+not reporting the status for KDE, because the upgrade crashes when
+aptitude try because of missing conflicts
+(&lt;a href=&quot;http://bugs.debian.org/584861&quot;&gt;#584861&lt;/a&gt; and
+&lt;a href=&quot;http://bugs.debian.org/585716&quot;&gt;#585716&lt;/a&gt;).&lt;/p&gt;
+
+&lt;p&gt;At the end of the upgrade test script, dpkg -l is executed to get a
+complete list of the installed packages.  Based on this I see these
+differences when I did a test run today.  As usual, I do not really
+know what the correct set of packages would be, but thought it best to
+publish the difference.&lt;/p&gt;
+
+&lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  at-spi cpp-4.3 finger gnome-spell gstreamer0.10-gnomevfs
+  libatspi1.0-0 libcupsys2 libeel2-data libgail-common libgdl-1-common
+  libgnomeprint2.2-data libgnomeprintui2.2-common libgnomevfs2-bin
+  libgtksourceview-common libpt-1.10.10-plugins-alsa
+  libpt-1.10.10-plugins-v4l libservlet2.4-java libxalan2-java
+  libxerces2-java openoffice.org-writer2latex openssl-blacklist p7zip
+  python-4suite-xml python-eggtrayicon python-gtkhtml2
+  python-gtkmozembed svgalibg1 xserver-xephyr zip
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  bluez-utils dhcdbd djvulibre-desktop epiphany-gecko
+  gnome-app-install gnome-mount gnome-vfs-obexftp gnome-volume-manager
+  libao2 libavahi-compat-libdnssd1 libavahi-core5 libbind9-50
+  libbluetooth2 libcamel1.2-11 libcdio7 libcucul0 libcurl3
+  libdirectfb-1.0-0 libdvdread3 libedata-cal1.2-6 libedataserver1.2-9
+  libeel2-2.20 libepc-1.0-1 libepc-ui-1.0-1 libexchange-storage1.2-3
+  libfaad0 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
+  libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
+  libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
+  libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtkhtml2-0
+  libgtksourceview1.0-0 libgucharmap6 libhesiod0 libicu38 libisccc50
+  libisccfg50 libiw29 libkpathsea4 libltdl3 liblwres50 libmagick++10
+  libmagick10 libmalaga7 libmtp7 libmysqlclient15off libnautilus-burn4
+  libneon27 libnm-glib0 libnm-util0 libopal-2.2 libosp5
+  libparted1.8-10 libpisock9 libpisync1 libpoppler-glib3 libpoppler3
+  libpt-1.10.10 libraw1394-8 libsensors3 libsmbios2 libsoup2.2-8
+  libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90 libtalloc1
+  libtotem-plparser10 libtrackerclient0 libvoikko1 libxalan2-java-gcj
+  libxerces2-java-gcj libxklavier12 libxtrap6 libxxf86misc1 libzephyr3
+  mysql-common swfdec-gnome totem-gstreamer wodim
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  gnome gnome-desktop-environment hamster-applet python-gnomeapplet
+  python-gnomekeyring python-wnck rhythmbox-plugins xorg
+  xserver-xorg-input-all xserver-xorg-input-evdev
+  xserver-xorg-input-kbd xserver-xorg-input-mouse
+  xserver-xorg-input-synaptics xserver-xorg-video-all
+  xserver-xorg-video-apm xserver-xorg-video-ark xserver-xorg-video-ati
+  xserver-xorg-video-chips xserver-xorg-video-cirrus
+  xserver-xorg-video-dummy xserver-xorg-video-fbdev
+  xserver-xorg-video-glint xserver-xorg-video-i128
+  xserver-xorg-video-i740 xserver-xorg-video-mach64
+  xserver-xorg-video-mga xserver-xorg-video-neomagic
+  xserver-xorg-video-nouveau xserver-xorg-video-nv
+  xserver-xorg-video-r128 xserver-xorg-video-radeon
+  xserver-xorg-video-radeonhd xserver-xorg-video-rendition
+  xserver-xorg-video-s3 xserver-xorg-video-s3virge
+  xserver-xorg-video-savage xserver-xorg-video-siliconmotion
+  xserver-xorg-video-sis xserver-xorg-video-sisusb
+  xserver-xorg-video-tdfx xserver-xorg-video-tga
+  xserver-xorg-video-trident xserver-xorg-video-tseng
+  xserver-xorg-video-vesa xserver-xorg-video-vmware
+  xserver-xorg-video-voodoo
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  deskbar-applet xserver-xorg xserver-xorg-core
+  xserver-xorg-input-wacom xserver-xorg-video-intel
+  xserver-xorg-video-openchrome
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;I was told on IRC that the xorg-xserver package was
+&lt;a href=&quot;http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git;a=commit;h=9c8080d06c457932d3bfec021c69ac000aa60120&quot;&gt;changed
+in git&lt;/a&gt; today to try to get apt-get to not remove xorg completely.
+No idea when it hits Squeeze, but when it does I hope it will reduce
+the difference somewhat.
+</description>
+       </item>
+       
+       <item>
+               <title>jXplorer, a very nice LDAP GUI</title>
+               <link>http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/jXplorer__a_very_nice_LDAP_GUI.html</guid>
+                <pubDate>Fri, 9 Jul 2010 12:55:00 +0200</pubDate>
+               <description>
+&lt;p&gt;Since
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/LUMA__a_very_nice_LDAP_GUI.html&quot;&gt;my
+last post&lt;/a&gt; about available LDAP tools in Debian, I was told about a
+LDAP GUI that is even better than luma.  The java application
+&lt;a href=&quot;http://jxplorer.org/&quot;&gt;jXplorer&lt;/a&gt; is claimed to be capable of
+moving LDAP objects and subtrees using drag-and-drop, and can
+authenticate using Kerberos.  I have only tested the Kerberos
+authentication, but do not have a LDAP setup allowing me to rewrite
+LDAP with my test user yet.  It is
+&lt;a href=&quot;http://packages.qa.debian.org/j/jxplorer.html&quot;&gt;available in
+Debian&lt;/a&gt; testing and unstable at the moment.  The only problem I
+have with it is how it handle errors.  If something go wrong, its
+non-intuitive behaviour require me to go through some query work list
+and remove the failing query.  Nothing big, but very annoying.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Idea for storing LTSP configuration in LDAP</title>
+               <link>http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Idea_for_storing_LTSP_configuration_in_LDAP.html</guid>
+                <pubDate>Sun, 11 Jul 2010 22:00:00 +0200</pubDate>
+               <description>
+&lt;p&gt;Vagrant mentioned on IRC today that ltsp_config now support
+sourcing files from /usr/share/ltsp/ltsp_config.d/ on the thin
+clients, and that this can be used to fetch configuration from LDAP if
+Debian Edu choose to store configuration there.&lt;/p&gt;
+
+&lt;p&gt;Armed with this information, I got inspired and wrote a test module
+to get configuration from LDAP.  The idea is to look up the MAC
+address of the client in LDAP, and look for attributes on the form
+ltspconfigsetting=value, and use this to export SETTING=value to the
+LTSP clients.&lt;/p&gt;
+
+&lt;p&gt;The goal is to be able to store the LTSP configuration attributes
+in a &quot;computer&quot; LDAP object used by both DNS and DHCP, and thus
+allowing us to store all information about a computer in one place.&lt;/p&gt;
+
+&lt;p&gt;This is a untested draft implementation, and I welcome feedback on
+this approach.  A real LDAP schema for the ltspClientAux objectclass
+need to be written.  Comments, suggestions, etc?&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+# Store in /opt/ltsp/$arch/usr/share/ltsp/ltsp_config.d/ldap-config
+#
+# Fetch LTSP client settings from LDAP based on MAC address
+#
+# Uses ethernet address as stored in the dhcpHost objectclass using
+# the dhcpHWAddress attribute or ethernet address stored in the
+# ieee802Device objectclass with the macAddress attribute.
+#
+# This module is written to be schema agnostic, and only depend on the
+# existence of attribute names.
+#
+# The LTSP configuration variables are saved directly using a
+# ltspConfig prefix and uppercasing the rest of the attribute name.
+# To set the SERVER variable, set the ltspConfigServer attribute.
+#
+# Some LDAP schema should be created with all the relevant
+# configuration settings.  Something like this should work:
+# 
+# objectclass ( 1.1.2.2 NAME &#39;ltspClientAux&#39;
+#     SUP top
+#     AUXILIARY
+#     MAY ( ltspConfigServer $ ltsConfigSound $ ... )
+
+LDAPSERVER=$(debian-edu-ldapserver)
+if [ &quot;$LDAPSERVER&quot; ] ; then
+    LDAPBASE=$(debian-edu-ldapserver -b)
+    for MAC in $(LANG=C ifconfig |grep -i hwaddr| awk &#39;{print $5}&#39;|sort -u) ; do
+       filter=&quot;(|(dhcpHWAddress=ethernet $MAC)(macAddress=$MAC))&quot;
+       ldapsearch -h &quot;$LDAPSERVER&quot; -b &quot;$LDAPBASE&quot; -v -x &quot;$filter&quot; | \
+           grep &#39;^ltspConfig&#39; | while read attr value ; do
+           # Remove prefix and convert to upper case
+           attr=$(echo $attr | sed &#39;s/^ltspConfig//i&#39; | tr a-z A-Z)
+           # bass value on to clients
+           eval &quot;$attr=$value; export $attr&quot;
+       done
+    done
+fi
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;I&#39;m not sure this shell construction will work, because I suspect
+the while block might end up in a subshell causing the variables set
+there to not show up in ltsp-config, but if that is the case I am sure
+the code can be restructured to make sure the variables are passed on.
+I expect that can be solved with some testing. :)&lt;/p&gt;
+
+&lt;p&gt;If you want to help out with implementing this for Debian Edu,
+please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
+
+&lt;p&gt;Update 2010-07-17: I am aware of another effort to store LTSP
+configuration in LDAP that was created around year 2000 by
+&lt;a href=&quot;http://www.pcxperience.com/thinclient/documentation/ldap.html&quot;&gt;PC
+Xperience, Inc., 2000&lt;/a&gt;.  I found its
+&lt;a href=&quot;http://people.redhat.com/alikins/ltsp/ldap/&quot;&gt;files&lt;/a&gt; on a
+personal home page over at redhat.com.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Combining PowerDNS and ISC DHCP LDAP objects</title>
+               <link>http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html</guid>
+                <pubDate>Wed, 14 Jul 2010 23:45:00 +0200</pubDate>
+               <description>
+&lt;p&gt;For a while now, I have wanted to find a way to change the DNS and
+DHCP services in Debian Edu to use the same LDAP objects for a given
+computer, to avoid the possibility of having a inconsistent state for
+a computer in LDAP (as in DHCP but no DNS entry or the other way
+around) and make it easier to add computers to LDAP.&lt;/p&gt;
+
+&lt;p&gt;I&#39;ve looked at how powerdns and dhcpd is using LDAP, and using this
+information finally found a solution that seem to work.&lt;/p&gt;
+
+&lt;p&gt;The old setup required three LDAP objects for a given computer.
+One forward DNS entry, one reverse DNS entry and one DHCP entry.  If
+we switch powerdns to use its strict LDAP method (ldap-method=strict
+in pdns-debian-edu.conf), the forward and reverse DNS entries are
+merged into one while making it impossible to transfer the reverse map
+to a slave DNS server.&lt;/p&gt;
+
+&lt;p&gt;If we also replace the object class used to get the DNS related
+attributes to one allowing these attributes to be combined with the
+dhcphost object class, we can merge the DNS and DHCP entries into one.
+I&#39;ve written such object class in the dnsdomainaux.schema file (need
+proper OIDs, but that is a minor issue), and tested the setup.  It
+seem to work.&lt;/p&gt;
+
+&lt;p&gt;With this test setup in place, we can get away with one LDAP object
+for both DNS and DHCP, and even the LTSP configuration I suggested in
+an earlier email.  The combined LDAP object will look something like
+this:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+  dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
+  cn: hostname
+  objectClass: dhcphost
+  objectclass: domainrelatedobject
+  objectclass: dnsdomainaux
+  associateddomain: hostname.intern
+  arecord: 10.11.12.13
+  dhcphwaddress: ethernet 00:00:00:00:00:00
+  dhcpstatements: fixed-address hostname
+  ldapconfigsound: Y
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;The DNS server uses the associateddomain and arecord entries, while
+the DHCP server uses the dhcphwaddress and dhcpstatements entries
+before asking DNS to resolve the fixed-adddress.  LTSP will use
+dhcphwaddress or associateddomain and the ldapconfig* attributes.&lt;/p&gt;
+
+&lt;p&gt;I am not yet sure if I can get the DHCP server to look for its
+dhcphost in a different location, to allow us to put the objects
+outside the &quot;DHCP Config&quot; subtree, but hope to figure out a way to do
+that.  If I can&#39;t figure out a way to do that, we can still get rid of
+the hosts subtree and move all its content into the DHCP Config tree
+(which probably should be renamed to be more related to the new
+content.  I suspect cn=dnsdhcp,ou=services or something like that
+might be a good place to put it.&lt;/p&gt;
+
+&lt;p&gt;If you want to help out with implementing this for Debian Edu,
+please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>What are they searching for - PowerDNS and ISC DHCP in LDAP</title>
+               <link>http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/What_are_they_searching_for___PowerDNS_and_ISC_DHCP_in_LDAP.html</guid>
+                <pubDate>Sat, 17 Jul 2010 21:00:00 +0200</pubDate>
+               <description>
+&lt;p&gt;This is a
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Time_for_new__LDAP_schemas_replacing_RFC_2307_.html&quot;&gt;followup&lt;/a&gt;
+on my
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Idea_for_a_change_to_LDAP_schemas_allowing_DNS_and_DHCP_info_to_be_combined_into_one_object.html&quot;&gt;previous
+work&lt;/a&gt; on
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Combining_PowerDNS_and_ISC_DHCP_LDAP_objects.html&quot;&gt;merging
+all&lt;/a&gt; the computer related LDAP objects in Debian Edu.&lt;/p&gt;
+
+&lt;p&gt;As a step to try to see if it possible to merge the DNS and DHCP
+LDAP objects, I have had a look at how the packages pdns-backend-ldap
+and dhcp3-server-ldap in Debian use the LDAP server.  The two
+implementations are quite different in how they use LDAP.&lt;/p&gt;
+
+To get this information, I started slapd with debugging enabled and
+dumped the debug output to a file to get the LDAP searches performed
+on a Debian Edu main-server.  Here is a summary.
+
+&lt;p&gt;&lt;strong&gt;powerdns&lt;/strong&gt;&lt;/p&gt;
+
+&lt;a href=&quot;http://www.linuxnetworks.de/doc/index.php/PowerDNS_LDAP_Backend&quot;&gt;Clues
+on how to&lt;/a&gt; set up PowerDNS to use a LDAP backend is available on
+the web.
+
+&lt;p&gt;PowerDNS have two modes of operation using LDAP as its backend.
+One &quot;strict&quot; mode where the forward and reverse DNS lookups are done
+using the same LDAP objects, and a &quot;tree&quot; mode where the forward and
+reverse entries are in two different subtrees in LDAP with a structure
+based on the DNS names, as in tjener.intern and
+2.2.0.10.in-addr.arpa.&lt;/p&gt;
+
+&lt;p&gt;In tree mode, the server is set up to use a LDAP subtree as its
+base, and uses a &quot;base&quot; scoped search for the DNS name by adding
+&quot;dc=tjener,dc=intern,&quot; to the base with a filter for
+&quot;(associateddomain=tjener.intern)&quot; for the forward entry and
+&quot;dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,&quot; with a filter for
+&quot;(associateddomain=2.2.0.10.in-addr.arpa)&quot; for the reverse entry.  For
+forward entries, it is looking for attributes named dnsttl, arecord,
+nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord, mxrecord,
+txtrecord, rprecord, afsdbrecord, keyrecord, aaaarecord, locrecord,
+srvrecord, naptrrecord, kxrecord, certrecord, dsrecord, sshfprecord,
+ipseckeyrecord, rrsigrecord, nsecrecord, dnskeyrecord, dhcidrecord,
+spfrecord and modifytimestamp.  For reverse entries it is looking for
+the attributes dnsttl, arecord, nsrecord, cnamerecord, soarecord,
+ptrrecord, hinforecord, mxrecord, txtrecord, rprecord, aaaarecord,
+locrecord, srvrecord, naptrrecord and modifytimestamp.  The equivalent
+ldapsearch commands could look like this:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+ldapsearch -h ldap \
+  -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
+  -s base -x &#39;(associateddomain=tjener.intern)&#39; dNSTTL aRecord nSRecord \
+  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
+  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
+  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
+  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
+
+ldapsearch -h ldap \
+  -b dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no \
+  -s base -x &#39;(associateddomain=2.2.0.10.in-addr.arpa)&#39;
+  dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
+  hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
+  srvrecord naptrrecord modifytimestamp
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;In Debian Edu/Lenny, the PowerDNS tree mode is used with
+ou=hosts,dc=skole,dc=skolelinux,dc=no as the base, and these are two
+example LDAP objects used there.  In addition to these objects, the
+parent objects all th way up to ou=hosts,dc=skole,dc=skolelinux,dc=no
+also exist.&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+dn: dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no
+objectclass: top
+objectclass: dnsdomain
+objectclass: domainrelatedobject
+dc: tjener
+arecord: 10.0.2.2
+associateddomain: tjener.intern
+
+dn: dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa,ou=hosts,dc=skole,dc=skolelinux,dc=no
+objectclass: top
+objectclass: dnsdomain2
+objectclass: domainrelatedobject
+dc: 2
+ptrrecord: tjener.intern
+associateddomain: 2.2.0.10.in-addr.arpa
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;In strict mode, the server behaves differently.  When looking for
+forward DNS entries, it is doing a &quot;subtree&quot; scoped search with the
+same base as in the tree mode for a object with filter
+&quot;(associateddomain=tjener.intern)&quot; and requests the attributes dnsttl,
+arecord, nsrecord, cnamerecord, soarecord, ptrrecord, hinforecord,
+mxrecord, txtrecord, rprecord, aaaarecord, locrecord, srvrecord,
+naptrrecord and modifytimestamp.  For reverse entires it also do a
+subtree scoped search but this time the filter is &quot;(arecord=10.0.2.2)&quot;
+and the requested attributes are associateddomain, dnsttl and
+modifytimestamp.  In short, in strict mode the objects with ptrrecord
+go away, and the arecord attribute in the forward object is used
+instead.&lt;/p&gt;
+
+&lt;p&gt;The forward and reverse searches can be simulated using ldapsearch
+like this:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
+  &#39;(associateddomain=tjener.intern)&#39; dNSTTL aRecord nSRecord \
+  cNAMERecord sOARecord pTRRecord hInfoRecord mXRecord tXTRecord \
+  rPRecord aFSDBRecord KeyRecord aAAARecord lOCRecord sRVRecord \
+  nAPTRRecord kXRecord certRecord dSRecord sSHFPRecord iPSecKeyRecord \
+  rRSIGRecord nSECRecord dNSKeyRecord dHCIDRecord sPFRecord modifyTimestamp
+
+ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
+  &#39;(arecord=10.0.2.2)&#39; associateddomain dnsttl modifytimestamp
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;In addition to the forward and reverse searches , there is also a
+search for SOA records, which behave similar to the forward and
+reverse lookups.&lt;/p&gt;
+
+&lt;p&gt;A thing to note with the PowerDNS behaviour is that it do not
+specify any objectclass names, and instead look for the attributes it
+need to generate a DNS reply.  This make it able to work with any
+objectclass that provide the needed attributes.&lt;/p&gt;
+
+&lt;p&gt;The attributes are normally provided in the cosine (RFC 1274) and
+dnsdomain2 schemas.  The latter is used for reverse entries like
+ptrrecord and recent DNS additions like aaaarecord and srvrecord.&lt;/p&gt;
+
+&lt;p&gt;In Debian Edu, we have created DNS objects using the object classes
+dcobject (for dc), dnsdomain or dnsdomain2 (structural, for the DNS
+attributes) and domainrelatedobject (for associatedDomain).  The use
+of structural object classes make it impossible to combine these
+classes with the object classes used by DHCP.&lt;/p&gt;
+
+&lt;p&gt;There are other schemas that could be used too, for example the
+dnszone structural object class used by Gosa and bind-sdb for the DNS
+attributes combined with the domainrelatedobject object class, but in
+this case some unused attributes would have to be included as well
+(zonename and relativedomainname).&lt;/p&gt;
+
+&lt;p&gt;My proposal for Debian Edu would be to switch PowerDNS to strict
+mode and not use any of the existing objectclasses (dnsdomain,
+dnsdomain2 and dnszone) when one want to combine the DNS information
+with DHCP information, and instead create a auxiliary object class
+defined something like this (using the attributes defined for
+dnsdomain and dnsdomain2 or dnszone):&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+objectclass ( some-oid NAME &#39;dnsDomainAux&#39;
+    SUP top
+    AUXILIARY
+    MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ CNAMERecord $
+          DNSTTL $ DNSClass $ PTRRecord $ HINFORecord $ MINFORecord $
+          TXTRecord $ SIGRecord $ KEYRecord $ AAAARecord $ LOCRecord $
+          NXTRecord $ SRVRecord $ NAPTRRecord $ KXRecord $ CERTRecord $
+          A6Record $ DNAMERecord
+    ))
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;This will allow any object to become a DNS entry when combined with
+the domainrelatedobject object class, and allow any entity to include
+all the attributes PowerDNS wants.  I&#39;ve sent an email to the PowerDNS
+developers asking for their view on this schema and if they are
+interested in providing such schema with PowerDNS, and I hope my
+message will be accepted into their mailing list soon.&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;ISC dhcp&lt;/strong&gt;&lt;/p&gt;
+
+&lt;p&gt;The DHCP server searches for specific objectclass and requests all
+the object attributes, and then uses the attributes it want.  This
+make it harder to figure out exactly what attributes are used, but
+thanks to the working example in Debian Edu I can at least get an idea
+what is needed without having to read the source code.&lt;/p&gt;
+
+&lt;p&gt;In the DHCP server configuration, the LDAP base to use and the
+search filter to use to locate the correct dhcpServer entity is
+stored.  These are the relevant entries from
+/etc/dhcp3/dhcpd.conf:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+ldap-base-dn &quot;dc=skole,dc=skolelinux,dc=no&quot;;
+ldap-dhcp-server-cn &quot;dhcp&quot;;
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;The DHCP server uses this information to nest all the DHCP
+configuration it need.  The cn &quot;dhcp&quot; is located using the given LDAP
+base and the filter &quot;(&amp;(objectClass=dhcpServer)(cn=dhcp))&quot;.  The
+search result is this entry:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+dn: cn=dhcp,dc=skole,dc=skolelinux,dc=no
+cn: dhcp
+objectClass: top
+objectClass: dhcpServer
+dhcpServiceDN: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;The content of the dhcpServiceDN attribute is next used to locate the
+subtree with DHCP configuration.  The DHCP configuration subtree base
+is located using a base scope search with base &quot;cn=DHCP
+Config,dc=skole,dc=skolelinux,dc=no&quot; and filter
+&quot;(&amp;(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))&quot;.
+The search result is this entry:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+dn: cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
+cn: DHCP Config
+objectClass: top
+objectClass: dhcpService
+objectClass: dhcpOptions
+dhcpPrimaryDN: cn=dhcp, dc=skole,dc=skolelinux,dc=no
+dhcpStatements: ddns-update-style none
+dhcpStatements: authoritative
+dhcpOption: smtp-server code 69 = array of ip-address
+dhcpOption: www-server code 72 = array of ip-address
+dhcpOption: wpad-url code 252 = text
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Next, the entire subtree is processed, one level at the time.  When
+all the DHCP configuration is loaded, it is ready to receive requests.
+The subtree in Debian Edu contain objects with object classes
+top/dhcpService/dhcpOptions, top/dhcpSharedNetwork/dhcpOptions,
+top/dhcpSubnet, top/dhcpGroup and top/dhcpHost.  These provide options
+and information about netmasks, dynamic range etc.  Leaving out the
+details here because it is not relevant for the focus of my
+investigation, which is to see if it is possible to merge dns and dhcp
+related computer objects.&lt;/p&gt;
+
+&lt;p&gt;When a DHCP request come in, LDAP is searched for the MAC address
+of the client (00:00:00:00:00:00 in this example), using a subtree
+scoped search with &quot;cn=DHCP Config,dc=skole,dc=skolelinux,dc=no&quot; as
+the base and &quot;(&amp;(objectClass=dhcpHost)(dhcpHWAddress=ethernet
+00:00:00:00:00:00))&quot; as the filter.  This is what a host object look
+like:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+dn: cn=hostname,cn=group1,cn=THINCLIENTS,cn=DHCP Config,dc=skole,dc=skolelinux,dc=no
+cn: hostname
+objectClass: top
+objectClass: dhcpHost
+dhcpHWAddress: ethernet 00:00:00:00:00:00
+dhcpStatements: fixed-address hostname
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;There is less flexiblity in the way LDAP searches are done here.
+The object classes need to have fixed names, and the configuration
+need to be stored in a fairly specific LDAP structure.  On the
+positive side, the invidiual dhcpHost entires can be anywhere without
+the DN pointed to by the dhcpServer entries.  The latter should make
+it possible to group all host entries in a subtree next to the
+configuration entries, and this subtree can also be shared with the
+DNS server if the schema proposed above is combined with the dhcpHost
+structural object class.
+
+&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
+
+&lt;p&gt;The PowerDNS implementation seem to be very flexible when it come
+to which LDAP schemas to use.  While its &quot;tree&quot; mode is rigid when it
+come to the the LDAP structure, the &quot;strict&quot; mode is very flexible,
+allowing DNS objects to be stored anywhere under the base cn specified
+in the configuration.&lt;/p&gt;
+
+&lt;p&gt;The DHCP implementation on the other hand is very inflexible, both
+regarding which LDAP schemas to use and which LDAP structure to use.
+I guess one could implement ones own schema, as long as the
+objectclasses and attributes have the names used, but this do not
+really help when the DHCP subtree need to have a fairly fixed
+structure.&lt;/p&gt;
+
+&lt;p&gt;Based on the observed behaviour, I suspect a LDAP structure like
+this might work for Debian Edu:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+ou=services
+  cn=machine-info (dhcpService) - dhcpServiceDN points here
+    cn=dhcp (dhcpServer)
+    cn=dhcp-internal (dhcpSharedNetwork/dhcpOptions)
+      cn=10.0.2.0 (dhcpSubnet)
+        cn=group1 (dhcpGroup/dhcpOptions)
+    cn=dhcp-thinclients (dhcpSharedNetwork/dhcpOptions)
+      cn=192.168.0.0 (dhcpSubnet)
+        cn=group1 (dhcpGroup/dhcpOptions)
+    ou=machines - PowerDNS base points here
+      cn=hostname (dhcpHost/domainrelatedobject/dnsDomainAux)
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;P&gt;This is not tested yet.  If the DHCP server require the dhcpHost
+entries to be in the dhcpGroup subtrees, the entries can be stored
+there instead of a common machines subtree, and the PowerDNS base
+would have to be moved one level up to the machine-info subtree.&lt;/p&gt;
+
+&lt;p&gt;The combined object under the machines subtree would look something
+like this:&lt;/p&gt;
+    
+&lt;blockquote&gt;&lt;pre&gt;
+dn: dc=hostname,ou=machines,cn=machine-info,dc=skole,dc=skolelinux,dc=no
+dc: hostname
+objectClass: top
+objectClass: dhcpHost
+objectclass: domainrelatedobject
+objectclass: dnsDomainAux
+associateddomain: hostname.intern
+arecord: 10.11.12.13
+dhcpHWAddress: ethernet 00:00:00:00:00:00
+dhcpStatements: fixed-address hostname.intern
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;/p&gt;One could even add the LTSP configuration associated with a given
+machine, as long as the required attributes are available in a
+auxiliary object class.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Circular package dependencies harms apt recovery</title>
+               <link>http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Circular_package_dependencies_harms_apt_recovery.html</guid>
+                <pubDate>Tue, 27 Jul 2010 23:50:00 +0200</pubDate>
+               <description>
+&lt;p&gt;I discovered this while doing
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html&quot;&gt;automated
+testing of upgrades from Debian Lenny to Squeeze&lt;/a&gt;.  A few packages
+in Debian still got circular dependencies, and it is often claimed
+that apt and aptitude should be able to handle this just fine, but
+some times these dependency loops causes apt to fail.&lt;/p&gt;
+
+&lt;p&gt;An example is from todays
+&lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing//test-20100727-lenny-squeeze-kde-aptitude.txt&quot;&gt;upgrade
+of KDE using aptitude&lt;/a&gt;.  In it, a bug in kdebase-workspace-data
+causes perl-modules to fail to upgrade.  The cause is simple.  If a
+package fail to unpack, then only part of packages with the circular
+dependency might end up being unpacked when unpacking aborts, and the
+ones already unpacked will fail to configure in the recovery phase
+because its dependencies are unavailable.&lt;/p&gt;
+
+&lt;p&gt;In this log, the problem manifest itself with this error:&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;pre&gt;
+dpkg: dependency problems prevent configuration of perl-modules:
+ perl-modules depends on perl (&gt;= 5.10.1-1); however:
+  Version of perl on system is 5.10.0-19lenny2.
+dpkg: error processing perl-modules (--configure):
+ dependency problems - leaving unconfigured
+&lt;/pre&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;The perl/perl-modules circular dependency is already
+&lt;a href=&quot;http://bugs.debian.org/527917&quot;&gt;reported as a bug&lt;/a&gt;, and will
+hopefully be solved as soon as possible, but it is not the only one,
+and each one of these loops in the dependency tree can cause similar
+failures.  Of course, they only occur when there are bugs in other
+packages causing the unpacking to fail, but it is rather nasty when
+the failure of one package causes the problem to become worse because
+of dependency loops.&lt;/p&gt;
+
+&lt;p&gt;Thanks to
+&lt;a href=&quot;http://lists.debian.org/debian-devel/2010/06/msg00116.html&quot;&gt;the
+tireless effort by Bill Allombert&lt;/a&gt;, the number of circular
+dependencies
+&lt;a href=&quot;http://debian.semistable.com/debgraph.out.html&quot;&gt;left in Debian
+is dropping&lt;/a&gt;, and perhaps it will reach zero one day. :)&lt;/p&gt;
+
+&lt;p&gt;Todays testing also exposed a bug in
+&lt;a href=&quot;http://bugs.debian.org/590605&quot;&gt;update-notifier&lt;/a&gt; and
+&lt;a href=&quot;http://bugs.debian.org/590604&quot;&gt;different behaviour&lt;/a&gt; between
+apt-get and aptitude, the latter possibly caused by some circular
+dependency.  Reported both to BTS to try to get someone to look at
+it.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Some notes on Flash in Debian and Debian Edu</title>
+               <link>http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Some_notes_on_Flash_in_Debian_and_Debian_Edu.html</guid>
+                <pubDate>Sat, 4 Sep 2010 10:10:00 +0200</pubDate>
+               <description>
+&lt;p&gt;In the &lt;a href=&quot;http://popcon.debian.org/unknown/by_vote&quot;&gt;Debian
+popularity-contest numbers&lt;/a&gt;, the adobe-flashplugin package the
+second most popular used package that is missing in Debian.  The sixth
+most popular is flashplayer-mozilla.  This is a clear indication that
+working flash is important for Debian users.  Around 10 percent of the
+users submitting data to popcon.debian.org have this package
+installed.&lt;/p&gt;
+
+&lt;p&gt;In the report written by Lars Risan in August 2008
+(«&lt;a href=&quot;http://wiki.skolelinux.no/Dokumentasjon/Rapporter?action=AttachFile&amp;do=view&amp;target=Skolelinux_i_bruk_rapport_1.0.pdf&quot;&gt;Skolelinux
+i bruk â€“ Rapport for Hurum kommune, Universitetet i Agder og
+stiftelsen SLX Debian Labs&lt;/a&gt;»), one of the most important problems
+schools experienced with &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian
+Edu/Skolelinux&lt;/a&gt; was the lack of working Flash.  A lot of educational
+web sites require Flash to work, and lacking working Flash support in
+the web browser and the problems with installing it was perceived as a
+good reason to stay with Windows.&lt;/p&gt;
+
+&lt;p&gt;I once saw a funny and sad comment in a web forum, where Linux was
+said to be the retarded cousin that did not really understand
+everything you told him but could work fairly well.  This was a
+comment regarding the problems Linux have with proprietary formats and
+non-standard web pages, and is sad because it exposes a fairly common
+understanding of whose fault it is if web pages that only work in for
+example Internet Explorer 6 fail to work on Firefox, and funny because
+it explain very well how annoying it is for users when Linux
+distributions do not work with the documents they receive or the web
+pages they want to visit.&lt;/p&gt;
+
+&lt;p&gt;This is part of the reason why I believe it is important for Debian
+and Debian Edu to have a well working Flash implementation in the
+distribution, to get at least popular sites as Youtube and Google
+Video to working out of the box.  For Squeeze, Debian have the chance
+to include the latest version of Gnash that will make this happen, as
+the new release 0.8.8 was published a few weeks ago and is resting in
+unstable.  The new version work with more sites that version 0.8.7.
+The Gnash maintainers have asked for a freeze exception, but the
+release team have not had time to reply to it yet.  I hope they agree
+with me that Flash is important for the Debian desktop users, and thus
+accept the new package into Squeeze.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Software updates 2010-10-24</title>
+               <link>http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Software_updates_2010_10_24.html</guid>
+                <pubDate>Sun, 24 Oct 2010 22:45:00 +0200</pubDate>
+               <description>
+&lt;p&gt;Some updates.&lt;/p&gt;
+
+&lt;p&gt;My &lt;a href=&quot;http://pledgebank.com/gnash-avm2&quot;&gt;gnash pledge&lt;/a&gt; to
+raise money for the project is going well.  The lower limit of 10
+signers was reached in 24 hours, and so far 13 people have signed it.
+More signers and more funding is most welcome, and I am really curious
+how far we can get before the time limit of December 24 is reached.
+:)&lt;/p&gt;
+
+&lt;p&gt;On the #gnash IRC channel on irc.freenode.net, I was just tipped
+about what appear to be a great code coverage tool capable of
+generating code coverage stats without any changes to the source code.
+It is called
+&lt;a href=&quot;http://simonkagstrom.github.com/kcov/index.html&quot;&gt;kcov&lt;/a&gt;,
+and can be used using &lt;tt&gt;kcov &amp;lt;directory&amp;gt; &amp;lt;binary&amp;gt;&lt;/tt&gt;.
+It is missing in Debian, but the git source built just fine in Squeeze
+after I installed libelf-dev, libdwarf-dev, pkg-config and
+libglib2.0-dev.  Failed to build in Lenny, but suspect that is
+solvable.  I hope kcov make it into Debian soon.&lt;/p&gt;
+
+&lt;p&gt;Finally found time to wrap up the release notes for &lt;a
+href=&quot;http://lists.debian.org/debian-edu-announce/2010/10/msg00002.html&quot;&gt;a
+new alpha release of Debian Edu&lt;/a&gt;, and just published the second
+alpha test release of the Squeeze based Debian Edu /
+&lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Skolelinux&lt;/a&gt;
+release.  Give it a try if you need a complete linux solution for your
+school, including central infrastructure server, workstations, thin
+client servers and diskless workstations.  A nice touch added
+yesterday is RDP support on the thin client servers, for windows
+clients to get a Linux desktop on request.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Debian in 3D</title>
+               <link>http://people.skolelinux.org/pere/blog/Debian_in_3D.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Debian_in_3D.html</guid>
+                <pubDate>Tue, 9 Nov 2010 16:10:00 +0100</pubDate>
+               <description>
+&lt;p&gt;&lt;img src=&quot;http://thingiverse-production.s3.amazonaws.com/renders/23/e0/c4/f9/2b/debswagtdose_preview_medium.jpg&quot;&gt;&lt;/p&gt;
+
+&lt;p&gt;3D printing is just great.  I just came across this Debian logo in
+3D linked in from
+&lt;a href=&quot;http://blog.thingiverse.com/2010/11/09/participatory-branding/&quot;&gt;the
+thingiverse blog&lt;/a&gt;.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Gnash buildbot slave and Debian kfreebsd</title>
+               <link>http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Gnash_buildbot_slave_and_Debian_kfreebsd.html</guid>
+                <pubDate>Sat, 20 Nov 2010 07:20:00 +0100</pubDate>
+               <description>
+&lt;p&gt;Answering
+&lt;a href=&quot;http://www.listware.net/201011/gnash-dev/67431-gnash-dev-buildbot-looking-for-slaves.html&quot;&gt;the
+call from the Gnash project&lt;/a&gt; for
+&lt;a href=&quot;http://www.gnashdev.org:8010&quot;&gt;buildbot&lt;/a&gt; slaves to test the
+current source, I have set up a virtual KVM machine on the Debian
+Edu/Skolelinux virtualization host to test the git source on
+Debian/Squeeze.  I hope this can help the developers in getting new
+releases out more often.&lt;/p&gt;
+
+&lt;p&gt;As the developers want less main-stream build platforms tested to,
+I have considered setting up a &lt;a
+href=&quot;http://www.debian.org/ports/kfreebsd-gnu/&quot;&gt;Debian/kfreebsd&lt;/a&gt;
+machine as well.  I have also considered using the kfreebsd
+architecture in Debian as a file server in NUUG to get access to the 5
+TB zfs volume we currently use to store DV video.  Because of this, I
+finally got around to do a test installation of Debian/Squeeze with
+kfreebsd.  Installation went fairly smooth, thought I noticed some
+visual glitches in the cdebconf dialogs (black cursor left on the
+screen at random locations).  Have not gotten very far with the
+testing.  Noticed cfdisk did not work, but fdisk did so it was not a
+fatal problem.  Have to spend some more time on it to see if it is
+useful as a file server for NUUG.  Will try to find time to set up a
+gnash buildbot slave on the Debian Edu/Skolelinux this weekend.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Lenny-&gt;Squeeze upgrades, apt vs aptitude with the Gnome and KDE desktop</title>
+               <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades__apt_vs_aptitude_with_the_Gnome_and_KDE_desktop.html</guid>
+                <pubDate>Sat, 20 Nov 2010 22:50:00 +0100</pubDate>
+               <description>
+&lt;p&gt;I&#39;m still running upgrade testing of the
+&lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;Lenny
+Gnome and KDE Desktop&lt;/a&gt;, but have not had time to spend on reporting the
+status.  Here is a short update based on a test I ran 20101118.&lt;/p&gt;
+
+&lt;p&gt;I still do not know what a correct migration should look like, so I
+report any differences between apt and aptitude and hope someone else
+can see if anything should be changed.&lt;/p&gt;
+
+&lt;p&gt;This is for Gnome:&lt;/p&gt;
+
+&lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  apache2.2-bin aptdaemon at-spi baobab binfmt-support
+  browser-plugin-gnash cheese-common cli-common cpp-4.3 cups-pk-helper
+  dmz-cursor-theme empathy empathy-common finger
+  freedesktop-sound-theme freeglut3 gconf-defaults-service gdm-themes
+  gedit-plugins geoclue geoclue-hostip geoclue-localnet geoclue-manual
+  geoclue-yahoo gnash gnash-common gnome gnome-backgrounds
+  gnome-cards-data gnome-codec-install gnome-core
+  gnome-desktop-environment gnome-disk-utility gnome-screenshot
+  gnome-search-tool gnome-session-canberra gnome-spell
+  gnome-system-log gnome-themes-extras gnome-themes-more
+  gnome-user-share gs-common gstreamer0.10-fluendo-mp3
+  gstreamer0.10-tools gtk2-engines gtk2-engines-pixbuf
+  gtk2-engines-smooth hal-info hamster-applet libapache2-mod-dnssd
+  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
+  libart2.0-cil libatspi1.0-0 libboost-date-time1.42.0
+  libboost-python1.42.0 libboost-thread1.42.0 libchamplain-0.4-0
+  libchamplain-gtk-0.4-0 libcheese-gtk18 libclutter-gtk-0.10-0
+  libcryptui0 libcupsys2 libdiscid0 libeel2-data libelf1 libepc-1.0-2
+  libepc-common libepc-ui-1.0-2 libfreerdp-plugins-standard
+  libfreerdp0 libgail-common libgconf2.0-cil libgdata-common libgdata7
+  libgdl-1-common libgdu-gtk0 libgee2 libgeoclue0 libgexiv2-0 libgif4
+  libglade2.0-cil libglib2.0-cil libgmime2.4-cil libgnome-vfs2.0-cil
+  libgnome2.24-cil libgnomepanel2.24-cil libgnomeprint2.2-data
+  libgnomeprintui2.2-common libgnomevfs2-bin libgpod-common libgpod4
+  libgtk2.0-cil libgtkglext1 libgtksourceview-common
+  libgtksourceview2.0-common libmono-addins-gui0.2-cil
+  libmono-addins0.2-cil libmono-cairo2.0-cil libmono-corlib2.0-cil
+  libmono-i18n-west2.0-cil libmono-posix2.0-cil
+  libmono-security2.0-cil libmono-sharpzip2.84-cil
+  libmono-system2.0-cil libmtp8 libmusicbrainz3-6
+  libndesk-dbus-glib1.0-cil libndesk-dbus1.0-cil libopal3.6.8
+  libpolkit-gtk-1-0 libpt-1.10.10-plugins-alsa
+  libpt-1.10.10-plugins-v4l libpt2.6.7 libpython2.6 librpm1 librpmio1
+  libsdl1.2debian libservlet2.4-java libsrtp0 libssh-4
+  libtelepathy-farsight0 libtelepathy-glib0 libtidy-0.99-0
+  libxalan2-java libxerces2-java media-player-info mesa-utils
+  mono-2.0-gac mono-gac mono-runtime nautilus-sendto
+  nautilus-sendto-empathy openoffice.org-writer2latex
+  openssl-blacklist p7zip p7zip-full pkg-config python-4suite-xml
+  python-aptdaemon python-aptdaemon-gtk python-axiom
+  python-beautifulsoup python-bugbuddy python-clientform
+  python-coherence python-configobj python-crypto python-cupshelpers
+  python-cupsutils python-eggtrayicon python-elementtree
+  python-epsilon python-evolution python-feedparser python-gdata
+  python-gdbm python-gst0.10 python-gtkglext1 python-gtkmozembed
+  python-gtksourceview2 python-httplib2 python-louie python-mako
+  python-markupsafe python-mechanize python-nevow python-notify
+  python-opengl python-openssl python-pam python-pkg-resources
+  python-pyasn1 python-pysqlite2 python-rdflib python-serial
+  python-tagpy python-twisted-bin python-twisted-conch
+  python-twisted-core python-twisted-web python-utidylib python-webkit
+  python-xdg python-zope.interface remmina remmina-plugin-data
+  remmina-plugin-rdp remmina-plugin-vnc rhythmbox-plugin-cdrecorder
+  rhythmbox-plugins rpm-common rpm2cpio seahorse-plugins shotwell
+  software-center svgalibg1 system-config-printer-udev
+  telepathy-gabble telepathy-mission-control-5 telepathy-salut tomboy
+  totem totem-coherence totem-mozilla totem-plugins
+  transmission-common xdg-user-dirs xdg-user-dirs-gtk xserver-xephyr
+  zip
+&lt;/p&gt;&lt;/blockquote&gt;
+
+Installed using apt-get, removed with aptitude
+
+&lt;blockquote&gt;&lt;p&gt;
+  arj bluez-utils cheese dhcdbd djvulibre-desktop ekiga eog
+  epiphany-extensions epiphany-gecko evolution-exchange
+  fast-user-switch-applet file-roller gcalctool gconf-editor gdm gedit
+  gedit-common gnome-app-install gnome-games gnome-games-data
+  gnome-nettool gnome-system-tools gnome-themes gnome-utils
+  gnome-vfs-obexftp gnome-volume-manager gnuchess gucharmap
+  guile-1.8-libs hal libavahi-compat-libdnssd1 libavahi-core5
+  libavahi-ui0 libbind9-50 libbluetooth2 libcamel1.2-11 libcdio7
+  libcucul0 libcurl3 libdirectfb-1.0-0 libdmx1 libdvdread3
+  libedata-cal1.2-6 libedataserver1.2-9 libeel2-2.20 libepc-1.0-1
+  libepc-ui-1.0-1 libexchange-storage1.2-3 libfaad0 libgadu3
+  libgalago3 libgd2-noxpm libgda3-3 libgda3-common libggz2 libggzcore9
+  libggzmod4 libgksu1.2-0 libgksuui1.0-1 libgmyth0 libgnome-desktop-2
+  libgnome-pilot2 libgnomecups1.0-1 libgnomeprint2.2-0
+  libgnomeprintui2.2-0 libgpod3 libgraphviz4 libgtk-vnc-1.0-0
+  libgtkhtml2-0 libgtksourceview1.0-0 libgtksourceview2.0-0
+  libgucharmap6 libhesiod0 libicu38 libisccc50 libisccfg50 libiw29
+  libjaxp1.3-java-gcj libkpathsea4 liblircclient0 libltdl3 liblwres50
+  libmagick++10 libmagick10 libmalaga7 libmozjs1d libmpfr1ldbl libmtp7
+  libmysqlclient15off libnautilus-burn4 libneon27 libnm-glib0
+  libnm-util0 libopal-2.2 libosp5 libparted1.8-10 libpisock9
+  libpisync1 libpoppler-glib3 libpoppler3 libpt-1.10.10 libraw1394-8
+  libsdl1.2debian-alsa libsensors3 libsexy2 libsmbios2 libsoup2.2-8
+  libspeexdsp1 libssh2-1 libsuitesparse-3.1.0 libsvga1
+  libswfdec-0.6-90 libtalloc1 libtotem-plparser10 libtrackerclient0
+  libvoikko1 libxalan2-java-gcj libxerces2-java-gcj libxklavier12
+  libxtrap6 libxxf86misc1 libzephyr3 mysql-common rhythmbox seahorse
+  sound-juicer swfdec-gnome system-config-printer totem-common
+  totem-gstreamer transmission-gtk vinagre vino w3c-dtd-xhtml wodim
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  gstreamer0.10-gnomevfs
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+[nothing]
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;This is for KDE:&lt;/p&gt;
+
+&lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  autopoint bomber bovo cantor cantor-backend-kalgebra cpp-4.3 dcoprss
+  edict espeak espeak-data eyesapplet fifteenapplet finger gettext
+  ghostscript-x git gnome-audio gnugo granatier gs-common
+  gstreamer0.10-pulseaudio indi kaddressbook-plugins kalgebra
+  kalzium-data kanjidic kapman kate-plugins kblocks kbreakout kbstate
+  kde-icons-mono kdeaccessibility kdeaddons-kfile-plugins
+  kdeadmin-kfile-plugins kdeartwork-misc kdeartwork-theme-window
+  kdeedu kdeedu-data kdeedu-kvtml-data kdegames kdegames-card-data
+  kdegames-mahjongg-data kdegraphics-kfile-plugins kdelirc
+  kdemultimedia-kfile-plugins kdenetwork-kfile-plugins
+  kdepim-kfile-plugins kdepim-kio-plugins kdessh kdetoys kdewebdev
+  kdiamond kdnssd kfilereplace kfourinline kgeography-data kigo
+  killbots kiriki klettres-data kmoon kmrml knewsticker-scripts
+  kollision kpf krosspython ksirk ksmserver ksquares kstars-data
+  ksudoku kubrick kweather libasound2-plugins libboost-python1.42.0
+  libcfitsio3 libconvert-binhex-perl libcrypt-ssleay-perl libdb4.6++
+  libdjvulibre-text libdotconf1.0 liberror-perl libespeak1
+  libfinance-quote-perl libgail-common libgsl0ldbl libhtml-parser-perl
+  libhtml-tableextract-perl libhtml-tagset-perl libhtml-tree-perl
+  libio-stringy-perl libkdeedu4 libkdegames5 libkiten4 libkpathsea5
+  libkrossui4 libmailtools-perl libmime-tools-perl
+  libnews-nntpclient-perl libopenbabel3 libportaudio2 libpulse-browse0
+  libservlet2.4-java libspeechd2 libtiff-tools libtimedate-perl
+  libunistring0 liburi-perl libwww-perl libxalan2-java libxerces2-java
+  lirc luatex marble networkstatus noatun-plugins
+  openoffice.org-writer2latex palapeli palapeli-data parley
+  parley-data poster psutils pulseaudio pulseaudio-esound-compat
+  pulseaudio-module-x11 pulseaudio-utils quanta-data rocs rsync
+  speech-dispatcher step svgalibg1 texlive-binaries texlive-luatex
+  ttf-sazanami-gothic
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  amor artsbuilder atlantik atlantikdesigner blinken bluez-utils cvs
+  dhcdbd djvulibre-desktop imlib-base imlib11 kalzium kanagram kandy
+  kasteroids katomic kbackgammon kbattleship kblackbox kbounce kbruch
+  kcron kdat kdemultimedia-kappfinder-data kdeprint kdict kdvi kedit
+  keduca kenolaba kfax kfaxview kfouleggs kgeography kghostview
+  kgoldrunner khangman khexedit kiconedit kig kimagemapeditor
+  kitchensync kiten kjumpingcube klatin klettres klickety klines
+  klinkstatus kmag kmahjongg kmailcvt kmenuedit kmid kmilo kmines
+  kmousetool kmouth kmplot knetwalk kodo kolf kommander konquest kooka
+  kpager kpat kpdf kpercentage kpilot kpoker kpovmodeler krec
+  kregexpeditor kreversi ksame ksayit kshisen ksig ksim ksirc ksirtet
+  ksmiletris ksnake ksokoban kspaceduel kstars ksvg ksysv kteatime
+  ktip ktnef ktouch ktron kttsd ktuberling kturtle ktux kuickshow
+  kverbos kview kviewshell kvoctrain kwifimanager kwin kwin4 kwordquiz
+  kworldclock kxsldbg libakode2 libarts1-akode libarts1-audiofile
+  libarts1-mpeglib libarts1-xine libavahi-compat-libdnssd1
+  libavahi-core5 libavc1394-0 libbind9-50 libbluetooth2
+  libboost-python1.34.1 libcucul0 libcurl3 libcvsservice0
+  libdirectfb-1.0-0 libdjvulibre21 libdvdread3 libfaad0 libfreebob0
+  libgd2-noxpm libgraphviz4 libgsmme1c2a libgtkhtml2-0 libicu38
+  libiec61883-0 libindex0 libisccc50 libisccfg50 libiw29
+  libjaxp1.3-java-gcj libk3b3 libkcal2b libkcddb1 libkdeedu3
+  libkdegames1 libkdepim1a libkgantt0 libkleopatra1 libkmime2
+  libkpathsea4 libkpimexchange1 libkpimidentities1 libkscan1
+  libksieve0 libktnef1 liblockdev1 libltdl3 liblwres50 libmagick10
+  libmimelib1c2a libmodplug0c2 libmozjs1d libmpcdec3 libmpfr1ldbl
+  libneon27 libnm-util0 libopensync0 libpisock9 libpoppler-glib3
+  libpoppler-qt2 libpoppler3 libraw1394-8 librss1 libsensors3
+  libsmbios2 libssh2-1 libsuitesparse-3.1.0 libswfdec-0.6-90
+  libtalloc1 libxalan2-java-gcj libxerces2-java-gcj libxtrap6 lskat
+  mpeglib network-manager-kde noatun pmount tex-common texlive-base
+  texlive-common texlive-doc-base texlive-fonts-recommended tidy
+  ttf-dustin ttf-kochi-gothic ttf-sjfonts
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  dolphin kde-core kde-plasma-desktop kde-standard kde-window-manager
+  kdeartwork kdebase kdebase-apps kdebase-workspace
+  kdebase-workspace-bin kdebase-workspace-data kdeutils kscreensaver
+  kscreensaver-xsavers libgle3 libkonq5 libkonq5-templates libnetpbm10
+  netpbm plasma-widget-folderview plasma-widget-networkmanagement
+  xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra
+  xscreensaver-screensaver-bsod
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  kdebase-bin konq-plugins konqueror
+&lt;/p&gt;&lt;/blockquote&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Migrating Xen virtual machines using LVM to KVM using disk images</title>
+               <link>http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Migrating_Xen_virtual_machines_using_LVM_to_KVM_using_disk_images.html</guid>
+                <pubDate>Mon, 22 Nov 2010 11:20:00 +0100</pubDate>
+               <description>
+&lt;p&gt;Most of the computers in use by the
+&lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian Edu/Skolelinux project&lt;/a&gt;
+are virtual machines.  And they have been Xen machines running on a
+fairly old IBM eserver xseries 345 machine, and we wanted to migrate
+them to KVM on a newer Dell PowerEdge 2950 host machine.  This was a
+bit harder that it could have been, because we set up the Xen virtual
+machines to get the virtual partitions from LVM, which as far as I
+know is not supported by KVM.  So to migrate, we had to convert
+several LVM logical volumes to partitions on a virtual disk file.&lt;/p&gt;
+
+&lt;p&gt;I found
+&lt;a href=&quot;http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM&quot;&gt;a
+nice recipe&lt;/a&gt; to do this, and wrote the following script to do the
+migration.  It uses qemu-img from the qemu package to make the disk
+image, parted to partition it, losetup and kpartx to present the disk
+image partions as devices, and dd to copy the data.  I NFS mounted the
+new servers storage area on the old server to do the migration.&lt;/p&gt;
+
+&lt;pre&gt;
+#!/bin/sh
+
+# Based on
+# http://searchnetworking.techtarget.com.au/articles/35011-Six-steps-for-migrating-Xen-virtual-machines-to-KVM
+
+set -e
+set -x
+
+if [ -z &quot;$1&quot; ] ; then
+    echo &quot;Usage: $0 &amp;lt;hostname&amp;gt;&quot;
+    exit 1
+else
+    host=&quot;$1&quot;
+fi
+
+if [ ! -e /dev/vg_data/$host-disk ] ; then
+    echo &quot;error: unable to find LVM volume for $host&quot;
+    exit 1
+fi
+
+# Partitions need to be a bit bigger than the LVM LVs.  not sure why.
+disksize=$( lvs --units m | grep $host-disk | awk &#39;{sum = sum + $4} END { print int(sum * 1.05) }&#39;)
+swapsize=$( lvs --units m | grep $host-swap | awk &#39;{sum = sum + $4} END { print int(sum * 1.05) }&#39;)
+totalsize=$(( ( $disksize + $swapsize ) ))
+
+img=$host.img
+#dd if=/dev/zero of=$img bs=1M count=$(( $disksize + $swapsize ))
+qemu-img create $img ${totalsize}MMaking room on the Debian Edu/Sqeeze DVD
+
+parted $img mklabel msdos
+parted $img mkpart primary linux-swap 0 $disksize
+parted $img mkpart primary ext2 $disksize $totalsize
+parted $img set 1 boot on
+
+modprobe dm-mod
+losetup /dev/loop0 $img
+kpartx -a /dev/loop0
+
+dd if=/dev/vg_data/$host-disk of=/dev/mapper/loop0p1 bs=1M
+fsck.ext3 -f /dev/mapper/loop0p1 || true
+mkswap /dev/mapper/loop0p2
+
+kpartx -d /dev/loop0
+losetup -d /dev/loop0
+&lt;/pre&gt;
+
+&lt;p&gt;The script is perhaps so simple that it is not copyrightable, but
+if it is, it is licenced using GPL v2 or later at your discretion.&lt;/p&gt;
+
+&lt;p&gt;After doing this, I booted a Debian CD in rescue mode in KVM with
+the new disk image attached, installed grub-pc and linux-image-686 and
+set up grub to boot from the disk image.  After this, the KVM machines
+seem to work just fine.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Lenny-&gt;Squeeze upgrades of the Gnome and KDE desktop, now with apt-get autoremove</title>
+               <link>http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Lenny__Squeeze_upgrades_of_the_Gnome_and_KDE_desktop__now_with_apt_get_autoremove.html</guid>
+                <pubDate>Mon, 22 Nov 2010 14:15:00 +0100</pubDate>
+               <description>
+&lt;p&gt;Michael Biebl suggested to me on IRC, that I changed my automated
+upgrade testing of the
+&lt;a href=&quot;http://people.skolelinux.org/~pere/debian-upgrade-testing/&quot;&gt;Lenny
+Gnome and KDE Desktop&lt;/a&gt; to do &lt;tt&gt;apt-get autoremove&lt;/tt&gt; when using apt-get.
+This seem like a very good idea, so I adjusted by test scripts and
+can now present the updated result from today:&lt;/p&gt;
+
+&lt;p&gt;This is for Gnome:&lt;/p&gt;
+
+&lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  apache2.2-bin
+  aptdaemon
+  baobab
+  binfmt-support
+  browser-plugin-gnash
+  cheese-common
+  cli-common
+  cups-pk-helper
+  dmz-cursor-theme
+  empathy
+  empathy-common
+  freedesktop-sound-theme
+  freeglut3
+  gconf-defaults-service
+  gdm-themes
+  gedit-plugins
+  geoclue
+  geoclue-hostip
+  geoclue-localnet
+  geoclue-manual
+  geoclue-yahoo
+  gnash
+  gnash-common
+  gnome
+  gnome-backgrounds
+  gnome-cards-data
+  gnome-codec-install
+  gnome-core
+  gnome-desktop-environment
+  gnome-disk-utility
+  gnome-screenshot
+  gnome-search-tool
+  gnome-session-canberra
+  gnome-system-log
+  gnome-themes-extras
+  gnome-themes-more
+  gnome-user-share
+  gstreamer0.10-fluendo-mp3
+  gstreamer0.10-tools
+  gtk2-engines
+  gtk2-engines-pixbuf
+  gtk2-engines-smooth
+  hamster-applet
+  libapache2-mod-dnssd
+  libapr1
+  libaprutil1
+  libaprutil1-dbd-sqlite3
+  libaprutil1-ldap
+  libart2.0-cil
+  libboost-date-time1.42.0
+  libboost-python1.42.0
+  libboost-thread1.42.0
+  libchamplain-0.4-0
+  libchamplain-gtk-0.4-0
+  libcheese-gtk18
+  libclutter-gtk-0.10-0
+  libcryptui0
+  libdiscid0
+  libelf1
+  libepc-1.0-2
+  libepc-common
+  libepc-ui-1.0-2
+  libfreerdp-plugins-standard
+  libfreerdp0
+  libgconf2.0-cil
+  libgdata-common
+  libgdata7
+  libgdu-gtk0
+  libgee2
+  libgeoclue0
+  libgexiv2-0
+  libgif4
+  libglade2.0-cil
+  libglib2.0-cil
+  libgmime2.4-cil
+  libgnome-vfs2.0-cil
+  libgnome2.24-cil
+  libgnomepanel2.24-cil
+  libgpod-common
+  libgpod4
+  libgtk2.0-cil
+  libgtkglext1
+  libgtksourceview2.0-common
+  libmono-addins-gui0.2-cil
+  libmono-addins0.2-cil
+  libmono-cairo2.0-cil
+  libmono-corlib2.0-cil
+  libmono-i18n-west2.0-cil
+  libmono-posix2.0-cil
+  libmono-security2.0-cil
+  libmono-sharpzip2.84-cil
+  libmono-system2.0-cil
+  libmtp8
+  libmusicbrainz3-6
+  libndesk-dbus-glib1.0-cil
+  libndesk-dbus1.0-cil
+  libopal3.6.8
+  libpolkit-gtk-1-0
+  libpt2.6.7
+  libpython2.6
+  librpm1
+  librpmio1
+  libsdl1.2debian
+  libsrtp0
+  libssh-4
+  libtelepathy-farsight0
+  libtelepathy-glib0
+  libtidy-0.99-0
+  media-player-info
+  mesa-utils
+  mono-2.0-gac
+  mono-gac
+  mono-runtime
+  nautilus-sendto
+  nautilus-sendto-empathy
+  p7zip-full
+  pkg-config
+  python-aptdaemon
+  python-aptdaemon-gtk
+  python-axiom
+  python-beautifulsoup
+  python-bugbuddy
+  python-clientform
+  python-coherence
+  python-configobj
+  python-crypto
+  python-cupshelpers
+  python-elementtree
+  python-epsilon
+  python-evolution
+  python-feedparser
+  python-gdata
+  python-gdbm
+  python-gst0.10
+  python-gtkglext1
+  python-gtksourceview2
+  python-httplib2
+  python-louie
+  python-mako
+  python-markupsafe
+  python-mechanize
+  python-nevow
+  python-notify
+  python-opengl
+  python-openssl
+  python-pam
+  python-pkg-resources
+  python-pyasn1
+  python-pysqlite2
+  python-rdflib
+  python-serial
+  python-tagpy
+  python-twisted-bin
+  python-twisted-conch
+  python-twisted-core
+  python-twisted-web
+  python-utidylib
+  python-webkit
+  python-xdg
+  python-zope.interface
+  remmina
+  remmina-plugin-data
+  remmina-plugin-rdp
+  remmina-plugin-vnc
+  rhythmbox-plugin-cdrecorder
+  rhythmbox-plugins
+  rpm-common
+  rpm2cpio
+  seahorse-plugins
+  shotwell
+  software-center
+  system-config-printer-udev
+  telepathy-gabble
+  telepathy-mission-control-5
+  telepathy-salut
+  tomboy
+  totem
+  totem-coherence
+  totem-mozilla
+  totem-plugins
+  transmission-common
+  xdg-user-dirs
+  xdg-user-dirs-gtk
+  xserver-xephyr
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  cheese
+  ekiga
+  eog
+  epiphany-extensions
+  evolution-exchange
+  fast-user-switch-applet
+  file-roller
+  gcalctool
+  gconf-editor
+  gdm
+  gedit
+  gedit-common
+  gnome-games
+  gnome-games-data
+  gnome-nettool
+  gnome-system-tools
+  gnome-themes
+  gnuchess
+  gucharmap
+  guile-1.8-libs
+  libavahi-ui0
+  libdmx1
+  libgalago3
+  libgtk-vnc-1.0-0
+  libgtksourceview2.0-0
+  liblircclient0
+  libsdl1.2debian-alsa
+  libspeexdsp1
+  libsvga1
+  rhythmbox
+  seahorse
+  sound-juicer
+  system-config-printer
+  totem-common
+  transmission-gtk
+  vinagre
+  vino
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  gstreamer0.10-gnomevfs
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+[nothing]
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;This is for KDE:&lt;/p&gt;
+
+&lt;p&gt;Installed using apt-get, missing with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  ksmserver
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using apt-get, removed with aptitude&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  kwin
+  network-manager-kde
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, missing with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  arts
+  dolphin
+  freespacenotifier
+  google-gadgets-gst
+  google-gadgets-xul
+  kappfinder
+  kcalc
+  kcharselect
+  kde-core
+  kde-plasma-desktop
+  kde-standard
+  kde-window-manager
+  kdeartwork
+  kdeartwork-emoticons
+  kdeartwork-style
+  kdeartwork-theme-icon
+  kdebase
+  kdebase-apps
+  kdebase-workspace
+  kdebase-workspace-bin
+  kdebase-workspace-data
+  kdeeject
+  kdelibs
+  kdeplasma-addons
+  kdeutils
+  kdewallpapers
+  kdf
+  kfloppy
+  kgpg
+  khelpcenter4
+  kinfocenter
+  konq-plugins-l10n
+  konqueror-nsplugins
+  kscreensaver
+  kscreensaver-xsavers
+  ktimer
+  kwrite
+  libgle3
+  libkde4-ruby1.8
+  libkonq5
+  libkonq5-templates
+  libnetpbm10
+  libplasma-ruby
+  libplasma-ruby1.8
+  libqt4-ruby1.8
+  marble-data
+  marble-plugins
+  netpbm
+  nuvola-icon-theme
+  plasma-dataengines-workspace
+  plasma-desktop
+  plasma-desktopthemes-artwork
+  plasma-runners-addons
+  plasma-scriptengine-googlegadgets
+  plasma-scriptengine-python
+  plasma-scriptengine-qedje
+  plasma-scriptengine-ruby
+  plasma-scriptengine-webkit
+  plasma-scriptengines
+  plasma-wallpapers-addons
+  plasma-widget-folderview
+  plasma-widget-networkmanagement
+  ruby
+  sweeper
+  update-notifier-kde
+  xscreensaver-data-extra
+  xscreensaver-gl
+  xscreensaver-gl-extra
+  xscreensaver-screensaver-bsod
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Installed using aptitude, removed with apt-get&lt;/p&gt;
+
+&lt;blockquote&gt;&lt;p&gt;
+  ark
+  google-gadgets-common
+  google-gadgets-qt
+  htdig
+  kate
+  kdebase-bin
+  kdebase-data
+  kdepasswd
+  kfind
+  klipper
+  konq-plugins
+  konqueror
+  ksysguard
+  ksysguardd
+  libarchive1
+  libcln6
+  libeet1
+  libeina-svn-06
+  libggadget-1.0-0b
+  libggadget-qt-1.0-0b
+  libgps19
+  libkdecorations4
+  libkephal4
+  libkonq4
+  libkonqsidebarplugin4a
+  libkscreensaver5
+  libksgrd4
+  libksignalplotter4
+  libkunitconversion4
+  libkwineffects1a
+  libmarblewidget4
+  libntrack-qt4-1
+  libntrack0
+  libplasma-geolocation-interface4
+  libplasmaclock4a
+  libplasmagenericshell4
+  libprocesscore4a
+  libprocessui4a
+  libqalculate5
+  libqedje0a
+  libqtruby4shared2
+  libqzion0a
+  libruby1.8
+  libscim8c2a
+  libsmokekdecore4-3
+  libsmokekdeui4-3
+  libsmokekfile3
+  libsmokekhtml3
+  libsmokekio3
+  libsmokeknewstuff2-3
+  libsmokeknewstuff3-3
+  libsmokekparts3
+  libsmokektexteditor3
+  libsmokekutils3
+  libsmokenepomuk3
+  libsmokephonon3
+  libsmokeplasma3
+  libsmokeqtcore4-3
+  libsmokeqtdbus4-3
+  libsmokeqtgui4-3
+  libsmokeqtnetwork4-3
+  libsmokeqtopengl4-3
+  libsmokeqtscript4-3
+  libsmokeqtsql4-3
+  libsmokeqtsvg4-3
+  libsmokeqttest4-3
+  libsmokeqtuitools4-3
+  libsmokeqtwebkit4-3
+  libsmokeqtxml4-3
+  libsmokesolid3
+  libsmokesoprano3
+  libtaskmanager4a
+  libtidy-0.99-0
+  libweather-ion4a
+  libxklavier16
+  libxxf86misc1
+  okteta
+  oxygencursors
+  plasma-dataengines-addons
+  plasma-scriptengine-superkaramba
+  plasma-widget-lancelot
+  plasma-widgets-addons
+  plasma-widgets-workspace
+  polkit-kde-1
+  ruby1.8
+  systemsettings
+  update-notifier-common
+&lt;/p&gt;&lt;/blockquote&gt;
+
+&lt;p&gt;Running apt-get autoremove made the results using apt-get and
+aptitude a bit more similar, but there are still quite a lott of
+differences.  I have no idea what packages should be installed after
+the upgrade, but hope those that do can have a look.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Why isn&#39;t Debian Edu using VLC?</title>
+               <link>http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Why_isn_t_Debian_Edu_using_VLC_.html</guid>
+                <pubDate>Sat, 27 Nov 2010 11:30:00 +0100</pubDate>
+               <description>
+&lt;p&gt;In the latest issue of Linux Journal, the readers choices were
+presented, and the winner among the multimedia player were VLC.
+Personally, I like VLC, and it is my player of choice when I first try
+to play a video file or stream.  Only if VLC fail will I drag out
+gmplayer to see if it can do better.  The reason is mostly the failure
+model and trust.  When VLC fail, it normally pop up a error message
+reporting the problem.  When mplayer fail, it normally segfault or
+just hangs.  The latter failure mode drain my trust in the program.&lt;p&gt;
+
+&lt;p&gt;But even if VLC is my player of choice, we have choosen to use
+mplayer in &lt;a href=&quot;http://www.skolelinux.org/&quot;&gt;Debian
+Edu/Skolelinux&lt;/a&gt;.  The reason is simple.  We need a good browser
+plugin to play web videos seamlessly, and the VLC browser plugin is
+not very good.  For example, it lack in-line control buttons, so there
+is no way for the user to pause the video.  Also, when I
+&lt;a href=&quot;http://wiki.debian.org/DebianEdu/BrowserMultimedia&quot;&gt;last
+tested the browser plugins&lt;/a&gt; available in Debian, the VLC plugin
+failed on several video pages where mplayer based plugins worked.  If
+the browser plugin for VLC was as good as the gecko-mediaplayer
+package (which uses mplayer), we would switch.&lt;/P&gt;
+
+&lt;p&gt;While VLC is a good player, its user interface is slightly
+annoying.  The most annoying feature is its inconsistent use of
+keyboard shortcuts.  When the player is in full screen mode, its
+shortcuts are different from when it is playing the video in a window.
+For example, space only work as pause when in full screen mode.  I
+wish it had consisten shortcuts and that space also would work when in
+window mode.  Another nice shortcut in gmplayer is [enter] to restart
+the current video.  It is very nice when playing short videos from the
+web and want to restart it when new people arrive to have a look at
+what is going on.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Now accepting bitcoins - anonymous and distributed p2p crypto-money</title>
+               <link>http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Now_accepting_bitcoins___anonymous_and_distributed_p2p_crypto_money.html</guid>
+                <pubDate>Fri, 10 Dec 2010 08:20:00 +0100</pubDate>
+               <description>
+&lt;p&gt;With this weeks lawless
+&lt;a href=&quot;http://www.salon.com/news/opinion/glenn_greenwald/2010/12/06/wikileaks/index.html&quot;&gt;governmental
+attacks&lt;/a&gt; on Wikileak and
+&lt;a href=&quot;http://www.salon.com/technology/dan_gillmor/2010/12/06/war_on_speech&quot;&gt;free
+speech&lt;/a&gt;, it has become obvious that PayPal, visa and mastercard can
+not be trusted to handle money transactions.
+A blog post from
+&lt;a href=&quot;http://webmink.com/2010/12/06/now-accepting-bitcoin/&quot;&gt;Simon
+Phipps on bitcoin&lt;/a&gt; reminded me about a project that a friend of
+mine mentioned earlier.  I decided to follow Simon&#39;s example, and get
+involved with &lt;a href=&quot;http://www.bitcoin.org/&quot;&gt;BitCoin&lt;/a&gt;.  I got
+some help from my friend to get it all running, and he even handed me
+some bitcoins to get started.  I even donated a few bitcoins to Simon
+for helping me remember BitCoin.&lt;/p&gt;
+
+&lt;p&gt;So, what is bitcoins, you probably wonder?  It is a digital
+crypto-currency, decentralised and handled using peer-to-peer
+networks.  It allows anonymous transactions and prohibits central
+control over the transactions, making it impossible for governments
+and companies alike to block donations and other transactions.  The
+source is free software, and while the key dependency wxWidgets 2.9
+for the graphical user interface is missing in Debian, the command
+line client builds just fine.  Hopefully Jonas
+&lt;a href=&quot;http://bugs.debian.org/578157&quot;&gt;will get the package into
+Debian&lt;/a&gt; soon.&lt;/p&gt;
+
+&lt;p&gt;Bitcoins can be converted to other currencies, like USD and EUR.
+There are &lt;a href=&quot;http://www.bitcoin.org/trade&quot;&gt;companies accepting
+bitcoins&lt;/a&gt; when selling services and goods, and there are even
+currency &quot;stock&quot; markets where the exchange rate is decided.  There
+are not many users so far, but the concept seems promising.  If you
+want to get started and lack a friend with any bitcoins to spare,
+you can even get
+&lt;a href=&quot;https://freebitcoins.appspot.com/&quot;&gt;some for free&lt;/a&gt; (0.05
+bitcoin at the time of writing).  Use
+&lt;a href=&quot;http://www.bitcoinwatch.com/&quot;&gt;BitcoinWatch&lt;/a&gt; to keep an eye
+on the current exchange rates.&lt;/p&gt;
+
+&lt;p&gt;As an experiment, I have decided to set up bitcoind on one of my
+machines.  If you want to support my activity, please send Bitcoin
+donations to the address
+&lt;b&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/b&gt;.  Thank you!&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>Some thoughts on BitCoins</title>
+               <link>http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Some_thoughts_on_BitCoins.html</guid>
+                <pubDate>Sat, 11 Dec 2010 15:10:00 +0100</pubDate>
+               <description>
+&lt;p&gt;As I continue to explore
+&lt;a href=&quot;http://www.bitcoin.org/&quot;&gt;BitCoin&lt;/a&gt;, I&#39;ve starting to wonder
+what properties the system have, and how it will be affected by laws
+and regulations here in Norway.  Here are some random notes.&lt;/p&gt;
+
+&lt;p&gt;One interesting thing to note is that since the transactions are
+verified using a peer to peer network, all details about a transaction
+is known to everyone.  This means that if a BitCoin address has been
+published like I did with mine in my initial post about BitCoin, it is
+possible for everyone to see how many BitCoins have been transfered to
+that address.  There is even a web service to look at the details for
+all transactions.  There I can see that my address
+&lt;a href=&quot;http://blockexplorer.com/address/15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;
+have received 16.06 Bitcoin, the
+&lt;a href=&quot;http://blockexplorer.com/address/1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3&quot;&gt;1LfdGnGuWkpSJgbQySxxCWhv8MHqvwst3&lt;/a&gt;
+address of Simon Phipps have received 181.97 BitCoin and the address
+&lt;a href=&quot;http://blockexplorer.com/address/1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt&quot;&gt;1MCwBbhNGp5hRm5rC1Aims2YFRe2SXPYKt&lt;/A&gt;
+of EFF have received 2447.38 BitCoins so far.  Thank you to each and
+every one of you that donated bitcoins to support my activity. The
+fact that anyone can see how much money was transfered to a given
+address make it more obvious why the BitCoin community recommend to
+generate and hand out a new address for each transaction.  I&#39;m told
+there is no way to track which addresses belong to a given person or
+organisation without the person or organisation revealing it
+themselves, as Simon, EFF and I have done.&lt;/p&gt;
+
+&lt;p&gt;In Norway, and in most other countries, there are laws and
+regulations limiting how much money one can transfer across the border
+without declaring it.  There are money laundering, tax and accounting
+laws and regulations I would expect to apply to the use of BitCoin.
+If the Skolelinux foundation
+(&lt;a href=&quot;http://linuxiskolen.no/slxdebianlabs/donations.html&quot;&gt;SLX
+Debian Labs&lt;/a&gt;) were to accept donations in BitCoin in addition to
+normal bank transfers like EFF is doing, how should this be accounted?
+Given that it is impossible to know if money can across the border or
+not, should everything or nothing be declared?  What exchange rate
+should be used when calculating taxes?  Would receivers have to pay
+income tax if the foundation were to pay Skolelinux contributors in
+BitCoin?  I have no idea, but it would be interesting to know.&lt;/p&gt;
+
+&lt;p&gt;For a currency to be useful and successful, it must be trusted and
+accepted by a lot of users.  It must be possible to get easy access to
+the currency (as a wage or using currency exchanges), and it must be
+easy to spend it.  At the moment BitCoin seem fairly easy to get
+access to, but there are very few places to spend it.  I am not really
+a regular user of any of the vendor types currently accepting BitCoin,
+so I wonder when my kind of shop would start accepting BitCoins.  I
+would like to buy electronics, travels and subway tickets, not herbs
+and books. :) The currency is young, and this will improve over time
+if it become popular, but I suspect regular banks will start to lobby
+to get BitCoin declared illegal if it become popular.  I&#39;m sure they
+will claim it is helping fund terrorism and money laundering (which
+probably would be true, as is any currency in existence), but I
+believe the problems should be solved elsewhere and not by blaming
+currencies.&lt;/p&gt;
+
+&lt;p&gt;The process of creating new BitCoins is called mining, and it is
+CPU intensive process that depend on a bit of luck as well (as one is
+competing against all the other miners currently spending CPU cycles
+to see which one get the next lump of cash).  The &quot;winner&quot; get 50
+BitCoin when this happen.  Yesterday I came across the obvious way to
+join forces to increase ones changes of getting at least some coins,
+by coordinating the work on mining BitCoins across several machines
+and people, and sharing the result if one is lucky and get the 50
+BitCoins.  Check out
+&lt;a href=&quot;http://www.bluishcoder.co.nz/bitcoin-pool/&quot;&gt;BitCoin Pool&lt;/a&gt;
+if this sounds interesting.  I have not had time to try to set up a
+machine to participate there yet, but have seen that running on ones
+own for a few days have not yield any BitCoins througth mining
+yet.&lt;/p&gt;
+
+&lt;p&gt;Update 2010-12-15: Found an &lt;a
+href=&quot;http://inertia.posterous.com/reply-to-the-underground-economist-why-bitcoi&quot;&gt;interesting
+criticism&lt;/a&gt; of bitcoin.  Not quite sure how valid it is, but thought
+it was interesting to read.  The arguments presented seem to be
+equally valid for gold, which was used as a currency for many years.&lt;/p&gt;
+</description>
+       </item>
+       
+       <item>
+               <title>How to test if a laptop is working with Linux</title>
+               <link>http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_to_test_if_a_laptop_is_working_with_Linux.html</guid>
+                <pubDate>Wed, 22 Dec 2010 14:55:00 +0100</pubDate>
+               <description>
+&lt;p&gt;The last few days I have spent at work here at the &lt;a
+href=&quot;http://www.uio.no/&quot;&gt;University of oslo&lt;/a&gt; testing if the new
+batch of computers will work with Linux.  Every year for the last few
+years the university have organized shared bid of a few thousand
+computers, and this year HP won the bid.  Two different desktops and
+five different laptops are on the list this year.  We in the UNIX
+group want to know which one of these computers work well with RHEL
+and Ubuntu, the two Linux distributions we currently handle at the
+university.&lt;/p&gt;
+
+&lt;p&gt;My test method is simple, and I share it here to get feedback and
+perhaps inspire others to test hardware as well.  To test, I PXE
+install the OS version of choice, and log in as my normal user and run
+a few applications and plug in selected pieces of hardware.  When
+something fail, I make a note about this in the test matrix and move
+on.  If I have some spare time I try to report the bug to the OS
+vendor, but as I only have the machines for a short time, I rarely
+have the time to do this for all the problems I find.&lt;/p&gt;
+
+&lt;p&gt;Anyway, to get to the point of this post.  Here is the simple tests
+I perform on a new model.&lt;/p&gt;
+
+&lt;ul&gt;
+
+&lt;li&gt;Is PXE installation working?  I&#39;m testing with RHEL6, Ubuntu Lucid
+and Ubuntu Maverik at the moment.  If I feel like it, I also test with
+RHEL5 and Debian Edu/Squeeze.&lt;/li&gt;
+
+&lt;li&gt;Is X.org working?  If the graphical login screen show up after
+installation, X.org is working.&lt;/li&gt;
+
+&lt;li&gt;Is hardware accelerated OpenGL working?  Running glxgears (in
+package mesa-utils on Ubuntu) and writing down the frames per second
+reported by the program.&lt;/li&gt;
+
+&lt;li&gt;Is sound working?  With Gnome and KDE, a sound is played when
+logging in, and if I can hear this the test is successful.  If there
+are several audio exits on the machine, I try them all and check if
+the Gnome/KDE audio mixer can control where to send the sound.  I
+normally test this by playing
+&lt;a href=&quot;http://www.nuug.no/aktiviteter/20101012-chef/ &quot;&gt;a HTML5
+video&lt;/a&gt; in Firefox/Iceweasel.&lt;/li&gt;
+
+&lt;li&gt;Is the USB subsystem working?  I test this by plugging in a USB
+memory stick and see if Gnome/KDE notices this.&lt;/li&gt;
+
+&lt;li&gt;Is the CD/DVD player working?  I test this by inserting any CD/DVD
+I have lying around, and see if Gnome/KDE notices this.&lt;/li&gt;
+
+&lt;li&gt;Is any built in camera working?  Test using cheese, and see if a
+picture from the v4l device show up.&lt;/li&gt;
+
+&lt;li&gt;Is bluetooth working?  Use the Gnome/KDE browsing tool to see if
+any bluetooth devices are discovered.  In my office, I normally see a
+few.&lt;/li&gt;
+
+&lt;li&gt;For laptops, is the SD or Compaq Flash reader working.  I have
+memory modules lying around, and stick them in and see if Gnome/KDE
+notice this.&lt;/li&gt;
+
+&lt;li&gt;For laptops, is suspecd/hibernate working?  I&#39;m testing if the
+special button work, and if the laptop continue to work after
+resume.&lt;/li&gt;
+
+&lt;li&gt;For laptops, is the extra buttons working, like audio level,
+adjusting background light, switching on/off external video output,
+switching on/off wifi, bluetooth, etc?  The set of buttons differ from
+laptop to laptop, so I just write down which are working and which are
+not.&lt;/li&gt;
+
+&lt;li&gt;Some laptops have smart card readers, finger print readers,
+acceleration sensors etc.  I rarely test these, as I do not know how
+to quickly test if they are working or not, so I only document their
+existence.&lt;/li&gt;
+
+&lt;/ul&gt;
+
+&lt;p&gt;By now I suspect you are really curious what the test results are
+for the HP machines I am testing.  I&#39;m not done yet, so I will report
+the test results later.  For now I can report that HP 8100 Elite work
+fine, and hibernation fail with HP EliteBook 8440p on Ubuntu Lucid,
+and audio fail on RHEL6.  Ubuntu Maverik worked with 8440p.  As you
+can see, I have most machines left to test.  One interesting
+observation is that Ubuntu Lucid has almost twice the framerate than
+RHEL6 with glxgears.  No idea why.&lt;/p&gt;
+</description>
+       </item>
+       
         </channel>
 </rss>
         </channel>
 </rss>