ROCK Server On Intel NUC, 32GB RAM, Intel I-7
Clients running MacOS
Data is stored on a network share of approx 20 TB
Network is mixture of hardwired and Wifi
Approx 91,000 Tracks in Database
Description of Issue
I recently ran into an issue where I restored (using Time Machine) onto a new Mac Studio from a backup of my Macbook Pro. The issue is that some device configuration files contain data that causes a conflict with the source device. Those files lie in the ~/Library/Roon directory and are not removed when a user does an uninstall. I discovered this when I submitted this ticket …
If you didn’t bother to read the ticket I just referenced, I’ll summarize it by saying I searched the filesystem after an uninstall and discovered a very large number of files spread throughout the filesystem after an uninstall.
So my issue is this: Why is Roon leaving behind so many files after an uninstall? It’s clearly having an impact on users in ways you cannot understand. And if you do understand this, why aren’t you doing something about it?
My request: Please remove all files in the ~/Library/Roon directory upon uninstall as well as the remainder of files that get left behind.
Westrongly recommend againstusing Time Machine, Crashplan, Backblaze, or other backup applications to backup your “live” Roon database. If you would like to use any of these applications to back up Roon, set up a Scheduled Backup and tell your backup program to backup the RoonBackups folder.
I’m sorry, but saying we don’t recommend doing backups doesn’t even address the issue - which is Roon leaving behind a very large number of files when you do an uninstall. Backup has little to do with this other than the fact you’re backing up files that are hardcoded.
What exactly do you mean by uninstall? As far as I’m aware MacOS doesn’t have an uninstall function, nor is an uninstaller provided by Roon. As such I don’t see how Roon could arrange for the files in ~/Library/Roon to be deleted when you delete the app. I can understand your frustration - restoring from a Time Machine backup can cause all sorts of problems for Roon - but I don’t think that what you’re asking for is achievable.
This is likely beyond the scope of the request, however if you don’t know, you probably should leave it to the developers. Not trying to be rude, but there is an uninstall function that get’s called when you delete an app in MacOS. Don’t get it? Go read the docs on it. I’d start at the following then go deeper in the development world with Objective C and Swift.
The point is that cleaning up artifacts left behind by sloppy, lazy or otherwise ambivalent developers is a problem. And frankly, once again no matter how unpopular this may make me it’s something that should be addressed by the developer of the app (AKA program).
Why does this even happen you may ask? Sometimes, it’s because the developer/company doesn’t care much about your OS environment when you delete their program because you’re no longer a customer of theirs at that point (not saying that’s the reason here, just saying that it’s more common than you think). You’re deleting their program so they’re washing their hands of you and putting the onus on you, the user, to delete the “stuff” / detritus, artifacts, etc. that are left behind. The fault in that logic is that the scenario exists where users have to reinstall an app for some reason and the artifacts left behind may be what’s actually causing the problem they’re experiencing.
And yes, they do provide an uninstall function when you delete the app: by simply dragging the app icon from the Applications directory, a function gets called. And some developers go as far as to provide separate “cleaners” when there is a race condition where you can’t delete what is running – this is more a problem in Windows than Linux/Unix/BSD/MacOS environments since the executable (ELF) can be unlinked and removed from the filesystem and remain running in memory. That’s why some Windows apps/programs need to have you reboot. The remainder of the artifacts are removed at boot in those scenarios.
My apologies, but I’m not sure what you’re saying here. Are you saying that the physical act of dragging an application file to the trash/bin triggers a subsequent function, beyond that of simply deleting the application file? If so, could you point me at a link with some further info?
Again, way beyond the scope of this discussion. Are you a developer? The simple answer to your question is: “Yes”
The short answer is that as of MacOS 13.0 (AKA Ventura), there’s been a service called SMAppService that has API’s which support automatic cleanup for daemons, agents and login items among other things. So yes, once more.
I’ll preference all of this by saying there are a lot of different paths that lead to the same destination. For example, if there is a privileged component to the app, then how you remove it may require additional work. That is not to say it’s not possible, or that it’s not supported – because it is.
Now, if the app (I’ll refer to it as an “app”, when in reality it’s a “program”) is using LaunchPad, it “should” be as easy as moving it to the trash bin or deleting it. All apps in the app store support LaunchPad deletion – it’s a mandatory requirement and Apple will not allow it in their environment (the app store) if it doesn’t support it.
If the app was installed using pkgutil, then one easy way to accomplish this is include an uninstaller script or program in the .app bundle. But having an “out of band” script is not always the answer.
Finally, that’s the end of school. I’m not going to try and provide the answer as I am not part of the Roon dev team. All this depends on a lot of things (the “how” you accomplish this, not the “if it’s possible”, because it’s possible).
Roon will leave your database and settings intact when uninstalling this is what’s located in Library. Same goes for windows it leaves it in appdata. You have to manually remove them if you want a fresh install.
It’s the same app it sets itself up the same if it s client or core the only difference is it doesn’t run the database but it still saves all its local settings and RAAT server there.
I’m really having trouble understanding why anyone would want files and artifacts left behind when they are uninstalling an application completely. This is not a scenario where I want to leave behind my settings and preferences – and even the database. This is a scenario where I am trying to completely remove Roon.
A lot of applications have a checkbox or other function that is called that prompts the user and asks if they want to remove their settings and preferences. That would be appropriate here.
Yes I know that. I simply stated there is no database in response to your “answer”. Do you work for Roon?
Again, you are simply describing the functionality of Roon in that it leaves behind artifacts like the database on a server. Not offering a solution or otherwise. Next.
Yes, I know that. You missed the point, which was that I’m trying to get an answer from Roon. I fully understand what’s going on here. I’m an Engineer, have been one for a very long time.
Ha! If by “be a good citizen and clean up your mess” you mean it’s a feature, then yes. This is fundamental stuff here. Most software companies care about the state in which they leave a user’s computer. I’m judging by the utter silence that Roon doesn’t care much about this, to include the several detractors who have posted negative replies here.
I’m by no means condoning how uninstallation currently behaves, but this is simply how it works on macOS. Uninstallation will leave a lot of files and folders intact. Just have a look at Library\Application Support, Library\Caches and Library\Preferences. Some of that might make sense, like preserving the app’s settings, for other stuff not so much.
I understand what you’re getting at – however the question begged is what part of polluting your filesystem does Roon want to contribute? There are a lot of developers that care about this. I know first hand. In the very least, provide a separate “cleaner” if you’re unwilling to do it in your application. The functionality is built-in to the operating system (as I’ve shown) to clean up “your” mess. And clearly it’s having a negative impact on users who restore using time machine backups. It’s unclear just how else it’s impacting customers, but my guess is that this one use-case is not the only one.
This is not really a support post. In thinking about it, I decided to move it to the Feature Request section since at the base of it, you are requesting a change in functionality.