git: d92825bc02a5 - main - audio/ladish: New port: Session management system for JACK

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 19 Dec 2023 03:25:15 UTC
The branch main has been updated by yuri:

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

commit d92825bc02a5000b5fe5e3085897971692de6a3f
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-12-19 01:53:38 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-12-19 03:25:12 +0000

    audio/ladish: New port: Session management system for JACK
---
 audio/Makefile                                    |  1 +
 audio/ladish/Makefile                             | 57 +++++++++++++++++++++++
 audio/ladish/distinfo                             |  3 ++
 audio/ladish/files/patch-alsapid_alsapid.h        | 11 +++++
 audio/ladish/files/patch-alsapid_helper.c         | 11 +++++
 audio/ladish/files/patch-daemon_app__supervisor.c | 10 ++++
 audio/ladish/files/patch-daemon_loader.c          | 22 +++++++++
 audio/ladish/files/patch-proxies_graph__proxy.h   | 10 ++++
 audio/ladish/pkg-descr                            |  6 +++
 audio/ladish/pkg-plist                            | 27 +++++++++++
 10 files changed, 158 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index b5174af0dbfd..06e19a0561db 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -324,6 +324,7 @@
     SUBDIR += kmix
     SUBDIR += komposter
     SUBDIR += kwave
+    SUBDIR += ladish
     SUBDIR += ladspa
     SUBDIR += lame
     SUBDIR += lash
diff --git a/audio/ladish/Makefile b/audio/ladish/Makefile
new file mode 100644
index 000000000000..2d49f7168a1d
--- /dev/null
+++ b/audio/ladish/Makefile
@@ -0,0 +1,57 @@
+PORTNAME=	ladish
+DISTVERSION=	1.1
+DISTVERSIONSUFFIX=	-g36c489e4
+CATEGORIES=	audio
+MASTER_SITES=	https://dl.ladish.org/ladish/
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Session management system for JACK
+WWW=		https://ladish.org/
+
+LICENSE=	GPLv3
+
+LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libdbus-1.so:devel/dbus \
+		libexpat.so:textproc/expat2 \
+		libjack.so:audio/jack \
+		libuuid.so:misc/e2fsprogs-libuuid
+
+USES=		tar:bz2 localbase:ldflags pkgconfig python shebangfix waf
+USE_PERL5=	configure
+
+SHEBANG_FILES=	ladish_control
+
+OPTIONS_DEFINE=		GUI
+OPTIONS_DEFAULT=	GUI
+OPTIONS_SUB=		yes
+
+GUI_USES=		gettext gnome
+GUI_USE=		GNOME=atkmm,cairo,gdkpixbuf2,gtk20,gtkmm24,libgnomecanvas,pango,intltool:build
+GUI_VARS=		CONFIGURE_ARGS=--enable-gladish
+GUI_BUILD_DEPENDS=	${LOCALBASE}/include/boost/shared_ptr.hpp:devel/boost-libs
+GUI_LIB_DEPENDS=	libdbus-glib-1.so:devel/dbus-glib \
+			libfontconfig.so:x11-fonts/fontconfig \
+			libfreetype.so:print/freetype2 \
+			libgnomecanvasmm-2.6.so:graphics/libgnomecanvasmm26 \
+			libharfbuzz.so:print/harfbuzz
+
+post-install:
+	# strip
+	@cd ${STAGEDIR}${PREFIX} && \
+		${STRIP_CMD} \
+			bin/jmcore \
+			bin/ladishd \
+			bin/ladiconfd \
+			lib/libalsapid.so
+	# remove unnecessary files
+	@${RM} -rf \
+		${STAGEDIR}${DATADIR}/COPYING
+
+post-install-GUI-on:
+	#/usr/local/share/ladish/gladish.ui
+	# strip
+	@cd ${STAGEDIR}${PREFIX} && \
+		${STRIP_CMD} \
+			bin/gladish
+
+.include <bsd.port.mk>
diff --git a/audio/ladish/distinfo b/audio/ladish/distinfo
new file mode 100644
index 000000000000..cae0e55d6e5d
--- /dev/null
+++ b/audio/ladish/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1702937580
+SHA256 (ladish-1.1-g36c489e4.tar.bz2) = 37a11899ce472d6cefa5a53d7de47a410f15120983b6255e82f5110573310b16
+SIZE (ladish-1.1-g36c489e4.tar.bz2) = 656723
diff --git a/audio/ladish/files/patch-alsapid_alsapid.h b/audio/ladish/files/patch-alsapid_alsapid.h
new file mode 100644
index 000000000000..566ef453e6ad
--- /dev/null
+++ b/audio/ladish/files/patch-alsapid_alsapid.h
@@ -0,0 +1,11 @@
+--- alsapid/alsapid.h.orig	2023-12-18 22:37:53 UTC
++++ alsapid/alsapid.h
+@@ -29,6 +29,8 @@
+ 
+ #include "../common.h"
+ 
++#include <unistd.h> // for pid_t
++
+ void alsapid_compose_src_link(int alsa_client_id, char * buffer);
+ void alsapid_compose_dst_link(char * buffer);
+ bool alsapid_get_pid(int alsa_client_id, pid_t * pid_ptr);
diff --git a/audio/ladish/files/patch-alsapid_helper.c b/audio/ladish/files/patch-alsapid_helper.c
new file mode 100644
index 000000000000..edbcc3ea5a65
--- /dev/null
+++ b/audio/ladish/files/patch-alsapid_helper.c
@@ -0,0 +1,11 @@
+--- alsapid/helper.c.orig	2023-12-18 22:35:47 UTC
++++ alsapid/helper.c
+@@ -33,6 +33,8 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ 
++#include <libgen.h>
++
+ void alsapid_compose_src_link(int alsa_client_id, char * buffer)
+ {
+   sprintf(buffer, "/tmp/alsapid-%lld-%d", (long long)getuid(), alsa_client_id);
diff --git a/audio/ladish/files/patch-daemon_app__supervisor.c b/audio/ladish/files/patch-daemon_app__supervisor.c
new file mode 100644
index 000000000000..391de6a73328
--- /dev/null
+++ b/audio/ladish/files/patch-daemon_app__supervisor.c
@@ -0,0 +1,10 @@
+--- daemon/app_supervisor.c.orig	2023-12-18 22:40:21 UTC
++++ daemon/app_supervisor.c
+@@ -30,6 +30,7 @@
+ #include <sys/stat.h>
+ #include <signal.h>
+ #include <unistd.h>
++#include <sys/wait.h>
+ 
+ #include "app_supervisor.h"
+ #include "../dbus_constants.h"
diff --git a/audio/ladish/files/patch-daemon_loader.c b/audio/ladish/files/patch-daemon_loader.c
new file mode 100644
index 000000000000..13312c9c7a0b
--- /dev/null
+++ b/audio/ladish/files/patch-daemon_loader.c
@@ -0,0 +1,22 @@
+--- daemon/loader.c.orig	2023-12-18 22:30:22 UTC
++++ daemon/loader.c
+@@ -30,10 +30,18 @@
+ 
+ #include <unistd.h>
+ #include <fcntl.h>
+-#include <pty.h>                /* forkpty() */
++#if !defined(__FreeBSD__)
++#  include <pty.h>                /* forkpty() */
++#else
++#  include <sys/types.h>
++#  include <sys/ioctl.h>
++#  include <termios.h>
++#  include <libutil.h>
++#endif
+ #include <sys/wait.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
++#include <signal.h>
+ 
+ #include "loader.h"
+ #include "../proxies/conf_proxy.h"
diff --git a/audio/ladish/files/patch-proxies_graph__proxy.h b/audio/ladish/files/patch-proxies_graph__proxy.h
new file mode 100644
index 000000000000..56ee5572c35a
--- /dev/null
+++ b/audio/ladish/files/patch-proxies_graph__proxy.h
@@ -0,0 +1,10 @@
+--- proxies/graph_proxy.h.orig	2023-12-18 22:32:12 UTC
++++ proxies/graph_proxy.h
+@@ -28,6 +28,7 @@
+ #define GRAPH_PROXY_H__61D1ED56_E33B_4F50_B45B_F520979E8AA7__INCLUDED
+ 
+ #include "common.h"
++#include <unistd.h>
+ 
+ typedef struct graph_proxy_tag { int unused; } * graph_proxy_handle;
+ 
diff --git a/audio/ladish/pkg-descr b/audio/ladish/pkg-descr
new file mode 100644
index 000000000000..1c07748df086
--- /dev/null
+++ b/audio/ladish/pkg-descr
@@ -0,0 +1,6 @@
+LADI Session Handler or simply ladish is a session management system for JACK
+applications on GNU/Linux. Its aim is to allow you to have many different audio
+programs running at once, to save their setup, close them down and then easily
+reload the setup at some other time. ladish doesn't deal with any kind of audio
+or MIDI data itself; it just runs programs, deals with saving/loading
+(arbitrary) data and connects JACK ports together.
diff --git a/audio/ladish/pkg-plist b/audio/ladish/pkg-plist
new file mode 100644
index 000000000000..550080aabad4
--- /dev/null
+++ b/audio/ladish/pkg-plist
@@ -0,0 +1,27 @@
+%%GUI%%bin/gladish
+bin/jmcore
+bin/ladiconfd
+bin/ladish_control
+bin/ladishd
+lib/libalsapid.so
+%%GUI%%share/applications/gladish.desktop
+share/dbus-1/services/org.ladish.conf.service
+share/dbus-1/services/org.ladish.jmcore.service
+share/dbus-1/services/org.ladish.service
+%%GUI%%share/icons/hicolor/16x16/apps/gladish.png
+%%GUI%%share/icons/hicolor/22x22/apps/gladish.png
+%%GUI%%share/icons/hicolor/24x24/apps/gladish.png
+%%GUI%%share/icons/hicolor/256x256/apps/gladish.png
+%%GUI%%share/icons/hicolor/32x32/apps/gladish.png
+%%GUI%%share/icons/hicolor/48x48/apps/gladish.png
+%%GUI%%%%DATADIR%%/gladish.ui
+%%GUI%%%%DATADIR%%/ladish-logo-128x128.png
+%%GUI%%%%DATADIR%%/status_down.png
+%%GUI%%%%DATADIR%%/status_error.png
+%%GUI%%%%DATADIR%%/status_started.png
+%%GUI%%%%DATADIR%%/status_stopped.png
+%%GUI%%%%DATADIR%%/status_unloaded.png
+%%GUI%%%%DATADIR%%/status_warning.png
+%%GUI%%share/locale/de/LC_MESSAGES/ladish.mo
+%%GUI%%share/locale/fr/LC_MESSAGES/ladish.mo
+%%GUI%%share/locale/ru/LC_MESSAGES/ladish.mo