That is a long list of manual depends which might be wrong.
I think there are two tasks here, now seeming like work but potentially eliminating a lot more work.
0. check code for candidates e.g.
# Install libs listed
$ apt install lib...
$ dpkg -L lib...
# find its include path like
# /usr/share/perl5/Config/Tiny.pm
# Check for usage of that
Example of a potentially real dependency:
# grep -Hrn use * | grep Config::Tiny
lib/Mail/DMARC/Base.pm:8:use Config::Tiny;
1. Remove all the manual dependencies, see what just ${perl:Depends} detects
2. Use libmail-dmarc-perl without them installed, does it still work
Once confirmed, update the dependency tree in the bug and in the package.
As you @Miriam have found yourself furthermore there is this in Install.md
NOTE: Most of the dependencies are optionally required for the DMARC reporting features. Mail::DMARC will perform validation with only these modules:
So an approach could be a much more limited libmail-dmarc-perl in main and a separated only suggested package libmail-dmarc-perl-reporting which adds the rest. Doing this does not prevent considering to add the reporting as well in the future and is independent to the check which dependencies might be entirely non-needed.
Of these only the two here might be needed then:
* libfile-sharedir-perl: universe
+ libclass-inspector-perl: universe
AFAICS libtest- file-sharedir- perl is only used in tests:
root@m: ~/libmail- dmarc-perl- 1.20230215# grep -Hrn use * | grep Test::File: :ShareDir :ShareDir :ShareDir :ShareDir :ShareDir Sender. t:10:use Test::File: :ShareDir Send.t: 7:use Test::File: :ShareDir t:8:use Test::File: :ShareDir Aggregate. Schema. t:7:use Test::File: :ShareDir -share => { -dist => { 'Mail-DMARC' => 'share' } }; Store.t: 7:use Test::File: :ShareDir
t/09.HTTP.t:7:use Test::File:
t/03.Base.t:7:use Test::File:
t/00.Dmarc.t:7:use Test::File:
t/06.Result.t:7:use Test::File:
t/26.Report.
t/21.Report.
t/04.PurePerl.
t/17.Report.
t/11.Report.
It is only there as it is listed manually in d/control.
That would eliminate this whole block: file-sharedir- perl: universe copy-recursive- perl: universe sharedir- perl: universe inspector- perl: universe guard-perl: universe
* libtest-
- libclass-tiny-perl: universe
- libfile-
- libfile-
+ libclass-
- libscope-
Looking at d/control:
Package: libmail-dmarc-perl
${perl: Depends} ,
libconfig- tiny-perl,
libio- socket- ssl-perl,
libfile- sharedir- perl,
libnet- dns-perl,
libnet- idn-encode- perl,
libnet- ip-perl,
libnet- ssleay- perl,
libemail- mime-perl,
libtest- file-sharedir- perl,
libemail- sender- perl,
libdbix- simple- perl,
libdbd- sqlite3- perl,
libtest- output- perl,
libregexp- common- perl,
libsocket6- perl,
liburi- perl,
libxml- libxml- perl,
publicsuffix,
Architecture: all
Depends: ${misc:Depends},
That is a long list of manual depends which might be wrong.
I think there are two tasks here, now seeming like work but potentially eliminating a lot more work. perl5/Config/ Tiny.pm
0. check code for candidates e.g.
# Install libs listed
$ apt install lib...
$ dpkg -L lib...
# find its include path like
# /usr/share/
# Check for usage of that
Example of a potentially real dependency: DMARC/Base. pm:8:use Config::Tiny;
# grep -Hrn use * | grep Config::Tiny
lib/Mail/
1. Remove all the manual dependencies, see what just ${perl:Depends} detects
2. Use libmail-dmarc-perl without them installed, does it still work
Once confirmed, update the dependency tree in the bug and in the package.
As you @Miriam have found yourself furthermore there is this in Install.md
NOTE: Most of the dependencies are optionally required for the DMARC reporting features. Mail::DMARC will perform validation with only these modules:
Regexp::Common :DNS::Resolver
Config::Tiny
File::ShareDir
Net:
Net::IP
Socket6
So an approach could be a much more limited libmail-dmarc-perl in main and a separated only suggested package libmail- dmarc-perl- reporting which adds the rest. Doing this does not prevent considering to add the reporting as well in the future and is independent to the check which dependencies might be entirely non-needed.
Of these only the two here might be needed then: sharedir- perl: universe inspector- perl: universe
* libfile-
+ libclass-