Marble Menu Squashed/Unreadable

Bug #1312104 reported by Rüdiger Sonderfeld on 2014-04-24
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
marble (Ubuntu)
High
Unassigned
Trusty
High
Unassigned
Utopic
High
Unassigned

Bug Description

[Impact]

The marble package incorrectly contains two different user interface versions (desktop and mobile), additionally both versions identify as "Marble" in applications menu (desktop entry) and users can happen to launch the wrong Marble which gives an unintended and unacceptable user experience.
To prevent this we set Hidden=true (which is equal to it not being there at all) as
the GUI is broken on the desktop anyway, should a future patch release improve the experience we can look into splitting the packages properly.

[Test Case]

* Install marble package
* Confirm there is only one entry in the applications menu
* Confirm that starting the only marble entry launches the desktop UI [1]

[1] http://marble.kde.org/img/gallery/marble-desktop-satellite-clouds.png

[Regression Potential]

None

[Other Info]

N/A

-----

The Menu in Marble 4:4.13.0-0ubuntu1 (KUbuntu 14.04) is squashed together and partially unreadable. It looks like Marble was build with a Mobile UI instead of the Desktop version.

See attached screenshot.

Harald Sitter (apachelogger) wrote :

Please note that marble-touch is a different package, it will however show up in the menu as "Marble", please make sure that

a) marble or marble-qt are installed
b) running marble or marble-qt from a terminal results in this behavior as well

Changed in marble (Ubuntu):
status: New → Incomplete

I don't have marble-touch installed:

$ dpkg -l marble\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==================================================-==============================-==============================-=========================================================================================================
ii marble 4:4.13.0-0ubuntu1 amd64 globe and map widget
ii marble-data 4:4.13.0-0ubuntu1 all data files for Marble
ii marble-plugins 4:4.13.0-0ubuntu1 amd64 plugins for Marble

It behaves differently when launched from the terminal though and the non-mobile UI is launched.

It seems the marble package now contains a mobile application

$ dpkg -L marble | grep marble-mobile
/usr/share/applications/kde4/marble-mobile.desktop
/usr/bin/marble-mobile

And indeed it adds two entries with the same name but one launching the mobile version and one launching the desktop version.

Harald Sitter (apachelogger) wrote :

I just died a bit inside.

Changed in marble (Ubuntu):
importance: Undecided → Critical
status: Incomplete → Triaged
Changed in marble (Ubuntu Trusty):
status: New → Triaged
importance: Undecided → High
Harald Sitter (apachelogger) wrote :

course of action for trusty: set NoDisplay=true on the mobile desktop file
course of action for utopic: create new package, also shout at someone

Thanks for the quick response!

