Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
Rich Freeman wrote: > On Sun, Mar 24, 2019 at 3:34 PM Dale wrote: >> Rich Freeman wrote: >>> On Sun, Mar 24, 2019 at 1:02 PM Dale wrote: Rich Freeman wrote: > Suppose you have an Acme model 1234 network card. You've previously > answered Yes to enabling its driver, and No to enabling the Acme model > 2345 card. > > Now a new option comes along to show/hide all the Acme cards. That is > a new option, so it has no existing value as far as the config > database design goes. If you answer No, then you disable your model > 1234 card (without even being asked, because that isn't a new option). > If you answer yes then effectively your previous choices remain in > effect (model 1234 remains enabled, and model 2345 remains disabled). > One would think it should ask if you want any ACME drivers first. If you say yes then ask which ones you want. If you answer no then disable them all and move to the Better-than-nothing drivers next in the list, assuming the are alphabetical. >>> This is exactly what it is doing. There is a new question about >>> whether you want any ACME drivers. It defaults to Yes. If you answer >>> Yes then it prompts you for each individual driver, though it will >>> skip those prompts since you've already answered them. >>> >>> If you answer No then it will set all the individual drivers to No >>> (including the ones you previously set to Yes), and not prompt you >>> further. >>> Once you get past that driver, nothing else should disable the drivers you wanted. >>> But the drivers you wanted WERE Acme drivers, so if you answered No to >>> that question why would it prompt for those? >>> >> The point I was making is once set to yes, then questions after that >> should not go back and disable what you said yes too. If a person goes >> to the trouble of saying yes, then nothing after that should reverse >> that option back to no. From what I understand, if it asks a question >> later on and you say no, it reverses a previous yes even if you want >> that first one included. > The new question comes before the old question in sequence. > > Before the questions were: > > 1. Do you want to install the Acme 1234 driver? > 2. Do you want to install the Acme 2345 driver? > > After the upgrade the questions are: > > 0. Do you want to install any Acme drivers? > 1. Do you want to install the Acme 1234 driver? > 2. Do you want to install the Acme 2345 driver? > > So, if you answer question 0 with a no, then it sets 1/2 to a no as > well. These questions come AFTER question 0, even if you had already > answered them in an earlier kernel version that was missing question > 0. > > Again, I'm not saying it is ideal. However, this is why question 0 > defaults to yes. If you accidentally answer Yes for question 0 when > you intended no, the only effect is asking questions 1/2, which won't > actually get asked since you had previously answered them anyway. > Question 0 doesn't actually change the kernel build - it just controls > whether questions 1/2 get asked, and if you answer it no then it sets > 1/2 to no as well. It is a design compromise so that they didn't have > to rethink the entire kernel config design. > This sounds like one of those situations where there is no ideal method to doing it. If it is done one way, it can cause confusion or a person to think something is enabled when it isn't. If done another way, another group of people are going to be confused. Either way, someone is going to want it another way therefore there is no easy way to do it. Sort of reminds me of six of one, half a dozen of the other. ;-) Unless some code geek can come up with a way to satisfy everyone, some of us are just going to have to get used to it being like it is. Dale :-) :-)
Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
On Sun, Mar 24, 2019 at 3:34 PM Dale wrote: > > Rich Freeman wrote: > > On Sun, Mar 24, 2019 at 1:02 PM Dale wrote: > >> Rich Freeman wrote: > >>> Suppose you have an Acme model 1234 network card. You've previously > >>> answered Yes to enabling its driver, and No to enabling the Acme model > >>> 2345 card. > >>> > >>> Now a new option comes along to show/hide all the Acme cards. That is > >>> a new option, so it has no existing value as far as the config > >>> database design goes. If you answer No, then you disable your model > >>> 1234 card (without even being asked, because that isn't a new option). > >>> If you answer yes then effectively your previous choices remain in > >>> effect (model 1234 remains enabled, and model 2345 remains disabled). > >>> > >> One would think it should ask if you want any ACME drivers first. If > >> you say yes then ask which ones you want. If you answer no then disable > >> them all and move to the Better-than-nothing drivers next in the list, > >> assuming the are alphabetical. > > This is exactly what it is doing. There is a new question about > > whether you want any ACME drivers. It defaults to Yes. If you answer > > Yes then it prompts you for each individual driver, though it will > > skip those prompts since you've already answered them. > > > > If you answer No then it will set all the individual drivers to No > > (including the ones you previously set to Yes), and not prompt you > > further. > > > >> Once you get past that driver, nothing > >> else should disable the drivers you wanted. > > But the drivers you wanted WERE Acme drivers, so if you answered No to > > that question why would it prompt for those? > > > > The point I was making is once set to yes, then questions after that > should not go back and disable what you said yes too. If a person goes > to the trouble of saying yes, then nothing after that should reverse > that option back to no. From what I understand, if it asks a question > later on and you say no, it reverses a previous yes even if you want > that first one included. The new question comes before the old question in sequence. Before the questions were: 1. Do you want to install the Acme 1234 driver? 2. Do you want to install the Acme 2345 driver? After the upgrade the questions are: 0. Do you want to install any Acme drivers? 1. Do you want to install the Acme 1234 driver? 2. Do you want to install the Acme 2345 driver? So, if you answer question 0 with a no, then it sets 1/2 to a no as well. These questions come AFTER question 0, even if you had already answered them in an earlier kernel version that was missing question 0. Again, I'm not saying it is ideal. However, this is why question 0 defaults to yes. If you accidentally answer Yes for question 0 when you intended no, the only effect is asking questions 1/2, which won't actually get asked since you had previously answered them anyway. Question 0 doesn't actually change the kernel build - it just controls whether questions 1/2 get asked, and if you answer it no then it sets 1/2 to no as well. It is a design compromise so that they didn't have to rethink the entire kernel config design. -- Rich
Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
Rich Freeman wrote: > On Sun, Mar 24, 2019 at 1:02 PM Dale wrote: >> Rich Freeman wrote: >>> Suppose you have an Acme model 1234 network card. You've previously >>> answered Yes to enabling its driver, and No to enabling the Acme model >>> 2345 card. >>> >>> Now a new option comes along to show/hide all the Acme cards. That is >>> a new option, so it has no existing value as far as the config >>> database design goes. If you answer No, then you disable your model >>> 1234 card (without even being asked, because that isn't a new option). >>> If you answer yes then effectively your previous choices remain in >>> effect (model 1234 remains enabled, and model 2345 remains disabled). >>> >> One would think it should ask if you want any ACME drivers first. If >> you say yes then ask which ones you want. If you answer no then disable >> them all and move to the Better-than-nothing drivers next in the list, >> assuming the are alphabetical. > This is exactly what it is doing. There is a new question about > whether you want any ACME drivers. It defaults to Yes. If you answer > Yes then it prompts you for each individual driver, though it will > skip those prompts since you've already answered them. > > If you answer No then it will set all the individual drivers to No > (including the ones you previously set to Yes), and not prompt you > further. > >> Once you get past that driver, nothing >> else should disable the drivers you wanted. > But the drivers you wanted WERE Acme drivers, so if you answered No to > that question why would it prompt for those? > > You can see how defaulting to No on these sorts of questions can be > more dangerous, because it can cause you to reverse decisions you > previously made, while defaulting to Yes on the big questions (that > don't actually build anything), and defaulting to No on the little > questions (which do build things) has the result that if you accept > all the defaults you keep the same kernel build you had before. > > If you answer Yes to whether you want ACME drivers it won't actually > build any drivers - you have to enable those individually, and those > questions presumably still default to No. > The point I was making is once set to yes, then questions after that should not go back and disable what you said yes too. If a person goes to the trouble of saying yes, then nothing after that should reverse that option back to no. From what I understand, if it asks a question later on and you say no, it reverses a previous yes even if you want that first one included. If nothing else, maybe it should point out a conflict so that a person can check into it further. As with anything tho, if it is done any other way, it to would cause confusion too. This is nothing new really. It's like having a option hidden until you enable some other option in another part of the config screen. You know where the option you want to enable is supposed to be but it is hidden because a option somewhere else isn't enabled. Then you have to find out what to enable so that you can see the one you want. I've ran into that a couple times and it is fun to figure out. lol Dale :-) :-)
Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
On Sun, Mar 24, 2019 at 1:02 PM Dale wrote: > > Rich Freeman wrote: > > > > Suppose you have an Acme model 1234 network card. You've previously > > answered Yes to enabling its driver, and No to enabling the Acme model > > 2345 card. > > > > Now a new option comes along to show/hide all the Acme cards. That is > > a new option, so it has no existing value as far as the config > > database design goes. If you answer No, then you disable your model > > 1234 card (without even being asked, because that isn't a new option). > > If you answer yes then effectively your previous choices remain in > > effect (model 1234 remains enabled, and model 2345 remains disabled). > > > > One would think it should ask if you want any ACME drivers first. If > you say yes then ask which ones you want. If you answer no then disable > them all and move to the Better-than-nothing drivers next in the list, > assuming the are alphabetical. This is exactly what it is doing. There is a new question about whether you want any ACME drivers. It defaults to Yes. If you answer Yes then it prompts you for each individual driver, though it will skip those prompts since you've already answered them. If you answer No then it will set all the individual drivers to No (including the ones you previously set to Yes), and not prompt you further. > Once you get past that driver, nothing > else should disable the drivers you wanted. But the drivers you wanted WERE Acme drivers, so if you answered No to that question why would it prompt for those? You can see how defaulting to No on these sorts of questions can be more dangerous, because it can cause you to reverse decisions you previously made, while defaulting to Yes on the big questions (that don't actually build anything), and defaulting to No on the little questions (which do build things) has the result that if you accept all the defaults you keep the same kernel build you had before. If you answer Yes to whether you want ACME drivers it won't actually build any drivers - you have to enable those individually, and those questions presumably still default to No. -- Rich
Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
Rich Freeman wrote: > On Sun, Mar 24, 2019 at 3:46 AM Peter Humphrey wrote: >> On Sunday, 24 March 2019 01:03:23 GMT Walter Dnes wrote: >>> When setting up a new kernel with "make oldconfig", almost all new >>> device drivers default to "N". The glaring exception is network cards. >>> They all seem to default to "Y". Is this a bug or a "feature"? >> It seems to be just to reveal the individual cards by that manufacturer. I >> don't see why it should differ from any other hardware options. Perhaps it's >> a >> leftover from a day long ago that no-one's thought to change. >> > I suspect it is because these options basically work opposite normal > ones. They're phased as "Do you want to see Acme network cards?" with > a default of Yes. However, they way they effectively work is "Do you > want to disable all Acme network cards?" with a default of No. > > Suppose you have an Acme model 1234 network card. You've previously > answered Yes to enabling its driver, and No to enabling the Acme model > 2345 card. > > Now a new option comes along to show/hide all the Acme cards. That is > a new option, so it has no existing value as far as the config > database design goes. If you answer No, then you disable your model > 1234 card (without even being asked, because that isn't a new option). > If you answer yes then effectively your previous choices remain in > effect (model 1234 remains enabled, and model 2345 remains disabled). > > Now, obviously a more elegant solution would be to look at all the > models of Acme cards in the database and see if you've selected any, > and use that to set the default. However, that would require a change > to how the entire config system works most likely. > > I might have a detail wrong and lkml is definitely where to go for the > full answer, but I suspect this was the rationale behind this design > decision. Those options effectively don't do anything but expose more > options, so defaulting them to Yes probably made more sense, because > defaulting to no would disable anything that depends on them. > > In any case, this is purely an upstream kernel issue, so you can > always try to convince Linus that he has it wrong. :) > One would think it should ask if you want any ACME drivers first. If you say yes then ask which ones you want. If you answer no then disable them all and move to the Better-than-nothing drivers next in the list, assuming the are alphabetical. Once you get past that driver, nothing else should disable the drivers you wanted. That way makes more sense but as you say, that could require some code that is either buggy, difficult to implement or something. That something could include, I never thought of doing it that way. LOL I need to remember to watch out for this when I build a new kernel. I know I'm going to forget tho. :/ Dale :-) :-)
Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
On Sun, Mar 24, 2019 at 3:46 AM Peter Humphrey wrote: > > On Sunday, 24 March 2019 01:03:23 GMT Walter Dnes wrote: > > When setting up a new kernel with "make oldconfig", almost all new > > device drivers default to "N". The glaring exception is network cards. > > They all seem to default to "Y". Is this a bug or a "feature"? > > It seems to be just to reveal the individual cards by that manufacturer. I > don't see why it should differ from any other hardware options. Perhaps it's a > leftover from a day long ago that no-one's thought to change. > I suspect it is because these options basically work opposite normal ones. They're phased as "Do you want to see Acme network cards?" with a default of Yes. However, they way they effectively work is "Do you want to disable all Acme network cards?" with a default of No. Suppose you have an Acme model 1234 network card. You've previously answered Yes to enabling its driver, and No to enabling the Acme model 2345 card. Now a new option comes along to show/hide all the Acme cards. That is a new option, so it has no existing value as far as the config database design goes. If you answer No, then you disable your model 1234 card (without even being asked, because that isn't a new option). If you answer yes then effectively your previous choices remain in effect (model 1234 remains enabled, and model 2345 remains disabled). Now, obviously a more elegant solution would be to look at all the models of Acme cards in the database and see if you've selected any, and use that to set the default. However, that would require a change to how the entire config system works most likely. I might have a detail wrong and lkml is definitely where to go for the full answer, but I suspect this was the rationale behind this design decision. Those options effectively don't do anything but expose more options, so defaulting them to Yes probably made more sense, because defaulting to no would disable anything that depends on them. In any case, this is purely an upstream kernel issue, so you can always try to convince Linus that he has it wrong. :) -- Rich
Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
On Sunday, 24 March 2019 01:03:23 GMT Walter Dnes wrote: > When setting up a new kernel with "make oldconfig", almost all new > device drivers default to "N". The glaring exception is network cards. > They all seem to default to "Y". Is this a bug or a "feature"? It seems to be just to reveal the individual cards by that manufacturer. I don't see why it should differ from any other hardware options. Perhaps it's a leftover from a day long ago that no-one's thought to change. -- Regards, Peter.
Re: [gentoo-user] New network cards default to "Y" with "make oldconfig"
> On Mar 23, 2019, at 21:03, Walter Dnes wrote: > > When setting up a new kernel with "make oldconfig", almost all new > device drivers default to "N". The glaring exception is network cards. > They all seem to default to "Y". Is this a bug or a "feature"? This has been a 'feature' for a while. I find it very annoying. I suppose the idea is to not have users get annoyed that their network card can't be used after building a (generic) kernel. And they consider it justified since network connectivity is crucial to get things done. More for the Ubuntu users than everyone else.
[gentoo-user] New network cards default to "Y" with "make oldconfig"
When setting up a new kernel with "make oldconfig", almost all new device drivers default to "N". The glaring exception is network cards. They all seem to default to "Y". Is this a bug or a "feature"? -- Walter Dnes I don't run "desktop environments"; I run useful applications