Modifying SMART Tech's SMART Install Manager SMARTBoard software installer with Gallery package

172 views
Skip to first unread message

Paul Hildahl

unread,
Nov 23, 2015, 4:44:30 PM11/23/15
to munki-dev

This is a “in case someone else has this problem, this is how I fixed a broken installer” post. SMART Technologies supplies software to work with their SMARTBoard whiteboard systems, which includes drivers and Notebook, a PowerPoint-like software tool. They do offer a deployment tool for “IT Administrators,” SMART Install Manager, which allows creation and customization of a genuine Apple .pkg installer. The tool offers choices about many things, including disabling installation of an out-of-date copy of Adobe Flash Player, automating serialization and activation of their software. Another choice is how to install Gallery items, which in an oversimplification, can be thought of as collection of clip art. This all sounds great and easy, a genuine Apple .pkg for deployment! However, all is not as it seems… the installer .pkg that SMART Install Manager makes an unfortunate assumption about path names.  One of the installation scripts unnecessarily uses a static path to the where it thinks the Gallery content should be and we need it to use a relative path.  A static path would be a bad practice, but workable, if we could dictate the mount point that Munki uses to mount the disk image under /tmp/ during installation. I don’t think that is possible. So, these are the steps I used with the SMART Install Manager to create an installer with the Gallery items that will reliably install on a remote system via Munki.

First, make a sufficiently large read/writable disk image with Disk Utility (for example: 4 GB) and mount it. In this example I am going to create a volume named SMARTBoardNotebookAndGallery15.1.708.0 with a filename of SMARTBoardNotebookAndGallery15.1.708.0rw.dmg

Launch the SMART Install Manager, make your various configuration choices. When you get to the Gallery Content tab, select “Installed on each computer” under “Choose how people access the Gallery.” Select what you like for “What parts of the Gallery should be installed?” I select it all. Under “Get the Gallery” select “I need to download it” and tell the Install Manager to download the Gallery content to the mounted disk image. For “How the Gallery will be found at install time” select “In the same folder as the installer itself” (This is going to configure an absolute path that we are going to have to subsequently correct in the installer package.)

Publish the install .pkg and save it to the mounted disk image. In this example, I am going to name it SMART15.0.277.0.pkg

We have a bit of work to do, as we need to modify the flat package that we just created to change a static path to a relative path, so the installer can successfully find the Gallery content on our disk image.

So let us expand the package:

pkgutil --expand /Volumes/SMARTBoardNotebookAndGallery15.1.708.0/SMART15.1.708.0.pkg Desktop/smart

Use your favorite non-TextEdit text editor, to open the “properties” file inside the Scripts folder of our freshly expanded flat package. I’m using TextWranger’s command line “edit”

edit Desktop/smart/Scripts/properties

You are hunting for the “export CONTENT_SOURCE_PATH” line to modify. In my example, you want to change export CONTENT_SOURCE_PATH="/Volumes/SMARTBoardNotebookAndGallery15.1.708.0" to export CONTENT_SOURCE_PATH=$(echo ${1%/*}) to make it a relative path to the root of the mounted DMG

Save your modified properties file. Now we will reflatten the modified installer package, copy the newly flattened package, overwriting the original flat package on the mounted read/write disk image 

pkgutil --flatten Desktop/smart Desktop/SMART15.1.708.0.pkg ; cp Desktop/SMART15.1.708.0.pkg /Volumes/SMARTBoardNotebookAndGallery15.1.708.0/

Unmount the read/write disk image. Eject it in the Finder or use hdiutil detach with the correct /dev/disk

To save space and make the image capable of having an installer_item_hash by Munki, convert the read/write image to read-only compressed:

hdiutil convert SMARTBoardNotebookAndGallery15.1.708.0rw.dmg -format UDZO –o SMARTBoardNotebookAndGallery15.1.708.0.dmg

Now, all you have to do is import into your repo. I import with a --requires "Adobe Flash Player" to make sure it installs with an up-to-date copy of Flash from my repo. I also point to an --uninstall_script 

#!/bin/bash

/Applications/SMART\ Technologies/SMART\ Uninstaller.app/Contents/Resources/uninstall --all

exit 0


Mike Solin

unread,
Nov 23, 2015, 10:33:43 PM11/23/15
to munk...@googlegroups.com
Wow, thanks for this!  I’m probably going to have to tackle it soon too - I appreciate your write-up!

--
Find related discussion groups here:
https://github.com/munki/munki/wiki/Discussion-Group
---
You received this message because you are subscribed to the Google Groups "munki-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to munki-dev+...@googlegroups.com.
To post to this group, send email to munk...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ryan Manly

unread,
Nov 24, 2015, 8:40:31 AM11/24/15
to munk...@googlegroups.com
I just deploy the Gallery to /Users/Shared and tell the installer pkg the admin tool creates it is there.

That has worked for me for versions <=11 and >=15.

Deployed with Casper and Munki without doing all this extra work.

*shrugs*

Stuart Ramdeen

unread,
Nov 24, 2015, 9:21:25 AM11/24/15
to munk...@googlegroups.com

I hate this software. Thank you for sharing this tip, I am sure I will be searching for it in the not too distant future! 


Harry Fike

unread,
Nov 24, 2015, 11:45:19 AM11/24/15
to munki-dev
I do the same as Ryan, package and deploy the Gallery to /Users/Shared and tell the Install Manager to expect it there. Then make the gallery pkg required by the main installer. I went back and forth a few times with SMART's tech support about how bad and unclear the Install Manager software is about the Gallery options. At one point they told me they weren't really sure how it worked. Also, for those users that don't need the gallery, I make a second installer package which specifies to expect no gallery content. With version 15 of the SMART software and Install Manager (when I was last messing with it), it would no honor the options to not autostart SMART services, so I made a postinstall_script move the LaunchDaemons to /usr/local/share.

-- 
Harry

Erik Gomez

unread,
Nov 26, 2015, 11:52:23 AM11/26/15
to munk...@googlegroups.com
Did something similar to this as well when I managed SMART. 

Sent from my iPhone
--
Reply all
Reply to author
Forward
0 new messages