Re: [gentoo-dev] [PATCH 4/4] package.use.mask: Mask ICU supprt of Qt:4 on 17.0 profiles
On Wed, Jun 7, 2017 at 4:48 PM, wrote: > From: Andreas K. Hüttel > > --- > profiles/releases/17.0/package.use.mask | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/profiles/releases/17.0/package.use.mask > b/profiles/releases/17.0/package.use.mask > index 8eefcfe631ea..9a6609274ad1 100644 > --- a/profiles/releases/17.0/package.use.mask > +++ b/profiles/releases/17.0/package.use.mask > @@ -4,3 +4,8 @@ > # Andreas K. Hüttel (27 May 2017) > # Unmask default-PIE on 17.0 profiles. > sys-devel/gcc -pie > + > +# Andreas K. Hüttel (7 June 2017) > +# Qt-4 will never work with >=icu-59, see bug 618638 and bug 618640 > +dev-qt/qtcore:4 icu > +dev-qt/qtwebkit:4 icu > -- > 2.13.1 > > ACK
Re: [gentoo-dev] [rfc] dev-libs/expat[unicode] and dev-libs/libbsd dependency
Hi! Just quick note for the record: 2.2.0-r2 has these changes now, no need to have that wait for the next release: https://github.com/gentoo/gentoo/commit/715a2315ee2b841e38843e61b43ee058b5678cab Best Sebastian signature.asc Description: OpenPGP digital signature
Re: [gentoo-dev] New 17.0 release profiles
On Wed, 07 Jun 2017 22:44:31 +0200 "Andreas K. Huettel" wrote: > 2) Switch GCC from default-non-PIE to default-PIE executables. Yay \o/. It's a major change though. Will qa@ write us some docs on the topic? Landing page: https://wiki.gentoo.org/wiki/Project:Quality_Assurance#Documentation Currently we have scarce mention of PIC-related problems: https://wiki.gentoo.org/wiki/Hardened/Position_Independent_Code_internals https://wiki.gentoo.org/wiki/Project:AMD64/Fixing_-fPIC_Errors_Guide We will have a bit more more of those problems. Recent example: https://bugs.gentoo.org/show_bug.cgi?id=618366 I'm personally interested in how to filter out '-pie' in dosemu. What is the canonical way to detect '-pie' / '-no-pie' support in toolchain and flip it? A quick poll: How about other toolchains? A few examples that will have (perhaps minor) troubles doing that: - sys-devel/clang will need to be defaulting to pie. llvm@ llvm is especially touchy as otherwise it's easy to have static library mix. - dev-lang/ghc will need to be defaulted to pie. haskell@ - dev-lang/go will need to be defaulted to pie. williamh@ - dev-lang/ocaml will need to be defaulted to pie. ml@ - dev-lang/crystal will need to be defaulted to pie. longl...@gmail.com - others? [haskell@ hat on] We are OK to invest some time and default to pie for dev-lang/ghc produced binaries. Perhaps slightly after new profiles are introduced into the tree as it will require merging a few patches upstream. -- Sergei pgpST54Qx0Lm7.pgp Description: Цифровая подпись OpenPGP
[gentoo-dev] [PATCH 1/4] package.mask: Move ICU-59 mask from main package.mask to base profile mask
From: Andreas K. Hüttel --- profiles/base/package.mask | 6 ++ profiles/package.mask | 6 -- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/profiles/base/package.mask b/profiles/base/package.mask index 320a6bbb1a0c..6fa75c0ec35a 100644 --- a/profiles/base/package.mask +++ b/profiles/base/package.mask @@ -1,2 +1,8 @@ # Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Hüttel (27 May 2017) +# This release and later require C++11 or C++14 +# So we mask it here, and unmask in 17.0 release profiles +>=dev-libs/icu-59 +>=dev-libs/icu-layoutex-59 diff --git a/profiles/package.mask b/profiles/package.mask index df1f6d7ce5a3..113cb93fdcdd 100644 --- a/profiles/package.mask +++ b/profiles/package.mask @@ -454,12 +454,6 @@ sci-chemistry/mead # dependencies. See #594134. To be removed in 30 days. sys-fabric/libibvpp -# Andreas K. Hüttel (13 May 2017) -# This release breaks lots of reverse deps because of conflicting types. -# So let's get it in the tree, mask it and test. -=dev-libs/icu-59* -=dev-libs/icu-layoutex-59* - # Michael Orlitzky (11 May 2017) # Neither of these packages has a clear license, and both are # unmaintained (and probably unused). No reverse dependencies, -- 2.13.1
[gentoo-dev] [PATCH 4/4] package.use.mask: Mask ICU supprt of Qt:4 on 17.0 profiles
From: Andreas K. Hüttel --- profiles/releases/17.0/package.use.mask | 5 + 1 file changed, 5 insertions(+) diff --git a/profiles/releases/17.0/package.use.mask b/profiles/releases/17.0/package.use.mask index 8eefcfe631ea..9a6609274ad1 100644 --- a/profiles/releases/17.0/package.use.mask +++ b/profiles/releases/17.0/package.use.mask @@ -4,3 +4,8 @@ # Andreas K. Hüttel (27 May 2017) # Unmask default-PIE on 17.0 profiles. sys-devel/gcc -pie + +# Andreas K. Hüttel (7 June 2017) +# Qt-4 will never work with >=icu-59, see bug 618638 and bug 618640 +dev-qt/qtcore:4 icu +dev-qt/qtwebkit:4 icu -- 2.13.1
[gentoo-dev] [PATCH 3/4] profiles: Add amd64 17.0 profiles (identical to 13.0 except for one parent entry)
From: Andreas K. Hüttel --- profiles/default/linux/amd64/17.0/desktop/eapi | 1 + profiles/default/linux/amd64/17.0/desktop/gnome/eapi| 1 + profiles/default/linux/amd64/17.0/desktop/gnome/parent | 2 ++ profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi| 1 + profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent | 2 ++ profiles/default/linux/amd64/17.0/desktop/parent| 2 ++ profiles/default/linux/amd64/17.0/desktop/plasma/eapi | 1 + profiles/default/linux/amd64/17.0/desktop/plasma/parent | 2 ++ profiles/default/linux/amd64/17.0/desktop/plasma/systemd/eapi | 1 + profiles/default/linux/amd64/17.0/desktop/plasma/systemd/parent | 2 ++ profiles/default/linux/amd64/17.0/developer/eapi| 1 + profiles/default/linux/amd64/17.0/developer/make.defaults | 7 +++ profiles/default/linux/amd64/17.0/developer/parent | 2 ++ profiles/default/linux/amd64/17.0/eapi | 1 + profiles/default/linux/amd64/17.0/no-multilib/eapi | 1 + profiles/default/linux/amd64/17.0/no-multilib/parent| 2 ++ profiles/default/linux/amd64/17.0/parent| 2 ++ profiles/default/linux/amd64/17.0/selinux/eapi | 1 + profiles/default/linux/amd64/17.0/selinux/parent| 2 ++ profiles/default/linux/amd64/17.0/systemd/eapi | 1 + profiles/default/linux/amd64/17.0/systemd/parent| 2 ++ profiles/default/linux/amd64/17.0/x32/eapi | 1 + profiles/default/linux/amd64/17.0/x32/make.defaults | 4 profiles/default/linux/amd64/17.0/x32/parent| 2 ++ 24 files changed, 44 insertions(+) create mode 100644 profiles/default/linux/amd64/17.0/desktop/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/systemd/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/systemd/parent create mode 100644 profiles/default/linux/amd64/17.0/developer/eapi create mode 100644 profiles/default/linux/amd64/17.0/developer/make.defaults create mode 100644 profiles/default/linux/amd64/17.0/developer/parent create mode 100644 profiles/default/linux/amd64/17.0/eapi create mode 100644 profiles/default/linux/amd64/17.0/no-multilib/eapi create mode 100644 profiles/default/linux/amd64/17.0/no-multilib/parent create mode 100644 profiles/default/linux/amd64/17.0/parent create mode 100644 profiles/default/linux/amd64/17.0/selinux/eapi create mode 100644 profiles/default/linux/amd64/17.0/selinux/parent create mode 100644 profiles/default/linux/amd64/17.0/systemd/eapi create mode 100644 profiles/default/linux/amd64/17.0/systemd/parent create mode 100644 profiles/default/linux/amd64/17.0/x32/eapi create mode 100644 profiles/default/linux/amd64/17.0/x32/make.defaults create mode 100644 profiles/default/linux/amd64/17.0/x32/parent diff --git a/profiles/default/linux/amd64/17.0/desktop/eapi b/profiles/default/linux/amd64/17.0/desktop/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/eapi b/profiles/default/linux/amd64/17.0/desktop/gnome/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/parent b/profiles/default/linux/amd64/17.0/desktop/gnome/parent new file mode 100644 index ..6589a0e01478 --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/parent @@ -0,0 +1,2 @@ +.. +../../../../../../targets/desktop/gnome diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent new file mode 100644 index ..44f88d3e2df0 --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/profiles/default/
[gentoo-dev] [PATCH 2/4] profiles: Add 17.0 release profile
From: Andreas K. Hüttel * Require >=gcc-6 with PIE forced on * Unmask ICU-59 and later --- profiles/releases/17.0/eapi | 1 + profiles/releases/17.0/make.defaults | 5 + profiles/releases/17.0/package.mask | 6 ++ profiles/releases/17.0/package.unmask| 9 + profiles/releases/17.0/package.use.force | 6 ++ profiles/releases/17.0/package.use.mask | 6 ++ profiles/releases/17.0/parent| 1 + 7 files changed, 34 insertions(+) create mode 100644 profiles/releases/17.0/eapi create mode 100644 profiles/releases/17.0/make.defaults create mode 100644 profiles/releases/17.0/package.mask create mode 100644 profiles/releases/17.0/package.unmask create mode 100644 profiles/releases/17.0/package.use.force create mode 100644 profiles/releases/17.0/package.use.mask create mode 100644 profiles/releases/17.0/parent diff --git a/profiles/releases/17.0/eapi b/profiles/releases/17.0/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/releases/17.0/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/releases/17.0/make.defaults b/profiles/releases/17.0/make.defaults new file mode 100644 index ..475e60c7d655 --- /dev/null +++ b/profiles/releases/17.0/make.defaults @@ -0,0 +1,5 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Adding this one, since it makes sense. +USE="bzip2" diff --git a/profiles/releases/17.0/package.mask b/profiles/releases/17.0/package.mask new file mode 100644 index ..943ae2b6a65c --- /dev/null +++ b/profiles/releases/17.0/package.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Huettel (27 May 2017) +# Require a gcc here that uses C++14 or later as default setting + (27 May 2017) +# We can unmask ICU 59 and later now we for sure have a recent GCC +# Note: "and later" is safe here since the profiles/package.mask +# still overrides. +>=dev-libs/icu-59 +>=dev-libs/icu-layoutex-59 diff --git a/profiles/releases/17.0/package.use.force b/profiles/releases/17.0/package.use.force new file mode 100644 index ..e0b6784ee1e7 --- /dev/null +++ b/profiles/releases/17.0/package.use.force @@ -0,0 +1,6 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Hüttel (27 May 2017) +# Force default-PIE build on 17.0 profiles. +sys-devel/gcc pie diff --git a/profiles/releases/17.0/package.use.mask b/profiles/releases/17.0/package.use.mask new file mode 100644 index ..8eefcfe631ea --- /dev/null +++ b/profiles/releases/17.0/package.use.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Hüttel (27 May 2017) +# Unmask default-PIE on 17.0 profiles. +sys-devel/gcc -pie diff --git a/profiles/releases/17.0/parent b/profiles/releases/17.0/parent new file mode 100644 index ..f3229c5b9876 --- /dev/null +++ b/profiles/releases/17.0/parent @@ -0,0 +1 @@ +.. -- 2.13.1
[gentoo-dev] [PATCH 1/4] package.mask: Move ICU-59 mask from main package.mask to base profile mask
From: Andreas K. Hüttel --- profiles/base/package.mask | 6 ++ profiles/package.mask | 6 -- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/profiles/base/package.mask b/profiles/base/package.mask index 320a6bbb1a0c..6fa75c0ec35a 100644 --- a/profiles/base/package.mask +++ b/profiles/base/package.mask @@ -1,2 +1,8 @@ # Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Hüttel (27 May 2017) +# This release and later require C++11 or C++14 +# So we mask it here, and unmask in 17.0 release profiles +>=dev-libs/icu-59 +>=dev-libs/icu-layoutex-59 diff --git a/profiles/package.mask b/profiles/package.mask index df1f6d7ce5a3..113cb93fdcdd 100644 --- a/profiles/package.mask +++ b/profiles/package.mask @@ -454,12 +454,6 @@ sci-chemistry/mead # dependencies. See #594134. To be removed in 30 days. sys-fabric/libibvpp -# Andreas K. Hüttel (13 May 2017) -# This release breaks lots of reverse deps because of conflicting types. -# So let's get it in the tree, mask it and test. -=dev-libs/icu-59* -=dev-libs/icu-layoutex-59* - # Michael Orlitzky (11 May 2017) # Neither of these packages has a clear license, and both are # unmaintained (and probably unused). No reverse dependencies, -- 2.13.1
[gentoo-dev] [PATCH 2/4] profiles: Add 17.0 release profile
From: Andreas K. Hüttel * Require >=gcc-6 with PIE forced on * Unmask ICU-59 and later --- profiles/releases/17.0/eapi | 1 + profiles/releases/17.0/make.defaults | 5 + profiles/releases/17.0/package.mask | 6 ++ profiles/releases/17.0/package.unmask| 9 + profiles/releases/17.0/package.use.force | 6 ++ profiles/releases/17.0/package.use.mask | 6 ++ profiles/releases/17.0/parent| 1 + 7 files changed, 34 insertions(+) create mode 100644 profiles/releases/17.0/eapi create mode 100644 profiles/releases/17.0/make.defaults create mode 100644 profiles/releases/17.0/package.mask create mode 100644 profiles/releases/17.0/package.unmask create mode 100644 profiles/releases/17.0/package.use.force create mode 100644 profiles/releases/17.0/package.use.mask create mode 100644 profiles/releases/17.0/parent diff --git a/profiles/releases/17.0/eapi b/profiles/releases/17.0/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/releases/17.0/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/releases/17.0/make.defaults b/profiles/releases/17.0/make.defaults new file mode 100644 index ..475e60c7d655 --- /dev/null +++ b/profiles/releases/17.0/make.defaults @@ -0,0 +1,5 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Adding this one, since it makes sense. +USE="bzip2" diff --git a/profiles/releases/17.0/package.mask b/profiles/releases/17.0/package.mask new file mode 100644 index ..943ae2b6a65c --- /dev/null +++ b/profiles/releases/17.0/package.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Huettel (27 May 2017) +# Require a gcc here that uses C++14 or later as default setting + (27 May 2017) +# We can unmask ICU 59 and later now we for sure have a recent GCC +# Note: "and later" is safe here since the profiles/package.mask +# still overrides. +>=dev-libs/icu-59 +>=dev-libs/icu-layoutex-59 diff --git a/profiles/releases/17.0/package.use.force b/profiles/releases/17.0/package.use.force new file mode 100644 index ..e0b6784ee1e7 --- /dev/null +++ b/profiles/releases/17.0/package.use.force @@ -0,0 +1,6 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Hüttel (27 May 2017) +# Force default-PIE build on 17.0 profiles. +sys-devel/gcc pie diff --git a/profiles/releases/17.0/package.use.mask b/profiles/releases/17.0/package.use.mask new file mode 100644 index ..8eefcfe631ea --- /dev/null +++ b/profiles/releases/17.0/package.use.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# Andreas K. Hüttel (27 May 2017) +# Unmask default-PIE on 17.0 profiles. +sys-devel/gcc -pie diff --git a/profiles/releases/17.0/parent b/profiles/releases/17.0/parent new file mode 100644 index ..f3229c5b9876 --- /dev/null +++ b/profiles/releases/17.0/parent @@ -0,0 +1 @@ +.. -- 2.13.1
[gentoo-dev] [PATCH 4/4] package.use.mask: Mask ICU supprt of Qt:4 on 17.0 profiles
From: Andreas K. Hüttel --- profiles/releases/17.0/package.use.mask | 5 + 1 file changed, 5 insertions(+) diff --git a/profiles/releases/17.0/package.use.mask b/profiles/releases/17.0/package.use.mask index 8eefcfe631ea..9a6609274ad1 100644 --- a/profiles/releases/17.0/package.use.mask +++ b/profiles/releases/17.0/package.use.mask @@ -4,3 +4,8 @@ # Andreas K. Hüttel (27 May 2017) # Unmask default-PIE on 17.0 profiles. sys-devel/gcc -pie + +# Andreas K. Hüttel (7 June 2017) +# Qt-4 will never work with >=icu-59, see bug 618638 and bug 618640 +dev-qt/qtcore:4 icu +dev-qt/qtwebkit:4 icu -- 2.13.1
[gentoo-dev] [PATCH 3/4] profiles: Add amd64 17.0 profiles (identical to 13.0 except for one parent entry)
From: Andreas K. Hüttel --- profiles/default/linux/amd64/17.0/desktop/eapi | 1 + profiles/default/linux/amd64/17.0/desktop/gnome/eapi| 1 + profiles/default/linux/amd64/17.0/desktop/gnome/parent | 2 ++ profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi| 1 + profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent | 2 ++ profiles/default/linux/amd64/17.0/desktop/parent| 2 ++ profiles/default/linux/amd64/17.0/desktop/plasma/eapi | 1 + profiles/default/linux/amd64/17.0/desktop/plasma/parent | 2 ++ profiles/default/linux/amd64/17.0/desktop/plasma/systemd/eapi | 1 + profiles/default/linux/amd64/17.0/desktop/plasma/systemd/parent | 2 ++ profiles/default/linux/amd64/17.0/developer/eapi| 1 + profiles/default/linux/amd64/17.0/developer/make.defaults | 7 +++ profiles/default/linux/amd64/17.0/developer/parent | 2 ++ profiles/default/linux/amd64/17.0/eapi | 1 + profiles/default/linux/amd64/17.0/no-multilib/eapi | 1 + profiles/default/linux/amd64/17.0/no-multilib/parent| 2 ++ profiles/default/linux/amd64/17.0/parent| 2 ++ profiles/default/linux/amd64/17.0/selinux/eapi | 1 + profiles/default/linux/amd64/17.0/selinux/parent| 2 ++ profiles/default/linux/amd64/17.0/systemd/eapi | 1 + profiles/default/linux/amd64/17.0/systemd/parent| 2 ++ profiles/default/linux/amd64/17.0/x32/eapi | 1 + profiles/default/linux/amd64/17.0/x32/make.defaults | 4 profiles/default/linux/amd64/17.0/x32/parent| 2 ++ 24 files changed, 44 insertions(+) create mode 100644 profiles/default/linux/amd64/17.0/desktop/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/parent create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/systemd/eapi create mode 100644 profiles/default/linux/amd64/17.0/desktop/plasma/systemd/parent create mode 100644 profiles/default/linux/amd64/17.0/developer/eapi create mode 100644 profiles/default/linux/amd64/17.0/developer/make.defaults create mode 100644 profiles/default/linux/amd64/17.0/developer/parent create mode 100644 profiles/default/linux/amd64/17.0/eapi create mode 100644 profiles/default/linux/amd64/17.0/no-multilib/eapi create mode 100644 profiles/default/linux/amd64/17.0/no-multilib/parent create mode 100644 profiles/default/linux/amd64/17.0/parent create mode 100644 profiles/default/linux/amd64/17.0/selinux/eapi create mode 100644 profiles/default/linux/amd64/17.0/selinux/parent create mode 100644 profiles/default/linux/amd64/17.0/systemd/eapi create mode 100644 profiles/default/linux/amd64/17.0/systemd/parent create mode 100644 profiles/default/linux/amd64/17.0/x32/eapi create mode 100644 profiles/default/linux/amd64/17.0/x32/make.defaults create mode 100644 profiles/default/linux/amd64/17.0/x32/parent diff --git a/profiles/default/linux/amd64/17.0/desktop/eapi b/profiles/default/linux/amd64/17.0/desktop/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/eapi b/profiles/default/linux/amd64/17.0/desktop/gnome/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/parent b/profiles/default/linux/amd64/17.0/desktop/gnome/parent new file mode 100644 index ..6589a0e01478 --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/parent @@ -0,0 +1,2 @@ +.. +../../../../../../targets/desktop/gnome diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi new file mode 100644 index ..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent new file mode 100644 index ..44f88d3e2df0 --- /dev/null +++ b/profiles/default/linux/amd64/17.0/desktop/gnome/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/profiles/default/
[gentoo-dev] New 17.0 release profiles
Hey all, as already discussed on IRC, here is a first step towards new 17.0 profile sets. The switchover from 13.0 to 17.0 is introduced for two reasons: 1) Switch default compiler dialect from gnu++98 (as in <=gcc-5.4) to gnu++14 (as in >=gcc-6). 2) Switch GCC from default-non-PIE to default-PIE executables. This has the following implications: * In 17.0 profiles, =icu-59 is UNmasked. It also has the great advantage that * we can tell users "on this profile switch please rebuild all your static archives" * it's unnecessary to sprinkle the whole ebuild repository with "add-cxxflags - std=c++11" just because someone still might use gcc-4 in a few years Obviously we're now in the test phase and the official switchover recommendation can only happen after gcc-6 is stable. This is also why I'm not touching profiles.desc yet. Patches following for review (only amd64 for now). Cheers, Andreas -- Andreas K. Hüttel dilfri...@gentoo.org Gentoo Linux developer (council, perl, libreoffice) signature.asc Description: This is a digitally signed message part.
Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)
On Wed, 07 Jun 2017 11:27:59 +0200 Michał Górny wrote: > On śro, 2017-06-07 at 10:17 +0200, Alexis Ballier wrote: > > > Also, do I presume correctly that for all supported cases (i.e. > > > those which your nsolve does not reject), solve and nsolve are > > > compatible? > > > > Not sure what you mean here. nsolve does not solve anything, it just > > validates REQUIRED_USE so that it is guaranteed it can be solved. > > What I mean is whether you can guarantee that: > > a. for every X that nsolve(X) == ok, solve() will be able to find > a valid solution, yes > b. for every X that solve() can solve reliably, nsolve(X) == ok. no and that's not really possible > > We first need to define properly & formally how to solve requse > > constraints if we want ppl to be able to rely on it (or rather write > > requse that give the expected result). > > > > The way I see it, REQUIRED_USE ast looks like: > > (assuming ^^ is already expanded to || + ??) > > > > clause = > > AllOf(list of clauses) > > | AnyOf(list of clauses) > > | AtMostOne(list of clauses) > > | Implication(useflag, clause) > > | useflag > > > > Now, portage already has the function 'eval(input, clause)'. We > > need to define 'trueify(input, clause)' that modifies input so that > > 'eval(input, clause)' is always true afterwards. Since this is SAT, > > there is no hope to make this work for all clauses. From the > > discussions here, a good algorithm would be: > > > > trueify(input, clause) = match clause with > > AllOf(l) -> for i in l: trueify(input, i) > > > AnyOf(l) -> if not eval(input, clause): trueify(input, l[0]) > > > AtMostOne(l) -> f = (lambda x,y: pass) > > > > for i in l: > > f(input, i) > > if eval(input, i): f = falsify > > > Implication(useflag, consequence) -> > > > > if input[useflag]: trueify(input, consequence) > > > useflag -> input[useflag] = True > > > > > > Now you see that for the AtMostOne case we need its dual, the > > 'falsify(input, clause)' function: > > > > falsify(input, clause) = match clause with > > AllOf(l) -> falsify(input, l[0]) > > That's a debatable case. My solve() actually 'falsifies' all > the subexpressions which might be more reliable. Best way to debate this is probably to write the implication translation and feed that to nsolve from a few test cases. Intuition is that falsifying all of them adds more pressure on the solver and you might end up failing to solve it for no good reason, so falsifying only one of them seems safer. > > > AnyOf(l) -> for i in l: falsify(input, i) > > > AtMostOne(l) -> for i in l: > > > > if eval(input, clause): trueify(input, i) > > Do I read this correctly that it pretty much implies enabling the > first two subexpressions? or the leftmost first false if one is already true in there, yes > > > Implication(useflag, consequence) -> > > > > if not input[useflag]: raise "impossible" > > Why impossible? Unless I'm missing something, it's false already. 'foo? bar' is always true if foo is false; so it's impossible to make it false it's really a corner case as I think we don't allow nested implications inside ||, ^^, () or ??, which is the only way to reach that. > > else: falsify(input, consequence) > > > useflag -> input[useflag] = False > > Looks mostly sane. You've missed '!flag' but that's trivial to add. yeah, i realized after sending the email > > > > Note how the above favors leftmost in all cases. If it needs to > > change something, it always tries to leave the leftmost untouched. > > Note also that it processes everything left to right (the AllOf > > case where REQUIRED_USE="AllOf(list of clauses)" ). > > You need to be able to reorder the clauses to handle use.force > and use.mask. Not sure if reorder is the best way. It sure works, but maybe we'd want a repoman error if e.g. 'foo? ( bar )' is in REQUIRED_USE, bar is masked but not foo. That'd be a matter of eliminating the constants in the ast and if we get 'false' for a profile we error out. > > So, the very first thing to do is to agree that the above solver > > (the trueify function) is what we want to implement and set this in > > stone. There's no point in implementing a proper requse checker if > > the algorithm is meant to change. Having a formal definition will > > also be necessary to mandate that in future EAPIs. > > > > Then, and only then, we'd need to have the above solver implemented > > into portage (hidden under a FEATURES) and import my nsolve into > > repoman (after due cleanup). > > > > Yes, that's my goal. However, before we can set the algorithm in stone > we need to verify that it will work in all of the supported cases. Yep, that's the point of nsolve/classify :) > Preferably it should also be as simple as possible to avoid putting > too much complexity in the spec.
Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)
On śro, 2017-06-07 at 10:17 +0200, Alexis Ballier wrote: > > Also, do I presume correctly that for all supported cases (i.e. those > > which your nsolve does not reject), solve and nsolve are compatible? > > > > Not sure what you mean here. nsolve does not solve anything, it just > validates REQUIRED_USE so that it is guaranteed it can be solved. What I mean is whether you can guarantee that: a. for every X that nsolve(X) == ok, solve() will be able to find a valid solution, b. for every X that solve() can solve reliably, nsolve(X) == ok. > We first need to define properly & formally how to solve requse > constraints if we want ppl to be able to rely on it (or rather write > requse that give the expected result). > > The way I see it, REQUIRED_USE ast looks like: > (assuming ^^ is already expanded to || + ??) > > clause = > AllOf(list of clauses) > | AnyOf(list of clauses) > | AtMostOne(list of clauses) > | Implication(useflag, clause) > | useflag > > Now, portage already has the function 'eval(input, clause)'. We need to > define 'trueify(input, clause)' that modifies input so that 'eval(input, > clause)' is always true afterwards. Since this is SAT, there is no > hope to make this work for all clauses. From the discussions here, a > good algorithm would be: > > trueify(input, clause) = match clause with > AllOf(l) -> for i in l: trueify(input, i) > > AnyOf(l) -> if not eval(input, clause): trueify(input, l[0]) > > AtMostOne(l) -> f = (lambda x,y: pass) > > for i in l: > f(input, i) > if eval(input, i): f = falsify > > Implication(useflag, consequence) -> > >if input[useflag]: trueify(input, consequence) > > useflag -> input[useflag] = True > > > Now you see that for the AtMostOne case we need its dual, the > 'falsify(input, clause)' function: > > falsify(input, clause) = match clause with > AllOf(l) -> falsify(input, l[0]) That's a debatable case. My solve() actually 'falsifies' all the subexpressions which might be more reliable. > > AnyOf(l) -> for i in l: falsify(input, i) > > AtMostOne(l) -> for i in l: > >if eval(input, clause): trueify(input, i) Do I read this correctly that it pretty much implies enabling the first two subexpressions? > > Implication(useflag, consequence) -> > > if not input[useflag]: raise "impossible" Why impossible? Unless I'm missing something, it's false already. > else: falsify(input, consequence) > > useflag -> input[useflag] = False Looks mostly sane. You've missed '!flag' but that's trivial to add. > > Note how the above favors leftmost in all cases. If it needs to change > something, it always tries to leave the leftmost untouched. Note also > that it processes everything left to right (the AllOf case where > REQUIRED_USE="AllOf(list of clauses)" ). You need to be able to reorder the clauses to handle use.force and use.mask. > So, the very first thing to do is to agree that the above solver > (the trueify function) is what we want to implement and set this in > stone. There's no point in implementing a proper requse checker if the > algorithm is meant to change. Having a formal definition will also be > necessary to mandate that in future EAPIs. > > Then, and only then, we'd need to have the above solver implemented into > portage (hidden under a FEATURES) and import my nsolve into repoman > (after due cleanup). > Yes, that's my goal. However, before we can set the algorithm in stone we need to verify that it will work in all of the supported cases. Preferably it should also be as simple as possible to avoid putting too much complexity in the spec. -- Best regards, Michał Górny signature.asc Description: This is a digitally signed message part
Re: [gentoo-dev] [RFC] Forced/automatic USE flag constraints (codename: ENFORCED_USE)
On Tue, 06 Jun 2017 19:39:04 +0200 Michał Górny wrote: > > [...] > > > > > The question is whether we want to: > > > > > > > > > > a. actually try to solve this nesting insanity, > > > > > > > > > > b. declare it unsupported and throw REQUIRED_USE mismatch on > > > > > user, > > > > > > > > > > c. ban it altogether. > > > > > > > > > > > > I don't think it is *that* insane to support nesting :) > > > > > > > > > ( ^^ ( ?? ( a b ) c ( d e ) ) f ) > > > > If you really need that then you'd need to expand it manually. It > > seems better to have it expanded internally automatically. > > Remember you were the one wanting to keep || & co because they're > > simpler to read and write ;) > > > > Well, I was able to implement the logic for all-of blocks outside > and inside other n-ary constraints, including the necessary logic > transformations. Fun fact is, I was able to do it without implementing > a complete set of logic functions and transformations in AST ;-). > > I've just made it fail (correctly this time) with any other kind of > nesting -- I don't think it's going to have a real use case and even > if it did, there are more readable ways of solving the same problem. > > The question is -- will you rebase now on top of my changes yes that should be the goal but there are a lot of things to do prior to that I think (thanks for doing it btw) > (and preferably use nice logical changes with good commit messages), Heh, I really meant 'quickndirty' :) it's actually good there is an actual semi relevant commit message :p > or should I try later to merge the rest of your code in? ;-) > > Also, do I presume correctly that for all supported cases (i.e. those > which your nsolve does not reject), solve and nsolve are compatible? > Not sure what you mean here. nsolve does not solve anything, it just validates REQUIRED_USE so that it is guaranteed it can be solved. We first need to define properly & formally how to solve requse constraints if we want ppl to be able to rely on it (or rather write requse that give the expected result). The way I see it, REQUIRED_USE ast looks like: (assuming ^^ is already expanded to || + ??) clause = AllOf(list of clauses) | AnyOf(list of clauses) | AtMostOne(list of clauses) | Implication(useflag, clause) | useflag Now, portage already has the function 'eval(input, clause)'. We need to define 'trueify(input, clause)' that modifies input so that 'eval(input, clause)' is always true afterwards. Since this is SAT, there is no hope to make this work for all clauses. From the discussions here, a good algorithm would be: trueify(input, clause) = match clause with AllOf(l) -> for i in l: trueify(input, i) | AnyOf(l) -> if not eval(input, clause): trueify(input, l[0]) | AtMostOne(l) -> f = (lambda x,y: pass) for i in l: f(input, i) if eval(input, i): f = falsify | Implication(useflag, consequence) -> if input[useflag]: trueify(input, consequence) | useflag -> input[useflag] = True Now you see that for the AtMostOne case we need its dual, the 'falsify(input, clause)' function: falsify(input, clause) = match clause with AllOf(l) -> falsify(input, l[0]) | AnyOf(l) -> for i in l: falsify(input, i) | AtMostOne(l) -> for i in l: if eval(input, clause): trueify(input, i) | Implication(useflag, consequence) -> if not input[useflag]: raise "impossible" else: falsify(input, consequence) | useflag -> input[useflag] = False Note how the above favors leftmost in all cases. If it needs to change something, it always tries to leave the leftmost untouched. Note also that it processes everything left to right (the AllOf case where REQUIRED_USE="AllOf(list of clauses)" ). Now, what I need is basically a -funroll-all-loops on that algorithm (We're Gentoo!): This explains why I butchered your code any why all this is so dependent on the solving method chosen. After unrolling the loops for a given REQUIRED_USE, this code will look like: if useflag1: if useflag2: ... : input[foo] = True; input[bar] = False if baz: if biz: input[x] = True In my notation this is: [ [useflag1, useflag2, ...]?[foo,!bar] [baz, biz]?[x] ] And that's where 'nsolve' comes into play. Portage will do: trueify(input, requse) if not eval(input, requse) then rant We want to guarantee 'requse' is in a form so that portage never has to rant. My nsolve is only a sufficient condition for that. I was expecting more like 10% of problematic cases, but considering the data obtained is that less than .5% of required use in the tree would require non trivial change and in all the cases I've seen those required changes are legit, I believe we can move forward with this. So, the very first thing to do is to agree that the above solver (the trueify function) is what we want to implement and set thi