Opened 3 years ago
Closed 3 years ago
#64501 closed defect (fixed)
abcde: Can't load DiscID.bundle
Reported by: | breun (Nils Breunese) | Owned by: | 0x6772 (Gabriel Rosenkoetter) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | chrstphrchvz (Christopher Chavez) | |
Port: | abcde |
Description
I tried using abcde
, but it fails with this error:
Can't load '/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/auto/MusicBrainz/DiscID/DiscID.bundle' for module MusicBrainz::DiscID: dlopen(/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/auto/MusicBrainz/DiscID/DiscID.bundle, 0x0001): tried: '/opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/auto/MusicBrainz/DiscID/DiscID.bundle' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h')), '/usr/local/lib/DiscID.bundle' (no such file), '/usr/lib/DiscID.bundle' (no such file) at /opt/local/lib/perl5/5.34/XSLoader.pm line 96. at /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/MusicBrainz/DiscID.pm line 19. Compilation failed in require at /opt/local/bin/abcde-musicbrainz-tool line 18. BEGIN failed--compilation aborted at /opt/local/bin/abcde-musicbrainz-tool line 18.
It indeed seems that DiscID.bundle
is an arm64 bundle on my Intel Mac:
❯ file /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/auto/MusicBrainz/DiscID/DiscID.bundle /opt/local/lib/perl5/vendor_perl/5.34/darwin-thread-multi-2level/auto/MusicBrainz/DiscID/DiscID.bundle: Mach-O 64-bit bundle arm64
I have this version of abcde
installed:
❯ port installed | grep abcde abcde @2.9.3_1 (active)
Change History (6)
comment:1 Changed 3 years ago by 0x6772 (Gabriel Rosenkoetter)
comment:2 Changed 3 years ago by 0x6772 (Gabriel Rosenkoetter)
Cc: | 0x6772 added |
---|
comment:3 Changed 3 years ago by 0x6772 (Gabriel Rosenkoetter)
Cc: | 0x6772 removed |
---|
comment:4 Changed 3 years ago by jmroot (Joshua Root)
Cc: | chrstphrchvz added |
---|
comment:5 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
I’m fairly certain this is a problem in the p5-musicbrainz-discid port where it erroneously specifies supported_archs noarch
when the build output is platform-specific due to the module containing XS code. PR opened: https://github.com/macports/macports-ports/pull/13757
comment:6 Changed 3 years ago by chrstphrchvz (Christopher Chavez)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
I'm happy being assigned to this, but looping in @chrstphrchvz (does that syntax work in trac? Doesn't seem to, and I… don't have permission to modify the cc field?), because this is indirectly related to his recent PR to depend abcde on Perl 5.34.
The problem here isn't, strictly speaking, the abcde port: rather it's the binary version of the MusicBrainz::DiscID module, from which you're getting an arm64 binary on an intel platform, which you shouldn't be.
A quick workaround would be to build the p5-musicbrainz-discid from source, rather than a binary install. (I'd have to check a bunch of man pages to provide directions to do that, and I'll do so in a bit, but I'm supposed to be on the phone with my parents right now, and maybe that's enough for you to get going.)
If you get to doing that before I get back to this, please do let us know how it goes. Thanks!