public static function prepareProperties($os, array $contextProperties)
    {

        // merge all properties
        Setup::$mergedProperties = array_merge(
            $contextProperties,
            Setup::$defaultProperties,
            Setup::$osProperties[$os]
        );

        // prepare the properties for the OS identifier, e. g. iron-horse_debian_x86_64
        Setup::$mergedProperties[SetupKeys::OS_IDENTIFIER] = sprintf(
            '%s_%s_%s',
            str_replace(' ', '-', strtolower(Setup::$mergedProperties[SetupKeys::RELEASE_NAME])),
            $os,
            Setup::$mergedProperties[SetupKeys::OS_ARCHITECTURE]
        );

        // prepare the properties for the software identifier, e. g. appserver/1.0.0 (debian) PHP/5.5.21
        Setup::$mergedProperties[SetupKeys::SOFTWARE_IDENTIFIER] = sprintf(
            'appserver/%s (%s) PHP/%s',
            Setup::$mergedProperties[SetupKeys::VERSION],
            Setup::$mergedProperties[SetupKeys::OS_FAMILY],
            Setup::$mergedProperties[SetupKeys::PHP_VERSION]
        );
    }