diff options
author | Pacho Ramos <pacho@gentoo.org> | 2018-04-16 21:52:59 +0200 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2018-04-16 22:26:26 +0200 |
commit | de4b7db665badb939dadb36e8ad6bb6917e183e2 (patch) | |
tree | fa8cddaff72a171ebd910b2362ca02e4fa0101dd /games-arcade/frozen-bubble | |
parent | games-arcade/fishsupper: Drop old (diff) | |
download | gentoo-de4b7db665badb939dadb36e8ad6bb6917e183e2.tar.gz gentoo-de4b7db665badb939dadb36e8ad6bb6917e183e2.tar.bz2 gentoo-de4b7db665badb939dadb36e8ad6bb6917e183e2.zip |
games-arcade/frozen-bubble: Stop using games.eclass, apply Fedora fixes
Package-Manager: Portage-2.3.28, Repoman-2.3.9
Diffstat (limited to 'games-arcade/frozen-bubble')
3 files changed, 154 insertions, 2 deletions
diff --git a/games-arcade/frozen-bubble/files/frozen-bubble-2.2.1_beta1-Werror.patch b/games-arcade/frozen-bubble/files/frozen-bubble-2.2.1_beta1-Werror.patch index d891d8e71a63..0573e50fee94 100644 --- a/games-arcade/frozen-bubble/files/frozen-bubble-2.2.1_beta1-Werror.patch +++ b/games-arcade/frozen-bubble/files/frozen-bubble-2.2.1_beta1-Werror.patch @@ -2,8 +2,8 @@ From: Julian Ospald <hasufell@gentoo.org> Date: Sun Feb 10 14:48:58 UTC 2013 Subject: remove Werror compiler flag wrt #456654 ---- inc/My/Builder.pm -+++ inc/My/Builder.pm +--- a/inc/My/Builder.pm ++++ b/inc/My/Builder.pm @@ -123,7 +123,7 @@ push @ofiles, $cbuilder->compile( source => catfile($server_directory, $cfile), diff --git a/games-arcade/frozen-bubble/files/frozen-bubble-2.2.1_beta1-fix-buffer-size.patch b/games-arcade/frozen-bubble/files/frozen-bubble-2.2.1_beta1-fix-buffer-size.patch new file mode 100644 index 000000000000..b1b3bfcb1edb --- /dev/null +++ b/games-arcade/frozen-bubble/files/frozen-bubble-2.2.1_beta1-fix-buffer-size.patch @@ -0,0 +1,69 @@ +From aa2ce32185b4477e659ed7c70d09c440610ef67b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> +Date: Fri, 2 Feb 2018 12:44:15 +0100 +Subject: [PATCH] Fix buffer size when formatting current date +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +gcc-8 and glibc-2.26.9000 reports this error: + +server/log.c:64:54: error: '%03d' directive output may be truncated writing between 3 and 11 bytes into a region of size between 0 and 49 [-Werror=format-truncation=] + snprintf(current_date, sizeof(current_date), "%s.%03d", buf, (int)(1000 * (time-seconds))); + ^~~~ + +This patch fixes two mistakes in the get_current_date() function: + +First strftime() can fail and then buf content is undefined. The patch +makes sure the buf content is properly null-termited. + +Second if strftime() uses up the the whole buf array, no space will be +left for appending miliseconds to current_date value in the subsequent +snprintf() call. The patch increases current_data size so that things +will always fit. + +In reality, all this should not matter because sane strftime() will +return fixed-lenght string. But for all the cases and for sake of the +compiler check this patch should be applied. + +Signed-off-by: Petr Písař <ppisar@redhat.com> +--- + server/log.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/server/log.c b/server/log.c +index 2fe7b7c..f696752 100644 +--- a/server/log.c ++++ b/server/log.c +@@ -52,15 +52,17 @@ double get_current_time_exact(void) + return (double) now.tv_sec + now.tv_usec / 1e6; // bad bad idea to use float as precision is not down to the seconds then + } + +-char current_date[50]; ++char current_date[70]; + char* get_current_date(void) + { + struct tm * lt; + char buf[50]; + double time = get_current_time_exact(); + time_t seconds = (time_t)time; ++ size_t length; + lt = localtime(&seconds); +- strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", lt); ++ length = strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", lt); ++ buf[length] = '\0'; + snprintf(current_date, sizeof(current_date), "%s.%03d", buf, (int)(1000 * (time-seconds))); + return current_date; + } +diff -up frozen-bubble-2.2.1-beta1/server/log.h~ frozen-bubble-2.2.1-beta1/server/log.h +--- frozen-bubble-2.2.1-beta1/server/log.h~ 2010-08-07 15:36:27.000000000 +0200 ++++ frozen-bubble-2.2.1-beta1/server/log.h 2018-02-08 14:09:52.472451694 +0100 +@@ -23,7 +23,7 @@ + time_t get_current_time(void); + double get_current_time_exact(void); + +-extern char current_date[50]; ++extern char current_date[70]; + char* get_current_date(void); + + enum output_types { OUTPUT_TYPE_DEBUG, OUTPUT_TYPE_CONNECT, OUTPUT_TYPE_INFO, OUTPUT_TYPE_ERROR }; diff --git a/games-arcade/frozen-bubble/frozen-bubble-2.2.1_beta1-r1.ebuild b/games-arcade/frozen-bubble/frozen-bubble-2.2.1_beta1-r1.ebuild new file mode 100644 index 000000000000..9315ab5159ba --- /dev/null +++ b/games-arcade/frozen-bubble/frozen-bubble-2.2.1_beta1-r1.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +MY_P="${P/_/-}" + +inherit desktop gnome2-utils perl-module toolchain-funcs + +DESCRIPTION="A Puzzle Bubble clone written in perl (now with network support)" +HOMEPAGE="http://www.frozen-bubble.org/" +SRC_URI="http://www.frozen-bubble.org/data/${MY_P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +RDEPEND=" + >=dev-lang/perl-5.12 + dev-libs/glib:2 + >=dev-perl/Alien-SDL-1.413 + dev-perl/Compress-Bzip2 + dev-perl/File-ShareDir + dev-perl/File-Slurp + dev-perl/File-Which + dev-perl/IPC-System-Simple + >=dev-perl/SDL-2.511 + media-libs/sdl-image[gif,png] + media-libs/sdl-mixer[vorbis] + media-libs/sdl-pango + media-libs/sdl-ttf + virtual/libiconv + virtual/perl-Getopt-Long + virtual/perl-IO +" +DEPEND="${RDEPEND} + virtual/pkgconfig + dev-perl/Locale-Maketext-Lexicon + virtual/perl-ExtUtils-CBuilder + virtual/perl-ExtUtils-ParseXS + dev-perl/Module-Build +" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + perl-module_src_prepare + eapply "${FILESDIR}"/${P}-Werror.patch + eapply "${FILESDIR}"/${P}-fix-buffer-size.patch +} + +src_configure() { + LD=$(tc-getCC) perl-module_src_configure +} + +src_compile() { + LD=$(tc-getCC) perl-module_src_compile +} + +src_install() { + mydoc="AUTHORS Changes HISTORY README" perl-module_src_install + newdoc server/README README.server + newdoc server/init/README README.server.init + + local res + for res in 16 32 48 64; do + newicon -s ${res} share/icons/frozen-bubble-icon-${res}x${res}.png ${PN}.png + done + + make_desktop_entry ${PN} Frozen-Bubble +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + gnome2_icon_cache_update +} + +pkg_postrm() { + gnome2_icon_cache_update +} |