public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Tom Gillespie <tgbugs@gmail.com>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Ebuild Generators
Date: Tue, 11 Feb 2020 07:18:44 -0800	[thread overview]
Message-ID: <CA+G3_PP_BCegp-C6Bnjk6guX7f4sE2=cjFs2NT1YLu-LLM2HPw@mail.gmail.com> (raw)
In-Reply-To: <f1346a463cb0f3165281b56338f7073d4cc106aa.camel@gentoo.org>

For historical curiosity there was also
https://github.com/domenkozar/g-pypi at one point (similar to
https://github.com/rafaelmartins/g-octave). Having used g-octave, the
primary issue is as Michał says, there are a lot of corner cases that
the generation doesn't handle correctly which lead to broken ebuilds
and maintenance headaches. Speaking for python, catching and
correcting the use of setup_requires and other insanity visited upon
us by the wonders of setuptools makes this a non-starter. If you have
a set a known sane packages you could in theory write an eclass that
captures the regularities of those packages, but I'm not sure eclasses
are suggested for that use case.
Tom

On Mon, Feb 3, 2020 at 5:27 AM Michał Górny <mgorny@gentoo.org> wrote:
>
> 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,
> > >
> > > Gerion Entrup <gerion.entrup@flump.de> writes:
> > >
> > > > > 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.
> > > >
> > > > Is this possible in all cases? I think of adding custom patches,
> > > > appropriate mapping of dependencies, check for things like desktop
> > > > icon cache...
> > >
> > > That's too complex to handle automatically.  Luckily, in R overlay, such
> > > 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.
> > >
> > > > > > I'm only "maintaining" an overlay so maybe I'm  missing experience
> > > > > > but I often have wished a tool that automatically parses the language 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?"
> > > > >
> > > > > Yes, that's the way R overlay is working.  And I have a similar plan and
> > > > > proof-of-concept solution for the Java Maven overlay.
> > > >
> > > > 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?
> > >
> > > 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()
> >
>
> 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.
>
> --
> Best regards,
> Michał Górny
>


  reply	other threads:[~2020-02-11 15:19 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-16 16:00 [gentoo-dev] GSoC 2020: Call for mentors and project ideas alicef
2020-01-25 12:53 ` Benda Xu
2020-02-02 11:47   ` Benda Xu
2020-02-02 16:54     ` Gerion Entrup
2020-02-03  4:20       ` [gentoo-dev] Ebuild Generators (Was: GSoC 2020: Call for mentors and project ideas) Benda Xu
2020-02-03  9:42         ` Gerion Entrup
2020-02-03 12:19           ` [gentoo-dev] Ebuild Generators Benda Xu
2020-02-03 12:30             ` Michael 'veremitz' Everitt
2020-02-03 13:20             ` Gerion Entrup
2020-02-03 13:26               ` Michał Górny
2020-02-11 15:18                 ` Tom Gillespie [this message]
2020-02-11 23:36                   ` Benda Xu
2020-02-12  7:56                   ` Gerion Entrup

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='CA+G3_PP_BCegp-C6Bnjk6guX7f4sE2=cjFs2NT1YLu-LLM2HPw@mail.gmail.com' \
    --to=tgbugs@gmail.com \
    --cc=gentoo-dev@lists.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