Build Transmission on Windows

Ask for help and report issues with the Windows version of Transmission
Post Reply
Jordan
Transmission Developer
Posts: 2311
Joined: Sat May 26, 2007 3:39 pm
Location: Titania's Room

Re: Build Transmission on Windows

Post by Jordan »

That would be great.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

Here's the link to the build page on the Wiki: http://trac.transmissionbt.com/wiki/Building#OnWindows with a little introduction which takes you to the new page: http://trac.transmissionbt.com/wiki/Bui ... nQtWindows

The attachments on that last page you need to download with the link at the bottom that says 'Plain text'.
Jordan
Transmission Developer
Posts: 2311
Joined: Sat May 26, 2007 3:39 pm
Location: Titania's Room

Re: Build Transmission on Windows

Post by Jordan »

rb07: you should submit the natmpmp/miniupnpc patches upstream to http://miniupnp.tuxfamily.org/forum/ :)

also, what does -no-undefined do?
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

Yes, I know about the thirdparty changes, also the patch I did for it to work on Cygwin.

The -no-undefined is to avoid the "link: warning: undefined symbols not allowed in ... shared libraries", which is mandatory with Windows' shared libraries (dll) ... could be one of the things not really needed, I used it early and didn't see if it was still necessary after all the (LIBSPEC) changes I made to the code.

The MinGW compiler is strange, I don't understand why it doesn't define anything (looking at its specs), so the whole configure line with -DWIN32... is really weird to me (and I did comment-out all that for Cygwin, which does define those things if you cross-compile for MinGW, or adds more defines like __CYGWIN__ otherwise).

You may also notice the _WIN32_WINNT (meaning the Windows version), that is something configure running under Windows should define, but it doesn't (btw. that define is necessary to pull the network functions needed, and they only exist under Win XP and above).

There's a lot of little details like that, I'll try to clean things up.

Does making a binary available make sense? I've been thinking I could make the installer into a torrent feed, or put it somewhere so more people can test this... I've had one crash with Qtr, it started behaving weird, a paused torrent I re-started didn't disappear from the paused list, but it was seeding and also showed on the seeding (filter) list... so I tried with another torrent and the application crashed. The Windows event showed the crash was inside a Qt library; I didn't investigate further; but I just duplicated it now (w/o crash so far), looks like if I open the Properties panel the list is not updated, the item on the Seeding list also stops updating until I select it (updates once).
Jordan
Transmission Developer
Posts: 2311
Joined: Sat May 26, 2007 3:39 pm
Location: Titania's Room

Re: Build Transmission on Windows

Post by Jordan »

I don't know how many people would use it, but I think a binary would be fun. If you start building 'em, I'll link to them on the homepage.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

Jordan wrote:I don't know how many people would use it, but I think a binary would be fun. If you start building 'em, I'll link to them on the homepage.
I have no problem with the building, I'll see what I can do (my available Web space, provided by my ISP, is not working at the moment).
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

Moved to Sourceforge any problems with these binary distributions should be reported on the Help forum of that project.
------------------------------------------------------------------------------------------------------------------

Code: Select all

The old links are still usable (but new versions will appear only at SourceForge).

[url]http://ifile.it/aptbk5h/QtTransmission-1.91-Setup.exe[/url]

[url]http://ifile.it/vka93ow/QTransmission-1.92-Setup.exe[/url]

[url]http://ifile.it/u3r9v6i/QTransmission-1.93-Setup.exe[/url]
Note: No improvement on the stand-alone server side.

[url]http://ifile.it/oqgm9t4/QTransmission-2.00beta1-2-Setup.exe[/url]
Note 1: This is a second build, I fixed a long standing mistake I made that showed as QTr not saving the preferences.
Note 2: Does not work as stand-alone server.  This is a little more experimental build, I used Qt 4.7beta1, and a few other libraries in development.

[url]http://ifile.it/p95401q/QTransmission-2.00beta2-Setup.exe[/url]
Note: Does NOT work as stand-alone server.

[url]http://ifile.it/le2fcy8/QTransmission-2.00-Setup.exe[/url]
Note: Fixed stand-alone operation.

[url]http://ifile.it/vq6maew/QTransmission-2.00-2-Setup.exe[/url]
Note: Fixed blocklist download.

[url]http://ifile.it/o05f2iq/QTransmission-2.00%2B-r10847-Setup.exe[/url]
Note: [color=#FF0000]Experimental.  Fixed, very similar to version 2.01, improved communication error handling.[/color]
This is a build of r10847, aka version 2.00+ .
This is just a test version to make available, for general testing, the latest changes that affect [i]Transmission-Qt[/i] on Windows (seems that the name is one of the changes).  The parts that have changed probably only affect the stand-alone operation.  Beware that some private trackers ban the use of experimental versions.

[url]http://ifile.it/piaxvql/QTransmission-2.01-Setup.exe[/url]

[url]http://ifile.it/m8zti4x/QTransmission-2.01%2B-r10904-Setup.exe[/url]
Note: [color=#FF0000]Experimental.  Version 2.01+, same improved communication error handling.[/color]
It does something different (and I don't like it), it creates the config directory under the old config directory on a new "C" directory (my local language setting? C usually means English ANSI to programmers).
See notes on the other experimental build above.

[url]http://ifile.it/4u5iscp/QTransmission-2.03-Setup.exe[/url]
Note: New with this [color=#FF0000]installer [/color]is file and magnet association, which needs D-Bus support included in the same installer.
[color=#FF0000]Fixed[/color]  If you downloaded a previous copy of this version, download this one, the other copies had the current bug in Transmission-Qt which breaks D-Bus use (file/magnet association opens 2nd copy of application, instead of passing the new torrent to the running application).

[url]http://ifile.it/hrk5m26/QTransmission-2.04-Setup.exe[/url]
[color=#FF4000]Warnings[/color]: I've experimented some weird problems with dbus-daemon, sometimes it just loops taking 100% CPU, another time it interferes with Cygwin not allowing me to open terminals (the underlying error is that Cygwin can't open ptys).  Just kill the dbus-daemon and everything goes to normal (except QTransmission if you kept it open and then use the file/magnet association).

[url]http://ifile.it/clajbtf/Transmission-Qt-2.10b1-Setup.exe[/url]

[url]http://ifile.it/074vwa3/Transmission-Qt-2.10-Setup.exe[/url]
[color=#FF4000]Warnings[/color]: DBUS support is broken.

[url]http://ifile.it/75ptunz/Transmission-Qt-2.11-Setup.exe[/url]
Note: Same installer name as yesterday's (I deleted the previous link).  DBUS support fixed.


[url]http://ifile.it/yruqvdj/Transmission-Qt-2.12-Setup.exe[/url]

[url]http://ifile.it/s5y3x9o/Transmission-Qt-2.12-Setup.exe[/url]
Note: Fully functional GUI translations working.
------------------------------------------------------------------------------------------------------------------
Moved to Sourceforge
Last edited by rb07 on Tue Dec 07, 2010 1:30 am, edited 48 times in total.
fat_chris
Posts: 9
Joined: Fri Jun 05, 2009 4:12 pm

Re: Build Transmission on Windows

Post by fat_chris »

Hi rb07,
I've tried your windows build of qtr, and it's working fine, however its not using the native windows style as can be seen: Image
This also shows quassel which is another qt app running on windows which is using the native theme. I've tried running with the -style option and this works, but the build seems not to contain either the "windowsxp" or "windowsvista" styles. I don't know how to make the build include them however.
Any help will be appreciated. :)

PS. The image might get trimmed, qtr is on the right if you cant see it.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

fat_chris :

Basically you are seeing a window inside a window? (for those who don't see the whole image, either right click and "View Image" or drag&drop it to a new tab/window).

It doesn't look anything like that on Win XP. Anyway I didn't make the code, Jordan did, perhaps he knows what is going on (if I remember correctly the default for Qt is the native look, so unless that was changed somewhere... but that's what these beta builds are for: start testing).

I managed to build version 1.70 but its not working, it starts fine, you can see the "About" panel, problem starts when I define the "session" to connect to my remote daemon and the CPU goes to 100%, nothing else. We'll see later what's going on here.
fat_chris
Posts: 9
Joined: Fri Jun 05, 2009 4:12 pm

Re: Build Transmission on Windows

Post by fat_chris »

Well, to me it looks exactly like your screenshot on the first page :wink:

With quasssel, there are three windows styles included: "windows", "windowsxp" and "windowsvista". The only windows style compiled into qtr is "windows" which is like windows 98. I've tried building it myself many times and also tried following your instructions on the wiki to no avail, patches and all. I even tried fedora in a VM so I could follow more closely which didn't help. So if I could I would do it myself and see if the result was any different.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

fat_chris wrote:Well, to me it looks exactly like your screenshot on the first page :wink:
You're right, I was thinking the window behind was part of the same (so the window inside window, with 2 sets of uper right buttons). My mistake. But then, what's the difference in styles btw. the app on the left and the one on the right?
With quasssel, there are three windows styles included: "windows", "windowsxp" and "windowsvista". The only windows style compiled into qtr is "windows" which is like windows 98. I've tried building it myself many times and also tried following your instructions on the wiki to no avail, patches and all. I even tried fedora in a VM so I could follow more closely which didn't help. So if I could I would do it myself and see if the result was any different.
It wouldn't make any difference (running Fedore in a VM inside Vista, or is it Windows 7?), unless you change something in the code or build procedure the result is going to be the same.

I would be interested in knowing what fails when you try to build it, did I mess something in the description? I know I left out that you have to install patch, I was going to correct that and add some notes and a new patch for version 1.70, but the result is looping bad, I'm running it under gdb to try to debug it.

Since you are running two different programs build with Qt, could you test what .dll are being used? You show one built with Qt 4.4.3, the one I built uses Qt 4.5.0, there could be conflicts in there (only one version of the dynamic libraries can be loaded). A simple test would be after a Windows boot/reboot running QTr first, does it look different? Another no so difficult test would be using ProcessExplorer to look at the loaded libraries, are 2 sets being loaded (QtCore4.dll, QtGui4.dll, QtNetwork4.dll).
fat_chris
Posts: 9
Joined: Fri Jun 05, 2009 4:12 pm

Re: Build Transmission on Windows

Post by fat_chris »

I'm using Fedora 11 for a start which you may not be. The were some slight changes to the the build process as mingw32-curl no longer exists so I had to compile that from source, but the problem was with miniupnp.

The differences in the two apps can be seen in the toolbars, buttons and comboboxes etc. About the Qt version variation, I don't think that's an issue really as quassel is a static build so the .dll files aren't listed in Process Explorer.

I'm thinking that the mingw32-qt package in fedora doesn't contain the XP and Vista styles. Maybe you could tar up your build directory (with successfully compiled libtransmission) and upload it somewhere?
That would be much appreciated.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

fat_chris wrote:I'm using Fedora 11 for a start which you may not be. The were some slight changes to the the build process as mingw32-curl no longer exists so I had to compile that from source, but the problem was with miniupnp.
Aha! That points to one step I didn't describe: setting your yum repository (that's why you don't see the ported curl and probably don't get any of the latest tools). Sorry about that.
The differences in the two apps can be seen in the toolbars, buttons and comboboxes etc. About the Qt version variation, I don't think that's an issue really as quassel is a static build so the .dll files aren't listed in Process Explorer.
OK about the differences. I don't agree about dynamic libraries, but as long as you don't see a conflict, no problem.
I'm thinking that the mingw32-qt package in fedora doesn't contain the XP and Vista styles. Maybe you could tar up your build directory (with successfully compiled libtransmission) and upload it somewhere?
That would be much appreciated.
You confused me here, are you talking about the Qt development environment? if yes, then probably it was the use of different repositories what made a difference. Or are you talking about the directory where I built Transmission?

There is no app.setStyle in the code, do you mean then including the plugins?

The missing step on the wiki is creating /etc/yum.repos.d/mingw.repo with:

Code: Select all

[mingw]
name=Fedora Windows cross-compiler, libraries and tools
baseurl=http://homes.merjis.com/~rich/mingw/fedora-rawhide/x86_64/
enabled=1
gpgcheck=0
Hope I didn't missed more steps... I did a lot of other things while trying to find my way, for instance, if you want to run Windows programs under Linux you have to set up Wine (as the Fedora-mingw32 Wiki explains, but their instructions are bad, they missed the easy step of running winecfg instead of doing all the contortions they describe).
fat_chris
Posts: 9
Joined: Fri Jun 05, 2009 4:12 pm

Re: Build Transmission on Windows

Post by fat_chris »

Thanks a lot for the tip! It now compiles and everything but the result is the same. I might try some more things tomorrow.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: Build Transmission on Windows

Post by rb07 »

fat_chris :

Could you do me a favor? While running QTr could you open Windows' Task Manager and see if that version (1.61) is leaking memory (about 100 KB every few seconds; it gets to first place, if you order by memory use, in about 30 min use... yes it beats even Firefox!).

I'm seeing that problem with Qtr 1.70, I'll update the Wiki anyway adding some changes and new patch. Its better to test the latest version...
Post Reply