GithubHelp home page GithubHelp logo

bochoven-recipes's Introduction

AutoPkg

Code style: black Tests passing

Latest release is here.

AutoPkg is an automation framework for macOS software packaging and distribution, oriented towards the tasks one would normally perform manually to prepare third-party software for mass deployment to managed clients.

These tasks typically involve at least several of the following steps:

  • downloading an application and/or updates for it, usually via a web browser
  • extracting them from a multitude of archive formats
  • adding site-specific configuration
  • adding sane versioning information
  • "fixing" poorly-written installer scripts
  • saving these modifications back to a compressed disk image or installer package
  • importing these into a software distribution system like Munki, Jamf Pro, FileWave, etc.
  • customizing the associated metadata for such a system with site-specific data, post-installation scripts, version info or other metadata

Often these tasks follow similar patterns for each individual application, and when managing many applications this becomes a daily task full of sub-tasks that one must remember (and/or maintain documentation for) about exactly what had to be done for a successful deployment of every update for every managed piece of software.

With AutoPkg, we define these steps in a "Recipe" file in plist or yaml format, run automatically instead of by hand, and shared with others.

Installation

Install the latest release.

AutoPkg requires macOS, and Git is highly recommended to have installed so that autopkg can use git to can manage recipe repositories. Knowledge of Git itself is not required.

AutoPkg is tested on the current macOS release. It may work on older releases, but is not actively tested on older releases.

Git can be installed via Apple's command-line developer tools package, which can be prompted for installation by simply typing 'git' in a Terminal window (OS X 10.9 or later).

Since AutoPkg 2.0, Python 2 is no longer supported. The installer linked above contains a bundled version of Python 3 and all needed dependencies.

Usage

A getting started guide is available here.

Frequently Asked Questions (and answers!) are here.

See the wiki for more documentation.

Discussion

Discussion of the use and development of AutoPkg is here.

bochoven-recipes's People

Contributors

blackthroat avatar bochoven avatar coobs1 avatar daz-wallace avatar eshirk avatar grahampugh avatar hfike avatar hjuutilainen avatar homebysix avatar jc0b avatar macmule avatar neilmartin83 avatar octomike avatar paul-cossey avatar rickheil avatar roratonet avatar wstoof avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bochoven-recipes's Issues

PsychPy2 needs an updated download recipe

The download recipe only recognizes versions up to and including 1.85.6 because they have changed the naming convention.

Old string is: ^StandalonePsychoPy-.*-OSX_64bit.dmg$

New string (should be?): ^StandalonePsychoPy-.*-MacOS$

Opera bundle permission issue in v56

There is an issue with Munki not installing Opera-56.0.3051.35 properly. On install (clean or upgrade) it is not copying the entire App bundle. In particular the permissions for Opera.app/Contents/Versions/56.0.3051.35/Opera Framework.framework/Versions are drwxr--r--. They should be drwxr-xr-x.

Adding a postinstall_script to my overide resolves the issue.
<key>postinstall_script</key> <string>#!/bin/bash # Add directory traversal for the entire application and ensure # all executables are executable by group and other /bin/chmod -R go+rX /Applications/Opera.app </string>

munki.NoMADLogin-AD

local.munki.NoMADLogin-AD
Error in local.munki.NoMADLogin-AD: Processor: FileFinder: Error: No matching filename found

ExpanDrive recipe appears to broken since v7 released

