On Mon, Dec 02, 2019 at 10:20:40AM +0300, Paul Wolneykien wrote: > В Mon, 2 Dec 2019 01:31:51 +0300, Dmitry V. Levin пишет: > > On Mon, Dec 02, 2019 at 01:10:30AM +0300, Paul Wolneykien wrote: > > > В Sun, 1 Dec 2019 14:46:28 +0300, Dmitry V. Levin пишет: > > > > On Sun, Dec 01, 2019 at 11:25:08AM +0000, manowar@altlinux.org wrote: > > > > > Воскресенье, 1 декабря 2019 г получено от Dmitry V. Levin: > > > > > > On Sun, Dec 01, 2019 at 07:30:51AM +0000, manowar@altlinux.org wrote: > > > > > > > Воскресенье, 1 декабря 2019 г получено от Dmitry V. Levin: > > > > > > > > > > > > > > > On Sun, Dec 01, 2019 at 12:47:34AM +0300, Dmitry V. Levin > > > > > > > > wrote: > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > Кто сломал сборку всех этих пакетов? > > > > > > > > > > > > > > > > Очевидно, это был пакет nss-gost: > > > > > > > > $ comm -12 <(rpmquery --provides -p > > > > > > > > Sisyphus/files/x86_64/RPMS/libnss-3.47.0-alt1.x86_64.rpm > > > > > > > > |sort) <(rpmquery --provides -p > > > > > > > > Sisyphus/files/x86_64/RPMS/libnss-gost-3.47.0-alt1.gost1.2.x86_64.rpm > > > > > > > > |sort) |wc -l 124 > > > > > > > > > > > > > > > > Альтернативные провайдеры являются источником ошибок, и > > > > > > > > пакет nss-gost - очередное тому напоминание. > > > > > > > > > > > > > > Я убрал явное дублирование Provides. Полегчало? > > > > > > > > > > > > В libnss-gost ничего не изменилось: > > > > > > > > > > Тогда я не понимаю, какой именно Provides ломает сборку. Можно > > > > > где-нибудь посмотреть полный лог сборки сломавшихся пакетов? > > > > > > > > Все они ломают сборку, там же библиотека, это пересечение должно > > > > быть пустым. То, что находится в libnss-gost, не должно быть > > > > libnss. > > > > > > > > Это даже не вопрос сборки, достаточно попробовать установить > > > > пакеты, которые нужны для сборочной среды. > > > > > > Да, в самом деле, установка среды спотыкается на выборе > > > libnss-gost-devel для pkgconfig(nss). Но эту проблему несложно > > > обойти соответствующим изменением *.pc внутри libnss-gost-devel. > > > Может быть проблема имеет больше одного решения, и не нужно > > > избавляться от всех пересечений между libnss и libnss-gost? > > > > Вы делаете пакет с альтернативной реализацией той же самой библиотеки, > > которая уже реализована в пакете libnss, с тем же soname, которое в > > libnss, и всё ещё надеетесь, что это может работать? Нет, конечно, > > это не может работать. Альтернативные реализации soname не работают, > > apt выберет не ту библиотеку, которую надо пользователю. > > Подожди, у меня вот не сходятся как раз эти два факта: > > а) альтернативные реализации soname не работают и > б) apt выберет не ту библиотеку. > > Это же разные вещи. Это одно и то же в том смысле, что из-за (б) мы фактически имеем (а). Вот, полюбуйтесь: $ echo libnss-gost |LC_COLLATE=C join -11 -22 -o2.1 - /beehive/stats/Sisyphus-x86_64/ufb-2 |wc -l 778 $ echo libnss |LC_COLLATE=C join -11 -22 -o2.1 - /beehive/stats/Sisyphus-x86_64/ufb-2 |wc -l 1392 > Я исходил из того, чтобы поддержка ГОСТ > появлялась бы в Firefox (и других браузерах и программах, работающих > через NSS) очень простым способом: пользователь устанавливает вместо > штатной libnss пакет libnss-gost. (Сейчас патч для firefox просто > микроскопический и я думаю что вполне можно включить его в основную > версию пакета firefox.) Согласись, что это было бы проще и для > пользователя, и для поддержки пакетов. > > И тут выясняется, что заменить одну библиотеку на другую можно -- > слинкованнная с ней программа продолжит работать, --- но нет гарантии, > что apt выберет по умолчанию libnss, а не libnss-gost, так? Т.е. > альтернативные реализации soname работают с программами, которые В каждый момент времени работает только одна реализация soname. При известной аккуратности реализации взаимозаменяемые, что позволяет, например, обновлять библиотеки - это по сути замена одной реализации на другую, более новую (или менее новую). > используют данные библиотеки, но "не работают" с apt. Неужели > действительно нет способа объяснить apt, что от него требуется? apt можно сконфигурировать таким образом, чтобы он при прочих равных выбирал libnss, а не libnss-gost, но тогда пользователям, которые захотят поставить libnss-gost, придётся переконфигурировать apt, чтобы он выбирал libnss-gost. А если есть готовность конфигурировать apt, тогда лучше собирать это добро в недавно созданный apt component под названием gostcrypto, там уже есть openssh и openvpn. Коллеги, расскажите, пожалуйста, как правильно собирать пакеты в gostcrypto. -- ldv