I think the mobile version should also announce itself as "Marble Mobile" in the menu entry. (Probably even if it's from the marble-touch package.)

Harald Sitter (apachelogger) wrote :

Yeah, please report that at http://bugs.kde.org against marble, but I presume there was a reason the devs called all of it Marble even if it is confusing if one has multiple Marbles.

Oh, I forgot: Even if this is the mobile (touch?) version it should probably not look like that on the Desktop. Should I report this upstream as well?

Changed in marble (Ubuntu Utopic):
importance: Critical → High
status: Triaged → Fix Committed
milestone: none → ubuntu-14.10
Changed in marble (Ubuntu Trusty):
milestone: none → ubuntu-14.04.1
description: updated
Harald Sitter (apachelogger) wrote :

Yeah, the broken appearance probably also deserves a report a bugs.kde.org.

It seems not only KUbuntu suffered from the issue but also

* Fedora: https://bugs.kde.org/show_bug.cgi?id=329126
* Gentoo: https://bugs.kde.org/show_bug.cgi?id=329081
* OpenSuSE: https://bugs.kde.org/show_bug.cgi?id=330326

Harald Sitter (apachelogger) wrote :

  Uploading marble_4.13.0-0ubuntu1.1_source.changes: done.
Successfully uploaded packages.

uploaded to trusty, pending sru approval

description: updated
Changed in marble (Ubuntu Trusty):
status: Triaged → In Progress

Hello Rüdiger, or anyone else affected,

Accepted into trusty-proposed. The package will build now and be available in a few hours in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in marble (Ubuntu Trusty):
status: In Progress → Fix Committed
tags: added: verification-needed
tags: added: kubuntu
Dennis Nienhüser (earthwings) wrote :

I'd like some packagers' suggestions how we should change things on the Marble side. The current situation emerged from the following considerations:
- all Marble binaries (marble, marble-qt, marble-touch, marble-mobile) should be compiled and installed by default if dependencies are satisfied
- The .desktop files should call the respective application just Marble.

One approach would be to add cmake switches to disable building some of the applications. The drawback would be that packagers need to know about them, so we'd likely end up in the same situation as now.

Another approach would be trying to be clever of which .desktop files are installed: The KDE one if KDE libraries are found, the mobile one if the cmake MOBILE flag is set and the Qt one otherwise. The result would be that just one .desktop file would be installed in any case. The drawback ist then that building multiple binary packages from the same source (marble, marble-qt) becomes impossible.

Harald Sitter (apachelogger) wrote :

Well, to be honest the notion using Name=Marble is the real problem. Separation etc. ought, and is, done on distro level anyway (except for a few, to mind comes slackware which does not produce split binary units from one source unit). But if the user installs more than one marble it's impossible to tell which is which [1] (generic name being the same doesn't help either, but there's menu implementations that do not actually show the generic name at all anyway...). Arguably this is not really a major issue because the user should only ever need to install one anyway. But, that is where the same Name for different binary units becomes even more annoying.
For example ubuntu's app-install data is the metadata powering the software store, this data is autogenerated from desktop files. For marble you therefore get 4 distinct entries in the ubuntu software store and muon discover [2].

All that being said, I do appreciate why you want it to have the same name and I think that generally this is a good idea. So here is how I would solve this:
- have one desktop file with Name=Marble
- introduce a starter-binary that decides at runtime which marble UI to actually start
- the desktop file then Exec=marble-starter and the starter applies a priority scheme to decide which marble to start (e.g. kde > touch > mobile > qt) depending on what is actually installed

^ In addition to that one could then still have desktop files that have a distinct more technical name like Name=Marble Qt.

Packagewise I think most distributions (or at least the ones that split the binary units into different packages) can represent that sort of dependency on a packaging level.
For example on our end this would probably look like a bit like this:

-marble.deb
  Depends: marble-bin-kde | marble-bin-qt | marble-bin-touch...
  Contains: usr/share/applications/kde4/marble.desktop (Name=Marble)

-marble-bin-kde.deb
  Contains: usr/bin/marble-kde

-marble-bin-qt.deb
  Contains: usr/bin/marble-qt

-marble-kde.deb
  Depends: marble-bin-kde
  Contains: usr/share/applications/kde4/marble-kde.desktop (Name=Marble KDE)

-marble-qt.deb
  Depends marble-bin-qt
  Contains: usr/share/applications/kde4/marble-qt.desktop (Name=Marble Qt)

So, you have the starter package, which needs at least one of the GUI binaries. Independent of everything you have the gui binaries in their own package. Finally you have the GUI specific desktop entry packages that allow the user to explicitly start a specific GUI once those packages are installed.

Mind you, the starter could also display a selection when more than one GUI is installed, the GUI specific desktop files could be dropped altogether as you can then start all guis through the starter even when all of them are installed at the same time.

LibreOffice does something similar with their starter I think.

[1] http://i.imgur.com/tUhGdRS.png
[2] http://i.imgur.com/efg1oS4.png

HTH

Mathew Hodson (mathew-hodson) wrote :

Fixed in Trusty with https://launchpad.net/ubuntu/+source/marble/4:4.13.0-0ubuntu1.1

There is only one entry in the applications menu, and it launches the desktop UI.

tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package marble - 4:4.13.0-0ubuntu1.1

---------------
marble (4:4.13.0-0ubuntu1.1) trusty; urgency=medium

  * Don't show marble-mobile desktop entry by setting Hidden=true to mark it
    as deleted. This change is necessary because both marble and marble-mobile
    ended up in the same package and provide equally named desktop entries
    resulting in confusion over which marble is going to be started.
    Should marble-mobile get a fixed desktop UI in a future patch release we
    can look into splitting the packages properly to provide easy access to
    marble-mobile.
    The property is set through kubuntu_hide_marble_mobile.diff
    LP: #1312104
 -- Harald Sitter <email address hidden> Fri, 25 Apr 2014 16:40:21 +0200

Changed in marble (Ubuntu Trusty):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for marble has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Jonathan Riddell (jr) on 2014-12-19
Changed in marble (Ubuntu Utopic):
status: Fix Committed → Fix Released
Jonathan Riddell (jr) on 2014-12-19
Changed in marble (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.