Re: [gentoo-dev] [PATCH v2] profiles: add more language codes to desc/l10n.desc

2019-06-13 Thread Marek Szuba
On 2019-06-13 13:46, Jaco Kroon wrote:

> Any chance of adding en-NZ?
> 
> asterisk-core-sounds depends on L10N USE_EXPAND and there is an upstream
> en-NZ pack.  It's the only language pack for which there isn't currently
> an option already in the list here.

Sure, why not. Looks reasonably enough to me.

-- 
MS



Re: [gentoo-dev] [PATCH v4 08/19] user.eclass: Factor out finding nologin into separate function

2019-06-13 Thread Michał Górny
On Thu, 2019-06-13 at 09:01 -0400, Michael Orlitzky wrote:
> On 6/13/19 1:33 AM, Michał Górny wrote:
> > > > +   eshell=$(user_get_nologin)
> > > 
> > > Then this would have to become
> > > 
> > >   eshell=$(userland_get_nologin "${USERLAND}")
> > 
> > Do you have any real use for that?
> > 
> 
> No. It's a better design IMO since you can e.g. test the function by
> passing it an argument rather than by setting a global variable (which
> has other consequences). But no immediate application.
> 

I'm sorry but this makes no sense.  The function already depends on ROOT
variable, and on presence of specific files in the filesystem.  I see no
reason to make USERLAND special here.

Furthermore, it's an internal function with no external application.
It has two call sites, and in both we want the same value of USERLAND
(which is defined by profiles) to apply.

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] Re: [PATCH] xorg-3.eclass: EAUTORECONF_DEPENDS belong to BDEPEND

2019-06-13 Thread James Le Cuirot
On Thu, 13 Jun 2019 15:02:23 +0200
Michael Haubenwallner  wrote:

> On 6/13/19 2:45 PM, James Le Cuirot wrote:
> > On Thu, 13 Jun 2019 13:08:15 +0200
> > Michael Haubenwallner  wrote:
> > 
> >> EAUTORECONF_DEPENDS is non-empty for ppc-aix and x86-winnt only.
> >> Also, unset variable 'arch' after use.
> >> ---
> >>  eclass/xorg-3.eclass | 3 ++-
> >>  1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/eclass/xorg-3.eclass b/eclass/xorg-3.eclass
> >> index 6ac90a64d59..f135058fba6 100644
> >> --- a/eclass/xorg-3.eclass
> >> +++ b/eclass/xorg-3.eclass
> >> @@ -116,7 +116,8 @@ WANT_AUTOMAKE="latest"
> >>  for arch in ${XORG_EAUTORECONF_ARCHES}; do
> >>EAUTORECONF_DEPENDS+=" ${arch}? ( ${EAUTORECONF_DEPEND} )"
> >>  done
> >> -DEPEND+=" ${EAUTORECONF_DEPENDS}"
> >> +unset arch
> >> +BDEPEND+=" ${EAUTORECONF_DEPENDS}"
> >>  [[ ${XORG_EAUTORECONF} != no ]] && BDEPEND+=" ${EAUTORECONF_DEPEND}"
> >>  unset EAUTORECONF_DEPENDS
> >>  unset EAUTORECONF_DEPEND
> > 
> > Apart from the unset, the comment doesn't seem to relate to the actual
> > change?
> 
> Agreed: The relation should become clear with 15 lines of context.
> Or do you mean something else?

Okay, I get it now. I was also slightly confused by the very similar
variable names.

-- 
James Le Cuirot (chewi)
Gentoo Linux Developer


pgpI9AKyjHgoG.pgp
Description: OpenPGP digital signature


[gentoo-dev] Re: [PATCH] xorg-3.eclass: EAUTORECONF_DEPENDS belong to BDEPEND

