2020-09-16 22:24:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#1/bin/bash  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Script to prepare update for new kernel release  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  -e  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  -o pipefail 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LINUX_REPOSITORY = submodules/ubuntu-mainline 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-17 17:24:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								while  getopts  "R:t:b:v:r:h"  OPTION;  do  
						 
					
						
							
								
									
										
										
										
											2020-09-16 22:24:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    case  $OPTION  in
							 
						 
					
						
							
								
									
										
										
										
											2020-09-17 17:24:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    R) 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-16 22:24:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        LINUX_REPOSITORY = $OPTARG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    t) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LINUX_TAG = $OPTARG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    b) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LINUX_BASE = $OPTARG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    v) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LINUX_VERSION = $OPTARG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-17 17:24:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    r) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        LINUX_PACKAGE_RELEASE = $OPTARG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-16 22:24:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    h) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  "update.sh -rtbh" 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-17 17:24:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        echo  "  -R  path to Linux Git repository" 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-16 22:24:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        echo  "  -t  tag in Linux Git repository to pick" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  "  -b  manual basis for this kernel" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  "  -v  manual version for this kernel" 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-17 17:24:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        echo  "  -r  manual release version for this kernel" 
							 
						 
					
						
							
								
									
										
										
										
											2020-09-16 22:24:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        echo  "  -h  this help message" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        echo  "Incorrect options provided" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    esac 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Fetch from Git repository  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  " Fetching  $LINUX_TAG  from Linux Git repository... "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git --git-dir $LINUX_REPOSITORY /.git fetch origin --depth 1  $LINUX_TAG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git --git-dir $LINUX_REPOSITORY /.git checkout FETCH_HEAD
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [ [  -z " $LINUX_BASE "  ] ] ;  then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # Parse the Ubuntu base from which our build is derived 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    UBUNTU_BASE = $( git --git-dir $LINUX_REPOSITORY /.git log -1 --pretty= %B |  sed -n " s/^.*Ubuntu-\([0-9.-]*\).* $/\1/p " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LINUX_BASE = " Ubuntu  $UBUNTU_BASE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [ [  -z " $LINUX_VERSION "  ] ] ;  then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # Parse the Linux version from the Linux repository if it not provided by the user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LINUX_VERSION = $( dpkg-parsechangelog -l $LINUX_REPOSITORY /debian.master/changelog --show-field Version |  sed -n " s/^\([0-9.]*\).* $/\1/p " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  " Using Linux  $LINUX_VERSION  based on  $LINUX_BASE . "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Prepare Debian changelog  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sed -e " s/@KVNAME@/ $LINUX_VERSION /g "  -e " s/@KVMAJMIN@/ $LINUX_VERSION_MAJOR . $LINUX_VERSION_MINOR /g "  < debian/control.in > debian/control
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LINUX_VERSION_MAJOR = $( echo  $LINUX_VERSION  |  cut -d. -f1)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LINUX_VERSION_MINOR = $( echo  $LINUX_VERSION  |  cut -d. -f2)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LINUX_VERSION_PATCH = $( echo  $LINUX_VERSION  |  cut -d. -f3)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LINUX_VERSION_PATCH = ${ LINUX_VERSION_PATCH :- 0 }  # Default to 0  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LINUX_PACKAGE_RELEASE_PREVIOUS = $( scripts/version.sh -r)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Check whether we need to increment the package release  
						 
					
						
							
								
									
										
										
										
											2020-09-17 17:24:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  [ [  -n $LINUX_PACKAGE_RELEASE  ] ] ;  then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  " Using custom package release  $LINUX_PACKAGE_RELEASE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								elif  [ [  $LINUX_VERSION  = =  " $( scripts/version.sh -L) "  ] ] ;  then  
						 
					
						
							
								
									
										
										
										
											2020-09-16 22:24:33 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    LINUX_PACKAGE_RELEASE = $(( LINUX_PACKAGE_RELEASE_PREVIOUS +  1 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  " Incrementing package release to  $LINUX_PACKAGE_RELEASE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LINUX_PACKAGE_RELEASE = 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    echo  "New package release" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  "Updating Makefile..."  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Update the Makefile with the proper version numbers  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sed -i Makefile \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -e " s/^KERNEL_MAJ=[0-9]* $/KERNEL_MAJ= $LINUX_VERSION_MAJOR / "  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -e " s/^KERNEL_MIN=[0-9]* $/KERNEL_MIN= $LINUX_VERSION_MINOR / "  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -e " s/^KERNEL_PATCHLEVEL=[0-9]* $/KERNEL_PATCHLEVEL= $LINUX_VERSION_PATCH / "  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -e " s/^KREL=[0-9]* $/KREL=1/ "  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    -e " s/^PKGREL=[0-9]* $/PKGREL= $LINUX_PACKAGE_RELEASE / " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  "Generating entry for change log..."  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Generate a changelog entry  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								debchange -v $LINUX_VERSION -$LINUX_PACKAGE_RELEASE  -D edge --force-distribution -U -M " Update to Linux  $LINUX_VERSION  based on  $LINUX_BASE . " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  "Cleaning up"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								rm -f debian/control