games-puzzle/icebreaker: Bump to 2.2.2_p20231115, drop old 1.9.6-r1

Signed-off-by: James Le Cuirot <chewi@gentoo.org>
This commit is contained in:
James Le Cuirot
2024-06-12 23:04:24 +01:00
parent a1e230a6f8
commit 046b1e6273
9 changed files with 130 additions and 382 deletions

View File

@@ -1 +1 @@
DIST icebreaker-1.9.6.tgz 137333 BLAKE2B 3fdfde734f868493313a2a7b018582f79d6140fa71c1802a27b558d2973968eb9cc01efb55c0b5a45d95cd4d1bc94b66f74809a82853d6d8c0ce1b7bf767e362 SHA512 c3b085dc42d33757011d6d526016477312c5e1cbab4c5584c1e271a1e43b40d61ad1e7f0c96c8f41348550b2e198b3ee7bca65fbef90125dbfa32544cbdf357b
DIST icebreaker-2.2.2_p20231115.tar.gz 538930 BLAKE2B a3f8a1c1c280c260c8fc1b8060575b000a30535e83bd2033fe68726bf02f31cb213c9a46af5fdd89c7d7c042053cd98b037d69b924daeec985b2f04645d10e9d SHA512 02174b8c57578dc269693ad2ce3ebae756490dd55c9f738a1e8dd75b868b6fafc14c7f0e62c5fc49bca797376a0957a647fc9d7c5f4005cdd7cdf7df637567b0

View File

@@ -1,247 +0,0 @@
--- a/dialog.c
+++ b/dialog.c
@@ -279,10 +279,10 @@ PopupReturnType popuphighscores()
for (i=0;i<HISCORENUM;i++)
{
- snprintf(buf,4,"%d.",i+1);
+ snprintf(buf,sizeof(buf),"%d.",i+1);
puttext(scorelistrect.x+BLOCKWIDTH,scorelistrect.y+45+i*(CHARHEIGHT*2+5),2,color.normaltext,buf);
puttext(scorelistrect.x+BLOCKWIDTH*4,scorelistrect.y+45+i*(CHARHEIGHT*2+5),2,color.normaltext,hiscorename[i]);
- snprintf(buf,30,"%ld",hiscoreval[i]);
+ snprintf(buf,sizeof(buf),"%ld",hiscoreval[i]);
puttext(scorelistrect.x+scorelistrect.w-(BLOCKWIDTH*5),scorelistrect.y+45+i*(CHARHEIGHT*2+5),2,color.normaltext,buf);
}
@@ -364,7 +364,7 @@ PopupReturnType popuphelp()
{
puttext(helprect.x+BLOCKWIDTH/2,helprect.y+BLOCKHEIGHT/2+i*(CHARHEIGHT*2+4),2,color.normaltext,helptext[i]);
}
- snprintf(buf,80,"v%d.%d.%d %s",VERMAJOR,VERMINOR,VERSUB,"Copyright (c) 2000-2002 Matthew Miller. Released under the GPL.");
+ snprintf(buf,sizeof(buf),"v%d.%d.%d %s",VERMAJOR,VERMINOR,VERSUB,"Copyright (c) 2000-2002 Matthew Miller. Released under the GPL.");
puttext(helprect.x+BLOCKWIDTH/2,helprect.y+helprect.h-CHARHEIGHT*3,1,color.copyrighttext,buf);
puttext(helprect.x+BLOCKWIDTH/2,helprect.y+helprect.h-CHARHEIGHT*1-3,1,color.copyrighttext,"Thanks to my wonderful wife Karen for inspiration (and for patience)!");
--- a/menu.c
+++ b/menu.c
@@ -193,12 +193,12 @@ PopupReturnType popupoptionsmenu()
if (strlen(commandline.theme)>0)
{
- snprintf(originaltheme,MAXTHEMENAMELENGTH+1,"%s",commandline.theme);
+ snprintf(originaltheme,sizeof(originaltheme),"%s",commandline.theme);
originalthemecl=true;
}
else
{
- snprintf(originaltheme,MAXTHEMENAMELENGTH+1,"%s",options.theme);
+ snprintf(originaltheme,sizeof(originaltheme),"%s",options.theme);
originalthemecl=false;
}
@@ -521,7 +521,7 @@ PopupReturnType menuitem_theme(char * va
if (((mbutton==1 || mbutton==4) && t==themecount-1) || ((mbutton!=1 && mbutton!=4) && t==0))
{ // "random", at the end/beginning of the list
- strncpy(val,"random",MAXMENUVALUELENGTH);
+ strcpy(options.theme,"random");
snprintf(options.theme,MAXMENUVALUELENGTH,"random");
settheme("linux"); // just for pretty
@@ -538,7 +538,7 @@ PopupReturnType menuitem_theme(char * va
if (mbutton==1 || mbutton==4) // left click or scroll forwards
{
strncpy(val,themelist[(t+1)%themecount],MAXMENUVALUELENGTH);
- snprintf(options.theme,MAXMENUVALUELENGTH,themelist[(t+1)%themecount]);
+ snprintf(options.theme,sizeof(options.theme),"%s",themelist[(t+1)%themecount]);
}
else // right or middle or scroll back
{
--- a/hiscore.c
+++ b/hiscore.c
@@ -72,7 +72,7 @@
// make sure all entries are zeroed out to start.
for (i=0;i<HISCORENUM;i++)
{
- snprintf(temphiscorename[i],7,"Nobody");
+ strcpy(temphiscorename[i],"Nobody");
temphiscoreval[i]=100; //100 is better than 0. :)
}
@@ -103,7 +103,7 @@
// ok, so now, we can copy things over in the proper sorted order
for (i=0;i<HISCORENUM;i++)
{
- snprintf(hiscorename[i],50,temphiscorename[arrayindex[i]]);
+ snprintf(hiscorename[i],50,"%s",temphiscorename[arrayindex[i]]);
hiscoreval[i]=temphiscoreval[arrayindex[i]];
}
@@ -201,13 +201,13 @@
// make sure the temp array contains the right data
for (i=0;i<HISCORENUM;i++)
{
- snprintf(temphiscorename[i],50,hiname[i]);
+ snprintf(temphiscorename[i],50,"%s",hiname[i]);
temphiscoreval[i]=hival[i];
}
// and toss in the new data
//(this is why these arrays are size HISCORENUM+1)
- snprintf(temphiscorename[HISCORENUM],50,username);
+ snprintf(temphiscorename[HISCORENUM],50,"%s",username);
temphiscoreval[HISCORENUM]=score;
// fill the "helper" array.
@@ -221,7 +221,7 @@
// and take the top ones back.
for (i=0;i<HISCORENUM;i++)
{
- snprintf(hiname[i],50,temphiscorename[arrayindex[i]]);
+ snprintf(hiname[i],50,"%s",temphiscorename[arrayindex[i]]);
hival[i]=temphiscoreval[arrayindex[i]];
}
}
--- a/line.c
+++ b/line.c
@@ -30,8 +30,9 @@
Line createline(int linenum)
{
- Line l;
+ static Line l;
+ memset(&l, 0, sizeof(l));
switch (linenum)
{
case 1:
--- a/options.c
+++ b/options.c
@@ -66,7 +66,7 @@
options.autopause=AUTOPAUSEOFF;
options.difficulty=NORMAL;
options.fullscreen=FULLSCREENOFF;
- snprintf(options.theme,MAXTHEMENAMELENGTH+1,"linux");
+ strcpy(options.theme,"linux");
}
int readoptions(void)
@@ -81,7 +81,7 @@
setdefaultoptions();
- snprintf(filename,255,"%s/%s",homedir,OPTIONFILE);
+ snprintf(filename,sizeof(filename),"%s/%s",homedir,OPTIONFILE);
optionfile=fopen(filename,"r");
if (optionfile==NULL)
@@ -135,7 +135,7 @@
}
else if (!strcmp(optbuf,"theme"))
{
- snprintf(options.theme,MAXTHEMENAMELENGTH+1,"%s",valbuf);
+ snprintf(options.theme,sizeof(options.theme),"%s",valbuf);
}
// FIX: add username
}
@@ -150,7 +150,7 @@
{
FILE * optionfile;
char filename[255];
- snprintf(filename,255,"%s/%s",homedir,OPTIONFILE);
+ snprintf(filename,sizeof(filename),"%s/%s",homedir,OPTIONFILE);
optionfile=fopen(filename,"w");
if (optionfile==NULL)
@@ -292,7 +292,7 @@
else
{
// fix -- we should probably search for malicious characters here.
- snprintf(commandline.theme,MAXTHEMENAMELENGTH+1,"%s",argv[i]+strlen(FLAGTHEME));
+ snprintf(commandline.theme,sizeof(commandline.theme),"%s",argv[i]+strlen(FLAGTHEME));
}
}
else if (strncmp(argv[i],FLAGTHEMELONG "=" ,strlen(FLAGTHEMELONG "=")) == 0)
@@ -312,7 +312,7 @@
else
{
// fix -- we should probably search for malicious characters here.
- snprintf(commandline.theme,MAXTHEMENAMELENGTH+1,"%s",argv[i]+strlen(FLAGTHEMELONG "="));
+ snprintf(commandline.theme,sizeof(commandline.theme),"%s",argv[i]+strlen(FLAGTHEMELONG "="));
}
}
else if (strncmp(argv[i],FLAGTHEMELONG,strlen(FLAGTHEMELONG)) == 0)
--- a/penguin.c
+++ b/penguin.c
@@ -40,8 +40,9 @@
Penguin createpenguinxy(int x, int y)
{
- Penguin p;
+ static Penguin p;
+ memset(&p, 0, sizeof(p));
switch (random() % 4)
{
case 0:
--- a/themes.c
+++ b/themes.c
@@ -183,7 +183,7 @@
foundcolor.spritetransparent = 0;
- snprintf(themefilename, 256,"%s/%s%s",DATAPREFIX,themename,THEMEFILEEXTENSION);
+ snprintf(themefilename, sizeof(themefilename),"%s/%s%s",DATAPREFIX,themename,THEMEFILEEXTENSION);
themefile=fopen(themefilename,"r");
if (themefile==NULL)
@@ -329,7 +329,7 @@
"We'll try to load it anyway, but don't be surpised if there's a problem.\n"
"(Filename is %s)\n",themename,valbuf);
}
- snprintf(loadfilebuf, 256,"%s/%s",DATAPREFIX,valbuf);
+ snprintf(loadfilebuf, sizeof(loadfilebuf),"%s/%s",DATAPREFIX,valbuf);
spriteimage=loadsprite(themename,loadfilebuf);
}
else if (!strcmp(optbuf,"spritemirrorbitmap"))
@@ -340,7 +340,7 @@
"We'll try to load it anyway, but don't be surpised if there's a problem.\n"
"(Filename is %s)\n",themename,valbuf);
}
- snprintf(loadfilebuf, 256,"%s/%s",DATAPREFIX,valbuf);
+ snprintf(loadfilebuf, sizeof(loadfilebuf),"%s/%s",DATAPREFIX,valbuf);
spritemirrorimage=loadsprite(themename,loadfilebuf);
}
else if (!strcmp(optbuf,"soundouch"))
@@ -351,7 +351,7 @@
"We'll try to load it anyway, but don't be surpised if there's a problem.\n"
"(Filename is %s)\n",themename,valbuf);
}
- snprintf(loadfilebuf, 256,"%s/%s",DATAPREFIX,valbuf);
+ snprintf(loadfilebuf, sizeof(loadfilebuf),"%s/%s",DATAPREFIX,valbuf);
loadsounds(themename,loadfilebuf,NULL);
}
else if (!strcmp(optbuf,"soundcrash"))
@@ -362,7 +362,7 @@
"We'll try to load it anyway, but don't be surpised if there's a problem.\n"
"(Filename is %s)\n",themename,valbuf);
}
- snprintf(loadfilebuf, 256,"%s/%s",DATAPREFIX,valbuf);
+ snprintf(loadfilebuf, sizeof(loadfilebuf),"%s/%s",DATAPREFIX,valbuf);
loadsounds(themename,NULL,loadfilebuf);
}
}
@@ -474,11 +474,11 @@
{
fprintf(stderr,"Hey! You can't have a theme named random! Please remove the random.ibt\n"
"file from your themes directory.\n");
- snprintf(themename,MAXTHEMENAMELENGTH+1,"linux");
+ strcpy(themename,"linux");
}
else
{
- snprintf(themename,MAXTHEMENAMELENGTH+1,themelist[random() %themecount]);
+ snprintf(themename,sizeof(themename),"%s",themelist[random() %themecount]);
}
freethemenames(&themelist,themecount);
return settheme(themename);

View File

@@ -1,28 +0,0 @@
--- a/Makefile.orig 2010-10-11 12:20:01.274684641 -0400
+++ b/Makefile 2010-10-11 12:22:02.256897083 -0400
@@ -1,5 +1,3 @@
-CC=gcc
-
SDLCONFIG=sdl-config
ifndef prefix
@@ -177,7 +175,7 @@
[ -d win32.build ] && rm -rf win32.build || true
icebreaker: $(SRC:.c=.o)
- $(CC) $(CFLAGS) $^ -o icebreaker $(SDL_LIB)
+ $(CC) $(LDFLAGS) $(CFLAGS) $^ -o icebreaker $(SDL_LIB)
man: icebreaker.6
@@ -202,8 +200,8 @@
install -m 644 *.wav *.bmp $(datadir)/icebreaker
install-bin: icebreaker
- install -s -g games -m 2755 icebreaker $(bindir) || \
- install -s -m 755 icebreaker $(bindir)
+ install -g games -m 2755 icebreaker $(bindir) || \
+ install -m 755 icebreaker $(bindir)
@test -g $(bindir)/icebreaker || \
echo -e '*** Note: icebreaker binary not installed set-group-ID "games" -- shared\n*** highscores may be impossible. (Try installing as root.)'

View File

@@ -1,20 +0,0 @@
--- a/menu.c.old 2013-06-24 22:09:11.606750080 +0200
+++ b/menu.c 2013-06-24 22:25:51.635735351 +0200
@@ -522,7 +522,7 @@
{ // "random", at the end/beginning of the list
strcpy(options.theme,"random");
- snprintf(options.theme,MAXMENUVALUELENGTH,"random");
+ snprintf(options.theme,MAXTHEMENAMELENGTH,"random");
settheme("linux"); // just for pretty
@@ -544,7 +544,7 @@
{
if (t<0) t=themecount;
strncpy(val,themelist[(t-1)%themecount],MAXMENUVALUELENGTH);
- snprintf(options.theme,MAXMENUVALUELENGTH,themelist[(t-1)%themecount]);
+ snprintf(options.theme,MAXTHEMENAMELENGTH,"%s",themelist[(t-1)%themecount]);
}
settheme(options.theme);

View File

@@ -1,34 +0,0 @@
--- a/Makefile.old 2010-10-19 10:26:18.000000000 +0200
+++ b/Makefile 2010-10-19 10:38:28.000000000 +0200
@@ -196,26 +196,30 @@
themes-install: install-themes
install-themes:
+ mkdir -p $(datadir)/icebreaker
install -m 644 *.ibt $(datadir)/icebreaker
install -m 644 *.wav *.bmp $(datadir)/icebreaker
install-bin: icebreaker
+ mkdir -p $(bindir)
install -g games -m 2755 icebreaker $(bindir) || \
install -m 755 icebreaker $(bindir)
@test -g $(bindir)/icebreaker || \
echo -e '*** Note: icebreaker binary not installed set-group-ID "games" -- shared\n*** highscores may be impossible. (Try installing as root.)'
install-man: icebreaker.6
+ mkdir -p $(mandir)/man6
install -m 644 icebreaker.6 $(mandir)/man6
install-scorefile:
+ mkdir -p $(highscoredir)
touch $(highscoredir)/icebreaker.scores
chown -f games:games $(highscoredir)/icebreaker.scores && \
chmod 664 $(highscoredir)/icebreaker.scores || \
chmod 644 $(highscoredir)/icebreaker.scores
-install: all install-mkdirs install-themes install-bin install-man install-scorefile
+install: install-themes install-bin install-man install-scorefile
%.d: %.c
set -e; $(CC) -M $(CFLAGS) $< \

View File

@@ -0,0 +1,70 @@
From a5950b94d56f6e35c3dca2e1ad2ff334aacaa070 Mon Sep 17 00:00:00 2001
From: James Le Cuirot <chewi@gentoo.org>
Date: Wed, 12 Jun 2024 22:50:15 +0100
Subject: [PATCH 1/2] Don't include -Werror in CFLAGS
Distributions don't like -Werror because it prevents end users from
building the software using newer compilers that may raise warnings you
don't know about yet. This is particularly bad for source-based
distributions like Gentoo.
---
Makefile | 2 +-
Makefile.w32 | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 686e636..808b36b 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@ ifndef bindir
endif
-CFLAGS+=-Wall -Werror $(OPTIMIZE) $(SDL_CFLAGS) -DDATAPREFIX=\"$(datadir)/icebreaker\"
+CFLAGS+=-Wall $(OPTIMIZE) $(SDL_CFLAGS) -DDATAPREFIX=\"$(datadir)/icebreaker\"
SRC=icebreaker.c cursor.c grid.c laundry.c line.c penguin.c sound.c \
level.c intro.c text.c status.c transition.c hiscore.c dialog.c \
diff --git a/Makefile.w32 b/Makefile.w32
index 92f60c5..17dd71a 100644
--- a/Makefile.w32
+++ b/Makefile.w32
@@ -12,7 +12,7 @@ ifndef OPTIMIZE
OPTIMIZE=-O2
endif
-CFLAGS=-Wall -Werror -Wno-error=pointer-sign $(OPTIMIZE) $(SDL_CFLAGS) -DDATAPREFIX=\".\" -DHISCOREPREFIX=\".\" -DWIN32 -fstack-protector
+CFLAGS+=-Wall -Wno-error=pointer-sign $(OPTIMIZE) $(SDL_CFLAGS) -DDATAPREFIX=\".\" -DHISCOREPREFIX=\".\" -DWIN32 -fstack-protector
SRC=icebreaker.c cursor.c grid.c laundry.c line.c penguin.c sound.c \
level.c intro.c text.c status.c transition.c hiscore.c dialog.c \
--
2.45.1
From 6ee6046bf1f9893a3c4bfd239871b3296c90b047 Mon Sep 17 00:00:00 2001
From: James Le Cuirot <chewi@gentoo.org>
Date: Wed, 12 Jun 2024 22:54:52 +0100
Subject: [PATCH 2/2] Include LDFLAGS earlier in the linking command
Some flags need to come before the inputs in order to be effective.
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 808b36b..45a7035 100644
--- a/Makefile
+++ b/Makefile
@@ -173,7 +173,7 @@ icebreaker.exe: $(DISTFILES)
[ -d win32.build ] && rm -rf win32.build || true
icebreaker: $(SRC:.c=.o)
- $(CC) $(CFLAGS) $^ -o icebreaker $(SDL_LIB) $(LDFLAGS)
+ $(CC) $(CFLAGS) $(LDFLAGS) $^ -o icebreaker $(SDL_LIB)
man: icebreaker.6
--
2.45.1

View File

@@ -1,48 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit desktop eapi7-ver
DESCRIPTION="Trap and capture penguins on Antarctica"
HOMEPAGE="http://www.mattdm.org/icebreaker/"
SRC_URI="http://www.mattdm.org/${PN}/$(ver_cut 1-2).x/${P}.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
RDEPEND="
media-libs/libsdl[video]
media-libs/sdl-mixer
"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-ldflags.patch
"${FILESDIR}"/${P}-gentoo.patch
"${FILESDIR}"/${P}-parallell-install.patch
"${FILESDIR}"/${P}-ovfl.patch
)
src_compile() {
emake \
OPTIMIZE="${CFLAGS}" \
prefix=/usr \
bindir=/usr/bin \
datadir=/usr/share \
highscoredir="/var"
}
src_install() {
emake \
prefix="${D}/usr" \
bindir="${D}/usr/bin" \
datadir="${D}/usr/share" \
highscoredir="${D}/var" install
newicon ${PN}_48.bmp ${PN}.bmp
make_desktop_entry ${PN} IceBreaker /usr/share/pixmaps/${PN}.bmp
einstalldocs
}

View File

@@ -0,0 +1,52 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop toolchain-funcs
COMMIT="7180612a54b42a5f52e15238d7ddf64f0b879e51"
DESCRIPTION="Trap and capture penguins on Antarctica"
HOMEPAGE="https://mattdm.org/icebreaker/"
SRC_URI="https://github.com/mattdm/icebreaker/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
media-libs/libsdl[video]
media-libs/sdl-mixer
"
DEPEND="
${RDEPEND}
"
PATCHES=(
"${FILESDIR}"/${P}-makefile.patch
)
src_compile() {
emake \
prefix="${EPREFIX}"/usr \
bindir="${EPREFIX}"/usr/bin \
datadir="${EPREFIX}"/usr/share \
highscoredir="${EPREFIX}"/var \
CC="$(tc-getCC)" \
PKG_CONFIG="$(tc-getPKG_CONFIG)" \
OPTIMIZE=
}
src_install() {
emake \
prefix="${ED}"/usr \
bindir="${ED}"/usr/bin \
datadir="${ED}"/usr/share \
highscoredir="${ED}"/var \
install
newicon ${PN}_48.bmp ${PN}.bmp
make_desktop_entry ${PN} IceBreaker /usr/share/pixmaps/${PN}.bmp
einstalldocs
}

View File

@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
<name>Gentoo Games Project</name>
</maintainer>
<maintainer type="project">
<email>games@gentoo.org</email>
<name>Gentoo Games Project</name>
</maintainer>
<upstream>
<remote-id type="github">mattdm/icebreaker</remote-id>
</upstream>
</pkgmetadata>