summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Le Cuirot <chewi@gentoo.org>2024-06-12 23:04:24 +0100
committerJames Le Cuirot <chewi@gentoo.org>2024-06-12 23:05:26 +0100
commit046b1e62732799f3c784058619cbe3e34085ffa3 (patch)
tree81869a523b0c1fee0a7cb79bb4174c36871251c2 /games-puzzle/icebreaker
parentdev-python/fonttools: Keyword 4.53.0 alpha, #932674 (diff)
downloadgentoo-046b1e62732799f3c784058619cbe3e34085ffa3.tar.gz
gentoo-046b1e62732799f3c784058619cbe3e34085ffa3.tar.bz2
gentoo-046b1e62732799f3c784058619cbe3e34085ffa3.zip
games-puzzle/icebreaker: Bump to 2.2.2_p20231115, drop old 1.9.6-r1
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'games-puzzle/icebreaker')
-rw-r--r--games-puzzle/icebreaker/Manifest2
-rw-r--r--games-puzzle/icebreaker/files/icebreaker-1.9.6-gentoo.patch247
-rw-r--r--games-puzzle/icebreaker/files/icebreaker-1.9.6-ldflags.patch28
-rw-r--r--games-puzzle/icebreaker/files/icebreaker-1.9.6-ovfl.patch20
-rw-r--r--games-puzzle/icebreaker/files/icebreaker-1.9.6-parallell-install.patch34
-rw-r--r--games-puzzle/icebreaker/files/icebreaker-2.2.2_p20231115-makefile.patch70
-rw-r--r--games-puzzle/icebreaker/icebreaker-1.9.6-r1.ebuild48
-rw-r--r--games-puzzle/icebreaker/icebreaker-2.2.2_p20231115.ebuild52
-rw-r--r--games-puzzle/icebreaker/metadata.xml11
9 files changed, 130 insertions, 382 deletions
diff --git a/games-puzzle/icebreaker/Manifest b/games-puzzle/icebreaker/Manifest
index 0b16c6b7faaf..a84be44c93f1 100644
--- a/games-puzzle/icebreaker/Manifest
+++ b/games-puzzle/icebreaker/Manifest
@@ -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
diff --git a/games-puzzle/icebreaker/files/icebreaker-1.9.6-gentoo.patch b/games-puzzle/icebreaker/files/icebreaker-1.9.6-gentoo.patch
deleted file mode 100644
index 846d5b4141bc..000000000000
--- a/games-puzzle/icebreaker/files/icebreaker-1.9.6-gentoo.patch
+++ /dev/null
@@ -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);
diff --git a/games-puzzle/icebreaker/files/icebreaker-1.9.6-ldflags.patch b/games-puzzle/icebreaker/files/icebreaker-1.9.6-ldflags.patch
deleted file mode 100644
index 93b40fc67687..000000000000
--- a/games-puzzle/icebreaker/files/icebreaker-1.9.6-ldflags.patch
+++ /dev/null
@@ -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.)'
-
diff --git a/games-puzzle/icebreaker/files/icebreaker-1.9.6-ovfl.patch b/games-puzzle/icebreaker/files/icebreaker-1.9.6-ovfl.patch
deleted file mode 100644
index 5e8ffc01d8d2..000000000000
--- a/games-puzzle/icebreaker/files/icebreaker-1.9.6-ovfl.patch
+++ /dev/null
@@ -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);
diff --git a/games-puzzle/icebreaker/files/icebreaker-1.9.6-parallell-install.patch b/games-puzzle/icebreaker/files/icebreaker-1.9.6-parallell-install.patch
deleted file mode 100644
index 419262791d98..000000000000
--- a/games-puzzle/icebreaker/files/icebreaker-1.9.6-parallell-install.patch
+++ /dev/null
@@ -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) $< \
diff --git a/games-puzzle/icebreaker/files/icebreaker-2.2.2_p20231115-makefile.patch b/games-puzzle/icebreaker/files/icebreaker-2.2.2_p20231115-makefile.patch
new file mode 100644
index 000000000000..4fec6a700f3d
--- /dev/null
+++ b/games-puzzle/icebreaker/files/icebreaker-2.2.2_p20231115-makefile.patch
@@ -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
+
diff --git a/games-puzzle/icebreaker/icebreaker-1.9.6-r1.ebuild b/games-puzzle/icebreaker/icebreaker-1.9.6-r1.ebuild
deleted file mode 100644
index 6f45f0b3cd13..000000000000
--- a/games-puzzle/icebreaker/icebreaker-1.9.6-r1.ebuild
+++ /dev/null
@@ -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
-}
diff --git a/games-puzzle/icebreaker/icebreaker-2.2.2_p20231115.ebuild b/games-puzzle/icebreaker/icebreaker-2.2.2_p20231115.ebuild
new file mode 100644
index 000000000000..0dc47653992d
--- /dev/null
+++ b/games-puzzle/icebreaker/icebreaker-2.2.2_p20231115.ebuild
@@ -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
+}
diff --git a/games-puzzle/icebreaker/metadata.xml b/games-puzzle/icebreaker/metadata.xml
index 1c3ba213c494..3cb3b8da70ed 100644
--- a/games-puzzle/icebreaker/metadata.xml
+++ b/games-puzzle/icebreaker/metadata.xml
@@ -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>