# ChangeLog for Gentoo/s390 profile directory
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/s390/ChangeLog,v 1.74 2013/09/29 14:34:29 dilfridge Exp $

  29 Sep 2013; Andreas K. Huettel <dilfridge@gentoo.org> make.defaults:
  s390 goes unstable/testing as per council decision

  22 Aug 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask opencl flag due to lack of virtual/opencl keywording.

  11 Aug 2013; Alexis Ballier <aballier@gentoo.org> package.mask:
  move texlive mask from global to arch profiles, bug #475124

  28 May 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Mask r600-llvm-compiler flag for mesa.

  27 May 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask video_cards_ilo.

  10 Apr 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Mask x11-libs/gtk+[colord] because requires too much unstable depends

  03 Mar 2013; Mike Frysinger <vapier@gentoo.org> use.mask:
  Unmask a bunch of X flags and mask more gnome flags.

  03 Mar 2013; Mike Frysinger <vapier@gentoo.org> use.mask:
  Mask USE=gtk3 since we do not have GTK keyworded.

  03 Mar 2013; Mike Frysinger <vapier@gentoo.org> use.mask:
  Unmask jpeg2k/svg/webp #456864 by Sergey Popov.

  22 Feb 2013; Robin H. Johnson <robbat2@gentoo.org> package.use.mask:
  tcmalloc does not support s390.

  18 Feb 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask video_cards_* that are used by media-libs/mesa

  18 Feb 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask wayland USE flag.

  21 Jan 2013; Mike Frysinger <vapier@gentoo.org> make.defaults, use.mask:
  Adjust X input/video settings by disabling most #453114 by Sergey Popov.

  20 Jan 2013; Michał Górny <mgorny@gentoo.org> use.mask:
  Remove duplicate pypy/jython masks (masked in base profile now).

  18 Jan 2013; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE="cman clvm" because cman and libdlm are not keyworded on this arch.

  13 Jan 2013; Raúl Porcel <armin76@gentoo.org> s390x/make.defaults:
  Add -multilib on BOOTSTRAP_USE for s390x, bug #451020

  09 Jan 2013; Justin Lecher <jlec@gentoo.org> package.use.mask:
  Mask test for dev-lang/tk, x11-base/xorg-server[xvfb] is not keyworded

  24 Nov 2012; Mike Gilbert <floppym@gentoo.org> use.mask:
  Mask python_single_target values not supported on this arch.

  31 Oct 2012; Michał Górny <mgorny@gentoo.org> use.mask:
  Add a PYTHON_TARGETS mask based on keywords.

  21 Oct 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Remove sys-apps/portage python3 p.use.mask now that python3 is stable

  29 Sep 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask lucene, bug #404267

  27 Aug 2012; Mike Frysinger <vapier@gentoo.org> +s390x/make.defaults,
  make.defaults, parent:
  Setup multilib settings for all s390 and s390x targets.

  26 Aug 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Update python3+portage mask

  26 Aug 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask rtmp,metalink

  19 Aug 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add clang to use.mask, needs testing

  05 Aug 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask gts, devil, bug #419621

  06 May 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add systemd to use.mask, needs testing

  08 Apr 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask pyxattr

  21 Feb 2012; Zac Medico <zmedico@gentoo.org> package.use.mask:
  Bug #402215: Mask USE=xattr for sys-apps/portage, pending ~s390 keyword for
  dev-python/pyxattr.

  05 Nov 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask dev-libs/libpcre jit since it isn't supported on this arch

  18 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Remove obsolete USE="hal" mask.

  07 Aug 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask webp, fftw

  03 Jul 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask =sys-apps/portage-2.1.10* python3

  30 Apr 2011; Ulrich Mueller <ulm@gentoo.org> -virtuals:
  Remove old-style virtual/linux-sources, bug 118442.

  02 Apr 2011; Ulrich Mueller <ulm@gentoo.org> virtuals:
  Remove old-style virtual/bootloader, bug 359971.

  31 Mar 2011; Tomáš Chvátal <scarabeus@gentoo.org> package.use.mask:
  Drop mask on non-existant portage version.

  27 Feb 2011; Raúl Porcel <armin76@gentoo.org> -package.mask:
  Punt package.mask

  27 Feb 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask pdfannotextractor

  30 Jan 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask enchant

  04 Dec 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask openexr

  27 Nov 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Add portage python3 use-flag to p.use.mask

  21 Nov 2010; Ryan Hill <dirtyepic@gentoo.org> use.mask:
  Mask lpsol USE flag, needs sci-mathematics/glpk.

  13 Nov 2010; Alexis Ballier <aballier@gentoo.org> package.mask:
  Move TeX Live 2010 package.mask to per-arch package.mask, bug #342513

  24 Oct 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask libvirt, tokyocabinet

  22 May 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask svg

  13 Mar 2010; Samuli Suominen <ssuominen@gentoo.org> package.mask:
  Mask libpng-1.4 pending on texlive-core-2009 unmasking.

  25 Jan 2010; Alexis Ballier <aballier@gentoo.org> +package.mask:
  Move TeX Live 2009 mask here from global package.mask, remove it once
  keyworded, bug #300526

  11 Dec 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask libproxy

  27 Oct 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask autotrace, lqr

  01 Aug 2009; Sébastien Fabbro <bicatali@gentoo.org> use.mask:
  Added wxwdigets to use.mask (wxwindows already present)

  17 Jul 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask libnl

  09 Jun 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask jpeg2k

  07 Jun 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask prolog

  10 May 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add hal to use.mask

  01 May 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask mpi, fuse

  29 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add pango to use.mask

  23 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask libssh2

  10 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add kde to use.mask

  08 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add lasi to use.mask

  27 Mar 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask net-dns/avahi python, since it needs gtk USE-flag

  11 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add lyx to use.mask

  10 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add xindy to use.mask

  16 Jan 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask chicken, clisp, R, octave

  25 Dec 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add raw to use.mask

  07 Dec 2008; Mike Frysinger <vapier@gentoo.org> use.mask:
  Mask cairo USE flag.

  07 Dec 2008; Mike Frysinger <vapier@gentoo.org> use.mask:
  Mask bluetooth.

  05 Nov 2008; Mike Frysinger <vapier@gentoo.org> packages:
  Remove hdparm from system and allow common glibc mask.

  11 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org> use.mask:
  Sync use.mask with default-linux.

