Date: Tue, 29 May 2018 07:06:16 +0000 (UTC) From: Yuri Victorovich <yuri@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r471081 - in head/audio: . fabla2-lv2 fabla2-lv2/files Message-ID: <201805290706.w4T76Glr039350@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: yuri Date: Tue May 29 07:06:15 2018 New Revision: 471081 URL: https://svnweb.freebsd.org/changeset/ports/471081 Log: New port: audio/fabla2-lv2: Sampler with multiple layers, banks, pads, integrated FX and routing Added: head/audio/fabla2-lv2/ head/audio/fabla2-lv2/Makefile (contents, props changed) head/audio/fabla2-lv2/distinfo (contents, props changed) head/audio/fabla2-lv2/files/ head/audio/fabla2-lv2/files/mntent.h (contents, props changed) head/audio/fabla2-lv2/files/mntent_compat.c++ (contents, props changed) head/audio/fabla2-lv2/files/patch-src_picojson.hxx (contents, props changed) head/audio/fabla2-lv2/files/patch-src_ui_avtk_avtk_picojson.hxx (contents, props changed) head/audio/fabla2-lv2/pkg-descr (contents, props changed) Modified: head/audio/Makefile Modified: head/audio/Makefile ============================================================================== --- head/audio/Makefile Tue May 29 06:26:39 2018 (r471080) +++ head/audio/Makefile Tue May 29 07:06:15 2018 (r471081) @@ -144,6 +144,7 @@ SUBDIR += ezstream SUBDIR += faac SUBDIR += faad + SUBDIR += fabla2-lv2 SUBDIR += fapg SUBDIR += faust SUBDIR += fcplay Added: head/audio/fabla2-lv2/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/fabla2-lv2/Makefile Tue May 29 07:06:15 2018 (r471081) @@ -0,0 +1,36 @@ +# $FreeBSD$ + +PORTNAME= fabla2 +DISTVERSION= g20180331 +CATEGORIES= audio +PKGNAMESUFFIX= -lv2 + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Sampler with multiple layers, banks, pads, integrated FX and routing + +LICENSE= GPLv2 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= lv2>0:audio/lv2 +LIB_DEPENDS= libsamplerate.so:audio/libsamplerate \ + libsndfile.so:audio/libsndfile + +USES= cmake:outsource pkgconfig +USE_GITHUB= yes +GH_ACCOUNT= openAVproductions +GH_PROJECT= openAV-Fabla2 +GH_TAGNAME= 33f4062 +USE_GNOME= cairo +USE_XORG= x11 + +CFLAGS+= -I${FILESDIR} + +PLIST_FILES= lib/lv2/fabla2.lv2/fabla2.so \ + lib/lv2/fabla2.lv2/fabla2.ttl \ + lib/lv2/fabla2.lv2/fabla2ui.so \ + lib/lv2/fabla2.lv2/manifest.ttl + +post-patch: + @${REINPLACE_CMD} -e 's|GLOB srcUI |GLOB srcUI ${FILESDIR}/mntent_compat.c++ |' ${WRKSRC}/CMakeLists.txt + +.include <bsd.port.mk> Added: head/audio/fabla2-lv2/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/fabla2-lv2/distinfo Tue May 29 07:06:15 2018 (r471081) @@ -0,0 +1,3 @@ +TIMESTAMP = 1527575329 +SHA256 (openAVproductions-openAV-Fabla2-g20180331-33f4062_GH0.tar.gz) = 457e43c30eeb1094e2661fd920755819d36628d6dd0a413f162fb67fe0924efe +SIZE (openAVproductions-openAV-Fabla2-g20180331-33f4062_GH0.tar.gz) = 390586 Added: head/audio/fabla2-lv2/files/mntent.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/fabla2-lv2/files/mntent.h Tue May 29 07:06:15 2018 (r471081) @@ -0,0 +1,62 @@ +/* + * mntent + * mntent.h - compatability header for FreeBSD + * + * Copyright (c) 2001 David Rufino <daverufino@btinternet.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(HAVE_MNTENT_H) +#include <mntent.h> +#else +#ifndef _MNTENT_H +#define _MNTENT_H +#include <stdio.h> + +#define MOUNTED "dummy" + +#define MNTTYPE_NFS "nfs" + +struct mntent { + char *mnt_fsname; + char *mnt_dir; + char *mnt_type; + char *mnt_opts; + int mnt_freq; + int mnt_passno; +}; + +#define setmntent(x,y) ((FILE *)0x1) +#ifdef __cplusplus +extern "C" { +#endif +struct mntent *getmntent __P ((FILE *fp)); +char *hasmntopt __P ((const struct mntent *mnt, const char *option)); +#ifdef __cplusplus +}; // extern "C" +#endif +#define endmntent(x) ((int)1) + +#endif /* _MNTENT_H */ +#endif /* HAVE_MNTENT_H */ Added: head/audio/fabla2-lv2/files/mntent_compat.c++ ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/fabla2-lv2/files/mntent_compat.c++ Tue May 29 07:06:15 2018 (r471081) @@ -0,0 +1,179 @@ +/* + * Copyright (c) 1980, 1989, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * Copyright (c) 2001 + * David Rufino <daverufino@btinternet.com> + * Copyright (c) 2006 + * Stanislav Sedov <ssedov@mbsd.msk.ru> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* most of this was ripped from the mount(3) source */ + +//#include "config.h" +#include "mntent.h" +#include <stdlib.h> +#include <string.h> +#include <sys/param.h> +#include <sys/ucred.h> +#include <sys/mount.h> + +static int pos = -1; +static int mntsize = -1; +static struct mntent _mntent; + +struct { + int m_flag; + const char *m_option; +} mntoptions[] = { + { MNT_ASYNC, "async" }, + { MNT_NOATIME, "noatime"}, + { MNT_NOEXEC, "noexec"}, + { MNT_NOSUID, "nosuid"}, + { MNT_NOSYMFOLLOW, "nosymfollow"}, + { MNT_SYNCHRONOUS, "sync"}, + { MNT_UNION, "union"}, + { MNT_NOCLUSTERR, "noclusterr"}, + { static_cast<int>(MNT_NOCLUSTERW), "noclusterw"}, + { MNT_SUIDDIR, "suiddir"}, +#ifdef MNT_SNAPSHOT + { MNT_SNAPSHOT, "snapshot"}, +#endif +#ifdef MNT_MULTILABEL + { MNT_MULTILABEL, "multilabel"}, +#endif +#ifdef MNT_ACLS + { MNT_ACLS, "acls"}, +#endif +#ifdef MNT_NODEV + { MNT_NODEV, "nodev"}, +#endif +}; + +#define N_OPTS (sizeof(mntoptions) / sizeof(*mntoptions)) + + +extern "C" { + +char * +hasmntopt (const struct mntent *mnt, const char *option) +{ + int found; + char *opt, *optbuf; + + optbuf = strdup(mnt->mnt_opts); + found = 0; + for (opt = optbuf; (opt = strtok(opt, " ")) != NULL; opt = NULL) { + if (!strcasecmp(opt, option)) { + opt = opt - optbuf + mnt->mnt_opts; + free (optbuf); + return (opt); + } + } + free (optbuf); + return (NULL); +} + +static char * +catopt (char *s0, const char *s1) +{ + size_t newlen; + char *cp; + + if (s1 == NULL || *s1 == '\0') + return s0; + + if (s0 != NULL) { + newlen = strlen(s0) + strlen(s1) + 1 + 1; + if ((cp = (char *)realloc(s0, newlen)) == NULL) + return (NULL); + + (void)strcat(cp, " "); + (void)strcat(cp, s1); + } else + cp = strdup(s1); + + return (cp); +} + + +static char * +flags2opts (int flags) +{ + char *res = NULL; + int i; + + res = catopt(res, (flags & MNT_RDONLY) ? "ro" : "rw"); + + for (i = 0; i < N_OPTS; i++) + if (flags & mntoptions[i].m_flag) + res = catopt(res, mntoptions[i].m_option); + return res; +} + +static struct mntent * +statfs_to_mntent (struct statfs *mntbuf) +{ + static char opts_buf[40], *tmp; + + _mntent.mnt_fsname = mntbuf->f_mntfromname; + _mntent.mnt_dir = mntbuf->f_mntonname; + _mntent.mnt_type = mntbuf->f_fstypename; + tmp = flags2opts (mntbuf->f_flags); + if (tmp) { + opts_buf[sizeof(opts_buf) - 1] = '\0'; + strncpy (opts_buf, tmp, sizeof(opts_buf)-1); + free (tmp); + } else { + *opts_buf = '\0'; + } + _mntent.mnt_opts = opts_buf; + _mntent.mnt_freq = _mntent.mnt_passno = 0; + return (&_mntent); +} + +struct mntent * +getmntent (FILE *fp) +{ + struct statfs *mntbuf; + + if (pos == -1 || mntsize == -1) + mntsize = getmntinfo (&mntbuf, MNT_NOWAIT); + + ++pos; + if (pos == mntsize) { + pos = mntsize = -1; + return (NULL); + } + + return (statfs_to_mntent (&mntbuf[pos])); +} + +}; // extern "C" Added: head/audio/fabla2-lv2/files/patch-src_picojson.hxx ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/fabla2-lv2/files/patch-src_picojson.hxx Tue May 29 07:06:15 2018 (r471081) @@ -0,0 +1,11 @@ +--- src/picojson.hxx.orig 2018-05-29 06:32:18 UTC ++++ src/picojson.hxx +@@ -204,7 +204,7 @@ inline value::value(double n) : type_(nu + #ifdef _MSC_VER + ! _finite(n) + #elif __cplusplus>=201103L || !(defined(isnan) && defined(isinf)) +- std::isnan(n) || std::isinf(n) ++ isnanf(n) || isinf(n) + #else + isnan(n) || isinf(n) + #endif Added: head/audio/fabla2-lv2/files/patch-src_ui_avtk_avtk_picojson.hxx ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/fabla2-lv2/files/patch-src_ui_avtk_avtk_picojson.hxx Tue May 29 07:06:15 2018 (r471081) @@ -0,0 +1,11 @@ +--- src/ui/avtk/avtk/picojson.hxx.orig 2018-05-29 06:34:11 UTC ++++ src/ui/avtk/avtk/picojson.hxx +@@ -204,7 +204,7 @@ inline value::value(double n) : type_(nu + #ifdef _MSC_VER + ! _finite(n) + #elif __cplusplus>=201103L || !(defined(isnan) && defined(isinf)) +- std::isnan(n) || std::isinf(n) ++ isnanf(n) || isinf(n) + #else + isnan(n) || isinf(n) + #endif Added: head/audio/fabla2-lv2/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/audio/fabla2-lv2/pkg-descr Tue May 29 07:06:15 2018 (r471081) @@ -0,0 +1,5 @@ +Fabla2 is an advanced sampler with multiple layers, banks, pads, integrated FX +and routing. There is a range of features that make Fabla2 really powerful to +use. + +WWW: http://openavproductions.com/fabla2/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805290706.w4T76Glr039350>