Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jun 2010 22:21:56 -0700 (PDT)
From:      Don Lewis <truckman@FreeBSD.org>
To:        mezz7@cox.net
Cc:        gnome@FreeBSD.org
Subject:   Re: ports/148101: x11/startup-notification Makefile missing library dependencies [patch]
Message-ID:  <201006250522.o5P5Lu0L028933@gw.catspoiler.org>
In-Reply-To: <op.vet184r99aq2h7@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
On 24 Jun, Jeremy Messenger wrote:
> On Thu, 24 Jun 2010 17:14:57 -0500, Don Lewis <truckman@freebsd.org> wrote:


> The startup-notification does not depend on libSM, libICE and etc. It's  
> just grab from one of silly *.la or *.pc files.

libSM and libICE are getting added to the linker command line by
configure, which for some reason thinks that those are needed presumably
because libXau is getting linked in, but I don't know why it thinks
that.  libxcb pulls libXau in, but I don't know how configure knows
about that.  In any case configure adds -lSM and -lICE, but it doesn't
add -lXau.

Libtool is adding libXau, libXdmcp, and libpthread-stubs to the linker
command line.  This seems wrong to me.  The test programs seem to link
fine without all of these being specified and these libraries should get
dynamically linked in at runtime when libxcb gets pulled in.  The way
that libtool is doing it, startup-notification will need to be rebuilt
when the version number of one of these libraries is rebuilt even though
it doesn't have any direct dependency on them.  Rebuilding libxcb should
be sufficient.  At least these extra libraries are listed as
dependencies of the package through some magic that I don't understand,
unlike libSM and libICE.
 

> No, it's not the policy that I recall unless recently the rule has  
> changed. I don't mind with this, but the problem is that  
> startup-notification does not require libSM, libICE and etc. I am not  
> surpised if I add ltasneededhack in the USE_GNOME and those won't be  
> linked in the library files. But it will require test with some  
> applications before I can put ltasneededhack in it. You can check and see  
> the difference.

I don't think GNOME is the culprit here.  This port's configure script
is hard-wired to pull in these libraries if it finds libICE.  If they
aren't needed, then the best fix is to not link them in.


>> For instance, if a library has a version bump, then everything
>> that links against this library should be rebuilt, but if the library is
> 
> I rather to use 'port* -r' instead of follow that. Because of that silly  
> *.la and *.pc files usually include dependencies incorrect. :-/

That's the way I do it as well, as documented in ports/UPDATING.

BTW, I just ran
	portmaster -n -r libICE-1.0.6,1
and it didn't think that startup-notification needed to be re-installed
even though the port was installed using the original Makefile and ldd
shows that libstartup-notification-1.so depends on libICE.so.6.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201006250522.o5P5Lu0L028933>