luci: Make the settings backup complete.
Previously, the settings backup would include complete files in a
tarball that becomes the backup. This missed out on a lot of settings,
because they were contained in files that could not be backed up
completely (because parts of them could vary between firmware versions).
This commit puts the creation of the tarball into a new script,
/sbin/save-config.sh. Before creating the tarball, this script
cherry-picks some settings from various files and generates uci commands
to restore those settings. These commands are saved within the tarball,
so they will be run after a settings restore.
Note that this save-config.sh script is also intended to be used inside
released firmware tarballs, so all settings are also preserved on
upgrades.
This commit adds the following settings to the backup:
- The password strength (used for enabling SSH on WAN).
- The firewall->applications settings.
- The downloadmanager settings, logins and download list. These were
already backed up, but now only the necessary settings are backed up
instead of the entire file. These were also not preserved on an
upgrade yet.
- QoS settings.
- OpenVPN settings, keys and clients.
- The WebGUI language.
- Static DHCP assignments.
- The Flickr/Picasa/Youtube/Facebook? uploader settings.
Closes: #633