d/scripts/abi-generate: add new helper script
and use it in d/rules to generate the checked ABI file. Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
		
							parent
							
								
									613597611d
								
							
						
					
					
						commit
						2132f0716b
					
				
							
								
								
									
										2
									
								
								debian/rules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/rules
									
									
									
									
										vendored
									
									
								
							| @ -202,7 +202,7 @@ fwcheck: fwlist-${KVNAME} fwlist-previous | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| abi-${KVNAME}: .compile_mark | abi-${KVNAME}: .compile_mark | ||||||
| 	sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}/Module.symvers | sort > abi-${KVNAME} | 	debian/scripts/abi-generate debian/${PVE_HEADER_PKG}/usr/src/linux-headers-${KVNAME}/Module.symvers abi-${KVNAME} ${KVNAME} | ||||||
| 
 | 
 | ||||||
| .PHONY: abicheck | .PHONY: abicheck | ||||||
| abicheck: debian/scripts/abi-check abi-${KVNAME} abi-previous abi-blacklist | abicheck: debian/scripts/abi-check abi-${KVNAME} abi-previous abi-blacklist | ||||||
|  | |||||||
							
								
								
									
										37
									
								
								debian/scripts/abi-generate
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										37
									
								
								debian/scripts/abi-generate
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @ -0,0 +1,37 @@ | |||||||
|  | #!/usr/bin/perl -w | ||||||
|  | 
 | ||||||
|  | use PVE::Tools; | ||||||
|  | 
 | ||||||
|  | use IO::File; | ||||||
|  | 
 | ||||||
|  | my $input_file = shift; | ||||||
|  | my $output_file = shift; | ||||||
|  | my $abi = shift; | ||||||
|  | my $extract_deb = shift; | ||||||
|  | 
 | ||||||
|  | die "input file '$input_file' does not exist\n" if ! -e $input_file; | ||||||
|  | 
 | ||||||
|  | my $modules_symver_fh; | ||||||
|  | 
 | ||||||
|  | if ($extract_deb) { | ||||||
|  | 	my $cmd = []; | ||||||
|  | 	push @$cmd, ['dpkg', '--fsys-tarfile', $input_file]; | ||||||
|  | 	push @$cmd, ['tar', '-xOf', '-', "./usr/src/linux-headers-${abi}/Module.symvers"]; | ||||||
|  | 	$modules_symver_fh = IO::File->new_tmpfile(); | ||||||
|  | 	PVE::Tools::run_command($cmd, output => '>&'.fileno($modules_symver_fh)); | ||||||
|  | 	seek($modules_symver_fh, 0, 0); | ||||||
|  | } else { | ||||||
|  | 	open($modules_symver_fh, '<', $input_file) or die "can't open '$input_file' - $!\n"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | my $lines = []; | ||||||
|  | while(my $line = <$modules_symver_fh>) { | ||||||
|  | 	if ($line =~ /^(.+)\s+(.+)\s+(.+)$/) { | ||||||
|  | 		push @$lines, "$3 $2 $1"; | ||||||
|  | 	} else { | ||||||
|  | 		warn "malformed symvers line: '$line'\n"; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | close($modules_symver_fh); | ||||||
|  | 
 | ||||||
|  | PVE::Tools::file_set_contents($output_file, join("\n", sort @$lines)); | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Fabian Grünbichler
						Fabian Grünbichler