<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=KOI8-R">
  </head>
  <body text="#000000" bgcolor="#999999">
    <br>
    <div class="moz-cite-prefix">02.10.2019 13:06, Alexey Gladkov пишет:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20191002100631.lcowkjuivbjggiex@Legion-PC.fortress">
      <pre class="moz-quote-pre" wrap="">On Wed, Oct 02, 2019 at 01:46:10PM +0400, Ivan A. Melnikov wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">On Wed, Oct 02, 2019 at 12:16:19PM +0300, Leonid Krivoshein wrote:
</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">

02.10.2019 9:43, Антон Мидюков пишет:
</pre>
          <blockquote type="cite">
            <pre class="moz-quote-pre" wrap="">02.10.2019 13:38, Ivan A. Melnikov пишет:
</pre>
            <blockquote type="cite">
              <pre class="moz-quote-pre" wrap="">On Wed, Oct 02, 2019 at 12:06:58AM +0300, Leonid Krivoshein wrote:
</pre>
              <blockquote type="cite">
                <pre class="moz-quote-pre" wrap="">Коллеги, приветствую!

Простой вопрос: как в процессе сборки образа отличить целевую
архитектуру:
x86_64, aarm64 или powerpc? Могу я полагаться на $(uname -m) или
есть более
кошерная переменная? И что там конкретно должно быть, на всякий?
</pre>
              </blockquote>
              <pre class="moz-quote-pre" wrap="">Полагаться на $(uname -m) нельзя -- образы часто собираются через
qemu-user на x86_64, особенно для arm* и mipsel.

Если Вы про mkimage-profiles, то там есть переменная $(ARCH), или
$GLOBAL_ARCH во всяких image-scripts.d. Примеры использования, и,
соответственно, что там может быть, несложно на git grep'ать.
</pre>
            </blockquote>
            <pre class="moz-quote-pre" wrap="">В mkimage-profiles не проблема. Леонид хочет в mkimage сделать проверку
архитектур. Но там, вроде, проверка архитектур ни где не делается.

</pre>
          </blockquote>
          <pre class="moz-quote-pre" wrap="">
Скрипт отрабатывает в чруте собираемого образа. По большому счёту не так
важно, будет он частью mkimage, частью m-p или попадёт туда как-то иначе.
Потому что в конечном итоге его вызовет mkimage. И, как я подозреваю,
вызовет он его, предварительно почистив окружение. Поэтому и спрашиваю...
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
В m-p проще (и правильнее наверное) использовать $GLOBAL_ARCH, она
создаётся и прокидывается куда нужно; вне m-p вполне можно воспользоваться
$(rpm --eval '%_host_cpu'), видел в паре мест, должно работать хорошо.

Ещё можно скрипт в пакет запаковать, правильный для каждой архитектуры,
а в профиле просто добавить пакет ;D
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
В mkimage есть GLOBAL_TARGET, TARGET [1], которая превращается в
соответствующую опцию hsh. Да, это конечно не архитектура процессора.

Если же используется qemu, то есть HSH_USE_QEMU [2], которая определяет
какой qemu будет использоваться.

[1] <a class="moz-txt-link-freetext" href="https://github.com/altlinux/mkimage/blob/master/doc/README.ru#L211">https://github.com/altlinux/mkimage/blob/master/doc/README.ru#L211</a>
[2] <a class="moz-txt-link-freetext" href="https://github.com/altlinux/mkimage/blob/master/doc/README.ru#L369">https://github.com/altlinux/mkimage/blob/master/doc/README.ru#L369</a>

</pre>
    </blockquote>
    <br>
    Всем спасибо!<br>
    <br>
    Как я пока для себя понял, надёжнее всего использовать $TARGET и
    вызывать скрипт из mkimage, передавая архитектуру через командную
    строку как-то так:<br>
    <br>
    mki-run /path/to/script --arch "$TARGET" ...<br>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Best regards,
Leonid Krivoshein.</pre>
  </body>
</html>