From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 31134138334 for ; Fri, 21 Jun 2019 10:41:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 49735E08C0; Fri, 21 Jun 2019 10:41:19 +0000 (UTC) Received: from smtp.laposte.net (smtpoutz12.laposte.net [194.117.213.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A2921E08C0 for ; Fri, 21 Jun 2019 10:41:18 +0000 (UTC) Received: from smtp.laposte.net (localhost [127.0.0.1]) by lpn-prd-vrout002 (Postfix) with ESMTP id 0E9F9A40EBF for ; Fri, 21 Jun 2019 12:41:17 +0200 (CEST) Received: from smtp.laposte.net (localhost [127.0.0.1]) by lpn-prd-vrout002 (Postfix) with ESMTP id EAAE3A40DC1 for ; Fri, 21 Jun 2019 12:41:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=laposte.net; s=mail0; t=1561113677; bh=i201tZGrIbmbxK5uJX1SkFmi5s5+zUaRmw7LEEi/SBs=; h=Date:From:To:Cc:In-Reply-To:References:Subject; b=cgu1/ywV5GGJRCmJbvZbnpSkvzNZ22Vm0PpxUMieSZn+uc067O7aGpxhofzRo2pX9 5tHY/OR2WVyj9edZeYOUodgxICJD2oaB6B+CLznZTZ8L7JXeiLaSphRmIfCbY/OLQm zkFplUpwgUlaCGWAQr/0eM5jYLWWe9kM8T66xoEQm5wRucDGywvp+p2aUtTv07yHZz Bw6hDCfEEu6AkS7x3tPvT22JT20IBnkjngckMp+dgS9EvxeLwsINYNGYr+g5OE78dI tg9zDBx4saErOZHxICzsAjm9Kd24JrPV2xjgOKqHMhq0Mkw3ZlXUG67dmlTtTTKypB Lu0GD856wrPKg== Received: from lpn-prd-mstr209.laposte (lpn-prd-mstr209.laposte [10.128.59.209]) by lpn-prd-vrout002 (Postfix) with ESMTP id D2D35A40D34; Fri, 21 Jun 2019 12:41:16 +0200 (CEST) Date: Fri, 21 Jun 2019 12:41:16 +0200 (CEST) From: michael.lienhardt@laposte.net To: Zac Medico Cc: gentoo-portage-dev@lists.gentoo.org Message-ID: <1508358953.2810448.1561113676512.JavaMail.zimbra@laposte.net> In-Reply-To: <667b8983-7753-614a-14ab-81afede0ba83@gentoo.org> References: <0f376a7a-8ec1-1374-df2a-bc6a591eaa04@laposte.net> <498256208.5658971.1561057342085.JavaMail.zimbra@laposte.net> <667b8983-7753-614a-14ab-81afede0ba83@gentoo.org> Subject: =?utf-8?Q?Re=C2=A0:_Re:_[gentoo-portage-dev]_Constraint-?= =?utf-8?Q?Based_Dependency_Solver_for_Portage:_again?= Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [86.238.216.86] X-Mailer: Zimbra 8.0.6_GA_5922 (zclient/8.0.6_GA_5922) Thread-Topic: =?utf-8?B?UmXCoDo=?= Re: [gentoo-portage-dev] Constraint-Based Dependency Solver for Portage: again Thread-Index: 3QKMuukVHiuKimsdB1joQeh77Ac/FA== X-VR-FullState: 0 X-VR-Score: -100 X-VR-Cause-1: gggruggvucftvghtrhhoucdtuddrgeduvddrtdeigdefvdcutefuodetggdotefrodftvfcurfhrohhf X-VR-Cause-2: ihhlvgemucfntefrqffuvffgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhs X-VR-Cause-3: ucdlqddutddtmdenucfjughrpeffhffvkfgjfhfugggtgfhiofhtsehtqhgttdertdejnecuhfhrohhm X-VR-Cause-4: pehmihgthhgrvghlrdhlihgvnhhhrghrughtsehlrghpohhsthgvrdhnvghtnecuffhomhgrihhnpehg X-VR-Cause-5: vghnthhoohdrohhrghenucfkphepuddtrdduvdekrdehledrvddtledpkeeirddvfeekrddvudeirdek X-VR-Cause-6: ieenucfrrghrrghmpehmohguvgepshhmthhpohhuthdpihhnvghtpedutddruddvkedrheelrddvtdel X-VR-Cause-7: pdhhvghloheplhhpnhdqphhrugdqmhhsthhrvddtledrlhgrphhoshhtvgdpmhgrihhlfhhrohhmpehm X-VR-Cause-8: ihgthhgrvghlrdhlihgvnhhhrghrughtsehlrghpohhsthgvrdhnvghtpdhrtghpthhtohepiihmvggu X-VR-Cause-9: ihgtohesghgvnhhtohhordhorhhgpdhrtghpthhtohepghgvnhhtohhoqdhpohhrthgrghgvqdguvghv X-VR-Cause-10: sehlihhsthhsrdhgvghnthhoohdrohhrghenucevlhhushhtvghrufhiiigvpedt X-VR-AvState: No X-VR-State: 0 X-Archives-Salt: f6afc7bd-4f2f-446c-8f9d-df2819183f29 X-Archives-Hash: 2d595a5f8396f378ccdc68f42045dedc ----- Zac Medico a =C3=A9crit=C2=A0: > It's capable of considering older versions, but maybe there's some > deficiency in the algorithm. We should analyze a specific example in > order to understand the behavior. >=20 > Maybe you're referring to this code which forces the highest version in > the event of a conflict: >=20 > https://gitweb.gentoo.org/proj/portage.git/commit/?id=3Da9064d08ef4c92a5d= 0d1bfb3dc8a01b7850812b0 >=20 Yes, this seems to be the cause of the problem, thank you. For testing, I created two ebuilds (and tested with "emerge -pv --autounmas= k-backtrack y net-misc/pdepa"): ## net-misc/pdepa-1.0 EAPI=3D6 KEYWORDS=3D"amd64" SLOT=3D"1" IUSE=3D"feature" REQUIRED_USE=3D"" DEPEND=3D"" ## net-misc/pdepa-2.0 EAPI=3D6 KEYWORDS=3D"amd64" SLOT=3D"1" IUSE=3D"feature" REQUIRED_USE=3D"^^ ( feature )" # feature is not set =3D> not installable DEPEND=3D"" Like you said, due to SLOT conflict, only net-misc/pdepa-2.0 is tried, and = emerge fails. Changing the SLOT of net-misc/pdepa-2.0 to 2 "solves the issue": emerge suc= ceeds and propose to install net-misc/pdepa-1.0 However, this solution is only local: if in net-misc/pdepa-2.0 I replace REQUIRED_USE=3D"" # now the package has no configuration problem DEPEND=3D"!virtual/libc" # but it conflicts with an important library then emerge fails again, saying that virtual/libc blocks net-misc/pdepa-2.0 I don't know how many actual packages cannot be installed due to this optim= ization. I noticed this behavior in a previous version of the portage tree, when try= ing to install sys-auth/polkit without configuring it: - old version: REQUIRED_USE=3D"??( systemd consolekit )" - more recent version REQUIRED_USE=3D"^^ ( consolekit, elogind systemd )" In practice however, this was not a problem, as some dependencies of polkit= deep in the tree did require one of ( systemd consolekit ) to be set. If you want, I can implement a test that check if this optimization is a pr= oblem in practice. Checking the issue shouldn't be too difficult (I think I just need to check= that all REQUIRED_USE and *DEPEND are equivalent for a SLOT). Best, Michael