Bug 208443 - [NEW PORT] audio/supercollider - Programming language for real time audio synthesis
Summary: [NEW PORT] audio/supercollider - Programming language for real time audio syn...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Tobias Kortkamp
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-01 00:59 UTC by Tobias Brodel
Modified: 2017-03-20 16:31 UTC (History)
2 users (show)

See Also:


Attachments
.shar for audio/supercollider (116.92 KB, text/plain)
2016-04-01 00:59 UTC, Tobias Brodel
no flags Details
.shar for audio/supercollider (115.88 KB, text/plain)
2017-03-15 22:35 UTC, Tobias Brodel
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Brodel 2016-04-01 00:59:24 UTC
Created attachment 168856 [details]
.shar for audio/supercollider

SuperCollider is a programming language for real time audio synthesis and algorithmic composition.

The language interpreter runs in a cross platform IDE and communicates via Open Sound Control with one or more synthesis servers. The SuperCollider synthesis server runs in a separate process or even on a separate machine so it is ideal for realtime networked music.

WWW: http://supercollider.github.io/
Comment 1 Tobias Brodel 2016-04-01 01:03:42 UTC
poudriere log: http://pub.tbrodel.me/FreeBSD/supercollider-3.7.0.log
Comment 2 Tobias Kortkamp freebsd_committer freebsd_triage 2017-03-03 12:05:08 UTC
Hi Tobias,

