ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
@ 2016-05-26 13:31 Ivan Zakharyaschev
  2016-05-26 13:35 ` Ivan Zakharyaschev
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Ivan Zakharyaschev @ 2016-05-26 13:31 UTC (permalink / raw)
  To: ALT Linux Team development discussions; +Cc: Sergey Bolshakov

Здравствуйте!

Вылезает некоторое количество спеков, где делается проверка нв x86_64
не ради делания чего-то с %_libdir (переработку таких спеков я
доделываю и отправляю в Sisyphus.)

Один такой пример был python3. В эти проверки ведь стоит добавить
другие 64-битные архитектуры (пакеты, возможно, будут в обозримом
будущем собираться для e2k ещё, ну и на будущее для других
архитектур).

Может быть, сделать макрос для проверки на 64-битность с большим
списком? Какие у Вас есть соображения?

2016-05-04 13:34 UTC+03:00, sbolshakov@altlinux.ru <sbolshakov@altlinux.ru>:
> --- python3.spec.orig	2016-05-03 00:42:40.000000000 +0300
> +++ python3.spec	2016-05-04 13:30:41.810438193 +0300
> @@ -729,7 +729,7 @@
>  %global _pyconfig32_h pyconfig-32.h
>  %global _pyconfig64_h pyconfig-64.h
>
> -%ifarch x86_64
> +%ifarch aarch64 x86_64
>  %global _pyconfig_h %_pyconfig64_h
>  %else
>  %global _pyconfig_h %_pyconfig32_h
>

Вот первый вылезший такой спек ещё --
389-ds-base :

%ifarch x86_64 ppc64 ia64 s390x sparc64
export USE_64=1
%endif

aarch64 тоже не хватает, как и во многих других аналогичных случаях.

Полный список у меня постепенно образуется по мере доотправки всех
остальных, где проверка на несовпадение %_libdir и %_libexecdir.
(Которая немного затягивается, но скорый конец виден.)

Вот следующий пример -- CoinCsdp :

%ifarch x86_64 ppc64 ia64 s390x sparc64
export USE_64=1
%endif

...ну и так далее.

Давайте решим. Будем ли применять специальный макрос для 64-битных архитектур.

-- 
Ivan

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 13:31 [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix Ivan Zakharyaschev
@ 2016-05-26 13:35 ` Ivan Zakharyaschev
  2016-05-26 20:46   ` Alexey Tourbin
  2016-05-26 14:02 ` sbolshakov
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Ivan Zakharyaschev @ 2016-05-26 13:35 UTC (permalink / raw)
  To: ALT Linux Team development discussions; +Cc: Sergey Bolshakov

