From d2bd12db33fce91aea416158968e9c05719d3fd1 Mon Sep 17 00:00:00 2001 From: Samuel Keeley Date: Fri, 13 Nov 2015 20:31:19 -0800 Subject: [PATCH 1/9] Update README.md Move the announcement to the bottom of the readme --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 1f726e2c..7c81e8d0 100644 --- a/README.md +++ b/README.md @@ -3,21 +3,6 @@ munki _Managed software installation for OS X_ -###Announcement -An exploit has been discovered against Munki tools older than version 2.1. - -Untrusted input can be passed to the curl binary, causing arbitrary files to be downloaded to arbitrary locations. - -Recommendation is to update to Munki 2.1 or later, which is not susceptible to this exploit, as version 2.1 and later no longer use the curl binary for http/https communication. - -This vulnerability has been assigned a CVE ID: CVE-2015-2211 - -If you cannot update to Munki 2.1, there is a patch for Munki 2.0.1 here: -https://github.com/munki/munki/releases/tag/v2.0.1.2254 - -And another for Munki 1.0.0 here: -https://github.com/munki/munki/releases/tag/v1.0.0.1896.0 - ####Introduction Munki is a set of tools that, used together with a webserver-based repository of packages and package metadata, can be used by OS X administrators to manage software installs (and in many cases removals) on OS X client machines. @@ -41,3 +26,18 @@ If you have questions, or need additional help getting started, the [munki-dev]( Issues with MunkiWebAdmin should be discussed in its group: [munki-web-admin](http://groups.google.com/group/munki-web-admin). ![](https://github.com/munki/munki/wiki/images/managed_software_center.png) + +###Announcement +An exploit has been discovered against Munki tools older than version 2.1. + +Untrusted input can be passed to the curl binary, causing arbitrary files to be downloaded to arbitrary locations. + +Recommendation is to update to Munki 2.1 or later, which is not susceptible to this exploit, as version 2.1 and later no longer use the curl binary for http/https communication. + +This vulnerability has been assigned a CVE ID: CVE-2015-2211 + +If you cannot update to Munki 2.1, there is a patch for Munki 2.0.1 here: +https://github.com/munki/munki/releases/tag/v2.0.1.2254 + +And another for Munki 1.0.0 here: +https://github.com/munki/munki/releases/tag/v1.0.0.1896.0 From 5c12185da41bfda9d93bcac8416f3c09277bc4d3 Mon Sep 17 00:00:00 2001 From: Samuel Keeley Date: Fri, 13 Nov 2015 20:35:24 -0800 Subject: [PATCH 2/9] Replace http://www.apache.org/licenses/LICENSE-2.0 with https://www.apache.org/licenses/LICENSE-2.0 --- LICENSE.md | 2 +- .../Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.h | 2 +- .../Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.m | 2 +- .../Managed Software Center/FoundationPlist.py | 2 +- .../Managed Software Center/MSCAppDelegate.py | 2 +- .../Managed Software Center/MSCBadgedTemplateImage.py | 2 +- .../Managed Software Center/MSCMainWindowController.py | 2 +- .../Managed Software Center/MSCStatusController.py | 2 +- .../Managed Software Center/MunkiItems.py | 2 +- .../Managed Software Center/Managed Software Center/msclib.py | 2 +- .../Managed Software Center/Managed Software Center/msclog.py | 2 +- .../Managed Software Center/Managed Software Center/munki.py | 2 +- code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.h | 2 +- code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.m | 2 +- code/apps/MunkiStatus/MunkiStatus/FoundationPlist.py | 2 +- code/apps/MunkiStatus/MunkiStatus/MSUAppDelegate.py | 2 +- code/apps/MunkiStatus/MunkiStatus/MSUStatusWindowController.py | 2 +- code/apps/MunkiStatus/MunkiStatus/ScaledImageView.h | 2 +- code/apps/MunkiStatus/MunkiStatus/ScaledImageView.m | 2 +- code/apps/MunkiStatus/MunkiStatus/main.m | 2 +- code/apps/MunkiStatus/MunkiStatus/main.py | 2 +- code/apps/MunkiStatus/MunkiStatus/munki.py | 2 +- code/client/iconimporter | 2 +- code/client/launchapp | 2 +- code/client/logouthelper | 2 +- code/client/makecatalogs | 2 +- code/client/makepkginfo | 2 +- code/client/managedsoftwareupdate | 2 +- code/client/manifestutil | 2 +- code/client/munkiimport | 2 +- code/client/munkilib/FoundationPlist.py | 2 +- code/client/munkilib/adobeutils.py | 2 +- code/client/munkilib/appleupdates.py | 2 +- code/client/munkilib/fetch.py | 2 +- code/client/munkilib/gurl.py | 2 +- code/client/munkilib/iconutils.py | 2 +- code/client/munkilib/installer.py | 2 +- code/client/munkilib/keychain.py | 2 +- code/client/munkilib/launchd.py | 2 +- code/client/munkilib/munkicommon.py | 2 +- code/client/munkilib/munkistatus.py | 2 +- code/client/munkilib/profiles.py | 2 +- code/client/munkilib/removepackages.py | 2 +- code/client/munkilib/updatecheck.py | 2 +- code/client/munkilib/utils.py | 2 +- code/client/ptyexec | 2 +- code/client/supervisor | 2 +- code/server/getmanifest.py | 2 +- code/tools/app2pkg.py | 2 +- code/tools/filelist2pkg.py | 2 +- code/tools/pkginfo_hash_updater.py | 2 +- code/tools/tar2pkg.py | 2 +- code/tools/transcript2pkg.py | 2 +- tests/code/client/munkilib/appleupdates_test.py | 2 +- tests/code/client/munkilib/munkicommon_unicode_test.py | 2 +- 55 files changed, 55 insertions(+), 55 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 3782d419..5ebc1fd1 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,7 +2,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this source code except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.h b/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.h index 56a3fbd8..69b685a0 100644 --- a/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.h +++ b/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.h @@ -10,7 +10,7 @@ you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.m b/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.m index 315ea01c..c7fa4836 100644 --- a/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.m +++ b/code/apps/Managed Software Center/MSCDockTilePlugin/DockTilePlugIn.m @@ -10,7 +10,7 @@ you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/FoundationPlist.py b/code/apps/Managed Software Center/Managed Software Center/FoundationPlist.py index be2b671f..5fbf5f0a 100644 --- a/code/apps/Managed Software Center/Managed Software Center/FoundationPlist.py +++ b/code/apps/Managed Software Center/Managed Software Center/FoundationPlist.py @@ -6,7 +6,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/MSCAppDelegate.py b/code/apps/Managed Software Center/Managed Software Center/MSCAppDelegate.py index fa24c8ea..343a896b 100644 --- a/code/apps/Managed Software Center/Managed Software Center/MSCAppDelegate.py +++ b/code/apps/Managed Software Center/Managed Software Center/MSCAppDelegate.py @@ -9,7 +9,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/MSCBadgedTemplateImage.py b/code/apps/Managed Software Center/Managed Software Center/MSCBadgedTemplateImage.py index 9a4a9f08..a19ec7e2 100644 --- a/code/apps/Managed Software Center/Managed Software Center/MSCBadgedTemplateImage.py +++ b/code/apps/Managed Software Center/Managed Software Center/MSCBadgedTemplateImage.py @@ -9,7 +9,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/MSCMainWindowController.py b/code/apps/Managed Software Center/Managed Software Center/MSCMainWindowController.py index bf70ae22..19d09d74 100644 --- a/code/apps/Managed Software Center/Managed Software Center/MSCMainWindowController.py +++ b/code/apps/Managed Software Center/Managed Software Center/MSCMainWindowController.py @@ -9,7 +9,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/MSCStatusController.py b/code/apps/Managed Software Center/Managed Software Center/MSCStatusController.py index efe14fd9..62cc388a 100644 --- a/code/apps/Managed Software Center/Managed Software Center/MSCStatusController.py +++ b/code/apps/Managed Software Center/Managed Software Center/MSCStatusController.py @@ -8,7 +8,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py b/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py index e35394f1..e6a1ead4 100644 --- a/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py +++ b/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py @@ -11,7 +11,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/msclib.py b/code/apps/Managed Software Center/Managed Software Center/msclib.py index 9455c826..e3360ca6 100644 --- a/code/apps/Managed Software Center/Managed Software Center/msclib.py +++ b/code/apps/Managed Software Center/Managed Software Center/msclib.py @@ -9,7 +9,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/msclog.py b/code/apps/Managed Software Center/Managed Software Center/msclog.py index 78e7e4f2..c838289b 100644 --- a/code/apps/Managed Software Center/Managed Software Center/msclog.py +++ b/code/apps/Managed Software Center/Managed Software Center/msclog.py @@ -12,7 +12,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/Managed Software Center/Managed Software Center/munki.py b/code/apps/Managed Software Center/Managed Software Center/munki.py index 0df7df87..a37e1cab 100644 --- a/code/apps/Managed Software Center/Managed Software Center/munki.py +++ b/code/apps/Managed Software Center/Managed Software Center/munki.py @@ -10,7 +10,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.h b/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.h index 9482f426..cd9de808 100644 --- a/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.h +++ b/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.h @@ -8,7 +8,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.m b/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.m index 35b6d94d..616093ea 100644 --- a/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.m +++ b/code/apps/MunkiStatus/MunkiStatus/BorderlessWindow.m @@ -8,7 +8,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/FoundationPlist.py b/code/apps/MunkiStatus/MunkiStatus/FoundationPlist.py index 0f02b3ab..39da518f 100644 --- a/code/apps/MunkiStatus/MunkiStatus/FoundationPlist.py +++ b/code/apps/MunkiStatus/MunkiStatus/FoundationPlist.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/MSUAppDelegate.py b/code/apps/MunkiStatus/MunkiStatus/MSUAppDelegate.py index f60970d7..2b5d4f91 100644 --- a/code/apps/MunkiStatus/MunkiStatus/MSUAppDelegate.py +++ b/code/apps/MunkiStatus/MunkiStatus/MSUAppDelegate.py @@ -9,7 +9,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/MSUStatusWindowController.py b/code/apps/MunkiStatus/MunkiStatus/MSUStatusWindowController.py index d4d2b3e5..df2f3f57 100644 --- a/code/apps/MunkiStatus/MunkiStatus/MSUStatusWindowController.py +++ b/code/apps/MunkiStatus/MunkiStatus/MSUStatusWindowController.py @@ -9,7 +9,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.h b/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.h index d2b118fd..350f1a72 100644 --- a/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.h +++ b/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.h @@ -9,7 +9,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.m b/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.m index 30cc3bfa..774ea545 100644 --- a/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.m +++ b/code/apps/MunkiStatus/MunkiStatus/ScaledImageView.m @@ -9,7 +9,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/main.m b/code/apps/MunkiStatus/MunkiStatus/main.m index 7263948a..7873adc6 100644 --- a/code/apps/MunkiStatus/MunkiStatus/main.m +++ b/code/apps/MunkiStatus/MunkiStatus/main.m @@ -8,7 +8,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/main.py b/code/apps/MunkiStatus/MunkiStatus/main.py index 401c9ff0..c8ce6a4a 100644 --- a/code/apps/MunkiStatus/MunkiStatus/main.py +++ b/code/apps/MunkiStatus/MunkiStatus/main.py @@ -8,7 +8,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/apps/MunkiStatus/MunkiStatus/munki.py b/code/apps/MunkiStatus/MunkiStatus/munki.py index 2dc97319..e8d8fa69 100644 --- a/code/apps/MunkiStatus/MunkiStatus/munki.py +++ b/code/apps/MunkiStatus/MunkiStatus/munki.py @@ -10,7 +10,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/iconimporter b/code/client/iconimporter index dd46e253..d1ef21c4 100755 --- a/code/client/iconimporter +++ b/code/client/iconimporter @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/launchapp b/code/client/launchapp index 90cf7849..c4496b36 100755 --- a/code/client/launchapp +++ b/code/client/launchapp @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/logouthelper b/code/client/logouthelper index b48af5e5..550bbe9d 100755 --- a/code/client/logouthelper +++ b/code/client/logouthelper @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/makecatalogs b/code/client/makecatalogs index 220a8f3f..3f50e2b3 100755 --- a/code/client/makecatalogs +++ b/code/client/makecatalogs @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/makepkginfo b/code/client/makepkginfo index e08ea380..7ea581f8 100755 --- a/code/client/makepkginfo +++ b/code/client/makepkginfo @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/managedsoftwareupdate b/code/client/managedsoftwareupdate index b201ab06..8a2926ae 100755 --- a/code/client/managedsoftwareupdate +++ b/code/client/managedsoftwareupdate @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/manifestutil b/code/client/manifestutil index 0c1b2e29..f0fc1af0 100755 --- a/code/client/manifestutil +++ b/code/client/manifestutil @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkiimport b/code/client/munkiimport index 3ee860b6..61140fb0 100755 --- a/code/client/munkiimport +++ b/code/client/munkiimport @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/munkilib/FoundationPlist.py b/code/client/munkilib/FoundationPlist.py index 1ba059ec..9dbda75c 100644 --- a/code/client/munkilib/FoundationPlist.py +++ b/code/client/munkilib/FoundationPlist.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/adobeutils.py b/code/client/munkilib/adobeutils.py index 891fe67e..98fe1077 100644 --- a/code/client/munkilib/adobeutils.py +++ b/code/client/munkilib/adobeutils.py @@ -13,7 +13,7 @@ using the CS3/CS4/CS5 Deployment Toolkits. # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/appleupdates.py b/code/client/munkilib/appleupdates.py index 9852dacf..103dfba1 100755 --- a/code/client/munkilib/appleupdates.py +++ b/code/client/munkilib/appleupdates.py @@ -12,7 +12,7 @@ Utilities for dealing with Apple Software Update. # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/fetch.py b/code/client/munkilib/fetch.py index e00245fe..85b93484 100644 --- a/code/client/munkilib/fetch.py +++ b/code/client/munkilib/fetch.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/munkilib/gurl.py b/code/client/munkilib/gurl.py index f20d0b0a..b832f43f 100644 --- a/code/client/munkilib/gurl.py +++ b/code/client/munkilib/gurl.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/munkilib/iconutils.py b/code/client/munkilib/iconutils.py index 769d11f8..4a56c90d 100644 --- a/code/client/munkilib/iconutils.py +++ b/code/client/munkilib/iconutils.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/munkilib/installer.py b/code/client/munkilib/installer.py index eacdeb75..70553563 100644 --- a/code/client/munkilib/installer.py +++ b/code/client/munkilib/installer.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/keychain.py b/code/client/munkilib/keychain.py index 0d58ae25..7f5d9563 100644 --- a/code/client/munkilib/keychain.py +++ b/code/client/munkilib/keychain.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/munkilib/launchd.py b/code/client/munkilib/launchd.py index 409fd204..29c45ea2 100644 --- a/code/client/munkilib/launchd.py +++ b/code/client/munkilib/launchd.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/munkicommon.py b/code/client/munkilib/munkicommon.py index 9e27eceb..2bee7e52 100755 --- a/code/client/munkilib/munkicommon.py +++ b/code/client/munkilib/munkicommon.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/munkilib/munkistatus.py b/code/client/munkilib/munkistatus.py index 63bb6d93..e459d428 100644 --- a/code/client/munkilib/munkistatus.py +++ b/code/client/munkilib/munkistatus.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/profiles.py b/code/client/munkilib/profiles.py index 947bba6c..1b50c718 100644 --- a/code/client/munkilib/profiles.py +++ b/code/client/munkilib/profiles.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/removepackages.py b/code/client/munkilib/removepackages.py index 1ffd1945..20e50684 100755 --- a/code/client/munkilib/removepackages.py +++ b/code/client/munkilib/removepackages.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/client/munkilib/updatecheck.py b/code/client/munkilib/updatecheck.py index 778ee222..306a5471 100755 --- a/code/client/munkilib/updatecheck.py +++ b/code/client/munkilib/updatecheck.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/munkilib/utils.py b/code/client/munkilib/utils.py index 9b7e85a7..8fa8b584 100644 --- a/code/client/munkilib/utils.py +++ b/code/client/munkilib/utils.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/ptyexec b/code/client/ptyexec index b877f5d8..48cd9907 100755 --- a/code/client/ptyexec +++ b/code/client/ptyexec @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/client/supervisor b/code/client/supervisor index 1480e1d0..45fee326 100755 --- a/code/client/supervisor +++ b/code/client/supervisor @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an 'AS IS' BASIS, diff --git a/code/server/getmanifest.py b/code/server/getmanifest.py index f335fff1..7ecb098a 100644 --- a/code/server/getmanifest.py +++ b/code/server/getmanifest.py @@ -6,7 +6,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/tools/app2pkg.py b/code/tools/app2pkg.py index bf4a8eb3..3c6351a8 100755 --- a/code/tools/app2pkg.py +++ b/code/tools/app2pkg.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/tools/filelist2pkg.py b/code/tools/filelist2pkg.py index 22be24a4..b4588540 100755 --- a/code/tools/filelist2pkg.py +++ b/code/tools/filelist2pkg.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/tools/pkginfo_hash_updater.py b/code/tools/pkginfo_hash_updater.py index caa3a2c8..6ba020fc 100755 --- a/code/tools/pkginfo_hash_updater.py +++ b/code/tools/pkginfo_hash_updater.py @@ -6,7 +6,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/tools/tar2pkg.py b/code/tools/tar2pkg.py index 342296b7..85bb64a3 100755 --- a/code/tools/tar2pkg.py +++ b/code/tools/tar2pkg.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/code/tools/transcript2pkg.py b/code/tools/transcript2pkg.py index 0b9bdb2f..af1a4907 100755 --- a/code/tools/transcript2pkg.py +++ b/code/tools/transcript2pkg.py @@ -7,7 +7,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/tests/code/client/munkilib/appleupdates_test.py b/tests/code/client/munkilib/appleupdates_test.py index a8cb2c94..badcae0a 100755 --- a/tests/code/client/munkilib/appleupdates_test.py +++ b/tests/code/client/munkilib/appleupdates_test.py @@ -12,7 +12,7 @@ Unit tests for appleupdates. # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, diff --git a/tests/code/client/munkilib/munkicommon_unicode_test.py b/tests/code/client/munkilib/munkicommon_unicode_test.py index 77c1078f..a10442b0 100755 --- a/tests/code/client/munkilib/munkicommon_unicode_test.py +++ b/tests/code/client/munkilib/munkicommon_unicode_test.py @@ -12,7 +12,7 @@ Unit tests for munkicommon's display_* functions. # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, From 67513852fcabd593a7109746956209cde4106ef2 Mon Sep 17 00:00:00 2001 From: Samuel Keeley Date: Fri, 13 Nov 2015 20:42:50 -0800 Subject: [PATCH 3/9] Replace internal documentation URLs with HTTPS versions --- README.md | 4 ++-- .../Managed Software Center/Localize.py | 2 +- code/apps/MunkiStatus/MunkiStatus/Localize.py | 2 +- code/client/makecatalogs | 4 ++-- code/client/munkilib/appleupdates.py | 2 +- code/client/munkilib/munkicommon.py | 4 ++-- code/client/munkilib/profiles.py | 2 +- code/tools/pkginfo_hash_updater.py | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1f726e2c..14479f3d 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,8 @@ Check out the Wiki for some notes and documentation, and browse and/or check out ####Get help -If you have questions, or need additional help getting started, the [munki-dev](http://groups.google.com/group/munki-dev) group is the best place to start. Please don't post support questions as comments on wiki documentation pages. +If you have questions, or need additional help getting started, the [munki-dev](https://groups.google.com/group/munki-dev) group is the best place to start. Please don't post support questions as comments on wiki documentation pages. -Issues with MunkiWebAdmin should be discussed in its group: [munki-web-admin](http://groups.google.com/group/munki-web-admin). +Issues with MunkiWebAdmin should be discussed in its group: [munki-web-admin](https://groups.google.com/group/munki-web-admin). ![](https://github.com/munki/munki/wiki/images/managed_software_center.png) diff --git a/code/apps/Managed Software Center/Managed Software Center/Localize.py b/code/apps/Managed Software Center/Managed Software Center/Localize.py index cb7406bc..3602f839 100755 --- a/code/apps/Managed Software Center/Managed Software Center/Localize.py +++ b/code/apps/Managed Software Center/Managed Software Center/Localize.py @@ -13,7 +13,7 @@ And Wil Shipley's 'Pimp My Code, Part 17: Lost in Translations' http://wilshipley.com/blog/2009/10/pimp-my-code-part-17-lost-in.html Written by David Keegan for Murky - http://bitbucket.org/snej/murky + https://bitbucket.org/snej/murky Usage: Localize.py -help diff --git a/code/apps/MunkiStatus/MunkiStatus/Localize.py b/code/apps/MunkiStatus/MunkiStatus/Localize.py index cb7406bc..3602f839 100755 --- a/code/apps/MunkiStatus/MunkiStatus/Localize.py +++ b/code/apps/MunkiStatus/MunkiStatus/Localize.py @@ -13,7 +13,7 @@ And Wil Shipley's 'Pimp My Code, Part 17: Lost in Translations' http://wilshipley.com/blog/2009/10/pimp-my-code-part-17-lost-in.html Written by David Keegan for Murky - http://bitbucket.org/snej/murky + https://bitbucket.org/snej/murky Usage: Localize.py -help diff --git a/code/client/makecatalogs b/code/client/makecatalogs index 3f50e2b3..3f2855ab 100755 --- a/code/client/makecatalogs +++ b/code/client/makecatalogs @@ -66,8 +66,8 @@ except ImportError: # work for us, instead of decoding each item in the output list. # # references: - # http://docs.python.org/howto/unicode.html#unicode-filenames - # http://developer.apple.com/library/mac/#qa/qa2001/qa1235.html + # https://docs.python.org/howto/unicode.html#unicode-filenames + # https://developer.apple.com/library/mac/#qa/qa2001/qa1235.html # http://lists.zerezo.com/git/msg643117.html # http://unicode.org/reports/tr15/ section 1.2 if type(path) is str: diff --git a/code/client/munkilib/appleupdates.py b/code/client/munkilib/appleupdates.py index 103dfba1..4fb66c4a 100755 --- a/code/client/munkilib/appleupdates.py +++ b/code/client/munkilib/appleupdates.py @@ -1137,7 +1137,7 @@ class AppleUpdates(object): self._LeopardSetupSoftwareUpdateCheck() # switch to our local filtered sucatalog # Using the NSDefaults Argument Domain described here: - # http://developer.apple.com/library/mac/#documentation/ + # https://developer.apple.com/library/mac/#documentation/ # Cocoa/Conceptual/UserDefaults/Concepts/DefaultsDomains.html cmd = [softwareupdatecheck, '-CatalogURL', catalog_url] try: diff --git a/code/client/munkilib/munkicommon.py b/code/client/munkilib/munkicommon.py index 2bee7e52..2f936157 100755 --- a/code/client/munkilib/munkicommon.py +++ b/code/client/munkilib/munkicommon.py @@ -2551,8 +2551,8 @@ def listdir(path): # work for us, instead of decoding each item in the output list. # # references: - # http://docs.python.org/howto/unicode.html#unicode-filenames - # http://developer.apple.com/library/mac/#qa/qa2001/qa1235.html + # https://docs.python.org/howto/unicode.html#unicode-filenames + # https://developer.apple.com/library/mac/#qa/qa2001/qa1235.html # http://lists.zerezo.com/git/msg643117.html # http://unicode.org/reports/tr15/ section 1.2 if type(path) is str: diff --git a/code/client/munkilib/profiles.py b/code/client/munkilib/profiles.py index 1b50c718..03d62e8a 100644 --- a/code/client/munkilib/profiles.py +++ b/code/client/munkilib/profiles.py @@ -143,7 +143,7 @@ def read_signed_profile(profile_path): # -noverify -out Unsigned.mobileconfig # will strip the signing from a signed profile # this might be a better approach - # from: http://apple.stackexchange.com/questions/105981/ + # from: https://apple.stackexchange.com/questions/105981/ # how-do-i-view-or-verify-signed-mobileconfig-files-using-terminal # but... we're going to use an Apple-provided tool instead. diff --git a/code/tools/pkginfo_hash_updater.py b/code/tools/pkginfo_hash_updater.py index 6ba020fc..863a0181 100755 --- a/code/tools/pkginfo_hash_updater.py +++ b/code/tools/pkginfo_hash_updater.py @@ -27,7 +27,7 @@ your plists before running this script! Dependencies: - Linux: Python2.6 or higher, or 2.4/2.5 with python-plistlib manually - installed: http://docs.python.org/library/plistlib.html + installed: https://docs.python.org/library/plistlib.html - Mac OSX: Python2.4 or higher. Created on 2010-09-02. From cec30b1439c5dc574ef44d798173e1e1e23db0c7 Mon Sep 17 00:00:00 2001 From: Justin McWilliams Date: Wed, 18 Nov 2015 14:13:53 -0800 Subject: [PATCH 4/9] Ensure 60, 30, 10 & 5m reboot notices are seen. Ensure that 60, 30, 10, and 5 minute notifications are *all* seen before forcefully rebooting a machine, not merely the 60 minute notification. Previously, if the 60m notice was seen, then the machine was put to sleep for 55m+, it could reboot without another notice after waking up. --- code/client/logouthelper | 44 ++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/code/client/logouthelper b/code/client/logouthelper index 550bbe9d..a08da0c9 100755 --- a/code/client/logouthelper +++ b/code/client/logouthelper @@ -28,7 +28,7 @@ import os import time from munkilib import munkicommon from munkilib import FoundationPlist -from munkilib import updatecheck +from munkilib import updatecheck from Foundation import NSDate from Foundation import NSDictionary from Foundation import NSDistributedNotificationCenter @@ -37,7 +37,7 @@ from Foundation import NSNotificationPostToAllSessions NOTIFICATION_MINS = [240, 180, 120, 90, 60, 45, 30, 15, 10, 5] -MINIMUM_NOTIFICATION_MINS = 60 +MANDATORY_NOTIFICATIONS = [60, 30, 10, 5] def log(msg): '''Logs messages from this tool with an identifier''' @@ -50,7 +50,7 @@ def earliestForceInstallDate(): Returns None or earliest force_install_after_date converted to local time ''' earliest_date = None - + ManagedInstallDir = munkicommon.pref('ManagedInstallDir') installinfo_types = { 'InstallInfo.plist' : 'managed_installs', @@ -92,7 +92,7 @@ def alertUserOfForcedLogout(info=None): ''' consoleuser = munkicommon.getconsoleuser() if not munkicommon.findProcesses( - exe="/Applications/Managed Software Center.app", + exe="/Applications/Managed Software Center.app", user=consoleuser): # Managed Software Center.app isn't running. # Use our LaunchAgent to start @@ -107,17 +107,17 @@ def alertUserOfForcedLogout(info=None): # because if we don't, sending the logoutwarn notification # may fall on deaf ears. time.sleep(4) - + # if set, convert Python dictionary to NSDictionary. if info is not None: info = NSDictionary.dictionaryWithDictionary_(info) # cause MSC.app to display the Forced Logout warning dnc = NSDistributedNotificationCenter.defaultCenter() dnc.postNotificationName_object_userInfo_options_( - 'com.googlecode.munki.ManagedSoftwareUpdate.logoutwarn', + 'com.googlecode.munki.ManagedSoftwareUpdate.logoutwarn', None, info, NSNotificationDeliverImmediately + NSNotificationPostToAllSessions) - + # make sure flag is in place to cause munki to install at logout f = open('/private/tmp/com.googlecode.munki.installatlogout', 'w') f.close() @@ -129,8 +129,9 @@ def main(): log('launched') sent_notifications = [] logout_time_override = None + # datetime of now plus largest MANDATORY_NOTIFICATIONS value (with padding). minimum_notifications_logout_time = NSDate.date().addTimeInterval_( - 60 * MINIMUM_NOTIFICATION_MINS + 30) + 60 * max(MANDATORY_NOTIFICATIONS) + 30) while True: if not munkicommon.currentGUIusers(): # no-one is logged in, so bail @@ -153,7 +154,7 @@ def main(): logout_time = next_logout_time else: # allow the new next_logout_time from InstallInfo to be used - # if it has changed to a later time since when we decided to + # if it has changed to a later time since when we decided to # override it. if next_logout_time > logout_time_override: logout_time = next_logout_time @@ -161,22 +162,25 @@ def main(): logout_time_override = None sent_notifications = [] - # always give at least a MINIMUM_NOTIFICATION_MINS warning + # always give at least MANDATORY_NOTIFICATIONS warnings if logout_time < minimum_notifications_logout_time: - if MINIMUM_NOTIFICATION_MINS not in sent_notifications: - # logout time is in the past, and the minimum notification - # has not been sent, so reset the logout_time to the future. - log('%d minute notification not sent.' - % MINIMUM_NOTIFICATION_MINS) - logout_time = minimum_notifications_logout_time - log('reset logout_time to: %s' % logout_time) - logout_time_override = logout_time + for mandatory_notification in MANDATORY_NOTIFICATIONS: + if mandatory_notification not in sent_notifications: + # logout time is in the past, and a mandatory notification + # has not been sent, so reset the logout_time to the future. + log('%d minute notification not sent.' + % mandatory_notification) + logout_time = NSDate.date( + ).addTimeInterval_(60 * mandatory_notification + 30) + log('reset logout_time to: %s' % logout_time) + logout_time_override = logout_time + break minutes_until_logout = int(logout_time.timeIntervalSinceNow() / 60) info = {'logout_time': logout_time} if minutes_until_logout in NOTIFICATION_MINS: sent_notifications.append(minutes_until_logout) - log('Warning user of %s minutes until forced logout' + log('Warning user of %s minutes until forced logout' % minutes_until_logout) alertUserOfForcedLogout(info) elif minutes_until_logout < 1: @@ -192,6 +196,6 @@ def main(): munkicommon.forceLogoutNow() log('exited') exit(0) - + if __name__ == '__main__': main() From 0908595ab16398c0f8b9861589068c18dfff0fb5 Mon Sep 17 00:00:00 2001 From: Greg Neagle Date: Wed, 18 Nov 2015 14:24:08 -0800 Subject: [PATCH 5/9] Better handling of character references when parsing description HTML --- .../Managed Software Center/MunkiItems.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py b/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py index e6a1ead4..07b374ef 100644 --- a/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py +++ b/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py @@ -317,14 +317,16 @@ class MSCHTMLFilter(HTMLParser): def handle_entityref(self, name): self.entity_count += 1 + print "Found an entity: %s" % name if not self.current_ignore_element: # add the entity reference as-is self.filtered_html += u'&%s;' % name def handle_charref(self, name): + self.entity_count += 1 if not self.current_ignore_element: - # just pass on unmodified - self.filtered_html += name + # add the char reference as-is + self.filtered_html += u'&#%s;' % name def filtered_html(text, filter_images=False): From 0c11978c84c1ba40ba5960bfbd0a96cf9b32a619 Mon Sep 17 00:00:00 2001 From: Greg Neagle Date: Wed, 18 Nov 2015 14:26:02 -0800 Subject: [PATCH 6/9] Remove print statement added when debugging --- .../Managed Software Center/MunkiItems.py | 1 - 1 file changed, 1 deletion(-) diff --git a/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py b/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py index 07b374ef..5f89cc42 100644 --- a/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py +++ b/code/apps/Managed Software Center/Managed Software Center/MunkiItems.py @@ -317,7 +317,6 @@ class MSCHTMLFilter(HTMLParser): def handle_entityref(self, name): self.entity_count += 1 - print "Found an entity: %s" % name if not self.current_ignore_element: # add the entity reference as-is self.filtered_html += u'&%s;' % name From cbe21d36ff3268b2445c880ac38e2e1eb182229a Mon Sep 17 00:00:00 2001 From: Greg Neagle Date: Wed, 18 Nov 2015 16:36:06 -0800 Subject: [PATCH 7/9] Change Base SDK for apps to 'Latest OS X' and OS X Deployment Target to 'OS X 10.6' --- .../Managed Software Center.xcodeproj/project.pbxproj | 6 ++++-- code/apps/MunkiStatus/MunkiStatus.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/code/apps/Managed Software Center/Managed Software Center.xcodeproj/project.pbxproj b/code/apps/Managed Software Center/Managed Software Center.xcodeproj/project.pbxproj index 0ca99509..cd68dab4 100644 --- a/code/apps/Managed Software Center/Managed Software Center.xcodeproj/project.pbxproj +++ b/code/apps/Managed Software Center/Managed Software Center.xcodeproj/project.pbxproj @@ -666,6 +666,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.6; ONLY_ACTIVE_ARCH = NO; PRODUCT_NAME = "Managed Software Center"; + SDKROOT = macosx10.10; WRAPPER_EXTENSION = app; }; name = Debug; @@ -689,6 +690,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = "Managed Software Center"; + SDKROOT = macosx10.10; WRAPPER_EXTENSION = app; }; name = Release; @@ -730,7 +732,7 @@ AppKit, ); PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx10.8; + SDKROOT = macosx; SKIP_INSTALL = NO; WRAPPER_EXTENSION = docktileplugin; }; @@ -769,7 +771,7 @@ AppKit, ); PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx10.8; + SDKROOT = macosx; SKIP_INSTALL = NO; WRAPPER_EXTENSION = docktileplugin; }; diff --git a/code/apps/MunkiStatus/MunkiStatus.xcodeproj/project.pbxproj b/code/apps/MunkiStatus/MunkiStatus.xcodeproj/project.pbxproj index ef8b6610..f98c5487 100644 --- a/code/apps/MunkiStatus/MunkiStatus.xcodeproj/project.pbxproj +++ b/code/apps/MunkiStatus/MunkiStatus.xcodeproj/project.pbxproj @@ -464,7 +464,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx10.8; + SDKROOT = macosx; }; name = Debug; }; @@ -486,7 +486,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.8; + SDKROOT = macosx; }; name = Release; }; From 466c1716dfd4d27adcf8ebc3588023bc4202910a Mon Sep 17 00:00:00 2001 From: Greg Neagle Date: Wed, 18 Nov 2015 19:47:43 -0800 Subject: [PATCH 8/9] Better detection in pkg distribution if the launchd pkg needs to be installed. Thanks to Pepijn Bruienne for the assist. --- code/tools/make_munki_mpkg.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/code/tools/make_munki_mpkg.sh b/code/tools/make_munki_mpkg.sh index 4dae7fee..7c83113c 100755 --- a/code/tools/make_munki_mpkg.sh +++ b/code/tools/make_munki_mpkg.sh @@ -469,6 +469,16 @@ cat > "$DISTFILE" <Munki - Managed software installation for OS X + @@ -485,7 +495,7 @@ cat > "$DISTFILE" < - + $CONFCHOICE From 942e6453871ece136ebf47dfbeca76cf1f642bec Mon Sep 17 00:00:00 2001 From: Greg Neagle Date: Wed, 18 Nov 2015 20:00:42 -0800 Subject: [PATCH 9/9] Remove unused JavaScript function from package distribution file. --- code/tools/make_munki_mpkg.sh | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/code/tools/make_munki_mpkg.sh b/code/tools/make_munki_mpkg.sh index 7c83113c..08dc85ce 100755 --- a/code/tools/make_munki_mpkg.sh +++ b/code/tools/make_munki_mpkg.sh @@ -469,16 +469,6 @@ cat > "$DISTFILE" <Munki - Managed software installation for OS X -