~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/scripts/setlocalversion

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /scripts/setlocalversion (Version linux-6.12-rc7) and /scripts/setlocalversion (Version linux-2.4.37.11)


  1 #!/bin/sh                                         
  2 # SPDX-License-Identifier: GPL-2.0                
  3 #                                                 
  4 # This scripts adds local version information     
  5 # control system git.                             
  6 #                                                 
  7 # If something goes wrong, send a mail the ker    
  8 # (see MAINTAINERS) and CC Nico Schottelius       
  9 # <nico-linuxsetlocalversion -at- schottelius.    
 10 #                                                 
 11 #                                                 
 12                                                   
 13 usage() {                                         
 14         echo "Usage: $0 [--no-local] [srctree]    
 15         exit 1                                    
 16 }                                                 
 17                                                   
 18 no_local=false                                    
 19 if test "$1" = "--no-local"; then                 
 20         no_local=true                             
 21         shift                                     
 22 fi                                                
 23                                                   
 24 srctree=.                                         
 25 if test $# -gt 0; then                            
 26         srctree=$1                                
 27         shift                                     
 28 fi                                                
 29 if test $# -gt 0 -o ! -d "$srctree"; then         
 30         usage                                     
 31 fi                                                
 32                                                   
 33 scm_version()                                     
 34 {                                                 
 35         local short=false                         
 36         local no_dirty=false                      
 37         local tag                                 
 38                                                   
 39         while [ $# -gt 0 ];                       
 40         do                                        
 41                 case "$1" in                      
 42                 --short)                          
 43                         short=true;;              
 44                 --no-dirty)                       
 45                         no_dirty=true;;           
 46                 esac                              
 47                 shift                             
 48         done                                      
 49                                                   
 50         cd "$srctree"                             
 51                                                   
 52         if test -n "$(git rev-parse --show-cdu    
 53                 return                            
 54         fi                                        
 55                                                   
 56         if ! head=$(git rev-parse --verify HEA    
 57                 return                            
 58         fi                                        
 59                                                   
 60         # mainline kernel:  6.2.0-rc5  ->  v6.    
 61         # stable kernel:    6.1.7      ->  v6.    
 62         version_tag=v$(echo "${KERNELVERSION}"    
 63                                                   
 64         # If a localversion* file exists, and     
 65         # annotated tag exists and is an ances    
 66         # it. This is the case in linux-next.     
 67         tag=${file_localversion#-}                
 68         desc=                                     
 69         if [ -n "${tag}" ]; then                  
 70                 desc=$(git describe --match=$t    
 71         fi                                        
 72                                                   
 73         # Otherwise, if a localversion* file e    
 74         # obtained by appending it to the tag     
 75         # KERNELVERSION exists and is an ances    
 76         # it. This is e.g. the case in linux-r    
 77         if [ -z "${desc}" ] && [ -n "${file_lo    
 78                 tag="${version_tag}${file_loca    
 79                 desc=$(git describe --match=$t    
 80         fi                                        
 81                                                   
 82         # Otherwise, default to the annotated     
 83         if [ -z "${desc}" ]; then                 
 84                 tag="${version_tag}"              
 85                 desc=$(git describe --match=$t    
 86         fi                                        
 87                                                   
 88         # If we are at the tagged commit, we i    
 89         # well-defined.                           
 90         if [ "${tag}" != "${desc}" ]; then        
 91                                                   
 92                 # If only the short version is    
 93                 # running further git commands    
 94                 if $short; then                   
 95                         echo "+"                  
 96                         return                    
 97                 fi                                
 98                 # If we are past the tagged co    
 99                 # (like 6.1.0-14595-g292a089d7    
100                 if [ -n "${desc}" ]; then         
101                         echo "${desc}" | awk -    
102                 fi                                
103                                                   
104                 # Add -g and exactly 12 hex ch    
105                 printf '%s%s' -g "$(echo $head    
106         fi                                        
107                                                   
108         if ${no_dirty}; then                      
109                 return                            
110         fi                                        
111                                                   
112         # Check for uncommitted changes.          
113         # This script must avoid any write att    
114         # might be read-only.                     
115         # You cannot use 'git describe --dirty    
116         # .git/index.lock .                       
117         # First, with git-status, but --no-opt    
118         # git >= 2.14, so fall back to git-dif    
119         # git-diff-index does not refresh the     
120         # results.                                
121         # See git-update-index(1), git-diff-in    
122         if {                                      
123                 git --no-optional-locks status    
124                 git diff-index --name-only HEA    
125         } | read dummy; then                      
126                 printf '%s' -dirty                
127         fi                                        
128 }                                                 
129                                                   
130 collect_files()                                   
131 {                                                 
132         local file res=                           
133                                                   
134         for file; do                              
135                 case "$file" in                   
136                 *\~*)                             
137                         continue                  
138                         ;;                        
139                 esac                              
140                 if test -e "$file"; then          
141                         res="$res$(cat "$file"    
142                 fi                                
143         done                                      
144         echo "$res"                               
145 }                                                 
146                                                   
147 if [ -z "${KERNELVERSION}" ]; then                
148         echo "KERNELVERSION is not set" >&2       
149         exit 1                                    
150 fi                                                
151                                                   
152 # localversion* files in the build and source     
153 file_localversion="$(collect_files localversio    
154 if test ! "$srctree" -ef .; then                  
155         file_localversion="${file_localversion    
156 fi                                                
157                                                   
158 if ${no_local}; then                              
159         echo "${KERNELVERSION}$(scm_version --    
160         exit 0                                    
161 fi                                                
162                                                   
163 if ! test -e include/config/auto.conf; then       
164         echo "Error: kernelrelease not valid -    
165         exit 1                                    
166 fi                                                
167                                                   
168 # version string from CONFIG_LOCALVERSION         
169 config_localversion=$(sed -n 's/^CONFIG_LOCALV    
170                                                   
171 # scm version string if not at the kernel vers    
172 if grep -q "^CONFIG_LOCALVERSION_AUTO=y$" incl    
173         # full scm version string                 
174         scm_version="$(scm_version)"              
175 elif [ "${LOCALVERSION+set}" != "set" ]; then     
176         # If the variable LOCALVERSION is not     
177         # sign if the repository is not in a c    
178         # signed tagged state (as git describe    
179         # or annotated tags - git tag -a/-s).     
180         #                                         
181         # If the variable LOCALVERSION is set     
182         # to an empty string), we don't want t    
183         scm_version="$(scm_version --short)"      
184 fi                                                
185                                                   
186 echo "${KERNELVERSION}${file_localversion}${co    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php