diff --git a/aalib/PKGBUILD b/aalib/PKGBUILD index 78758bbf93..ac6b33026c 100644 --- a/aalib/PKGBUILD +++ b/aalib/PKGBUILD @@ -5,30 +5,69 @@ pkgname=aalib pkgver=1.4rc5 _pkgver=1.4.0 -pkgrel=17 +pkgrel=18 pkgdesc='ASCII art graphic library' arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) url='https://aa-project.sourceforge.net/aalib/' -license=('LGPL') +license=('LGPL-2.0-or-later') depends=('glibc' 'gpm' 'libx11' 'ncurses' 'slang') optdepends=('xorg-fonts-misc: x11 driver' 'xorg-mkfontscale: x11 driver') source=("https://downloads.sourceforge.net/aa-project/$pkgname-$pkgver.tar.gz" 'aclocal-fixes.patch' - 'aalib.m4.patch') + 'aalib-m4.patch' + 'aalib-c99.patch' + 'aalib-free-offset-pointer.patch' + 'aalib-aalinuxkbd-return.patch' + 'aalib-key-down-OOB.patch' + 'aalib-opaque-ncurses-fix.patch' + 'aalib-fix-aarender.patch' + 'aalib-mouse.patch') sha256sums=('fbddda9230cf6ee2a4f5706b4b11e2190ae45f5eda1f0409dc4f99b35e0a70ee' 'f40742677a3e0d58c99a09da7574635411156586acd22867e71dd46c88088bce' - '0202545881ec34bd637c04b5896b9b3093609530cc4f85e1d5ffe9a3136d9483') + '0202545881ec34bd637c04b5896b9b3093609530cc4f85e1d5ffe9a3136d9483' + 'a1b61cfc717a23bd4976f03c80b87a1de641f44c26c8133e248006bcbf6c87ea' + 'f6c63a145f9844d6b9e2dc96fa35616ef86278e8888b1f2fe5ce1d2c6f93f128' + '28f2e4148b6987974631e2a2d628422ef9de5ba9ff011a84b79255ccbf8d023a' + '1fbba4b022e2d14981e6595d2eecc8f97f979b25acee4e6871bb415a5bf5da89' + 'da45bd012e0a966ab57158808642441c9c328c9e01a2780e5429f60621f685b5' + '6695a057a21da1c7a5d0a578be76a0d0f052a33bef77e7767ccba76427dc3ea5' + '24be60c5faa3629983d42c979b3bc6f8c2896823417dbf510388683974199a49') prepare() { cd $pkgname-$_pkgver + # Fix warning about underquoted definition of AM_PATH_AALIB + # https://sourceforge.net/p/aa-project/patches/5/ # https://bugs.archlinux.org/task/78787 patch -Np0 -i ../aclocal-fixes.patch + # Fix --with-aalib-prefix argument # https://sourceforge.net/p/aa-project/patches/9/ # https://bugs.archlinux.org/task/53482 - patch -Np0 -i ../aalib.m4.patch + patch -Np0 -i ../aalib-m4.patch + + # Fix builtin-declaration-mismatch compiler warnings + # https://sourceforge.net/p/aa-project/bugs/10/ + patch -Np1 -i ../aalib-c99.patch + + # Fix free-nonheap-object compiler warning + patch -Np1 -i ../aalib-free-offset-pointer.patch + + # Fix aggressive-loop-optimizations compiler warning + patch -Np1 -i ../aalib-key-down-OOB.patch + + # Fix 'return' with no value compiler warning + patch -Np1 -i ../aalib-aalinuxkbd-return.patch + + # Fix build for ncurses built with opaque-curses option + patch -Np1 -i ../aalib-opaque-ncurses-fix.patch + + # Fix rendering with custom aspect ratio + patch -Np1 -i ../aalib-fix-aarender.patch + + # Fix typo for KEY_MOUSE condition + patch -Np1 -i ../aalib-mouse.patch autoreconf -fi } diff --git a/aalib/aalib-aalinuxkbd-return.patch b/aalib/aalib-aalinuxkbd-return.patch new file mode 100644 index 0000000000..40f1f498f6 --- /dev/null +++ b/aalib/aalib-aalinuxkbd-return.patch @@ -0,0 +1,12 @@ +diff -Nur aalib-1.4.0-orig/src/aalinuxkbd.c aalib-1.4.0/src/aalinuxkbd.c +--- aalib-1.4.0-orig/src/aalinuxkbd.c 2001-04-26 16:37:31.000000000 +0200 ++++ aalib-1.4.0/src/aalinuxkbd.c 2005-07-01 22:57:59.000000000 +0200 +@@ -200,7 +200,7 @@ + static int rawmode_init(void) + { + if (!closed) +- return; ++ return 1; + mypid = getpid(); + if (tty_fd == -1) { + tty_fd = fileno(stdin); diff --git a/aalib/aalib-c99.patch b/aalib/aalib-c99.patch new file mode 100644 index 0000000000..2e01feec0c --- /dev/null +++ b/aalib/aalib-c99.patch @@ -0,0 +1,106 @@ +Add additional system header #include directives for more +function prototypes. This avoids implicit function declarations +and build failures with future compilers. + +diff --git a/src/aafire.c b/src/aafire.c +index 4f36149aa84fba57..a59b5c5fa58e085b 100644 +--- a/src/aafire.c ++++ b/src/aafire.c +@@ -1,4 +1,5 @@ + #include ++#include + #include "aalib.h" + + #define XSIZ aa_imgwidth(context) +diff --git a/src/aainfo.c b/src/aainfo.c +index d3f6d50f34590638..f4250ee37ae46134 100644 +--- a/src/aainfo.c ++++ b/src/aainfo.c +@@ -1,3 +1,4 @@ ++#include + + #include "aalib.h" + #include "aaint.h" +diff --git a/src/aakbdreg.c b/src/aakbdreg.c +index def65fe25646d75a..682616313c1b6ebd 100644 +--- a/src/aakbdreg.c ++++ b/src/aakbdreg.c +@@ -1,4 +1,5 @@ + #include ++#include + #include "config.h" + #include "aalib.h" + #include "aaint.h" +diff --git a/src/aalib.c b/src/aalib.c +index 11fecc8fe8ef6b59..1ef12c0dfa9026a4 100644 +--- a/src/aalib.c ++++ b/src/aalib.c +@@ -1,4 +1,5 @@ + #include ++#include + #include + #include + #include "aalib.h" +diff --git a/src/aalinuxkbd.c b/src/aalinuxkbd.c +index c7f388abfe9e8c7f..ea988154518dfc8e 100644 +--- a/src/aalinuxkbd.c ++++ b/src/aalinuxkbd.c +@@ -8,6 +8,7 @@ + */ + + #include "config.h" ++#include + #ifdef LINUX_DRIVER + #include + #include +diff --git a/src/aamoureg.c b/src/aamoureg.c +index 03808289eb59b928..6d807416ae0d3dc2 100644 +--- a/src/aamoureg.c ++++ b/src/aamoureg.c +@@ -1,4 +1,5 @@ + #include ++#include + #include "config.h" + #include "aalib.h" + #include "aaint.h" +diff --git a/src/aaregist.c b/src/aaregist.c +index 54abec0b9797533a..768b8ce29e286b00 100644 +--- a/src/aaregist.c ++++ b/src/aaregist.c +@@ -1,4 +1,5 @@ + #include ++#include + #include "config.h" + #include "aalib.h" + #include "aaint.h" +diff --git a/src/aasavefont.c b/src/aasavefont.c +index b00e1e6d7f181952..864ba225d5ef626c 100644 +--- a/src/aasavefont.c ++++ b/src/aasavefont.c +@@ -1,3 +1,4 @@ ++#include + #include "aalib.h" + int main(int argc, char **argv) + { +diff --git a/src/aatest.c b/src/aatest.c +index 9816f5d855134894..89933cfba6344270 100644 +--- a/src/aatest.c ++++ b/src/aatest.c +@@ -1,3 +1,5 @@ ++#include ++#include + #include "aalib.h" + int main(int argc, char **argv) + { +diff --git a/src/aaxkbd.c b/src/aaxkbd.c +index f16afc63bb565512..44b91458b4bef3bc 100644 +--- a/src/aaxkbd.c ++++ b/src/aaxkbd.c +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + #include "aalib.h" + #include "aaint.h" + #include "aaxint.h" diff --git a/aalib/aalib-fix-aarender.patch b/aalib/aalib-fix-aarender.patch new file mode 100644 index 0000000000..2c3d5bf437 --- /dev/null +++ b/aalib/aalib-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/aalib-free-offset-pointer.patch b/aalib/aalib-free-offset-pointer.patch new file mode 100644 index 0000000000..3ae697e318 --- /dev/null +++ b/aalib/aalib-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/aalib-key-down-OOB.patch b/aalib/aalib-key-down-OOB.patch new file mode 100644 index 0000000000..8078aa5b27 --- /dev/null +++ b/aalib/aalib-key-down-OOB.patch @@ -0,0 +1,23 @@ +diff -Naur a/src/aalinuxkbd.c b/src/aalinuxkbd.c +--- a/src/aalinuxkbd.c 2016-12-19 12:40:26.660039735 +0100 ++++ b/src/aalinuxkbd.c 2016-12-19 12:42:21.692045971 +0100 +@@ -114,6 +114,7 @@ + static int vtswitch_allowed; + + static char key_down[128]; ++static size_t key_down_size = 128; + static int closed = 1; + static int mypid; + +@@ -165,10 +166,7 @@ + + static void blank_key_down(void) + { +- int f; +- +- for (f = 0; f < NR_KEYS; f++) +- key_down[f] = 0; ++ memset(key_down, 0, key_down_size); + } + + diff --git a/aalib/aalib-m4.patch b/aalib/aalib-m4.patch new file mode 100644 index 0000000000..f3add79296 --- /dev/null +++ b/aalib/aalib-m4.patch @@ -0,0 +1,25 @@ +Index: aalib.m4 +=================================================================== +RCS file: /cvsroot/aa-project/aalib/aalib.m4,v +retrieving revision 1.2 +diff -u -r1.2 aalib.m4 +--- aalib.m4 3 May 2001 14:56:44 -0000 1.2 ++++ aalib.m4 28 Mar 2017 08:36:42 -0000 +@@ -40,14 +40,14 @@ + if test "$AALIB_CONFIG" = "no" ; then + no_aalib=yes + else +- AALIB_CFLAGS=`$AALIB_CONFIG $aalibconf_args --cflags` +- AALIB_LIBS=`$AALIB_CONFIG $aalibconf_args --libs` ++ AALIB_CFLAGS=`$AALIB_CONFIG $aalib_args --cflags` ++ AALIB_LIBS=`$AALIB_CONFIG $aalib_args --libs` + + aalib_major_version=`$AALIB_CONFIG $aalib_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + aalib_minor_version=`$AALIB_CONFIG $aalib_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` +- aalib_micro_version=`$AALIB_CONFIG $aalib_config_args --version | \ ++ aalib_micro_version=`$AALIB_CONFIG $aalib_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_aalibtest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" diff --git a/aalib/aalib-mouse.patch b/aalib/aalib-mouse.patch new file mode 100644 index 0000000000..99b07c5ff5 --- /dev/null +++ b/aalib/aalib-mouse.patch @@ -0,0 +1,39 @@ +From 6125c3438e6cf30e1ebd70ca6ac3f1e04481c7a7 Mon Sep 17 00:00:00 2001 +From: Gergely Nagy +Date: Sat, 30 Jun 2012 13:08:13 +0200 +Subject: [PATCH] Typo fix: KEY_MOUDE => KEY_MOUSE + +Patch by Sam Hocevar 17 Nov 2003 + +Origin: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=221243 +--- + src/aacurkbd.c | 2 +- + src/aastdin.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/aacurkbd.c b/src/aacurkbd.c +index 801897b..418b6a3 100644 +--- a/src/aacurkbd.c ++++ b/src/aacurkbd.c +@@ -112,7 +112,7 @@ static int curses_getchar(aa_context * c1, int wait) + return (AA_UP); + case KEY_DOWN: + return (AA_DOWN); +-#ifdef KEY_MOUDE ++#ifdef KEY_MOUSE + case KEY_MOUSE: + #ifdef GPM_MOUSEDRIVER + if (!__curses_usegpm) +diff --git a/src/aastdin.c b/src/aastdin.c +index 696d87b..e2dabe4 100644 +--- a/src/aastdin.c ++++ b/src/aastdin.c +@@ -88,7 +88,7 @@ static int stdin_getchar(aa_context * c1, int wait) + if (c > 0 && c < 127 && c != 127) + return (c); + switch (c) { +-#ifdef KEY_MOUDE ++#ifdef KEY_MOUSE + case KEY_MOUSE: + return AA_MOUSE + #endif diff --git a/aalib/aalib-opaque-ncurses-fix.patch b/aalib/aalib-opaque-ncurses-fix.patch new file mode 100644 index 0000000000..42c430c308 --- /dev/null +++ b/aalib/aalib-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;