openbve does not depend on the required package libmono-i18n4.0-all

Bug #877776 reported by Paul Childs
70
This bug affects 8 people
Affects Status Importance Assigned to Milestone
openbve (Fedora)
New
Undecided
Unassigned
openbve (Ubuntu)
Fix Released
Medium
Unassigned
Oneiric
Fix Released
Medium
Unassigned

Bug Description

openBVE does not run since I upgraded from Natty a few days ago. This is the terminal output
~$openbve
System.NotSupportedException: CodePage 37 not supported
  at System.Text.Encoding.GetEncoding (Int32 codepage) [0x00000] in <filename unknown>:0
  at System.Text.EncodingInfo.GetEncoding () [0x00000] in <filename unknown>:0
  at System.Text.EncodingInfo.get_Name () [0x00000] in <filename unknown>:0
  at System.Text.EncodingInfo.get_DisplayName () [0x00000] in <filename unknown>:0
  at OpenBve.formMain.formMain_Load (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x00000] in <filename unknown>:0
  at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e) [0x00000] in <filename unknown>:0
=====
SRU information

[Impact]
The bug always occurs on Ubuntu installations in case the libmono-i18n4.0-all package has not been installed and prevents OpenBVE from being run. Severity set to medium as the bug severly impacts a non-core application, but a workaround is present (see Test Case section).
Justification for backporting: fixing the missing dependency problem allows the users to install and run OpenBVE in a straightforward way without searching for workarounds on the Internet and installing the missing package manually.

[Development Fix]
The openbve package has been modified by including the missing dependency (libmono-i18n4.0-all) in the Depends: section of the debian/control file.
Number of modified packages: 1 (openbve - original version: 1.2.10.0-0ubuntu2, new version in Precise: 1.2.10.0-0ubuntu3)

[Stable Fix]
The fix is supplied as a debdiff against the original version of OpenBVE in comment #22: <https://bugs.launchpad.net/ubuntu/oneiric/+source/openbve/+bug/877776/+attachment/2625704/+files/openbve_1.2.10.0-0ubuntu2.1.debdiff>

[Test Case]
1) Start from a clean Ubuntu installation. Make sure that the libmono-i18n4.0-all package is not installed on the system.
2) Install OpenBVE by opening a terminal and running:
sudo apt-get install openbve
3) Try running OpenBVE from the terminal with the command:
openbve
The program should display the error message shown at the top of this description ("System.NotSupportedException: CodePage 37 not supported") in the terminal itself and the Mono interpreter ("cli" process) should start looping, eating a single CPU core. The main OpenBVE window should not be shown.
4) Kill the "cli" process.
5) Install the updated package. apt-get should prompt you to install the missing dependency libmono-i18n4.0-all as well.
6) Try running "openbve" again from the terminal: the program should run and display the main OpenBVE window.

A screenshot of the main OpenBVE windows is provided by the author of the program at <http://trainsimframework.org/common/screen_z1.jpg>. Please note that, in the Ubuntu version, the command buttons on the left are replaced by option buttons; the rest of the window is the same.

[Regression Potential]
No potential regressions should occur in OpenBVE itself as no code has been changed. It's possible, however, that other badly-written Mono/.NET programs might be affected by the installation of the new Mono library.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in openbve (Ubuntu):
status: New → Confirmed
Revision history for this message
Alessandro Menti (elgaton) wrote :

Same problem. I also noted that, after displaying the error message, the "cli" process (main Mono interpreter/executer) also eats 50% processor time on my dual-core system, which means it eats one single core fully, as if it is stuck into a loop.

Revision history for this message
Paul Childs (childsey01) wrote : Re: [Bug 877776] Re: ocelot: system not supported

Hooray,
got a workaround so kids can play trains again. Browsed the "CodePage 37 not
supported" error and discovered this one's not new to openbve. Thank you
Alessandro and other clever people who figured out enough of this earlier
that a fool like me can connect the dots. This time you need to install
libmono-i18n4.0-all to get it working. Possibly a reduced set of the other
CLI4.0 libraries might work. Haven't tested them yet.
I reckon openbve justs needs to update the dependencies for the Ocelot
package and then all should be fine.

On 21 October 2011 08:35, Alessandro Menti <email address hidden>wrote:

> Same problem. I also noted that, after displaying the error message, the
> "cli" process (main Mono interpreter/executer) also eats 50% processor
> time on my dual-core system, which means it eats one single core fully,
> as if it is stuck into a loop.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/877776
>
> Title:
> ocelot: system not supported
>
> Status in “openbve” package in Ubuntu:
> Confirmed
>
> Bug description:
> openBVE does not run since I upgraded from Natty a few days ago. This is
> the terminal output
> ~$openbve
> System.NotSupportedException: CodePage 37 not supported
> at System.Text.Encoding.GetEncoding (Int32 codepage) [0x00000] in
> <filename unknown>:0
> at System.Text.EncodingInfo.GetEncoding () [0x00000] in <filename
> unknown>:0
> at System.Text.EncodingInfo.get_Name () [0x00000] in <filename
> unknown>:0
> at System.Text.EncodingInfo.get_DisplayName () [0x00000] in <filename
> unknown>:0
> at OpenBve.formMain.formMain_Load (System.Object sender,
> System.EventArgs e) [0x00000] in <filename unknown>:0
> at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x00000] in
> <filename unknown>:0
> at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e)
> [0x00000] in <filename unknown>:0
>
> To manage notifications about this bug go to:
>
> https://bugs.launchpad.net/ubuntu/+source/openbve/+bug/877776/+subscriptions
>

Revision history for this message
Alessandro Menti (elgaton) wrote : Re: ocelot: system not supported

I have tested your solution - it seems to work, so I am attaching this debdiff for inclusion into Ubuntu. (Thinking again, the dependency on libmono-i18n4.0-all makes sense, since the author of the program makes use of characters considered by "East Asian" in the in-game menu to display the arrows.)

I have tried to remove the packages installed as dependencies by the libmono-i18n4.0-all package one by one to find if only some of them are needed, but it seems the full set is required.

Thank you very much for finding the missing dependency and remember: not just kids play trains ;)?field.comment=I have tested your solution - it seems to work, so I am attaching this debdiff for inclusion into Ubuntu. (Thinking again, the dependency on libmono-i18n4.0-all makes sense, since the author of the program makes use of characters considered by "East Asian" in the in-game menu to display the arrows.)

I have tried to remove the packages installed as dependencies by the libmono-i18n4.0-all package one by one to find if only some of them are needed, but it seems the full set is required.

Thank you very much for finding the missing dependency and remember: not just kids play trains ;)

Changed in openbve (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Alessandro Menti (elgaton) wrote :

Subscribed ubuntu-sponsors for inclusion of the patch.

Changed in openbve (Ubuntu):
assignee: nobody → Alessandro Menti (alessandro-menti)
Revision history for this message
Daniel Manrique (roadmr) wrote :

Set to importance: medium at request from elgaton, as it severely impacts a non-core application. However there is a workaround, so medium importance.

Changed in openbve (Ubuntu):
importance: Undecided → Medium
tags: added: patch
Revision history for this message
Alessandro Menti (elgaton) wrote :

Status set to "Confirmed" and assignee removed so that the patch will get a review (as per suggestion on #ubuntu-motu). Sorry for messing things up.

Changed in openbve (Ubuntu):
status: In Progress → Confirmed
assignee: Alessandro Menti (alessandro-menti) → nobody
Revision history for this message
Paul Sladen (sladen) wrote :

I'm happy to sponsor this; the dependency can be slightly simplified:

  libmono-i18n4.0-cil -> libmono-i18n4.0-all

as the first is also a second-level dependency of the latter.

Revision history for this message
Alessandro Menti (elgaton) wrote :

Thanks, Paul - I am attaching a revised version of the patch based on your suggestion.

I have also fixed some minor bugs in the "debian/control" and "debian/rules" files, all found through lintian:
* ${misc:Depends} has been added to the Depends field;
* the Standards-Version field has been updated to the current version of the Debian Package Guidelines;
* the "build-arch" and "build-indep" targets have been added (they follow the form suggested in /usr/share/lintian/checks/rules.desc).

I haven't tested that the package builds correctly yet, but am creating a pbuilder build environment and will post the results as soon as the creation and test are over.

Please let me know if there is something else that needs to be fixed.

Revision history for this message
Aidan Fell (islandmonkey) wrote :

Not working on mine even after modifying the dependency.

It launches now. But crashes after choosing the weather and time of day option.

Revision history for this message
Paul Childs (childsey01) wrote : Re: [Bug 877776] Re: ocelot: system not supported

Thanks Alessandro,
It seems to be running smoothly again. No problems since (though I haven't
reinstalled just manually added the dependency -- guess I should else I
might uninstall the dependency and not get a warning). I shall have to
learn how to do the patching myself as I'll probably be doing some
packaging in the near future. Looks pretty straightforward (at least in
this case). Of course there's knowing where to send stuff and the rest of
the protocol.

On 30 October 2011 04:54, Alessandro Menti <email address hidden>wrote:

> Thanks, Paul - I am attaching a revised version of the patch based on
> your suggestion.
>
> I have also fixed some minor bugs in the "debian/control" and
> "debian/rules" files, all found through lintian:
> * ${misc:Depends} has been added to the Depends field;
> * the Standards-Version field has been updated to the current version of
> the Debian Package Guidelines;
> * the "build-arch" and "build-indep" targets have been added (they follow
> the form suggested in /usr/share/lintian/checks/rules.desc).
>
> I haven't tested that the package builds correctly yet, but am creating
> a pbuilder build environment and will post the results as soon as the
> creation and test are over.
>
> Please let me know if there is something else that needs to be fixed.
>
> ** Patch added: "Add missing dependency and fix minor bugs in
> debian/control and debian/rules (revision 2)"
>
> https://bugs.launchpad.net/ubuntu/+source/openbve/+bug/877776/+attachment/2578094/+files/openbve_1.2.10.0-0ubuntu3.debdiff
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/877776
>
> Title:
> ocelot: system not supported
>
> Status in “openbve” package in Ubuntu:
> Confirmed
>
> Bug description:
> openBVE does not run since I upgraded from Natty a few days ago. This is
> the terminal output
> ~$openbve
> System.NotSupportedException: CodePage 37 not supported
> at System.Text.Encoding.GetEncoding (Int32 codepage) [0x00000] in
> <filename unknown>:0
> at System.Text.EncodingInfo.GetEncoding () [0x00000] in <filename
> unknown>:0
> at System.Text.EncodingInfo.get_Name () [0x00000] in <filename
> unknown>:0
> at System.Text.EncodingInfo.get_DisplayName () [0x00000] in <filename
> unknown>:0
> at OpenBve.formMain.formMain_Load (System.Object sender,
> System.EventArgs e) [0x00000] in <filename unknown>:0
> at System.Windows.Forms.Form.OnLoad (System.EventArgs e) [0x00000] in
> <filename unknown>:0
> at System.Windows.Forms.Form.OnLoadInternal (System.EventArgs e)
> [0x00000] in <filename unknown>:0
>
> To manage notifications about this bug go to:
>
> https://bugs.launchpad.net/ubuntu/+source/openbve/+bug/877776/+subscriptions
>

Revision history for this message
Alessandro Menti (elgaton) wrote : Re: ocelot: system not supported

@Jamie: there are no options about the weather and time of day to be set in OpenBVE. Are you perhaps referring to FlightGear?

Revision history for this message
Aidan Fell (islandmonkey) wrote :

On the Birmingham route, there is.

But no need to matter anymore, seems to work now.

Revision history for this message
Alessandro Menti (elgaton) wrote :

@Jamie: sorry - I forgot that the Birmingham route uses multiple route files to let the player choose between different weather conditions.

@Paul Childs: you may want to have a look at the following pages (the ones I used):
- <https://wiki.ubuntu.com/PackagingGuide/Complete> - Complete packaging guide for Ubuntu (practicing those concepts helps a lot)
- <https://wiki.ubuntu.com/Bugs/HowToFix> - Quick guide
- <https://wiki.ubuntu.com/SponsorshipProcess> - How to have patches checked and uploaded
You may also ask folks in #ubuntu-devel (or #ubuntu-motu if you're dealing with a package in the universe section).

As for the patch, I am creating the pbuilder environment (couldn't complete the procedure yesterday). I'll post as soon as the test is finished.

Revision history for this message
Alessandro Menti (elgaton) wrote :

I have set up a PPA for personal testing and uploaded the package there. The build log and the package are available at <https://launchpad.net/~alessandro-menti/+archive/patch-testing/+build/2890348> for testing.

Please note that I will remove the package from the PPA as soon as this bug is closed; note also that I have not given the new package a "ppa" version number.

I have personally tested the package - the game seems to work (I have done a very quick ride in Arcade mode) and the missing dependency has been brought in.

@Paul Sladen: if everything is OK, feel free to sponsor the patch as per <https://wiki.ubuntu.com/MOTU/Sponsorship/SponsorsQueue>, section "Note for Sponsors". Thanks!

summary: - ocelot: system not supported
+ openbve does not depend on the required package libmono-i18n4.0-all
tags: added: ocelot
Michael Terry (mterry)
Changed in openbve (Ubuntu):
assignee: nobody → Michael Terry (mterry)
Revision history for this message
Michael Terry (mterry) wrote :

Alessandro, thank you so much for the crash fix and the cleanup, especially since it seems you're just getting started with patching!

I've uploaded the fix to precise.

Changed in openbve (Ubuntu):
assignee: Michael Terry (mterry) → nobody
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package openbve - 1.2.10.0-0ubuntu3

---------------
openbve (1.2.10.0-0ubuntu3) precise; urgency=low

  * debian/control: Add missing dependency (libmono-i18n4.0-all) and remove
    dependency on libmono-i18n4.0-cil as the latter is a dependency of the
    first. Thanks to Paul Childs for the fix and to Paul Sladen for finding a
    dependency simplification. (LP: #877776)
    Adding also ${misc:Depends} to the Depends field and bumping the
    Standards-Version to 3.9.2 (current version).
  * debian/rules: Add build-arch and build-indep recommended targets.
 -- Alessandro Menti <email address hidden> Sat, 29 Oct 2011 19:40:10 +0200

Changed in openbve (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Alessandro Menti (elgaton) wrote :

Thanks, Micheal - I'll get an Alpha build of Ubuntu Precise to perform a final test in the next days, then I'll request an SRU for Oneiric.

Revision history for this message
Alessandro Menti (elgaton) wrote :

Tested on Ubuntu Precise alpha 1 - the program ran correctly. It seemed to have some difficulty catching the key presses, but I think it's a VirtualBox glitch.

Requesting a SRU for Oneiric.

description: updated
description: updated
tags: added: testcase
Revision history for this message
Alessandro Menti (elgaton) wrote :

Also, could some sponsor please upload the fixed package to -proposed too? Thanks!

Revision history for this message
Micah Gersten (micahg) wrote :

Thank you for trying to fix a bug in a stable release of Ubuntu. I'm unsubscribing ubuntu-sponsors for the moment. Per https://wiki.ubuntu.com/StableReleaseUpdates, the oneiric debdiff should be the smallest change possible to fix this package. Also, you need to target oneiric-proposed instead of oneiric in the changelog. Please resubscribe ubuntu-sponsors once a new debdiff has been attached that addresses these issues.

Changed in openbve (Ubuntu Oneiric):
assignee: nobody → Alessandro Menti (alessandro-menti)
status: New → Incomplete
Changed in openbve (Ubuntu Oneiric):
assignee: Alessandro Menti (alessandro-menti) → nobody
status: Incomplete → Confirmed
Micah Gersten (micahg)
Changed in openbve (Ubuntu Oneiric):
importance: Undecided → Medium
Revision history for this message
Alessandro Menti (elgaton) wrote :

This debdiff contains just the required modifications (libmono-i18n4.0-all package included as dependency instead of libmono-i18n4.0-all).

description: updated
description: updated
Revision history for this message
Evan Broder (broder) wrote :

Uploaded to oneiric-proposed; someone from the SRU team should be through within a few days to process it.

Revision history for this message
Clint Byrum (clint-fewbar) wrote : Please test proposed package

Hello Paul, or anyone else affected,

Accepted openbve into oneiric-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in openbve (Ubuntu Oneiric):
status: Confirmed → Fix Committed
tags: added: verification-needed
Revision history for this message
Alessandro Menti (elgaton) wrote :

Tested on a fresh install of Ubuntu Oneiric as per <https://wiki.ubuntu.com/QATeam/PerformingSRUVerification> using the test case in the bug description: bug solved with the package in -proposed, OpenBVE starts correctly. More testing to follow to check no regressions have been introduced (could not complete it yet due to the poor framerate of the emulated graphic card which makes the program run slowly when 3D graphics is shown).

Martin Pitt (pitti)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Alessandro Menti (elgaton) wrote :

Completed testing on my "normal" Ubuntu box - works completely fine (tried a quick ride in Arcade mode).

(Sorry for not changing the "verification" tags earlier - I just wanted to make this final test before).

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package openbve - 1.2.10.0-0ubuntu2.1

---------------
openbve (1.2.10.0-0ubuntu2.1) oneiric-proposed; urgency=low

  * debian/control: Add missing dependency (libmono-i18n4.0-all) and remove
    dependency on libmono-i18n4.0-cil as the latter is a dependency of the
    first. Thanks to Paul Childs for the fix and to Paul Sladen for finding a
    dependency simplification. (LP: #877776)
 -- Alessandro Menti <email address hidden> Fri, 09 Dec 2011 11:36:32 -0800

Changed in openbve (Ubuntu Oneiric):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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