[MacPorts] #67850: lmms: updating and fixing: some help with bundling and clang testing wanted
MacPorts
noreply at macports.org
Sat Jul 29 10:21:37 UTC 2023
#67850: lmms: updating and fixing: some help with bundling and clang testing wanted
--------------------------+------------------------
Reporter: barracuda156 | Owner: ryandesign
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.8.1
Keywords: | Port: lmms
--------------------------+------------------------
Ryan, would you help a bit with `lmms`? I have updated it to 1.2.2 (the
last version to support Qt4, and pretty recent anyway) and fixed PowerPC
build. I may need help to sort out making an app bundle.
And test Clang build, if possible.
There is one caveat for PPC (or GCC in general, no one ever tested it in
upstream), Apple Midi does not build:
https://github.com/LMMS/lmms/issues/6785
{{{
:info:build [ 56%] Building CXX object
src/CMakeFiles/lmmsobjs.dir/core/midi/MidiPort.cpp.o
:info:build cd
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src
&& /opt/local/bin/g++-mp-12 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG
-DQT_XML_LIB
-I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/lmmsobjs_autogen/include
-I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src
-I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2
-I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/include
-I/opt/local/include/opus -I/opt/local/include/SDL -I/opt/local/include
-I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/3rdparty/rpmalloc/rpmalloc/rpmalloc
-isystem /opt/local/libexec/qt4/include -isystem
/opt/local/libexec/qt4/include/QtGui -isystem
/opt/local/libexec/qt4/include/QtXml -isystem
/opt/local/libexec/qt4/include/QtCore -fno-exceptions -Wall -Werror
=unused-function -Wno-sign-compare -Wno-strict-overflow -Wno-array-bounds
-Wno-attributes -pipe -Os -fPIC -DPIC -std=c++0x -DNDEBUG -arch ppc
-mmacosx-version-min=10.6
-D'QT_TRANSLATIONS_DIR="/opt/local/libexec/qt4/share/translations"'
-D'LIB_DIR="../lib/"' -D'PLUGIN_DIR="../lib/lmms/"' -MD -MT
src/CMakeFiles/lmmsobjs.dir/core/midi/MidiPort.cpp.o -MF
CMakeFiles/lmmsobjs.dir/core/midi/MidiPort.cpp.o.d -o
CMakeFiles/lmmsobjs.dir/core/midi/MidiPort.cpp.o -c
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiPort.cpp
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:
In member function 'virtual QString MidiApple::sourcePortName(const
MidiEvent&) const':
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:157:41:
warning: format '%s' expects argument of type 'char*', but argument 2 has
type 'const void*' [-Wformat=]
:info:build 157 | qDebug("sourcePortName return '%s'?\n",
event.sourcePort());
:info:build | ~^
~~~~~~~~~~~~~~~~~~
:info:build | |
|
:info:build | char*
const void*
:info:build | %p
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:
In member function 'void MidiApple::openDevices()':
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:442:45:
error: cannot bind non-const lvalue reference of type 'void*&' to an
rvalue of type 'void*'
:info:build 442 | char * deviceName = getName(device);
:info:build | ^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:401:31:
note: initializing argument 1 of 'char* getName(void*&)'
:info:build 401 | char *getName( MIDIObjectRef &object )
:info:build | ~~~~~~~~~~~~~~~^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:458:56:
error: cannot bind non-const lvalue reference of type 'void*&' to an
rvalue of type 'void*'
:info:build 458 | qDebug(" Entity: %s",
getName(entity));
:info:build |
^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:401:31:
note: initializing argument 1 of 'char* getName(void*&)'
:info:build 401 | char *getName( MIDIObjectRef &object )
:info:build | ~~~~~~~~~~~~~~~^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:466:55:
error: cannot bind non-const lvalue reference of type 'void*&' to an
rvalue of type 'void*'
:info:build 466 | char * name =
getName(source);
:info:build |
^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:401:31:
note: initializing argument 1 of 'char* getName(void*&)'
:info:build 401 | char *getName( MIDIObjectRef &object )
:info:build | ~~~~~~~~~~~~~~~^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:480:55:
error: cannot bind non-const lvalue reference of type 'void*&' to an
rvalue of type 'void*'
:info:build 480 | char * name =
getName(dest);
:info:build |
^~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:401:31:
note: initializing argument 1 of 'char* getName(void*&)'
:info:build 401 | char *getName( MIDIObjectRef &object )
:info:build | ~~~~~~~~~~~~~~~^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:
In static member function 'static void MidiApple::NotifyCallback(const
MIDINotification*, void*)':
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:549:45:
warning: format '%d' expects argument of type 'int', but argument 2 has
type 'long int' [-Wformat=]
:info:build 549 | qDebug("MidiApple::NotifyCallback
'%d'",message->messageID);
:info:build | ~^
~~~~~~~~~~~~~~~~~~
:info:build | |
|
:info:build | int
long int
:info:build | %ld
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:
In member function 'char* MidiApple::getFullName(OpaqueMIDIEndpoint*&)':
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:615:37:
error: cannot bind non-const lvalue reference of type 'void*&' to an
rvalue of type 'void*'
:info:build 615 | char * deviceName = getName(device);
:info:build | ^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:401:31:
note: initializing argument 1 of 'char* getName(void*&)'
:info:build 401 | char *getName( MIDIObjectRef &object )
:info:build | ~~~~~~~~~~~~~~~^~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:616:39:
error: cannot bind non-const lvalue reference of type 'void*&' to an
rvalue of type 'void*'
:info:build 616 | char * endPointName = getName(endpoint_ref);
:info:build | ^~~~~~~~~~~~
:info:build
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_multimedia_lmms/lmms/work/lmms-1.2.2/src/core/midi/MidiApple.cpp:401:31:
note: initializing argument 1 of 'char* getName(void*&)'
:info:build 401 | char *getName( MIDIObjectRef &object )
:info:build | ~~~~~~~~~~~~~~~^~~~~~
:info:build make[2]: ***
[src/CMakeFiles/lmmsobjs.dir/core/midi/MidiApple.cpp.o] Error 1
:info:build make[2]: *** Waiting for unfinished jobs....
}}}
For now, I just disabled it. There is no explicit option for that, but I
simply replaced a few defines (only specific to Apple Midi), adding `&&
defined(__clang__)`.
We need to pick two commits also:
1. My fix for GCC:
https://github.com/LMMS/lmms/commit/a9d49d4ff70642c958380a0b2e4fc6180c1a1877
2. Upstream fix for PPC detection:
https://github.com/LMMS/lmms/commit/ae4d1b52e2b4f871a006a777d8dc4a2bae688329
[[Image(https://user-images.githubusercontent.com/92015510/256976807
-002be92f-333b-45fa-9c97-79ce1bcf242e.png)]]
--
Ticket URL: <https://trac.macports.org/ticket/67850>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list