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 Getopt::Long;
use Carp;
+unshift @INC, "/home/jeremiah/maemian/lib";
+require Maemian::Output;
+my $lintout = new Maemian::Output;
+
# --- 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 {
+ print "N: $maintainer\n";
+ }
if (grep /BEGIN PGP SIGNED MESSAGE/, @lines) {
- print "$filename is signed\n";
+ print "N: $filename is signed\n";
}
# print "\n$dirs\n$filename\n";
- } else {
+ }
+ else {
croak "File not readable: $!\n";
}
}