Commit Graph

429 Commits

Author SHA1 Message Date
Greg Neagle
d7c52a9434 Fixed string substitution error
git-svn-id: http://munki.googlecode.com/svn/trunk@835 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-21 13:27:12 +00:00
Greg Neagle
131d3873c9 Added some additional logging and info messages, all logoutinstall-type installs (including 'checkandinstallatstartup') now do not check for system idle, but just install.
git-svn-id: http://munki.googlecode.com/svn/trunk@831 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-20 16:57:48 +00:00
Greg Neagle
64144bfe17 Log when we skip an Apple Software Update check
git-svn-id: http://munki.googlecode.com/svn/trunk@830 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-20 16:49:41 +00:00
Greg Neagle
f9d1b2b3bd Fix unhandled exception in munkicommon.prefs() when the prefs file is missing by replacing orphaned "prefsfile" with "MANAGED_INSTALLS_PLIST_PATH"
git-svn-id: http://munki.googlecode.com/svn/trunk@829 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-20 16:41:10 +00:00
Greg Neagle
4029836c08 Fix for empty pkginfo extension.
git-svn-id: http://munki.googlecode.com/svn/trunk@823 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-19 23:09:34 +00:00
Greg Neagle
b52f45cdf0 More print statement cleanup.
git-svn-id: http://munki.googlecode.com/svn/trunk@821 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-19 17:22:55 +00:00
Greg Neagle
b78ba8e03c More cleanup -- replacing print statements with calls to munkicommon.display_* methods.
git-svn-id: http://munki.googlecode.com/svn/trunk@820 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-19 17:15:41 +00:00
Greg Neagle
fbb20c5ac5 Tweaks to what gets printed to stdout and stderr during a run; overall effect is to make managedsoftwareupdate quieter by default.
git-svn-id: http://munki.googlecode.com/svn/trunk@819 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-19 17:03:28 +00:00
Greg Neagle
e2ca3f8c78 If there are GUI users and we have forced_* items, recheck munkiUpdatesAvailable() before trying to notifiy the user so we don't notify if we have nothing left to do.
git-svn-id: http://munki.googlecode.com/svn/trunk@818 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-19 04:00:57 +00:00
Greg Neagle
27a4aafbc8 Don't record the forced_install or foreced_uninstall key if the item requires a restart or logout, or is part of a dependency relationship.
git-svn-id: http://munki.googlecode.com/svn/trunk@817 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-19 03:42:25 +00:00
Greg Neagle
a127ec769d If running with only_forced=True, remove the forced_* items from the managed_installs list and the removals list and rewrite InstallInfo.plist.
git-svn-id: http://munki.googlecode.com/svn/trunk@816 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-19 03:28:54 +00:00
Greg Neagle
ab3900dffa Missed a place to check the new munkicommon.pref('AppleSoftwareUpdatesOnly')...
git-svn-id: http://munki.googlecode.com/svn/trunk@815 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-18 21:40:06 +00:00
Justin McWilliams
07876be714 First iteration of forced installs/uninstalls.
If pkginfo key forced_(un)install is set to <true/>, (un)installs will run immediately after downloading without any notification the user.  If further non-forced installs are remaining MSU.app will appear after all forced-installs are finished.

This needs documentation about how risky it is; should only be used for simple packages that are known to be safely installed while app is running. More features will come in the future making it safer to use on other packages.



git-svn-id: http://munki.googlecode.com/svn/trunk@814 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-18 21:20:11 +00:00
Justin McWilliams
7f44c0c40e - s/unattended/forced/
- separate forced_installs and forced_uninstalls, so they one can be forced while the other is not.
 - move status output enabling to the only place it's necessary; --auto at login window.
 - move forced install run to top of "GUI user exists" conditional instead of two places within.  (Greg, please verify this is okay).



git-svn-id: http://munki.googlecode.com/svn/branches/unattended-installs@813 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-18 19:08:39 +00:00
Justin McWilliams
dc5c2e373d Run forced/unattended updates before checking if the user should be notified; notify them afterwards if any remaining attended installs remain.
1) disable status output (GUI)
2) run unattended installs
3) reenable status output (GUI)
4) notify user or remaining installs (if LastModifiedDate is happy)

Also, change logging a little to make it easier to see difference between regular install run and unattended run.


git-svn-id: http://munki.googlecode.com/svn/branches/unattended-installs@812 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-18 17:59:06 +00:00
Greg Neagle
c27ba9a3d2 When "AppleSoftwareUpdatesOnly" is True, no need to set "InstallAppleSoftwareUpdates"
git-svn-id: http://munki.googlecode.com/svn/trunk@811 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-18 17:31:50 +00:00
Greg Neagle
14b3241f4d Add support for running the munki tools without a munki repo to install Apple Software Updates only.
git-svn-id: http://munki.googlecode.com/svn/trunk@810 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-18 17:26:37 +00:00
Justin McWilliams
fedb392b9b First iteration of forced/unattended/silent installs.
Notes:
 - Needs documentation about how risky this is, and how it should only be used
