The current Nudge Munki recipe doesn't generate an Installs Array when downloading the Essentials pkg.
This is because when the pkg is unpacked the app's path is /payload/Applications/Utilities/Applications/Utilities/Nudge.app resulting in MunkiInstallsItemsCreator's faux_root key being incorrect (for Essentials at least)
I'm happy to add on a fix to my PR that adds a variable to account for the additional folder in the path something like
<key>Description</key>
<string>Set ESSENTIALS_UNPACK_PATH variable to ""/Applications/Utilities" when downloading the Essentials pkg. Leave empty for all others.</string>
<key>ESSENTIALS_UNPACK_PATH</key>
<string>/Applications/Utilities</string>
<key>faux_root</key>
<string>%RECIPE_CACHE_DIR%/payload%ESSENTIALS_UNPACK_PATH%</string>
It's not particularly elegant, but I can't think of a better way at the moment π
Output from a -vv run using the above changes
autopkg run -vv Nudge.munki.recipe
Looking for com.github.erikng.download.Nudge...
Did not find com.github.erikng.download.Nudge in recipe map
Rebuilding recipe map with current working directories...
Looking for com.github.erikng.download.Nudge...
Found com.github.erikng.download.Nudge in recipe map
**load_recipe time: 0.006160249999084044
Processing Nudge.munki.recipe...
WARNING: Nudge.munki.recipe is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
GitHubReleasesInfoProvider
{'Input': {'asset_regex': 'Nudge_Essentials-\\S.*?.pkg',
'github_repo': 'macadmins/nudge',
'include_prereleases': ''}}
WARNING: This is an unathenticated Github session, some API features may not work
GitHubReleasesInfoProvider: Matched regex 'Nudge_Essentials-\S.*?.pkg' among asset(s): Nudge_Essentials-2.0.5.81760.pkg
GitHubReleasesInfoProvider: Selected asset 'Nudge_Essentials-2.0.5.81760.pkg' from tag 'v2.0.5.81760' at url https://github.com/macadmins/nudge/releases/download/v2.0.5.81760/Nudge_Essentials-2.0.5.81760.pkg
{'Output': {'asset_created_at': '2024-07-25T21:37:56Z',
'asset_url': 'https://api.github.com/repos/macadmins/nudge/releases/assets/181868514',
'release_notes': '# Notes\n'
'This is a version of Nudge created by GitHub '
'Actions.\n'
'Nudge.app has been signed and notarized. The '
'package has been signed, notarized and stapled.\n'
'\n'
'By default Nudge looks for a '
'`com.github.macadmins.Nudge.json` file located '
'in `/Library/Preferences`. If you would like to '
'use an alternative path, please read the '
'[README](https://github.com/macadmins/nudge/blob/main/README.md) '
'or the '
'[WIKI](https://github.com/macadmins/nudge/wiki)\n'
'\n'
'## About the LaunchAgent\n'
'This is a basic launch agent that opens Nudge '
'twice an hour, every 30 minutes.\n'
'If you would like to reduce the amount of times '
'Nudge launches per day, it is recommended to '
'create your own LaunchAgent.\n'
'\n'
'# Changelog\n'
'Requires macOS 12.0 and higher.\n'
'\n'
'### Added\n'
'- To artificially change the '
'`requredInstallationDate` to honor a previous '
'macOS minor version, set '
'`minorVersionRecalculationThreshold` under '
'`osVersionRequirement` in amount of minor '
'versions.\n'
' - Ex: `minorVersionRecalculationThreshold` is '
'set to 1 and SOFA feed has macOS 14.5 available\n'
' - macOS device is 14.0: Required OS: 14.5 - '
'Target macOS 14.4.1 requiredInstallationDate of '
'2024-04-08 00:00:00 +0000\n'
' - macOS device is 14.1: Required OS: 14.5 - '
'Target macOS 14.4.1 requiredInstallationDate of '
'2024-04-08 00:00:00 +0000\n'
' - macOS device is 14.2: Required OS: 14.5 - '
'Target macOS 14.4.1 requiredInstallationDate of '
'2024-04-08 00:00:00 +0000\n'
' - macOS device is 14.3: Required OS: 14.5 - '
'Target macOS 14.4.1 requiredInstallationDate of '
'2024-04-08 00:00:00 +0000\n'
' - macOS device is 14.4: Required OS: 14.5 - '
'Target macOS 14.4.1 requiredInstallationDate of '
'2024-04-08 00:00:00 +0000\n'
' - macOS device is 14.4.1: Required OS: 14.5 '
'- Target macOS 14.5 requiredInstallationDate of '
'2024-06-03 00:00:00 +0000\n'
" - This device's requiredInstallationDate "
'is different than the others as there is no '
'active exploit on 14.4.1\n'
' - macOS device is 14.5: Required OS: 14.5 - '
'Fully updated\n'
' - Ex: `minorVersionRecalculationThreshold` is '
'set to 2 and SOFA feed has macOS 14.5 available\n'
' - macOS device is 14.0: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-03-21 00:00:00 +0000\n'
' - macOS device is 14.1: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-03-21 00:00:00 +0000\n'
' - macOS device is 14.2: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-03-21 00:00:00 +0000\n'
' - macOS device is 14.3: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-03-21 00:00:00 +0000\n'
' - macOS device is 14.4: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-04-08 00:00:00 +0000\n'
' - macOS device is 14.4.1: Required OS: 14.5 '
'- Target macOS 14.4.1 requiredInstallationDate '
'of 2024-06-03 00:00:00 +0000\n'
' - macOS device is 14.5: Required OS: 14.5 - '
'Fully updated\n'
' - Ex: `minorVersionRecalculationThreshold` is '
'set to 3 and SOFA feed has macOS 14.5 available\n'
' - macOS device is 14.0: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-02-22 00:00:00 +0000\n'
' - macOS device is 14.1: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-02-22 00:00:00 +0000\n'
' - macOS device is 14.2: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-02-22 00:00:00 +0000\n'
' - macOS device is 14.3: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-02-22 00:00:00 +0000\n'
' - macOS device is 14.4: Required OS: 14.5 - '
'Target macOS 14.4 requiredInstallationDate of '
'2024-04-08 00:00:00 +0000\n'
' - macOS device is 14.4.1: Required OS: 14.5 '
'- Target macOS 14.4.1 requiredInstallationDate '
'of 2024-06-03 00:00:00 +0000\n'
' - macOS device is 14.5: Required OS: 14.5 - '
'Fully updated\n'
' - Addresses '
'[612](https://github.com/macadmins/nudge/issues/612)\n'
'- To ease testing, you can now pass '
'`-simulate-date` as an argument to override the '
'built-in date check.\n'
' - Ex: `-simulate-date "2024-07-25T00:00:00Z"`\n'
'\n'
'### Changed\n'
'- The `Actively Exploited` logic internally '
'within Nudge and the UI on the left sidebar will '
'show `True` if any previous updates missing on '
'the device had active exploits.\n'
' - **WARNING BREAKING CHANGE** - This changes '
'the SLA computation and will result in a '
'different `requiredInstallationDate` than '
'offered in Nudge v2.0 -> v2.01.\n'
' - Ex: Device is on 14.3 and needing to go to '
'14.5.\n'
' - While 14.4.1 -> 14.5 are not under active '
'exploit, 14.4 contains fixes for 14.3 that were '
'under active exploit.\n'
' - Addresses '
'[610](https://github.com/macadmins/nudge/issues/610) '
'and '
'[613](https://github.com/macadmins/nudge/issues/613)\n'
'- When `showRequiredDate` is set to `True` and '
'the admin is using the default values for '
'`requiredInstallationDisplayFormat`, Nudge will '
'attempt to understand the current locale and '
'display the menu item appropriately.\n'
' - Addresses '
'[615](https://github.com/macadmins/nudge/issues/615)\n'
'- Banned shortcut keys - including the ability '
'to quit the application - are now allowed when '
'passing `-simulate-os-version` or '
'`-simulate-hardware-id` or `-simulate-date`\n'
'\n'
'### Fixed\n'
'- Several components in the Github Actions were '
'triggering deprecation warnings. These have been '
'addressed by updating to the latest version of '
'these components\n'
' - Addresses '
'[616](https://github.com/macadmins/nudge/issues/616)\n'
'\n'
'# Changes\n'
'- '
'[3ad843d](http://github.com/macadmins/nudge/commit/3ad843d5c7136f3ecdd39dd86625e3ba9b3ced2f) '
'- redo under active exploit logic\n'
'- '
'[c38d799](http://github.com/macadmins/nudge/commit/c38d799f5a36c2e02b86acc3e2987bd41a4f65c3) '
'- add another note in the changelog\n'
'- '
'[ccc1d29](http://github.com/macadmins/nudge/commit/ccc1d291c4e46743faad47666e204341f366a3f6) '
'- bump to v2.0.5\n'
'- '
'[84fb165](http://github.com/macadmins/nudge/commit/84fb1653d68649ea1556367bb866c0b732ed71f7) '
'- attempt to show locale when using default '
'values for showRequiredDate\n'
'- '
'[930681f](http://github.com/macadmins/nudge/commit/930681f973b4a1291e43e807891e3b514a209f54) '
'- address deprecated github actions\n'
'- '
'[0d53821](http://github.com/macadmins/nudge/commit/0d538213a3d387ce56e3d61cf8b26d0674613a7c) '
'- Add logic for '
'minorVersionRecalculationThreshold\n'
'- '
'[07452c3](http://github.com/macadmins/nudge/commit/07452c3b5ce3cdea4d910612496ebc60e005ede7) '
'- re-order logs\n'
'- '
'[1fd7e94](http://github.com/macadmins/nudge/commit/1fd7e94e118719c0dd8ffcebd00b4e11eb9bc29d) '
'- fix some logic issues and add safety\n'
'- '
'[abfccf7](http://github.com/macadmins/nudge/commit/abfccf7c37a9f184b42a5a1da9b0ae6c0df19919) '
'- fix changelog\n'
'- '
'[5d5d6a1](http://github.com/macadmins/nudge/commit/5d5d6a1f82495c35c5f4f70d3ec7b274c811e442) '
'- add an additional note as to why the date is '
'different\n'
'- '
'[69421f4](http://github.com/macadmins/nudge/commit/69421f4cf767e125097522892ce4c7a85445d32e) '
'- ensure active exploit logic is properly '
'assessed\n'
'- '
'[3d618e9](http://github.com/macadmins/nudge/commit/3d618e98249f1e376af8780ee7dc7cd9689083cf) '
'- add additional logging for computation\n'
'- '
'[2f39c0c](http://github.com/macadmins/nudge/commit/2f39c0cdf94d8b34299c9237aec92708d07f97fb) '
'- fix version comparison\n'
'- '
'[500e317](http://github.com/macadmins/nudge/commit/500e3176dc2193503d57f466e710c6c27ecff9d8) '
'- update changelog with new tests\n'
'- '
'[c208c8a](http://github.com/macadmins/nudge/commit/c208c8a8c0c83d2ac54b98e39cc65230152e59f1) '
'- Merge pull request #614 from '
'macadmins/development\n'
'- '
'[394792c](http://github.com/macadmins/nudge/commit/394792ccc7d9c8b30865709ad91eeb496209e94a) '
'- Update CHANGELOG.md\n'
'- '
'[62ba9b7](http://github.com/macadmins/nudge/commit/62ba9b736c70181b673a7294b0ab2e463095ba87) '
'- Merge pull request #617 from '
'macadmins/erikng-patch-1\n'
'- '
'[8294e9d](http://github.com/macadmins/nudge/commit/8294e9de1c3c18210cdb0138dafbedf5019fabe0) '
'- redo the minorversion calculation a third '
'time\n'
'- '
'[06a4476](http://github.com/macadmins/nudge/commit/06a44769ffd1b8141efb66bffdae4973a828a280) '
'- allow banned keys when simulating versions\n'
'- '
'[c17e0db](http://github.com/macadmins/nudge/commit/c17e0dbaf6621d7c446a04aa69a9d8122cb8ddb1) '
'- fix typo\n'
'- '
'[7038593](http://github.com/macadmins/nudge/commit/70385934e33fa0c3639b828dd77a77bea4b995a3) '
'- allow simulated dates\n'
'- '
'[4313964](http://github.com/macadmins/nudge/commit/4313964cac49138f14a38abe341d920ce5f877b7) '
'- Merge pull request #618 from '
'macadmins/development\n'
'\n',
'url': 'https://github.com/macadmins/nudge/releases/download/v2.0.5.81760/Nudge_Essentials-2.0.5.81760.pkg',
'version': '2.0.5.81760'}}
URLDownloader
{'Input': {'filename': 'NudgeEssentials.pkg',
'url': 'https://github.com/macadmins/nudge/releases/download/v2.0.5.81760/Nudge_Essentials-2.0.5.81760.pkg'}}
URLDownloader: No value supplied for prefetch_filename, setting default value of: False
URLDownloader: No value supplied for CHECK_FILESIZE_ONLY, setting default value of: False
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg
{'Output': {'pathname': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg'}}
EndOfCheckPhase
{'Input': {}}
{'Output': {}}
CodeSignatureVerifier
{'Input': {'expected_authority_names': ['Developer ID Installer: Mac Admins '
'Open Source (T4SK8ZXCXG)',
'Developer ID Certification Authority',
'Apple Root CA'],
'input_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg',
'requirement': 'identifier "com.github.macadmins.Nudge"',
'strict_verification': True}}
CodeSignatureVerifier: Verifying installer package signature...
CodeSignatureVerifier: Package "NudgeEssentials.pkg":
CodeSignatureVerifier: Status: signed by a developer certificate issued by Apple for distribution
CodeSignatureVerifier: Notarization: trusted by the Apple notary service
CodeSignatureVerifier: Signed with a trusted timestamp on: 2024-07-25 21:35:20 +0000
CodeSignatureVerifier: Certificate Chain:
CodeSignatureVerifier: 1. Developer ID Installer: Mac Admins Open Source (T4SK8ZXCXG)
CodeSignatureVerifier: Expires: 2028-02-09 02:34:05 +0000
CodeSignatureVerifier: SHA256 Fingerprint:
CodeSignatureVerifier: B1 06 B6 26 DA 3B A8 48 34 F3 DF D2 CC 5E AC 03 91 31 05 3F A9 A2
CodeSignatureVerifier: B7 BA 2A 5E 33 3C 3B 05 53 7A
CodeSignatureVerifier: ------------------------------------------------------------------------
CodeSignatureVerifier: 2. Developer ID Certification Authority
CodeSignatureVerifier: Expires: 2031-09-17 00:00:00 +0000
CodeSignatureVerifier: SHA256 Fingerprint:
CodeSignatureVerifier: F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F
CodeSignatureVerifier: D1 44 71 5F 35 06 43 D2 DF 3A
CodeSignatureVerifier: ------------------------------------------------------------------------
CodeSignatureVerifier: 3. Apple Root CA
CodeSignatureVerifier: Expires: 2035-02-09 21:40:36 +0000
CodeSignatureVerifier: SHA256 Fingerprint:
CodeSignatureVerifier: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C
CodeSignatureVerifier: 68 C5 BE 91 B5 A1 10 01 F0 24
CodeSignatureVerifier:
CodeSignatureVerifier: Signature is valid
CodeSignatureVerifier: Authority name chain is valid
{'Output': {}}
FlatPkgUnpacker
{'Input': {'destination_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack',
'flat_pkg_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg'}}
FlatPkgUnpacker: Unpacked /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg to /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack
{'Output': {}}
FileFinder
{'Input': {'pattern': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge*.pkg'}}
FileFinder: No value supplied for find_method, setting default value of: glob
FileFinder: Found file match: '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg' from globbed '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge*.pkg'
FileFinder: Basename match: 'Nudge_Essentials-2.0.5.81760.pkg'
{'Output': {'found_basename': 'Nudge_Essentials-2.0.5.81760.pkg',
'found_filename': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg'}}
PkgPayloadUnpacker
{'Input': {'destination_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities',
'pkg_payload_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg/Payload',
'purge_destination': True}}
PkgPayloadUnpacker: Unpacked /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/unpack/Nudge_Essentials-2.0.5.81760.pkg/Payload to /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities
{'Output': {}}
FileFinder
{'Input': {'find_method': 'glob',
'pattern': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/**/Nudge.app/Contents/Info.plist'}}
FileFinder: Found file match: '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist' from globbed '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/**/Nudge.app/Contents/Info.plist'
FileFinder: Basename match: 'Info.plist'
{'Output': {'found_basename': 'Info.plist',
'found_filename': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist'}}
Versioner
{'Input': {'input_plist_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist'}}
Versioner: No value supplied for plist_version_key, setting default value of: CFBundleShortVersionString
Versioner: No value supplied for skip_single_root_dir, setting default value of: False
Versioner: Found version 2.0.5.81760 in file /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities/Applications/Utilities/Nudge.app/Contents/Info.plist
{'Output': {'version': '2.0.5.81760'}}
MunkiPkginfoMerger
{'Input': {'additional_pkginfo': {'version': '2.0.5.81760'},
'pkginfo': {'blocking_applications': [],
'catalogs': ['testing'],
'category': 'Configuration Management',
'description': 'Nudge is a Swift application for '
'enforcing macOS updates.',
'developer': 'Erik Gomez',
'display_name': 'Nudge Essentials',
'name': 'NudgeEssentials',
'unattended_install': True}}}
MunkiPkginfoMerger: Merged {'version': '2.0.5.81760'} into pkginfo
{'Output': {'pkginfo': {'blocking_applications': [],
'catalogs': ['testing'],
'category': 'Configuration Management',
'description': 'Nudge is a Swift application for '
'enforcing macOS updates.',
'developer': 'Erik Gomez',
'display_name': 'Nudge Essentials',
'name': 'NudgeEssentials',
'unattended_install': True,
'version': '2.0.5.81760'}}}
MunkiInstallsItemsCreator
{'Input': {'derive_minimum_os_version': 'YES',
'faux_root': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/payload/Applications/Utilities',
'installs_item_paths': ['/Applications/Utilities/Nudge.app']}}
MunkiInstallsItemsCreator: Created installs item for /Applications/Utilities/Nudge.app
MunkiInstallsItemsCreator: Derived minimum os version as: 12.0
{'Output': {'additional_pkginfo': {'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
'CFBundleName': 'Nudge',
'CFBundleShortVersionString': '2.0.5.81760',
'CFBundleVersion': '2.0.5.81760',
'minosversion': '12.0',
'path': '/Applications/Utilities/Nudge.app',
'type': 'application',
'version_comparison_key': 'CFBundleShortVersionString'}],
'minimum_os_version': '12.0',
'version': '2.0.5.81760'}}}
MunkiPkginfoMerger
{'Input': {'additional_pkginfo': {'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
'CFBundleName': 'Nudge',
'CFBundleShortVersionString': '2.0.5.81760',
'CFBundleVersion': '2.0.5.81760',
'minosversion': '12.0',
'path': '/Applications/Utilities/Nudge.app',
'type': 'application',
'version_comparison_key': 'CFBundleShortVersionString'}],
'minimum_os_version': '12.0',
'version': '2.0.5.81760'},
'pkginfo': {'blocking_applications': [],
'catalogs': ['testing'],
'category': 'Configuration Management',
'description': 'Nudge is a Swift application for '
'enforcing macOS updates.',
'developer': 'Erik Gomez',
'display_name': 'Nudge Essentials',
'name': 'NudgeEssentials',
'unattended_install': True,
'version': '2.0.5.81760'}}}
MunkiPkginfoMerger: Merged {'version': '2.0.5.81760', 'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge', 'CFBundleName': 'Nudge', 'CFBundleShortVersionString': '2.0.5.81760', 'CFBundleVersion': '2.0.5.81760', 'minosversion': '12.0', 'path': '/Applications/Utilities/Nudge.app', 'type': 'application', 'version_comparison_key': 'CFBundleShortVersionString'}], 'minimum_os_version': '12.0'} into pkginfo
{'Output': {'pkginfo': {'blocking_applications': [],
'catalogs': ['testing'],
'category': 'Configuration Management',
'description': 'Nudge is a Swift application for '
'enforcing macOS updates.',
'developer': 'Erik Gomez',
'display_name': 'Nudge Essentials',
'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
'CFBundleName': 'Nudge',
'CFBundleShortVersionString': '2.0.5.81760',
'CFBundleVersion': '2.0.5.81760',
'minosversion': '12.0',
'path': '/Applications/Utilities/Nudge.app',
'type': 'application',
'version_comparison_key': 'CFBundleShortVersionString'}],
'minimum_os_version': '12.0',
'name': 'NudgeEssentials',
'unattended_install': True,
'version': '2.0.5.81760'}}}
MunkiImporter
{'Input': {'MUNKI_REPO': '/Users/Shared/munki_repo',
'pkg_path': '/Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/downloads/NudgeEssentials.pkg',
'pkginfo': {'blocking_applications': [],
'catalogs': ['testing'],
'category': 'Configuration Management',
'description': 'Nudge is a Swift application for '
'enforcing macOS updates.',
'developer': 'Erik Gomez',
'display_name': 'Nudge Essentials',
'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
'CFBundleName': 'Nudge',
'CFBundleShortVersionString': '2.0.5.81760',
'CFBundleVersion': '2.0.5.81760',
'minosversion': '12.0',
'path': '/Applications/Utilities/Nudge.app',
'type': 'application',
'version_comparison_key': 'CFBundleShortVersionString'}],
'minimum_os_version': '12.0',
'name': 'NudgeEssentials',
'unattended_install': True,
'version': '2.0.5.81760'},
'repo_subdirectory': 'apps/Nudge',
'version_comparison_key': 'CFBundleVersion'}}
MunkiImporter: No value supplied for MUNKI_REPO_PLUGIN, setting default value of: FileRepo
MunkiImporter: No value supplied for MUNKILIB_DIR, setting default value of: /usr/local/munki
MunkiImporter: No value supplied for force_munki_repo_lib, setting default value of: False
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter: plugin: FileRepo
MunkiImporter: repo: /Users/Shared/munki_repo
MunkiImporter: Copied pkginfo to: /Users/Shared/munki_repo/pkgsinfo/apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist
MunkiImporter: pkg to: /Users/Shared/munki_repo/pkgs/apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg
{'Output': {'munki_importer_summary_result': {'data': {'catalogs': 'testing',
'icon_repo_path': '',
'name': 'NudgeEssentials',
'pkg_repo_path': 'apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg',
'pkginfo_path': 'apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist',
'version': '2.0.5.81760'},
'report_fields': ['name',
'version',
'catalogs',
'pkginfo_path',
'pkg_repo_path',
'icon_repo_path'],
'summary_text': 'The following '
'new items were '
'imported into '
'Munki:'},
'munki_info': {'_metadata': {'created_by': 'paul.cossey',
'creation_date': datetime.datetime(2024, 8, 1, 12, 12, 56),
'munki_version': '6.3.2.4588',
'os_version': '15.0'},
'autoremove': False,
'blocking_applications': [],
'catalogs': ['testing'],
'category': 'Configuration Management',
'description': 'Nudge is a Swift application for '
'enforcing macOS updates.',
'developer': 'Erik Gomez',
'display_name': 'Nudge Essentials',
'installed_size': 4024,
'installer_item_hash': 'bd1251ddd8caa82c5eb63436b0f01fec282066e97f6712a45858356b2917e6cb',
'installer_item_location': 'apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg',
'installer_item_size': 1425,
'installs': [{'CFBundleIdentifier': 'com.github.macadmins.Nudge',
'CFBundleName': 'Nudge',
'CFBundleShortVersionString': '2.0.5.81760',
'CFBundleVersion': '2.0.5.81760',
'minosversion': '12.0',
'path': '/Applications/Utilities/Nudge.app',
'type': 'application',
'version_comparison_key': 'CFBundleVersion'}],
'minimum_os_version': '12.0',
'name': 'NudgeEssentials',
'receipts': [{'installed_size': 4024,
'packageid': 'com.github.macadmins.Nudge.Essentials',
'version': '2.0.5.81760'}],
'unattended_install': True,
'uninstall_method': 'removepackages',
'uninstallable': True,
'version': '2.0.5.81760'},
'munki_repo_changed': True,
'pkg_repo_path': '/Users/Shared/munki_repo/pkgs/apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg',
'pkginfo_repo_path': '/Users/Shared/munki_repo/pkgsinfo/apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist'}}
Receipt written to /Users/paul.cossey/Library/AutoPkg/Cache/com.github.erikng.munki.Nudge/receipts/Nudge.munki-receipt-20240801-131256.plist
The following new items were imported into Munki:
Name Version Catalogs Pkginfo Path Pkg Repo Path Icon Repo Path
---- ------- -------- ------------ ------------- --------------
NudgeEssentials 2.0.5.81760 testing apps/Nudge/NudgeEssentials-2.0.5.81760__2.plist apps/Nudge/NudgeEssentials-2.0.5.81760__2.pkg
Hi, @erikng
The current Nudge Munki recipe doesn't generate an Installs Array when downloading the Essentials pkg.
This is because when the pkg is unpacked the app's path is
/payload/Applications/Utilities/Applications/Utilities/Nudge.app
resulting inMunkiInstallsItemsCreator
'sfaux_root
key being incorrect (for Essentials at least)I'm happy to add on a fix to my PR that adds a variable to account for the additional folder in the path something like
It's not particularly elegant, but I can't think of a better way at the moment π
Output from a -vv run using the above changes