audio/xwax: New port: Open-source vinyl emulation software

This commit is contained in:
Yuri Victorovich 2024-06-25 01:54:09 -07:00
parent 1b05f803c7
commit 87fb42bf34
9 changed files with 152 additions and 0 deletions

View file

@ -889,6 +889,7 @@
SUBDIR += xsynth-dssi
SUBDIR += xuidesigner
SUBDIR += xwave
SUBDIR += xwax
SUBDIR += yell
SUBDIR += ympd
SUBDIR += yoshimi

39
audio/xwax/Makefile Normal file
View file

@ -0,0 +1,39 @@
PORTNAME= xwax
DISTVERSION= 1.9
CATEGORIES= audio
MASTER_SITES= https://www.xwax.co.uk/releases/
MAINTAINER= yuri@FreeBSD.org
COMMENT= Open-source vinyl emulation software
WWW= https://wiki.xwax.org/
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libjack.so:audio/jack
RUN_DEPENDS= bash:shells/bash \
${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:x11-fonts/dejavu
USES= compiler:c++11-lang gmake iconv localbase:ldflags sdl shebangfix
USE_SDL= sdl ttf
SHEBANG_FILES= scan
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-jack \
--enable-oss
LDFLAGS+= -liconv -lm
PLIST_FILES= bin/xwax \
libexec/xwax-import \
libexec/xwax-scan \
share/man/man1/xwax.1.gz
post-patch:
@${REINPLACE_CMD} -e 's|/usr/|${LOCALBASE}/|' ${WRKSRC}/interface.c
post-install:
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xwax
.include <bsd.port.mk>

3
audio/xwax/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1719277040
SHA256 (xwax-1.9.tar.gz) = 9bed8fa143182818650361f49257755bf891f143161066aaa7bca8c6cce9f632
SIZE (xwax-1.9.tar.gz) = 87599

View file

@ -0,0 +1,23 @@
--- Makefile.orig 2024-06-25 02:10:13 UTC
+++ Makefile
@@ -137,13 +137,13 @@ install:
.PHONY: install
install:
- $(INSTALL) -D xwax $(DESTDIR)$(BINDIR)/xwax
- $(INSTALL) -D scan $(DESTDIR)$(EXECDIR)/xwax-scan
- $(INSTALL) -D import $(DESTDIR)$(EXECDIR)/xwax-import
- $(INSTALL) -D -m 0644 xwax.1 $(DESTDIR)$(MANDIR)/man1/xwax.1
- $(INSTALL) -D -m 0644 CHANGES $(DESTDIR)$(DOCDIR)/xwax/CHANGES
- $(INSTALL) -D -m 0644 COPYING $(DESTDIR)$(DOCDIR)/xwax/COPYING
- $(INSTALL) -D -m 0644 README $(DESTDIR)$(DOCDIR)/xwax/README
+ $(INSTALL) xwax $(DESTDIR)$(BINDIR)/xwax
+ $(INSTALL) scan $(DESTDIR)$(EXECDIR)/xwax-scan
+ $(INSTALL) import $(DESTDIR)$(EXECDIR)/xwax-import
+ $(INSTALL) -m 0644 xwax.1 $(DESTDIR)$(MANDIR)/man1/xwax.1
+ #$(INSTALL) -m 0644 CHANGES $(DESTDIR)$(DOCDIR)/xwax/CHANGES
+ #$(INSTALL) -m 0644 COPYING $(DESTDIR)$(DOCDIR)/xwax/COPYING
+ #$(INSTALL) -m 0644 README $(DESTDIR)$(DOCDIR)/xwax/README
# Distribution archive from Git source code

View file

@ -0,0 +1,10 @@
--- excrate.c.orig 2024-06-25 01:52:31 UTC
+++ excrate.c
@@ -28,6 +28,7 @@
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sys/signal.h>
#include <sys/wait.h>
#include "debug.h"

View file

@ -0,0 +1,34 @@
--- interface.c.orig 2023-05-12 17:27:59 UTC
+++ interface.c
@@ -414,11 +414,12 @@ static int do_draw_text(SDL_Surface *sf, const struct
src.h = 0;
} else {
+ char *in = NULL;
if (!locale) {
rendered = TTF_RenderText_Shaded(font, buf, fg, bg);
} else {
char ubuf[256], /* fixed buffer is reasonable for rendering */
- *in, *out;
+ *out;
size_t len, fill;
out = ubuf;
@@ -427,7 +428,7 @@ static int do_draw_text(SDL_Surface *sf, const struct
if (iconv(utf, NULL, NULL, &out, &fill) == -1)
abort();
- in = strdupa(buf);
+ in = strdup(buf);
len = strlen(in);
(void)iconv(utf, &in, &len, &out, &fill);
@@ -446,6 +447,8 @@ static int do_draw_text(SDL_Surface *sf, const struct
SDL_BlitSurface(rendered, &src, sf, &dst);
SDL_FreeSurface(rendered);
+
+ //free(in); // this crashes with free() enabled for unknown reason, it's better to just lose the memory here
}
/* Complete the remaining space with a blank rectangle */

View file

@ -0,0 +1,31 @@
--- library.c.orig 2024-06-25 01:59:59 UTC
+++ library.c
@@ -603,12 +603,13 @@ int library_import(struct library *li, const char *sca
char *cratename, *pathname;
struct crate *crate;
- pathname = strdupa(path);
+ pathname = strdup(path);
cratename = basename(pathname); /* POSIX version, see basename(3) */
assert(cratename != NULL);
crate = malloc(sizeof *crate);
if (crate == NULL) {
+ free(pathname);
perror("malloc");
return -1;
}
@@ -619,11 +620,13 @@ int library_import(struct library *li, const char *sca
if (add_crate(li, crate) == -1)
goto fail_crate;
+ free(pathname);
return 0;
fail_crate:
crate_clear(crate);
fail:
+ free(pathname);
free(crate);
return -1;

View file

@ -0,0 +1,10 @@
--- track.c.orig 2024-06-25 02:02:16 UTC
+++ track.c
@@ -22,6 +22,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
+#include <sys/signal.h>
#include <sys/wait.h>
#include <sys/mman.h> /* mlock() */

1
audio/xwax/pkg-descr Normal file
View file

@ -0,0 +1 @@
xwax is an open source vinyl emulation software project.