Index | Thread | Search

From:
"emulti@disroot.org" <emulti@disroot.org>
Subject:
Re: net/pidgin: re-enabling Bonjour protocol
To:
Stuart Henderson <stu@spacehopper.org>, ports@openbsd.org
Cc:
brad@comstyle.com
Date:
Tue, 18 Mar 2025 17:04:50 +0800

Download raw body.

Thread
On Mon, 17 Mar 2025 19:53:39 +0000
Stuart Henderson <stu@spacehopper.org> wrote:

> adding port maintainer to CCs;
> 
> On 2025/03/18 00:35, emulti@disroot.org wrote:
> > I would like to try and enable the Bonjour/mDNS protocol for net/pidgin, to trial it as a serverless instant messaging solution for a deployment of diskless OpenBSD clients. 
> > 
> > Looking back through the archives, it seems Bonjour was disabled in the port as long ago as 2008 (when 2.4.2 was committed), though no reason was mentioned in the commit message.
> > 
> > I naively tried to remove the --disable-avahi line in the CONFIGURE_ARGS, and adding avahi-client and avahi-glib to WANTLIBS for libpurple, as this is what the configure script seems to look for:
> 
> WANTLIB updates are normally done based on "make port-lib-depends-check"
> but you'll need to take care of PLISTs fiiii.
> 
> > $ diff Makefile.orig Makefile 
> > 43c43
> > < WANTLIB-libpurple= crypto gadu meanwhile ssl silc silcclient ${WANTLIB}
> > ---
> > > , = avahi-glib avahi-client crypto gadu meanwhile ssl silc silcclient ${WANTLIB}
> > 64a65
> > >                       net/avahi \
> > 76,77c77
> > < CONFIGURE_ARGS+= --disable-avahi \
> > <                --disable-cap \
> > ---
> > > CONFIGURE_ARGS+= --disable-cap \
> > 
> > The Bonjour plugin gets built, and there are no build errors. But on launching Pidgin, and attempting to create a new account, Bonjour is absent from the list of protocols. Avahi is installed and avahi-daemon is running. 
> > 
> > No doubt this is because I have left out something essential in the Makefile due to lack of porting experience. Can anyone assist with advice on how to proceed?
> 
> A new plugin module is built, libbonjour.so, this needs adding to the
> relevant PLIST. "make uodate-plist" is the normal way to update this but
> it sometimes needs tweaking - in this case it ends up in the wrong PLIST
> by default. So you'd need to add
> 
> @so lib/purple-2/libbonjour.so
> 
> to PLIST-libpurple, and then update wantlib as mentioned above.
> 
> > Is there a particular reason for disabling Bonjour in Pidgin, such as security concerns? The protocol won't be used by Pidgin unless an account is added with that protocol, as I understand it. If it can be simply re-enabled and there are no blocking concerns, can Bonjour support be added back to the port?
> 
> Prior to that the port would have picked up avahi and built the extra
> plugin if avahi was present during configure, but it wouldn't be
> included in the package. This causes problems during bulk builds where
> other packages are added/removed all the time. So that commit didn't
> change anything for packages, just fix a sporadic problem.
> 
> Regarding adding it, the question would be about whether the extra
> runtime dependency is wanted. Over to the maintainer for that.
> 
> > thanks in advance for all assistance
> > 
> > -- 
> > Chris Billington 
> > 

Thanks for the help Stuart.
I added avahi-common avahiclient and avahi-glib to WANTLIB-libpurple
make port-lib-depends-check   gives:

libpurple-2.14.13p1(net/pidgin,-libpurple):
Bogus WANTLIB: avahi-glib.0 (/usr/local/lib/purple-2/libbonjour.so) (NOT REACHABLE)
*** Error 1 in target 'port-lib-depends-check' (ignored)

But if I remove avahi-glib from WANTLIB, it complains:

libpurple-2.14.13p1(net/pidgin,-libpurple):
Missing lib: avahi-glib.0 (/usr/local/lib/purple-2/libbonjour.so) (NOT REACHABLE)
*** Error 1 in target 'port-lib-depends-check' (ignored)

But the package avahi-glib is installed and is used in the build below.
I haven't been able to work out why this happens.

Trying to follow the steps in the Porters Guide, I made the manual changes to PLIST as described, then

make fake (libbonjour.so gets built)

make update-plist (and confirmed @so lib/purple-2/libbonjour.so still exists in pkg/PLIST-libpurple:

grep bonjour pkg/*                                                                           
pkg/PLIST-libpurple:@so lib/purple-2/libbonjour.so
pkg/PLIST-libpurple.orig:@so lib/purple-2/libbonjour.so

But doing amake clean,  'make build' followed by 'doas make install', libbonjour.so doesn't get installed in /usr/local/lib/purple-2, so there is still no bonjour protocol available when the application is run.

No doubt I am doing something silly...? But what?


-- 
Chris Billington