2019-06-13 Thread Michael Haubenwallner
On 6/13/19 2:45 PM, James Le Cuirot wrote:
> On Thu, 13 Jun 2019 13:08:15 +0200
> Michael Haubenwallner  wrote:
> 
>> EAUTORECONF_DEPENDS is non-empty for ppc-aix and x86-winnt only.
>> Also, unset variable 'arch' after use.
>> ---
>>  eclass/xorg-3.eclass | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/eclass/xorg-3.eclass b/eclass/xorg-3.eclass
>> index 6ac90a64d59..f135058fba6 100644
>> --- a/eclass/xorg-3.eclass
>> +++ b/eclass/xorg-3.eclass
>> @@ -116,7 +116,8 @@ WANT_AUTOMAKE="latest"
>>  for arch in ${XORG_EAUTORECONF_ARCHES}; do
>>  EAUTORECONF_DEPENDS+=" ${arch}? ( ${EAUTORECONF_DEPEND} )"
>>  done
>> -DEPEND+=" ${EAUTORECONF_DEPENDS}"
>> +unset arch
>> +BDEPEND+=" ${EAUTORECONF_DEPENDS}"
>>  [[ ${XORG_EAUTORECONF} != no ]] && BDEPEND+=" ${EAUTORECONF_DEPEND}"
>>  unset EAUTORECONF_DEPENDS
>>  unset EAUTORECONF_DEPEND
> 
> Apart from the unset, the comment doesn't seem to relate to the actual
> change?

Agreed: The relation should become clear with 15 lines of context.
Or do you mean something else?

Thanks!
/haubi/
From 1eb3709d84b04c4fbbed342de8f5721233e35e2f Mon Sep 17 00:00:00 2001
From: Michael Haubenwallner 
Date: Thu, 13 Jun 2019 12:58:04 +0200
Subject: [PATCH] xorg-3.eclass: EAUTORECONF_DEPENDS belong to BDEPEND

EAUTORECONF_DEPENDS is non-empty for ppc-aix and x86-winnt only.
Also, unset variable 'arch' after use.
---
 eclass/xorg-3.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/xorg-3.eclass b/eclass/xorg-3.eclass
index 6ac90a64d59..f135058fba6 100644
--- a/eclass/xorg-3.eclass
+++ b/eclass/xorg-3.eclass
@@ -104,31 +104,32 @@ fi
 
 # Set up autotools shared dependencies
 # Remember that all versions here MUST be stable
 XORG_EAUTORECONF_ARCHES="ppc-aix x86-winnt"
 EAUTORECONF_DEPEND+="
 	>=sys-devel/libtool-2.2.6a
 	sys-devel/m4"
 if [[ ${PN} != util-macros ]] ; then
 	EAUTORECONF_DEPEND+=" >=x11-misc/util-macros-1.18 >=media-fonts/font-util-1.2.0"
 fi
 WANT_AUTOCONF="latest"
 WANT_AUTOMAKE="latest"
 for arch in ${XORG_EAUTORECONF_ARCHES}; do
 	EAUTORECONF_DEPENDS+=" ${arch}? ( ${EAUTORECONF_DEPEND} )"
 done
-DEPEND+=" ${EAUTORECONF_DEPENDS}"
+unset arch
+BDEPEND+=" ${EAUTORECONF_DEPENDS}"
 [[ ${XORG_EAUTORECONF} != no ]] && BDEPEND+=" ${EAUTORECONF_DEPEND}"
 unset EAUTORECONF_DEPENDS
 unset EAUTORECONF_DEPEND
 
 # @ECLASS-VARIABLE: XORG_STATIC
 # @DESCRIPTION:
 # Enables static-libs useflag. Set to no, if your package gets:
 #
 # QA: configure: WARNING: unrecognized options: --disable-static
 : ${XORG_STATIC:="yes"}
 
 # Add static-libs useflag where useful.
 if [[ ${XORG_STATIC} == yes \
 		&& ${CATEGORY} != app-doc \
 		&& ${CATEGORY} != x11-apps \
-- 
2.19.2



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] [PATCH v4 08/19] user.eclass: Factor out finding nologin into separate function

2019-06-13 Thread Michael Orlitzky
On 6/13/19 1:33 AM, Michał Górny wrote:
>>
>>> +   eshell=$(user_get_nologin)
>>
>> Then this would have to become
>>
>>   eshell=$(userland_get_nologin "${USERLAND}")
> 
> Do you have any real use for that?
> 

No. It's a better design IMO since you can e.g. test the function by
passing it an argument rather than by setting a global variable (which
has other consequences). But no immediate application.




Re: [gentoo-dev] [PATCH v4 00/19] User/group packages

2019-06-13 Thread Michael Orlitzky
On 6/13/19 4:54 AM, Alexey Shvetsov wrote:
> Hi!
> 
> Its a good thing that you're reviewing user class. I write some thought 
> previosly about it.
> 
> Why not create some set for standart uid:gid for services so they will 
> be identicall in all installations?
> 
> like slurm has uid:gid 500:500
> nginx 80:80 or something...
> 

This is what we're doing =)




Re: [gentoo-dev] [PATCH v2] profiles: add more language codes to desc/l10n.desc

2019-06-13 Thread Jaco Kroon

Hi,

Any chance of adding en-NZ?

asterisk-core-sounds depends on L10N USE_EXPAND and there is an upstream 
en-NZ pack.  It's the only language pack for which there isn't currently 
an option already in the list here.


Kind Regards,
Jaco

On 2019/06/13 10:26, Marek Szuba wrote:


Many thanks for the feedback, here is the revised patch:

* * *

All of these are supported by recent versions of app-text/tesseract.
Checked against ISO-639 using the code tables from
https://iso639-3.sil.org/ .

Signed-off-by: Marek Szuba 
---
  profiles/desc/l10n.desc | 14 ++
  1 file changed, 14 insertions(+)

diff --git a/profiles/desc/l10n.desc b/profiles/desc/l10n.desc
index 4d30aa57eb3..e5e21346174 100644
--- a/profiles/desc/l10n.desc
+++ b/profiles/desc/l10n.desc
@@ -41,8 +41,10 @@ bs - Bosnian
  ca - Catalan
  ca-valencia - Catalan (Valencian)
  cak - Kaqchikel
+ceb - Cebuano
  chr - Cherokee
  cnr - Montenegrin
+co - Corsican
  cs - Czech
  cy - Welsh
  da - Danish
@@ -53,6 +55,7 @@ de-DE - German (Germany)
  dgo - Dogri (individual language)
  doi - Dogri (macrolanguage)
  dsb - Lower Sorbian
+dv - Dhivehi
  dz - Dzongkha
  el - Modern Greek
  en - English
@@ -88,13 +91,16 @@ he - Hebrew
  hi - Hindi
  hr - Croatian
  hsb - Upper Sorbian
+ht - Haitian
  hu - Hungarian
  hy - Armenian
  ia - Interlingua
  id - Indonesian
  is - Icelandic
  it - Italian
+iu - Inuktitut
  ja - Japanese
+jv - Javanese
  ka - Georgian
  kab - Kabyle
  kk - Kazakh
@@ -120,6 +126,7 @@ mn - Mongolian
  mni - Manipuri
  mr - Marathi
  ms - Malay (macrolanguage)
+mt - Maltese
  my - Burmese
  nan - Min Nan Chinese
  nb - Norwegian Bokmål
@@ -134,9 +141,11 @@ om - Oromo
  or - Oriya (macrolanguage)
  pa - Punjabi
  pl - Polish
+ps - Pushto
  pt - Portuguese
  pt-BR - Portuguese (Brazil)
  pt-PT - Portuguese (Portugal)
+qu - Quechua
  rm - Romansh
  ro - Romanian
  ru - Russian
@@ -156,6 +165,7 @@ sr - Serbian
  sr-Latn - Serbian (Latin script)
  ss - Swati
  st - Southern Sotho
+su - Sundanese
  sv - Swedish
  sw - Swahili (macrolanguage)
  sw-TZ - Swahili (Tanzania)
@@ -165,9 +175,11 @@ ta-LK - Tamil (Sri Lanka)
  te - Telugu
  tg - Tajik
  th - Thai
+ti - Tigrinya
  tk - Turkmen
  tl - Tagalog
  tn - Tswana
+to - Tonga (Tonga Islands)
  tr - Turkish
  ts - Tsonga
  tt - Tatar
@@ -178,6 +190,8 @@ uz - Uzbek
  ve - Venda
  vi - Vietnamese
  xh - Xhosa
+yi - Yiddish
+yo - Yoruba
  zh - Chinese
  zh-CN - Chinese (China)
  zh-TW - Chinese (Taiwan)




Re: [gentoo-dev] [PATCH] xorg-3.eclass: EAUTORECONF_DEPENDS belong to BDEPEND

2019-06-13 Thread James Le Cuirot
On Thu, 13 Jun 2019 13:08:15 +0200
Michael Haubenwallner  wrote:

> EAUTORECONF_DEPENDS is non-empty for ppc-aix and x86-winnt only.
> Also, unset variable 'arch' after use.
> ---
>  eclass/xorg-3.eclass | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/eclass/xorg-3.eclass b/eclass/xorg-3.eclass
> index 6ac90a64d59..f135058fba6 100644
> --- a/eclass/xorg-3.eclass
> +++ b/eclass/xorg-3.eclass
> @@ -116,7 +116,8 @@ WANT_AUTOMAKE="latest"
>  for arch in ${XORG_EAUTORECONF_ARCHES}; do
>   EAUTORECONF_DEPENDS+=" ${arch}? ( ${EAUTORECONF_DEPEND} )"
>  done
> -DEPEND+=" ${EAUTORECONF_DEPENDS}"
> +unset arch
> +BDEPEND+=" ${EAUTORECONF_DEPENDS}"
>  [[ ${XORG_EAUTORECONF} != no ]] && BDEPEND+=" ${EAUTORECONF_DEPEND}"
>  unset EAUTORECONF_DEPENDS
>  unset EAUTORECONF_DEPEND

Apart from the unset, the comment doesn't seem to relate to the actual
change?

-- 
James Le Cuirot (chewi)
Gentoo Linux Developer


pgpNdvQqpsruD.pgp
Description: OpenPGP digital signature


[gentoo-dev] [PATCH] xorg-3.eclass: EAUTORECONF_DEPENDS belong to BDEPEND

2019-06-13 Thread Michael Haubenwallner
EAUTORECONF_DEPENDS is non-empty for ppc-aix and x86-winnt only.
Also, unset variable 'arch' after use.
---
 eclass/xorg-3.eclass | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/eclass/xorg-3.eclass b/eclass/xorg-3.eclass
index 6ac90a64d59..f135058fba6 100644
--- a/eclass/xorg-3.eclass
+++ b/eclass/xorg-3.eclass
@@ -116,7 +116,8 @@ WANT_AUTOMAKE="latest"
 for arch in ${XORG_EAUTORECONF_ARCHES}; do
EAUTORECONF_DEPENDS+=" ${arch}? ( ${EAUTORECONF_DEPEND} )"
 done
-DEPEND+=" ${EAUTORECONF_DEPENDS}"
+unset arch
+BDEPEND+=" ${EAUTORECONF_DEPENDS}"
 [[ ${XORG_EAUTORECONF} != no ]] && BDEPEND+=" ${EAUTORECONF_DEPEND}"
 unset EAUTORECONF_DEPENDS
 unset EAUTORECONF_DEPEND
-- 
2.19.2




Re: [gentoo-dev] [PATCH v4 00/19] User/group packages

2019-06-13 Thread Alexey Shvetsov

Hi!

Its a good thing that you're reviewing user class. I write some thought 
previosly about it.


Why not create some set for standart uid:gid for services so they will 
be identicall in all installations?


like slurm has uid:gid 500:500
nginx 80:80 or something...


Michał Górny писал 11-06-2019 19:23:

Hi,

Here's hopefully the final iteration of the patches.  Changes since v3:

- changed description to 'System user/group' (from 'service'),

- fixed acct-user to fail when ACCT_USER_GROUPS is empty (and not just
  when it is unset).

Please review.

--
Best regards,
Michał Górny


Michał Górny (19):
  user.eclass: Remove dead/broken Darwin support
  user.eclass: NetBSD has 'getent'
  user.eclass: Do not create user-group automatically
  user.eclass: Prevent automated home creation in useradd
  user.eclass: Support disabling home directory creation
  user.eclass: Support forcing specified UID/GID
  user.eclass: Die if no free UID/GID is found
  user.eclass: Factor out finding nologin into separate function
  user.eclass: Introduce esetshell
  user.eclass: Introduce eget{user,group}name
  user.eclass: Also permit using functions in pkg_*rm phases
  user.eclass: Support getting & setting comment field
  user.eclass: Introduce e{get,set}groups
  acct-group.eclass: A new eclass to maintain group accounts
  acct-user.eclass: A new eclass to maintain user accounts
  acct-user.eclass: Supporting locking & unlocking accounts
  acct-group/ftp: Add 'ftp' group (GID 21)
  acct-user/ftp: Add 'ftp' user (UID 21)
  net-ftp/ftpbase: Utilize {group,user}/ftp

 acct-group/ftp/ftp-0.ebuild|   9 +
 acct-group/ftp/metadata.xml|   5 +
 acct-user/ftp/ftp-0.ebuild |  14 +
 acct-user/ftp/metadata.xml |   5 +
 eclass/acct-group.eclass   | 124 
 eclass/acct-user.eclass| 373 
 eclass/user.eclass | 385 -
 net-ftp/ftpbase/ftpbase-0.01-r3.ebuild |  39 +++
 profiles/categories|   2 +
 9 files changed, 886 insertions(+), 70 deletions(-)
 create mode 100644 acct-group/ftp/ftp-0.ebuild
 create mode 100644 acct-group/ftp/metadata.xml
 create mode 100644 acct-user/ftp/ftp-0.ebuild
 create mode 100644 acct-user/ftp/metadata.xml
 create mode 100644 eclass/acct-group.eclass
 create mode 100644 eclass/acct-user.eclass
 create mode 100644 net-ftp/ftpbase/ftpbase-0.01-r3.ebuild


--
Best Regards,
Alexey 'Alexxy' Shvetsov
Best Regards,
Alexey 'Alexxy' Shvetsov, PhD
Department of Molecular and Radiation Biophysics
FSBI Petersburg Nuclear Physics Institute, NRC Kurchatov Institute,
Leningrad region, Gatchina, Russia
Gentoo Team Ru
Gentoo Linux Dev
mailto:alexx...@gmail.com
mailto:ale...@gentoo.org
mailto:ale...@omrb.pnpi.spb.ru



[gentoo-dev] [PATCH v2] profiles: add more language codes to desc/l10n.desc

2019-06-13 Thread Marek Szuba
Many thanks for the feedback, here is the revised patch:

* * *

All of these are supported by recent versions of app-text/tesseract.
Checked against ISO-639 using the code tables from
https://iso639-3.sil.org/ .

Signed-off-by: Marek Szuba 
---
 profiles/desc/l10n.desc | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/profiles/desc/l10n.desc b/profiles/desc/l10n.desc
index 4d30aa57eb3..e5e21346174 100644
--- a/profiles/desc/l10n.desc
+++ b/profiles/desc/l10n.desc
@@ -41,8 +41,10 @@ bs - Bosnian
 ca - Catalan
 ca-valencia - Catalan (Valencian)
 cak - Kaqchikel
+ceb - Cebuano
 chr - Cherokee
 cnr - Montenegrin
+co - Corsican
 cs - Czech
 cy - Welsh
 da - Danish
@@ -53,6 +55,7 @@ de-DE - German (Germany)
 dgo - Dogri (individual language)
 doi - Dogri (macrolanguage)
 dsb - Lower Sorbian
+dv - Dhivehi
 dz - Dzongkha
 el - Modern Greek
 en - English
@@ -88,13 +91,16 @@ he - Hebrew
 hi - Hindi
 hr - Croatian
 hsb - Upper Sorbian
+ht - Haitian
 hu - Hungarian
 hy - Armenian
 ia - Interlingua
 id - Indonesian
 is - Icelandic
 it - Italian
+iu - Inuktitut
 ja - Japanese
+jv - Javanese
 ka - Georgian
 kab - Kabyle
 kk - Kazakh
@@ -120,6 +126,7 @@ mn - Mongolian
 mni - Manipuri
 mr - Marathi
 ms - Malay (macrolanguage)
+mt - Maltese
 my - Burmese
 nan - Min Nan Chinese
 nb - Norwegian Bokmål
@@ -134,9 +141,11 @@ om - Oromo
 or - Oriya (macrolanguage)
 pa - Punjabi
 pl - Polish
+ps - Pushto
 pt - Portuguese
 pt-BR - Portuguese (Brazil)
 pt-PT - Portuguese (Portugal)
+qu - Quechua
 rm - Romansh
 ro - Romanian
 ru - Russian
@@ -156,6 +165,7 @@ sr - Serbian
 sr-Latn - Serbian (Latin script)
 ss - Swati
 st - Southern Sotho
+su - Sundanese
 sv - Swedish
 sw - Swahili (macrolanguage)
 sw-TZ - Swahili (Tanzania)
@@ -165,9 +175,11 @@ ta-LK - Tamil (Sri Lanka)
 te - Telugu
 tg - Tajik
 th - Thai
+ti - Tigrinya
 tk - Turkmen
 tl - Tagalog
 tn - Tswana
+to - Tonga (Tonga Islands)
 tr - Turkish
 ts - Tsonga
 tt - Tatar
@@ -178,6 +190,8 @@ uz - Uzbek
 ve - Venda
 vi - Vietnamese
 xh - Xhosa
+yi - Yiddish
+yo - Yoruba
 zh - Chinese
 zh-CN - Chinese (China)
 zh-TW - Chinese (Taiwan)
-- 
2.21.0





signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] RFC: BLAS and LAPACK runtime switching (Re-designed)

