Search Results

Keyword: ‘SAP GUI’

Using AutoPkg to create an installer package for SAP GUI

October 14, 2021 5 comments

I’ve previously posted guides on how to manually package SAP GUI:

However it’s also possible to automate creating a SAP GUI installer package using AutoPkg. To do this, you’ll need the following:

  1. AutoPkg
  2. The SAP GUI recipes from the rtrouton-recipes repo
  3. The latest SAP GUI installer application’s disk image
  4. A SAP GUI templates.jar file (optional)

For more details, please see below the jump.

Read more…

Packaging a SAP GUI installer application for macOS

July 26, 2021 1 comment

One of the recent changes for the macOS version of SAP GUI for Java is that both SapMachine Java 11 and OpenJFX 11 are now bundled with SAP GUI, so it is no longer required to have Java installed on your machine in order for SAP GUI to work. This change has also been extended to the SAP GUI installer, which is now available as a notarized installer application as of SAP GUI 7.70.

You can run this installer on a Mac which does not have Java already installed and it will install SAP GUI for Java with SapMachine Java 11 and OpenJFX 11 installations embedded inside the SAP GUI application.

Note: As of SAP GUI 7.70 rev 2, Rosetta 2 is required if installing on an Apple Silicon Mac so Rosetta needs to be installed and running before installing SAP GUI.

The installer application is available for download to customers via a link on the announcement blog post:

When you click the download link, you will see two choices:

  • DMG
  • JAR

Screen Shot 2021 07 26 at 9 52 31 AM

The DMG download will provide the notarized installer application and the JAR download will provide the Java .jar installer that SAP GUI has traditionally used on macOS. I’ve discussed how to package the .jar installer in previous posts, so this post is going to focus on the new installer application contained inside the DMG download.

Screen Shot 2021 07 26 at 9 52 32 AM

For more details, please see below the jump.

Read more…

Packaging SAP GUI for macOS with Java 11 support

December 14, 2018 7 comments

A while back, I wrote a post on building a SAP GUI installer for macOS, where SAP GUI needed to have Oracle’s Java 8 JDK as a pre-requisite. Since then Oracle has made an announcement that the use of Oracle’s Java 11 JDK is no longer free if you’re using it for production work.

One of the consequences of that decision by Oracle is that SAP GUI 7.50 rev 5 is the first version of SAP GUI to support Java 11. However, the SAP GUI developers are now recommending the use of OpenJDK 11 in place of Oracle’s Java JDK 11. More specifically, the SAP GUI folks are recommending the use of SAP’s own SapMachine Java JDK 11 release.

Screen Shot 2018 12 14 at 10 39 38 AM

Meanwhile, a Java library named JavaFX used by SAP GUI is no longer being bundled as part of Java 11. Instead, JavaFX has been split off into its own open source project called OpenJFX and is now a separate install.

Screen Shot 2018 12 14 at 4 15 11 PM

What do SapMachine JDK 11 and JavaFX have in common? Among other things, neither have a native installer for macOS. Instead, each is distributed via compressed files.

Screen Shot 2018 12 14 at 11 14 36 AM

Screen Shot 2018 12 14 at 11 14 59 AM

Installation is performed by uncompressing into the following directory on macOS:


Screen Shot 2018 12 14 at 4 11 14 PM

That said, SAP GUI also still works with Oracle’s Java JDK 8 as of the release of SAP GUI 7.50 rev 5. JavaFX is bundled with Java JDK 8, so installing Oracle’s Java JDK 8 handles both the Java and JavaFX requirements.

Screen Shot 2018 12 14 at 2 46 13 PM

With all the changes, how should SAP GUI now be packaged for installation? Without question, the main challenge for deployment here is going to be the Java component. In my testing, which was limited to “Launch SAP GUI and see if it runs”, I found SAP GUI 7.50 rev 5 is able to run on the following Java releases:

If using any Java 11 release, OpenJFX will need to be installed for SAP GUI to successfully run.

With this in mind, it’s possible to build a package that does the following:

  1. Detects if Java is installed
  2. Detects if JavaFX is installed
  3. If Java is not installed, install the latest release of SapMachine JDK.
  4. If JavaFX is not installed, install the latest release of OpenJFX.
  5. Verifies that both Java and JavaFX are installed.
  6. If both Java and JavaFX are installed, install SAP GUI

