unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: nee <nee@cock.li>
To: 27250@debbugs.gnu.org
Subject: bug#27250: [PATCH] gnu: crawl: Update to 0.20.0.
Date: Sat, 10 Jun 2017 21:10:45 +0200	[thread overview]
Message-ID: <0fd6dfc7-6863-6271-5661-f34e782247ba@cock.li> (raw)
In-Reply-To: <5e315f5d.AEAALOqVmtgAAAAAAAAAAAO0_XAAAAACwQwAAAAAAAW9WABZO9qA@mailjet.com>

[-- Attachment #1: Type: text/plain, Size: 686 bytes --]

Am 10.06.2017 um 13:39 schrieb Arun Isaac:
> 
> I'm unable to figure out the issue. This being just a simple update
> patch, I think I'll just push it, and we'll see what happens at the
> build servers. If there are subsequent problems, we'll fix it up
> later. WDYT?
> 

Okay, maybe the buildfarm can give us some hints about this problem. In
the meantime there was another commit updating crawl to 0.20. I rebased
my patch to it. Please use this one. I tested it with --rounds=2 and
didn't run into any problems.

I also rebuilt 0.19.5 again and noticed that the 0.20 release adds 2 new
test cases. I haven't looked into them, but that could narrow down the
location of the problem.


[-- Attachment #2: 0001-gnu-crawl-Add-a-patch-to-fix-savegame-upgrades.patch --]
[-- Type: text/x-patch, Size: 4795 bytes --]

From 5954d907008c07a06bdbfb129383eaf7813ea358 Mon Sep 17 00:00:00 2001
From: nee <nee.git@cock.li>
Date: Sat, 10 Jun 2017 20:27:58 +0200
Subject: [PATCH] gnu: crawl: Add a patch to fix savegame upgrades.

* gnu/packages/games.scm (crawl)[source]: Add a patch to fix savegame
  upgrades.
* gnu/packages/patches/crawl-upgrade-saves.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patch.
---
 gnu/local.mk                                   |  1 +
 gnu/packages/games.scm                         |  3 +-
 gnu/packages/patches/crawl-upgrade-saves.patch | 83 ++++++++++++++++++++++++++
 3 files changed, 86 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/crawl-upgrade-saves.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 686c3c639..ddf05c706 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -550,6 +550,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/cpufrequtils-fix-aclocal.patch		\
   %D%/packages/patches/cracklib-CVE-2016-6318.patch		\
   %D%/packages/patches/cracklib-fix-buffer-overflow.patch	\
+  %D%/packages/patches/crawl-upgrade-saves.patch		\
   %D%/packages/patches/crda-optional-gcrypt.patch		\
   %D%/packages/patches/crossmap-allow-system-pysam.patch	\
   %D%/packages/patches/csound-header-ordering.patch		\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index a76ab1ddc..4a5b94ab7 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -4049,7 +4049,8 @@ fish.  The whole game is accompanied by quiet, comforting music.")
                             version "-nodeps.tar.xz")))
        (sha256
         (base32
-         "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd"))))
+         "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd"))
+       (patches (search-patches "crawl-upgrade-saves.patch"))))
     (build-system gnu-build-system)
     (inputs
      `(("lua51" ,lua-5.1)
diff --git a/gnu/packages/patches/crawl-upgrade-saves.patch b/gnu/packages/patches/crawl-upgrade-saves.patch
new file mode 100644
index 000000000..301942dc3
--- /dev/null
+++ b/gnu/packages/patches/crawl-upgrade-saves.patch
@@ -0,0 +1,83 @@
+Store the crawl version in the textdatabases in SAVEDIR and
+upgrade the databases when the crawl version changes.
+
+By default crawl checks for a mtime difference on files in DATADIR to see if an
+upgrade is required, but guix nulls all file dates,
+and crawl would never upgrade saves.
+
+--- a/source/database.cc	2016-05-31 09:56:08.000000000 +0200
++++ a/source/database.cc	2017-06-05 03:00:19.270632107 +0200
+@@ -25,6 +25,7 @@
+ #include "syscalls.h"
+ #include "threads.h"
+ #include "unicode.h"
++#include "version.h"
+ 
+ // TextDB handles dependency checking the db vs text files, creating the
+ // db, loading, and destroying the DB.
+@@ -55,6 +56,7 @@
+     vector<string> _input_files;
+     DBM* _db;
+     string timestamp;
++    string version;
+     TextDB *_parent;
+     const char* lang() { return _parent ? Options.lang_name : 0; }
+ public:
+@@ -165,7 +167,7 @@
+ 
+ TextDB::TextDB(const char* db_name, const char* dir, ...)
+     : _db_name(db_name), _directory(dir),
+-      _db(nullptr), timestamp(""), _parent(0), translation(0)
++      _db(nullptr), timestamp(""), version(""),  _parent(0), translation(0)
+ {
+     va_list args;
+     va_start(args, dir);
+@@ -187,7 +189,7 @@
+     : _db_name(parent->_db_name),
+       _directory(parent->_directory + Options.lang_name + "/"),
+       _input_files(parent->_input_files), // FIXME: pointless copy
+-      _db(nullptr), timestamp(""), _parent(parent), translation(nullptr)
++      _db(nullptr), timestamp(""), version(""), _parent(parent), translation(nullptr)
+ {
+ }
+ 
+@@ -202,6 +204,9 @@
+         return false;
+ 
+     timestamp = _query_database(*this, "TIMESTAMP", false, false, true);
++    version = _query_database(*this, "VERSION", false, false, true);
++    if (version.empty())
++        return false;
+     if (timestamp.empty())
+         return false;
+ 
+@@ -245,6 +250,9 @@
+     string ts;
+     bool no_files = true;
+ 
++    if (string(Version::Long) != version)
++        return true;
++
+     for (const string &file : _input_files)
+     {
+         string full_input_path = _directory + file;
+@@ -261,7 +269,7 @@
+         ts += buf;
+     }
+ 
+-    if (no_files && timestamp.empty())
++    if (no_files && timestamp.empty() && version.empty())
+     {
+         // No point in empty databases, although for simplicity keep ones
+         // for disappeared translations for now.
+@@ -321,7 +329,10 @@
+             _store_text_db(full_input_path, _db);
+         }
+     }
++
++    string current_version = string(Version::Long);
+     _add_entry(_db, "TIMESTAMP", ts);
++    _add_entry(_db, "VERSION", current_version);
+ 
+     dbm_close(_db);
+     _db = 0;
-- 
2.13.1


  parent reply	other threads:[~2017-06-10 19:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-05 13:31 bug#27250: [PATCH] gnu: crawl: Update to 0.20.0 nee
2017-06-05 14:14 ` Arun Isaac
2017-06-05 15:54   ` Leo Famulari
2017-06-06  8:27     ` Arun Isaac
     [not found]     ` <51e0342f.AEUAK9NcTPcAAAAAAAAAAAO0_XAAAAACwQwAAAAAAAW9WABZNmdv@mailjet.com>
2017-06-06 17:56       ` nee
2017-06-07 18:24         ` Arun Isaac
2017-06-07 19:20           ` Leo Famulari
2017-06-08 15:16             ` Arun Isaac
     [not found]             ` <cu78tl25x2y.fsf@systemreboot.net>
2017-06-10 11:39               ` Arun Isaac
     [not found]               ` <5e315f5d.AEAALOqVmtgAAAAAAAAAAAO0_XAAAAACwQwAAAAAAAW9WABZO9qA@mailjet.com>
2017-06-10 19:10                 ` nee [this message]
2017-06-12  9:36                   ` Arun Isaac
     [not found]         ` <cu7shjbbqqo.fsf@systemreboot.net>
2017-06-07 19:26           ` Arun Isaac
     [not found] ` <4577ad88.AEUAK6w8Z7kAAAAAAAAAAAO0_XAAAAACwQwAAAAAAAW9WABZNWdE@mailjet.com>
2017-06-05 17:41   ` nee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0fd6dfc7-6863-6271-5661-f34e782247ba@cock.li \
    --to=nee@cock.li \
    --cc=27250@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).