Switch to new package format

This commit is contained in:
2026-06-13 19:58:46 +03:00
parent 6f5320c0fe
commit 6e66ebf596
13 changed files with 351 additions and 48 deletions
+23
View File
@@ -0,0 +1,23 @@
name: aalib
description: Portable ascii art GFX library
version: 1.4rc5
revision: 2
url: https://aa-project.sourceforge.net/aalib/
license: LGPL2-or-later
maintainers:
- [email protected]
architecture: any
type: source
depends:
- glibc
- gpm
- libx11
- ncurses
- slang
optional_depends:
- xorg-mkfontscale
downloads:
- url: https://downloads.sourceforge.net/project/aa-project/aa-lib/${BPM_PKG_VERSION}/aalib-${BPM_PKG_VERSION}.tar.gz
extract_to: ${BPM_SOURCE}
extract_strip_components: 1
checksum: fbddda9230cf6ee2a4f5706b4b11e2190ae45f5eda1f0409dc4f99b35e0a70ee
-9
View File
@@ -1,9 +0,0 @@
name: aalib
description: Portable ascii art GFX library
version: 1.4rc5
url: https://aa-project.sourceforge.net/aalib/
license: LGPL2-or-later
architecture: any
depends: ["glibc","gpm","libx11","ncurses","slang"]
optional_depends: ["xorg-mkfontscale"]
type: source
+50
View File
@@ -0,0 +1,50 @@
# This is the recipe.sh script. It is executed by BPM in a temporary directory when compiling a source package
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
# The prepare function is executed in the root of the temp directory
# This function is used for downloading files and putting them into the correct location
prepare() {
cd "$BPM_SOURCE"
# Fix warning about underquoted definition of AM_PATH_AALIB
# https://sourceforge.net/p/aa-project/patches/5/
patch -Np0 -i ../aclocal-fixes.patch
# Fix --with-aalib-prefix argument
# https://sourceforge.net/p/aa-project/patches/9/
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
# Fix build (too many arguments)
sed -i 's/Gpm_Wgetch(stdscr)/Gpm_Wgetch()/' src/aacurkbd.c
autoreconf -fi
}
# The build function is executed in the source directory
# This function is used to compile the source code
build() {
./configure --prefix=/usr --with-curses-driver --disable-static
make
}
# The package function is executed in the source directory
# This function is used to move the compiled files into the output directory
package() {
make DESTDIR="$BPM_OUTPUT" install
install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/aalib/COPYING
}
@@ -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
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"
+34
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])))];
@@ -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;
}
+23
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
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
View File
@@ -0,0 +1,39 @@
From 6125c3438e6cf30e1ebd70ca6ac3f1e04481c7a7 Mon Sep 17 00:00:00 2001
From: Gergely Nagy <[email protected]>
Date: Sat, 30 Jun 2012 13:08:13 +0200
Subject: [PATCH] Typo fix: KEY_MOUDE => KEY_MOUSE
Patch by Sam Hocevar <[email protected]> 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
@@ -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;
+11
View File
@@ -0,0 +1,11 @@
--- aalib.m4.orig 2006-03-05 13:58:21.000000000 +0000
+++ aalib.m4 2006-03-05 13:58:32.000000000 +0000
@@ -9,7 +9,7 @@
dnl AM_PATH_AALIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for AALIB, and define AALIB_CFLAGS and AALIB_LIBS
dnl
-AC_DEFUN(AM_PATH_AALIB,
+AC_DEFUN([AM_PATH_AALIB],
[dnl
dnl Get the cflags and libraries from the aalib-config script
dnl
-39
View File
@@ -1,39 +0,0 @@
# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
DOWNLOAD="https://downloads.sourceforge.net/aa-project/aalib-${BPM_PKG_VERSION}.tar.gz"
FILENAME="${DOWNLOAD##*/}"
# The prepare function is executed in the root of the temp directory
# This function is used for downloading files and putting them into the correct location
prepare() {
wget "$DOWNLOAD"
tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE"
}
# The build function is executed in the source directory
# This function is used to compile the source code
build() {
# Fixes
sed -i -e '/AM_PATH_AALIB,/s/AM_PATH_AALIB/[&]/' aalib.m4
sed -e 's/8x13bold/-*-luxi mono-bold-r-normal--13-120-*-*-m-*-*-*/' -i src/aax.c
sed 's/stdscr->_max\([xy]\) + 1/getmax\1(stdscr)/' -i src/aacurses.c
sed -i '1i#include <stdlib.h>' src/aa{fire,info,lib,linuxkbd,savefont,test,regist}.c
sed -i '1i#include <string.h>' src/aa{kbdreg,moureg,test,regist}.c
sed -i '/X11_KBDDRIVER/a#include <X11/Xutil.h>' src/aaxkbd.c
sed -i '/rawmode_init/,/^}/s/return;/return 0;/' src/aalinuxkbd.c
autoconf
./configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --with-ncurses=/usr --disable-static
make
}
# The package function is executed in the source directory
# This function is used to move the compiled files into the output directory
package() {
make DESTDIR="$BPM_OUTPUT" install
install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/aalib/COPYING
}