Releases: macadmins/installapplications
InstallApplications 2.0.3
Important Notes
Due to various bugs in building Universal Python3 relocatable frameworks, it is recommended to use the provided Python.framework file rather than build one.
This version is identical to 2.0.3a1 except for two minor fixes, noted below.
New features:
- Adds support for M1 macs - #81
Changes:
- Update to Python 3.9.1 and PyObjC 7.0.1 for Big Sur/M1 compatibility
Resolves
InstallApplications 2.0.3 Alpha 1
New features:
- Adds support for M1 macs - #81
Changes:
- Update to Python 3.9.1 and PyObjC 7.0.1 for Big Sur/M1 compatibility
InstallApplications 2.0.2
This release is identical to RC2.
New features:
- Introduces
--follow-redirects
argument option. If this flag is passed, InstallApplications will follow redirects from the web server to the remote URL. stdout
andstderr
now properly log to disk to help an administrator debug user and root scripts.
Changes:
- Update to Python 3.8.3 and PyObjC 6.2.2 for Big Sur compatibility
- Update
preinstall
andpostinstall
to handle potential path changes in Big Sur Beta 3 - Remove a user script if it fails to allow InstallApplications to move on
- Removes DEPNotify built in support due to Big Sur issues
- Now version 2.0.2
Fixes:
InstallApplications 2.0.2 RC2
Changes since RC1:
- Removes DEPNotify built in support due to Big Sur issues
New features:
- Introduces
--follow-redirects
argument option. If this flag is passed, InstallApplications will follow redirects from the web server to the remote URL. stdout
andstderr
now properly log to disk to help an administrator debug user and root scripts.
Changes:
- Update to Python 3.8.3 and PyObjC 6.2.2 for Big Sur compatibility
- Update
preinstall
andpostinstall
to handle potential path changes in Big Sur Beta 3 - Remove a user script if it fails to allow InstallApplications to move on
- Now version 2.0.2
Fixes:
InstallApplications 2.0.2 RC1
New features:
- Introduces
--follow-redirects
argument option. If this flag is passed, InstallApplications will follow redirects from the web server to the remote URL. stdout
andstderr
now properly log to disk to help an administrator debug user and root scripts.
Changes:
- Update to Python 3.8.3 and PyObjC 6.2.2 for Big Sur compatibility
- Update
preinstall
andpostinstall
to handle potential path changes in Big Sur Beta 3 - Remove a user script if it fails to allow InstallApplications to move on
- Now version 2.0.2
Fixes:
InstallApplications 2.0
Changes since RC4:
Changes:
- Refactored to use embedded python 3.8 via Relocatable Python - #55
generatejson.py
now usesenv
to figure out which python3 to run- Update gurl to use Munki 4.0, python 3.7 version
- InstallApplications has moved from
/Library/Application Support/installapplications
to/Library/installapplications
- Logging is now in
/var/log/installapplications
for both the user and root log files. Previously user logs were kept in/tmp/installapplications
and lost after a reboot and root logs were in/var/log/installapplications.log
Fixes:
- General fixes through
flake8
- #56
Notes
2to3
installapplications.py
and postinstall
have been ran through 2to3 to automatically convert for Python3 compatibility.
Building embedded python framework
To reduce the size of the git repository, you must create your own Python. To do this, simply run the ./build_python_framework.sh
script within the repository.
This process was tested on Catalina only.
./build_python_framework.sh
Cloning relocatable-python tool from github...
Cloning into '/tmp/relocatable-python-git'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 70 (delta 7), reused 16 (delta 6), pack-reused 50
Unpacking objects: 100% (70/70), done.
Downloading https://www.python.org/ftp/python/3.8.0/python-3.8.0-macosx10.9.pkg...
...
Done!
Customized, relocatable framework is at ./Python.framework
Moving Python.framework to InstallApplications payload folder
Package size increases
Unfortunately due to the embedded python, InstallApplications has significantly grown in size, from approximately 35Kb to 27.5 MB. The low size of InstallApplications has traditionally been one of it's greatest strengths, given how fragile mdmclient
can be, but there is nothing that can be done here.
Pinning python user/root scripts to embedded Python
Python user/root scripts should be pinned to the embedded Python framework. Moving forward, scripts not pinned will be unsupported.
It is recommended that you run 2to3
against your scripts to make them python3 compliant.
/usr/local/bin/2to3 -w /path/to/script
Then simply update the shebang on your python scripts to pin against the InstallApplications python framework.
#!/Library/installapplications/Python.framework/Versions/3.8/bin/python3
You can find an example on how this was done by looking at InstallApplications' own postinstall
InstallApplications 2.0 RC4
Changes since RC3:
- Fix DEPNotify launcher code to use Python 3.8
- Fix race condition on reboot logic, by sending a delayed reboot command into another parent process, then cleaning up the python framework, installapplications folder, launch agents and launch daemons
- Fix stuck launch daemon in
postinstall
logic to allow multiple InstallApplications runs without requiring a reboot
Changes:
- Refactored to use embedded python 3.8 via Relocatable Python - #55
generatejson.py
now usesenv
to figure out which python3 to run- Update gurl to use Munki 4.0, python 3.7 version
- InstallApplications has moved from
/Library/Application Support/installapplications
to/Library/installapplications
- Logging is now in
/var/log/installapplications
for both the user and root log files. Previously user logs were kept in/tmp/installapplications
and lost after a reboot and root logs were in/var/log/installapplications.log
Fixes:
- General fixes through
flake8
- #56
Warnings:
The built in DEPNotify logic continues to work in version 2.0, but may be removed prior to the official release of InstallApplications 2.0
Notes
2to3
installapplications.py
and postinstall
have been ran through 2to3 to automatically convert for Python3 compatibility.
Building embedded python framework
To reduce the size of the git repository, you must create your own Python. To do this, simply run the ./build_python_framework.sh
script within the repository.
This process was tested on Catalina only.
./build_python_framework.sh
Cloning relocatable-python tool from github...
Cloning into '/tmp/relocatable-python-git'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 70 (delta 7), reused 16 (delta 6), pack-reused 50
Unpacking objects: 100% (70/70), done.
Downloading https://www.python.org/ftp/python/3.8.0/python-3.8.0-macosx10.9.pkg...
...
Done!
Customized, relocatable framework is at ./Python.framework
Moving Python.framework to InstallApplications payload folder
Package size increases
Unfortunately due to the embedded python, InstallApplications has significantly grown in size, from approximately 35Kb to 27.5 MB. The low size of InstallApplications has traditionally been one of it's greatest strengths, given how fragile mdmclient
can be, but there is nothing that can be done here.
Pinning python user/root scripts to embedded Python
Python user/root scripts should be pinned to the embedded Python framework. Moving forward, scripts not pinned will be unsupported.
It is recommended that you run 2to3
against your scripts to make them python3 compliant.
/usr/local/bin/2to3 -w /path/to/script
Then simply update the shebang on your python scripts to pin against the InstallApplications python framework.
#!/Library/installapplications/Python.framework/Versions/3.8/bin/python3
You can find an example on how this was done by looking at InstallApplications' own postinstall
InstallApplications 2.0 RC3
Changes since RC2:
- Move to Python 3.8 to stay consistent with other tools maintained by author
- Rewrite of the
postinstall
to zsh to reduce chances of race conditions and remove dependency from python - Rewrite of the
build_python_framework
tool to ensure shebangs are correct with embedded python modules - Fix cleanup logic #57
Changes:
- Refactored to use embedded python 3.8 via Relocatable Python - #55
generatejson.py
now usesenv
to figure out which python3 to run- Update gurl to use Munki 4.0, python 3.7 version
- InstallApplications has moved from
/Library/Application Support/installapplications
to/Library/installapplications
- Logging is now in
/var/log/installapplications
for both the user and root log files. Previously user logs were kept in/tmp/installapplications
and lost after a reboot and root logs were in/var/log/installapplications.log
Fixes:
- General fixes through
flake8
- #56
Warnings:
The built in DEPNotify logic continues to work in version 2.0, but may be removed prior to the official release of InstallApplications 2.0
Notes
2to3
installapplications.py
and postinstall
have been ran through 2to3 to automatically convert for Python3 compatibility.
Building embedded python framework
To reduce the size of the git repository, you must create your own Python. To do this, simply run the ./build_python_framework.sh
script within the repository.
This process was tested on Catalina only.
./build_python_framework.sh
Cloning relocatable-python tool from github...
Cloning into '/tmp/relocatable-python-git'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 70 (delta 7), reused 16 (delta 6), pack-reused 50
Unpacking objects: 100% (70/70), done.
Downloading https://www.python.org/ftp/python/3.8.0/python-3.8.0-macosx10.9.pkg...
...
Done!
Customized, relocatable framework is at ./Python.framework
Moving Python.framework to InstallApplications payload folder
Package size increases
Unfortunately due to the embedded python, InstallApplications has significantly grown in size, from approximately 35Kb to 27.5 MB. The low size of InstallApplications has traditionally been one of it's greatest strengths, given how fragile mdmclient
can be, but there is nothing that can be done here.
Pinning python user/root scripts to embedded Python
Python user/root scripts should be pinned to the embedded Python framework. Moving forward, scripts not pinned will be unsupported.
It is recommended that you run 2to3
against your scripts to make them python3 compliant.
/usr/local/bin/2to3 -w /path/to/script
Then simply update the shebang on your python scripts to pin against the InstallApplications python framework.
#!/Library/installapplications/Python.framework/Versions/3.8/bin/python3
You can find an example on how this was done by looking at InstallApplications' own postinstall
InstallApplications 2.0 RC2
Changes since RC1:
- Fixes typo in newpreinstall script
Changes:
- Refactored to use embedded python 3.7 via Relocatable Python - #55
generatejson.py
now usesenv
to figure out which python3 to run- Update gurl to use Munki 4.0, python 3.7 version
- InstallApplications has moved from
/Library/Application Support/installapplications
to/Library/installapplications
- Logging is now in
/var/log/installapplications
for both the user and root log files. Previously user logs were kept in/tmp/installapplications
and lost after a reboot and root logs were in/var/log/installapplications.log
Fixes:
- General fixes through
flake8
- #56
Warnings:
The built in DEPNotify logic continues to work in version 2.0, but may be removed prior to the official release of InstallApplications 2.0
Notes
2to3
installapplications.py
and postinstall
have been ran through 2to3 to automatically convert for Python3 compatibility.
Building embedded python framework
To reduce the size of the git repository, you must create your own Python. To do this, simply run the ./build_python_framework.sh
script within the repository.
This process was tested on Catalina only.
./build_python_framework.sh
Cloning relocatable-python tool from github...
Cloning into '/tmp/relocatable-python-git'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 70 (delta 7), reused 16 (delta 6), pack-reused 50
Unpacking objects: 100% (70/70), done.
Downloading https://www.python.org/ftp/python/3.7.4/python-3.7.4-macosx10.9.pkg...
...
Done!
Customized, relocatable framework is at ./Python.framework
Moving Python.framework to InstallApplications payload folder
Package size increases
Unfortunately due to the embedded python, InstallApplications has significantly grown in size, from approximately 35Kb to 27.5 MB. The low size of InstallApplications has traditionally been one of it's greatest strengths, given how fragile mdmclient
can be, but there is nothing that can be done here.
Pinning python user/root scripts to embedded Python
Python user/root scripts should be pinned to the embedded Python framework. Moving forward, scripts not pinned will be unsupported.
It is recommended that you run 2to3
against your scripts to make them python3 compliant.
/usr/local/bin/2to3 -w /path/to/script
Then simply update the shebang on your python scripts to pin against the InstallApplications python framework.
#!/Library/installapplications/Python.framework/Versions/3.7/bin/python3
You can find an example on how this was done by looking at InstallApplications' own postinstall
InstallApplications 2.0 RC1
Changes:
- Refactored to use embedded python 3.7 via Relocatable Python - #55
generatejson.py
now usesenv
to figure out which python3 to run- Update gurl to use Munki 4.0, python 3.7 version
- InstallApplications has moved from
/Library/Application Support/installapplications
to/Library/installapplications
- Logging is now in
/var/log/installapplications
for both the user and root log files. Previously user logs were kept in/tmp/installapplications
and lost after a reboot and root logs were in/var/log/installapplications.log
Fixes:
- General fixes through
flake8
- #56
Warnings:
The built in DEPNotify logic continues to work in version 2.0, but may be removed prior to the official release of InstallApplications 2.0
Notes
2to3
installapplications.py
and postinstall
have been ran through 2to3 to automatically convert for Python3 compatibility.
Building embedded python framework
To reduce the size of the git repository, you must create your own Python. To do this, simply run the ./build_python_framework.sh
script within the repository.
This process was tested on Catalina only.
./build_python_framework.sh
Cloning relocatable-python tool from github...
Cloning into '/tmp/relocatable-python-git'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 70 (delta 7), reused 16 (delta 6), pack-reused 50
Unpacking objects: 100% (70/70), done.
Downloading https://www.python.org/ftp/python/3.7.4/python-3.7.4-macosx10.9.pkg...
...
Done!
Customized, relocatable framework is at ./Python.framework
Moving Python.framework to InstallApplications payload folder
Package size increases
Unfortunately due to the embedded python, InstallApplications has significantly grown in size, from approximately 35Kb to 27.5 MB. The low size of InstallApplications has traditionally been one of it's greatest strengths, given how fragile mdmclient
can be, but there is nothing that can be done here.
Pinning python user/root scripts to embedded Python
Python user/root scripts should be pinned to the embedded Python framework. Moving forward, scripts not pinned will be unsupported.
It is recommended that you run 2to3
against your scripts to make them python3 compliant.
/usr/local/bin/2to3 -w /path/to/script
Then simply update the shebang on your python scripts to pin against the InstallApplications python framework.
#!/Library/installapplications/Python.framework/Versions/3.7/bin/python3
You can find an example on how this was done by looking at InstallApplications' own postinstall