2017-07-24 20:56 GMT+08:00 vibnwis <vibnwis@xxxxxxxxx>: > 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 _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies