Package: crawl-tiles
Version: 2:0.13.0-1
Severity: important
Tags: patch fixed-upstream


I'm afraid that the tilesheets are out of sync between builds.  This
affects any architecture other than the one matching whatever
crawl-tiles-data was built on (for Debian's 0.13.0-1 it's amd64),
and any user who rebuilds the package at home.

The culprit is perl hash order being randomized between runs in version
5.18 and greater, which art-data relied on.

The issue is fixed upstream (in trunk), but alas, because of webtiles
on public servers, the fix can't be backported to 0.13 easily there.
The public servers all run stable releases of Debian with old perls,
so they don't suffer from this bug.  No ordinary user has a reason to
split the packaging either -- this matters only in Debian and perhaps
if some other distribution would split out arch:all bits too.

Thus, I'm afraid the fix in 0.13 needs to be kept in Debian during the
whole life of 0.12 and 0.13.
>From fc2aeb4d5915807a4ab8b62ff5adf3d1ead3c01d Mon Sep 17 00:00:00 2001
From: Adam Borowski <kilob...@angband.pl>
Date: Wed, 16 Oct 2013 19:13:58 +0200
Subject: [PATCH] Fix unrand tile mismatches between architectures.

They were written in hash order, which is not supposed to be stable.
---
 crawl-ref/source/util/art-data.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crawl-ref/source/util/art-data.pl b/crawl-ref/source/util/art-data.pl
index a7ce797..5093ca9 100755
--- a/crawl-ref/source/util/art-data.pl
+++ b/crawl-ref/source/util/art-data.pl
@@ -775,7 +775,7 @@ sub write_tiles
 HEADER_END
 
     # Output the tile definitions sorted by type (and thus path).
-    foreach my $type (keys %art_by_type)
+    foreach my $type (sort keys %art_by_type)
     {
         print TILES "%sdir item/$type/artefact\n";
 
-- 
1.8.5.rc0

Reply via email to