[First and foremost, thanks for having built this to begin with. Anyone who's posted Munki recipes is aces in my book. So thank you.]

Now to the point of this issue. It appears that ever since ExpanDrive v7 was released, the ExpanDrive recipe stopped working. It's still showing v6.4.7 when latest is v7.4.2.

I'm guessing the URL where one gets the latest version has changed, as the website definitely had some changes at that time. You can still find the v6 by going to this link, for example: https://updates.expandrive.com/release_notes/expandrive

But at one point I realized they changed the main site, and that's how I learned v7 existed.

ADF Usage?

I am not sure I am using your munki recipe correctly so please LMK if this is a bug or if this is just something I need to sort out on my end.

When I run the ADF.munki.recipe I get this

Curl failure: The requested URL returned error: 401 Unauthorized (exit code 22)
Failed.

Am I supposed to override the downloads recipe and add in credentials or is the recipe broken?

JASP download changes, current recipe failing

JASP now has both Intel and AS builds available. The download at the existing URL in the download recipe downloads the Intel build (JASP-0.16.2.0-macOS-x86_64.dmg) and the following URL downloads the AS build (JASP-0.16.2.0-macOS-arm64.dmg) https://jasp-stats.org/thank-you-for-downloading-jasp-macos-apple-silicon/

Because of the architecture being appended to the name of the dmg that is downloaded, the current recipe is failing:
The following recipes failed:
JASP.munki
Error in local.munki.JASP: Processor: URLTextSearcher: Error: No match found on URL: https://jasp-stats.org/thank-you-for-downloading-jasp-macos/

JASP Download recipe warning

Seeing the following warning during code signature verification:

CodeSignatureVerifier: WARNING: This recipe is using 'requirements' when it should be using 'requirement'. This will become an error in future versions of AutoPkg.

FlatPkgUnpacker - DisplayLink.munki.recipe

I know the DisplayLink.download.recipe was recently fixed with #27, but the munki.recipe is failing with FlatPkgUnpacker

CodeSignatureVerifier: Mounted disk image /Users/ladmin/Library/AutoPkg/Cache/com.github.bochoven.recipes.munki.DisplayLink/downloads/displaylink.dmg
CodeSignatureVerifier: Verifying installer package signature...
CodeSignatureVerifier: Package "DisplayLink Software Installer.pkg":
CodeSignatureVerifier:    Status: signed by a certificate trusted by Mac OS X
CodeSignatureVerifier:    Certificate Chain:
CodeSignatureVerifier:     1. Developer ID Installer: DisplayLink Corp (73YQY62QM3)
CodeSignatureVerifier:        SHA1 fingerprint: 1D 4C 15 54 72 09 78 65 FC 09 CD 4D 8E 3C B9 10 A0 6D 09 7E
CodeSignatureVerifier:        -----------------------------------------------------------------------------
CodeSignatureVerifier:     2. Developer ID Certification Authority
CodeSignatureVerifier:        SHA1 fingerprint: 3B 16 6C 3B 7D C4 B7 51 C9 FE 2A FA B9 13 56 41 E3 88 E1 86
CodeSignatureVerifier:        -----------------------------------------------------------------------------
CodeSignatureVerifier:     3. Apple Root CA
CodeSignatureVerifier:        SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60
CodeSignatureVerifier: 
CodeSignatureVerifier: Signature is valid
CodeSignatureVerifier: Authority name chain is valid
{'Output': {}}
FlatPkgUnpacker
Use of undefined key in variable substitution: u'found_filename'
{'Input': {'destination_path': u'/Users/ladmin/Library/AutoPkg/Cache/com.github.bochoven.recipes.munki.DisplayLink/unpack',
           'flat_pkg_path': u'%found_filename%/DisplayLink Software Installer.pkg',
           'purge_destination': True}}
extraction of %found_filename%/DisplayLink Software Installer.pkg with pkgutil failed: Could not open package for expansion: %found_filename%/DisplayLink Software Installer.pkg

Failed.

DisplayLink.download.recipe - Processor: CodeSignatureVerifier: Error: ...displaylink.dmg is not mounted

Hi,

We're seeing a code sig error on the download from this recipe. Digging further, the error is more around the disk image that is downloaded as trying to open it manually in Finder fails as 'Image not recognised'. It looks like the download scrapping is the issue but I'm not quite following your recipe so I thought I'd log an issue!

Let me know if we can help further.

Full error:

URLTextSearcher
{'Input': {'re_pattern': u'a href="/downloads/file\\?id=(\\d+)"',
           'url': u'https://www.displaylink.com/downloads/macos'}}
URLTextSearcher: No value supplied for CURL_PATH, setting default value of: /usr/bin/curl
URLTextSearcher: No value supplied for result_output_var_name, setting default value of: match
URLTextSearcher: Found matching text (match): 1483
{'Output': {'match': '1483'}}
URLDownloader
{'Input': {'CURL_PATH': '/usr/bin/curl',
           'curl_opts': (
    "-F",
    "fileId=1483",
    "-F",
    "accept_submit=Accept",
    "--location"
),
           'filename': u'displaylink.dmg',
           'url': u'https://www.displaylink.com/downloads/file?id=1483'}}
URLDownloader: No value supplied for CHECK_FILESIZE_ONLY, setting default value of: False
URLDownloader: No value supplied for prefetch_filename, setting default value of: False
URLDownloader: Storing new Last-Modified header: Tue, 10 Dec 2019 14:05:05 GMT
URLDownloader: Storing new ETag header: "6beb409a4862918b34e64beabb3fa33c"
URLDownloader: Downloaded /Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg
{'Output': {'download_changed': True,
            'etag': '"6beb409a4862918b34e64beabb3fa33c"',
            'last_modified': 'Tue, 10 Dec 2019 14:05:05 GMT',
            'pathname': u'/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg',
            'url_downloader_summary_result': {'data': {'download_path': u'/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg'},
                                              'summary_text': 'The following new items were downloaded:'}}}
FileFinder
{'Input': {'pattern': u'/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/*.dmg'}}
FileFinder: No value supplied for find_method, setting default value of: glob
FileFinder: Found file match: '/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg' from globbed '/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/*.dmg'
{'Output': {'found_filename': u'/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg'}}
CodeSignatureVerifier
{'Input': {'expected_authority_names': (
    "Developer ID Installer: DisplayLink Corp (73YQY62QM3)",
    "Developer ID Certification Authority",
    "Apple Root CA"
),
           'input_path': u'/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg/DisplayLink Software Installer.pkg'}}
CodeSignatureVerifier: hdiutil imageinfo error hdiutil: imageinfo failed - image not recognized
 with image /Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg.
/Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg is not mounted
Failed.
Receipt written to /Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/receipts/local.munki-receipt-20191224-125338.plist

The following recipes failed:
    local.munki.DisplayLink-dataJAR
        Error in local.munki.DisplayLink-dataJAR: Processor: CodeSignatureVerifier: Error: /Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg is not mounted

The following new items were downloaded:
    Download Path                                                                                  
    -------------                                                                                  
    /Users/sadmin/Library/AutoPkg/Cache/local.munki.DisplayLink-dataJAR/downloads/displaylink.dmg  

dmgcreator not working

The recipe works fine except for the dmgcreator part. I have tried with different code for that part and then everything works fine. The code I used is this:

< dict>
            < key>Processor< /key>
           < string>DmgCreator< /string>
            < key>Arguments< /key>
            < dict>
                < key>dmg_root< /key>
                < string>%RECIPE_CACHE_DIR%/%NAME%< /string>
                < key>dmg_path< /key>
                < string>%RECIPE_CACHE_DIR%/%NAME%.dmg< /string>
            < /dict>
        < /dict>
        < dict>
            < key>Arguments< /key>
            < dict>
                < key>pkg_path< /key>
                < string>%dmg_path%< /string>
                < key>repo_subdirectory< /key>
                < string>%MUNKI_REPO_SUBDIR%< /string>
            < /dict>

surfdrive geeft een foutmelding, waarschijnlijk update nodig

CodeSignatureVerifier: Signature is valid
CodeSignatureVerifier: Mismatch in authority names
CodeSignatureVerifier: Expected: Developer ID Installer: ownCloud Inc. (9B5WD74GWJ) -> Developer ID Certification Authority -> Apple Root CA
CodeSignatureVerifier: Found: Developer ID Installer: ownCloud GmbH (4AP2STM4H5) -> Developer ID Certification Authority -> Apple Root CA
Mismatch in authority names. Note that all verification can be disabled by setting the variable DISABLE_CODE_SIGNATURE_VERIFICATION to a non-empty value.
Failed.
Receipt written to /Users/adm/Library/AutoPkg/Cache/local.munki.surfdrive/receipts/surfdrive.munki-receipt-20190704-073742.plist
The following recipes failed:
surfdrive.munki.recipe
Error in local.munki.surfdrive: Processor: CodeSignatureVerifier: Error: Mismatch in authority names. Note that all verification can be disabled by setting the variable DISABLE_CODE_SIGNATURE_VERIFICATION to a non-empty value.
Nothing downloaded, packaged or imported.

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.