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 changed files with 38 additions and 1 deletions
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 a new issue