public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: michael.lienhardt@laposte.net
To: Zac Medico <zmedico@gentoo.org>
Cc: gentoo-portage-dev@lists.gentoo.org
Subject: Re: [gentoo-portage-dev] precisions on installed packages' dependencies
Date: Tue, 24 Mar 2020 19:31:06 +0100 (CET)	[thread overview]
Message-ID: <763997347.4854538.1585074666541.JavaMail.zimbra@laposte.net> (raw)
In-Reply-To: <518e57d9-423c-99ee-91c1-c591dec902be@gentoo.org>


----- Zac Medico <zmedico@gentoo.org> a écrit :

> > The goal of my tool is to have correct manipulation of package dependencies, and in particular here, I focus on the packages that are installed but not in the portage tree/a local overlay anymore (the problem does not occur for other packages).
> > It seems that installed packages do not store which are the actual cpv they depend on. Correct?
> 
> Right, because unfortunately that's something that changes over time.
> 
> Also, we may not be able to pin it down at any given moment if we have
> inconsistent || preferences as described here:
> 
> https://archives.gentoo.org/gentoo-dev/message/550d3859dea6d0fb0b39064628992634

Hmm, I think I see what you mean.
Storing the cpvs that was used during solving the package's dependencies would be too restrictive, since two different packages could provide the exact same functionalities/libraries.
And so, during a system update, only looking at the cpv dependencies would trigger useless recompilation of the packages that depend on the updated packages.
Correct?

Btw, my tool's solver does not have the problem discussed in the thread you're mentioning: atom order in lists has no influence in my solver.
Would fixing the inconsistent || preferences make storing cpvs for installed packages more realistic?


> > Also, I wanted to use the ebuild tool to install/uninstall package, which is not possible with this solution apparently.
> 
> Why not? Would the preserve-libs feature solve your problem?

... I'm sorry, I wasn't aware of this feature.
It would definitively solve the issue (except, as described in the bug 459038, when external tools remove libs).

This discussion is very interesting!
If I take this double layer of dependencies, I have to check how this influences the theory underlying my tool.

However, I still doubt that only storing the soname dependencies is enough.
Consider package A (that cannot be recompiled) that depends on package B which provides lib L.so.
B is recompiled with different use flags, which put different functionalities in L.so.
The dependencies of A are still satisfied (B is installed, L.so is available), but since the content of L.so changed, A cannot execute anymore.
Hypothetically, can this scenario occur?
Can this scenario occur in practice?
Is there a way in emerge/portage to avoid it?


> Well, there are a lot of upgrades that can't be performed without
> temporarily breaking something, so the "forbid broken dependencies" idea
> doesn't sound feasible to me.

Could you tell me about several instances of such needed dependency breakage?
You have far more experience than me on this, and it would be nice for me to know what I'm up against.

Many thanks!
Michael


  reply	other threads:[~2020-03-24 18:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-23  0:38 [gentoo-portage-dev] precisions on installed packages' dependencies michael.lienhardt
2020-03-23  1:01 ` Zac Medico
2020-03-23 22:21   ` Re : " michael.lienhardt
2020-03-24  4:13     ` Zac Medico
2020-03-24 18:31       ` michael.lienhardt [this message]
2020-03-26  8:06         ` Alec Warner
2020-03-27 13:59           ` michael.lienhardt
2020-03-28  6:48             ` Alec Warner
2020-03-30 21:55               ` michael.lienhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=763997347.4854538.1585074666541.JavaMail.zimbra@laposte.net \
    --to=michael.lienhardt@laposte.net \
    --cc=gentoo-portage-dev@lists.gentoo.org \
    --cc=zmedico@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox