Bug 238186 - audio/supercollider: Update to 3.10.2
Summary: audio/supercollider: Update to 3.10.2
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: Kai Knoblich
URL: https://github.com/supercollider/supe...
Keywords:
Depends on:
Blocks:
 
Reported: 2019-05-28 09:15 UTC by Neal Nelson
Modified: 2019-07-06 22:04 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (brittlehaus)
kai: merge-quarterly+


Attachments
Patch to upgrade port. (13.00 KB, patch)
2019-05-28 09:15 UTC, Neal Nelson
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Neal Nelson 2019-05-28 09:15:08 UTC
Created attachment 204664 [details]
Patch to upgrade port.

Upgrade the currently non-functional audio/supercollider port to 3.10.2.
Comment 1 Kai Knoblich freebsd_committer freebsd_triage 2019-06-20 10:49:12 UTC
(In reply to Neal Nelson from comment #0)

Hi Neal,

sorry for the late response and thank you for your patch. It compiles fine on 11.2- and 12.0-RELEASE. But it fails on 13.0-CURRENT and 11.3-RC1, both use Clang8 instead Clang6.

> In file included from /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/server/supernova/sc/sc_osc_handler.cpp:22:
> In file included from /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/external_libraries/boost/boost/asio/read.hpp:21:
> In file included from /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/external_libraries/boost/boost/asio/buffer.hpp:27:
> In file included from /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/external_libraries/boost/boost/asio/detail/string_view.hpp:23:
> /usr/include/c++/v1/experimental/string_view:18:3: warning: "<experimental/string_view> has been removed. Use <string_view> instead." [-W#warnings]
> # warning "<experimental/string_view> has been removed. Use <string_view> instead."
>   ^
> In file included from /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/server/supernova/sc/sc_osc_handler.cpp:22:
> In file included from /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/external_libraries/boost/boost/asio/read.hpp:21:
> In file included from /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/external_libraries/boost/boost/asio/buffer.hpp:27:
> /wrkdirs/usr/ports/audio/supercollider/work/SuperCollider-Source/external_libraries/boost/boost/asio/detail/string_view.hpp:32:12: error: no member named 'experimental' in namespace 'std'
> using std::experimental::basic_string_view;
      ~~~~~^

Maybe it's possible to unbundle the shipped boost-libraries in external_libraries/boost and use the system libraries instead? I added a link to a GitHub issue (visible at "See also") that seems similar.
Comment 2 Neal Nelson 2019-06-26 10:22:26 UTC
Alas, this version of SuperCollider, is not compatible with boost 1.70, which is what we have in ports. I started looking into patching the code, but it looks to be a big job to make it work. I can continue with this, but I can't guarantee it will work and it will take some time.

It might be best to take what we have now and wait for a compatible version from the SuperCollider project since the current port produces a non-functional system.
Comment 3 Kai Knoblich freebsd_committer freebsd_triage 2019-07-04 10:03:14 UTC
(In reply to Neal Nelson from comment #2)

In the meantime I've tried the following:

- Tried to use the system Boost libs with "-DSYSTEM_BOOST=ON" (as you already did) and delete the shipped version -> Fails to build near the end
- Force Clang60 to build the port -> Doesn't work due different versions of libc++
- Use GCC instead of Clang -> Builds fine on all releases, but produces broken binaries that segfaults on invocation

I also did some small runtime tests to make some comparisons:

- The still current version in the ports tree (= 3.9.3) seems to start fine but it displays an error about some indexing by SCDoc.

- The new version from your patch doesn't show that behavior.

Is that issue with the indexing the main reason why the port is non-functional at the moment or are there more problems like that? I'm asking because I'm no expert in that software. ;)

I'm currently out of ideas and I'm afraid that the new version of audio/supercollider will be available only for FreeBSD 11.2- and 12.0-RELEASE for a while.

I'll open up a pre-commit review later that day that contain your patch and some additions to restrict the build for specific FreeBSD releases.
Comment 4 Neal Nelson 2019-07-04 13:28:31 UTC
The issue you describe is indeed the problem which makes SuperCollider unusable, as it causes the sclang interpreter to segfault, so all we're left with is the editor and no ability run anything.

Unfortunately I'm also no expert on this system as I am trying to run it in order to learn it. Boost is also new to me and I haven't written any C++ for about 15 years, so I'm a bit rusty. This makes fixing the build tricky, but looking at the current source code, it is not compatible with boost 1.70, so we either use the supplied boost or we will have to make a new port of an older boost as some features have been removed that this code relies upon.

I have tried to update the source code, but not knowing what's really going on internally, I was unable to replace the call to get_io_service, which has been removed.
Comment 5 Kai Knoblich freebsd_committer freebsd_triage 2019-07-04 15:49:59 UTC
(In reply to Neal Nelson from comment #4)

Alright, let's see how we can land that update. I opened a pre-commit review to see what approach (restrict the build for some FreeBSD release or bring back an older version of the Boost libraries) makes more sense.
Comment 6 Kai Knoblich freebsd_committer freebsd_triage 2019-07-05 10:52:50 UTC
(In reply to Neal Nelson from comment #4)

The pre-commit review is done and I'll do some final tests. If all things go well the update will land tonight.

One last question: Would you like to adopt the port? The current maintainer seems missing in action since the port was introduced to the Ports tree and there have been already more than three consecutive maintainer timeouts.

If not, it's also ok, I'll put audio/supercollider then to the ports heap.
Comment 7 Neal Nelson 2019-07-05 13:34:56 UTC
Thanks for your work on this.

Yes, I can take port maintainership. I am not an expert with this port, it's build system or libraries, but I do want to use it, so I will do my best to keep it updated.
Comment 8 commit-hook freebsd_committer freebsd_triage 2019-07-06 16:55:22 UTC
A commit references this bug:

Author: kai
Date: Sat Jul  6 16:54:22 UTC 2019
New revision: 506005
URL: https://svnweb.freebsd.org/changeset/ports/506005

Log:
  audio/supercollider: Update to 3.10.2

  The previous version, 3.9.3, built fine on all FreeBSD releases but the port
  itself was less of use in its state because SuperCollider's own interpreter
  ("sclang") always crashed when indexing various help files. So users were
  able to start the graphical IDE ("scide") but were then on their own to get
  any use out of it.

  The update to 3.10.2 fixes that problem but it comes with some drawbacks:
  SuperCollider has shipped Boost libraries of the 1.66 release and those
  don't compile with Clang 8. Using the Boost libraries from the ports tree
  instead won't work either, as the 3.10.2 release of SuperCollider isn't
  compatible with that version, yet.

  Switching to GCC also won't work - it builds fine on all releases but
  produces broken binaries that segfaults upon invocation. Thus exclude the
  build for FreeBSD releases that comes with Clang 8 for a while and revise
  the situation when a new release of SuperCollider is available.

  Also pass the maintainership to the submitter because the previous
  maintainer seems missing in action and there were already more than three
  consecutive maintainer timeouts.

  PR:		238186
  Submitted by:	Neal Nelson <ports@nicandneal.net>
  Reviewed by:	tcberner
  Approved by:	maintainer timeout (1+ month)
  MFH:		2019Q3
  Differential Revision:	https://reviews.freebsd.org/D20854

Changes:
  head/audio/supercollider/Makefile
  head/audio/supercollider/distinfo
  head/audio/supercollider/files/
  head/audio/supercollider/files/patch-external__libraries_CMakeLists.txt
  head/audio/supercollider/pkg-descr
  head/audio/supercollider/pkg-plist
Comment 9 commit-hook freebsd_committer freebsd_triage 2019-07-06 17:01:29 UTC
A commit references this bug:

Author: kai
Date: Sat Jul  6 17:00:46 UTC 2019
New revision: 506006
URL: https://svnweb.freebsd.org/changeset/ports/506006

Log:
  audio/supercollider: Pass maintainership to submitter

  * Really pass the maintainership to the submitter that was forgotten
    in r506005

  PR:		238186

Changes:
  head/audio/supercollider/Makefile
Comment 10 Kai Knoblich freebsd_committer freebsd_triage 2019-07-06 17:05:44 UTC
The changes have been committed to the head branch. Still waiting for approval to commit them to the 2019Q3 branch.

Thank you Neal, for taking maintainership! It's no problem to drop the maintainership anytime, just open a PR here on Bugzilla with a small patch for it.
Comment 11 commit-hook freebsd_committer freebsd_triage 2019-07-06 22:01:03 UTC
A commit references this bug:

Author: kai
Date: Sat Jul  6 22:00:59 UTC 2019
New revision: 506066
URL: https://svnweb.freebsd.org/changeset/ports/506066

Log:
  MFH: r506005 r506006

  audio/supercollider: Update to 3.10.2

  The previous version, 3.9.3, built fine on all FreeBSD releases but the port
  itself was less of use in its state because SuperCollider's own interpreter
  ("sclang") always crashed when indexing various help files. So users were
  able to start the graphical IDE ("scide") but were then on their own to get
  any use out of it.

  The update to 3.10.2 fixes that problem but it comes with some drawbacks:
  SuperCollider has shipped Boost libraries of the 1.66 release and those
  don't compile with Clang 8. Using the Boost libraries from the ports tree
  instead won't work either, as the 3.10.2 release of SuperCollider isn't
  compatible with that version, yet.

  Switching to GCC also won't work - it builds fine on all releases but
  produces broken binaries that segfaults upon invocation. Thus exclude the
  build for FreeBSD releases that comes with Clang 8 for a while and revise
  the situation when a new release of SuperCollider is available.

  Also pass the maintainership to the submitter because the previous
  maintainer seems missing in action and there were already more than three
  consecutive maintainer timeouts.

  PR:		238186
  Submitted by:	Neal Nelson <ports@nicandneal.net>
  Reviewed by:	tcberner
  Approved by:	maintainer timeout (1+ month)
  Differential Revision:	https://reviews.freebsd.org/D20854

  audio/supercollider: Pass maintainership to submitter

  * Really pass the maintainership to the submitter that was forgotten
    in r506005

  PR:		238186

  Approved by:	ports-secteam (miwi)

Changes:
_U  branches/2019Q3/
  branches/2019Q3/audio/supercollider/Makefile
  branches/2019Q3/audio/supercollider/distinfo
  branches/2019Q3/audio/supercollider/files/
  branches/2019Q3/audio/supercollider/pkg-descr
  branches/2019Q3/audio/supercollider/pkg-plist
Comment 12 commit-hook freebsd_committer freebsd_triage 2019-07-06 22:02:06 UTC
A commit references this bug:

Author: kai
Date: Sat Jul  6 22:00:59 UTC 2019
New revision: 506066
URL: https://svnweb.freebsd.org/changeset/ports/506066

Log:
  MFH: r506005 r506006

  audio/supercollider: Update to 3.10.2

  The previous version, 3.9.3, built fine on all FreeBSD releases but the port
  itself was less of use in its state because SuperCollider's own interpreter
  ("sclang") always crashed when indexing various help files. So users were
  able to start the graphical IDE ("scide") but were then on their own to get
  any use out of it.

  The update to 3.10.2 fixes that problem but it comes with some drawbacks:
  SuperCollider has shipped Boost libraries of the 1.66 release and those
  don't compile with Clang 8. Using the Boost libraries from the ports tree
  instead won't work either, as the 3.10.2 release of SuperCollider isn't
  compatible with that version, yet.

  Switching to GCC also won't work - it builds fine on all releases but
  produces broken binaries that segfaults upon invocation. Thus exclude the
  build for FreeBSD releases that comes with Clang 8 for a while and revise
  the situation when a new release of SuperCollider is available.

  Also pass the maintainership to the submitter because the previous
  maintainer seems missing in action and there were already more than three
  consecutive maintainer timeouts.

  PR:		238186
  Submitted by:	Neal Nelson <ports@nicandneal.net>
  Reviewed by:	tcberner
  Approved by:	maintainer timeout (1+ month)
  Differential Revision:	https://reviews.freebsd.org/D20854

  audio/supercollider: Pass maintainership to submitter

  * Really pass the maintainership to the submitter that was forgotten
    in r506005

  PR:		238186

  Approved by:	ports-secteam (miwi)

Changes:
_U  branches/2019Q3/
  branches/2019Q3/audio/supercollider/Makefile
  branches/2019Q3/audio/supercollider/distinfo
  branches/2019Q3/audio/supercollider/files/
  branches/2019Q3/audio/supercollider/pkg-descr
  branches/2019Q3/audio/supercollider/pkg-plist
Comment 13 Kai Knoblich freebsd_committer freebsd_triage 2019-07-06 22:04:24 UTC
All done, the changes have been committed to head and the 2019Q3 branch. Thank you for submitting the patch and taking maintainership!