# minimal gtk and qt



## baaz (Dec 8, 2021)

hi 
iam wondering if we could have a minimal version of gtk3 and qt5 because they have alot of dependencys and some that people may don't like,
like :
avahi gtk qt(avahi-app)
dbus gtk qt
CUPS gtk qt
polkit gtk qt
colord gtk
consolekit qt
and more on qt side !
I know the pakage maintainers have a lot of things to do but something like this would be absolutely awesome 



also just a big thanks to the maintainer who is running xorg-minimal that's exactly what I want with gtk and qt!


----------



## SirDice (Dec 9, 2021)

baaz said:


> iam wondering if we could have a minimal version of gtk3 and qt5 because they have alot of dependencys and some that people may don't like,


Build from ports. Then you can disable various options.


----------



## angry_vincent (Dec 9, 2021)

baaz said:


> hi
> iam wondering if we could have a minimal version of gtk3 and qt5 because they have alot of dependencys and some that people may don't like,
> like :
> avahi gtk qt(avahi-app)
> ...


Yes, build from ports, most of additional dependencies in your list can be sorted out by disable off option, however, certain cases could of such: unconditional dependency, for example, CUPS, so that it is getting pulled in, regardless. Maybe they, ports,  can be then improved by being truly conditional, that the task for port  maintenance, if make sense.


----------



## SirDice (Dec 9, 2021)

angry_vincent said:


> unconditional dependency, for example, CUPS,


CUPS can be turned off on GTK2 and GTK3. I have these turned off, I don't have a printer. Don't have CUPS installed anywhere.

Polkit and Consolekit are dependencies of Dbus. Turn that off and polkit/consolekit won't get pulled in either.

Avahi can be turned off most of the time too. Or mDNSresponder can be picked as an alternative.


----------



## baaz (Dec 9, 2021)

SirDice said:


> Build from ports. Then you can disable various options.


thanks for your answer but sadly in ports some dependcys especially dbus is not optional in both qt5 and gtk3 

and also compileing things like qt are really time consuming!


----------



## eternal_noob (Dec 9, 2021)

Would be nice if we could have "lite" variants of such huge packages, like we have x11/xorg-minimal for X.Org.
For people with lower-end hardware (like me) it's out of question to compile beasts like GTK from ports.


----------



## baaz (Dec 9, 2021)

eternal_noob said:


> Would be nice if we could have "lite" variants of such huge packages, like we have x11/xorg-minimal for X.Org.
> For people with lower-end hardware (like me) it's out of question to compile beasts like GTK from ports.


exactly!


----------



## SirDice (Dec 9, 2021)

eternal_noob said:


> Would be nice if we could have "lite" variants of such huge packages, like we have x11/xorg-minimal for X.Org.
> For people with lower-end hardware (like me) it's out of question to compile beasts like GTK from ports.


It works for Xorg because there's nothing depending on it. How are you going to handle all those ports that depend on GTK for example?


----------



## eternal_noob (Dec 9, 2021)

A start would be to separate the runtime and the development packages, like L*nux does it.


----------



## kpedersen (Dec 9, 2021)

If you are building from ports, for most software you can set up a temporary jail, change LOCALBASE to i.e /opt/blender24 and build some large software. Then just move this outside of the jail (but to the same path) and it is almost like a Windows-style self-contained software. You may need to manually set PATH and LD_LIBRARY_PATH but other than that, it generally works OK without cluttering the rest of your OS. You can optimize this process with mount_unionfs.

However in general this setup is quite unsupported (but works pretty well). I have:

/opt/blender24
/opt/blender25
/opt/gtk3
/opt/qt5
/opt/libreoffice
And that is generally the only large software I use. My web browser itself is in its own Jail so I don't need to make a self-contained package of that.

The only area I notice this doesn't work so well is for those Intel / AMDGPU KMS driver packages. They don't respect LOCALBASE and so need some manual positioning. Luckily they are fairly relocatable. I haven't tried this with NVIDIA; I would be tempted to just make an "Xorg Jail".


----------

