Generated by GPT-5-mini| dmgbuild | |
|---|---|
| Name | dmgbuild |
| Programming language | Python |
| Operating system | macOS |
| Genre | Disk image creation |
| License | MIT License |
dmgbuild
dmgbuild is a Python-based tool for creating macOS disk images (DMG) programmatically. It is used in software packaging workflows alongside tools and projects such as Python (programming language), Homebrew (package manager), macOS, Electron (software framework), and App Store (macOS). The project integrates with build systems and continuous integration services like Travis CI, GitHub Actions, Jenkins, and CircleCI.
dmgbuild automates creation of Apple Disk Image files for distribution on macOS. It complements packaging utilities such as pkgbuild, productbuild, hdiutil, and Flatpak by producing visually customized DMG volumes suitable for end-user installation. Common consumers include maintainers of Homebrew Cask, developers of Electron (software framework) apps, authors of Python (programming language) applications, and organizations deploying via Munki or Jamf Pro.
dmgbuild supports themed volumes with precise layout control and metadata settings. The tool offers features comparable to GUI utilities while being scriptable for CI pipelines: background image placement akin to Adobe Photoshop, icon positioning comparable to macOS Finder presets, volume name configuration like hdiutil, and symbolic link creation similar to ln (Unix). Advanced options include resource fork handling related to AppleDouble conventions, license embedding consistent with Apple Developer distribution practices, and compression modes used by Zlib or bzip2 when invoking underlying utilities.
dmgbuild is invoked from the command-line interface in environments that run Python (programming language). Typical workflows integrate dmgbuild into release pipelines alongside git, GitHub Releases, and artifact stores such as Amazon S3 or Artifactory. Developers often combine dmgbuild with code signing via Apple Worldwide Developer Relations Certification Authority flows and with notarization steps that involve Apple Notary services. It is compatible with deployment patterns involving Sparkle (software update framework) for macOS apps and packaging strategies used by Homebrew formulae authors.
dmgbuild uses a Python configuration file to declare volume layout, appearance, and behavior. Configuration allows specifying window size and icon positions using coordinate systems similar to macOS Finder conventions, background PNGs produced by tools like GIMP or Adobe Photoshop, and file ordering influenced by HFS Plus or APFS file system semantics. The configuration model parallels templating approaches found in projects such as Jinja (template engine), enabling programmatic generation for different release channels like beta and stable.
Common examples demonstrate packaging an Electron (software framework) application, a Python (programming language) wheel distributed as a macOS app bundle, or a cross-platform app built with Qt (software). Example recipes show integration with GitHub Actions workflows, signing with Xcode command line tools, and uploading artifacts to Amazon S3 or GitHub Releases. Community examples include automated DMG generation for Visual Studio Code, Slack (software), and open-source projects distributed via Homebrew Cask.
dmgbuild development typically occurs on GitHub, with collaboration patterns similar to other open-source projects such as CPython, Node.js, and Electron (software framework). Contributors follow workflows using pull requests, issue trackers, and continuous integration via Travis CI or GitHub Actions. Contributions often touch integration points with hdiutil, packaging guidelines from Apple Developer, and compatibility layers for APFS and HFS Plus file systems. Community members include maintainers active in ecosystems surrounding Homebrew, Python (programming language), and macOS application distribution.
dmgbuild is distributed under a permissive open-source license that permits wide reuse in commercial and non-commercial contexts, aligning with licenses used by projects like MIT License adopters. Binaries and source are published on platforms such as GitHub and mirrored via package managers or release artifacts compatible with PyPI for Python packaging. Distribution practices often reference guidelines from Apple Developer documentation and are tailored to comply with code signing and notarization requirements for macOS application distribution.
Category:macOS software Category:Free software programmed in Python Category:Disk images