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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  26 Sep 2013; Sven Vermeulen <swift@gentoo.org>
  +selinux-roundup-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-roundup-2.20130424-r2.ebuild:
  Stabilize r2 of policies

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*selinux-roundup-9999 (13 Oct 2012)

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

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

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

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

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

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

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

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

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

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

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

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

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

*selinux-roundup-2.20120215 (31 Mar 2012)

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

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

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

*selinux-roundup-2.20110726 (28 Aug 2011)

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

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

  05 Feb 2011; Anthony G. Basile <blueness@gentoo.org> ChangeLog:
  Initial commit to portage.
