Re: [gentoo-dev] RFC: Introducing stable profiles for arm64 (aarch64)

2017-02-13 Thread Mart Raudsepp
Ühel kenal päeval, E, 06.02.2017 kell 04:59, kirjutas Mart Raudsepp:
> To make it easier to handle new keywording that's happening earlier
> too
> in parallel, I now additionally plan to move half of these profiles
> from exp to dev in a couple of days, so that when repoman -d is used,
> it catches it, and when repoman -e y is used, it catches things too
> with the profiles that are left in exp for now.
> Moving from there to stable profile would not be done without the
> deptree fully clean, of course.

I've now finally moved
default/linux/arm64/13.0
default/linux/arm64/13.0/desktop/systemd
from exp to dev as told, with no concerns raised meanwhile.

That'd be the main profile and the profile I'm using (or will be using
soon instead of just 13.0/systemd).
With this I have repoman -d full mostly complaining about stuff I can
fix (arm64 and mips), but also some prefix, and various hardened/uclibc
stuff that seems to insist to not inherit /profiles/arch//, but I
can avoid some of that with --include-arches.

For eventual stable profile once issues are fixed, I'm not sure
anything more than the arm64 main profile is needed for the time being,
in anticipation of mix-ins and other arch profiles mostly covering the
targets/features stuff anyways.


Mart



[gentoo-dev] [PATCH 4/4] profiles: Move arch-specific package.use.mask to arch/base

2017-02-13 Thread Michał Górny
---
 profiles/arch/base/package.use.mask | 251 
 profiles/base/package.use.mask  | 251 +---
 2 files changed, 254 insertions(+), 248 deletions(-)
 create mode 100644 profiles/arch/base/package.use.mask

diff --git a/profiles/arch/base/package.use.mask 
b/profiles/arch/base/package.use.mask
new file mode 100644
index ..2aa971959c3a
--- /dev/null
+++ b/profiles/arch/base/package.use.mask
@@ -0,0 +1,251 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Alexis Ballier  (31 Jan 2017)
+# nvenc requires nvidia drivers, apply same mask logic
+media-video/ffmpeg nvenc
+
+# Thomas Deutschmann  (30 Jan 2017)
+# media-libs/raspberrypi-userland not keyworded
+media-video/motion mmal
+
+# Magnus Granberg  (18 Jan 2017)
+# Mask it globally, unmask it on supported arch
+>=sys-devel/gcc-6.2.0 pie
+
+# Luke Dashjr  (04 Jan 2017)
+# Mask assembly optimisations that are platform-specific
+dev-libs/libsecp256k1 asm
+
+# Ettore Di Giacinto  (18 Oct 2016)
+# Enable gambit and scm only on supported arches
+>=dev-scheme/slib-3.2.5 gambit scm
+
+# Thomas Deutschmann  (22 Sep 2016)
+# Dependency is only keyworded on amd64 and x86
+app-admin/collectd collectd_plugins_mqtt
+
+# Thomas Deutschmann  (26 Aug 2016)
+# It's only supported on amd64, ia64, powerpc and x86
+dev-db/percona-server numa
+
+# Brian Evans  (23 Aug 2016)
+# It's only supported on amd64
+dev-db/percona-server tokudb tokudb-backup-plugin
+
+# Brian Evans  (18 Aug 2016)
+# Mask jdbc as most arches don't support java
+dev-db/mariadb jdbc
+
+# James Le Cuirot  (26 Jul 2016)
+# Only available on amd64.
+dev-java/icedtea shenandoah
+
+# Mike Gilbert  (23 Jun 2016)
+# This flag only has meaning on amd64
+sys-boot/grub:2 grub_platforms_xen-32
+
+# Ian Delaney  (06 Apr 2016)
+# on behalf of Ilya Tumaykin 
+# Raspberry Pi support is only available on arm.
+# Mask raspberry-pi USE globally, unmask on arm.
+media-video/mpv raspberry-pi
+
+# Alexis Ballier  (14 Nov 2015)
+# MMAL is only available on the Raspberry Pi:
+# Mask it globally, unmask it on arm.
+media-video/ffmpeg mmal
+
+# Nathan Phillip Brink  (26 Sep 2015)
+# git useflag requires dev-libs/libgit2 which few arches support
+dev-util/geany-plugins git
+
+# Brian Evans =dev-db/mariadb-10.1.0 mroonga sst-xtrabackup galera
+
+# Mike Gilbert  (05 Sep 2015)
+# sys-boot/gnu-efi is not supported on all archs.
+sys-apps/systemd gnuefi
+
+# James Le Cuirot  (29 Jul 2015)
+# JavaFX and the browser plugin are not included on some platforms.
+dev-java/oracle-jdk-bin javafx nsplugin
+dev-java/oracle-jre-bin javafx nsplugin
+
+# Ben de Groot  (15 Mar 2015)
+# Mask bdplus support and unmask on arches where libbdplus is keyworded.
+media-libs/libbluray bdplus
+
+# Michał Górny  (01 Mar 2015)
+# pidgin-opensteamworks is only available for amd64, ppc32 and x86
+net-im/telepathy-connection-managers steam
+
+# Ben de Groot  (07 Feb 2015)
+# Mask for all arches, can be unmasked on arm once keyworded there
+games-board/stockfish armv7
+
+# Tim Harder  (10 Oct 2014)
+# Masked since skype isn't stable
+net-im/bitlbee skype
+
+# Mike Frysinger  (04 Aug 2014)
+# Mask flashrom drivers that only work on x86 due to in/out asm insns #454024
+sys-apps/flashrom atahpt nic3com nicnatsemi nicrealtek rayer_spi satamv
+
+# Jorge Manuel B. S. Vicetto  (24 Apr 2014)
+# It's only supported on amd64
+dev-db/mariadb tokudb
+
+# Lars Wendler  (23 Apr 2014)
+# Not working on 64bit systems
+media-sound/lmms vst
+
+# Alexey Shvetsov  (16 Apr 2014)
+# libehca only works on ppc*
+sys-fabric/ofed ofed_drivers_ehca
+
+# Andreas K. Huettel  (4 Jan 2014)
+# Mask until dependencies are keyworded (bug 497068)
+dev-vcs/git mediawiki
+
+# Sergey Popov  (27 Dec 2013)
+# Mask because Boost.Context library does not work on most of arches
+dev-libs/boost context
+
+# Jeff Horelick  (1 Sep 2013)
+# Dependency (media-libs/libsidplayfp) only keyworded
+# on x86 and amd64. Will unmask there.
+>=media-plugins/audacious-plugins-3.4 sid
+
+# Tim Harder  (13 Aug 2013)
+# Related deps dev-lang/luajit and dev-scheme/racket are not keyworded by most 
arches.
+app-editors/vim luajit racket
+app-editors/gvim luajit racket
+
+# 

