Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#65653 closed defect (fixed)

mpd @0.23.8: builds failing for all macOS releases prior to monterey

Reported by: mascguy (Christopher Nielsen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc: l2dy (Zero King)
Port: mpd

Description

The following failure is occurring.

../mpd-0.23.8/src/output/plugins/OSXOutputPlugin.cxx:163:3: error: use of undeclared identifier 'kAudioObjectPropertyElementMain'; did you mean 'kAudioObjectPropertyElementName'?
                kAudioObjectPropertyElementMain,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                kAudioObjectPropertyElementName
/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareBase.h:331:5: note: 'kAudioObjectPropertyElementName' declared here
    kAudioObjectPropertyElementName         = 'lchn',
    ^

Does the latest upstream release require Monterey and later? If so, we should fallback to an earlier release, for Big Sur and prior.

Change History (10)

comment:1 Changed 2 years ago by l2dy (Zero King)

Unfortunately, a dependency update made all earlier releases fail to build. You may need to backport a patch, see https://github.com/MusicPlayerDaemon/MPD/commit/138738075b95d3d8eae3468daa542c0270965299.

comment:2 in reply to:  1 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to l2dy:

Unfortunately, a dependency update made all earlier releases fail to build. You may need to backport a patch, see https://github.com/MusicPlayerDaemon/MPD/commit/138738075b95d3d8eae3468daa542c0270965299.

Yes, I'm actively working on that, as it affects a number of ports. See issue:65619

comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: l2dy added
Owner: changed from l2dy to mascguy

comment:4 Changed 2 years ago by Christopher Nielsen <mascguy@…>

In 8eea3b9366698a3c777e08282cee69818b109a83/macports-ports (master):

mpd: fallback: support 10.15 and big sur

  • Still more work necessary, for 10.14 and prior

See: #65653

comment:5 Changed 2 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

We can certainly add additional fallbacks for 10.14 and prior, if there's demand.

But at least we now support 10.15 and Big Sur once again, so that's an improvement!

comment:6 Changed 2 years ago by Gcenx

kAudioObjectPropertyElementMaster API_DEPRECATED_WITH_REPLACEMENT("kAudioObjectPropertyElementMain", macos(10.0, 12.0), ios(2.0, 15.0), watchos(1.0, 8.0), tvos(9.0, 15.0))	= kAudioObjectPropertyElementMain

So you’d want to map kAudioObjectPropertyElementMain to kAudioObjectPropertyElementMaster for prior versions of macOS.

comment:7 Changed 2 years ago by Gcenx

You’d do something like the following within the relevant header

#if !defined(MAC_OS_X_VERSION_10_12) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
#define kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
#endif

This is more a copy/paste where I didn’t update the version requirement.

Version 0, edited 2 years ago by Gcenx (next)

comment:8 Changed 2 years ago by Gcenx

I don’t have access to all the SDKs currently as I’m at work but I believe this change happened from the macOS12.sdk

The majority of software there’s days expects to be build against the latest possible SDK and set the minimum target accordingly, however at least on Macports due to rev-upgrade that’s not exactly always possible.

Last edited 2 years ago by Gcenx (previous) (diff)

comment:9 Changed 2 years ago by Gcenx

mpd also needs

#ifndef kAudioHardwareServiceDeviceProperty_VirtualMainVolume
#define kAudioHardwareServiceDeviceProperty_VirtualMainVolume kAudioHardwareServiceDeviceProperty_VirtualMasterVolume
#endif

#ifndef kAudioHardwareServiceDeviceProperty_VirtualMainBalance
#define kAudioHardwareServiceDeviceProperty_VirtualMainBalance kAudioHardwareServiceDeviceProperty_VirtualMasterBalance
#endif

This along with the prior mapping gets mpd to compile on macOS Big Sur where before it wouldn't compile with the MacOSX11.sdk

comment:10 Changed 2 years ago by Gcenx

Some additional info

Also tested on macOS Mojave with PR49 for legacy-support, Xcode11 fails to compile but after blacklisting anything below Xcode12 and Macports pulled in llvm/clang-14 mpd compiled without issue.

Note: See TracTickets for help on using tickets.