This is needed for building include/generated/timeconst.h from kernel/time/timeconst.bc. --- rpm/kernel-source.spec.in | 1 + 1 file changed, 1 insertion(+)
diff --git a/rpm/kernel-source.spec.in b/rpm/kernel-source.spec.in index f58b8946a0..2d80c45883 100644 --- a/rpm/kernel-source.spec.in +++ b/rpm/kernel-source.spec.in @@ -118,6 +118,7 @@ Prefix: /usr/src # Source is only complete with devel files. Requires: kernel-devel%variant = %version-%source_rel Recommends: openssl-devel +Requires: bc
%(chmod +x %_sourcedir/{@SCRIPTS@})
On Wed, 18 Jul 2018 11:28:38 +0200, Andreas Schwab wrote:
This is needed for building include/generated/timeconst.h from kernel/time/timeconst.bc.
Applied now, thanks.
Takashi
On Wednesday, 18 July 2018 11:28 Andreas Schwab wrote:
This is needed for building include/generated/timeconst.h from kernel/time/timeconst.bc.
rpm/kernel-source.spec.in | 1 + 1 file changed, 1 insertion(+)
diff --git a/rpm/kernel-source.spec.in b/rpm/kernel-source.spec.in index f58b8946a0..2d80c45883 100644 --- a/rpm/kernel-source.spec.in +++ b/rpm/kernel-source.spec.in @@ -118,6 +118,7 @@ Prefix: /usr/src # Source is only complete with devel files. Requires: kernel-devel%variant = %version-%source_rel Recommends: openssl-devel +Requires: bc
%(chmod +x %_sourcedir/{@SCRIPTS@})
I'm not sure about this.
1. People install kernel-source for various reasons, not always to be able to build whole kernel. Some only want to check the sources (sure, it would be easier to use git), some want to build an out of tree module (and don't know that's what -devel packages are for) etc.
2. If we really want kernel-source to have hard requirement for tools needed to build the kernel, we should be consistent and require all of them, not just pick one. We would have to require at least flex, bison and libelf-devel, maybe more. Right now, there is only "Recommends: openssl-devel".
Michal Kubecek
On Mon, 23 Jul 2018 07:10:58 +0200, Michal Kubecek wrote:
On Wednesday, 18 July 2018 11:28 Andreas Schwab wrote:
This is needed for building include/generated/timeconst.h from kernel/time/timeconst.bc.
rpm/kernel-source.spec.in | 1 + 1 file changed, 1 insertion(+)
diff --git a/rpm/kernel-source.spec.in b/rpm/kernel-source.spec.in index f58b8946a0..2d80c45883 100644 --- a/rpm/kernel-source.spec.in +++ b/rpm/kernel-source.spec.in @@ -118,6 +118,7 @@ Prefix: /usr/src # Source is only complete with devel files. Requires: kernel-devel%variant = %version-%source_rel Recommends: openssl-devel +Requires: bc
%(chmod +x %_sourcedir/{@SCRIPTS@})
I'm not sure about this.
- People install kernel-source for various reasons, not always to be
able to build whole kernel. Some only want to check the sources (sure, it would be easier to use git), some want to build an out of tree module (and don't know that's what -devel packages are for) etc.
True.
- If we really want kernel-source to have hard requirement for tools
needed to build the kernel, we should be consistent and require all of them, not just pick one. We would have to require at least flex, bison and libelf-devel, maybe more. Right now, there is only "Recommends: openssl-devel".
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
thanks,
Takashi
On Mon, 23 Jul 2018 08:55:06 +0200, Takashi Iwai wrote:
On Mon, 23 Jul 2018 07:10:58 +0200, Michal Kubecek wrote:
On Wednesday, 18 July 2018 11:28 Andreas Schwab wrote:
This is needed for building include/generated/timeconst.h from kernel/time/timeconst.bc.
rpm/kernel-source.spec.in | 1 + 1 file changed, 1 insertion(+)
diff --git a/rpm/kernel-source.spec.in b/rpm/kernel-source.spec.in index f58b8946a0..2d80c45883 100644 --- a/rpm/kernel-source.spec.in +++ b/rpm/kernel-source.spec.in @@ -118,6 +118,7 @@ Prefix: /usr/src # Source is only complete with devel files. Requires: kernel-devel%variant = %version-%source_rel Recommends: openssl-devel +Requires: bc
%(chmod +x %_sourcedir/{@SCRIPTS@})
I'm not sure about this.
- People install kernel-source for various reasons, not always to be
able to build whole kernel. Some only want to check the sources (sure, it would be easier to use git), some want to build an out of tree module (and don't know that's what -devel packages are for) etc.
True.
- If we really want kernel-source to have hard requirement for tools
needed to build the kernel, we should be consistent and require all of them, not just pick one. We would have to require at least flex, bison and libelf-devel, maybe more. Right now, there is only "Recommends: openssl-devel".
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
On the second thought, an easier place would be kernel-devel.
I pushed the change to my branch. There I used Requires instead of Recommends, since kernel-devel is the package for building binaries, so they can be seen as hard dependency. If this is OK, I'll backport to other branches (up to SLE15), too.
thanks,
Takashi
On Monday, 23 July 2018 9:23 Takashi Iwai wrote:
On the second thought, an easier place would be kernel-devel.
This sounds like the best option, kernel-devel would be pulled in by both kernel-source and kernel-${flavor}-devel.
I pushed the change to my branch. There I used Requires instead of Recommends, since kernel-devel is the package for building binaries, so they can be seen as hard dependency. If this is OK, I'll backport to other branches (up to SLE15), too.
If we want it everywhere, it's IMHO better to use "packaging" branch.
Michal
On Mon, 23 Jul 2018 09:48:51 +0200, Michal Kubecek wrote:
On Monday, 23 July 2018 9:23 Takashi Iwai wrote:
On the second thought, an easier place would be kernel-devel.
This sounds like the best option, kernel-devel would be pulled in by both kernel-source and kernel-${flavor}-devel.
I pushed the change to my branch. There I used Requires instead of Recommends, since kernel-devel is the package for building binaries, so they can be seen as hard dependency. If this is OK, I'll backport to other branches (up to SLE15), too.
If we want it everywhere, it's IMHO better to use "packaging" branch.
OK, that's a better option. SLE15 can still merge that branch, too. I'll scratch my master branch now.
We may revisit the list of hard requirement there before merging, though. Let's see..
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On the second thought, an easier place would be kernel-devel.
Nope, kernel-devel does not contain kernel/time/timeconst.bc.
Andreas.
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
Andreas.
On Mon, 23 Jul 2018 09:23:23 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
So this is a bug?
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:23:23 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
So this is a bug?
What does "this" refer to?
Andreas.
On Mon, 23 Jul 2018 09:53:26 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:23:23 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
So this is a bug?
What does "this" refer to?
s/Nope, //
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:53:26 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:23:23 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
So this is a bug?
What does "this" refer to?
s/Nope, //
Please expand.
Andreas.
On Mon, 23 Jul 2018 10:09:12 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:53:26 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:23:23 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Yeah, a good point. Moving the items that are in BuildRequires to be Requires in kernel-*-devel sounds like a better idea.
Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
So this is a bug?
What does "this" refer to?
s/Nope, //
Please expand.
kernel-*-devel does not contain kernel/time/timeconst.bc.
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 10:09:12 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:53:26 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:23:23 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
> Yeah, a good point. Moving the items that are in BuildRequires to be > Requires in kernel-*-devel sounds like a better idea.
Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
So this is a bug?
What does "this" refer to?
s/Nope, //
Please expand.
kernel-*-devel does not contain kernel/time/timeconst.bc.
Yes. What's your point?
Andreas.
On Mon, 23 Jul 2018 10:22:34 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 10:09:12 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:53:26 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:23:23 +0200, Andreas Schwab wrote: > > On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote: > > > Yeah, a good point. Moving the items that are in BuildRequires to be > > Requires in kernel-*-devel sounds like a better idea. > > Nope, kernel-*-devel does not contain kernel/time/timeconst.bc.
So this is a bug?
What does "this" refer to?
s/Nope, //
Please expand.
kernel-*-devel does not contain kernel/time/timeconst.bc.
Yes. What's your point?
It's an answer to your previous question.
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
It's an answer to your previous question.
Does it fail?
Andreas.
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
We would have to require at least flex, bison and libelf-devel, maybe more.
Nope, none of them are needed.
Andreas.
On Mon, 23 Jul 2018 09:22:15 +0200, Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
We would have to require at least flex, bison and libelf-devel, maybe more.
Nope, none of them are needed.
Do you mean they aren't needed for building KMPs? They are needed if you rebuild the kernel.
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:22:15 +0200, Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
We would have to require at least flex, bison and libelf-devel, maybe more.
Nope, none of them are needed.
Do you mean they aren't needed for building KMPs?
kernel-source has nothing to do with KMPs.
Andreas.
On Mon, 23 Jul 2018 09:59:28 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 09:22:15 +0200, Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
We would have to require at least flex, bison and libelf-devel, maybe more.
Nope, none of them are needed.
Do you mean they aren't needed for building KMPs?
kernel-source has nothing to do with KMPs.
So "none of them are needed" for which purpose? This is an unclear point from the beginning...
kernel-source may be installed only as a reference, and for that purpose, "Requires" is an overkill. Do you agree with it?
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
kernel-source may be installed only as a reference, and for that purpose, "Requires" is an overkill. Do you agree with it?
No.
Andreas.
On Mon, 23 Jul 2018 10:17:01 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
kernel-source may be installed only as a reference, and for that purpose, "Requires" is an overkill. Do you agree with it?
No.
Then could you explain why bc must be installed even if a user wants to install kernel-source just for read the kernel source code?
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Then could you explain why bc must be installed even if a user wants to install kernel-source just for read the kernel source code?
You get all the rest already, *execept* bc.
Andreas.
On Mon, 23 Jul 2018 10:24:24 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Then could you explain why bc must be installed even if a user wants to install kernel-source just for read the kernel source code?
You get all the rest already, *execept* bc.
Why do I need bc just for reading the source code?
Takashi
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 10:24:24 +0200, Andreas Schwab wrote:
On Jul 23 2018, Takashi Iwai tiwai@suse.de wrote:
Then could you explain why bc must be installed even if a user wants to install kernel-source just for read the kernel source code?
You get all the rest already, *execept* bc.
Why do I need bc just for reading the source code?
Because it fails to build.
Andreas.
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
- People install kernel-source for various reasons, not always to be
able to build whole kernel. Some only want to check the sources (sure, it would be easier to use git), some want to build an out of tree module (and don't know that's what -devel packages are for) etc.
Installing kernel-source already drags in the whole goo. Except bc.
Andreas.
On Monday, 23 July 2018 9:58 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
- People install kernel-source for various reasons, not always to
be able to build whole kernel. Some only want to check the sources (sure, it would be easier to use git), some want to build an out of tree module (and don't know that's what -devel packages are for) etc.
Installing kernel-source already drags in the whole goo. Except bc.
I'm not sure what "whole goo" is supposed to mean but I just tried "zypper install kernel-source" on Tumbleweed system without gcc, make, flex, bison, libelf-devel and bc. It only installs
bc kernel-devel kernel-macros kernel-source
(bc is there because stable already has your patch). So my question still is: what makes bc so special that it should be a hard requirement of kernel-source when other tools needed to build kernel (or modules) are not?
Michal Kubecek
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
On Monday, 23 July 2018 9:58 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
- People install kernel-source for various reasons, not always to
be able to build whole kernel. Some only want to check the sources (sure, it would be easier to use git), some want to build an out of tree module (and don't know that's what -devel packages are for) etc.
Installing kernel-source already drags in the whole goo. Except bc.
I'm not sure what "whole goo" is supposed to mean but I just tried "zypper install kernel-source" on Tumbleweed system without gcc, make, flex, bison, libelf-devel and bc. It only installs
bc kernel-devel kernel-macros kernel-source
(bc is there because stable already has your patch). So my question still is: what makes bc so special that it should be a hard requirement of kernel-source when other tools needed to build kernel (or modules) are not?
I also get kernel-default-devel, with all the goo behind it.
Andreas.
On Monday, 23 July 2018 10:23 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
I'm not sure what "whole goo" is supposed to mean but I just tried "zypper install kernel-source" on Tumbleweed system without gcc, make, flex, bison, libelf-devel and bc. It only installs
bc kernel-devel kernel-macros kernel-source
(bc is there because stable already has your patch). So my question still is: what makes bc so special that it should be a hard requirement of kernel-source when other tools needed to build kernel (or modules) are not?
I also get kernel-default-devel, with all the goo behind it.
I don't. Checked ~20 minutes ago. And you still didn't explain what "all the goo" is supposed to mean.
Michal Kubecek
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
I don't. Checked ~20 minutes ago. And you still didn't explain what "all the goo" is supposed to mean.
Everything that's glued behind it.
Andreas.
On Monday, 23 July 2018 10:34 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
I don't. Checked ~20 minutes ago. And you still didn't explain what "all the goo" is supposed to mean.
Everything that's glued behind it.
Once again: I took a Tumbleweed system which didn't have libelf-devel, bison, flex, not even make and gcc installed. All of these are needed to build the kernel these days. Then I ran "zypper install kernel-source". And the only packages zypper decided to install were
bc kernel-devel kernel-macros kernel-source
Except kernel-macros and kernel-devel, the only "goo" it added was bc which was only added because your patch already got into Kernel:stable. In particular, it did _not_ install kernel-default-devel (or any other kernel-${flavor}-devel) and neither it did install any of the other packages needed to build the kernel.
Michal Kubecek
On Mon, Jul 23, 2018 at 11:41 AM, Michal Kubecek mkubecek@suse.cz wrote:
On Monday, 23 July 2018 10:34 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
I don't. Checked ~20 minutes ago. And you still didn't explain what "all the goo" is supposed to mean.
Everything that's glued behind it.
Once again: I took a Tumbleweed system which didn't have libelf-devel, bison, flex, not even make and gcc installed. All of these are needed to build the kernel these days. Then I ran "zypper install kernel-source". And the only packages zypper decided to install were
bc kernel-devel kernel-macros kernel-source
Except kernel-macros and kernel-devel, the only "goo" it added was bc which was only added because your patch already got into Kernel:stable. In particular, it did _not_ install kernel-default-devel (or any other kernel-${flavor}-devel) and neither it did install any of the other packages needed to build the kernel.
"goo" is pulled in by kernel-default-devel (and even there make and gcc are just recommended, not required).
On Mon, 23 Jul 2018 10:50:53 +0200, Andrei Borzenkov wrote:
On Mon, Jul 23, 2018 at 11:41 AM, Michal Kubecek mkubecek@suse.cz wrote:
On Monday, 23 July 2018 10:34 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
I don't. Checked ~20 minutes ago. And you still didn't explain what "all the goo" is supposed to mean.
Everything that's glued behind it.
Once again: I took a Tumbleweed system which didn't have libelf-devel, bison, flex, not even make and gcc installed. All of these are needed to build the kernel these days. Then I ran "zypper install kernel-source". And the only packages zypper decided to install were
bc kernel-devel kernel-macros kernel-source
Except kernel-macros and kernel-devel, the only "goo" it added was bc which was only added because your patch already got into Kernel:stable. In particular, it did _not_ install kernel-default-devel (or any other kernel-${flavor}-devel) and neither it did install any of the other packages needed to build the kernel.
"goo" is pulled in by kernel-default-devel (and even there make and gcc are just recommended, not required).
Right. So recap:
- kernel-source.rpm itself has no hard dependency on toolchains; it has a Requires to kernel-devel.rpm at most, and kernel-devel has also no toolchain dependency, either.
- But the toolchans can be grabbed via kernel-default-devel.rpm Supplements(kernel-default:kernel-devel). Even these are provided as recommends.
- kernel-source.rpm contains kernel/time/timeconst.bc but no include/generated/timeconst.h, because include/generated/* go to kernel-*-devel package. (And the output of timeconst.h depends on HZ, so it's kconfig-dependent, hence not suitable for kernel-source.)
- The lack of bc becomes a problem only when you build kernel from the tree of kernel-source.rpm due to timeconst.bc.
- Since include/generated/timeconst.h is already included in kernel-default-devel, the KMP build doesn't need bc. bc is needed only when you build the kernel manually from scratch with kernel-source.rpm tree.
So, we need a dependency on bc to some package. And, since it's an *optional* requirement *only* for kernel-source scratch build, the easiest option would be to "Recommends:bc" to kernel-source, supposedly.
BTW, this also leads to another question: why flex and bison aren't needed. I thought they are also converted at compile time.
Takashi
On Mon, 23 Jul 2018 11:29:13 +0200, Takashi Iwai wrote:
BTW, this also leads to another question: why flex and bison aren't needed. I thought they are also converted at compile time.
I checked this again: flex and bison *are* needed as well as bc for building a kernel from kernel-source.
% zypper in kernel-source % cd /somewhere % zcat /proc/config.gz > .config % export KBUILD_OUTPUT=$PWD
% make -C /usr/src/linux .... CHK include/generated/timeconst.h /bin/sh: bc: command not found make[2]: *** [/usr/src/linux-4.17.6-1/./Kbuild:42: include/generated/timeconst.h] Error 127
% zypper in bc
% make -C /usr/src/linux .... HOSTCC scripts/genksyms/genksyms.o YACC scripts/genksyms/parse.tab.c /bin/sh: bison: command not found make[3]: *** [/usr/src/linux-4.17.6-1/scripts/genksyms/Makefile:22: scripts/genksyms/parse.tab.c] Error 127
% zypper in bison
% make -C /usr/src/linux .... YACC scripts/genksyms/parse.tab.c HOSTCC scripts/genksyms/parse.tab.o LEX scripts/genksyms/lex.lex.c /bin/sh: flex: command not found make[3]: *** [scripts/Makefile.lib:188: scripts/genksyms/lex.lex.c] Error 127
So we'd need some dependency on all bc, bison and flex.
Takashi
On Monday, 23 July 2018 12:51 Takashi Iwai wrote:
I checked this again: flex and bison *are* needed as well as bc for building a kernel from kernel-source.
They are needed for Kconfig ("make *config") since something like 4.16 or 4.17.
We also need libelf-devel (for objdump and/or unwinder, IIRC) and openssl-devel (for kernel/module signing tools). Hopefully that will be all.
So we'd need some dependency on all bc, bison and flex.
I'm perfectly fine with adding all of them as Recommends for kernel-source (even if I would find a bit nicer to do it in kernel-devel which is required by both kernel-source and kernel-${flavor}-devel). I just don't like the idea of (1) using Requires and (2) picking just bc and omitting the rest.
Michal
On Mon, 23 Jul 2018 13:35:03 +0200, Michal Kubecek wrote:
On Monday, 23 July 2018 12:51 Takashi Iwai wrote:
I checked this again: flex and bison *are* needed as well as bc for building a kernel from kernel-source.
They are needed for Kconfig ("make *config") since something like 4.16 or 4.17.
We also need libelf-devel (for objdump and/or unwinder, IIRC) and openssl-devel (for kernel/module signing tools). Hopefully that will be all.
FWIW, libelf-devel is already a Requires in kernel-default-devel, and openssl-devel is already Recommends in kernel-source.
So we'd need some dependency on all bc, bison and flex.
I'm perfectly fine with adding all of them as Recommends for kernel-source (even if I would find a bit nicer to do it in kernel-devel which is required by both kernel-source and kernel-${flavor}-devel). I just don't like the idea of (1) using Requires and (2) picking just bc and omitting the rest.
Agreed.
If no one has objection, I'm going to send a pull request including all three in Recommends in kernel-source.
thanks,
Takashi
On Mon, Jul 23, 2018 at 2:59 PM, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 13:35:03 +0200, Michal Kubecek wrote:
On Monday, 23 July 2018 12:51 Takashi Iwai wrote:
I checked this again: flex and bison *are* needed as well as bc for building a kernel from kernel-source.
They are needed for Kconfig ("make *config") since something like 4.16 or 4.17.
We also need libelf-devel (for objdump and/or unwinder, IIRC) and openssl-devel (for kernel/module signing tools). Hopefully that will be all.
FWIW, libelf-devel is already a Requires in kernel-default-devel, and
kernel-default-devel is not pulled in by installing kernel-source, nor is it needed to build anything from kernel-source. So it still should be Recommended by kernel-source I guess to match other requirements.
openssl-devel is already Recommends in kernel-source.
So we'd need some dependency on all bc, bison and flex.
I'm perfectly fine with adding all of them as Recommends for kernel-source (even if I would find a bit nicer to do it in kernel-devel which is required by both kernel-source and kernel-${flavor}-devel). I just don't like the idea of (1) using Requires and (2) picking just bc and omitting the rest.
Agreed.
If no one has objection, I'm going to send a pull request including all three in Recommends in kernel-source.
On Mon, 23 Jul 2018 14:20:35 +0200, Andrei Borzenkov wrote:
On Mon, Jul 23, 2018 at 2:59 PM, Takashi Iwai tiwai@suse.de wrote:
On Mon, 23 Jul 2018 13:35:03 +0200, Michal Kubecek wrote:
On Monday, 23 July 2018 12:51 Takashi Iwai wrote:
I checked this again: flex and bison *are* needed as well as bc for building a kernel from kernel-source.
They are needed for Kconfig ("make *config") since something like 4.16 or 4.17.
We also need libelf-devel (for objdump and/or unwinder, IIRC) and openssl-devel (for kernel/module signing tools). Hopefully that will be all.
FWIW, libelf-devel is already a Requires in kernel-default-devel, and
kernel-default-devel is not pulled in by installing kernel-source, nor is it needed to build anything from kernel-source. So it still should be Recommended by kernel-source I guess to match other requirements.
OK, makes sense.
Takashi
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
On Monday, 23 July 2018 10:34 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
I don't. Checked ~20 minutes ago. And you still didn't explain what "all the goo" is supposed to mean.
Everything that's glued behind it.
Once again: I took a Tumbleweed system which didn't have libelf-devel, bison, flex, not even make and gcc installed. All of these are needed to build the kernel these days. Then I ran "zypper install kernel-source". And the only packages zypper decided to install were
bc kernel-devel kernel-macros kernel-source
# zypper in kernel-source Loading repository data... Reading installed packages... Resolving package dependencies...
The following 30 NEW packages are going to be installed: binutils cpp cpp8 gcc gcc8 glibc-devel kernel-default-devel kernel-devel kernel-macros kernel-source libasan5 libatomic1 libelf-devel libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpfr6 libmpx2 libmpxwrappers2 libopenssl-1_1-devel libopenssl-devel libtsan0 libubsan1 linux-glibc-devel make make-lang site-config zlib-devel
The following recommended package was automatically selected: libopenssl-devel
30 new packages to install.
Andreas.
On Monday, 23 July 2018 10:54 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
Once again: I took a Tumbleweed system which didn't have libelf-devel, bison, flex, not even make and gcc installed. All of these are needed to build the kernel these days. Then I ran "zypper install kernel-source". And the only packages zypper decided to install were
bc kernel-devel kernel-macros kernel-source
# zypper in kernel-source Loading repository data... Reading installed packages... Resolving package dependencies...
The following 30 NEW packages are going to be installed: binutils cpp cpp8 gcc gcc8 glibc-devel kernel-default-devel kernel-devel kernel-macros kernel-source libasan5 libatomic1 libelf-devel libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpfr6 libmpx2 libmpxwrappers2 libopenssl-1_1-devel libopenssl-devel libtsan0 libubsan1 linux-glibc-devel make make-lang site-config zlib-devel
The following recommended package was automatically selected: libopenssl-devel
30 new packages to install.
It does not behave like this here. And there are no dependencies that would explain it either:
------------------------------------------------------------------------ tweed:~ # rpm -qp --requires kernel-source-4.17.9-1.1.g059e5b8.noarch.rpm /bin/sh bc coreutils kernel-devel = 4.17.9-1.g059e5b8 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 sed tweed:~ # rpm -qp --recommends kernel-source-4.17.9-1.1.g059e5b8.noarch.rpm openssl-devel tweed:~ # rpm -qp --requires kernel-devel-4.17.9-1.1.g059e5b8.noarch.rpm /bin/sh kernel-macros rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 tweed:~ # rpm -qp --recommends kernel-devel-4.17.9-1.1.g059e5b8.noarch.rpm tweed:~ # rpm -qp --requires kernel-macros-4.17.9-1.1.g059e5b8.noarch.rpm rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 tweed:~ # rpm -qp --recommends kernel-macros-4.17.9-1.1.g059e5b8.noarch.rpm tweed:~ # ------------------------------------------------------------------------
So kernel-default-devel shouldn't be added even if you had automatic installation of recommended packages turned on.
Michal Kubecek
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
So kernel-default-devel shouldn't be added even if you had automatic installation of recommended packages turned on.
Which is the default.
Andreas.
On Monday, 23 July 2018 11:08 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
So kernel-default-devel shouldn't be added even if you had automatic installation of recommended packages turned on.
Which is the default.
Default can be turned off which is why we distinguish "Requires" and "Recommends". Adding Requires where the package is not actually necessary makes such setting useless.
Michal Kubecek
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
On Monday, 23 July 2018 11:08 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
So kernel-default-devel shouldn't be added even if you had automatic installation of recommended packages turned on.
Which is the default.
Default can be turned off which is why we distinguish "Requires" and "Recommends". Adding Requires where the package is not actually necessary makes such setting useless.
But moving it to kernel-devel or kernel-*-devel is wrong nevertheless.
Andreas.
On Mon, Jul 23, 2018 at 11:54 AM, Andreas Schwab schwab@suse.de wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
On Monday, 23 July 2018 10:34 Andreas Schwab wrote:
On Jul 23 2018, Michal Kubecek mkubecek@suse.cz wrote:
I don't. Checked ~20 minutes ago. And you still didn't explain what "all the goo" is supposed to mean.
Everything that's glued behind it.
Once again: I took a Tumbleweed system which didn't have libelf-devel, bison, flex, not even make and gcc installed. All of these are needed to build the kernel these days. Then I ran "zypper install kernel-source". And the only packages zypper decided to install were
bc kernel-devel kernel-macros kernel-source
# zypper in kernel-source Loading repository data... Reading installed packages... Resolving package dependencies...
The following 30 NEW packages are going to be installed: binutils cpp cpp8 gcc gcc8 glibc-devel kernel-default-devel kernel-devel kernel-macros kernel-source libasan5 libatomic1 libelf-devel libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpfr6 libmpx2 libmpxwrappers2 libopenssl-1_1-devel libopenssl-devel libtsan0 libubsan1 linux-glibc-devel make make-lang site-config zlib-devel
The following recommended package was automatically selected: libopenssl-devel
30 new packages to install.
I cannot reproduce it with default TW repositories. kernel-source only pulls in kernel-devel and kernel-macros. And even with "zypper in --recommends" I only get openssl-devel. I wonder where kernel-default-devel comes from in your case.
On Monday, 23 July 2018 11:07 Andrei Borzenkov wrote:
On Mon, Jul 23, 2018 at 11:54 AM, Andreas Schwab schwab@suse.de
zypper in kernel-source Loading repository data... Reading installed packages... Resolving package dependencies...
The following 30 NEW packages are going to be installed: binutils cpp cpp8 gcc gcc8 glibc-devel kernel-default-devel kernel-devel kernel-macros kernel-source libasan5 libatomic1 libelf-devel libgomp1 libisl19 libitm1 liblsan0 libmpc3 libmpfr6 libmpx2 libmpxwrappers2 libopenssl-1_1-devel libopenssl-devel libtsan0 libubsan1 linux-glibc-devel make make-lang site-config zlib-devel
The following recommended package was automatically selected: libopenssl-devel
30 new packages to install.
I cannot reproduce it with default TW repositories. kernel-source only pulls in kernel-devel and kernel-macros. And even with "zypper in --recommends" I only get openssl-devel. I wonder where kernel-default-devel comes from in your case.
Perhaps it was recommended by some other package already installed in the system. Soft dependency (Requires) would allow uninstalling with "rpm -e ..." but then zypper would add it back.
Michal Kubecek
On Jul 23 2018, Andrei Borzenkov arvidjaar@gmail.com wrote:
I cannot reproduce it with default TW repositories.
It's a bog standard TW install, using the server profile.
Andreas.