LINUX.ORG.RU
ФорумTalks

Хрупкая система разваливается от небольших изменений

 , suxx,


0

2

Что-то меня опять потянуло на морализаторство что ли. Но с каждым разом всё меньше желания сражаться с багами или чем-то таким.

Очередной пример трудностей на ровном месте.

Прочитав последнюю новость про уязвимости в ffmpeg захотел пересобрать его с --disable-network. Скачал пакет, пересобрал неизменённый ( dpkg-buildpackage -us -uc ). Всё нормально.

Изменил, добавил --disable-network в debian/rules для ./configure и трах, сразу при пересборке


dh_install
cp: cannot stat ‘debian/tmp/usr/bin/ffserver’: No such file or directory
dh_install: cp -a debian/tmp/usr/bin/ffserver debian/ffmpeg//usr/bin/ returned exit code 1
debian/rules:107: recipe for target 'override_dh_auto_build-arch' failed
make[1]: *** [override_dh_auto_build-arch] Error 2

То есть, тык пальчиком, а оно сразу дзынь и разбилось.

И чтобы в пакетной системе просто отключить то, что конфигурируется в ./configure надо теперь вникать как оно внутрях устроено и искать что ещё и где правильно задизейблить.

Они должны были добавить регулярку, которая бы из списка устанавливаемых файлов убирала ffserver, если в rules появляется упоминание --disable-network, --enable-network=no, --without-network, …

Darth_Revan ★★★★★
()

И претензия в том, что мейнтейнеры не предусмотрели ключик сборки?

Кстати, какой дистр?

tailgunner ★★★★★
()
Ответ на: комментарий от Darth_Revan

А хрен его знает как на самом деле правильно. С одной стороны, да должны были, с другой - опухнуть можно прописывать все варианты. С третьей, если в исходном ./configure можно было задавать эти опции, их по идее точно также хотелось бы задавать и при пересборке в конкретном дистре. С четвёртой - как бы и не обязаны. Разработчик - одно, мейнтейнер и политика дистрибутива - другое.

В принципе тему-то уже создавал Мнение про механизм дистрибуции программ

Наверное, идеально было бы, если бы существовала чёткая договорённость, мейнтейнеры были бы не нужны и весь софт можно было бы ставить через make install не превращая систему в помойку. Но этого не будет по многим причинам, в том числе потому что должна быть свобода построения системы по своим каким-то ориентирам.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

И претензия в том, что мейнтейнеры не предусмотрели ключик сборки?

В том и дело, что я даже не пойму допустима ли претензия или нет :)

Дистр - debian 8 stable с подключённым deb-multimedia

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

Претензия допустима, конечно (репорти баг). Но, если пришлось править rules - ничего удивительного, что что придётся править files.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Кстати, интересно кому репортить. ffmpeg был взят не с основного репа, а deb-multimedia. Хотя можно проверить, как оно в основном.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

Любая система меняется от больших изменений

В том и дело, что я даже не пойму допустима ли претензия или нет :)

Нет, конечно. Если поменял что-то в сборке пакета, будь готов к тому, что что-то изменится, и правила нужно будет поменять, хрупкости в этом нет никакой.

