guix-play/gnu/packages/patches/bsd-games-2.17-64bit.patch
Vitaliy Shatrov 95024494f3
gnu: Add bsd-games.
* gnu/packages/games.scm (bsd-games): New variable.

New patches, taken from Arch and Debian:
* gnu/packages/patches/bsd-games-2.17-64bit.patch
* gnu/packages/patches/bsd-games-bad-ntohl-cast.patch
* gnu/packages/patches/bsd-games-gamescreen.h.patch
* gnu/packages/patches/bsd-games-getline.patch
* gnu/packages/patches/bsd-games-null-check.patch
* gnu/packages/patches/bsd-games-number.c-and-test.patch
* gnu/packages/patches/bsd-games-prevent-name-collisions.patch
* gnu/packages/patches/bsd-games-stdio.h.patch

New patches with our customizations (configure-config built after Arch's):
* gnu/packages/patches/bsd-games-add-configure-config.patch
* gnu/packages/patches/bsd-games-add-wrapper.patch
* gnu/packages/patches/bsd-games-dont-install-empty-files.patch

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
2020-11-04 15:15:47 +01:00

44 lines
1.3 KiB
Diff

David Leverton writes about adventure/crc.c:
The 'adventure' game from the games-misc/bsd-games-2.13 package crashes
when saving the game on AMD64 (and probably other 64-bit systems, but I
haven't checked). Find attached to fix this.
http://bugs.gentoo.org/show_bug.cgi?id=77032
About utmpentry.c:
the utmpx structure defines the ut_tv member a little differently on
64bit hosts so that a 32bit and 64bit structure can be shared. So the
ut_tv is a custom 32bit structure rather than the native 64bit timeval
structure. Work around is to assign the submembers instead.
http://bugs.gentoo.org/show_bug.cgi?id=102667
--- bsd-games/adventure/crc.c
+++ bsd-games/adventure/crc.c
@@ -134,7 +134,8 @@
if (step >= sizeof(crctab) / sizeof(crctab[0]))
step = 0;
}
- crcval = (crcval << 8) ^ crctab[i];
+ /* Mask to 32 bits. */
+ crcval = ((crcval << 8) ^ crctab[i]) & 0xffffffff;
}
- return crcval & 0xffffffff; /* Mask to 32 bits. */
+ return crcval;
}
--- bsd-games/dm/utmpentry.c
+++ bsd-games/dm/utmpentry.c
@@ -291,7 +291,8 @@
e->line[sizeof(e->line) - 1] = '\0';
(void)strncpy(e->host, up->ut_host, sizeof(up->ut_host));
e->name[sizeof(e->host) - 1] = '\0';
- e->tv = up->ut_tv;
+ e->tv.tv_sec = up->ut_tv.tv_sec;
+ e->tv.tv_usec = up->ut_tv.tv_usec;
adjust_size(e);
}
#endif