On Tue, Feb 12, 2008 at 01:02:27AM +0100, Sune Vuorela wrote: > Hi! > > This is going to be a long email, so let us start with a executive summary: > split off libqtdbus and libqtscript from libqt4-core and rename libqt4-core > keep libqt4-gui > rework libqt4-sql entirely to make it plugin based > split -dev package. > > > And the real report: > > several times, different requests for splitting qt4 into pieces have been > made. > I find many of them kind of reasonable - and especially when qt4 becomes more > and more popular. > > > A couple of example use cases: > > John have found it quite easy to write a small network service using qt. He > would like to deploy it on some small device, so he would like to only have > around what he actually needs: libQtCore && libQtNetwork. With current > packaging, he also needs to install dbus, a xml parser and other similar > thintgs > > Brian wants to have a set of cross platform command line utilities, so he > writes a set of utils using qt. He only uses QtCore, as he needs no network, > no Xml, no anything. > > Joanne does small graphical apps, like a image viewer and text viewer. In > order to have her programs installed, only parts of qt that is needed is > QtCore and QtGui. no Xml, no openGL, no SVG, ... > > > But enough bullshit. let us look at some numbers: > > libQtCore is used by all packages - and have a set of external dependencies. > libQtCore is 1.5M big > > libQtXml has the same set of external dependencies as libQtCore and is 350K > big. No need to split this out unless we care for 350K > > libQtNetwork has the same set of external dependencies as libQtCore and is > 575 > K big. No need to split this out unless we care for 575K (we might do that) > > libQtScript has same set of external dependences and is 1 mb big. I think we > should care for 1mb. I don't yet know what uses this. > > libQtDBus has same set of external dependencies as QtCore + QtXml + libdbus. > Libdbus + libQtDBus is around 1 mb of extra space and isn't used for quite > many things. > > libQtTest has same set external dependencies as QtCore. is 56k big. no need > to > talk about that. > > This is libqt4-core package. > > > libQtGui is used by all gui libraries. > > libQtSvg has the same external dependencies as QtGui. Internally it also > pulls > in QtXml. libQtSvg is 275K big. > > libQtOpenGL pulls quite some more dependencies in compared to QtGui (libGL, > libGLU, libXdamage, libXxf86vm,libdrm) - but I guess most people still have > those installed. QtOpenGL is 500k big > > Is libQtDesigner, libQtDesignerComponents, libQtAssistantClient anything but > private libraries of designer and assistant ? and shouldn't they be around > them? > > > libQt3Support fits nicely in its own package > > > libQtSql: > pulls in all sorts of evilness. and I still don't think we support everything. > we build in the support for postgresql, mysql, sqlite and sqlite 2. All this > can be as modular packages so people don't have to pull in postgresql to get > mysqlsupport and the other way around. > This way, we could also support firebird and odbc > > > and for completeness: > QtWebkit is 10 mb big - and pulls in Gui, Network, XMl - and libsqlite. > > > And for the -dev stuff. > Several people would like to have the possibility to not pull in everything > in > order to do development. especially the huge QtSql module has had some > complaints. > Some people would also like qmake in a special package. > A split like the following: > libqt4-dev: empty meta package depending on the following > libqt4-gui-dev: gui dev stuff > libqt4-core-dev: core dev stuff (could also contain the dev stuff for the > libraries gets splitted off) > libqt4-sql-dev: sql stuff. > > I guess we should put qmake either in its own package - or among the core dev > stuff. > I would like to not have qmake in a seperate package, as it kind of > encourages > people to use it for anything - while it is only a nice tool for qt > development. > > > Things to make sure to consider: > a package called libqt4-core cannot contain any less functionality than > libqt4-core does today. that means we have to rename the package if we split > stuff off. similar for all other packages. > > there might be a abi breakage on mips in qt4.4, so we might need a package > name change here anyway. > > > Recomendations: > > Take libqt4-core, split off libqtscript4 and libqtdbus4 to its own packages > and rename libqt4-core to libqtcore4 > > keep libqt4-gui as is > > rework libqt4-sql to make it plugin based, which it supports and enable the > rest of the avilable database connectors > > split libqt4-dev, but keep libqt4-dev as a meta package. > > (move some translations and other data files to correct packagages - > translations for assistant is in -core for example) >
I have not looked in deep to this, but sounds reasonable. If fabo and pyro who are the other people working more or less acively in Qt4 agree, go ahead. Ana -- http://lists.alioth.debian.org/mailman/listinfo/pkg-kde-talk
