ACC SHELL

Path : /usr/share/YaST2/control/
File Upload :
Current File : //usr/share/YaST2/control/control.rnc

default namespace = "http://www.suse.com/1.0/yast2ns"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
namespace config = "http://www.suse.com/1.0/configns"
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"

## Defined data-types

BOOLEAN =
  (
    attribute config:type { "boolean" },
    ( "true" | "false" )
  )

INTEGER =
  (
    attribute config:type { "integer" },
    xsd:integer
  )

SYMBOL =
  (
    attribute config:type { "symbol" },
    text
  )

LIST =
  attribute config:type { "list" }

ANY =
  (
    BOOLEAN | INTEGER | SYMBOL | LIST | text
  )

YES_NO =
  (
    "yes" | "no"
  )

# types

textdomain = element textdomain { text }

# globals

globals_elements =
    incomplete_translation_treshold
    | additional_kernel_parameters
    | ui_mode
    | base_product_license_directory
    | enable_autologin
    | enable_firewall
    | firewall_enable_ssh
    | firewall_enable_ssh
    | write_hostname_to_hosts
    | run_init_scripts_in_parallel
    | inform_about_suboptimal_distribution
    | skip_language_dialog
    | enable_clone
    | enable_register_hwdata
    | enable_register_optional
    | display_register_forcereg
    | disable_register_w3m
    | register_monthly
    | manual_online_update
    | root_password_as_first_user
    | root_password_ca_check
    | show_online_repositories
    | online_repositories_default
    | show_addons
    | addons_default
    | enable_autoconfiguration
    | autoconfiguration_default
    | kexec_reboot
    | rle_offer_rulevel_4
    | default_ntp_setup
    | save_instsys_content
    | copy_to_system
    | autoconfiguration_enabled_modules
    | automatic_configuration
    | displaymanager_shutdown
    | enable_kdump
    | polkit_default_privs
    | debug_workflow
    | subworkflows
    | default_subworkflow
    | language
    | timezone
    | enable_autologin
    | runlevel
    | require_registration
    | services_proposal
    | ac_redraw_and_ignore
    | debug_deploying

## Default kernel parameters proposed by bootloader
additional_kernel_parameters =		element additional_kernel_parameters { text }
## How much per cent is the minimum coverage of translations to consider
## it being 'complete'. Less are reported if user tries to switch to such
## language during installation / upgrade.
incomplete_translation_treshold =	element incomplete_translation_treshold { text }
## Directory where the base-product (e.g., SLES) license files are stored
base_product_license_directory =	element base_product_license_directory { text }
## Defines an UI mode used in some modules to differentiate between
## 'simple' and 'expert' (obsolete).
ui_mode =				element ui_mode { "expert" | "simple" }
## Writes DISPLAYMANAGER_SHUTDOWN to /etc/sysconfig/displaymanager
## if set
displaymanager_shutdown =		element displaymanager_shutdown { text }
## Writes POLKIT_DEFAULT_PRIVS to /etc/sysconfig/security
## if set
polkit_default_privs =			element polkit_default_privs { text }
## Defines the default subworkflow name (smaller subworkflow
## created from another workflow).
## Used by Wagon.
default_subworkflow =			element default_subworkflow { text }
## Default language
language =				element language { text }
## Default timezone
timezone =				element timezone { text }
## Default runlevel
runlevel =				element runlevel { text }

