-
This is a
-followup
-on my
-previous
-work on
-merging
-all the computer related LDAP objects in Debian Edu.
-
-
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.
-
-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.
-
-
powerdns
-
-
Clues
-on how to set up PowerDNS to use a LDAP backend is available on
-the web.
-
-
PowerDNS have two modes of operation using LDAP as its backend.
-One "strict" mode where the forward and reverse DNS lookups are done
-using the same LDAP objects, and a "tree" 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.
-
-
In tree mode, the server is set up to use a LDAP subtree as its
-base, and uses a "base" scoped search for the DNS name by adding
-"dc=tjener,dc=intern," to the base with a filter for
-"(associateddomain=tjener.intern)" for the forward entry and
-"dc=2,dc=2,dc=0,dc=10,dc=in-addr,dc=arpa," with a filter for
-"(associateddomain=2.2.0.10.in-addr.arpa)" 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:
-
-
-ldapsearch -h ldap \
- -b dc=tjener,dc=intern,ou=hosts,dc=skole,dc=skolelinux,dc=no \
- -s base -x '(associateddomain=tjener.intern)' 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 '(associateddomain=2.2.0.10.in-addr.arpa)'
- dnsttl, arecord, nsrecord, cnamerecord soarecord ptrrecord \
- hinforecord mxrecord txtrecord rprecord aaaarecord locrecord \
- srvrecord naptrrecord modifytimestamp
-
-
-
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.
-
-
-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
-
-
-
In strict mode, the server behaves differently. When looking for
-forward DNS entries, it is doing a "subtree" scoped search with the
-same base as in the tree mode for a object with filter
-"(associateddomain=tjener.intern)" 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 "(arecord=10.0.2.2)"
-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.
-
-
The forward and reverse searches can be simulated using ldapsearch
-like this:
-
-
-ldapsearch -h ldap -b ou=hosts,dc=skole,dc=skolelinux,dc=no -s sub -x \
- '(associateddomain=tjener.intern)' 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 \
- '(arecord=10.0.2.2)' associateddomain dnsttl modifytimestamp
-
-
-
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.
-
-
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.
-
-
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.
-
-
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.
-
-
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).
-
-
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):
-
-
-objectclass ( some-oid NAME 'dnsDomainAux'
- 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
- ))
-
-
-
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'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.
-
-
ISC dhcp
-
-
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.
-
-
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:
-
-
-ldap-base-dn "dc=skole,dc=skolelinux,dc=no";
-ldap-dhcp-server-cn "dhcp";
-
-
-
The DHCP server uses this information to nest all the DHCP
-configuration it need. The cn "dhcp" is located using the given LDAP
-base and the filter "(&(objectClass=dhcpServer)(cn=dhcp))". The
-search result is this entry:
-
-
-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
-
-
-
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 "cn=DHCP
-Config,dc=skole,dc=skolelinux,dc=no" and filter
-"(&(objectClass=dhcpService)(|(dhcpPrimaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)(dhcpSecondaryDN=cn=dhcp,dc=skole,dc=skolelinux,dc=no)))".
-The search result is this entry:
-
-
-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
-
-
-
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.
-
-
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 "cn=DHCP Config,dc=skole,dc=skolelinux,dc=no" as
-the base and "(&(objectClass=dhcpHost)(dhcpHWAddress=ethernet
-00:00:00:00:00:00))" as the filter. This is what a host object look
-like:
-
-
-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
-
-
-
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.
-
-
Conclusion
-
-
The PowerDNS implementation seem to be very flexible when it come
-to which LDAP schemas to use. While its "tree" mode is rigid when it
-come to the the LDAP structure, the "strict" mode is very flexible,
-allowing DNS objects to be stored anywhere under the base cn specified
-in the configuration.
-
-
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.
-
-
Based on the observed behaviour, I suspect a LDAP structure like
-this might work for Debian Edu:
-
-
-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)
-
-
-
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.
-
-
The combined object under the machines subtree would look something
-like this:
-
-
-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
-
-
-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.
+
Michael Biebl suggested to me on IRC, that I changed my automated
+upgrade testing of the
+Lenny
+Gnome and KDE Desktop to do apt-get autoremove 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:
+
+
This is for Gnome:
+
+
Installed using apt-get, missing with aptitude
+
+
+ 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
+
+
+
Installed using apt-get, removed with aptitude
+
+
+ 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
+
+
+
Installed using aptitude, missing with apt-get
+
+
+ gstreamer0.10-gnomevfs
+
+
+
Installed using aptitude, removed with apt-get
+
+
+[nothing]
+
+
+
This is for KDE:
+
+
Installed using apt-get, missing with aptitude
+
+
+ ksmserver
+
+
+
Installed using apt-get, removed with aptitude
+
+
+ kwin
+ network-manager-kde
+
+
+
Installed using aptitude, missing with apt-get
+
+
+ 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
+
+
+
Installed using aptitude, removed with apt-get
+
+
+ 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
+
+
+
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.