Commit Graph

894 Commits

Author SHA1 Message Date
Greg Neagle
bd79a26a84 If a package failure occurs when downloading or installing Apple updates, make _RunSoftwareUpdate return 1 even though /usr/sbin/softwareupdate returns 0 2012-09-13 13:21:43 +02:00
Adam Reed
5c51cefb8f Automate the setting of minimum_os_version to the highest detected OS version dependent upon what we automatically detect from the installer items and / or file item(s) in the following situations:-
* makepkginfo with installer item - set minimum_os_version as detected
* makepkginfo with installer item and file item(s) - set minimum_os_version as detected
* makepkginfo with file item(s) only - do not provide minimum_os_version, regardless of what we detect
* makepkginfo with --minimum_os_version and any of the above options - set minimum_os_version to argument of --minimum_os_version, regardless of what we detect

This patch also sets flat packages to default to 10.5.0 (instead of 10.4.0 which is used for all other items) and requires that if --minimum_os_version is provided that it starts with a digit.
2012-09-05 12:33:35 +10:00
Greg Neagle
c78b4a2c4c Capture stderr from xar so it doesn't appear in makepkginfo output 2012-08-23 11:18:53 -07:00
Heig Gregorian
a5b265f551 Fixed warning printout formatting 2012-08-22 15:14:35 -07:00
Heig Gregorian
b3705ea7b5 Fixes to force unmount call; __CFPREFERENCES_AVOID_DAEMON environment variable set to '1' upon makepkginfo invocation 2012-08-22 14:40:18 -07:00
Heig Gregorian
93fa3f837c Minor doc and formatting update to previous commit; no functional difference 2012-08-22 14:07:59 -07:00
Heig Gregorian
ca3786fe8a Fix for cfprefsd interference; ensure that stdout stream only contains pkginfo xml and not messages intended for the user. 2012-08-22 13:49:57 -07:00
Greg Neagle
f1d8df900e Add signal handler for SIGTERM so objects can get cleaned up if managedsoftware update gets killed. This should cause launchd processes we've started (like for /usr/sbin/installer and /usr/sbin/softwareupdate) to be stopped as well. 2012-08-16 13:47:30 -07:00
Greg Neagle
703c8a7ff0 Use IOKit bindings to assert no idle sleep. Thanks to Michael Lynn, pudquick@github 2012-08-16 12:09:10 -07:00
Greg Neagle
79b5d478d0 Fix spelling of 'Retrieving' 2012-08-15 19:36:10 -07:00
Greg Neagle
8ef3c3ec79 Add doc string to installer.assertNoIdleSleep(); fix use of undefined 'cmd' variable. 2012-08-15 15:41:22 -07:00
Greg Neagle
80cec70612 Add some comments to make clear how the sleep assertion is released. 2012-08-15 15:27:07 -07:00
Greg Neagle
1a9ba0c027 installer.run() now attempts to prevent idle sleep during an install session. 2012-08-15 14:35:47 -07:00
Timothy Sutton
d1be50ea42 Added exception handling for case where we invoke os.makedirs() on missing destination_path 2012-08-10 14:04:25 -04:00
Timothy Sutton
fad5ea741a Create missing destination directories for copy_from_dmg.
In case a copy_from_dmg's destination directory doesn't exist,
create it and any missing parent directories, setting ownership and permissions based on the first available parent.
2012-07-22 00:05:33 -04:00
Timothy Sutton
6e6b050a37 fix for munkiimport only checking dmgs and apps - should check hasValidInstallerItemExt() 2012-07-11 15:25:25 -04:00
Timothy Sutton
93ca31bd3b Further refactoring for hasValid extension check functions
- hasValidPackageExt(), hasValidDiskImageExt() for the appropriate
  extensions, and hasValidInstallerItemExt() to call them
- replace many checks to use the above
- munkiimport.py now uses munkicommon.isApplication() to do the
  equivalent of checking endswith('.app')
- fix an errand merge ancestor from an old unrelated munkiimport
  branch