## Debugging feature, makes workflow manaher to write
## more detailed log entries
debug_workflow =			element debug_workflow { BOOLEAN }
## Default value for autologin
enable_autologin =			element enable_autologin { BOOLEAN }
## Default value for firewall
enable_firewall =			element enable_firewall { BOOLEAN }
## Default value for SSHD in firewall (open port)
firewall_enable_ssh =			element firewall_enable_ssh { BOOLEAN }
## Default value whether to write a system hostname to /etc/hosts
write_hostname_to_hosts =		element write_hostname_to_hosts { BOOLEAN }
## Defines whether startup scripts should run in a parallel mode.
## This speeds the starting up but it is worse for debugging.
run_init_scripts_in_parallel =		element run_init_scripts_in_parallel { BOOLEAN }
inform_about_suboptimal_distribution =	element inform_about_suboptimal_distribution { BOOLEAN }
skip_language_dialog =			element skip_language_dialog { BOOLEAN }
## Defines whether an AytoYaST cloning feature should be enabled
enable_clone =				element enable_clone { BOOLEAN }
## Default value for 'send hardware data' with registration
enable_register_hwdata =		element enable_register_hwdata { BOOLEAN }
## Default value for 'send optional system data' with registration
enable_register_optional =		element enable_register_optional { BOOLEAN }
display_register_forcereg =		element display_register_forcereg { BOOLEAN }
disable_register_w3m =			element disable_register_w3m { BOOLEAN }
register_monthly =			element register_monthly { BOOLEAN }
manual_online_update =			element manual_online_update { BOOLEAN }
root_password_as_first_user =		element root_password_as_first_user { BOOLEAN }
root_password_ca_check =		element root_password_ca_check { BOOLEAN }
show_online_repositories =		element show_online_repositories { BOOLEAN }
online_repositories_default =		element online_repositories_default { BOOLEAN }
show_addons =				element show_addons { BOOLEAN }
addons_default =			element addons_default { BOOLEAN }
enable_autoconfiguration =		element enable_autoconfiguration { BOOLEAN }
autoconfiguration_default =		element autoconfiguration_default { BOOLEAN }
## Defines whether kexec is the preferred mode instead of rebooting
## between the first and the second stage of installation
kexec_reboot =				element kexec_reboot { BOOLEAN }
## Defines whether a special runlevel 4 should be offered
rle_offer_rulevel_4 =			element rle_offer_rulevel_4 { BOOLEAN }
default_ntp_setup =			element default_ntp_setup { BOOLEAN }
## Defines whether kdump is enabled by default
enable_kdump =				element enable_kdump { BOOLEAN }
require_registration =			element require_registration { BOOLEAN }

## Defines which pieces of installation system should be copied to
## the installed system before rebooting to second stage.
save_instsys_content = element save_instsys_content {
    LIST,
    element save_instsys_item {
	## Where to copy the installation-system file or directory
	## Absolut path is required.
	element system_directory { text } &
	## Which file or directory to copy to installed system
	## Absolut path is required.
	element instsys_directory { text }
    }+
}

copy_to_system = element copy_to_system {
    LIST,
    element copy_to_system_item {
	element copy_to_dir { text } &
	element mandatory_files {
	    LIST,
	    element file_item { text }+
	}+ &
	element optional_files {
	    LIST,
	    element file_item { text }+
	}*
    }+
}

autoconfiguration_enabled_modules = element autoconfiguration_enabled_modules {
    LIST,
    element module { text }+
}

## Describes the automatic configuration called in the second stage.
## Proposed values are written to the system without asking user.
automatic_configuration = element automatic_configuration {
    LIST,
    ## One configuration step
    element ac_step {
	## Unique ID of the automatic configuration step
	element unique_id { text } &
	## ID used in texts
	element text_id { text }? &
	## Name of the icon file (without suffix)
	element icon { text }? &
	## Type of a configuration step.
	## Scripts are called directly.
	## Proposals are all at first called with 'MakeProposal' and then 'Write' parameters.
	element type { "scripts" | "proposals" }? &
	element ac_items {
	    LIST,
	    element ac_item { text }+
	}?
    }+
}

services_proposal = element services_proposal {
    LIST,
    element service {
	element label_id { text }? &
	element service_names { text } &
	element firewall_plugins { text }? &
	element enabled_by_default { BOOLEAN }? &
	element packages { text }?
    }+
}

subworkflows = element subworkflows {
    LIST,
    element subworkflow {
	element name { text } &
	element modules {
	    LIST,
	    element module { text }+
	}? &
	element proposals {
	    LIST,
	    element proposal { text }+
	}?
    }+
}

## Global variables
globals = element globals {
    globals_elements*
}

# globals

# software

software_elements =
    delete_old_packages
    | delete_old_packages_reverse_list
    | silently_downgrade_packages
    | silently_downgrade_packages_reverse_list
    | only_update_selected
    | only_update_selected_reverse_list
    | products_supported_for_upgrade
    | selection_type
    | system_scenarios
    | default_system_scenario
    | supported_desktops
    | default_desktop
    | display_support_status
    | online_repos_preselected
    | external_sources_link
    | dropped_packages
    | extra_urls
    | base_selection
    | packages_affecting_pkg_manager
    | software_base
    | software_addons
    | software_packages
    | kernel_packages
    | packages_transmogrify

