Skip to content

Instantly share code, notes, and snippets.

@ology
Last active February 19, 2026 19:17
Show Gist options
  • Select an option

  • Save ology/d6ccc07011631b8750bcd8354ec7595d to your computer and use it in GitHub Desktop.

Select an option

Save ology/d6ccc07011631b8750bcd8354ec7595d to your computer and use it in GitHub Desktop.
1st attempt at MIDI::RtMidi::FFI install on Mac 15.7.4
gene@zappa:~> cpanm MIDI::RtMidi::FFI --dev
cpanm (App::cpanminus) 1.7047 on perl 5.038000 built for darwin-2level
Work directory is /Users/gene/.cpanm/work/1771528590.31893
You have make /usr/bin/make
You have LWP 6.72
You have /usr/bin/tar: bsdtar 3.5.3 - libarchive 3.7.4 zlib/1.2.12 liblzma/5.4.3 bz2lib/1.0.8
You have /usr/bin/unzip
--> Working on MIDI::RtMidi::FFI
Fetching http://cpan.metacpan.org/authors/id/J/JB/JBARRETT/MIDI-RtMidi-FFI-0.09-TRIAL.tar.gz ... OK
Unpacking MIDI-RtMidi-FFI-0.09-TRIAL.tar.gz
x MIDI-RtMidi-FFI-0.09
x MIDI-RtMidi-FFI-0.09/README
x MIDI-RtMidi-FFI-0.09/LICENSE
x MIDI-RtMidi-FFI-0.09/Changes
x MIDI-RtMidi-FFI-0.09/META.yml
x MIDI-RtMidi-FFI-0.09/MANIFEST
x MIDI-RtMidi-FFI-0.09/dist.ini
x MIDI-RtMidi-FFI-0.09/xt
x MIDI-RtMidi-FFI-0.09/xt/grow.t
x MIDI-RtMidi-FFI-0.09/META.json
x MIDI-RtMidi-FFI-0.09/t
x MIDI-RtMidi-FFI-0.09/t/01-api.t
x MIDI-RtMidi-FFI-0.09/t/08-rpn.t
x MIDI-RtMidi-FFI-0.09/Makefile.PL
x MIDI-RtMidi-FFI-0.09/t/00-load.t
x MIDI-RtMidi-FFI-0.09/t/04-event.t
x MIDI-RtMidi-FFI-0.09/t/07-14bit.t
x MIDI-RtMidi-FFI-0.09/MANIFEST.SKIP
x MIDI-RtMidi-FFI-0.09/t/02-device.t
x MIDI-RtMidi-FFI-0.09/t/05-ignore.t
x MIDI-RtMidi-FFI-0.09/t/09-future.t
x MIDI-RtMidi-FFI-0.09/t/10-errors.t
x MIDI-RtMidi-FFI-0.09/ffi
x MIDI-RtMidi-FFI-0.09/ffi/pipefd.cpp
x MIDI-RtMidi-FFI-0.09/examples
x MIDI-RtMidi-FFI-0.09/examples/lfo.pl
x MIDI-RtMidi-FFI-0.09/t/03-callback.t
x MIDI-RtMidi-FFI-0.09/t/06-roundtrip.t
x MIDI-RtMidi-FFI-0.09/t/author-critic.t
x MIDI-RtMidi-FFI-0.09/ffi/rtmidi-ffi.fbx
x MIDI-RtMidi-FFI-0.09/t/author-synopsis.t
x MIDI-RtMidi-FFI-0.09/examples/async_fh.pl
x MIDI-RtMidi-FFI-0.09/examples/callback.pl
x MIDI-RtMidi-FFI-0.09/examples/drum-circle
x MIDI-RtMidi-FFI-0.09/t/release-kwalitee.t
x MIDI-RtMidi-FFI-0.09/t/author-pod-syntax.t
x MIDI-RtMidi-FFI-0.09/examples/async_mojo.pl
x MIDI-RtMidi-FFI-0.09/examples/dumpevents.pl
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi/FFI.pm
x MIDI-RtMidi-FFI-0.09/examples/arpeggiator.pl
x MIDI-RtMidi-FFI-0.09/examples/list_devices.pl
x MIDI-RtMidi-FFI-0.09/examples/async_futureio.pl
x MIDI-RtMidi-FFI-0.09/examples/simple_callback.pl
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi/FFI
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi/FFI/Device.pm
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi/FFI/Device
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi/FFI/Device/In.pm
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi/FFI/Device/Out.pm
x MIDI-RtMidi-FFI-0.09/t/lib/MIDI/RtMidi/FFI
x MIDI-RtMidi-FFI-0.09/t/lib/MIDI/RtMidi/FFI/TestUtils.pm
x MIDI-RtMidi-FFI-0.09/lib/MIDI/RtMidi/FFI/AbstractDevice.pm
Entering MIDI-RtMidi-FFI-0.09
Checking configure dependencies from META.json
Checking if you have FFI::Build::MM 0.83 ... Yes (2.08)
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.70)
Running Makefile.PL
Configuring MIDI-RtMidi-FFI-0.09 ... Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for MIDI::RtMidi::FFI
Writing MYMETA.yml and MYMETA.json
OK
Checking dependencies from MYMETA.json ...
Checking if you have IO::Socket 0 ... Yes (1.52)
Checking if you have MIDI::Stream::Decoder 0 ... Yes (0.004)
Checking if you have Test::Lib 0 ... Yes (0.003)
Checking if you have Time::HiRes 0 ... Yes (1.9775)
Checking if you have FFI::Platypus::Memory 0 ... Yes (2.08)
Checking if you have MIDI::Stream 0.004 ... Yes (0.004)
Checking if you have IO::Handle 0 ... Yes (1.52)
Checking if you have experimental 0 ... Yes (0.031)
Checking if you have ok 0 ... Yes (1.302216)
Checking if you have Test2::Require::Module 0 ... Yes (1.302216)
Checking if you have FFI::CheckLib 0.25 ... Yes (0.31)
Checking if you have Future::AsyncAwait 0 ... Yes (0.70)
Checking if you have Proc::Find 0 ... Yes (0.051)
Checking if you have FFI::Platypus 2.00 ... Yes (2.08)
Checking if you have Future::IO 0 ... Yes (0.20)
Checking if you have FFI::Platypus::Buffer 0 ... Yes (2.08)
Checking if you have Test2::V0 0 ... Yes (1.302216)
Checking if you have Feature::Compat::Class 0 ... Yes (0.08)
Checking if you have MIDI::Stream::Tables 0 ... Yes (0.004)
Checking if you have Alien::RtMidi 0.12 ... Yes (0.12)
Checking if you have FFI::Platypus::Record 0 ... Yes (2.08)
Checking if you have MIDI::Stream::Encoder 0 ... Yes (0.004)
Building and testing MIDI-RtMidi-FFI-0.09 ... cp lib/MIDI/RtMidi/FFI.pm blib/lib/MIDI/RtMidi/FFI.pm
cp FFI/rtmidi-ffi.fbx blib/lib/MIDI/RtMidi/FFI/rtmidi-ffi.fbx
cp FFI/pipefd.cpp blib/lib/MIDI/RtMidi/FFI/pipefd.cpp
cp lib/MIDI/RtMidi/FFI/AbstractDevice.pm blib/lib/MIDI/RtMidi/FFI/AbstractDevice.pm
cp lib/MIDI/RtMidi/FFI/Device.pm blib/lib/MIDI/RtMidi/FFI/Device.pm
cp lib/MIDI/RtMidi/FFI/Device/In.pm blib/lib/MIDI/RtMidi/FFI/Device/In.pm
cp lib/MIDI/RtMidi/FFI/Device/Out.pm blib/lib/MIDI/RtMidi/FFI/Device/Out.pm
"/Users/gene/perl5/perlbrew/perls/perl-5.38.0/bin/perl" -MFFI::Build::MM=cmd -e fbx_build
+c++ -I/Users/gene/perl5/perlbrew/perls/perl-5.38.0/lib/site_perl/5.38.0/darwin-2level/auto/share/dist/Alien-RtMidi/include/rtmidi -fno-common -DPERL_DARWIN -mmacosx-version-min=13.4 -DNO_POSIX_2008_LOCALE -fno-strict-aliasing -pipe -fstack-protector-strong -O3 -I/Users/gene/perl5/perlbrew/perls/perl-5.38.0/lib/site_perl/5.38.0/darwin-2level/auto/share/dist/FFI-Platypus/include -pthread -D__MACOSX_CORE__ -c ffi/pipefd.cpp -o ffi/_build/pipefd.o
+c++ -L/Users/gene/perl5/perlbrew/perls/perl-5.38.0/lib/site_perl/5.38.0/darwin-2level/auto/share/dist/Alien-RtMidi/lib -mmacosx-version-min=13.4 -dynamiclib -undefined dynamic_lookup -fstack-protector-strong ffi/_build/pipefd.o -lrtmidi -install_name @rpath/blib/lib/auto/share/dist/MIDI-RtMidi-FFI/lib/librtmidi-ffi.dylib -o blib/lib/auto/share/dist/MIDI-RtMidi-FFI/lib/librtmidi-ffi.dylib
ld: warning: object file (/Users/gene/perl5/perlbrew/perls/perl-5.38.0/lib/site_perl/5.38.0/darwin-2level/auto/share/dist/Alien-RtMidi/lib/librtmidi.a[2](librtmidi_la-RtMidi.o)) was built for newer 'macOS' version (15.0) than being linked (13.4)
ld: warning: object file (/Users/gene/perl5/perlbrew/perls/perl-5.38.0/lib/site_perl/5.38.0/darwin-2level/auto/share/dist/Alien-RtMidi/lib/librtmidi.a[3](librtmidi_la-rtmidi_c.o)) was built for newer 'macOS' version (15.0) than being linked (13.4)
"/Users/gene/perl5/perlbrew/perls/perl-5.38.0/bin/perl" -MFFI::Build::MM=cmd -e fbx_build
"/Users/gene/perl5/perlbrew/perls/perl-5.38.0/bin/perl" -MFFI::Build::MM=cmd -e fbx_test
PERL_DL_NONLAZY=1 "/Users/gene/perl5/perlbrew/perls/perl-5.38.0/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t ............ ok
t/01-api.t ............. ok
t/02-device.t .......... ok
t/03-callback.t ........
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/03-callback.t ........ 1/?
# Failed test 'midi_event_callback'
# at t/03-callback.t line 48.
# Bad subtest plan, expected 11 but ran 0
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
# Failed test 'midi_stream_callback'
# at t/03-callback.t line 64.
# Bad subtest plan, expected 11 but ran 0
# Seeded srand with seed '20260219' from local date.
t/03-callback.t ........ Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/2 subtests
t/04-event.t ........... ok
t/05-ignore.t .......... ok
t/06-roundtrip.t ....... ok
t/07-14bit.t ...........
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
Messages did not arrive in good time at t/07-14bit.t line 49.
# No tests run!
# Looks like your test exited with 60 after test #0.
# Did not follow plan: expected 15, ran 0.
# Seeded srand with seed '20260219' from local date.
t/07-14bit.t ........... Dubious, test returned 60 (wstat 15360, 0x3c00)
Failed 15/15 subtests
t/08-rpn.t .............
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 1/?
# Failed test 'All 14 bit RPN'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 2/?
# Failed test 'Separate RPN MSB/LSB'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 3/?
# Failed test 'Separate RPN value MSB/LSB'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 4/?
# Failed test 'RPN value MSB only'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 5/?
# Failed test 'RPN MSB only, LSB is filled with 0x00'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 6/?
# Failed test 'All 14 bit NRPN'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 7/?
# Failed test 'Separate NRPN MSB/LSB'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 8/?
# Failed test 'Separate NRPN value MSB/LSB'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 9/?
# Failed test 'NRPN value MSB only'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
t/08-rpn.t ............. 10/?
# Failed test 'NRPN MSB only, LSB is filled with 0x00'
# at t/08-rpn.t line 136.
# Caught exception in subtest: Messages did not arrive in good time at t/08-rpn.t line 129.
# Seeded srand with seed '20260219' from local date.
t/08-rpn.t ............. Dubious, test returned 10 (wstat 2560, 0xa00)
Failed 10/10 subtests
t/09-future.t ..........
MidiOutCore::sendMessage: message format problem ... not sysex but > 3 bytes?
# No tests run!
# Did not follow plan: expected 3, ran 0.
# Seeded srand with seed '20260219' from local date.
t/09-future.t .......... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 3/3 subtests
t/10-errors.t .......... ok
t/author-critic.t ...... skipped: these tests are for testing by the author
t/author-pod-syntax.t .. skipped: these tests are for testing by the author
t/author-synopsis.t .... skipped: these tests are for testing by the author
t/release-kwalitee.t ... skipped: these tests are for release candidate testing
Test Summary Report
-------------------
t/03-callback.t (Wstat: 512 (exited 2) Tests: 2 Failed: 2)
Failed tests: 1-2
Non-zero exit status: 2
t/07-14bit.t (Wstat: 15360 (exited 60) Tests: 0 Failed: 0)
Non-zero exit status: 60
Parse errors: Bad plan. You planned 15 tests but ran 0.
t/08-rpn.t (Wstat: 2560 (exited 10) Tests: 10 Failed: 10)
Failed tests: 1-10
Non-zero exit status: 10
t/09-future.t (Wstat: 65280 (exited 255) Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 3 tests but ran 0.
Files=15, Tests=45, 15 wallclock secs ( 0.03 usr 0.02 sys + 1.18 cusr 0.27 csys = 1.50 CPU)
Result: FAIL
Failed 4/15 test programs. 12/45 subtests failed.
make: *** [test_dynamic] Error 255
FAIL
! Installing MIDI::RtMidi::FFI failed. See /Users/gene/.cpanm/work/1771528590.31893/build.log for details. Retry with --force to force install it.
gene@zappa:~>
cpanm (App::cpanminus) 1.7047 on perl 5.038000 built for darwin-2level
Work directory is /Users/gene/.cpanm/work/1771528477.31398
You have make /usr/bin/make
You have LWP 6.72
You have /usr/bin/tar: bsdtar 3.5.3 - libarchive 3.7.4 zlib/1.2.12 liblzma/5.4.3 bz2lib/1.0.8
You have /usr/bin/unzip
--> Working on MIDI::RtMidi::FFI
Fetching http://cpan.metacpan.org/authors/id/J/JB/JBARRETT/MIDI-RtMidi-FFI-0.09-TRIAL.tar.gz
-> OK
Unpacking MIDI-RtMidi-FFI-0.09-TRIAL.tar.gz
Entering MIDI-RtMidi-FFI-0.09
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.70)
Checking if you have FFI::Build::MM 0.83 ... Yes (2.08)
Configuring MIDI-RtMidi-FFI-0.09
Running Makefile.PL
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have FFI::CheckLib 0.25 ... Yes (0.31)
Checking if you have FFI::Platypus::Record 0 ... Yes (2.08)
Checking if you have Future::AsyncAwait 0 ... Yes (0.70)
Checking if you have Future::IO 0 ... Yes (0.20)
Checking if you have Feature::Compat::Class 0 ... Yes (0.08)
Checking if you have Time::HiRes 0 ... Yes (1.9775)
Checking if you have IO::Handle 0 ... Yes (1.52)
Checking if you have Alien::RtMidi 0.12 ... Yes (0.12)
Checking if you have FFI::Platypus::Memory 0 ... Yes (2.08)
Checking if you have Test::Lib 0 ... Yes (0.003)
Checking if you have MIDI::Stream::Encoder 0 ... Yes (0.004)
Checking if you have Test2::V0 0 ... Yes (1.302216)
Checking if you have FFI::Platypus::Buffer 0 ... Yes (2.08)
Checking if you have IO::Socket 0 ... Yes (1.52)
Checking if you have experimental 0 ... Yes (0.031)
Checking if you have Test2::Require::Module 0 ... Yes (1.302216)
Checking if you have ok 0 ... Yes (1.302216)
Checking if you have MIDI::Stream 0.004 ... Yes (0.004)
Checking if you have MIDI::Stream::Tables 0 ... Yes (0.004)
Checking if you have FFI::Platypus 2.00 ... Yes (2.08)
Checking if you have Proc::Find 0 ... Yes (0.051)
Checking if you have MIDI::Stream::Decoder 0 ... Yes (0.004)
Building and testing MIDI-RtMidi-FFI-0.09
-> FAIL Installing MIDI::RtMidi::FFI failed. See /Users/gene/.cpanm/work/1771528477.31398/build.log for details. Retry with --force to force install it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment