Mailinglist Archive: opensuse-factory (401 mails)

< Previous Next >
Re: [opensuse-factory] Can we assume that /bin/sh is bash?
On Thu, Mar 14, 2019 at 08:41:24AM +0100, Dominique Leuenberger / DimStar wrote:
On Wed, 2019-03-13 at 18:43 +0100, Michal Suchánek wrote:
You can specify it via the %__spec_build_cmd macro. For instance, you could
add a

%define __spec_build_cmd /bin/bash -e

Yes, that's helpful.

If we get these alternatives I will add it to the compatibility cruft
block together with the %license handling.

And I'm sure the review team will decline them if there is no proper
reason to do this - if you don't have at least *some* complexity in the
build section.

The vast majoriti of packages uses "configure, make, makeinstall",
"%cmake, %cmake_build,, %cmake_install"…

The review team will be ok if you switch the interpreter from to
explicit bash IFF there is need for. But please, don't just add this
prophilactic to any spec file just because you oppose something.

Just saying - Having a way out is good, opposing it for the sake of
opposing it is unfriendly in a community.

I vote for configure the system Bourne SHell on the command line.
As an example I provide the new package posh (Policy-compliant Ordinary SHell)
in the project shells. With this the System Administrator has to do

update-alternatives --config sh

which gives

There are 2 choices for the alternative sh (providing /usr/bin/sh).

Selection Path Priority Status
* 0 /usr/bin/bash 10100 auto mode
1 /usr/bin/bash 10100 manual mode
2 /usr/bin/posh 100 manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/posh to provide /usr/bin/sh (sh) in manual

and this works. Only the symbolic link /usr/bin/sh should not be part of
the file list regardless what rpmlint says here as with uninstalling the
package the link /usr/bin/sh should stay!!

The difference between bash.spec and posh.spec is that I use in the first
spec file the option --force for u-a and not in the later spec file as well
as a much lower priority. And as the bash is part of the initial setup of
the build system and all other packages becomes removed at build time the
link /usr/bin/sh will point always to /usr/bin/bash (over /etc/alternatives/sh)


"Having a smoking section in a restaurant is like having
a peeing section in a swimming pool." -- Edward Burr
< Previous Next >
Follow Ups