On 03/29/2017 04:52 PM, Tomasz Kloczko wrote:
> On Wed, 2017-03-29 at 12:26 +0000, Nikolai Kondrashov wrote:
>> I would say using env in the shebang line is useful. Particularly for
>> portability. As a developer, I wouldn't like removing it from my programs.
> 
> Portability is not an issue at all here in this exact discussed case because 
> distribution resources as long as they are packaged into
> binary packages they are ALL *already ported resources*.
> You can provide 100% functional source code not depending on env and still 
> able to produce resources to install with fixed location of
> <interpreter>. This is not the rocket science.

Right. I misread your message and answered in a hurry.
I apologize for taking your time.

I thought you suggested /usr/bin/env use must be fixed in upstreams. I'm OK
with it being fixed on packaging, although I'm not particularly happy about
it.

>> Moreover, if your PATH is compromised, you're most likely screwed.
> 
> Still .. if $PATH will be compromised removing using env decreases risk here
> because removing using env attaches script to some fixed <interpreter> path.

Yeah, it decreases risk, but not much.

>> I understand, that env use in scripts makes is inconvenient in some cases,
>> but I think that RPM build procedure and Fedora practices need to be fixed
>> instead.
> 
> So instead decreasing generally entropy you are proposing increase it .. by
> introduce kind of JFDI :)

Yeah, I was just trying to not increase it outside Fedora, but I realize now
it is not likely to be affected.

>> The number of packages using env in scripts alone shows that it is a
>> widespread and useful practice.
> 
> This is not about practice.
> Generally using env comes from the time when when installing additional 
> version of the <interpreter> was only civilised way fulfilling
> some needs without changing distribution resources.
> Second typical past scenario was when distribution not been providing 
> <interpreter> and users have been installing it manually on top
> of distribution in non arbitrary locations.
> In other words always evn was more workaround than RightSolution(tm) and now 
> it is part of the legacy which can be removed cleanly.
> 
> Using env it is more *legacy badge* which needs to be dropped best in source 
> code trees.
> Producing patches and submitting them to source code maintainers will help 
> get rid those issues.
> If you will have look on those packages affected by env you will find that 
> ~97-98% of all cases is related to prl and python.
> Committing today in source trees paths to those two interpreters as located 
> in /usr/bin will not hurt portability of such code on other
> Unixes as they already provides exactly the same versions of those 
> interpreters in the same locations as on typical Linux
> distributions.
> 
> Getting rid of using env is much more legacy related things.
> Most of them comes from the the time when Solaris and other flavours of the 
> Unixes where the dominant Unix on the market.

Well, my concern was mostly about interpreters in different locations on
different *nixes.

> There is much more such legacies still embedded in source trees which now can 
> be dropped,
> Example:
> 
> # dnf repoquery --whatrequires 'libnsl.so.1()(64bit)' \*.x86_64 | wc -l
> Last metadata expiration check: 1:19:13 ago on Wed Mar 29 12:36:31 2017 BST.
> 294
> 
> ATM in glibc libnsl provides almost only ABI/API used by NIS/YP/NIS+ NSS maps 
> related binaries.
> On Solaris the same library contains some base network sockets functions.
> Of cource today using on Linux libnsl by some packages does not means that 
> there are so many software is related to NIS/YP/NIS+ :)
> 
> Many source trees maintainers which started own projects even recently coped 
> base set of system detections where adding -lnsl to LIBS
> was present. All such issues should be not fixed by something similar to 
> plastering ..

I agree, using -lnsl needlessly is bad. However, I suspect we might still need
to keep it around for quite a while. Again, to help those programs that
actually use it.

Nick
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to