Build Transmission on Windows

Ask for help and report issues with the Windows version of Transmission
Post Reply
ransagy
Posts: 14
Joined: Wed Aug 18, 2010 6:14 pm

Re: Build Transmission on Windows

Post by ransagy »

Thanks, I'll try that tomorrow when i get some spare time - Will have to setup getting everything from SVN and read up on building some of those.

Regarding file associations - This is interesting:
My [HKEY_CLASSES_ROOT\.torrent] entry is still pointing to uTorrent of all things - That's two clients back, And NOT the current handler for .torrent files if i try to open them manually.
My 'TORRENT file' entry does have the proper transmission-qt entries.

I don't see a mention of Halite in those keys anywhere even though that is the registered handler according to Windows Explorer, But i do have a "Halite.Torrent" class key instead, with the same structure.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.torrent\OpenWithList] - three keys, a is some experimental WPF app i tried ages ago, b is uTorrent, c is Halite, and MRUList's value is 'cba'. AFAIK this only sets the order of the Open With submenu entries.

Windows 7's File Associations Control Panel applet shows .torrent as handled by an 'Unknown application', but when i use the Open With context menu option or the applet's Change Association option, i still get Halite as the recommended application to handle .torrent files.

Here's some interesting registry exports i have:

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.torrent]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.torrent\OpenWithList]
"a"="WPFTorrent.vshost.exe"
"MRUList"="cba"
"b"="uTorrent.exe"
"c"="Halite.exe"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.torrent\OpenWithProgids]
"uTorrent"=hex(0):
"Halite.torrent"=hex(0):
"TORRENT file"=hex(0):

Code: Select all


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.torrent]
@="TORRENT file"
"Content Type"="application/torrent"
"remote_access_client_id"="3785123580"

[HKEY_CLASSES_ROOT\.torrent\OpenWithProgids]
"uTorrent"=""
I'll try messing around with these and see what result i get. I've yet to figure what makes it choose Halite specifically.

EDIT: my and my compulsive disorder to 'debug' things. Setting the association through Windows to transmission-qt.exe only changes the [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.torrent\OpenWithList] key - it added that as entry d in the list, and changes MRUList to be 'dcba'.
Double clicking torrent files adds them to the running instance of transmission-qt, and the explorer icon is also correct.
ransagy
Posts: 14
Joined: Wed Aug 18, 2010 6:14 pm

Re: Build Transmission on Windows

Post by ransagy »

Currently setting up my Cygwin environment to build, But wanted to update that i hadn't come across the issue today - Removed the two torrents i had before and loaded a new one, It finished downloading and seeding without encountering the issue again.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

ransagy
OK, perhaps it was the "testing stage", I had problems when I was stress testing (both the application and my remote daemon), but my problems showed in dbus-daemon, not on the application.

I had not seen your edit above until now. What you did is register it manually, that changed the list and the "default" application that opens torrents. This is interesting but I don't think its relevant, I also have the key under HKEY_CURRENT_USER, my list is bigger, the Most Recently Used actually lists Firefox first, then transmission-qt, but .torrent open correctly with transmission-qt... the point is I don't think this Explorer registry records is important, the "HKEY_CLASSES_ROOT\TORRENT File" is. On the other hand, the extra entries on the HKEY_CLASSES_ROOT\.torrent might be what changed, I don't really know.

BTW about Cygwin, current version 1.7.6 will be changed very soon, the developers screwed up and some things stopped working. I haven't had a problem, but the Cygwin list was full of complaints yesterday.
ransagy
Posts: 14
Joined: Wed Aug 18, 2010 6:14 pm

Re: Build Transmission on Windows

Post by ransagy »

Done getting all the downloaded packages for Cygwin, Installing as we speak.
I'll try investigating a bit more on the association issue, I'll try and see what Windows changed, Perhaps with some of the Sysinternals tools.

EDIT2: OK, Got Cygwin up and running and libevent/Transmission compiled. I'll try the CLI later with the two torrents that i was using in the former tests.
chk712
Posts: 4
Joined: Thu Jul 29, 2010 2:43 pm

Re: Build Transmission on Windows

Post by chk712 »

chk712 wrote:Hi rb07,

first of all thanks for doing this. Transmission is my favourite BitToorent-Client so i'm looking forward to see it on Windows too. :)

However i have a little problem. I installed the latest Version, v2.03 of Transmission on Windows, it was a bit buggy though and crashed often so i wanted to uninstall it using the Uninstaller in Transmission's directory, but it failed to uninstall it. I get following error when it says "Uninstall is completed" and i click on the finish button:

Code: Select all

can't read "conf(UninstallRemoved)": no such element in array
can't read "conf(UninstallRemoved)": no such element in array
    while executing
"if {$conf(UninstallRemoved) && !$conf(UninstallRenamed)} {

