From: Ivan Zakharyaschev <imz@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] Пути к разделяемым библиотекам в hasher Date: Sat, 7 Apr 2018 14:47:36 +0300 (MSK) Message-ID: <alpine.LFD.2.20.1804071430070.3504@imap.altlinux.org> (raw) In-Reply-To: <CAB_XSX3Xgxj0f3CiU+QnP9RB2B0e6Ei0e50_y3WctsL7nBsc1Q@mail.gmail.com> [-- Attachment #1: Type: text/plain, Size: 7177 bytes --] On Sat, 7 Apr 2018, Eugine Kosenko wrote: > Первая прикидка дала успех. По крайней мере, ghc в оболочке теперь > запускается без ошибок. Проверка сборки требует времени. > > Оказывается, проблема уже была частично описана здесь: > > https://www.altlinux.org/Hasher/Руководство#.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 > https://www.altlinux.org/Hasher/Руководство#cite_note-4 > > > Но тут тоже несколько сложностей. Во-первых, по описанию непонятно, нужно > ли выставлять allowed_mountpoints в /etc/hasher-priv/system и одновременно > known_mountpoints в ~/.hasher/config? Или достаточно только одной из этих Обе нужны. Первая -- разрешение от администратора системы так лазить. А другое -- что пользователь хочет позволить. Я так понимаю. > настроек? А во-вторых, у меня в ~/.hasher/config уже была строчка > > mount=/dev/pts,/proc Это не имеет смысла, потому что согласно man hasher есть только переменная known_mountpoints : --mountpoints=LIST Defines list of known mount points. Every build dependence which belongs to this list will be mounted. If some mount point is not explicitly allowed in hasher-priv.conf(5), build will fail. ($known_mountpoints); > Ставил ее еще давно, и считал что этого достаточно, почему и не обратил > внимание. И в-третьих, даже добавление обоих указанных настроек не > смонтировало /proc при запуске hsh-shell. Помогло только явное указание типа > > $ hsh-shell --mountpoints=/proc > > Как будет при сборке --- посмотрю еще. Да, получается, что поведение hsh и hsh-shell/hsh-run -- разное. И, наверное, это больше всего запутывает пользователей, потому что они на основе своего опыта не могут точно вспомнить, когда же оно монтируется, а когда -- нет. При сборке с помоощью hsh монтируется /proc, если есть соответствующее требование (в виде BuilRequires или -- транзитивно -- Requires пактов). И оба разрешения должны быть выданы, конечно (known_mountpoints, allowed_mountpoints). При запуске hsh-shell/hsh-run этому требованию неоткуда взяться, зато действует опция --mountpoints. (По-моему, это введение в заблуждение -- отождествление её с $known_mountpoints в man hsh-shell!) Будет ли /proc смонтирован при hsh --mountpoints=/proc аналогично безусловно, независмо от наличия BuildRequires/Requires -- я точно не могу сказать. (Можно проверить, чтобы уже раз и навсегда это утчнить.) > И, наверное, если все будет нормально, наверное стоит исправить > соответствующий раздел в Wiki, да? Хотел написать эти подробности про $ORIGIN из моего сообщения в https://www.altlinux.org/Hasher/FAQ . А что требует исправления? (Подробности из моего сообщения -- некие дополнения просто, а не исправления.) > > 2018-04-07 12:47 GMT+03:00 Ivan Zakharyaschev <imz@altlinux.org>: > > > On Sat, 7 Apr 2018, Eugine Kosenko wrote: > > > > > Один и тот же свежесобранный своими руками ghc7.10.1-7.10.1-alt1.rpm > > > устанавливаю в рабочей системе и в хэшере. > > > > > > Запускаю в рабочей системе: > > > > > > $ strace ghc 2>&1|grep haskeline > > > openat(AT_FDCWD, "/usr/lib64/ghc-7.10.1/bin/../ > > haske_IlDhIe25uAn0WJY379Nu1M/ > > > libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so", > > > O_RDONLY|O_CLOEXEC) = 3 > > > > > > Запускаю в хэшере: > > > > > > # strace ghc 2>&1|grep haskeline > > > openat(AT_FDCWD, "/lib64/tls/x86_64/x86_64/ > > > libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so", > > > O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) > > > > Это может быть связано с тем, что не смонтирван /proc, а там в > > RPATH/RUNPATH в этих elf-ах используется $ORIGIN (см man ld-linux.so). > > Чтобы узнать место, где выполняемый elf лежал, ld-linux как-то там смотрит > > в /proc/ , иначе работает так, как будто бы в текущей директории надо > > искать (и далее по стандартным путям). > > > > Натыкались на такое с glebfm@ при bootstrap-е пакета ghc на новой > > платформе (mips*). > > > > Такая же фигня есть в java (в т.ч closure), из-за этого при сборке > > обязательно приходится /proc монтировать. (Это до недавнего времени для > > меня было загадкой, почему какие-то java-библиотеки не находились в > > hasher, а так всё работало. Теперь с уверенностью догадываюсь.) > > > Получается, что в рабочей системе эта библиотека находится, а в хэшере > > --- > > > нет. Притом она и там и там лежит в одном и том же месте: > > > > > > $ ls /usr/lib64/ghc-7.10.1/haske_IlDhIe25uAn0WJY379Nu1M/lib* > > > /usr/lib64/ghc-7.10.1/haske_IlDhIe25uAn0WJY379Nu1M/ > > libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M.a > > > /usr/lib64/ghc-7.10.1/haske_IlDhIe25uAn0WJY379Nu1M/ > > > libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M-ghc7.10.1.so > > > /usr/lib64/ghc-7.10.1/haske_IlDhIe25uAn0WJY379Nu1M/ > > libHShaskeline-0.7.2.1-IlDhIe25uAn0WJY379Nu1M_p.a > > > > > > Непонятно, почему в хэшере ищнт не там, где в рабочей системе (и даже не > > > пытается)? ld.so.conf в обеих средах пустые, шаманство с ручной > > установкой
prev parent reply other threads:[~2018-04-07 11:47 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-07 9:47 ` Ivan Zakharyaschev 2018-04-07 11:47 ` Ivan Zakharyaschev [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=alpine.LFD.2.20.1804071430070.3504@imap.altlinux.org \ --to=imz@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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