Bug 277722 - audio/supercollider: Update to 3.13.0
Summary: audio/supercollider: Update to 3.13.0
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: Robert Clausecker
URL: https://github.com/supercollider/supe...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-15 16:24 UTC by Neal Nelson
Modified: 2024-05-14 08:39 UTC (History)
1 user (show)

See Also:


Attachments
Git diff of changes. (28.54 KB, patch)
2024-03-15 16:24 UTC, Neal Nelson
ports: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Neal Nelson 2024-03-15 16:24:38 UTC
Created attachment 249195 [details]
Git diff of changes.

Upgrade audio/supercollider to the latest version: 3.13.0.

This will also fix the recent build failures caused by the upgrade to boost.
Comment 1 Robert Clausecker freebsd_committer freebsd_triage 2024-05-12 09:47:18 UTC
This patch fails portlint:

FATAL: Makefile: [56]: USE_QT is set after including bsd.port.pre.mk.

You cannot set USE_XXX options after bsd.port.pre.mk is included as that include already evaluates all USES.  I know you didn't change this and it was already wrong before, but it should be changed before we proceed:

As an alternative, try something like this (untested):

CMAKE_ARGS_amd64= -DSSE:BOOL=FALSE -DSSE2:BOOL=FALSE -DSC_USE_QTWEBENGINE:BOOL=FALSE
CMAKE_ARGS_i386= ${CMAKE_ARGS_amd64}
CMAKE_ARGS+= ${CMAKE_ARGS_${ARCH}}
USE_QT+= ${ARCH:Namd64:Ni386:C/.*/webengine/}

If you like, I can apply a fix like this on commit.
Comment 2 Robert Clausecker freebsd_committer freebsd_triage 2024-05-12 09:53:35 UTC
Also note that SSE and SSE2 are not guaranteed to be available on i386.  Ideally you should make an option for this (option SSE is predefined for this purpose) that is enabled by default on amd64, disabled by default on i386, and forbidden on all other platforms.  You could handle the webengine dependency in a similar fashion.

I'll leave this deeper change up to you.

(I also got the order of things wrong in the previous comment; will do it right in the commit).
Comment 3 Neal Nelson 2024-05-13 16:34:20 UTC
I'm having a go at making the changes you have asked for, but I have to say that it appears to be beyond my meagre make abilities. The main problem I'm having is that to use the ARCH variable, it must be after the .include <bsd.port.pre.mk>. After this point, no changes I make to OPTIONS_DEFINE take effect. How on earth can I make OPTIONS dependent on ARCH?
Comment 4 Robert Clausecker freebsd_committer freebsd_triage 2024-05-13 16:52:57 UTC
(In reply to Neal Nelson from comment #3)


Well, it's a bit tricky and a known problem with our framework.  The code I have shown above achieves this (though the wrong way round) and I'll commit something like this when I commit your patch (might be later tonight) if you like.

It currently looks like this in my patch set:

USE_QT_amd64=   webengine
USE_QT_i386=    webengine
USE_QT=         buildtools:build concurrent core declarative gui linguisttools location \
                network opengl printsupport qmake:build sensors \
                sql widgets websockets webchannel svg ${USE_QT_${ARCH}}
CMAKE_ARGS_nox86=       -DSSE:BOOL=FALSE \
                        -DSSE2:BOOL=FALSE \
                        -DSC_USE_QTWEBENGINE:BOOL=FALSE
CMAKE_ARGS=     -DCMAKE_PREFIX_PATH=${LOCALBASE}/lib/qt5 \
                -DLIBUSB_1_INCLUDE_DIR=/usr/include \
                -DLIBUSB_1_LIBRARY=/usr/lib/libusb.so \
                -DLIBSCSYNTH=ON \
                -DSYSTEM_BOOST=ON \
                -DSYSTEM_YAMLCPP=ON \
                -DSC_ABLETON_LINK=OFF \
                ${ARCH:Namd64:Ni386:C/.*/${CMAKE_ARGS_nox86}/}
Comment 5 commit-hook freebsd_committer freebsd_triage 2024-05-13 21:22:57 UTC
A commit in branch main references this bug:

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

commit ba6612603a26676573cd3f34413227c1d906ea3c
Author:     Neal Nelson <ports@nicandneal.net>
AuthorDate: 2024-05-12 09:53:01 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2024-05-13 21:19:52 +0000

    audio/supercollider: update to 3.13.03

     - fix handling of webengine dependency and SSE use
     - fix recent build failures due to boost update

    Changelog: https://github.com/supercollider/supercollider/releases/tag/Version-3.13.0

    PR:             277722

 audio/supercollider/Makefile                       | 27 ++++-----
 audio/supercollider/distinfo                       |  6 +-
 .../files/patch-common_SC__Apple.hpp (gone)        | 22 -------
 .../files/patch-common_SC__Apple.mm (gone)         | 68 ----------------------
 .../patch-common_SC__AppleEventLoop.hpp (gone)     | 37 ------------
 .../files/patch-common_SC__EventLoop.hpp (gone)    | 19 ------
 ...special__functions_detail_fp__traits.hpp (gone) | 11 ----
 .../files/patch-lang_LangSource_PyrLexer.cpp (new) | 11 ++++
 .../patch-server_scsynth_CMakeLists.txt (gone)     | 17 ------
 .../patch-server_scsynth_SC__GraphDef.cpp (new)    | 11 ++++
 .../patch-server_supernova_CMakeLists.txt (gone)   | 18 ------
 ...server_supernova_sc_sc__osc__handler.hpp (gone) | 27 ---------
 audio/supercollider/pkg-plist                      | 52 +++++++++++++++--
 13 files changed, 85 insertions(+), 241 deletions(-)
Comment 6 Robert Clausecker freebsd_committer freebsd_triage 2024-05-13 21:25:30 UTC
Committed the patch with the fix as indicated.  Let me know if there are any problems with that.
Comment 7 Neal Nelson 2024-05-14 08:39:16 UTC
Thanks very much. I shall endeavour to understand how the changes you made work. It's all way beyond anything in the porters' handbook.