[PATCH] make.globals: Enable FEATURES=multilib-strict by default

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] make.globals: Enable FEATURES=multilib-strict by default

Michał Górny-5
Enable the multilib-strict feature necessary for Portage to detect
ebuilds not respecting libdir for libraries. Since those issues were
reliably fixed over the years and we're nearing the removal of 'lib'
symlink, I think we can safely enable it by default for our users
without risking many additional issues for them.

At the same time, many proxied maintainers keep submitting ebuilds that
do not respect libdir, and that require us to explicitly point that out
to them. Having Portage detect that by default would be really helpful.
---
 cnf/make.globals | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/cnf/make.globals b/cnf/make.globals
index 18eba947b..ea50ab615 100644
--- a/cnf/make.globals
+++ b/cnf/make.globals
@@ -52,7 +52,8 @@ FETCHCOMMAND_SFTP="bash -c \"x=\\\${2#sftp://} ; host=\\\${x%%/*} ; port=\\\${ho
 # Default user options
 FEATURES="assume-digests binpkg-logs
           config-protect-if-modified distlocks ebuild-locks
-          fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned
+          fixlafiles merge-sync multilib-strict news
+          parallel-fetch preserve-libs protect-owned
           sandbox sfperms strict unknown-features-warn unmerge-logs
           unmerge-orphans userfetch userpriv usersandbox usersync"
 
--
2.13.3


Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Zac Medico-2
On Wed, Jul 26, 2017 at 12:20 AM, Michał Górny <[hidden email]> wrote:

> Enable the multilib-strict feature necessary for Portage to detect
> ebuilds not respecting libdir for libraries. Since those issues were
> reliably fixed over the years and we're nearing the removal of 'lib'
> symlink, I think we can safely enable it by default for our users
> without risking many additional issues for them.
>
> At the same time, many proxied maintainers keep submitting ebuilds that
> do not respect libdir, and that require us to explicitly point that out
> to them. Having Portage detect that by default would be really helpful.
> ---
>  cnf/make.globals | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

That seems reasonable, especially given that the profile controls the
MULTILIB_STRICT_* variables that enable this. Maybe this is worthy of
sending a warning to the -dev mailing list?
--
Thanks,
Zac

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Michał Górny-5
On śro, 2017-07-26 at 09:58 -0700, Zac Medico wrote:

> On Wed, Jul 26, 2017 at 12:20 AM, Michał Górny <[hidden email]> wrote:
> > Enable the multilib-strict feature necessary for Portage to detect
> > ebuilds not respecting libdir for libraries. Since those issues were
> > reliably fixed over the years and we're nearing the removal of 'lib'
> > symlink, I think we can safely enable it by default for our users
> > without risking many additional issues for them.
> >
> > At the same time, many proxied maintainers keep submitting ebuilds that
> > do not respect libdir, and that require us to explicitly point that out
> > to them. Having Portage detect that by default would be really helpful.
> > ---
> >  cnf/make.globals | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
>
> That seems reasonable, especially given that the profile controls the
> MULTILIB_STRICT_* variables that enable this. Maybe this is worthy of
> sending a warning to the -dev mailing list?
I could do that. However, I suspect that everyone who's developing
Gentoo in any way already uses it ;-).

--
Best regards,
Michał Górny

signature.asc (1007 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Zac Medico-2
On Wed, Jul 26, 2017 at 10:11 AM, Michał Górny <[hidden email]> wrote:

> On śro, 2017-07-26 at 09:58 -0700, Zac Medico wrote:
>> On Wed, Jul 26, 2017 at 12:20 AM, Michał Górny <[hidden email]> wrote:
>> > Enable the multilib-strict feature necessary for Portage to detect
>> > ebuilds not respecting libdir for libraries. Since those issues were
>> > reliably fixed over the years and we're nearing the removal of 'lib'
>> > symlink, I think we can safely enable it by default for our users
>> > without risking many additional issues for them.
>> >
>> > At the same time, many proxied maintainers keep submitting ebuilds that
>> > do not respect libdir, and that require us to explicitly point that out
>> > to them. Having Portage detect that by default would be really helpful.
>> > ---
>> >  cnf/make.globals | 3 ++-
>> >  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> That seems reasonable, especially given that the profile controls the
>> MULTILIB_STRICT_* variables that enable this. Maybe this is worthy of
>> sending a warning to the -dev mailing list?
>
> I could do that. However, I suspect that everyone who's developing
> Gentoo in any way already uses it ;-).

