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 3F17B138350 for ; Mon, 3 Feb 2020 13:26:48 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 86C0CE08D9; Mon, 3 Feb 2020 13:26:44 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (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 21468E0875 for ; Mon, 3 Feb 2020 13:26:44 +0000 (UTC) Received: from pomiot (c142-245.icpnet.pl [85.221.142.245]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mgorny) by smtp.gentoo.org (Postfix) with ESMTPSA id 8F7AD34E628; Mon, 3 Feb 2020 13:26:41 +0000 (UTC) Message-ID: Subject: Re: [gentoo-dev] Ebuild Generators From: =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?= To: gentoo-dev@lists.gentoo.org Date: Mon, 03 Feb 2020 14:26:37 +0100 In-Reply-To: <12449796.uLZWGnKmhe@falbala> References: <6ec6df8d-9006-dcca-1f41-b0f98b7f7f7c@gentoo.org> <4207106.LvFx2qVVIh@falbala> <87zhdz50d3.fsf@gentoo.org> <12449796.uLZWGnKmhe@falbala> Organization: Gentoo Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-UAK/SYoqEQRJQ28UxFO1" User-Agent: Evolution 3.32.5 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 X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 X-Archives-Salt: e3713d07-bf85-4111-aebe-15327782665f X-Archives-Hash: 82657bd6ea9acf8379c040d833aa16a4 --=-UAK/SYoqEQRJQ28UxFO1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2020-02-03 at 14:20 +0100, Gerion Entrup wrote: > Am Montag, 3. Februar 2020, 13:19:52 CET schrieb Benda Xu: > > Hi Gerion, > >=20 > > Gerion Entrup writes: > >=20 > > > > Yes, that makes a lot of sense. The R overlay follows this model. = Most > > > > of the ebuilds are automated. When an ebuild generation fails, we = add > > > > the ebuild manually, understand it and then update the generator to > > > > cover it in the future. > > >=20 > > > Is this possible in all cases? I think of adding custom patches, > > > appropriate mapping of dependencies, check for things like desktop > > > icon cache... > >=20 > > That's too complex to handle automatically. Luckily, in R overlay, suc= h > > packages are less than 5%. An ebuild generator is based on the > > observation that many language-specific packages are trivial to fetch, > > compile and install. > >=20 > > > > > I'm only "maintaining" an overlay so maybe I'm missing experienc= e > > > > > but I often have wished a tool that automatically parses the lang= uage specific > > > > > packaging files and is able to generate a primitive ebuild out of= that. > > > > > Maybe it even can do this in an interactive way: > > > > > "Hey, upstream needs the dependency 'foo'. In the Gentoo packages= I have found > > > > > 'dev-bar/foo' and 'dev-util/foo'. What is the correct one?" > > > >=20 > > > > Yes, that's the way R overlay is working. And I have a similar pla= n and > > > > proof-of-concept solution for the Java Maven overlay. > > >=20 > > > Nice to hear. I think, it is meaningful to solve all generation with = one > > > tool. Maybe it can even "recognize" the used build system and package > > > database. Is this your plan, too? > >=20 > > No, I don't think it possible as far as I can see... That would be a > > strong AI. > I mean only on a primitive base: > ``` > if link contains "pypi": > # it's a Python package from pypi > handle_pypi() > elif work_tree contains "setup.py": > # it's a Python package > handle_generic_python() >=20 Please don't use generators for Python. You'd have to put a lot of effort to get things right. Most of the time, you'll end up with broken or no tests, useless deps and py2 where unnecessary. Creating ebuilds is not a problem. Maintaining is. Python team ended up with lots of packages dumped by former project members or other developers. Many of them are of very bad quality. Even those that aren't are a maintenance burden. Removing broken and/or useless packages is taking a lot of our time. --=20 Best regards, Micha=C5=82 G=C3=B3rny --=-UAK/SYoqEQRJQ28UxFO1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQGTBAABCgB9FiEEx2qEUJQJjSjMiybFY5ra4jKeJA4FAl44H41fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEM3 NkE4NDUwOTQwOThEMjhDQzhCMjZDNTYzOUFEQUUyMzI5RTI0MEUACgkQY5ra4jKe JA4aeAgAtJbPYrCKqx8uOVIAjW6JeNKZMPuA1fP26qC92yW3MtkB6x6tUhccz2Oq 6A6Yh6srGN7dRoBwaQStZZgztjjNNpasZcSr6X6tLtXhsaagONGY4ecAvCE6HZ4q w/RcctXGYAWY26zJrAl1Ixqz63LpWW0TFJQ/qUFzkR4xDmTDzKRwc6GdxiyB2IGJ DFUZgHLyCWYvFRmRKyVlvjdibDoR8TSRkmEYFy0dDHR2YplyzoUiCYqlWTkQJDhn qxLerkHYod+wTUlfDjMk6Oywe9IWKdcnsxMKPqtUyjAfaOWtU3BoDcTDtU/i1Vsf ePF3w581L0+aMzxEgNdlr1F6vETM5g== =hegV -----END PGP SIGNATURE----- --=-UAK/SYoqEQRJQ28UxFO1--