Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#18266 - [qt] More splitted packages to reduce dependencies.

Attached to Project: Arch Linux
Opened by Lorenzo Masini (rugginoso) - Wednesday, 10 February 2010, 00:47 GMT
Last edited by Pierre Schmitz (Pierre) - Sunday, 28 February 2010, 19:55 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Pierre Schmitz (Pierre)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Description:
Since pacman 3.3 was released, there's the new ability to make splitted packages.
It should be usefull to split packages to reduce the dependencies and to provide only what the user want.
Something like what Debian does.

As an example, Qt library:
Now we have only a package qt.
It should become qt-core, qt-gui, qt-network, qt-sql, qt-opengl, qt-xml, qt-sql, qt-sql-sqlite, qt-sql-mysql, etc.
This task depends upon

Closed by  Pierre Schmitz (Pierre)
Sunday, 28 February 2010, 19:55 GMT
Reason for closing:  Upstream
Comment by Pierre Schmitz (Pierre) - Wednesday, 10 February 2010, 01:52 GMT
I'd like to add a comment here as the actual Qt maintainer. There are valid reasons to split up Qt. E.g. there is at least one app I know of that uses Qt but is not a X app. It would also be nice to split out the development tools that are shipped with Qt., or qtwebkit, the database drivers etc..

In theory they claim that Qt is modular. But their buildsystem is really not meant to split the packages (in contrast to e.g. KDE). I did not find any sane way to do so which isn't either very hacky or will result in writing your own make files (__simple__ patches are welcome though).

However: I cheked the benefit and it looks like that e.g. KDE basically needs everything from Qt; there are even apps that link to libs from the qtlinguist and development tools.

Comment by Lorenzo Masini (rugginoso) - Wednesday, 10 February 2010, 03:04 GMT
First of all, I'd like to congratulate with you for the great work you have done with KDE packages.
About splitted Qt, it's at least possible to split the library from the demos and the tools. This is done by the Chakra guys for example.
Talking of the Qt library itself, the /src directory contains a src.pro project, which is a sub-dirs project. Maybe it's possible to call "make install" on each subdir separately (to verify).
No way build one time an move the files afterwards?
Comment by Pierre Schmitz (Pierre) - Wednesday, 10 February 2010, 03:10 GMT
Trust me, I checked all this before. It's not that easy. What chakra does is just moving the devtools binaries etc. in a separate pacakge but leave everything else (libs) in Qt. I don't really see the benefit here. It only reduces a 35MB package by about 1MB, but increases complexity. Qt-doc is already a separate package.

But as I said: feel free to work on this and if the result is a simple PKGBUILD we can rethink about this.
Comment by Jan M. (funkyou) - Wednesday, 10 February 2010, 20:12 GMT
We also split out the demos and examples. This can be done by patching the toplevel makefile _after_ running configure. Its a simple patch. We didnt update it since 4.5.x afaik and it still applies without problems, so even if it smells hackish it does work fine :)

Here is the patch if you want to take a look:
http://chakra-project.org/svn/packages/testing/qtmod/demosexamples-manual-install.patch

By default Qt does "make install" in every subdir, so you can just remove these lines in the makefile for components you dont want and then run the installation in subpackages.

Comment by Pierre Schmitz (Pierre) - Wednesday, 10 February 2010, 20:19 GMT
I think we are talking about different things here. Qt in extra does not have demos, examples nor docs included. Those are in the qt-doc package. And I don't get your patch either; why don't you just these configure options: "-nomake demos -nomake examples -nomake docs"?

For everything else its a little more complicated due to the dependencies between the Qt modules. In fact my patch to that Makefile was quite long. The benefit was low though as only very few packages wont depend on nearly everything. E.g. for KDE it's not worth it.
Comment by Jan M. (funkyou) - Wednesday, 10 February 2010, 23:00 GMT
The agenda was "feel free to work on this", not "is it feasible for me?", and i just added some information how we do it. Now someone can go along with the knowledge gathered here and maybe do something with it.

Of course i know about these options to disable docs, demos etc and that Qt's install targets are a pain ;) The patch just serves the purpose to "keep" the knowledge, so that even unexperienced users can take the PKGBUILD and see how it could be split. All in all, a simple patch or commenting (out) some stuff in the PKGBUILD is the same level of "unclean" and more a matter of personal preference, and i just prefer the patch :)

Loading...