trust_help = help_box.HelpBox(_("Trust Help"), (_('Overview'), '\n' + _( """When you run a program, it typically has access to all your files and can generally do \ anything that you're allowed to do (delete files, send emails, etc). So it's important \ to make sure that you don't run anything malicious.""" )), (_('Digital signatures'), '\n' + _( """Each software author creates a 'key-pair'; a 'public key' and a 'private key'. Without going \ into the maths, only something encrypted with the private key will decrypt with the public key. So, when a programmer releases some software, they encrypt it with their private key (which no-one \ else has). When you download it, the injector checks that it decrypts using their public key, thus \ proving that it came from them and hasn't been tampered with.""" )), (_('Trust'), '\n' + _( """After the injector has checked that the software hasn't been modified since it was signed with \ the private key, you still have the following problems: 1. Does the public key you have really belong to the author? 2. Even if the software really did come from that person, do you trust them?""" )), (_('Key fingerprints'), '\n' + _( """To confirm (1), you should compare the public key you have with the genuine one. To make this \ easier, the injector displays a 'fingerprint' for the key. Look in mailing list postings or some \ other source to check that the fingerprint is right (a different key will have a different \ fingerprint). You're trying to protect against the situation where an attacker breaks into a web site \ and puts up malicious software, signed with the attacker's private key, and puts up the \ attacker's public key too. If you've downloaded this software before, you \ should be suspicious that you're being asked to confirm another key!""" )), (_('Reputation'), '\n' + _( """In general, most problems seem to come from malicous and otherwise-unknown people \ replacing software with modified versions, or creating new programs intended only to \ cause damage. So, check your programs are signed by a key with a good reputation!""" )))
gui_help = help_box.HelpBox( _("Injector Help"), (_('Overview'), '\n' + _("""A program is made up of many different components, typically written by different \ groups of people. Each component is available in multiple versions. Zero Install is \ used when starting a program. Its job is to decide which implementation of each required \ component to use. Zero Install starts with the program you want to run (like 'The Gimp') and chooses an \ implementation (like 'The Gimp 2.2.0'). However, this implementation \ will in turn depend on other components, such as 'GTK' (which draws the menus \ and buttons). Thus, it must choose implementations of \ each dependency (each of which may require further components, and so on).""") ), (_('List of components'), '\n' + _("""The main window displays all these components, and the version of each chosen \ implementation. The top-most one represents the program you tried to run, and each direct \ child is a dependency. The 'Fetch' column shows the amount of data that needs to be \ downloaded, or '(cached)' if it is already on this computer. If you are happy with the choices shown, click on the Download (or Run) button to \ download (and run) the program.""")), (_('Choosing different versions'), '\n' + _("""To control which implementations (versions) are chosen you can click on Preferences \ and adjust the network policy and the overall stability policy. These settings affect \ all programs run using Zero Install. Alternatively, you can edit the policy of an individual component by clicking on the \ button at the end of its line in the table and choosing "Show Versions" from the menu. \ See that dialog's help text for more information.""") + '\n'), (_('Reporting bugs'), '\n' + _("""To report a bug, right-click over the component which you think contains the problem \ and choose 'Report a Bug...' from the menu. If you don't know which one is the cause, \ choose the top one (i.e. the program itself). The program's author can reassign the \ bug if necessary, or switch to using a different version of the library.""") + '\n'), (_('The cache'), '\n' + _("""Each version of a program that is downloaded is stored in the Zero Install cache. This \ means that it won't need to be downloaded again each time you run the program. The \ "0store manage" command can be used to view the cache.""") + '\n'), )
properties_help = help_box.HelpBox(_( "Injector Properties Help" ), (_('Interface properties'), '\n' + _( """This window displays information about an interface. There are two tabs at the top: \ Feeds shows the places where the injector looks for implementations of the interface, while \ Versions shows the list of implementations found (from all feeds) in order of preference.""" )), (_('The Feeds tab'), '\n' + _( """At the top is a list of feeds. By default, the injector uses the full name of the interface \ as the default feed location (so if you ask it to run the program "http://foo/bar.xml" then it will \ by default get the list of versions by downloading "http://foo/bar.xml". You can add and remove feeds using the buttons on the right. The main feed may also add \ some extra feeds itself. If you've checked out a developer version of a program, you can use \ the 'Add Local Feed...' button to let the injector know about it, for example. Below the list of feeds is a box describing the selected one: - At the top is its short name. - Below that is the address (a URL or filename). - 'Last upstream change' shows the version of the cached copy of the interface file. - 'Last checked' is the last time a fresh copy of the upstream interface file was \ downloaded. - Then there is a longer description of the interface.""" )), (_('The Versions tab'), '\n' + _( """This tab shows a list of all known implementations of the interface, from all the feeds. \ The columns have the following meanings: Version gives the version number. High-numbered versions are considered to be \ better than low-numbered ones. Released gives the date this entry was added to the feed. Stability is 'stable' if the implementation is believed to be stable, 'buggy' if \ it is known to contain serious bugs, and 'testing' if its stability is not yet \ known. This information is normally supplied and updated by the author of the \ software, but you can override their rating by right-clicking here (overridden \ values are shown in upper-case). You can also use the special level 'preferred'. Fetch indicates how much data needs to be downloaded to get this version if you don't \ have it. If the implementation has already been downloaded to your computer, \ it will say (cached). (local) means that you installed this version manually and \ told Zero Install about it by adding a feed. (package) means that this version \ is provided by your distribution's package manager, not by Zero Install. \ In off-line mode, only cached implementations are considered for use. Arch indicates what kind of computer system the implementation is for, or 'any' \ if it works with all types of system.""" ) + '\n'), (_('Sort order'), '\n' + _( """The implementations are listed in the injector's currently preferred order (the one \ at the top will actually be used). Usable implementations all come before unusable \ ones. Unusable ones are those for incompatible \ architectures, those marked as 'buggy', versions explicitly marked as incompatible with \ another interface you are using and, in off-line mode, uncached implementations. Unusable \ implementations are shown crossed out. For the usable implementations, the order is as follows: - Preferred implementations come first. - Then, if network use is set to 'Minimal', cached implementations come before \ non-cached. - Then, implementations at or above the selected stability level come before all others. - Then, higher-numbered versions come before low-numbered ones. - Then cached come before non-cached (for 'Full' network use mode).""" ) + '\n'), (_('Compiling'), '\n' + _( """If there is no binary available for your system then you may be able to compile one from \ source by clicking on the Compile button. If no source is available, the Compile button will \ be shown shaded.""") + '\n'))
cache_help = help_box.HelpBox(_( "Cache Explorer Help" ), (_('Overview'), '\n' + _( """When you run a program using Zero Install, it downloads the program's 'interface' file, \ which gives information about which versions of the program are available. This interface \ file is stored in the cache to save downloading it next time you run the program. When you have chosen which version (implementation) of the program you want to \ run, Zero Install downloads that version and stores it in the cache too. Zero Install lets \ you have many different versions of each program on your computer at once. This is useful, \ since it lets you use an old version if needed, and different programs may need to use \ different versions of libraries in some cases. The cache viewer shows you all the interfaces and implementations in your cache. \ This is useful to find versions you don't need anymore, so that you can delete them and \ free up some disk space.""" )), (_('Invalid interfaces'), '\n' + _( """The cache viewer gets a list of all interfaces in your cache. However, some may not \ be valid; they are shown in the 'Invalid interfaces' section. It should be fine to \ delete these. An invalid interface may be caused by a local interface that no longer \ exists, by a failed attempt to download an interface (the name ends in '.new'), or \ by the interface file format changing since the interface was downloaded.""" )), (_('Unowned implementations and temporary files'), '\n' + _( """The cache viewer searches through all the interfaces to find out which implementations \ they use. If no interface uses an implementation, it is shown in the 'Unowned implementations' \ section. Unowned implementations can result from old versions of a program no longer being listed \ in the interface file. Temporary files are created when unpacking an implementation after \ downloading it. If the archive is corrupted, the unpacked files may be left there. Unless \ you are currently unpacking new programs, it should be fine to delete everything in this \ section.""" )), (_('Interfaces'), '\n' + _( """All remaining interfaces are listed in this section. You may wish to delete old versions of \ certain programs. Deleting a program which you may later want to run will require it to be downloaded \ again. Deleting a version of a program which is currently running may cause it to crash, so be careful!""" )))
gui_help = help_box.HelpBox( _("Zero Install Preferences Help"), (_('Overview'), '\n\n' + _("""There are three ways to control which implementations are chosen. You can adjust the \ network policy and the overall stability policy, which affect all interfaces, or you \ can edit the policy of individual interfaces.""")), (_('Network use'), '\n' + _("""The 'Network use' option controls how the injector uses the network. If off-line, \ the network is not used at all. If 'Minimal' is selected then the injector will use \ the network if needed, but only if it has no choice. It will run an out-of-date \ version rather than download a newer one. If 'Full' is selected, the injector won't \ worry about how much it downloads, but will always pick the version it thinks is best.""" )), (_('Freshness'), '\n' + _("""The feed files, which provide the information about which versions are \ available, are also cached. To update them, click on 'Refresh all now'. You can also \ get the injector to check for new versions automatically from time to time using \ the Freshness setting.""")), (_('Help test new versions'), '\n' + _("""The overall stability policy can either be to prefer stable versions, or to help test \ new versions. Choose whichever suits you. Since different programmers have different \ ideas of what 'stable' means, you may wish to override this on a per-interface basis. To set the policy for an interface individually, select it in the main window and \ click on 'Interface Properties'. See that dialog's help text for more information.""" )), (_('Security'), '\n' + _("""This section lists all keys which you currently trust. When fetching a new program or \ updates for an existing one, the feed must be signed by one of these keys. If not, \ you will be prompted to confirm that you trust the new key, and it will then be added \ to this list. To remove a key, right-click on it and choose 'Remove' from the menu.""" )), )