Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Portage hard dependency on Bash + Readline
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Wed Jun 21, 2023 7:24 pm    Post subject: Reply with quote

It is not a correct comparison in the case of real bash, but the message I try to bring over is the following:

You cannot make water as USE flags for tea and then insist a cake being dependent on the tea[water].

Water is inherent part of tea and no one can make tea w/o water.

Saying that portage depends on bash[readline] is the same
like cake depends on tea[water]

In the terms on Gentoo it is a valid comparison. Generally it is not. But we are talking at the first place considering
Gentoo as a scope we operate in.
_________________
Lefsha
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54391
Location: 56N 3W

PostPosted: Wed Jun 21, 2023 7:41 pm    Post subject: Reply with quote

lefsha,

I'm a bit late to this topic, sorry about that.

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.


Portage has always depended on bash. Even 20 years ago.
There is a working 20 year old install to do or play with. :)

Why would you have portage in an "embedded" install?
Embedded systems are usually execute only.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Wed Jun 21, 2023 8:11 pm    Post subject: Reply with quote

NeddySeagoon wrote:

Portage has always depended on bash. Even 20 years ago.
There is a working 20 year old install to do or play with. :)


Oh. God... Nicht schon wieder. 8O

Neddy I cannot explain the same thing 10 times.

Being depending on POSIX shell scripting is not the same like being dependent on bash-5.0

Please, go to Church and looking to the Priest in the eyes tell him the same what you just did:

"Portage has always depended on bash-5.0" Even before bash-5.0 was sent by God to Earth.

What? You cannot say that? Why?



P.S. I now admit my initial message was to complex to understand by all. It had too many parts inside and not just single simple thought,
which is only accepted by Tik-Tok generation of today. "Et tu, Brute?" (c)
_________________
Lefsha
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 21778

PostPosted: Wed Jun 21, 2023 8:36 pm    Post subject: Reply with quote

If you are going to claim people cannot understand you, then you should be a bit more careful to understand what you are told. You are getting close to insulting people who are trying to help you, despite your lack of demonstrated willingness to accept that help.

Neddy did not say that Portage always depended on bash-5.0. Neddy said Portage always depended on bash. As explained earlier in the thread, the required minimum bash version has risen over time. Therefore, 20 years ago, Portage depended on a version of bash that existed then, and that the developers of that time felt was a reasonable compromise between being old enough to be widely available and new enough to be useful. As bash has gained features over time, Gentoo developers have found uses for those features, and have raised the required minimum bash version accordingly. Generally, they are quite cautious about raising minimum standards, but it makes no sense to insist that modern ebuilds be parseable using classic Bourne shell.
Back to top
View user's profile Send private message
szatox
Advocate
Advocate


Joined: 27 Aug 2013
Posts: 3174

PostPosted: Wed Jun 21, 2023 8:48 pm    Post subject: Reply with quote

Quote:
There is no one is the world who can prove me wrong. You can always try.
No, thanks. If you say you're a lost cause, I'll take your word on that and simply call you out instead of trying to make good points.

Quote:
P.S. I now admit my initial message was to complex to understand by all. It had too many parts inside and not just single simple thought,
I understand that you're pissed about emerge being dependent on bash instead of posix.
This said, bash has a pretty good track record and is the standard shell in Gentoo. POSIX is POSIX and Gentoo is Gentoo.

Quote:
If you didn't how can you try to protect something you don't know and not willing to understand?
I'm not trying to "protect" anything here, since
a) I'm not invested in any particular outcome of this discussion
b) you're not threatening anything, merely throwing a temper tantrum which can be simply ignored

Quote:
How about reading what has been written before trying to discuss it?
Oh, right, embedded systems. I've got you covered: set ROOT to build an image in a subdirectory, one without emerge, gcc, and bash. Hell, you can even build one without coreutils to save some space.
How 'bout reading the reply before _bash_ing it?
Ba dum tss!
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3386
Location: Rasi, Finland

PostPosted: Wed Jun 21, 2023 10:29 pm    Post subject: Reply with quote

Ok.
Why is bash a problem now, not 20 years ago? What happened between bash... 2.something (?) and 5.x so that it gets so much hate in this topic?

I don't like "bloat" too, but I make compromises also. That's why I'm ok with bash and python, for example. If I'd avoid both, I'd be using Kiss Linux by now, I guess.
_________________
..: Zucca :..
Gentoo IRC channels reside on Libera.Chat.
--
Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
stefan11111
l33t
l33t


Joined: 29 Jan 2023
Posts: 922
Location: Romania

PostPosted: Thu Jun 22, 2023 12:33 am    Post subject: Reply with quote

lefsha wrote:

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... :D :D :D
If there will ever be a rewrite, why not in c?
_________________
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
View user's profile Send private message
Goverp
Advocate
Advocate


Joined: 07 Mar 2007
Posts: 2022

PostPosted: Thu Jun 22, 2023 8:21 am    Post subject: Reply with quote

stefan11111 wrote:
lefsha wrote:

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... :D :D :D
If there will ever be a rewrite, why not in c?

Surely, while we're at allowing the replacement of Bash with other scripting languages, shouldn't we be able to replace python with C or Rust? How about a USE_EXPAND setting
Code:
PORTAGE_IMPLEMENTATION="zsh golang"

Just a SMOP :-)
_________________
Greybeard
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9546
Location: beyond the rim

PostPosted: Thu Jun 22, 2023 12:21 pm    Post subject: Reply with quote

Goverp wrote:
stefan11111 wrote:
lefsha wrote:

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... :D :D :D
If there will ever be a rewrite, why not in c?

Surely, while we're at allowing the replacement of Bash with other scripting languages, shouldn't we be able to replace python with C or Rust? How about a USE_EXPAND setting
Code:
PORTAGE_IMPLEMENTATION="zsh golang"

Just a SMOP :-)

These days just ask ChatGPT to do it :lol: :lol: :lol:
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Thu Jun 22, 2023 12:54 pm    Post subject: Reply with quote

Hu wrote:
If you are going to claim people cannot understand you, then you should be a bit more careful to understand what you are told. You are getting close to insulting people who are trying to help you, despite your lack of demonstrated willingness to accept that help.


Did I mention I need help? I just said developers are doing wrong things. It was me trying to help and to rectify the behavior.
What exact help I could accept? Doing what?

Hu wrote:
Neddy did not say that Portage always depended on bash-5.0. Neddy said Portage always depended on bash. As explained earlier in the thread, the required minimum bash version has risen over time.


There is no problem if portage depends on bash as long one understand it like POSIX shell scripting functionality of bash.
Being depending on bash-5.0 is a misconception! It is a wrong thing. There is nothing what portage cannot live w/o from bash-5.0

Tomorrow some one will decide, that ruby is a cool language. Let us make portage depended on Ruby. Then may be dot_net will come into question.
That is an unlimited spiral of crashing against the wall.

Could you tell me, where here exactly I am asking for help?

Why the word "help" comes to the table? Any one?


Hu wrote:
Therefore, 20 years ago, Portage depended on a version of bash that existed then, and that the developers of that time felt was a reasonable compromise between being old enough to be widely available and new enough to be useful. As bash has gained features over time, Gentoo developers have found uses for those features, and have raised the required minimum bash version accordingly. Generally, they are quite cautious about raising minimum standards, but it makes no sense to insist that modern ebuilds be parseable using classic Bourne shell.


Could you provide a list of features bash-5.0 has and portage cannot live w/o?
Do we understand both, that POSIX shell scripting is a programming LANGUAGE in the first place and one can write ANYTHING in that language?

Do you believe, that before C++20 has been released people were not able to make a dynamic array on the heap?
We both hopefully know that it is not true.

Linux kernel still can use plain C and be happy with that. Would you say portage is something more complex, than Linux kernel and it cannot live w/o
special features from bash?

I do agree shell scripting is a poor language with a bad design and crazy syntax, but as much as I know Portage is mainly written in Python.
Does it mean the power of python is not sufficient and one need to use bash-5.0?

What exactly python and its million packages don't have, what bash-5.0 has? No joke. I wish to know it.
I wish to admire bash and see how it was able to outperform python as a programming language?
_________________
Lefsha
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Thu Jun 22, 2023 12:59 pm    Post subject: Reply with quote

szatox wrote:
Quote:
How about reading what has been written before trying to discuss it?
Oh, right, embedded systems. I've got you covered: set ROOT to build an image in a subdirectory, one without emerge, gcc, and bash. Hell, you can even build one without coreutils to save some space.
How 'bout reading the reply before _bash_ing it?
Ba dum tss!


Szatox, you didn't get it. Even now you didn't get it. I wonder why it is so complex.
I left the message above about USE=water for tea package. Please read it.

Tell me, where exactly I was wrong in that message?


P.S. An advice. Don't make guesses if you don't know or don't understand. Ask questions. That is much easier for every one.
You have made 2 assumptions and both were wrong. I think it's a reason to think about.
_________________
Lefsha
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Thu Jun 22, 2023 1:24 pm    Post subject: Reply with quote

Zucca wrote:
Ok.
Why is bash a problem now, not 20 years ago? What happened between bash... 2.something (?) and 5.x so that it gets so much hate in this topic?

I don't like "bloat" too, but I make compromises also. That's why I'm ok with bash and python, for example. If I'd avoid both, I'd be using Kiss Linux by now, I guess.


I make it short to avoid speculations.

1. Bash is NOT a problem. Not even a little. OK?
2. Portage is the problem. Bah?! Which problem?

N.B. all of them listed below are unrelated to each other !!! and fully independent!

2.1. USE=readline IS the problem for bash and portage correspondingly. Why so? - Because you cannot have USE flag for _hard_ dependency. Clear?

2.2. Portage mostly written in python could have other language dependency? - Yes, sure. Would it be wise to make portage being dependent on
everything what can be installed with linux? - Probably not. There are dozens languages out there and a million of libraries. Does portage need
to use the the latest feature of any programming language? - Most likely not. Is it possible to write in the old style POSIX scripting the same what
has been written by using bash-5.0? - Certainly. What if that something is almost impossible to write in bash/posix scripting? - Use proper language
for that. Neither bash nor shell scripting has been made for proper full scale programming. Its functionality is really terrible and the syntax is really
bad. So its use must be downgraded to the minimum.

2.3. Earlier bash could be linked statically. Its still available today, but not in portage. Someone has removed that capability for no reason.
Using original source one can easily w/o headache in 30 sec compile bash statically linked and it works.

2.4. Using original source one can really play with using or not using readline library by adding or removing the flag --enable-readline
in the ./configure script. I have done so and could not record any difference for portage functionality if building bash w/o readline support.
Any one can feel free to point me to the actions which should stop working if bash has been compiled w/o readline. So far I see nothing, but
I could be wrong and there is something, which will stop working.

Now. Zucca, could we have a normal sane discussion on those items above and I would be happy if you tell me where exactly I am wrong in my logic.
Obviously, I cannot change what and how Gentoo developers are doing, but I wish to express my unhappiness with what is going on.
I think it could be useful to know what users are thinking. At least those who started using Gentoo before some developers were born and who need
no help to fix their own system.


Thank you.
_________________
Lefsha
Back to top
View user's profile Send private message
szatox
Advocate
Advocate


Joined: 27 Aug 2013
Posts: 3174

PostPosted: Thu Jun 22, 2023 1:41 pm    Post subject: Reply with quote

Quote:
P.S. An advice. Don't make guesses if you don't know or don't understand. Ask questions. That is much easier for every one.
It's even easier to press the X in the corner, but I'll humor you.

I do get your message about tea. It's not complex at all. Aren't you making Mount Everest out of a mole hill, though?

Quote:
Could you tell me, where here exactly I am asking for help?
Isn't P&P a support forum?
Quote:
What exactly python and its million packages don't have, what bash-5.0 has? No joke. I wish to know it.
I wish to admire bash and see how it was able to outperform python as a programming language?
Hasn't portage started as roughly 100 lines of bash code?
Isn't it natural for a tool written in bash to use mechanisms native to bash?
Hasn't it been then augmented with python after it was already working?
Given the size of portage tree, isn't it a lot of effort to rewrite all ebuilds and eclasses from bash to python? Will the benefits of not depending on bash outweigh the costs of transition?
Back to top
View user's profile Send private message
pingtoo
l33t
l33t


Joined: 10 Sep 2021
Posts: 955
Location: Richmond Hill, Canada

PostPosted: Thu Jun 22, 2023 2:14 pm    Post subject: Reply with quote

lefsha,

lefsha wrote:
Hu wrote:
If you are going to claim people cannot understand you, then you should be a bit more careful to understand what you are told. You are getting close to insulting people who are trying to help you, despite your lack of demonstrated willingness to accept that help.


Did I mention I need help? I just said developers are doing wrong things. It was me trying to help and to rectify the behavior.
What exact help I could accept? Doing what?

Hu wrote:
Neddy did not say that Portage always depended on bash-5.0. Neddy said Portage always depended on bash. As explained earlier in the thread, the required minimum bash version has risen over time.


There is no problem if portage depends on bash as long one understand it like POSIX shell scripting functionality of bash.
Being depending on bash-5.0 is a misconception! It is a wrong thing. There is nothing what portage cannot live w/o from bash-5.0

Tomorrow some one will decide, that ruby is a cool language. Let us make portage depended on Ruby. Then may be dot_net will come into question.
That is an unlimited spiral of crashing against the wall.

Could you tell me, where here exactly I am asking for help?

Why the word "help" comes to the table? Any one?


May be my English was not so good, but I think Hu is referring others are trying to "Help" you understand a different point of view. If you do not agree the "different point of view" that is fine. But I am not sure is what is the right way to express the idea of the third person is trying to explain a conversation from his point of view.

lefsha wrote:

Hu wrote:
Therefore, 20 years ago, Portage depended on a version of bash that existed then, and that the developers of that time felt was a reasonable compromise between being old enough to be widely available and new enough to be useful. As bash has gained features over time, Gentoo developers have found uses for those features, and have raised the required minimum bash version accordingly. Generally, they are quite cautious about raising minimum standards, but it makes no sense to insist that modern ebuilds be parseable using classic Bourne shell.


Could you provide a list of features bash-5.0 has and portage cannot live w/o?
This question is so wrong that I had to ask why, Why question specific features needed in order to implement something. Most of time something was chosen is because it is readily available. This is like asking what specific feature "Rust" don't have that why we don't use rust to implement portage.


Throughout the entire thread of this topic, I got a feeling you have a idea of Gentoo is like a complete program that every part should work together. May I present a different point of view? I believe Gentoo is no more than Portage (The package manager) and ::gentoo repos (A large set of build procedures). I think Gentoo Dev. voluntarily share their experience on how to build one package, the experience were translated into "ebuild" so someone else who is interesting the same program can benefit.

A "ebuild" must expressed in a way that all understand in order for it can be shared. so choose a common denominator that majority user can accept is good thing. Bash is good common denominator for all linux distro. however since bash is still evolving it would be best to choose a milestone so everyone can easily reference. you may think that is right but why don't we use POSIX as the "milestone", for the logical thinking I agree, but I am not at the time when decision were made so I accept what was given. on the other hand I agree from design point of view I will choose a tool with feature rich as oppose a tool with feature limited for long longevity of the design.


You continue state that using bash5.x is wrong, in my mind one must know what is right in order to know what is wrong. so can you share your right way of doing that we all can benefit from the "right" :wink: :wink:


All the above of my saying is trying to "Help" that there could be other point of view in hope you can consider.
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 21778

PostPosted: Thu Jun 22, 2023 3:54 pm    Post subject: Reply with quote

lefsha wrote:
Hu wrote:
If you are going to claim people cannot understand you, then you should be a bit more careful to understand what you are told. You are getting close to insulting people who are trying to help you, despite your lack of demonstrated willingness to accept that help.
Did I mention I need help? I just said developers are doing wrong things. It was me trying to help and to rectify the behavior.
You have a very strange way of helping. If I were the developer responsible for Portage (I'm not), your way of helping me to solve this problem would more likely have resulted in me deciding that you were wasting my time, and that I should ignore future posts from you. You present large walls of text arguing that particular things are wrong, and insisting others justify the existing situation to you. Your posts repeatedly give the impression you do not know, understand, or even care about the rationale for why certain decisions were made. Bash has its quirks, and some of the recent bash versions have had undesirable behaviors that the Gentoo developers have needed to handle specially. Despite this, inertia argues against replacing bash now.
lefsha wrote:
What exact help I could accept? Doing what?
I think you could use some help sounding less confrontational. If I were not a moderator and feeling some sense of obligation to continue watching this thread, I probably would have stopped reading it by now. It feels like you will never accept that your position could be wrong in any way.
lefsha wrote:
Hu wrote:
Neddy did not say that Portage always depended on bash-5.0. Neddy said Portage always depended on bash. As explained earlier in the thread, the required minimum bash version has risen over time.
There is no problem if portage depends on bash as long one understand it like POSIX shell scripting functionality of bash.
That is a way that the Gentoo developers could have chosen to work, but that is not the choice they made. The relevant people specifically promised that ebuilds are parsed by a recent version of bash. The exact minimum version of bash depends on the EAPI of the ebuild.
lefsha wrote:
Being depending on bash-5.0 is a misconception! It is a wrong thing. There is nothing what portage cannot live w/o from bash-5.0
Yes, it is possible that Portage and ebuilds could be written to work without bash-5.0, if they avoided using any bash-5.0 specific features. That is not the choice the relevant people made. Presumably, this is because they decided that the bash-5.0 features would save developers more work than they would cost users in aggravation being required to install a modern bash. Since Gentoo already required some version of bash prior to making bash-5.0 the minimum, it was reasonable to assume users would install a modern bash as an update to replace the older bash they had before. Perhaps the decision would have been different if Portage had gone from not using bash at all to requiring bash-5.0, but that is not how it happened.
lefsha wrote:
Could you provide a list of features bash-5.0 has and portage cannot live w/o?
"Cannot live without" now, using exactly the published code in Portage and the Package Manager Specification, or "cannot live without" if we assign some non-trivial amount of engineering hours to go through and modify Portage and ebuilds to work in a more limited shell, such as the Debian Almquist Shell? I'm sure it is possible to adapt Portage and all ebuilds to work on a more limited shell. I am doubtful it is worth the engineering time to do so.
lefsha wrote:
Do we understand both, that POSIX shell scripting is a programming LANGUAGE in the first place and one can write ANYTHING in that language?
Yes. Are you advocating that everyone must write ebuilds in the limited subset of Bourne that parses correctly on interpreters from 30 years ago? Why should developers put themselves through that extra hassle?

Bash is also a language, which looks a lot like POSIX shell, but has some features that POSIX lacks. It would be nice if the Bash scripting language were more standardized than "whatever the current bash parses", but that's a separate problem.
lefsha wrote:
Do you believe, that before C++20 has been released people were not able to make a dynamic array on the heap?
Of course not. std::vector has existed in the language for far longer than that.
lefsha wrote:
Linux kernel still can use plain C and be happy with that. Would you say portage is something more complex, than Linux kernel and it cannot live w/o
special features from bash?
Again, since you keep reiterating the question as if I will give a different answer if I respond enough times: can, but chooses not to.
lefsha wrote:
I do agree shell scripting is a poor language with a bad design and crazy syntax, but as much as I know Portage is mainly written in Python.
Does it mean the power of python is not sufficient and one need to use bash-5.0?
Python does not ship a bash-5.0 interpreter in the standard library, so ebuilds cannot be evaluated using only Python.
lefsha wrote:
2.1. USE=readline IS the problem for bash and portage correspondingly. Why so? - Because you cannot have USE flag for _hard_ dependency. Clear?
No. As I explained to you at least once already, readline is not a hard dependency to install and use bash. readline is a hard dependency if you want Portage to use bash. If Portage cannot use bash, then its functionality is extremely limited, so practically speaking, we can say Portage requires bash. You might get a few commands like emerge --info to work without it, but you won't be installing any ebuilds without it. Personally, if I cannot use Portage to install ebuilds, then I consider Portage not to be usable for the system. Embedded systems without Portage can disable USE=readline on bash.
lefsha wrote:
2.2. Portage mostly written in python could have other language dependency? - Yes, sure.
...
So its use must be downgraded to the minimum.
First offer a viable alternative. How many ebuilds would work as-is if you used Debian Almquist Shell to parse them? How many engineering hours will it take to get them to work under it, and not break anything in the process? How much value will be added to the Gentoo project by being able to use any random Bourne-compatible shell to evaluate ebuilds?
lefsha wrote:
2.3. Earlier bash could be linked statically. Its still available today, but not in portage. Someone has removed that capability for no reason.
Using original source one can easily w/o headache in 30 sec compile bash statically linked and it works.
File a request to have that support restored, and present a convincing case for why it needs to be available. From what I have seen in this thread, I am not convinced that there is a need for static bash.
lefsha wrote:
2.4. Using original source one can really play with using or not using readline library by adding or removing the flag --enable-readline
in the ./configure script. I have done so and could not record any difference for portage functionality if building bash w/o readline support.
Any one can feel free to point me to the actions which should stop working if bash has been compiled w/o readline. So far I see nothing, but
I could be wrong and there is something, which will stop working.
You were already given an example above. compgen was reported not to work in a no-readline bash.
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3386
Location: Rasi, Finland

PostPosted: Thu Jun 22, 2023 6:46 pm    Post subject: Reply with quote

    lefsha wrote:
    I make it short to avoid speculations.

    1. Bash is NOT a problem. Not even a little. OK?
    2. Portage is the problem. Bah?! Which problem?
    Thank you for clarification.
    lefsha wrote:
    Does portage need
    to use the the latest feature of any programming language? - Most likely not. Is it possible to write in the old style POSIX scripting the same what
    has been written by using bash-5.0? - Certainly. What if that something is almost impossible to write in bash/posix scripting? - Use proper language for that.
    I'd be all-in for POSIX sh if it didn't break things (ebuilds). It is possible to spec some future EAPI to require POSIX sh (instead of bash/bourne), but I find it highly unlikely to happen.
    lefsha wrote:
    Neither bash nor shell scripting has been made for proper full scale programming. Its functionality is really terrible and the syntax is really
    bad. So its use must be downgraded to the minimum.
    Package building instructions (ebuilds) shouldn't need a proper programming language. makefiles and shell scripts fit fine for the task (imo).

    lefsha wrote:
    2.3. Earlier bash could be linked statically. Its still available today, but not in portage. Someone has removed that capability for no reason.
    Using original source one can easily w/o headache in 30 sec compile bash statically linked and it works.
    Is there a bug submitted against this?

    lefsha wrote:
    Now. Zucca, could we have a normal sane discussion on those items above and I would be happy if you tell me where exactly I am wrong in my logic.
    You assume that I think you're wrong?

Your points are valid imo, but I sense some level of aggression from your posts.
_________________
..: Zucca :..
Gentoo IRC channels reside on Libera.Chat.
--
Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10590
Location: Somewhere over Atlanta, Georgia

PostPosted: Thu Jun 22, 2023 7:13 pm    Post subject: Reply with quote

You guys are all missing the point! Bash? POSIX shell? Faugh! Guile is the official extension language of the GNU project!!! [/Satire]

- John
_________________
I can confirm that I have received between 0 and 499 National Security Letters.
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Thu Jun 22, 2023 11:31 pm    Post subject: Reply with quote

Hu wrote:
No. As I explained to you at least once already, readline is not a hard dependency to install and use bash. readline is a hard dependency if you want Portage to use bash.


What means "No" here? Have you ever tried to build bash without readline? I did. Trust me it will fail. You simply cannot build bash using portage and ebuild if readline is not present!

I do have real problem discussing with all of you, because you call my behavior insulting, but none of you provide any argument to prove your position.
Comparing to you all I did it. I do have facts on the table. You arguing with facts w/o any facts in your hands.

If "10" people trying to argue against a single person w/o any arguments at all it doesn't sound like a fair game. Am I wrong again?

Everything what has been said by you and others are pure opinionated statements. One can think that way or think another way.
Something like blue is better, than green. Why? Because it is blue.


Hu wrote:
Personally, if I cannot use Portage to install ebuilds, then I consider Portage not to be usable for the system.


Try to follow the logic if you say what you just said. Gentoo is portage. Portage cannot work without bash + readline.
Why then readline is the USE flag?

Hu wrote:
Embedded systems without Portage can disable USE=readline on bash.


In reality. In a physical reality w/o Apple glasses etc you can use portage without readline... But that is a different item.

I do have a simpel question. Why you try to create a virtual reality? If you don't know - say I don't know.
If you ready to prove your statement being correct do that. If you cannot why arguing?


My problem with all of you is a total absence of any logic and any prove. Our discussion goes on the level - there is God! No, there is no God.
We tell you there is God, then you must trust us!

Whether you agree with me or disagree is secondary. Whether any one will change anything in portage is secondary.

What is the problem at least to understand arguments I am saying? - Something like - yes it is correct, but we won't change anything,
because we are lazy and no one cares anyway.


Hu wrote:
How many ebuilds would work as-is if you used Debian Almquist Shell to parse them? How many engineering hours will it take to get them to work under it, and not break anything in the process? How much value will be added to the Gentoo project by being able to use any random Bourne-compatible shell to evaluate ebuilds?


You simply didn't get the point! You talk about STATIC situation. I am talking about DYNAMIC situation. That is the HUGE difference.


You read my words like - That guys is asking to rewrite everything in Bash-1.0. He is mad. It doesn't make sense. It's a lot of works, which will bring nothing.

What I have said was totally different! I said, that if today portage depends on bash-5.0 then tomorrow any one can decide, that Ruby has a special feature, which we need, so let us add Ruby as Portage dependency. Exactly that has ALREADY happened in the past, when bash-3.0 and then bash-4.0 was enough for portage to work and it is not anymore. There are no rules whatsoever, what instrument can or cannot be used for portage.

That is EXACTLY the tragedy of SYSTEMD. It has been started as init script replacement only. Now you can buy coffee using systemd.
You MUST setup kernel as SYSTEMD wants to or it will deny to work. Gentoo is doing the same, but god bless it I can ignore it.

Those were also good intentions at the beginning...

There is a good saying: "The road to hell is paved with good intentions"


Any one is free to disagree with what I say, but can't you really see the IDEA behind what I say?

Total denying doesn't even look like anyone has understood anything... Sorry for saying that.

Hu wrote:
File a request to have that support restored, and present a convincing case for why it needs to be available.


The key word here is "restored"! One need a reason to change the original behavior. Most likely those who made it possible was thinking
about it... Also If I am not mistaken 20+ years ago Gentoo was all about choices. Am I wrong again?
What exactly has pushed people to _remove_ existed functionality which works perfectly and need ZERO work from developer side?


If I would speak your language - give me a reason not to use systemd everywhere! Convince me! You are asking the same sort of questions.
Give me a reason not to use GNOME 44 by everyone! Give me a convincing case not to use Chrome?
The list can go on and on...

To me all these questions are wrong, including yours.

Hu wrote:
From what I have seen in this thread, I am not convinced that there is a need for static bash


I am not convinced, that anything besides systemd is required. One can go 1 step further. Nothing besides RPM is required.
Gentoo is no required. People use Ubuntu and Fedora or RedHat. Convince me Gentoo is required?
From what I read on the Internet no one knows about Gentoo anything.

I can easily follow your style and put you into the same position - make you answering stupid questions.


Hu wrote:
You were already given an example above. compgen was reported not to work in a no-readline bash.


I don't need it. I see no functionality lost. A single comment and everything works as usual.
There is only 1 single place where compgen is using and it mainly does nothing. At least nothing useful.

I have to patch portage anyway to make it working properly _for_me_.
If I could use 10-15 years old portage with the actual ebuild tree I would never upgrade it, but today bash-5.0 and tomorrow ruby-27
are preventing that from happening.

Of course the best would be to have ebuilds declarative and not any special language dependent, but that is asking too much.
_________________
Lefsha
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 1697

PostPosted: Thu Jun 22, 2023 11:34 pm    Post subject: Reply with quote

I don't want to retread what others have aptly rebutted, but I'd like to point out that the kernel is very much not "plain C", and is in fact GNU C with various extensions (even its own dialect, given how many options the kernel requires to build, not even normal GNU C), and indeed has Rust in it now.
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Fri Jun 23, 2023 12:11 am    Post subject: Reply with quote

pingtoo wrote:
Throughout the entire thread of this topic, I got a feeling you have a idea of Gentoo is like a complete program that every part should work together. May I present a different point of view? I believe Gentoo is no more than Portage (The package manager) and ::gentoo repos (A large set of build procedures). I think Gentoo Dev. voluntarily share their experience on how to build one package, the experience were translated into "ebuild" so someone else who is interesting the same program can benefit.

A "ebuild" must expressed in a way that all understand in order for it can be shared. so choose a common denominator that majority user can accept is good thing. Bash is good common denominator for all linux distro. however since bash is still evolving it would be best to choose a milestone so everyone can easily reference. you may think that is right but why don't we use POSIX as the "milestone", for the logical thinking I agree, but I am not at the time when decision were made so I accept what was given. on the other hand I agree from design point of view I will choose a tool with feature rich as oppose a tool with feature limited for long longevity of the design.

You continue state that using bash5.x is wrong, in my mind one must know what is right in order to know what is wrong. so can you share your right way of doing that we all can benefit from the "right" :wink: :wink:

All the above of my saying is trying to "Help" that there could be other point of view in hope you can consider.


Your points are valid and not valid at the same time.
Let me express what I am thinking about it.

First of all blaming me, that I am requesting to rewrite everything from scratch is wrong!
Saying, that I am asking people do more work, than they do is wrong.

I am fully aware, that people spend own time for that and I am not the one to push them work more and work harder!

Exactly the opposite is the case!

There is a very simple idea, that if you stick with "today's" version of any porgram, be it bash, or what ever you tend to create tons
of legacy code. The work, which has been done by people and cannot be used ANYMORE by anyone.

I guess Python is the best example of that. Tons of code made for Python-2.0 will never work for Python-3.0
But it is getting worse, that that. Now Python-3.9 and 3.10 and 3.11 are not compatible to each other.

Making a long time project in pyhton-2.0 will push me to rewrite the code over and over again!
If that is not free private time for any developer, than no company will pay for it!

I work in the Semiconductor Industry. Good or bad, but you can still see Windows XP running there in masses!
Some sort of software you cannot update. There is no update. There are no free monkeys who will spend time from
adapting it to the new version!

If a tool vendor will provide a new version _for_money_ obviously, then no customer will agree with an upgrade.
I believe very few of you if anyone at all have ever worked in the industry.

People who make things for money do them better, because money becoming a parameter in the game.
Free time cost nothing. Every month one can rewrite Linux from scratch...

It's enough to see how often a new portage version is coming... That frequency alone is a good sign, that something is wrong.
People who spend their time on changing portage or ebuilds do not know the price of the time.

I was just asked by Hu - what is the benefit of what I am suggesting...

I do exactly the same question - what is the benefit of upgrading portage every months or so? Is it worth it?


Many overlays do have ebuilds, which are not working anymore, because EAPI considered being OLD.
The package/program they provide are available and fully functional, but ebuilds cannot be used.

The source code if still available is not like food it won't start smelling and even after 10 or 20 years be perfectly
functional.

The idea of the permanent upgrade is wrong per se!

A well made program can work even after 20 years w/o issues.


Imagine, what would happen if the Automotive industry will change the base (distance between wheels) of cars every time
different - better of course... wider of course, for more comfort...

We will end up with necessity of building new roads. That new cars can not use old roads and must stick to the new roads only.

God bless the automotive industry, that it is commercial one and not made by programmers in the free time...
And you still can buy tires for your oldtimer...


Yes, I can share the proper view on the product development.
I have never said, that depending on bash or even bash-5.0 is a wrong one!

I said, that today dependence on bash-5.0 and tomorrow on bash-6.0 and in 10 years on bash-25 is wrong one!


It wasn't me. It has been developed by commercial industry many years ago.
That something calls the STANDARD. You can have any bolt you like as long it is M4 M6 M8 and what ever else.

You cannot have a bolt M4.34 and go to the public market with it. It is possible to make physically, but it will be ignored by the market!
As a commercial company you will go bankrupt.

But obviously not as a "free time code writer". Those species will survive forever and make problems for themselves and others.


The proper way of doing almost everything is to agree upon standards!
Hold to the standards and you will be happy.

It wasn't me again. Linus said - we don't break the user space!

ebuilds are user space for portage. Portage regularly breaks the ebuilds! That is the fact.
_________________
Lefsha
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Fri Jun 23, 2023 12:53 am    Post subject: Reply with quote

Zucca wrote:
I'd be all-in for POSIX sh if it didn't break things (ebuilds). It is possible to spec some future EAPI to require POSIX sh (instead of bash/bourne), but I find it highly unlikely to happen.


As stated in other messages, that is exactly what portage is constantly making - it breaks ebuilds!
No old ebuilds with EAPI 6 or something are working. Any one who has many overlays included can see
it on daily basis.

Not all programs are updated on daily basis. Having no update for couple of years is not the issue if program is working.
The ebuild for that program will became unsupported.

I am very sorry, but that is exactly me here and me alone who pray for ebuilds compatibility. That is enforced by standards
and only by standards. There is nothing else, what can provide that feature.

Running forward with bash-25 is looking for troubles and will cause break of everything. Then users will leave and the most
smart developer who decided he cannot live w/o bash-25 will stay alone...

That is natural development of things. There is nothing in the world which can prevent that to happen.


Zucca wrote:
Package building instructions (ebuilds) shouldn't need a proper programming language. makefiles and shell scripts fit fine for the task (imo).


Oh. Really? (kidding) But it must be certainly written in bash-25 or it will be uncool. Right?
Do you understand that your words support my idea, that fancy stuff is not required and full scale programming language is not
required as well... That one can live w/o that brilliant feature, which turns the scree to blue...

Zucca wrote:
Is there a bug submitted against this?


It was the case for all old ebuilds, which you can still see in the portage tree! Start from =app-shells/bash-4.2_p53 and below.
It was removed for no reason. No single person has supported the idea to bring it back.

Bash internally up to now still supports that with the flag --enable-static-link.
I hardly can say bash developers were or are not smart...

The job of Gentoo developers normally should be only bring already provided options created by authors to the users.
I don't think Gentoo developers must decide what is good and what is bad instead of authors, who wrote the program.


Zucca wrote:

Your points are valid imo, but I sense some level of aggression from your posts.


If you have multiple people against you and who not only disagree, but even not able to understand what I was saying
that creates some pressure on me of course. Some laughing at me, although I am not saying anything funny.

I think my statements are valid and correct. Moreover I do have proof for all of them.

No one who entering the discussion can simply repeat what I have said. It is not that is insist people to read that all,
spend their time with that or provide a legally valid answer.

If you have opened that thread and read it - try to understand, ask questions if you are not sure,
and then answer if you want. If you disagree - provide the argument.

Up to this moment there is no single valid argument against what I have said !

Moreover I do what I pray. Everything works at my side. Nothing is broken.
One cannot simply ignore that and claim it being wrong.

Surely I don't feel well regarding that reaction of people. And naturally my ton has changed.

And specially I hate the mentor ton by others who believe can teach and "help". I will only accept the discussion
at the same eyes level. That mentor ton they can leave for themselves.
_________________
Lefsha
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Fri Jun 23, 2023 3:08 am    Post subject: Reply with quote

sam_ wrote:
I don't want to retread what others have aptly rebutted, but I'd like to point out that the kernel is very much not "plain C", and is in fact GNU C with various extensions (even its own dialect, given how many options the kernel requires to build, not even normal GNU C), and indeed has Rust in it now.


https://www.kernel.org/doc/html/latest/process/programming-language.html

Frankly, for a developers that level of understanding is quite... far from reality.

Being written in a language is one thing. Being compiled by using some flags is a different thing!
Linux can be compiled well by clang as everyone else out there know it.
And not Linux is NOT written in Rust has nothing to do with Rust and doesn't require Rust
for compilation! There is solely some recently made infrastructure for MODULES to be written in Rust.

So yes Linux is written in pure C.


"given how many options the kernel requires to build, not even normal GNU C" - That was a good one! :lol: :lol: :lol:
_________________
Lefsha
Back to top
View user's profile Send private message
lefsha
Veteran
Veteran


Joined: 30 Aug 2004
Posts: 1234
Location: Burgas, Bulgaria

PostPosted: Fri Jun 23, 2023 3:27 am    Post subject: Reply with quote

Hu wrote:
Of course not. std::vector has existed in the language for far longer than that.


https://en.cppreference.com/w/cpp/container

Those 3 things are different by nature and should not be mixed together:

1. A Programming Language
2. A compiler
3. A library.

People write programs in a language, compile it with a compiler and use libraries or better to say static or dynamic modules
to make life easier.

N.B. "std::vector" is a part of a library and is not part of a language. One can easily use the language w/o a library.

Below Linus is saying something in that regard:

https://lore.kernel.org/lkml/CAHk-=wjc1rxah3xt8mKN=aCxQigjy3-hEf4xh_Y-r=MXAKVrag@mail.gmail.com/


P.S. Was only trying to help. I was told that is the forum to provide help to those who need it.
_________________
Lefsha
Back to top
View user's profile Send private message
sam_
Developer
Developer


Joined: 14 Aug 2020
Posts: 1697

PostPosted: Fri Jun 23, 2023 3:30 am    Post subject: Reply with quote

lefsha wrote:
sam_ wrote:
I don't want to retread what others have aptly rebutted, but I'd like to point out that the kernel is very much not "plain C", and is in fact GNU C with various extensions (even its own dialect, given how many options the kernel requires to build, not even normal GNU C), and indeed has Rust in it now.


https://www.kernel.org/doc/html/latest/process/programming-language.html

Frankly, for a developers that level of understanding is quite... far from reality.

Being written in a language is one thing. Being compiled by using some flags is a different thing!
Linux can be compiled well by clang as everyone else out there know it.
And not Linux is NOT written in Rust has nothing to do with Rust and doesn't require Rust
for compilation! There is solely some recently made infrastructure for MODULES to be written in Rust.

So yes Linux is written in pure C.


"given how many options the kernel requires to build, not even normal GNU C" - That was a good one! :lol: :lol: :lol:


The kernel cannot be built by an ISO C compiler, it requires a compiler with support for GNU C extensions. Additionally, it uses various flags which affect the semantics of the language (for example, no strict aliasing).
Back to top
View user's profile Send private message
logrusx
Veteran
Veteran


Joined: 22 Feb 2018
Posts: 1597

PostPosted: Fri Jun 23, 2023 11:55 am    Post subject: Reply with quote

@lefsha,

How did you get from "I cannot get rid of bash" to "Frankly, for a developers that level of understanding is quite... far from reality." ?

You've solved your problem, the rest is unnecessary.

Best Regards,
Georgi
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
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