======== Issue: ======== The "Tag the Bird" (version 1.0) extension for Thunderbird Portable version 1.5.0.10 (20070221) stores a hard-coded path name in the Thunderbird configuration file. This information is of interest only insofar as it affects the working of "Tag The Bird" (and hence Thunderbird) in the situation where Thunderbird has been moved from one location to another via a simple Copy operation. ============= Background: ============= Having installed Thunderbird Portable on a USB drive, and having subsequently realized that the size of my Gmail inbox was subsequently going to over-run my 1Gig USB stick, and that having furthermore realized that Thunderbird would load more quickly and just generally be more lively on my 2.8Ghz laptop if I had the Thunderbird install on the internal hard disc, and that I wouldn't have to keep up with a USB stick for my email if it was on the drive - all these things [and others, like the fact that Thunderbird stores its message archives in a sub-folder with an arcane naming scheme under root ThunderbirdPortable directory]taken together led me to simply drag the Thunderbird folder from the USB drive to my WinXP desktop and drop it in a spot where I can open it with a single click any time I feel the need to use Thunderbird instead of web-mail. ========= Detail: ========= The config file that is changed is the same one that is opened from within Thunderbird that is opened when the "Tools | Options | Advanced | Config Editor..." button is pressed, presenting the about:config page with a list of several hundred configuration settings in Thunderbird [and extensions] - which settings may or may not be accessible otherwise through the Thunderbird or Extension GUI. The name of the setting is "webmail.logging.comms.FileLocation" [no quotes in the view of the file within Thunderbird]. The listing of items in the about:config page is one item per line, in alphabetical order. The first part of the line is the name of the setting, and is made up of identifiers [words] separated by dots [periods]. Lines that have been changed from their default values [I believe this is the criteria] are shown in a boldface font. Line items that have been created after the software was installed may also be included in the bold facing, so creation/modification time of the line in the file is somehow used in the decision taken by the software as to whether the line should be boldfaced or not. Each line also contains a "Status" field [I see that "user set" may be the status condition value which determines boldface of lines], a Type field ["boolean", "integer", and "string" seem the most common], and a value conforming to the type of value shown in the "Type" field. The value in question, here (webmail.logging.comms.FileLocation) is a string value giving a fully qualified path name, apparently a log file location. The value on my system was F:\ThunderbirdPortable\Data\profile\extensions\{3c8e8390-2cf6-11d9-9669-0800200c9a66}\logfiles Notes: 0. The Thunderbird root directory in the string above path given above is "F:\ThunderbirdPortable\" - all file system objects [files] belonging to Thunderbird Portable reside in or below the Thunderbird root directory. We will call this directory "ThunderbirdRoot" here, since the concept of the root directory as an environment for the operation of the software is important, here, to the understanding of the problem, and the crafting of a solution. 1. Rhe string of hexadecimal digits in braces - {3c8e8390-2cf6-11d9-9669-0800200c9a66} - that is part of the string value shown above is [I believe] a so-called "GUID" - a "Globally Unique Identifier" - which uniquely identifies some piece of software or item of data [in fact, in many cases, a piece of binary executable code which is to be treated as data for one reason or another]. 2. {3c8e8390-2cf6-11d9-9669-0800200c9a66} identifies something that I find - by looking in the directory, and opening the standard-format install.rdf file at F:\ThunderbirdPortable\Data\profile\extensions\{3c8e8390-2cf6-11d9-9669-0800200c9a66}\ is a Mozilla (and so Thunderbird, and so Thunderbird Portable) extension called "Tag the Bird" (obviously designed for Thunderbird specifically). I installed this extension some time ago, but have not used it, since it requires that I log in to my Gmail account through the Tag the Bird software, and I haven't been comfortable doing that until/unless I have time to examine the sources or otherwise convince myself that this software is not phishing software designed to steal my account ID and password... 3. The install.rdf file is an XML file that describes the initial configuration of a piece of software - in this case Tag the Bird. RDF is an acronym for "Resource Descrition File" [perhpas "Format"] and is a standard extension to XML used by Mozilla [and - presumably - others]. 4. The RDF file must identify precisely - in this case using GUID, version number, program name, and author name - the software that the configuration description applies to. For our purposes here, we just we looking for the program name and version number that goes with the GUID in the path name. ============ Solutions: ============ Since setting entered into the about:config file points to a sub-directory of the ThunderbirdPortable directory tree, and since I had previously copied the directory tree entire, I can assume that the directory pointed to by the current value stored for webmail.logging.comms.FileLocation was valid at one time - that is, the point at which the log [we presume] files were copied from the existing subtree of ThunderbirdRoot on the USB (F:) drive to the desktop folder on the laptop. Furthermore, since we know that the desktop folder on the laptop lives at "C:\Documents and Settings\USERNAME\Desktop" [where USERNAME is the system user name of the user whose desktop we're talking about], we can know that when we copied ThunderbirdRoot from F: to the desktop, the the ThunderbirdRoot directory tree was copied into C:\Documents and Settings\USERNAME\Desktop\ThunderbirdPortable such that the director on the C: drive is a snapshot of what was on the USB stick at that time, Therefore, the only critical path question in deciding to simply change the about:config: setting to point to the path on the C: drive is simply "Do we need to merge the changes that have been made to the F: drive path [...]/logfiles into the new C: drive path before we change the pointer?" This is important in a couple ways: 1) the log files may be updating even as we make the change, if Thunderbird is running at the time. This means we should shut Thunderbird down while we make the change, so we must get over the angst of having to shut down a running program and just do it... 2) We may just want to archive all the existing logs and start new ones - we didn't know we could do that before, but now since we know, perhaps we should. 3) We still don't know what physical file-system object [file] Thunderbird is storing the about:config data in. This is of mild historical interest, since it's a point of hacker cred to know which, amongst the many and varied configuration files Mozilla uses, particular text file in which to make a particular change to get the change to "work" in Thunderbird [or any of the other mozilla softwares]. The reason this is [was] of interest is simply because there was a time, back in the day, when Mozilla was known as "Netscape", and the prefs.js file was marked with a clear notice to the effect of "DO NOT CHANGE THIS FILE IN YOUR TEXT EDITOR JUST BECAUSE YOU THINK YOU KNOW JAVASCRIPT, YOU FILTHY TEXT-EDITING, UNRECALCITRANT ANTI-GUI HACKER YOU FILTH YOU POND SCUM LINUX SUSPECT" which was noticed by some few of us who were perhaps a bit too enamored of tweaking hidden text files in an attempt to make our PCs love us like real women having multiple orgasms. We must find out if she's a real blond, here. Again. Someone already knows. We could look it up. We don't care, we want to figure it out for ourselves. 4) Okay, after that thrilling adventure, we're about ready to make this config change to this Thunderbird plugin to make sure there is no hard reference to a drive/file system which may or may not be mounted and/or available when the software program in question actually runs at any given time, at the command of some as-yet-to-be-determined user. Just gotta check a few more things, first, and take another quick look at the current program state. Also need to shut down Thunderbird for a minute. 5) Shutting down Thunderbird: We can figure out which file(s) in the thunderbird are changed if we make a change to the config right before we shut it down. Since this knowledge will be of use to us in determining which config file stores which config setting [see above for why we want to know that], we will make a "random" change to the about:config settings - we do this under the assumption that all the settings shown in the about:config dialog are in fact stored in the same file. This may or may not be the case, which will also be shown by this particular [experimental] operation and its outcome. We select a setting from this dialog that we either a) don't care anything about, but can observe, or b) must remember to change back to what we want it to be, later - say, when (/if/) we come back to make this change [the logging path] from within the GUI. I say /if/ because we may just make the changes in the text file once we know which file that is... we toggle the randomly chosen boolean setting "wallet.enable" - don't forget to set it back. Check the time. 20:40 6) Back into WinXP now, we use the explorer mode of Windows Explorer to navigate back up to the secret file stash of the instance of Thunderbird that's running from the hard disc: C:\Documents and Settings\USERNAME\Desktop\ThunderbirdPortable\Data\profile Note: This is the same directory created when we copied the ThunderbirdRoot folder off the USB drive. 7) By checking the time-stamps we find that the changed config file is in fact our old nemesis from the profile folder: prefs.js - and if you don't think that filename is extra-ordinarily hard to remember over time - that is: hard to remember than "most filenames" - well then, that would mean that my weed is superior to yours at least in function if not necessarily in form. Nothing personal. We open the file. 8) Sure enough, there it is [see fig. 1.] Figure 1: /* Do not edit this file. [...] */ ... you scum sucking linux-lovers ... it may as well add. 9) Change it in the about:condig dialog to point at the new directory [after you merge the files if you're that kind of person, which we're, not; you should be able to figure out what "it" means here from what was said above - if not, well, you probably didn't make this far through here anyway, in that case ;)
Technology, Hardware, Software, Systems, Raspberry Pi, Raspberian, Linux, Video, GPU, framebuffer, API, Emacs, IP Networking Visual Computing, video tracking, Linux system administration, Shell scripting, Natural Language Programming, audio signal control
2007-05-17
Tag the Bird for Thunderbird Concifuration Issue
Labels:
extension,
mozilla,
portable apps,
tag,
thunderbird