## Whether it is allowed to delete a package during upgrade
delete_old_packages = element delete_old_packages { BOOLEAN }
selection_type = element selection_type { SYMBOL }
## System scenario selected by default.
## Used in inst_scenarios client.
default_system_scenario = element default_system_scenario { text }
## Desktop selected by default
default_desktop = element default_desktop { text }
display_support_status = element display_support_status { BOOLEAN }
silently_downgrade_packages = element silently_downgrade_packages { BOOLEAN }
only_update_selected = element only_update_selected { BOOLEAN }
online_repos_preselected = element online_repos_preselected { BOOLEAN }
external_sources_link = element external_sources_link { text }
## Packages that should be removed by the upgrade.
## Comma and/or space-separated list of packages
dropped_packages = element dropped_packages { text }

base_selection = element base_selection { text }
software_base = element base { text }

## a client that is called to modifiy the list of selected kernel packages
packages_transmogrify = element packages_transmogrify { text }

software_addons = element addons {
    LIST,
    element addon { text }+
}

software_packages = element packages {
    LIST,
    element package { text }+
}

kernel_packages = element kernel_packages {
    LIST,
    element package { text }+
}

delete_old_packages_reverse_list = element delete_old_packages_reverse_list {
    LIST,
    element regexp_item { text }+
}

## Scenarios supported by inst_scenarios client
system_scenarios = element system_scenarios {
    LIST,
    ## One scenario item
    element system_scenario {
	## Unique id that points to texts
	element id { text } &
	## Space or tab-separated list of patterns required by a particular scenario
	element patterns { text } &
	## Name of an icon file (without suffix)
	element icon { text }
    }+
}

supported_desktops = element supported_desktops {
    LIST,
    element one_supported_desktop {
	element name { text } &
	element desktop { text } &
	element label_id { text }? &
	element logon { text } &
	element cursor { text } &
	element packages { text } &
	element order { INTEGER }? &
	element patterns { text } &
	element icon { text }? &
	element description_id { text }?
    }+
}

only_update_selected_reverse_list = element only_update_selected_reverse_list {
    LIST,
    element regexp_item { text }+
}

## List of products supported to be upgraded by this product
products_supported_for_upgrade = element products_supported_for_upgrade {
    LIST,
    ## One regular expression to match a product to upgrade
    element regexp_item { text }+
}

silently_downgrade_packages_reverse_list = element silently_downgrade_packages_reverse_list {
    LIST,
    element regexp_item { text }+
}

extra_urls = element extra_urls {
    LIST,
    element extra_url {
	element baseurl { text } &
	element name { text }? &
	element alias { text }? &
	element prod_dir { text }? &
	element enabled { BOOLEAN }? &
	element autorefresh { BOOLEAN }? &
	element priority { INTEGER }?
    }+
}

packages_affecting_pkg_manager = element packages_affecting_pkg_manager {
    LIST,
    element package { text }+
}

## Software / Package-manager related variables
software = element software {
    software_elements*
}

# software

# partitioning

partitioning_elements =
    evms_config
    | try_separate_home
    | limit_try_home
    | root_space_percent
    | root_base_size
    | root_max_size
    | proposal_lvm
    | proposal_evms
    | vm_desired_size
    | vm_home_max_size
    | boot_evms
    | use_separate_multipath_module
    | prefer_remove
    | vm_keep_unpartitioned_region
    | remove_special_partitions
    | partitions

evms_config =			element evms_config { BOOLEAN }
try_separate_home =		element try_separate_home { BOOLEAN }
limit_try_home =		element limit_try_home { text }
root_space_percent =		element root_space_percent { text }
root_base_size =		element root_base_size { text }
root_max_size =			element root_max_size { text }
proposal_lvm =			element proposal_lvm { BOOLEAN }
proposal_evms =			element proposal_evms { BOOLEAN }
vm_desired_size =		element vm_desired_size { text }
vm_home_max_size =		element vm_home_max_size { text }
boot_evms =			element boot_evms { BOOLEAN }
prefer_remove =			element prefer_remove { BOOLEAN }
remove_special_partitions =	element remove_special_partitions { BOOLEAN }
vm_keep_unpartitioned_region =	element vm_keep_unpartitioned_region { BOOLEAN }
# used by HASI Add-On
use_separate_multipath_module =	element use_separate_multipath_module { BOOLEAN }

# these have to be defined by Storage
partitions = element partitions {
    LIST,
    element listentry {
	element * { ANY }*
    }*,
    element partition {
	element * { ANY }*
    }*
}

## Partitioning-related variables
partitioning = element partitioning {
    partitioning_elements*
}

# partitioning

# network

network_elements =
    force_static_ip
    | network_manager
    | startmode

force_static_ip =	element force_static_ip { BOOLEAN }
network_manager =	element network_manager { text }
startmode =		element startmode { text }

## Network configuration-related variables
network = element network {
    network_elements*
}

# network

# clone_modules

## List of modules used by AutoYaST for cloning the configuration
clone_modules = element clone_modules {
    LIST,
    element clone_module { text }+
}

# clone_modules

# texts

## Control-file texts marked for translation
texts = element texts {
    element * {
	element label { text }
    }+
}

# texts

# proposals

## There are two types of element 'proposal_modules'
##  1.) proposal_modules with attributes 'name' and 'presentation_order'
##  2.) proposal_modules with inexplicit 'name'

## Proposal module with 'name' and 'presentation_order'
proposal_module = element proposal_module {
    ## Proposal name
    element name { text }? &
    ## Presentation order in the current proposal (integer).
    ## Lower numbers first.
    element presentation_order { text }? &
    ## Inexplicit proposal name if not explicitely defined by 'name' and 'presentation_order'
    text?
}

## Proposal defines one configuration step with one or more proposal_modules
## inside. Proposal modules usually depend on each other so the order does
## matter. If you want to list proposal modules in a different order, use
## 'presentation' order attribute.
proposal = element proposal {
    ## Unique ID of the proposal
    element unique_id { text } &
    ## 
    element label { text }? &
    ## Defines for which architectures is this proposal used.
    ## Comma-separated list of architectures as seen in
    ## /usr/share/YaST2/modules/Arch.ycp
    ## Valid for all architectures if not explicitely defined.
    ## See Arch::arch_short
    element archs { text }? &
    ## Defines for which mode is this proposal used.
    ## Comma-separated list of modes as seen in
    ## /usr/share/YaST2/modules/Mode.ycp
    ## Valid for all modes if not explicitely defined.
    element mode { text }? &
    ## Defines for which stage is this proposal used.
    ## Comma-separated list of stages as seen in
    ## /usr/share/YaST2/modules/Stage.ycp
    ## Valid for all stages if not explicitely defined.
    element stage { text } &
    ## Proposal name used later to define which proposal to use
    element name { text }? &
    element type { text }? &
    ## Defines whether a proposal can be skipped
    element enable_skip { YES_NO }? &
    ## List of modules in proposal
    element proposal_modules {
	LIST,
	proposal_module+
    }? &
    ## Defines how/whether tabs are used in proposal, e.g.,
    ## Simple tab vs. Expert tab.
    ## If tabs are used, do not define 'proposal_modules' directly
    ## in 'proposal'
    element proposal_tabs {
	LIST,
	## Defines one tab in a proposal
	element proposal_tab {
	    ## Label on the tab
	    element label { text } &
	    ## List of proposal modules
	    element proposal_modules {
		LIST,
		proposal_module+
	    }
	}+
    }?
}

# List of all proposals in control file
proposals = element proposals {
    LIST,
    proposal+
}

# proposals

# workflows

# Describes one step in a workflow
module = element module {
    ## Name of a step.
    ## Used as an identification for updating, removing etc. of steps.
    ## If 'execute' is not used, 'name' also defines name of a YCP script
    ## called by YaST. In installation or upgrade, all script have to match
    ## inst_(.*) regexp.
    element name { text }? &
    ## Defines exact name of a YCP script (without .ycp suffix)
    element execute { text }? &
    ## Defines a configuration step shown in workflow with steps.
    ## If empty, a label defined in closes step before is used.
    element label { text }? &
    ## Defines a heading step. Heading usually does not have any client
    ## to run and defines only the major step in workflow.
    element heading { text }? &
    ## Defines for which architectures is this module used.
    ## Comma-separated list of architectures as seen in
    ## /usr/share/YaST2/modules/Arch.ycp
    ## Valid for all architectures if not explicitely defined.
    ## See Arch::arch_short
    element archs { text }? &
    ## Defines which proposal to call in this step.
    ## Proposal 'name' is used.
    element proposal { text }? &
    ## Defines whether the [Back] button is enabled by default in this step.
    element enable_back { YES_NO }? &
    ## Defines whether the [Next] button is enabled by default in this step.
    element enable_next { YES_NO }? &
    ## Additional module arguments
    element arguments {
	element first_run { YES_NO }?
	| element * { text }*
	# used in autoyast
	| text
    }? &
    ## Should YaST retranslate the whole screen after this client is called?
    ## Default is 'true'.
    element retranslate { BOOLEAN }? &
    element update { BOOLEAN }? &
    ## Defines whether a module is enabled by default.
    ## Default value is 'true'
    element enabled { BOOLEAN }? &
    ## Script body called before the described step
    element prescript {
	## @example
	## shell
	element interpreter { text } &
	## @example
	## <![CDATA[#!/bin/sh
	## echo test > /tmp/test
	## ]]>
	element source { text }
    }? &
    ## Script body called after the described step
    element postscript {
	element interpreter { text } &
	element source { text }
    }?
}

