diff --git a/0001-Fix-buffer-size-when-formatting-current-date.patch b/0001-Fix-buffer-size-when-formatting-current-date.patch new file mode 100644 index 0000000..b1b3bfc --- /dev/null +++ b/0001-Fix-buffer-size-when-formatting-current-date.patch @@ -0,0 +1,69 @@ +From aa2ce32185b4477e659ed7c70d09c440610ef67b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +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ř +--- + 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/frozen-bubble-2.2.1-Use-true-number-instead-of-quoted-version-number.patch b/frozen-bubble-2.2.1-Use-true-number-instead-of-quoted-version-number.patch new file mode 100644 index 0000000..4f3c5e8 --- /dev/null +++ b/frozen-bubble-2.2.1-Use-true-number-instead-of-quoted-version-number.patch @@ -0,0 +1,12 @@ +diff -up frozen-bubble-2.2.1-beta1/inc/My/Builder.pm.orig frozen-bubble-2.2.1-beta1/inc/My/Builder.pm +--- frozen-bubble-2.2.1-beta1/inc/My/Builder.pm.orig 2024-05-06 10:59:53.637978092 +0200 ++++ frozen-bubble-2.2.1-beta1/inc/My/Builder.pm 2024-05-06 11:00:10.886123628 +0200 +@@ -8,7 +8,7 @@ use File::Copy qw(move); + use File::Slurp qw(read_file write_file); + use File::Spec::Functions qw(catdir catfile rootdir); + use IO::File qw(); +-use Module::Build '0.36' => qw(); ++use Module::Build 0.36 qw(); + use autodie qw(:all move read_file write_file); + use parent 'Module::Build'; + use Locale::Maketext::Extract; diff --git a/frozen-bubble.spec b/frozen-bubble.spec index 331105f..ef9774f 100644 --- a/frozen-bubble.spec +++ b/frozen-bubble.spec @@ -3,14 +3,16 @@ Summary: Frozen Bubble arcade game Name: frozen-bubble Version: 2.2.1 -Release: 0.21.beta1%{?dist} -License: GPLv2 -Group: Amusements/Games +Release: 0.53.beta1%{?dist} +# Automatically converted from old format: GPLv2 - review is highly recommended. +License: GPL-2.0-only URL: http://www.frozen-bubble.org/ Source0: http://www.frozen-bubble.org/data/frozen-bubble-%{version}-beta1.tar.bz2 Source1: frozen-bubble.desktop Source2: fb-server.service Patch0: frozen-bubble-2.2.1-setuid.patch +Patch1: 0001-Fix-buffer-size-when-formatting-current-date.patch +Patch2: frozen-bubble-2.2.1-Use-true-number-instead-of-quoted-version-number.patch BuildRequires: /usr/bin/appstream-util BuildRequires: desktop-file-utils BuildRequires: gettext @@ -34,7 +36,6 @@ BuildRequires: SDL_mixer-devel BuildRequires: SDL_Pango-devel Requires: perl(SDL) >= 2.511 Requires: perl(Alien::SDL) >= 1.413 -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: hicolor-icon-theme %{?perl_default_filter} @@ -48,7 +49,6 @@ You need this game. %package server Summary: Frozen Bubble network game dedicated server -Group: System Environment/Daemons Requires(post): systemd Requires(preun): systemd Requires(postun): systemd @@ -62,14 +62,18 @@ Frozen Bubble network game server. %prep -%setup -q -n %{name}-%{version}-beta1 -%patch0 -p1 +%autosetup -p1 -n %{name}-%{version}-beta1 # Rename this README since the main server README has the same name %{__mv} server/init/README server/README.init # Change the example server configuration file to be a working one, which only # launches a LAN server and doesn't try to register itself on the Internet %{__sed} -ie "s#^a .*#z\nq\nL#" server/init/fb-server.conf +# Create a sysusers.d config file +cat >frozen-bubble.sysusers.conf < http://www.frozen-bubble.org/ - https://www.filepicker.io/api/file/zfCHFlCsR4OnStuPBwmQ - http://blog.kii.com/wp-content/uploads/2013/06/frozenbubble.jpg - https://www.filepicker.io/api/file/eqPdEWZMTtS1Un1LoRQ0 + https://upload.wikimedia.org/wikipedia/commons/d/d6/Frozen-bubble.jpg + http://www.frozen-bubble.org/data/fb2-5p.png - contact2_at_frozen-bubble.org + contact2_at_frozen-bubble.org EOF +install -m0644 -D frozen-bubble.sysusers.conf %{buildroot}%{_sysusersdir}/frozen-bubble.conf + %check ./Build test appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/frozen-bubble.appdata.xml -%post -touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : - -%postun -if [ $1 -eq 0 ] ; then - touch --no-create %{_datadir}/icons/hicolor &>/dev/null - gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi - -%posttrans -gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - %post server -/usr/sbin/useradd -r -s /sbin/nologin -d %{_datadir}/%{name} fbubble \ - &>/dev/null || : %systemd_post fb-server.service %preun server @@ -197,9 +188,108 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %config(noreplace) %{_sysconfdir}/fb-server.conf %{_unitdir}/fb-server.service %{_bindir}/fb-server +%{_sysusersdir}/frozen-bubble.conf %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 2.2.1-0.53.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jul 07 2025 Jitka Plesnikova - 2.2.1-0.52.beta1 +- Perl 5.42 rebuild + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 2.2.1-0.51.beta1 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Thu Jan 16 2025 Fedora Release Engineering - 2.2.1-0.50.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Jul 29 2024 Miroslav Suchý - 2.2.1-0.49.beta1 +- convert license to SPDX + +* Wed Jul 17 2024 Fedora Release Engineering - 2.2.1-0.48.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jun 11 2024 Jitka Plesnikova - 2.2.1-0.47.beta1 +- Perl 5.40 rebuild + +* Mon May 06 2024 Jitka Plesnikova - 2.2.1-0.46.beta1 +- Using a quoted version number in a version check instead of a true number + is error since perl 5.39.1 + +* Wed Jan 24 2024 Fedora Release Engineering - 2.2.1-0.45.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2.2.1-0.44.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 2.2.1-0.43.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 Jitka Plesnikova - 2.2.1-0.42.beta1 +- Perl 5.38 rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 2.2.1-0.41.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 2.2.1-0.40.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jun 01 2022 Jitka Plesnikova - 2.2.1-0.39.beta1 +- Perl 5.36 rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 2.2.1-0.38.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 2.2.1-0.37.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun May 23 2021 Jitka Plesnikova - 2.2.1-0.36.beta1 +- Perl 5.34 rebuild + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.2.1-0.35.beta1 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Sun Feb 21 2021 René Genz - 2.2.1-0.34.beta1 +- fix AppData screenshots and update_contact + +* Tue Jan 26 2021 Fedora Release Engineering - 2.2.1-0.33.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.2.1-0.32.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 23 2020 Jitka Plesnikova - 2.2.1-0.31.beta1 +- Perl 5.32 rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 2.2.1-0.30.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 2.2.1-0.29.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri May 31 2019 Jitka Plesnikova - 2.2.1-0.28.beta1 +- Perl 5.30 rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 2.2.1-0.27.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 2.2.1-0.26.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Jitka Plesnikova - 2.2.1-0.25.beta1 +- Perl 5.28 rebuild + +* Thu Feb 08 2018 Hans de Goede - 2.2.1-0.24.beta1 +- Fix FTBFS (patch from Petr Písař) (rhbz#1541359) + +* Wed Feb 07 2018 Fedora Release Engineering - 2.2.1-0.23.beta1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 11 2018 Igor Gnatenko - 2.2.1-0.22.beta1 +- Remove obsolete scriptlets + * Wed Aug 02 2017 Fedora Release Engineering - 2.2.1-0.21.beta1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild