jaharmi
December 27th, 2021, 21:41
Summary:
I migrated my macOS home directory to a different disk, while keeping the old disk available, and Fantasy Grounds did not adjust automatically to the change. It continued to access the old disk.
Ruleset(s):
D&D 5e
New Campaign / FGC Migrated Campaign:
New campaign tested
Extensions/Themes:
Limited extensions loaded for testing (was troubleshooting an extension version issue)
Modules Loaded:
D&D rules
Operating System / Language Setting:
macOS 11.6.2
Expected result:
On macOS, applications automatically use the home directory path defined for the local user account.
Actual result:
Fantasy Grounds Unity (`FGU: v4.1.12 ULTIMATE (2021-11-10)`) on maOS 11.6.2 did not adjust to use a different home directory when the home directory was migrated to a new disk. The path found in the FGU Settings was the path to the "Fantasy Grounds" folder in the old home directory.
Notes:
The home directory was not on the macOS startup disk in either case (old or new disk).
The home directory path for the macOS user account was specified in System Preferences > Users & Groups. To change the home directory path, I unlocked this system preference pane, right-clicked on the user account of the Current User (my user), and chose Advanced Options. I then selected the "Home directory" on the new disk with the "Choose" button.
Both the old and new disk were available at the same time. First, while migrating data from the old disk to the new disk. Then afterwards, because I didn't consciously unmount the old disk while I was verifying things worked.
Fantasy Grounds worked fine before the home folder migration and still worked afterwards.
I tracked down the problem by finding that extensions from DMsGuild were not updating correctly, even though I was copying them to the SmiteWorks folder in my user home folder on the new disk.
I use the DMsGuild/DriveThruRPG/OneBookShelf updater app on macOS to download updates from DMsGuild. I then have a script that finds changed files and copies them to the SmiteWorks Fantasy Grounds folder in my home directory.
I may also have found the problem if I'd been missing images or other assets, but I hadn't made any of those changes before I discovered the problem with extensions.
I found the path to my home directory from the old disk listed in the Fantasy Grounds Settings under the "Advanced" tab. It had not changed when I migrated my user account to the new disk, even though other macOS applications handled this change automatically.
Presumably, Fantasy Grounds Unity is not using `NSHomeDirectory()` or another equivalent to find the current home folder.
I compared the two SmiteWorks "Fantasy Grounds" folders, copying items to the new disk as needed to get the latest versions of campaigns and so on. I then launched a test campaign. The expected newer versions of DMsGuild extensions/modules loaded in that campaign from the "Fantasy Grounds" folder stored on the new disk / migrated home directory.
Forge items were not affected by this issue, to my knowledge. They appeared to be kept up-to-date in the in-use "Fantasy Grounds" folder, while the DMsGuild ones were not. I expect that using the FGU Update function would update them in whatever "Fantasy Grounds" folder is currently in use.
I admit that most macOS users will not migrate their home directory to a different disk. It is even less likely that the previous disk would still be accessible, as mine was.
However, this issue indicates that FGU is behaving differently from other Mac apps. That may affect other user scenarios on macOS. To help FGU fit in on macOS, it should not hard code paths to the user home directory.
I migrated my macOS home directory to a different disk, while keeping the old disk available, and Fantasy Grounds did not adjust automatically to the change. It continued to access the old disk.
Ruleset(s):
D&D 5e
New Campaign / FGC Migrated Campaign:
New campaign tested
Extensions/Themes:
Limited extensions loaded for testing (was troubleshooting an extension version issue)
Modules Loaded:
D&D rules
Operating System / Language Setting:
macOS 11.6.2
Expected result:
On macOS, applications automatically use the home directory path defined for the local user account.
Actual result:
Fantasy Grounds Unity (`FGU: v4.1.12 ULTIMATE (2021-11-10)`) on maOS 11.6.2 did not adjust to use a different home directory when the home directory was migrated to a new disk. The path found in the FGU Settings was the path to the "Fantasy Grounds" folder in the old home directory.
Notes:
The home directory was not on the macOS startup disk in either case (old or new disk).
The home directory path for the macOS user account was specified in System Preferences > Users & Groups. To change the home directory path, I unlocked this system preference pane, right-clicked on the user account of the Current User (my user), and chose Advanced Options. I then selected the "Home directory" on the new disk with the "Choose" button.
Both the old and new disk were available at the same time. First, while migrating data from the old disk to the new disk. Then afterwards, because I didn't consciously unmount the old disk while I was verifying things worked.
Fantasy Grounds worked fine before the home folder migration and still worked afterwards.
I tracked down the problem by finding that extensions from DMsGuild were not updating correctly, even though I was copying them to the SmiteWorks folder in my user home folder on the new disk.
I use the DMsGuild/DriveThruRPG/OneBookShelf updater app on macOS to download updates from DMsGuild. I then have a script that finds changed files and copies them to the SmiteWorks Fantasy Grounds folder in my home directory.
I may also have found the problem if I'd been missing images or other assets, but I hadn't made any of those changes before I discovered the problem with extensions.
I found the path to my home directory from the old disk listed in the Fantasy Grounds Settings under the "Advanced" tab. It had not changed when I migrated my user account to the new disk, even though other macOS applications handled this change automatically.
Presumably, Fantasy Grounds Unity is not using `NSHomeDirectory()` or another equivalent to find the current home folder.
I compared the two SmiteWorks "Fantasy Grounds" folders, copying items to the new disk as needed to get the latest versions of campaigns and so on. I then launched a test campaign. The expected newer versions of DMsGuild extensions/modules loaded in that campaign from the "Fantasy Grounds" folder stored on the new disk / migrated home directory.
Forge items were not affected by this issue, to my knowledge. They appeared to be kept up-to-date in the in-use "Fantasy Grounds" folder, while the DMsGuild ones were not. I expect that using the FGU Update function would update them in whatever "Fantasy Grounds" folder is currently in use.
I admit that most macOS users will not migrate their home directory to a different disk. It is even less likely that the previous disk would still be accessible, as mine was.
However, this issue indicates that FGU is behaving differently from other Mac apps. That may affect other user scenarios on macOS. To help FGU fit in on macOS, it should not hard code paths to the user home directory.