[arch-dev-public] [PATCH] Add a warning for packages that are over 50% docs

Dan McGee dan at archlinux.org
Sun Nov 8 22:13:01 EST 2009


Look at the sizes of things in usr/share/docs, and flag the package if it is
over 50% documentation.

Signed-off-by: Dan McGee <dan at archlinux.org>
---

Finally got around to doing this. I tested it on the package in question (81%
docs, by the way) and also ran it on the gtk-doc package to make sure the name
check was working and excluding packages that are meant to contain docs.

Namcap guys, let me know if you have any questions/problems/concerns. This was
in response to this email:
http://mailman.archlinux.org/pipermail/arch-dev-public/2009-October/014112.htm:

-Dan

 Namcap/__init__.py   |    1 +
 Namcap/lotsofdocs.py |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++
 namcap-tags          |    1 +
 3 files changed, 53 insertions(+), 0 deletions(-)
 create mode 100644 Namcap/lotsofdocs.py

diff --git a/Namcap/__init__.py b/Namcap/__init__.py
index 5d8d911..8b39e7a 100644
--- a/Namcap/__init__.py
+++ b/Namcap/__init__.py
@@ -31,6 +31,7 @@ __tarball__ = """
   infodirectory
   libtool
   licensepkg
+  lotsofdocs
   mimefiles
   perllocal
   permissions
diff --git a/Namcap/lotsofdocs.py b/Namcap/lotsofdocs.py
new file mode 100644
index 0000000..2acb350
--- /dev/null
+++ b/Namcap/lotsofdocs.py
@@ -0,0 +1,51 @@
+# 
+# namcap rules - lotsofdocs
+# Copyright (C) 2009 Dan McGee <dan at archlinux.org>
+# 
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# 
+
+import os
+import tarfile
+
+class package:
+	def short_name(self):
+		return "lots-of-docs"
+	def long_name(self):
+		return "See if a package is carrying more documentation than it should"
+	def prereq(self):
+		return "tar"
+	def analyze(self, pkginfo, tar):
+		ret = [[],[],[]]
+		if hasattr(pkginfo, 'name'):
+			if pkginfo.name.endswith('-doc'):
+				return ret
+		docdir = 'usr/share/doc'
+		size = 0
+		docsize = 0
+
+		for i in tar.getmembers():
+			if i.name.startswith(docdir):
+				docsize += i.size
+			size += i.size
+
+		ratio = docsize / float(size)
+		if size > 0 and ratio > 0.50:
+			ret[1].append(("lots-of-docs %f", ratio * 100))
+
+		return ret
+	def type(self):
+		return "tarball"
+# vim: set ts=4 sw=4 noet:
diff --git a/namcap-tags b/namcap-tags
index 710077c..3245760 100644
--- a/namcap-tags
+++ b/namcap-tags
@@ -36,6 +36,7 @@ info-dir-file-present %s :: Info directory file (%s) needs removed.
 insecure-rpath %s :: Insecure RPATH (%s). If present, RPATH should be only /usr/lib.
 libtool-file-present %s :: File (%s) is a libtool file.
 link-level-dependence %s in %s :: Link-level dependence (%s) in file %s
+lots-of-docs %f :: Package was %.0f%% docs by size; maybe you should split out a docs package
 mime-cache-not-updated :: Mime-file found. Add "update-mime-database usr/share/mime" to the install file
 missing-contributor :: Missing Contributor tag
 missing-custom-license-dir usr/share/licenses/%s :: Missing custom license directory (usr/share/licenses/%s)
-- 
1.6.5.2



More information about the arch-dev-public mailing list