[gentoo-dev] [PATCH 3/4] profiles: Move arch-specific use.mask entries to arch/base

2017-02-13 Thread Michał Górny
Resulting effective changes:
- in ppc64 64le, the 'ibm' flag is masked,
- a lot of extra arch masks on Prefix profiles.
---
 profiles/arch/base/use.mask | 203 
 profiles/base/use.mask  | 203 +---
 2 files changed, 207 insertions(+), 199 deletions(-)

diff --git a/profiles/arch/base/use.mask b/profiles/arch/base/use.mask
index 54a139ff449c..96eb933cd24f 100644
--- a/profiles/arch/base/use.mask
+++ b/profiles/arch/base/use.mask
@@ -1,3 +1,206 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Michael Orlitzky  (7 Jan 2017)
+# The dev-db/firebird and dev-db/oracle-instantclient* packages
+# only support amd64 and x86.
+firebird
+oci8
+
+# cilk has been ported only to x86 systems
+cilk
+
+# cuda only works on amd64/x86
+cuda
+
+# masking here, and unmasking in arch/x86/use.mask
+vidix
+
+# Mask as long its not available everywhere
+zeitgeist
+
+# vdpau is currently only available with binary nvidia-drivers, thus amd64/x86*
+vdpau
+
+# Infiniband stuff should generaly work on all arches but keyworded only on 
amd64/x86
+infiniband
+
+# These need libieee1284 which is amd64/x86 only.
+sane_backends_canon_pp
+sane_backends_hpsj5s
+sane_backends_mustek_pp
+sane_backends_qcam
+
+# amd64/x86 arch specific USE flags
+lilo
+mpx
+svga
+nvram
+cpu_flags_x86_3dnow
+cpu_flags_x86_3dnowext
+cpu_flags_x86_aes
+cpu_flags_x86_avx
+cpu_flags_x86_avx2
+cpu_flags_x86_fma3
+cpu_flags_x86_fma4
+cpu_flags_x86_mmx
+cpu_flags_x86_mmxext
+cpu_flags_x86_padlock
+cpu_flags_x86_popcnt
+cpu_flags_x86_sse
+cpu_flags_x86_sse2
+cpu_flags_x86_sse3
+cpu_flags_x86_sse4_1
+cpu_flags_x86_sse4_2
+cpu_flags_x86_sse4a
+cpu_flags_x86_ssse3
+cpu_flags_x86_xop
+
+# ppc arch specific USE flags
+altivec
+ppcsha1
+
+# mips arch specific USE flags
+fixed-point
+loongson2f
+mipsdspr1
+mipsdspr2
+mipsfpu
+
+# ppc64 arch specific USE flags
+ibm
+ps3
+
+# sparc arch specific USE flags
+vis
+
+# arm arch specific USE flags
+armvfp
+armv5te
+armv6
+armv6t2
+iwmmxt
+neon
+
+# nVidia XvMC requires nvidia-drivers/nvidia-legacy-drivers
+nvidia
+
+# dev-db/oracle-instantclient-basic is only available on x86
+oci8-instant-client
+oracle
+
+# not keyworded on non-x86 systems
+video_cards_geode
+video_cards_voodoo
+
+# not needed on non-sparc systems
+video_cards_sunbw2
+video_cards_suncg14
+video_cards_suncg3
+video_cards_suncg6
+video_cards_sunffb
+video_cards_sunleo
+video_cards_suntcx
+
+# not needed on non-mips systems
+video_cards_newport
+
+# not needed on non-x86, non-amd64 systems
+input_devices_vmmouse
+video_cards_nvidia
+video_cards_fglrx
+video_cards_via
+video_cards_vmware
+video_cards_virtualbox
+
+# not needed on non-arm systems
+video_cards_exynos
+video_cards_freedreno
+video_cards_omap
+video_cards_omapfb
+video_cards_tegra
+video_cards_vc4
+video_cards_vivante
+
+# linux-only drivers
+video_cards_qxl
+
+# not needed on non-x86, non-amd64, non-ppc systems
+input_devices_synaptics
+input_devices_wacom
+
+# Robert Buchholz  (03 Jun 2007)
+# Only works on x86 or amd64
+lcd_devices_svga
+lcd_devices_luise
+
+# Joseph Jezak  (11 Mar 2007)
+# Only for x86 and amd64 (in pbbuttonsd)
+macbook
+
+# George Shapovalov  (8 Apr 2007)
+# Ada is supported only on x86, amd64 and ppc at present
+ada
+
+# Alex Legler  (7 Dec 2009)
+# Rubinius is whitelisted on supported arches
+ruby_targets_rbx
+
+# Samuli Suominen  (03 Oct 2011)
+# RealMagic Hollywood+/Creative DXR3 support
+# Still using obsolete V4L1 wrt bug 350211
+# If fixed, should be unmasked in amd64/x86/ppc32 use.mask
+dxr3
+
+# Diego Elio Pettenò  (21 Aug 2012)
+# IPMI is only implemented for x86, amd64 and ia64
+ipmi
+
+# Alexandre Rostovtsev  (09 Dec 2012)
+# dev-lang/orc is useful only for some specific arches (amd64/x86/arm/...)
+orc
+
+# Mike Gilbert  (02 Jan 2013)
+# PyPy is unkeyworded on most arches. If you are running amd64 or x86,
+# please switch to one of the testing 13.0 profiles to get it.
+python_targets_pypy
+python_single_target_pypy
+python_targets_pypy3
+python_single_target_pypy3
+
+# Michał Górny  (26 Jan 2013)
+# Mask the multilib flags globally. Unmasked in specific arches.
+abi_x86_32
+abi_x86_64
+abi_x86_x32
+# Matt Turner  (29 Jul 2013)
+abi_mips_o32
+abi_mips_n32
+abi_mips_n64
+abi_ppc_32
+abi_ppc_64
+abi_s390_32
+abi_s390_64
+
+# Andrey Grozin  (25 Jun 2014)
+# These lisps are available only on some arches
+clisp
+clozurecl
+cmucl
+ecls
+gcl
+sbcl
+
+# Michał Górny  (4 May 2013)
+# Mask systemd flag globally, unmasked on arches on which systemd
+# is keyworded.
+systemd
+
+# Mike Gilbert  (19 Oct 2014)
+# sys-libs/libapparmor
+apparmor
+
 # Mask flags 

