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 | ||||
| 	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 | ||||
| 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