Deploying solstice

ImAMacGuy
Valued Contributor II

Has anybody tried deploying solstice? I've tried the Autopkgr deployments and copying the app from a working machine into composer and every time I deploy to another machine, the icon has a line through it saying it's "Not supported on this type of Mac"

22 REPLIES 22

pitcherj
New Contributor III

I get the same behavior via autopkg and composer.

Thought it may have been our antivirus messing with it (either in packaging or deployment) but even without it in the picture the issue persists.

ImAMacGuy
Valued Contributor II

I reached out to Mersive today and they provided me a direct download link to the current client version which worked. I went back and asked for a more general link to download for future versions but I haven't heard back yet. Also, don't mention jamf/mdm deployments.

hdsreid
Contributor III

You have to modify permissions in my experience. Use the stub installer to download the full .app, put it in a custom package to install in /Applications/Solstice.app and have the post install script do a chown to current user and run a chmod -R 755 on it to be safe. This will at least allow any user to read/launch the app, which I have found to be the issue in the past when packaging for deployment. I am not worried too much about the permissions in my environment, as we have one user per computer, and everyone is authorized to use solstice within our environment.

Also......you don't NEED the solstice app in my experience, you can just airplay to connect to the solstice hub...

pitcherj
New Contributor III

Yup, this worked for me - ended up running an after-command to chmod the Solstice app bundle.

My experience has been that you need to run the solstice app before airplay works, but perhaps that is an artifact of our setup (multiple subnets, etc).

bjhobbs
New Contributor II

I'm still having issues with this. I've gone to mersive.com/download and downloaded the zip file. You open it, then it decompresses from that app and puts the actual solstice app on the desktop. I take that file put it in Composer as a new pkg, set root/admin permissions to go to the users application folder however it does not work. Any suggestions?

pitcherj
New Contributor III

Make sure you're not using the SolsticeClientMacWeb.app, that's just a preloader/downloader for the app itself.

Gotta run that and then grab Solstice Client.app from /Applications.

mngalande
New Contributor

In addition to what @pitcherj said you have to use the Solstice Client.app which will install on your desktop. What I did was move it to the Applications folder then dragged it into Composer sidebar. It takes a snapshot and then I created a PKG and that worked for me.

bjhobbs
New Contributor II

So you took a snapshot before you packaged it? I did all the above steps and then set the root/admin as i was instructed to so it's not assigned to my user account.. but still running into an issue where it deploy

pitcherj
New Contributor III

I hardly ever do snapshots, in this case I just did a drag-n-drop of the .app bundle into the left pane of composer.

spalmer
Contributor III

Also, be aware that if the user ever enables the "Automatically Share Audio With Desktop" setting it will prompt for admin credentials to install a Kernel Extension. To avoid this I add a PostInstall script (below), to call their kext installation script embedded in the Solstice app, to my Composer created package as well.

This assumes your package installs the Solstice Client to the main /Applications folder.

#!/bin/sh
## postinstall

chmod ugo+x /Applications/Solstice Client.app/Contents/Resources/SolsticeAudioDeviceInstall.sh
/Applications/Solstice Client.app/Contents/Resources/SolsticeAudioDeviceInstall.sh /Applications/Solstice Client.app/Contents/Resources/SolsticeAudioDevice.kext

The first line makes sure the script SolsticeAudioDeviceInstall.sh is executable because I have had issues in the past where that is not set properly by Solstice.

The second line calls the SolsticeAudioDeviceInstall.sh script with the main argument being the path to the .kext file that needs to be installed.

pitcherj
New Contributor III

Haven't had anyone request that (yet), but thanks for posting this - I'll probably run it as a post-install script in Jamf if it ever comes up.

FYI, for those of us following along at home and wanting/needing to whitelist kexts, the TeamIdentifier for Mersive Technologies is 63B5A5WDNG.

donmontalvo
Esteemed Contributor III

@spalmer Looks like Mersive's dev team neglected to add the proper shebang (#!/bin/bash) to the embedded shell script. Your script is spot on, thanks for sharing. Here's their whole embedded script...

IFS=$''
kextunload /System/Library/Extensions/SolsticeAudioDevice.kext
rm -r /System/Library/Extensions/SolsticeAudioDevice.kext
cp -R $1 /System/Library/Extensions
chmod -R 755 /System/Library/Extensions/SolsticeAudioDevice.kext
chown -R root:wheel /System/Library/Extensions/SolsticeAudioDevice.kext
kextload /System/Library/Extensions/SolsticeAudioDevice.kext

@pitcherj thanks for the KEXT whitelist Team ID, here is the command in case anyone lands on this page:

# codesign -dr - /Applications/Solstice Client.app
Executable=/Applications/Solstice Client.app/Contents/MacOS/SolsticeClient
designated => identifier "com.mersive.solstice.client" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "63B5A5WDNG"
--
https://donmontalvo.com

jefff
Contributor II

Looks like Mersive changed the installation method for the Solstice app again. There's an executable in the download /SolsticeClientMacWeb.app/Contents/MacOS/SolsticeClientInstallerMac that installs the client onto the user's desktop, with the correct permissions, so the client now installs via an installer application.

When I package the download up and deploy it, it never appears in the Applications folder. Has anyone found a way to install this from Jamf without having to make a custom package to deploy it to a different directory than /Applications?

jconte
Contributor II

Has anyone had luck applying settings via script or profile ?  Even just the discovery server would be useful but I cannot figure it out for the life of me.  Any help is appreciated.

Thanks

donmontalvo
Esteemed Contributor III

FYI the Mersive Solstice 5.4 release had issues, and they're redoing it (if not done already).

Apparently whoever compiled the source, didn't pay attention, and their UID is the owner once installed.

PS view their installer with Suspicious Package to see what I mean.

--
https://donmontalvo.com

davidi4
Contributor

Looks like v 5.5.2 works more like a Mac app should

donmontalvo
Esteemed Contributor III

Curious if you're populating the username, server info, etc. If so can you share?

 

--
https://donmontalvo.com

jefff
Contributor II

@jconte We are populating the Discovery server with this postinstall command.
defaults -currentHost write com.mersive.solstice.client "PROFILE/MANUALSDSADDRESS/VALUE" (ip address)

It's been a few years since we've made any changes to the workflow, because we stopped making new Solstice deployments after many users complained about the stability of these for classroom use.

Risdal
New Contributor II

I'm trying to get the Discovery Server postinstall script to work but haven't had any success.  Tried using

defaults -currentHost write com.mersive.solstice.client "PROFILE/MANUALSDSADDRESS/VALUE" x.x.x.x(IP address)  with no success.  If I run the same command locally on the host computer after installation,  it works and populates the server information, but running it from Jamf does not.  

jefff
Contributor II

@Risdal You might try running the command as the logged-in user. I know that Solstice had some unusual permissions requirements when we first started deploying it. We had to change ownership of the client app to make it owned by the user.

Risdal
New Contributor II

Good point,  I'll have to figure out how to accomplish that with the script. 

rcoleman
New Contributor III

Just in case anyone else comes across this. We were able to add the server config by running a script in the install policy (priority set to 'After') containing the following commands (replace $IP_ADDRESS with your server IP):

# Get logged in user
ACTIVE_USER=$( echo "show State:/Users/ConsoleUser" | scutil | awk '/Name :/ && ! /loginwindow/ { print $3 }' )
# Get ID of logged in user
User_ID=$(id -u "$ACTIVE_USER")

launchctl asuser "$User_ID" sudo -u "${ACTIVE_USER}" defaults -currentHost write com.mersive.solstice.client "PROFILE/MANUALSDSADDRESS/TYPE" "String"

launchctl asuser "$User_ID" sudo -u "${ACTIVE_USER}" defaults -currentHost write com.mersive.solstice.client "PROFILE/MANUALSDSADDRESS/VALUE" "$IP_ADDRESS"