for simple packages that are known to be safely installed while app is running.
 - If notification is popped up, it will contain the unattended install; if
notification is not due to be popped up the unattended install will be installed
immediately.
  - Only works in --auto mode (which is what launchd execs); I will test more tomorrow with manual runs, as we may be able to do this before --installonly too.



git-svn-id: http://munki.googlecode.com/svn/branches/unattended-installs@809 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-18 00:25:18 +00:00
Greg Neagle
fec07df83e Again trying to remove MunkiStatus
git-svn-id: http://munki.googlecode.com/svn/trunk@804 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-16 00:30:30 +00:00
Greg Neagle
76c8828592 Added option to specify a file extension for pkginfo files.
git-svn-id: http://munki.googlecode.com/svn/trunk@803 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-16 00:25:21 +00:00
Justin McWilliams
543fa4397a makepkginfo: added notes in --help about --description and --display_name overriding any such values in the package itself.
git-svn-id: http://munki.googlecode.com/svn/trunk@798 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-15 18:30:53 +00:00
Justin McWilliams
427c6c826c makepkginfo:
add --description and --displayname args to set description and display_name pkginfo plist keys.



git-svn-id: http://munki.googlecode.com/svn/trunk@795 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-14 19:40:43 +00:00
Greg Neagle
2330ddfc70 changed getLSInstalledApplications() to ignore paths beginning with '/Volumes/' instead of those beginning with '/Volumes'.
git-svn-id: http://munki.googlecode.com/svn/trunk@788 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-13 17:57:54 +00:00
Greg Neagle
efdd7628bd Changed munkicommon.getAppData() to use LaunchServices instead of Apple System Profiler. LaunchServices is faster and returns more apps than System Profiler, especially on Leopard systems. Thanks to John Randolph.
git-svn-id: http://munki.googlecode.com/svn/trunk@787 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-13 17:32:53 +00:00
Greg Neagle
f0ff5f264c Initial commit to SVN.
git-svn-id: http://munki.googlecode.com/svn/trunk@786 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-12 18:25:52 +00:00
Greg Neagle
a326c38ec9 Better handling of plist exceptions when given valid plists in non-XML format (ascii, binary).
makecatalogs now should be able to run on non-OS X platforms as long as there is a plistlib module available. (Untested)

git-svn-id: http://munki.googlecode.com/svn/trunk@785 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-08 18:00:00 +00:00
Greg Neagle
68aa8cee64 Fix for getAppData() -- when moved to munkicommon, forgot to change munkicommon.display_debug1() to display_debug1()...
git-svn-id: http://munki.googlecode.com/svn/trunk@784 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-08 17:58:07 +00:00
Justin McWilliams
af1df39f68 curl() fixes.
1) fix OSError because nonexistent file is attempted to be read if HTTP status=200 but response yields no download; this happens if local Cache package is *newer* than package on the server (curl receives 200 but doesn't download); instead raise HTTPError.

   2) In the event of a curl() download error, delete any existing cache files
related to the failed download (destination or tmp names). This is basically
just resetting state after any download failures that aren't resume related,
one of those failures being the temp download file doesn't exist.

   This fixes a problem where if the destination exists and the date (header:
If-Modified-Since) is newer than on the server (header: Last-Modified), the curl
binary does not ever download the older file.  In this case Munki never has a
.download temp file, so it can't overwrite the original/newer file. A susequent
Munki execution will download the older server file.



git-svn-id: http://munki.googlecode.com/svn/trunk@783 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-07 21:29:24 +00:00
Greg Neagle
4d9af60e5a updateAcrobatPro: when looking for the apps to update, first look in /Applications/Adobe Acrobat 9 Pro/ before asking system_profiler to search.
git-svn-id: http://munki.googlecode.com/svn/trunk@782 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-07 18:34:44 +00:00
Greg Neagle
1dab884671 Replace separate instances of getAppData() in adobeutils.py and updatecheck.py with a single implementation in munkicommon.
git-svn-id: http://munki.googlecode.com/svn/trunk@781 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-07 18:07:50 +00:00
Greg Neagle
29d4c264b1 Added some additional status and debug messages for package integrity testing and managed_updates.
git-svn-id: http://munki.googlecode.com/svn/trunk@780 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-07 17:16:21 +00:00
Greg Neagle
6aaddbfe7f Attempt to be a little smarter about which payloads we add to the installs list for Adobe CS5 updaters when generating pkginfo. Now we look for a payload whose name matches that of the overall update and add only that payload if it exists, falling back to the previous behavior if it does not.
git-svn-id: http://munki.googlecode.com/svn/trunk@779 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-06 18:19:32 +00:00
Justin McWilliams
4a86af1770 Moving secure plist (r773) to Apple provided location: /private/var/root/Library/Preferences/
git-svn-id: http://munki.googlecode.com/svn/trunk@776 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-05 14:42:05 +00:00
Justin McWilliams
ad3b1275a2 Merging r772 into trunk; add Secure Config for sensitive preferences/configs.
git-svn-id: http://munki.googlecode.com/svn/trunk@773 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-04 21:27:18 +00:00
Greg Neagle
4271cc5cc0 Fixed group and mode options for copy_from_dmg install type. Previously these were (mistakenly) ignores if --user was not specified, and if --user was specified, group and mode were attempted to be written to the plist even if they weren't defined, leading to a broken plist.
git-svn-id: http://munki.googlecode.com/svn/trunk@771 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-10-04 20:09:51 +00:00
Greg Neagle
e2698bb44f Move verifySoftwarePackageIntegrity check inside of download_installeritem().
getHTTPfileIfChangedAtomically now returns a boolean indicating if the item was downloaded (True) or just returned from the local cache (False). This way, we only do the expensive SHA-256 checksum comparison on the initial download.

getHTTPfileIfChangedAtomically now raises exceptions if it runs into trouble, as does download_installeritem().

git-svn-id: http://munki.googlecode.com/svn/trunk@764 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-27 22:53:52 +00:00
Greg Neagle
795ddeb481 Another commit to get the build number in sync with the SVN revision number. Gah.
git-svn-id: http://munki.googlecode.com/svn/trunk@759 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-21 23:31:29 +00:00
Greg Neagle
f07e01655b Fix for incorrectly initialized KVO arrays in Managed Software Update.app; bumped MSU.app to version 3.0.6; bumped munkitools version to 0.6.0.757.0.
git-svn-id: http://munki.googlecode.com/svn/trunk@758 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-21 23:30:06 +00:00
Greg Neagle
257dfffd2c Bump build number in get_version() to 755.
git-svn-id: http://munki.googlecode.com/svn/trunk@755 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-14 23:57:10 +00:00
Justin McWilliams
41ccc6c3ef Reload preferences from ManagedInstalls.plist after preflight execution in case preflight changed any preferences.
git-svn-id: http://munki.googlecode.com/svn/trunk@754 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-13 23:05:56 +00:00
Justin McWilliams
fc3ff13fb6 Moving 'AdditionalHttpHeaders' ManagedInstalls.plist string to munkicommon const for cleaner reuse in preflight/postflight.
git-svn-id: http://munki.googlecode.com/svn/trunk@753 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-13 22:47:02 +00:00
Greg Neagle
9cd9708514 pylint cleanup: mark unused variable.
git-svn-id: http://munki.googlecode.com/svn/trunk@752 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-13 17:38:34 +00:00
Greg Neagle
f88b74c116 pylint cleanup: mark unused variables, add docstring and fix indentation in removeItemFromSelfServeUninstallList()
git-svn-id: http://munki.googlecode.com/svn/trunk@751 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-13 17:37:49 +00:00
Greg Neagle
b0619cf035 pylint cleanup: mark unused variables
git-svn-id: http://munki.googlecode.com/svn/trunk@750 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-13 17:35:32 +00:00
Greg Neagle
eceedc0e86 pylint cleanups: mark unused variables.
git-svn-id: http://munki.googlecode.com/svn/trunk@749 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-13 17:34:47 +00:00
Greg Neagle
231e309ae4 filesystemItemExists() now returns 0 if the item doesn't exist, 1 if it exists and the checksum matches (or there is no checksum provided), or -1 if the item exists but the checksum does not match. This should make someVersionInstalled() work better with pkginfo that relies on files in the installs key.
processManifestForOptionalInstalls(), processManifestForManagedUpdates(), processManifestForInstalls(), and processManifestForRemovals(), which ll shared a very similar structure, have been refactored and replaced with processManifestForKey().

Various pylint cleanups: marking unused variables, global variable names are now all CAPS, added some docstrings, 

Removed all remaining references to aliases. (support for aliases was removed a long time ago, but some references still remained in the code)

Removed support for "modifies" dependency type, which was deprecated months ago.

git-svn-id: http://munki.googlecode.com/svn/trunk@748 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-13 17:03:39 +00:00
Greg Neagle
4491ae9b03 Initial support for managed_updates in manifests. Items listed in managed_updates will have updates downloaded and applied if any prior version is installed (subject to munki using pkginfo information to determine if an item is installed).
git-svn-id: http://munki.googlecode.com/svn/trunk@747 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-10 19:23:13 +00:00
Justin McWilliams
51cb83d350 managedsoftwareupdate: Use single quotes for all non-doctstring and non-heredoc strings.
git-svn-id: http://munki.googlecode.com/svn/trunk@746 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-10 03:44:55 +00:00
Justin McWilliams
b36b32672b munkicommon.py & updatecheck.py: Use single quotes for all non-doctstring strings.
git-svn-id: http://munki.googlecode.com/svn/trunk@745 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-10 03:29:47 +00:00
Justin McWilliams
184d5368c2 Clean some lint on updatecheck: reorder imports, replace single-quote docstrings with double, etc
git-svn-id: http://munki.googlecode.com/svn/trunk@744 a4e17f2e-e282-11dd-95e1-755cbddbdd66
2010-09-10 02:01:15 +00:00