Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#11441 closed Bug report (fixed)

FileZilla 3.28.0 does not build on Mac OS X <= 10.11 (El Capitan)

Reported by: yan12125 Owned by:
Priority: normal Component: FileZilla Client
Keywords: Cc: mojca@…
Component version: 3.28.0 Operating system type: OS X
Operating system version: 10.11 El Capitan

Description

For example, on El Capitan, building FileZilla 3.28.0 via MacPorts failed:

/opt/local/bin/clang-mp-4.0 -DHAVE_CONFIG_H -I. -I../../src/include  -I./../include   -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/wx/include/osx_cocoa-unicode-3.0 -I/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__   -I/opt/local/include -fpch-preprocess  -pipe -Os -arch x86_64 -MT filezilla-power_management_osx.o -MD -MP -MF .deps/filezilla-power_management_osx.Tpo -c -o filezilla-power_management_osx.o `test -f 'power_management_osx.m' || echo './'`power_management_osx.m
file_utils_osx.m:11:22: error: property 'path' cannot be found in forward class object 'NSURL'
                        path = strdup(url.path.UTF8String);
                                      ~~~ ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:251:8: note: forward declaration of class here
@class NSURL;
       ^
1 error generated.

The full build log can be found at https://build.macports.org/builders/ports-10.11_x86_64-builder/builds/40551/steps/install-port/logs/stdio

Change History (5)

comment:1 by Tim Kosse, 3 years ago

Status: newmoreinfo

Do you still experience this if you add this at the top of src/interface/file_utils_osx.m?

#include <Foundation/NSURL.h>

comment:2 by Mojca Miklavec, 3 years ago

Cc: mojca@… added
Status: moreinfonew

Sorry, I didn't intentionally change moreinfo to new, Trac did that automatically.

I'll ask someone with appropriate version of macOS to test.

Last edited 3 years ago by Mojca Miklavec (previous) (diff)

comment:3 by Mojca Miklavec, 3 years ago

Thanks, FileZilla 3.29.0 now compiles on 10.9 and later.

It breaks on 10.7 and 10.8 though:

power_management_osx.m:5:2: error: use of undeclared identifier 'NSActivityOptions'
        NSActivityOptions opt = NSActivityUserInitiated | NSActivityIdleSystemSleepDisabled;
        ^
power_management_osx.m:6:45: warning: instance method '-beginActivityWithOptions:reason:' not found (return type defaults to 'id') [-Wobjc-method-access]
        id activity = [[NSProcessInfo processInfo] beginActivityWithOptions:opt reason:@"Preventing idle sleep during transfers and other operations."];
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSProcessInfo.h:20:12: note: receiver is instance of class declared here
@interface NSProcessInfo : NSObject {
           ^
power_management_osx.m:6:70: error: use of undeclared identifier 'opt'
        id activity = [[NSProcessInfo processInfo] beginActivityWithOptions:opt reason:@"Preventing idle sleep during transfers and other operations."];
                                                                            ^
power_management_osx.m:14:32: warning: instance method '-endActivity:' not found (return type defaults to 'id') [-Wobjc-method-access]
                [[NSProcessInfo processInfo] endActivity:activityId];
                                             ^~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSProcessInfo.h:20:12: note: receiver is instance of class declared here
@interface NSProcessInfo : NSObject {
           ^
2 warnings and 2 errors generated.

https://developer.apple.com/documentation/foundation/nsactivityoptions

Is this functionality required?

comment:4 by Tim Kosse, 3 years ago

Resolution: fixed
Status: newclosed

FileZilla requires OS X 10.9 or higher.

comment:5 by Mojca Miklavec, 3 years ago

OK. I would bet that I managed to compile at least filezilla on 10.7 a few days ago. C++ standards are no longer a problem, but if a new SDK is needed, there's not much point in trying.

Note: See TracTickets for help on using tickets.