hedgewars << 0.9.17 can not engage in network play with current release

Bug #852603 reported by Derek
30
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Oneiric Backports
Won't Fix
Undecided
Unassigned
hedgewars (Debian)
Fix Released
Undecided
Unassigned
hedgewars (Ubuntu)
Fix Released
Undecided
Unassigned
Lucid
Won't Fix
Undecided
Evan Broder
Maverick
Fix Released
Undecided
Unassigned
Natty
Fix Released
Undecided
Unassigned
Oneiric
Fix Released
Undecided
Unassigned

Bug Description

IMPACT: Old versions of hedgewars are unable to engage in network play with newer versions of the game, including most users of the official network server.

DEVELOPMENT: Fixed by upgrading to 0.9.17, which was just synced into Precise

FIX: Backport of 0.9.17-1. No other source changes to 0.9.17-1 are required for Oneiric; debdiff from 0.9.17-1 will be attached momentarily.

TEST CASE:
 1. Start hedgewars
 2. Enter a nickname if prompted
 3. Select network play (the globe with a missile shooting across it)
 4. Select "Official server"
 5. With the old version, observe that you are warned that Hedgewars is outdated
    With the new version, observe that there is no warning

REGRESSION: The behavior of hedgewars has already regressed, since network play with current versions is affected. Hedgewars upstream does not make separate features and bug fixes in these point releases - and in fact it is generally new features which force bumping the network protocol. This does mean that there is a priori more regression risk than for a typical SRU.

========
Original bug description:
0.9.16 is a major release involving many new changes:
http://hedgewars.org/node/3291

As with other releases, online play against older versions is not possible, so it would be good for Ubuntu users to be updated as soon as possible so they can play against Windows and OSX.

Revision history for this message
Derek (bugs-m8y) wrote :

Hey. Just FYI, looks like either a rerelease of 0.9.16 or a 0.9.16.1 (probably
.1) will be out in a few minutes, sooo hang on :)

Revision history for this message
Derek (bugs-m8y) wrote :

Rereleased. Same tarball name.

Revision history for this message
elguavas (elguavas.) wrote :

seconded.

please update this package for 11.10.

cheers.

Revision history for this message
Paul Wise (Debian) (pabs) wrote :

This has been fixed in Debian sid by the Debian/Ubuntu games team, please ask for a sync from there.

affects: hedgewars (Ubuntu) → hedgewars (Debian)
Changed in hedgewars (Debian):
status: New → Fix Released
Revision history for this message
Micah Gersten (micahg) wrote :

Please see this for how to request a freeze exception (lots of new stuff in this release):https://wiki.ubuntu.com/FreezeExceptionProcess

tags: added: upgrade-software-version
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in hedgewars (Ubuntu):
status: New → Confirmed
Revision history for this message
Derek (bugs-m8y) wrote :

FWIW we are going to try very hard to have a bug fix 0.9.17 release in a few weeks, ideally for Hedgewars birthday on Halloween.
Minor release, but since it fixes a few issues in .16, it would break network play...

Sooo, given 11.10 release has gone ahead already, might be best to focus this "make an exception" energy for end-month. :)

Revision history for this message
Derek (bugs-m8y) wrote :

Sorry, by break network play, I mean make .17 incompatible w/ .16 for online play.

Revision history for this message
elguavas (elguavas.) wrote :

sounds like a good plan.

cheers,
stephen.

Revision history for this message
Ilya Barygin (randomaction) wrote :

0.9.16 is in Precise.

Changed in hedgewars (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Iain Lane (laney) wrote :

I can certainly approve a backport of any hedgewars version you get into Precise. Please confirm that the requested version builds, installs and runs on Oneiric.

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

For the purposes of tracking by the backports team, I'm going to mark this bug as "Incomplete".

If you can verify that the hedgewars package in Precise builds, installs, and runs on Oneiric, please mark the bug back to "Confirmed"

summary: - Update to 0.9.16
+ Please backport hedgewars (0.9.16-1) from precise to oneiric
Changed in oneiric-backports:
status: New → Incomplete
Revision history for this message
Derek (bugs-m8y) wrote : Re: Please backport hedgewars (0.9.16-1) from precise to oneiric

Soooo.
0.9.17 release.
http://download.gna.org/hedgewars/hedgewars-src-0.9.17.tar.bz2

BTW, the server should build on Oneiric.

Dependencies here:
http://code.google.com/p/hedgewars/wiki/BuildingOnLinux

Can this just be renamed to 0.9.17? :)

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

From the backports perspective, there's nothing that we can do until version 0.9.17 is available in Ubuntu at all (currently Precise still has 0.9.16-1).

Backporting 0.9.17 is still fine once it's available; the backport will still need to be tested as well as Iain described.

However, have you considered going through the SRU process (https://wiki.ubuntu.com/StableReleaseUpdates)? We generally prefer to use backports for exposing new features of a program, while we use SRUs for fixing bugs, since users don't get backports automatically (and do get SRUs).

Is it possible to isolate the patches that required breaking network play? Or alternatively, does 0.9.17 only contain bugfixes (no new features)?

Revision history for this message
Derek (bugs-m8y) wrote :

Anything safe has been backported to the 0.9.16 repository branch already in Hedgewars Mercurial. But that's a rather small subset of the changes.

The problem is that virtually anything breaks network compatibility since, to keep cheating in a FOSS game down, and to keep the network protocol light, Hedgewars network play just relays moves.

As a result anything that even slightly alters the gameplay causes network incompatibility. So, virtually every release has a network protocol bump.

This is obviously a bit inconvenient for the Linux users who aren't on PlayDeb. OSX users just get the update we push to the app store, and Windows users just grab the new exe.

A surprising amount of time is spent telling Linux users the reason they don't see anyone on the server is they are on a version that is 1-4 revisions out of date (anywhere from 3 months to 2 years old). Some can use PlayDeb, others have to build from source.

The full ChangeLog is here.

http://hedgewars.googlecode.com/hg/ChangeLog.txt

Revision history for this message
Derek (bugs-m8y) wrote :

Just as an example of just what can change network play. Changing one pixel on one theme object requires a protocol bump, since a hog's movements could be slightly changed.

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

I've spoken with the SRU team, and they concluded that updating hedgewars through our SRU process would be legitimate in order to fix network play.

Given that, I'm going to re-arrange this bug from a backports bug to an SRU bug, and I will attempt to upload the SRU for Oneiric this evening.

I'd like to also upload SRUs for older releases as well, but they don't build on those releases without source modifications due to changes in Ubuntu's Haskell toolchain, so that will probably take me a little more time to prepare.

summary: - Please backport hedgewars (0.9.16-1) from precise to oneiric
+ hedgewars << 0.9.17 can not play on official network server
Changed in oneiric-backports:
status: Incomplete → Won't Fix
summary: - hedgewars << 0.9.17 can not play on official network server
+ hedgewars << 0.9.17 can not engage in network play with current release
Evan Broder (broder)
description: updated
Changed in hedgewars (Ubuntu Oneiric):
status: New → Confirmed
Changed in hedgewars (Ubuntu Lucid):
assignee: nobody → Evan Broder (broder)
Changed in hedgewars (Ubuntu Maverick):
assignee: nobody → Evan Broder (broder)
Changed in hedgewars (Ubuntu Natty):
assignee: nobody → Evan Broder (broder)
Changed in hedgewars (Ubuntu Oneiric):
assignee: nobody → Evan Broder (broder)
Evan Broder (broder)
Changed in hedgewars (Ubuntu Oneiric):
assignee: Evan Broder (broder) → nobody
Revision history for this message
Evan Broder (broder) wrote :

Attached is the debdiff from 0.9.17-1 (in Precise) which I uploaded to oneiric-proposed.

Revision history for this message
Derek (bugs-m8y) wrote :

Yeah, the haskell thing isn't that important. Some distros have never included the server piece. Gentoo for example, since most people just play on the public server.

It's a nice to have, but only necessary for LAN play.

Revision history for this message
Evan Broder (broder) wrote : Re: [Bug 852603] Re: hedgewars << 0.9.17 can not engage in network play with current release

We've shipped the server going back to at least Lucid; to drop it in
an SRU would be an unacceptable regression, so we'll have to come up
with some way to make it work.

Revision history for this message
Martin Pitt (pitti) wrote : Please test proposed package

Hello Derek, or anyone else affected,

Accepted hedgewars 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 hedgewars (Ubuntu Oneiric):
status: Confirmed → Fix Committed
tags: added: verification-needed
Revision history for this message
Evan Broder (broder) wrote :

I managed to get as far as the attached diff for a Natty SRU. It includes a rather gross hack to work around the lack of Text.Show.ByteString, but it still doesn't compile. It blows up fairly quickly with the following:

[11 of 22] Compiling ClientIO ( /«PKGBUILDDIR»/gameServer/ClientIO.hs, /«PKGBUILDDIR»/obj-x86_64-linux-gnu/gameServer/ClientIO.o )

/«PKGBUILDDIR»/gameServer/ClientIO.hs:25:17:
    Not in scope: `state'
make[3]: *** [bin/hedgewars-server] Error 1

I never really grasped Monadic Haskell, so I'm at the mercy of others to figure out what's happening there.

Revision history for this message
Anders Kaseorg (andersk) wrote :

The right implementation of showB is
  showB :: (Show a) => a -> B.ByteString
  showB = B.pack . show
(‘read’ is wrong, that would expect a quoted string).

For mtl < 2, you should be able to replace ‘state’ with ‘State’.

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

This patch seems to actually work - I was able to start the 0.9.17 server and the game in a Natty chroot and connect them to each other.

Uploading now.

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

Fortunately, Maverick patch is the same as the Natty patch; just has s/natty/maverick/g

Uploaded to maverick-proposed

Changed in hedgewars (Ubuntu Natty):
assignee: Evan Broder (broder) → nobody
Changed in hedgewars (Ubuntu Maverick):
assignee: Evan Broder (broder) → nobody
Revision history for this message
Martin Pitt (pitti) wrote :

Hello Derek, or anyone else affected,

Accepted hedgewars into maverick-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 hedgewars (Ubuntu Maverick):
status: New → Fix Committed
Changed in hedgewars (Ubuntu Natty):
status: New → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

Hello Derek, or anyone else affected,

Accepted hedgewars into natty-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!

Revision history for this message
Benjamin Kerensa (bkerensa) wrote :

Confirmed bug in 0.9.15-4 and verified fix in 0.9.17-1~oneiric0.1

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hedgewars - 0.9.17-1~oneiric0.1

---------------
hedgewars (0.9.17-1~oneiric0.1) oneiric-proposed; urgency=low

  * Backport 0.9.17-1 to Oneiric to fix network play (LP: #852603)
    - No other source changes.
 -- Evan Broder <email address hidden> Mon, 21 Nov 2011 16:43:07 -0800

Changed in hedgewars (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Martin Pitt (pitti)
tags: added: verification-done-oneiric
removed: verification-done
urusha (urusha)
Changed in hedgewars (Ubuntu Lucid):
status: New → Confirmed
Revision history for this message
Derek (bugs-m8y) wrote :

So, someone on the forum decided to make an LTS 0.9.17 as well.

http://hedgewars.org/node/3600

I obviously have no idea whatsoever if it is trustworthy and have not installed it myself, nor do I have any plans to.
While the LTS version clearly is non-functional w/ online play, I don't really think people should consider LTS if they are gamers.

Revision history for this message
Derek (bugs-m8y) wrote :

Minor nitpick for you guys
The Hedgewars desktop file you are using is way out of date and missing a ton of localisations.
http://hedgewars.googlecode.com/hg/misc/hedgewars.desktop

Revision history for this message
Derek (bugs-m8y) wrote :

I'd also like to note that despite my pleading, none of the players who confirmed 0.9.17 worked for them in 10.10 ever posted in here.

And there are quite a few people on 10.10 out of a desire to avoid Unity (understandable).

Here is the most recent one from today.
19:15 < Judeau> hello
19:16 < Judeau> when i connect to the Hedgewar server to play online, there are no rooms to join, is it normal?
19:16 < Forty-3> Judeau: sometimes no one is playing
19:16 < Forty-3> I can check
[ note, there were over 70 players, all running 0.9.17 ]
19:17 < Forty-3> Judeau: there are rooms
19:17 < Judeau> ok
19:17 < Forty-3> what server are you using?
19:17 < Judeau> i'm not using the last version
19:17 < Forty-3> that would be it
19:17 < Judeau> thanks
19:17 < Forty-3> whenever a new version is released, it breaks compatability with the old one
19:18 < Forty-3> greab the latest version, and you shlould be good to go
19:18 < Forty-3> *should
19:19 < Judeau> i see, i tried to install but as i am using ubuntu 10.10, i got some problems
19:19 < Judeau> i will try again
19:19 < Judeau> thank you

I urge you guys to consider stabilising 0.9.17 in 10.10.
Thanks!

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

10.10 is EOL in just under 3 weeks, it's time to upgrade :)

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

Hi Derek -

Currently Ubuntu 11.10 has been updated to hedgewars 0.9.17. There are pending updates for Ubuntu 10.10 and 11.04. However, before we can release those updates to the general public, they need to be tested, and so far nobody has stepped up to verify that the new packages work on those releases.

To test them, please follow the instructions to enable the maverick-proposed or natty-proposed repositories on your machine (https://wiki.ubuntu.com/Testing/EnableProposed) and report back.

We can not release the changes until we have some confidence that they will work.

Revision history for this message
Gianfranco Costamagna (costamagnagianfranco) wrote :

The problem is about 10.04 which is a LTS relase

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

It's unfortunately not that simple. We've always shipped the hedgewars server as part of our packages. To drop the server in a post-release update would not be acceptable. However, the Haskell language has changed enough since early 2010 that the current server will not build using the Haskell packages from 10.04.

Unless somebody comes up with a patch that allows us to build the 0.9.17 server on Ubuntu 10.04's Haskell stack, an SRU isn't an option.

It may be possible to backport the package. However, due to the requirements of the backports project, one of 2 things would have to happen: either the maverick-proposed packages need to be verified in the next few days (in which case we would backport from maverick-updates to lucid-backports), or we need to wait a month until maverick is EOL (in which case backport policies allow us to backport from precise to lucid-backports). In either case, we need a patch to the packaging to disable the server so that the package builds on Lucid.

In any case, there's a lot of work that needs to be done to get hedgewars 0.9.17 into Lucid, and I don't have the time to actively drive this anymore, so somebody else from the community needs to step up to do the development work. If there's nobody that can, then it may be time to accept that we can't offer current versions of hedgewars on an OS that's 2 years old.

Revision history for this message
Derek (bugs-m8y) wrote :

WRT comment #34 - aye. I do not have 10.10 or 11.04 on any machine over here.
I suppose I could set it up in a VM, but that hardly seems like a good test for an OpenGL game.

As noted in comment #32, several people who I linked directly to the .deb s under proposed reported they worked fine for them, but unfortunately, none of them have commented in the thread. I suppose it is doomed to remain in proposed forever.

Changed in hedgewars (Ubuntu Maverick):
status: Fix Committed → Fix Released
Changed in hedgewars (Ubuntu Natty):
status: Fix Committed → Fix Released
Revision history for this message
Rolf Leggewie (r0lf) wrote :

lucid has seen the end of its life and is no longer receiving any updates. Marking the lucid task for this ticket as "Won't Fix".

Changed in hedgewars (Ubuntu Lucid):
status: Confirmed → Won't Fix
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.