Re: [gentoo-portage-dev] [PATCH 0/2] emerge: Add short -l option for --load-average (bug 699256)

2020-08-15 Thread Matt Turner
On Sat, Aug 15, 2020 at 12:27 PM Zac Medico  wrote:
>
> Add a short -l option for --load-average just like make(1) has.

That's awesome, thank you. That'll make some catalyst work easier for me.



Re: [gentoo-dev] Last Rites: app-eselect/eselect-opengl

2020-08-11 Thread Matt Turner
On Tue, Aug 11, 2020 at 8:00 PM Philip Webb  wrote:
>
> 200811 Matt Turner wrote:
> > # Matt Turner  (2020-08-11)
> > # Replaced by media-libs/libglvnd.
> > # Masked for removal in 30 days. Bug #728286
> > app-eselect/eselect-opengl
>
> root:552 ~> emerge -cpv eselect-opengl
> Calculating dependencies... done!
>   app-eselect/eselect-opengl-1.3.1-r4 pulled in by:
> media-libs/mesa-20.0.8 requires >=app-eselect/eselect-opengl-1.3.0
> x11-base/xorg-server-1.20.8-r1 requires >=app-eselect/eselect-opengl-1.3.0
>
> 'mesa' is installed with USE="egl", which perhaps needs changing :
>
> root:554 ~> eixe mesa
> [I] media-libs/mesa
>  Available versions:  20.0.8^t ~20.1.4^t ~20.1.5^t ***l^t {+X 
> +classic d3d9 debug +dri3 +egl +gallium +gbm gles1 +gles2 +libglvnd +llvm 
> lm-sensors opencl osmesa selinux test unwind vaapi valgrind vdpau vulkan 
> vulkan-overlay wayland xa xvmc +zstd ABI_MIPS="n32 n64 o32" ABI_RISCV="lp64 
> lp64d" ABI_S390="32 64" ABI_X86="32 64 x32" KERNEL="linux" 
> VIDEO_CARDS="freedreno i915 i965 intel iris lima nouveau panfrost r100 r200 
> r300 r600 radeon radeonsi vc4 virgl vivante vmware"}
>  Installed versions:  20.0.8^t([2020-06-20 09:13:08])(X egl gallium gbm 
> wayland -classic -d3d9 -debug -dri3 -gles1 -gles2 -libglvnd -llvm -lm-sensors 
> -opencl -osmesa -selinux -test -unwind -vaapi -valgrind -vdpau -vulkan 
> -vulkan-overlay -xa -xvmc -zstd ABI_MIPS="-n32 -n64 -o32" ABI_RISCV="-lp64 
> -lp64d" ABI_S390="-32 -64" ABI_X86="64 -32 -x32" KERNEL="linux" 
> VIDEO_CARDS="nouveau -freedreno -i915 -i965 -intel -iris -lima -panfrost 
> -r100 -r200 -r300 -r600 -radeon -radeonsi -vc4 -virgl -vivante -vmware")
>
> but there is no similar flag on 'xorg-server' :
>
> root:553 ~> eix xorg-server
> [I] x11-base/xorg-server
>  Available versions:  1.20.8(0/1.20.8) 1.20.8-r1(0/1.20.8) 
> **(0/)*l {debug dmx doc (+)elogind ipv6 kdrive +libglvnd libressl 
> minimal selinux static-libs (+)suid systemd +udev unwind wayland xcsecurity 
> xephyr xnest xorg xvfb}
>  Installed versions:  1.20.8-r1(0/1.20.8)([2020-08-09 20:16:16])(elogind 
> udev xorg -debug -dmx -doc -ipv6 -kdrive -libglvnd -libressl -minimal 
> -selinux -static-libs -suid -systemd -unwind -wayland -xcsecurity -xephyr 
> -xnest -xvfb)
>
> Before I do anything damaging, can you advise how to handle the above ?

The eix output indicates that you have both mesa and xorg-server built
with USE=-libglvnd. Rebuild both with USE=libglvnd, and then neither
will depend on eselect-opengl. In the same series of commits as I
added this mask, I added 'libglvnd' to use.force, so no local
configuration changes should be necessary, although you appear to have
USE=-libglvnd set somewhere, so you probably will want to clean that
up.



[gentoo-dev] Last Rites: app-eselect/eselect-opengl

2020-08-11 Thread Matt Turner
# Matt Turner  (2020-08-11)
# Replaced by media-libs/libglvnd.
# Masked for removal in 30 days. Bug #728286
app-eselect/eselect-opengl


signature.asc
Description: PGP signature


[gentoo-dev] Last Rites: app-eselect/eselect-opencl

2020-08-11 Thread Matt Turner
# Matt Turner  (2020-08-11)
# No longer needed with virtual/opencl-3
# Masked for removal in 30 days. Bug #728284
app-eselect/eselect-opencl


signature.asc
Description: PGP signature


[gentoo-dev] Last Rites: x11-drivers/nvidia-drivers:0/340

2020-08-11 Thread Matt Turner
# Matt Turner  (2020-08-11)
# NVIDIA declared this branch to have reached end of life about six months ago.
# Blocks removal of app-eselect/eselect-opengl and app-eselect/eselect-opencl.
# Masked for removal in 30 days. Bug #728290
x11-drivers/nvidia-drivers:0/340


signature.asc
Description: PGP signature


Re: [gentoo-dev] Python 2.7 cleanup: plan B

2020-08-11 Thread Matt Turner
On Tue, Aug 11, 2020 at 9:31 AM Michał Górny  wrote:
> TL;DR: we might keep Python 2.7 supported as a build-time dependency
> of a few packages as necessary, while removing the eclass support for
> installing packages for py2.7.

I think this is the right plan (and is along the lines of what I
suggested in the context of removing offlineimap, which didn't need
anything except the Python 2.7 interpreter).



Re: [gentoo-dev] xorg-x11 RDEPEND changes without revisions

2020-08-07 Thread Matt Turner
On Fri, Aug 7, 2020 at 11:25 AM Michael Orlitzky  wrote:
> I have too many other things to do to waste time reverse-engineering
> these fuck-ups. Get it together.

You're fucking welcome for all the X11 maintenance.



[gentoo-dev] Last Rites: dev-util/cmdtest

2020-08-03 Thread Matt Turner

# Matt Turner  (2020-08-03)
# Package is dead and upstream maintainer asked that it be removed.
# Removal in 30 days. Bug #735314
dev-util/cmdtest


signature.asc
Description: PGP signature


Re: [gentoo-dev] Last rites: */*: More Py2 stuff

2020-07-29 Thread Matt Turner
On Tue, Jul 28, 2020 at 7:32 PM Aaron Bauman  wrote:
> On July 28, 2020 9:57:44 PM EDT, Gordon Pettey  wrote:
> >That dependency is only if USE="-gnuefi". sys-boot/gnu-efi has no
> >Python
> >dependency. Instead of masking/removing refind, remove the USE flag and
> >force the gnu-efi dependency, or reverse the condition, add
> >IUSE="tianocore", and mask that USE flag.
> >
> >On Tue, Jul 28, 2020 at 7:06 PM Aaron Bauman  wrote:
> >
> >> On Tue, Jul 28, 2020 at 04:55:57PM -0700, Matt Turner wrote:
> >> > On Tue, Jul 28, 2020 at 4:17 PM Aaron Bauman 
> >wrote:
> >> > > sys-boot/refind
> >> >
> >> > How did you conclude that this package depends on Python at all?
> >> >
> >>
> >> Hi, Matt. It has a dependency on sys-boot/udk which was masked due to
> >> using py2.7 only. Hope that helps.
> >>
> >> --
> >> Cheers,
> >> Aaron
> >>
>
> That is for the maintainer to decide. Hence, all the previous discussions 
> surrounding this topic. It is a massive undertaking to remove py2.7 from the 
> tree.

You've made a very strong case for filing bugs and asking maintainers
to figure out what to do before masking packages for removal.



Re: [gentoo-dev] Last rites: */*: More Py2 stuff

2020-07-28 Thread Matt Turner
On Tue, Jul 28, 2020 at 4:17 PM Aaron Bauman  wrote:
> sys-boot/refind

How did you conclude that this package depends on Python at all?



Re: [gentoo-dev] */*: Mask Py2 only packages

2020-06-25 Thread Matt Turner
On Thu, Jun 25, 2020 at 8:14 PM Aaron Bauman  wrote:
>
> On Wed, Jun 24, 2020 at 10:12:18AM -0700, Matt Turner wrote:
> > offlineimap is widely used and blocks no further work. It can easily
> > remain in the tree after all other python2_7 support is gone.
> >
> > This is not a hill worth dying on.
> >
>
> I am confused here... are you saying that due to usage of the package
> that it should stay until dev-lang/python:2 is gone?
>
> More importantly, I simply responded to Thomas' mention that the package
> has alternatives, but apparently, I don't understand how the package is
> used :)

Two reasons: because it's widely used *and* because its python:2.7
dependency is on only the interpreter itself.

The second reason means that its removal doesn't enable any further clean ups.



Re: [gentoo-dev] */*: Mask Py2 only packages

2020-06-24 Thread Matt Turner
On Wed, Jun 24, 2020 at 2:52 AM Thomas Deutschmann  wrote:
> On 2020-06-20 21:24, Aaron Bauman wrote:
> > Thomas, unfortunately, I am shocked at your choice of words here. I
> > think it is reasonable that any developer would understand a lack
> > of forward momentum in removing Py2 only packages only drives
> > stagnation.
> >
> > If you have a more effective method to doing so, I am open to
> > suggestions.
>
> Like I am shocked about your recent actions:

I'm shocked that you're shocked that he's shocked!

Let's stop the theatrics.



Re: [gentoo-dev] */*: Mask Py2 only packages

2020-06-24 Thread Matt Turner
On Sat, Jun 20, 2020 at 12:24 PM Aaron Bauman  wrote:
>
> On Sat, Jun 20, 2020 at 01:29:46PM +0200, Thomas Deutschmann wrote:
> > On 2020-06-20 12:07, Michał Górny wrote:
> > >> Al least, python2  is not on your list.
> > >>
> > >> Be first into the future by masking this stuff and
> > >> Last out of the past by leaving up to users to decide.
> > >> It could stay in the tree, masked, as long as python2.
> > >>
> > >
> > > Do you really think it'd be better to last rite a 1000 packages
> > > simultaneously?
> >
> > What's the purpose of this at all?
> >
> > dev-lang/python:2.7 won't go away that soon.
> >
> > Removing perfectly working and up-to-date software which is in
> > maintenance-only mode like net-mail/offlineimap is just not user-friendly.
> >
> > It doesn't even has deps on other Python packages blocking your cleanup
> > delusion.
> >
>
> Thomas, unfortunately, I am shocked at your choice of words here. I
> think it is reasonable that any developer would understand a lack
> of forward momentum in removing Py2 only packages only drives
> stagnation.
>
> If you have a more effective method to doing so, I am open to
> suggestions.

Between the disagreements about whether a package should be masked,
the length of time the last rites period should be, and the steps
required to disband a project, I think there's been enough pushback
that it's necessary to change how you approach these projects.

Please start by using the standard 30-day last rites period. It's a
simple thing and whether the packages are in tree for an additional 16
days should not affect any of your work.

> re: net-mail/offlineimap... there are alternatives.

Removing python2_7 support from the tree is a valuable goal, but
offlineimap is widely used and blocks no further work. It can easily
remain in the tree after all other python2_7 support is gone.

This is not a hill worth dying on.



Re: [gentoo-dev] Re: News item: xorg-server dropping default suid

2020-06-21 Thread Matt Turner
On Sun, Jun 21, 2020 at 4:53 PM Philip Webb  wrote:
>
> 200621 Piotr Karbowski wrote:
> > Title: xorg-server dropping default suid
> ...
> > The Gentoo X11 Team is announcing that starting with 15th of July,
> > the x11-base/xorg-server will no longer default to suid
> > and will default to using logind interface instead.  This change
> > makes xorg-server run as regular user rather than root by default,
> > however those who do not have any logind interface provider
> > -- either systemd or elogind -- will need to enable either
> > to make it possible to run X session as unprivileged user.
> > No action is required from systemd and desktop profile users,
> > since systemd provides logind interface
> > and desktop profile already enables 'elogind' USE flag globally.
> > Rest of the non-systemd users is required to globally enable
> > 'elogind' USE flag and apply it by 'emerge --newuse @world',
> > after which, re-login is required so that PAM can allocate seat.
> > One can confirm that a seat has been assigned upon login by running:
> > $ loginctl user-status
> > Those who for whatever reason want to preserve current state,
> > while heavily discouraged,
> > can still use x11-base/xorg-server with 'suid -elogind'.
>
> Gentoo Wiki says :
>
>   elogind is the systemd project's logind, extracted to a standalone package.
>   It's designed for users who prefer a non-systemd init system,
>   but still want to use popular software such as KDE/Wayland or GNOME
>   that otherwise hard-depends on systemd.
>
>   startx integration : To have an elogind session created
>   when using startx to start the X server (instead of a display manager),
>   add the following to the user's ~/.xinitrc file : FILE ~/.xinitrc
>exec dbus-launch --exit-with-session 
>   WINDOW_MANAGER in the above example needs to be replaced
>   by a window manager or a single application.
>
> I want to use 'startx' to start X , because I don't want to be trapped
> if some problem arises with X or KDE or the login manager
> & I need to change config files or remerge pkgs (etc) to rescue myself.
> With 'startx' I can do all that work from raw TTYs with no problems,
> as I am not forced to go into an X session if I don't want to.

Thank you for actually participating in the discussion, unlike the
last thread about this topic.

> I don't want to use 'systemd', as I want to run a traditional UNIX version
> of Linux + KDE (or Fluxbox) for a simple single-user desktop system.
>
> Why is running 'xorg-server' as root "heavily discouraged" ?
> -- I've been doing that with Gentoo for  > 16 yr  without any problems.
> AFAIK there are no problems re exploits via I/net browsers,
> which are started by my user as all such user software always is.
> What might go wrong, if I continue to 'startx'
> with 'xorg-server' merged with 'suid -elogind'
> & without the '.xinitrc' line show above in the Wiki ?

For the majority of users (those that use a graphics driver with
kernel modesetting support), X only needs root access for a small set
of things: accessing the DRM device node, accessing the input device
nodes, and some stuff around VTs. The rest of the time, X doesn't need
root access but still must run as root for those cases I mention.

With elogind, those bits are handled in a small daemon, and X no
longer needs to run as root. Most people find that to be valuable,
especially with the knowledge that there have been a number of
security vulnerabilities found that would allow arbitrary code
execution in the xserver over the years [1].

Our current default of USE=suid installs /usr/bin/Xorg with the setuid
bit set, allowing it to be run *as root* by any user. This enables
non-root users to execute startx, for example.

I appreciate that Gentoo users are a diverse bunch, to say the least.
This news item is about *defaults*. I'm happy to explain the value of
the new default to people who are genuinely curious but I have no
interest in trying to convince you or anyone else of anything.

You're free to keep the status quo with a single line in
/etc/portage/package.use. The people building and maintaining the
distro think that the new defaults are better defaults for the vast
majority of users, but again they're just defaults.

[1] 
https://www.cvedetails.com/vulnerability-list/vendor_id-88/product_id-8600/X.org-Xorg-server.html



Re: [gentoo-dev] Last rites: app-cdr/sync2d

2020-06-05 Thread Matt Turner
On Fri, Jun 5, 2020 at 9:55 AM Jonas Stein  wrote:
>
> On 04/06/2020 01.39, Aaron Bauman wrote:
> > # Aaron Bauman  (2020-06-03)
> > # py2 only. dead upstream. m-n.
> > # Masked for removal in 15 days
> > app-cdr/sync2cd
> >
>
> is there a good reason to reduce the time to 15 days?
>
> https://devmanual.gentoo.org/ebuild-maintenance/removal/index.html
> "Wait 30 days (or more)"

I think we all agree that Python 2-only packages are going to have to
be removed.

This package is Python 2-only, and it was last released more than 13
years ago, and the website even says that the project is dead
(http://c-space.org/).

With that in mind, I don't expect it to gain Python 3 support, nor do
I expect an additional 15 days of waiting time to change that fact. 15
vs 30 days doesn't seem worth squabbling over.



Re: [gentoo-dev] Value of Continuous integration vs Code Review / Pull Requests

2020-05-27 Thread Matt Turner
On Wed, May 27, 2020 at 1:14 AM Alec Warner  wrote:
> On Tue, May 26, 2020, 23:08 Michał Górny  wrote:
>>
>> On Tue, 2020-05-26 at 20:24 -0700, Alec Warner wrote:
>> > The TL;DR is that a crack team of infra-folks[0] have been putting together
>> > demos of CI services and things like gitlab / gitea / gerrit and so on.
>> >
>> > Some of these come in combined (e.g. gitlab offers repo hosting, code
>> > review / pull reqs, CI services, and deploy services.) Some of these are
>> > piecemeal (e.g. gerrit has code review, zuul has CI) and gitea offers
>> > repo-hosting but CI is separate (e.g. drone.)
>> >
>> > On the infra-side, I think we are pretty happy with repo-hosting (gitolite)
>> > and repo-serving (gitweb). We are missing a CI piece and a pull-request
>> > piece. Most of the users using PRs use either a gitlab or github mirror.
>> >
>> > I think the value of CI is pretty obvious to me (and I see tons of use
>> > cases in Infra.) We could easily build CI into our current repository
>> > solution (e.g. gitolite.) However gitolite doesn't really support PRs in a
>> > uniform way and so CI is mostly for submitted code; similar to the existing
>> > ::gentoo repo CI offered by mgorny.
>> >
>> > If we build a code review solution (like gitea / gerrit) would people use
>> > it? Would you use it if you couldn't merge (because the code review
>> > solution can't gpg sign your commits or merges) so a tool like the existing
>> > pram tool would be needed to merge?
>> >
>>
>> Does GitLab count?  Gerrit is just PITA.  I think we had some concerns
>> about Gitea, so I'd like to test it before deciding.  GitLab OTOH works
>> just fine for a lot of projects, and seems the next best thing after
>> GitHub
>
>
> Gitlab does count (we deployed and tested an onprem version.) I think there 
> are some major issues with it though.
>  - Licensing. Gitlab-CE is available, gitlab-EE is not OSS nor OSI approved 
> and many of the features we need are EE only and are not available in CE.

It's very surprising to me that CE wouldn't work for our purposes.
Debian, GNOME, KDE, XFCE, and FreeDesktop have all switched to GitLab
and are using CE. It's hard to believe that Gentoo's usage or
requirements would be so different as to make GitLab a non-viable
option.

What features of EE do you think we need?



Re: [gentoo-dev] New USE=-native-symlinks for gcc-config and binutils-config

2020-05-24 Thread Matt Turner
On Sat, May 23, 2020 at 10:21 PM Joonas Niilola  wrote:
>
>
> On 5/24/20 5:41 AM, Mike Gilbert wrote:
> > Also, people are likely to disable this accidentally via USE="-*".
>
> Counts as
>
> > if they want to break their system intentionally.

Yes, but unfortunately catalyst's stage1 build does exactly this.

Suggestions how to avoid doing this would be appreciated, but until
that's resolved we don't have carte blanche to break USE="-*".



Re: [gentoo-dev] [PATCH 0/1] remove EGO_VENDOR support from go-module.eclass

2020-05-11 Thread Matt Turner
On Mon, May 11, 2020 at 4:00 PM William Hubbs  wrote:
>
> On Tue, May 12, 2020 at 01:45:45AM +0300, Andreas K. Hüttel wrote:
> > > This patch makes migrating mandatory by forcing ebuilds to die if they
> > > have EGO_VENDOR set and are using go-module.eclass.
> >
> > You can't commit this as long as there is a single such ebuild in the tree.
>
> Sure, and I'm working on migrating them.

I think all the replies to this thread could have been avoided by just
saying that in your initial email. :)



Re: [gentoo-dev] [RFC] Ideas for gentoostats implementation

2020-05-04 Thread Matt Turner
On Mon, May 4, 2020 at 5:48 PM Thomas Deutschmann  wrote:
>
> On 2020-04-26 15:46, Kent Fredric wrote:
> > On Sun, 26 Apr 2020 14:38:54 +0200
> > Thomas Deutschmann  wrote:
> >
> >> Let's assume we will get reports that app-misc/foo is only installed 20
> >> times. If you are going to judge based on this data, "Obviously, nobody
> >> is using that package, it's stuck on ... safe to remove" your
> >> view is biased:
> >
> > I see this as more like what bloom filters get you, but in reverse:
> >
> > [...]
> >
> > - But now, instead of having "we don't know if anybody uses this", you
> >   *can* have a "we know for sure somebody uses this".
>
> But how does that information really help us to decide anything in the end?
>
> Case A, stats are showing 0 users:
>
> Like said, we can't know if this is true or if this package is only used
> in setups where people don't report stats.
>
>
> Case B, stats are showing x users:
>
> Now what? Package from case A could have similar users -- we just don't
> know. Assume firefox has 1.000 users, chromium has 500 users and vivaldi
> doesn't show up in stats. How does that help us? Would this allow us to
> skip publishing GLSAs for vivalid because we assume nobody in Gentoo is
> using vivaldi? Does it allow Python project to go forward pushing a mask
> for removal in case vivaldi would depend on Python version, Python
> project want to get rid of? Would this allow Gentoo PR to make a public
> statement like "Firefox is the most popular browser in Gentoo, twice as
> users as chromium"?

I hate the saying "the perfect is the enemy of the good" but I think
it applies here.

You're of course correct that we would not have perfect information.
But the thing about statistics is that you can still know some things
based on a sampling of that perfect information.

I would personally like to have data on whether users of my packages
have certain USE flags enabled. Knowing that would allow me to decide
whether its worth the maintenance burden of supporting features that I
*think* are very rarely used. If instead the data showed me that 50%
of users had IUSE=xyz enabled, I probably wouldn't consider removing
it.

I think your example of potential misuse of data is a bit over dramatic.



Re: [gentoo-dev] [RFC] Mask gnome-extra/cinnamon and deps for removal

2020-04-30 Thread Matt Turner
On Thu, Apr 30, 2020 at 2:32 PM Olivier Laurantin
 wrote:
>
> Hi, blueberry is developed by the cinnamon team but can be used without 
> cinnamon (it should work fine with mate, gnome or xfce at least).
> I can maintain dev-python/xapp if necessary.

Thanks for confirming. Yes, please add yourself to metadata.xml of
x11-libs/xapps and dev-python/xapp if you wouldn't mind :)

> According to https://bugs.gentoo.org/704532 there might be some people 
> interested in maintaining cinnamon. Are they aware of its possible removal?

Hm, no. I hadn't noticed that bug. Hopefully they'll get picked up by
proxy maintainers, etc.



[gentoo-dev] Last Rites: Cinnamon

2020-04-30 Thread Matt Turner

# Matt Turner  (2020-04-30)
# Unmaintained. Blocks removal of other dead packages. No Python3 support.
# Masked for removal in 30 days. Bug #720190
gnome-extra/cinnamon
gnome-extra/cinnamon-control-center
gnome-extra/cinnamon-desktop
gnome-extra/cinnamon-menus
gnome-extra/cinnamon-screensaver
gnome-extra/cinnamon-session
gnome-extra/cinnamon-settings-daemon
gnome-extra/cinnamon-translations
gnome-extra/cjs
gnome-extra/nemo
x11-wm/muffin


signature.asc
Description: PGP signature


Re: [gentoo-dev] [RFC] Mask gnome-extra/cinnamon and deps for removal

2020-04-29 Thread Matt Turner
On Tue, Apr 28, 2020 at 10:06 PM Joonas Niilola  wrote:
>
>
> On 4/28/20 9:18 PM, Matt Turner wrote:
> > I'd like to mask the following packages for removal due to lack of an
> > active maintainer. I'll wait a couple of days for comments before
> > adding the mask to be extra nice.
> >
> > dev-python/xapp
>
> Note that (at least) this has revdeps outside cinnamon.

Thanks, you're right. I excluded net-wireless/blueberry from this list
because it has a maintainer other than cinnamon@. I assume that means
it's useful outside of cinnamon, or should it go to?



[gentoo-dev] [RFC] Mask gnome-extra/cinnamon and deps for removal

2020-04-28 Thread Matt Turner
I'd like to mask the following packages for removal due to lack of an
active maintainer. I'll wait a couple of days for comments before
adding the mask to be extra nice.

dev-python/xapp
gnome-extra/cinnamon
gnome-extra/cinnamon-control-center
gnome-extra/cinnamon-desktop
gnome-extra/cinnamon-menus
gnome-extra/cinnamon-screensaver
gnome-extra/cinnamon-session
gnome-extra/cinnamon-settings-daemon
gnome-extra/cinnamon-translations
gnome-extra/cjs
gnome-extra/nemo
x11-libs/xapps
x11-wm/muffin



Re: [gentoo-portage-dev] [PATCH] Change BINPKG_COMPRESS default from bzip2 to xz

2020-04-26 Thread Matt Turner
On Sun, Apr 26, 2020 at 12:29 PM Michał Górny  wrote:
>
> On Sun, 2020-04-26 at 09:55 -0700, Matt Turner wrote:
> > Bug: https://bugs.gentoo.org/715108
> > Signed-off-by: Matt Turner 
> > ---
> > Strawman patch. Bikeshed away.
> >
>
> xz is generally slow and doesn't do parallel good.  If we want to change
> this, we should go for something cool like zstd that scales better.

That works for me.



[gentoo-portage-dev] [PATCH] Change BINPKG_COMPRESS default from bzip2 to xz

2020-04-26 Thread Matt Turner
Bug: https://bugs.gentoo.org/715108
Signed-off-by: Matt Turner 
---
Strawman patch. Bikeshed away.

 bin/quickpkg   | 2 +-
 lib/portage/package/ebuild/doebuild.py | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/quickpkg b/bin/quickpkg
index df8c1a8e8..1feb01fa1 100755
--- a/bin/quickpkg
+++ b/bin/quickpkg
@@ -115,7 +115,7 @@ def quickpkg_atom(options, infos, arg, eout):
binpkg_tmpfile = os.path.join(bintree.pkgdir,
cpv + ".tbz2." + str(os.getpid()))
ensure_dirs(os.path.dirname(binpkg_tmpfile))
-   binpkg_compression = settings.get("BINPKG_COMPRESS", 
"bzip2")
+   binpkg_compression = settings.get("BINPKG_COMPRESS", 
"xz")
try:
compression = _compressors[binpkg_compression]
except KeyError as e:
diff --git a/lib/portage/package/ebuild/doebuild.py 
b/lib/portage/package/ebuild/doebuild.py
index 2bff94cb1..5020b46fe 100644
--- a/lib/portage/package/ebuild/doebuild.py
+++ b/lib/portage/package/ebuild/doebuild.py
@@ -539,7 +539,7 @@ def doebuild_environment(myebuild, mydo, myroot=None, 
settings=None,
mysettings["KV"] = ""
mysettings.backup_changes("KV")
 
-   binpkg_compression = mysettings.get("BINPKG_COMPRESS", "bzip2")
+   binpkg_compression = mysettings.get("BINPKG_COMPRESS", "xz")
try:
compression = _compressors[binpkg_compression]
except KeyError as e:
-- 
2.25.3




[gentoo-portage-dev] [PATCH] man/make.conf.5: Mention eclean in PKGDIR section

2020-04-26 Thread Matt Turner
And remove obsolete text from binpkg-multi-instance. I believe this was
obsolete even before my gentoolkit patches that add the --changed-deps
flag to eclean packages.

Signed-off-by: Matt Turner 
---
 man/make.conf.5 | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/man/make.conf.5 b/man/make.conf.5
index f82fed65a..a0aa5f129 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -310,10 +310,6 @@ running older portage, since the file format is identical, 
the
 per\-package PATH attribute in the 'Packages' index directs them to
 download the file from the correct URI, and they automatically use
 BUILD_TIME metadata to select the latest builds.
-
-There is currently no automated way to prune old builds from PKGDIR,
-although it is possible to remove packages manually, and then run
-\(aqemaint \-\-fix binhost' to update the ${PKGDIR}/Packages index.
 .TP
 .B buildpkg
 Binary packages will be created for all packages that are merged. Also see
@@ -838,6 +834,9 @@ to it's category. However, for backward compatibility with 
the layout
 used by older versions of portage, if the \fI${PKGDIR}/All\fR directory
 exists then all packages will be stored inside of it and symlinks to
 the packages will be created in the category subdirectories.
+
+If you would like to selectively prune obsolete files from this directory, see
+\fBeclean\fR(1) from the gentoolkit package.
 .br
 Defaults to /var/cache/binpkgs.
 .TP
-- 
2.25.3




Re: [gentoo-dev] [PATCH] Have x11-drivers/nvidia-drivers use an ICD loader

2020-04-20 Thread Matt Turner
On Mon, Apr 20, 2020 at 5:14 AM Marek Szuba  wrote:
>
> On 2020-04-20 06:13, Joonas Niilola wrote:
>
> > He has been on devaway for a while.
> >
> > I would've much rather seen the differences between -r0 -r1 ebuilds to
> > focus on what is actually done there. Not that I have any say what will
> > be done in the end, but it's easier for the eyes...
>
> Indeed, that is a bit of a problem with revbumps. That said, jer did
> update the ebuilds today (jer: thank you!) so no list review will be
> required after all...
>
> OpenCL status update: looks like we are good to go, I'll run some tests
> to confirm that there are no obvious issues with the deptree and
> assuming there aren't, will unleash the whole thing (by which I mean
> "post the news item and unmask the updated loader packages") on the
> unsuspecting public this weekend.

Great! Thank you so much for your work on this.



[gentoo-dev] Re: [PATCH] meson.eclass: export NM and READELF variables

2020-04-20 Thread Matt Turner
Nice. Thanks!



Re: [gentoo-dev] [PATCH] fcaps.eclass: Remove sys-libs/libcap-ng support

2020-04-15 Thread Matt Turner
On Wed, Apr 15, 2020 at 6:44 AM David Michael  wrote:
>
> On Tue, Apr 14, 2020 at 10:32 PM Matt Turner  wrote:
> > At the same time, fix the dependency on sys-libs/libcap by  moving it to
> > RDEPEND, as dependencies in DEPEND/BDEPEND are not guaranteed to exist
> > during pkg_postinst() when this eclass is intended to run.
>
> The BDEPEND was added for https://bugs.gentoo.org/700018 , which is
> still needed so the command is in / during sysroot builds, or
> installing fails.  Maybe deps could be:
>
> EAPI < 7: RDEPEND
> EAPI = 7: RDEPEND + BDEPEND
> EAPI > 7: IDEPEND

Thanks, yeah. That makes sense.



Re: [gentoo-dev] [PATCH] fcaps.eclass: Remove sys-libs/libcap-ng support

2020-04-15 Thread Matt Turner
On Wed, Apr 15, 2020 at 1:37 AM Ulrich Mueller  wrote:
>
> >>>>> On Wed, 15 Apr 2020, Matt Turner wrote:
>
> > At the same time, fix the dependency on sys-libs/libcap by  moving it to
> > RDEPEND, as dependencies in DEPEND/BDEPEND are not guaranteed to exist
> > during pkg_postinst() when this eclass is intended to run.
>
> This is a CBUILD type dependency, right? Then there is no good way to
> express it in EAPI 7. Still, I think that it should be specified in
> BDEPEND (and maybe RDEPEND in addition).

I'm not sure what CBUILD means. What is that?



[gentoo-dev] [PATCH] fcaps.eclass: Remove sys-libs/libcap-ng support

2020-04-14 Thread Matt Turner
libcap-ng-0.7.10 changed the output format slightly (in upstream commit
bc1a9c07ebf5 "- Add capng_have_permitted_capabilities function and use
it in filecap"), breaking our usage of it. It's obvious that it's not
supposed to be used programmatically given the awful sed'ing we were
already doing. It doesn't seem like there was a compelling reason why it
was added either (bug #454908), so let's just get rid of it.

At the same time, fix the dependency on sys-libs/libcap by  moving it to
RDEPEND, as dependencies in DEPEND/BDEPEND are not guaranteed to exist
during pkg_postinst() when this eclass is intended to run.

Signed-off-by: Matt Turner 
---
 eclass/fcaps.eclass | 95 +
 1 file changed, 27 insertions(+), 68 deletions(-)

diff --git a/eclass/fcaps.eclass b/eclass/fcaps.eclass
index 0bb23f8cca7..43a76e253df 100644
--- a/eclass/fcaps.eclass
+++ b/eclass/fcaps.eclass
@@ -33,11 +33,8 @@ _FCAPS_ECLASS=1
 
 IUSE="+filecaps"
 
-# We can't use libcap-ng atm due to #471414.
-case "${EAPI:-0}" in
-   [0-6]) DEPEND="filecaps? ( sys-libs/libcap )" ;;
-   *) BDEPEND="filecaps? ( sys-libs/libcap )" ;;
-esac
+# Since it is needed in pkg_postinst() it must be in RDEPEND
+RDEPEND="filecaps? ( sys-libs/libcap )"
 
 # @ECLASS-VARIABLE: FILECAPS
 # @DEFAULT_UNSET
@@ -134,69 +131,31 @@ fcaps() {
# by people.
chmod ${caps_mode} "${file}" || die
 
-   # Set/verify funcs for sys-libs/libcap.
-   _libcap(){ setcap "${caps}" "${file}" ; }
-   _libcap_verify() { setcap -v "${caps}" "${file}" 
>/dev/null ; }
-
-   # Set/verify funcs for sys-libs/libcap-ng.
-   # Note: filecap only supports =ep mode.
-   # It also expects a different form:
-   #  setcap cap_foo,cap_bar
-   #  filecap foo bar
-   _libcap_ng() {
-   local caps=",${caps%=ep}"
-   filecap "${file}" "${caps//,cap_}"
-   }
-   _libcap_ng_verify() {
-   # libcap-ng has a crappy interface
-   local rcaps icaps caps=",${caps%=ep}"
-   rcaps=$(filecap "${file}" | \
-   sed -nr \
-   -e "s:^.{${#file}} +::" \
-   -e 's:, +:\n:g' \
-   -e 2p | \
-   LC_ALL=C sort)
-   [[ ${PIPESTATUS[0]} -eq 0 ]] || return 1
-   icaps=$(echo "${caps//,cap_}" | LC_ALL=C sort)
-   [[ ${rcaps} == ${icaps} ]]
-   }
-
-   local out cmd notfound=0
-   for cmd in _libcap _libcap_ng ; do
-   if ! out=$(LC_ALL=C ${cmd} 2>&1) ; then
-   case ${out} in
-   *"command not found"*)
-   : $(( ++notfound ))
-   continue
-   ;;
-   # ENOTSUP and EOPNOTSUPP might be the 
same value which means
-   # strerror() on them is unstable -- we 
can get both. #559608
-   *"Not supported"*|\
-   *"Operation not supported"*)
-   local fstype=$(stat -f -c %T 
"${file}")
-   ewarn "Could not set caps on 
'${file}' due to missing filesystem support:"
-   ewarn "* enable XATTR support 
for '${fstype}' in your kernel (if configurable)"
-   ewarn "* mount the fs with the 
user_xattr option (if not the default)"
-   ewarn "* enable the relevant 
FS_SECURITY option (if configurable)"
-   break
-   ;;
-   *)
-   eerror "Setting caps '${caps}' 
on file '${file}' failed:"
-   eerror "${out}"
-   die "could

Re: [gentoo-dev] [RFC] CC-ARCHES keyword on Bugzilla

2020-04-13 Thread Matt Turner
On Mon, Apr 13, 2020 at 10:18 AM Michał Górny  wrote:
>
> Hi,
>
> One of the goals behind NATTkA was to make keywording/stabilization
> easier.  Right now it's mostly possible to file the most common requests
> without having to copy keywords everywhere.  Still, there's a need to CC
> arches which isn't exactly the most convenient part.
>
> I was thinking how to make NATTkA help with that.  After considering
> a few options, I'd like to push forward the following proposition: let's
> add a 'CC-ARCHES' keyword to Bugzilla.  If a bug is marked with that
> keyword and passes sanity check, NATTkA will automatically CC all
> relevant arch teams (based on keyword list).
>
> What do you think?

I like it.



[gentoo-dev] Re: [PATCH 2/3] media-libs/mesa: do not force use of specific ICD loader

2020-04-08 Thread Matt Turner
Looks good to me. Thanks!



[gentoo-dev] [PATCH 2/3] gnome2-utils.eclass: Fix missing "/" with EAPI >= 7.

2020-03-31 Thread Matt Turner
From: Arfrever Frehtes Taifersar Arahesis 

Bug: https://bugs.gentoo.org/694012
Signed-off-by: Arfrever Frehtes Taifersar Arahesis 
---
 eclass/gnome2-utils.eclass | 18 +-
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/eclass/gnome2-utils.eclass b/eclass/gnome2-utils.eclass
index e808549272d..231d4ac7477 100644
--- a/eclass/gnome2-utils.eclass
+++ b/eclass/gnome2-utils.eclass
@@ -136,15 +136,15 @@ gnome2_gconf_install() {
 
# We are ready to install the GCONF Scheme now
unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
-   export GCONF_CONFIG_SOURCE="$("${updater}" --get-default-source | sed 
"s;:/;:${ROOT};")"
+   export GCONF_CONFIG_SOURCE="$("${updater}" --get-default-source | sed 
"s;:/;:${ROOT%/}/;")"
 
einfo "Installing GNOME 2 GConf schemas"
 
local F
for F in ${GNOME2_ECLASS_SCHEMAS}; do
-   if [[ -e "${EROOT}${F}" ]]; then
+   if [[ -e "${EROOT%/}/${F}" ]]; then
debug-print "Installing schema: ${F}"
-   "${updater}" --makefile-install-rule "${EROOT}${F}" 
1>/dev/null
+   "${updater}" --makefile-install-rule "${EROOT%/}/${F}" 
1>/dev/null
fi
done
 
@@ -176,15 +176,15 @@ gnome2_gconf_uninstall() {
fi
 
unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
-   export GCONF_CONFIG_SOURCE="$("${updater}" --get-default-source | sed 
"s;:/;:${ROOT};")"
+   export GCONF_CONFIG_SOURCE="$("${updater}" --get-default-source | sed 
"s;:/;:${ROOT%/}/;")"
 
einfo "Uninstalling GNOME 2 GConf schemas"
 
local F
for F in ${GNOME2_ECLASS_SCHEMAS}; do
-   if [[ -e "${EROOT}${F}" ]]; then
+   if [[ -e "${EROOT%/}/${F}" ]]; then
debug-print "Uninstalling gconf schema: ${F}"
-   "${updater}" --makefile-uninstall-rule "${EROOT}${F}" 
1>/dev/null
+   "${updater}" --makefile-uninstall-rule 
"${EROOT%/}/${F}" 1>/dev/null
fi
done
 
@@ -354,7 +354,7 @@ gnome2_gdk_pixbuf_update() {
local tmp_file=$(emktemp)
${updater} 1> "${tmp_file}" &&
chmod 0644 "${tmp_file}" &&
-   cp -f "${tmp_file}" 
"${EROOT}usr/$(get_libdir)/gdk-pixbuf-2.0/2.10.0/loaders.cache" &&
+   cp -f "${tmp_file}" 
"${EROOT%/}/usr/$(get_libdir)/gdk-pixbuf-2.0/2.10.0/loaders.cache" &&
rm "${tmp_file}" # don't replace this with mv, required for SELinux 
support
eend $?
 }
@@ -368,7 +368,7 @@ gnome2_query_immodules_gtk2() {
[[ ! -x ${updater} ]] && 
updater=${EPREFIX}/usr/bin/gtk-query-immodules-2.0
 
ebegin "Updating gtk2 input method module cache"
-   
GTK_IM_MODULE_FILE="${EROOT}usr/$(get_libdir)/gtk-2.0/2.10.0/immodules.cache" \
+   
GTK_IM_MODULE_FILE="${EROOT%/}/usr/$(get_libdir)/gtk-2.0/2.10.0/immodules.cache"
 \
"${updater}" --update-cache
eend $?
 }
@@ -382,7 +382,7 @@ gnome2_query_immodules_gtk3() {
[[ ! -x ${updater} ]] && 
updater=${EPREFIX}/usr/bin/gtk-query-immodules-3.0
 
ebegin "Updating gtk3 input method module cache"
-   
GTK_IM_MODULE_FILE="${EROOT}usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache" \
+   
GTK_IM_MODULE_FILE="${EROOT%/}/usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache" 
\
"${updater}" --update-cache
eend $?
 }
-- 
2.24.1




[gentoo-dev] [PATCH 3/3] gnome2-utils.eclass: Inherit eutils.eclass for emktemp().

2020-03-31 Thread Matt Turner
From: Arfrever Frehtes Taifersar Arahesis 

Bug: https://bugs.gentoo.org/694012
Signed-off-by: Arfrever Frehtes Taifersar Arahesis 
---
 eclass/gnome2-utils.eclass | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/eclass/gnome2-utils.eclass b/eclass/gnome2-utils.eclass
index 231d4ac7477..83478931c2a 100644
--- a/eclass/gnome2-utils.eclass
+++ b/eclass/gnome2-utils.eclass
@@ -15,8 +15,9 @@
 #  * scrollkeeper (old Gnome help system) management
 
 [[ ${EAPI:-0} == [012345] ]] && inherit multilib
-[[ ${EAPI:-0} == [0123456] ]] && inherit eutils
-inherit xdg-utils
+# eutils.eclass: emktemp
+# xdg-utils.eclass: xdg_environment_reset, xdg_icon_cache_update
+inherit eutils xdg-utils
 
 case "${EAPI:-0}" in
0|1|2|3|4|5|6|7) ;;
-- 
2.24.1




[gentoo-dev] [PATCH 1/3] gnome2-utils.eclass: Fix double "/" with EAPI < 7.

2020-03-31 Thread Matt Turner
From: Arfrever Frehtes Taifersar Arahesis 

Bug: https://bugs.gentoo.org/694012
Signed-off-by: Arfrever Frehtes Taifersar Arahesis 
---
 eclass/gnome2-utils.eclass | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/eclass/gnome2-utils.eclass b/eclass/gnome2-utils.eclass
index 06683a7467f..e808549272d 100644
--- a/eclass/gnome2-utils.eclass
+++ b/eclass/gnome2-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: gnome2-utils.eclass
@@ -122,7 +122,7 @@ gnome2_gconf_savelist() {
 # This function should be called from pkg_postinst.
 gnome2_gconf_install() {
has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}"
-   local updater="${EROOT}${GCONFTOOL_BIN}"
+   local updater="${EROOT%/}${GCONFTOOL_BIN}"
 
if [[ ! -x "${updater}" ]]; then
debug-print "${updater} is not executable"
@@ -163,7 +163,7 @@ gnome2_gconf_install() {
 # database.
 gnome2_gconf_uninstall() {
has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}"
-   local updater="${EROOT}${GCONFTOOL_BIN}"
+   local updater="${EROOT%/}${GCONFTOOL_BIN}"
 
if [[ ! -x "${updater}" ]]; then
debug-print "${updater} is not executable"
@@ -266,7 +266,7 @@ gnome2_scrollkeeper_savelist() {
 # This function should be called from pkg_postinst and pkg_postrm.
 gnome2_scrollkeeper_update() {
has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}"
-   local updater="${EROOT}${SCROLLKEEPER_UPDATE_BIN}"
+   local updater="${EROOT%/}${SCROLLKEEPER_UPDATE_BIN}"
 
if [[ ! -x "${updater}" ]] ; then
debug-print "${updater} is not executable"
@@ -279,7 +279,7 @@ gnome2_scrollkeeper_update() {
fi
 
ebegin "Updating scrollkeeper database ..."
-   "${updater}" -q -p "${EROOT}${SCROLLKEEPER_DIR}"
+   "${updater}" -q -p "${EROOT%/}${SCROLLKEEPER_DIR}"
eend $?
 }
 
@@ -303,7 +303,7 @@ gnome2_schemas_savelist() {
 # This function should be called from pkg_postinst and pkg_postrm.
 gnome2_schemas_update() {
has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}"
-   local updater="${EROOT}${GLIB_COMPILE_SCHEMAS}"
+   local updater="${EROOT%/}${GLIB_COMPILE_SCHEMAS}"
 
if [[ ! -x ${updater} ]]; then
debug-print "${updater} is not executable"
@@ -334,10 +334,10 @@ gnome2_gdk_pixbuf_savelist() {
 # This function should be called from pkg_postinst and pkg_postrm.
 gnome2_gdk_pixbuf_update() {
has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}"
-   local updater="${EROOT}/usr/bin/${CHOST}-gdk-pixbuf-query-loaders"
+   local updater="${EROOT%/}/usr/bin/${CHOST}-gdk-pixbuf-query-loaders"
 
if [[ ! -x ${updater} ]]; then
-   updater="${EROOT}/usr/bin/gdk-pixbuf-query-loaders"
+   updater="${EROOT%/}/usr/bin/gdk-pixbuf-query-loaders"
fi
 
if [[ ! -x ${updater} ]]; then
@@ -394,10 +394,10 @@ gnome2_query_immodules_gtk3() {
 # This function should be called from pkg_postinst and pkg_postrm.
 gnome2_giomodule_cache_update() {
has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}"
-   local updater="${EROOT}/usr/bin/${CHOST}-gio-querymodules"
+   local updater="${EROOT%/}/usr/bin/${CHOST}-gio-querymodules"
 
if [[ ! -x ${updater} ]]; then
-   updater="${EROOT}/usr/bin/gio-querymodules"
+   updater="${EROOT%/}/usr/bin/gio-querymodules"
fi
 
if [[ ! -x ${updater} ]]; then
-- 
2.24.1




[gentoo-dev] [RFC] News item: Stable ia64 keywords removed

2020-03-30 Thread Matt Turner

Title: Stable ia64 keywords removed
Author: Matt Turner 
Posted: 2020-03-30
Revision: 1
News-Item-Format: 2.0
Display-If-Keyword: ia64

The Gentoo/IA64 team no longer thinks that the time invested in package
stabilization is warranted for the small number of users on IA64. As a
result, we will drop all "ia64" keywords to "~ia64" on 2020-04-03 and will
add "~ia64" to ACCEPT_KEYWORDS in the profile.

Users need not make any changes to their systems, and the Gentoo/IA64 team
has no plans to remove support for the architecture.


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH] flag-o-matic.eclass: add some missing MIPS CPU errata options to ALLOWED_FLAGS

2020-03-28 Thread Matt Turner
On Sat, Mar 28, 2020 at 12:17 PM Joshua Kinard  wrote:
>
> Noticed during a glibc build for MIPS-III ISA that the -mfix-r4000
> and -mfix-r4400 gcc flags got stripped off.  These are needed to work
> around known CPU errata in R4000 and R4400 CPUs.  In addition, also
> add the -mfix-rm7000 option (and it's -mno form) to fix errata in the
> PMC RM7000 CPU, and the -mr10k-cache-barrier to control the generation
> of cache barriers to work around the side-effects of R1's
> speculative execution capabilities.

Hah, I guess that tells us how many users we have :)

Reviewed-by: Matt Turner 



[gentoo-dev] Last rites: mail-client/mail-notification

2020-03-28 Thread Matt Turner

# Matt Turner  (2020-03-28)
# Last release 2008. Last upstream commit 2013. Blocks removal of
# gnome-base/libgnome-keyring
# Bug #713030
mail-client/mail-notification


signature.asc
Description: PGP signature


[gentoo-dev] Last rites: games-puzzle/skoosh

2020-03-28 Thread Matt Turner

# Matt Turner  (2020-03-28)
# Homepage gone. Dead project. Blocks removal of gnome-base/libgnome-keyring
# Bug #713028
games-puzzle/skoosh


signature.asc
Description: PGP signature


[gentoo-dev] Last rites: dev-dotnet/gnome-keyring-sharp

2020-03-28 Thread Matt Turner

# Matt Turner  (2020-03-28)
# No consumers. Dead project. Blocks removal of gnome-base/libgnome-keyring
# Bug #713020
dev-dotnet/gnome-keyring-sharp


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH] Split python implementations definition to separate eclass

2020-03-27 Thread Matt Turner
On Thu, Mar 26, 2020 at 2:03 PM Patrick McLean  wrote:
>
> This patch splits the definition of _PYTHON_ALL_IMPLS and
> _python_impl_supported to a separate eclass, this allows overlays
> to easily support a different set of python implementations than
> ::gentoo without having to fork the entire suite of eclasses.

(I think the issue is that you have some packages that still need
Python 3.4. Correct me if I'm wrong)

How many packages do you need to work with Python 3.4? Presumably just
a couple and then a pile of dependencies in ::gentoo?



[gentoo-dev] Last rites: media-libs/libav

2020-03-25 Thread Matt Turner

Acked by lu_zero on IRC.

# Matt Turner  (2020-03-25)
# No releases in two years. No commits in upstream git in last six months.
# Many open security bugs. Masked for removal in 30 days.
media-video/libav
media-libs/libpostproc


signature.asc
Description: PGP signature


Re: [gentoo-dev] rfc: noarch keyword

2020-03-21 Thread Matt Turner
On Fri, Mar 20, 2020 at 9:55 PM Kent Fredric  wrote:
> If X is "noarch" and its dependency Y is "amd64", then a user on "sparc"
> will be able to install "X", but not its dependency "Y".

Thank you. This is a good explanation of the problem.

How do other distributions handle this? Arch, Fedora, and Debian have
"noarch" packages. Surely they've found a reasonable way to make this
work.



[gentoo-dev] [PATCH] profiles: Enable USE=user-session on systemd profiles

2020-03-18 Thread Matt Turner
Signed-off-by: Matt Turner 
---
 .../linux/amd64/17.0/desktop/plasma/systemd/package.use| 7 ---
 .../linux/amd64/17.1/desktop/plasma/systemd/package.use| 7 ---
 .../linux/arm/17.0/desktop/plasma/systemd/package.use  | 7 ---
 .../linux/arm64/17.0/desktop/plasma/systemd/package.use| 7 ---
 .../linux/x86/17.0/desktop/plasma/systemd/package.use  | 7 ---
 profiles/targets/systemd/make.defaults | 4 ++--
 6 files changed, 2 insertions(+), 37 deletions(-)
 delete mode 100644 
profiles/default/linux/amd64/17.0/desktop/plasma/systemd/package.use
 delete mode 100644 
profiles/default/linux/amd64/17.1/desktop/plasma/systemd/package.use
 delete mode 100644 
profiles/default/linux/arm/17.0/desktop/plasma/systemd/package.use
 delete mode 100644 
profiles/default/linux/arm64/17.0/desktop/plasma/systemd/package.use
 delete mode 100644 
profiles/default/linux/x86/17.0/desktop/plasma/systemd/package.use

diff --git 
a/profiles/default/linux/amd64/17.0/desktop/plasma/systemd/package.use 
b/profiles/default/linux/amd64/17.0/desktop/plasma/systemd/package.use
deleted file mode 100644
index bdf6c817864..000
--- a/profiles/default/linux/amd64/17.0/desktop/plasma/systemd/package.use
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2019-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Brian Evans  (2019-02-27)
-# Avoid conflict between kde-plasma/plasma-workspace[systemd] requiring 
sys-apps/dbus[user-session]
-# and net-wireless/bluez[systemd,-user-session] requiring 
sys-apps/dbus[-user-session].
-net-wireless/bluez user-session
diff --git 
a/profiles/default/linux/amd64/17.1/desktop/plasma/systemd/package.use 
b/profiles/default/linux/amd64/17.1/desktop/plasma/systemd/package.use
deleted file mode 100644
index bdf6c817864..000
--- a/profiles/default/linux/amd64/17.1/desktop/plasma/systemd/package.use
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2019-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Brian Evans  (2019-02-27)
-# Avoid conflict between kde-plasma/plasma-workspace[systemd] requiring 
sys-apps/dbus[user-session]
-# and net-wireless/bluez[systemd,-user-session] requiring 
sys-apps/dbus[-user-session].
-net-wireless/bluez user-session
diff --git a/profiles/default/linux/arm/17.0/desktop/plasma/systemd/package.use 
b/profiles/default/linux/arm/17.0/desktop/plasma/systemd/package.use
deleted file mode 100644
index bdf6c817864..000
--- a/profiles/default/linux/arm/17.0/desktop/plasma/systemd/package.use
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2019-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Brian Evans  (2019-02-27)
-# Avoid conflict between kde-plasma/plasma-workspace[systemd] requiring 
sys-apps/dbus[user-session]
-# and net-wireless/bluez[systemd,-user-session] requiring 
sys-apps/dbus[-user-session].
-net-wireless/bluez user-session
diff --git 
a/profiles/default/linux/arm64/17.0/desktop/plasma/systemd/package.use 
b/profiles/default/linux/arm64/17.0/desktop/plasma/systemd/package.use
deleted file mode 100644
index bdf6c817864..000
--- a/profiles/default/linux/arm64/17.0/desktop/plasma/systemd/package.use
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2019-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Brian Evans  (2019-02-27)
-# Avoid conflict between kde-plasma/plasma-workspace[systemd] requiring 
sys-apps/dbus[user-session]
-# and net-wireless/bluez[systemd,-user-session] requiring 
sys-apps/dbus[-user-session].
-net-wireless/bluez user-session
diff --git a/profiles/default/linux/x86/17.0/desktop/plasma/systemd/package.use 
b/profiles/default/linux/x86/17.0/desktop/plasma/systemd/package.use
deleted file mode 100644
index bdf6c817864..000
--- a/profiles/default/linux/x86/17.0/desktop/plasma/systemd/package.use
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2019-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Brian Evans  (2019-02-27)
-# Avoid conflict between kde-plasma/plasma-workspace[systemd] requiring 
sys-apps/dbus[user-session]
-# and net-wireless/bluez[systemd,-user-session] requiring 
sys-apps/dbus[-user-session].
-net-wireless/bluez user-session
diff --git a/profiles/targets/systemd/make.defaults 
b/profiles/targets/systemd/make.defaults
index 8bc064858b2..7b7f59898a3 100644
--- a/profiles/targets/systemd/make.defaults
+++ b/profiles/targets/systemd/make.defaults
@@ -1,6 +1,6 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2020 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-USE="systemd udev"
+USE="systemd udev user-session"
 
 BOOTSTRAP_USE="${BOOTSTRAP_USE} systemd udev"
-- 
2.24.1




Re: [gentoo-portage-dev] [PATCH v2 gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-11 Thread Matt Turner
On Wed, Mar 11, 2020 at 10:23 PM Zac Medico  wrote:
> The coupling with --destructive logic complicates matters. It raises the
> question, why isn't --time-limit logic also coupled with --destructive
> logic? I think "in order to preserve the status quo" is a reasonable
> answer to this question.

Yeah :(

It's clear to me that these options were added in a very ad hoc
manner. And... named badly if I do say so. E.g., destructive and
package_names do not correspond, at least in my mind, to the
operations they do.

I'd like to clean those up as a follow on.



Re: [gentoo-portage-dev] [PATCH v2 gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-11 Thread Matt Turner
On Wed, Mar 11, 2020 at 9:36 PM Matt Turner  wrote:
>
> On Wed, Mar 11, 2020 at 9:31 PM Zac Medico  wrote:
> >
> > On 3/6/20 10:11 PM, Matt Turner wrote:
> > > Signed-off-by: Matt Turner 
> > > ---
> > >  pym/gentoolkit/eclean/cli.py|  7 ++-
> > >  pym/gentoolkit/eclean/search.py | 24 +++-
> > >  2 files changed, 29 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/pym/gentoolkit/eclean/cli.py b/pym/gentoolkit/eclean/cli.py
> > > index 1a99b3e..39aafd3 100644
> > > --- a/pym/gentoolkit/eclean/cli.py
> > > +++ b/pym/gentoolkit/eclean/cli.py
> > > @@ -147,6 +147,8 @@ def printUsage(_error=None, help=None):
> > >   or help in ('all','packages'):
> > >   print( "Available", yellow("options"),"for the",
> > >   green("packages"),"action:", file=out)
> > > + print( yellow(" --changed-deps")+
> > > + "   - delete packages for which ebuild 
> > > dependencies have changed", file=out)
> > >   print( yellow(" -i, --ignore-failure")+
> > >   " - ignore failure to locate PKGDIR", 
> > > file=out)
> > >   print( file=out)
> > > @@ -263,6 +265,8 @@ def parseArgs(options={}):
> > >   options['size-limit'] = parseSize(a)
> > >   elif o in ("-v", "--verbose") and not 
> > > options['quiet']:
> > >   options['verbose'] = True
> > > + elif o in ("--changed-deps"):
> > > + options['changed-deps'] = True
> > >   elif o in ("-i", "--ignore-failure"):
> > >   options['ignore-failure'] = True
> > >   else:
> > > @@ -290,7 +294,7 @@ def parseArgs(options={}):
> > >   getopt_options['short']['distfiles'] = "fs:"
> > >   getopt_options['long']['distfiles'] = ["fetch-restricted", 
> > > "size-limit="]
> > >   getopt_options['short']['packages'] = "i"
> > > - getopt_options['long']['packages'] = ["ignore-failure"]
> > > + getopt_options['long']['packages'] = ["ignore-failure", 
> > > "changed-deps"]
> > >   # set default options, except 'nocolor', which is set in main()
> > >   options['interactive'] = False
> > >   options['pretend'] = False
> > > @@ -303,6 +307,7 @@ def parseArgs(options={}):
> > >   options['fetch-restricted'] = False
> > >   options['size-limit'] = 0
> > >   options['verbose'] = False
> > > + options['changed-deps'] = False
> > >   options['ignore-failure'] = False
> > >   # if called by a well-named symlink, set the action accordingly:
> > >   action = None
> > > diff --git a/pym/gentoolkit/eclean/search.py 
> > > b/pym/gentoolkit/eclean/search.py
> > > index 0efefdb..17655cb 100644
> > > --- a/pym/gentoolkit/eclean/search.py
> > > +++ b/pym/gentoolkit/eclean/search.py
> > > @@ -13,6 +13,8 @@ import sys
> > >  from functools import partial
> > >
> > >  import portage
> > > +from portage.dep import Atom, use_reduce
> > > +from portage.dep._slot_operator import strip_slots
> > >
> > >  import gentoolkit.pprinter as pp
> > >  from gentoolkit.eclean.exclude import (exclDictMatchCP, exclDictExpand,
> > > @@ -488,6 +490,17 @@ class DistfilesSearch(object):
> > >   return clean_me, saved
> > >
> > >
> > > +def _deps_equal(deps_a, deps_b, eapi, uselist=None):
> > > + """Compare two dependency lists given a set of USE flags"""
> > > + if deps_a == deps_b: return True
> > > +
> > > + deps_a = use_reduce(deps_a, uselist=uselist, eapi=eapi, 
> > > token_class=Atom)
> > > + deps_b = use_reduce(deps_b, uselist=uselist, eapi=eapi, 
> > > token_class=Atom)
> > > + strip_slots(deps_a)
> > > + strip_slots(deps_b)
> > > + return deps_a == deps_b
> > > +
> > > +
> > >  def findPackages(
> > >   options,
> > >   exclude=None,
> &g

Re: [gentoo-portage-dev] [PATCH v2 gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-11 Thread Matt Turner
On Wed, Mar 11, 2020 at 9:31 PM Zac Medico  wrote:
>
> On 3/6/20 10:11 PM, Matt Turner wrote:
> > Signed-off-by: Matt Turner 
> > ---
> >  pym/gentoolkit/eclean/cli.py|  7 ++-
> >  pym/gentoolkit/eclean/search.py | 24 +++-
> >  2 files changed, 29 insertions(+), 2 deletions(-)
> >
> > diff --git a/pym/gentoolkit/eclean/cli.py b/pym/gentoolkit/eclean/cli.py
> > index 1a99b3e..39aafd3 100644
> > --- a/pym/gentoolkit/eclean/cli.py
> > +++ b/pym/gentoolkit/eclean/cli.py
> > @@ -147,6 +147,8 @@ def printUsage(_error=None, help=None):
> >   or help in ('all','packages'):
> >   print( "Available", yellow("options"),"for the",
> >   green("packages"),"action:", file=out)
> > + print( yellow(" --changed-deps")+
> > + "   - delete packages for which ebuild 
> > dependencies have changed", file=out)
> >   print( yellow(" -i, --ignore-failure")+
> >   " - ignore failure to locate PKGDIR", 
> > file=out)
> >   print( file=out)
> > @@ -263,6 +265,8 @@ def parseArgs(options={}):
> >   options['size-limit'] = parseSize(a)
> >   elif o in ("-v", "--verbose") and not 
> > options['quiet']:
> >   options['verbose'] = True
> > + elif o in ("--changed-deps"):
> > + options['changed-deps'] = True
> >   elif o in ("-i", "--ignore-failure"):
> >   options['ignore-failure'] = True
> >   else:
> > @@ -290,7 +294,7 @@ def parseArgs(options={}):
> >   getopt_options['short']['distfiles'] = "fs:"
> >   getopt_options['long']['distfiles'] = ["fetch-restricted", 
> > "size-limit="]
> >   getopt_options['short']['packages'] = "i"
> > - getopt_options['long']['packages'] = ["ignore-failure"]
> > + getopt_options['long']['packages'] = ["ignore-failure", 
> > "changed-deps"]
> >   # set default options, except 'nocolor', which is set in main()
> >   options['interactive'] = False
> >   options['pretend'] = False
> > @@ -303,6 +307,7 @@ def parseArgs(options={}):
> >   options['fetch-restricted'] = False
> >   options['size-limit'] = 0
> >   options['verbose'] = False
> > + options['changed-deps'] = False
> >   options['ignore-failure'] = False
> >   # if called by a well-named symlink, set the action accordingly:
> >   action = None
> > diff --git a/pym/gentoolkit/eclean/search.py 
> > b/pym/gentoolkit/eclean/search.py
> > index 0efefdb..17655cb 100644
> > --- a/pym/gentoolkit/eclean/search.py
> > +++ b/pym/gentoolkit/eclean/search.py
> > @@ -13,6 +13,8 @@ import sys
> >  from functools import partial
> >
> >  import portage
> > +from portage.dep import Atom, use_reduce
> > +from portage.dep._slot_operator import strip_slots
> >
> >  import gentoolkit.pprinter as pp
> >  from gentoolkit.eclean.exclude import (exclDictMatchCP, exclDictExpand,
> > @@ -488,6 +490,17 @@ class DistfilesSearch(object):
> >   return clean_me, saved
> >
> >
> > +def _deps_equal(deps_a, deps_b, eapi, uselist=None):
> > + """Compare two dependency lists given a set of USE flags"""
> > + if deps_a == deps_b: return True
> > +
> > + deps_a = use_reduce(deps_a, uselist=uselist, eapi=eapi, 
> > token_class=Atom)
> > + deps_b = use_reduce(deps_b, uselist=uselist, eapi=eapi, 
> > token_class=Atom)
> > + strip_slots(deps_a)
> > + strip_slots(deps_b)
> > + return deps_a == deps_b
> > +
> > +
> >  def findPackages(
> >   options,
> >   exclude=None,
> > @@ -562,7 +575,16 @@ def findPackages(
> >
> >   # Exclude if binpkg exists in the porttree and not --deep
> >   if not destructive and port_dbapi.cpv_exists(cpv):
> > - continue
> > + if not options['changed-deps']:
> > + continue
>
> We can't can't continue above, since that will skip all of the filters
> that occur later in the loop. So, we have to nest the below changed-deps
> code under if options['changed-deps']:

I'm happy to make that change, but I don't think it's necessary,
strictly speaking, since this is inside an 'if not destructive'
conditional and the only filter afterwards is 'if destructive'.

In case we add more filters in the future, I'll make the change you suggested.

Thanks a bunch for your reviews!



Re: [gentoo-portage-dev] [PATCH v2 gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-11 Thread Matt Turner
On Tue, Mar 10, 2020 at 8:30 PM Zac Medico  wrote:
>
> On 3/6/20 10:11 PM, Matt Turner wrote:
> > +def _deps_equal(deps_a, deps_b, eapi, uselist=None):
> > + """Compare two dependency lists given a set of USE flags"""
> > + if deps_a == deps_b: return True
> > +
> > + deps_a = use_reduce(deps_a, uselist=uselist, eapi=eapi, 
> > token_class=Atom)
> > + deps_b = use_reduce(deps_b, uselist=uselist, eapi=eapi, 
> > token_class=Atom)
>
> It's pure luck that passing a list of depstrings to use_reduce works
> here, so it will be more future-proof to use ' '.join(depstr) instead.
> The relevant code in use_reduce looks like this:
>
> if isinstance(depstr, list):
> if portage._internal_caller:
> warnings.warn(_("Passing paren_reduced dep arrays to %s is 
> deprecated. " + \
> "Pass the original dep string instead.") % \
> ('portage.dep.use_reduce',), DeprecationWarning, 
> stacklevel=2)
> depstr = paren_enclose(depstr)

Okay, thank you. I've fixed this with:

- binpkg_deps = bin_dbapi.aux_get(cpv, keys)
- ebuild_deps = port_dbapi.aux_get(cpv, keys)
+ binpkg_deps = ' '.join(bin_dbapi.aux_get(cpv, keys))
+ ebuild_deps = ' '.join(port_dbapi.aux_get(cpv, keys))

With that fixed, do the patches look good to you?



Re: [gentoo-dev] News item: Removing ABI_X86_32 support from virtual/opencl

2020-03-08 Thread Matt Turner
On Wed, Mar 4, 2020 at 8:49 AM Marek Szuba  wrote:
>
> This will be shown as relevant to everyone who has installed
> virtual/opencl, i.e. also to people on amd64 who have NOT enabled
> abi_x86_32 for this package - but there is no way to filter news items
> by use flags, is there? Anyway, comments are welcome!

Yes, please!



Re: [gentoo-dev] Last rites: dev-python/*, python-maintained, py3.6-only, no-revdep

2020-03-07 Thread Matt Turner
On Sat, Mar 7, 2020 at 12:17 PM Jonas Stein  wrote:
>
> On 07/03/2020 19.27, Ulrich Mueller wrote:
> >> On Sat, 07 Mar 2020, Michał Górny wrote:
> >
> >>> Just the ebuild being outdated doesn't sound like a sufficient reason
> >>> for removal of a package, at least not for those packages that install
> >>> applications for the end user.
> >
> >> The list is almost exclusively about dev-python/, i.e. packages that
> >> do not install end-user applications but Python modules.
> >
> > Like www-apps/nikola, for example?
> >
>
> Nikola is actively maintained and was recently updated.
> It works fine and has many users.
>
> Did you look into that package before hard masking?
> I see no problems with this package.
> https://github.com/getnikola/nikola/blob/master/setup.py
>
> Please undo the masking of fully working packages.

Christ guys. Just add python 3.7 support and unmask it.



Re: [gentoo-dev] Last rites: dev-python/*, python-maintained, py3.6-only, no-revdep

2020-03-07 Thread Matt Turner
On Sat, Mar 7, 2020 at 11:21 AM Ulrich Mueller  wrote:
>
> >>>>> On Sat, 07 Mar 2020, Matt Turner wrote:
>
> >> > The list is almost exclusively about dev-python/, i.e. packages that
> >> > do not install end-user applications but Python modules.
> >>
> >> Like www-apps/nikola, for example?
>
> > This is not a productive way to communicate.
>
> The point is that packages that are perfectly working, actively
> maintained upstream (and the ebuild version bumped in the last month)
> are being last-rited all of a sudden.
>
> What message does that send to users about the suitability of Gentoo
> for usage in a production environment?

I would hope that it would communicate that the Gentoo developers
doing the maintenance have too many packages to maintain and could use
some help from those interested!

That is, instead of getting a bunch of complaints.



Re: [gentoo-dev] Last rites: dev-python/*, python-maintained, py3.6-only, no-revdep

2020-03-07 Thread Matt Turner
On Sat, Mar 7, 2020 at 10:27 AM Ulrich Mueller  wrote:
>
> > On Sat, 07 Mar 2020, Michał Górny wrote:
>
> >> Just the ebuild being outdated doesn't sound like a sufficient reason
> >> for removal of a package, at least not for those packages that install
> >> applications for the end user.
>
> > The list is almost exclusively about dev-python/, i.e. packages that
> > do not install end-user applications but Python modules.
>
> Like www-apps/nikola, for example?

This is not a productive way to communicate.



[gentoo-portage-dev] [PATCH v2 gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-06 Thread Matt Turner
Signed-off-by: Matt Turner 
---
 pym/gentoolkit/eclean/cli.py|  7 ++-
 pym/gentoolkit/eclean/search.py | 24 +++-
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/pym/gentoolkit/eclean/cli.py b/pym/gentoolkit/eclean/cli.py
index 1a99b3e..39aafd3 100644
--- a/pym/gentoolkit/eclean/cli.py
+++ b/pym/gentoolkit/eclean/cli.py
@@ -147,6 +147,8 @@ def printUsage(_error=None, help=None):
or help in ('all','packages'):
print( "Available", yellow("options"),"for the",
green("packages"),"action:", file=out)
+   print( yellow(" --changed-deps")+
+   "   - delete packages for which ebuild 
dependencies have changed", file=out)
print( yellow(" -i, --ignore-failure")+
" - ignore failure to locate PKGDIR", 
file=out)
print( file=out)
@@ -263,6 +265,8 @@ def parseArgs(options={}):
options['size-limit'] = parseSize(a)
elif o in ("-v", "--verbose") and not options['quiet']:
options['verbose'] = True
+   elif o in ("--changed-deps"):
+   options['changed-deps'] = True
elif o in ("-i", "--ignore-failure"):
options['ignore-failure'] = True
else:
@@ -290,7 +294,7 @@ def parseArgs(options={}):
getopt_options['short']['distfiles'] = "fs:"
getopt_options['long']['distfiles'] = ["fetch-restricted", 
"size-limit="]
getopt_options['short']['packages'] = "i"
-   getopt_options['long']['packages'] = ["ignore-failure"]
+   getopt_options['long']['packages'] = ["ignore-failure", "changed-deps"]
# set default options, except 'nocolor', which is set in main()
options['interactive'] = False
options['pretend'] = False
@@ -303,6 +307,7 @@ def parseArgs(options={}):
options['fetch-restricted'] = False
options['size-limit'] = 0
options['verbose'] = False
+   options['changed-deps'] = False
options['ignore-failure'] = False
# if called by a well-named symlink, set the action accordingly:
action = None
diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py
index 0efefdb..17655cb 100644
--- a/pym/gentoolkit/eclean/search.py
+++ b/pym/gentoolkit/eclean/search.py
@@ -13,6 +13,8 @@ import sys
 from functools import partial
 
 import portage
+from portage.dep import Atom, use_reduce
+from portage.dep._slot_operator import strip_slots
 
 import gentoolkit.pprinter as pp
 from gentoolkit.eclean.exclude import (exclDictMatchCP, exclDictExpand,
@@ -488,6 +490,17 @@ class DistfilesSearch(object):
return clean_me, saved
 
 
+def _deps_equal(deps_a, deps_b, eapi, uselist=None):
+   """Compare two dependency lists given a set of USE flags"""
+   if deps_a == deps_b: return True
+
+   deps_a = use_reduce(deps_a, uselist=uselist, eapi=eapi, 
token_class=Atom)
+   deps_b = use_reduce(deps_b, uselist=uselist, eapi=eapi, 
token_class=Atom)
+   strip_slots(deps_a)
+   strip_slots(deps_b)
+   return deps_a == deps_b
+
+
 def findPackages(
options,
exclude=None,
@@ -562,7 +575,16 @@ def findPackages(
 
# Exclude if binpkg exists in the porttree and not --deep
if not destructive and port_dbapi.cpv_exists(cpv):
-   continue
+   if not options['changed-deps']:
+   continue
+
+   keys = ('RDEPEND', 'PDEPEND')
+   binpkg_deps = bin_dbapi.aux_get(cpv, keys)
+   ebuild_deps = port_dbapi.aux_get(cpv, keys)
+   uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()
+
+   if _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, 
uselist):
+   continue
 
if destructive and var_dbapi.cpv_exists(cpv):
# Exclude if an instance of the package is installed 
due to
-- 
2.24.1




[gentoo-portage-dev] [PATCH v2 gentoolkit 1/2] eclean: Rewrite findPackages()

2020-03-06 Thread Matt Turner
I found the original code to be nearly incomprehensible. Instead of
populating a dict of potential binpkgs to remove and then removing from
the to-be-removed list, just selectively add to-be-removed packages.

Signed-off-by: Matt Turner 
---
 pym/gentoolkit/eclean/search.py | 113 
 1 file changed, 55 insertions(+), 58 deletions(-)

diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py
index 58bd97e..0efefdb 100644
--- a/pym/gentoolkit/eclean/search.py
+++ b/pym/gentoolkit/eclean/search.py
@@ -498,89 +498,86 @@ def findPackages(
port_dbapi=portage.db[portage.root]["porttree"].dbapi,
var_dbapi=portage.db[portage.root]["vartree"].dbapi
):
-   """Find all obsolete binary packages.
-
-   XXX: packages are found only by symlinks.
-   Maybe i should also return .tbz2 files from All/ that have
-   no corresponding symlinks.
+   """Find obsolete binary packages.
 
@param options: dict of options determined at runtime
-   @param exclude: an exclusion dict as defined in
-   exclude.parseExcludeFile class.
-   @param destructive: boolean, defaults to False
-   @param time_limit: integer time value as returned by parseTime()
-   @param package_names: boolean, defaults to False.
-   used only if destructive=True
-   @param pkgdir: path to the binary package dir being checked
+   @type  options: dict
+   @param exclude: exclusion dict (as defined in the 
exclude.parseExcludeFile class)
+   @type  exclude: dict, optional
+   @param destructive: binpkg is obsolete if not installed (default: 
`False`)
+   @type  destructive: bool, optional
+   @param time_limit: exclude binpkg if newer than time value as returned 
by parseTime()
+   @type  time_limit: int, optional
+   @param package_names: exclude all binpkg versions if package is 
installed
+ (used with 
`destructive=True`) (default: `False`)
+   @type  package_names: bool, optional
+   @param pkgdir: path to the binpkg cache (PKGDIR)
+   @type  pkgdir: str
@param port_dbapi: defaults to 
portage.db[portage.root]["porttree"].dbapi
-   can be overridden for tests.
-   @param var_dbapi: defaults to portage.db[portage.root]["vartree"].dbapi
-   can be overridden for tests.
+  Can be overridden for tests.
+   @param  var_dbapi: defaults to portage.db[portage.root]["vartree"].dbapi
+  Can be overridden for tests.
 
+   @return binary packages to remove. e.g. {'cat/pkg-ver': [filepath]}
@rtype: dict
-   @return clean_me i.e. {'cat/pkg-ver.tbz2': [filepath],}
"""
if exclude is None:
exclude = {}
-   clean_me = {}
-   # create a full package dictionary
 
-   # now do an access test, os.walk does not error for "no read permission"
+   # Access test, os.walk does not error for "no read permission"
try:
test = os.listdir(pkgdir)
del test
except EnvironmentError as er:
if options['ignore-failure']:
exit(0)
-   print( pp.error("Error accessing PKGDIR." ), file=sys.stderr)
-   print( pp.error("(Check your make.conf file and 
environment)."), file=sys.stderr)
-   print( pp.error("Error: %s" %str(er)), file=sys.stderr)
+   print(pp.error("Error accessing PKGDIR."), file=sys.stderr)
+   print(pp.error("(Check your make.conf file and environment)."), 
file=sys.stderr)
+   print(pp.error("Error: %s" % str(er)), file=sys.stderr)
exit(1)
 
-   # if portage supports FEATURES=binpkg-multi-instance, then
-   # cpv_all can return multiple instances per cpv, where
-   # instances are distinguishable by some extra attributes
-   # provided by portage's _pkg_str class
+   # Create a dictionary of all installed packages
+   if destructive and package_names:
+   installed = dict.fromkeys(var_dbapi.cp_all())
+   else:
+   installed = {}
+
+   # Dictionary of binary packages to clean. Organized as cpv->[pkgs] in 
order
+   # to support FEATURES=binpkg-multi-instance.
+   dead_binpkgs = {}
+
bin_dbapi = portage.binarytree(pkgdir=pkgdir, 
settings=var_dbapi.settings).dbapi
for cpv in bin_dbapi.cpv_all():
-   mtime = int(bin_dbapi.aux_get(cpv, ['_mtime_'])[0])
-   if time_limit and mtime >= time_limit:
-   # time-limit exclusio

Re: [gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-06 Thread Matt Turner
On Mon, Mar 2, 2020 at 9:15 PM Zac Medico  wrote:
>
> On 3/2/20 1:11 PM, Matt Turner wrote:
> > On Sun, Mar 1, 2020 at 10:39 PM Zac Medico  wrote:
> >>
> >> On 2/20/20 9:29 PM, Matt Turner wrote:
> >>> @@ -564,7 +577,22 @@ def findPackages(
> >>>
> >>>  # Exclude if binpkg exists in the porttree and not --deep
> >>>  if not destructive and port_dbapi.cpv_exists(cpv):
> >>> -continue
> >>> +if not options['changed-deps']:
> >>> +continue
> >>> +
> >>> +uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()
> >>> +all_equal = True
> >>> +
> >>> +for k in ('RDEPEND', 'PDEPEND'):
> >>> +binpkg_deps = bin_dbapi.aux_get(cpv, [k])
> >>> +ebuild_deps = port_dbapi.aux_get(cpv, [k])
> >>> +
> >>> +if not _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, 
> >>> uselist):
> >>> +all_equal = False
> >>> +break
> >>> +
> >>> +if all_equal:
> >>> +continue
> >>
> >> If all_equal is True, then none of the other filters have an opportunity
> >> to add this package to the dead_binpkgs set. That's not good is it?
> >
> > There are four cases we skip including packages: 1) exclude list, 2)
> > time limit, 3) non-destructive and package still exists (and now
> > optionally runtime deps haven't changed), 4) destructive and package
> > is installed. Cases (3) and (4) are non-overlapping.
> >
> > If none of those cases are true, then we add the package to the
> > dead_binpkgs set. The logic looks right to me.
> >
> > Maybe I'm not understanding.
>
> What I imagine is that you could have some old packages that you
> probably want to delete because they're so old, even though their deps
> have not changed. Meanwhile you have some packages that are
> relatively recent and you'd like to delete them if they have changed deps.
>
> Given the current logic, I guess you'd have to do separate passes, one
> to delete packages based on age and another to delete packages based on
> changed deps. Maybe it's fine to require separate passes for this kind
> of thing. I supposed the alternative would be to add an --or flag that
> would allow you to say that you want to delete packages if they are at
> least a certain age or they have changed deps.

Oh, I think I understand now.

I was confused about this. I expected that --time-limit=2w to mean
that eclean should delete everything older than two weeks, but it's
actually the opposite, more or less. It actually means to *keep*
everything with less than two weeks old. Surprised me...

>  -t, --time-limit=   - don't delete files modified since 

So, with that surprising behavior I think my patch is doing the right
thing, but with the wrong comment. I'll fix those and send v2 patches
with the tabs restored, etc.

Thanks a bunch for the review.



[gentoo-dev] [PATCH] meson.eclass: Set needs_exe_wrapper in cross file

2020-03-04 Thread Matt Turner
needs_exe_wrapper tells meson whether the build machine is able to
directly execute the binaries it produces or whether it needs an exe
wrapper (like QEMU). For non-native ABI builds like building 32-bit
libraries on an x86-64 system, we want this set to false to communicate
to meson that the build machine can run the binaries directly.

This allows dev-libs/wayland to execute the wayland-scanner binary it
builds rather than relying on the system's.

Signed-off-by: Matt Turner 
---
 eclass/meson.eclass | 4 
 1 file changed, 4 insertions(+)

diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index 0588590b31e..16e17dd4a38 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -149,6 +149,9 @@ _meson_create_cross_file() {
# This may require adjustment based on CFLAGS
local cpu=${CHOST%%-*}
 
+   local needs_exe_wrapper=false
+   tc-is-cross-compiler && needs_exe_wrapper=true
+
cat > "${T}/meson.${CHOST}.${ABI}" <<-EOF
[binaries]
ar = $(_meson_env_array "$(tc-getAR)")
@@ -173,6 +176,7 @@ _meson_create_cross_file() {
objc_link_args = $(_meson_env_array "${OBJCFLAGS} ${LDFLAGS}")
objcpp_args = $(_meson_env_array "${OBJCXXFLAGS} ${CPPFLAGS}")
objcpp_link_args = $(_meson_env_array "${OBJCXXFLAGS} ${LDFLAGS}")
+   needs_exe_wrapper = ${needs_exe_wrapper}
 
[host_machine]
system = '${system}'
-- 
2.24.1




Re: [gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-02 Thread Matt Turner
On Sun, Mar 1, 2020 at 10:39 PM Zac Medico  wrote:
>
> On 2/20/20 9:29 PM, Matt Turner wrote:
> > @@ -564,7 +577,22 @@ def findPackages(
> >
> >  # Exclude if binpkg exists in the porttree and not --deep
> >  if not destructive and port_dbapi.cpv_exists(cpv):
> > -continue
> > +if not options['changed-deps']:
> > +continue
> > +
> > +uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()
> > +all_equal = True
> > +
> > +for k in ('RDEPEND', 'PDEPEND'):
> > +binpkg_deps = bin_dbapi.aux_get(cpv, [k])
> > +ebuild_deps = port_dbapi.aux_get(cpv, [k])
> > +
> > +if not _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, 
> > uselist):
> > +all_equal = False
> > +break
> > +
> > +if all_equal:
> > +continue
>
> If all_equal is True, then none of the other filters have an opportunity
> to add this package to the dead_binpkgs set. That's not good is it?

There are four cases we skip including packages: 1) exclude list, 2)
time limit, 3) non-destructive and package still exists (and now
optionally runtime deps haven't changed), 4) destructive and package
is installed. Cases (3) and (4) are non-overlapping.

If none of those cases are true, then we add the package to the
dead_binpkgs set. The logic looks right to me.

Maybe I'm not understanding.

With your other suggestion in place, the code looks like this, which
is hopefully clearer.

# Exclude if binpkg exists in the porttree and not --deep
if not destructive and port_dbapi.cpv_exists(cpv):
if not options['changed-deps']:
continue

keys = ('RDEPEND', 'PDEPEND')
binpkg_deps = bin_dbapi.aux_get(cpv, keys)
ebuild_deps = port_dbapi.aux_get(cpv, keys)
uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()

if _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, uselist):
continue

Unfortunately I don't have any packages with changed-deps at the
moment for testing :(



Re: [gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-02 Thread Matt Turner
On Mon, Mar 2, 2020 at 12:40 PM Matt Turner  wrote:
>
> On Sun, Mar 1, 2020 at 10:32 PM Zac Medico  wrote:
> >
> > On 2/20/20 9:29 PM, Matt Turner wrote:
> > > +
> > >  def findPackages(
> > >  options,
> > >  exclude=None,
> > > @@ -564,7 +577,22 @@ def findPackages(
> > >
> > >  # Exclude if binpkg exists in the porttree and not --deep
> > >  if not destructive and port_dbapi.cpv_exists(cpv):
> > > -continue
> > > +if not options['changed-deps']:
> > > +continue
> > > +
> > > +uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()
> > > +all_equal = True
> > > +
> > > +for k in ('RDEPEND', 'PDEPEND'):
> > > +binpkg_deps = bin_dbapi.aux_get(cpv, [k])
> > > +ebuild_deps = port_dbapi.aux_get(cpv, [k])
> > > +
> > > +if not _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, 
> > > uselist):
> > > +all_equal = False
> > > +break
> > > +
> > > +if all_equal:
> > > +continue
> > >
> > >  if destructive and var_dbapi.cpv_exists(cpv):
> > >  # Exclude if an instance of the package is installed due to
> > >
> >
> > The aux_get calls are expensive, so it's more efficient to get multiple
> > values with each call like:
> > keys = ('RDEPEND', 'PDEPEND')
> > binpkg_deps = dict(zip(keys, bin_dbapi.aux_get(cpv, keys))
> > ebuild_deps = dict(zip(keys, port_dbapi.aux_get(cpv, keys))
> >
> > Otherwise, looks good.
>
> Thanks, that makes the code a lot nicer too.

Actually, use_reduce wants a list (it calls .split). Wrapping those in
list() looks like it works, but I suspect that's not as you intended.
What does the zip add over just doing this?

  binpkg_deps = bin_dbapi.aux_get(cpv, keys)
  ebuild_deps = port_dbapi.aux_get(cpv, keys)



Re: [gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-03-02 Thread Matt Turner
On Sun, Mar 1, 2020 at 10:32 PM Zac Medico  wrote:
>
> On 2/20/20 9:29 PM, Matt Turner wrote:
> > +
> >  def findPackages(
> >  options,
> >  exclude=None,
> > @@ -564,7 +577,22 @@ def findPackages(
> >
> >  # Exclude if binpkg exists in the porttree and not --deep
> >  if not destructive and port_dbapi.cpv_exists(cpv):
> > -continue
> > +if not options['changed-deps']:
> > +continue
> > +
> > +uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()
> > +all_equal = True
> > +
> > +for k in ('RDEPEND', 'PDEPEND'):
> > +binpkg_deps = bin_dbapi.aux_get(cpv, [k])
> > +ebuild_deps = port_dbapi.aux_get(cpv, [k])
> > +
> > +if not _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, 
> > uselist):
> > +all_equal = False
> > +break
> > +
> > +if all_equal:
> > +continue
> >
> >  if destructive and var_dbapi.cpv_exists(cpv):
> >  # Exclude if an instance of the package is installed due to
> >
>
> The aux_get calls are expensive, so it's more efficient to get multiple
> values with each call like:
> keys = ('RDEPEND', 'PDEPEND')
> binpkg_deps = dict(zip(keys, bin_dbapi.aux_get(cpv, keys))
> ebuild_deps = dict(zip(keys, port_dbapi.aux_get(cpv, keys))
>
> Otherwise, looks good.

Thanks, that makes the code a lot nicer too.



Re: [gentoo-dev] Last rites: dev-python/sphinxcontrib-issuetracker

2020-02-21 Thread Matt Turner
On Fri, Feb 21, 2020 at 9:36 PM Michał Górny  wrote:
> On Fri, 2020-02-21 at 16:45 -0800, Matt Turner wrote:
> > On Fri, Feb 21, 2020 at 12:34 PM Michał Górny  wrote:
> > > # Michał Górny  (2020-02-21)
> > > # Last bumped in 2013.  Homepage gone.  No reverse dependencies left.
> > > # Removal in 30 days.  Bug #527188.
> > > dev-python/sphinxcontrib-issuetracker
> >
> > I committed a pull request adding pydocstyle-5.0.2 last week and it
> > depends on this.
> >
>
> I'm sorry about that.  It seems that genrdeps on qa-reports.g.o is
> broken.  I have reverted this.

No problem. It happens. I'll investigate a little further and check
how exactly it's needed.



Re: [gentoo-dev] Last rites: dev-python/sphinxcontrib-issuetracker

2020-02-21 Thread Matt Turner
On Fri, Feb 21, 2020 at 12:34 PM Michał Górny  wrote:
>
> # Michał Górny  (2020-02-21)
> # Last bumped in 2013.  Homepage gone.  No reverse dependencies left.
> # Removal in 30 days.  Bug #527188.
> dev-python/sphinxcontrib-issuetracker

I committed a pull request adding pydocstyle-5.0.2 last week and it
depends on this.



[gentoo-portage-dev] Re: [PATCH gentoolkit 1/2] eclean: Rewrite findPackages()

2020-02-20 Thread Matt Turner
On Thu, Feb 20, 2020 at 9:29 PM Matt Turner  wrote:
>
> I found the original code to be nearly incomprehensible. Instead of
> populating a dict of potential binpkgs to remove and then removing from
> the to-be-removed list, just selectively add to-be-removed packages.
>
> Signed-off-by: Matt Turner 
> ---
> I switched from tabs to spaces in the process. I can revert back if
> desired.
>
>  pym/gentoolkit/eclean/search.py | 189 
>  1 file changed, 94 insertions(+), 95 deletions(-)
>
> diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py
> index 58bd97e..831ba39 100644
> --- a/pym/gentoolkit/eclean/search.py
> +++ b/pym/gentoolkit/eclean/search.py
> @@ -489,98 +489,97 @@ class DistfilesSearch(object):
>
>
>  def findPackages(
> -   options,
> -   exclude=None,
> -   destructive=False,
> -   time_limit=0,
> -   package_names=False,
> -   pkgdir=None,
> -   port_dbapi=portage.db[portage.root]["porttree"].dbapi,
> -   var_dbapi=portage.db[portage.root]["vartree"].dbapi
> -   ):
> -   """Find all obsolete binary packages.
> -
> -   XXX: packages are found only by symlinks.
> -   Maybe i should also return .tbz2 files from All/ that have
> -   no corresponding symlinks.
> -
> -   @param options: dict of options determined at runtime
> -   @param exclude: an exclusion dict as defined in
> -   exclude.parseExcludeFile class.
> -   @param destructive: boolean, defaults to False
> -   @param time_limit: integer time value as returned by parseTime()
> -   @param package_names: boolean, defaults to False.
> -   used only if destructive=True
> -   @param pkgdir: path to the binary package dir being checked
> -   @param port_dbapi: defaults to 
> portage.db[portage.root]["porttree"].dbapi
> -   can be overridden for tests.
> -   @param var_dbapi: defaults to 
> portage.db[portage.root]["vartree"].dbapi
> -   can be overridden for tests.
> -
> -   @rtype: dict
> -   @return clean_me i.e. {'cat/pkg-ver.tbz2': [filepath],}
> -   """
> -   if exclude is None:
> -   exclude = {}
> -   clean_me = {}
> -   # create a full package dictionary
> -
> -   # now do an access test, os.walk does not error for "no read 
> permission"
> -   try:
> -   test = os.listdir(pkgdir)
> -   del test
> -   except EnvironmentError as er:
> -   if options['ignore-failure']:
> -   exit(0)
> -   print( pp.error("Error accessing PKGDIR." ), file=sys.stderr)
> -   print( pp.error("(Check your make.conf file and 
> environment)."), file=sys.stderr)
> -   print( pp.error("Error: %s" %str(er)), file=sys.stderr)
> -   exit(1)
> -
> -   # if portage supports FEATURES=binpkg-multi-instance, then
> -   # cpv_all can return multiple instances per cpv, where
> -   # instances are distinguishable by some extra attributes
> -   # provided by portage's _pkg_str class
> -   bin_dbapi = portage.binarytree(pkgdir=pkgdir, 
> settings=var_dbapi.settings).dbapi
> -   for cpv in bin_dbapi.cpv_all():
> -   mtime = int(bin_dbapi.aux_get(cpv, ['_mtime_'])[0])
> -   if time_limit and mtime >= time_limit:
> -   # time-limit exclusion
> -   continue
> -   # dict is cpv->[pkgs] (supports binpkg-multi-instance)
> -   clean_me.setdefault(cpv, []).append(cpv)
> -
> -   # keep only obsolete ones
> -   if destructive and package_names:
> -   cp_all = dict.fromkeys(var_dbapi.cp_all())
> -   else:
> -   cp_all = {}
> -   for cpv in list(clean_me):
> -   if exclDictMatchCP(exclude,portage.cpv_getkey(cpv)):
> -   # exclusion because of the exclude file
> -   del clean_me[cpv]
> -   continue
> -   if not destructive and port_dbapi.cpv_exists(cpv):
> -   # exclusion because pkg still exists (in porttree)
> -   del clean_me[cpv]
> -   continue
> -   if destructive and var_dbapi.cpv_exists(cpv):
> -   buildtime = var_dbapi.aux_get(cpv, ['BUILD_TIME'])[0]
> -   

[gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Add option to delete binpkgs with changed deps

2020-02-20 Thread Matt Turner
Signed-off-by: Matt Turner 
---
 pym/gentoolkit/eclean/cli.py|  7 ++-
 pym/gentoolkit/eclean/search.py | 30 +-
 2 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/pym/gentoolkit/eclean/cli.py b/pym/gentoolkit/eclean/cli.py
index 1a99b3e..39aafd3 100644
--- a/pym/gentoolkit/eclean/cli.py
+++ b/pym/gentoolkit/eclean/cli.py
@@ -147,6 +147,8 @@ def printUsage(_error=None, help=None):
or help in ('all','packages'):
print( "Available", yellow("options"),"for the",
green("packages"),"action:", file=out)
+   print( yellow(" --changed-deps")+
+   "   - delete packages for which ebuild 
dependencies have changed", file=out)
print( yellow(" -i, --ignore-failure")+
" - ignore failure to locate PKGDIR", 
file=out)
print( file=out)
@@ -263,6 +265,8 @@ def parseArgs(options={}):
options['size-limit'] = parseSize(a)
elif o in ("-v", "--verbose") and not options['quiet']:
options['verbose'] = True
+   elif o in ("--changed-deps"):
+   options['changed-deps'] = True
elif o in ("-i", "--ignore-failure"):
options['ignore-failure'] = True
else:
@@ -290,7 +294,7 @@ def parseArgs(options={}):
getopt_options['short']['distfiles'] = "fs:"
getopt_options['long']['distfiles'] = ["fetch-restricted", 
"size-limit="]
getopt_options['short']['packages'] = "i"
-   getopt_options['long']['packages'] = ["ignore-failure"]
+   getopt_options['long']['packages'] = ["ignore-failure", "changed-deps"]
# set default options, except 'nocolor', which is set in main()
options['interactive'] = False
options['pretend'] = False
@@ -303,6 +307,7 @@ def parseArgs(options={}):
options['fetch-restricted'] = False
options['size-limit'] = 0
options['verbose'] = False
+   options['changed-deps'] = False
options['ignore-failure'] = False
# if called by a well-named symlink, set the action accordingly:
action = None
diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py
index 831ba39..da8c286 100644
--- a/pym/gentoolkit/eclean/search.py
+++ b/pym/gentoolkit/eclean/search.py
@@ -13,6 +13,8 @@ import sys
 from functools import partial
 
 import portage
+from portage.dep import Atom, use_reduce
+from portage.dep._slot_operator import strip_slots
 
 import gentoolkit.pprinter as pp
 from gentoolkit.eclean.exclude import (exclDictMatchCP, exclDictExpand,
@@ -488,6 +490,17 @@ class DistfilesSearch(object):
return clean_me, saved
 
 
+def _deps_equal(deps_a, deps_b, eapi, uselist=None):
+"""Compare two dependency lists given a set of USE flags"""
+if deps_a == deps_b: return True
+
+deps_a = use_reduce(deps_a, uselist=uselist, eapi=eapi, token_class=Atom)
+deps_b = use_reduce(deps_b, uselist=uselist, eapi=eapi, token_class=Atom)
+strip_slots(deps_a)
+strip_slots(deps_b)
+return deps_a == deps_b
+
+
 def findPackages(
 options,
 exclude=None,
@@ -564,7 +577,22 @@ def findPackages(
 
 # Exclude if binpkg exists in the porttree and not --deep
 if not destructive and port_dbapi.cpv_exists(cpv):
-continue
+if not options['changed-deps']:
+continue
+
+uselist = bin_dbapi.aux_get(cpv, ['USE'])[0].split()
+all_equal = True
+
+for k in ('RDEPEND', 'PDEPEND'):
+binpkg_deps = bin_dbapi.aux_get(cpv, [k])
+ebuild_deps = port_dbapi.aux_get(cpv, [k])
+
+if not _deps_equal(binpkg_deps, ebuild_deps, cpv.eapi, 
uselist):
+all_equal = False
+break
+
+if all_equal:
+continue
 
 if destructive and var_dbapi.cpv_exists(cpv):
 # Exclude if an instance of the package is installed due to
-- 
2.24.1




[gentoo-portage-dev] [PATCH gentoolkit 1/2] eclean: Rewrite findPackages()

2020-02-20 Thread Matt Turner
I found the original code to be nearly incomprehensible. Instead of
populating a dict of potential binpkgs to remove and then removing from
the to-be-removed list, just selectively add to-be-removed packages.

Signed-off-by: Matt Turner 
---
I switched from tabs to spaces in the process. I can revert back if
desired.

 pym/gentoolkit/eclean/search.py | 189 
 1 file changed, 94 insertions(+), 95 deletions(-)

diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py
index 58bd97e..831ba39 100644
--- a/pym/gentoolkit/eclean/search.py
+++ b/pym/gentoolkit/eclean/search.py
@@ -489,98 +489,97 @@ class DistfilesSearch(object):
 
 
 def findPackages(
-   options,
-   exclude=None,
-   destructive=False,
-   time_limit=0,
-   package_names=False,
-   pkgdir=None,
-   port_dbapi=portage.db[portage.root]["porttree"].dbapi,
-   var_dbapi=portage.db[portage.root]["vartree"].dbapi
-   ):
-   """Find all obsolete binary packages.
-
-   XXX: packages are found only by symlinks.
-   Maybe i should also return .tbz2 files from All/ that have
-   no corresponding symlinks.
-
-   @param options: dict of options determined at runtime
-   @param exclude: an exclusion dict as defined in
-   exclude.parseExcludeFile class.
-   @param destructive: boolean, defaults to False
-   @param time_limit: integer time value as returned by parseTime()
-   @param package_names: boolean, defaults to False.
-   used only if destructive=True
-   @param pkgdir: path to the binary package dir being checked
-   @param port_dbapi: defaults to 
portage.db[portage.root]["porttree"].dbapi
-   can be overridden for tests.
-   @param var_dbapi: defaults to portage.db[portage.root]["vartree"].dbapi
-   can be overridden for tests.
-
-   @rtype: dict
-   @return clean_me i.e. {'cat/pkg-ver.tbz2': [filepath],}
-   """
-   if exclude is None:
-   exclude = {}
-   clean_me = {}
-   # create a full package dictionary
-
-   # now do an access test, os.walk does not error for "no read permission"
-   try:
-   test = os.listdir(pkgdir)
-   del test
-   except EnvironmentError as er:
-   if options['ignore-failure']:
-   exit(0)
-   print( pp.error("Error accessing PKGDIR." ), file=sys.stderr)
-   print( pp.error("(Check your make.conf file and 
environment)."), file=sys.stderr)
-   print( pp.error("Error: %s" %str(er)), file=sys.stderr)
-   exit(1)
-
-   # if portage supports FEATURES=binpkg-multi-instance, then
-   # cpv_all can return multiple instances per cpv, where
-   # instances are distinguishable by some extra attributes
-   # provided by portage's _pkg_str class
-   bin_dbapi = portage.binarytree(pkgdir=pkgdir, 
settings=var_dbapi.settings).dbapi
-   for cpv in bin_dbapi.cpv_all():
-   mtime = int(bin_dbapi.aux_get(cpv, ['_mtime_'])[0])
-   if time_limit and mtime >= time_limit:
-   # time-limit exclusion
-   continue
-   # dict is cpv->[pkgs] (supports binpkg-multi-instance)
-   clean_me.setdefault(cpv, []).append(cpv)
-
-   # keep only obsolete ones
-   if destructive and package_names:
-   cp_all = dict.fromkeys(var_dbapi.cp_all())
-   else:
-   cp_all = {}
-   for cpv in list(clean_me):
-   if exclDictMatchCP(exclude,portage.cpv_getkey(cpv)):
-   # exclusion because of the exclude file
-   del clean_me[cpv]
-   continue
-   if not destructive and port_dbapi.cpv_exists(cpv):
-   # exclusion because pkg still exists (in porttree)
-   del clean_me[cpv]
-   continue
-   if destructive and var_dbapi.cpv_exists(cpv):
-   buildtime = var_dbapi.aux_get(cpv, ['BUILD_TIME'])[0]
-   clean_me[cpv] = [pkg for pkg in clean_me[cpv]
-   # only keep path if BUILD_TIME is identical 
with vartree
-   if bin_dbapi.aux_get(pkg, ['BUILD_TIME'])[0] != 
buildtime]
-   if not clean_me[cpv]:
-   # nothing we can clean for this package
-   del clean_me[cpv]
-   continue
-   if portage.cpv_getkey(cpv) in cp_all and 
port_dbapi.cpv_exists(cpv):
-   # exclusion because of 

Re: [gentoo-dev] [PATCH 3/3] app-admin/kube-bench: convert to go-module go.sum

2020-02-17 Thread Matt Turner
On Mon, Feb 17, 2020 at 11:47 PM desultory  wrote:
>

You've got a particular knack for this kind of argumentative nonsense.



Re: [gentoo-dev] [PATCH 3/3] app-admin/kube-bench: convert to go-module go.sum

2020-02-14 Thread Matt Turner
On Fri, Feb 14, 2020 at 12:31 AM Sam Jorna (wraeth)  wrote:
> In this instance, at least two people (myself included) have drawn an
> impression that led them to voice their concern in some way (I'm unsure if
> mpagano was voicing concern or just agreeing with the general concept). Maybe
> we're the only ones. Maybe not.

What do you think the threshold should be? If one person objects,
should ComRel cease and desist? Two? Should we have a Gentoo-wide
vote?

I don't have the highest opinion of ComRel and I'm a member, but maybe
you could let us do our jobs?



Re: [gentoo-dev] [PATCH 3/3] app-admin/kube-bench: convert to go-module go.sum

2020-02-13 Thread Matt Turner
On Thu, Feb 13, 2020 at 4:12 AM Mike Pagano  wrote:
>
> On Thu, Feb 13, 2020 at 06:46:43PM +1100, Sam Jorna (wraeth) wrote:
> > On Thursday, 13 February 2020 5:40:46 AM AEDT Matt Turner wrote:
> > > On Wed, Feb 12, 2020 at 9:59 AM William Hubbs  wrote:
> > > > On Wed, Feb 12, 2020 at 06:54:19PM +1100, Sam Jorna (wraeth) wrote:
> > > > > On Monday, 10 February 2020 7:55:01 AM AEDT Michał Górny wrote:
> > > > > > On Sun, 2020-02-09 at 20:38 +, Michael 'veremitz' Everitt wrote:
> > > > > > > Hrm, pardon my ignorance, but do 'we' really need to review 232
> > > > > > > lines of
> > > > > > > Manifest?!
> > > > > >
> > > > > > Pardon mine but do 'we' really need to read your useless comments
> > > > > > everywhere, all the time and just get irritated for no benefit to
> > > > > > Gentoo?
> > > > >
> > > > > Perhaps I'm the one being ignorant here, but why are we lambasting
> > > > > someone for seeking clarification about an unusual inclusion on a
> > > > > review thread?>
> > > > I wasn't going to say anything, but I can't let this go by without
> > > > commenting.
> > > >
> > > > Sam is correct. Maybe the tone is a bit off, (and that is debatable),
> > > > but this definitely can be seen as a legit question, regardless of other
> > > > things Michael has posted.
> > >
> > > Unfortunately it's not about a single issue or email. It's a
> > > consistent pattern that multiple people have asked him to rein in over
> > > a long period. :(
> >
> > Without going into specifics, veremit and I have certainly had our 
> > 'differences
> > of opinion' in the past; but I don't believe this is one of those occasions.
> >
> > Calling out bad actors (not saying veremit is one, I just mean in the 
> > general
> > sense) is an unfortunate but important task, but call them out on bad
> > behaviour, not for what appears to be an impassioned but otherwise
> > unremarkable query.
> >
>
> I agree with this 100 percent.  Not judging solely on the content of the
> specific email in the thread does not allow people to grow and improve. Are we
> all to be judged on our past behavior forever with no chance to overcome past
> transgressions ?

That's not what's going on.



Re: [gentoo-dev] [PATCH 3/3] app-admin/kube-bench: convert to go-module go.sum

2020-02-12 Thread Matt Turner
On Wed, Feb 12, 2020 at 9:59 AM William Hubbs  wrote:
>
> On Wed, Feb 12, 2020 at 06:54:19PM +1100, Sam Jorna (wraeth) wrote:
> > On Monday, 10 February 2020 7:55:01 AM AEDT Michał Górny wrote:
> > > On Sun, 2020-02-09 at 20:38 +, Michael 'veremitz' Everitt wrote:
> > > > Hrm, pardon my ignorance, but do 'we' really need to review 232 lines of
> > > > Manifest?!
> > >
> > > Pardon mine but do 'we' really need to read your useless comments
> > > everywhere, all the time and just get irritated for no benefit to
> > > Gentoo?
> >
> > Perhaps I'm the one being ignorant here, but why are we lambasting someone 
> > for
> > seeking clarification about an unusual inclusion on a review thread?
>
> I wasn't going to say anything, but I can't let this go by without
> commenting.
>
> Sam is correct. Maybe the tone is a bit off, (and that is debatable),
> but this definitely can be seen as a legit question, regardless of other 
> things
> Michael has posted.

Unfortunately it's not about a single issue or email. It's a
consistent pattern that multiple people have asked him to rein in over
a long period. :(



Re: [gentoo-dev] [PATCH 3/3] app-admin/kube-bench: convert to go-module go.sum

2020-02-09 Thread Matt Turner
On Sun, Feb 9, 2020 at 1:16 PM Michael 'veremitz' Everitt
 wrote:
>
> On 09/02/20 20:59, Michael 'veremitz' Everitt wrote:
> > On 09/02/20 20:57, Michael 'veremitz' Everitt wrote:
> >> On 09/02/20 20:55, Michał Górny wrote:
> >>> On Sun, 2020-02-09 at 20:38 +, Michael 'veremitz' Everitt wrote:
>  Hrm, pardon my ignorance, but do 'we' really need to review 232 lines of
>  Manifest?!
> >>> Pardon mine but do 'we' really need to read your useless comments
> >>> everywhere, all the time and just get irritated for no benefit to
> >>> Gentoo?
> >>>
> >> There's a really simple method to deal with that .. would you like me to
> >> explain, or would that be 'useless' too?
> >>
> > For the benefit of other readers, it's clear Michal is incapable of
> > implementing the measures I am thinking of .. or simply isn't aware of what
> > they might be?
> > which is quite unusual for a developer of his supposed capability ...
> >
> For the avoidance of doubt, whilst my ban from this list is enacted, here
> is the list of "Unacceptable behaviour" from the Gentoo Code of Conduct[1].
>
> "Deciding to suspend or ban someone isn't a decision to be taken lightly,
> but sometimes it has to happen. Below is a list of things that could result
> in disciplinary action. * Flaming and trolling. What is trolling? You are
> deemed to be trolling if you make comments intended to provoke an angry
> response from others. What is flaming? Flaming is the act of sending or
> posting messages that are deliberately hostile and insulting.
> * Posting/participating only to incite drama or negativity rather than to
> tactfully share information.
> * Being judgmental, mean-spirited or insulting. It is possible to
> respectfully challenge someone in a way that empowers without being
> judgemental.
> * Constantly purveying misinformation despite repeated warnings."
>
> It is left as an exercise for the reader, who is transgressing here...
>

"Technically I'm not violating the rules" is the weakest argument.

Can you just please save everyone the headache of litigating this and
act a little more professional and a little less silly on the mailing
list? (And on IRC if I'm asking)

Here's a good approximation to determine whether your mail is worth
sending: before you press send, ask yourself if the person you're
replying to gains anything by reading your reply. If the answer is on
the range "unlikely" to "no", then just don't send the reply.



Re: [gentoo-dev] Last rites: sys-firmware/iwl6050-ucode

2020-02-07 Thread Matt Turner
On Fri, Feb 7, 2020 at 12:44 PM Alexander Tsoy  wrote:
>
> 7 февраля 2020 г. 22:50:13 GMT+03:00, Matt Turner  пишет:
> >On Fri, Feb 7, 2020 at 11:39 AM Ulrich Mueller  wrote:
> >>
> >> >>>>> On Fri, 07 Feb 2020, Matt Turner wrote:
> >>
> >> > On Fri, Feb 7, 2020 at 9:10 AM Mike Pagano 
> >wrote:
> >> >>
> >> >> # Mike Pagano  (2020-02-07)
> >> >> # The standalone ebuild for this driver is made
> >> >> # unnecessary as it is included in the package:
> >> >> # sys-kernel/linux-firmware
> >> >> sys-firmware/iwl6050-ucode
> >>
> >> > How about all the others as well?
> >>
> >> > sys-firmware/iwl1000-ucode
> >> > sys-firmware/iwl3160-7260-bt-ucode
> >> > sys-firmware/iwl3160-ucode
> >> > sys-firmware/iwl6005-ucode
> >> > sys-firmware/iwl6030-ucode
> >> > sys-firmware/iwl7260-ucode
> >> > sys-firmware/iwl8000-ucode
> >>
> >> I had asked the same question back in November, but an argument
> >against
> >> it was that sys-kernel/linux-firmware is quite a monster. In the
> >default
> >> configuration, its installation footprint is 515 MiB.
> >
> >Oh yeah. The thread where the person arguing for keeping them didn't
> >know about USE=savedconfig :)
>
> USE=savedconfig is very inconvinient, especially for a package that can 
> introduce new firmware files for the same hardware. Adding support for masks 
> would improve that a bit.

Agreed. Mask/wildcard support would solve that problem well.



Re: [gentoo-dev] Last rites: sys-firmware/iwl6050-ucode

2020-02-07 Thread Matt Turner
On Fri, Feb 7, 2020 at 12:03 PM Michael 'veremitz' Everitt
 wrote:
>
> On 07/02/20 19:50, Matt Turner wrote:
> > On Fri, Feb 7, 2020 at 11:39 AM Ulrich Mueller  wrote:
> >>>>>>> On Fri, 07 Feb 2020, Matt Turner wrote:
> >>> On Fri, Feb 7, 2020 at 9:10 AM Mike Pagano  wrote:
> >>>> # Mike Pagano  (2020-02-07)
> >>>> # The standalone ebuild for this driver is made
> >>>> # unnecessary as it is included in the package:
> >>>> # sys-kernel/linux-firmware
> >>>> sys-firmware/iwl6050-ucode
> >>> How about all the others as well?
> >>> sys-firmware/iwl1000-ucode
> >>> sys-firmware/iwl3160-7260-bt-ucode
> >>> sys-firmware/iwl3160-ucode
> >>> sys-firmware/iwl6005-ucode
> >>> sys-firmware/iwl6030-ucode
> >>> sys-firmware/iwl7260-ucode
> >>> sys-firmware/iwl8000-ucode
> >> I had asked the same question back in November, but an argument against
> >> it was that sys-kernel/linux-firmware is quite a monster. In the default
> >> configuration, its installation footprint is 515 MiB.
> > Oh yeah. The thread where the person arguing for keeping them didn't
> > know about USE=savedconfig :)
> >
> You still have to install the full 515MiB before you can apply savedconfig,
> unless you already know the list of firmwares included, and create the file
> in advance. For some systems (esp. storage constrained) that's not a very
> good option ...

Even that's not true. Just look at the git repo.



Re: [gentoo-dev] Last rites: sys-firmware/iwl6050-ucode

2020-02-07 Thread Matt Turner
On Fri, Feb 7, 2020 at 11:39 AM Ulrich Mueller  wrote:
>
> >>>>> On Fri, 07 Feb 2020, Matt Turner wrote:
>
> > On Fri, Feb 7, 2020 at 9:10 AM Mike Pagano  wrote:
> >>
> >> # Mike Pagano  (2020-02-07)
> >> # The standalone ebuild for this driver is made
> >> # unnecessary as it is included in the package:
> >> # sys-kernel/linux-firmware
> >> sys-firmware/iwl6050-ucode
>
> > How about all the others as well?
>
> > sys-firmware/iwl1000-ucode
> > sys-firmware/iwl3160-7260-bt-ucode
> > sys-firmware/iwl3160-ucode
> > sys-firmware/iwl6005-ucode
> > sys-firmware/iwl6030-ucode
> > sys-firmware/iwl7260-ucode
> > sys-firmware/iwl8000-ucode
>
> I had asked the same question back in November, but an argument against
> it was that sys-kernel/linux-firmware is quite a monster. In the default
> configuration, its installation footprint is 515 MiB.

Oh yeah. The thread where the person arguing for keeping them didn't
know about USE=savedconfig :)



Re: [gentoo-dev] Last rites: sys-firmware/iwl6050-ucode

2020-02-07 Thread Matt Turner
On Fri, Feb 7, 2020 at 9:10 AM Mike Pagano  wrote:
>
> # Mike Pagano  (2020-02-07)
> # The standalone ebuild for this driver is made
> # unnecessary as it is included in the package:
> # sys-kernel/linux-firmware
> sys-firmware/iwl6050-ucode

How about all the others as well?

sys-firmware/iwl1000-ucode
sys-firmware/iwl3160-7260-bt-ucode
sys-firmware/iwl3160-ucode
sys-firmware/iwl6005-ucode
sys-firmware/iwl6030-ucode
sys-firmware/iwl7260-ucode
sys-firmware/iwl8000-ucode



[gentoo-dev] [RFC] News item: Stable alpha keywords removed

2020-01-21 Thread Matt Turner

Title: Stable alpha keywords removed
Author: Matt Turner 
Content-Type: text/plain
Posted: 2020-01-22
Revision: 1
News-Item-Format: 1.0
Display-If-Keyword: alpha

The Gentoo/Alpha team no longer thinks that the time invested in package
stabilization is warranted for the small number of users on Alpha. As a
result, we will drop all "alpha" keywords to "~alpha" on 2020-01-25 and will
add "~alpha" to ACCEPT_KEYWORDS in the profile.

Users need not make any changes to their systems, and the Gentoo/Alpha team
has no plans to remove support for the architecture.


signature.asc
Description: PGP signature


Re: [gentoo-dev] Last rites: sci-astronomy/celestia

2020-01-21 Thread Matt Turner
On Tue, Jan 21, 2020 at 3:57 PM David Seifert  wrote:
>
> # David Seifert  (2020-01-21)
> # All released versions depend on EOL gtkglext, no revdeps.
> # Bug #644334, #694834. Removal in 30 days.
> sci-astronomy/celestia

This is actually a really cool piece of software (give it a try!), and
the bugs look solvable, so I might try to fix them and unmask.



[gentoo-dev] RFC: Dropping alpha keywords to unstable

2020-01-15 Thread Matt Turner

Hello,

It makes me a bit sad to say, having helped maintain Gentoo's DEC Alpha
port for more than 10 years, that I think it is time to drop our stable
keywords to ~alpha.

Stable testing is a valuable service we provide to users. Time invested
by developers during stabilization has the potential to pay dividends to
users multiple times over.

But the presumption in that statement is that the number of users
meaningfully greater than the number of developers. I no longer believe
this is the case for Alpha.

As a result, I don't think it's a good use of my time to perform stable
testing on alpha.

I plan to keep the profiles "stable" (meaning no depgraph breakages) but
to change to ACCEPT_KEYWORDS="~alpha".

Thoughts?

Matt


signature.asc
Description: PGP signature


Re: [gentoo-portage-dev] [PATCH gentoolkit 2/2] imlate: Dynamically calculate column width in report

2020-01-02 Thread Matt Turner
On Thu, Jan 2, 2020 at 12:41 PM Zac Medico  wrote:
>
> On 1/2/20 10:58 AM, Matt Turner wrote:
> > Also print categories on the line with the package name for much simpler
> > consumption by external tools.
> >
> > Signed-off-by: Matt Turner 
> > ---
> >  pym/gentoolkit/imlate/imlate.py | 20 +---
> >  1 file changed, 13 insertions(+), 7 deletions(-)
>
> Looks good, but you can omit the .keys() calls since direct iteration
> over a dictionary yields the keys.

Thank you. Fixed locally.



[gentoo-portage-dev] [PATCH gentoolkit 2/2] imlate: Dynamically calculate column width in report

2020-01-02 Thread Matt Turner
Also print categories on the line with the package name for much simpler
consumption by external tools.

Signed-off-by: Matt Turner 
---
 pym/gentoolkit/imlate/imlate.py | 20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/pym/gentoolkit/imlate/imlate.py b/pym/gentoolkit/imlate/imlate.py
index 86d1a7e..a5568d7 100755
--- a/pym/gentoolkit/imlate/imlate.py
+++ b/pym/gentoolkit/imlate/imlate.py
@@ -67,11 +67,18 @@ def _fill( width, line, fill = " " ):
 # create a hopefully pretty result
 def show_result( conf, pkgs ):
# X - len(colX) = space to fill
-   col1 = 40
-   col2 = 20
+   col1 = -1
+   col2 = -1
+   for cat in pkgs.keys():
+   for pkg in pkgs[cat].keys():
+   col1 = max(col1, len(("%s/%s" % (cat, pkg
+   col2 = max(col2, len(pkgs[cat][pkg][1]))
+   col1 += 1
+   col2 += 1
 
_header = "%s candidates for 'gentoo' on '%s'"
-   _helper = "category/package[:SLOT] our version 
best version"
+   _helper = "%s%s%s" % (_fill(col1, "category/package[:SLOT])"),
+ _fill(col2, "our version"), 
"best version")
_cand = ""
header = ""
 
@@ -102,11 +109,10 @@ def show_result( conf, pkgs ):
print(_fill( len( _helper ), "", "-" ), file=out)
 
for cat in sorted( pkgs.keys() ):
-   print("%s/" % cat, file=out)
for pkg in sorted( pkgs[cat].keys() ):
-   print("%s%s%s" % ( _fill( col1, ( "  %s" % pkg ) ),
-   _fill( 
col2, pkgs[cat][pkg][1] ),
-   
pkgs[cat][pkg][0] ), file=out)
+   print("%s%s%s" % (_fill(col1, ("%s/%s" % (cat, pkg))),
+ _fill(col2, 
pkgs[cat][pkg][1]),
+ pkgs[cat][pkg][0] ), 
file=out)
 
if conf["FILE"] != "stdout":
out.close()
-- 
2.24.1




[gentoo-portage-dev] [PATCH gentoolkit 1/2] eclean: Fix typos

2020-01-02 Thread Matt Turner
Signed-off-by: Matt Turner 
---
 pym/gentoolkit/eclean/cli.py| 4 ++--
 pym/gentoolkit/eclean/search.py | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/pym/gentoolkit/eclean/cli.py b/pym/gentoolkit/eclean/cli.py
index 1d2f52b..1a99b3e 100644
--- a/pym/gentoolkit/eclean/cli.py
+++ b/pym/gentoolkit/eclean/cli.py
@@ -304,7 +304,7 @@ def parseArgs(options={}):
options['size-limit'] = 0
options['verbose'] = False
options['ignore-failure'] = False
-   # if called by a well-named symlink, set the acction accordingly:
+   # if called by a well-named symlink, set the action accordingly:
action = None
# temp print line to ensure it is the svn/branch code running, etc..
#print(  "## svn/branch/gentoolkit_eclean ### ==> ", 
os.path.basename(sys.argv[0]))
@@ -400,7 +400,7 @@ def doAction(action,options,exclude={}, output=None):
)
 
# initialize our cleaner
-   cleaner = CleanUp( output.progress_controller)
+   cleaner = CleanUp(output.progress_controller)
 
# actually clean files if something was found
if clean_me:
diff --git a/pym/gentoolkit/eclean/search.py b/pym/gentoolkit/eclean/search.py
index ce455a3..58bd97e 100644
--- a/pym/gentoolkit/eclean/search.py
+++ b/pym/gentoolkit/eclean/search.py
@@ -574,7 +574,7 @@ def findPackages(
del clean_me[cpv]
continue
if portage.cpv_getkey(cpv) in cp_all and 
port_dbapi.cpv_exists(cpv):
-   # exlusion because of --package-names
+   # exclusion because of --package-names
del clean_me[cpv]
 
# the getname method correctly supports FEATURES=binpkg-multi-instance,
-- 
2.24.1




Re: [gentoo-dev] RFC: Introducing VIDEO_CARDS=iris to virtual/opencl

2019-12-17 Thread Matt Turner
On Mon, Dec 16, 2019 at 10:26 AM Marek Szuba  wrote:
> What do you think, guys?

I don't love it.

I don't like the mess that has become VIDEO_CARDS=... either. radeon
vs radeonsi vs amdgpu. Different names for different bits of the
stack, even for the same hardware. I would like to come up with
something that avoids the confusion users often have.

Does anyone have suggestions?

Should we make a cpuid2cpuflags equivalent for VIDEO_CARDS?

Should VIDEO_CARDS specify only the vendor with MESA_VIDEO_CARDS=...
etc for individual packages? (Seems gross)

Should VIDEO_CARDS be more fine grained with multiple names for the
same thing sometimes? (e.g., offer VIDEO_CARDS=amdgpu for
media-libs/mesa that enables the radeonsi driver; similarly offer
VIDEO_CARDS=radeonsi for x11-libs/libdrm that enables libdrm_radeon).

I think perhaps that in conjunction with a cpuid2cpuflags-equivalent
is the most sensible.



Re: [gentoo-dev] stable-bot is down. Temporary? Forever? Can we have a contacts page for it?

2019-12-06 Thread Matt Turner
stable-bot appears to be down again. I've been unsuccessful in
reaching kensington on IRC.

I think stable-bot has become an integral part of the workflow and as
such (1) we should have the code available and (2) we should run it on
some hardware that others are able to administer.

Can we please?



Re: [gentoo-dev] [PATCH] package.deprecated: Create initial template

2019-12-06 Thread Matt Turner
On Fri, Dec 6, 2019 at 5:51 AM Alexis Ballier  wrote:
>
> On Fri, 6 Dec 2019 04:33:36 -0500
> Tim Harder  wrote:
>
> > On 2019-12-06 Fri 04:03, Alexis Ballier wrote:
> > > it's not just like repoman and cvs since repoman commit did push ;)
> > > it will never be perfect but i really like repoman commit to refuse
> > > to even commit if there's something obviously wrong
> >
> > I'm more of the opinion (and am working towards that practicality in
> > terms of runtime speed) that a subset of QA checks should be run as a
> > git hook which would cause push failures on certain classes of bad
> > commits.
>
>
> There should be both. Amending the 23rd commit message because one
> mistyped a semicolon is kind of a PITA.

It is?

git rebase -i HEAD~23

Is that what you think is a pain in the ass, or do you not know about
interactive rebase? :)



Re: [gentoo-dev] [PATCH] package.deprecated: Create initial template

2019-12-05 Thread Matt Turner
On Thu, Dec 5, 2019 at 11:10 AM Michał Górny  wrote:
>
> Signed-off-by: Michał Górny 
> ---
>  profiles/package.deprecated | 17 +
>  1 file changed, 17 insertions(+)
>  create mode 100644 profiles/package.deprecated
>
> diff --git a/profiles/package.deprecated b/profiles/package.deprecated
> new file mode 100644
> index ..b4803a4ce68f
> --- /dev/null
> +++ b/profiles/package.deprecated
> @@ -0,0 +1,17 @@
> +
> +#
> +# This file specifies packages that are considered deprecated (but not
> +# masked yet).  It will trigger pkgcheck warnings whenever other
> +# packages depend on them.
> +#
> +# When you add an entry to the top of this file, add your name, the date
> +# in the UTC timezone, and an explanation of why something is getting
> +# deprecated.
> +#
> +## Example:
> +##
> +## # Dev E. Loper  (2019-07-01)
> +## # This is no longer supported upstream, please switch to dev-foo/bar.
> +## dev-foo/foo
> +
> +#--- END OF EXAMPLES ---
> --
> 2.24.0

Yes, please!



Re: [gentoo-portage-dev] [PATCH gentoolkit 1/2] eclean: Inline _sort_keys method

2019-12-04 Thread Matt Turner
On Wed, Dec 4, 2019 at 9:17 PM Zac Medico  wrote:
>
> On 12/4/19 6:12 PM, Matt Turner wrote:
> > The boilerplate for calling this method was larger than what it actually
> > contained. Additionally I think this change will allow the loop to run
> > on a generator rather than a full list.
> >
> > Signed-off-by: Matt Turner 
> > ---
> >  pym/gentoolkit/eclean/clean.py | 21 ++---
> >  1 file changed, 6 insertions(+), 15 deletions(-)
> >
> > diff --git a/pym/gentoolkit/eclean/clean.py b/pym/gentoolkit/eclean/clean.py
> > index fd59976..b790de0 100644
> > --- a/pym/gentoolkit/eclean/clean.py
> > +++ b/pym/gentoolkit/eclean/clean.py
> > @@ -36,10 +36,9 @@ class CleanUp(object):
> >   @return: total size that was cleaned
> >   """
> >   file_type = 'file'
> > - clean_keys = self._sort_keys(clean_dict)
> >   clean_size = 0
> > - # clean all entries one by one
> > - for key in clean_keys:
> > + # clean all entries one by one; sorting helps reading
> > + for key in sorted(clean_dict.keys()):
> >   clean_size += self._clean_files(clean_dict[key], key, 
> > file_type)
> >   # return total size of deleted or to delete files
> >   return clean_size
> > @@ -57,10 +56,9 @@ class CleanUp(object):
> >   @return: total size that was cleaned
> >   """
> >   file_type = 'binary package'
> > - clean_keys = self._sort_keys(clean_dict)
> >   clean_size = 0
> > - # clean all entries one by one
> > - for key in clean_keys:
> > + # clean all entries one by one; sorting helps reading
> > + for key in sorted(clean_dict.keys()):
> >   clean_size += self._clean_files(clean_dict[key], key, 
> > file_type)
> >
> >   #  run 'emaint --fix' here
> > @@ -83,10 +81,9 @@ class CleanUp(object):
> >   @return: total size that would be cleaned
> >   """
> >   file_type = 'file'
> > - clean_keys = self._sort_keys(clean_dict)
> >   clean_size = 0
> > - # tally all entries one by one
> > - for key in clean_keys:
> > + # tally all entries one by one; sorting helps reading
> > + for key in sorted(clean_dict.keys()):
> >   key_size = self._get_size(clean_dict[key])
> >   self.controller(key_size, key, clean_dict[key], 
> > file_type)
> >   clean_size += key_size
> > @@ -110,12 +107,6 @@ class CleanUp(object):
> >   print( pp.error("Error: %s" %str(er)), 
> > file=sys.stderr)
> >   return key_size
> >
> > - def _sort_keys(self, clean_dict):
> > - """Returns a list of sorted dictionary keys."""
> > - # sorting helps reading
> > - clean_keys = sorted(clean_dict)
> > - return clean_keys
> > -
> >   def _clean_files(self, files, key, file_type):
> >   """File removal function."""
> >   clean_size = 0
> >
>
> Looks good except you can just use sorted(clean_dict) without calling
> the keys() method.

Thanks Zac! Both fixes you noted (here and in 2/2) are fixed locally.



[gentoo-portage-dev] [PATCH gentoolkit 2/2] eclean: Delete empty directories

2019-12-04 Thread Matt Turner
Closes: https://bugs.gentoo.org/671592
Signed-off-by: Matt Turner 
---
 pym/gentoolkit/eclean/clean.py | 4 
 1 file changed, 4 insertions(+)

diff --git a/pym/gentoolkit/eclean/clean.py b/pym/gentoolkit/eclean/clean.py
index b790de0..89300ce 100644
--- a/pym/gentoolkit/eclean/clean.py
+++ b/pym/gentoolkit/eclean/clean.py
@@ -139,6 +139,10 @@ class CleanUp(object):
# only count size if successfully 
deleted and not a link
if statinfo.st_nlink == 1:
clean_size += statinfo.st_size
+   try:
+   
os.rmdir(os.path.dirname(file_))
+   except OSError as er:
+   pass
except EnvironmentError as er:
print( pp.error("Could not delete 
"+file_), file=sys.stderr)
print( pp.error("Error: %s" %str(er)), 
file=sys.stderr)
-- 
2.23.0




[gentoo-portage-dev] [PATCH gentoolkit 1/2] eclean: Inline _sort_keys method

2019-12-04 Thread Matt Turner
The boilerplate for calling this method was larger than what it actually
contained. Additionally I think this change will allow the loop to run
on a generator rather than a full list.

Signed-off-by: Matt Turner 
---
 pym/gentoolkit/eclean/clean.py | 21 ++---
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/pym/gentoolkit/eclean/clean.py b/pym/gentoolkit/eclean/clean.py
index fd59976..b790de0 100644
--- a/pym/gentoolkit/eclean/clean.py
+++ b/pym/gentoolkit/eclean/clean.py
@@ -36,10 +36,9 @@ class CleanUp(object):
@return: total size that was cleaned
"""
file_type = 'file'
-   clean_keys = self._sort_keys(clean_dict)
clean_size = 0
-   # clean all entries one by one
-   for key in clean_keys:
+   # clean all entries one by one; sorting helps reading
+   for key in sorted(clean_dict.keys()):
clean_size += self._clean_files(clean_dict[key], key, 
file_type)
# return total size of deleted or to delete files
return clean_size
@@ -57,10 +56,9 @@ class CleanUp(object):
@return: total size that was cleaned
"""
file_type = 'binary package'
-   clean_keys = self._sort_keys(clean_dict)
clean_size = 0
-   # clean all entries one by one
-   for key in clean_keys:
+   # clean all entries one by one; sorting helps reading
+   for key in sorted(clean_dict.keys()):
clean_size += self._clean_files(clean_dict[key], key, 
file_type)
 
#  run 'emaint --fix' here
@@ -83,10 +81,9 @@ class CleanUp(object):
@return: total size that would be cleaned
"""
file_type = 'file'
-   clean_keys = self._sort_keys(clean_dict)
clean_size = 0
-   # tally all entries one by one
-   for key in clean_keys:
+   # tally all entries one by one; sorting helps reading
+   for key in sorted(clean_dict.keys()):
key_size = self._get_size(clean_dict[key])
self.controller(key_size, key, clean_dict[key], 
file_type)
clean_size += key_size
@@ -110,12 +107,6 @@ class CleanUp(object):
print( pp.error("Error: %s" %str(er)), 
file=sys.stderr)
return key_size
 
-   def _sort_keys(self, clean_dict):
-   """Returns a list of sorted dictionary keys."""
-   # sorting helps reading
-   clean_keys = sorted(clean_dict)
-   return clean_keys
-
def _clean_files(self, files, key, file_type):
"""File removal function."""
clean_size = 0
-- 
2.23.0




[gentoo-dev] Last Rites: dev-go/logrus and dev-go/zglob

2019-12-01 Thread Matt Turner

# Matt Turner  (2019-12-01)
# browserpass ebuild ported to go-modules, so these modules now have no reverse
# dependencies.
# Removal in 30 days. Bugs #683286, #683310, #687462, #700792
=www-plugins/browserpass-3.0.6
dev-go/zglob
dev-go/logrus


signature.asc
Description: PGP signature


Re: [gentoo-dev] Addressing split usage of USE=gles[123]

2019-11-24 Thread Matt Turner
On Thu, Nov 21, 2019 at 5:09 PM Matt Turner  wrote:
>
> On Thu, Nov 21, 2019 at 4:54 PM Dennis Schridde  wrote:
> >
> > On Donnerstag, 21. November 2019 09:11:46 CET Mart Raudsepp wrote:
> > > See also this related old thread:
> > > https://archives.gentoo.org/gentoo-dev/message/e04f6d321e424a237af62721d1d09
> > > 211
> >
> > I think tackling the triad of opengl/gles, egl/glx, X/wayland is also a good
> > idea.  Generally, all these probably have to distinguish between "support 
> > for
> > XYZ" and "use only XYZ", the latter hopefully being the exception, so that 
> > the
> > former can take the shorter use-flag.  That's what I don't like about the
> > proposal from 2018: Globally enabling USE=gles will have different effects 
> > on
> > different packages.  That's also what I like about the recent proposal: The
> > flags are more explicit.
>
> Totally agree. FWIW, we have bugs filed about this for USE=wayland [0]
> and USE=USE={egl,gles{,1,2,3}}.
>
> I would be happy to see someone take up this project. I'll be happy to help.

Is anyone planning to work on this?

> [0] https://bugs.gentoo.org/627714
> [1] https://bugs.gentoo.org/627758



Re: [gentoo-dev] Addressing split usage of USE=gles[123]

2019-11-21 Thread Matt Turner
On Thu, Nov 21, 2019 at 4:54 PM Dennis Schridde  wrote:
>
> On Donnerstag, 21. November 2019 09:11:46 CET Mart Raudsepp wrote:
> > See also this related old thread:
> > https://archives.gentoo.org/gentoo-dev/message/e04f6d321e424a237af62721d1d09
> > 211
>
> I think tackling the triad of opengl/gles, egl/glx, X/wayland is also a good
> idea.  Generally, all these probably have to distinguish between "support for
> XYZ" and "use only XYZ", the latter hopefully being the exception, so that the
> former can take the shorter use-flag.  That's what I don't like about the
> proposal from 2018: Globally enabling USE=gles will have different effects on
> different packages.  That's also what I like about the recent proposal: The
> flags are more explicit.

Totally agree. FWIW, we have bugs filed about this for USE=wayland [0]
and USE=USE={egl,gles{,1,2,3}}.

I would be happy to see someone take up this project. I'll be happy to help.

[0] https://bugs.gentoo.org/627714
[1] https://bugs.gentoo.org/627758



Re: [gentoo-dev] Addressing split usage of USE=gles[123]

2019-11-21 Thread Matt Turner
On Wed, Nov 20, 2019 at 10:32 PM Haelwenn (lanodan) Monnier
 wrote:
>
> Hello gentoo-dev,
>
> First proposition on this list so hopefully not missing some kind of
> netiquette/policy.
>
> I noticed for some time that there seems to be two use cases for the
> gles[123] family of USE flags in gentoo repo:
> 1. enabling support of OpenGL ES, which seems interesting to have for
> more runtime choices, probably better usage of the drivers and better
> binary-compat support.
> 2. switching from OpenGL (so the full API) to Open GL ES (reduced API),
> which is an entirely different kind of action as that reduces it quite
> significantly but might be useful for machines where the drivers do not
> provide (good) OpenGL.
>
> To reflect this I think the "gles[123]" USE flags should be renamed,
> first kind to "gles[123]support" and second kind to "gles[123]only".
> Might also be the time to globalize them? I'm not sure but I think that
> would help in signalling which USE flags are to be used in packages.
> (and I'm probably not the only one which tends to only put global USE
> flags in make.conf, this kind of USE flags being the reason)

I think this is a good idea. I would suggest gles[123] and
gles[123]-only to avoid some of the churn. Changing gles[123] to
gles[123]-support would mean changing a ton of reverse dependencies of
Mesa, and I think that's a bad idea.

> ## Second kind, switch from OpenGL to OpenGL ES (20 packages)
> dev-libs/weston:gles2 - Use GLESv2 cairo instead of full GL
> dev-python/PyQt5:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qt3d:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtdatavis3d:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtdeclarative:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtgui:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtmultimedia:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtopengl:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtprintsupport:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtwebkit:gles2 - Use GLES 2.0 or later instead of full OpenGL
> dev-qt/qtwidgets:gles2 - Use GLES 2.0 or later instead of full OpenGL
> games-emulation/mupen64plus-core:gles2 - Use GLES2 instead of OpenGL
> games-emulation/mupen64plus-video-glide64mk2:gles2 - Use GLES2 instead of 
> OpenGL
> games-emulation/mupen64plus-video-rice:gles2 - Use GLES2 instead of OpenGL
> kde-apps/kdenlive:gles2 - Use GLES 2.0 or later instead of full OpenGL
> kde-frameworks/plasma:gles2 - Use GLES 2.0 or later instead of full OpenGL
> kde-plasma/kwin:gles2 - Use OpenGL ES 2 instead of full GL
> sci-libs/opencascade:gles2 - Use OpenGL ES 2.0
> www-plugins/freshplayerplugin:gles2 - Use system GLESv2 libraries instead of 
> ANGLE for shader translation
> www-plugins/lightspark:gles - Replace default OpenGL renderer with GLESv2

Making a pull request to change these seems like a great plan. I'll be
happy to help or review.



Re: [gentoo-dev] Package up for grabs: sys-firmware/iwl1000-ucode

2019-11-16 Thread Matt Turner
On Sat, Nov 16, 2019 at 9:08 AM Michael 'veremitz' Everitt
 wrote:
>
> On 16/11/19 16:59, Matt Turner wrote:
> > On Sat, Nov 16, 2019 at 1:06 AM Jaco Kroon  wrote:
> >> Hi,
> >>
> >> On 2019/11/15 21:35, Matt Turner wrote:
> >>> On Fri, Nov 15, 2019 at 2:20 AM Ulrich Mueller  wrote:
> >>>> The package is somewhat redundant, because sys-kernel/linux-firmware
> >>>> installs the same files. (Same for all other sys-firmware/iwl*-ucode
> >>>> packages.)
> >>> Should last-rite all of them, IMO.
> >>>
> >> I both agree and disagree with this.  It's the simpler solution and
> >> therefore I agree.
> >>
> >> I disagree because in some cases I really only want specific firmware
> >> for specific sets of hardware (especially where space constraints are an
> >> issue, read: embedded type systems).
> >>
> >> The current linux-firmware package is getting quite big in terms of 
> >> install.
> > USE=savedconfig allows you to choose exactly which files to install :)
> >
> I've never found a good way (yet...) to figure out how to write a fresh new
> 'savedconfig' if you haven't ever previously emerged the package in
> question. Does anyone have a good method for this, that doesn't require
> unpacking the whole nine yards (Megs, Gigs...) first?

You could look at the upstream git repo and make a list based on that.

Or, since you have to download the tarball anyway, ebuild ... unpack
it and inspect.

Or, use the live ebuild to avoid downloading the same data multiple
times per tarball.

Or, if you want maximal bandwidth savings don't bother with any of
this and install the files you want manually since the files aren't
going to change.



Re: [gentoo-dev] Package up for grabs: sys-firmware/iwl1000-ucode

2019-11-16 Thread Matt Turner
On Sat, Nov 16, 2019 at 1:06 AM Jaco Kroon  wrote:
>
> Hi,
>
> On 2019/11/15 21:35, Matt Turner wrote:
> > On Fri, Nov 15, 2019 at 2:20 AM Ulrich Mueller  wrote:
> >> The package is somewhat redundant, because sys-kernel/linux-firmware
> >> installs the same files. (Same for all other sys-firmware/iwl*-ucode
> >> packages.)
> > Should last-rite all of them, IMO.
> >
> I both agree and disagree with this.  It's the simpler solution and
> therefore I agree.
>
> I disagree because in some cases I really only want specific firmware
> for specific sets of hardware (especially where space constraints are an
> issue, read: embedded type systems).
>
> The current linux-firmware package is getting quite big in terms of install.

USE=savedconfig allows you to choose exactly which files to install :)



Re: [gentoo-dev] Package up for grabs: sys-firmware/iwl1000-ucode

2019-11-15 Thread Matt Turner
On Fri, Nov 15, 2019 at 2:20 AM Ulrich Mueller  wrote:
> The package is somewhat redundant, because sys-kernel/linux-firmware
> installs the same files. (Same for all other sys-firmware/iwl*-ucode
> packages.)

Should last-rite all of them, IMO.



Re: [gentoo-dev] RFC: Require full $P not just $PN on stable/keyword commit messages

2019-11-01 Thread Matt Turner
On Fri, Nov 1, 2019 at 12:59 PM Michael 'veremitz' Everitt
 wrote:
>
> Hello,
>
> I've noticed a lot of stabilisation commit messages (and a few keywording
> ones too) simply state the package atom and not the relevant
> release/version. I find this a little meaningless, as unless this is the
> first time the package has ever been either stabilised or keyworded, it is
> reasonable to expect that there is/was some transition point for a package
> from when it first entered the Gentoo Repository.
>
> Therefore, it would be much /more/ useful to have the package-version
> tagged in the commit message, so that you could easily grep logs for when a
> given version of a package was stabilised, and/or keyworded. Granted, this
> is more of-use in a historical context compared to a present (future?!)
> one, but I would argue that it conveys more meaning -with- the version than
> without.

Yes, I agree we should do this. My commit messages look like:

sys-apps/systemd-243-r2: ppc64 stable, bug 698766
net-misc/mosh-1.3.2: added ~alpha

In the past people have argued that the version in the title is
superfluous since you can get the same info from git (log|show) --stat
but the same (misguided argument) can be used to justify something
absurd like simply making the bug number the subject.

Honestly, just put the dang version in the title.



Re: [gentoo-dev] separate /usr without initramfs

2019-10-27 Thread Matt Turner
On Sun, Oct 27, 2019 at 3:06 AM James Le Cuirot  wrote:
>
> On Sun, 27 Oct 2019 05:38:48 -0400
> Joshua Kinard  wrote:
>
> > Why do I not like an initramfs, though?  Well, for one, it complicates the
> > kernel compiles (and it makes them bigger, something which is an issue on
> > the old SGI systems at times).  Two, it's another layer that I have to
> > maintain.  Three, it violates, in my mind, the simplicity of keeping the
> > kernel and userland separated (e.g., kernel does kernel-y things, userland
> > does userland-y things).
>
> You make it sound like the initramfs has to be built into the kernel
> image. It can be but it usually isn't. I suspect you know that though?
> Admittedly that does depend on support from your bootloader. While GRUB
> and U-Boot have supported this for years, I forget what oddball
> bootloaders your hardware may be using.

Though he's likely not using it, GRUB2 supports all the platforms he
mentioned (x86, amd64, sparc64, [sgi] mips).



Re: [gentoo-dev] Proposal: change to default policy of doing changes to packages that are maintained by other developers

2019-10-21 Thread Matt Turner
On Mon, Oct 21, 2019 at 5:37 PM Kent Fredric  wrote:
>
> On Mon, 21 Oct 2019 19:37:28 +0200
> Piotr Karbowski  wrote:
>
> > This is a bit unhealthy, especially when some developers that maintain
> > packages are out of reach, or the patches to update ebuild just rot on
> > the bugzilla and are not taken in by maintainers.
>
> IME this is far from the norm and should not be used as the
> justification here.

I think exceptional cases are the reason for many, many policies in
Gentoo. That probably doesn't surprise you.

> If you don't have the patience to even wait _one_ day for a response,
> maybe you shouldn't be doing opensource.

I'm not sure what this is in reference to so it seems to be a
non-sequitur, but I like the policy of at least waiting a day for
review of non-critical fixes. Phrased another way, let people in every
timezone have a chance.



Re: [gentoo-dev] Proposal: change to default policy of doing changes to packages that are maintained by other developers

2019-10-21 Thread Matt Turner
On Mon, Oct 21, 2019 at 10:37 AM Piotr Karbowski  wrote:
>
> Hi,
>
> I'd like to bring the topic of defining default policy to do changes to
> packages within ::gentoo that one does not maintain.
>
> This topic goes back from time to time on #gentoo-dev, and as I was
> told, it was originally sent to gentoo-dev mailing list by robbat2 (I
> failed to find this in archive, so if anyone have copy of it, please share).
>
> Current policy is to never touch ebuild that one did not claim as
> maintainer unless maintainer of said package allowed you to do so.
>
> This is a bit unhealthy, especially when some developers that maintain
> packages are out of reach, or the patches to update ebuild just rot on
> the bugzilla and are not taken in by maintainers.
>
> What I'd like to end with would be to set a policy that allows any
> developer with write access to ebuilds tree do changes that are small in
> scope, like a minor bug fixes, adding missing flags, version bumps,
> anything, that does not require complete overhaul of ebuild, with the
> option to set in metadata.xml that policy for specified package is to
> deny anyone but maintainers from doing changes.
>
> The packages that would require a flag to prohibit non-maintainers from
> doing changes would of course be those of toolchain, or other big in
> user base packages that are in very good shape, as in gnome packages,

GNOME is not in good shape.

> kde packages, X11 packages and so on.

These are in good shape.

> Of course, the policy would also define, that if there are any bug
> introduced by changes that non-maintainer made, it's responsibility of
> those who did the change in first place to fix it and clean any mess
> that it has created.
>
> I personally am fine with others doing changes to packages I own, as
> long as they won't break anything and I do know from the discussion on
> #gentoo-dev, that there are others who have similar opinion about it.
>
> Those who feel territorial and those who believe only maintainers should
> maintain specified packages can just set the flag in metadata.xml and
> continue with the current state of things for their packages.
>
> The reason why I would like to get default policy to allow-all is that I
> do not believe most of developers would want to go around all the
> packages they own and set it manually to allow others doing changes even
> if they're fine with others touching those packages.
>
> What do you think folks?

I typically operate this way:

If the package maintainer is active (on IRC, mailing lists, bugzilla)
I file a bug. If no response after a week or two, depending on the
importance of the change I commit it myself.

If the package is not actively maintained (maintainer-needed@ or the
maintainer has not touched the package in a long time while there are
open bugs without response, etc) and the change is trivial (missing
dependency, simple version bump for non-critical package, etc), then
I'll just commit it directly.

If the package is not actively maintained and the change is not
trivial, I file a bug and try to get the maintainer to review. If they
don't respond, I try to get others that may be interested to review
and then commit after 2 weeks.

For tree-wide stuff (package rename, removing amd64-fbsd keywords,
$Header: ...$, etc) I think a mailing list post announcing what you're
doing is a good idea. Wait a couple days for feedback and then do it.
No need to get an ack from individual maintainers.

I feel like these are pretty reasonable guidelines and have rarely
gotten me yelled at. I know that a lot of the details of my personal
behavior are subjective, but maybe that's good enough? Not sure. We
seem to always have some disagreeable person force us to codify common
sense.

Am I missing any cases? The only thing I can think of is maintainers
that are so territorial that try to prevent others from committing to
their packages and also are not responsive to bug reports. Fortunately
that is uncommon, but unfortunately it does still happen today. I
don't really know how to solve that, but /that/ seems like the only
real problem case to me.



Re: [gentoo-dev] New distfile mirror layout

2019-10-21 Thread Matt Turner
On Mon, Oct 21, 2019 at 9:42 AM Richard Yao  wrote:
> Also, another idea is to use a cheap hash function (e.g. fletcher) and just 
> have the mirrors do the hashing behind the scenes. Then we would have the 
> best of both worlds.

It probably would have been better to make these suggestions when the
GLEP was discussed close to two years ago.

I'm glad that we have ideas for improvements but I worry that we're
just backseat driving at this point given that the GLEP's now
implemented.



[gentoo-dev] Last Rites: dev-python/gnome-keyring-python

2019-10-21 Thread Matt Turner

# Matt Turner  (2019-10-21)
# Replaced by introspection bindings. Bug #628938
# Removal in 30 days
dev-python/gnome-keyring-python


signature.asc
Description: PGP signature


  1   2   3   4   5   6   >