Build Transmission on Windows
Re: Build Transmission on Windows
Running it right now, Seems fine so far - Still have my mentioned issue, Trying still to investigate further, not much luck so far.
Re: Build Transmission on Windows
ransagy
The strange thing about the exception you showed is that it comes from Visual C++ runtime... MingGW compiled programs don't link to that library, they use msvcrt.dll .
In fact, since I don't have M$ Visual Studio or anything like that, my transmission-qt.exe runs without that library.
Perhaps you have Visual Studio or the commercial version of Qt (but that also would make no sense, since the last application is statically linked) and its installation changed msvcrt.dll so that it pulls the other library. Can you use Depends (http://www.dependencywalker.com/) to see who pulls that library? Or, if you have Cygwin, just do:
Anyway I see no way to prevent using it (and fixing the exceptions you are seeing), if M$ replaced the original msvcrt.dll the only "fix" would be to include a copy with the application, but that copy might cause other problems (different versions can't be loaded into memory, and they stay loaded for a while).
The strange thing about the exception you showed is that it comes from Visual C++ runtime... MingGW compiled programs don't link to that library, they use msvcrt.dll .
In fact, since I don't have M$ Visual Studio or anything like that, my transmission-qt.exe runs without that library.
Perhaps you have Visual Studio or the commercial version of Qt (but that also would make no sense, since the last application is statically linked) and its installation changed msvcrt.dll so that it pulls the other library. Can you use Depends (http://www.dependencywalker.com/) to see who pulls that library? Or, if you have Cygwin, just do:
Code: Select all
$ cygcheck Transmission/TrQt/transmission-qt.exe
C:\Cygwin\home\rberber\Transmission\TrQt\transmission-qt.exe
C:\WINDOWS\system32\KERNEL32.DLL
C:\WINDOWS\system32\ntdll.dll
C:\WINDOWS\system32\ADVAPI32.DLL
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\Secur32.dll
C:\WINDOWS\system32\COMDLG32.DLL
C:\WINDOWS\system32\COMCTL32.dll
C:\WINDOWS\system32\GDI32.dll
C:\WINDOWS\system32\USER32.dll
C:\WINDOWS\system32\SHELL32.dll
C:\WINDOWS\system32\msvcrt.dll
C:\WINDOWS\system32\SHLWAPI.dll
C:\WINDOWS\system32\IMM32.DLL
C:\WINDOWS\system32\IPHLPAPI.DLL
C:\WINDOWS\system32\WS2_32.dll
C:\WINDOWS\system32\WS2HELP.dll
C:\WINDOWS\system32\OLE32.dll
C:\WINDOWS\system32\OLEAUT32.DLL
C:\WINDOWS\system32\WINMM.DLL
C:\WINDOWS\system32\WINSPOOL.DRV
C:\WINDOWS\system32\wldap32.dll
Re: Build Transmission on Windows
I do have Visual Studio 2010 installed here, Indeed. I'll try and fish the exact dependency from it and report back.
EDIT: Depends shows i use c:\windows\system32\MSVCRT.DLL which has Windows 7's RTM buildstring as a version, but the modified date on it is from July 14th, A great deal after i installed this OS or Visual Studio here. Maybe it was updated in some Windows Update hotfix.
EDIT: Depends shows i use c:\windows\system32\MSVCRT.DLL which has Windows 7's RTM buildstring as a version, but the modified date on it is from July 14th, A great deal after i installed this OS or Visual Studio here. Maybe it was updated in some Windows Update hotfix.
Re: Build Transmission on Windows
Perhaps I'm just confused, msvcrt = MicroSoft Visual C++ Run Time, but Visual Studio installs libraries like: MS Visual C++ 6 sp6 libraries (mfc42, msvcp60, msvcrt), I'm not sure if that modified msvcrt is the problem, or not.
Re: Build Transmission on Windows
Anyone hates those Windows segmented progress bars like I do?
Good news (actually is not news, it has always been there, I just didn't use it before), you can add a parameter like this:
and it will change look to:
No, its not segmented, is actually two color shades, but it does look a bit weird.
Even better (in my opinion):
Yes, continuous. Actually it does have cross hatch, thin, and also using two shades of the same color.
There are also:
Bad news, the mac style doesn't work... yet!
Good news (actually is not news, it has always been there, I just didn't use it before), you can add a parameter like this:
Code: Select all
transmission-qt -style plastique
No, its not segmented, is actually two color shades, but it does look a bit weird.
Even better (in my opinion):
Code: Select all
transmission-qt -style cleanlooks
Yes, continuous. Actually it does have cross hatch, thin, and also using two shades of the same color.
There are also:
Code: Select all
transmission-qt -style gtk
transmission-qt -style motif
# and the Windows variants: windows, windowsxp, windowsvista
Re: Build Transmission on Windows
Beta testing time:
http://ifile.it/clajbtf/Transmission-Qt ... -Setup.exe
Compared to the last release, 2.04, this one changes the application from qtr.exe to transmission-qt.exe and looks and has all the functionality of the latest revisions (just like they look on the previous message). The installer contains a static build of both, transmission and dbus (version 1.4.0).
For those of you building your own, no patches necessary, it builds (almost) out of the box... the build stops while making the utils (a missing -lintl on the 3 executables), but by that time the library is already done, so you can build the Qt application.
If you want the CLI utils (transmission-create, transmission-edit, transmission-show) you can edit the utils/Makefile or run the link command by hand with the missing library.
http://ifile.it/clajbtf/Transmission-Qt ... -Setup.exe
Compared to the last release, 2.04, this one changes the application from qtr.exe to transmission-qt.exe and looks and has all the functionality of the latest revisions (just like they look on the previous message). The installer contains a static build of both, transmission and dbus (version 1.4.0).
For those of you building your own, no patches necessary, it builds (almost) out of the box... the build stops while making the utils (a missing -lintl on the 3 executables), but by that time the library is already done, so you can build the Qt application.
If you want the CLI utils (transmission-create, transmission-edit, transmission-show) you can edit the utils/Makefile or run the link command by hand with the missing library.
Re: Build Transmission on Windows
First observed problem (with latest build): DBUS is not working at all. That means file and magnet association is opening a second application copy.
It is really 2 problems:
It is really 2 problems:
- Starting Transmission-Qt doesn't start the daemon.
- Even with a running daemon T can't register with it.
Re: Build Transmission on Windows
Just uploaded a new installer for the latest, 2.11, look at the very end of that long message:
viewtopic.php?f=1&t=7612&p=37848#p37848
This installer "fixes" DBUS support. It turned out that there was nothing wrong with Transmission, and this applies to all the previous versions that apparently had broken support for file and magnet association...
I'm building the application with static libraries (a.k.a. static linking), but somehow, somewhere (probably Qt 4.7) there is a dependency to the dynamic DBUS library, it doesn't show (using depends or any other tool) as a library dependency, so probably they are using run time library loading or something similar.
Bottom line for those building their own: you have to include also dbus-1.dll alongside the application.
viewtopic.php?f=1&t=7612&p=37848#p37848
This installer "fixes" DBUS support. It turned out that there was nothing wrong with Transmission, and this applies to all the previous versions that apparently had broken support for file and magnet association...
I'm building the application with static libraries (a.k.a. static linking), but somehow, somewhere (probably Qt 4.7) there is a dependency to the dynamic DBUS library, it doesn't show (using depends or any other tool) as a library dependency, so probably they are using run time library loading or something similar.
Bottom line for those building their own: you have to include also dbus-1.dll alongside the application.
Re: Build Transmission on Windows
I wonder if you have plans to add support for different languages. I would like to make the translation to Brazilian Portuguese. The Transmission-QT is the program I use today to download torrent files and control the Transmission-Daemon on my NAS.
Great work, btw.
Great work, btw.
Re: Build Transmission on Windows
Transmission already has support for many languages, including Brazilian Portuguese.cadusilva wrote:I wonder if you have plans to add support for different languages.
What you mean is that it is not working... perhaps you should file a bug (at the Wiki).
On the other hand, are you building it yourself? or using the binary downloaded from the link on page 2 of this thread?
Could be something I'm doing wrong while building, I don't know since I don't test other languages, but I can see that the code is already made for translating from to original to any of the supported languages, things like "tr( "Active" )"... problem could be the cross-build environment, gettext, intltool, or something else has to be done to include multiple language support (I don't know if macros like the above, tr(), works at compile time to produce one language or it leaves a mapping to all languages that is resolved at run time based on the environment).
And a different matter, translations are supported, locales are not. That means using it with character sets different than ASCII doesn't work, and it doesn't matter what language the GUI is, the file/directory names with foreign characters can't be read/written/created.
Re: Build Transmission on Windows
cadusilva
Correction, Transmission-Qt is not using any translations. It has almost everything in place, but just one translation-source file for Russian that is not being used. Actually README.txt says:
does all the magic (I don't think so, we would still need the translations installed).
Qt's Linguist does read .po files, the references in those are to the GTK sorce code files, but the strings themselves are probably the same.
Anyway, it looks like there's no automatic way from .po -> .qm, since they record the context. But this looks not too hard, an awk or perl script could take the transmission_en.ts file with corresponding <language>.po file and produce transmission_<language>.ts; then with lrelease we get the .qm files, put all of them in a directory, also add them to the resources, and voilá they get included in the application (no need to install them).
Also, you are welcome to translate, could use the pt_BR.po file as guide or help. If you have Qt you could convert to the final form, put the result alongside the application and see if that works.
Correction, Transmission-Qt is not using any translations. It has almost everything in place, but just one translation-source file for Russian that is not being used. Actually README.txt says:
Since Transmission-GTK seems to be using the translations on the source/po directory, the fastest way would be to translate those .po files into Qt's .qm files, and add everything to the project (as resources)... unless I'm still wrong and this line of code:VOLUNTEERS WANTED
- Qt developers and translators are needed
Code: Select all
qtTranslator.load( "qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
Qt's Linguist does read .po files, the references in those are to the GTK sorce code files, but the strings themselves are probably the same.
Anyway, it looks like there's no automatic way from .po -> .qm, since they record the context. But this looks not too hard, an awk or perl script could take the transmission_en.ts file with corresponding <language>.po file and produce transmission_<language>.ts; then with lrelease we get the .qm files, put all of them in a directory, also add them to the resources, and voilá they get included in the application (no need to install them).
Also, you are welcome to translate, could use the pt_BR.po file as guide or help. If you have Qt you could convert to the final form, put the result alongside the application and see if that works.
Re: Build Transmission on Windows
So, what's the next step? Where do I go to get started? Do I need to install something?
I am relatively new to the world of QT, Linux and programming. I have yet to join a technical course to get into this area until then unknown to me.
What I can say is that I have the Transmission-QT 2.11 installed and fully functional at this time. Is there any file in any directory that should be translated?
I am also in order to translate the WebUI to make a complete package to the people here who should use more of this "new" (for Windows) and excellent program.
I hope someday Transmission can officially absorb and display the current Transmission-QT, showing it on the download page next to Linux, Web, Terminal and Mac.
Incidentally, I liked so much that I published in my blog an article about this creation.
Finally, do you think of hosting it somewhere like Google Code, SourceForge, GitHub, Ohloh ...? Make it easier to download, monitoring, enhance... Will be good to this work.
I am relatively new to the world of QT, Linux and programming. I have yet to join a technical course to get into this area until then unknown to me.
What I can say is that I have the Transmission-QT 2.11 installed and fully functional at this time. Is there any file in any directory that should be translated?
I am also in order to translate the WebUI to make a complete package to the people here who should use more of this "new" (for Windows) and excellent program.
I hope someday Transmission can officially absorb and display the current Transmission-QT, showing it on the download page next to Linux, Web, Terminal and Mac.
Incidentally, I liked so much that I published in my blog an article about this creation.
Finally, do you think of hosting it somewhere like Google Code, SourceForge, GitHub, Ohloh ...? Make it easier to download, monitoring, enhance... Will be good to this work.
Re: Build Transmission on Windows
As always, there are many ways. You could work with one text file, transmission_en.ts which comes with the source code (and I hope it is up to date), and just add the translations; that needs no installation.cadusilva wrote:So, what's the next step? Where do I go to get started? Do I need to install something?
At the other extreme, installing the Qt SDK, you can start from creating that file, use Qt's Linguist to translate, 'compile' the translation, and test it.
Translating has nothing to do with the above, its just filling up a file which is just a kind of form, Linguist just presents that form with context (source code), and in a specialized editor. Of course this is possible because the developer already did the hard work.I am relatively new to the world of QT, Linux and programming. I have yet to join a technical course to get into this area until then unknown to me.
No, the current installation is mainly one executable. Yes there are many other files, the dbus-daemon executable, and the whole tree of the Web files, but none of those is really needed by the main application, and none is involved in the translation of the main application.What I can say is that I have the Transmission-QT 2.11 installed and fully functional at this time. Is there any file in any directory that should be translated?
That's the idea. I agree that now when people hear Transmission, they only think in terms of Mac OSX or Linux.I am also in order to translate the WebUI to make a complete package to the people here who should use more of this "new" (for Windows) and excellent program.
I hope someday Transmission can officially absorb and display the current Transmission-QT, showing it on the download page next to Linux, Web, Terminal and Mac.
Incidentally, I liked so much that I published in my blog an article about this creation.
No, my primary objective was to make Transmission-Qt build 'out of the box', that was achieved a few versions back. The 'porting' was incomplete since I didn't tackle the use of local languages (anything non-English), Windows is non-standard in that respect (it has 2 different APIs).Finally, do you think of hosting it somewhere like Google Code, SourceForge, GitHub, Ohloh ...? Make it easier to download, monitoring, enhance... Will be good to this work.
Any other objective, in my opinion, should follow the same path: make the necessary changes, put them on the Trac server as proposed enhancements, let the Transmission developers evaluate them, and eventually it may become part of the source code distribution.
Also the developers could do the same they currently do for Mac OSX, provide a binary installer. They don't even need Windows, except if they want to test the product. In my opinion, they already do a lot, adding the Windows monster (80 to 90% of software users) is not an easy task, but since Transmission-Qt can run in Linux and Mac also... to simplify maintenance they could get rid of the other versions (also not easy to do).
Re: Build Transmission on Windows
Well, I have translated the file but do not know how to apply it in TransmissionQT to perform some tests and see if everything is right and decent. Above is the link to download.
Re: Build Transmission on Windows
As I mentioned above, you use lrelease (a tool from the Qt SDK) to produce the .qm binary file, that's the format the application can use.
FYI I found in the Trac server the only other translation for Transmission-Qt: https://trac.transmissionbt.com/ticket/3570 and there's another, older, version. Perhaps you should do the same.
The existence of those files does not change anything, they still have to be incorporated into the application. My guess is that the Russian translator is doing his own builds, with the extra steps needed to do just that. Once you have the .qm file(s) you have 2 possible ways: embed them as resources into the application, or install them in a place Qt looks for them, my guess, alongside the .exe is fine.
FYI I found in the Trac server the only other translation for Transmission-Qt: https://trac.transmissionbt.com/ticket/3570 and there's another, older, version. Perhaps you should do the same.
The existence of those files does not change anything, they still have to be incorporated into the application. My guess is that the Russian translator is doing his own builds, with the extra steps needed to do just that. Once you have the .qm file(s) you have 2 possible ways: embed them as resources into the application, or install them in a place Qt looks for them, my guess, alongside the .exe is fine.