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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*selinux-dirsrv-9999 (04 Dec 2012)

  04 Dec 2012; Sven Vermeulen <swift@gentoo.org> +selinux-dirsrv-9999.ebuild, +metadata.xml:
  Adding SELinux policy for dirsrv, see bug #445484
