All firstboot modules are found in /usr/share/firstboot/modules. The modules that are contained within the firstboot RPM are copied directly to this directory. Other modules that are not part of the firstboot RPM are installed elsewhere on the system and a symbolic link is made pointing from /usr/share/firstboot/modules to the real location of the module.
The sample-firstboot-module source RPM provides source code for a template firstboot module. The src/ directory contains a file called sampleFirstbootModule.py that will be installed to /usr/share/sample-firstboot-module/. A symbolic link will be made from /usr/share/firstboot/modules/ to /usr/share/sample-firstboot-module.
Explanation of module variables:
runPriority: When firstboot starts, it scans the /usr/share/firstboot/modules directory to find out which modules are present. Each module contains variable called "runPriority" with a value assigned to it. Then it reads the "runPriority" value from each module and sorts the modules in increasing order.
values less than 100 are usually reconfig modules that present some of the screens form anaconda over again. The "finished" module is value 500 and should be the final module seen. Therefore, your value needs to be somewhere between 100 and 500. Currently existing runPriority values are:
- language.py: runPriority = 0
- welcome.py: runPriority = 10
- keyboard.py: runPriority = 20
- mouse_gui.py: runPriority = 30
- rootpassword.py: runPriority = 40
- networking.py: runPriority = 45
- securitylevel.py: runPriority = 50
- timezone.py: runPriority = 89
- date.py: runPriority = 100
- create_user.py: runPriority = 110
- soundcard_gui.py: runPriority = 120
- up2date.py: runPriority = 130
- additional_cds.py: runPriority = 140
- sampleFirstbootModule.py: runPriority = 200
- finished.py: runPriority = 500
moduleName: The moduleName variable is a string that contains the name that will be listed on the left-side list of steps in the main firstboot module screen.
moduleClass: This variable is optional. If it is set to "reconfig", the module will only be displayed if firstboot is being run in reconfig mode. Reconfig mode is most common on factory preloaded systems where the user did not do the install themselves and needs to do things like set a root password and add a system user. If the variable is set to anything other than "reconfig" or if the variable does not exist at all, the module will always be displayed.