Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
aede-policy(1)							aede-policy(1)

	aede-policy - check change set is ready	for aede

	aede-policy [ option...	 ][ policy...  ]
	aede-policy -Help
	aede-policy -VERSion
	aede-policy -List

	The aede-policy	command	is used	to verify that a change	set is ready
	to end development.  This is intended to be used by the	develop_end_-
	policy_command field of	the project configuration file.
		develop_end_policy_command =
		    "aede-policy -p $project -c	$change	all";
	If any of the policies should fail, the	aede-policy command will fail
	with an	exit status of 1.  This, in turn, will cause the aede(1) com-
	mand to	leave the change in the	being developed	state.

	Note that the aede(1) command sets the appropriate environment vari-
	ables, so the -Project and -Change options are rarely necessary.

	If no policies appear on the command line, the aede-policy project
	specific attribute will	be checked.  If	it exists, it contains a list
	of space separated policy names.

	The aede-policy(1) command expects to be invoked on changes in the
	being_developed	state.	If invoked for a change	in the being_-
	integrated state (common if invoked as part of the build) it will
	silently do nothing.  All other	change states will result in a fatal
	error message.

	There are a range of policies that can be selected.

	all	Check all of the copyright, crlf, description and printable

		This policy checks for C comments in C++ files,	or C++ com-
		ments in C files.  The forms of	the comments give sublimial
		hints to the reader as to what language	is being read.	Mis-
		matched	comments make the code subtly harder to	read and thus
		harder to maintain.

		This policy checks that	each file in the change	set contains a
		copyright notice of the	form
			Copyright (C) year something
		where year is the current year (you can	have a range of	years,
		too).  Binary files are	ignored.  The something	part is	either
		the project specific copyright-owner attribute,	or the execut-
		ing users full name.

			Change sets marked with	a foreign-copyright=true at-
			tribute	are ignored, as	are files similarly marked.

	crlf	This policy checks that	all files are using UNIX line termina-
		tion (NL), not DOS line	termination (CRLF).  Binary files are

		This policy checks that	the change set brief_description and
		description attributes have been updated to something other
		than the defaults.

		This policy checks that	hypen in roff sources (such as man(1)
		pages) that contain unescaped minus or hyphen characters.
		This is	one of the more	annoying warnings produced by lin-
		tian(1)	when building Debian packages.

			This check is not applied to files carrying a aede-
			policy-escape-hyphen=false attribute.

		This policy checks that	the FSF	address, if present in source
		files, is up-to-date.  This is useful for Free Software


		This policy checks files that cite the GNU GPL in their	file
		headers, to be sure they contain the correct version of	the
		GNU GPL.  Defaults to version 3	if no version number speci-


		This policy checks that	files have this	maximum	line length.
		Defaults to 80 if no width is specified.  It understands
		vim(1) mode lines, particularly	for the	"tabsize" setting.

		Can be overridden per file using the aede-policy-line-length
		file attribute.

		This policy requires that each installable program be accompa-
		nied by	a man(1) manual	page.

		This policy requires that there	be no fmerge(1)	conflict lines
		present	in any source files.  The name comes from the name of
		the package containing this tool: fhist.

		This policy requires that there	be no merge(1) conflict	lines
		present	in any source files.  The name comes from the name of
		the package containing this tool: rcs.

		This policy checks that	files have no tabs characters in them.
		This is	useful when a team of developers all use different ed-
		itors and different tab	stops.	By only	using spaces, the code
		is presented to	all developers the same	way.

			This check is not applied to change sets with a	for-
			eign-copyright=true attribute, because you have	little
			control	over them (change the tabs in a	later change
			set, if	at all).

			This check is not applied to files which are called
			Makefile or similar, and it is not applied to files
			carrying a aede-policy-tabs-allowed=true attribute.

		This policy checks that	each file in the change	set contains
		only printable text characters and white space.

		The content-type file attribute	is taken into account; if
		there is no content-type file attribute, or there is no
		charset	specified by the content-type file attribute, plain
		7-bit ASCII text is assumed.

		This policy checks that	C and C++ identifiers reserved by the
		ANSI C and C++ Standards are used.  See	section	2.10 of	both
		standards.  Only C and C++ source files	are checked.

	text	This policy checks that	each file in the change	set contains
		only text, although international character sets are accept-
		able.  This is basically a test	for NUL	characters, because
		everything else	could be part of a valid character encoding of
		some international character set.

		This policy checks the version-info rules for shared li-
		braries, as laid out by	the libtool(1) manual, and required by
		the Debian Policy Manual.  This	is done	by examining the ac-
		tual shared libraries, the one being built, and	the one	in the
		ancestor baseline (i.e.	the one	to be replaced)	to confirm
		that the version-info strings conform.	By examining the ac-
		tual shared libraries, an objective view of what has been
		added, modified	and removed can	be obtained.

		The shared library to examine is obtained from a project_spe-
		cific attribute:

			This is	set to the baseline-relative name of the
			shared library file.  You don't	have to	add the	secret
			libtool(1) ".libs" directory, this policy can work
			that out for itself.

			This is	the string which aemakegen(1) would use	if it
			were invoked.  This is also checked.  If you aren't
			using aemakegen(1), it is a good idea to set this at-
			tribute	anyway and access it via aesub(1) from within
			your build system.

		This policy requires nm(1)'s --dynamic option to work cor-
		rectly on the .so file (it is part of the GNU binutils pack-

		This policy checks that	each file in the change	set contains
		contains a vim(1) mode line.  Binary files are ignored.

			Set this attribute to false on files for which this is
			not to be checked.

		This policy checks that	there is no white space	on the ends of
		lines, that there are no blank lines at	the ends of files.

	If no policy is	specified, only	the description	policy will be

	The following options are understood:

	-Change	number
		This option may	be used	to specify a particular	change within
		a project.  See	aegis(1) for a complete	description of this

		This option may	be used	to obtain more information about how
		to use the aede-policy program.

	-List	List all of the	available validations.

	-Project name
		This option may	be used	to select the project of interest.
		When no	-Project option	is specified, the AEGIS_PROJECT	envi-
		ronment	variable is consulted.	If that	does not exist,	the
		user's $HOME/.aegisrc file is examined for a default project
		field (see aeuconf(5) for more information).  If that does not
		exist, when the	user is	only working on	changes	within a sin-
		gle project, the project name defaults to that project.	 Oth-
		erwise,	it is an error.

	See also aegis(1) for options common to	all aegis commands.

	All options may	be abbreviated;	the abbreviation is documented as the
	upper case letters, all	lower case letters and underscores (_) are op-
	tional.	 You must use consecutive sequences of optional	letters.

	All options are	case insensitive, you may type them in upper case or
	lower case or a	combination of both, case is not important.

	For example: the arguments "-project", "-PROJ" and "-p"	are all	inter-
	preted to mean the -Project option.  The argument "-prj" will not be
	understood, because consecutive	optional characters were not supplied.

	Options	and other command line arguments may be	mixed arbitrarily on
	the command line, after	the function selectors.

	The GNU	long option names are understood.  Since all option names for
	aede-policy are	long, this means ignoring the extra leading '-'.  The
	"--option=value" convention is also understood.

	The aede-policy	command	will exit with a status	of 1 on	any error.
	The aede-policy	command	will only exit with a status of	0 if there are
	no errors.

	See aegis(1) for a list	of environment variables which may affect this
	command.  See aepconf(5) for the project configuration file's
	project_specific field for how to set environment variables for	all
	commands executed by Aegis.

	aede(1)	end development	of a change

		project	configuration file

	aede-policy version 4.25.D510
	Copyright (C) 1991, 1992, 1993,	1994, 1995, 1996, 1997,	1998, 1999,
	2000, 2001, 2002, 2003,	2004, 2005, 2006, 2007,	2008, 2009, 2010,
	2011, 2012 Peter Miller

	The aede-policy	program	comes with ABSOLUTELY NO WARRANTY; for details
	use the	'aede-policy -VERSion License' command.	 This is free software
	and you	are welcome to redistribute it under certain conditions; for
	details	use the	'aede-policy -VERSion License' command.

	Peter Miller   E-Mail:
	/\/\*		  WWW:

Reference Manual		     Aegis			aede-policy(1)


Want to link to this manual page? Use this URL:

home | help