From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-dev+bounces-66985-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	by finch.gentoo.org (Postfix) with ESMTP id D773C13877A
	for <garchives@archives.gentoo.org>; Sun, 27 Jul 2014 14:42:26 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id B36A0E0C52;
	Sun, 27 Jul 2014 14:42:21 +0000 (UTC)
Received: from mail-vc0-f177.google.com (mail-vc0-f177.google.com [209.85.220.177])
	(using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id D0EABE0C2A
	for <gentoo-dev@lists.gentoo.org>; Sun, 27 Jul 2014 14:42:20 +0000 (UTC)
Received: by mail-vc0-f177.google.com with SMTP id hy4so9705015vcb.22
        for <gentoo-dev@lists.gentoo.org>; Sun, 27 Jul 2014 07:42:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:sender:in-reply-to:references:date:message-id:subject
         :from:to:content-type:content-transfer-encoding;
        bh=q03bzIg6Zvi4yEPZtn1uI1VGaq3ocMbN+BdV4Ux3J4U=;
        b=hYsFwNfW7iMyeAWque/Eootjn5WYvUqgdfptJegTUysiCVu6j9TBJ6PYMrSzGkY75a
         ij1fts52+28vrob9iHehyRZaW8wA01TqF3qerOMkPjzvQEUsPyr6NOH77WcwhXPnVGjt
         gxmjGgekYjpl6GE0+vYrTArf076d46A5wOUfMpwHcY9CNR/toawQqzmBCxam6+lYcI2Q
         2VxsiW8lUREcsRRrqJaWfAD5h7gku8sFnbOPT4Mri+h22dRqxrwrXE/muMVYONGuzcfK
         qBPDJb9HamdK8u/2g1kwAeLgjPYVvsJOb6bup2O9yHZTheJie6nutbsn2H8aK/pSld4k
         VGQA==
Precedence: bulk
List-Post: <mailto:gentoo-dev@lists.gentoo.org>
List-Help: <mailto:gentoo-dev+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-dev+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-dev+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-dev.gentoo.org>
X-BeenThere: gentoo-dev@lists.gentoo.org
Reply-to: gentoo-dev@lists.gentoo.org
MIME-Version: 1.0
X-Received: by 10.52.38.105 with SMTP id f9mr30052225vdk.17.1406472139970;
 Sun, 27 Jul 2014 07:42:19 -0700 (PDT)
Sender: freemanrich@gmail.com
Received: by 10.52.8.229 with HTTP; Sun, 27 Jul 2014 07:42:19 -0700 (PDT)
In-Reply-To: <53D5072E.3030305@gentoo.org>
References: <53CD6BED.10603@gentoo.org>
	<53CD8BBA.2010605@gentoo.org>
	<53D5072E.3030305@gentoo.org>
Date: Sun, 27 Jul 2014 10:42:19 -0400
X-Google-Sender-Auth: cFibPhNcN8TtBG5BGcVIhF_ftPU
Message-ID: <CAGfcS_k7gYpC6DnF3TJLKXb9fa0f2ix4Eap5V2BADRZWUD=0uw@mail.gmail.com>
Subject: Re: [gentoo-dev] don't rely on dynamic deps
From: Rich Freeman <rich0@gentoo.org>
To: gentoo-dev <gentoo-dev@lists.gentoo.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Archives-Salt: aaa376c6-9f6a-42f5-8d43-ca9e4634104b
X-Archives-Hash: a377e1dd27cac23107d25e3e5ab9096f

On Sun, Jul 27, 2014 at 10:05 AM, "Pawe=C5=82 Hajdan, Jr."
<phajdan.jr@gentoo.org> wrote:
> On 7/21/14, 11:52 PM, Alexander Berntsen wrote:
>> Micha=C5=82 has documented the shortcomings of dynamic deps in our wiki[=
0].
>> (Thank you!) [...]
>> [0]  <https://wiki.gentoo.org/wiki/Project:Portage/Dynamic_dependencies>
>
> There's one more thing I'd like to ask about:
>
> For "Minor linking change w/ dependency change (unnecessary linking
> removed)" the "dynamic deps" cell is red with "revbump + mostly
> unnecessary rebuild", and "static deps" says "applied after rebuild".
>
> Arguably with dynamic deps one could also skip the revbump, and the
> update would similarly be applied after rebuild.

With dynamic deps you'd need to revbump if there is a linking change.
Otherwise portage would just allow the dependency to be removed, and
then linking will break, since the executable is unnecessarily linked
to the dependency (in that scenario).

If you wanted to apply the change after rebuild then you'd need to
have a way to communicate to portage whether a dependency removal can
be applied immediately (extraneous unlinked dependency) or only after
rebuild (extraneous linked dependency).  The table speaks mostly to
portage as-is without additions like those posted in this thread.

I think that USE changes basically involve potentially-unnecessary
rebuilds no mater what in most real-life cases.  Most people use the
--newuse option when updating their system, so even if static
dependencies don't require rebuilds they're going to get them anyway.
Not using --newuse can cause different issues.

One thing I would question in that table is "applied immediately (but
can break hard when dynamic-deps stop working))."  How can dynamically
removing an "unused dependency" cause something to break, setting
aside bugs in the package manager?  If removing a dependency causes
something to break, how can it be "unused?"

Rich