Giter Club home page Giter Club logo

autodmgupdateprofiles's Introduction

AutoDMGUpdateProfiles

This repository contains three utilities to help generate update profiles for AutoDMG

autodmg-rss.py (currently broken)

The rss parsing script is broken, hunt down updates from Apple's Downloads page instead. autodmg-rss.py reads Apple's RSS feed for software updates and creates a plist with the name and URL of each update. Not all updates have standard download buttons, and some updates are only available from Software Update, so some will still have to be added manually.

autodmg-checksum.py

autodmg-checksum.py takes the plist from autodmg-rss.py and downloads each update that doesn't have the sha1 checksum or size set. It also updates the PublicationDate to the current time, and it saves the updates for you in AutoDMG/Updates.

autodmg-verify.py

autodmg-verify.py checks for common errors, such as plist syntax errors, unreferenced updates, or forgetting to update the PublicationDate.

Suggested Workflow

  1. Fork this repository and check out your fork out on your admin machine.
  2. Install a bare OS on a test machine, and perform initial setup.
  3. Run sudo softwareupdate -l -a.
  4. Note the updates and the order they appear in.
  5. Run ./autodmg-rss.py updates.plist.
  6. Use updates.plist to update AutoDMG's UpdateProfiles.plist, while paying attention to installation order.
  7. Manually add any updates that autodmg-rss.py doesn't find (see below), and remove deprecated updates.
  8. Run ./autodmg-checksum.py UpdateProfiles.plist.
  9. Run ./autodmg-verify.py UpdateProfiles.plist.
  10. Run ./install.sh to move UpdateProfiles.plist into ~/Library/Application Support/AutoDMG for testing.
  11. Build an image with updates applied.
  12. Deploy it and verify that no additional updates are required.
  13. Commit changes and submit a pull request.

Finding iTunes Updates

The latest installer for iTunes can usually be found at http://www.apple.com/itunes/download/. Start a download and then copy the URL from your browser's download dialog.

Downloading from sucatalogs

Some updates, notably Safari's, are never posted to Apple's rss feed. They are however posted to Apple's Software Update catalog, and there's a script in the repo to help you find them:

$ ./sucatalog.sh
$ egrep -i 'safari.*\.pkg' *.sucatalog | cut -d\> -f2-| cut -d\< -f1 | sort -u 
http://swcdn.apple.com/content/downloads/17/39/031-72723/qjk9m4oqqk3jn16o5w4gupeta7uqek1lhi/Safari10.0YosemiteSeed.pkg
http://swcdn.apple.com/content/downloads/18/14/091-9898/opy4mtpobcg21e1xj2l0uy9ayvq2ys59zs/Safari5.1.10SnowLeopard.pkg
http://swcdn.apple.com/content/downloads/43/04/031-05867/xcrpn0l2nziw9mglb0gksv2rndu0nquggd/Safari6.1.6Lion.pkg
http://swcdn.apple.com/content/downloads/45/36/031-28342/piu9tsargpvuaxdnlhf1s0dulnxiuxc8ee/Safari6.2.8MountainLion.pkg
http://swcdn.apple.com/content/downloads/47/05/031-75479/smgdhqybff3jofycbq8uuciu5td7co45am/Safari9.1.3Mavericks.pkg
http://swcdn.apple.com/content/downloads/50/48/031-74172/ysyvw0y92rsipxbxb4yxyw5mo2fqc9hcmq/SafariTechPreviewElCapitan.pkg
http://swcdn.apple.com/content/downloads/62/05/031-75481/c10gu5qoz8bbbk1jczzzvxm9ih4fupo0wz/Safari9.1.3Yosemite.pkg

autodmgupdateprofiles's People

Contributors

128keaton avatar arubdesu avatar bruienne avatar burnsra avatar erikng avatar firealliancenx avatar ggeerraalldd avatar jamyn avatar jazzace avatar jps3 avatar kevinmcox avatar macprince avatar magervalp avatar matteosecli avatar n8felton avatar rmanly avatar scifiman avatar tbridge avatar timsutton avatar tuxudo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autodmgupdateprofiles's Issues

autodmg-rss.py failing

 ./autodmg-rss.py updates.plist
Download macOS Sierra 10.12.3 Update
Download Security Update 2016-003 (10.11.6)
Download Security Update 2016-003 Supplemental (10.11.6)
Download Security Update 2016-003 (10.11.6)
Download Security Update 2016-007 (10.10.5)
Download macOS Sierra 10.12.2 Update
Download iTunes 12.5.4
Download macOS Sierra 10.12.1 Update
Download Security Update 2016-006 (10.10.5)
Download Security Update 2016-002 (10.11.6)
Digital Camera RAW Compatibility Update 6.21
Download iTunes 12.4.3 for OS X
Digital Camera RAW Compatibility Update 6.20
Download Security Update 2016-004 Mavericks
Download Security Update 2016-004 Yosemite
Download OS X El Capitan 10.11.6 Update
Download Security Update 2016-003 Yosemite
Download Security Update 2016-003 Mavericks
Download OS X El Capitan 10.11.5 Update
Digital Camera RAW Compatibility Update 6.19
Download Bluetooth Update for MacBook
Traceback (most recent call last):
  File "./autodmg-rss.py", line 132, in <module>
    sys.exit(main(sys.argv))
  File "./autodmg-rss.py", line 126, in main
    plistlib.writePlist(updates_found, args.updates)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 94, in writePlist
    writer.writeValue(rootObject)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 252, in writeValue
    self.writeDict(value)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 281, in writeDict
    self.writeValue(value)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 252, in writeValue
    self.writeDict(value)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 281, in writeDict
    self.writeValue(value)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 252, in writeValue
    self.writeDict(value)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 281, in writeDict
    self.writeValue(value)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plistlib.py", line 260, in writeValue
    raise TypeError("unsuported type: %s" % type(value))
TypeError: unsuported type: <type 'NoneType'>

I can check this out later, but wanted to get it filed so that I don't forget.

Safari 9.0.1

@scifiman MagerValp/AutoDMG#130

I'm getting an error for the Safari 9.0.1 Yosemite update.
The download fails the SHA1 checksum expectation. AutoDMG expected:
8a15d48c94d7b04f89cb3b3faff0dfcc8f7c1859
but got:
abad1886301a442e850b3bf203007b08a7bff5e2

This is happening on a 10.10.5 VM. I've also had issues with this update on my 10.10.5 desktop where it will not install from the AppStore. So I wonder if something has changed with this file from Apple.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.