Dne 27. 03. 19 v 10:30 Dridi Boukelmoune napsal(a):
On Wed, Mar 27, 2019 at 8:33 AM Nicolas Mailhot
<nicolas.mailhot(a)laposte.net> wrote:
> Le 2019-03-27 03:46, Nico Kadel-Garcia a écrit :
>> On Tue, Mar 26, 2019 at 3:44 AM Nicolas Mailhot
>> <nicolas.mailhot(a)laposte.net> wrote:
>>> POSIX is dead as a shell compatibility target. You want to replace
>>> bash
>>> with something faster, by all means do it. With something that
>>> includes
>>> the GNU extensions like pushd/popd that most packagers expect today.
>> Is there any reason to *ever* use pushd or popd in %build or %install
>> today?
Is there a way to do something similar to:
~~~
%check
pushd .%{gem_instdir}
# Load nio4r_ext.so.
rspec -I$(dirs +1)%{gem_extdir_mri} spec
popd
~~~
But honestly I don't care if /bin/sh is Bash or something different as
long as my script runs in our build environment.
Vít
> That is totally the wrong attitude when you want to replace an
> implementation used for years by thousands of volunteer people in tens
> of thousands of interdependent files.
Again, not interested in the side of the discussion about replacing
bash as the default interpreter. This is a reminder that I would
personally prefer that bash weren't behind /bin/sh.
> It is used now, ergo packagers (the people who did the work) find it
> useful and convenient. You want them to do something else, you need to
I strongly disagree with the shortcut you make here.
The only use of pushd/popd I made in scriptlets was because it was
part of the Python packaging guidelines and I happen to maintain a
bunch of Python packages. So what I was doing then wasn't to choose
something I would deem useful and convenient but rather follow
guidelines to the best of my abilities.
So sure some people may find it useful and convenient, but others may
not even be aware or care that this construct is bash-specific so
please refrain from authoritatively introduce causality where there
isn't.
And on the convenience factor:
pushd somewhere
...
popd
is not harder than:
cd somewhere
...
cd -
The bash construct becomes interesting only when you need to stack
directories and not keep explicit track of where you are returning to.
This convenience I do not wish to remove from package maintainers,
even in scriptlets.
> make it worth their effort to something else. Winning 10 minutes of CPU
> time in a single pathological spec like gcc isn't it.
>
> The easiest way to make it worth their effort is to reduce the effort to
> zero, ie implement the capabilities commonly people use in your target
> replacement shell. That will be way way easier than trying to invent
> something compelling enough for them to change their habits. 10% of
> specs doing something is definitely common use.
>
> Another way is to take the conversion work unto yourself. But that does
> not solve the ongoing effort of helping packagers that try to use bash
> syntax in their spec because they need to do something, and find out it
> does not work, and give up because the additional work of looking for
> alternatives makes the cost/benefit analysis of packaging something
> negative. We have many packages where the cost/benefit hovers next to
> the limit, because we have nice volunteers that will go to their limits
> for Fedora.
Conversely whenever as a Fedora end user I run into a failing script
on a non Fedora system because it uses GNUisms it makes my life harder
to work on the multiple systems I have to deal with. By having bash as
/bin/sh Fedora defers the moment when I realize this is happening and
pain ensues. That is because Fedora is my main system and others are
second-class citizens in my workflow. I'd hate to elect a different
one as main my system for obvious reasons.
> Yet another is to propose a syntax with is clearly simpler, more
> expressive, more productive and better documented for humans (Not CPUs.
> CPUs do not get to vote). But, that solves "new spec and macro code"
> problem, not the "existing code" problem.
>
> Hazing people with negative terms like bashism never convinced anyone.
I'm sure some comments of this nature actually got a "fair enough"
response from a couple people.
> Especially when others are doing the work, not you. In my language, that
> is called “arriving after the battle”: complaining loudly at the people
> who sweated and blooded doing some work, that they didn't do it well
> enough, when you were safely somewhere else, at the time help was
> needed.
I am personally taking an opportunity to raise my concern about the
default shell seeing this after-the-battle thread.
Maybe I should start a different one on /bin/sh?
I was not aware of this until the link was shared in this thread but
this is an interesting read on the topic:
https://wiki.ubuntu.com/DashAsBinSh
If RPM goes somewhere on this topic [1] maybe that could be a change for f31?
Dridi
[1]
https://github.com/rpm-software-management/rpm/issues/646
_______________________________________________
devel mailing list -- devel(a)lists.fedoraproject.org
To unsubscribe send an email to devel-leave(a)lists.fedoraproject.org
Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.html
List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org