You might think that, but I just checked our profiles and the only one
that currently has it enabled is profiles/arch/sparc/make.defaults. In
profiles/targets/developer/make.defaults there's a reference to this
bug that's been open for 5 years now:

https://bugs.gentoo.org/show_bug.cgi?id=424423
--
Thanks,
Zac

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Michał Górny-5
On śro, 2017-07-26 at 11:29 -0700, Zac Medico wrote:

> On Wed, Jul 26, 2017 at 10:11 AM, Michał Górny <[hidden email]> wrote:
> > On śro, 2017-07-26 at 09:58 -0700, Zac Medico wrote:
> > > On Wed, Jul 26, 2017 at 12:20 AM, Michał Górny <[hidden email]> wrote:
> > > > Enable the multilib-strict feature necessary for Portage to detect
> > > > ebuilds not respecting libdir for libraries. Since those issues were
> > > > reliably fixed over the years and we're nearing the removal of 'lib'
> > > > symlink, I think we can safely enable it by default for our users
> > > > without risking many additional issues for them.
> > > >
> > > > At the same time, many proxied maintainers keep submitting ebuilds that
> > > > do not respect libdir, and that require us to explicitly point that out
> > > > to them. Having Portage detect that by default would be really helpful.
> > > > ---
> > > >  cnf/make.globals | 3 ++-
> > > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > That seems reasonable, especially given that the profile controls the
> > > MULTILIB_STRICT_* variables that enable this. Maybe this is worthy of
> > > sending a warning to the -dev mailing list?
> >
> > I could do that. However, I suspect that everyone who's developing
> > Gentoo in any way already uses it ;-).
>
> You might think that, but I just checked our profiles and the only one
> that currently has it enabled is profiles/arch/sparc/make.defaults. In
> profiles/targets/developer/make.defaults there's a reference to this
> bug that's been open for 5 years now:
>
> https://bugs.gentoo.org/show_bug.cgi?id=424423
To be honest, I started rewriting multilib-strict to be sane but lost
motivation pretty early. Feel free to take it up, it shouldn't be hard.
Just horribly boring.

Basically, it should iterate over all ABIs, get libdirs for them
and look for libraries *directly* in those libdirs. Anything below first
level can be ignored as unclear with a good hit rate anyway.

--
Best regards,
Michał Górny

signature.asc (1007 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Zac Medico-2
On Wed, Jul 26, 2017 at 1:44 PM, Michał Górny <[hidden email]> wrote:

> On śro, 2017-07-26 at 11:29 -0700, Zac Medico wrote:
>> You might think that, but I just checked our profiles and the only one
>> that currently has it enabled is profiles/arch/sparc/make.defaults. In
>> profiles/targets/developer/make.defaults there's a reference to this
>> bug that's been open for 5 years now:
>>
>> https://bugs.gentoo.org/show_bug.cgi?id=424423
>
> To be honest, I started rewriting multilib-strict to be sane but lost
> motivation pretty early. Feel free to take it up, it shouldn't be hard.
> Just horribly boring.
>
> Basically, it should iterate over all ABIs, get libdirs for them
> and look for libraries *directly* in those libdirs. Anything below first
> level can be ignored as unclear with a good hit rate anyway.

Assuming that MULTILIB_STRICT_DIRS contains a reasonable list of
libdirs for the profile, can't we get that behavior by adding
-maxdepth 1 to the find call inside
bin/install-qa-check.d/80multilib-strict? If so, then why haven't we
done this already?
--
Thanks,
Zac

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Michał Górny-5
Dnia 31 lipca 2017 10:17:56 CEST, Zac Medico <[hidden email]> napisał(a):

>On Wed, Jul 26, 2017 at 1:44 PM, Michał Górny <[hidden email]>
>wrote:
>> On śro, 2017-07-26 at 11:29 -0700, Zac Medico wrote:
>>> You might think that, but I just checked our profiles and the only
>one
>>> that currently has it enabled is profiles/arch/sparc/make.defaults.
>In
>>> profiles/targets/developer/make.defaults there's a reference to this
>>> bug that's been open for 5 years now:
>>>
>>> https://bugs.gentoo.org/show_bug.cgi?id=424423
>>
>> To be honest, I started rewriting multilib-strict to be sane but lost
>> motivation pretty early. Feel free to take it up, it shouldn't be
>hard.
>> Just horribly boring.
>>
>> Basically, it should iterate over all ABIs, get libdirs for them
>> and look for libraries *directly* in those libdirs. Anything below
>first
>> level can be ignored as unclear with a good hit rate anyway.
>
>Assuming that MULTILIB_STRICT_DIRS contains a reasonable list of
>libdirs for the profile, can't we get that behavior by adding
>-maxdepth 1 to the find call inside
>bin/install-qa-check.d/80multilib-strict? If so, then why haven't we
>done this already?

Probably because nobody touched it. But yeah, killing the exempt first would be a reasonable first step.


--
Best regards,
Michał Górny (by phone)

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Zac Medico-2
In reply to this post by Michał Górny-5
On Wed, Jul 26, 2017 at 12:20 AM, Michał Górny <[hidden email]> wrote:

> Enable the multilib-strict feature necessary for Portage to detect
> ebuilds not respecting libdir for libraries. Since those issues were
> reliably fixed over the years and we're nearing the removal of 'lib'
> symlink, I think we can safely enable it by default for our users
> without risking many additional issues for them.
>
> At the same time, many proxied maintainers keep submitting ebuilds that
> do not respect libdir, and that require us to explicitly point that out
> to them. Having Portage detect that by default would be really helpful.
> ---
>  cnf/make.globals | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/cnf/make.globals b/cnf/make.globals
> index 18eba947b..ea50ab615 100644
> --- a/cnf/make.globals
> +++ b/cnf/make.globals
> @@ -52,7 +52,8 @@ FETCHCOMMAND_SFTP="bash -c \"x=\\\${2#sftp://} ; host=\\\${x%%/*} ; port=\\\${ho
>  # Default user options
>  FEATURES="assume-digests binpkg-logs
>            config-protect-if-modified distlocks ebuild-locks
> -          fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned
> +          fixlafiles merge-sync multilib-strict news
> +          parallel-fetch preserve-libs protect-owned
>            sandbox sfperms strict unknown-features-warn unmerge-logs
>            unmerge-orphans userfetch userpriv usersandbox usersync"

Let's do it, now that recursion is disabled:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=864585bc32dc0ccad8f53aec03d378d37b385c21

--
Thanks,
Zac

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] make.globals: Enable FEATURES=multilib-strict by default

Michał Górny-5
On śro, 2017-08-02 at 00:30 -0700, Zac Medico wrote:

> On Wed, Jul 26, 2017 at 12:20 AM, Michał Górny <[hidden email]> wrote:
> > Enable the multilib-strict feature necessary for Portage to detect
> > ebuilds not respecting libdir for libraries. Since those issues were
> > reliably fixed over the years and we're nearing the removal of 'lib'
> > symlink, I think we can safely enable it by default for our users
> > without risking many additional issues for them.
> >
> > At the same time, many proxied maintainers keep submitting ebuilds that
> > do not respect libdir, and that require us to explicitly point that out
> > to them. Having Portage detect that by default would be really helpful.
> > ---
> >  cnf/make.globals | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/cnf/make.globals b/cnf/make.globals
> > index 18eba947b..ea50ab615 100644
> > --- a/cnf/make.globals
> > +++ b/cnf/make.globals
> > @@ -52,7 +52,8 @@ FETCHCOMMAND_SFTP="bash -c \"x=\\\${2#sftp://} ; host=\\\${x%%/*} ; port=\\\${ho
> >  # Default user options
> >  FEATURES="assume-digests binpkg-logs
> >            config-protect-if-modified distlocks ebuild-locks
> > -          fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned
> > +          fixlafiles merge-sync multilib-strict news
> > +          parallel-fetch preserve-libs protect-owned
> >            sandbox sfperms strict unknown-features-warn unmerge-logs
> >            unmerge-orphans userfetch userpriv usersandbox usersync"
>
> Let's do it, now that recursion is disabled:
>
> https://gitweb.gentoo.org/proj/portage.git/commit/?id=864585bc32dc0ccad8f53aec03d378d37b385c21
>
Merged.

--
Best regards,
Michał Górny

signature.asc (1007 bytes) Download Attachment