From 39b0b936152ef02c6a00a8a0afc3bd8c3cb409ea Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Sat, 10 Feb 2024 06:39:21 -0500 Subject: [PATCH] fix FTBFS, cleanups, gentoo patches --- aalib-1.4_rc5-fix-aarender.patch | 34 ++++++++++++++++++++++ aalib-1.4_rc5-free-offset-pointer.patch | 14 +++++++++ aalib-1.4rc5-opaque-ncurses-fix.patch | 14 +++++++++ aalib.spec | 38 ++++++++++++++++++------- 4 files changed, 89 insertions(+), 11 deletions(-) create mode 100644 aalib-1.4_rc5-fix-aarender.patch create mode 100644 aalib-1.4_rc5-free-offset-pointer.patch create mode 100644 aalib-1.4rc5-opaque-ncurses-fix.patch diff --git a/aalib-1.4_rc5-fix-aarender.patch b/aalib-1.4_rc5-fix-aarender.patch new file mode 100644 index 0000000..2c3d5bf --- /dev/null +++ b/aalib-1.4_rc5-fix-aarender.patch @@ -0,0 +1,34 @@ +This bug can be seen very clearly with e.g. mplayer -vo aa -monitoraspect 3 +in which case a big part of the picture is missing or there is even completely +black output. + +The reason for this is, when drawing only a part of the picture via aarender() +the first X coordinate is used for the loop count, but it is not applied to the +destination and source image index, thus instead of (re)drawing the middle part +of the image, it draws always the left part. + +Actual Results: +only the left part of the image is draw (depending on the video, only the left +black bar might be draw, so you will see nothing at all - if so use a slightly +smaller value for -monitoraspect). + +Expected Results: +All of the image should be drawn, and -monitoraspect should only squeeze the +image, not cause part of it to miss. + +Gentoo-bug: http://bugs.gentoo.org/id=214142 +Reported-by: Reimar Döffinger +Fixed-by: Reimar Döffinger +--- a/src/aarender.c.orig 2008-03-18 23:55:32.000000000 +0100 ++++ b/src/aarender.c 2008-03-18 23:55:50.000000000 +0100 +@@ -94,8 +94,8 @@ + gamma = randomval / 2; + mval = (c->parameters[c->filltable[255]].p[4]); + for (y = y1; y < y2; y++) { +- pos = 2 * y * wi; +- pos1 = y * aa_scrwidth(c); ++ pos = 2 * (y * wi + x1); ++ pos1 = y * aa_scrwidth(c) + x1; + esum = 0; + for (x = x1; x < x2; x++) { + i1 = table[((((int) c->imagebuffer[pos])))]; diff --git a/aalib-1.4_rc5-free-offset-pointer.patch b/aalib-1.4_rc5-free-offset-pointer.patch new file mode 100644 index 0000000..3ae697e --- /dev/null +++ b/aalib-1.4_rc5-free-offset-pointer.patch @@ -0,0 +1,14 @@ +--- a/src/aarender.c ++++ b/src/aarender.c +@@ -63,10 +63,10 @@ void aa_renderpalette(aa_context * c, __ + errors[0] = calloc(1, (x2 + 5) * sizeof(int)); + if (errors[0] == NULL) + dither = AA_ERRORDISTRIB; +- errors[0] += 3; + errors[1] = calloc(1, (x2 + 5) * sizeof(int)); + if (errors[1] == NULL) + free(errors[0]), dither = AA_ERRORDISTRIB; ++ errors[0] += 3; + errors[1] += 3; + cur = 0; + } diff --git a/aalib-1.4rc5-opaque-ncurses-fix.patch b/aalib-1.4rc5-opaque-ncurses-fix.patch new file mode 100644 index 0000000..42c430c --- /dev/null +++ b/aalib-1.4rc5-opaque-ncurses-fix.patch @@ -0,0 +1,14 @@ +diff -up aalib-1.4.0/src/aacurses.c.opaque-ncurses-fix aalib-1.4.0/src/aacurses.c +--- aalib-1.4.0/src/aacurses.c.opaque-ncurses-fix 2024-02-10 06:32:32.008267145 -0500 ++++ aalib-1.4.0/src/aacurses.c 2024-02-10 06:33:38.648245270 -0500 +@@ -71,8 +71,8 @@ static void curses_getsize(aa_context * + { + if (__resized_curses) + curses_uninit(c), curses_init(&c->params, NULL,&c->driverparams, NULL), __resized_curses = 0; +- *width = stdscr->_maxx + 1; +- *height = stdscr->_maxy + 1; ++ *width = getmaxx(stdscr); ++ *height = getmaxy(stdscr); + #ifdef GPM_MOUSEDRIVER + gpm_mx = *width; + gpm_my = *height; diff --git a/aalib.spec b/aalib.spec index 3f8c27d..1a7b0f1 100644 --- a/aalib.spec +++ b/aalib.spec @@ -3,8 +3,8 @@ Summary: ASCII art library Name: aalib Version: 1.4.0 -Release: 0.49.%{rc_subver}%{?dist} -License: LGPLv2+ +Release: 0.50.%{rc_subver}%{?dist} +License: LGPL-2.1-or-later URL: http://aa-project.sourceforge.net/aalib/ Source0: http://download.sourceforge.net/aa-project/%{name}-1.4%{rc_subver}.tar.gz Patch0: aalib-aclocal.patch @@ -13,10 +13,16 @@ Patch2: aalib-1.4rc5-bug149361.patch Patch3: aalib-1.4rc5-rpath.patch Patch4: aalib-1.4rc5-x_libs.patch Patch5: aalib-1.4rc5-libflag.patch -Patch6: aalib-c99.patch +Patch6: aalib-c99.patch +Patch7: https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/aalib/files/aalib-1.4_rc5-free-offset-pointer.patch +Patch8: https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/aalib/files/aalib-1.4_rc5-fix-aarender.patch +# Modern ncurses has an opaque WINDOW structure (you cannot address its members directly) +# Use the getmaxx() and getmaxy() functions provided by ncurses instead. +Patch9: aalib-1.4rc5-opaque-ncurses-fix.patch + BuildRequires: slang-devel libXt-devel gpm-devel ncurses-devel BuildRequires: autoconf libtool -BuildRequires: make +BuildRequires: make %description AA-lib is a low level gfx library just as many other libraries are. The @@ -41,13 +47,16 @@ with aalib. %prep %setup -q -%patch0 -p0 -%patch1 -p0 -%patch2 -p1 -b .bug149361 -%patch3 -p1 -b .rpath -%patch4 -p1 -b .x_libs -%patch5 -p0 -b .libflag -%patch6 -p1 +%patch -P0 -p0 +%patch -P1 -p0 +%patch -P2 -p1 -b .bug149361 +%patch -P3 -p1 -b .rpath +%patch -P4 -p1 -b .x_libs +%patch -P5 -p0 -b .libflag +%patch -P6 -p1 +%patch -P7 -p1 -b .free-offset-pointer +%patch -P8 -p1 -b .fix-aarender +%patch -P9 -p1 -b .opaque-ncurses-fix # included libtool is too old, we need to rebuild autoreconf -v -f -i @@ -87,6 +96,13 @@ touch -r NEWS $RPM_BUILD_ROOT%{_bindir}/aalib-config $RPM_BUILD_ROOT%{_datadir}/ %{_datadir}/aclocal/aalib.m4 %changelog +* Sat Feb 10 2024 Tom Callaway - 1.4.0-0.50.rc5 +- apply two fixes from gentoo +- fix aalib to handle opaque WINDOW in ncurses +- fix license tag +- fix patch macro syntax +- fixes FTBFS + * Mon Jan 22 2024 Fedora Release Engineering - 1.4.0-0.49.rc5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild