Mike Banon has uploaded this change for review. ( https://review.coreboot.org/23852
Change subject: tint: upgrade the outdated tint payload from 0.03b to 0.04+nmu1 ......................................................................
tint: upgrade the outdated tint payload from 0.03b to 0.04+nmu1
Fixes two buffer overflows and opens a road to further improvements. All the previous adjustments to libpayload_tint.patch (including the latest "use the current time as random seed") have been preserved
Change-Id: I22e65d18a0b1551f7049c4afe7f95868f584cf9b Signed-off-by: Mike Banon mikebdp2@gmail.com --- M payloads/external/tint/Makefile M payloads/external/tint/libpayload_tint.patch 2 files changed, 116 insertions(+), 634 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/52/23852/1
diff --git a/payloads/external/tint/Makefile b/payloads/external/tint/Makefile index 0fba6e7..5ab8974 100644 --- a/payloads/external/tint/Makefile +++ b/payloads/external/tint/Makefile @@ -1,5 +1,5 @@ -project_url=http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/po... -archive_name=tint_0.03b.tar.gz +project_url=http://http.debian.net/debian/pool/main/t/tint/tint_0.04+nmu1.tar.gz +archive_name=tint_0.04+nmu1.tar.gz
unexport KCONFIG_AUTOHEADER unexport KCONFIG_AUTOCONFIG @@ -16,13 +16,17 @@
patch: download cd tint; \ - if [ -e debian ]; then patch -l -p1 < ../libpayload_tint.patch; fi + if [ -e debian ]; then \ + rm -rf debian typedefs.h Makefile; \ + touch Makefile; \ + patch -l -p1 < ../libpayload_tint.patch; \ + fi
download: test -d tint || { wget $(project_url); \ tar -xvf $(archive_name); \ rm $(archive_name); \ - mv tint-0.03b tint; } + mv tint-0.04+nmu1 tint; }
clean: test -d tint && $(MAKE) -C tint clean || exit 0 diff --git a/payloads/external/tint/libpayload_tint.patch b/payloads/external/tint/libpayload_tint.patch index 7c8a058..b743b2f 100644 --- a/payloads/external/tint/libpayload_tint.patch +++ b/payloads/external/tint/libpayload_tint.patch @@ -1,6 +1,6 @@ -diff -rupN tint-0.03b/config.h tint/config.h ---- tint-0.03b/config.h 2001-12-08 00:03:24.000000000 +0100 -+++ tint/config.h 2016-05-27 14:47:15.797402090 +0200 +diff -rupN tint-0.04+nmu1/config.h tint/config.h +--- tint-0.04+nmu1/config.h 2001-12-08 00:03:24.000000000 +0100 ++++ tint/config.h 2018-02-23 12:00:00.000000000 +0200 @@ -29,7 +29,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -17,439 +17,9 @@ +#endif
#endif /* #ifndef CONFIG_H */ -diff -rupN tint-0.03b/debian/changelog tint/debian/changelog ---- tint-0.03b/debian/changelog 2005-07-17 13:32:20.000000000 +0200 -+++ tint/debian/changelog 1970-01-01 01:00:00.000000000 +0100 -@@ -1,53 +0,0 @@ --tint (0.03b) unstable; urgency=low -- -- * Added breaks at end of switch statements to keep gcc 3+ happy -- (Closes: #316022) -- * Added missing includes to engine.c -- * Fixed spelling mistake in NOTES -- * Updated debian policy version -- -- -- Abraham van der Merwe abz@debian.org Sun, 17 Jul 2005 13:32:17 +0200 -- --tint (0.03a) unstable; urgency=low -- -- * Applied patch with some minor tweaks from Marcello Mamino which -- adds a dotted background. -- * Applied patches from Robert Lemmen which add support for user logins as -- default name and an interactive mode for specifying the start level. -- * Show player statistics. -- -- -- Abraham van der Merwe abz@debian.org Mon, 16 Jun 2003 23:07:37 +0200 -- --tint (0.02d) unstable; urgency=low -- -- * Install man page in correct directory (Closes: #128923) -- * Created a postinst program that checks for old score files -- before installing the default score file (Closes: #136466) -- * Added a menu control file (Closes: #128924) -- -- -- Abraham van der Merwe abz@debian.org Wed, 19 Dec 2001 18:03:34 +0200 -- --tint (0.02c) unstable; urgency=low -- -- * Removed common-sense suggests from control file *g* (Closes: #123204) -- -- -- Abraham van der Merwe abz@debian.org Wed, 19 Dec 2001 18:03:34 +0200 -- --tint (0.02b) unstable; urgency=low -- -- * Changed the name from tclassic to tint (as in TINT Is Not Tetris(tm)) -- * Added a build dependancy on libncurses5-dev (Closes: #124241) -- * Changed the location for the score file to /var/games (Closes: #124236) -- * Made score file sgid games (Closes: #123595) -- -- -- Abraham van der Merwe abz@debian.org Wed, 19 Dec 2001 18:03:34 +0200 -- --tclassic (0.02a) unstable; urgency=low -- -- * Initial Release. (Closes: #122839) -- -- -- Abraham van der Merwe abz@debian.org Fri, 7 Dec 2001 17:59:25 +0200 -- --Local variables: --mode: debian-changelog --End: -diff -rupN tint-0.03b/debian/control tint/debian/control ---- tint-0.03b/debian/control 2005-07-17 13:31:13.000000000 +0200 -+++ tint/debian/control 1970-01-01 01:00:00.000000000 +0100 -@@ -1,19 +0,0 @@ --Source: tint --Section: games --Priority: optional --Maintainer: Abraham van der Merwe abz@debian.org --Build-Depends: debhelper (>> 3.0.0), libncurses5-dev --Standards-Version: 3.6.1 -- --Package: tint --Architecture: any --Depends: ${shlibs:Depends} --Replaces: tclassic --Conflicts: tclassic --Description: TINT Is Not Tetris(tm) ...at least the name isn't -- As the title suggests, this is a clone of the original tetris game -- written by Alexey Pajitnov, Dmitry Pavlovsky, and Vadim Gerasimov. -- . -- I've tried to keep the game as close to the original as possible, but -- there is a few differences. Nevertheless, it's probably the closest to -- the original that you'll ever find in the UNIX world... -diff -rupN tint-0.03b/debian/copyright tint/debian/copyright ---- tint-0.03b/debian/copyright 2001-12-19 17:08:42.000000000 +0100 -+++ tint/debian/copyright 1970-01-01 01:00:00.000000000 +0100 -@@ -1,39 +0,0 @@ --This is the Debian GNU/Linux prepackaged version of tint. These --files were written and packaged by Abraham van der Merwe abz@debian.org -- --The games is released under a derivative of the BSD license. For more --information see http://www.opensource.org/licenses/bsd-license.html -- --The original source can be found at: http://oasis.frogfoot.net -- --Copyright: -- -- Copyright (c) Abraham vd Merwe abz@blio.net -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: -- -- 1. Redistributions of source code must retain the above copyright -- notice, this list of conditions and the following disclaimer. -- -- 2. Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- 3. Neither the name of the author nor the names of other contributors -- may be used to endorse or promote products derived from this software -- without specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- -diff -rupN tint-0.03b/debian/.depends tint/debian/.depends ---- tint-0.03b/debian/.depends 2002-03-16 17:26:42.000000000 +0100 -+++ tint/debian/.depends 1970-01-01 01:00:00.000000000 +0100 -@@ -1 +0,0 @@ --tint.postinst.o: tint.postinst.c -diff -rupN tint-0.03b/debian/dirs tint/debian/dirs ---- tint-0.03b/debian/dirs 2002-03-16 17:58:42.000000000 +0100 -+++ tint/debian/dirs 1970-01-01 01:00:00.000000000 +0100 -@@ -1,2 +0,0 @@ --usr/games --usr/share/man/man6 -diff -rupN tint-0.03b/debian/docs tint/debian/docs ---- tint-0.03b/debian/docs 2001-12-07 17:25:17.000000000 +0100 -+++ tint/debian/docs 1970-01-01 01:00:00.000000000 +0100 -@@ -1,2 +0,0 @@ --NOTES --CREDITS -diff -rupN tint-0.03b/debian/Makefile tint/debian/Makefile ---- tint-0.03b/debian/Makefile 2002-03-16 18:41:18.000000000 +0100 -+++ tint/debian/Makefile 1970-01-01 01:00:00.000000000 +0100 -@@ -1,28 +0,0 @@ -- --# -*- sh -*- -- --# Written by Abraham van der Merwe abz@blio.net --# Last updated: 2002-03-26 -- --CC = gcc --CFLAGS = -Wall -Os -pipe --LDFLAGS = -s -- --STRIP = strip --STRIPFLAGS = --strip-all --remove-section=.note --remove-section=.comment -- --OBJ = --SRC = $(OBJ:%.o=%.c) --PRG = -- --all: #$(PRG) -- --$(PRG): $(OBJ) -- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) -- --clean: -- rm -rf tint -- rm -f *~ $(OBJ) $(PRG) *.substvars *.debhelper -- --.PHONY: all clean -- -diff -rupN tint-0.03b/debian/menu tint/debian/menu ---- tint-0.03b/debian/menu 2002-03-16 18:31:13.000000000 +0100 -+++ tint/debian/menu 1970-01-01 01:00:00.000000000 +0100 -@@ -1,4 +0,0 @@ --?package(tint):needs="text" section="Games/Tetris-like" \ -- title="TINT Is Not Tetris(tm)" \ -- command="sh -c '/usr/games/tint -l 5;echo;echo PRESS ENTER;read line'" \ -- hints="Text" -diff -rupN tint-0.03b/debian/postinst tint/debian/postinst ---- tint-0.03b/debian/postinst 2002-03-16 18:44:34.000000000 +0100 -+++ tint/debian/postinst 1970-01-01 01:00:00.000000000 +0100 -@@ -1,13 +0,0 @@ --#!/bin/sh -e -- --scorefile="/var/games/tint.scores" -- --if [ ! -e $scorefile ] --then -- touch $scorefile -- chmod 0664 $scorefile -- chown root:games $scorefile --fi -- --#DEBHELPER# -- -diff -rupN tint-0.03b/debian/postinst.c tint/debian/postinst.c ---- tint-0.03b/debian/postinst.c 2002-03-16 18:15:32.000000000 +0100 -+++ tint/debian/postinst.c 1970-01-01 01:00:00.000000000 +0100 -@@ -1,143 +0,0 @@ -- --/* -- * Hacked up postinst program to install the default score file. We have to do it this -- * way, since the old score file is overwritten if the score file already exists in the -- * package - abz -- */ -- --#include <sys/types.h> --#include <sys/stat.h> --#include <unistd.h> --#include <fcntl.h> --#include <pwd.h> --#include <grp.h> --#include <inttypes.h> --#include <stdlib.h> --#include <stdio.h> --#include <string.h> -- --/* location of score file */ --static const char filename[] = "/var/games/tint.scores"; -- --/* user name of default score file */ --static const char user[] = "root"; -- --/* group name of default score file */ --static const char group[] = "games"; -- --/* contents of default score file */ --static const uint8_t contents[] = --{ -- 0x54, 0x69, 0x6e, 0x74, 0x20, 0x30, 0x2e, 0x30, -- 0x32, 0x62, 0x20, 0x28, 0x63, 0x29, 0x20, 0x41, -- 0x62, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x20, 0x76, -- 0x64, 0x20, 0x4d, 0x65, 0x72, 0x77, 0x65, 0x20, -- 0x2d, 0x20, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, -- 0x52, 0x69, 0x61, 0x61, 0x6e, 0x20, 0x45, 0x6e, -- 0x67, 0x65, 0x6c, 0x62, 0x72, 0x65, 0x63, 0x68, -- 0x74, 0x00, 0x10, 0x5f, 0x00, 0x00, 0xb7, 0xc8, -- 0x20, 0x3c, 0x41, 0x62, 0x7a, 0x00, 0x80, 0x3a, -- 0x00, 0x00, 0x94, 0xc5, 0x20, 0x3c, 0x52, 0x69, -- 0x61, 0x61, 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x65, -- 0x6c, 0x62, 0x72, 0x65, 0x63, 0x68, 0x74, 0x00, -- 0x66, 0x21, 0x00, 0x00, 0x31, 0xc9, 0x20, 0x3c, -- 0x52, 0x69, 0x61, 0x61, 0x6e, 0x20, 0x45, 0x6e, -- 0x67, 0x65, 0x6c, 0x62, 0x72, 0x65, 0x63, 0x68, -- 0x74, 0x00, 0xdc, 0x1a, 0x00, 0x00, 0x79, 0xc6, -- 0x20, 0x3c, 0x52, 0x69, 0x61, 0x61, 0x6e, 0x20, -- 0x45, 0x6e, 0x67, 0x65, 0x6c, 0x62, 0x72, 0x65, -- 0x63, 0x68, 0x74, 0x00, 0x2f, 0x16, 0x00, 0x00, -- 0xf9, 0xc5, 0x20, 0x3c, 0x52, 0x69, 0x61, 0x61, -- 0x6e, 0x20, 0x45, 0x6e, 0x67, 0x65, 0x6c, 0x62, -- 0x72, 0x65, 0x63, 0x68, 0x74, 0x00, 0x8b, 0x11, -- 0x00, 0x00, 0x82, 0xc7, 0x20, 0x3c, 0x41, 0x62, -- 0x7a, 0x00, 0x23, 0x10, 0x00, 0x00, 0xa9, 0xc9, -- 0x20, 0x3c, 0x44, 0x6f, 0x70, 0x70, 0x65, 0x6c, -- 0x67, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x00, 0x13, -- 0x0b, 0x00, 0x00, 0x21, 0xc7, 0x20, 0x3c, 0x4a, -- 0x6f, 0x68, 0x61, 0x6e, 0x6e, 0x20, 0x42, 0x6f, -- 0x74, 0x68, 0x61, 0x00, 0x5a, 0x09, 0x00, 0x00, -- 0xef, 0xc6, 0x20, 0x3c, 0x41, 0x62, 0x7a, 0x00, -- 0xd7, 0x07, 0x00, 0x00, 0xad, 0xc6, 0x20, 0x3c --}; -- --static void debhelper_stuff() --{ -- /* dh_installdocs */ -- system ("if [ -d /usr/doc -a ! -e /usr/doc/tint -a -d /usr/share/doc/tint ]; then\n" -- " ln -sf ../share/doc/tint /usr/doc/tint\n" -- "fi\n"); -- -- /* dh_installmenu */ -- system ("if [ -x /usr/bin/update-menus ]; then update-menus ; fi"); --} -- --int main (int argc,char *argv[]) --{ -- struct stat sb; -- -- /* we only do something if we're called as <program> configure ... */ -- if (argc < 2 || strcmp (argv[1],"configure")) exit (EXIT_SUCCESS); -- -- /* if the score file doesn't exist, create it */ -- if (stat (filename,&sb) < 0) -- { -- int fd,result; -- struct passwd *u; -- struct group *g; -- uid_t uid; -- gid_t gid; -- -- /* get uid */ -- if ((u = getpwnam (user)) == NULL) -- { -- fprintf (stderr,"Couldn't obtain uid for %s: %m\n",user); -- exit (EXIT_FAILURE); -- } -- uid = u->pw_uid; -- -- /* get gid */ -- if ((g = getgrnam (group)) == NULL) -- { -- fprintf (stderr,"Couldn't obtain gid for %s: %m\n",group); -- exit (EXIT_FAILURE); -- } -- gid = g->gr_gid; -- -- /* create default score file */ -- if ((fd = creat (filename,0664)) < 0) -- { -- fprintf (stderr,"Couldn't create score file %s: %m\n",filename); -- exit (EXIT_FAILURE); -- } -- result = write (fd,contents,sizeof (contents)); -- if (result < 0) -- { -- fprintf (stderr,"Unable to write to %s: %m\n",filename); -- close (fd); -- unlink (filename); -- exit (EXIT_FAILURE); -- } -- if (result < sizeof (contents)) -- { -- fprintf (stderr,"Short write count. %d/%d bytes written to %s\n",result,sizeof (contents),filename); -- close (fd); -- unlink (filename); -- exit (EXIT_FAILURE); -- } -- close (fd); -- -- /* change ownership of score file */ -- if (chown (filename,uid,gid) < 0) -- { -- fprintf (stderr,"Couldn't change ownership of %s to %s:%s: %m\n",filename,user,group); -- unlink (filename); -- exit (EXIT_FAILURE); -- } -- } -- -- debhelper_stuff (); -- -- exit (EXIT_SUCCESS); --} -- -diff -rupN tint-0.03b/debian/rules tint/debian/rules ---- tint-0.03b/debian/rules 2002-03-16 18:00:11.000000000 +0100 -+++ tint/debian/rules 1970-01-01 01:00:00.000000000 +0100 -@@ -1,82 +0,0 @@ --#!/usr/bin/make -f -- --# -*- sh -*- -- --# Uncomment this to turn on verbose mode. --export DH_VERBOSE=1 -- --# This is the debhelper compatability version to use. --export DH_COMPAT=3 -- --configure: configure-stamp --configure-stamp: -- dh_testdir -- # Add here commands to configure the package. -- -- -- touch configure-stamp -- --build: configure-stamp build-stamp --build-stamp: -- dh_testdir -- -- # Add here commands to compile the package. -- $(MAKE) -- -- touch build-stamp -- --clean: -- dh_testdir -- dh_testroot -- rm -f build-stamp configure-stamp -- -- # Add here commands to clean up after the build process. -- -$(MAKE) clean -- -- dh_clean -- --install: build -- dh_testdir -- dh_testroot -- dh_clean -k -- dh_installdirs -- -- # Add here commands to install the package into debian/tint. -- $(MAKE) install DESTDIR=$(CURDIR)/debian/tint -- --# Build architecture-independent files here. --binary-indep: build install --# We have nothing to do by default. -- --# Build architecture-dependent files here. --binary-arch: build install -- dh_testdir -- dh_testroot --# dh_installdebconf -- dh_installdocs --# dh_installexamples -- dh_installmenu --# dh_installlogrotate --# dh_installemacsen --# dh_installpam --# dh_installmime --# dh_installinit --# dh_installcron -- dh_installman --# dh_installinfo --# dh_undocumented -- dh_installchangelogs -- dh_link -- dh_strip -- dh_compress --# dh_fixperms --exclude /usr/games/tint --# dh_makeshlibs -- dh_installdeb --# dh_perl -- dh_shlibdeps -- dh_gencontrol -- dh_md5sums -- dh_builddeb -- --binary: binary-indep binary-arch --.PHONY: build clean binary-indep binary-arch binary install configure -diff -rupN tint-0.03b/engine.c tint/engine.c ---- tint-0.03b/engine.c 2005-07-17 13:26:22.000000000 +0200 -+++ tint/engine.c 2016-05-27 19:05:21.681035752 +0200 +diff -rupN tint-0.04+nmu1/engine.c tint/engine.c +--- tint-0.04+nmu1/engine.c 2005-07-17 13:26:22.000000000 +0200 ++++ tint/engine.c 2018-02-23 12:00:00.000000000 +0200 @@ -27,10 +27,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -465,9 +35,9 @@ #include "utils.h" #include "io.h" #include "engine.h" -diff -rupN tint-0.03b/engine.h tint/engine.h ---- tint-0.03b/engine.h 2001-12-07 16:48:08.000000000 +0100 -+++ tint/engine.h 2016-05-27 19:04:32.456828081 +0200 +diff -rupN tint-0.04+nmu1/engine.h tint/engine.h +--- tint-0.04+nmu1/engine.h 2001-12-07 16:48:08.000000000 +0100 ++++ tint/engine.h 2018-02-23 12:00:00.000000000 +0200 @@ -29,7 +29,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -477,9 +47,9 @@
/* * Macros -diff -rupN tint-0.03b/io.c tint/io.c ---- tint-0.03b/io.c 2001-12-07 16:48:20.000000000 +0100 -+++ tint/io.c 2016-05-27 14:47:15.798402053 +0200 +diff -rupN tint-0.04+nmu1/io.c tint/io.c +--- tint-0.04+nmu1/io.c 2010-06-23 15:05:12.000000000 +0100 ++++ tint/io.c 2018-02-23 12:00:00.000000000 +0200 @@ -27,9 +27,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -492,9 +62,9 @@ #include <unistd.h> /* gettimeofday() */ +#endif
- #include <curses.h> + #include "io.h"
-@@ -70,7 +74,11 @@ static int in_timeleft; +@@ -68,7 +72,11 @@ static int in_timeleft; /* Initialize screen */ void io_init () { @@ -506,7 +76,7 @@ start_color (); curs_set (CURSOR_INVISIBLE); out_attr = A_NORMAL; -@@ -176,11 +184,17 @@ void out_beep () +@@ -177,11 +185,17 @@ void out_beep () /* Read a character. Please note that you MUST call in_timeout() before in_getch() */ int in_getch () { @@ -524,7 +94,7 @@ gettimeofday (&endtv,NULL); /* Timeout? */ if (ch == ERR) -@@ -198,6 +212,7 @@ int in_getch () +@@ -199,6 +213,7 @@ int in_getch () in_timeleft -= endtv.tv_usec; if (in_timeleft <= 0) in_timeleft = in_timetotal; } @@ -532,26 +102,55 @@ return ch; }
-diff -rupN tint-0.03b/Makefile tint/Makefile ---- tint-0.03b/Makefile 2005-07-17 13:30:54.000000000 +0200 -+++ tint/Makefile 2016-05-27 21:04:02.374391088 +0200 -@@ -28,85 +28,79 @@ - # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - --#CROSS = arm-linux- +diff -rupN tint-0.04+nmu1/io.h tint/io.h +--- tint-0.04+nmu1/io.h 2010-06-23 14:55:03.000000000 +0100 ++++ tint/io.h 2018-02-23 12:00:00.000000000 +0200 +@@ -29,9 +29,8 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ - --bindir = $(DESTDIR)/usr/games --mandir = $(DESTDIR)/usr/share/man --localstatedir = $(DESTDIR)/var/games ++ + #include <curses.h> +-#include <wchar.h> - --ifeq ($(CC),) --CC = gcc --else --ifeq ($(CC),colorgcc) -- ifneq ($(CROSS),) -- CC = gcc -- endif ++ + /* + * Colors + */ +diff -rupN tint-0.04+nmu1/Makefile tint/Makefile +--- tint-0.04+nmu1/Makefile 2010-06-23 15:06:11.000000000 +0200 ++++ tint/Makefile 2018-02-23 12:00:00.000000000 +0200 +@@ -1,0 +1,106 @@ ++ ++# -*- sh -*- ++ ++# Copyright (c) Abraham vd Merwe abz@blio.net ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without ++# modification, are permitted provided that the following conditions ++# are met: ++# 1. Redistributions of source code must retain the above copyright ++# notice, this list of conditions and the following disclaimer. ++# ++# 2. Redistributions in binary form must reproduce the above copyright ++# notice, this list of conditions and the following disclaimer in the ++# documentation and/or other materials provided with the distribution. ++# 3. Neither the name of the author nor the names of other contributors ++# may be used to endorse or promote products derived from this software ++# without specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ++# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ +# in addition to the dependency below, create the file if it doesn't exist +# to silence warnings about a file that would be generated anyway. +$(if $(wildcard .xcompile),,$(eval $(shell ../../../../util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile))) @@ -588,32 +187,8 @@ +# Make is silent per default, but 'make V=1' will show all compiler calls. +ifneq ($(V),1) +Q := @ - endif --endif -- --CFLAGS = -Wall -Os -pipe --CPPFLAGS = -DSCOREFILE="$(localstatedir)/$(PRG).scores" #-DUSE_RAND --LDFLAGS = -s --LDLIBS = -lncurses -- --STRIP = strip --STRIPFLAGS = --strip-all --remove-section=.note --remove-section=.comment -- --INSTALL = install -- --OBJ = engine.o utils.o io.o tint.o --SRC = $(OBJ:%.o=%.c) --PRG = tint -- -- ########### NOTHING TO EDIT BELOW THIS ########### -- --.PHONY: all clean do-it-all depend with-depends without-depends debian postinst -- --all: do-it-all postinst - --ifeq (.depends,$(wildcard .depends)) --include .depends --do-it-all: with-depends ++endif ++ +all: $(TARGET).elf +# printf" CC $(CC)\n" + @@ -635,63 +210,26 @@ +ifneq ($(strip $(HAVE_LIBPAYLOAD)),) +libpayload: + $(Q)printf "Found Libpayload $(LIBPAYLOAD_DIR).\n" - else --do-it-all: without-depends --endif -- --without-depends: depend with-depends -- --depend: -- rm -f .depends -- set -e; for F in $(SRC); do $(CC) -MM $(CFLAGS) $(CPPFLAGS) $$F >> .depends; done -- --with-depends: $(PRG) -- --$(PRG): $(OBJ) -- $(CROSS)$(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS) -- $(CROSS)$(STRIP) $(STRIPFLAGS) $@ -- --ifneq ($(DESTDIR),) --install: $(PRG) -- $(INSTALL) -d $(bindir) $(mandir) $(localstatedir) -- $(INSTALL) -s -g games -o root -m 2755 $(PRG) $(bindir) -- $(INSTALL) -g games -o root -m 0644 $(PRG).6 $(mandir)/man6 --# cp tint.scores $(localstatedir)/$(PRG).scores --# chown root.games $(localstatedir)/$(PRG).scores --# chmod 0664 $(localstatedir)/$(PRG).scores -- --uninstall: -- rm -f $(bindir)/$(PRG) $(mandir)/man6/$(PRG).6 $(localstatedir)/$(PRG).scores ++else +libpayload: + $(Q)printf "Building libpayload @ $(LIBCONFIG_PATH).\n" + $(Q)make -C $(LIBCONFIG_PATH) distclean + $(Q)make -C $(LIBCONFIG_PATH) defconfig KBUILD_DEFCONFIG=$(LIB_CONFIG) + $(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(tint_obj) install - endif - --postinst: -- $(MAKE) -C debian -- --debian: -- dpkg-buildpackage -rfakeroot -k2B555AEE -- - clean: -- rm -f .depends *~ $(OBJ) $(PRG) {configure,build}-stamp gmon.out a.out -- rm -rf debian/$(PRG) -- rm -f debian/*.{debhelper,substvars} debian/files debian/*~ ++endif ++ ++clean: + $(Q)rm -f $(TARGET).elf $(TARGET).debug *.o + $(Q)rm .xcompile - - distclean: clean -- $(MAKE) -C debian clean ++ ++distclean: clean + $(Q)rm -rf $(tint_obj) - ++ + +.PHONY: all clean do-it-all depend with-depends without-depends debian postinst -Binary files tint-0.03b/.Makefile.swp and tint/.Makefile.swp differ -diff -rupN tint-0.03b/tint.c tint/tint.c ---- tint-0.03b/tint.c 2005-07-17 13:26:43.000000000 +0200 -+++ tint/tint.c 2016-05-27 18:59:53.838346317 +0200 +diff -rupN tint-0.04+nmu1/tint.c tint/tint.c +--- tint-0.04+nmu1/tint.c 2010-08-08 19:42:50.000000000 +0200 ++++ tint/tint.c 2018-02-23 12:00:00.000000000 +0200 @@ -1,4 +1,3 @@ - /* @@ -715,7 +253,14 @@ #include "utils.h" #include "io.h" #include "config.h" -@@ -321,6 +321,7 @@ typedef struct +@@ -306,4 +306,4 @@ + /* Header for scorefile */ +-#define SCORE_HEADER "Tint 0.02b (c) Abraham vd Merwe - Scores" ++#define SCORE_HEADER "Tint 0.04+nmu1 (c) Abraham vd Merwe - Scores" +- ++ + /* Header for score title */ +@@ -322,6 +322,7 @@ typedef struct time_t timestamp; } score_t;
@@ -723,7 +268,7 @@ static void getname (char *name) { struct passwd *pw = getpwuid (geteuid ()); -@@ -337,7 +338,9 @@ static void getname (char *name) +@@ -338,7 +339,9 @@ static void getname (char *name) name[NAMELEN - 1] = '\0'; } } @@ -733,7 +278,7 @@ static void err1 () { fprintf (stderr,"Error creating %s\n",scorefile); -@@ -349,10 +352,11 @@ static void err2 () +@@ -350,10 +353,11 @@ static void err2 () fprintf (stderr,"Error writing to %s\n",scorefile); exit (EXIT_FAILURE); } @@ -746,7 +291,7 @@ "\n\t PLAYER STATISTICS\n\n\t" "Score %11d\n\t" "Efficiency %11d\n\t" -@@ -360,6 +364,7 @@ void showplayerstats (engine_t *engine) +@@ -361,6 +365,7 @@ void showplayerstats (engine_t *engine) GETSCORE (engine->score),engine->status.efficiency,GETSCORE (engine->score) / getsum ()); }
@@ -754,7 +299,7 @@ static void createscores (int score) { FILE *handle; -@@ -394,7 +399,9 @@ static void createscores (int score) +@@ -395,7 +400,9 @@ static void createscores (int score) fprintf (stderr,"%s",scoretitle); fprintf (stderr,"\t 1* %7d %s\n\n",score,scores[0].name); } @@ -764,7 +309,7 @@ static int cmpscores (const void *a,const void *b) { int result; -@@ -412,7 +419,9 @@ static int cmpscores (const void *a,cons +@@ -413,7 +420,9 @@ static int cmpscores (const void *a,cons /* timestamps is equal */ return 0; } @@ -774,7 +319,7 @@ static void savescores (int score) { FILE *handle; -@@ -490,11 +499,13 @@ static void savescores (int score) +@@ -491,11 +500,13 @@ static void savescores (int score) } fprintf (stderr,"\n"); } @@ -787,9 +332,9 @@ +#if 0 static void showhelp () { - fprintf (stderr,"USAGE: tint [-h] [-l level] [-n]\n"); -@@ -504,9 +515,11 @@ static void showhelp () - fprintf (stderr," -d Draw vertical dotted lines\n"); + fprintf (stderr,"USAGE: tint [-h] [-l level] [-n] [-d] [-b char]\n"); +@@ -506,9 +517,11 @@ static void showhelp () + fprintf (stderr," -b <char> Use this character to draw blocks instead of spaces\n"); exit (EXIT_FAILURE); } +#endif @@ -800,7 +345,7 @@ int i = 1; while (i < argc) { -@@ -536,10 +549,12 @@ static void parse_options (int argc,char +@@ -544,10 +557,12 @@ static void parse_options (int argc,char } i++; } @@ -813,7 +358,7 @@ char buf[NAMELEN];
do -@@ -549,6 +564,8 @@ static void choose_level () +@@ -557,6 +572,8 @@ static void choose_level () buf[strlen (buf) - 1] = '\0'; } while (!str2int (&level,buf) || level < MINLEVEL || level > MAXLEVEL); @@ -822,7 +367,7 @@ }
/***************************************************************************/ -@@ -561,6 +578,8 @@ int main (int argc,char *argv[]) +@@ -569,6 +586,8 @@ int main (int argc,char *argv[]) int ch; engine_t engine; /* Initialize */ @@ -831,14 +376,19 @@ rand_init (); /* must be called before engine_init () */ engine_init (&engine,score_function); /* must be called before using engine.curshape */ finished = shownext = FALSE; -@@ -663,8 +682,15 @@ +@@ -673,11 +692,20 @@ int main (int argc,char *argv[]) + /* Restore console settings and exit */ + io_close (); ++#if 0 + /* Don't bother the player if he want's to quit */ if (ch != 'q') { ++#endif showplayerstats (&engine); +#if 0 savescores (GETSCORE (engine.score)); -+#endif } ++#endif + printf("Bye.\n"); + refresh(); + for(;;); //halt(); @@ -847,81 +397,9 @@ +#endif }
-diff -rupN tint-0.03b/typedefs.h tint/typedefs.h ---- tint-0.03b/typedefs.h 2001-12-07 16:49:06.000000000 +0100 -+++ tint/typedefs.h 1970-01-01 01:00:00.000000000 +0100 -@@ -1,68 +0,0 @@ --#ifndef TYPEDEFS_H --#define TYPEDEFS_H -- --/* -- * Copyright (c) Abraham vd Merwe abz@blio.net -- * All rights reserved. -- * -- * Redistribution and use in source and binary forms, with or without -- * modification, are permitted provided that the following conditions -- * are met: -- * 1. Redistributions of source code must retain the above copyright -- * notice, this list of conditions and the following disclaimer. -- * 2. Redistributions in binary form must reproduce the above copyright -- * notice, this list of conditions and the following disclaimer in the -- * documentation and/or other materials provided with the distribution. -- * 3. Neither the name of the author nor the names of other contributors -- * may be used to endorse or promote products derived from this software -- * without specific prior written permission. -- * -- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- */ -- --/* -- * Boolean definitions -- */ -- --#ifndef bool --#define bool int --#endif -- --#if !defined(false) || (false != 0) --#define false 0 --#endif -- --#if !defined(true) || (true != 0) --#define true 1 --#endif -- --#if !defined(FALSE) || (FALSE != false) --#define FALSE false --#endif -- --#if !defined(TRUE) || (TRUE != true) --#define TRUE true --#endif -- --/* -- * Error flags -- */ -- --#if !defined(ERR) || (ERR != -1) --#define ERR -1 --#endif -- --#if !defined(OK) || (OK != 0) --#define OK 0 --#endif -- --#endif /* #ifndef TYPEDEFS_H */ -diff -rupN tint-0.03b/utils.c tint/utils.c ---- tint-0.03b/utils.c 2001-12-07 16:49:19.000000000 +0100 -+++ tint/utils.c 2016-05-27 19:05:40.313351887 +0200 +diff -rupN tint-0.04+nmu1/utils.c tint/utils.c +--- tint-0.04+nmu1/utils.c 2001-12-07 16:49:19.000000000 +0100 ++++ tint/utils.c 2018-02-23 12:00:00.000000000 +0200 @@ -27,11 +27,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -951,9 +429,9 @@ }
+#endif -diff -rupN tint-0.03b/utils.h tint/utils.h ---- tint-0.03b/utils.h 2001-12-07 16:49:35.000000000 +0100 -+++ tint/utils.h 2016-05-27 19:00:34.120754123 +0200 +diff -rupN tint-0.04+nmu1/utils.h tint/utils.h +--- tint-0.04+nmu1/utils.h 2001-12-07 16:49:35.000000000 +0100 ++++ tint/utils.h 2018-02-23 12:00:00.000000000 +0200 @@ -29,7 +29,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */