github munki/munki v7.0.0b3
Munki 7.0 Beta 3

latest releases: v7.0.0b11, v6.7.0, v7.0.0b10...
pre-release3 months ago

This is an early beta release of Munki 7.

In Munki 7, the command-line tools, previously written in Python and requiring a Python runtime, have all been rewritten in Swift and are compiled executables.

Please test and provide feedback. I would not recommend installing this beta on production-critical machines.

Supported OSes(?)

  • The Munki 7 command-line tools are built against the macOS 10.15 SDK. That means the code should run on 10.15+, but no testing has been done on any OS prior to macOS 14. This means Munki 7 drops support for macOS 10.13 and 10.14.

Testing focus areas:

  • Client certificate authentication; including certs in files in /Library/Managed Installs/certs and certs in the System keychain
  • Middleware plugins
  • Admin tools
  • Authenticated restarts
  • App usage tracking

Changes since beta 2:

  • Fixes for iconimporter and repoclean for an issue where running these tools would just result in a help/usage statement.

Changes since beta 1:

  • Fix for makecatalogs for an issue where running this tool would just result in a help/usage statement.

New features:

  • version_script: pkginfo items may now contain the key version_script. The expected value for this key is a string, containing a script that outputs the version number of a currently-installed version of the software, or an empty string (or exits non-zero) if the software is not currently installed. This is a new mechanism Munki can use to determine whether or not an item needs to be installed (or updated). Since it returns a version number, and Munki can use its existing version number logic, in most cases using a version_script will be superior to using an installcheck_script.
  • During bootstrapping, if on A/C power or battery level is greater than 50% on Intel or greater than 30% on Apple silicon, the status app will prevent the display from going to sleep so that bootstrap progress is displayed. Thanks to Christopher Grande. (See #1215)

Removed features:

As part of this transition, some features and capabilities supported by previous versions of Munki are no longer supported:

  • The startosinstall installer_type, used to install macOS major upgrades on Intel Macs is no longer supported. The stage_os_installer installer_type works on both Intel and Apple silicon, and is supported in Munki 7.

  • Installation of Apple software updates. Munki 6 does not install Apple updates on Apple silicon, but instead prompts the user to use Apple tools (System Settings app; softwareupdate) to do so. Munki 7 extends this behavior to Intel Macs as well.

  • Apple update metadata (https://github.com/munki/munki/wiki/Pkginfo-For-Apple-Software-Updates) The installer_type apple_update_metadata is no longer supported.

  • The following Adobe installer_types are no longer supported:

    • AdobeSetup
    • AdobeUberInstaller
    • AdobeAcrobatUpdater
    • AdobeCS5AAMEEPackage
    • AdobeCS5PatchInstaller
    • AdobeCCPInstaller
  • Additionally, the following uninstall_methods are no longer supported:

    • AdobeSetup
    • AdobeUberUninstaller
    • AdobeCS5AAMEEPackage
    • AdobeCCPUninstaller
  • To use Munki 7 to install Adobe software, use the Adobe admin console to create Apple installer packages (that Munki can install via its support for Apple installer packages).

  • The installer_type profile is no longer supported. Munki 7 has no support for the installation or removal of configuration profiles, and additionally, support for configuration profile "emulation" has been removed as well. Admins should be using an MDM solution to manage configuration profiles on macOS.

  • The appdmg installer_type is no longer supported (this has been deprecated for well over a decade): https://github.com/munki/munki/wiki/App-Dmg-Package-Notes

  • The suppress_bundle_relocation pkginfo key is no longer supported. This only ever worked for bundle-style packages.

Known issues:

  • The interactive mode of manifestutil is not currently functional.

Middleware:

Repo plugins:

  • Python repo plugins compatible with Munki 6 will not work with Munki 7. A Swift repo plugin protocol is available, and the MWA2APIRepo plugin was ported to Swift, largely as a proof-of-concept so that vendors who have incorporated Munki into their products and have written repo plugins have example code to follow.

Other notes:

  • The installer package for this preview release contains a component package that installs the Python libraries used by Munki 6.6 (aka "munkilib"). This is intended as a transition aid. (We use Sal where I work and some of the Sal reporting scripts import code from inside munkilib). The intention would be for Munki admins to identify these sorts of dependencies and work to eliminate them.

  • Installing the preview package over an existing Munki 6.x install will leave the munki-python symlink and Munki's Python.framework in place. This might be helpful while transitioning, but might also make it easier to miss dependencies on that Python. You might consider removing Munki 6's included Python to see what breaks,

Don't miss a new munki release

NewReleases is sending notifications on new releases.