2019-06-13 Thread Michał Górny
On Thu, 2019-06-13 at 00:15 -0700, Mo Zhou wrote:
> Hi Gentoo devs,
> 
> I redesigned the solution for BLAS/LAPACK runtime switching.
> New solution is based on eselect+ld.so.conf . See following.
> 
> > Goal
> > 
> > 
> >   * When a program is linked against libblas.so or liblapack.so
> > provided by any BLAS/LAPACK provider, the eselect-based solution
> > will allow user to switch the underlying library without recompiling
> > anything.
> 
> Instead of manipulating symlinks, I wrote a dedicated eselect module
> for BLAS:
> 
> https://github.com/cdluminate/my-overlay/blob/master/app-eselect/eselect-blas/files/blas.eselect-0.2
> 
> This implementation will generate a corresponding ld.so.conf file
> on switching and refresh ld.so cache.
> 
> advantages:
> 
> 1. not longer manipulates symlinks under package manager directory,
>see https://bugs.gentoo.org/531842 and https://bugs.gentoo.org/632624
> 
> 2. we don't have to think about static lib and header switching like
>Debian does.
> 
> >   * When a program is linked against a specific implementation, e.g.
> > libmkl_rt.so, the solution doesn't break anything.
> 
> This still holds with the new solution.
> 
> > Solution
> > 
> > 
> > Similar to Debian's update-alternatives mechanism, Gentoo's eselect
> > is good at dealing with drop-in replacements as well. My preliminary
> 
> The redesigned solution totally diverted from Debian's solution.
> 
> * sci-libs/lapack provides standard API and ABI for BLAS/CBLAS/LAPACK
>   and LAPACKE. It provides a default set of libblas.so, libcblas.so,
>   and liblapack.so . Reverse dependencies linked against the three
>   libraries (reference blas) will take advantage of the runtime
>   switching mechanism through USE="virtual-blas virtual-lapack".
>   Reverse dependencies linked to specific implementations such as
>   libopenblas.so won't be affected at all.
> 
> * every non-standard BLAS/LAPACK implementations could be registered
>   as alternatives via USE="virtual-blas virtual-lapack". Once the
>   virtual-* flags are toggled, the ebuild file will build some
>   extra shared objects with correct SONAME.
> 
>   For example:
> 
>   /usr/lib64/libblis.so.2 (SONAME=libblis.so.2, general purpose)
>   /usr/lib64/blas/blis/libblas.so.3 (USE="virtual-blas",
> SONAME=libblas.so.3)
>   /usr/lib64/blas/blis/libcblas.so.3 (USE="virtual-blas",
> SONAME=libcblas.so.3)
> 
> * Reverse dependencies of BLAS/LAPACK could optionally provide the
>   "virtual-blas virtual-lapack" USE flags.
> 
>   if use virtual-*:
>   link against reference blas/lapack
>   else:
>   link against whatever the ebuild maintainer like and get rid
>   of the switching mechanism
> 
> > Proposed Changes
> > 
> > 
> > 1. Deprecate sci-libs/{blas,cblas,lapack,lapacke}-reference from gentoo
> >main repo. They use exactly the same source tarball. It's not quite
> >helpful to package these components in a fine-grained manner. A
> > single
> >sci-libs/lapack package is enough.
> 
> sci-libs/{blas,cblas,lapack,lapacke}::gentoo should be deprecated. They
> are based on exactly the same source tarball, and maintaining 4 ebuild
> files for a single tarball is not a good choice IHMO. Those old ebuild
> files seems to leverage the flexibility of upstream build system
> because it enables one to, for example, skip the reference blas build
> and use an existing optimized BLAS impelementation and hence introduce
> flexibility. That flexibility is hard to maintain and is not necessary
> anymore with the new runtime switching mechanism.
> 
> That's why I propose to merge the 4 ebuild into a single one:
> sci-libs/lapack. We don't need to add the "reference" postfix
> because no upstream will loot the name "lapack". When talking
> about "lapack" it's always the reference implementation.

