2017-07-24 20:56 GMT+08:00 vibnwis <vibnwis@gmail.com>:
Hi there,
Being a newbie, I encountered the following scenarios when tracing build_kernel.sh script from eewiki. Would someone help me to understand why please? From my experience, I would to summarize the following scenario.
1. First, source is cloned from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git and checked for release version, "v4.10.17". Obviously it has no kernel tag of "v4.10.17", but "v4.10"
2. As "v4.10.17" does not exist, it tried to pull from the origin/master by command, git pull --no-edit https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master --tags
3. Kernel tag, of "v4.10.17" is checked being verified again, but failed. Hence, now it fetched from git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git master --tags
Now, the kernel, of v4.10.17" is found.
My questions are:
1. One would know that clone of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git would not produce kernel tag of , "v4.10.17", wouldn't it?
2. Similar by pull it again from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git with option of master --tags would not produce kernel tag, "v4.10.17" as well, wouldn' it?
3. Since fetching with git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git master --tags would produce v4.10.17, why would not it clone it from .../stable/linux-stable,git?
Here is the basic Linux kernel development model: Before every "major" release, there would be 7 "rc" release, and along with each rc release, there is a stable release. For example, let's say we are at 4.2 (or, 4.2.0) now. Before we move to 4.3, there would 4.3.1-rc, 4.3.2-rc, ..., 4.3.7-rc. After 4.3.7-rc, we have 4.3 (or, 4.3.0). But, rc release is not stable! So, in order to enable users to use/test the kernel, Greg KH would maintain a relatively stable kernel along with each rc release. In the example above, there would be 4.2.1 along with 4.3.1-rc, 4.2.2 along with 4.3.2-rc, etc. Basically it is something like this: 4.2.0 | \ 4.3.1-rc 4.2.1 | | 4.3.2-rc 4.2.2 | | 4.3.3-rc 4.2.3 | | 4.3.4-rc 4.2.4 | | 4.3.5-rc 4.2.5 | | 4.3.6-rc 4.2.6 | | 4.3.7-rc 4.2.7 <- this branch is thrown away after 4.4.0 is released | 4.4.0 So, you see, you can only get v4.10.17 from the stable release. see: (1) https://github.com/gregkh/kernel-development (2) https://www.kernel.org/doc/html/v4.11/process/2.Process.html Yubin