[gentoo-dev] [PATCH] rocm.eclass: add ROCM_SKIP_GLOBALS for the USE-flags exposure.

2023-11-26 Thread heroxbd
From: Benda Xu 

Low level ebuilds such as dev-util/hip and
dev-libs/rocm-opencl-runtime, unconditionally supports all the AMDGPU
cards. They do not need to define amdgpu_targets_* USE-flags.  But
their src_test() call check_amdgpu() to confirm an AMDGPU is
available.

Signed-off-by: Benda Xu 
---
 eclass/rocm.eclass | 18 --
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/eclass/rocm.eclass b/eclass/rocm.eclass
index b78dfea1cc31..9804ecde97d0 100644
--- a/eclass/rocm.eclass
+++ b/eclass/rocm.eclass
@@ -125,11 +125,26 @@ _ROCM_ECLASS=1
 # DEPEND="sci-libs/rocBLAS[${ROCM_USEDEP}]"
 # @CODE
 
+# @ECLASS_VARIABLE: ROCM_SKIP_GLOBALS
+# @DESCRIPTION:
+# Controls whether _rocm_set_globals() is executed. This variable is for
+# ebuilds that call check_amdgpu() without the need to define amdgpu_targets_*
+# USE-flags, such as dev-util/hip and dev-libs/rocm-opencl-runtime.
+#
+# Example use:
+# @CODE
+# ROCM_SKIP_GLOBALS=1
+# inherit rocm
+# @CODE
+
 # @FUNCTION: _rocm_set_globals
 # @DESCRIPTION:
 # Set global variables useful to ebuilds: IUSE, ROCM_REQUIRED_USE, and