For more details, please see below the jump.

Read more…

Building an SAP GUI installer for macOS

October 11, 2018 4 comments

Since I’ve started working for my current employer, my colleagues and I have occasionally received the following question from various Mac admins:

“I’m using SAP in my environment. How do I deploy the Mac software for SAP?”

When we’ve followed up for more details, the “Mac software for SAP” usually means the SAP GUI software. SAP GUI comes in two flavors:

SAP GUI for Java supports the following operating systems:

  • openSUSE
  • Fedora
  • macOS
  • Microsoft Windows
  • AIX
  • Ubuntu

The SAP GUI for Java is what’s available for macOS, so how to get it and deploy it? For more details, please see below the jump.

Read more…

Building an installer package for

March 20, 2019 11 comments

One of the open-source contributions by the Apple@SAP team has been, a tool designed to grant or take away administrator rights from accounts on macOS. The general idea behind Privileges is that it allows people to work with the account privileges of a standard user for day-to-day use, but allows them to get administrator rights when needed.

Documentation for can be found at the GitHub repo which hosts it, which is available via the link below:

However, one item not included in that documentation is how to package it for deployment. Instead, AutoPkg recipes were written and made available to automate the packaging process:

computername:~ username$ autopkg search com.github.rtrouton.Privileges
Name Repo Path
—- —- —-
Privileges.munki.recipe apfelwerk-recipes Privileges/Privileges.munki.recipe
Privileges.install.recipe rtrouton-recipes Privileges/Privileges.install.recipe
Privileges.munki.recipe rtrouton-recipes Privileges/Privileges.munki.recipe
Privileges.jss.recipe rtrouton-recipes JSS/Privileges.jss.recipe
Privileges.pkg.recipe rtrouton-recipes Privileges/Privileges.pkg.recipe rtrouton-recipes Privileges/
To add a new recipe repo, use 'autopkg repo-add <repo name>'
computername:~ username$

view raw


hosted with ❤ by GitHub

However, not everyone is able to use AutoPkg in their environment, so manual packaging instructions are now available here. For more details, please see below the jump:

Read more…

Whitelisting third-party kernel extensions using profiles

April 12, 2018 14 comments

As part of macOS 10.13.2, Apple introduced the concept of User Approved MDM Enrollment (UAMDM). UAMDM grants mobile device management (MDM) additional management privileges, beyond what is allowed for macOS MDM enrollments which have not been “user approved”.

As of macOS 10.13.4, the only additional management privilege associated with UAMDM is that it allows you to deploy a profile which provides a whitelist for third-party kernel extensions. This profile allows a company, school or institution to avoid the need to have individual users approve the running of approved software.

Without the profile, third-party kernel extensions will need to be approved through the User-Approved Kernel Extension Loading (UAKEL) process. Here’s how that process looks:

1. When a request is made to the OS to load a third-party kernel extension which the user has not yet approved, the load request is denied and macOS presents an alert to the user.

Screen Shot 2018 04 11 at 9 16 13 PM

2. The alert tells the user how to approve the loading of the kernel extension signed by a particular developer or vendor, by following this procedure:

A. Open System Preferences
B. Go to the Security & Privacy preference pane

Screen Shot 2018 04 11 at 9 20 45 PM

C. Click the Allow button.

Screen Shot 2018 04 11 at 9 20 22 PM

Note: This approval is only available for 30 minutes. After that, it disappears until the following happens:

i. The Mac restarts
ii. Another attempt is made to load the kernel extension.

Screen Shot 2018 04 11 at 9 20 25 PM

While waiting for the kernel extension to be approved, a copy of the kernel extension is made by the operating system and stored in the following location:


Once approved, another copy of the kernel extension is made and allowed to load.

Screen Shot 2018 04 11 at 9 19 39 PM

This process is relatively easy for an individual to manage on their own computer, but it would be very difficult to manage when dealing with more than a handful of Macs. To help companies, schools and institutions, Apple has made a management profile option available to centrally approve third-party kernel extensions. For more details, please see below the jump.

Read more…

Diagnosing and fixing code signing issues for applications installed by installer packages

June 6, 2016 Leave a comment

As part of making sure my customers have the latest version of their applications available, I use AutoPkg, JSSImporter, and AutoPkgr to ensure that as new software updates are released, they are automatically uploaded to my shop’s Casper server.

As part of this process, some applications need to be converted by AutoPkg from using the drag-and-drop installation method provided by the vendor to now being installed using an installer package.

In the case of certain applications, the process of packaging can change an application which is fine when installed via a drag-and-drop installation method to one which is broken when installed via an installer package. This is due to Apple’s pkgbuild tool erroneously stripping certain metadata used by the application’s code signing. If an application is set to check for that metadata as part of its code signature verification process, this can result in the application reporting that it’s been damaged and not launching.

An example of this which I’ve run across is Labtiva’s, a reference library application designed to collect, organize and enable citation of scientific journal articles and other reference materials. The installation method provided by Labtiva is a drag-and-drop install, where the customer is supposed to copy the application from a disk image and into a convenient location (like /Applications.)

Screen Shot 2016 06 05 at 6 16 42 PM


When the application is installed by copying it into place, there are no problems with the application and it launches normally.

Screen Shot 2016 06 05 at 1 55 34 PM

When is packaged, then installed via an installer package, an error message will appear at first launch to report that the application is damaged.

Screen Shot 2016 06 05 at 4 58 14 PM


Why the difference? In the case of, the verification of the application’s code signing appears to include verification of certain metadata which pkgbuild appears to remove as part of the packaging process. For more details, see below the jump.

Read more…

An apology to my gentle readers.

October 24, 2003 Leave a comment

You may have noticed that about a month or so back, what had been a stream of (fairly) steady blogging has since turned into a trickle, when it hasn’t been shut off entirely. I’ve been busy, with family, with work and with a new girlfriend. Since all of these are news and today seems (at the moment) pretty dead, I’m writing about them now.

Family: If you read ‘s LJ, you know Storybook Mom’s been in for surgery on her knee. She came through it fine, is wheeling around in the hospital like a speed demon and is scheduled to be discharged on Saturday. My job is to pick her up, which led to an interesting conversation with on Thursday where she derided my Vast Psychic Powers.

Abbreviated retelling:
Jords: “Can you come home on Friday?”
Me: (I’ve just spent three late nights in a row at work. At the time of the call, I’m in a server room and have just gotten done telling my sister about my goofs and how I fixed them) “No, but I’ll be home on time Saturday. When’s she being discharged?”
Jords: “At 10, but you just got home at 10 last weekend. I’m worried that Mom’ll just be stuck in the parking lot waiting for you to show.”
Me: “I’ll be home. This time, there won’t be an accident that delays me like last weekend.”
Jords: “How do you know?”
Me: “My Vast Psychic Powers!”
Jords: “Uh huh. Why didn’t you use them earlier tonight? Probably could have saved yourself some trouble.”
Me: “Ummm…..”

Upshot is that I will be home on time to get Mom. I just will. I’ll also be at my parents every weekend until probably the end of November. That’s my job, I’m the son.

Girlfriend: I’ve been seeing someone that I adore. Flat adore. No disguising it, I’ve turned into the King of Sap where La’s concerned. Which is OK, considering she’s the Queen of Sap where I’m concerned. Together, we reign supreme over Sapland, where the Us is the important concern. (waves at La). She’s generally Wonderful, specifically Delightful, and I hope she never stops seeing whatever the hell it is she sees in me, because it’s a mystery to me. She keeps telling me that it’s not a mystery to me, but it is, and I’m perfectly happy to leave it that way because fiddling with it might break it. Trust me here, I’ve broken more things by fiddling.

Work: Good God, it’s been busy. I’ve been confirmed as the Mac team lead here at NHGRI and I’m being moved to a new office off-campus to take more of the duties of a project manager. I’m still going to be on campus at least one day a week, but I won’t be running calls anymore. I guess I’ve been doing a good job with my team, in that when it was announced that I was being moved off campus, my team looked upset rather than happy. On the plus side, I’ve got a lot of ideas that I want to test out and now I’ll have the opportunity to do it, since I won’t be dividing my time between running calls and doing planning and administrative duties.

That’s basically all the news that’s fit to print. Tonight, La’s coming over, so we can carve the pumpkins we bought last night from Safeway. Hopefully, I’ll write some more tonight.

Moment of Zen

What’s in a Name? Everything When the Name is Butt

Categories: Personal
%d bloggers like this: