* update aalib to 1.4rc5-18

This commit is contained in:
Alexander Baldeck 2024-05-11 21:22:30 +02:00
parent b48ceb37ee
commit 76a96c101a
9 changed files with 311 additions and 5 deletions

View File

@ -5,30 +5,69 @@
pkgname=aalib pkgname=aalib
pkgver=1.4rc5 pkgver=1.4rc5
_pkgver=1.4.0 _pkgver=1.4.0
pkgrel=17 pkgrel=18
pkgdesc='ASCII art graphic library' pkgdesc='ASCII art graphic library'
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
url='https://aa-project.sourceforge.net/aalib/' url='https://aa-project.sourceforge.net/aalib/'
license=('LGPL') license=('LGPL-2.0-or-later')
depends=('glibc' 'gpm' 'libx11' 'ncurses' 'slang') depends=('glibc' 'gpm' 'libx11' 'ncurses' 'slang')
optdepends=('xorg-fonts-misc: x11 driver' optdepends=('xorg-fonts-misc: x11 driver'
'xorg-mkfontscale: x11 driver') 'xorg-mkfontscale: x11 driver')
source=("https://downloads.sourceforge.net/aa-project/$pkgname-$pkgver.tar.gz" source=("https://downloads.sourceforge.net/aa-project/$pkgname-$pkgver.tar.gz"
'aclocal-fixes.patch' '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' sha256sums=('fbddda9230cf6ee2a4f5706b4b11e2190ae45f5eda1f0409dc4f99b35e0a70ee'
'f40742677a3e0d58c99a09da7574635411156586acd22867e71dd46c88088bce' 'f40742677a3e0d58c99a09da7574635411156586acd22867e71dd46c88088bce'
'0202545881ec34bd637c04b5896b9b3093609530cc4f85e1d5ffe9a3136d9483') '0202545881ec34bd637c04b5896b9b3093609530cc4f85e1d5ffe9a3136d9483'
'a1b61cfc717a23bd4976f03c80b87a1de641f44c26c8133e248006bcbf6c87ea'
'f6c63a145f9844d6b9e2dc96fa35616ef86278e8888b1f2fe5ce1d2c6f93f128'
'28f2e4148b6987974631e2a2d628422ef9de5ba9ff011a84b79255ccbf8d023a'
'1fbba4b022e2d14981e6595d2eecc8f97f979b25acee4e6871bb415a5bf5da89'
'da45bd012e0a966ab57158808642441c9c328c9e01a2780e5429f60621f685b5'
'6695a057a21da1c7a5d0a578be76a0d0f052a33bef77e7767ccba76427dc3ea5'
'24be60c5faa3629983d42c979b3bc6f8c2896823417dbf510388683974199a49')
prepare() { prepare() {
cd $pkgname-$_pkgver 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 # https://bugs.archlinux.org/task/78787
patch -Np0 -i ../aclocal-fixes.patch patch -Np0 -i ../aclocal-fixes.patch
# Fix --with-aalib-prefix argument
# https://sourceforge.net/p/aa-project/patches/9/ # https://sourceforge.net/p/aa-project/patches/9/
# https://bugs.archlinux.org/task/53482 # 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 autoreconf -fi
} }

View File

@ -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);

106
aalib/aalib-c99.patch Normal file
View File

@ -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 <stdio.h>
+#include <stdlib.h>
#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 <stdlib.h>
#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 <malloc.h>
+#include <string.h>
#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 <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#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 <stdlib.h>
#ifdef LINUX_DRIVER
#include <sys/time.h>
#include <sys/types.h>
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 <malloc.h>
+#include <string.h>
#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 <malloc.h>
+#include <string.h>
#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 <stdlib.h>
#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 <stdlib.h>
+#include <string.h>
#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 <X11/Xlib.h>
#include <X11/keysymdef.h>
#include <X11/keysym.h>
+#include <X11/Xutil.h>
#include "aalib.h"
#include "aaint.h"
#include "aaxint.h"

View File

@ -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])))];

View File

@ -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;
}

View File

@ -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);
}

25
aalib/aalib-m4.patch Normal file
View File

@ -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"

39
aalib/aalib-mouse.patch Normal file
View File

@ -0,0 +1,39 @@
From 6125c3438e6cf30e1ebd70ca6ac3f1e04481c7a7 Mon Sep 17 00:00:00 2001
From: Gergely Nagy <algernon@madhouse-project.org>
Date: Sat, 30 Jun 2012 13:08:13 +0200
Subject: [PATCH] Typo fix: KEY_MOUDE => KEY_MOUSE
Patch by Sam Hocevar <sam@zoy.org> 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

View File

@ -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;