Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nethack for openSUSE:Factory checked in at 2025-12-01 11:14:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nethack (Old) and /work/SRC/openSUSE:Factory/.nethack.new.14147 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nethack" Mon Dec 1 11:14:55 2025 rev:10 rq:1320663 version:3.6.7 Changes: -------- --- /work/SRC/openSUSE:Factory/nethack/nethack.changes 2025-07-18 15:59:37.485214344 +0200 +++ /work/SRC/openSUSE:Factory/.nethack.new.14147/nethack.changes 2025-12-01 11:15:44.940671363 +0100 @@ -1,0 +2,37 @@ +Fri Nov 28 13:59:19 UTC 2025 - Thomas Zimmermann <[email protected]> + +- Add nethack-367-src.tgz: Update NetHack to version 3.6.7. + +- Modify nethack-config.patch: NetHack 3.6 uses improved build scripts + that allow for configuration in a few dedicated files. Avoid patching + various Makefiles and headers in favor of the new system. Set build + configuration in sys/unix/hints/linux. + +- Modfify nethack-gcc15-1.patch: Pick upstream Gcc 15 fix for NetHack + 3.6.7. + +- Disable parallel builds. There are complex dependencies among + NetHack's source files and build utils, which makes parallel building + complicated. Current attempts at parallel building have always been a + hack that tries to order dependencies where necessary. Actual + suport for parallel builds would require a rewrite of NetHack's + Makefile structure. + +- Remove nethack-343-src.tar.bz2: The source code of NetHack 3.4.3 is + no longer needed. + +- Remove nethack-gzip.patch: Setup of gzip is now handled in + network-config.patch. + +- Remove nethack-WINCHAIN-a-framework-allowing-multiple-processors-be.patch: + Not needed for NetHack 3.6.7 + +- Remove nethack-address-H4266-build-problem-with-clang-Modules.patch: Not + needed for NetHack 3.6.7 + +- Remove nethack-tty-xputc.patch: Not needed for NetHack 3.6.7 + +- Remove nethack-escapes-revamp.patch: Nethack 3.6.0 and later already + include the bug fix. + +------------------------------------------------------------------- Old: ---- nethack-343-src.tar.bz2 nethack-WINCHAIN-a-framework-allowing-multiple-processors-be.patch nethack-address-H4266-build-problem-with-clang-Modules.patch nethack-escapes-revamp.patch nethack-gzip.patch nethack-tty-xputc.patch New: ---- nethack-367-src.tgz ----------(Old B)---------- Old: - Remove nethack-WINCHAIN-a-framework-allowing-multiple-processors-be.patch: Not needed for NetHack 3.6.7 Old: - Remove nethack-address-H4266-build-problem-with-clang-Modules.patch: Not needed for NetHack 3.6.7 Old: - Remove nethack-escapes-revamp.patch: Nethack 3.6.0 and later already include the bug fix. Old: - Remove nethack-gzip.patch: Setup of gzip is now handled in network-config.patch. Old: - Remove nethack-tty-xputc.patch: Not needed for NetHack 3.6.7 ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nethack.spec ++++++ --- /var/tmp/diff_new_pack.bGIieZ/_old 2025-12-01 11:15:46.344730483 +0100 +++ /var/tmp/diff_new_pack.bGIieZ/_new 2025-12-01 11:15:46.348730651 +0100 @@ -1,7 +1,7 @@ # # spec file for package nethack # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,36 +17,26 @@ Name: nethack -Version: 3.4.3 +Version: 3.6.7 Release: 0 Summary: Turn-based role-playing game License: NGPL Group: Amusements/Games/RPG URL: https://www.nethack.org -Source0: nethack-343-src.tar.bz2 +Source0: https://nethack.org/download/3.6.7/nethack-367-src.tgz Source1: nethack-rpmlintrc -# PATCH-FIX-UPSTREAM nethack-escapes-revamp.patch boo#1239138 -Patch0: nethack-escapes-revamp.patch -# PATCH-FIX-UPSTREAM nethack-WINCHAIN-a-framework-allowing-multiple-processors-be.patch boo#1245527 -Patch1: nethack-WINCHAIN-a-framework-allowing-multiple-processors-be.patch -# PATCH-FIX-UPSTREAM nethack-address-H4266-build-problem-with-clang-Modules.patch boo#1245527 -Patch2: nethack-address-H4266-build-problem-with-clang-Modules.patch -# PATCH-FIX-UPSTREAM nethack-tty-xputc.patch boo#1245527 -Patch3: nethack-tty-xputc.patch # PATCH-FIX-UPSTREAM nethack-gcc15-1.patch boo#1245527 -Patch4: nethack-gcc15-1.patch +Patch0: nethack-gcc15-1.patch # PATCH-FIX-OPENSUSE nethack-config.patch Adapt build to openSUSE systems -Patch50: nethack-config.patch +Patch1: nethack-config.patch # PATCH-FIX-OPENSUSE nethack-decl.patch Do not redeclare system interfaces -Patch51: nethack-decl.patch +Patch2: nethack-decl.patch # PATCH-FIX-OPENSUSE nethack-escape-char.patch -Patch52: nethack-escape-char.patch +Patch3: nethack-escape-char.patch # PATCH-FIX-OPENSUSE nethack-secure.patch Handle SECURE in recover utility -Patch53: nethack-secure.patch -# PATCH-FIX-OPENSUSE nethack-gzip.patch Use gzip compression -Patch54: nethack-gzip.patch +Patch4: nethack-secure.patch # PATCH-FIX-OPENSUSE nethack-reproducible.patch boo#1047218 -Patch55: nethack-reproducible.patch +Patch5: nethack-reproducible.patch BuildRequires: bison BuildRequires: fdupes BuildRequires: flex @@ -66,28 +56,19 @@ This package contains the text interface. %prep -%autosetup -p1 +%autosetup -p1 -n NetHack-3.6.7 %build -# copy Makefiles and add optimization flags -sh sys/unix/setup.sh -sed -i "s/^CFLAGS.*/& %{optflags}/" Makefile dat/Makefile doc/Makefile src/Makefile util/Makefile +# add optimization flags and copy Makefiles +echo "CFLAGS+=%{optflags}" >> sys/unix/hints/linux + +cd sys/unix +sh setup.sh hints/linux +cd ../.. # The Makefiles do not track dependencies correctly, which can result -# in link errors on parallel builds. Prevent this by building the object -# files for makedefs first. -%make_build -C src monst.o -%make_build -C src objects.o -%make_build -C src dlb.o - -# Build the game binary, then some data files. Finally build all -# remaining default targets. Although 'all' covers the first three -# make calls as well, we have to resort to sequential building -# to make it work. -%make_build nethack -%make_build dungeon -%make_build spec_levs -%make_build all +# in link errors on parallel builds. Resort to sequential building. +make -j1 all # We also package a nicely formatted manual in PostScript format. It # is not covered by 'all', so build it here. @@ -102,7 +83,7 @@ # game directory install -d %{buildroot}%{_localstatedir}/games/nethack/ install -d %{buildroot}%{_localstatedir}/games/nethack/save/ -for file in logfile paniclog perm record ; do +for file in logfile paniclog perm record xlogfile ; do touch %{buildroot}%{_localstatedir}/games/nethack/$file done # binaries @@ -114,6 +95,7 @@ # common data install dat/nhdat %{buildroot}%{_datadir}/games/nethack/ install dat/license %{buildroot}%{_datadir}/games/nethack/ +install sys/unix/sysconf %{buildroot}%{_datadir}/games/nethack/ # main launcher script install -d %{buildroot}%{_bindir} install sys/unix/nethack.sh %{buildroot}%{_bindir}/nethack @@ -139,6 +121,7 @@ %dir %{_datadir}/games/nethack %{_datadir}/games/nethack/license %{_datadir}/games/nethack/nhdat +%{_datadir}/games/nethack/sysconf %dir %{_prefix}/lib/nethack %attr(0755,-,-) %{_prefix}/lib/nethack/dgn_comp %attr(0755,-,-) %{_prefix}/lib/nethack/dlb @@ -152,5 +135,6 @@ %config(noreplace) %attr(0660,games,games) %{_localstatedir}/games/nethack/logfile %config(noreplace) %attr(0660,games,games) %{_localstatedir}/games/nethack/paniclog %config(noreplace) %attr(0660,games,games) %{_localstatedir}/games/nethack/record +%config(noreplace) %attr(0660,games,games) %{_localstatedir}/games/nethack/xlogfile %attr(0660,games,games) %{_localstatedir}/games/nethack/perm ++++++ nethack-config.patch ++++++ --- /var/tmp/diff_new_pack.bGIieZ/_old 2025-12-01 11:15:46.400732841 +0100 +++ /var/tmp/diff_new_pack.bGIieZ/_new 2025-12-01 11:15:46.408733177 +0100 @@ -1,135 +1,25 @@ -Index: nethack-3.4.3/include/unixconf.h +Index: NetHack-3.6.7/include/unixconf.h =================================================================== ---- nethack-3.4.3.orig/include/unixconf.h -+++ nethack-3.4.3/include/unixconf.h -@@ -32,12 +32,12 @@ - - - /* define any of the following that are appropriate */ --#define SVR4 /* use in addition to SYSV for System V Release 4 */ -+/* #define SVR4 */ /* use in addition to SYSV for System V Release 4 */ - /* including Solaris 2+ */ - #define NETWORK /* if running on a networked system */ - /* e.g. Suns sharing a playground through NFS */ - /* #define SUNOS4 */ /* SunOS 4.x */ --/* #define LINUX */ /* Another Unix clone */ -+#define LINUX /* Another Unix clone */ - /* #define CYGWIN32 */ /* Unix on Win32 -- use with case sensitive defines */ - /* #define GENIX */ /* Yet Another Unix Clone */ - /* #define HISX */ /* Bull Unix for XPS Machines */ -@@ -102,7 +102,7 @@ - * If you want the static parts of your playground on a read-only file - * system, define VAR_PLAYGROUND to be where the variable parts are kept. - */ --/* #define VAR_PLAYGROUND "/var/lib/games/nethack" */ -+#define VAR_PLAYGROUND "/var/games/nethack" - - - /* -@@ -132,7 +132,7 @@ - * "extra output" method is used, but not all systems provide access to - * a fine-grained timer. - */ --/* #define TIMED_DELAY */ /* usleep() */ -+#define TIMED_DELAY /* usleep() */ +--- NetHack-3.6.7.orig/include/unixconf.h ++++ NetHack-3.6.7/include/unixconf.h +@@ -194,7 +194,8 @@ #endif - - /* -@@ -166,7 +166,7 @@ - - /* #define NO_MAILREADER */ /* have mail daemon just tell player of mail */ - --#ifdef MAIL -+#ifdef MAIL - # if defined(BSD) || defined(ULTRIX) - # ifdef AMS - #define AMS_MAILBOX "/Mailbox" -@@ -189,7 +189,8 @@ - # endif - # endif - # else --#define DEF_MAILREADER "/bin/mail" -+/* SuSE mail reader is /usr/bin/mail, not /bin/mail */ -+#define DEF_MAILREADER "/usr/bin/mail" - # endif #endif - -Index: nethack-3.4.3/sys/unix/Makefile.top -=================================================================== ---- nethack-3.4.3.orig/sys/unix/Makefile.top -+++ nethack-3.4.3/sys/unix/Makefile.top -@@ -35,8 +35,8 @@ DIRPERM = 0755 - # therefore there should not be anything in GAMEDIR that you want to keep - # (if there is, you'll have to do the installation by hand or modify the - # instructions) --GAMEDIR = $(PREFIX)/games/lib/$(GAME)dir --VARDIR = $(GAMEDIR) -+GAMEDIR = /usr/lib/nethack -+VARDIR = /var/games/nethack - SHELLDIR = $(PREFIX)/games - - # per discussion in Install.X11 and Install.Qt -Index: nethack-3.4.3/include/config.h -=================================================================== ---- nethack-3.4.3.orig/include/config.h -+++ nethack-3.4.3/include/config.h -@@ -143,10 +143,10 @@ - - #ifndef WIZARD /* allow for compile-time or Makefile changes */ - # ifndef KR1ED --# define WIZARD "wizard" /* the person allowed to use the -D option */ -+# define WIZARD "root" /* the person allowed to use the -D option */ - # else - # define WIZARD --# define WIZARD_NAME "wizard" -+# define WIZARD_NAME "root" - # endif + #else +-#define DEF_MAILREADER "/bin/mail" ++/* SUSE mail reader is /usr/bin/mail, not /bin/mail */ ++#define DEF_MAILREADER "/usr/bin/mail" + #endif #endif -@@ -185,7 +185,7 @@ - * a tar-like file, thus making a neater installation. See *conf.h - * for detailed configuration. - */ --/* #define DLB */ /* not supported on all platforms */ -+#define DLB /* not supported on all platforms */ - - /* - * Defining INSURANCE slows down level changes, but allows games that -@@ -204,7 +204,7 @@ - * otherwise it will be the current directory. - */ - # ifndef HACKDIR --# define HACKDIR "/usr/games/lib/nethackdir" -+# define HACKDIR "/usr/share/games/nethack" - # endif - - /* -@@ -214,7 +214,7 @@ - * since the user might create files in a directory of his choice. - * Of course SECURE is meaningful only if HACKDIR is defined. - */ --/* #define SECURE */ /* do setuid(getuid()) after chdir() */ -+#define SECURE /* do setuid(getuid()) after chdir() */ - - /* - * If it is desirable to limit the number of people that can play Hack -@@ -349,7 +349,7 @@ typedef unsigned char uchar; - */ - - /*#define GOLDOBJ */ /* Gold is kept on obj chains - Helge Hafting */ --/*#define AUTOPICKUP_EXCEPTIONS */ /* exceptions to autopickup */ -+#define AUTOPICKUP_EXCEPTIONS /* exceptions to autopickup */ - - /* End of Section 5 */ - -Index: nethack-3.4.3/sys/unix/Makefile.doc -=================================================================== ---- nethack-3.4.3.orig/sys/unix/Makefile.doc -+++ nethack-3.4.3/sys/unix/Makefile.doc -@@ -4,8 +4,8 @@ - # for Atari - # SHELL=E:/GEMINI2/MUPFEL.TTP +Index: NetHack-3.6.7/sys/unix/Makefile.doc +=================================================================== +--- NetHack-3.6.7.orig/sys/unix/Makefile.doc ++++ NetHack-3.6.7/sys/unix/Makefile.doc +@@ -12,8 +12,8 @@ NHSROOT=.. + MAKEDEFS = ../util/makedefs + # Which version do we want to build? (XXX These are not used anywhere.) -GUIDEBOOK = Guidebook # regular ASCII file -#GUIDEBOOK = Guidebook.ps # PostScript file +#GUIDEBOOK = Guidebook # regular ASCII file @@ -137,62 +27,27 @@ #GUIDEBOOK = Guidebook.dvi # TeX device-independent file # Some versions of col need -x to keep them from converting spaces to tabs; -Index: nethack-3.4.3/sys/unix/Makefile.src +Index: NetHack-3.6.7/sys/unix/nethack.sh =================================================================== ---- nethack-3.4.3.orig/sys/unix/Makefile.src -+++ nethack-3.4.3/sys/unix/Makefile.src -@@ -126,6 +126,8 @@ SYSOBJ = ioctl.o unixmain.o unixtty.o un - # compile normally - # CFLAGS = -O2 -fomit-frame-pointer -I../include -Wno-old-style-definition -Wno-unused-result -Wno-format-overflow - # LFLAGS = -L/usr/X11R6/lib -+CFLAGS = -O2 -fomit-frame-pointer -I../include -Wno-old-style-definition -Wno-unused-result -Wno-format-overflow -+LFLAGS = -L/usr/X11R6/lib - # OR compile backwards compatible a.out format - # CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include - # LFLAGS = -b i486-linuxaout -L/usr/X11R6/lib -@@ -151,8 +153,8 @@ GNOMEINC=-I/usr/lib/glib/include -I/usr/ - # flags for debugging: - # CFLAGS = -g -I../include - --CFLAGS = -O -I../include --LFLAGS = -+# CFLAGS = -O -I../include -+# LFLAGS = - - # The Qt and Be window systems are written in C++, while the rest of - # NetHack is standard C. If using Qt, uncomment the LINK line here to get -@@ -230,8 +232,8 @@ WINOBJ = $(WINTTYOBJ) - # WINTTYLIB = -ltermcap - # WINTTYLIB = -lcurses - # WINTTYLIB = -lcurses16 --# WINTTYLIB = -lncurses --WINTTYLIB = -ltermlib -+WINTTYLIB = -lncurses -+# WINTTYLIB = -ltermlib - # - # libraries for X11 - # If USE_XPM is defined in config.h, you will also need -lXpm here. -Index: nethack-3.4.3/sys/unix/nethack.sh -=================================================================== ---- nethack-3.4.3.orig/sys/unix/nethack.sh -+++ nethack-3.4.3/sys/unix/nethack.sh -@@ -1,9 +1,9 @@ - #!/bin/sh - # SCCS Id: @(#)nethack.sh 3.4 1990/02/26 +--- NetHack-3.6.7.orig/sys/unix/nethack.sh ++++ NetHack-3.6.7/sys/unix/nethack.sh +@@ -3,9 +3,9 @@ + # Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland + # NetHack may be freely redistributed. See license for details. -HACKDIR=/usr/games/lib/nethackdir +HACKDIR=/usr/share/games/nethack export HACKDIR -HACK=$HACKDIR/nethack +HACK=/usr/lib/nethack/nethack - MAXNROFPLAYERS=4 # Since Nethack.ad is installed in HACKDIR, add it to XUSERFILESEARCHPATH -Index: nethack-3.4.3/doc/nethack.6 + case "x$XUSERFILESEARCHPATH" in +Index: NetHack-3.6.7/doc/nethack.6 =================================================================== ---- nethack-3.4.3.orig/doc/nethack.6 -+++ nethack-3.4.3/doc/nethack.6 -@@ -197,7 +197,7 @@ option, which must be the first argument +--- NetHack-3.6.7.orig/doc/nethack.6 ++++ NetHack-3.6.7/doc/nethack.6 +@@ -219,7 +219,7 @@ option, which must be the first argument supplies a directory which is to serve as the playground. It overrides the value from NETHACKDIR, HACKDIR, or the directory specified by the game administrator during compilation @@ -201,13 +56,84 @@ This option is usually only useful to the game administrator. The playground must contain several auxiliary files such as help files, the list of top scorers, and a subdirectory -@@ -283,7 +283,7 @@ MAIL Mailbox file. +@@ -375,7 +375,7 @@ MAIL Mailbox file. .br MAILREADER Replacement for default reader .br - (probably /bin/mail or /usr/ucb/mail). + (probably /usr/bin/mail). .br - NETHACKDIR Playground. + NETHACKDIR or HACKDIR Playground. .br +Index: NetHack-3.6.7/sys/unix/sysconf +=================================================================== +--- NetHack-3.6.7.orig/sys/unix/sysconf ++++ NetHack-3.6.7/sys/unix/sysconf +@@ -13,7 +13,7 @@ + # Which users can use debug mode (aka wizard mode; accessed via '-D' command + # line flag or OPTIONS=playmode:debug in the runtime options config file). + # A value of * allows anyone to enter debugging mode. +-WIZARDS=root games ++WIZARDS=root + + # Which users can use explore mode (aka discover mode; accessed via '-X' + # command line flag or OPTIONS=playmode:explore in runtime options file or +@@ -48,7 +48,7 @@ GENERICUSERS=play player game games neth + # but number of different players is not limited. + # Setting this to any other value constructs the lock files with + # letter and "lock" (eg. alock, block, ...) +-MAXPLAYERS=10 ++#MAXPLAYERS=10 + + # If not null, added to string "To get local support, " in the support + # information help. +Index: NetHack-3.6.7/sys/unix/hints/linux +=================================================================== +--- NetHack-3.6.7.orig/sys/unix/hints/linux ++++ NetHack-3.6.7/sys/unix/hints/linux +@@ -6,15 +6,14 @@ + #-PRE + # Linux hints file + # This hints file provides a single-user tty build for Linux, specifically +-# for Ubuntu dapper. ++# for openSUSE Tumbleweed. + + +-#PREFIX=/usr +-PREFIX=$(wildcard ~)/nh/install +-HACKDIR=$(PREFIX)/games/lib/$(GAME)dir +-SHELLDIR = $(PREFIX)/games ++PREFIX= ++HACKDIR=$(PREFIX)/usr/share/games/$(GAME) ++SHELLDIR=$(PREFIX)/usr/games + INSTDIR=$(HACKDIR) +-VARDIR = $(HACKDIR) ++VARDIR=$(PREFIX)/var/games/$(GAME) + + + +@@ -22,10 +21,11 @@ POSTINSTALL=cp -n sys/unix/sysconf $(INS + + CFLAGS=-g -O -I../include -DNOTPARMDECL + CFLAGS+=-DDLB +-CFLAGS+=-DCOMPRESS=\"/bin/gzip\" -DCOMPRESS_EXTENSION=\".gz\" ++CFLAGS+=-DCOMPRESS=\"/usr/bin/gzip\" -DCOMPRESS_EXTENSION=\".gz\" + CFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE + CFLAGS+=-DTIMED_DELAY + CFLAGS+=-DHACKDIR=\"$(HACKDIR)\" ++CFLAGS+=-DVAR_PLAYGROUND=\"$(VARDIR)\" + CFLAGS+=-DDUMPLOG + CFLAGS+=-DCONFIG_ERROR_SECURE=FALSE + CFLAGS+=-DCURSES_GRAPHICS +@@ -64,8 +64,8 @@ WINLIB = $(WINTTYLIB) $(WINCURSESLIB) + + WINTTYLIB=-lncurses -ltinfo + +-CHOWN=true +-CHGRP=true ++CHOWN=chown games ++CHGRP=chgrp games + + VARDIRPERM = 0755 + VARFILEPERM = 0600 ++++++ nethack-decl.patch ++++++ --- /var/tmp/diff_new_pack.bGIieZ/_old 2025-12-01 11:15:46.444734694 +0100 +++ /var/tmp/diff_new_pack.bGIieZ/_new 2025-12-01 11:15:46.452735030 +0100 @@ -1,28 +1,28 @@ -Index: nethack-3.4.3/include/system.h +Index: NetHack-3.6.7/include/system.h =================================================================== ---- nethack-3.4.3.orig/include/system.h -+++ nethack-3.4.3/include/system.h -@@ -100,7 +100,9 @@ E void srand48(); +--- NetHack-3.6.7.orig/include/system.h ++++ NetHack-3.6.7/include/system.h +@@ -109,7 +109,9 @@ E void srand48(); #if !defined(BSD) || defined(ultrix) - /* real BSD wants all these to return int */ - # ifndef MICRO + /* real BSD wants all these to return int */ + #ifndef MICRO +# ifndef __GLIBC__ E void FDECL(exit, (int)); +# endif - # endif /* MICRO */ + #endif /* MICRO */ /* compensate for some CSet/2 bogosities */ - # if defined(OS2_CSET2) && defined(OS2_CSET2_VER_2) -@@ -119,7 +121,9 @@ E void FDECL(exit, (int)); - # if defined(__STDC__) || !defined(FLEX_SCANNER) - # ifndef OS2_CSET2 - # ifndef MONITOR_HEAP + #if defined(OS2_CSET2) && defined(OS2_CSET2_VER_2) +@@ -128,7 +130,9 @@ E void FDECL(exit, (int)); + #if defined(__STDC__) || !defined(FLEX_SCANNER) + #ifndef OS2_CSET2 + #ifndef MONITOR_HEAP +# ifndef __GLIBC__ E void FDECL(free, (genericptr_t)); +# endif - # endif - # endif - # endif -@@ -353,27 +357,35 @@ E char *FDECL(memset, (char*,int,int)); + #endif + #endif + #endif +@@ -362,27 +366,35 @@ E char *FDECL(memset, (char *, int, int) E void sleep(); #endif #if defined(ULTRIX) || defined(SYSV) @@ -49,25 +49,13 @@ E long NDECL(getgid); E long NDECL(getpid); #else - # ifdef POSIX_TYPES + #ifdef POSIX_TYPES +# ifndef __GLIBC__ E pid_t NDECL(getpid); E uid_t NDECL(getuid); E gid_t NDECL(getgid); +# endif - # ifdef VMS + #ifdef VMS E pid_t NDECL(getppid); - # endif -@@ -484,9 +496,11 @@ E char *sprintf(); - # if !defined(SVR4) && !defined(apollo) - # if !(defined(ULTRIX_PROTO) && defined(__GNUC__)) - # if !(defined(SUNOS4) && defined(__STDC__)) /* Solaris unbundled cc (acc) */ -+/* - E int FDECL(vsprintf, (char *, const char *, va_list)); - E int FDECL(vfprintf, (FILE *, const char *, va_list)); - E int FDECL(vprintf, (const char *, va_list)); -+*/ - # endif - # endif - # endif + #endif ++++++ nethack-escape-char.patch ++++++ --- /var/tmp/diff_new_pack.bGIieZ/_old 2025-12-01 11:15:46.488736546 +0100 +++ /var/tmp/diff_new_pack.bGIieZ/_new 2025-12-01 11:15:46.496736883 +0100 @@ -1,22 +1,22 @@ -Index: nethack-3.4.3/src/cmd.c +Index: NetHack-3.6.7/src/cmd.c =================================================================== ---- nethack-3.4.3.orig/src/cmd.c -+++ nethack-3.4.3/src/cmd.c -@@ -2443,6 +2443,16 @@ readchar() - readchar_queue = click_to_cmd(x, y, mod); - sym = *readchar_queue++; - } +--- NetHack-3.6.7.orig/src/cmd.c ++++ NetHack-3.6.7/src/cmd.c +@@ -5945,6 +5945,16 @@ readchar() + readchar_queue = click_to_cmd(x, y, mod); + sym = *readchar_queue++; + } + + if(sym == 27) { /* ESC (generated by Alt-key) */ +#ifdef REDO -+ sym = in_doagain ? Getchar() : nh_poskey(&x, &y, &mod); ++ sym = in_doagain ? pgetchar() : nh_poskey(&x, &y, &mod); +#else -+ sym = Getchar(); ++ sym = pgetchar(); +#endif + sym |= 0x80; + } + - return((char) sym); + return (char) sym; } ++++++ nethack-gcc15-1.patch ++++++ --- /var/tmp/diff_new_pack.bGIieZ/_old 2025-12-01 11:15:46.532738399 +0100 +++ /var/tmp/diff_new_pack.bGIieZ/_new 2025-12-01 11:15:46.536738568 +0100 @@ -1,40 +1,41 @@ -Index: nethack-3.4.3/include/system.h +Index: NetHack-3.6.7/include/system.h =================================================================== ---- nethack-3.4.3.orig/include/system.h -+++ nethack-3.4.3/include/system.h -@@ -57,7 +57,11 @@ typedef long off_t; +--- NetHack-3.6.7.orig/include/system.h ++++ NetHack-3.6.7/include/system.h +@@ -60,9 +60,13 @@ typedef long off_t; #endif #ifndef SIG_RET_TYPE - # if defined(NHSTDC) || defined(POSIX_TYPES) || defined(OS2) || defined(__DECC) --# define SIG_RET_TYPE void (*)() -+# if defined(__GLIBC__) && defined(__GNUC__) -+# define SIG_RET_TYPE __sighandler_t -+# else -+# define SIG_RET_TYPE void (*)() -+# endif - # endif + #if defined(NHSTDC) || defined(POSIX_TYPES) || defined(OS2) || defined(__DECC) ++#if defined(LINUX) && defined(__GNUC__) ++#define SIG_RET_TYPE __sighandler_t ++#else + #define SIG_RET_TYPE void (*)() + #endif #endif ++#endif #ifndef SIG_RET_TYPE -@@ -87,8 +91,10 @@ E int FDECL(srandom, (unsigned int)); - # endif - # endif + #if defined(ULTRIX) || defined(SUNOS4) || defined(SVR3) || defined(SVR4) + /* SVR3 is defined automatically by some systems */ +@@ -95,8 +99,10 @@ E int FDECL(srandom, (unsigned int)); + E long NDECL(lrand48); + E void FDECL(srand48, (long)); #else -+#ifndef __GLIBC__ ++#ifndef LINUX E long lrand48(); E void srand48(); +#endif + #endif /* MACOSX */ #endif /* BSD || ULTRIX || RANDOM */ - #if !defined(BSD) || defined(ultrix) -@@ -342,6 +348,7 @@ E char *FDECL(memset, (char*,int,int)); - # endif /* TOS */ +@@ -351,6 +357,7 @@ E char *FDECL(memset, (char *, int, int) + #endif /* TOS */ #endif /* MICRO */ -+#ifndef __GLIBC__ - #if defined(BSD) && defined(ultrix) /* i.e., old versions of Ultrix */ ++#ifndef LINUX + #if defined(BSD) && defined(ultrix) /* i.e., old versions of Ultrix */ E void sleep(); #endif -@@ -351,6 +358,7 @@ E unsigned sleep(); +@@ -360,6 +367,7 @@ E unsigned sleep(); #if defined(HPUX) E unsigned int FDECL(sleep, (unsigned int)); #endif @@ -42,29 +43,42 @@ #ifdef VMS E int FDECL(sleep, (unsigned)); #endif -@@ -501,7 +509,11 @@ E char *FDECL(tgoto, (const char *,int,i +@@ -519,7 +527,11 @@ E char *FDECL(tgoto, (const char *, int, #else - # if ! (defined(HPUX) && defined(_POSIX_SOURCE)) - E int FDECL(tgetent, (char *,const char *)); -+#if !(defined(__GLIBC__) && defined(__GNUC__)) - E void FDECL(tputs, (const char *,int,int (*)())); + #if !(defined(HPUX) && defined(_POSIX_SOURCE)) + E int FDECL(tgetent, (char *, const char *)); ++#if !(defined(LINUX) && defined(__GNUC__)) + E void FDECL(tputs, (const char *, int, int (*)())); +#else +E int tputs(const char *, int, int (*)(int)); +#endif - # endif + #endif E int FDECL(tgetnum, (const char *)); E int FDECL(tgetflag, (const char *)); -Index: nethack-3.4.3/sys/unix/Makefile.src +Index: NetHack-3.6.7/sys/unix/hints/linux =================================================================== ---- nethack-3.4.3.orig/sys/unix/Makefile.src -+++ nethack-3.4.3/sys/unix/Makefile.src -@@ -124,7 +124,7 @@ SYSOBJ = ioctl.o unixmain.o unixtty.o un +--- NetHack-3.6.7.orig/sys/unix/hints/linux ++++ NetHack-3.6.7/sys/unix/hints/linux +@@ -34,6 +34,21 @@ CFLAGS+=-DCURSES_GRAPHICS + #CFLAGS+=-DSCORE_ON_BOTL + #CFLAGS+=-DMSGHANDLER + #CFLAGS+=-DTTY_TILES_ESCCODES ++#detection of clang vs gcc ++CCISCLANG := $(shell echo `$(CC) --version` | grep clang) ++ifneq "$(CCISCLANG)" "" ++# clang-specific follows ++CLANGGTEQ18 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 18) ++ifeq "$(CLANGGTEQ18)" "1" ++# clang-specific starts here ++CFLAGS+=-Wno-deprecated-non-prototype ++endif ++# clang-specific ends here ++else ++# gcc-specific starts here ++CFLAGS+=-Wno-old-style-definition -Wno-unused-result -Wno-format-overflow ++# gcc-specific ends here ++endif # clang-specific or gcc-specific ends here - # flags for Linux - # compile normally --# CFLAGS = -O2 -fomit-frame-pointer -I../include -+# CFLAGS = -O2 -fomit-frame-pointer -I../include -Wno-old-style-definition -Wno-unused-result -Wno-format-overflow - # LFLAGS = -L/usr/X11R6/lib - # OR compile backwards compatible a.out format - # CFLAGS = -O2 -b i486-linuxaout -fomit-frame-pointer -I../include + LINK=$(CC) + # Only needed for GLIBC stack trace: ++++++ nethack-reproducible.patch ++++++ --- /var/tmp/diff_new_pack.bGIieZ/_old 2025-12-01 11:15:46.560739578 +0100 +++ /var/tmp/diff_new_pack.bGIieZ/_new 2025-12-01 11:15:46.568739915 +0100 @@ -20,17 +20,17 @@ 178a60 1b293000 1b285500 1b284200 243c3530 .)0..(U..(B.$<50 -Index: nethack-3.4.3/util/makedefs.c +Index: NetHack-3.6.7/util/makedefs.c =================================================================== ---- nethack-3.4.3.orig/util/makedefs.c -+++ nethack-3.4.3/util/makedefs.c -@@ -563,7 +563,7 @@ do_date() - (void) time(&clocktim); - Strcpy(cbuf, ctime(&clocktim)); - #else -- (void) time((time_t *)&clocktim); -+ //(void) time((time_t *)&clocktim); - Strcpy(cbuf, ctime((time_t *)&clocktim)); - #endif - for (c = cbuf; *c; c++) if (*c == '\n') break; +--- NetHack-3.6.7.orig/util/makedefs.c ++++ NetHack-3.6.7/util/makedefs.c +@@ -1313,7 +1313,7 @@ do_date() + * this file into something more modern. */ + Fprintf(ofp, "%s", Dont_Edit_Code); + +- (void) time(&clocktim); ++ //(void) time(&clocktim); + #ifdef REPRODUCIBLE_BUILD + { + /* ++++++ nethack-secure.patch ++++++ --- /var/tmp/diff_new_pack.bGIieZ/_old 2025-12-01 11:15:46.616741936 +0100 +++ /var/tmp/diff_new_pack.bGIieZ/_new 2025-12-01 11:15:46.620742105 +0100 @@ -1,9 +1,9 @@ -Index: nethack-3.4.3/util/recover.c +Index: NetHack-3.6.7/util/recover.c =================================================================== ---- nethack-3.4.3.orig/util/recover.c -+++ nethack-3.4.3/util/recover.c -@@ -16,6 +16,12 @@ - #include "win32api.h" +--- NetHack-3.6.7.orig/util/recover.c ++++ NetHack-3.6.7/util/recover.c +@@ -17,6 +17,12 @@ + #include <fcntl.h> #endif +#ifdef SECURE @@ -13,35 +13,35 @@ +#endif + #ifdef VMS - extern int FDECL(vms_creat, (const char *,unsigned)); - extern int FDECL(vms_open, (const char *,int,unsigned)); -@@ -107,15 +113,23 @@ char *argv[]; - } + extern int FDECL(vms_creat, (const char *, unsigned)); + extern int FDECL(vms_open, (const char *, int, unsigned)); +@@ -112,15 +118,23 @@ char *argv[]; + } #if defined(SECURE) && !defined(VMS) - if (dir --# ifdef HACKDIR + if (dir +-#ifdef HACKDIR +# ifdef VAR_PLAYGROUND + && strcmp(dir, VAR_PLAYGROUND) +# else +# ifdef HACKDIR - && strcmp(dir, HACKDIR) --# endif + && strcmp(dir, HACKDIR) +-#endif +# endif +# endif /* VAR_PLAYGROUND */ - ) { - (void) setgid(getgid()); - (void) setuid(getuid()); - } - #endif /* SECURE && !VMS */ + ) { + (void) setgid(getgid()); + (void) setuid(getuid()); + } + #endif /* SECURE && !VMS */ +#ifdef VAR_PLAYGROUND + if (!dir) dir = VAR_PLAYGROUND; +#endif + #ifdef HACKDIR - if (!dir) dir = HACKDIR; - #endif -@@ -158,11 +172,19 @@ int lev; + if (!dir) + dir = HACKDIR; +@@ -166,11 +180,19 @@ int lev; #endif } @@ -53,17 +53,17 @@ open_levelfile(lev) int lev; { - int fd; + int fd; +#ifdef SECURE + struct stat level_stat; + uid_t uid; +#endif - set_levelfile_name(lev); + set_levelfile_name(lev); #if defined(MICRO) || defined(WIN32) || defined(MSDOS) -@@ -170,6 +192,21 @@ int lev; +@@ -178,6 +200,21 @@ int lev; #else - fd = open(lock, O_RDONLY, 0); + fd = open(lock, O_RDONLY, 0); #endif + /* Security check: does the user calling recover own the file? */ +#ifdef SECURE @@ -80,12 +80,12 @@ + save_uid = level_stat.st_uid; + } +#endif - return fd; + return fd; } -@@ -183,6 +220,13 @@ create_savefile() +@@ -191,6 +228,13 @@ create_savefile() #else - fd = creat(savename, FCMASK); + fd = creat(savename, FCMASK); #endif + +#ifdef SECURE @@ -94,7 +94,7 @@ + save_uid); + } +#endif - return fd; + return fd; }