Darth_Revan ★★★★★
()
Последнее исправление: Darth_Revan (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

В самом Debian, кстати, данной конкретной «проблемы» нет, ибо бинарники выбираются с маской: usr/bin/ff*, в отличие от deb-multimedia, где они указаны прямо.
Скорее всего, в deb-multimedia так специально сделали, чтобы случайно не собралось успешно с не собранными по какой-то причине частями (автоматическое отключение сборки компонентов при отсутствии нужных версий зависимостей, например).

Darth_Revan ★★★★★
()
Последнее исправление: Darth_Revan (всего исправлений: 1)
Ответ на: Любая система меняется от больших изменений от Darth_Revan

Если поменял что-то в сборке пакета, будь готов к тому, что что-то изменится, и правила нужно будет поменять, хрупкости в этом нет никакой.

Вопрос философский. Потому что для авторов ffmpeg ( не мейнтейнера) - это штатная возможность при которой собираемость ffmpeg сохраняется.

В конкретно данном случае достаточно из файла debian/ffmpeg.install удалить строчку с ffserver. Но на момент внесения изменений в rules это не очевидно. И в принципе нарушения могут оказаться и заковыристее.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от Darth_Revan

Скорее всего, в deb-multimedia так специально сделали, чтобы случайно не собралось успешно с не собранными по какой-то причине частями (автоматическое отключение сборки компонентов при отсутствии нужных версий зависимостей, например).

А может быть. Интересно, но тогда вроде так и должно быть, но что-то не то всё равно.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

Ошибкой обычно считается обратная ситуация: когда успешно собирается не так, как хотел мейнтейнер, ибо сюрпризы.
А создавать варианты сборок в бинарном дистрибутиве – это вообще моветон, ибо почти никогда реально не нужно.
Вот в Gentoo есть на это USE «network», да.

Darth_Revan ★★★★★
()
Ответ на: комментарий от anonymous_incognito

В конкретно данном случае достаточно из файла debian/ffmpeg.install удалить строчку с ffserver. Но на момент внесения изменений в rules это не очевидно.

ну вообще это очевидно всем, кто этим занимается. rtfm, google и не нужно ни про какие баги никуда писать.

crypt ★★★★★
()
Ответ на: комментарий от crypt

ну вообще это очевидно всем, кто этим занимается.

Чем этим?

rtfm, google и не нужно ни про какие баги никуда писать.

Что именно rtfm? Ну вот я допустим не делал этого ещё, так в каком rtfm надо было заранее найти как правильно --disable-network делать для ffmpeg?

Про баги может и не надо писать, потому что похоже, что это не баг, а вовсе фича такая.

anonymous_incognito ★★★★★
() автор топика

пакетные дистры делают не для того, чтобы в них ковыряться. Их делают для того, чтобы ими пользоваться.

targitaj ★★★★★
()
Ответ на: комментарий от targitaj

Их делают для того, чтобы ими пользоваться.

Ну вот ими пользуются. Обнаружился весьма неприятный баг, который пока не пропатчен дистростроителями. Какие в этой ситуации канонически-верные телодвижения у пользователя?

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

полагаю, писать багрепорт и надеяться. У тебя 5 звёзд, ты сам должен знать.

targitaj ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Какие в этой ситуации канонически-верные телодвижения у пользователя?

Сделать патч на rules и files, пересобрать пакеты для себя, и зарепортить баг с приложением патча.

tailgunner ★★★★★
()

Ты перепутал, это не гента. Если бросить лом в турбину авиалайнера - он тоже дзинь и разбился.

Хочешь пересборок - нужно вникать в большинство внутренностей конкретной дэбки.

iu0v1
()

А я сегодня ssd от сервера домашнего в винду воткнул, а она gpt попортила. Слава аллаху - нефатально (хотя parted падал с предлогом отправить баг на принте партиций), и gdisk наперевес с мануалом http://www.rodsbooks.com/gdisk/repairing.html всё починил.

Deleted
()

Поэтому рекомендую всем CRUX.

Spoofing ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Чем этим?

пересборкой пакетов. обычно этим занимается мейнтейнер. это не штатная фича для конечного пользователя. ты либо шаришь в этом, либо не жалуешься, что сломал. ты грубо говоря, решил че-то там хакнуть, но не справился с управлением.

нужно читать мануал про то, как работает система сборки пакетов в debian.

crypt ★★★★★
()
Ответ на: комментарий от mystery

Хватило. И не из рулесов, а из ffmpeg.instal

Теперь объясни, откуда надо было взять ума сделать это ДО появления ошибки.

Вообще, конечно, это всё мелочь и как исправить быстро сообразил и всё такое. Но тем не менее «осадочек остался.»

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от crypt

нужно читать мануал про то, как работает система сборки пакетов в debian.

А что я не так делал с этой точки зрения? На всякий случай замечу, что rules там сгенерирован явно не полностью автоматически.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

А что я не так делал с этой точки зрения?
Теперь объясни, откуда надо было взять ума сделать это ДО появления ошибки.

Из гуглинга и чтения документации, очевидно, ты должен был ожидать ошибку такого рода. И я без понятия, почему ты думаешь, что что-то должно генерироваться автоматически. Я просто занимался сборкой пакетов и понимаю, что вместо гугла ты прибежал на форум жаловаться, что подлый линукс такая хрупкая система.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

Из гуглинга и чтения документации, очевидно, ты должен был ожидать ошибку такого рода.

Между прочим, сейчас погуглил и что-то кроме ссылки на этот тред не нашёл :)

И я без понятия, почему ты думаешь, что что-то должно генерироваться автоматически.

debian/rules можно сделать автоматически. Без понятия у какого процента пакетов нет ручной коррекции после, но тем не менее.

Ну то есть, прежде чем воспользоваться опцией, предусмотренной авторами пакета ffmpeg надо было изучать его неизвестно сколько времени, чтобы не было ошибки.

Я просто занимался сборкой пакетов и понимаю, что вместо гугла ты прибежал на форум жаловаться, что подлый линукс такая хрупкая система.

Есть очевидной противоречие. Авторы ffmpeg предусмотрели возможность сборки с опцией --disable-network. Автор пакета для дебиан не знаю, нарочно или нет, но сделал его таким, что применение этой опции приводит к ошибке.

Вопрос не совсем ясный, так как есть разные мнения. Обязан или он был поддержать возможности сборки, предусмотренные авторами программы или готовый пакет для дистра - это законченный объект.

Есть ещё принцип наименьшего удивления, который нарушен ошибкой. Я бы наверное не стал ничего говорить о хрупкости, если бы применил опцию --enable-чего-то-там Это бы не вызвало удивления: попытка добавления каких-то возможностей, не предусмотренных мейнтейнером, вполне логично могла бы привести к проблемам. Но от убирания возможностей, причём опцией предусмотренной авторами исходной программы, как-то не ожидаешь проблем при сборке.

anonymous_incognito ★★★★★
() автор топика
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

Обязан или он был поддержать возможности сборки, предусмотренные авторами программы

совсем не обязан. это разные проекты.

удивления

у тебя все будет вызывать удивление, т.к. ты не в теме.

crypt ★★★★★
()
Ответ на: комментарий от entefeed

хуже! он назвал линукс «хрупкой системой»! ) а вобще мы из всего можем нацпол сделать)

crypt ★★★★★
()
Ответ на: комментарий от crypt

у тебя все будет вызывать удивление, т.к. ты не в теме.

Не в теме чего? ffmpeg'а? Ну да не в теме. Зато это далеко не первый раз, когда что-то изменяю в системе или патчу в пакетах. Субъективно, но постепенно это всё сложнее делать, линукс уже далеко не та относительно простая в ковырянии по сравнению с виндой система.

anonymous_incognito ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.