Skip to content

DSL of macOS Builder

Gerry Weißbach edited this page Aug 13, 2019 · 7 revisions

The dmg task is responsible for building Debian packages using Setup Builder.

The following options are available to the dmg task:

dmg {

    // Sets the installation root of the software application
    // defaults to /usr/share/{setupBuilder.application}
    installationRoot = "/usr/share/my-application"
    
    // defines a file that will be stored in /etc/default/{serviceName}
    // ususally contains default information for the service starter.
    defaultServiceFile = "default-service.txt" 
    
    // a script that will be included into the default service starter script
    additionalServiceScript = "<script>"
    
    // true (default), if the default service (aka the first service defined)
    // should start after installation
    startDefaultService = false
    
    // The user the services will be executed with, defaults to root
    daemonUser = "root" 
    
    // Architecture of the installer, defaults to "all"
    architecture = "all"
    
    // List of recommended software components to install along the application
    recommends = "java | python3"
    
    // List of software components the application depends on
    depends = "java | python3"
    
    // the section is alike the category, defaults to "Application/Productivity"
    section = "Application/Productivity"
    
    // sets the homepage of the vendor for this application
    homepage = "https://www.inetsoftware.de"
}

The following additional options are available to the dmg task:

dmg {

    // a background image used for the `.dmg` file
    backgroundImage = "background.png"
    
    // the background image used in hte `.pkg` installer file
    setupBackground = "setup.png"
    
    // optional, the icon of the `.pkg` installer file
    setupIcon = "setup.icns
    
    // a Java java.awt.Color Object - used as background color in the `.dmg` image
    backgroundColor = new java.awt.Color( 31, 31, 31);
    
    // optional, sets the `.dmg` window width
    windowWidth = 400
    
    // optional, sets the `.dmg` window height
    windowHeight = 300
    
    // optional, sets the `.dmg` window width
    windowWidth = 300

    // optional, the size of the icons in the `.dmg`. Defaults to 128
    iconSize = 128
    
    // optional, the fontSize of the `.dmg` file names displayed below the application items
    fontSize = 14

    // definition of the first page displayed in a package installer
    // can be defined multiple times
    welcomePage { ... }
    
    // definition of the last page displayed in a package installer
    // can be defined multiple times
    conclusionPage { ... }

    // Code Signing information
    codeSign { ... }
}

To allow even more customization during installation you can use several installation script entry points. Please have a look at the specifc documentation.

Hints

Properties: welcomePage, conclusionPage

The properties can be defined multiple times and represent localized files with the following structure:

{
    // Language of the given resource
    locale = "en"

    // allowed formats: rtf, rtfd, txt, html
    resource = "welcome.en.txt"
}

Property: codesign

The codesign property is required to set up proper code signing information to ensure the software will be installed and runs correctly at targetet macOS distributions.

codesign {

    // the "Common Name" part of the certificate
    identity = "Application Developer"
    
    //  Specific Identifier to embed in code (option -i)
    identifier = ""
    
    // The keychain used for signing. It has to be unlocked
    keychain = "System"
    
    // password to unlock the keychain
    keychainPassword = "123456"
    
    // if true, will ignore errors during code sign operations
    ignoreError = false
    
    // if true, will perform a deepsign for 3rd party packages as well
    deepsign = true
}
Clone this wiki locally