puts $fp "set uninstall [list $conf(uninstall)]"
puts $fp {
set i 0
while {[file exists $u..."
    (procedure "::InstallJammer::CleanupTmpDir" line 20)
    invoked from within
"::InstallJammer::CleanupTmpDir "
    (procedure "::InstallJammer::exit" line 12)
    invoked from within
"::InstallJammer::exit"
    (procedure "::InstallJammer::FinishEventHandler" line 7)
    invoked from within
"::InstallJammer::FinishEventHandler .wizard"
    (command bound to event)
I can't even close the window then, got to finish it by clicking close on the context menu in the window bar.

I'd also be interested in what Transmission leaves on the hard disk when it was uninstalled. Any folders in AppData or something?

Using Windows Vista 64-bit btw.

Greetings, chk
I know it's not your top priority but... you have a solution for me to be able to uninstall it?
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

chk712 wrote:you have a solution for me to be able to uninstall it?
The problem seems to be with the 2.03 installer, you could try installing 2.04 over it and then uninstall.

Let me know if there are still problems with the 2.04 uninstall.

BTW do not use the other, newer, versions, the ones that have a revision number install in a different place, the application has a different name, and will not affect older installed versions.
chk712
Posts: 4
Joined: Thu Jul 29, 2010 2:43 pm

Re: Build Transmission on Windows

Post by chk712 »

Thx, i will try that.
chk712
Posts: 4
Joined: Thu Jul 29, 2010 2:43 pm

Re: Build Transmission on Windows

Post by chk712 »

I did like you suggested, i still get the same error when trying to uninstall it. :(

Code: Select all

can't read "conf(UninstallRemoved)": no such element in array
can't read "conf(UninstallRemoved)": no such element in array
    while executing
"if {$conf(UninstallRemoved) && !$conf(UninstallRenamed)} {

puts $fp "set uninstall [list $conf(uninstall)]"
puts $fp {
set i 0
while {[file exists $u..."
    (procedure "::InstallJammer::CleanupTmpDir" line 20)
    invoked from within
"::InstallJammer::CleanupTmpDir "
    (procedure "::InstallJammer::exit" line 12)
    invoked from within
"::InstallJammer::exit"
    (procedure "::InstallJammer::FinishEventHandler" line 7)
    invoked from within
"::InstallJammer::FinishEventHandler .wizard"
    (command bound to event)
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

chk712
OK, let's try something different: Start -> All Programs -> Accessories -> System Tools -> System Restore

Use "Restore my computer to an earlier time" by going through the calendar backwards, make a note of what you installed/changed until you find QTransmission, select it to restore as it was before installing it. After System Restore finishes rebooting install/change the other items you took note, if you want them.

Sorry for the problem, the code you show is generated by the installer maker, not my code, I don't have access to it, and I don't know how to change it or fix it.
jdarias
Posts: 21
Joined: Tue May 13, 2008 2:31 pm

Re: Build Transmission on Windows

Post by jdarias »

Is the new interface of the last versions the new default for the Qt client, or is there some way to get the webui-like style? (i mean, labels in the toolbar buttons, and filterbar with buttons instead of dropdown boxes).
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

jdarias wrote:Is the new interface of the last versions the new default for the Qt client
I don't know. It is not Windows specific so its better to ask your question in a new thread, just make clear that you are asking about the 'latest' revision (which is a moving target, and not true by now), not the latest release.
jdarias wrote:is there some way to get the webui-like style?
No.
ransagy
Posts: 14
Joined: Wed Aug 18, 2010 6:14 pm

Re: Build Transmission on Windows

Post by ransagy »

I'm still getting the odd problem i've mentioned a bit before, But i haven't been lucky in running the CLI client well enough yet.
Of course anyone's welcome to try for himself and see if he can trigger the same issue.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

Ready for another experimental build?

Here is revision 11195: http://ifile.it/7rvklm8/transmission-qt.exe (stand alone, no installer)

And this is Dbus 1.3.2: http://ifile.it/vsqfaie/dbus-daemon.exe (just put it along side Transmission.)

Changes on this build: Qt is version 4.70rc1, libcurl 7.21.1, compiled with gcc 4.5.1, dbus is the latest but version 1.4 is about to be published, and a few more changes since I rebuilt my cross-development environment.

The experimental part, besides being the last revision as of today, is building the application with all libraries statically linked, no need for dynamic libraries. Long time ago Jordan asked me how much it could be saved (on distribution size) doing it like this and compressing with upx (version 3.06 which is the first one that supports gcc 4.5.x output). The answer comparing the previous installer (8.42 MB) versus this (5.06 MB + 0.76 MB) is about a third (31% to be precise).
ransagy
Posts: 14
Joined: Wed Aug 18, 2010 6:14 pm

Re: Build Transmission on Windows

Post by ransagy »

Neat stuff. I'm assuming just replace an existing install's executables with these two? Testing now.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

ransagy wrote:I'm assuming just replace an existing install's executables with these two?
Or you can put them somewhere else. If you use the same directory then probably the uninstaller will complain, I'm not sure, but it does keep a checksum so it can detect changes.

The older versions have all the libraries which are not needed with this one, they also have the READMEs and COPYINGs for both programs (sort of passing the information as it is, to give credit to original developers), also the web directory with all the web client files (if you run the application stand alone and hit the "Open Web Client" button that is what will show on your browser; if you are using a remote session then the browser is opened on the daemon's page), finally I included a etc directory with a default dbus-daemon session configuration... which the last version is not using at all, I thought it was needed, seems its not.

The big difference between using an installer comes to making file and magnet associations, that's something the application alone will not do, but a power user can do manually anyway. If you uninstall, those associations are deleted.
Post Reply