...continua...
" > What are you talking about?
>
I don't see it. I created a Gambas project with 'gb.gui', and this not
starting on GNOME desktop without 'gb.gtk' component. 'gb.qt4' is
installed on system, but 'gb.gui' not selecting this.
kendek@Kendek:~$ locate gb.qt4
/usr/lib/gambas3/gb.qt4.component
/usr/lib/gambas3/gb.qt4.so
/usr/lib/gambas3/gb.qt4.so.0
/usr/lib/gambas3/gb.qt4.so.0.0.0
/usr/share/gambas3/info/gb.qt4.info
/usr/share/gambas3/info/gb.qt4.list
kendek@Kendek:~$ '/home/alma/alma.gambas'
gb.gui: unable to load 'gb.gtk' component
ERROR: #2: Cannot load class 'ButtonBox': Cannot load parent class:
Cannot load class 'UserControl': Unable to load class file
alma.desktop uses gb.image, gb.gui and gb.form components
So, alma.gambas (example project) uses gb.image, gb.gui and gb.form
components. :-)
Kende Krisztián "
" > Circular dependencies are not allowed. So if 'foo' depend on 'foo-gtk |
> foo-qt4', the 'foo-gtk' and 'foo-qt4' are not depend on 'foo'. And that
> would be good. Because 'foo' doesn't work without 'foo-gtk' or
> 'foo-qt4', but they are metapackages (that said, confusing to install
> anything).
Ha. ok.
> The other problem, 'foo' application doesn't work on KDE
> desktop with 'foo-gtk', and doesn't work on GNOME desktop with 'foo-qt4'.
Of course they work. If you install 'foo-gtk' on KDE, you will just run
the 'foo' program using the GTK+ libraries.
> The selector component doesn't work well.
What are you talking about?
> alma.desktop uses gb.image, gb.gui and gb.form components
>
OK, you want 'gb.gui' to use 'gb.qt4' if 'gb.gtk' is not present?
This is possible, this is something to fix in the gb.gui source code.
But this is not related to the packaging at all!
--
Benoît Minisini "
" > If 'foo' uses gb.qt4.webkit, it cannot use gb.gui.
>
No, you missed the point. (I think)... :-) 'foo' is only designed to use
gb.gui but it depends on 'ph.auction', which because it relies on
gb.webkit must mean that:
1) the package must contain the gb.qt4 component so that the third party
component will run
2) but on the other hand, if there is something provided by gb.gui that
is internally dependant on the <<switcher>> gb.gui say some theoretical
thing called gb.gui.beaujolais then both gb.qt4 and gb.gui (and the
dreaded beaujolais components must be included.
At the moment this all works because the decision as to which gui is
used is made by the runtime. So even though 'foo' is using gb.gui
something else (ph.auction) it uses depends on and, as you implied,
restricting the application to switch to gb.qt4 with no effort on behalf
of the programmer or the user. To get a bit clearer, or perhaps even
less clear, suppose programmer "Adelie" has no idea what gui will need
to be used for 'foo2' and say for the sake of the argument that they
want to use another 3rd party component that we distribute (ph.sales)
which in turn is dependant on ph.auction. From the point of view of the
IDE, all she needs to do is use gb.gui (and ph.sales) and bingo
everything works. Mainly because the runtime resolves all this and
decides that the whole project needs to be run using the gb.qt4
component.
This is the crux. If you are talking about a packaging system that is
only going to base its' decision on what UI component to include on the
application level ('foo2'), then how do we resolve a dependency that is
(now) two levels away?
'foo2'--> 'gb.gui'
--> 'ph.sales' --> ph.auction --> gb.webkit --> gb.qt4
Adelie can't see, and indeed should not need to see, that dependency
down the chain. So, how far does the packager need to go to decide
whether or not to include/exclude a particular "desktop" (btw: I hate
that word too, it's not a desktop it's a "UI" at best or a "window
widget provider".)
As I said, purely theoretical because we distribute everything as
autotools installers not binaries. It just concerns me that somewhere
down the track an assumption could be made that would render even the
autotools packaging not-working.
--
Bruce "
" > But this is not related to the packaging at all!
>
Yes, I want this. And vice versa. 'gb.gui' use 'gb.gtk' if 'gb.qt4' is
not present.
But yes, is related. Because users don't start the applications with the
current packaging specifications.
Kende Krisztián "
" OK, this is done in revision #5925.
Regards,
--
Benoît Minisini "