View previous topic :: View next topic |
Author |
Message |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Tue Jun 20, 2023 2:14 pm Post subject: Portage hard dependency on Bash + Readline |
|
|
I didn't pay much attention to it earlier, but once decided to change the shell
for my "embedded" installation I faced the issue, that I cannot get rid of bash
going to dash or else and not even downgrade it to =app-shells/bash-4.2_p53,
which is the last one which can be linked statically.
If enforcing it with masking newer versions portage has stopped working
and like stated in its ebuild requires >bash-5.0 and readline.
Independent from USE=-readline, bash higher, than 4.2_p53 cannot be build
w/o readline at all. What is the point to have such a USE flag then?
But the main question - are you sure portage written in python if I am not mistaken
MUST be dependent on the SHELL, so that no other shell can be used.
Even "eselect sh" has gone.
With that kind of "progress" we will see portage depending on LibreOffice or Chromium browser.
Frankly I am shocked by what I have discovered. Systemd getting more sane, than portage. _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
grknight Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
Joined: 20 Feb 2015 Posts: 1833
|
Posted: Tue Jun 20, 2023 2:36 pm Post subject: |
|
|
lefsha wrote: | But the main question - are you sure portage written in python if I am not mistaken
MUST be dependent on the SHELL, so that no other shell can be used. |
Portage has always required bash to run the ebuilds. The python bits are specifically for dependency resolution, option processing, repository sync, and other interactive things.
The Package Manager Specification specifically lists bash as required and which EAPIs need which bash versions for features.
lefsha wrote: | Even "eselect sh" has gone. |
This has been replaced by app-alternatives/sh and its USE flags.
Edit: Bug 445576 is where the forced readline comes from as Portage has used the compgen built-in for the last 10 years (or more). |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
stefan11111 l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
Joined: 29 Jan 2023 Posts: 929 Location: Romania
|
Posted: Tue Jun 20, 2023 4:00 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
lefsha wrote: | I didn't pay much attention to it earlier, but once decided to change the shell
for my "embedded" installation I faced the issue, that I cannot get rid of bash
going to dash or else and not even downgrade it to =app-shells/bash-4.2_p53,
which is the last one which can be linked statically.
If enforcing it with masking newer versions portage has stopped working
and like stated in its ebuild requires >bash-5.0 and readline.
Independent from USE=-readline, bash higher, than 4.2_p53 cannot be build
w/o readline at all. What is the point to have such a USE flag then?
But the main question - are you sure portage written in python if I am not mistaken
MUST be dependent on the SHELL, so that no other shell can be used.
Even "eselect sh" has gone.
With that kind of "progress" we will see portage depending on LibreOffice or Chromium browser.
|
You can use package.provided to get rid of the dependency.
You can get old distfiles from here:
bloodnoc.org/~roy/olde-distfiles/
You may find the bash ebuild somewhere.
Judging from this post, colo-des may be able to help you.
lefsha wrote: |
Frankly I am shocked by what I have discovered. Systemd getting more sane, than portage. |
Please don't go that far. _________________ My overlay: https://github.com/stefan11111/stefan_overlay
INSTALL_MASK="/etc/systemd /lib/systemd /usr/lib/systemd /usr/lib/modules-load.d *udev* /usr/lib/tmpfiles.d *tmpfiles* /var/lib/dbus /usr/bin/gdbus /lib/udev" |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
sam_ Developer
![Developer Developer](/images/ranks/rank-dev.gif)
![](images/avatars/7738740495f7d1acc45bdb.jpg)
Joined: 14 Aug 2020 Posts: 1852
|
Posted: Tue Jun 20, 2023 4:24 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
stefan11111 wrote: | lefsha wrote: | I didn't pay much attention to it earlier, but once decided to change the shell
for my "embedded" installation I faced the issue, that I cannot get rid of bash
going to dash or else and not even downgrade it to =app-shells/bash-4.2_p53,
which is the last one which can be linked statically.
If enforcing it with masking newer versions portage has stopped working
and like stated in its ebuild requires >bash-5.0 and readline.
Independent from USE=-readline, bash higher, than 4.2_p53 cannot be build
w/o readline at all. What is the point to have such a USE flag then?
But the main question - are you sure portage written in python if I am not mistaken
MUST be dependent on the SHELL, so that no other shell can be used.
Even "eselect sh" has gone.
With that kind of "progress" we will see portage depending on LibreOffice or Chromium browser.
|
You can use package.provided to get rid of the dependency.
You can get old distfiles from here:
bloodnoc.org/~roy/olde-distfiles/
You may find the bash ebuild somewhere.
Judging from this post, colo-des may be able to help you.
lefsha wrote: |
Frankly I am shocked by what I have discovered. Systemd getting more sane, than portage. |
Please don't go that far. |
This makes no sense. Portage really does need modern Bash and ebuilds can and do use its features.
As for building a minimal system: there's no requireemnt for Portage to be in a built ROOT. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
stefan11111 l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
Joined: 29 Jan 2023 Posts: 929 Location: Romania
|
Posted: Tue Jun 20, 2023 4:42 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
sam_ wrote: |
This makes no sense. Portage really does need modern Bash and ebuilds can and do use its features.
As for building a minimal system: there's no requireemnt for Portage to be in a built ROOT. |
Maybe there's another way of doing what lefsha asked that I don't see. That's just how I would do it.
If modern portage needs modern bash, then the solution may be to also mask modern portage and use an ancient version.
There will likely be problems, but that is for lefsha to decide if removing bash and readline is worth having those problems. _________________ My overlay: https://github.com/stefan11111/stefan_overlay
INSTALL_MASK="/etc/systemd /lib/systemd /usr/lib/systemd /usr/lib/modules-load.d *udev* /usr/lib/tmpfiles.d *tmpfiles* /var/lib/dbus /usr/bin/gdbus /lib/udev" |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
John R. Graham Administrator
![Administrator Administrator](/images/ranks/rank-admin.gif)
![](images/avatars/1323583785534df64897db0.jpg)
Joined: 08 Mar 2005 Posts: 10644 Location: Somewhere over Atlanta, Georgia
|
Posted: Tue Jun 20, 2023 5:57 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
stefan11111 wrote: | If modern portage needs modern bash... | Even ancient portage needs Bash: you'd have thousands (probably tens of thousands) of ebuilds to rewrite, to say nothing of the eclasses, to remove that dependency.
- John _________________ I can confirm that I have received between 0 and 499 National Security Letters. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Ionen Developer
![Developer Developer](/images/ranks/rank-dev.gif)
![](images/avatars/12407261860db424480089.png)
Joined: 06 Dec 2018 Posts: 2765
|
Posted: Tue Jun 20, 2023 6:38 pm Post subject: |
|
|
If really need a small embedded image, may want to consider just building it in a different ROOT (like noted in earlier comments), dropping build deps (+force for things you know you won't need anymore), then using it rather than trying to install things using it (aka get rid of portage). Can always update it on another machine.
If it's able to keep portage, python (like ~170MB for 3.11), and friends, and install binpkgs or even build things, then something small like bash and readline shouldn't be a major concern.
bash is best thought as its own language, removing it is not much different than removing perl, or python, and then expecting perl scripts to use awk to run. Ebuilds are written in bash, not posix sh. However, things like e.g. openrc scripts do use posix sh (considered a bug when they don't) and you won't get a hard requirement on bash to just run the system typically. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 9:55 am Post subject: |
|
|
grknight wrote: | Portage has always required bash to run the ebuilds. |
Do you mean SHELL, not BASH don't you? I cannot see why exactly BASH is required.
Especially the latest version >5.0, which is nonsense.
grknight wrote: | specifically lists bash as required and which EAPIs need which bash versions for features. |
I am not blind yet. I can see, that Bash >5.0 is required. I am shocked, that it is made that way. Next level will be Chromium
and systemd dependency, then one can drop Gentoo once and forever.
There is no single sane reason for doing that way. One can always use POSIX shell scripting which must be enough for everything in life.
No one can prove me wrong here.
grknight wrote: |
Edit: Bug 445576 is where the forced readline comes from as Portage has used the compgen built-in for the last 10 years (or more). |
I try it slowly.
1. Bash in Portage cannot be built without readline! It is HARD dependency. At the same time there is USE=readline, which is superfluously.
To prove it try to remove readline headers and build bash with USE=-readline. It won't compile! But if you will take bash-4.2_p53 or older
it will compile! Of course, using portage, not sources.
2. readline is kind of system lib, unfortunately, and several other programs depend on it. It is a different question WHY it has been done that way.
Most likely FreeBSD can live w/o readline prefectly well. But the problem is here with broken logic.
3. I've read that bug report and other bug reports about that topic, which I consider invalid.
Last 10 years I don't trust what Gentoo developers are doing and if I have time I try to prove if something really works that way.
I took GIT repo of Bash and build it myself for my own purpose for embedded system. I don't wish to have 2 or 3 SHELLs like in the mad case of Python with numerous non compatible versions between each other. But that is the issue of Python developers and not Gentoo developers! One must admit that.
The goal was to have statically linked bash, because I cannot use other SHELL with portage.
I have built it that way and everything works well. No issues whatsoever.
Then just out of fun and curiosity I have built bash w/o readline support.
It still works fine.
I don't mind to run bash or dash or what ever. With portage I could build dash statically and bash not.
Using original sources I was able to build bash statically and w/o readline and it works. Naturally!
The problem has been solved. The route is - not using portage... Quite painful for Gentoo I would say. _________________ Lefsha
Last edited by lefsha on Wed Jun 21, 2023 11:14 am; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 10:47 am Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
stefan11111 wrote: |
You can use package.provided to get rid of the dependency.
You can get old distfiles from here:
bloodnoc.org/~roy/olde-distfiles/
You may find the bash ebuild somewhere.
Judging from this post, colo-des may be able to help you.
lefsha wrote: |
Frankly I am shocked by what I have discovered. Systemd getting more sane, than portage. |
Please don't go that far. |
Thank you for your suggestions. After 20+ years of using Linux and Gentoo in particular I have written
my own build system to automate building from GIT directly. And indeed that is a common thing
what I am doing with marking some packages as already provided. I cannot live w/o that feature.
And I don't need any ebuilds usually. I don't like it's cryptic syntax and miracles embedded into
eclasses or some other files. To my humble opinion everything required for building any package
must be either shared among ALL of them or be inside of the ebuild file. I hate hidden rules or
things which come from nowhere.
Before Gentoo I was using FreeBSD and it was quite simple and sane with building packages.
make; make install was all what is required. That paradigm still works today.
Building bash from sources directly is easier, than using any ebuild.
I don't have time and power to manage all packages that way. That is why I rely on portage system.
Strange is, that over time the number of "from sources" packages is growing. The newer generation
makes me wonder and makes me worry.
Regarding the comparison with systemd it is not far from reality. The level of insanity is quite similar.
Alone the phrase that portage depends on bash-5.0+ sounds ridiculous. If only me see it that way
is even more tragical. Critical system relevant packages should have minimum number of dependencies
and none of them must be versioned. The perfect system relevant applications must have zero dependencies.
One can always claim glibc is the main part of linux system, which I doubt, but having kernel dependent
on glibc especially exact version is totally insane. And we know Linus is still sane in that regard.
I feel strange trying to explain basics... but that is a life. The new generation probably really believes,
that bash is everywhere newer than 5.0 and no one else is using anything else.
One can see it by how fast "old" ebuilds even gentoo-sources are disappearing from the tree. _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 10:49 am Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
sam_ wrote: |
This makes no sense. Portage really does need modern Bash and ebuilds can and do use its features. |
Well said. This makes no sense! Just put a colon instead of period. _________________ Lefsha
Last edited by lefsha on Wed Jun 21, 2023 11:22 am; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 10:53 am Post subject: |
|
|
Ionen wrote: | If really need a small embedded image, may want to consider just building it in a different ROOT (like noted in earlier comments), dropping build deps (+force for things you know you won't need anymore), then using it rather than trying to install things using it (aka get rid of portage). Can always update it on another machine. |
See my other reply. I have managed to have it small and working on the "modern" portage system...
There is no functionality I have lost so far... _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 11:10 am Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
John R. Graham wrote: | Even ancient portage needs Bash: you'd have thousands (probably tens of thousands) of ebuilds to rewrite, to say nothing of the eclasses, to remove that dependency.
|
There are 2 different things. Bash as a shell and bash as bash.
If shell scripting is required it is OK. If bash scripting is required it is a bad design.
What I have mentioned is the issue with readline dependency. And that is the proven fact. Hard to argue.
I repeat to avoid confusion, because I see no one is reading what is written.
Readline is system lib and bash from portage has hard dependency on it!
having in portage.ebuild : >=app-shells/bash-5.0:0[readline] - makes no sense. The [readline] part of it.
At the same time real dependency on readline is NOT required. That is the fact.
Earlier bash could be built statically linked. Not anymore in portage, but very well in real life.
The problem is not, whether portage requires some dependency, although dependency on bash-5.0+ is insane, but may be is real
I have no time and wish to prove that one too. The problem, that dependency tree is broken and that something which very well can be built statically like before is not allowed anymore by portage of course.
bash itself is totally sane and OK, which is expected. _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
grknight Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
Joined: 20 Feb 2015 Posts: 1833
|
Posted: Wed Jun 21, 2023 12:25 pm Post subject: |
|
|
lefsha wrote: |
1. Bash in Portage cannot be built without readline! It is HARD dependency. At the same time there is USE=readline, which is superfluously.
To prove it try to remove readline headers and build bash with USE=-readline. It won't compile! But if you will take bash-4.2_p53 or older
it will compile! Of course, using portage, not sources. |
If you really wanted, there is /etc/portage/profile/package.use.force to remove the forced readline USE.
It exists in the first place for the average user not to complain about "unknown command" errors when processing any ebuild. (Hence the bug mentioned earlier.)
If things break because of this, you get to keep the pieces. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
grknight Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
Joined: 20 Feb 2015 Posts: 1833
|
Posted: Wed Jun 21, 2023 12:40 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
lefsha wrote: | Readline is system lib and bash from portage has hard dependency on it!
having in portage.ebuild : >=app-shells/bash-5.0:0[readline] - makes no sense. The [readline] part of it. |
It makes sense since Portage uses the compgen bash (built-in) command which needs readline support to exist. Otherwise errors occur. (See referenced bug). |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Hu Administrator
![Administrator Administrator](/images/ranks/rank-admin.gif)
Joined: 06 Mar 2007 Posts: 22379
|
Posted: Wed Jun 21, 2023 12:40 pm Post subject: |
|
|
If you want to build a static bash, and include readline in it, go ahead. The existing dependency does not specifically prohibit that. Per your post, modern bash does not build/link properly with readline and static linking - but you could fix that, if you care. I do not see the value in making bash static if you are still including all its features.
Per other posts in this thread, if you manage to make Portage proceed using a Bourne shell that is not bash+readline, various ebuilds will not work for you as their authors intend. Maybe you will get lucky and none of the ebuilds you care about are broken badly enough to stop you. However, since the Portage specification has promised ebuild authors the availability of bash, you should expect that at least some of the ebuild authors are using bash-specific features that a strict Bourne shell will lack. That usage is not a bug because the Portage specification promised the interpreter would implement the Bash scripting language, not just Bourne, so any conforming interpreter must implement Bash. To my knowledge, only GNU Bash implements the Bash scripting language. If you are aware of another interpreter which implements the Bash scripting language, you could try using that interpreter. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
stefan11111 l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
Joined: 29 Jan 2023 Posts: 929 Location: Romania
|
Posted: Wed Jun 21, 2023 12:48 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
lefsha wrote: |
Building bash from sources directly is easier, than using any ebuild.
I don't have time and power to manage all packages that way. That is why I rely on portage system.
Strange is, that over time the number of "from sources" packages is growing. The newer generation
makes me wonder and makes me worry.
|
To mitigate this, I have my overlay.
I created mine recently because I didn't like the fact that git was becoming a second package manager.
Maybe this solution is right for you too.
You can make a git repo with the version of bash you want and create a git ebuild for it.
lefsha wrote: |
One can see it by how fast "old" ebuilds even gentoo-sources are disappearing from the tree. |
Again, overlays. Keep old ebuilds that disappeared from ::gentoo in your overlay. _________________ My overlay: https://github.com/stefan11111/stefan_overlay
INSTALL_MASK="/etc/systemd /lib/systemd /usr/lib/systemd /usr/lib/modules-load.d *udev* /usr/lib/tmpfiles.d *tmpfiles* /var/lib/dbus /usr/bin/gdbus /lib/udev" |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 6:19 pm Post subject: |
|
|
[quote="grknight"] lefsha wrote: |
If you really wanted, there is /etc/portage/profile/package.use.force to remove the forced readline USE.
|
We speak different languages. USE flags and HARD dependency are 2 different things.
It makes no sense to have USE flag on hard dependency. _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 6:28 pm Post subject: |
|
|
Hu wrote: | If you want to build a static bash, and include readline in it, go ahead. The existing dependency does not specifically prohibit that. Per your post, modern bash does not build/link properly with readline and static linking - but you could fix that, if you care. I do not see the value in making bash static if you are still including all its features. |
I guess people in that thread heavily misinterpret 2 things:
1. How to achieve something to make it work.
2. What is the proper way of doing things.
My initial message was NOT about the first. I can manage Gentoo myself since decades.
My message was about the second. Making hard dependency on bash is WRONG. Period.
What exactly is not clear in that message?
II. I have already done what you suggest me doing for the future. That was rather trivial. There is no special care about it.
Some one has spent time removing USE=static from ebuild for no reason. So again the assumption is wrong.
No one need to do anything to make bash statically linked in the first place. _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 6:43 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
stefan11111 wrote: |
To mitigate this, I have my overlay.
I created mine recently because I didn't like the fact that git was becoming a second package manager.
|
Well, I do use overlays too. Like any one else, I guess.
Frankly I don't understand the sentence about git being a package manager. Is it one?
Git holds a collection of ebuilds, patches etc. It's like a storage. There is nothing wrong with it.
A package or a program holds its own source code in the git tree too. That is also perfectly fine.
Nothing of that is a package manager.
stefan11111 wrote: |
Maybe this solution is right for you too.
You can make a git repo with the version of bash you want and create a git ebuild for it.
|
Frankly I wish 99% of things works in the standard way. Especially anything related to the shell.
stefan11111 wrote: |
Again, overlays. Keep old ebuilds that disappeared from ::gentoo in your overlay. |
I don't have much time to care of it on daily basis. And I see no reason why should I.
An existing ebuild should not disappear as long it fits the system functionality.
What I see is that Gentoo developers do that based on the random choice.
Quite recent version of gentoo-sources may disappear from the tree, although one cannot upgrade to the newer one,
because for me ZFS module is not released yet. But bash 2.0 something is still available despite bash 5.0+ is the minimum
for system functionality.
Any one can say it make sense? - Not for me.
With the time more and more these kind of random decisions take place. And it is not that some extra efforts are required.
Quite often the less the time have been spent the better it works. Specially with ebuild removal. But that is old problem.
I just recall it again. _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
grknight Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
Joined: 20 Feb 2015 Posts: 1833
|
Posted: Wed Jun 21, 2023 6:44 pm Post subject: |
|
|
lefsha wrote: | My message was about the second. Making hard dependency on bash is WRONG. Period. |
Sorry about your denial of reality, but this is wrong. All ebuilds written for Portage require bash, not just any shell, to be run as a script. The bash version is dependent on the EAPI.
Portage bash script files, not related to the ebuilds, use a bash feature that needs readline inside of bash. Therefore, Portage has a hard dependency on bash because it really does depend on bash.
If you don't like Portage and ebuilds, no one is stopping you from discontinuing their use. There are lots of other systems out there. Continued use of Portage and ebuilds requires conformity to the PMS.
No further comments from me on this subject. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 6:50 pm Post subject: Re: Portage hard dependency on Bash + Readline |
|
|
grknight wrote: |
It makes sense since Portage uses the compgen bash (built-in) command which needs readline support to exist. Otherwise errors occur. (See referenced bug). |
No. It doesn't make sense. Not to me. I see no reason in compgen. I see no use in it. Everything works w/o exact the same way.
Even if any one need that functionality, which I doubt, the proper engineering solution would be to write it in python or POSIX shell.
I still remember the case from the past, like some genius has decided to push inkscape to a hard dependency to do something with svg files
inside of his ebuild...
I am not saying anything wrong. There will be one day when another genius will decide to push libreoffice or nodejs as a dependency, because
it will provide a cool feature for portage and obviously no one can live w/o that feature.
If I cannot explain anything to a developer, that is quite remarkable and tragic at the same time. I would call it degradation. _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
szatox Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
Joined: 27 Aug 2013 Posts: 3329
|
Posted: Wed Jun 21, 2023 7:01 pm Post subject: |
|
|
Quote: | My message was about the second. Making hard dependency on bash is WRONG. Period. | No, it's not. You disliking it does not make it inherently wrong.
I didn't dig into the rationale behind the decision. Just pointing out that you are passing a moral judgement on things that don't carry any moral implications just because they don't match your expected confirmation bias.
Guess what, I don't like python. I have my reasons. Fortunately, even though emerge depends on python, I'm not the one who has to put up with python's madness.
If you really don't want bash in your final system, perhaps an alternative package manager would be a viable option. Or maybe you want to build a minimal image using ROOT option. This image can live without emerge, bash, and gcc. It will not be self-sufficient, but you can still update it from the outside. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 7:02 pm Post subject: |
|
|
grknight wrote: |
Sorry about your denial of reality, but this is wrong. All ebuilds written for Portage require bash, not just any shell, to be run as a script. |
It is the reality in a sense that some one made a mistake or a wrong design!
Your words are similar to saying - "you deny the reality Titanic has sank"
No. I am not denying it. I see it. I know it. But I am saying like with Titanic - it is wrong. Some one made a mistake. It should not be that way.
Just matter of fact 20 years ago Portage had no dependency on bash-5.0 Simply because there was no bash-5.0
At the same time bash like 20 years ago easily support POSIX shell scripting, which should be used for the programming of portage if suddenly Python is not that powerful...
Do you understand what I am saying?
Any one who decided we need a special feature from bash-5.0 is wrong. Not matter what. That person is wrong and should not do that.
He can do that for his home work project or to play with kids. The main part of Gentoo which portage obviously is cannot rely on NON STANDARD features.
Tomorrow bash will drop the support of that feature and what you gonna do?
All bash developers will die and linux will move to dash or what ever else. And then what?
It has happened million times with linux. Many packages from the past were stack in development and support.
POSIX standard is POSIX standard. Before becoming a developer RTFM what standard is and why it has been created.
Kids, you make angry. ![Evil or Very Mad :evil:](images/smiles/icon_evil.gif) _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
lefsha Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 30 Aug 2004 Posts: 1234 Location: Burgas, Bulgaria
|
Posted: Wed Jun 21, 2023 7:13 pm Post subject: |
|
|
szatox wrote: | Quote: | My message was about the second. Making hard dependency on bash is WRONG. Period. | No, it's not. You disliking it does not make it inherently wrong. |
It is wrong by any sane logic. There is no one is the world who can prove me wrong. You can always try. But after written that much there is NO single
person who said - it is on purpose and was able to explain me that purpose.
szatox wrote: |
I didn't dig into the rationale behind the decision. |
If you didn't how can you try to protect something you don't know and not willing to understand?
szatox wrote: |
Guess what, I don't like python. I have my reasons. Fortunately, even though emerge depends on python, I'm not the one who has to put up with python's madness. |
Don't mix things up. Liking something and not liking something has no relation with logic.
I don't like python too. But there is not a broken logic behind it. The main problem of python is non compatible versions.
But I cannot blame anyone that they like python. It's like being unhappy that people like tik-tok. I do not care about it.
szatox wrote: |
If you really don't want bash in your final system, perhaps an alternative package manager would be a viable option.
|
How about reading what has been written before trying to discuss it? _________________ Lefsha |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Hu Administrator
![Administrator Administrator](/images/ranks/rank-admin.gif)
Joined: 06 Mar 2007 Posts: 22379
|
Posted: Wed Jun 21, 2023 7:15 pm Post subject: |
|
|
Very few things need to be built with USE=static, and keeping that flag around when it is not necessary is probably perceived to be a maintenance burden. On review of the Portage history, it looks like vapier enabled static support in 4.2_p53 after that ebuild was already available, but did not do it for newer versions. I may have missed something though, as I did not attempt an exhaustive review of the history. There is no Gentoo bug ticket referenced, nor a comment explaining the rationale for adding this support.
A hard dependency on bash, or even bash[readline], is only wrong if you have evidence that Portage works fully and completely without those dependencies satisfied. Per grknight's post, Portage and ebuilds are documented to have access to this feature, whether or not they specifically require it right now. Further, grknight has cited at least one location known to need bash's readline functionality. If you think this is incorrect, please document exactly how you determined that the cited Portage feature works without bash+readline. If your embedded system does not use Portage, then you should be able to cross-build a readline-free and/or static bash into that environment. If your embedded system uses Portage, then you need bash+readline for the embedded Portage. Presumably, this is also why bash has USE=readline. It enables truly minimal systems to strip this out. Portage is defined not to work on such a minimal system, but if you want to use Portage to build a tiny system, such as for an initramfs, it could work.
If bash[-readline] fails to build, that is a bug, albeit one you may not get much traction on. Since Portage forces bash[readline], very few people will be impacted by this failure. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|