[-- Attachment #1: Type: text/plain, Size: 587 bytes --]

On Thu, 26 May 2016, Ivan Zakharyaschev wrote:

> Вот первый вылезший такой спек ещё --
> 389-ds-base :
>
> %ifarch x86_64 ppc64 ia64 s390x sparc64
> export USE_64=1
> %endif
>
> aarch64 тоже не хватает, как и во многих других аналогичных случаях.
>
> Полный список у меня постепенно образуется по мере доотправки всех
> остальных, где проверка на несовпадение %_libdir и %_libexecdir.
> (Которая немного затягивается, но скорый конец виден.)
>
> Вот следующий пример -- CoinCsdp :

Sorry, не тот пример вставил:

CoinCsdp :

%ifarch x86_64
ADDFLAG=-DBIT64
%endif

-- 
Best regards,
Ivan

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 13:31 [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix Ivan Zakharyaschev
  2016-05-26 13:35 ` Ivan Zakharyaschev
@ 2016-05-26 14:02 ` sbolshakov
  2016-05-26 15:37   ` Ivan Zakharyaschev
  2016-05-26 15:55 ` Dmitry V. Levin
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: sbolshakov @ 2016-05-26 14:02 UTC (permalink / raw)
  To: devel

>>>>> "Ivan" == Ivan Zakharyaschev <imz-u2l5PoMzF/Vg9hUCZPvPmw@public.gmane.org> writes:

 > Здравствуйте!
 > Вылезает некоторое количество спеков, где делается проверка нв x86_64
 > не ради делания чего-то с %_libdir (переработку таких спеков я
 > доделываю и отправляю в Sisyphus.)

 > Один такой пример был python3. В эти проверки ведь стоит добавить
 > другие 64-битные архитектуры (пакеты, возможно, будут в обозримом
 > будущем собираться для e2k ещё, ну и на будущее для других
 > архитектур).

 > Может быть, сделать макрос для проверки на 64-битность с большим
 > списком? Какие у Вас есть соображения?

Я кажется видел сходный макрос в чуждых нам спеках,
было бы невредно иметь такой же.

-- 


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 14:02 ` sbolshakov
@ 2016-05-26 15:37   ` Ivan Zakharyaschev
  0 siblings, 0 replies; 14+ messages in thread
From: Ivan Zakharyaschev @ 2016-05-26 15:37 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 820 bytes --]


On Thu, 26 May 2016, sbolshakov@altlinux.ru wrote:

> > Вылезает некоторое количество спеков, где делается проверка нв x86_64
> > не ради делания чего-то с %_libdir (переработку таких спеков я

> > Один такой пример был python3. В эти проверки ведь стоит добавить
> > другие 64-битные архитектуры (пакеты, возможно, будут в обозримом
> > будущем собираться для e2k ещё, ну и на будущее для других
> > архитектур).
>
> > Может быть, сделать макрос для проверки на 64-битность с большим
> > списком? Какие у Вас есть соображения?
>
> Я кажется видел сходный макрос в чуждых нам спеках,
> было бы невредно иметь такой же.

Да, остаётся найти, откуда скопировать. Может, кто-то помнит?

И послушать другие мнения, не вредно ли это для подобных случаев (как в 
этих трёх примерах, которые я показал).

-- 
Best regards,
Ivan

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 13:31 [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix Ivan Zakharyaschev
  2016-05-26 13:35 ` Ivan Zakharyaschev
  2016-05-26 14:02 ` sbolshakov
@ 2016-05-26 15:55 ` Dmitry V. Levin
  2016-05-26 19:23 ` Alexey Tourbin
  2016-06-10 11:58 ` Ivan Zakharyaschev
  4 siblings, 0 replies; 14+ messages in thread
From: Dmitry V. Levin @ 2016-05-26 15:55 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 478 bytes --]

On Thu, May 26, 2016 at 04:31:58PM +0300, Ivan Zakharyaschev wrote:
> Может быть, сделать макрос для проверки на 64-битность с большим
> списком? Какие у Вас есть соображения?

Проверять на 64-битность можно, например, так:

%if "%(getconf LONG_BIT)" = "64"
...
%endif

Можно завести какой-нибудь макрос и проверять его, например:

%global arch_is_64bit %{expand:%([ $(getconf LONG_BIT) = 64 ] && echo 1 || echo 0)}

%if %arch_is_64bit
...
%endif


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 13:31 [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix Ivan Zakharyaschev
                   ` (2 preceding siblings ...)
  2016-05-26 15:55 ` Dmitry V. Levin
@ 2016-05-26 19:23 ` Alexey Tourbin
  2016-05-27  8:18   ` Ivan Zakharyaschev
  2016-06-10 11:58 ` Ivan Zakharyaschev
  4 siblings, 1 reply; 14+ messages in thread
From: Alexey Tourbin @ 2016-05-26 19:23 UTC (permalink / raw)
  To: ALT Linux Team development discussions

2016-05-26 16:31 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>:
> Здравствуйте!
>
> Вылезает некоторое количество спеков, где делается проверка нв x86_64
> не ради делания чего-то с %_libdir (переработку таких спеков я
> доделываю и отправляю в Sisyphus.)
>
> Один такой пример был python3. В эти проверки ведь стоит добавить
> другие 64-битные архитектуры (пакеты, возможно, будут в обозримом
> будущем собираться для e2k ещё, ну и на будущее для других
> архитектур).
>
> Может быть, сделать макрос для проверки на 64-битность с большим
> списком? Какие у Вас есть соображения?

Мужчина, а что такое 64-битность?
Вот возможные варианты ответа:

1) каталог lib в 64-битной системе называется lib64;
тогда проверка делается через
%if "%_lib" = "lib64"

2) Поддерживается ли в принципе int64_t = "long long" тип данных; но
такой тип данных поддерживается даже на i386, если делать сложение за
два раза, второй раз через adc. Правда, на i386 он нужен почти только
для large files.

3) Является ли регистр процессора и тип long 64-битным. Тогда вам
другой мужчина хорошо подсказывает, что это можно узнать через glibс's
getconf(1). Впрочем, это, теоретически, никак не влияет на название
каталога %_lib.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 13:35 ` Ivan Zakharyaschev
@ 2016-05-26 20:46   ` Alexey Tourbin
  0 siblings, 0 replies; 14+ messages in thread
From: Alexey Tourbin @ 2016-05-26 20:46 UTC (permalink / raw)
  To: ALT Linux Team development discussions

2016-05-26 16:35 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>:
> Sorry, не тот пример вставил:
> CoinCsdp :
>
> %ifarch x86_64
> ADDFLAG=-DBIT64
> %endif

Мужчина, я посмотрел CoinCsdp-6.1.1.
Там есть всего два куска кода по линии BIT64.

lib/op_at.c:
    16  #ifndef BIT64
    17    int p,q;
    18  #else
    19    long int p,q;
    20  #endif

Складывается впечатление, что автор не хочет проверить
#if LONG_MAX > INT_MAX
и использовать это как критерий 64-битности.
Совпадает ли это с вашим критерием 64-битности?

