<div dir="ltr"><div><div><div><div><div><div>Первая прикидка дала успех. По крайней мере, ghc в оболочке теперь запускается без ошибок. Проверка сборки требует времени.<br><br></div>Оказывается, проблема уже была частично описана здесь:<br><br><a href="https://www.altlinux.org/Hasher/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE#.D0.9C.D0.BE.D0.BD.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.2Fproc" target="_blank">https://www.altlinux.org/<wbr>Hasher/Руководство#.D0.9C.D0.<wbr>BE.D0.BD.D1.82.D0.B8.D1.80.D0.<wbr>BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.<wbr>B5_.2Fproc</a><br><a href="https://www.altlinux.org/Hasher/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE#cite_note-4">https://www.altlinux.org/Hasher/Руководство#cite_note-4</a><br><br><br></div>Но тут тоже несколько сложностей. Во-первых, по описанию непонятно, нужно ли выставлять allowed_mountpoints в <span style="font-family:monospace;color:rgb(0,68,0);font-size:small">/etc/hasher-priv/system</span> и одновременно known_mountpoints в <span style="font-family:monospace;color:rgb(0,68,0);font-size:small">~/.hasher/config? Или достаточно только одной из этих настроек? А во-вторых, у меня в </span><span style="font-family:monospace;color:rgb(0,68,0);font-size:small"><span style="font-family:monospace;color:rgb(0,68,0);font-size:small">~/.hasher/config уже была строчка<br><br>mount=/dev/pts,/proc<br><br></span></span></div><span style="font-family:monospace;color:rgb(0,68,0);font-size:small"><span style="font-family:monospace;color:rgb(0,68,0);font-size:small">Ставил ее еще давно, и считал что этого достаточно, почему и не обратил внимание. И в-третьих, даже добавление обоих указанных настроек не смонтировало /proc при запуске hsh-shell. Помогло только явное указание типа<br><br></span></span></div><span style="font-family:monospace;color:rgb(0,68,0);font-size:small"><span style="font-family:monospace;color:rgb(0,68,0);font-size:small">$ hsh-shell --mountpoints=/proc<br><br></span></span></div><span style="font-family:monospace;color:rgb(0,68,0);font-size:small"><span style="font-family:monospace;color:rgb(0,68,0);font-size:small">Как будет при сборке --- посмотрю еще.<br><br></span></span></div><span style="font-family:monospace;color:rgb(0,68,0);font-size:small"><span style="font-family:monospace;color:rgb(0,68,0);font-size:small">И, наверное, если все будет нормально, наверное стоит исправить соответствующий раздел в Wiki, да?</span></span></div><div class="gmail_extra"><br><div class="gmail_quote">2018-04-07 12:47 GMT+03:00 Ivan Zakharyaschev <span dir="ltr">&lt;<a href="mailto:imz@altlinux.org" target="_blank">imz@altlinux.org</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sat, 7 Apr 2018, Eugine Kosenko wrote:<br>
<br>
&gt; Один и тот же свежесобранный своими руками ghc7.10.1-7.10.1-alt1.rpm<br>
&gt; устанавливаю в рабочей системе и в хэшере.<br>
&gt;<br>
&gt; Запускаю в рабочей системе:<br>
&gt;<br>
&gt; $ strace ghc 2&gt;&amp;1|grep haskeline<br>
&gt; openat(AT_FDCWD, &quot;/usr/lib64/ghc-7.10.1/bin/../<wbr>haske_IlDhIe25uAn0WJY379Nu1M/<br>
&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = 3<br>
&gt;<br>
&gt; Запускаю в хэшере:<br>
&gt;<br>
&gt; # strace ghc 2&gt;&amp;1|grep haskeline<br>
&gt; openat(AT_FDCWD, &quot;/lib64/tls/x86_64/x86_64/<br>
&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
<br>
</span>Это может быть связано с тем, что не смонтирван /proc, а там в<br>
RPATH/RUNPATH в этих elf-ах используется $ORIGIN (см man ld-linux.so).<br>
Чтобы узнать место, где выполняемый elf лежал, ld-linux как-то там смотрит<br>
в /proc/ , иначе работает так, как будто бы в текущей директории надо<br>
искать (и далее по стандартным путям).<br>
<br>
Натыкались на такое с glebfm@ при bootstrap-е пакета ghc на новой<br>
платформе (mips*).<br>
<br>
Такая же фигня есть в java (в т.ч closure), из-за этого при сборке<br>
обязательно приходится /proc монтировать. (Это до недавнего времени для<br>
меня было загадкой, почему какие-то java-библиотеки не находились в<br>
hasher, а так всё работало. Теперь с уверенностью догадываюсь.)<br>
<br>
&gt; openat(AT_FDCWD, &quot;/lib64/tls/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
&gt; openat(AT_FDCWD, &quot;/lib64/tls/x86_64/<br>
&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
&gt; openat(AT_FDCWD, &quot;/lib64/tls/<br>
&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/lib64/x86_64/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/lib64/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/lib64/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
&gt; openat(AT_FDCWD, &quot;/lib64/<br>
&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/tls/x86_64/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/tls/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/tls/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/tls/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/x86_64/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/x86_64/<br>
<span class="">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
</span>&gt; openat(AT_FDCWD, &quot;/usr/lib64/<br>
<div class="HOEnZb"><div class="h5">&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>&quot;,<br>
&gt; O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)<br>
&gt; writev(2, [{iov_base=&quot;/usr/lib64/ghc-7.<wbr>10.1/bin/ghc&quot;, iov_len=29},<br>
&gt; {iov_base=&quot;: &quot;, iov_len=2}, {iov_base=&quot;error while loading shared<br>
&gt; libra&quot;..., iov_len=36}, {iov_base=&quot;: &quot;, iov_len=2},<br>
&gt; {iov_base=&quot;libHShaskeline-0.7.<wbr>2.1-IlDhIe25u&quot;..., iov_len=58}, {iov_base=&quot;:<br>
&gt; &quot;, iov_len=2}, {iov_base=&quot;cannot open shared object file&quot;, iov_len=30},<br>
&gt; {iov_base=&quot;: &quot;, iov_len=2}, {iov_base=&quot;No such file or directory&quot;,<br>
&gt; iov_len=25}, {iov_base=&quot;\n&quot;, iov_len=1}], 10/usr/lib64/ghc-7.10.1/bin/<wbr>ghc:<br>
&gt; error while loading shared libraries:<br>
&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a>: cannot open<br>
&gt; shared object file: No such file or directory<br>
&gt;<br>
&gt; Получается, что в рабочей системе эта библиотека находится, а в хэшере ---<br>
&gt; нет. Притом она и там и там лежит в одном и том же месте:<br>
&gt;<br>
&gt; $ ls /usr/lib64/ghc-7.10.1/haske_<wbr>IlDhIe25uAn0WJY379Nu1M/lib*<br>
&gt; /usr/lib64/ghc-7.10.1/haske_<wbr>IlDhIe25uAn0WJY379Nu1M/<wbr>libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M.a<br>
&gt; /usr/lib64/ghc-7.10.1/haske_<wbr>IlDhIe25uAn0WJY379Nu1M/<br>
&gt; <a href="http://libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so" rel="noreferrer" target="_blank">libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M-ghc7.<wbr>10.1.so</a><br>
&gt; /usr/lib64/ghc-7.10.1/haske_<wbr>IlDhIe25uAn0WJY379Nu1M/<wbr>libHShaskeline-0.7.2.1-<wbr>IlDhIe25uAn0WJY379Nu1M_p.a<br>
&gt;<br>
&gt; Непонятно, почему в хэшере ищнт не там, где в рабочей системе (и даже не<br>
&gt; пытается)? ld.so.conf в обеих средах пустые, шаманство с ручной установкой<br>
&gt; LD_LIBRARY_PATH не помогает. Возможно, сама libHShaskeline не может быть<br>
&gt; прогружена из-за отсутствия какой-то другой библиотеки (скорее всего,<br>
&gt; проблема таки в зависимости, сейчас пытаюсь сгенерировать полный список по<br>
&gt; rpmbb -r), но как узнать, какой?<br>
&gt;<br>
&gt; На самом деле все еще хуже. Пакет нормально собирается в рабочей системе,<br>
&gt; но не собирается в хэшере из-за аналогичной ошибки --- промежуточный<br>
&gt; ghc-pkg не находит libHSterminfo.<br>
&gt; </div></div><br>______________________________<wbr>_________________<br>
Devel mailing list<br>
<a href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a><br>
<a href="https://lists.altlinux.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">https://lists.altlinux.org/<wbr>mailman/listinfo/devel</a><br></blockquote></div><br></div>