+#!/usr/bin/perl
+
+# Copyright (C) Jeremiah C. Foster 2009, based on:
+# Lintian -- Debian package checker
+# Copyright (C) 1998 Christian Schwarz and Richard Braakman
+
+=head1 NAME
+
+minimae - A small, cuddly version of maemian
+
+=head1 PURPOSE
+
+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 SYNOPSIS
+
+ # Check a debian description file
+ minimae -i file.dsc
+
+=cut
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use Carp;
+use lib qw(lib/);
+use Maemian::Output;
+
+# --- Command line options
+my $inputfile; # --- A file passed on the command line
+my ($help, $verbose);
+
+GetOptions
+ (
+ 'help' => \$help,
+ 'verbose' => \$verbose,
+ 'inputfile|i=s' => \$inputfile,
+ );
+
+# --- Process Command line options
+pod2usage() if $help;
+pod2usage() if not $inputfile;
+
+# --- Output settings.
+my $out = new Maemian::Output;
+if ($verbose) {
+ $out->verbose(1);
+ $out->v_msg("Verbose on");
+}
+ # --- 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->color("auto");
+
+
+
+
+
+
+
+
+
+
+
+sub file_tests {
+ use File::Basename;
+ 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\" in the package name (not package version) 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) {
+ $out->v_msg("$filename is signed");
+ }
+ $out->debug_msg(3, "\n$dirs\n$filename\n");
+ }
+ else {
+ croak "File not readable: $!\n";
+ }
+}
+
+if ($inputfile) {
+ file_tests($inputfile);
+} else {
+ croak "No input file found: $!\n";
+}