git: 1b7bb2a4d773 - main - audio/aeolus: New port: Synthesised pipe organ emulator

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 05 May 2022 04:51:21 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1b7bb2a4d77342cf7fe341c999fa6405ebbae94c

commit 1b7bb2a4d77342cf7fe341c999fa6405ebbae94c
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-05-05 04:50:50 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-05-05 04:50:50 +0000

    audio/aeolus: New port: Synthesised pipe organ emulator
---
 audio/Makefile                       |  1 +
 audio/aeolus/Makefile                | 33 +++++++++++++++++++++++++++++++++
 audio/aeolus/distinfo                |  3 +++
 audio/aeolus/files/patch-Makefile    | 20 ++++++++++++++++++++
 audio/aeolus/files/patch-addsynth.cc | 36 ++++++++++++++++++++++++++++++++++++
 audio/aeolus/files/patch-global.h    | 21 +++++++++++++++++++++
 audio/aeolus/files/patch-imidi.h     | 20 ++++++++++++++++++++
 audio/aeolus/pkg-descr               | 13 +++++++++++++
 audio/aeolus/pkg-message             | 11 +++++++++++
 9 files changed, 158 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index 21de9bb29f25..dfd0e46a77a6 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -11,6 +11,7 @@
     SUBDIR += abgate-lv2
     SUBDIR += abx
     SUBDIR += adplay
+    SUBDIR += aeolus
     SUBDIR += afsp
     SUBDIR += aften
     SUBDIR += alac
diff --git a/audio/aeolus/Makefile b/audio/aeolus/Makefile
new file mode 100644
index 000000000000..6f4cbc0c30fb
--- /dev/null
+++ b/audio/aeolus/Makefile
@@ -0,0 +1,33 @@
+PORTNAME=	aeolus
+DISTVERSION=	0.10.1
+CATEGORIES=	audio
+MASTER_SITES=	http://kokkinizita.linuxaudio.org/linuxaudio/downloads/
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Synthesised pipe organ emulator
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/../COPYING
+
+LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libclthreads.so:devel/clthreads \
+		libclxclient.so:devel/clxclient \
+		libjack.so:audio/jack \
+		libzita-alsa-pcmi.so:audio/zita-alsa-pcmi
+
+USES=		gmake localbase:ldflags pkgconfig readline tar:bz2 xorg
+USE_XORG=	x11 xft
+
+WRKSRC_SUBDIR=	source
+
+PLIST_FILES=	bin/aeolus \
+		lib/aeolus_txt.so \
+		lib/aeolus_x11.so
+
+post-install:
+	@${STRIP_CMD} \
+		${STAGEDIR}${PREFIX}/bin/aeolus \
+		${STAGEDIR}${PREFIX}/lib/aeolus_txt.so \
+		${STAGEDIR}${PREFIX}/lib/aeolus_x11.so
+
+.include <bsd.port.mk>
diff --git a/audio/aeolus/distinfo b/audio/aeolus/distinfo
new file mode 100644
index 000000000000..6e2a1178adee
--- /dev/null
+++ b/audio/aeolus/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1651724187
+SHA256 (aeolus-0.10.1.tar.bz2) = ad9cf1a70fb46ab7f9971aa4dfac0a2bda0ec35f95b6b3b6cbb9b87070b1c196
+SIZE (aeolus-0.10.1.tar.bz2) = 66475
diff --git a/audio/aeolus/files/patch-Makefile b/audio/aeolus/files/patch-Makefile
new file mode 100644
index 000000000000..be5b6464b581
--- /dev/null
+++ b/audio/aeolus/files/patch-Makefile
@@ -0,0 +1,20 @@
+--- Makefile.orig	2022-05-05 04:29:49 UTC
++++ Makefile
+@@ -21,7 +21,7 @@
+ SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/')
+ PREFIX ?= /usr/local
+ BINDIR ?= $(PREFIX)/bin
+-LIBDIR ?= $(PREFIX)/lib$(SUFFIX)
++LIBDIR ?= $(PREFIX)/lib
+ 
+ VERSION = 0.10.3
+ CPPFLAGS += -MMD -MP -DVERSION=\"$(VERSION)\" -DLIBDIR=\"$(LIBDIR)\"
+@@ -75,7 +75,7 @@ install:	aeolus aeolus_x11.so aeolus_txt.so 
+ 	install -m 755 aeolus $(DESTDIR)$(BINDIR)
+ 	install -m 755 aeolus_x11.so $(DESTDIR)$(LIBDIR)
+ 	install -m 755 aeolus_txt.so $(DESTDIR)$(LIBDIR)
+-	ldconfig $(PREFIX)/$(LIBDIR)
++	#ldconfig $(PREFIX)/$(LIBDIR)
+ 
+ 
+ clean:
diff --git a/audio/aeolus/files/patch-addsynth.cc b/audio/aeolus/files/patch-addsynth.cc
new file mode 100644
index 000000000000..3696ae37cf17
--- /dev/null
+++ b/audio/aeolus/files/patch-addsynth.cc
@@ -0,0 +1,36 @@
+--- addsynth.cc.orig	2022-05-05 04:20:20 UTC
++++ addsynth.cc
+@@ -102,13 +102,13 @@ void N_func::clrv (int i)
+ 
+ void N_func::write (FILE *F)
+ {
+-#ifdef __BYTE_ORDER
+-#if (__BYTE_ORDER == __LITTLE_ENDIAN)
++#ifdef _BYTE_ORDER
++#if (_BYTE_ORDER == _LITTLE_ENDIAN)
+ 
+     fwrite (&_b, 1, sizeof (int32_t), F);
+     fwrite (_v, N_NOTE, sizeof (float), F);
+ 
+-#elif (__BYTE_ORDER == __BIG_ENDIAN)
++#elif (_BYTE_ORDER == _BIG_ENDIAN)
+ 
+     int  i;
+     char d [N_NOTE * sizeof (float)];
+@@ -130,13 +130,13 @@ void N_func::write (FILE *F)
+ 
+ void N_func::read (FILE *F)
+ {
+-#ifdef __BYTE_ORDER
+-#if (__BYTE_ORDER == __LITTLE_ENDIAN)
++#ifdef _BYTE_ORDER
++#if (_BYTE_ORDER == _LITTLE_ENDIAN)
+ 
+     fread (&_b, 1, sizeof (int32_t), F);
+     fread (&_v, N_NOTE, sizeof (float), F);
+ 
+-#elif (__BYTE_ORDER == __BIG_ENDIAN)
++#elif (_BYTE_ORDER == _BIG_ENDIAN)
+ 
+     int  i;
+     char d [sizeof (int) + N_NOTE * sizeof (float)];
diff --git a/audio/aeolus/files/patch-global.h b/audio/aeolus/files/patch-global.h
new file mode 100644
index 000000000000..eaa4e44e0c90
--- /dev/null
+++ b/audio/aeolus/files/patch-global.h
@@ -0,0 +1,21 @@
+--- global.h.orig	2022-05-05 04:18:20 UTC
++++ global.h
+@@ -21,14 +21,14 @@
+ #ifndef __GLOBAL_H
+ #define __GLOBAL_H
+ 
+-#include <endian.h>
+-#ifdef __BYTE_ORDER
+-#if (__BYTE_ORDER == __LITTLE_ENDIAN)
++#include <sys/endian.h>
++#ifdef _BYTE_ORDER
++#if (_BYTE_ORDER == _LITTLE_ENDIAN)
+ #define WR2(p,v) { (p)[0] = v; (p)[1] = v >> 8; }
+ #define WR4(p,v) { (p)[0] = v; (p)[1] = v >> 8;  (p)[2] = v >> 16;  (p)[3] = v >> 24; }
+ #define RD2(p) ((p)[0] + ((p)[1] << 8));
+ #define RD4(p) ((p)[0] + ((p)[1] << 8) + ((p)[2] << 16) + ((p)[3] << 24));
+-#elif (__BYTE_ORDER == __BIG_ENDIAN)
++#elif (_BYTE_ORDER == _BIG_ENDIAN)
+ #define WR2(p,v) { (p)[1] = v; (p)[0] = v >> 8; }
+ #define WR4(p,v) { (p)[3] = v; (p)[2] = v >> 8;  (p)[1] = v >> 16;  (p)[0] = v >> 24; }
+ #define RD2(p) ((p)[1] + ((p)[0] << 8));
diff --git a/audio/aeolus/files/patch-imidi.h b/audio/aeolus/files/patch-imidi.h
new file mode 100644
index 000000000000..4051b193667a
--- /dev/null
+++ b/audio/aeolus/files/patch-imidi.h
@@ -0,0 +1,20 @@
+--- imidi.h.orig	2022-05-05 04:24:13 UTC
++++ imidi.h
+@@ -25,7 +25,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <clthreads.h>
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #include <alsa/asoundlib.h>
+ #endif
+ #ifdef __APPLE__
+@@ -61,7 +61,7 @@ class Imidi : public A_thread (private)
+     Lfq_u8         *_qmidi; 
+     uint16_t       *_midimap;
+     const char     *_appname;
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+     snd_seq_t      *_handle;
+ #endif
+ #ifdef __APPLE__
diff --git a/audio/aeolus/pkg-descr b/audio/aeolus/pkg-descr
new file mode 100644
index 000000000000..3be9f88265f4
--- /dev/null
+++ b/audio/aeolus/pkg-descr
@@ -0,0 +1,13 @@
+Aeolus is a synthesised (i.e. not sampled) pipe organ emulator that
+should be good enough to make an organist enjoy playing it. It is a
+software synthesiser optimised for this job, with possibly hundreds
+of controls for each stop, that enable the user to "voice" his
+instrument. First presented at the 2nd LAD conference in Karlsruhe,
+end of April 2004.
+
+Main features of the default instrument: three manuals and one pedal,
+five different temperaments, variable tuning, MIDI control of course,
+stereo, surround or Ambisonics output, flexible audio controls
+including a large church reverb.
+
+WWW: https://kokkinizita.linuxaudio.org/linuxaudio/aeolus/
diff --git a/audio/aeolus/pkg-message b/audio/aeolus/pkg-message
new file mode 100644
index 000000000000..8ff8bbb2d6ec
--- /dev/null
+++ b/audio/aeolus/pkg-message
@@ -0,0 +1,11 @@
+[
+{ type: install
+  message: <<EOM
+You installed aeolus: synthesised pipe organ emulator.
+
+In order to use it you need to install and run alsa-seq-server which
+creates /dev/snd/seq that is required by aeolus.
+
+EOM
+}
+]