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

Reply via email to