# ChangeLog for sec-policy/selinux-gpm
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sec-policy/selinux-gpm/ChangeLog,v 1.84 2015/08/04 17:42:02 perfinion Exp $

*selinux-gpm-2.20141203-r8 (04 Aug 2015)

  04 Aug 2015; Jason Zaman <perfinion@gentoo.org>
  +selinux-gpm-2.20141203-r8.ebuild:
  Release of 2.20141203-r8

  04 Aug 2015; Jason Zaman <perfinion@gentoo.org>
  selinux-gpm-2.20141203-r7.ebuild:
  Stabilize policy 2.20141203-r7

  02 Jul 2015; Jason Zaman <perfinion@gentoo.org>
  selinux-gpm-2.20141203-r6.ebuild:
  Stabilize policy 2.20141203-r6

*selinux-gpm-2.20141203-r7 (02 Jul 2015)

  02 Jul 2015; Jason Zaman <perfinion@gentoo.org>
  +selinux-gpm-2.20141203-r7.ebuild:
  Release of 2.20141203-r7

  05 Jun 2015; Jason Zaman <perfinion@gentoo.org>
  selinux-gpm-2.20141203-r5.ebuild:
  Stabilize policy 2.20141203-r5

*selinux-gpm-2.20141203-r6 (05 Jun 2015)

  05 Jun 2015; Jason Zaman <perfinion@gentoo.org>
  +selinux-gpm-2.20141203-r6.ebuild:
  Release of 2.20141203-r6

  15 Apr 2015; Jason Zaman <perfinion@gentoo.org>
  selinux-gpm-2.20141203-r4.ebuild:
  Stabilize policy 2.20141203-r4

*selinux-gpm-2.20141203-r5 (15 Apr 2015)

  15 Apr 2015; Jason Zaman <perfinion@gentoo.org>
  +selinux-gpm-2.20141203-r5.ebuild:
  Release of 2.20141203-r5

  22 Mar 2015; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20141203-r3.ebuild:
  Stabilize 2.20141203-r3 policies

*selinux-gpm-2.20141203-r4 (22 Mar 2015)

  22 Mar 2015; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20141203-r4.ebuild, selinux-gpm-9999.ebuild:
  Release of 2.20141203-r4

*selinux-gpm-2.20141203-r3 (29 Jan 2015)

  29 Jan 2015; Jason Zaman <perfinion@gentoo.org>
  +selinux-gpm-2.20141203-r3.ebuild, selinux-gpm-2.20141203-r2.ebuild:
  Release of 2.20141203-r3, stable 2.20141203-r2

  21 Dec 2014; Sven Vermeulen <swift@gentoo.org>
  -selinux-gpm-2.20140311-r1.ebuild, -selinux-gpm-2.20140311-r2.ebuild,
  -selinux-gpm-2.20140311-r3.ebuild, -selinux-gpm-2.20140311-r4.ebuild:
  Remove old ebuilds

  21 Dec 2014; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20141203-r1.ebuild:
  Stabilize 2.20141203-r1

*selinux-gpm-2.20141203-r2 (21 Dec 2014)

  21 Dec 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20141203-r2.ebuild:
  Release of 2.20141203-r2

  07 Dec 2014; Jason Zaman <perfinion@gentoo.org>
  selinux-gpm-2.20140311-r7.ebuild:
  Stabilize 2.20140311-r7

*selinux-gpm-2.20141203-r1 (07 Dec 2014)

  07 Dec 2014; Jason Zaman <perfinion@gentoo.org>
  +selinux-gpm-2.20141203-r1.ebuild:
  Release of 2.20141203-r1

  01 Nov 2014; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20140311-r6.ebuild:
  Stabilize rev 6

*selinux-gpm-2.20140311-r7 (01 Nov 2014)

  01 Nov 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20140311-r7.ebuild:
  Bump revision r7 of SELinux policies

  01 Nov 2014; Sven Vermeulen <swift@gentoo.org> selinux-gpm-9999.ebuild:
  Add KEYWORDS logic in -9999 ebuilds for ease of copying

  22 Aug 2014; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20140311-r5.ebuild:
  Stabilize r5 policies

*selinux-gpm-2.20140311-r6 (21 Aug 2014)

  21 Aug 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20140311-r6.ebuild:
  Release of 2.20140311-r6

*selinux-gpm-2.20140311-r5 (09 Aug 2014)

  09 Aug 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20140311-r5.ebuild:
  Bump towards r5 (fixes duplicate context for hiawatha)

  08 Aug 2014; Sven Vermeulen <swift@gentoo.org> selinux-gpm-9999.ebuild:
  Make 9999 ebuilds EAPI=5 and transform to make master for version bumps

  05 Aug 2014; Sven Vermeulen <swift@gentoo.org>
  -selinux-gpm-2.20130424-r1.ebuild, -selinux-gpm-2.20130424-r2.ebuild,
  -selinux-gpm-2.20130424-r3.ebuild, -selinux-gpm-2.20130424-r4.ebuild:
  Remove obsolete ebuilds

*selinux-gpm-2.20140311-r4 (01 Aug 2014)

  01 Aug 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20140311-r4.ebuild, selinux-gpm-2.20140311-r3.ebuild:
  Stabilization of r3, and make r4 available for testing

  29 May 2014; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20140311-r2.ebuild:
  Stabilize 2.20140311-r2

*selinux-gpm-2.20140311-r3 (29 May 2014)

  29 May 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20140311-r3.ebuild:
  Bump to 2.20140311-r3

  19 Apr 2014; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20140311-r1.ebuild:
  Stabilize r1 policies

*selinux-gpm-2.20140311-r2 (19 Apr 2014)

  19 Apr 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20140311-r2.ebuild:
  Release of 2.20140311-r2

  24 Mar 2014; Sven Vermeulen <swift@gentoo.org>
  -selinux-gpm-2.20120725-r11.ebuild, -selinux-gpm-2.20120725-r12.ebuild,
  -selinux-gpm-2.20120725-r5.ebuild, -selinux-gpm-2.20120725-r7.ebuild,
  -selinux-gpm-2.20120725-r8.ebuild, -selinux-gpm-2.20120725-r9.ebuild:
  Remove older SELinux policy ebuilds

*selinux-gpm-2.20140311-r1 (21 Mar 2014)

  21 Mar 2014; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20140311-r1.ebuild:
  New upstream refpolicy release

  12 Jan 2014; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20130424-r4.ebuild:
  Stabilize 2.20130424-r4

*selinux-gpm-2.20130424-r4 (11 Dec 2013)

  11 Dec 2013; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20130424-r4.ebuild:
  Release of 2.20130424-r4

*selinux-gpm-2.20130424-r3 (26 Sep 2013)

  26 Sep 2013; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20130424-r3.ebuild:
  Release 2.20130424-r3, fixing bugs #480628, #482196, #475432, #485304, #480870
  and #428322

  15 Aug 2013; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20130424-r2.ebuild:
  Stabilize r2 of policies

*selinux-gpm-2.20130424-r2 (20 Jul 2013)

  20 Jul 2013; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20130424-r2.ebuild:
  Pushing out rev 2

  16 Jun 2013; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20130424-r1.ebuild:
  Stabilize 20130424 policies

*selinux-gpm-2.20130424-r1 (06 May 2013)

  06 May 2013; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20130424-r1.ebuild:
  Adding 20130424 release

  29 Mar 2013; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20120725-r12.ebuild:
  Stabilize r12, fixes 455080, 453724, 461880, 453722, 452166, 458876, 457618,
  456910, 456194, 453990 and 460152

*selinux-gpm-2.20120725-r12 (09 Mar 2013)

  09 Mar 2013; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20120725-r12.ebuild:
  Pushing out rev 12

  23 Feb 2013; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20120725-r11.ebuild:
  Stabilization

*selinux-gpm-2.20120725-r11 (26 Jan 2013)

  26 Jan 2013; Sven Vermeulen <swift@gentoo.org>
  +selinux-gpm-2.20120725-r11.ebuild:
  Bumping selinux-gpm to revision 11

  13 Jan 2013; Sven Vermeulen <swift@gentoo.org>
  selinux-gpm-2.20120725-r9.ebuild:
  Stabilizing r9

*selinux-gpm-2.20120725-r9 (21 Dec 2012)

  21 Dec 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120725-r9.ebuild:
  Bumping to revision 9

  17 Dec 2012; Sven Vermeulen <swift@gentoo.org> -selinux-gpm-2.20120215-r1.ebuild,
  -selinux-gpm-2.20120215-r14.ebuild, -selinux-gpm-2.20120215-r15.ebuild,
  -selinux-gpm-2.20120215.ebuild:
  Removing older ebuilds

  13 Dec 2012; Sven Vermeulen <swift@gentoo.org> selinux-gpm-2.20120725-r8.ebuild:
  Stabilization

*selinux-gpm-2.20120725-r8 (03 Dec 2012)

  03 Dec 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120725-r8.ebuild:
  Bumping to revision 8

*selinux-gpm-2.20120725-r7 (18 Nov 2012)

  18 Nov 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120725-r7.ebuild:
  Pushing out rev 7

*selinux-gpm-9999 (13 Oct 2012)

  13 Oct 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-9999.ebuild:
  Adding live ebuild

  04 Oct 2012; Sven Vermeulen <swift@gentoo.org> selinux-gpm-2.20120725-r5.ebuild:
  Stabilization

*selinux-gpm-2.20120725-r5 (21 Sep 2012)

  21 Sep 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120725-r5.ebuild:
  Introducing policy for 2.20120725, rev5

  30 Jul 2012; Sven Vermeulen <swift@gentoo.org> selinux-gpm-2.20120215-r14.ebuild:
  Stabilization of revision 14 of the SELinux policy modules

*selinux-gpm-2.20120215-r15 (26 Jul 2012)

  26 Jul 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120215-r15.ebuild:
  Bump to rev15

*selinux-gpm-2.20120215-r14 (16 Jul 2012)

  16 Jul 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120215-r14.ebuild:
  Bumping to rev14

