================================ 20130509 (Thursday, 09 May 2013) ================================ Polymorphism ------------ The Cosi demo site had generated an interesting traceback which lead to another step in the evolution of :mod:`lino.modlib.partners` (which is currently being used by :mod:`lino.projects.cosi`). The challenge was to display a table with the ledger invoices of a Person or Organisation in a way that works with both possible choices for :attr:`lino.ui.Site.partners_app_label`. The new method :meth:`lino.core.model.Model.get_typed_instance` is necessary for this. New document :ref:`specs.cosi` with a first section "Person #115 is not a Partner" which reproduced the traceback. (Yes :ref:`polymorphism` without MTI isn't yet fully functional needs better documentation) Kernel driver not installed --------------------------- Using Ubuntu LTS 12.04 with precise-proposed. I just had a kernel upgrade from 3.5.0-28-generic to 3.5.0-29-generic. Now I get the folowing message when I try to start my VirtualBox VM: **Error in suplibOsInit** Kernel driver not installed (rc=-1908) The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing '/etc/init.d/vboxdrv setup' as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary. I remember to have had similar messages :lino:`some days ago <0503>`. But this time I have also:: $ ls /lib/modules/`uname -r`/updates/dkms/vbox* ls: cannot access /lib/modules/3.5.0-29-generic/updates/dkms/vbox*: No such file or directory So maybe its enough to say:: $ sudo apt-get install --reinstall virtualbox-dkms But no:: ------------------------------ Deleting module version: 4.1.12 completely from the DKMS tree. ------------------------------ Done. Unpacking replacement virtualbox-dkms ... Setting up virtualbox-dkms (4.1.12-dfsg-2ubuntu0.3) ... Loading new virtualbox-4.1.12 DKMS files... Building only for 3.5.0-29-generic Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed. * Stopping VirtualBox kernel modules [ OK ] * Starting VirtualBox kernel modules [ OK ] * No suitable module for running kernel found Let's try this:: $ sudo apt-get remove --purge virtualbox virtualbox-guest-additions $ sudo apt-get clean $ sudo rm /lib/modules/3.5.0-28-generic/updates/dkms/vbox* rm: cannot remove `/lib/modules/3.5.0-28-generic/updates/dkms/vbox*': No such file or directory $ sudo reboot $ sudo aptitude install virtualbox virtualbox-guest-additions The following NEW packages will be installed: virtualbox virtualbox-dkms{a} virtualbox-guest-additions virtualbox-qt{a} 0 packages upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 23.0 MB of archives. After unpacking 69.6 MB will be used. Do you want to continue? [Y/n/?] (...) Setting up virtualbox-guest-additions (4.1.12-1) ... Processing triggers for python-central ... Setting up virtualbox-dkms (4.1.12-dfsg-2ubuntu0.3) ... Loading new virtualbox-4.1.12 DKMS files... First Installation: checking all kernels... Building only for 3.5.0-29-generic Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed. * Stopping VirtualBox kernel modules [ OK ] * Starting VirtualBox kernel modules * No suitable module for running kernel found [fail] [fail] invoke-rc.d: initscript virtualbox, action "restart" failed. Setting up virtualbox-qt (4.1.12-dfsg-2ubuntu0.3) ... $ sudo aptitude install linux-headers-`uname -r`-pae $ sudo aptitude install linux-headers-`uname -r` The following NEW packages will be installed: linux-headers-3.5.0-29{a} linux-headers-3.5.0-29-generic 0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded. ... run-parts: executing /etc/kernel/header_postinst.d/dkms 3.5.0-29-generic /boot/vmlinuz-3.5.0-29-generic Error! Could not locate dkms.conf file. File: does not exist. $ sudo aptitude reinstall dkms $ sudo aptitude install linux-headers-`uname -r` (same error as before) $ sudo aptitude reinstall virtualbox-dkms Then it worked. Summary: Maybe i was just lacking the correct linux-headers package. Which means that there seems to be some problem with a missing dependence declaration, but i didn't really find a clear explanation and don't have an environment for doing such tests... Renaming files from a bash command line --------------------------------------- The easiest way to rename a series of files to make their names download-friendly (replace spaces by "_", "ü" by "u",...) is:: $ rename -n 's/ /_/g' * $ rename -n 's/ü/u/g' * (thanks to Mornedhel on http://ubuntuforums.org/showthread.php?t=1190887) Menu command to edit `debts_master_budget` ------------------------------------------ Worked on the following user request: - Es gibt einen neuen Menübefehl :menuselection:`Konfigurierung --> Schuldnerberatung --> Budget-Kopiervorlage`, und der ist auch für Kerstin sichtbar. Das war nicht ganz einfach, denn Lino-Welfare benutzte noch die veraltete Methode, das Menü "Konfiguration" für alle Nicht-Systemverwalter komplett rauszulassen. Das tut er jetzt nicht mehr. Aber das hat zur Folge, dass dieses Menü für alle Nicht-Systemverwalter eine ganze Serie unnützer Befehle enthält. Einfach nur, weil ich in den entsprechenden Tabellen noch keine `required` gesetzt habe. Lästige Arbeit und könnte zu unerwünschten kleinen Überraschungen führen. Neue Option :attr:`lino.core.menus.Menu.avoid_lonely_items`.