macfusion-ng / macfusion2

Macfusion2
225 stars 28 forks source link

won't compile on Mac OSX10.9 with Xcode 5.1.1 #11

Closed tessus closed 8 years ago

tessus commented 10 years ago

The code doesn't compile on Mac OSX10.9 with Xcode 5.1.1.

It won't compile, because GC is no longer supported and converting to ARC doesn't work either.

bananastalktome commented 9 years ago

+1 Luckily I had an old laptop still running 10.8.5 I was able to build this with, and it runs fine on my main laptop running 10.9.5 (maybe I can upload my build, if there is interest?). This build seems to run much more smoothly than the stock macfusion app, I just wish it would build natively under 10.9 since I know my old machine won't last much longer.

tessus commented 9 years ago

@bananastalktome I found a build on the Internet at some point, but I'm sure a lot of people would benefit from your upload. As for long terms solutions, the code really needs to get refactored. Xcode 6.1.1 is out and the longer it takes the more code might need some changing.

ElDeveloper commented 9 years ago

ARC is going to be a rather big change, though I think new binaries can be built if the OSX10.6 dev framework is installed. I'll look into converting to ARC and see what other API changes need to change.

On (Dec-18-14| 9:34), Helmut Tessarek wrote:

@bananastalktome I found a build on the Internet at some point, but I'm sure a lot of people would benefit from your upload. As for long terms solutions, the code really needs to get refactored. Xcode 6.1.1 is out and the longer it takes the more code might need some changing.


Reply to this email directly or view it on GitHub: https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-67523415

tessus commented 8 years ago

it seems that @stewiem2000 did some changes to the code last year. I haven't had time to check for ARC changes, but he fixed some bugs like Fix misuse of logical-OR https://github.com/stewiem2000/macfusion2/commit/8351bd263c89f61bed4faf2ab25f59d58ee2f7c6

tessus commented 8 years ago

@ElDeveloper - I think your task got a lot easier. :-) @stewiem2000's code is forked from https://github.com/166MMX/macfusion2 which actually has ARC changes. maybe you can pull them...

ElDeveloper commented 8 years ago

Whoaaa!! Awesome find @tessus. Have you had a chance to test it out?

tessus commented 8 years ago

Unfortunately I haven't had time yet.

alexwhittemore commented 8 years ago

Man, look at @166MMX go!

tessus commented 8 years ago

I've merged @166MMX's changes into your current master. The merge conflicts were quite extensive and I spent only a couple of hours to resolve them. Thus I can't be sure, if everything works as expected.

I was able to compile and run it though (on 10.11.6 with Xcode 7.3.1).

https://github.com/tessus/macfusion2/tree/166MMX

There are still other things to change like Interface Builder settings for a few .xib files and other minor adjustments, but these things can be done after the merge has been tested and deemed valid. I also suggest merging some, if not all commits done by @stewiem2000 which are here https://github.com/stewiem2000/macfusion2/commits/master

alexwhittemore commented 8 years ago

Fantastic work!

tessus commented 8 years ago

Thanks, but @ElDeveloper has to verify that the merge didn't screw up any of his earlier commits. Unfortunately the other repos were forked from the original. To that end, what are the next steps @ElDeveloper? What do you think of @stewiem2000's changes? Most of them look like cleanup and bug fixing. Shall I try to merge them as well?

ElDeveloper commented 8 years ago

First of all, thanks for taking the initiative, this is awesome! Secondly, the changes that I have made have all mostly been rather minor, nothing that disrupts the code-base too much. As for integrating more bug fixes and cleanup, I think that would be a good idea! I will pull your changes tonight and test locally! This is very exciting!!!

On (Aug-12-16|22:55), Helmut K. C. Tessarek wrote:

Thanks, but @ElDeveloper has to verify that the merge didn't screw up any of his earlier commits. Unfortunately the other repos were forked from the original. To that end, what are the next steps @ElDeveloper? What do you think of @stewiem2000's changes? Most of them look like cleanup and bug fixing. Shall I try to merge them as well?

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-239604368

tessus commented 8 years ago

I'll work on cherry-picking commits from @stewiem2000's fork and put them in a separate branch.

Another thing I was wondering about: don't you want to change the Sparkle update feed to your server?

ElDeveloper commented 8 years ago

@tessus, it's alive! It compiles in 10.11.6, however it seems like there's a problem with the agent, can't be started, or something along those lines. I will try to have a look, unless someone beats me to it.

By glancing through the warnings, it seems that most of them are straightforward, which is great!

Another thing I was wondering about: don't you want to change the Sparkle update feed to your server?

This would be a good thing to do for sure. However I don't have a server of my own that I can reliably use for this 😞. This is something we'll have to figure out at some point, would be great to have Sparkle just work again.

Thanks again for the hard work!!! I'll debug further later in the week.

tessus commented 8 years ago

Yes, I noticed that. I think you might not have pulled the latest commit 686c571a7c003b36627adb7c3cddce7b558460f3

These 2 settings have to be set in the project: CLANG_ENABLE_OBJC_ARC = YES, CLANG_LINK_OBJC_RUNTIME = YES

Btw, I've cherry-picked (and resolved conflicts of) @stewiem2000's cleanup commits and they are in a new branch (on top of the previous one): https://github.com/tessus/macfusion2/tree/stewiem2000-cherry-picks

Other than that it would be great, if you could look at @stewiem2000's other changes. They look promising and could be a good addition:

* 368293f | 2015-06-24 15:19:25 +0100 |  (stewiem2000/master) - Add a document and script mentioning how to rebuild SSHFS
* afdb59c | 2015-06-24 15:14:15 +0100 |  - Remove forced-TTY requirement; this is better handled with a sudoers config change
* a3b63aa | 2015-06-24 15:12:39 +0100 |  - Add the ability to forward the ssh-agent connection; this has necessitated bundling a non-static version of sshfs with associated libraries
* d0931d0 | 2015-06-22 16:40:21 +0100 |  - Facilitate using sudo with the remote end of SSHFS
*   d837632 | 2015-01-31 22:22:39 +0000 |  Merge branch 'my-additions'
|\
| * 652be34 | 2015-01-31 13:53:31 +0000 |  (stewiem2000/my-additions) - Use correct format string for dict key from https://github.com/ifraimow/macfusion2/commit/3aa843d2e047e94c213cc5fb807fd5c1a6964ff5
| * 13fbc60 | 2015-01-31 13:45:30 +0000 |  - Add the ability to specify the umask
| * 63233c5 | 2015-01-31 12:07:03 +0000 |  - Add number formatters to restrict port, UID and GID values
| * 2dee068 | 2015-01-31 12:06:40 +0000 |  - Default the UID/GID values to those of the current user
| * b413cf5 | 2015-01-31 12:06:23 +0000 |  - Disable the UID/GID inputs if "Map User" is not selected
| * e911eb8 | 2015-01-31 12:06:04 +0000 |  - Add support for additional SSHFS configuration

As a side note, I've noticed that the IconFamily code is mostly deprecated. Maybe you can find a newer, more recent version, or a substitute. On my MacBook the icons look rather off:

screen shot 2016-08-16 at 01 13 39
jcrbloch commented 8 years ago

I downloaded the ElDeveloper/macfusion2 branch and built it on MacOS Sierra with Xcode8. The build went through without problem, but when starting MacFusion it aborts because the Agent can not be started, even though it was properly built. Any idea?

jcrbloch commented 8 years ago

The same problem occurs with the https://github.com/tessus/macfusion2/tree/stewiem2000-cherry-picks branch. Build on Sierra with Xcode8 works fine using "xcodebuild -sdk macosx10.12 -target All", but starting Macfusion fails with the message "Could not start or connect to the macfusion agent".

jcrbloch commented 8 years ago

I got one step further now. I put aside the Macfusion directory in ~/Library/Application Support and started afresh. Now the macfusionAgent starts, and so does macfusion. The new problem is that I am not able to mount any sshfs server, as I constantly get the message: "Could not mount filesystem: Mount path could not be created."

jcrbloch commented 8 years ago

Somehow Macfusion can no longer access /Volumes to create the mountpoint, so I got it to work by adding a Mount Point and Volume Name in the Macfusion options of each added filesystem. As mount point I choose an UNEXISTANT folder name in my home folder (e.g. /Users//Volumes) and as volume name the name I gave to the filesystem (otherwise it will use the host name). Now everything seems to be fine and the file system shows up Finder, etc.

jcrbloch commented 8 years ago

But this is unfortunately not the end of the story. If Macfusion together with the Macfusionagent are stopped, it will not start again until the Macfusion folder in "Application Support" has been again removed, which means that all stored FileSystems are gone. I have not yet found a way around this, as making a copy of the configurations and restoring the configuration file after starting the agent is of no use because the configurations are read by the agent when it is started. More help needed.

ElDeveloper commented 8 years ago

@tessus I will try that, thanks!

@jcrbloch thanks for the in-depth debugging, I don't have a Sierra system, but I'll try in my El Capitan installation. The problem with the Application Support folders may be due to an API change on the plist files, this is a very helpful guide going in, cheers 👍

tessus commented 8 years ago

I've had some time to test it as well and I experienced similar issues as @jcrbloch although I was able to mount via sshfs (from my previous post you can see that I am on 10.11.6).

In the beginning I did not have issues with it, because I haven't had any mount points added. But even after adding some mount points I was able to start it again and see them in the main window.

At some point (and I have no clue why) it stopped working and I had to remove the macfusion folder in the Application Support directory. I'm really puzzled by this, because it makes no sense. At least not to me.

jcrbloch commented 8 years ago

Situation here is unchanged: when I reboot my machine the Macfufsion Agent will not start until I remove the Macfusion folder in Application Support. This means that I have to reenter my external Filesystems in Macfusion at every reboot... not very practical ;)

jcrbloch commented 8 years ago

If I look at the log console I see that when starting the Agent I get zillions of lines with: macfusionAgent Loading fs at /Users/bloch/Library/Application Support/Macfusion/Filesystems/35298D39-CEEB-4A83-9F71-47E8EE4C50A8.macfusion

and then finally: macfusionAgent *\ Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x60000028fff0 of class SSHServerFS was deallocated while key value observers were still registered with it.

jcrbloch commented 8 years ago

In fact the only culprits prohibiting the Agent to start are the following commands in the filesystem descriptions:

type
<string>org.mgorbach.macfusion2.sshfs</string>

Obviously this is a crucial key, but nevertheless when commenting this out the Agent starts, but without showing any filesystems.

jcrbloch commented 8 years ago

Note that this is not an sshfs problem per se on Sierra, as the command line sshfs works properly fine if one installs FUSE 3.4 or higher.

tessus commented 8 years ago

@ElDeveloper have you had success fixing the Application Support API issues?

ElDeveloper commented 8 years ago

Looking at it just now 👀

ElDeveloper commented 8 years ago

Not having much success right now, what I've been able to gather (at least from the exception below) is that there's some observers that are not being removed, and this is causing that exception to be raised.

9/3/16 6:56:29.845 AM macfusionAgent[60640]: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x6100000945a0 of class SSHServerFS was deallocated while key value observers were still registered with it. Current observation info: <NSKeyValueObservationInfo 0x610000256650> (
<NSKeyValueObservance 0x6100000d3e80: Observer: 0x6100000945a0, Key path: statusInfo, Options: <New: YES, Old: YES, Prior: NO> Context: 0x0, Property: 0x6180000410e0>
<NSKeyValueObservance 0x6100000d3d30: Observer: 0x6100000945a0, Key path: parameters, Options: <New: YES, Old: YES, Prior: NO> Context: 0x0, Property: 0x618000041320>
<NSKeyValueObservance 0x6100000d3ef0: Observer: 0x6100000945a0, Key path: status, Options: <New: YES, Old: YES, Prior: NO> Context: 0x0, Property: 0x618000041140>
<NSKeyValueObservance 0x6100000d3f60: Observer: 0x600000a61a80, Key path: status, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x618000041140>
)'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff960e84f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff9fda573c objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff9614f4bd +[NSException raise:format:] + 205
    3   Foundation                          0x00007fff93edef80 NSKVODeallocate + 294
    4   CoreFoundation                      0x00007fff9602188d -[__NSDictionaryM dealloc] + 269
    5   libobjc.A.dylib                     0x00007fff9fda1c42 _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 127
    6   libobjc.A.dylib                     0x00007fff9fd9bdab objc_destructInstance + 116
    7   libobjc.A.dylib                     0x00007fff9fd9bd0d object_dispose + 22
    8   Foundation                          0x00007fff93f42620 -[NSKeyValueMutableArray _proxyNonGCFinalize] + 59
    9   Foundation                          0x00007fff93f7cc2c -[NSKeyValueSlowMutableArray _proxyNonGCFinalize] + 94
    10  Foundation                          0x00007fff93ef2f83 _NSKeyValueProxyDeallocate + 254
    11  Foundation                          0x00007fff93f42560 -[NSKeyValueMutableArray dealloc] + 17
    12  libobjc.A.dylib                     0x00007fff9fd9aac4 _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 476
    13  CoreFoundation                      0x00007fff9601bc12 _CFAutoreleasePoolPop + 50
    14  Foundation                          0x00007fff93e7a9ea -[NSAutoreleasePool drain] + 153
    15  AppKit                              0x00007fff91028ee2 -[NSApplication run] + 1036
    16  macfusionAgent                      0x0000000100001b2a main + 170
    17  macfusionAgent                      0x0000000100001a74 start + 52
)

I've tried is adding some calls to removeObserver, however this doesn't seem to be sufficient, the problem prevails however this time with fewer objects:

9/3/16 8:03:02.094 AM macfusionAgent[64707]: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x610000280fa0 of class SSHServerFS was deallocated while key value observers were still registered with it. Current observation info: <NSKeyValueObservationInfo 0x6000004455e0> (
<NSKeyValueObservance 0x6100000d12c0: Observer: 0x610000670600, Key path: status, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x6180000484f0>
)'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff960e84f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff9fda573c objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff9614f4bd +[NSException raise:format:] + 205
    3   Foundation                          0x00007fff93edef80 NSKVODeallocate + 294
    4   CoreFoundation                      0x00007fff9602188d -[__NSDictionaryM dealloc] + 269
    5   libobjc.A.dylib                     0x00007fff9fda1c42 _ZL27object_cxxDestructFromClassP11objc_objectP10objc_class + 127
    6   libobjc.A.dylib                     0x00007fff9fd9bdab objc_destructInstance + 116
    7   libobjc.A.dylib                     0x00007fff9fd9bd0d object_dispose + 22
    8   Foundation                          0x00007fff93f42620 -[NSKeyValueMutableArray _proxyNonGCFinalize] + 59
    9   Foundation                          0x00007fff93f7cc2c -[NSKeyValueSlowMutableArray _proxyNonGCFinalize] + 94
    10  Foundation                          0x00007fff93ef2f83 _NSKeyValueProxyDeallocate + 254
    11  Foundation                          0x00007fff93f42560 -[NSKeyValueMutableArray dealloc] + 17
    12  libobjc.A.dylib                     0x00007fff9fd9aac4 _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 476
    13  CoreFoundation                      0x00007fff9601bc12 _CFAutoreleasePoolPop + 50
    14  Foundation                          0x00007fff93e7a9ea -[NSAutoreleasePool drain] + 153
    15  AppKit                              0x00007fff91028ee2 -[NSApplication run] + 1036
    16  macfusionAgent                      0x0000000100001b2a main + 170
    17  macfusionAgent                      0x0000000100001a74 start + 52
)

Not sure how this was working before, but I'm also not too familiar with the KVO framework.


Just in case my current diff looks like this (not all of these changes may be needed, just focus on the addObserver changes):

diff --git a/MFCore/MFClient.m b/MFCore/MFClient.m
index fa20e93..18c234d 100644
--- a/MFCore/MFClient.m
+++ b/MFCore/MFClient.m
@@ -82,6 +82,14 @@ static MFClient *sharedClient = nil;
    [nc addObserver:self selector:@selector(handleApplicationTerminatingNotification:) name:NSApplicationWillTerminateNotification object:nil];
 }

