diff options
author | dyknon <dyknon@r5f.jp> | 2025-07-20 19:43:19 +0900 |
---|---|---|
committer | dyknon <dyknon@r5f.jp> | 2025-07-20 19:44:12 +0900 |
commit | 7fc1aaff3008982ccf3d2e47a34bc2a91c0b0746 (patch) | |
tree | fbeda337373e9fbcc0de39d4016859332af4d701 /debian/collect_copyright.pl | |
parent | 205d6775be4031f72e410f6514a00530a40ee2fa (diff) |
Diffstat (limited to 'debian/collect_copyright.pl')
-rwxr-xr-x | debian/collect_copyright.pl | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/debian/collect_copyright.pl b/debian/collect_copyright.pl new file mode 100755 index 0000000..5556d87 --- /dev/null +++ b/debian/collect_copyright.pl @@ -0,0 +1,45 @@ +#!/usr/bin/perl + +use v5.36; + +sub slurp($file){ + open(my $fh, "<", $file) or die; + local $/; + $/ = "\n" if(wantarray); + <$fh> +} + +my $root = $ENV{DPKG_ROOT} // ""; + +my %pkg; +my $pkg; +for(slurp("$root/var/lib/dpkg/status")){ + $pkg = $1 if(/^Package:\s*([^\s]*)/); + if(/^Source:\s*([^\s(]*)/){ + my $src = $1; + next if($src eq $pkg); + $pkg{$src} //= []; + push $pkg{$src}->@*, $pkg; + } +} + +my @deps; +for(@ARGV){ + push @deps, map{s/^\s*//; s/\s*$//r} + map{s/.*?.?=//; split(/, */)} + grep{/^misc:Static-Built-Using.?=/} + slurp($_); +} + +DEP: for my $namev(@deps){ + my $name = $namev =~ s/\s*\(.*//r; + for($name, $pkg{$name}->@*){ + if(-f "$root/usr/share/doc/$_/copyright"){ + print("Package: $namev\n"); + print(slurp("/usr/share/doc/$_/copyright")); + print("\n"); + next DEP; + } + } + die; +} |