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 049431382C5 for ; Sat, 12 May 2018 12:20:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6F7ADE08CA; Sat, 12 May 2018 12:20:38 +0000 (UTC) Received: from mail.flump.de (unknown [84.200.20.107]) (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 1AB17E083B for ; Sat, 12 May 2018 12:20:37 +0000 (UTC) Received: from gump.localnet (p5DEF9893.dip0.t-ipconnect.de [93.239.152.147]) by mail.flump.de (Postfix) with ESMTPSA id C4F5D182E03 for ; Sat, 12 May 2018 14:21:23 +0200 (CEST) From: Gerion Entrup To: gentoo-dev Subject: [gentoo-dev] [RFC] multiversion ebuilds Date: Sat, 12 May 2018 14:20:30 +0200 Message-ID: <2532421.f3YmpD0exa@gump> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart2655247.iOaLz581NL"; micalg="pgp-sha512"; protocol="application/pgp-signature" X-Archives-Salt: 51422b6e-d0fd-4499-997f-b229d375b0a6 X-Archives-Hash: a8caf28714e54258984ec98bebf7f6e8 --nextPart2655247.iOaLz581NL Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8" Hi, just an idea for now. But what you think about multiversion ebuilds? Technically this could be realized with the following line in the ebuild itself: ``` VERSIONS=( 3.0.11 3.0.12 3.1 ) ``` and the filename without version: //.ebuild together with this set of rules: 1. If there is an ebuild with had a version in its name, this ebuild is preferred. e.g. is a tree consists of "foobar/foobar-1.1.ebuild" and "foobar/foobar.ebuild" for version 1.1 the specific ebuild is taken. 2. If the ebuild has the variable VERSIONS specified but also a version in its name, the version in its name is taken. 3. There can be only one multiversioned ebuild per package. Different version keywording can be done as before: ``` if [[ ${PV} == "3.1" ]] ; then KEYWORDS="~amd64 ~x86" else KEYWORDS="amd64 x86" fi ``` The resolution of versions can be done as before, with the difference that one ebuild can represent multiple versions. The "ebuild" tool needs some adjustments. Maybe it tries to download and build all version per default and has an additional flag to specify a single version. The advantages of this idea I see are: - Ebuilds are written in a multiversion manner anyway, and then get copied (or linked?), so it can be made explicit. - The diffs between different versions of ebuilds and the commit history are way more readable. - The size of the tree reduces. Regards, Gerion --nextPart2655247.iOaLz581NL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEEM/tVN9WpYYHnPZHxloeAdSYJHeoFAlr23A8ACgkQloeAdSYJ Herh9wv9FkYI2LFEG+VFqz6moQwYCldVlcmbxblKwVBcl27QeGl/CQ3aYb2iRgwV lanx6yIcDtOLmTJQMLs2JNfkJ+u0+0zIEeb2QG5vZhqXU4TXW63x4CMJKB7RYpup iqDdtQBkMvmR+0IMJhcXeBtnDsedV8MuLFnbUEQ5exnCjDKbZPFZXoktSLOoJkua BH5rL40quVjpaVQhd5JIfuPCHl5l1hdGVShrChGl2p8eGoYpFPjkqj/IRc89UlcH sIP0WUPMsUnnOcdrMd93umfQ4M7dRqsq45qpvDHhxCdi9KsF80sOcsIY1Dy3hF9D NGUusLB8p5WGcr1qNUVnV2hZAOMgIjxgFw8RSvK92CaDlQLwlZNxAQ2Sm+2zwRDl xTutAwJALL9Sp9UdZLZboHlVVz5bavtmETIGGh9VJ51ALIO9AUF5xqxXnNTj+zHF hCi3dxN1mxUXF8sHcePozNra8z6K7ad4dOxfsGLR0pyrfnMPOmVR3Gc/B4544uaH 1jcdiu3S =8O4f -----END PGP SIGNATURE----- --nextPart2655247.iOaLz581NL--