Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jun 2010 20:54:06 -0500
From:      "Jeremy Messenger" <mezz7@cox.net>
To:        "Don Lewis" <truckman@freebsd.org>
Cc:        gnome@freebsd.org
Subject:   Re: ports/148101: x11/startup-notification Makefile missing library dependencies [patch]
Message-ID:  <op.vet184r99aq2h7@localhost>
In-Reply-To: <201006242215.o5OMEvQk023891@gw.catspoiler.org>
References:  <201006242215.o5OMEvQk023891@gw.catspoiler.org>

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

> On 24 Jun, mezz@FreeBSD.org wrote:
>> Synopsis: x11/startup-notification Makefile missing library  
>> dependencies [patch]
>>
>> State-Changed-From-To: open->closed
>> State-Changed-By: mezz
>> State-Changed-When: Thu Jun 24 20:11:13 UTC 2010
>> State-Changed-Why:
>> If portupgrade inable to understand what need to do then it's a  
>> portupgrade
>> bug. The portmaster will do it in order correct by check lower  
>> dependencies
>> first before update main port. This port already has all dependencies  
>> listed
>> by view in 'make all-depends-list' and no pointyhat failure.
>>
>> http://www.freebsd.org/cgi/query-pr.cgi?pr=148101
>
> Without the patch, these are the dependencies for startup-notification:
>
> scratch:~ 74>pkg_info -r startup-notification-0.10
> Information for startup-notification-0.10:
>
> Depends on:
> Dependency: kbproto-1.0.4
> Dependency: pkg-config-0.23_1
> Dependency: xproto-7.0.16
> Dependency: libXdmcp-1.0.3
> Dependency: libXau-1.0.5
> Dependency: libpthread-stubs-0.3_3
> Dependency: libxcb-1.6
> Dependency: xcb-util-0.3.6_1
> Dependency: libX11-1.3.3,1
>
> startup-notification wants to link against libSM:
>
> /bin/sh /usr/local/bin/libtool --tag=CC   --mode=link cc  -O2 -pipe  
> -fno-strict-
> aliasing -Wall -no-undefined -L/usr/local/lib -o  
> libstartup-notification-1.la -r
> path /usr/local/lib sn-common.lo sn-internals.lo sn-launchee.lo  
> sn-launcher.lo s
> n-list.lo sn-monitor.lo sn-util.lo sn-xmessages.lo sn-xutils.lo  
> -L/usr/local/lib
>  -lxcb   -L/usr/local/lib -lxcb-aux -lxcb   -L/usr/local/lib -lxcb-event  
> -lxcb
>  -L/usr/local/lib -lxcb-atom -lxcb    -L/usr/local/lib -R/usr/local/lib   
> -lSM -l
> ICE -lX11
>
> but none of the dependencies listed above will cause x11/libSM to be
> installed.
>
> x11/libSM also doesn't show up in the output of "make all-depends-list":

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

> scratch# make all-depends-list
> /usr/ports/devel/gmake
> /usr/ports/x11/libX11
> /usr/ports/devel/libtool22
> /usr/ports/devel/pkg-config
> /usr/ports/x11/xcb-util
> /usr/ports/devel/gettext
> /usr/ports/x11/libxcb
> /usr/ports/devel/xorg-macros
> /usr/ports/x11/bigreqsproto
> /usr/ports/x11/xcmiscproto
> /usr/ports/x11/xextproto
> /usr/ports/x11/xtrans
> /usr/ports/x11/kbproto
> /usr/ports/x11/inputproto
> /usr/ports/x11-fonts/xf86bigfontproto
> /usr/ports/x11/libXau
> /usr/ports/x11/libXdmcp
> /usr/ports/x11/xproto
> /usr/ports/devel/automake110
> /usr/ports/devel/autoconf262
> /usr/ports/devel/gperf
> /usr/ports/converters/libiconv
> /usr/ports/devel/libcheck
> /usr/ports/textproc/libxslt
> /usr/ports/x11/xcb-proto
> /usr/ports/devel/libpthread-stubs
> /usr/ports/lang/python26
> /usr/ports/lang/perl5.10
> /usr/ports/devel/automake-wrapper
> /usr/ports/devel/m4
> /usr/ports/misc/help2man
> /usr/ports/devel/autoconf-wrapper
> /usr/ports/security/libgcrypt
> /usr/ports/textproc/libxml2
> /usr/ports/devel/p5-Locale-gettext
> /usr/ports/security/libgpg-error
>
>
> Also, I thought it was the policy that when a port directly links
> against a library that it should be explicitly be specified as a
> dependency rather than to rely on other dependencies to implicitly bring
> it in.

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.

> 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. :-/

Cheers,
Mezz

> not explicitly specified as a dependency then the previously compiled
> version of the port might still reference the old version at the same
> time as one of its other libraries which was recompiled would
> referencethe new version.  I could be mis-remembering this, though.
>


-- 
mezz7@cox.net  -  mezz@FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/  -  gnome@FreeBSD.org



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