March 16, 2012
Grand Pkginfo Unification Scheme Proposed

There has been talk from time to time on the Munki mailing list about coming up with a centralized Munki repository. For solutions like Simian, the only files you actually need a mac for are pkginfo files, since they need to be generated by the makepkginfo tool.

For those who can’t keep up with meme’s, or don’t know what they are, pardon me when I say: for some of us Git is our new bicycle, and Github is here to stay. The great environment Github has fostered around the tool makes distributed collaboration that much easier. How does this relate to Munki and pkginfo files? Well I’ve taken it upon myself to consolidate all of the pkginfo files myself and collaborators have access to, into a centralized collection called BundleOfPkginfos. This takes advantage of a Git feature called submodules, with a separate repo for each software manufacturer.

We all know pkginfo files have a certain level of customization, since different Munki setups will divide packages into subdirectories by type(‘browser’) or other criteria when running munkiimport. (Heck, some collaborators use .pkginfo, some .plist, and others _no_ extension!) For the ones I’ve posted, I used makepkginfo against software/updates distributed in .dmg format, and for those in .zip I unpacked and ran munkiimport with the -n (—nointeractive) flag on the .app bundles, which places the packages in the root of the pkgs folder.

So how will these benefit the community, since there are a bunch of proverbial cooks making the broth? Well I will be curating things to standardize them a bit as best I can, but more importantly, everybody wants to know how to modify a Microsoft Office updates to work within Munki, and now theres a place to look for working examples! The makepkginfo and munkiimport tools can’t always tell what programs should be closed before install, or if it would be beneficial to have a postflight script run after the package install (even more helpful to see examples where this is relevant!). Remember the Munki motto: ‘if you’re repackaging, u r doin’ it rong’

Sorry, meme’s again.

So feel free to copy-paste directly from the website (I recommend using the “Raw” button on the right at the top of the window to help ensure the copy respects the indentation, e.g.)¬†and make sure to test before deploying. Or if you’re git savvy, you can clone the master BarrelsOfPkginfos repository, then pull the submodules contents with these commands:

git clone git://github.com/arubdesu/BarrelOfPkginfos.git

git submodule init

git submodule update