## Defines the default workflow settings
workflow_defaults = element defaults {
    ## For which architectures is this default valid
    element archs { text }? &
    ## Special patemeters used by AutoYaST
    element arguments { text }? &
    ## Is [Back] button enabled by default?
    ## If not set, default values is 'yes'.
    element enable_back { YES_NO }? &
    ## Is [Next] button enabled by default?
    ## If not set, default values is 'yes'.
    element enable_next { YES_NO }?
}

## Workflow, defines for instance, 'second stage installation'
workflow = element workflow {
    workflow_defaults? &
    ## Superstep name visible in UI
    element label { text }? &
    ## Defines for which mode is this proposal used.
    ## Comma-separated list of modes as seen in
    ## /usr/share/YaST2/modules/Mode.ycp
    ## Valid for all modes if not explicitely defined.
    element mode { text } &
    ## Defines for which stage is this workflow used.
    ## Comma-separated list of stages as seen in
    ## /usr/share/YaST2/modules/Stage.ycp
    ## Valid for all stages if not explicitely defined.
    element stage { text } &
    ## List of modules in workflow
    element modules {
	LIST,
	module+
    }
}

# List of all defined workflows
workflows = element workflows {
    LIST,
    workflow+
}

# workflows

# inst_finish_stages

inst_finish_stages = element inst_finish_stages {
    LIST,
    element inst_finish_stage {
	element label { text } &
	element steps {
	    LIST,
	    element step { text }+
	}
    }+
}

# inst_finish_stages

# update

update_workflow = element workflow {
    workflow_defaults? &
    element label { text }? &
    element stage { text } &
    element mode { text } &
    element insert_modules {
	LIST,
	element insert_module {
	    element before { text } &
	    element modules {
		LIST,
		module+
	    }
	}+
    }? &
    element append_modules {
	LIST,
	module+
    }? &
    element remove_modules {
	LIST,
	element remove_module { text }+
    }? &
    element replace_modules {
	LIST,
	element replace_module {
	    element replace { text } &
	    element modules {
		LIST,
		module+
	    }
	}+
    }?
}

update_proposal = element proposal {
    element stage { text } &
    element mode { text } &
    element label { text }? &
    element name { text } &
    element enable_skip { YES_NO }? &
    element append_modules {
	LIST,
	element append_module { text }+
    }? &
    element remove_modules {
	LIST,
	element remove_module { text }+
    }? &
    element replace_modules {
	LIST,
	element replace_module {
	    element replace { text } &
	    element new_modules {
		LIST,
		element new_module { text }+
	    }
	}
    }?
}

update = element update {
    element proposals {
	LIST,
	update_proposal+
    }? &
    element workflows {
	LIST,
	update_workflow+
    }? &
    element inst_finish {
	element before_chroot {
	    LIST,
	    element module { text }+
	}? &
	element after_chroot {
	    LIST,
	    element module { text }+
	}? &
	element before_umount {
	    LIST,
	    element module { text }+
	}?
    }?
}

# update

productDefines_elements =
    textdomain
    | globals
    | software
    | partitioning
    | network
    | proposals
    | workflows
    | clone_modules
    | texts
    | inst_finish_stages
    | update

start = element productDefines {
    productDefines_elements*
}

ac_redraw_and_ignore = element ac_redraw_and_ignore {
    LIST,
    element ac_item { text }+
}

debug_deploying = element debug_deploying { BOOLEAN }

ACC SHELL 2018