Ticket #2723 (closed defect: fixed)

Opened 2 years ago

Last modified 2 years ago

two problems : dependency and autotools

Reported by: Fab <netfab@gmail.com> Assigned to: asterix
Priority: normal Milestone: 0.11
Component: None Version: svn
Severity: normal Keywords: autotools dbus
Cc: OS:

Description

I think I found two problems with the autotools, concerning dbus and gajim-remote.

First, in the configure.ac we can find this :

if test "x$enable_remote" = "xyes";then
	PKG_CHECK_MODULES([DBUS], [dbus-1 >= 0.60 dbus-glib-1 >= 0.60])

On my system (gentoo), dbus is here but dbus-glib is not (still masked by portage).

However, when I run ./configure with the following parameters, you can see that the checking for DBUS line is set to yes, but dbus-glib is missing.

Is this required or optional ? dbus-glib is not referenced as a dependency in README.html.

./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --enable-nls --enable-remote --enable-idle --disable-trayicon --disable-gtkspell --docdir=/usr/share/doc/gajim-9999 --build=i686-pc-linux-gnu
....
checking for xgettext... /usr/bin/xgettext
checking whether NLS is requested... yes
checking for PYGTK... yes
checking for DBUS... yes
checking for XSCRNSAVER... yes
checking for a Python interpreter with version >= 2.4... python
checking for python... /usr/bin/python
....

Second problem : with the configure line above, the following build features are set :

*****************************
  Build features:
    spell check ...... false
    idle module ...... true
    remote control ... true
    trayicon ......... false
*****************************

But at the end of the installation, /usr/bin/gajim-remote is missing. If you run a grep on the trunk, you can see that script/gajim-remote is not referenced as a binary, so the --enable-remote option is useless for now.

$ grep 'scripts/gajim' *
configure.ac:   scripts/gajim
Makefile.am:bin_SCRIPTS = scripts/gajim
Makefile.am:    scripts/gajim.in
Makefile.am:    scripts/gajim

Thanks.

Attachments

enable-remote.patch (350 bytes) - added by Fab <netfab@gmail.com> on 11/28/06 18:46:24.
want /usr/bin/gajim-remote when --enable-remote enabled :)
enable-remote.2.patch (2.6 kB) - added by Fab <netfab@gmail.com> on 11/28/06 19:49:34.
second try : have /usr/bin/gajim-remote (working) with --enable-remote

Change History

11/28/06 18:46:24 changed by Fab <netfab@gmail.com>

  • attachment enable-remote.patch added.

want /usr/bin/gajim-remote when --enable-remote enabled :)

11/28/06 19:49:34 changed by Fab <netfab@gmail.com>

  • attachment enable-remote.2.patch added.

second try : have /usr/bin/gajim-remote (working) with --enable-remote

11/28/06 19:51:52 changed by Fab <netfab@gmail.com>

First patch is not sufficient.

With the second patch, I think you could remove scripts/gajim-remote.

11/29/06 09:07:42 changed by asterix

(In [7563]) [Fab] install gajim-remote only if dbus is present. see #2723

11/29/06 16:35:00 changed by baze

what about you install python-dbus bindings after you installed gajim? python-dbus is not a neccessary dependency for gajim, but if you don't have it when you install gajim, gajim-remote is not installed. when you install python-dbus afterwards, gajim-remote won't be available without reinstalling gajim, which is bad.

11/29/06 16:46:35 changed by asterix

I agree with you, but if you go this way, we can also not require python ...

IMHO it's a packager thing: packager should have dbus things, so gajim-remote is in package, then once package is installed gajim-remote can be used if user have dbus dep.

11/29/06 18:02:18 changed by baze

well, but python is a required dependecy for gajim(!). without python gajim won't run whereas without python-dbus, you can still run gajim and if you need gajim-remote later, you can just install python-dbus and it works. maybe the best place for gajim-remote would be a plugin that would require python-dbus, but since gajim doesn't feature plugins, that's something that has to be faced in another way of course.

so for now i agree, it's sth that is up to the packager to decide, but that's not the best solution, imho.

11/29/06 19:10:53 changed by asterix

  • status changed from new to closed.
  • resolution set to fixed.

(In [7566]) I see no reason to depend on dbus-glib. I don't have it and gajim-remove works. fixes #2723

11/30/06 10:41:52 changed by Fab <netfab > gmail.com>

@baze : this ticket/patch change nothing for you. From ./configure --help :

--disable-remote   :    enable remote control via DBus default auto

auto means yes if dbus present. But even with this, the wrapper /usr/bin/gajim-remote wasn't installed at all. This was just a bug.

Now : I think the problem with python-dbus is in README.html :

  • D-Bus running to have gajim-remote working
  • python-dbus bindings

This is bindings, ok, but you don't specify what is the advantage for the end-user to install it. For me, optional means : not required, but if you install it, you will have theses advantages.

If there's no advantage for the end-user, should it be an optional requirement ?
If the advantage is to run gajim faster, should it be an option ?
If the advantage is only for developers (easier code, etc...), should it be an option ?

Thanks.

PS : I don't see the difference between dbus and python-dbus.

On gentoo, the package python-dbus doesn't exist. When I build dbus, I have this option :

python  : Adds support/bindings for the Python language

Is this what you call python-dbus ?

If yes, then, for gentoo, python-dbus == dbus with python support.

But it doesn't answer my question : why python-dbus is an optional dependency ?


Add/Change #2723 (two problems : dependency and autotools)




Change Properties
Action