+- (void)dealloc{
+   NSDistributedNotificationCenter *dnc = [NSDistributedNotificationCenter defaultCenter];
+   [dnc removeObserver:self name:kMFRecentsUpdatedNotification object:kMFDNCObject];
+
+   NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
+   [nc removeObserver:self name:NSApplicationWillTerminateNotification object:nil];
+}
+
 - (id)init {
    self = [super init];
    if (self != nil) {
diff --git a/MFCore/MFCommunicationServer.m b/MFCore/MFCommunicationServer.m
index eeadb1b..6e9c5e8 100644
--- a/MFCore/MFCommunicationServer.m
+++ b/MFCore/MFCommunicationServer.m
@@ -48,6 +48,14 @@ static MFCommunicationServer *sharedServer = nil;
    [[MFFilesystemController sharedController] addObserver:self forKeyPath:@"recents" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
 }

+- (void)dealloc {
+   NSArray *filesystems = [[self filesystemController] filesystems];
+   NSIndexSet *indexes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [filesystems count])];
+
+   [filesystems removeObserver:self fromObjectsAtIndexes:indexes forKeyPath:@"status"];
+   [filesystems removeObserver:self fromObjectsAtIndexes:indexes forKeyPath:@"parameters"];
+}
+
 - (id) init {
    self = [super init];
    if (self != nil) {
diff --git a/MFCore/MFMainController.h b/MFCore/MFMainController.h
index 4fe1c26..594dd90 100644
--- a/MFCore/MFMainController.h
+++ b/MFCore/MFMainController.h
@@ -16,7 +16,7 @@

 #import <Cocoa/Cocoa.h>

-@interface MFMainController : NSObject {   
+@interface MFMainController <NSApplicationDelegate> : NSObject {
 }

 + (MFMainController *)sharedController;
diff --git a/MFCore/MFServerFS.m b/MFCore/MFServerFS.m
index 3656df3..c47f9b6 100644
--- a/MFCore/MFServerFS.m
+++ b/MFCore/MFServerFS.m
@@ -164,18 +164,24 @@
 - (void)registerGeneralNotifications {
    [self addObserver:self 
           forKeyPath:KMFStatusDict
-             options:NSKeyValueObservingOptionOld || NSKeyValueObservingOptionNew
+             options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
              context:nil];
    [self addObserver:self
           forKeyPath:kMFParameterDict
-             options:NSKeyValueObservingOptionOld || NSKeyValueObservingOptionNew
+             options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
              context:nil];
    [self addObserver:self
           forKeyPath:kMFSTStatusKey
-             options:NSKeyValueObservingOptionOld || NSKeyValueObservingOptionNew
+             options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
              context:nil];
 }

+- (void)dealloc {
+   [self removeObserver:self forKeyPath:KMFStatusDict];
+   [self removeObserver:self forKeyPath:kMFParameterDict];
+   [self removeObserver:self forKeyPath:kMFSTStatusKey];
+}
+
 - (NSMutableDictionary *)initializedStatusInfo {
    NSMutableDictionary *initialStatusInfo = [NSMutableDictionary dictionaryWithCapacity:5];
    // Initialize the important keys in the status dictionary
@@ -384,10 +390,10 @@
 - (void)unmount {
    MFLogS(self, @"Unmounting");
    NSString* path = [[self mountPath] stringByStandardizingPath];
-   NSString *taskPath = @"/sbin/umount";
+   NSString *taskPath = @"/usr/sbin/diskutil";
    NSTask* t = [[NSTask alloc] init];
    [t setLaunchPath:taskPath];
-   [t setArguments:[NSArray arrayWithObject:path]];
+   [t setArguments:[NSArray arrayWithObjects:@"unmount", path, nil]];
    [t launch];

    /*
diff --git a/Settings/MFSettingsController.m b/Settings/MFSettingsController.m
index e3181b2..7a5b765 100644
--- a/Settings/MFSettingsController.m
+++ b/Settings/MFSettingsController.m
@@ -580,6 +580,7 @@
 }

 - (void)dealloc {
+   [[MFPreferences sharedPreferences] removeObserver:self forKeyPath:kMFPrefsAutosize context:(__bridge void *)(self)];
    [client setDelegate:nil];
 }
ElDeveloper commented 8 years ago

HT to this answer on SO: http://stackoverflow.com/a/6960224/379593

ElDeveloper commented 8 years ago

I think I figured it out, I've pushed my changes to https://github.com/ElDeveloper/macfusion2/tree/kvo-bug, please pull these down and make sure it works for you. Seems to be working for me 🎉

I added the commit on top of @tessus' changes at 686c571a7c003b36627adb7c3cddce7b558460f3. I haven't yet merged in and tested all the other changes from the cherry-picked branch. If someone else can confirm that this last patch works, I'll look at the other changes and merge them as appropriate.

jcrbloch commented 8 years ago

I pulled the kvo-bug branch and built macfusion on MasOS Sierra. I had to restart the agent a couple of times and reenter one of the filesystems, but since then the program seems to be stable. Thanks Yoshiki.

The remaining problem on Sierra, which is independent of the solved bug, is that I can no longer mount the filesystems in /Volume, as there seems to be a new permission problem. The error message is "Mount path could not be created". The only consistent solution for me right now is to explicitly enter a Mount Point for each filesystem. The Mount Point has to be an inexistent filename, e.g. /Users//Volumes/.

ElDeveloper commented 8 years ago

I see, I don't have a Sierra system to test in, and I'm not up to date with the latest API changes from Apple, anyone knows anything about this? When I tested in my system (running El Capitan), Macfusion was able to mount the filesystem in my /Volumes/ folder without a problem.

On (Sep-05-16| 2:15), Jacques Bloch wrote:

I pulled the kvo-bug branch and built macfusion on MasOS Sierra. I had to restart the agent a couple of times and reenter one of the filesystems, but since then the program seems to be stable. Thanks Yoshiki.

The remaining problem on Sierra, which is independent of the solved bug, is that I can no longer mount the filesystems in /Volume, as there seems to be a new permission problem. The error message is "Mount path could not be created". The only consistent solution for me right now is to explicitly enter a Mount Point for each filesystem. The Mount Point has to be an inexistent filename, e.g. /Users//Volumes/.

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-244698656

jcrbloch commented 8 years ago

It may have something to do with what is documented here [http://apple.stackexchange.com/questions/249627/programmatically-creating-mount-points-in-macos-10-12] saying that: Apple have confirmed to me (https://openradar.appspot.com/radar?id=4948585099558912) that with macOS 10.12, permissions to create a folder inside /Volumes require root access. Using the mount command requires that the mount point exists first, so you're going to have to sudo to create that folder for the mount point.

This has not helped me however. Even when creating the directories in /Volumeswith sudo and consequently changing the ownership to my user, macfusion still cannot mount them. Maybe I have to change some more permissions. Of course, if macfusion tries to use "mkdir" to create the mountpoint then it would indeed fail to do so when using /Volumes since this requires root permissions in MacOS Sierra. Is this indeed the case?

ElDeveloper commented 8 years ago

Thanks!! I think the reason why Macfusion can't mount in the existing folders, is because it has a check (IIRC) where if the directory already exists, then it will fail to mount the volume. I think a better solution, would be to mount all the volumes by default in the home directory, any votes or alternative solutions?

On (Sep-06-16| 0:24), Jacques Bloch wrote:

It may have something to do with what is documented here [http://apple.stackexchange.com/questions/249627/programmatically-creating-mount-points-in-macos-10-12] saying that: _Apple have confirmed to me (https://openradar.appspot.com/radar?id=4948585099558912) that with macOS 10.12, permissions to create a folder inside /Volumes require root access.

Using the mount command requires that the mount point exists first, so you're going to have to sudo to create that folder for the mount point._

This has not helped me however. Even when creating the directories in /Volumes and changing ownership macfusion still cannot mount them. Maybe I have to change some more permissions.

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-244870265

jcrbloch commented 8 years ago

The home directory may lead to clashes with existing files. Would it not be better to mount it in a dedicated subfolder like ~/Volumes ?

ElDeveloper commented 8 years ago

Either or, I don't have a strong preference. Thoughts?

On (Sep-06-16|23:51), Jacques Bloch wrote:

The home directory may lead to clashes with existing files. Would it not be better to mount it in a dedicated subfolder like ~/Volumes ?

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-245191271

tessus commented 8 years ago

Yep, macOS will be one more step closer to iOS and thus less usable. It's bad how Apple de-professionalizes its flagship system. Opensource developers won't be able to code for macOS anymore, since Apps will have to be installed through the AppStore which in turn has great limitations.

Anyway, ranting aside, I like @jcrbloch's suggestion ~/Volumes. You could make it conditional, if you wanted to: ~/Volumes for systems >= 10.12 and /Volumes for <= 10.11. (not really necessary though)

ElDeveloper commented 8 years ago

Anyway, ranting aside, I like @jcrbloch's suggestion ~/Volumes. You could make it conditional, if you wanted to: ~/Volumes for systems >= 10.12 and /Volumes for <= 10.11. (not really necessary though)

Great point, I'll give this a shot, and add all the other commits to this branch, hopefully we can have something working soon.

BTW, when I was testing over the weekend, I noticed the icons Macfusion were sized incorrectly once, and then after a few restarts the icons were fine. Not sure if anyone's encountered this same problem.

Thanks!

Yoshiki.

On (Sep-08-16| 5:38), Helmut K. C. Tessarek wrote:

Yep, macOS will be one more step closer to iOS and thus less usable. It's bad how Apple de-professionalizes its flagship system. Opensource developers won't be able to code for macOS anymore, since Apps will have to be installed through the AppStore which in turn has great limitations.

Anyway, ranting aside, I like @jcrbloch's suggestion ~/Volumes. You could make it conditional, if you wanted to: ~/Volumes for systems >= 10.12 and /Volumes for <= 10.11. (not really necessary though)

You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-245583672

tessus commented 8 years ago

I'll do some testing tomorrow and let you know. But as I mentioned in an earlier https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-240003097, the IconFamily code is mostly deprecated. Maybe it is possible to find a newer version or a replacement.

kaloprominat commented 8 years ago

fellows? any luck on fixing macfusion for macOS Sierra?

jcrbloch commented 8 years ago

@pavel: as I wrote 2 weeks ago the kvo-bug branch described above compiles and works fine on Sierra. Just tell me if you have any trouble getting it to work.

Serik0 commented 8 years ago

@jcrbloch Hello! Could you please share one more "pre-release" to allow just downloading this version with fixes?

Thanks in advance.

wpoulos commented 8 years ago

I can't seem to get the agent started or the built version of kvo-bug MacFusion to launch. Is there something else I need to do? The build seemed to work fine. I am on Sierra.

Serik0 commented 8 years ago

Hello. I've built MacFusion from kvo-bug branch and upload here.

Macfusion-kvo-bug.zip

KatsOide commented 8 years ago

I have tested Serik0's version for SSHFS on Sierra. It failed:

default 09:15:03.929920 +0200 macfusionAgent Mounting default 09:15:03.948220 +0200 Macfusion Note status changed for fs <MFClientFS: 0x6000000e8880> (xxx) to Waiting to Mount default 09:15:04.114916 +0200 Macfusion Note status changed for fs <MFClientFS: 0x6000000e8880> (xxx) to Failed to Mount

I am using osxfuse 3.5.1.

jcrbloch commented 8 years ago

@KatsOide: did you follow the advice that I gave two weeks ago? On Sierra, users no longer have the permission to mount their own filesystems in /Volume. So you have to explicitly create your own Mount Point for each filesystem. The Mount Point has to be an inexistent filename, e.g. /Users/me/Volumes/fs, where fs is the name you give to your filesystem and the folder Volume should be created first in your home directory.

KatsOide commented 8 years ago

@ElDeveloper/macfusion2 Yes, I did follow your advice on the permission of /Volumes. Thus I set it writable to everybody. Then it works for other mounter such as ExpanDrive, etc. I think it is not the issue in my case.

On Sep 23, 2016, at 12:05 , Jacques Bloch notifications@github.com wrote:

@KatsOide: did you follow my advice which I gave two weeks ago? On Sierra, users no longer have the permission to mount their own filesystems in /Volume. So you have to explicitly create your own Mount Point for each filesystem. The Mount Point has to be an inexistent filename, e.g. /Users/Volumes/.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

KatsOide commented 8 years ago

In my case, the issue was not in MacFusion, but in sshfs/osxfuse: https://github.com/osxfuse/osxfuse/issues/315

jcrbloch commented 8 years ago

Did you install the latest osxfuse beta version?

On 23 Sep 2016, at 16:41, KatsOide notifications@github.com wrote:

In my case, the issue was not in MacFusion, but in sshfs/osxfuse: osxfuse/osxfuse#315 https://github.com/osxfuse/osxfuse/issues/315 — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ElDeveloper/macfusion2/issues/11#issuecomment-249211077, or mute the thread https://github.com/notifications/unsubscribe-auth/AFhuZGjI85hjMxT7cfMM1e6DTXQnDWmjks5qs-UAgaJpZM4ChQdC.