<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>