On Wed, May 02, 2018 at 10:35:28AM -0400, Siteshwar Vashisht wrote:
> 
> 
> ----- Original Message -----
> > From: "Tomas Orsava" <tors...@redhat.com>
> > To: "Development discussions related to Fedora" 
> > <devel@lists.fedoraproject.org>, "David Kaspar" <dkas...@redhat.com>,
> > "Kamil Dudka" <kdu...@redhat.com>, "Miro Hrončok" <mhron...@redhat.com>, 
> > "Petr Viktorin" <pvikt...@redhat.com>,
> > "Siteshwar Vashisht" <svash...@redhat.com>
> > Sent: Wednesday, May 2, 2018 3:23:10 PM
> > Subject: Prioritizing ~/.local/bin over /usr/bin on the PATH
> > 
> > Hi!
> > I'd like to propose putting the ~/.local/bin in front of the /usr/bin on
> > the PATH.
> > 
> > Currently /usr/bin has priority over ~/.local/bin, which causes a [bug]
> > where the old system-installed executable written in Python (from
> > /usr/bin) is launched, but it finds new Python sources (installed into
> > $HOME) which it doesn't work with and crashes.
> > 
> > [bug] https://bugzilla.redhat.com/show_bug.cgi?id=1571650
> > 
> > I believe the current configuration breaks the intuitive expectation
> > that things installed closer to the user should take priority. That's
> > for example how it works with Python.
> > Interestingly, ubuntu and opensuse do not have ~/.local/bin on their
> > PATH (though Ubuntu has ~/bin) so we can't take guidance there.
> > 
> > Does anyone see a reason not to prioritize ~/.local/bin over /usr/bin?
> 
> Most of the discussion in this thread focuses on security rather than
> sane behavior. It is going to be a system wide change. An application
> may get affected if it depends on system provided utilites which gets
> overridden by ~/.local/bin.

[snip]

> So this change breaks something that is outside user's installation.
> This should happen only if a user has explicitly overriden $PATH to
> prioritize user installation paths.

Not prioritizing user paths by default will break other things though.
For example, python pip installations done with --user.

eg.  if jenkins-job-builder is installed by RPM and the user decides to
add a local override, the  "pip install --user jenkins-job-builder"  will
place the new python libs + binary in $HOME/.local/{bin,lib} and will
just work because those dirs are both searched first.

If, however, python searches $HOME/.local/lib/... first, but $PATH has
/usr/bin first, you are going to end up with the /usr/bin/jenkins-jobs
command from RPM using the python modules from the pip install we just
did. This mis-match will end badly for the user.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to