[Pidgin] #16883: Building Bonjour broken on Mac OS X
Pidgin
trac at pidgin.im
Mon Feb 1 16:56:44 EST 2016
#16883: Building Bonjour broken on Mac OS X
---------------------+------------------------
Reporter: clokep | Owner: datallah
Type: defect | Status: new
Milestone: | Component: Bonjour
Version: 2.10.12 | Keywords: regression
---------------------+------------------------
I found this while updating Instantbird to v2.10.12 of libpurple. It seems
that #16507 broke building of bonjour since code is always forced down the
Windows code path (LINK_DNS_SD_DIRECTLY was essentially the Mac OS X code
path where you would statically link to the Bonjour libraryes available on
Mac OS X).
I'm not sure of the best fix for this, but there was some IRC conversation
about this:
{{{
4:03:54 PM - clokep_work: flo-retina: If you have a couple of minutes...in
the logs there's some discussion of bonjour DNS and upgrading libpurple:
http://log.bezut.info/instantbird/160201/#m117
4:03:57 PM - clokep_work: Could maybe use your expertise.
4:30:17 PM - flo-retina: hmm, why is that LINK_DNS_SD_DIRECTLY variable
removed? :-S
4:32:05 PM - EionRobb: from memory, I think we decided to include the
dns_sd file directly to make it easier to compile (not needing to grab
sdks or something)
4:35:16 PM - clokep_work: EionRobb, flo-retina: AFAIK we were using that
only on Mac though?
4:36:44 PM - flo-retina: EionRobb: does that mean you are now shipping the
Bonjour SDK on Windows? Wasn't the license incompatible?
4:37:42 PM - flo-retina: ah, the removed lines are actually "#ifndef
LINK_DNS_SD_DIRECTLY"
4:37:54 PM - flo-retina: so it's going unconditionally now through the
Windows code path (dynamic linking)
4:38:01 PM - flo-retina: so yeah, the Mac code path has been removed :-S.
4:41:13 PM - EionRobb: clokep_work: the apple bonjour is used for windows
and osx
4:41:30 PM - clokep_work: EionRobb: I understand that, we only set
LINK_DNS_SD_DIRECTLY on OS X though.
4:41:52 PM - EionRobb: flo-retina: its just the header and its 3-clause
bsd, so afaik its ok - but I don't remember the full story with what
happened there
4:42:01 PM - clokep_work: flo-retina: That was my thought too. :-S We can
keep that as a patch locally only, I guess.
4:42:09 PM - clokep_work: Or try to argue it should be added back
upstream.
4:42:25 PM - EionRobb: clokep_work: if there's a compiler error on osx in
libpurple then yeah, definitely should be upstreamed :)
4:43:04 PM - clokep_work: EionRobb: I'm not sure if it *can't* be compiled
or it can't be compiled the way we were trying to compile it. ;)
4:43:19 PM - clokep_work: flo-retina: So would maybe making it a dynamic
prpl fix it? :-S
4:43:47 PM - clokep_work: Or...no we're talking about how it links to the
bonjour stuff, aren't we?
4:44:10 PM - EionRobb: clokep_work: good point. I might try building
libpurple with macports/fink/whatever and see what happens
4:45:05 PM - clokep_work: EionRobb: I suspect it will break, there's weird
things in that code:
https://bitbucket.org/pidgin/main/src/0fc4638f51ef4985b7778bba6a0d2b0bfd6b5d9f/libpurple/protocols/bonjour/dns_sd_proxy.c?at=default&fileviewer
=file-view-default#dns_sd_proxy.c-59
4:45:11 PM - clokep_work: I highly doubt that will work on Mac. :)
4:45:46 PM - EionRobb: oh boy
4:46:03 PM - clokep_work: I have a feeling that ifdef was removed without
understanding why it was there, yeah.
4:46:16 PM - EionRobb: :D
4:47:11 PM - clokep_work: Are bugs still on pidgin.im or are they on
BitBucket now? :S
4:48:14 PM - EionRobb: still on trac on developer.pidgin.im
4:49:13 PM - EionRobb: do you think its best to have a #ifdef _WIN32 check
in there, or bring back the LINK_DNS_SD_DIRECTLY ?
4:49:43 PM - EionRobb: or maybe have the LINK_DNS_SD_DRIECTLY be auto set
if __APPLE__ is defined?
4:49:56 PM - flo-retina: that would be nice
4:50:15 PM - flo-retina: I think we just set that define from a makefile
when building on mac right now.
4:50:26 PM - gerard-majax has left the room (Quit: Ping timeout: 121
seconds).
4:50:37 PM - clokep_work: Yep we set it from a Makefile.
4:52:46 PM - EionRobb: that function loading code is win32-specific though
which is dumb... maybe I want to not link directly but have it work on osx
- it probably should use gmodule instead of wpurple_* funcs
4:54:36 PM - clokep_work: EionRobb: So we use mdns_win32.c on Mac also:
http://hg.mozilla.org/users/florian_queze.net/purple/file/tip/libpurple/protocols/bonjour/moz.build
4:55:02 PM - EionRobb: yeah, should be renamed to mdns_apple.c
4:55:19 PM - flo-retina: EionRobb: we statically link on Mac, because the
Apple libraries are guaranteed to exist on OS X.
4:55:28 PM - flo-retina: that function loading code is really only needed
on Windows.
4:55:33 PM - EionRobb: fair enough
}}}
--
Ticket URL: <https://developer.pidgin.im/ticket/16883>
Pidgin <https://pidgin.im>
Pidgin
More information about the Tracker
mailing list