Review Request: Support for GRUB2 submenus

Konstantinos Smanis konstantinos.smanis at gmail.com
Mon Jul 30 01:06:33 BST 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105563/
-----------------------------------------------------------

(Updated July 30, 2012, 12:06 a.m.)


Review request for KDE Runtime and Oswald Buddenhagen.


Changes
-------

Another patch, this time for passing the separator around. I have merely written, compiled and tested that it works, I haven't proof-read my code. Something to start with at least...


Description
-------

Recent versions of GRUB2 introduce submenus which allow for nesting levels to appear (instead of the flat list in the past).
This patch consists of two parts: the parsing part in KDM (bootman.c) and creating a menu structure from the parsed list in ksmserver (shutdowndlg.*)
The parsing part produces a list like this:

Gentoo GNU/Linux
Advanced options for Gentoo GNU/Linux
Advanced options for Gentoo GNU/Linux>Gentoo GNU/Linux, with Linux 3.4.4
Advanced options for Gentoo GNU/Linux>Gentoo GNU/Linux, with Linux 3.4.4 (recovery mode)
Windows 7 (loader) (on /dev/sda2)
???? ?????????

which is then converted into the menu structure. These full identifiers can be properly used with `grub2-reboot`.

More info about submenus: http://ubuntuforums.org/showthread.php?p=10720316
Also check the related bug.

The parsing part of the patch can be applied in the KDE/4.9 and master branches as well (tested and working in KDE 4.8.95 and 4.9.x). ksmserver has migrated to QML since then however, and the menu structure has to wait. Currently it looks like this: http://i50.tinypic.com/96bw35.png
Related ML-discussion: http://lists.kde.org/?l=kde-core-devel&m=134160279511422&w=2
Update: There is a proper fix now for KDE/4.9 and master: https://git.reviewboard.kde.org/r/105568/


This addresses bug 297209.
    http://bugs.kde.org/show_bug.cgi?id=297209


Diffs (updated)
-----

  kdm/backend/bootman.c 8b834d2 
  kdm/backend/ctrl.c 5d219fe 
  kdm/backend/dm.h 13e7b45 
  kdm/backend/dm.c e0f1366 
  kdm/backend/util.c 6cd93ef 
  ksmserver/shutdowndlg.h e5f0942 
  ksmserver/shutdowndlg.cpp a09a1a7 
  libs/kworkspace/kdisplaymanager.h 76f25a7 
  libs/kworkspace/kdisplaymanager.cpp 28fabfc 

Diff: http://git.reviewboard.kde.org/r/105563/diff/


Testing
-------

Works with the menu file produced in my system with `grub2-mkconfig`.
Also works with a custom menu file I made (as shown in the second screenshot).


Screenshots
-----------

Distribution's stock menu file
  http://git.reviewboard.kde.org/r/105563/s/633/
A custom menu file for testing
  http://git.reviewboard.kde.org/r/105563/s/634/


Thanks,

Konstantinos Smanis

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20120730/fcbf8eb7/attachment.htm>


More information about the kde-core-devel mailing list