maemian - Maemo package checker
+=head1
+
+Maemian is the maemo version of lintian - a policy checker designed to
+assure the quality of a package uploaded into the maemo.org repositories.
+The goal of maemian is to improve quality by checking that the maemo
+packaging policy is followed. In order to do that it reads files in the
+uploaded deb. Currently maemian only looks at the .dsc file and tries to
+ascertain who uploaded it, and if they used the correct email address.
+
=head1 EXAMPLE
maemian -i file.dsc
use warnings;
use Getopt::Long;
use Carp;
+use lib qw(lib/);
+use Maemian::Output;
+# --- Output settings.
+my $out = new Maemian::Output;
+# --- If this is set to true, then you only get msgs
+$out->quiet(0);
+$out->msg("Notice on");
+# --- If this is set to true, then you will get verbose messages.
+$out->verbose(1);
+$out->v_msg("Verbose on");
+
+$out->color("auto");
# --- Command line options
-my $inputfile; # --- A file passed to maemian
+my $inputfile; # --- A file passed to maemian
GetOptions ("inputfile|i=s" => \$inputfile);
sub file_tests {
my $path = shift;
if (-r $path) {
my ($filename, $dirs) = fileparse($path);
+ # --- maemo is a trademarked term
if ($filename =~ /maemo/) {
print "W: Any use of the word \"maemo\" is subject to trademark.\n";
}
-
# --- Open file into an array
open my $file, '<', $path or die "Cannot open file: $!\n";
my @lines = <$file>;
close $file;
+ my ($field, $maintainer) = map { split /: / } grep /Maintainer/, @lines;
+ chomp($maintainer);
+ if ($maintainer =~ /(ubuntu|debian)/i) {
+ print "W: Maintainer email address ($maintainer) might be the same as upstream.\n";
+ }
+ else {
+ $out->msg("$maintainer");
+ }
if (grep /BEGIN PGP SIGNED MESSAGE/, @lines) {
- print "$filename is signed\n";
+ $out->v_msg("$filename is signed");
}
- # print "\n$dirs\n$filename\n";
- } else {
+ $out->debug_msg(3, "\n$dirs\n$filename\n");
+ }
+ else {
croak "File not readable: $!\n";
}
}