are you still interested in maintaining this port?  It has been some time and
some things have changed in the ports tree and there is a new Supercollider release, so this could use an update.  I also have some comments on your
submission, but more on that later.
Comment 3 Tobias Brodel 2017-03-06 00:34:10 UTC
(In reply to Tobias Kortkamp from comment #2)

Hi Tobias,

Yes I definitely am, it'd be great to see SuperCollider in the ports tree.

As you can see it's nearly a year since I uploaded this port, I'd like to have a run at updating it to re-familiarise myself with it, which might take some time.

Any feedback you have in the meantime would be much appreciated.

Cheers,
t/
Comment 4 Tobias Kortkamp freebsd_committer freebsd_triage 2017-03-13 11:38:00 UTC
(In reply to Tobias Brodel from comment #3)
See inline comments for some feedback.

If you can, please test the port with Portlint, and Poudriere or
Synth.

If that is not possible, portlint -AC will give you valuable feedback
as well.  As will setting DEVELOPER=1 in /etc/make.conf and running
`make stage-qa` and `make check-plist`.

You're free to submit an SVN or Git diff instead of a .shar if you want to.

Index: supercollider/Makefile
===================================================================
--- supercollider/Makefile	(nonexistent)
+++ supercollider/Makefile	(working copy)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+PORTNAME=	supercollider
+PORTVERSION=	3.7.0
+CATEGORIES=	audio
+MASTER_SITES=	http://pub.tbrodel.me/FreeBSD/ports/distfiles/

Please fetch from the offical site and not your own mirror.  It's ok
to add yours but add an offical mirror first.

I don't think USE_GITHUB is applicable here. Supercollider seems to
release tarballs with some bundled dependencies.  I believe
https://github.com/supercollider/supercollider/releases has
-Source.tar.bz2 tarballs that can be used.

+
+MAINTAINER=	brittlehaus@gmail.com
+COMMENT=	Programming language for real time audio synthesis
+
+LICENSE=	GPLv2+

Please add LICENSE_FILE

+ALL_DEPENDS=	libXt>0:${PORTSDIR}/x11-toolkits/libXt \
+		qt5-sensors>0:${PORTSDIR}/comms/qt5-sensors \
+		qt5-location>0:${PORTSDIR}/devel/qt5-location \
+		libsndfile>0:${PORTSDIR}/audio/libsndfile \
+		jackit>0:${PORTSDIR}/audio/jack
+RUN_DEPENDS=	${ALL_DEPENDS}
+BUILD_DEPENDS=	${ALL_DEPENDS}

All of these are shared library dependencies if I'm not mistaken, so
use LIB_DEPENDS here with library names e.g. libsndfile.so.
`make stage-qa` will list any LIB_DEPENDS you've forgotten.

+
+CXXFLAGS+=	"-I${LOCALBASE}/include"

If this is really necessary add to USES=localbase instead.

+
+WRKSRC=		${WRKDIR}/SuperCollider
+
+LIBDEPENDS=	libjack.so:${PORTSDIR}/audio/jack \
+		libsndfile.so:${PORTSDIR}/audio/libsndfile

Typo. It's LIB_DEPENDS.

+
+USES=		cmake:outsource iconv pkgconfig shared-mime-info
+USE_QT5=	buildtools_build gui linguisttools qmake_build webkit sql

Add location,sensors to USE_QT5 instead of adding a LIB_DEPENDS or
{RUN,BUILD}_DEPENDS like you did above.

+
+CMAKE_ENV=	PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig
+
+CMAKE_ARGS=	-DCMAKE_PREFIX_PATH=${LOCALBASE}/include/qt5 \
+		-DLIBUSB_1_INCLUDE_DIR=/usr/include \
+		-DLIBUSB_1_LIBRARY=/usr/lib/libusb.so \
+
+.include <bsd.port.mk>
Comment 5 Tobias Brodel 2017-03-15 22:35:11 UTC
Created attachment 180859 [details]
.shar for audio/supercollider
Comment 6 Tobias Brodel 2017-03-15 22:40:23 UTC
(In reply to Tobias Kortkamp from comment #4)

Thanks for your feedback, I've just updated the .shar and you can find poudriere logs at http://ftp.tbrodel.org/pub/FreeBSD/supercollider-3.8.0.log

I believe I've implemented all the fixes you requested. 

Last year when I first put this port together the vendor's source archives lacked the requisite submodules so I had to roll my own using a git clone. Much happier to use upstream's URL.

Thanks again for your interest in this port.

t/
Comment 7 Tobias Kortkamp freebsd_committer freebsd_triage 2017-03-18 11:31:53 UTC
(In reply to Tobias Brodel from comment #6)
Thank you Tobias.

I've submitted it for mentor review and hopefully I can commit this soon.

https://reviews.freebsd.org/D10043
Comment 8 commit-hook freebsd_committer freebsd_triage 2017-03-20 16:25:50 UTC
A commit references this bug:

Author: tobik
Date: Mon Mar 20 16:25:26 UTC 2017
New revision: 436552
URL: https://svnweb.freebsd.org/changeset/ports/436552

Log:
  New port: audio/supercollider

  SuperCollider is a programming language for real time audio synthesis
  and algorithmic composition.

  The language interpreter runs in a cross platform IDE and communicates
  via Open Sound Control with one or more synthesis servers.  The
  SuperCollider synthesis server runs in a separate process or even on a
  separate machine so it is ideal for realtime networked music.

  SuperCollider was developed by James McCartney and originally released
  in 1996.  He released it under the terms of the GNU General Public
  License in 2002 when he joined the Apple Core Audio team.  It is now
  maintained and developed by an active and enthusiastic community.  It
  is used by musicians, scientists, and artists working with sound.

  WWW: http://supercollider.github.io/

  PR:		208443
  Submitted by:	Tobias Brodel <brittlehaus@gmail.com>
  Approved by:	mat (mentor)
  Differential Revision:	https://reviews.freebsd.org/D10043

Changes:
  head/audio/Makefile
  head/audio/supercollider/
  head/audio/supercollider/Makefile
  head/audio/supercollider/distinfo
  head/audio/supercollider/files/
  head/audio/supercollider/files/patch-QtCollider_QObjectProxy.cpp
  head/audio/supercollider/files/patch-QtCollider_primitives_prim__QObject.cpp
  head/audio/supercollider/files/patch-common_SC__Lock.h
  head/audio/supercollider/files/patch-lang_LangPrimSource_OSCData.cpp
  head/audio/supercollider/files/patch-lang_LangPrimSource_PyrPrimitive.cpp
  head/audio/supercollider/files/patch-lang_LangPrimSource_PyrSched.cpp
  head/audio/supercollider/files/patch-lang_LangPrimSource_PyrSerialPrim.cpp
  head/audio/supercollider/files/patch-lang_LangPrimSource_PyrUnixPrim.cpp
  head/audio/supercollider/files/patch-lang_LangPrimSource_SC__ComPort.cpp
  head/audio/supercollider/files/patch-lang_LangSource_PyrObject.cpp
  head/audio/supercollider/files/patch-lang_LangSource_SC__TerminalClient.cpp
  head/audio/supercollider/files/patch-lang_LangSource_SC__TerminalClient.h
  head/audio/supercollider/files/patch-server_plugins_DiskIO__UGens.cpp
  head/audio/supercollider/files/patch-server_plugins_UIUGens.cpp
  head/audio/supercollider/files/patch-server_scsynth_SC__ComPort.cpp
  head/audio/supercollider/files/patch-server_scsynth_SC__CoreAudio.cpp
  head/audio/supercollider/files/patch-server_scsynth_SC__CoreAudio.h
  head/audio/supercollider/pkg-descr
  head/audio/supercollider/pkg-plist