linuxdeployqt
linuxdeployqt copied to clipboard
Consider contributing this to Qt upstream
From the beginning, this tool has been closely modeled after the pre-existing macdeployqt tool to facilitate integration into upstream Qt. The question is whether we should do this.
http://wiki.qt.io/Qt_Contribution_Guidelines
Pros:
- Might lead to valuable discussion, reviews, and contributions from the Qt developer community
- Might become an official part of Qt tools, receiving more attention
When I created this project I was really keen on collaborating with the Qt community. But it seems to me, as a newcomer to the Qt community, this is unnecessary hard because, well, basically they don't use GitHub that we all know and love.
Cons:
- Need to follow a convoluted Gerrit setup involving SSH keys (which is a pain for the nomadic workflow I typically use)
- Reviews by the Qt developer team may lead to additional work no one is currently doing (e.g., rewriting
lddin Qt), hence delaying integration - Everyone who wants to contribute needs separate logins, may decrease drive-by contributions
- Can't use GitHub Issues
- Can' use GitHub Pull Requests, need to learn Gerrit instead
- Complicated processes to follow (rather than just sending a PR)
- Might lead to fewer contributions from the Qt user community (= application developers; linuxdeployqt's target audience)
- Integration with Travis CI?
What do people think? Is it worthwhile? Who would be willing to do the work?
As a first step, I created a pull request that refactors the project into the qt module project structure: #124
I think contributing this to Qt would be awesome, but kinda collide with the AppImage approach. (At least in this early stage). However, by using this project structure, one could provide it as "custom Qt module", anyone can add to their Qt installation, like I did for some of my projects (Example: https://github.com/Skycoder42/QtAutoUpdater).
Since linuxdeployqt is basically a Qt tool, using this approach would greatly improve the integration with Qts build system, and make it easier to use it from pro-files and qmake.
Hi @Skycoder42 thanks for your PR. Can you give an example of how this would make it easier to use it from pro-files and qmake?
The following will become possible, regardless of QT version, install location etc:
qtPrepareTool(QMAKE_LINUXDEPLOYQT, linuxdeployqt)
deploy.target = deploy
delpoy.commands = $$QMAKE_MKDIR nonfhs && $$QMAKE_COPY_FILE $$TARGET nonfhs/ && $$QMAKE_LINUXDEPLOYQT nonfhs/$$TARGET
QMAKE_EXTRA_TARGETS += deploy
And all one has to do is run make deploy to run the tool.
I could update the pull request and wrap this into a qmake feature, making it even easier to use:
load(deploy_linux) #example name
tl;dr: by making it part of the Qt installation, one can improve build and deploy automation. (A cross platform project would only use this part for linux, and create something similar for windows. This way you could run make deploy on any platform)
One more advantage: it will always find the correct qmake executable this way
@probonopd From a quick Google search I can tell, that there are 3rd party websites that let you integrate Github with Gerrit. However I'm not sure if it'd be viable to keep this repo when it becomes part of Qt as there would be some development going on there as well as here. You'd have to send changes to their Gerrit server and also you'd have to add their changes here.
If you go ahead and push this through the Qt company's review system, then this tool can provide a valuable tools for a lot of Linux users, even if it is unbeknownst to them. As you said: you could lose the help of drive-by developers who are not aware the Qt company's internal working, but on the other hand if this is liked by the Qt developers, then you will have the support of a professional community, your tool will reach a much larger audience and will help a lot of people.
Edit: removed last bit about suggesting to email qt developers, just searched through my inbox :)
It would be great if Qt had an official deployment tool for Linux.
Here's a recent thread on the Qt development mailing list discussing it:
https://lists.qt-project.org/pipermail/development/2019-April/035611.html
I agreed. Right now, contribute to Qt is very difficult. Packing linux applications is a headache. I have been using linuxdeployqt for a while and I have only one complain: the speed. I/O operations are much faster under UNIX than under Windows, and still windeployqt is a lot faster. This must be improved. Hope that The Qt Company adopt this project (or linuxdeploy), improve it and release it as an official Qt Tool.
I am happy to work with the Qt team if they want to adopt and improve this tool officially.