What's the real gain here, and how does it compare to loss of
flexibility of being able to build only what the package in question
needs?


-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] RFC: BLAS and LAPACK runtime switching (Re-designed)

2019-06-13 Thread Mo Zhou
Hi Gentoo devs,

I redesigned the solution for BLAS/LAPACK runtime switching.
New solution is based on eselect+ld.so.conf . See following.

> Goal
> 
> 
>   * When a program is linked against libblas.so or liblapack.so
> provided by any BLAS/LAPACK provider, the eselect-based solution
> will allow user to switch the underlying library without recompiling
> anything.

Instead of manipulating symlinks, I wrote a dedicated eselect module
for BLAS:

https://github.com/cdluminate/my-overlay/blob/master/app-eselect/eselect-blas/files/blas.eselect-0.2

This implementation will generate a corresponding ld.so.conf file
on switching and refresh ld.so cache.

advantages:

1. not longer manipulates symlinks under package manager directory,
   see https://bugs.gentoo.org/531842 and https://bugs.gentoo.org/632624

2. we don't have to think about static lib and header switching like
   Debian does.

>   * When a program is linked against a specific implementation, e.g.
> libmkl_rt.so, the solution doesn't break anything.

This still holds with the new solution.

> Solution
> 
> 
> Similar to Debian's update-alternatives mechanism, Gentoo's eselect
> is good at dealing with drop-in replacements as well. My preliminary