[gentoo-dev] [PATCH 2/4] profiles: Move ARCH-specific defaults to arch/base

2017-02-13 Thread Michał Górny
---
 profiles/arch/base/make.defaults | 9 +
 profiles/base/make.defaults  | 8 +++-
 2 files changed, 12 insertions(+), 5 deletions(-)
 create mode 100644 profiles/arch/base/make.defaults

diff --git a/profiles/arch/base/make.defaults b/profiles/arch/base/make.defaults
new file mode 100644
index ..552931edaff1
--- /dev/null
+++ b/profiles/arch/base/make.defaults
@@ -0,0 +1,9 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+USE_EXPAND_UNPREFIXED="ARCH"
+USE_EXPAND_IMPLICIT="ARCH"
+USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm-linux arm64 
hppa ia64 m68k m68k-mint mips nios2 ppc ppc64 ppc64-linux ppc-aix ppc-macos 
riscv s390 sh sparc sparc64-solaris sparc-fbsd sparc-solaris x64-cygwin 
x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris 
x86-winnt"
+
+PROFILE_ONLY_VARIABLES="${PROFILE_ONLY_VARIABLES} ARCH USE_EXPAND_VALUES_ARCH"
diff --git a/profiles/base/make.defaults b/profiles/base/make.defaults
index 3d634df97d10..e8c6f3d30355 100644
--- a/profiles/base/make.defaults
+++ b/profiles/base/make.defaults
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 #
@@ -7,9 +7,7 @@
 
 # Profile IUSE injection (applies only to ebuilds which use EAPI 5 or later)
 IUSE_IMPLICIT="prefix prefix-guest"
-USE_EXPAND_UNPREFIXED="ARCH"
-USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND"
-USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm-linux arm64 
hppa ia64 m68k m68k-mint mips nios2 ppc ppc64 ppc64-linux ppc-aix ppc-macos 
riscv s390 sh sparc sparc64-solaris sparc-fbsd sparc-solaris x64-cygwin 
x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris 
x86-winnt"
+USE_EXPAND_IMPLICIT="ELIBC KERNEL USERLAND"
 USE_EXPAND_VALUES_ELIBC="AIX bionic Cygwin Darwin DragonFly FreeBSD glibc HPUX 
Interix mingw mintlib musl NetBSD OpenBSD SunOS uclibc Winnt"
 USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint HPUX Interix linux 
NetBSD OpenBSD SunOS Winnt"
 USE_EXPAND_VALUES_USERLAND="BSD GNU"
@@ -27,7 +25,7 @@ CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf"
 
 # Variables that are set exclusively by the profile
 # and not by user configuration files.
-PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND 
USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH 
USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND"
+PROFILE_ONLY_VARIABLES="${PROFILE_ONLY_VARIABLES} ELIBC IUSE_IMPLICIT KERNEL 
USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ELIBC 
USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND"
 
 # 'Sane' defaults
 ELIBC="glibc"
-- 
2.11.1




[gentoo-dev] [PATCH 1/4] profiles/prefix: Add arch/base to parent

2017-02-13 Thread Michał Górny
---
 profiles/prefix/parent | 1 +
 1 file changed, 1 insertion(+)

diff --git a/profiles/prefix/parent b/profiles/prefix/parent
index 8f0e9fd7471d..3eaf2c441360 100644
--- a/profiles/prefix/parent
+++ b/profiles/prefix/parent
@@ -1 +1,2 @@
+../arch/base
 ../features/prefix/rpath
-- 
2.11.1




[gentoo-dev] [PATCH] Profile cleanup, pt. 3: arch/base

2017-02-13 Thread Michał Górny
Hi,

Here's the third part of my profile cleanup series. This time it's
focused on moving arch-related stuff from base/ to arch/base/.

The main goal is to have a clear profile inheritance. Since all arch/*
profiles inherit arch/base (not top-level base!), it is reasonable to
do the 'mask on all arches, unmask on specific' things there.

I should note that I didn't touch the part focused on stable masking
that applies to all arches uniformly. I'm not sure whether it should
be moved to arch/base or kept in base since it applies to all arches.
I guess it doesn't really matter though. It might also be reasonable
to create a dedicated directory for this specific use in arch/base.

The change is almost NFC, except for:

- little flag changes on ppc64 64le profile (ibm flag is masked now,
  ppc64: please advise if it's desired or undesirable),

- flag masking changes on Prefix profiles (Fabian is already testing
  them),

- flag masking changes to the dead uclibc/ profiles.

Please review.




[gentoo-portage-dev] [PATCH] sync.py: extend the checks in _get_repos() and fail when necessary (bugs 567478, 576272, 601054)

2017-02-13 Thread Alexandru Elisei
The existence of the sync-type attribute is now being checked for all
repos, not just for the repos given as arguments to emerge --sync. A
message is returned when a repo without sync-type is found and sync
will fail.

Emerge will now fail if at least one of the repos given to emerge --sync
doesn't exist or has auto-sync disabled.

auto_sync() and all_repos() also fail when no valid repos are found, but
they return success when no auto-sync repos are defined, or no repos are
defined at all on the system.

This commit and commit f57ae38 'emerge: make emerge --sync print
messages from SyncRepos.auto_sync()' shoulg solve bugs 567478, 576282
and partly 601054.
---
 pym/portage/emaint/modules/sync/sync.py | 104 +++-
 1 file changed, 62 insertions(+), 42 deletions(-)

diff --git a/pym/portage/emaint/modules/sync/sync.py
b/pym/portage/emaint/modules/sync/sync.py
index 08a92a7..4d66411 100644
--- a/pym/portage/emaint/modules/sync/sync.py
+++ b/pym/portage/emaint/modules/sync/sync.py
@@ -89,25 +89,45 @@ class SyncRepos(object):
def auto_sync(self, **kwargs):
'''Sync auto-sync enabled repos'''
options = kwargs.get('options', None)
-   selected = self._get_repos(True)
if options:
return_messages = options.get('return-messages', False)
else:
return_messages = False
-   return self._sync(selected, return_messages,
-   emaint_opts=options)
+   success, selected, msgs = self._get_repos(True)
+   if not success:
+   if return_messages:
+   msgs.append(red(" * ") + \
+   "Errors were encountered while getting 
repos... returning")
+   return (False, msgs)
+   return (False, None)
+   if not selected:
+   if return_messages:
+   msgs.append("Nothing to sync... returning")
+   return (True, msgs)
+   return (True, None)
+   return self._sync(selected, return_messages, 
emaint_opts=options)


def all_repos(self, **kwargs):
'''Sync all repos defined in repos.conf'''
-   selected = self._get_repos(auto_sync_only=False)
options = kwargs.get('options', None)
if options:
return_messages = options.get('return-messages', False)
else:
return_messages = False
-   return self._sync(selected, return_messages,
-   emaint_opts=options)
+   success, selected, msgs = self._get_repos(auto_sync_only=False)
+   if not success:
+   if return_messages:
+   msgs.append(red(" * ") + \
+   "Errors were encountered while getting 
repos... returning")
+   return (False, msgs)
+   return (False, None)
+   if not selected:
+   if return_messages:
+   msgs.append("Nothing to sync... returning")
+   return (True, msgs)
+   return (True, None)
+   return self._sync(selected, return_messages, 
emaint_opts=options)


def repo(self, **kwargs):
@@ -120,16 +140,17 @@ class SyncRepos(object):
return_messages = False
if isinstance(repos, _basestring):
repos = repos.split()
-   available = self._get_repos(auto_sync_only=False)
+   success, available, msgs = self._get_repos(auto_sync_only=False)
+   # Ignore errors from _get_repos(), we only want to know if the 
repo
+   # exists.
selected = self._match_repos(repos, available)
if not selected:
-   msgs = [red(" * ") + "The specified repos were not 
found: %s" %
-   (bold(", ".join(repos))) + "\n   ...returning"]
+   msgs.append(red(" * ") + "The specified repos are 
invalid or missing: %s" %
+   (bold(", ".join(repos))) + "\n   ...returning")
if return_messages:
return (False, msgs)
return (False, None)
-   return self._sync(selected, return_messages,
-   emaint_opts=options)
+   return self._sync(selected, return_messages, 
emaint_opts=options)


@staticmethod
@@ -148,10 +169,11 @@ class SyncRepos(object):


def _get_repos(self, auto_sync_only=True):
+   msgs = []
+   emerge_repos = []
selected_repos = 

Re: [gentoo-portage-dev] [PATCH] emerge: make emerge --sync print messages from SyncRepos.auto_sync()

2017-02-13 Thread Zac Medico
On 02/04/2017 09:49 AM, Alexandru Elisei wrote:
> Emerge will only display messages if --quiet is not set.
> 
> The word 'emaint' has been removed from two messages to avoid confusion.
> ---
>  pym/_emerge/actions.py  | 7 +--
>  pym/portage/emaint/modules/sync/sync.py | 7 +++
>  2 files changed, 8 insertions(+), 6 deletions(-)

Looks good, thanks! Merged:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=f57ae38b978069e50c2b1bf2d41bffed23ecc11d

-- 
Thanks,
Zac