| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/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));
|