/srv/irclogs.ubuntu.com/2013/12/14/#ubuntu-motu.txt

hakermaniaHello. I have a question about the inclusion of a package in the repos. I am the packager of Wallch and I want to include the latest version of it in Ubuntu 14.04.'s repos. The thing is that we are adding multi desktop-environment support. This means that different code will be compiled for different desktop environments. Should X different packages get into the repos, where X is the number of the supported DEs?11:13
xnoxhakermania: or just make it runtime detection. e.g. plenty of software out there can detect and use unity shortcuts (if available), gnome3 headerbar (if available), normal menubar on most DEs etc.14:11
xnoxhakermania: and it's best to upload via Debian14:12
hakermaniaxnox, I've already uploaded Wallch into the repos twice, so I don't think that uploading via Debian is the best choice for now. I know that the detection can be done during runtime and that would be the best choice, but I will have to have the dependencies for all the DEs into one binary, which is not ideal14:33
hakermaniaWhat do you think?14:33
hakermaniainto one binary / into one binary package14:33
xnoxyou don't have to declare all dependenices.14:34
xnoxthey can be recommends.14:34
xnoxand e.g. for unity most of the things are over dbus14:34
xnoxand for gnome it's stock gtk so you already have them.14:34
xnoxthe only cases were it's acceptable to split apps is for Qt vs Gtk+14:34
xnoxeverything else is acceptable.14:35
xnoxeach binary package adds a cost is size, mirroring, package lists length that gets downloaded on _all_ machines not just people who use your app.14:35
xnoxso tell me how the dependencies are different to warrant new binary packages?14:36
xnoxsurely detection is done is a way to not cause getting dependencies.14:36
hakermaniaxnox, I am trying to solve this problem but I don't get how to do runtime detection and not have all the dependencies as well. Your code must contain e.g. code that needs libunity. How can this code run if libunity is not installed ?14:51
xnoxhakermania: you can, e.g. dlopen(), but there is no reason to not link against libunity9, it's a small enough library14:52
xnoxhakermania: and many people will have it installed already anyway.14:55
xnoxhakermania: and i'm pretty sure one can interract with unity launcher without libunity914:56
hakermaniaxnox, I also depend on gio-2.0 for gsettings function - which is gnome specific14:56
xnoxgsettings are usable from any DE14:57
xnoxif you have qt/kde frontend and gtk one, sure split it into two packages.14:57
xnoxbut it does not make sence to split: unity, kubuntu, gnome, gnome3, xfce, lxde, monad, etc.14:58
xnoxsee for example transmission: it has curses, qt and gtk frontends.14:58
xnoxbut it does share common settings on the backend.14:58
xnoxhakermania: can you actually show your app?14:58
hakermaniaxnox, What I mean is that in GNOME i use gio/gio.h which will be a global dependency while it is usable only in GNOME like libunity is usable only in Unity14:58
xnoxgseetings is not gnome specific, it's actually multi-platform.14:58
hakermaniaand in transmission is about frontend, not backend14:59
hakermaniaThe application is Wallch, wait a bit for link14:59
xnoxgio is usable on windows/macosx/linux regardless of the DE14:59
hakermaniahttp://melloristudio.com/ourprojects/wallch14:59
xnox + gio has no visual affect.14:59
hakermaniaxnox, thanks for the info, I was not aware of it.14:59
xnoxand all DEs have gio in ubuntu.14:59
hakermaniaxnox, I am not targetting only Ubuntu.15:00
xnoxsure.15:00
hakermaniaxnox, So, you recommend leaving libunity-dev a dependency as is and doing a runtime check for the DE where I will change in every different DE the desktop background using gsettings15:01
hakermaniaIs this truly applicable?15:01
xnoxi'm confused why you are using libunity though.15:01
xnoxon unity, desktop wallpapers are changed by changing gsettings keys.....15:01
hakermaniaxnox, for unity support. Unity launcher progressbar + shortcuts15:01
hakermaniaxnox, I know that.15:02
hakermaniaI have to go for now, sorry.15:02
hakermaniaI will login later15:02
=== schrodinger_ is now known as schrodinger
hakermaniaxnox, Hello again. I want to sum it up a little bit. I want to make Wallch available in multiple different desktop environments. I am using DE-specific libraries for Gnome and Unity (like gio.h and unity.h) but in the other DEs I am planning into launching external commands for changing the background. If gsettings is able to change the background everywhere, then I will totally go with it and libunity indeed is small and thus there is not17:40
hakermania a dependency problem. I will do a runtime check for the DE and run the appropriate code each time. The thing is, can gsettings be used in every DE? I haven't heard that again.17:40
=== Zic_ is now known as Guest99590
=== mapreri_ is now known as mapreri
=== broder_ is now known as broder
xnoxhakermania: instead of unity.h, you can use dbus calls (see wiki page)22:35
xnoxand dbus is universally dependant.22:35
xnoxif a DE is using gsettings then yeah...22:35
hakermaniaxnox, Indeed. But the code is ready and it already uses libunity. Either way libunity is a very small package and shouldn't be bothering anyone. The thing that bothers me more is the gio dependency which will be uneeded in the DEs that don't use gsettings. As far as I know many DEs don't use it. I am not sure where you were referring to when talking about all these DEs that use it.22:37
xnoxhakermania: it should be possible, e.g. here is an example from ubiquity-dm that executes stuff for xfce, gnome, unity, lxc, xcfe conditionally, if available/installed. http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/ubiquity/saucy/view/head:/bin/ubiquity-dm#L39222:37
xnox(sure it's python, but still if you are forking exec() and check if things are available you don't gain mandatory dependencies.22:38
hakermaniaxnox, Of course. That's what I am indented to do. As you can see, it calls external processes.22:38
hakermaniaIt doesn't call gsettings functions22:38
xnoxhakermania: right. so about gio.22:38
xnoxlinking against libgtk / libglib is absolutely ok (that's where gio is provided)22:38
xnoxyou are correct that it might be dead-code, under some environments. So it's a good thing to make a compile-time option, for those who need/want a slim down version.22:39
xnoxin debian/ubuntu however, the default policy is to enable all compile time options possible22:39
xnoxsuch that a single (abeit larger) binary can be executed under any DEs.22:39
xnoxso yeah, i believe gsettings will work on gnome3, gnome-classic & unity.22:40
xnoxbut e.g. you'll need something else / additional code for xfce etc.22:40
xnoxhakermania: as long as your code gracefully handles all conditions and failures you should be fine.22:41
hakermaniaxnox, thanks a lot for helping out :)23:55

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!