[asterisk-bugs] [JIRA] (ASTERISK-27915) menuselect: List of dependencies cut too early (~35 chars).

Alexander Traud (JIRA) noreply at issues.asterisk.org
Wed Jun 13 03:51:54 CDT 2018


Alexander Traud created ASTERISK-27915:
------------------------------------------

             Summary: menuselect: List of dependencies cut too early (~35 chars).
                 Key: ASTERISK-27915
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27915
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Core/BuildSystem
    Affects Versions: 15.4.1, 13.21.1
            Reporter: Alexander Traud
            Severity: Minor


When a module has a long list of dependencies, it is not displayed completely in Menuselect. This gets worse, because every dependency adds five characters automatically. Consequently, about 35 characters are enough to overflow this list.

This issue was found because of the proposed change for ASTERISK-27475, which was longer than 35 characters. Furthermore, the module {{test_ast_format_str_reduce}} of the Test Framework has a very long list (and requires the external package {{libvorbis-dev}}, which is very much at the end). In the branch Master, the module {{res_ari_channels}} and {{res_pjsip}} are affected, too.

With menuselect_newt, the buttons (Save, Exit) are printed above the list. Therefore, the usable part of that list is even shorter.

With menuselect_curses, although the display suggests there is room left, the list is cut after 50 characters. When a dependency is not cut in the middle but at a comma, this looks like the list is complete (all dependencies fulfilled). This leaves the user baffled why the module cannot be enabled. That hit me already twice. The affecting code is {{menuselect/menuselect_curses.c:display_mem_info(.)}}, the lines below ‘Depends on’. When you increase {{buf\[64\]}} to {{buf\[216\]}}, everything gets printed.

At the end of a list which had to be cut, I would expect (at least) an [ellipsis|https://en.wikipedia.org/wiki/Ellipsis]. Of course, not just a single-line but a multi-line dependency list would be even more welcome. Another approach would be to put _external_ dependencies (E) at the front. Until then, the workaround is to look into the source code of the disabled module or the XML file for that module.

*Notes*
I am not working on this because the whole width calculations should be double-checked.

In menuselect_curses, a 64 character long line is too _long_ already because the dependency list is not centered anymore. Therefore, I would give up this centering at least for the description (and following lines). Instead, I would start on the very left and not move to the center: start_x = 1. This gives another 15 characters. Finally, in Ubuntu 18.04 LTS, the default size of a terminal is 80 × 24, three lines too low for the current code and Menuselect does not even start with the error message: {{Terminal must be at least 80 x 27.}} (see ASTERISK-16754). Therefore, not only the width but also the height calculations should be looked at.

For both of these issues, the workaround is to go for {{sudo apt install libnewt-dev}}. Still, the resulting menuselect_newt is a drama for long dependency lists. And is a usability drama (when the height is 33 lines or lower) on the left-hand side, because no scrollbar is shown that more sections exist like ‘Extra Sound Packages’.

So nice and simple those both interfaces are, Asterisk has overgrown both of them.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list