public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Brian Dolbec" <brian.dolbec@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:repoman commit in: pym/repoman/
Date: Fri, 30 May 2014 13:03:31 +0000 (UTC)	[thread overview]
Message-ID: <1401211879.71f8e844940eba8ba73d833e9e786a7ea65f2bfd.dol-sen@gentoo> (raw)

commit:     71f8e844940eba8ba73d833e9e786a7ea65f2bfd
Author:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Tue May 27 17:31:19 2014 +0000
Commit:     Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Tue May 27 17:31:19 2014 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=71f8e844

repoman/main.py: Create ebuild.py and Ebuild class

This moves all relavent data to a class for a common access point.
It also adds an untracked function.

---
 pym/repoman/ebuild.py | 30 ++++++++++++++++++
 pym/repoman/main.py   | 88 ++++++++++++++++++++++++---------------------------
 2 files changed, 71 insertions(+), 47 deletions(-)

diff --git a/pym/repoman/ebuild.py b/pym/repoman/ebuild.py
new file mode 100644
index 0000000..fbe25a9
--- /dev/null
+++ b/pym/repoman/ebuild.py
@@ -0,0 +1,30 @@
+
+
+from portage import os
+
+
+class Ebuild(object):
+	'''Class to run primary checks on ebuilds'''
+
+	def __init__(self, repo_settings, repolevel, pkgdir, catdir, vcs_settings, x, y):
+		self.vcs_settings = vcs_settings
+		self.relative_path = os.path.join(x, y + ".ebuild")
+		self.full_path = os.path.join(repo_settings.repodir, self.relative_path)
+		self.ebuild_path = y + ".ebuild"
+		if repolevel < 3:
+			self.ebuild_path = os.path.join(pkgdir, self.ebuild_path)
+		if repolevel < 2:
+			self.ebuild_path = os.path.join(catdir, self.ebuild_path)
+		self.ebuild_path = os.path.join(".", self.ebuild_path)
+
+
+	def untracked(self, check_ebuild_notadded, y, eadded):
+		do_check = self.vcs_settings.vcs in ("cvs", "svn", "bzr")
+		really_notadded = check_ebuild_notadded and y not in eadded
+
+		if do_check and really_notadded:
+			# ebuild not added to vcs
+			return True
+		return False
+
+

diff --git a/pym/repoman/main.py b/pym/repoman/main.py
index 158323e..9e2ba76 100755
--- a/pym/repoman/main.py
+++ b/pym/repoman/main.py
@@ -67,6 +67,7 @@ from repoman.argparser import parse_args
 from repoman.checks.ebuilds.checks import run_checks, checks_init
 from repoman.checks.ebuilds.thirdpartymirrors import ThirdPartyMirrors
 from repoman.checks.herds.herdbase import make_herd_base
+from repoman.ebuild import Ebuild
 from repoman.errors import err
 from repoman.metadata import (metadata_xml_encoding, metadata_doctype_name,
 	metadata_dtd_uri, metadata_xml_declaration)
@@ -806,22 +807,16 @@ for x in effective_scanlist:
 	used_useflags = set()
 
 	for y in ebuildlist:
-		relative_path = os.path.join(x, y + ".ebuild")
-		full_path = os.path.join(repo_settings.repodir, relative_path)
-		ebuild_path = y + ".ebuild"
-		if repolevel < 3:
-			ebuild_path = os.path.join(pkgdir, ebuild_path)
-		if repolevel < 2:
-			ebuild_path = os.path.join(catdir, ebuild_path)
-		ebuild_path = os.path.join(".", ebuild_path)
+##################
+		ebuild = Ebuild(repo_settings, repolevel, pkgdir, catdir, vcs_settings, x, y)
+##################
+
 		if check_changelog and not changelog_modified \
-			and ebuild_path in changed.new_ebuilds:
+			and ebuild.ebuild_path in changed.new_ebuilds:
 			stats['changelog.ebuildadded'] += 1
-			fails['changelog.ebuildadded'].append(relative_path)
+			fails['changelog.ebuildadded'].append(ebuild.relative_path)
 
-		vcs_settings.vcs_is_cvs_or_svn_or_bzr = vcs_settings.vcs in ("cvs", "svn", "bzr")
-		check_ebuild_really_notadded = check_ebuild_notadded and y not in eadded
-		if vcs_settings.vcs_is_cvs_or_svn_or_bzr and check_ebuild_really_notadded:
+		if ebuild.untracked(check_ebuild_notadded, y, eadded):
 			# ebuild not added to vcs
 			stats["ebuild.notadded"] += 1
 			fails["ebuild.notadded"].append(x + "/" + y + ".ebuild")
@@ -850,7 +845,7 @@ for x in effective_scanlist:
 			for k, msgs in pkg.invalid.items():
 				for msg in msgs:
 					stats[k] += 1
-					fails[k].append("%s: %s" % (relative_path, msg))
+					fails[k].append("%s: %s" % (ebuild.relative_path, msg))
 			continue
 
 		myaux = pkg._metadata
@@ -861,12 +856,12 @@ for x in effective_scanlist:
 		if repo_settings.repo_config.eapi_is_banned(eapi):
 			stats["repo.eapi.banned"] += 1
 			fails["repo.eapi.banned"].append(
-				"%s: %s" % (relative_path, eapi))
+				"%s: %s" % (ebuild.relative_path, eapi))
 
 		elif repo_settings.repo_config.eapi_is_deprecated(eapi):
 			stats["repo.eapi.deprecated"] += 1
 			fails["repo.eapi.deprecated"].append(
-				"%s: %s" % (relative_path, eapi))
+				"%s: %s" % (ebuild.relative_path, eapi))
 
 		for k, v in myaux.items():
 			if not isinstance(v, basestring):
@@ -877,18 +872,18 @@ for x in effective_scanlist:
 				fails["variable.invalidchar"].append(
 					"%s: %s variable contains non-ASCII "
 					"character at position %s" %
-					(relative_path, k, m.start() + 1))
+					(ebuild.relative_path, k, m.start() + 1))
 
 		if not src_uri_error:
 			#######################
 			thirdparty = ThirdPartyMirrors(repoman_settings)
-			thirdparty.check(myaux, relative_path)
+			thirdparty.check(myaux, ebuild.relative_path)
 			stats["SRC_URI.mirror"] = thirdparty.stats
 			fails["SRC_URI.mirror"] = thirdparty.fails
 			#######################
 		if myaux.get("PROVIDE"):
 			stats["virtual.oldstyle"] += 1
-			fails["virtual.oldstyle"].append(relative_path)
+			fails["virtual.oldstyle"].append(ebuild.relative_path)
 
 		for pos, missing_var in enumerate(missingvars):
 			if not myaux.get(missing_var):
@@ -906,20 +901,20 @@ for x in effective_scanlist:
 				if myaux.get(var):
 					myqakey = var + ".virtual"
 					stats[myqakey] += 1
-					fails[myqakey].append(relative_path)
+					fails[myqakey].append(ebuild.relative_path)
 
 		if myaux['DESCRIPTION'][-1:] in ['.']:
 			stats['DESCRIPTION.punctuation'] += 1
 			fails['DESCRIPTION.punctuation'].append(
 				"%s: DESCRIPTION ends with a '%s' character"
-				% (relative_path, myaux['DESCRIPTION'][-1:]))
+				% (ebuild.relative_path, myaux['DESCRIPTION'][-1:]))
 
 		# 14 is the length of DESCRIPTION=""
 		if len(myaux['DESCRIPTION']) > max_desc_len:
 			stats['DESCRIPTION.toolong'] += 1
 			fails['DESCRIPTION.toolong'].append(
 				"%s: DESCRIPTION is %d characters (max %d)" %
-				(relative_path, len(myaux['DESCRIPTION']), max_desc_len))
+				(ebuild.relative_path, len(myaux['DESCRIPTION']), max_desc_len))
 
 		keywords = myaux["KEYWORDS"].split()
 		stable_keywords = []
@@ -928,7 +923,7 @@ for x in effective_scanlist:
 				not keyword.startswith("-"):
 				stable_keywords.append(keyword)
 		if stable_keywords:
-			if ebuild_path in changed.new_ebuilds and catdir != "virtual":
+			if ebuild.ebuild_path in changed.new_ebuilds and catdir != "virtual":
 				stable_keywords.sort()
 				stats["KEYWORDS.stable"] += 1
 				fails["KEYWORDS.stable"].append(
@@ -947,7 +942,7 @@ for x in effective_scanlist:
 				stats["KEYWORDS.dropped"] += 1
 				fails["KEYWORDS.dropped"].append(
 					"%s: %s" %
-					(relative_path, " ".join(sorted(dropped_keywords))))
+					(ebuild.relative_path, " ".join(sorted(dropped_keywords))))
 
 		slot_keywords[pkg.slot].update(ebuild_archs)
 
@@ -984,7 +979,7 @@ for x in effective_scanlist:
 
 			if keywords and not has_global_mask(pkg):
 				stats["LIVEVCS.unmasked"] += 1
-				fails["LIVEVCS.unmasked"].append(relative_path)
+				fails["LIVEVCS.unmasked"].append(ebuild.relative_path)
 
 		if options.ignore_arches:
 			arches = [[
@@ -1054,7 +1049,7 @@ for x in effective_scanlist:
 					stats[mytype + '.suspect'] += 1
 					fails[mytype + '.suspect'].append(
 						"%s: 'test?' USE conditional in %s" %
-						(relative_path, mytype))
+						(ebuild.relative_path, mytype))
 
 				for atom in atoms:
 					if atom == "||":
@@ -1075,7 +1070,7 @@ for x in effective_scanlist:
 							atom.cp in suspect_virtual:
 							stats['virtual.suspect'] += 1
 							fails['virtual.suspect'].append(
-								relative_path +
+								ebuild.relative_path +
 								": %s: consider using '%s' instead of '%s'" %
 								(mytype, suspect_virtual[atom.cp], atom))
 
@@ -1084,7 +1079,7 @@ for x in effective_scanlist:
 						not inherited_java_eclass and \
 						atom.cp == "virtual/jdk":
 						stats['java.eclassesnotused'] += 1
-						fails['java.eclassesnotused'].append(relative_path)
+						fails['java.eclassesnotused'].append(ebuild.relative_path)
 					elif buildtime and \
 						not is_blocker and \
 						not inherited_wxwidgets_eclass and \
@@ -1092,13 +1087,13 @@ for x in effective_scanlist:
 						stats['wxwidgets.eclassnotused'] += 1
 						fails['wxwidgets.eclassnotused'].append(
 							"%s: %ss on x11-libs/wxGTK without inheriting"
-							" wxwidgets.eclass" % (relative_path, mytype))
+							" wxwidgets.eclass" % (ebuild.relative_path, mytype))
 					elif runtime:
 						if not is_blocker and \
 							atom.cp in suspect_rdepend:
 							stats[mytype + '.suspect'] += 1
 							fails[mytype + '.suspect'].append(
-								relative_path + ": '%s'" % atom)
+								ebuild.relative_path + ": '%s'" % atom)
 
 					if atom.operator == "~" and \
 						portage.versions.catpkgsplit(atom.cpv)[3] != "r0":
@@ -1107,7 +1102,7 @@ for x in effective_scanlist:
 						fails[qacat].append(
 							"%s: %s uses the ~ operator"
 							" with a non-zero revision: '%s'" %
-							(relative_path, mytype, atom))
+							(ebuild.relative_path, mytype, atom))
 
 			type_list.extend([mytype] * (len(badsyntax) - len(type_list)))
 
@@ -1117,7 +1112,7 @@ for x in effective_scanlist:
 			else:
 				qacat = m + ".syntax"
 			stats[qacat] += 1
-			fails[qacat].append("%s: %s: %s" % (relative_path, m, b))
+			fails[qacat].append("%s: %s: %s" % (ebuild.relative_path, m, b))
 
 		badlicsyntax = len([z for z in type_list if z == "LICENSE"])
 		badprovsyntax = len([z for z in type_list if z == "PROVIDE"])
@@ -1147,7 +1142,7 @@ for x in effective_scanlist:
 				fails['EAPI.incompatible'].append(
 					"%s: IUSE defaults"
 					" not supported with EAPI='%s': '%s'" %
-					(relative_path, eapi, myflag))
+					(ebuild.relative_path, eapi, myflag))
 
 		for mypos in range(len(myuse)):
 			stats["IUSE.invalid"] += 1
@@ -1163,7 +1158,7 @@ for x in effective_scanlist:
 				for myruby in ruby_intersection:
 					stats["IUSE.rubydeprecated"] += 1
 					fails["IUSE.rubydeprecated"].append(
-						(relative_path + ": Deprecated ruby target: %s") % myruby)
+						(ebuild.relative_path + ": Deprecated ruby target: %s") % myruby)
 
 		# license checks
 		if not badlicsyntax:
