Reordered operations so receipts will be removed even if no filesystem items are removed (like in payload-free packages).
Suppress warning when encountering bogus BSD.pkg
git-svn-id: http://munki.googlecode.com/svn/trunk@132 a4e17f2e-e282-11dd-95e1-755cbddbdd66
-Tweaked output - some stuff was getting printed at too low a verbosity level, and percentage-done output wasn't happening at normal verbosity.
-When removing files, changed from using subprocess to call `rm` to using os.remove. This is much faster. I hope it handles resource forks OK...
git-svn-id: http://munki.googlecode.com/svn/trunk@130 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Fixed info on items that can't be installed because there is insufficient disk space. These were being incorrectly reported as ready to install.
git-svn-id: http://munki.googlecode.com/svn/trunk@128 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Added --logoutinstall and --manualcheck options for specific run modes.
When running in --logoutinstall mode, it now checks for the existence of a flag to make sure the user triggered the update.
--manualcheck now allows the GUI Managed Software Update.app to trigger an update check if the user manually launches Managed Software Update.app and there are no pre-staged updates.
git-svn-id: http://munki.googlecode.com/svn/trunk@123 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Since the HTTP stuff was used only by updatecheck.py, moved it from munkicommon.py into updatecheck.py.
The above changes made this easier: Added munkistatusoutput support to updatecheck.py
git-svn-id: http://munki.googlecode.com/svn/trunk@122 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Combined installcheck and managedinstaller into managedsoftwareupdate to avoid race conditions between the two tools.
Removed support for Apple Software Updates (because it didn't work correctly!)
git-svn-id: http://munki.googlecode.com/svn/trunk@112 a4e17f2e-e282-11dd-95e1-755cbddbdd66
- changes to pythonScriptRunning() to allow the tools to detect if another instance of themselves is running
- updated getBundlePackageInfo() to handle pre-dist style .mpkgs
removepackages.py:
- changes to handle multiple receipts with the same packageid
installcheck:
- removed random sleep option - this will move to another tool so we don't have installcheck itself sleeping; this prevented the other tools from running if you happened to, say, call managedinstaller while installcheck was sleeping.
- installcheck checks to see if another instance of itself is running and exits if so
- suppress errors when getting the primary manifest and trying long hostname, then short hostname, then "site_default".
makecatalogs:
- don't try to process ._ files or .DS_Store files.
makepkginfo:
- try to generate a better installer_item_location if the path has "/pkgs" in it
git-svn-id: http://munki.googlecode.com/svn/trunk@110 a4e17f2e-e282-11dd-95e1-755cbddbdd66
- Better warning message when a item scheduled to be removed is also in the explict or implict install list.
- When attempting to retrieve the primary manifest, if no client identifier is specified, it now tries the following, in this order:
fully-qualified hostname
"short" hostname (this is new)
"site_default" (this is new)
git-svn-id: http://munki.googlecode.com/svn/trunk@109 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Fixed display of alert panel when there are no scheduled updates.
Fixed error when deselecting all items in list of scheduled updates.
git-svn-id: http://munki.googlecode.com/svn/trunk@108 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Workaround for broken ScriptingBridge to SystemConfiguration in an unreleased OS version.
removepackages.py:
for an unreleased OS version, no longer manipulate the Apple receipts DB using sqlite3, but instead just use pkgutil (and other related changes)
munkistatus.py:
munkistatus.message() now clears the detail field.
managedinstaller:
removed explicit clearing of munkistatus detail
makecatalogs:
more progress and error reporting when building catalogs
makepkginfo:
add default catalogs, uninstallable, and uninstall_method info to dictionary
git-svn-id: http://munki.googlecode.com/svn/trunk@104 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Added Solid Aqua Blue.png as a resource for use as a DesktopPicture of last resort.
git-svn-id: http://munki.googlecode.com/svn/trunk@103 a4e17f2e-e282-11dd-95e1-755cbddbdd66
removepackages.py: better output capture when calling `lsbom`
installcheck: better output capture when calling `softwareupdate`
Now creates catalogs dir in ManagedInstallDir if it's missing
managedinstaller: better output capture when calling `installer`
git-svn-id: http://munki.googlecode.com/svn/trunk@99 a4e17f2e-e282-11dd-95e1-755cbddbdd66
- changed scaling behavior of backdrop window to better handle displays with different aspect ratios
- main status window now auto-centers on app launch.
git-svn-id: http://munki.googlecode.com/svn/trunk@98 a4e17f2e-e282-11dd-95e1-755cbddbdd66
munkilib now uses Foundation/NSDictionary methods to read /Library/Preferences/ManagedInstalls.plist in case the plist gets converted to binary (for example, if it was modified using the defaults command).
Added support for Software Update downloads that aren't .pkgs, or .mpkgs, but rather directories containing ".dist" files.
installcheck now uses the values of LastNotifiedDate and DaysBetweenNotifications in ManagedInstalls.plist to throttle Managed Software Update.app notifications. The default behavior is to notify no more than once a day.
git-svn-id: http://munki.googlecode.com/svn/trunk@93 a4e17f2e-e282-11dd-95e1-755cbddbdd66
When choosing "Install without logging out", a file is touched in the managed install directory (typically /LibraryManaged Installs/) so that a launchd LaunchDaemon can be triggered.
git-svn-id: http://munki.googlecode.com/svn/trunk@88 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Moved some functions from makepkginfo to munkilib so installcheck could use them.
Added checking to installcheck, managedinstaller, and removepackages.py so they warn and exit if run by a non-root user.
Added checks to installcheck and mamangedinstaller so that they exit if the other is running.
git-svn-id: http://munki.googlecode.com/svn/trunk@87 a4e17f2e-e282-11dd-95e1-755cbddbdd66
(an earlier attempt to rename ManagedInstaller directly to managedinstaller caused the local file to be deleted and the commit to fail, so I did the rename in two steps/two commits)
git-svn-id: http://munki.googlecode.com/svn/trunk@75 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Removed cfconsoleuser.py. Its function was added to munkilib.py.
Renamed ManagedInstaller to managedinstaller.py. Next commit it will be renamed to managedinstaller.
Renamed removepackages to removepackages.py
Refactored removepackages.py so it can be called as a Python module as well as a command-line tool.
managedinstaller.py now calls removepackages.py as a module instead of as a subprocess.
Cleaned up globals in installcheck, managedinstaller, and removepackages.
Removed bad copyright info from makcatalogs.
git-svn-id: http://munki.googlecode.com/svn/trunk@74 a4e17f2e-e282-11dd-95e1-755cbddbdd66
New icon. New copyright notice. New bundle ID (com.googlecode.munki.managedsoftareupdate). Now recommends a logout before install even if a restart is not required.
git-svn-id: http://munki.googlecode.com/svn/trunk@73 a4e17f2e-e282-11dd-95e1-755cbddbdd66
New icon. New copyright notice. New bundle ID (com.googlecode.munki.munkistatus)
git-svn-id: http://munki.googlecode.com/svn/trunk@72 a4e17f2e-e282-11dd-95e1-755cbddbdd66
installcheck: beginning of error reporting code. Currently just prints to stdout.
git-svn-id: http://munki.googlecode.com/svn/trunk@69 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Replaced catalogitems examples with pkginfo examples.
Updated getmanifest.py to refer to manifests directory instead of catalogs.
git-svn-id: http://munki.googlecode.com/svn/trunk@62 a4e17f2e-e282-11dd-95e1-755cbddbdd66
installcheck replaces catalogcheck.py. installcheck supports the new catalog format and the new dependencies. Cleaned up output and logging.
ManagedInstaller and removepackages tweaked for better logging and MunkiStatus output.
Removed the logout hook examples (for now)
makecatalogitem is now makepkginfo
New makecatalogs tool.
git-svn-id: http://munki.googlecode.com/svn/trunk@50 a4e17f2e-e282-11dd-95e1-755cbddbdd66
This is a new tool for user notification of available Managed software updates.
git-svn-id: http://munki.googlecode.com/svn/trunk@46 a4e17f2e-e282-11dd-95e1-755cbddbdd66
Added munkistatus.py to communicate with MunkiStstus.app
Modified ManagedInstaller and removepackages to use MunkStatus.app for user feedback instead of iHook.
Removed iHook example files (100.mangagedinstalllogout.hook anbd MI_logout.hook) since we no longer use iHook for user feedback.
git-svn-id: http://munki.googlecode.com/svn/trunk@44 a4e17f2e-e282-11dd-95e1-755cbddbdd66