-# ROCM_USEDEP
+# ROCM_USEDEP, unless ROCM_SKIP_GLOBALS is set.
+
 _rocm_set_globals() {
+   [[ -n ${ROCM_SKIP_GLOBALS} ]] && return
+
# Two lists of AMDGPU_TARGETS of certain ROCm version.  Official support
# matrix:
# 
https://docs.amd.com/bundle/ROCm-Installation-Guide-v${ROCM_VERSION}/page/Prerequisite_Actions.html.
@@ -179,7 +194,6 @@ _rocm_set_globals() {
 _rocm_set_globals
 unset -f _rocm_set_globals
 
-
 # @FUNCTION: get_amdgpu_flags
 # @USAGE: get_amdgpu_flags
 # @DESCRIPTION:
-- 
2.41.0




[gentoo-dev] [PATCH] rocm.eclass: dev-util/hip as an exception, not to expose USE flags.

2023-11-19 Thread heroxbd
From: Benda Xu 

Signed-off-by: Benda Xu 
---
 eclass/rocm.eclass | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/eclass/rocm.eclass b/eclass/rocm.eclass
index b78dfea1cc31..04f321a83c8c 100644
--- a/eclass/rocm.eclass
+++ b/eclass/rocm.eclass
@@ -176,9 +176,12 @@ _rocm_set_globals() {
local optflags=${allflags[@]/%/(-)?}
ROCM_USEDEP=${optflags// /,}
 }
-_rocm_set_globals
-unset -f _rocm_set_globals
 
+# dev-util/hip uses checkgpu but does not need the USE flags.
+if [[ ${CATEGORY}/${PN} != dev-util/hip ]]; then
+   _rocm_set_globals
+   unset -f _rocm_set_globals
+fi
 
 # @FUNCTION: get_amdgpu_flags
 # @USAGE: get_amdgpu_flags
-- 
2.41.0




[gentoo-dev] [PATCH] toolchain.eclass: the configure script shebang with BROOT.

2022-06-01 Thread heroxbd
From: Benda Xu 

It executes on CBUILD environment.
---
 eclass/toolchain.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index 488648a82ab5..33306d3d92b1 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1655,7 +1655,7 @@ toolchain_src_compile() {
# use of bash.  Newer ones will auto-detect, but this is not harmful.
# This needs to be set for compile as well, as it's used in libtool
# generation, which will break install otherwise (at least in 3.3.6): 
bug #664486
-   CONFIG_SHELL="${EPREFIX}/bin/bash" \
+   CONFIG_SHELL="${BROOT}/bin/bash" \
gcc_do_make ${GCC_MAKE_TARGET}
 }
 
-- 
2.34.1




[gentoo-dev] [PATCH] java-utils-2.eclass: remove redundant / from CLASSPATH.

2021-08-05 Thread heroxbd
From: Benda Xu 

JAVA_PKG_JARDEST always has a leading /.

Signed-off-by: Benda Xu 
---
 eclass/java-utils-2.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/java-utils-2.eclass b/eclass/java-utils-2.eclass
index ed4951ac97b7..0e2ed2902842 100644
--- a/eclass/java-utils-2.eclass
+++ b/eclass/java-utils-2.eclass
@@ -373,7 +373,7 @@ java-pkg_dojar() {
insinto "${JAVA_PKG_JARDEST}"
doins "${jar}"
) || die "failed to install ${jar}"
-   java-pkg_append_ JAVA_PKG_CLASSPATH 
"${EPREFIX}/${JAVA_PKG_JARDEST}/${jar_basename}"
+   java-pkg_append_ JAVA_PKG_CLASSPATH 
"${EPREFIX}${JAVA_PKG_JARDEST}/${jar_basename}"
debug-print "installed ${jar} to 
${ED}${JAVA_PKG_JARDEST}"
# make a symlink to the original jar if it's symlink
else
-- 
2.32.0




[gentoo-dev] [PATCH] java-vm-2.eclass: keep EPREFIX in the dosym first argument.

2020-03-15 Thread heroxbd
From: Benda Xu 

first parameter of dosym() is interpreted verbatim.

Suggested-By: Zongyu Zhang 
Signed-off-by: Benda Xu 
---
 eclass/java-vm-2.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/java-vm-2.eclass b/eclass/java-vm-2.eclass
index d71b7285996d..d51a46ce2479 100644
--- a/eclass/java-vm-2.eclass
+++ b/eclass/java-vm-2.eclass
@@ -186,7 +186,7 @@ set_java_env() {
 
# Make the symlink
dodir "${JAVA_VM_DIR}"
-   dosym ${java_home#${EPREFIX}} ${JAVA_VM_DIR}/${VMHANDLE}
+   dosym ${java_home} ${JAVA_VM_DIR}/${VMHANDLE}
 }
 
 
@@ -228,7 +228,7 @@ java-vm_install-env() {
 
# Make the symlink
dodir "${JAVA_VM_DIR}"
-   dosym "${java_home#${EPREFIX}}" "${JAVA_VM_DIR}/${VMHANDLE}"
+   dosym "${java_home}" "${JAVA_VM_DIR}/${VMHANDLE}"
 }
 
 
-- 
2.25.0




[gentoo-dev] [PATCH] fcaps.eclass: skip fcaps() on Prefix.

2020-03-08 Thread heroxbd
From: Benda Xu 

Gentoo Prefix runs with a normal user and cannot grant extra
capabilities.  Exit gracefully with a message.

Signed-off-by: Benda Xu 
---
 eclass/fcaps.eclass | 5 +
 1 file changed, 5 insertions(+)

diff --git a/eclass/fcaps.eclass b/eclass/fcaps.eclass
index 467f955f5e9a..fb0af8cbbde6 100644
--- a/eclass/fcaps.eclass
+++ b/eclass/fcaps.eclass
@@ -78,6 +78,11 @@ DEPEND="filecaps? ( sys-libs/libcap )"
 fcaps() {
debug-print-function ${FUNCNAME} "$@"
 
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME}, 
skipping."
+   return 0
+   fi
+
# Process the user options first.
local owner='root'
local group='0'
-- 
2.25.0




[gentoo-dev] [PATCH] fcaps.eclass: skip fcaps() on Prefix.

2020-03-08 Thread heroxbd
From: Benda Xu 

Gentoo Prefix runs with a normal user and cannot grant extra
capabilities.  Exit gracefully with a message.

Signed-off-by: Benda Xu 
---
 eclass/fcaps.eclass | 5 +
 1 file changed, 5 insertions(+)

diff --git a/eclass/fcaps.eclass b/eclass/fcaps.eclass
index 467f955f5e9a..ddc4d3ccc6d8 100644
--- a/eclass/fcaps.eclass
+++ b/eclass/fcaps.eclass
@@ -78,6 +78,11 @@ DEPEND="filecaps? ( sys-libs/libcap )"
 fcaps() {
debug-print-function ${FUNCNAME} "$@"
 
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME}, skip."
+   return 0
+   fi
+
# Process the user options first.
local owner='root'
local group='0'
-- 
2.25.0




[gentoo-dev] [PATCH] fcaps.eclass: disable fcaps() on Prefix.

2020-03-07 Thread heroxbd
From: Benda Xu 

Gentoo Prefix runs with a normal user and cannot grant extra
capabilities.  Exit gracefully with a message.

Signed-off-by: Benda Xu 
---
 eclass/fcaps.eclass | 5 +
 1 file changed, 5 insertions(+)

diff --git a/eclass/fcaps.eclass b/eclass/fcaps.eclass
index 467f955f5e9a..563d177c92d5 100644
--- a/eclass/fcaps.eclass
+++ b/eclass/fcaps.eclass
@@ -78,6 +78,11 @@ DEPEND="filecaps? ( sys-libs/libcap )"
 fcaps() {
debug-print-function ${FUNCNAME} "$@"
 
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+   return 0
+   fi
+
# Process the user options first.
local owner='root'
local group='0'
-- 
2.25.0




[gentoo-dev] [PATCH] eclass/acct-user.eclass: disable fcaps() on Prefix.

2020-03-07 Thread heroxbd
From: Benda Xu 

  Gentoo Prefix runs with a normal user and cannot grant extra
  capabilities.  Exit gracefully with a message.

Closes: https://bugs.gentoo.org/699526
Signed-off-by: Benda Xu 
---
 eclass/fcaps.eclass | 5 +
 1 file changed, 5 insertions(+)

diff --git a/eclass/fcaps.eclass b/eclass/fcaps.eclass
index 467f955f5e9a..563d177c92d5 100644
--- a/eclass/fcaps.eclass
+++ b/eclass/fcaps.eclass
@@ -78,6 +78,11 @@ DEPEND="filecaps? ( sys-libs/libcap )"
 fcaps() {
debug-print-function ${FUNCNAME} "$@"
 
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+   return 0
+   fi
+
# Process the user options first.
local owner='root'
local group='0'
-- 
2.25.0




[gentoo-dev] [PATCH] ghc-package.eclass: limit the ghc parallel jobs to 64.

2020-03-06 Thread heroxbd
From: Benda Xu 

  If ghc spawns too many C compilers, it will exhaust file descripters.

  In the reference, it was thought to be a macOS bug for aggressive fd
  limits.  But the ghc bug also applies to GNU/Linux, when ghc is
  asked to spawn, for example 256, jobs.

  This patch circumvents this ghc design flaw.

Reference: https://github.com/commercialhaskell/stack/issues/1177
Reference: https://github.com/commercialhaskell/stack/issues/1979
Signed-off-by: Benda Xu 
---
 eclass/ghc-package.eclass | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/eclass/ghc-package.eclass b/eclass/ghc-package.eclass
index 5361f09af1e9..d729f4a407b4 100644
--- a/eclass/ghc-package.eclass
+++ b/eclass/ghc-package.eclass
@@ -203,7 +203,9 @@ ghc-make-args() {
#https://ghc.haskell.org/trac/ghc/ticket/9221#comment:57
# SMP is a requirement for parallel GC's gen0
# 'qb' balancing.
-   echo "-j$(makeopts_jobs) +RTS -A256M -qb0 -RTS"
+   local n=$(makeopts_jobs)
+   [[ ${n} -gt 64 ]] && n=64
+   echo "-j${n} +RTS -A256M -qb0 -RTS"
ghc_make_args=()
fi
echo "${ghc_make_args[@]}"
-- 
2.25.0




[gentoo-dev] [PATCH] eclass/acct-user.eclass: disable pkg_* on Prefix.

2020-02-18 Thread heroxbd
From: Benda Xu 

  Gentoo Prefix runs with a normal user and cannot manage any other user.
  Exit gracefully with a message.

Closes: https://bugs.gentoo.org/709570
Signed-off-by: Benda Xu 
---
 eclass/acct-user.eclass | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass
index be6b3dd3e600..e3ec3966035d 100644
--- a/eclass/acct-user.eclass
+++ b/eclass/acct-user.eclass
@@ -360,6 +360,11 @@ acct-user_pkg_preinst() {
 acct-user_pkg_postinst() {
debug-print-function ${FUNCNAME} "${@}"
 
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+   return 0
+   fi
+
# NB: eset* functions check current value
esethome "${ACCT_USER_NAME}" "${ACCT_USER_HOME}"
esetshell "${ACCT_USER_NAME}" "${ACCT_USER_SHELL}"
@@ -376,6 +381,11 @@ acct-user_pkg_postinst() {
 acct-user_pkg_prerm() {
debug-print-function ${FUNCNAME} "${@}"
 
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+   return 0
+   fi
+
if [[ -z ${REPLACED_BY_VERSION} ]]; then
if [[ -z $(egetent passwd "${ACCT_USER_NAME}") ]]; then
ewarn "User account not found: ${ACCT_USER_NAME}"
-- 
2.25.0




[gentoo-dev] [PATCH] eclass/cmake-utils.eclass: restrict rpath hack to Prefix/rpath

2019-07-11 Thread heroxbd
From: Benda Xu 

  Prefix/standalone does not need it.
---
 eclass/cmake-utils.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass
index ea1858e9735f..109b584afb39 100644
--- a/eclass/cmake-utils.eclass
+++ b/eclass/cmake-utils.eclass
@@ -612,7 +612,7 @@ cmake-utils_src_configure() {
fi
fi
 
-   if [[ ${EPREFIX} ]]; then
+   if use prefix-guest; then
cat >> "${build_rules}" <<- _EOF_ || die
# in Prefix we need rpath and must ensure cmake gets 
our default linker path
# right ... except for Darwin hosts
-- 
2.17.0




[gentoo-dev] [PATCH 2/2] virtual/{c,}blas: add sci-libs/blis as a candidate.

2019-06-26 Thread heroxbd
From: Benda Xu 

  On ld.so-based systems, runtime library switching is possible.  We
  use 'eselect-ldso' to flag this possibility.  In this case, blis can
  used as a drop-in replacement via an `eselect` call.

  Otherwise If USE eselect-ldso is not set, only reference
  implementation will be pulled in.

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Benda Xu 
---
 virtual/blas/blas-3.8.ebuild   | 5 -
 virtual/cblas/cblas-3.8.ebuild | 5 -
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/virtual/blas/blas-3.8.ebuild b/virtual/blas/blas-3.8.ebuild
index e3807aaa8c4a..45bf1cc03013 100644
--- a/virtual/blas/blas-3.8.ebuild
+++ b/virtual/blas/blas-3.8.ebuild
@@ -9,6 +9,9 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc 
~ppc64 ~s390 ~sparc ~
 IUSE="eselect-ldso"
 
 RDEPEND="
-   >=sci-libs/lapack-3.8.0[eselect-ldso?]
+   !eselect-ldso? ( >=sci-libs/lapack-3.8.0[-eselect-ldso] )
+   eselect-ldso? ( || (
+   >=sci-libs/lapack-3.8.0[eselect-ldso]
+   sci-libs/blis[eselect-ldso] ) )
 "
 DEPEND="${RDEPEND}"
diff --git a/virtual/cblas/cblas-3.8.ebuild b/virtual/cblas/cblas-3.8.ebuild
index 0b295963f8de..440e9fc4a540 100644
--- a/virtual/cblas/cblas-3.8.ebuild
+++ b/virtual/cblas/cblas-3.8.ebuild
@@ -9,6 +9,9 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 
~s390 ~sparc ~x86 ~a
 IUSE="eselect-ldso"
 
 RDEPEND="
-   >=sci-libs/lapack-3.8.0[eselect-ldso?]
+   !eselect-ldso? ( >=sci-libs/lapack-3.8.0[-eselect-ldso] )
+   eselect-ldso? ( || (
+   >=sci-libs/lapack-3.8.0[eselect-ldso]
+   sci-libs/blis[eselect-ldso] ) )
 "
 DEPEND="${RDEPEND}"
-- 
2.17.0




[gentoo-dev] [PATCH 0/2] RFC: Introducing ldso switching to BLAS/LAPACK

2019-06-26 Thread heroxbd
From: Benda Xu 

The following 2 patches are to introduce the runtime switching
mechanism to BLAS/LAPACK libraries in Gentoo.

This feature is turned off by default and only the reference
BLAS/LAPACK is used to satisfy the dependencies.  It can be enabled by
USE=eselect-ldso.


Sorry for the glitch to the tree caused by my mistake yesterday.  I am
looking forward to your review.  I am cross posting to -dev and -sci
so as to attract atention from all interested parties.

Cheers,
Benda

Benda Xu (2):
  virtual/{blas,cblas,lapack,lapacke}: add virtual packages.
  virtual/{c,}blas: add sci-libs/blis as a candidate.

 virtual/blas/blas-3.8.ebuild   | 17 +
 virtual/blas/metadata.xml  | 10 +++---
 virtual/cblas/cblas-3.8.ebuild | 17 +
 virtual/cblas/metadata.xml | 10 +++---
 virtual/lapack/lapack-3.8.ebuild   | 14 ++
 virtual/lapack/metadata.xml| 10 +++---
 virtual/lapacke/lapacke-3.8.ebuild | 14 ++
 virtual/lapacke/metadata.xml   | 16 
 8 files changed, 99 insertions(+), 9 deletions(-)
 create mode 100644 virtual/blas/blas-3.8.ebuild
 create mode 100644 virtual/cblas/cblas-3.8.ebuild
 create mode 100644 virtual/lapack/lapack-3.8.ebuild
 create mode 100644 virtual/lapacke/lapacke-3.8.ebuild
 create mode 100644 virtual/lapacke/metadata.xml

-- 
2.17.0




[gentoo-dev] [PATCH 1/2] virtual/{blas,cblas,lapack,lapacke}: add virtual packages.

2019-06-26 Thread heroxbd
From: Benda Xu 

  These virtual packages are used by the BLAS/LAPACK runtime switching
  mechanism.

Closes: https://github.com/gentoo/gentoo/pull/12323
Closes: https://bugs.gentoo.org/373613
Closes: https://bugs.gentoo.org/381801
Closes: https://bugs.gentoo.org/498490
Closes: https://bugs.gentoo.org/563674
Closes: https://bugs.gentoo.org/564546
Closes: https://bugs.gentoo.org/565776
Closes: https://bugs.gentoo.org/646316
Closes: https://bugs.gentoo.org/657984
Closes: https://bugs.gentoo.org/659014
Closes: https://bugs.gentoo.org/659264
Closes: https://bugs.gentoo.org/669644

Signed-off-by: Mo Zhou 
Signed-off-by: Benda Xu 
---
 virtual/blas/blas-3.8.ebuild   | 14 ++
 virtual/blas/metadata.xml  | 10 +++---
 virtual/cblas/cblas-3.8.ebuild | 14 ++
 virtual/cblas/metadata.xml | 10 +++---
 virtual/lapack/lapack-3.8.ebuild   | 14 ++
 virtual/lapack/metadata.xml| 10 +++---
 virtual/lapacke/lapacke-3.8.ebuild | 14 ++
 virtual/lapacke/metadata.xml   | 16 
 8 files changed, 93 insertions(+), 9 deletions(-)
 create mode 100644 virtual/blas/blas-3.8.ebuild
 create mode 100644 virtual/cblas/cblas-3.8.ebuild
 create mode 100644 virtual/lapack/lapack-3.8.ebuild
 create mode 100644 virtual/lapacke/lapacke-3.8.ebuild
 create mode 100644 virtual/lapacke/metadata.xml

diff --git a/virtual/blas/blas-3.8.ebuild b/virtual/blas/blas-3.8.ebuild
new file mode 100644
index ..e3807aaa8c4a
--- /dev/null
+++ b/virtual/blas/blas-3.8.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+DESCRIPTION="Virtual for FORTRAN 77 BLAS implementation"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc 
~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~x86-macos ~sparc-solaris"
+IUSE="eselect-ldso"
+
+RDEPEND="
+   >=sci-libs/lapack-3.8.0[eselect-ldso?]
+"
+DEPEND="${RDEPEND}"
diff --git a/virtual/blas/metadata.xml b/virtual/blas/metadata.xml
index 1b4d6e817c05..35dd50fb4450 100644
--- a/virtual/blas/metadata.xml
+++ b/virtual/blas/metadata.xml
@@ -6,7 +6,11 @@
 Gentoo Science Project
   
   
-Gentoo virtual package for the Basic Linear Algebra Subprograms
-FORTRAN 77 implementation.
-
+Gentoo virtual package for the Basic Linear Algebra Subprograms
+FORTRAN 77 implementation.
+  
+  
+Enable runtime library switching by
+eselect and ld.so.
+  
 
diff --git a/virtual/cblas/cblas-3.8.ebuild b/virtual/cblas/cblas-3.8.ebuild
new file mode 100644
index ..0b295963f8de
--- /dev/null
+++ b/virtual/cblas/cblas-3.8.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+DESCRIPTION="Virtual for BLAS C implementation"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 
~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="eselect-ldso"
+
+RDEPEND="
+   >=sci-libs/lapack-3.8.0[eselect-ldso?]
+"
+DEPEND="${RDEPEND}"
diff --git a/virtual/cblas/metadata.xml b/virtual/cblas/metadata.xml
index 9aac1c20c93f..204ea7552ca9 100644
--- a/virtual/cblas/metadata.xml
+++ b/virtual/cblas/metadata.xml
@@ -6,7 +6,11 @@
 Gentoo Science Project
   
   
-Gentoo virtual package for the Basic Linear Algebra Subprograms
-C implementation.
-
+Gentoo virtual package for the Basic Linear Algebra Subprograms
+C implementation.
+  
+  
+Enable runtime library switching by
+eselect and ld.so.
+  
 
diff --git a/virtual/lapack/lapack-3.8.ebuild b/virtual/lapack/lapack-3.8.ebuild
new file mode 100644
index ..93ddd49d8b79
--- /dev/null
+++ b/virtual/lapack/lapack-3.8.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Virtual for Linear Algebra Package FORTRAN 77 (LAPACK) 
implementation"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 
~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="eselect-ldso"
+
+RDEPEND="
+   >=sci-libs/lapack-3.8.0[eselect-ldso?]
+"
+DEPEND="${RDEPEND}"
diff --git a/virtual/lapack/metadata.xml b/virtual/lapack/metadata.xml
index ccb7a1fa1fad..0b91d851efe1 100644
--- a/virtual/lapack/metadata.xml
+++ b/virtual/lapack/metadata.xml
@@ -6,7 +6,11 @@
 Gentoo Science Project
   
   
-Gentoo virtual package for the Linear Algebra PACKAge
-FORTRAN 77 implementation.
-
+Gentoo virtual package for the Linear Algebra PACKAge
+FORTRAN 77 implementation.
+  
+  
+Enable runtime library switching by
+eselect and ld.so.
+  
 
diff --git a/virtual/lapacke/lapacke-3.8.ebuild 
b/virtual/lapacke/lapacke-3.8.ebuild
new file mode 100644
index ..fc61bf733e2e
--- /dev/

[gentoo-dev] [RFC, PATCH] user.eclass: gracefully return when unprivileged

2017-11-19 Thread heroxbd
From: Benda Xu 

Thanks again.  I will take your original suggestion.

  enewgroup and enewuser does not apply when executed as a normal
  user, e.g. under Gentoo Prefix.
---
 eclass/user.eclass | 8 
 1 file changed, 8 insertions(+)

diff --git a/eclass/user.eclass b/eclass/user.eclass
index 86bcd282479..76a622df698 100644
--- a/eclass/user.eclass
+++ b/eclass/user.eclass
@@ -103,6 +103,10 @@ egetent() {
 # Default uid is (pass -1 for this) next available, default shell is
 # /bin/false, default homedir is /dev/null, and there are no default groups.
 enewuser() {
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+   return 0
+   fi
_assert_pkg_ebuild_phase ${FUNCNAME}
 
# get the username
@@ -262,6 +266,10 @@ enewuser() {
 # do the rest.  You may specify the gid for the group or allow the group to
 # allocate the next available one.
 enewgroup() {
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
+   return 0
+   fi
_assert_pkg_ebuild_phase ${FUNCNAME}
 
# get the group
-- 
2.15.0




[gentoo-dev] [RFC, PATCH] user.eclass: gracefully return when unprivileged

2017-11-19 Thread heroxbd
From: Benda Xu 

Thanks MJ, how about "Unprivileged to execute"? Less bytes.

  enewgroup and enewuser does not apply when executed as a normal
  user, e.g. under Gentoo Prefix.
---
 eclass/user.eclass | 8 
 1 file changed, 8 insertions(+)

diff --git a/eclass/user.eclass b/eclass/user.eclass
index 86bcd282479..8ff06935277 100644
--- a/eclass/user.eclass
+++ b/eclass/user.eclass
@@ -103,6 +103,10 @@ egetent() {
 # Default uid is (pass -1 for this) next available, default shell is
 # /bin/false, default homedir is /dev/null, and there are no default groups.
 enewuser() {
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Unprivileged to execute ${FUNCNAME[0]}"
+   return 0
+   fi
_assert_pkg_ebuild_phase ${FUNCNAME}
 
# get the username
@@ -262,6 +266,10 @@ enewuser() {
 # do the rest.  You may specify the gid for the group or allow the group to
 # allocate the next available one.
 enewgroup() {
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Unprivileged to execute ${FUNCNAME[0]}"
+   return 0
+   fi
_assert_pkg_ebuild_phase ${FUNCNAME}
 
# get the group
-- 
2.15.0




[gentoo-dev] [RFC, PATCH] db.eclass: support Prefix

2017-11-19 Thread heroxbd
From: Benda Xu 

  ROOT and D are replaced with EROOT and ED.
---
 eclass/db.eclass | 30 ++
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/eclass/db.eclass b/eclass/db.eclass
index c46c431ea9c..0c0d0ef14cd 100644
--- a/eclass/db.eclass
+++ b/eclass/db.eclass
@@ -17,7 +17,8 @@ DEPEND="test? ( >=dev-lang/tcl-8.4 )"
 RDEPEND=""
 
 db_fix_so() {
-   LIB="${ROOT}/usr/$(get_libdir)"
+   has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}"
+   LIB="${EROOT}/usr/$(get_libdir)"
 
cd "${LIB}"
 
@@ -50,7 +51,7 @@ db_fix_so() {
 
# do the same for headers now
# but since there are only two of them, just overwrite them
-   cd "${ROOT}"/usr/include
+   cd "${EROOT}"/usr/include
target=`find . -maxdepth 1 -type d -name 'db[0-9]*' | sort -n |cut -d/ 
-f2- | tail -n1`
if [ -n "${target}" ] && [ -e "${target}/db.h" ] && ( ! [[ -e db.h ]] 
|| [[ -h db.h ]] ); then
einfo "Creating db.h symlinks to ${target}"
@@ -67,19 +68,21 @@ db_fix_so() {
 }
 
 db_src_install_doc() {
+   has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}"
# not everybody wants this wad of documentation as it is primarily API 
docs
if use doc; then
dodir /usr/share/doc/${PF}/html
-   mv "${D}"/usr/docs/* "${D}"/usr/share/doc/${PF}/html/
-   rm -rf "${D}"/usr/docs
+   mv "${ED}"/usr/docs/* "${ED}"/usr/share/doc/${PF}/html/
+   rm -rf "${ED}"/usr/docs
else
-   rm -rf "${D}"/usr/docs
+   rm -rf "${ED}"/usr/docs
fi
 
db_src_install_examples
 }
 
 db_src_install_examples() {
+   has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}"
if use examples ; then
local langs="c cxx stl"
[[ "${IUSE/java}" != "${IUSE}" ]] \
@@ -90,15 +93,16 @@ db_src_install_examples() {
src="${S}/../examples_${i}/"
if [ -f "${src}" ]; then
dodir "${destdir}"
-   cp -ra "${src}" "${D}${destdir}/"
+   cp -ra "${src}" "${ED}${destdir}/"
fi
done
fi
 }
 
 db_src_install_usrbinslot() {
+   has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}"
# slot all program names to avoid overwriting
-   for fname in "${D}"/usr/bin/db*
+   for fname in "${ED}"/usr/bin/db*
do
dn="$(dirname "${fname}")"
bn="$(basename "${fname}")"
@@ -109,18 +113,20 @@ db_src_install_usrbinslot() {
 }
 
 db_src_install_headerslot() {
+   has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}"
# install all headers in a slotted location
dodir /usr/include/db${SLOT}
-   mv "${D}"/usr/include/*.h "${D}"/usr/include/db${SLOT}/
+   mv "${ED}"/usr/include/*.h "${ED}"/usr/include/db${SLOT}/
 }
 
 db_src_install_usrlibcleanup() {
-   LIB="${D}/usr/$(get_libdir)"
+   has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}"
+   LIB="${ED}/usr/$(get_libdir)"
# Clean out the symlinks so that they will not be recorded in the
# contents (bug #60732)
 
-   if [ "${D}" = "" ]; then
-   die "Calling clean_links while \$D not defined"
+   if [ "${ED}" = "" ]; then
+   die "Calling clean_links while \$ED not defined"
fi
 
if [ -e "${LIB}"/libdb.a ] && [ ! -e "${LIB}"/libdb-${SLOT}.a ]; then
@@ -139,7 +145,7 @@ db_src_install_usrlibcleanup() {
find "${LIB}" -maxdepth 1 -type l -name 'libdb[1._-]*a' -exec rm \{} \;
 
rm -f \
-   "${D}"/usr/include/{db,db_185}.h \
+   "${ED}"/usr/include/{db,db_185}.h \
"${LIB}"/libdb{,_{cxx,sql,stl,java,tcl}}.a
 }
 
-- 
2.15.0



[gentoo-dev] [RFC, PATCH] user.eclass: gracefully return when unprivileged.

2017-11-19 Thread heroxbd
From: Benda Xu 

  enewgroup and enewuser does not apply when executed as a normal
  user, e.g. under Gentoo Prefix.
---
 eclass/user.eclass | 8 
 1 file changed, 8 insertions(+)

diff --git a/eclass/user.eclass b/eclass/user.eclass
index 86bcd282479..82ccc1100ac 100644
--- a/eclass/user.eclass
+++ b/eclass/user.eclass
@@ -103,6 +103,10 @@ egetent() {
 # Default uid is (pass -1 for this) next available, default shell is
 # /bin/false, default homedir is /dev/null, and there are no default groups.
 enewuser() {
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Donot have enough privilege to execute ${FUNCNAME[0]}"
+   return 0
+   fi
_assert_pkg_ebuild_phase ${FUNCNAME}
 
# get the username
@@ -262,6 +266,10 @@ enewuser() {
 # do the rest.  You may specify the gid for the group or allow the group to
 # allocate the next available one.
 enewgroup() {
+   if [[ ${EUID} != 0 ]] ; then
+   einfo "Donot have enough privilege to execute ${FUNCNAME[0]}"
+   return 0
+   fi
_assert_pkg_ebuild_phase ${FUNCNAME}
 
# get the group
-- 
2.15.0




Re: [gentoo-dev] Re: [gentoo-dev-announce] Service relaunch: archives.gentoo.org

2015-03-04 Thread heroxbd
"Paweł Hajdan, Jr."  writes:

> Awesome work!
>
> I was always proud about Gentoo's mailing list archives - no spam,
> simple UI.
>
> Just wanted to say thanks to a3li, and entire Infra team. Oh, and the
> new design looks great.

Second that.  Thanks a3li and infra.  Good job.

BTW, I love the links of "Find on GMANE/MARC".

Benda


pgpHFKEHH3Fc6.pgp
Description: PGP signature


[gentoo-dev] Re: RFC: Project Android

2014-11-22 Thread heroxbd
Hi Ciaran,

Ciaran McCreesh  writes:

> On Sat, 22 Nov 2014 22:58:17 +0900
> hero...@gentoo.org wrote:
>> It strives to liberate the computers in our pockets with Gentoo
>> philosophy and style, as an ultimate response to Free Software
>> Foundation(FSF)'s concerns on the freedom for mobile computing.
>
> Not sure if serious...

Yes, it is serious.  Software has a lot of flexibility for alienation.
When a mobile device gets more powerful, more of its logic is encoded by
software.  In consequence, it is more likely to be used as a tool to
control and sabotage its users.

Some vendors do release the source code.  But the problems are,

  1. lack of important instructions to reproduce the running system from the
 code

  2. devices with tivoization only boots signed kernels

  3. binary bolbs are needed to talk to specific peripherals

The project, from Gentoo point of view, attacks these problems by, (1.)
using ebuilds to document the build instructions, (2.3.) providing
run-time tools to reverse-engineer the offensive mechanisms.

Cheers,
Benda


pgpD3JQ877ypU.pgp
Description: PGP signature


[gentoo-dev] RFC: Project Android

2014-11-22 Thread heroxbd
Dear fellows,

I have updated the project page of Android at:

  https://wiki.gentoo.org/wiki/Project:Android

to convey the purpose and methodology of the project to the public.  To
quote:

  This project is about bringing Gentoo users and develops home to their
  mobile devices. It aims to produce an environment that is indifferent
  to that of desktop computers. It strives to liberate the computers in
  our pockets with Gentoo philosophy and style, as an ultimate response
  to Free Software Foundation(FSF)'s concerns on the freedom for mobile
  computing.


If you are interested, please share your ideas and consider to join in
the effort.  I would also like to have some help to polish the text to
make it more objective, neutral and Gentoo-centric.

Thank you very much.

Cheers,
Benda




Re: [gentoo-dev] Re: The state and future of the OpenRC project

2014-06-09 Thread heroxbd
Alexey Shvetsov  writes:

> However this will depend on migration of gentoo-x86 to git

Well, we can start evaluating gitlab for git overlays and gentoo hosted
projects, such as (back to topic :) OpenRC.

Is the infra team interested in this option?


pgpqPDX0LzcUz.pgp
Description: PGP signature


Re: [gentoo-dev] The state and future of the OpenRC project

2014-06-09 Thread heroxbd
Alexander Berntsen  writes:

> It would be cool if some of the OpenRC hackers had the time to set up
> a developer's wiki or similar, where they share their workflow and
> similar. 

Nice idea, on my list.


pgp5kJikw7nfi.pgp
Description: PGP signature


Re: [gentoo-dev] Re: RFC: Hosting daily gx86 squashfs images and deltas

2014-01-17 Thread heroxbd
Alex Xu  writes:

> This doesn't really help. Consider that deltas require both a *start*
> and *end*. It's not as simple as adding it all up, since you would need
> a 19-3d, then 3-1d, then 1-0d.

In this case, 19-18d, 18-16d, 16-0d, instead. The largest delta is
always used for the most recent. That's why we need 8 pieces of 2d
delta and 16 pieces of 1d delta.


pgpkuCRmXKr7o.pgp
Description: PGP signature


Re: [gentoo-dev] Re: RFC: Hosting daily gx86 squashfs images and deltas

2014-01-17 Thread heroxbd
Michał Górny  writes:

> However, it may be actually beneficial to provide other durations, like
> weekly deltas. In my tests, the daily updates for this week summed up
> to almost 50M while the weekly was barely 20M.

Is there a way to merge the deltas without the original squashfs? how
fast is the delta generation? It could be done on the server side on the
fly and cached.

Or we provide a set of 16,8,4,2,1 day deltas, then 

 16d: 1 piece needed
 8d: 2 needed
 4d: 4 needed
 2d: 8 needed
 1d: 16 needed

The total of 31 pieces will cover a month (31 days) with at most 5
deltas to be downloaded.

e.g. If the system is 19 days old, then we download a 1d, 2d, and 16d.

Cheers,
Benda


pgpS54FnX5ALN.pgp
Description: PGP signature


Re: [gentoo-dev] Re: Portage QOS

2014-01-10 Thread heroxbd
Duncan <1i5t5.dun...@cox.net> writes:

> Meanwhile, you might try googling Zynot.  That was one early, perhaps the 
> first, Gentoo fork.  Such talk of cutthroat competition in a zero-sum 
> game, of deliberately cutting off user options so they'd be forced to 
> stick with you, of it can be us or them, not both, etc, was exactly the 
> sort of thing they tried.  That was 2002/2003 or so.  While the events 
> and acrimony surrounding that did ultimately drive Gentoo's founder 
> (Daniel Robbins) elsewhere, Gentoo survived (thanks in part to drobbins' 
> efforts to secure a good future for it even at heavy personal cost to 
> himself and his family as he was already in the process of leaving).  
> Gentoo's still here, but where is zynot today?
>
> I remember back in early 2004 as I was researching my switch to gentoo, 
> reading up on zynot, which was at that time still a going concern, and 
> repeatedly asking myself as I read the essays from zynot's founder 
> heavily criticizing gentoo and its founder, why can't he see what's 
> happening, that every single thing he's negatively pointing at in gentoo 
> and drobbins he and zynot are doing themselves in far greater measure, 
> and why he was so stuck on closed source competitive techniques in an 
> open source world.  His very essays, supposedly criticizing gentoo, 
> instead ended up convincing me more than ever that gentoo was /exactly/ 
> the right choice for me. =:^)

Wow... What a history! I am educated. Thanks for sharing.

I've always been interested in my distro's history. The information
scatters here and there. It'll be nice if some senior/retired developers
write up a Gentoo history on wiki.g.o :)

Benda



Re: [gentoo-dev] Portage QOS

2014-01-10 Thread heroxbd
Hi Igor,

Igor  writes:

> I've been using C/C++ since school it's fast, even bad code is working fast.
>
> I WOULD NEVER BELIVE PYTHON IS AS FAST AS C++ with math algorithms
> that do calculate staff and not call functions from pre-complied
> objects written in C/C++.
>
> It's crazy that you're even trying to state it. Take a look at what
> Python is producing in disasm and then look at it in G++.
>
>>> So why do we send Gentoo for food riding on Python? If it were death
>>> we send Gentoo for then I would choose Python but food?
>
>> I'm finding it very hard to stay polite, because ... honestly?
>> You have no idea what you're talking about.
>
> Or vice versa.
>
>> If you want things to change - hire a few of us fulltime to work on
>> things, and you'll get the change you want.
>> Until then there's no need to point out that we are lacking manpower to
>> do large-scale changes, because that's been a constant in most
>> opensource projects since the 1960s.
>
>> Less talking, more doing - provide patches and stop polluting our
>> mailing list with your madness.
>
> See tge subject of this letter. The whole point of this conversation is that
> I offered to design it and program it and offered HARDWARE for it but we
> can't get to the point because it's not clear for everyone if we need it.
>
> If high command not needing it it will find means to kill it and I'm
> very busy, really very busy - can't afford to spend that much time on
> something not useful.

I appreciate your intension to make Gentoo better, at the same time I
could not share the view with you.

Here is the checklist for you:

1. I got a brilliant idea! goto 2
2. Can I realize it by myself?
   Y, goto 6; N goto 3
3. Can I convince someone to do it for me?
   Y, goto 6; N goto 4
4. Can I hire someone to do it for me?
   Y, goto 6; N goto 5
5. Nothing could be achieved :(
6. After rounds of hard work, it comes true :D

Seems that you got stuck at 5. Sorry if you are not willing to adjust
your attitude, your subsequent will be ignored.

Some of the details of your proposal do interest me, such as an
automatic build.log / emerge --info uploader. Supporting mail reply to
bugzilla will even be cooler (which can be used to upload build.log and
emerge --info of course).

Cheers,
Benda



Re: [gentoo-dev] Portage QOS

2014-01-10 Thread heroxbd
Tom Wijsman  writes:

>> I am curious about the slowness of emerge.
>
> Try a --backtrack=0 approach, I no longer need to increase it. :)

on a random box:

time emerge --backtrack=0 -pe @world
[...]
real0m30.016s
user0m29.268s
sys 0m0.704s

time emerge -pe @world
[...]
real0m35.037s
user0m30.824s
sys 0m1.136s

not a big difference?

>> How about profile the portage and rewrite the time-crucial part in
>> C/C++, or ideally, borrowing the counterpart from paludis? How
>> feasible is that?
>
> http://dev.gentoo.org/~tomwij/files/portage-2.2.7-python-2.7-backtrack-0.png
> http://dev.gentoo.org/~tomwij/files/portage-2.2.7-python-2.7-backtrack-0-hot.png
> http://dev.gentoo.org/~tomwij/files/portage-2.2.7-python-3.3-backtrack-0.png
>
> (hot is the hotshot profiler, it internally checks on the line level
> instead; 3.3's profiler is obstructed by module loading, no idea why)

Great! That's what I am looking for.


pgp2YrVrzkrgG.pgp
Description: PGP signature


Re: [gentoo-dev] Portage QOS

2014-01-09 Thread heroxbd
Patrick Lauer  writes:

> For python things you really want  python or C instead of C++...

Well, we have boost-python to do python extensions in C++. And yes,
introducing boost as a dependency to portage is not cool.

>> I guess the dep-tree calculation is the slowest part.
> Yes, it's doing lots of silly dynamic things (backtracking), and
> portage codebase on average is not designed for speed.
>
> As a first step I would recommend profiling it and removing unneeded
> stuff (do less work!), rewriting parts in C is a lot of work and not
> needed for the first round of speedups.

Cython[1] can be used to generate C code quickly to avoid spending to much
time coding in C.

1. http://www.cython.org



Re: [gentoo-dev] Portage QOS

2014-01-09 Thread heroxbd
Hey Igor,

Igor  writes:

> Jeroen, tell me how many users world wide do not prefer to upgrade Gentoo
> on automated basis? There are important servers, and there are many
> cases when after upgrade server stops. Do you remember that recent udev
> change? And there are many similar cases. Imagine that your server
> is running a reactor. So what would you prefer to keep it running the
> reactor as it did flawlessly for 8 years or launch an upgrade taking
> the risks to blast yourself?
>
> Many be it's not only me, but somebody else who is thinking the same?
> Are you sure that the majority of Gentoo users are indulged in
> paranoid automated upgrade and then spending time fixing damage
> that upgrade did?
>
> Do you have a car? Why you don't change EVERY detail in your car on a new
> version on daily basis automatically?
>
> Why don't you change car as soon as a new version is released? Why not
> changing the new mouse, new keyboard, new monitor, new supply daily as
> soon as there is a new version?
>
> Not to mention that you can change daily appearances.

IMHO, the bleeding-edgeness and stability form a balance. We cannot
achieve both. Taking RHEL for example, it uses ancient software for the
sake of stability. Gentoo is way off the other extreme.

For the udev change, the upstream has been doing evil and eudev is not
introduced as the default for Gentoo (yet).

New software breaks things, and security-updated old software needs
extra care: That's the fundamental problem we couldn't circumvent.

Cheers,
Benda



Re: [gentoo-dev] Portage QOS

2014-01-09 Thread heroxbd
Igor  writes:

> The ebuilds have approximately the same time to install, the failure
> rate is about the same, emerge is getting slower.

I am curious about the slowness of emerge.

How about profile the portage and rewrite the time-crucial part in
C/C++, or ideally, borrowing the counterpart from paludis? How feasible
is that?

I guess the dep-tree calculation is the slowest part.



Re: [gentoo-dev] How to support C++11 in libraries?

2013-12-19 Thread heroxbd
Michał Górny  writes:

> Think of paludis as a good example. People who'd like to use Paludis
> will end up with broken package manager from time to time. How are they
> supposed to rebuild it without a working package manager?

Oh, I'm scared. I'll step away and watch out for such situation at all
cost.


pgpvmL8zTx8IU.pgp
Description: PGP signature


Re: [gentoo-dev] How to support C++11 in libraries?

2013-12-19 Thread heroxbd
Michał Górny  writes:

> And that brings another issue in Gentoo -- gcc-config. AFAIR this tool
> is completely insane and switches libstdc++ along with gcc version.
> As a result, after switching to a gcc version with different C++ ABI,
> installed software gets broken. And you can't really fix it without
> going through the broken-system state or some hackery.

Not that insane. Packages linked with libstdc++ are not crucial in
Gentoo, and can be rebuilt with emerge -e @world. Although it's a bad
idea for everybody to do so, the systems without "emerge -e @world" for
two years is likely to suck anyway.

It just reflects the fact that the world is not perfect.


pgp5ze1bLsmnb.pgp
Description: PGP signature


Re: [gentoo-dev] How to support C++11 in libraries?

2013-12-18 Thread heroxbd
Michał Górny  writes:

> This is nowhere near a good solution IMO.
>
> First of all, it doesn't give us a way of ensuring ABI compatibility.
> Users switch the flags and have to rebuild all C++ packages to regain
> the ABI compatibility. The system ends up borked quite easily.
>
> Then, we don't have a good way of finding packages to rebuild. Users
> could try to find out which libraries used C++ but well... it's nowhere
> near good. Or they just rebuild everything...
>
> Then, many developers just won't bother. Users will be the ones to hit
> the incompatible package build failures first.
>
> Lastly, this gives us no way of switching to C++11 completely without
> modifying the compiler defaults. Even if we put '-std=c++11' into
> profiles, most of the people override CXXFLAGS and won't have it.
>
>> Any anyway, if it is only for lldb, a piece of elog conveying a
>> preferred solution would suffice.
>
> elog? I think you mean dying with CXXFLAGS that don't specify
> the necessary standard. Which is kinda backwards to REQUIRED_USE...
>
> And then, simple CXXFLAGS solution would end up breaking users'
> systems...

Michał, I am totally agree with you. This approach will leave lots of
dirty tricks to the users. Therefore this is a decision between whether
the devs or the users do this heavy lift.

If the the reason is only lldb and less than 10 other ebuilds, I feel it
not worth the develop and maintenace time. And if you have only met with
this problem twice, I suggest playing with it by the simplest solution
(via CXXFLAGS) for a while to avoid early optimization.

This is just my honest view on simple vs complex. Given the expertise
you hold in the realm of ABI, introducing a new ABI to maintain might
not be a big deal to you. Then I understand.

Cheers,
Benda


pgpiPL6Z_CKNV.pgp
Description: PGP signature


Re: [gentoo-dev] How to support C++11 in libraries?

2013-12-18 Thread heroxbd
"C. Bergström"  writes:

> "Best case" both build and you end up with a linker problem (can be
> worked around with compiler patches)
> /usr/lib64/libboost.so
> /usr/lib64-c++11/libboost.so

This is the right way to do, but as scary as our multilib where a
couple of USE flags are introduced to every package globally.


Re: [gentoo-dev] How to support C++11 in libraries?

2013-12-18 Thread heroxbd
Hey Jan,

Jan Kundrát  writes:

> This perspective is interesting (and I admit that I tend to like it) -- 
> considering packages which won't build with C++11 to be buggy.
>
> I'm worried by the cost of such a policy, though, because we would
> suddenly have to patch some unknown amount of software (and I'm pretty
> sure some upstreams would reject these patches anyway). If we were an
> enterprise distro with binary compatibility requirements, we would
> also have to worry about that and either assume that the ABI changes
> are non-issue in real world, or provide two versions of all C++
> libraries. I tried to check how RHEL7 will deal with it, but I wasn't
> able to find any information about that. It also seems that Fedora
> hasn't addressed this yet, either.
>
> Either way, it is reasonable to assume that some users would like to
> build their own software and link it with system libraries. It is not
> reasonable to force these users to build in the C++11 mode, IMHO.

I'd like to make an analogy to the version bump of gcc[1]. We (gentoo)
decide to support c++11 officially or not. If so, open a tracker bug to
push it globally. If not, patch lldb to support non-c++11, or leave it
up to the user to fiddle with the CXXFLAGS, where we only point the user
by to proper docs.

There is no problem to introduce a new USE flag for a new ABI. I am
concerned with too many ABIs for an average ebuild keeper to maintain.

Benda

1. https://bugs.gentoo.org/show_bug.cgi?id=gcc-4.8


Re: [gentoo-dev] How to support C++11 in libraries?

2013-12-18 Thread heroxbd
Hey, Michał,

Michał Górny  writes:

> a) adding USE=c++11 and USE-deps to all the packages in question,

I think it is better achieved by a (simple and stupid) global
CXXFLAGS. Adding an extra USE flag feels a little over-engineering.

Any anyway, if it is only for lldb, a piece of elog conveying a
preferred solution would suffice.

> b) doing the switch via synchronous version bump and matching
> dependencies.

This sounds tedious to maintain.

Benda


pgpdHEtePjCLe.pgp
Description: PGP signature


Re: [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead?

2013-12-08 Thread heroxbd
[reordered to ease replying]

Rich Freeman  writes:
> Now, perhaps a more balanced approach might be to mask it and give 15
> days notice on -dev, and then it can be unmasked.  Anybody who cares
> about the library can test the new version, and if necessary update
> their dependencies to use the previous slot only (and if 15 days isn't
> enough time they can just update the dep right away and then update it
> again after they get around to testing it).  Those who don't want to
> have to deal with that can just define their slot dependencies
> explicitly so that this policy will never apply to them.

Good idea!

> The problem with this is that it puts the onus on the person who wants
> to make forward progress (adding support for a new library version).
> That means that they have incentive to either not bother with the new
> library version (causing Gentoo to stagnate), or use hacks like giving
> the library a new name (which we have examples in the tree of).

> In order for a QA policy to be effective it has to either be minimally
> intrusive, or make the cost of compliance lower than the cost of
> workarounds or benign neglect.  People don't HAVE to maintain
> packages, after all...

I agree with that. We are all aware that every gcc slot bump costs so
much work (and frustration).

At the same time, it worth the hard work for a well-organized tree and
flexibility.

The only draw back is lack of man power to do it right like bug
493652. Yes, when a library introduces a new not fully compatible
version, it naturally implies a lots of work to do for downstream like
us. There is no escape: If we hack a versioned library name, it will
bite us in the future. The question becomes: Who should do this heavy
lifting?

This is a glitch in the amount of work needed when a single-slotted
library suddenly becomes slotted. IMHO, let's form a slotting group in
the reformed QA team who will donate manpower for such situation to aid
the library maintainer. Anyone who wants to make forward progress but
does not have enough time seeks help to the slotting group.

What do you say?

Benda



Re: [gentoo-dev] Dependencies default to accept any slot value acceptable (:*), can we default to :0 instead?

2013-12-08 Thread heroxbd
Rich Freeman  writes:

> A new slot of a package (which doesn't exist today) may or may not
> work with any ebuild in the system.  Should it be considered a best
> practice then to specify || deps with all slots that are known to work
> in the tree?  Or should we just trust to luck and consider it
> acceptable for maintainers to add new slots of commonly-used libs and
> users and downstream maintainers can deal with the resulting breakage?
>
> Library maintainers don't seem to like dealing with that, so they just
> stick new slots in an entirely new package, and then we end up with
> all the || dependencies anyway and we make no use of the nice slot
> syntax because it is prone to breakage.
>
> It seems like the current way we handle slots for dependencies works
> just fine until somebody actually tries to introduce a new slot for a
> package, and then a whole pile of assumptions comes crashing down.

How about defining a QA workflow for introducing a new slot of a
library, such as "mask it and open a tracker bug until every individual
reverse dependencies are checked"?

Benda



Re: [gentoo-dev] python versioned libraries or not

2013-12-07 Thread heroxbd
yac  writes:

> Shouldn't pkg-conifg --libs handle this?

Oh, good idea. But boost doesn't have pkg-config entries.

Then I see this one, an upstream issue

 https://svn.boost.org/trac/boost/ticket/1094

Thanks.


pgpf7FoU2HZeq.pgp
Description: PGP signature


[gentoo-dev] python versioned libraries or not

2013-12-04 Thread heroxbd
Dear all,

I have only one python-2.7 on my system. Simple and stupid.

After boost ebuild is converted to python-r1, libboost_python.so is
renamed to libboost_python-2.7.so. This is all cool about python-r1 for
multiple python implementation support.

At the same time, I don't need this feature. I have a couple of
Jamroot's which append "-lboost_python" to LDFLAGS, and I have to
manually specify "-lboost_python-2.7". Moreover, libraries depending on
boost.python, e.g. Boost.NumPy[1], searches for boost_python and
boost_python-mt only. I am forced to patch the build system to pass
"-${PYVAR}" to it, which is tedious.

I am looking for a way out. Candidates are,

1. scan all python versioned libraries and symlink them to
   unversioned one. Question: hints to do it systematically in
   portage? Is there a helper available like python-exec?

2. python-single-r1 is ready for use, but it requires manipulating
   the boost ebuild to change from python-r1, if I want a
   python-single-r1 blessed boost. Question: How about merging
   python-single-r1 with python-r1 and controlling by a global USE
   flag "python-single". When "python-single" is set, all ebuilds
   inheriting python-r1 behaves as if being with python-single-r1,
   so that all python versionings on executables and libraries are
   disabled.

3. or something I missed

Comments?

Benda

1. https://github.com/ndarray/Boost.NumPy



Re: [gentoo-dev] Suggestion: support the Dev team with system resources

2013-11-08 Thread heroxbd
Johann Schmitz  writes:

> Is it possible to run, say, mips on xen/whatever through some
> emulation layer or is real hardware a requirement for this archs?

Yes, via qemu. But very slow, nearly unusable even on a powerful
mainstream amd64 server.



Re: [gentoo-dev] Suggestion: support the Dev team with system resources

2013-11-07 Thread heroxbd
Dear Denis,

"Denis M."  writes:

> Please review this, and if you agree that it'd be a good idea come
> with any suggestions to make it happen as well as with any other
> thoughts/sys-specs/instances we should be looking for.

Thanks for the offering. Though not a member, AT teams might benefit
from such a build farm.

What are you suggesting practically, making a policy for everyone to
donate VM to Gentoo, or developing a midware to do so?

Cheers,
Benda



Re: [gentoo-dev] Releng breakage with respect to move from dev-python/python-exec to dev-lang/python-exec

2013-11-03 Thread heroxbd
Alan McKinnon  writes:

> One set of questions that were never answered and probably do deserve
> some kind of notification:
>
> 1. What exactly is python-exec anyway?
> 2. Why are there two, in dev-python/ and dev-lang/ ?
> 3. One has a version of -1, which is *highly* unusual, what is that
> exactly? 1 more than -?
> 4. There is some kind of migration going on between an old and new
> python-exec, but I can't understand it using only standard portage tools.

I can resonate with these questions.

I bet it's common for people outside the python herd.



Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-10-03 Thread heroxbd
Hey Chris,

Chris Reffett  writes:

> Indeed I have. If you want to start such a project, I would certainly
> be interested in joining. Plasma Active is basically untested because
> I don't have a mobile device with Gentoo and installing it on a normal
> computer leads to display sizing issues, but I welcome any suggestions
> or bug reports you have for that.

Great idea.

As qt4 already supports wayland, we'll head to Plasma Active as soon as
we have a wayland.

Unfortunately at present, we have no code for graphics at all. It might
take long.

> What I would really like to see come out of this is some pre-made
> Gentoo stage4s for different kinds of devices, which I think would be
> a big draw for users.

Yeah, https://wiki.gentoo.org/wiki/Project:Android/tarball serves the
purpose.

Cheers,
Benda



Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-10-03 Thread heroxbd
Hey Alexey,

Alexey Mishustin  writes:

> My rooted Samsung Galaxy S2 is also ready to receive and to test this
> kind of Gentoo.

Sorry for being slow. I made it finally. Would you like to test it on
your favorite Galaxy S2?

  https://wiki.gentoo.org/wiki/Project:Android/tarball

Also, feel free to append it to the device list

  https://wiki.gentoo.org/wiki/Project:Android/devices

Cheers,
Benda



Re: [gentoo-dev] Gentoo Upgrade Guide and EAPI

2013-09-30 Thread heroxbd
"Rick \"Zero_Chaos\" Farina"  writes:

> While I'm not nearly good enough to detail how this should happen
> exactly, please, may I beg, do an eclass revision for this.  

There is an r1 candidate as Paweł initiated (bug 474358)

> The fact that this hasn't been done clearly implies it is a lot of
> work.  Let's not risk stable, let's simply make toolchain-r1.eclass or
> whatever, and bump that to eapi5.  At the end of the day, this allows
> working and testing without odd issues, and if everyone really hates
> that idea you can simply drop the changes into the original eclass
> when it's all done.

Having a unstable eclass as toolchain-r1.eclass in tree might not be a
good idea compared to an overlay though.

Regarding eclass, I have a question: Why do we keep all old versions of
gcc and glibc? If the point is only being upgradable from old Gentoo, is
the requirement lefted now? If it is for users who need a specific
version of gcc/glibc, why don't we create a toolchain-archive overlay
for that purpose? In the overlay we can have historical snapshots of
toolchain.eclass, too.

Keeping only a few version of gcc in tree will ease the maintenance of
toolchain eclass a lot.

Benda


Re: [gentoo-dev] Gentoo Upgrade Guide and EAPI

2013-09-28 Thread heroxbd
"Rick \"Zero_Chaos\" Farina"  writes:

> On 09/28/2013 03:00 AM, Ulrich Mueller wrote:
>>>>>>> On Sat, 28 Sep 2013, heroxbd  wrote:
>> 
>>> I am revisiting this topic based on previous discussions[1,2,3].
>> 
>>> There seems to be a constant need for toolchain with a new EAPI. The
>>> only block is "how can we upgrade from an ancient system?", "don't
>>> bump or the upgrade path will be break". Let's figure out a solid
>>> upgrade path consciously, with a test farm of ancient systems, and
>>> then bump the EAPI of toolchain.
>> 
>> The upgrade path is not at all what is blocking this. In its 20130409
>> meeting, the council has (unanimously) decided: "EAPIs 0 to 2 are no
>> longer required for the upgrade path of users' systems."
>> 
>> The reason why toolchain packages are still at EAPI 0 was explained in
>> this posting:
>> http://thread.gmane.org/gmane.linux.gentoo.project/2369/focus=2377
>> 
>> AFAICS, changing that is entirely the task of the toolchain team.

Thank you for the clarification, Ulrich.

> Yes, it is entirely the task of the toolchain team, and looks like
> heroxbd joined the toolchain team and would like to push the rest of his
> team for this update. Something I greatly thank him for.
>
> I don't think any dev wants to (or really could) force toolchain to
> update individually, however, if motivated people want to join the team
> and help, his question appeared to be will it be permitted to be
> updated.

Can't agree with you more.

It's just a starting point, though. I still don't have a clear plan yet.

After reading carefully the thread Ulrich pointed out, it seems that
refactoring ebuild/eclass is invevitable, which calls for an overlay to
carry it on.

Benda



[gentoo-dev] Gentoo Upgrade Guide and EAPI

2013-09-27 Thread heroxbd
Dear Fellows,

I am revisiting this topic based on previous discussions[1,2,3].

There seems to be a constant need for toolchain with a new EAPI. The
only block is "how can we upgrade from an ancient system?", "don't bump
or the upgrade path will be break". Let's figure out a solid upgrade
path consciously, with a test farm of ancient systems, and then bump the
EAPI of toolchain.

Besides the upgrading guide[4] suggesting a chroot, rich0 had some
experiences with a live overwriting of latest stage3 to /, recently I've
heard from patrick of a script to bootstrap Gentoo lively on an existing
system (be it Debian, Red Hat or an ancient Gentoo).

Here is another alternative from Prefix (upgrading the kernel is mostly
independent):

  a. we distribute a stage3 of Gentoo RAP(i.e. Prefix with libc), with
 EPREFIX pointing to, say, /tmp/upgrade
  b. sync the potage tree in the host system, switch it to the newest
 profile.
  c. PORTAGE_OVERRIDE_EPREFIX=/ /tmp/upgrade/usr/bin/emerge -e world

It has the same solidity as the chroot while being easier without the
need to mount back and forth. It can track installed files properly as
opposed to overwriting /.

This needs a lot of work to do the testing. At the same time, there are
definitely a dozen of developers who want to bump the EAPI of
toolchain. Let's share the workload.


vapier, if we can figure out a solid and easy solution for upgrading
ancient Gentoo, would you agree on bumping the EAPI of toolchain?


Cheers,
Benda

1. http://thread.gmane.org/gmane.linux.gentoo.devel/86803
2. http://article.gmane.org/gmane.linux.gentoo.devel/73767
3. http://article.gmane.org/gmane.linux.gentoo.project/2841
4. http://www.gentoo.org/doc/en/gentoo-upgrading.xml



Re: [gentoo-dev] markdown docs like README.md

2013-09-24 Thread heroxbd
hasufell  writes:

> I wonder if it would make any sense to take the effort to convert
> markdown docs to html format before installing them.

I'd rather leave it alone, as markdown is more readable than html, IMHO.

Anyway, when we read html in the console, it's converted back to plan text.



[gentoo-dev] Reference Implementation for GLEP RAP Draft

2013-09-08 Thread heroxbd
Dear all,

We have just pushed out a reference implementation for GLEP RAP
(i.e. Prefix with libc) draft:

  http://article.gmane.org/gmane.linux.gentoo.alt/6663

Hope this will help people grab the idea behind it and help the council
review and decide on the GLEP draft[1].

At the moment, amd64, x86 and arm running Linux are supported.

Cheers,
Benda

1. http://article.gmane.org/gmane.linux.gentoo.project/3023



Re: [gentoo-dev] Moving more arches to dev profiles

2013-08-21 Thread heroxbd
Markos Chandras  writes:

> I propose the following arches to lose their stable keywords
>
> - s390
> - sh
> - ia64
> - alpha
> - m68k
> - sparc

I support this proposal.

I only have an old sparc box at hand. They are no longer major as time
goes, IMHO.



Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-17 Thread heroxbd
Dear Arun,

Arun Raghavan  writes:

> None of these worked for you? https://wiki.ubuntu.com/Touch/Install
>
> I believe there were efforts to port to arbitrary non-Nexus devices as
> well.

Ah, get to understand what you have meant. I was not talking about
replacing mobile devices with a GNU/Linux, not even dual booting. It was
running GNU in parallel to Android, sharing the same Linux kernel and
hardware, cooperating with each other.

Cheers,
Benda



Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-17 Thread heroxbd
Arun Raghavan  writes:

> There are images available for this, btw, if you want to see how it
> works and poke around. I'd seen some repositories, but don't know if
> there's enough public to do your own build.

I am very interested in such an image. Would you please dig out a link
for me? I searched the web in vain.

>> As a natual consequence of the on-going Google Summer of Code project,
>> Gentoo on Android[3], we can run native Gentoo on *all* the Android
>> devices. Compiling out an Xorg and output to HDMI has no theoretical
>> difficulty. Furthermore, sharing of graphic output with Android (instead
>> of a separate HDMI output) can be explored with wayland x11[4].
>
> There are a lot of _hard_ problems here (display, audio, input,
> codecs), not to even begin on proper policy integration (your phone is
> hooked up, voice call starts, what do you do).

Yes, you're right.

> That's not to discourage your effort at all - I think it's great that
> you're kicking this off and that there is so much enthusiasm for this.
> I look forward to seeing the solutions that emerge to solve all of
> these, and am happy to offer to test on a device or two.

I'd make it incremental, by releasing only a full Gentoo environment
(Gentoo RAP) as the first step. Then base on that, gather forces to
attack the hard(-ware) problems you mentioned.

Cheers,
Benda



Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-17 Thread heroxbd
"Rick \"Zero_Chaos\" Farina"  writes:

> You know what I've done with this kind of thing already.  I am at your
> disposal.  If you want to publicly embarass canonical by releasing
> something awesome (either first or better) I can find the time to help.
>  You know where to find me ;-)

That's great, Rick!

Come and add yourself here,

 http://www.g.o/proj/en/gentoo-alt/android/index.xml

The page calls for extra love to be expanded.

See you in the usual place!
Benda


pgpL0o5WyovfB.pgp
Description: PGP signature


Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-17 Thread heroxbd
Alexey Mishustin  writes:

> My rooted Samsung Galaxy S2 is also ready to receive and to test this
> kind of Gentoo. Will be important the version of Android installed?

No, it would be agnostic to Android versions.

CPU of Galaxy S2 belongs to armv7a hardfloat, which is our main release
target.

Just a minute, I'll release a stage3 tarball.

Benda



Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-17 Thread heroxbd
"Andreas K. Huettel"  writes:

> while I won't have the time to contribute much, I would like to tell you that 
> this is definitely a very cool and worthwhile project! I think you should 
> make 
> a project page and sign yourself up as team lead immediately... :)

Thank you, Andreas. I've started a subproject here,

  http://www.gentoo.org/proj/en/gentoo-alt/android/index.xml

> Chris Reffett from KDE team has done already a lot of work on packaging 
> Plasma 
> Active, see http://plasma-active.org/ - it's in the KDE overlay but mostly 
> untested so far. You might be interested!

Talked to him on IRC. Thanks for the info.

Benda


pgpj9mqlWvjFP.pgp
Description: PGP signature


Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-17 Thread heroxbd
Samuli Suominen  writes:

> Does gpe-base/* and gpe-utils/* relate to this at all?

Somehow. Just as Plasma Activity, it could be used as a GUI but not
necessarily.

Benda



Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-14 Thread heroxbd
"Paweł Hajdan, Jr."  writes:

> Sounds good. Note that it doesn't need to be set up as "against
> Canonical". Just do the best thing for the users.

Thanks. I'd take your advice.

>> I would like to kick out a sub-project of Gentoo targeting smartphone
>> and tablets. It would be nice to find out a solution based on Gentoo
>> for desktop/smartphone hybrid *before* Canonical's release.
>
> Everybody can create a sub-project, and I'm happy to see this kind of
> project appearing in Gentoo.
>
> I'd recommend focusing on creating a good, compelling experience, not
> just pushing out something before Canonical. :)

Yes, I agree. 


pgpVnDXtIHVc5.pgp
Description: PGP signature


Re: [gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-14 Thread heroxbd
Daniel Campbell  writes:

> I'm not a developer but this project's existence would motivate me to
> get a compatible smartphone and test this new Gentoo version on it,
> assuming it's also capable of standard phone calls and texts, etc.

This assumption certainly holds firm. It is firstly a phone and then a
computer.



Re: [gentoo-dev] Re: RFC: GLEP rap (Prefix/libc)

2013-08-14 Thread heroxbd
Dear Duncan,

Duncan <1i5t5.dun...@cox.net> writes:

> heroxbd posted on Mon, 12 Aug 2013 16:45:56 +0900 as excerpted:
>
>> I have made a GLEP draft to standardize our recent effort on using our
>> own libc from portage inside Prefix.
>> 
>> At present only glibc on linux is supported.
>> 
>> The rst text are included inline.
>
> Hi.  I know nothing about prefix so won't attempt a comment on that.  
> There were, however, just a few sentences that did not read very smoothly 
> to me as a native English speaker, so here are some (relatively minor) 
> suggested changes.  Mostly, I'm simply adding a few "the"s and changing 
> verb tense in a few spots, but there's a couple sentence splitting/
> combining/rewording suggestions as well.

Your linguistic suggestion is very much appreciated! I could never find
out these natural rephasing by myself.

I have applied all and tracked it with a git repo:

  http://git.heroxbd.z.tuna.tsinghua.edu.cn/?p=doc.git;a=commitdiff;h=aa51133

>> Motivation ==
>
> ...
>
>> RAP
>> Literally means *Rap Ain't Prefix*.  It serves as an acronym of
>> *Prefix with libc* and is used interchangeably in this GLEP.
>> 
>> Userspace of RAP is identical to Gentoo Linux, therefore more uniform
>> and robust.  RAP helps the ongoing effort of merging prefix and gx86
>> portage trees [#pgx86]_.
>
> THE userspace of RAP is ... (Insert "The". I'll use ALL CAPS to denote 
> most of my changes.)

Applied.

> Kudos for the self-referential name, BTW! =:^)

Thanks :D

>> Thanks to the completely independent userspace, RAP can run on any
>> kernel that glibc was ported to
>
> ... that glibc HAS BEEN ported to ... (not was)

Applied.

>> Rationale =
>> 
>> Gentoo Linux, though often cited as *metadistribution*, originates from
>> a Linux distribution.  Linux is supported better in Gentoo.  In Prefix
>> community, the merging of prefix and gx86 portage trees [#pgx86]_ is
>> brought back by non-Linux systems such as Mac OS X and Solaris.
>
> This paragraph read really rough for me, likely even more so as I'm not 
> familiar enough with prefix to be sure what you're actually trying to 
> say.  However, this is my best guess (again, changes in ALL CAPS):
>
> ... originatED AS a Linux distribution, AND Linux REMAINS BEST 
> supported.  In THE Prefix community, ...
>
> (Put "originated" in past tense.  Replace "from" with "as".  Merge the 
> two sentences using "and" and reword slightly since the second is so 
> closely related to the first.  "The" prefix community...)

Applied

> I /believe/ there's a further problem later in that sentence (... is 
> brought back...), but I'm simply not familiar enough with prefix to have 
> a clue what the intended meaning was or to suggest better wording.  
> Hopefully someone else with better knowledge of the domain can suggest 
> something... or confirm that it's fine as-is and I simply didn't know 
> what I was talking about.

non-Linux platforms like Mac OS X requires larger maintenance love than
its Linux conterparts. The same is true for porting non-Linux back to
gx86. The present effort merging Prefix overlay treats non-Linux and
Linux equally, with the developers' time most spent on non-Linux. In the
sense Linux is much easier to be merged, it is brought back by non-Linux
ones.

>> Backwards Compatibility ===
>> 
>> RAP cannot be mixed with present Prefix Linux implementation based on
>> rpath if version of the host glibc is too low.
>
> ... cannot be mixed with THE present ... based on rpath if THE version 
> of...

Applied.

>> Specification =
>> 
>> Present Prefix Linux uses *rpath mechanism* [#rpath]_, namely encode a
>> prefixed library path into RPATH and RUNPATH in dynamic section of ELF. 
>
> PresentLY, Prefix Linux uses THE *rpath mechanism* [#rpath]_.  Namely, 
> encode a prefixed library path into RPATH and RUNPATH in THE dynamic...
>
> ("PresentLY", comma.  Add a couple "the"s.  If you keep "namely", split 
> the sentence in half.)
>
> Another alternative (the way I'd likely word it myself) would change the 
> tense to "encoding" and skip "namely":
>
> Presently, Prefix Linux uses the *rpath mechanism* [#rpath]_, encoding a 
> prefixed library path into RPATH and RUNPATH in the dynamic...

Adopted the second.

>> RAP, on the other hand, encode a prefixed dynamic loader into INTERP in
>> the program header of ELF.
>
> RAP, on the other hand, ENCODES a prefixed dynamic

[gentoo-dev] desktop experience on smartphone: thoughts and plans against Ubuntu edge

2013-08-12 Thread heroxbd
Dear Fellows,

Canonical is raising money by pushing their concept of Ubuntu for
Android[1][2]. The idea is to put GNU environment (esp. Ubuntu userland)
in parallel to Android to drive the external HDMI output with X11
protocal, so that desktop applications can run on the smartphone.

The idea is cool, but not new. The idea is general to all android
devices, while Canonical is binding the concept with its own new device.

The project is developed underground by Canonical, so far nothing, not
to say repository, is available except advertisements and the call for
people to donate.

As a natual consequence of the on-going Google Summer of Code project,
Gentoo on Android[3], we can run native Gentoo on *all* the Android
devices. Compiling out an Xorg and output to HDMI has no theoretical
difficulty. Furthermore, sharing of graphic output with Android (instead
of a separate HDMI output) can be explored with wayland x11[4].

I feel sorry to the behavior of Canonical. We, people from the Gentoo
community, can show the general public what is the cooperative way to
develop desktop/smartphone hybrid to benefit all.

I would like to kick out a sub-project of Gentoo targeting smartphone
and tablets. It would be nice to find out a solution based on Gentoo for
desktop/smartphone hybrid *before* Canonical's release.

Comments welcome.

Cheers,
Benda

1. http://www.ubuntu.com/phone/ubuntu-for-android
2. http://www.indiegogo.com/projects/ubuntu-edge
3. http://www.awa.tohoku.ac.jp/~benda/projects/android.html
4. http://en.wikipedia.org/wiki/Wayland_%28display_server_protocol%29



[gentoo-dev] RFC: GLEP rap (Prefix/libc)

2013-08-12 Thread heroxbd
entation can found at developer `overlay of
heroxbd`_.

The native variant of sysroot feature of binutils and gcc discussed in
this GLEP will be submitted upstream after thorough testing.

References
==

.. _Gentoo on Android: http://www.awa.tohoku.ac.jp/~benda/projects/android.html

.. _Gentoo Prefix: http://prefix.gentoo.org

.. [#centos5] emerge gcc 4.4.x/4.5.x fails ...,
  http://thread.gmane.org/gmane.linux.gentoo.alt/6110

.. [#fortify] >=sys-devel/gcc-4.3 fails ...,
  https://bugs.gentoo.org/show_bug.cgi?id=289757

.. [#pgx86] Moving prefix/EAPI-3 support into the gentoo-x86 tree,
https://bugs.gentoo.org/show_bug.cgi?id=315803

.. [#rpath] gcc/ld wrappers injecting correct flags stuff,
http://article.gmane.org/gmane.linux.gentoo.alt/1125

.. [#glibcpfx] sys-libs/glibc Prefix support,
   https://bugs.gentoo.org/show_bug.cgi?id=473728

.. [#ldinfo] ld Info Section 3.4.2, Commands Dealing with Files

.. _overlay of heroxbd: http://git.overlays.gentoo.org/gitweb/?p=dev/heroxbd.git

.. _Android: http://www.android.com

Copyright
=

This document has been placed in the public domain.



Re: [gentoo-dev] RFC: cartesian product extension to keyword system

2013-04-29 Thread heroxbd
Hi Ben,

Ben de Groot  writes:

> To me this looks to be needlessly complex.

There is an alternative way to do this:

  @-linux

to mean "the ebuild works on every keyworded arch on Prefix with Linux
kernel".

Cheers,
Benda



Re: [gentoo-dev] RFC: cartesian product extension to keyword system

2013-04-29 Thread heroxbd
Dearr Fabian,

Fabian Groffen  writes:

>> Furthermore if the ebuild has "amd64" keyword, it will certainly
>> build on amd64-linux too.
>
> Somewhat likely, but absolutely not true.

Sorry, the original phrase was vague. I meant, if an ebuild is keyworded
"amd64" and "x86-linux", it will certainly work on "amd64-linux"

>> Therefore we propose the following cartesian product extension to
>> keyword system.
>
> We added the keywords as is, to uniquely define which systems it works
> on. Assuming something will work because it should be similar is (and
> has been proven in the past to be) wrong.

Every system is different. We are grouping similar systems into
corresponding keywords, and already assuming ability for
extrapolation. And now we observe that ARCH and KERNEL are quite
independent. They can be decomposed into two dimensions. Why don't me
exploit this fact?

Cheers,
Benda



pgpftlilfsgwV.pgp
Description: PGP signature


[gentoo-dev] RFC: cartesian product extension to keyword system

2013-04-29 Thread heroxbd
Dear all,

In GLEP22[1], reasonable defaults has been introduced to prevent the
explosion of keywords. With the growth of Gentoo Prefix, however, a
substantial amount of keywords are introduced. Among them, duplex
information exists. For example, an ebuild keyworded x86-linux(Gentoo
Prefix on x86 linux) will certainly build on x86 (Gentoo vanilla on x86
linux). Furthermore if the ebuild has "amd64" keyword, it will certainly
build on amd64-linux too.

This duplication becomes more manifested during the development of
Gentoo Prefix on arm. Introducing an arm-linux keyword is objected by
developers because we are having too many keywords[2]. But it is far
from consensus yet, as people are already adding arm-linux to
ebuilds[2].

There were also a proposal to treat arm the same as arm-linux, but
received more objections for its vagueness.

Therefore we propose the following cartesian product extension to
keyword system.

a. introducing four more variables, in order, KEYWORDS_ARCH,
   KEYWORDS_KERNEL, KEYWORDS_USERLAND, KEYWORDS_LIBC. An order relation
   is defined as arch > kernel > userland > libc

b. KEYWORDS_var1 must be defined if KEYWORDS_var2 is defined and var2 <
   var1. Otherwise it can be omitted.

c. KEYWORDS_PROD is defined as cartesian product of KEYWORDS_ARCH,
   KEYWORDS_KERNEL, KEYWORDS_USERLAND, KEYWORDS_LIBC. Omitted variable
   is interpreted as empty and not counted in the product. e.g., if
   KEYWORDS_USERLAND and KEYWORDS_LIBC are not defined, KEYWORDS_PROD is
   the product of KEYWORDS_ARCH and KEYWORDS_KERNEL.

c1. "~" is attached to KEYWORDS_PROD elements if any of its oprand has "~".

d. KEYWORDS is redefined as union of KEYWORDS_PROD and KEYWORDS (for
   backward compatibility)

e. reasonable defaults in GLEP22 applys.

Therefore, for sys-devel/bison, the keywords proposed will be:

KEYWORDS="~hppa-hpux ~m68k-mint ~ppc-aix ~x64-solaris ~x86-interix

KEYWORDS_ARCH="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh 
~sparc ~x86"

KEYWORDS_KERNEL="~linux ~solaris ~freebsd ~fbsd ~macos"

Problems remaining:

a. how to do stablization in this case?

b. how to handle things that does not exist? e.g. sparc-macosx?

c. how to clean up confusions? e.g. x64-solaris vs amd64-solaris,
   freebsd (Gentoo Prefix on FreeBSD) vs fbsd (Gentoo/FreeBSD)

Thanks,
Benda

1. http://www.gentoo.org/proj/en/glep/glep-0022.html

2. see sys-devel/bison, ~alpha ~amd64 ~amd64-fbsd ~amd64-linux ~arm ~arm-linux
   ~hppa ~hppa-hpux ~ia64 ~ia64-hpux ~ia64-linux ~m68k ~m68k-mint ~mips
   ~ppc ~ppc-aix ~ppc-macos ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd
   ~sparc-solaris ~sparc64-solaris ~x64-freebsd ~x64-macos ~x64-solaris
   ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~x86-linux ~x86-macos
   ~x86-solaris



Re: [gentoo-dev] Python 2.7.4, 3.2.4, 3.3.1 updates

2013-04-07 Thread heroxbd
Dear Mike,

Mike Gilbert  writes:

> This seems like a good opportunity to add slot operator deps and
> remove some prefix workarounds. We can keep an old ebuild around to
> facilitate upgrades if we need to.

What kind of prefix workaround are you referring to?

This reminds me that Prefix team is maintaining aqua support (GUI for
Mac OS X) in Python in their own overlay for a long time. I'd like to
see it merged to gx86. If feasible, I am going to run out a patch for
review.

Cheers,
Benda



Re: [gentoo-dev] net-p2p/deluge needs a maintainer

2013-04-01 Thread heroxbd
Hi,

Markos Chandras  writes:

> net-p2p/deluge has open bugs for years[1] and I don't see anybody from
> the net-p2p herd to actually maintain it. It would be nice to find a
> new dedicated maintainer for it.

I will take it as an active user myself. Added myself to net-p2p alias
already.

And I have nailed several bugs already ;)

Cheers,
Benda



[gentoo-dev] meaning of EROOT

2013-02-03 Thread heroxbd
Dear All,

I am a bit confused with the meaning of EROOT.

In a usual Prefix installation, ROOT=/ and EPREFIX=/opt/gentoo,
EROOT=/opt/gentoo/.

Naturally, EROOT=${EPREFIX}${ROOT}, right?

But for example in ./python.eclass

EROOT="${ROOT%/}${EPREFIX}/"

and in LocationsManager.py of portage

self.eroot = self.target_root.rstrip(os.sep) + self.eprefix + os.sep

What is the logic behind this construction?

The problem rises when I want to cross-compile under Prefix. Taking
armv7a-hardfloat-linux-gnueabi for example,
ROOT=/usr/armv7a-hardfloat-linux-gnueabi/, EPREFIX=/opt/gentoo. I'd
expect EROOT to be ${EPREFIX}${ROOT}, therefore,
/opt/gentoo/usr/armv7a-hardfloat-linux-gnueabi/. At present
EROOT=/usr/armv7a-hardfloat-linux-gnueabi/opt/gentoo/, which is
completely useless.

Cheers,
Benda



Re: [gentoo-dev] rfc: OpenRC network provides revisited

2012-08-24 Thread heroxbd
William Hubbs  writes:

> If you are running services that "need net" and you have turned off all
> of the "net" providers by adding something like rc_provide="!net" to
> their conf.d files, the services that need net will fail hard even
> though they shouldn't.

If we set rc_provide="net" in rc.conf, the services that need net can be
tricked as we intended to.


pgpV5Q8f4LBpF.pgp
Description: PGP signature


Re: [gentoo-dev] rfc: OpenRC network provides revisited

2012-08-24 Thread heroxbd
Besides, IMHO, we should avoid changing OpenRC's default dependency too
often. The solution for one user can be received as a regression to
others.

People file bugs saying "it worked for OpenRC-0.9 but not 0.10". For
devs, we know we just changed default value of something perfectly
configurable. But for that user, it is quite discouraging to feel
"something in OpenRC is still unstable".


pgphAELvIHeEE.pgp
Description: PGP signature


Re: [gentoo-dev] rfc: OpenRC network provides revisited

2012-08-24 Thread heroxbd
Hi William,

William Hubbs  writes:

> When network interfaces are pre-configured, our network scripts
> shouldn't run at all, but they can be forced to run if other services
> have "need net" in their dependencies.
>
> So my question is, should we change our services to "use net" instead of
> "need net"?

I don't think we should make this change. People have different
setups. We cannot provide a default configuration that covers all corner
cases. Instead, we can show the user how to customize openrc and change
the default behavior. e.g. setting rc_provide="net" and
rc_depend_strict="NO", works for this case.

Our focus can be on providing more useful debug message to user, like
when net.lo fails to stop openrc outputs who pulled it in and how to
disable this behavior.

Yours,
Benda


pgpuPQdhwP0C9.pgp
Description: PGP signature


Re: [gentoo-dev] OpenRC and SystemD Config File Parity

2012-08-16 Thread heroxbd
"Jason A. Donenfeld"  writes:

> To what degree is there parity of configuration formats between OpenRC
> and SystemD? Obviously there will never be any sort of parity ever for
> Unit files, but what about for the general parameters of the system?
> machine-id, locale, timezone, hostname, et cetera.

In OpenRC they are mostly in /etc/conf.d. How about systemd?

> I suppose when I refer to OpenRC, I'm really talking about Baselayout.
>
> I guess more specifically what I'm wondering is:
>
> - What is the current state of differences between config file formats
> and locations used for OpenRC/Baselayout and SystemD?

config file formats differs a lot, for OpenRC it's shell script, while
for SystemD Microsoft ini/XDG Desktop Entry Specification.

> - Is parity desirable? Are some people working on this?

Thought of that before, but haven't gain much motivation yet.

> - Are there advantages / disadvantages? Which files, for what, and
> why?

I'm not sure.

> Anyway, if folks have opinions or thoughts, I'd love to hear them. But
> this is just loose inquiry, not a pressing question for a project in
> motion, so don't feel compelled to exsanguinate your soul here.

Oh I'm scared ;)



Re: [gentoo-dev] pid 1 design

2012-08-09 Thread heroxbd
Michał Górny  writes:

> Considering that systemd unit files are sometimes shipped with upstream
> packages, and often they are practically equivalent to openrc init
> scripts, I'd rather see openrc supporting that file format
> as an extension and using it instead of duplicating the same thing
> in init.d scripts.

I bet this resonate with many minds out here. I am also planning to make
a draft implementation.

> And yes, that means that people masking service files shoot themselves
> in the foot.
>
> Also, if I had more time (or support), I'd probably start working
> on a systemd-compatible init system with a more portable design.



pgp74E5qQ6JNA.pgp
Description: PGP signature


Re: [gentoo-dev] Last rites: app-text/epdfview

2012-08-06 Thread heroxbd
Hi,

"Andreas K. Huettel"  writes:

> # Andreas K. Huettel  (7 Aug 2012)
> # Many display bugs and compatibility problems, does not build with cups-1.6. 
> # Upstream is dead. There's no real way to support this anymore. Masked for
> # removal in 30 days.
> app-text/epdfview  

I remember when xpdf was removed, epdfview was recommended as a
lightweight alternative. How about this time?

Best,
Benda


pgp20yldw1oEV.pgp
Description: PGP signature


Re: [gentoo-dev] grub:2 keywords

2012-06-25 Thread heroxbd
Mike Gilbert  writes:

> My main concern is that many people probably have sys-boot/grub in
> @world. 

How about a news item advising people to put sys-boot/grub:0 in their
world file to retain grub:0?

> If grub:2 is made visible, portage will install it, and will remove
> grub-0.97 on the next depclean. This could be a little confusing, but
> should not cause any immediate damage since the copy of grub-0.97
> installed in the MBR and /boot would remain intact.
>
> Is this worthy of a news item? Or I just blog about it?


pgpGRtgZ6kn8y.pgp
Description: PGP signature


Re: [gentoo-dev] new virtual/pkgconfig to support lighter alternatives

2012-05-02 Thread heroxbd
Hi Mike,

Mike Frysinger  writes:
> the canonical pkg-config is getting fat.  it requires glib-2.  it runs
> pkg- config when building.  glib-2 requires pkg-config.  whee.

> any comments ?

I would vote for it!

I feel ill to bootstrap glib and pkg-config. It feels worse to call for
 a equal foot as gcc/binutils/glibc.

http://article.gmane.org/gmane.comp.gnome.gtk%2B.devel.general/21523

pkg-config's functionality is too simple to be involved with this chaos.

Looking forward to it.

Yours,
Benda


pgpsP27uGxyU3.pgp
Description: PGP signature


[gentoo-dev] RFC: ocamlopt unmask on arm

2012-04-18 Thread heroxbd
Dear All, 

I have just emerged ocaml-3.12.0[ocamlopt] on arm and used it to compile
mldonkey[ocamlopt]. It seems to work well.

it was masked on Apr 18, 2010,
,
| /usr/portage/profiles$ grep -n -B3 ocamlopt ./arch/arm/use.mask
| 31-# Raúl Porcel 
| 32-# Fails to build/work
| 33-openexr
| 34:ocamlopt
`

Debian has arm port for ocamlopt since 3.12:

   
http://packages.debian.org/search?searchon=names&keywords=ocaml-native-compilers

I failed to find the changelog of ocaml, though :(

How about unmasking it now?

Yours,
Benda