lib/readprob.c:
   136  #ifndef BIT64
   137    /*
   138     * If operating in 32 bit mode, make sure that the dimension
mDIM isn't
   139     * too big for 32 bits.  If we don't do this check, then
integer overflow
   140     * won't be detected, and we'll allocate a bogus amount of storage for
   141     * O.
   142     */
   143
   144    if (*pk > 23169)
   145      {
   146        printf("This problem is too large to be solved in 32 bit
mode!\n");
   147        exit(10);
   148      };
   149  #endif

exit(10) в библиотеке. This problem is too large!

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 19:23 ` Alexey Tourbin
@ 2016-05-27  8:18   ` Ivan Zakharyaschev
  2016-05-27 17:50     ` Alexey Tourbin
  0 siblings, 1 reply; 14+ messages in thread
From: Ivan Zakharyaschev @ 2016-05-27  8:18 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1930 bytes --]


On Thu, 26 May 2016, Alexey Tourbin wrote:

> 2016-05-26 16:31 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>:

>> Вылезает некоторое количество спеков, где делается проверка нв x86_64
>> не ради делания чего-то с %_libdir (переработку таких спеков я
>> доделываю и отправляю в Sisyphus.)
>>
>> Один такой пример был python3. В эти проверки ведь стоит добавить
>> другие 64-битные архитектуры (пакеты, возможно, будут в обозримом
>> будущем собираться для e2k ещё, ну и на будущее для других
>> архитектур).
>>
>> Может быть, сделать макрос для проверки на 64-битность с большим
>> списком? Какие у Вас есть соображения?
>
> Мужчина, а что такое 64-битность?

Я-то не знаю, какой в каких спеках оно может иметь смысл, поэтому начал 
это обсуждение. (Хотел выкатить сразу большой список примеров, но пока 
так.) Чтобы понять, как их можно было бы автоматически сделать более 
переносимыми, не написав глупостей, которые бы пошли вразрез с реальными 
возможностями (например: стали на двух архитектурах пытаться собирать 
одинаковым способом, а это вообще обычно не работает). Благодарю всех за 
уже полученные ответы и внимание к вопросу. Я пока на этапе доделки 
пакетов с проверкой %_libdir, а то, что останется, я продемонстрирую в 
продолжение этого обсужденияс вариантами переписывания.

> Вот возможные варианты ответа:
>
> 1) каталог lib в 64-битной системе называется lib64;
> тогда проверка делается через
> %if "%_lib" = "lib64"
>
> 2) Поддерживается ли в принципе int64_t = "long long" тип данных; но
> такой тип данных поддерживается даже на i386, если делать сложение за
> два раза, второй раз через adc. Правда, на i386 он нужен почти только
> для large files.
>
> 3) Является ли регистр процессора и тип long 64-битным. Тогда вам
> другой мужчина хорошо подсказывает, что это можно узнать через glibс's
> getconf(1). Впрочем, это, теоретически, никак не влияет на название
> каталога %_lib.

-- 
Best regards,
Ivan

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-27  8:18   ` Ivan Zakharyaschev
@ 2016-05-27 17:50     ` Alexey Tourbin
  2016-05-27 18:24       ` Ivan Zakharyaschev
  0 siblings, 1 reply; 14+ messages in thread
From: Alexey Tourbin @ 2016-05-27 17:50 UTC (permalink / raw)
  To: ALT Linux Team development discussions

2016-05-27 11:18 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>:
> Я-то не знаю, какой в каких спеках оно может иметь смысл, поэтому начал это
> обсуждение. (Хотел выкатить сразу большой список примеров, но пока так.)

Смысл 64-битной платформы. Имхо на 64-битность стоит смотреть не через
интерфейс large files, а через интерфейс mmap. Если можно очень
большой файл отобразить в память, то платформа 64-битная. То есть
играет роль адресное пространство и размер указателя. Но на всех
платформах имеем: sizeof(void*) == sizeof(long). Так что за неимением
лучшего надо проверять LONG_BIT.

А что вы хотите исправить в пакетах?

1) Некоторые пакеты настолько беспомощны, что они не хотят свериться с
препроцессором, а хотят, чтобы им явно сказали: "у нас 64 бита". Хотя,
зачем? Использовали бы просто long и e.g. 1L в арифметике.

2) Некоторые пакеты поддерживают два режима на 64-битной платформе:
неупакованный 64-битный и упакованный 32-битный, второй с некоторыми
ограничениями на размер задачи и т.п. (CoinCsdp-6.1.1 можно было бы
отнести к этому классу, если бы он не был слишком крив в других
отношениях). Но как тогда его "исправить"? Он может работать в том или
другом режиме.

В общем, мне показалось, что вы хотите, чтобы rpm вам дал простой
ответ, как исправить кучу кривых пакетов. Да никак их не исправить!
Лучше их выкинуть, или хотя бы обновить до последней версии (а не
заниматься пересборкой с увеличением релиза).

> Чтобы понять, как их можно было бы автоматически сделать более переносимыми,
> не написав глупостей, которые бы пошли вразрез с реальными возможностями
> (например: стали на двух архитектурах пытаться собирать одинаковым способом,
> а это вообще обычно не работает). Благодарю всех за уже полученные ответы и
> внимание к вопросу. Я пока на этапе доделки пакетов с проверкой %_libdir, а
> то, что останется, я продемонстрирую в продолжение этого обсужденияс
> вариантами переписывания.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-27 17:50     ` Alexey Tourbin
@ 2016-05-27 18:24       ` Ivan Zakharyaschev
  2016-05-27 18:53         ` Alexey Shabalin
  2016-05-27 19:23         ` Alexey Tourbin
  0 siblings, 2 replies; 14+ messages in thread
From: Ivan Zakharyaschev @ 2016-05-27 18:24 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2088 bytes --]


On Fri, 27 May 2016, Alexey Tourbin wrote:

> 2016-05-27 11:18 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>:
>> Я-то не знаю, какой в каких спеках оно может иметь смысл, поэтому начал это
>> обсуждение. (Хотел выкатить сразу большой список примеров, но пока так.)
>
> Смысл 64-битной платформы. Имхо на 64-битность стоит смотреть не через
> интерфейс large files, а через интерфейс mmap. Если можно очень
> большой файл отобразить в память, то платформа 64-битная. То есть
> играет роль адресное пространство и размер указателя. Но на всех
> платформах имеем: sizeof(void*) == sizeof(long). Так что за неимением
> лучшего надо проверять LONG_BIT.
>
> А что вы хотите исправить в пакетах?

Облегчить работу тем, кто будет массово собирать эти пакеты на других 
архитектурах (среди них некоторые 64-битные: aarch64, эльбрус)

Ну "облегчить" значит перейти из ситуации: несколько сотен пакетов не 
собралось (по каким-то глупым причинам, самая простая из которых 
несовпадение %_lib и lib) -- в ситуацию: несколько пакетов, требующих 
особого внимания по хитрым причинам (требуют написания 
архитектурно-зависимого кода), не собралось, а для остальных сработали те 
же приёмы, которые сработали для их сборки для x86_64 или i586.

> 1) Некоторые пакеты настолько беспомощны, что они не хотят свериться с
> препроцессором, а хотят, чтобы им явно сказали: "у нас 64 бита". Хотя,
> зачем? Использовали бы просто long и e.g. 1L в арифметике.
>
> 2) Некоторые пакеты поддерживают два режима на 64-битной платформе:
> неупакованный 64-битный и упакованный 32-битный, второй с некоторыми
> ограничениями на размер задачи и т.п. (CoinCsdp-6.1.1 можно было бы
> отнести к этому классу, если бы он не был слишком крив в других
> отношениях). Но как тогда его "исправить"? Он может работать в том или
> другом режиме.
>
> В общем, мне показалось, что вы хотите, чтобы rpm вам дал простой
> ответ, как исправить кучу кривых пакетов. Да никак их не исправить!
> Лучше их выкинуть, или хотя бы обновить до последней версии (а не
> заниматься пересборкой с увеличением релиза).


-- 
Best regards,
Ivan

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-27 18:24       ` Ivan Zakharyaschev
@ 2016-05-27 18:53         ` Alexey Shabalin
  2016-05-27 19:23         ` Alexey Tourbin
  1 sibling, 0 replies; 14+ messages in thread
From: Alexey Shabalin @ 2016-05-27 18:53 UTC (permalink / raw)
  To: ALT Linux Team development discussions

27 мая 2016 г., 21:24 пользователь Ivan Zakharyaschev
<imz@altlinux.org> написал:
>
> On Fri, 27 May 2016, Alexey Tourbin wrote:
>
>> 2016-05-27 11:18 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>:
>>>
>>> Я-то не знаю, какой в каких спеках оно может иметь смысл, поэтому начал
>>> это
>>> обсуждение. (Хотел выкатить сразу большой список примеров, но пока так.)
>>
>>
>> Смысл 64-битной платформы. Имхо на 64-битность стоит смотреть не через
>> интерфейс large files, а через интерфейс mmap. Если можно очень
>> большой файл отобразить в память, то платформа 64-битная. То есть
>> играет роль адресное пространство и размер указателя. Но на всех
>> платформах имеем: sizeof(void*) == sizeof(long). Так что за неимением
>> лучшего надо проверять LONG_BIT.
>>
>> А что вы хотите исправить в пакетах?
>
>
> Облегчить работу тем, кто будет массово собирать эти пакеты на других
> архитектурах (среди них некоторые 64-битные: aarch64, эльбрус)
>
> Ну "облегчить" значит перейти из ситуации: несколько сотен пакетов не
> собралось (по каким-то глупым причинам, самая простая из которых
> несовпадение %_lib и lib) -- в ситуацию: несколько пакетов, требующих
> особого внимания по хитрым причинам (требуют написания
> архитектурно-зависимого кода), не собралось, а для остальных сработали те же
> приёмы, которые сработали для их сборки для x86_64 или i586.

Вы же сами пишете, что хотите "облегчить" жизнь. Придумывая новые
макросы для rpm вы только усложняете. И нужный макрос уже есть, это
ExclusiveArch. :)

>> 1) Некоторые пакеты настолько беспомощны, что они не хотят свериться с
>> препроцессором, а хотят, чтобы им явно сказали: "у нас 64 бита". Хотя,
>> зачем? Использовали бы просто long и e.g. 1L в арифметике.
>>
>> 2) Некоторые пакеты поддерживают два режима на 64-битной платформе:
>> неупакованный 64-битный и упакованный 32-битный, второй с некоторыми
>> ограничениями на размер задачи и т.п. (CoinCsdp-6.1.1 можно было бы
>> отнести к этому классу, если бы он не был слишком крив в других
>> отношениях). Но как тогда его "исправить"? Он может работать в том или
>> другом режиме.
>>
>> В общем, мне показалось, что вы хотите, чтобы rpm вам дал простой
>> ответ, как исправить кучу кривых пакетов. Да никак их не исправить!
>> Лучше их выкинуть, или хотя бы обновить до последней версии (а не
>> заниматься пересборкой с увеличением релиза).

Полностью поддерживаю. Такой пакет лучше выкинуть, если ни мантейнеру,
ни сборочному роботу он не нужен.


-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-27 18:24       ` Ivan Zakharyaschev
  2016-05-27 18:53         ` Alexey Shabalin
@ 2016-05-27 19:23         ` Alexey Tourbin
  1 sibling, 0 replies; 14+ messages in thread
From: Alexey Tourbin @ 2016-05-27 19:23 UTC (permalink / raw)
  To: ALT Linux Team development discussions

2016-05-27 21:24 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>:
> On Fri, 27 May 2016, Alexey Tourbin wrote:
>> Смысл 64-битной платформы. Имхо на 64-битность стоит смотреть не через
>> интерфейс large files, а через интерфейс mmap. Если можно очень
>> большой файл отобразить в память, то платформа 64-битная. То есть
>> играет роль адресное пространство и размер указателя. Но на всех
>> платформах имеем: sizeof(void*) == sizeof(long). Так что за неимением
>> лучшего надо проверять LONG_BIT.
>>
>> А что вы хотите исправить в пакетах?
>
> Облегчить работу тем, кто будет массово собирать эти пакеты на других
> архитектурах (среди них некоторые 64-битные: aarch64, эльбрус)

Вы здесь ставите в один ряд две совершенно разные архитектуры: aarch64
и эльбрус. Под первую архитектуру компилирует gcc, вторая - это вообще
черт знает что и Аркаша грёбанный насос. Различие между
gcc-архитектурой и "Аркашей" столь велико, что 64-битность -  это уже
величина малости второго порядка.

> Ну "облегчить" значит перейти из ситуации: несколько сотен пакетов не
> собралось (по каким-то глупым причинам, самая простая из которых
> несовпадение %_lib и lib) -- в ситуацию: несколько пакетов, требующих
> особого внимания по хитрым причинам (требуют написания
> архитектурно-зависимого кода), не собралось, а для остальных сработали те же
> приёмы, которые сработали для их сборки для x86_64 или i586.

Вы ставите умозрительную и отчасти порочную задачу: повысить выход
годных пакетов на неизвестной архитектуре. Но пакеты сейчас и так уже
проходят через жернова сборочной системы. Вы не можете мотивировать
мейнтейнеров вносить в пакеты умозрительные изменения.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-05-26 13:31 [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix Ivan Zakharyaschev
                   ` (3 preceding siblings ...)
  2016-05-26 19:23 ` Alexey Tourbin
@ 2016-06-10 11:58 ` Ivan Zakharyaschev
  2016-06-20 12:50   ` Ivan Zakharyaschev
  4 siblings, 1 reply; 14+ messages in thread
From: Ivan Zakharyaschev @ 2016-06-10 11:58 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 8918 bytes --]

Здравствуйте!

Предстоит разобраться с проверками if 64 в остающемся списке из примерно 
270 пакетов. (Список кусочков спеков я покажу чуть погодя.)

Общее соображение такое, что %if упоминающий просто случай x86_64 или 
lib64 не очень хорош (если только пакет не явно ExclusiveArch: .... x86_64 
..., т.е. мейнтейнер разобрался с тем, на каких архитектурах оно должно 
быть собрано и записал это явно).

if на просто x86_64 (или явный список подобных архитектур) или lib64 плох, 
потому что как бы говорит, что во всех остальных случаях не надо ничего 
осбенного делать и мы соберёмся. Но может быть другая не рассмотренная 
им архитектура, где "%_libdir" != "lib" (и при этом не lib64) или там в 
каком-то смылсе 64 бита, что потребует аналогичных x86_64 манипуляций.

Если написан if, трудно, увидев его, автоматически проверить, хороший он 
или плохой.

У меня даже возникла такая мысль -- чтобы эту проблему не прятать (за 
каким-нибудь бесполезным, как тут говорилось, %if64bit): в особо трудных 
случаях (вроде nss) для рассмотренных менйтейнером архитектур делать 
макросы со специальными действиями вида %setup_for_SOME_ARCH и потом 
пытаться экспандить setup_for_%_arch. (Такого рода switch вместо if.) Если 
архитектура не рассмотрена/неизвестна, это будет явно вызывать ошибку при 
обработке спека. (Возможно, это излишне и хватит ExclusiveArch, но не 
хочется повального бездумного проставления ExclusiveArch из-за этого моего 
обращения.)

Обратите внимание на пакеты (ACL с @ переместил в конец). Я параллельно 
продолжаю их рассматривать и обрабатывать. Если у меня возникнут конретные 
предложения по пакетам или группам, я их либо воплощу (если всё 
довольно просто), либо сообщу для обсуждения.

ssh girar acl sisyphus | while read p users; do set -- $users; for user; do echo "$user" "$p"; done; done | sort -k1 | { while read sect p; do if [[ "$prev" != "$sect" ]]; then echo "$prev:" "${pkgs[@]}";  prev="$sect"; pkgs=(); fi; pkgs=("${pkgs[@]}" "$p"); done; echo "$prev:" "${pkgs[@]}"; }

ach: powder
antohami: winff
arc: sams
aris: libfreeimage
boris: mingw32-gcc
boyarsh: util-linux
cas: 389-ds-base freebasic jitsi
cow: luajit
crux: rust
damir: calibre
danil: runawfe4-gpd runawfe4-notifier
dans: lxc
drool: libprojectM uchardet
ender: libmusicbrainz3 libquicktime111
evg: awesome pqiv
george: cooldown fpc-units-ptcpas gforth gravit lugaru powdertoy python3 renpy violetland
glebfm: binutils filesystem gcc3.4 gcc4.3 gcc4.4 gcc4.5 gcc4.7 gcc4.8 gcc4.9 gcc5 glibc-kernheaders jdkgcj libcaca python3
gray_graff: eiskaltdcpp
greycat: erlang libqca
hsv: erlang
imz: python3
inger: mvapich-gcc
karpov: extreme-tuxracer
lakostis: mbuffer
lav: audacious audacious-plugins dia gnustep-make imlib2 iozone libcds libcryptopp libmathgl libxerces-c mingw32-libnspr python-module-numpy python-module-wx sK1 wine wine-vanilla
ldv: binutils filesystem gcc3.4 gcc4.3 gcc4.4 gcc4.5 gcc4.7 gcc4.8 gcc4.9 gcc5 glibc-kernheaders jdkgcj john procps python3 zlib
legion: mozldap nspr nss util-linux
manowar: qhull scribus
mike: MySQL gromacs imlib2 pdfedit python-module-wx rpm-macros-uefi sK1
mithraen: apulse mongo speex unixODBC wanpipe
mutabor: libquicktime111
mvk: freerdp pidgin-mra
nenderus: SFML jreen miniupnpc qutim
oddity: qgis
pv: libuniset2 mosquitto
real: CoinCsdp CoinLEMON CoinPFunc OpenAD Xdmf adolc allegro5.0 apiextractor armadillo atl berkeley_upc blitz blosc bml cca-spec-babel cca-spec-classic cercs_env chasm clipper coin3d cppcheck crlibm cudd dakota df_shm dill dolfin-complex dolfin-real elmerfem escript-finley evpath exodusii ffs fityk flake freecfd-complex freecfd-real freefemxx generatorrunner geos geos1 gl2ps glsl-optimizer gmsh gnustep-BDB gnustep-JIGS gnustep-ShengGuang gnustep-make gnustep-objc2 gpsynth hiredis hlsl2glsl hypre jsonxx ksocrat labplot lapack laspack libBatch libbotan1.11 libcuefile libdict libgibsonclient libhdf5-8-mpi libhdf5-8-seq libjson_spirit libmesh-complex libmesh-real libnetcdf7-mpi libnetcdf7-seq libnetcdf_c++-4-mpi libnetcdf_c++-4-seq libnetcdf_c++4-1-mpi libnetcdf_c++4-1-seq libnetcdff5-mpi libnetcdff5-seq libquicktime111 libreplaygain libsc libsocket libsuitesparse libvdpau-va-gl libxtract log4cplus logtop lout lz4 marsyas merkaartor mpip musepack mvapich-gcc mygui netgen nnti oofem-compl
 ex oofem-real open-axiom openblas openpdt oscpack pacoxx papi parmetis parmetis0 pastix petsc-complex petsc-real picosat plplot pnetcdf poco pyside-qt4 pyside-qt4-py3 qalculate-kde4 qhull qm-dsp qtm rakarrack reduce scotch scribus shiboken shiboken-py3 shogun simage tau tbb tinyxml2 trilinos10 trilinos10-docs vtk vtk6.2 xmlrpcxx xraylib yaafe yices
redbaron: mlt
rider: MySQL libbroadvoice php5-dba
rom_as: kdeedu qt3
rt: gnustep-make
ruslandh: palemoon
sbolshakov: gcc4.5 gcc4.7 jdkgcj libquicktime111 x265
sem: nuxwdog
serpiph: blender2.49
shaba: edk2 mariadb qemu
shrek: Mesa dia
sin: cca-spec-babel cca-spec-classic dolfin-complex dolfin-real hypre libnss-fallback libnss-tartarus mpip petsc-complex petsc-real tau vtk
slazav: xfig
snejok: e3
stanv: bro cpupower mvapich-gcc
vitty: MySQL alterator-grub cegui mongo python3
viy: jdkgcj libquicktime111 pine speex
vkni: i3
vsu: glibc-kernheaders
zerg: apt-scripts-nvidia eigen2 kde4-settings-kmobile kde4-settings-knetbook libmygpo-qt libqca libringclient mlt qt3 qt4-webkit qt5-webengine

:
@everybody: 389-ds-base CoinCsdp CoinLEMON CoinPFunc OpenAD SFML Xdmf adolc allegro5.0 alterator-grub apiextractor apulse armadillo atl audacious-plugins berkeley_upc blender2.49 blitz blosc bml bro calibre cca-spec-babel cca-spec-classic cegui cercs_env chasm clipper coin3d cooldown cppcheck cpupower crlibm cudd dakota df_shm dia dill dolfin-complex dolfin-real e3 edk2 eiskaltdcpp elmerfem erlang escript-finley evpath exodusii ffs fityk flake fpc-units-ptcpas freebasic freecfd-complex freecfd-real freefemxx freerdp generatorrunner geos geos1 gforth gl2ps glsl-optimizer gnustep-BDB gnustep-JIGS gnustep-ShengGuang gnustep-objc2 gpsynth gravit gromacs hiredis hlsl2glsl hypre i3 jitsi jreen jsonxx kde4-settings-kmobile kde4-settings-knetbook kdeedu ksocrat labplot lapack laspack libBatch libbotan1.11 libbroadvoice libcaca libcds libcryptopp libcuefile libdict libgibsonclient libhdf5-8-mpi libhdf5-8-seq libjson_spirit libmathgl libmesh-complex libmesh-real libmusicbrainz3 libmygpo-qt lib
 netcdf7-mpi libnetcdf7-seq libnetcdf_c++-4-mpi libnetcdf_c++-4-seq libnetcdf_c++4-1-mpi libnetcdf_c++4-1-seq libnetcdff5-mpi libnetcdff5-seq libnss-tartarus libqca libreplaygain libsc libsocket libsuitesparse libuniset2 libvdpau-va-gl libxerces-c libxtract log4cplus logtop lout luajit lugaru lxc lz4 mariadb marsyas mbuffer merkaartor mingw32-gcc mingw32-libnspr miniupnpc mlt mongo mono mosquitto mpip musepack mygui netgen nnti oofem-complex oofem-real open-axiom openblas openpdt oscpack pacoxx palemoon papi parmetis parmetis0 pastix pdfedit petsc-complex petsc-real php5-dba picosat pidgin-mra pine plplot pnetcdf poco powder powdertoy pqiv pyside-qt4 pyside-qt4-py3 python-module-curve25519 python-module-cvxopt python-module-faketime python-module-gnureadline python-module-libmagic python-module-libxmp python-module-mathutils python-module-netCDF4 python-module-pivy python-module-pycudd python-module-pyices python-module-pymagic python-module-rtree python-module-scikits.audiolab pytho
 n-module-scikits.samplerate python-module-wx3.0 python-module-z3c.pt python3-module-pcap qalculate-kde4 qemu qgis qm-dsp qt3 qtm qutim rakarrack reduce renpy rpm-macros-uefi runawfe4-gpd runawfe4-notifier rust sK1 sams scotch scribus shiboken shiboken-py3 shogun simage tau tbb tinyxml2 trilinos10 trilinos10-docs uchardet unixODBC violetland vtk6.2 wanpipe winff x265 xmlrpcxx xraylib yaafe yices
