[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#722084: lintian: [checks] Add Ruby pkg team checks to lintian



Package: lintian
Version: 2.5.17
Severity: wishlist
Tags: patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dear Lintian-Maintainer,

we the Debian Ruby Team would like to add some lintian checks for the Ruby packages.

Please see attched patch.

Acknowledgment of Ruby pkg team:
	https://lists.debian.org/debian-ruby/2013/09/msg00011.html

Would you please include that checks into the next release of Lintian?

Thanks,
	Jonas

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJSK1uhAAoJEPBM7/YBbP/Q/9UQAIIJmBSs8bRylgiBtDIHbTBV
fFIx4izdXftexvXgpOf8SnurNGov69+MD20SaCNzVnDyWojh1D290WJYjogsTUnv
Xv8o6eNxXecgmJW2QYEXRLVF4LcEycscrKvL7o7g0OrPh4cff2CQvbZkMCsDkXrR
6donOzgOneRVAlAUgi7jtMmY2qUOwW3mwUvqIXPYyHHo22eFzZvSIwyTk3ik8viS
ki8YqClfdPioH0S0xq8coBXw5fmc4J7EucNQzD0UjjFflxEQ1HRMw2jSbVyIlrTu
np7ZNMhWx1h+idffwSF4nDQr1clb3iE/xKO00HBvI7ghlvsiFVyeeSbAugWfoDp6
qAGuvmAeDoVd/pqSRwxLp8HiWC7kzRqTCxcealX1QcDkaUPnNiEpPekqAfWzq6H6
H3t+xkeNRcsw3HCzg+3xobv7qOlm9NmPPbm3ocb2hVsUVqtulCovdvLuGfoSGkOK
mPifkrckWd/YvWteeGPSjmEzbof+4YiCLmLYHgf6jEaquu92sBjJBVMqtynU9zaY
saKXVg5Z5mZVbeHbJ4bTGM/GMqR9XQtzK365/MsiFNJl3OaSFjdUTb95EqoDS935
o8+Ad2Qmof354qOwUNn7iyNsYhugYR5RKJ4R6b3k7CpaFrVAtJThnL0BEwnMkPw+
L/EO/GneA+9MAflc8ciq
=BJSu
-----END PGP SIGNATURE-----
>From d7a2bb97de6be5f125cbbd7d72ada75e95fa53be Mon Sep 17 00:00:00 2001
From: Jonas Genannt <jonas@brachium-system.net>
Date: Sat, 7 Sep 2013 18:52:44 +0200
Subject: [PATCH] added Ruby pkg team checks

---
 checks/ruby.desc             |   36 ++++++++++++++++++++++++++++++++++++
 checks/ruby.pm               |   39 +++++++++++++++++++++++++++++++++++++++
 profiles/debian/main.profile |    2 +-
 3 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100644 checks/ruby.desc
 create mode 100644 checks/ruby.pm

diff --git a/checks/ruby.desc b/checks/ruby.desc
new file mode 100644
index 0000000..f635090
--- /dev/null
+++ b/checks/ruby.desc
@@ -0,0 +1,36 @@
+Check-Script: ruby
+Author: Jonas Genannt <jonas.genannt@capi2name.de>
+Type: binary
+Info: Checks various Ruby PKG Team stuff
+Needs-Info: bin-pkg-control, index, scripts, unpacked
+
+Tag: ruby-depends-on-ruby1.8
+Severity: serious
+Certainty: certain
+Info: This package depends on ruby1.8, but ruby 1.8 is at its end of life.
+ Please check your package against newer Ruby versions and update your
+ dependencies to "ruby | ruby-interpreter", or in the worst case, to a newer
+ Ruby version.
+ .
+ https://wiki.debian.org/Teams/Ruby/Packaging
+
+Tag: ruby-depends-on-specific-ruby-version
+Severity: normal
+Certainty: certain
+Info: This package depends on a specific ruby version.
+ Packages should not depend on a specific ruby version if possible, because
+ this makes it harder to drop support for obsolete Ruby versions. Ideally
+ packages should declare a dependency on Ruby using a generic
+ "ruby | ruby-interpreter".
+ .
+ https://wiki.debian.org/Teams/Ruby/Packaging
+
+Tag: ruby-library-old-package-name-schema
+Severity: serious
+Certainty: certain
+Info: Your ruby library package name does not fit the Debian standards for Ruby.
+ The package name does not fit the current naming scheme for Ruby packages.
+ Ruby libraries should named like `ruby-foo`. Packages named libfoo-ruby* are
+ deprecated.
+ .
+ https://wiki.debian.org/Teams/Ruby/Packaging
diff --git a/checks/ruby.pm b/checks/ruby.pm
new file mode 100644
index 0000000..89f1987
--- /dev/null
+++ b/checks/ruby.pm
@@ -0,0 +1,39 @@
+package Lintian::ruby;
+
+use strict;
+use warnings;
+
+use Lintian::Collect::Binary ();
+use Lintian::Tags qw(tag);
+
+sub run {
+    my $pkg = shift;
+    my $type = shift;
+    my $info = shift;
+
+    if ($type eq 'binary') {
+
+        my $pkg_description = $info->field('description');
+        if ($pkg_description) {
+          if ($pkg =~ /^lib.*-ruby.*/ and !$info->is_pkg_class('transitional') ) {
+            tag 'ruby-library-old-package-name-schema';
+          }
+        }
+
+        my $str_deps = $info->relation('strong');
+        if ($str_deps and $str_deps->implies("ruby1.8")) {
+            tag 'ruby-depends-on-ruby1.8';
+        }
+
+        if ($str_deps and $str_deps->matches(qr/^ruby[0-9.]+$/o) and !$str_deps->implies("ruby1.8")) {
+            tag 'ruby-depends-on-specific-ruby-version';
+        }
+    }
+}
+
+1;
+# Local Variables:
+# indent-tabs-mode: nil
+# cperl-indent-level: 4
+# End:
+# vim: syntax=perl sw=4 sts=4 sr et
diff --git a/profiles/debian/main.profile b/profiles/debian/main.profile
index 336d1f0..2772c6a 100644
--- a/profiles/debian/main.profile
+++ b/profiles/debian/main.profile
@@ -8,6 +8,6 @@ Enable-Tags-From-Check: apache2, automake, binaries, changelog-file, changes-fil
  infofiles, init.d, java, lintian, manpages, md5sums, menu-format, menus, nmu,
  ocaml, patch-systems, phppear, po-debconf, rules, scripts, shared-libs,
  source-copyright, standards-version, symlinks, systemd, testsuite,
- version-substvars, watch-file
+ version-substvars, watch-file, ruby
 Disable-Tags: hardening-no-stackprotector
 
-- 
1.7.10.4


Reply to: