Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Apr 2010 17:54:17 -0500
From:      Dan Nelson <dnelson@allantgroup.com>
To:        Steve Franks <bahamasfranks@gmail.com>
Cc:        freebsd-hackers@freebsd.org, Leinier Cruz Salfran <salfrancl.listas@gmail.com>
Subject:   Re: there is a way to avoid strict libraries linking?
Message-ID:  <20100422225417.GA14572@dan.emsphone.com>
In-Reply-To: <g2x539c60b91004221538nc58baf36m60e2eb71a395a7f5@mail.gmail.com>
References:  <n2ya2585ef1004140923s2acb8b2ctf7c9b449cb66f208@mail.gmail.com> <20100414174853.GC43908@dan.emsphone.com> <g2x539c60b91004221538nc58baf36m60e2eb71a395a7f5@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Apr 22), Steve Franks said:
> > It's much safer to just leave the libraries alone.  Just because you
> > upgraded libpng doesn't mean that your old gtk binary will stop working
> > (assuming you are using "portupgrade" or "portmaster -w" which preserves
> 
> <About to get flamed, I know>  Untrue.  Portupgrade deletes the old
> version of the port by default.  The PNG upgrade was a major PITA, because
> I installed one new port that thought it had to have it.  I'm sure 98% of
> the ports I then had to upgrade would have still worked just fine even if
> rebuilt against the old libpng.

Are you sure you're talking about portupgrade?  From the manpage:

     -u
     --uninstall-shlibs     Do not preserve old shared libraries.  By
                            default, portupgrade preserves shared libraries
                            on uninstallation for safety.  See the
                            pkg_deinstall(1) manpage and check out the -P
                            option for details.

I've 400 MB of shared libs in /usr/local/lib/compat/pkg as proof that it
does this by default, too.  I should probably clean that out someday :)

> I think the complaint here is that the port dependencies system
> frequently gives the impression/enforces the rule that new ports will
> depend on whatever the most current version of everything is in the
> ports tree at the time they were built, forcing sort of a perpetual
> upgrade cycle.  IMHO this is probably due to naive port maintainers
> (such as myself) incorrectly pointing a port at libpng.5 instead of
> any libpng, or libpng >= 5.  Once the ports tree is 'poisoned' in this
> fashion, there's really no going back.  I'd sure vote for an audit of
> this behavior as a summer of code project.

I don't think the porter's handbook mentions the DEPENDS_* comparison
operators at all, so unless you read (and understood) the
${deptype:L}-depends target in bsd.port.mk, you might not know it existed.

-- 
	Dan Nelson
	dnelson@allantgroup.com



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