@mono: mono
@nobody: allegro4.4 dmd libixp libopencv2.4 tremulous
@python: cca-spec-babel cca-spec-classic dolfin-complex dolfin-real hypre mpip petsc-complex petsc-real python-module-curve25519 python-module-cvxopt python-module-faketime python-module-gnureadline python-module-libmagic python-module-libxmp python-module-mathutils python-module-netCDF4 python-module-numpy python-module-pivy python-module-pycudd python-module-pyices python-module-pymagic python-module-rtree python-module-scikits.audiolab python-module-scikits.samplerate python-module-wx python-module-wx3.0 python-module-z3c.pt python3-module-pcap tau vtk
@qa: adolc armadillo audacious blitz cca-spec-babel cca-spec-classic chasm coin3d dia dolfin-complex dolfin-real erlang extreme-tuxracer freecfd-complex freecfd-real gmsh gnustep-make gromacs hypre imlib2 iozone labplot laspack libcryptopp libmathgl libmesh-complex libmesh-real libnss-tartarus libquicktime111 libsuitesparse libxerces-c lout mpip mvapich-gcc netgen nuxwdog oofem-complex oofem-real open-axiom papi parmetis pastix petsc-complex petsc-real python-module-cvxopt python-module-numpy qgis reduce sK1 scotch scribus tau vtk wine-vanilla xfig

-- 
Best regards,
Ivan

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix
  2016-06-10 11:58 ` Ivan Zakharyaschev
@ 2016-06-20 12:50   ` Ivan Zakharyaschev
  0 siblings, 0 replies; 14+ messages in thread
From: Ivan Zakharyaschev @ 2016-06-20 12:50 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 7151 bytes --]

On Fri, 10 Jun 2016, Ivan Zakharyaschev wrote:

> Предстоит разобраться с проверками if 64 в остающемся списке из примерно 270 
> пакетов. (Список кусочков спеков я покажу чуть погодя.)

Спасибо cas, glebfm, nbr, посмотревшим сови пакеты, про некоторые 
сказавшим, что там не надо ничего исправлять, и всем другим, исправившим.

Тпереь список такой. (С некоторыми обнаружившимися добавками. Убрал FTBFS 
по данным beehive.)


> Общее соображение такое, что %if упоминающий просто случай x86_64 или lib64 
> не очень хорош (если только пакет не явно ExclusiveArch: .... x86_64 ..., 
> т.е. мейнтейнер разобрался с тем, на каких архитектурах оно должно быть 
> собрано и записал это явно).

> ssh girar acl sisyphus | while read p users; do set -- $users; for user; do 
> echo "$user" "$p"; done; done | sort -k1 | { while read sect p; do if [[ 
> "$prev" != "$sect" ]]; then echo "$prev:" "${pkgs[@]}";  prev="$sect"; 
> pkgs=(); fi; pkgs=("${pkgs[@]}" "$p"); done; echo "$prev:" "${pkgs[@]}"; }

ach: powder
andyc: deadbeef
antohami: winff
arc: sams
aris: libfreeimage
azol: docs-lxdesktop
boyarsh: util-linux
cas: sope
cow: luajit
danil: composer runawfe4-gpd runawfe4-notifier
dans: lxc
drool: deadbeef libprojectM uchardet
ender: libmusicbrainz3 libquicktime111
evg: awesome pqiv
george: cooldown gforth gravit lugaru powdertoy renpy violetland
gray_graff: eiskaltdcpp
greycat: libqca
inger: mvapich-gcc
karpov: extreme-tuxracer
lakostis: mbuffer
lav: audacious audacious-plugins dia gnustep-make imlib2 iozone libcds libcryptopp libxerces-c mingw32-libnspr python-module-numpy python-module-wx sK1 wine wine-vanilla
ldv: glibc john procps zlib
legion: mozldap nspr util-linux
manowar: qhull scribus
mike: MySQL gromacs imlib2 pdfedit python-module-wx rpm-macros-uefi sK1
mithraen: apulse mongo speex unixODBC
mutabor: libquicktime111
mvk: pidgin-mra
nenderus: SFML miniupnpc qutim
oddity: qgis
pv: libuniset2 mosquitto
radik: deadbeef
real: CoinCsdp CoinPFunc OpenAD allegro5.0 apiextractor armadillo atl berkeley_upc blitz blosc bullet3 cca-spec-babel cca-spec-classic cercs_env cgns-mpi cgns-seq chasm clipper coin3d cppcheck crlibm cudd df_shm dill dolfin-complex dolfin-real escript-finley evpath exodusii ffs fityk flake freefemxx generatorrunner geos geos1 gl2ps glsl-optimizer gnustep-BDB gnustep-JIGS gnustep-ShengGuang gnustep-back gnustep-make gnustep-objc2 gnustep-sqlclient gpsynth hiredis hypre jsonxx ksocrat lapack laspack libBatch libbotan1.11 libcuefile libdict libgibsonclient libhdf5-8-mpi libhdf5-8-seq libjson_spirit libmesh-complex libnetcdf7-mpi libnetcdf7-seq libnetcdf_c++-4-mpi libnetcdf_c++-4-seq libnetcdf_c++4-1-mpi libnetcdf_c++4-1-seq libquicktime111 libreplaygain libsc libsocket libsuitesparse libvdpau-va-gl libxtract log4cplus logtop lout lz4 merkaartor mpip musepack mvapich-gcc mygui netgen nnti oofem-complex openblas openpdt oscpack pacoxx papi parmetis parmetis0 petiga-complex petiga-real pet
 sc-complex petsc-real picosat poco pyside-qt4 pyside-qt4-py3 qhull qm-dsp qtm reduce scotch scribus shiboken shiboken-py3 simage slepc-complex slepc-real tau tbb tinyxml2 trilinos10-docs vtk6.2 xmlrpcxx xraylib yaafe yices
redbaron: mlt
rider: MySQL php5-dba
rom_as: qt3
rt: gnustep-make
sbolshakov: libav libpostproc libquicktime111 libx264 libx264.142 x265
sem: nuxwdog
serpiph: blender2.49
shaba: edk2 mariadb qemu
shrek: Mesa dia
sin: cca-spec-babel cca-spec-classic dolfin-complex dolfin-real hypre libnss-fallback libnss-tartarus mpip petsc-complex petsc-real slepc-complex slepc-real tau
snejok: e3
stanv: bro cpupower mvapich-gcc
vitty: MySQL alterator-grub cegui mongo
viy: libquicktime111 pine speex
vkni: i3
zerg: apt-scripts-nvidia eigen2 kde4-settings-kmobile kde4-settings-knetbook libmygpo-qt libqca libringclient mlt qt3 qt4-webkit qt5-webengine

:
@docs: docs-lxdesktop
@everybody: CoinCsdp CoinPFunc OpenAD SFML allegro5.0 alterator-grub apiextractor apulse armadillo atl audacious-plugins berkeley_upc blender2.49 blitz blosc bro bullet3 cca-spec-babel cca-spec-classic cegui cercs_env cgns-mpi cgns-seq chasm clipper coin3d composer cooldown cppcheck cpupower crlibm cudd deadbeef df_shm dia dill docs-lxdesktop dolfin-complex dolfin-real e3 edk2 eiskaltdcpp escript-finley evpath exodusii ffs fityk flake freefemxx generatorrunner geos geos1 gforth gl2ps glsl-optimizer gnustep-BDB gnustep-JIGS gnustep-ShengGuang gnustep-back gnustep-objc2 gnustep-sqlclient gpsynth gravit gromacs hiredis hypre i3 jsonxx kde4-settings-kmobile kde4-settings-knetbook ksocrat lapack laspack libBatch libbotan1.11 libcds libcryptopp libcuefile libdict libgibsonclient libhdf5-8-mpi libhdf5-8-seq libjson_spirit libmesh-complex libmusicbrainz3 libmygpo-qt libnetcdf7-mpi libnetcdf7-seq libnetcdf_c++-4-mpi libnetcdf_c++-4-seq libnetcdf_c++4-1-mpi libnetcdf_c++4-1-seq libnss-tartarus
  libpostproc libqca libreplaygain libsc libsocket libsuitesparse libuniset2 libvdpau-va-gl libx264.142 libxerces-c libxtract log4cplus logtop lout luajit lugaru lxc lz4 mariadb mbuffer merkaartor mingw32-libnspr miniupnpc mlt mongo mosquitto mpip musepack mygui netgen nnti oofem-complex openblas openpdt oscpack pacoxx papi parmetis parmetis0 pdfedit petiga-complex petiga-real petsc-complex petsc-real php5-dba picosat pidgin-mra pine poco powder powdertoy pqiv pyside-qt4 pyside-qt4-py3 python-module-curve25519 python-module-cvxopt python-module-faketime python-module-gnureadline python-module-libmagic python-module-libxmp python-module-mathutils python-module-netCDF4 python-module-pivy python-module-pycudd python-module-pyices python-module-pymagic python-module-rtree python-module-scikits.audiolab python-module-scikits.samplerate python-module-wx3.0 python-module-z3c.pt python3-module-pcap qemu qgis qm-dsp qt3 qtm qutim reduce renpy rpm-macros-uefi runawfe4-gpd runawfe4-notifier sK1
  sams scotch scribus shiboken shiboken-py3 simage slepc-complex slepc-real sope tau tbb tinyxml2 trilinos10-docs uchardet unixODBC violetland vtk6.2 winff x265 xmlrpcxx xraylib yaafe yices
@nobody: allegro4.4 dmd libixp tremulous
@python: cca-spec-babel cca-spec-classic dolfin-complex dolfin-real hypre mpip petsc-complex petsc-real python-module-curve25519 python-module-cvxopt python-module-faketime python-module-gnureadline python-module-libmagic python-module-libxmp python-module-mathutils python-module-netCDF4 python-module-numpy python-module-pivy python-module-pycudd python-module-pyices python-module-pymagic python-module-rtree python-module-scikits.audiolab python-module-scikits.samplerate python-module-wx python-module-wx3.0 python-module-z3c.pt python3-module-pcap slepc-complex slepc-real tau
@qa: armadillo audacious blitz cca-spec-babel cca-spec-classic cgns-mpi cgns-seq chasm coin3d dia dolfin-complex dolfin-real extreme-tuxracer gnustep-make gromacs hypre imlib2 iozone laspack libcryptopp libmesh-complex libnss-tartarus libquicktime111 libsuitesparse libxerces-c lout mpip mvapich-gcc netgen nuxwdog oofem-complex papi parmetis petsc-complex petsc-real python-module-cvxopt python-module-numpy qgis reduce sK1 scotch scribus slepc-complex slepc-real tau wine-vanilla

> -- 
> Best regards,
> Ivan
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2016-06-20 12:50 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-26 13:31 [devel] other specs with "if 64"; was: Re: [AArch64] python3 spec fix Ivan Zakharyaschev
2016-05-26 13:35 ` Ivan Zakharyaschev
2016-05-26 20:46   ` Alexey Tourbin
2016-05-26 14:02 ` sbolshakov
2016-05-26 15:37   ` Ivan Zakharyaschev
2016-05-26 15:55 ` Dmitry V. Levin
2016-05-26 19:23 ` Alexey Tourbin
2016-05-27  8:18   ` Ivan Zakharyaschev
2016-05-27 17:50     ` Alexey Tourbin
2016-05-27 18:24       ` Ivan Zakharyaschev
2016-05-27 18:53         ` Alexey Shabalin
2016-05-27 19:23         ` Alexey Tourbin
2016-06-10 11:58 ` Ivan Zakharyaschev
2016-06-20 12:50   ` Ivan Zakharyaschev

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git