2012-07-11 13:56:23 -04:00
Greg Neagle
167a5ef810 Don't ignore an unattended_install whose RestartAction is explictly 'None'. 2012-07-07 11:52:03 -07:00
Heig Gregorian
66a4b763c0 Minor changes to wording of "destination item (name)" option to indicate that it is a name and not a full path.
This option is now stored as 'options.destitemname'
2012-07-06 10:17:43 -07:00
Heig Gregorian
eb75e13be9 Typo fixed for setting 'blocking_applications' array
Option is called '--block_application', however, it should be written
as 'blocking_applications' to the pkginfo dict.
2012-07-06 08:53:48 -07:00
Heig Gregorian
af723cb710 Updates to help docs provided by "drag-n-drop" options such that they don't explicitly refer to what's been set by '--item', but rather the item that's been copied.
Option help takes on a more generic tone to reflect the possibility
that '--destinationitem' has been specified.
2012-07-03 16:10:39 -07:00
Heig Gregorian
147acdd92a Inline documentation added to provide a bit of clarity 2012-07-03 08:53:46 -07:00
Heig Gregorian
2e05588206 Improved help output for '--destinationitem' option.
Explicitly states that the "installs" item's path is modified such that
it includes the alternate name as opposed to the disk image item's
original name.
2012-07-03 08:45:53 -07:00
Heig Gregorian
647cb861f4 Support for providing 'destination_item' name when processing a "drag n drop" installation. 2012-07-02 12:54:21 -07:00
Greg Neagle
0ab2b9c6a3 Merge https://code.google.com/r/arjenvanbochoven-munki 2012-07-02 11:44:33 -07:00
Arjen van Bochoven
5daf8ce9d4 Fixed wrong condition in makecatalogs 2012-07-02 20:36:10 +02:00
Greg Neagle
f723da036e Pylint cleanups 2012-07-02 11:05:46 -07:00
Greg Neagle
1c914a9ead Pylint cleanups 2012-07-02 10:55:05 -07:00
Greg Neagle
084a8d76aa Pylint cleanups 2012-07-02 10:45:08 -07:00
Greg Neagle
0a928661b8 PyLint cleanups 2012-07-02 10:42:59 -07:00
Greg Neagle
422a9fe28a Merge https://code.google.com/r/arjenvanbochoven-munki 2012-07-02 09:40:04 -07:00
Greg Neagle
5faf201872 Merge branch 'installer-copy_as' of https://code.google.com/r/theheig-conditionals 2012-07-02 09:19:50 -07:00
Greg Neagle
09b99891bd Merge branch 'makepkginfo' of https://code.google.com/r/theheig-conditionals 2012-07-02 09:12:00 -07:00
Arjen van Bochoven
0b495c7a14 Changed package_less install flag to installer_type=nopkg 2012-07-02 11:57:38 +02:00
Arjen van Bochoven
6f7ddf7b59 Added ! to installer_item to make it less likely someone uses this as filename 2012-07-01 08:19:26 +02:00
Arjen van Bochoven
01ddeb765d Added packageless_install 2012-06-30 22:52:22 +02:00
Heig Gregorian
6f7699b002 Simplified by determining 'full_destpath' which changes depending on if 'destination_item' has been supplied
Addition of 'full_destpath' cuts down on redundant checks against
'dest_itemname' at various stages in the process.
2012-06-30 10:44:49 -07:00
Greg Neagle
27ca3a2768 Pay attention to return value from self.CheckForSoftwareUpdates 2012-06-29 21:51:04 -07:00
Justin McWilliams
a788ac2e06 If a corrupt Apple Software Update dist file fails to parse when detecting blocking applications, simply assume there are no blocking applications instead of crashing. 2012-06-29 15:40:15 -04:00
Heig Gregorian
ebbeaf7c4c Added support for "(un)installcheck_script" inclusion into a pkginfo file.
Syntax is the same as any previous script embed.
2012-06-29 11:30:06 -07:00
Heig Gregorian
e1504af2b0 Merge branch 'master' into installer-copy_as 2012-06-29 11:04:07 -07:00
Greg Neagle
7d3d7d1ac8 Add support for uninstallcheck_script; fix some bad variable names 2012-06-29 08:39:23 -07:00
Greg Neagle
2ac7f26720 Add support for 'installcheck_script' in pkginfo 2012-06-28 11:08:22 -07:00
Greg Neagle
391fda8c23 Receipts marked with optional=true are treated as if they are installed when checking for installed state. 2012-06-28 09:55:50 -07:00
Greg Neagle
b4eb55cd84 makepkginfo now warns when provided a read/write disk image, and does not generate an installer_item_hash. 2012-06-27 16:06:09 -07:00
Greg Neagle
fa5052e247 Merge branch 'master' of https://code.google.com/p/munki 2012-06-25 15:00:59 -07:00
Greg Neagle
cc0ac78964 When matching blocking_applications against running processes, do not match executables inside a bundle, but not in Contents/MacOS. 2012-06-25 15:00:48 -07:00
Heig Gregorian
58dbc9fb95 Added check for 'destination_item' when processing 'remove_copied_items' so that the correct item is removed. 2012-06-22 09:47:20 -07:00
Justin McWilliams
12b3957a53 New Preferences class with ManagedInstallsPreferences and SecureManagedInstallsPreferences subclasses, making it easier for admins to manage preferences from preflight/postflight scripts. This is especially helpful now that reading from and manipulating plists on disk is no longer reliable starting with 10.8. This class functions well on 10.6+, though (possibly even 10.5).
Example:

from munkilib import munkicommon

regular_prefs = munkicommon.ManagedInstallsPreferences()
repo_url = regular_prefs.get('SoftwareRepoURL', '')
... make use of repo_url how you wish ...

secure_prefs = munkicommon.SecureManagedInstallsPreferences()
secure_prefs['AdditionalHttpHeaders'] = [list, of, headers]
2012-06-22 12:25:49 -04:00
Heig Gregorian
7289bfefa2 Doc inconsistancy fixed. 2012-06-21 07:55:12 -07:00