summaryrefslogtreecommitdiff
path: root/games-puzzle/icebreaker
diff options
context:
space:
mode:
Diffstat (limited to 'games-puzzle/icebreaker')
-rw-r--r--games-puzzle/icebreaker/Manifest11
-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.patch98
-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, 161 insertions, 388 deletions
diff --git a/games-puzzle/icebreaker/Manifest b/games-puzzle/icebreaker/Manifest
index 0c596f819682..9f3a819a5bae 100644
--- a/games-puzzle/icebreaker/Manifest
+++ b/games-puzzle/icebreaker/Manifest
@@ -1,7 +1,4 @@
-AUX icebreaker-1.9.6-gentoo.patch 8599 BLAKE2B b572190c99b2d3d27cebf80751df57d6c80e36189d95e98c11987232ce630668d1158fa2bdb62d09e584a48d42e1cc1618cd607661809b4972e558ce796843a4 SHA512 36685c3a0534305d13385f88b259ece8befdeb1115c0e5958ec2edde5cb3502b213c4b7b2f39a8a2183bab94385b0c2e678346b4175f1a1aa057269b011a6a1c
-AUX icebreaker-1.9.6-ldflags.patch 874 BLAKE2B e888051b968e3139f21a4a912e8dbeb891d9c93bbe96d1a9ceb5a3d5690eb2ae4f74d7afe9aca3892011341d034f2648e41f8ee5bfc5d6ad392add8d3ea85457 SHA512 1c27aa4373744f3a5d59643d36a950aa50377b5ef26fec988754d66860dc3f262bb46e82e40cf4222abb000f0a7ab4aac03d9508e55536212fa5eb7d1a0f5e5f
-AUX icebreaker-1.9.6-ovfl.patch 699 BLAKE2B 9203cb2007abe94d6746512c1bdeca9a0163fda87c443ce9ca4b99a0a435d5553ed972ea368f7717912ec8c9c994f3471f14f187be336738dee6ee70de95c2f8 SHA512 49dae47f4f4d446fbdcb0f5faaa6ff01ecacd695d0af01e10f70001245680116e83aa78b2a9cb4fa80e0641e4cb02c5fc09c0fa87cc79207aa5c5d4dca5f0658
-AUX icebreaker-1.9.6-parallell-install.patch 1187 BLAKE2B 52c23882a6a1f6c265232effed850f34caebdbc8c63e15268e3f1a6fe42c604c5a9ca7d2c20eaee22c896733f7d77752ce7f75e30fdc49664954e302ea4034e5 SHA512 d315283c5e0605e4cddaebc1d891b72a86cd0e6f27693864896ac6557fd4c0f9e748e648b11ae8682d6d47ad9ff0f4c9d63fd4dde09e621886a70828001b8327
-DIST icebreaker-1.9.6.tgz 137333 BLAKE2B 3fdfde734f868493313a2a7b018582f79d6140fa71c1802a27b558d2973968eb9cc01efb55c0b5a45d95cd4d1bc94b66f74809a82853d6d8c0ce1b7bf767e362 SHA512 c3b085dc42d33757011d6d526016477312c5e1cbab4c5584c1e271a1e43b40d61ad1e7f0c96c8f41348550b2e198b3ee7bca65fbef90125dbfa32544cbdf357b
-EBUILD icebreaker-1.9.6-r1.ebuild 981 BLAKE2B 2b0b96b1a997895365a2c93b95176a50e51eb926da689dac2cfe17f550b81e3b7e8a23eb827c85ad85263d29a57f73fd4b8b64b199e844d35ae1397fe0e45c71 SHA512 c39cf3badd6107b1a57d95de7bd5f6521bf9f0d0b88c77e97ebcaf77e8e478c068964d7e8ca64e9f20c8973c1c4baabc09660913bf2d35f746c91988b29ad9fe
-MISC metadata.xml 250 BLAKE2B 8d44bd4c6e7d6491273e2015e36ddac74af7b94a124fd240ff030e16430f5c85e53ab812f0e3e94bb2e6d138f39b512bbe01ff98b0081cacc21a02d648ec7643 SHA512 80ac07a3cac10ad2e72e9989a130b7d2073934fe92914a9db2af4d0e769d4bf537770f8faba0654bbd64a7e85ee38cf1f9d03b4b9cd322864b1b2bb35087d610
+AUX icebreaker-2.2.2_p20231115-makefile.patch 3396 BLAKE2B 985dd52df5ea2e3f7fd10c8397445f70450b761518c96aae9d2fc7ac2a6daa4b49249be28c4a8aa9e8ec4a2d8abc09463d5c86161cd5223b2669a64d8b14d6fc SHA512 c87f3b187ce7372e2434026b811f9e954e481a814db72642b091a9d00c5ce0c4a4a0ee731bb0baf82a1fd75e66c5e6047f409dff52379be611d0238fe4f1af78
+DIST icebreaker-2.2.2_p20231115.tar.gz 538930 BLAKE2B a3f8a1c1c280c260c8fc1b8060575b000a30535e83bd2033fe68726bf02f31cb213c9a46af5fdd89c7d7c042053cd98b037d69b924daeec985b2f04645d10e9d SHA512 02174b8c57578dc269693ad2ce3ebae756490dd55c9f738a1e8dd75b868b6fafc14c7f0e62c5fc49bca797376a0957a647fc9d7c5f4005cdd7cdf7df637567b0
+EBUILD icebreaker-2.2.2_p20231115.ebuild 1078 BLAKE2B 9c5c1ec6af0e9b2c2ebf3aa67100f0b386b041bd924f7c0bcefe222ab6fde44240318d4538d506d2408f45d8137e02317bb26bc2fb94467c82e71614ea051215 SHA512 e51475be361d09fba99d0188620f88ca33ce1693d663dc148629ddfd9f58fa36eca6f9722e40a3801a4e35286f8ade4d18fcfdacc29917bb0d34d3b695cee0f6
+MISC metadata.xml 336 BLAKE2B ceeb2b39ecc087caf819359666ccb15f820c8b96e8a9a6ac1786645ba302c53c98ee12cf34e7939c770f27de37e65cd168566b825a5fd738b7516473d84f538c SHA512 b0d3e620503a3c839e344df1b49581adc998e7b88cc81d5a1b2141cb3bcaebdd25efc2d60cec1b21285da5dd363baa90c49653fe81824e2ccb11ba0236a113e8
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..7d2bd50cb6f0
--- /dev/null
+++ b/games-puzzle/icebreaker/files/icebreaker-2.2.2_p20231115-makefile.patch
@@ -0,0 +1,98 @@
+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/3] 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/3] 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
+
+
+From 40b865e7776962d45e082fed4904b4c2690b753f Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 15 Jun 2024 11:09:45 +0100
+Subject: [PATCH 3/3] Silence error when rpm command doesn't exist and add
+ fallback
+
+The error can trigger QA warnings in non-RPM distros.
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 45a7035..5a497ce 100644
+--- a/Makefile
++++ b/Makefile
+@@ -43,7 +43,7 @@ MAKENSIS=makensis
+ WINDLLS=SDL.dll SDL_mixer.dll libgcc_s_dw2-1.dll libvorbisfile-3.dll libvorbis-0.dll libogg-0.dll libssp-0.dll libwinpthread-1.dll
+ export WINARCH
+
+-RPMARCH := $(shell rpm --eval %{_arch} )
++RPMARCH := $(shell rpm --eval %{_arch} 2>/dev/null || echo none)
+ RPMOPTS=
+ RPMCRAZYDEFINES := --define "_topdir %(pwd)/rpmbuild" --define "_sourcedir %(pwd)" --define "_specdir %(pwd)" --define "_tmppath %(pwd)/rpmbuild/tmp/" --define "_builddir %(pwd)/rpmbuild/build/" --define "_rpmdir %(pwd)" --define "_srcrpmdir %(pwd)" --define "_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm"
+
+--
+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>