The redesigned solution totally diverted from Debian's solution.

* sci-libs/lapack provides standard API and ABI for BLAS/CBLAS/LAPACK
  and LAPACKE. It provides a default set of libblas.so, libcblas.so,
  and liblapack.so . Reverse dependencies linked against the three
  libraries (reference blas) will take advantage of the runtime
  switching mechanism through USE="virtual-blas virtual-lapack".
  Reverse dependencies linked to specific implementations such as
  libopenblas.so won't be affected at all.

* every non-standard BLAS/LAPACK implementations could be registered
  as alternatives via USE="virtual-blas virtual-lapack". Once the
  virtual-* flags are toggled, the ebuild file will build some
  extra shared objects with correct SONAME.

  For example:

  /usr/lib64/libblis.so.2 (SONAME=libblis.so.2, general purpose)
  /usr/lib64/blas/blis/libblas.so.3 (USE="virtual-blas",
SONAME=libblas.so.3)
  /usr/lib64/blas/blis/libcblas.so.3 (USE="virtual-blas",
SONAME=libcblas.so.3)

* Reverse dependencies of BLAS/LAPACK could optionally provide the
  "virtual-blas virtual-lapack" USE flags.

  if use virtual-*:
  link against reference blas/lapack
  else:
  link against whatever the ebuild maintainer like and get rid
  of the switching mechanism