*selinux-gpm-2.20120215-r1 (27 Jun 2012)

  27 Jun 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120215-r1.ebuild:
  Bump to revision 13

  13 May 2012; Sven Vermeulen <swift@gentoo.org> -selinux-gpm-2.20110726.ebuild:
  Removing deprecated ebuilds (cleanup)

  29 Apr 2012; Sven Vermeulen <swift@gentoo.org> selinux-gpm-2.20120215.ebuild:
  Stabilizing revision 7

*selinux-gpm-2.20120215 (31 Mar 2012)

  31 Mar 2012; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20120215.ebuild:
  Bumping to 2.20120215 policies

  12 Nov 2011; Sven Vermeulen <swift@gentoo.org> -selinux-gpm-2.20101213.ebuild:
  Removing old policies

  23 Oct 2011; Sven Vermeulen <swift@gentoo.org> selinux-gpm-2.20110726.ebuild:
  Stabilization (tracker #384231)

*selinux-gpm-2.20110726 (28 Aug 2011)

  28 Aug 2011; Sven Vermeulen <swift@gentoo.org> +selinux-gpm-2.20110726.ebuild:
  Updating policy builds to refpolicy 20110726

  04 Jun 2011; Anthony G. Basile <blueness@gentoo.org>
  -selinux-gpm-2.20090730.ebuild, -selinux-gpm-2.20091215.ebuild,
  -selinux-gpm-20080525.ebuild:
  Removed deprecated policies

  02 Jun 2011; Anthony G. Basile <blueness@gentoo.org>
  selinux-gpm-2.20101213.ebuild:
  Stable amd64 x86

*selinux-gpm-2.20101213 (05 Feb 2011)

  05 Feb 2011; Anthony G. Basile <blueness@gentoo.org>
  +selinux-gpm-2.20101213.ebuild:
  New upstream policy.

*selinux-gpm-2.20091215 (16 Dec 2009)

  16 Dec 2009; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-2.20091215.ebuild:
  New upstream release.

  14 Aug 2009; Chris PeBenito <pebenito@gentoo.org>
  -selinux-gpm-20070329.ebuild, -selinux-gpm-20070928.ebuild,
  selinux-gpm-20080525.ebuild:
  Mark 20080525 stable, clear old ebuilds.

*selinux-gpm-2.20090730 (03 Aug 2009)

  03 Aug 2009; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-2.20090730.ebuild:
  New upstream release.

  18 Jul 2009; Chris PeBenito <pebenito@gentoo.org>
  selinux-gpm-20070329.ebuild, selinux-gpm-20070928.ebuild,
  selinux-gpm-20080525.ebuild:
  Drop alpha, mips, ppc, sparc selinux support.

*selinux-gpm-20080525 (25 May 2008)

  25 May 2008; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-20080525.ebuild:
  New SVN snapshot.

  16 Mar 2008; Chris PeBenito <pebenito@gentoo.org>
  -selinux-gpm-20041128.ebuild, -selinux-gpm-20061114.ebuild:
  Remove old ebuilds.

  03 Feb 2008; Chris PeBenito <pebenito@gentoo.org>
  selinux-gpm-20070928.ebuild:
  Mark stable.

*selinux-gpm-20070928 (26 Nov 2007)

  26 Nov 2007; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-20070928.ebuild:
  New SVN snapshot.

  04 Jun 2007; Chris PeBenito <pebenito@gentoo.org>
  selinux-gpm-20070329.ebuild:
  Mark stable.

*selinux-gpm-20070329 (29 Mar 2007)

  29 Mar 2007; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-20070329.ebuild:
  New SVN snapshot.

  22 Feb 2007; Markus Ullmann <jokey@gentoo.org> ChangeLog:
  Redigest for Manifest2

*selinux-gpm-20061114 (15 Nov 2006)

  15 Nov 2006; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-20061114.ebuild:
  New SVN snapshot.

*selinux-gpm-20061008 (10 Oct 2006)

  10 Oct 2006; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-20061008.ebuild:
  First mainstream reference policy testing release.

  23 May 2005; Stephen Bennett <spb@gentoo.org> selinux-gpm-20041128.ebuild:
  ~mips keywords.

*selinux-gpm-20041128 (12 Dec 2004)

  12 Dec 2004; petre rodan <kaiowas@gentoo.org>
  -selinux-gpm-20041110.ebuild, +selinux-gpm-20041128.ebuild:
  trivial merge with upstream policy

*selinux-gpm-20041110 (13 Nov 2004)

  13 Nov 2004; petre rodan <kaiowas@gentoo.org>
  -selinux-gpm-20040429.ebuild, +selinux-gpm-20041110.ebuild:
  merge with nsa policy

*selinux-gpm-20040429 (29 Apr 2004)

  29 Apr 2004; Chris PeBenito <pebenito@gentoo.org>
  +selinux-gpm-20040429.ebuild:
  2004.1 update.

*selinux-gpm-20040106 (06 Jan 2004)

  06 Jan 2004; Chris PeBenito <pebenito@gentoo.org> metadata.xml,
  selinux-gpm-20040106.ebuild:
  Initial commit.  Fixed up by Marco Purmer.
