Highlighted Articles |
Tunnelblick .tblk Packages Proposal=THIS IS A PROPOSAL. IT HAS NOT BEEN IMPLEMENTED AND IT IS PRELIMINARY AND SUBJECT TO CHANGE.=PLEASE DISCUSS THIS PROPOSAL IN THIS THREAD IN THE TUNNELBLICK DISCUSSION GROUP=On This Page IntroductionThis proposal arose from a recent thread on the Tunnelblick Discussion Group. Please discuss this proposal in this thread. A Tunnelblick package is a folder with an extension of .tblk that contains information about one VPN configuration.
Tunnelblick packages must be installed before they can be used. The configuration file of a Tunnelblick package that is private may be edited. The configuration file of a Tunnelblick package that is shared may only be examined. InstallationInstallation of a package can be done manually by dropping it on the Tunnelblick icon in the menu bar. Installation can also be done automatically when Tunnelblick is installed from a disk image or certain other other volumes (see Automatic Installation). When a package is installed, it is copied and the copy is secured by setting ownership and permissions on the package's contents. The installed package may be shared or private. Packages to be shared are copied to Package FormatTunnelblick packages are folders with an extension of ".tblk". (macOS will treat the folder as a package because of the extension.) The contents of a Tunnelblick package should be arranged as follows:
The configuration file must reside at the top level of /Resources and be named "config.conf". The name of the package (without ".tblk") is used as the display name of the configuration unless it conflicts with an existing name (see Name Conflicts During Installation). Info.plistInfo.plist is optional. If it exists, it must be a macOS property list file, and may contain the following keys: ||Key||Description||Default||Examples|| ||CFBundleIdentifier||A string that uniquely identifies the configuration and the individual or organization distributing the package.||(None)||com.example.tbconfigs.config27A|| ||CFBundleVersion ||A string representing the version number that is used to determine later/earlier versions of the package (see CFBundleIdentifier Conflicts). The string must consist of a major version number, optionally followed by a decimal point and a minor version number, optionally followed by a decimal point and a bugfix version number||(None)||1.16.4|| ||CFBundleShortVersionString||A string to display as the version (in Get Info, for example)||(None)||1.6 Test 3|| ||TBPackageVersion||A string with the package version number||1||The string "1" (without the quotation marks)|| ||TBInstallWhenInstallingTunnelblick||A string specifying whether to install the package when the package is located on a disk image or other volume from which Tunnelblick cannot be used and Tunnelblick is installed by Command-clicking Tunnelblick.app on the volume and clicking "Open". Packages will be found if they are in the same folder as Tunnelblick.app or any subfolder of that folder, including invisible subfolders. Must be "yes", "no", or "ask" (without the quotation marks)||ask||no|| ||TBReplaceIdentical||A string specifying whether to install the package over a package with the same CFBundleIdentifier. Must be "yes", "no", "ask", or "force" (without the quotation marks)||ask||yes|| ||TBSharePackage||A string specifying whether to install the package as shared or private, or to ask the user. Must be "shared", "private", or "ask" (without the quotation marks)||ask||ask|| ||TBPreference||See Preferences|| ||TBPreferenceuseDNS|| PreferencesA package's Info.plist may also optionally contain entries (strings and booleans) with keys that start with "TBPreference". The entries are preferences for the configuration. If not already present (with any value), each entry will be copied to the user's regular preferences each time Tunnelblick loads the package (when Tunnelblick is launched or the package is added to the Configurations folder). When the entries are copied, "TBPreference" is replaced with the display name of the package. Note that the "autoConnect" option triggers a connection when Tunnelblick is started, so a configuration with "TBPreferenceautoConnect" is not connected automatically when it is installed, but rather is connected automatically the next time Tunnelblick is launched. In a Deployed version of Tunnelblick, the forced-preferences in Deploy will override any package-specified preferences. Up and Down ScriptsIf the package contains up.sh, down.sh, nomonitor.up.sh, and/or nomonitor.down.sh, those shell scripts will be used instead of Tunnelblick's standard scripts, or scripts in Deploy, when connecting with the package and "Set nameserver" is checked for the package's configuration. In a Deployed version of Tunnelblick, a package's up/down scripts will override the corresponding scripts in Deploy. Automatic InstallationWhen Tunnelblick itself is installed (by Command-clicking Tunnelblick.app when it is located on a disk image or other volume from which it cannot be used and clicking "Open"), all packages in the folder containing the Tunnelblick.app being installed, or a subfolder of it, that have "TBInstallWhenInstallingTunnelblick" set to "yes" are installed (subject to CFBundleIdentifier Conflicts and Name Conflicts During Installation. If "TBInstallWhenInstallingTunnelblick" is set to "no", the package will not be installed. If "TBInstallWhenInstallingTunnelblick" is "ask", the user will be asked before installing the package. CFBundleIdentifier ConflictsOn automatic or manual installation of a package, if a package with an identical CFBundleIdentifier is already installed:
When an existing package is replaced, the new copy takes the display name of the existing version. Thus, the new version will inherit the existing version's preferences and Keychain items. Name Conflicts During InstallationIf the display name of a package is the same as the name of an .ovpn or .conf file (without the .extension) from Deploy, /Library/Application Support/Tunnelblick/Shared, or ~/Library/Application Support/Tunnelblick/Configurations, or is the same as the display name of an existing package that has a different CFBundleIdentifier, the user will be asked to rename the package or cancel the installation; Name Conflicts After InstallationConfigurations are displayed from
Comparing Tunnelblick Packages and Deployed Versions of Tunnelblick
|