> Proposed Changes
> 
> 
> 1. Deprecate sci-libs/{blas,cblas,lapack,lapacke}-reference from gentoo
>main repo. They use exactly the same source tarball. It's not quite
>helpful to package these components in a fine-grained manner. A
> single
>sci-libs/lapack package is enough.

sci-libs/{blas,cblas,lapack,lapacke}::gentoo should be deprecated. They
are based on exactly the same source tarball, and maintaining 4 ebuild
files for a single tarball is not a good choice IHMO. Those old ebuild
files seems to leverage the flexibility of upstream build system
because it enables one to, for example, skip the reference blas build
and use an existing optimized BLAS impelementation and hence introduce
flexibility. That flexibility is hard to maintain and is not necessary
anymore with the new runtime switching mechanism.

That's why I propose to merge the 4 ebuild into a single one:
sci-libs/lapack. We don't need to add the "reference" postfix
because no upstream will loot the name "lapack". When talking
about "lapack" it's always the reference implementation.

> 2. Merge the "cblas" eselect unit into "blas" unit. It is potentially
>harmful when "blas" and "cblas" point to different implementations.
>That means "app-eselect/eselect-cblas" should be deprecated.

eselect-cblas should be deprecated. That affects gsl because it is
registered as an cblas alternative. gsl doesn't provide the standard
BLAS (fortran) API+ABI so it will not be added as a runtime switching
candidate.

Does this redesinged solution look acceptable now?

Best,
Mo.