@@ -1180,7 +1175,7 @@ for x in effective_scanlist:
 					fails["LICENSE.invalid"].append(x + "/" + y + ".ebuild: %s" % lic)
 				elif lic in liclist_deprecated:
 					stats["LICENSE.deprecated"] += 1
-					fails["LICENSE.deprecated"].append("%s: %s" % (relative_path, lic))
+					fails["LICENSE.deprecated"].append("%s: %s" % (ebuild.relative_path, lic))
 
 		# keyword checks
 		myuse = myaux["KEYWORDS"].split()
@@ -1208,7 +1203,7 @@ for x in effective_scanlist:
 		except portage.exception.InvalidDependString as e:
 			stats["RESTRICT.syntax"] += 1
 			fails["RESTRICT.syntax"].append(
-				"%s: RESTRICT: %s" % (relative_path, e))
+				"%s: RESTRICT: %s" % (ebuild.relative_path, e))
 			del e
 		if myrestrict:
 			myrestrict = set(myrestrict)
@@ -1224,33 +1219,32 @@ for x in effective_scanlist:
 				stats['EAPI.incompatible'] += 1
 				fails['EAPI.incompatible'].append(
 					"%s: REQUIRED_USE"
-					" not supported with EAPI='%s'" % (relative_path, eapi,))
+					" not supported with EAPI='%s'" % (ebuild.relative_path, eapi,))
 			try:
 				portage.dep.check_required_use(
 					required_use, (), pkg.iuse.is_valid_flag, eapi=eapi)
 			except portage.exception.InvalidDependString as e:
 				stats["REQUIRED_USE.syntax"] += 1
 				fails["REQUIRED_USE.syntax"].append(
-					"%s: REQUIRED_USE: %s" % (relative_path, e))
+					"%s: REQUIRED_USE: %s" % (ebuild.relative_path, e))
 				del e
 
 		# Syntax Checks
-		relative_path = os.path.join(x, y + ".ebuild")
-		full_path = os.path.join(repo_settings.repodir, relative_path)
+
 		if not vcs_settings.vcs_preserves_mtime:
-			if ebuild_path not in changed.new_ebuilds and \
-				ebuild_path not in changed.ebuilds:
+			if ebuild.ebuild_path not in changed.new_ebuilds and \
+				ebuild.ebuild_path not in changed.ebuilds:
 				pkg.mtime = None
 		try:
 			# All ebuilds should have utf_8 encoding.
 			f = io.open(
 				_unicode_encode(
-					full_path, encoding=_encodings['fs'], errors='strict'),
+					ebuild.full_path, encoding=_encodings['fs'], errors='strict'),
 				mode='r', encoding=_encodings['repo.content'])
 			try:
 				for check_name, e in run_checks(f, pkg):
 					stats[check_name] += 1
-					fails[check_name].append(relative_path + ': %s' % e)
+					fails[check_name].append(ebuild.relative_path + ': %s' % e)
 			finally:
 				f.close()
 		except UnicodeDecodeError:
@@ -1410,13 +1404,13 @@ for x in effective_scanlist:
 							stats[mykey] += 1
 							fails[mykey].append(
 								"%s: %s: %s(%s) %s" % (
-									relative_path, mytype, keyword, prof,
+									ebuild.relative_path, mytype, keyword, prof,
 									repr(atoms)))
 					else:
 						stats[mykey] += 1
 						fails[mykey].append(
 							"%s: %s: %s(%s) %s" % (
-								relative_path, mytype, keyword, prof,
+								ebuild.relative_path, mytype, keyword, prof,
 								repr(atoms)))
 
 		if not baddepsyntax and unknown_pkgs:
@@ -1427,7 +1421,7 @@ for x in effective_scanlist:
 				stats["dependency.unknown"] += 1
 				fails["dependency.unknown"].append(
 					"%s: %s: %s" % (
-						relative_path, mytype, ", ".join(sorted(atoms))))
+						ebuild.relative_path, mytype, ", ".join(sorted(atoms))))
 
 	# check if there are unused local USE-descriptions in metadata.xml
 	# (unless there are any invalids, to avoid noise)


             reply	other threads:[~2014-05-30 13:03 UTC|newest]

Thread overview: 216+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-30 13:03 Brian Dolbec [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-05-03  9:33 [gentoo-commits] proj/portage:repoman commit in: pym/repoman/ Brian Dolbec
2016-04-29 17:24 [gentoo-commits] proj/portage:master " Brian Dolbec
2016-04-28 15:05 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2016-04-29 17:24 [gentoo-commits] proj/portage:master " Brian Dolbec
2016-04-28 15:05 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2016-04-29 17:24 [gentoo-commits] proj/portage:master " Brian Dolbec
2016-04-26 14:47 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2016-04-28 15:05 Brian Dolbec
2016-04-27  5:22 Brian Dolbec
2016-04-27  5:22 Brian Dolbec
2016-04-27  5:22 Brian Dolbec
2016-04-26 18:08 Zac Medico
2016-04-25 15:32 Brian Dolbec
2016-04-25 15:32 Brian Dolbec
2016-04-25 15:32 Brian Dolbec
2016-04-21 16:54 Brian Dolbec
2016-04-21 16:54 Brian Dolbec
2016-04-21 16:54 Brian Dolbec
2016-04-21 16:54 Brian Dolbec
2016-04-17 15:42 Brian Dolbec
2016-04-16 20:00 Zac Medico
2016-03-15 19:00 Brian Dolbec
2016-03-12 18:10 Brian Dolbec
2016-03-12 18:10 Brian Dolbec
2016-03-12 18:10 Brian Dolbec
2016-03-11  0:41 Brian Dolbec
2016-03-11  0:41 Brian Dolbec
2016-03-11  0:41 Brian Dolbec
2016-03-07 21:53 Brian Dolbec
2016-03-07 21:53 Brian Dolbec
2016-03-07 21:53 Brian Dolbec
2016-02-01  7:55 Zac Medico
2016-02-01  7:21 Zac Medico
2016-01-31 20:03 Brian Dolbec
2016-01-31 20:03 Brian Dolbec
2016-01-31 20:03 Brian Dolbec
2016-01-30  8:00 Brian Dolbec
2016-01-30  8:00 Brian Dolbec
2016-01-30  8:00 Brian Dolbec
2016-01-30  6:58 Brian Dolbec
2016-01-30  6:58 Brian Dolbec
2016-01-30  6:58 Brian Dolbec
2016-01-29  5:01 Brian Dolbec
2016-01-29  5:01 Brian Dolbec
2016-01-29  5:01 Brian Dolbec
2016-01-27 23:15 Brian Dolbec
2016-01-27 23:15 Brian Dolbec
2016-01-27 23:15 Brian Dolbec
2016-01-23  1:42 Brian Dolbec
2016-01-23  1:42 Brian Dolbec
2016-01-23  1:42 Brian Dolbec
2016-01-22 20:55 Brian Dolbec
2016-01-22 20:55 Brian Dolbec
2016-01-22 20:55 Brian Dolbec
2016-01-21 19:42 Brian Dolbec
2016-01-21 19:42 Brian Dolbec
2016-01-21 19:15 Brian Dolbec
2016-01-21 18:30 Brian Dolbec
2016-01-21 18:30 Brian Dolbec
2016-01-18 19:23 Brian Dolbec
2016-01-18 19:23 Brian Dolbec
2016-01-11  8:01 Brian Dolbec
2016-01-11  8:01 Brian Dolbec
2016-01-11  6:31 Brian Dolbec
2016-01-11  6:31 Brian Dolbec
2016-01-11  6:31 Brian Dolbec
2016-01-10 20:17 Brian Dolbec
2016-01-10 20:17 Brian Dolbec
2016-01-10 20:17 Brian Dolbec
2016-01-10  3:26 Brian Dolbec
2016-01-10  3:26 Brian Dolbec
2016-01-10  3:26 Brian Dolbec
2016-01-06  4:21 Brian Dolbec
2016-01-06  4:21 Brian Dolbec
2015-12-30 23:38 Brian Dolbec
2015-09-21 23:51 [gentoo-commits] proj/portage:master " Brian Dolbec
2015-09-21 23:47 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2015-09-21 23:51 [gentoo-commits] proj/portage:master " Brian Dolbec
2015-09-21 23:47 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2015-09-21 23:51 [gentoo-commits] proj/portage:master " Brian Dolbec
2015-09-21 23:47 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2015-09-21 23:51 [gentoo-commits] proj/portage:master " Brian Dolbec
2015-09-21 23:47 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2015-09-21 23:51 [gentoo-commits] proj/portage:master " Brian Dolbec
2015-09-21 23:47 ` [gentoo-commits] proj/portage:repoman " Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-21 23:47 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  2:06 Brian Dolbec
2015-09-20  0:20 Brian Dolbec
2015-09-19 17:32 Brian Dolbec
2015-09-19 16:48 Brian Dolbec
2015-09-19 16:28 Brian Dolbec
2015-09-19 16:28 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  4:36 Brian Dolbec
2015-09-19  1:22 Brian Dolbec
2015-09-19  1:22 Brian Dolbec
2015-09-17 18:58 Brian Dolbec
2015-09-17 18:58 Brian Dolbec
2015-09-17 15:32 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  4:51 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  3:08 Brian Dolbec
2015-09-17  2:45 Brian Dolbec
2015-09-17  2:45 Brian Dolbec
2015-09-17  2:45 Brian Dolbec
2015-09-05 21:48 Brian Dolbec
2015-09-05 21:48 Brian Dolbec
2015-09-05 21:48 Brian Dolbec
2015-09-05 21:48 Brian Dolbec
2015-09-05 21:48 Brian Dolbec
2015-09-05 21:48 Brian Dolbec
2015-09-05 21:27 Brian Dolbec
2015-09-05 21:27 Brian Dolbec
2015-09-05 21:27 Brian Dolbec
2015-09-05 21:27 Brian Dolbec
2015-09-05 21:27 Brian Dolbec
2015-09-05 21:27 Brian Dolbec
2015-08-11 23:54 Brian Dolbec
2015-08-11 23:54 Brian Dolbec
2015-08-11 23:54 Brian Dolbec
2015-08-11 23:54 Brian Dolbec
2015-08-11 23:54 Brian Dolbec
2015-08-11 23:54 Brian Dolbec
2015-08-10 14:45 Michał Górny
2015-08-10 14:45 Michał Górny
2015-08-10 14:45 Michał Górny
2015-08-10 14:45 Michał Górny
2015-08-10 14:45 Michał Górny
2015-08-10 14:45 Michał Górny
2015-08-10 13:44 Brian Dolbec
2015-08-10 13:44 Brian Dolbec
2015-08-10 13:44 Brian Dolbec
2015-08-10 13:44 Brian Dolbec
2015-08-10 13:44 Brian Dolbec
2015-08-10 13:44 Brian Dolbec
2014-11-17  2:08 Brian Dolbec
2014-11-17  0:55 Brian Dolbec
2014-11-17  0:55 Brian Dolbec
2014-11-17  0:55 Brian Dolbec
2014-11-17  0:55 Brian Dolbec
2014-11-17  0:55 Brian Dolbec
2014-10-01 23:46 Brian Dolbec
2014-10-01 23:46 Brian Dolbec
2014-10-01 23:46 Brian Dolbec
2014-10-01 23:46 Brian Dolbec
2014-10-01 23:46 Brian Dolbec
2014-10-01 23:02 Brian Dolbec
2014-10-01 23:02 Brian Dolbec
2014-10-01 23:02 Brian Dolbec
2014-10-01 23:02 Brian Dolbec
2014-10-01 23:02 Brian Dolbec
2014-06-03 19:33 Brian Dolbec
2014-06-03 18:15 Brian Dolbec
2014-06-03 18:15 Brian Dolbec
2014-06-03 11:29 Tom Wijsman
2014-06-02 17:01 Tom Wijsman
2014-06-02 15:44 Brian Dolbec
2014-06-02 15:44 Brian Dolbec
2014-06-02 15:44 Brian Dolbec
2014-06-02 15:01 Tom Wijsman
2014-06-02 14:24 Brian Dolbec
2014-06-02 14:11 Tom Wijsman
2014-06-02  1:10 Brian Dolbec
2014-06-02  1:10 Brian Dolbec
2014-05-30 13:03 Brian Dolbec
2014-05-30 13:03 Brian Dolbec
2014-05-27  6:04 Brian Dolbec
2014-05-27  6:04 Brian Dolbec
2014-05-27  6:04 Brian Dolbec
2014-05-27  6:04 Brian Dolbec
2014-05-27  5:04 Brian Dolbec
2014-05-27  5:04 Brian Dolbec
2014-05-27  5:04 Brian Dolbec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1401211879.71f8e844940eba8ba73d833e9e786a7ea65f2bfd.dol-sen@gentoo \
    --to=brian.dolbec@gmail.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox