# ChangeLog for profile directory
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/default/bsd/ChangeLog,v 1.159 2013/10/14 04:53:56 naota Exp $

  14 Oct 2013; Naohiro Aota <naota@gentoo.org> package.use.mask:
  Add USE mask for tcpdump. #482930

  27 Aug 2013; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask app-misc/geoclue skyhook here since networkmanager is masked here

  27 Aug 2013; Alexis Ballier <aballier@gentoo.org> fbsd/package.mask,
  package.mask:
  remove obsolete mailbase < 1 mask

  27 Aug 2013; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  remove obsolete crashreporter usemask for firefox

  27 Aug 2013; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  remove obsolete swig entries

  27 Aug 2013; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  remove obsolete entry

  27 Aug 2013; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  move udev-related usemasks from amd64-fbsd/todo here

  27 Aug 2013; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask linux only useflags for opencv

  09 Aug 2013; Alexis Ballier <aballier@gentoo.org> -fbsd/amd64/8.2/deprecated,
  -fbsd/amd64/8.2/make.defaults, -fbsd/amd64/8.2/parent,
  -fbsd/amd64/9.0/deprecated, -fbsd/amd64/9.0/make.defaults,
  -fbsd/amd64/9.0/parent, -fbsd/x86/8.2/deprecated,
  -fbsd/x86/8.2/make.defaults, -fbsd/x86/8.2/parent, -fbsd/x86/9.0/deprecated,
  -fbsd/x86/9.0/make.defaults, -fbsd/x86/9.0/parent:
  Remove EOL fbsd 8.2 and 9.0 profiles

  07 Aug 2013; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask video_cards_tdfx for mplayer, bug #477750 by Yuta SATOH

  28 Jul 2013; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask mplayer[joystick], bug #477750 by Yuta SATOH

  18 Jun 2013; Alexis Ballier <aballier@gentoo.org> -fbsd/amd64/8.0/deprecated,
  -fbsd/amd64/8.0/make.defaults, -fbsd/amd64/8.0/parent,
  -fbsd/sparc/8.0/deprecated, -fbsd/sparc/8.0/make.defaults,
  -fbsd/sparc/8.0/parent, -fbsd/x86/8.0/deprecated,
  -fbsd/x86/8.0/make.defaults, -fbsd/x86/8.0/parent:
  remove 8.0 profiles

  18 Jun 2013; Alexis Ballier <aballier@gentoo.org> -fbsd/amd64/7.2/deprecated,
  -fbsd/amd64/7.2/make.defaults, -fbsd/amd64/7.2/parent,
  -fbsd/sparc/7.2/deprecated, -fbsd/sparc/7.2/make.defaults,
  -fbsd/sparc/7.2/parent, -fbsd/x86/7.2/deprecated,
  -fbsd/x86/7.2/make.defaults, -fbsd/x86/7.2/parent:
  Remove 7.2 profiles

  25 May 2013; Alexis Ballier <aballier@gentoo.org>
  fbsd/amd64/9.1/clang/packages, fbsd/amd64/9.1/clang/packages.build,
  fbsd/amd64/9.1/clang/profile.bashrc:
  Make the clang profile use libcxx

  25 May 2013; Alexis Ballier <aballier@gentoo.org>
  fbsd/amd64/9.1/clang/packages.build, fbsd/packages.build:
  remove texinfo from packages.build: it is not needed anymore for building
  stages and causes problems when trying to put it in a stage1. bug #471192

  24 May 2013; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  mask xattr useflag on GNU tar, bug #432410 by Yuta SATOH

  20 May 2013; Alexis Ballier <aballier@gentoo.org> +fbsd/amd64/9.0/deprecated:
  deprecate 9.0 profile for amd64, bug #464742

  19 May 2013; Alexis Ballier <aballier@gentoo.org> use.mask:
  mask filecaps useflag, bug #469646

  07 May 2013; Naohiro Aota <naota@gentoo.org> +fbsd/x86/9.0/deprecated,
  fbsd/x86/7.2/deprecated, fbsd/x86/8.0/deprecated, fbsd/x86/8.2/deprecated:
  Deprecate x86/9.0. #464742

  18 Feb 2013; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask ffmpeg[iec61883] as its linux only too

  08 Feb 2013; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  add python2 to USE too so that it is rebuilt within stage3, bug #448256

  01 Feb 2013; Alexis Ballier <aballier@gentoo.org>
  fbsd/amd64/9.1/clang/packages.build, fbsd/packages.build:
  remove nano from packages.build, bug #443810 by Yuta SATOH

  23 Dec 2012; Samuli Suominen <ssuominen@gentoo.org> package.mask:
  Mask sys-fs/eudev next to sys-fs/udev wrt #447364

  24 Nov 2012; Samuli Suominen <ssuominen@gentoo.org> package.mask:
  Put virtual/udev masked next to existing sys-fs/udev entry.

  24 Nov 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.mask:
  unmask libarchive 3.0.4-r1, works fine here and bug #421191 has no activity
  since months.

  28 Oct 2012; <naota@gentoo.org> fbsd/use.mask:
  Mask polkit on FreeBSD. It doesn't work due to FreeBSD API bug.

  15 Oct 2012; Alexis Ballier <aballier@gentoo.org> fbsd/packages.build:
  remove portage and add virtual/package-manager

  15 Oct 2012; Alexis Ballier <aballier@gentoo.org> fbsd/packages.build:
  move findutils up as on linux

  15 Oct 2012; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  add python2 to BOOTSTRAP_USE so that python2 gets set as default python
  interpreter

  15 Oct 2012; Alexis Ballier <aballier@gentoo.org> fbsd/packages.build:
  remove python and perl from packages.build, add autotools, like on linux

  14 Oct 2012; <naota@gentoo.org> fbsd/package.use.mask:
  Mask numa on sys-apps/hwloc

  09 Oct 2012; <naota@gentoo.org> fbsd/package.use.mask:
  Mask USE=dmpai on net-fs/samba. #430720

  03 Oct 2012; <naota@gentoo.org> fbsd/package.use.mask:
  Mask USE=gbm for media-libs/mesa

  19 Sep 2012; Alexis Ballier <aballier@gentoo.org> -fbsd/sparc/8.2/deprecated:
  revert sparc-fbsd profile deprecation otherwise repoman warns on every
  package with sparc-fbsd keywords since it has no valid profile

  19 Sep 2012; Alexis Ballier <aballier@gentoo.org> +fbsd/sparc/8.2/deprecated,
  +fbsd/x86/8.2/deprecated:
  deprecate fbsd 8.2 profiles, bug #435500

  19 Sep 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  mask patch[xattr] as it requires gnu attr, bug #435474

  07 Aug 2012; Alexis Ballier <aballier@gentoo.org>
  +fbsd/amd64/9.1/make.defaults, +fbsd/amd64/9.1/parent,
  +fbsd/x86/9.1/make.defaults, +fbsd/x86/9.1/parent:
  add FreeBSD 9.1 profiles from overlay

  04 Jul 2012; Samuli Suominen <ssuominen@gentoo.org> fbsd/package.use.mask:
  Remove obsolete net-libs/xulrunner entry wrt #424617

  02 Jun 2012; Alexis Ballier <aballier@gentoo.org> fbsd/use.mask:
  xemacs is fine, unmask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/use.mask:
  remove another bunch of old use masks... to be tested, may not 6 years later

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/use.mask:
  there has not been apache 1.x in tree since a while, remove use mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/use.mask:
  there is no more beagle useflag and its going away

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  libproxy has no more xulrunner useflag, remove mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  we dont have any keyword on epiphany, remove useless masks

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  we dont have any keyword on gnome-base/gnome, remove useless masks

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  consolekit is fine these days

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  remove no longer valid mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  libntlm is keyworded these days, remove useless mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  remove antique usemasks

  31 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  drop usemasks about no longer in use flags

  31 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  it seems there is no more termcap-compat useflag. removing mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  remove another useless mask: only package using the useflag isnt keyworded

  31 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  no need to mask java nor gcj these days: we have a binary jdk and gcj seems
  fine...

  31 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  remove usemasks on non-existant flags

  31 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  mpm-itk is no longer an useflag, removing mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  catalyst doesnt have a cdr useflag anymore, remove useless mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  pkcs11-helper is keyworded these days, removing useless mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  evolution has no pda useflag, neither gnome-applets has an apm one, removing
  useless mask

  31 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  openmpi useflags have been renamed but not the usemasks, fixing...

  30 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask gvfs[udisks]

  29 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  fbosd for vlc is linux only

  29 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  jack is not linux-specific

  29 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/profile.bashrc:
  Remove bash as CONFIG_SHELL: we should rather fix the bugs, and it makes
  other packages fail

  27 May 2012; Naohiro Aota <naota@gentoo.org> fbsd/package.mask:
  Unask >x11-libs/cairo-1.10. Workaround to disable cairo-trace on FreeBSD is
  adeed.

  25 May 2012; Naohiro Aota <naota@gentoo.org> fbsd/package.mask:
  Mask >x11-libs/cairo-1.10 till bug #390449 is solved

  17 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  mask inotify as its linux only

  16 May 2012; Naohiro Aota <naota@gentoo.org> package.use.mask:
  Mask connman for x11-libs/qt-bearer

  15 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask kdelibs[udisks,upower] as they require udev

  12 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  unmask pambase[consolekit]

  12 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask,
  package.use.mask:
  consoleki[pam] seems to work, unmask

  12 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  mask systemd globally as its linux only

  09 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  bring back pcre in default useflags

  09 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  factorize and cleanup a bit

  09 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  remove some more default enabled use flags (cli, pcre, session)

  09 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  remove perl and python from make.default USE, as on linux

  09 May 2012; Alexis Ballier <aballier@gentoo.org> use.mask:
  mask pax_kernel as this is hardened linux kernel

  05 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/packages.build:
  add freebsd-mk-defs to stage1 for the same reason

  04 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/packages:
  add freebsd-mk-defs to the system set as its needed by bsdmake

  04 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  pambase[ssh] was renamed to pambase[pam_ssh] some time ago...

  04 May 2012; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  bootstrap with USE=mta to let virtual/mta pick ssmtp[mta], by Yuta SATOH in
  bug #408587

  02 May 2012; Naohiro Aota <naota@gentoo.org> profile.bashrc:
  Match only for the word beginning

  25 Apr 2012; Alexis Ballier <aballier@gentoo.org> +fbsd/amd64/7.2/deprecated,
  +fbsd/amd64/8.0/deprecated, +fbsd/sparc/7.2/deprecated,
  +fbsd/sparc/8.0/deprecated, +fbsd/x86/7.2/deprecated,
  +fbsd/x86/8.0/deprecated:
  deprecate old fbsd profiles

  21 Apr 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask xine-lib[fusion] as thats linux only

  02 Apr 2012; Naohiro Aota <naota@gentoo.org> fbsd/use.mask, packages:
  Mask wayland since it does not support BSDs

  08 Mar 2012; Naohiro Aota <naota@gentoo.org> fbsd/package.use.mask:
  Mask wifi and crashreporter also on www-client/firefox

  08 Mar 2012; Naohiro Aota <naota@gentoo.org> use.mask:
  Drop removed USE flag sysfs. Bug #405875

  28 Feb 2012; Naohiro Aota <naota@gentoo.org> fbsd/package.use.mask:
  Mask crashreporter for net-libs/xulrunner

  25 Feb 2012; Robin H. Johnson <robbat2@gentoo.org> packages:
  sys-apps/module-init-tools replaced by virtual/modutils in base/packages, so
  match up here too.

  20 Feb 2012; Naohiro Aota <naota@gentoo.org> fbsd/package.use.mask:
  Mask wifi for net-libs/xulrunner

  14 Feb 2012; Alexis Ballier <aballier@gentoo.org> packages:
  remove virtual/modutils from system by Yuta SATOH, bug #402389

  18 Dec 2011; Alexis Ballier <aballier@gentoo.org> use.mask:
  usemask libv4l, linux only

  13 Dec 2011; Naohiro Aota <naota@gentoo.org> fbsd/package.use.mask:
  Mask j2me for dev-java/proguard

  06 Dec 2011; Naohiro Aota <naota@gentoo.org> fbsd/package.use.mask:
  mask gssapi for net-dns/bind

  14 Nov 2011; Mike Frysinger <vapier@gentoo.org> packages:
  sys-apps/net-tools is no longer in base profile.

  08 Nov 2011; Naohiro Aota <naota@gentoo.org> +fbsd/package.use.force,
  fbsd/package.use.mask:
  app-emulation/wine: force hardened and restrict capi

  02 Nov 2011; Alexis Ballier <aballier@gentoo.org>
  +fbsd/amd64/9.0/make.defaults, +fbsd/amd64/9.0/parent,
  +fbsd/x86/9.0/make.defaults, +fbsd/x86/9.0/parent:
  add 9.0 profiles for amd64 and x86

  01 Nov 2011; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Remove obsolete entry for USE="v4l2"

  18 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove obsolete entry for sys-apps/hal.

  10 Jul 2011; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask sctp for openmpi, linux only

  09 Jul 2011; Alexis Ballier <aballier@gentoo.org> fbsd/make.defaults:
  disable sandbox by default, bug #374425

  06 Jul 2011; Alexis Ballier <aballier@gentoo.org>
  +fbsd/amd64/8.2/make.defaults, +fbsd/amd64/8.2/parent,
  +fbsd/sparc/8.2/make.defaults, +fbsd/sparc/8.2/parent,
  +fbsd/x86/8.2/make.defaults, +fbsd/x86/8.2/parent:
  add 8.2 profiles

  05 Jul 2011; Alexis Ballier <aballier@gentoo.org> fbsd/profile.bashrc:
  use GNU find and xargs in ebuild env, bug #374099

  05 Jul 2011; Alexis Ballier <aballier@gentoo.org> packages:
  let findutils be part of @system

  05 Jul 2011; Alexis Ballier <aballier@gentoo.org> package.use.force:
  force lzma on libarchive as its quite common these days

  07 Jun 2011; Naohiro Aota <naota@gentoo.org> packages:
  Add -*>=sys-apps/shadow-4.1

  09 May 2011; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  use.mask:
  Mask video_cards_nouveau, bug #364027.

  24 Apr 2011; Ulrich Mueller <ulm@gentoo.org> packages:
  Replace dependency on virtual/modutils, bug 358891.

  20 Apr 2011; Ulrich Mueller <ulm@gentoo.org> -fbsd/virtuals:
  Remove old-style virtual/libc, bug 359001.

  16 Apr 2011; Ulrich Mueller <ulm@gentoo.org> fbsd/virtuals:
  Remove old-style virtual/inetd, bug 358831.

  14 Apr 2011; Ulrich Mueller <ulm@gentoo.org> fbsd/virtuals:
  Remove old-style virtual/os-headers, bug 358999.

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

  07 Apr 2011; Ulrich Mueller <ulm@gentoo.org> fbsd/virtuals:
  Remove old-style virtual/pam, bug 358903.
  Remove old-style virtual/logger, bug 358881.

  05 Apr 2011; Ulrich Mueller <ulm@gentoo.org> virtuals:
  Remove old-style virtual/utempter, bug 361117.

  03 Apr 2011; Ulrich Mueller <ulm@gentoo.org> fbsd/packages.build:
  Remove old-style virtual/gzip, bug 358829.

  31 Mar 2011; Tomáš Chvátal <scarabeus@gentoo.org> fbsd/package.use.mask:
  Drop obsolete pgsql masks on threads useflag

  29 Mar 2011; Tomáš Chvátal <scarabeus@gentoo.org> fbsd/package.mask:
  Drop mask on KDE releases no longer in main tree.

  14 Mar 2011; Ulrich Mueller <ulm@gentoo.org> fbsd/virtuals:
  Remove spurious old-style virtuals.

  02 Dec 2010; Alexey Shvetsov <alexxy@gentoo.org> fbsd/package.mask:
  Mask KDE SC 4.5 because of unkeyworded deps

  04 Nov 2010; Alexis Ballier <aballier@gentoo.org> fbsd/package.mask:
  remove unmask of portage 2.2, its unmasked and keyworded for us

  11 Jun 2010; Ulrich Mueller <ulm@gentoo.org> fbsd/amd64/7.2/make.defaults,
  fbsd/amd64/8.0/make.defaults:
  Fix invalid variable name in amd64 profiles, as discussed with aballier.

  03 May 2010; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask linux only useflags for kde-base/solid

  25 Apr 2010; Javier Villavicencio <the_paya@gentoo.org> use.mask:
  Mask db backends unlikely to be tested in the near future.

  23 Apr 2010; Alexis Ballier <aballier@gentoo.org> fbsd/profile.bashrc,
  profile.bashrc:
  Do not try to access $S if it does not exist.

  22 Apr 2010; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  unmask ruby[threads], seems to work

  03 Apr 2010; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/profile.bashrc:
  Fix working dir on patch_install-sh_bsd().

  01 Apr 2010; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/profile.bashrc:
  Point CONFIG_SHELL to /bin/bash, fixes scripts called by configure, ie:
  test scripts, that expect bash.

  16 Mar 2010; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/profile.bashrc:
  Another hack on profile.bashrc to patch well known install-sh versions
  that are likely to fail during a parallel make install.

  11 Mar 2010; Alexis Ballier <aballier@gentoo.org>
  +fbsd/amd64/8.0/make.defaults, +fbsd/amd64/8.0/parent,
  +fbsd/sparc/8.0/make.defaults, +fbsd/sparc/8.0/parent,
  +fbsd/x86/8.0/make.defaults, +fbsd/x86/8.0/parent:
  Add 8.0 profiles

  05 Feb 2010; Alexis Ballier <aballier@gentoo.org>
  -fbsd/amd64/7.1/deprecated, -fbsd/amd64/7.1/make.defaults,
  -fbsd/amd64/7.1/parent, -fbsd/sparc/7.1/deprecated,
  -fbsd/sparc/7.1/make.defaults, -fbsd/sparc/7.1/parent,
  -fbsd/x86/7.1/deprecated, -fbsd/x86/7.1/make.defaults,
  -fbsd/x86/7.1/parent:
  remove 7.1 profiles

  25 Jan 2010; William Hubbs <williamh@gentoo.org> fbsd/use.mask:
  masked espeak use flag

  18 Sep 2009; Alexis Ballier <aballier@gentoo.org> use.mask:
  mask udev useflag

  21 Jul 2009; Alexis Ballier <aballier@gentoo.org> fbsd/packages.build:
  add openssl to packages.build because libarchive needs it

  07 Jul 2009; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  usemask vlc ieee1394], linux only too

  01 Jul 2009; Alexis Ballier <aballier@gentoo.org> use.mask:
  mask qcam sane backend, its linux only

  17 May 2009; Alexis Ballier <aballier@gentoo.org>
  +fbsd/amd64/7.2/make.defaults, +fbsd/amd64/7.2/parent,
  +fbsd/sparc/7.2/make.defaults, +fbsd/sparc/7.2/parent,
  +fbsd/x86/7.2/make.defaults, +fbsd/x86/7.2/parent:
  add g/fbsd-7.2 profiles

  16 May 2009; Alexis Ballier <aballier@gentoo.org>
  +fbsd/sparc/7.1/make.defaults, +fbsd/sparc/7.1/parent, +fbsd/sparc/parent:
  Add sparc-fbsd 7.1 profiles

  15 May 2009; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  mask libproxy[xulrunner] as it requires xul 1.9

  16 Mar 2009; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  remove usemasks depending on qt-webkit now that it is keyworded

  03 Mar 2009; Timothy Redaelli <drizzt@gentoo.org> profile.bashrc:
  Fix bugzilla URL and product.

  31 Jan 2009; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask,
  package.use.mask:
  mask useflags requiring app-misc/tracker on fbsd

  30 Jan 2009; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  usemask gvfs[bluetooth] as it requires bluez

  29 Jan 2009; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  usemask qt-webkit dependant useflags until bug #256836 is fixed

  25 Jan 2009; Alexis Ballier <aballier@gentoo.org> fbsd/package.mask:
  Remove the now completely broken gnome 2.22 mask on fbsd because some
  people silently dropped our keywords on the latest not masked versions of
  some core packages (gnome-desktop, gnome-terminal, etc.)

  25 Jan 2009; Alexis Ballier <aballier@gentoo.org> profile.bashrc:
  Add a profile.bashrc test for test == construction that does not work on
  BSD in order to get automatic warnings for things like bug #256305

  24 Jan 2009; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/profile.bashrc:
  profile.bashrc fix for the charset.alias bugs: 169678, 195148 and 256129

  24 Jan 2009; Javier Villavicencio <the_paya@gentoo.org>
  +fbsd/profile.bashrc:
  Move the fbsd profile.bashrc from releases.

  24 Jan 2009; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/make.defaults:
  Remove -sandbox from our FEATURES.

  22 Jan 2009; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/make.defaults, fbsd/package.mask, package.use.force:
  Remove a few masks and force zlib and bzip2 on libarchive.

  22 Jan 2009; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  usemask links[livecd] since it requires gpm

  21 Jan 2009; Alexis Ballier <aballier@gentoo.org> fbsd/package.mask:
  remove libgtop mask on fbsd as someone didnt like us and removed our
  keyword on the latest unmasked version

  21 Jan 2009; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  cleanup a bit redundant usemasks

  21 Jan 2009; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  usemask acl for gnome-vfs too; it has an almost posix acl support but
  configure doesnt see it unless libacl is present and uses a couple of
  extensions

  21 Jan 2009; Alexis Ballier <aballier@gentoo.org> fbsd/package.use.mask:
  mask xattr for glib too as this requires gnu attr

  19 Jan 2009; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  remove old gnash use mask

  19 Jan 2009; Alexis Ballier <aballier@gentoo.org> use.mask:
  no need to use.mask win32codecs here, its already masked in base and
  unmasked on relevant arch profiles.

  19 Jan 2009; Alexis Ballier <aballier@gentoo.org> +fbsd/make.defaults,
  +fbsd/package.mask, +fbsd/package.use, +fbsd/package.use.mask,
  +fbsd/packages, +fbsd/packages.build, +fbsd/parent, +fbsd/use.force,
  +fbsd/use.mask, +fbsd/virtuals, +fbsd/x86/7.1/make.defaults,
  +fbsd/x86/7.1/parent, +fbsd/x86/parent, +package.mask, +package.use.force,
  +package.use.mask, +packages, +parent, +profile.bashrc, +use.force,
  +use.mask, +virtuals:
  Move default-bsd/ to default/bsd for FreeBSD 7.1, so that we switch to the
  new profiles layout for g/fbsd too. Profiles come from the g/fbsd overlay.

  13 Dec 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask gstreamer debugs useflags that need valgrind, its not supported on
  bsd

  13 Dec 2008; Alexis Ballier <aballier@gentoo.org> fbsd/use.mask:
  usemask cdparanoia, we dont have a custom patched one for fbsd anymore

  09 Dec 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  libsysfs for vlc is linux only too

  28 Nov 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  usemask bluetooth useflag for libpcap, based on linux bluez, bug #247076

  05 Nov 2008; Jim Ramsay <lack@gentoo.org> fbsd/package.use.mask:
  app-admin/gkrellm may pull in net-libs/libntlm, which is not keyworded

  19 Oct 2008; Alexis Ballier <aballier@gentoo.org> fbsd/6.2/x86/use.mask:
  x86 has ssse3 even on bsd

  18 Oct 2008; Mart Raudsepp <leio@gentoo.org> fbsd/package.mask:
  Unmask >=gnome-icon-theme-2.22 to fix deptree after 2.20 got keyword
  wrongly removed

  15 Oct 2008; Alexis Ballier <aballier@gentoo.org> fbsd/6.2/package.mask:
  mask virtual/jdk and jre 1.6 on 6.2 profiles for future keywording

  15 Oct 2008; Alexis Ballier <aballier@gentoo.org> fbsd/6.2/x86/use.mask,
  use.mask:
  move java6 mask to 6.2 x86 profile

  15 Oct 2008; Alexis Ballier <aballier@gentoo.org> fbsd/6.2/package.mask:
  Mask Diablo JDK/JRE 1.6 on 6.2 profiles as we have FreeBSD 7 ebuilds only

  04 Oct 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  Mask xindy useflag for texlive on bsd

  25 Sep 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask elf useflag for net-snmp: it is too tight to the gnu libc

  05 Sep 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  laptop support in hal is linux-specific unfortunately

  04 Sep 2008; Mart Raudsepp <leio@gentoo.org> fbsd/package.mask:
  Mask GNOME-2.22 on fbsd in preparation of removing the global one

  23 Aug 2008; Alexis Ballier <aballier@gentoo.org> fbsd/use.mask:
  unmask lua useflag on fbsd, it should be fine now

  08 Aug 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask pbs for openmpi, linux only

  08 Aug 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask dc1394 useflag for vlc, its linux only

  01 Aug 2008; Diego Pettenò <flameeyes@gentoo.org> fbsd/package.use.mask:
  Mask sha512 USE flag for pambase on FreeBSD.

  31 Jul 2008; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/package.use.mask:
  Removed passwdqc + added ssh to pambase use masks.

  28 Jul 2008; Jean-Noël Rivasseau <elvanor@gentoo.org>
  fbsd/6.2/x86/package.use.mask:
  masked test for icu4j, no jdk-1.6

  18 Jul 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask sctp for dev-lang/erlang, requires a library too close to the linux
  kernel

  04 Jul 2008; Petteri Räty <betelgeuse@gentoo.org> use.mask:
  use.mask java6 as there is no provider for >=virtual/jdk-1.6 on BSD.

  04 Jul 2008; Javier Villavicencio <the_paya@gentoo.org> fbsd/packages:
  Add pidof-bsd to fbsd packages.

  16 Jun 2008; Alexis Ballier <aballier@gentoo.org> package.mask:
  no need to mask debianutils anymore

  08 Jun 2008; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/package.use.mask:
  Temporary mask passwdqc for 7.0.

  08 Jun 2008; Javier Villavicencio <the_paya@gentoo.org>
  fbsd/6.2/package.mask:
  Mask py-freebsd with 7.0 support from 6.2 profile.

  02 Apr 2008; Mart Raudsepp <leio@gentoo.org> package.use.mask:
  USE mask mythtv on gst-plugins-meta - dependency not keyworded

  02 Apr 2008; Mart Raudsepp <leio@gentoo.org> use.mask:
  Mask networkmanager USE flag - no version of it keyworded

  12 Mar 2008; Peter Weller <welp@gentoo.org> use.mask:
  Add m17n-lib to use.mask; requested by ulm

  05 Mar 2008; Diego Pettenò <flameeyes@gentoo.org> +fbsd/package.use:
  Add default USE flags for FreeBSD for pambase.

  21 Feb 2008; Diego Pettenò <flameeyes@gentoo.org> fbsd/package.use.mask:
  Mask consolekit and cracklib USE flags for pambase.

  29 Jan 2008; Peter Weller <welp@gentoo.org> package.mask:
  package.mask >=app-shells/bash-3.2_p25 due to portage blockages

  29 Jan 2008; Peter Weller <welp@gentoo.org> package.mask:
  package.mask >=app-shells/bash-3.2_p33 due to portage blockages

  25 Jan 2008; Diego Pettenò <flameeyes@gentoo.org> profile.bashrc:
  Fix typo in the error message.

  23 Jan 2008; Alon Bar-Lev <alonbl@gentoo.org> package.use.mask:
  Add net-misc/openvpn pkcs11

  21 Nov 2007; Sébastien Fabbro <bicatali@gentoo.org> virtuals:
  Removed virtual/lapack, now new style

  15 Oct 2007; Roy Marples <uberlord@gentoo.org> package.mask:
  unmask m4-1.4.10 as it now works for us

  10 Oct 2007; Sébastien Fabbro <bicatali@gentoo.org> virtuals:
  removed virtual/blas, now new style

  23 Sep 2007; Joe Peterson <lavajoe@gentoo.org> virtuals:
  Remove virtual/cblas per bug #189738

  19 Sep 2007; Donnie Berkholz <dberkholz@gentoo.org>;
  fbsd/package.use.mask:
  No nvidia drivers work on fbsd with xorg-server 1.4 yet.

  08 Aug 2007; Tiziano Müller <dev-zero@gentoo.org> fbsd/6.2/make.defaults:
  Removed libg++ USE-flag (bug #148416)

  07 Jun 2007; Joe Peterson <lavajoe@gentoo.org> virtuals:
  For FreeBSD, default to the "reference implementation" versions rather
  than using the "atlas" versions of LAPACK and BLAS.

  28 May 2007; Diego Pettenò <flameeyes@gentoo.org> package.use.mask, use.mask
  fbsd/package.use.mask: Unmask the useflags that shouldn't have been masked
  in the first place.

  26 May 2007; Olivier Crête <tester@gentoo.org> package.use.mask:
  Mask zephyr flag for pidgin on bsd because mit-krb5 is not keyworded

  25 May 2007; Steve Dibb <beandog@gentoo.org> package.use.mask:
  p.use.mask ieee1394 on kdebase, since dep isn't keyworded

  25 May 2007; Steve Dibb <beandog@gentoo.org> package.use.mask:
  p.use.mask sys-apps/hal disk-partition dell since deps are not keyworded

  23 Mar 2007; Steve Dibb <beandog@gentoo.org> package.use.mask:
  Restrict dvdnav use flag on BSD

  22 Mar 2007; Steve Dibb <beandog@gentoo.org> use.mask:
  Add mplayer local use flags, add changelog

