# ChangeLog for sci-electronics/quartus-prime-lite
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*quartus-prime-lite-15.1.0.185 (27 Dec 2015)

  27 Dec 2015; Ian Delaney <idella4@gentoo.org> +metadata.xml,
  +quartus-prime-lite-15.1.0.185.ebuild:
  New package to be maintained by 'undersys'

  ebuild  by undersys and will be proxy maintainer under management of
  the proxy-maintainers project:
  - comes with a new license entitled "Quartus-prime-megacore", checked and
  endorsed by license team,
  - license is of type EULA and has been added to license groups accordingly,
  - this is a binary packagem installs into /opt,
  - user need d'load tarball separately, restrict set with fetch & bindinst,
  - ebuild prepared and reviewd by members of proxy maintaines & ulm
  - all ebuild revisions and patches submitted via the gentoo bug

  Gentoo bug :#569302

  Package-Manager: portage-2.2.24

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Unify quoting in metadata.xml files for machine processing

  Force unified quoting in all metadata.xml files since lxml does not
  preserve original use of single and double quotes. Ensuring unified
  quoting before the process allows distinguishing the GLEP 67-related
  metadata.xml changes from unrelated quoting changes.

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Replace all herds with appropriate projects (GLEP 67)

  Replace all uses of herd with appropriate project maintainers, or no
  maintainers in case of herds requested to be disbanded.

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Set appropriate maintainer types in metadata.xml (GLEP 67)

  01 Mar 2016; Peter Foley <pefoley2@pefoley.com> metadata.xml:
  add missing DOCTYPE

  Package-Manager: portage-2.2.27

*quartus-prime-lite-15.1.0.185-r1 (03 Mar 2016)

  03 Mar 2016; Ian Delaney <idella4@gentoo.org>
  +files/quartus-prime-lite-15.1.0.185-qenv-lib32.patch,
  +files/quartus-prime-lite-15.1.0.185-vso-launcher.patch, metadata.xml,
  +quartus-prime-lite-15.1.0.185-r1.ebuild:
  revbump to 15.1.0.185-r1

  This fixes the issues with launching vsim
  Masked via no keywords as we bundle insecure old versions of lib freetype,
  new entry in SRC_URI to acquire lib file libfreetype.so.6

  Gentoo bug: #575684

  Package-Manager: portage-2.2.26

