LINUX.ORG.RU
ФорумTalks

Что требуется от дистрибутивов типа LFS?


0

0

В общем, вопрос о выборе между простотой и 100% правильностью, а также о фразе "LFS is not a distro".

Linux From Scratch выпускает книжку о самомтоятельной сборке Linux: http://www.linuxfromscratch.org/lfs/view/development/ . Для тех, кто справился и хочет продвинуться дальше, есть BLFS: http://www.linuxfromscratch.org/blfs/view/svn/ . Есть еще такой человек, Greg Schafer, который имеет (вроде бы обоснованные) претензии к методу получения самосогласованной цепочки инструментов компиляции в LFS и к некоторым другим (в том числе организационным) моментам. Он выпустил форк LFS: http://www.diy-linux.org/x86-reference-build/ .

В связи с тем, что набор применяемых исправлений в LFS и DIY различается, я послал Greg'у уведомление следующего содержания:

---- I want to know your opinion on the following patches that are in various sorts of LFS but not in DIY Linux. Please verify each one, because there may still be a case of bad smoke.

1) glibc-2.4 patches in CLFS: http://cross-lfs.org/files/patches/1.0.0rc3/glibc-2.4-iconv_fix-1.patch and http://cross-lfs.org/files/patches/1.0.0rc3/glibc-2.4-localedef_segfault-1.patch. Since I have never built a system with glibc-2.4, I can't tell you direct facts. Some indirect ones are that the headers of those patches mention that the bugs are not LFS-specific (and even provide links), and that you don't apply those patches. Are you able to reproduce those bugs?

2) glibc-2.3.6 Linux Types Patch: relevant for compiling Xorg. Without the patch, some versions of Xorg (including 6.9) give compilation errors in agp-related file.

3) Gawk "invalid free" patch, incorrectly referenced as "segfault" by LFS. The bug is triggered by "awk '{}' no_such_file".

4) Gawk, #define HAVE_LANGINFO_CODESET 1 in config.h. Relevant in the vi_VN locale, because this locale uses the UTF-8 character set, but its name doesn't end in "UTF-8". Without the define, gawk fails to recognize this as a UTF-8 locale and treat it as such. But DIY doesn't support UTF-8, so you can ignore this.

5) GRUB Disk Geometry Patch: I don't know the exact description of the problem. Maybe the patch is not really good.

6) Gzip Security Patch: Unfortunately, I have no testcase, but the patch has CVE references.

7) Kbd Backspace/Delete Fix Patch: This makes all keymaps consistent WRT their Backspace/Delete handling. Without the patch, with some keymaps like "ru" and "no-latin1", Ctrl+H doesn't bring up help in Emacs.

8) Module-init-tools Patch from http://www.linuxfromscratch.org/patches/lfs/development/module-init-tools-3.2...: required for udev to autodetect some USB storage devices. The problem (and a reproducible tescase) is described fully at http://bugs.debian.org/350915

9) Tar security fix (malformed tar archive can make tar segfault)

10) Tar sparse file handling fix (please help the Linux-NTFS project by not providing a broken tar, see http://lists.gnu.org/archive/html/bug-tar/2005-03/msg00004.html)

11) Shadow, reencoding of manual pages from UTF-8 to 8-bit encodings. The fact is that Man passes the "-Tlatin1" option to Groff by default, and that implies that manual pages should be stored in language-specific 8-bit encodings on disk. This is not the case with the current DIY. The result is that e.g. Russian manual pages become a mess of unreadable characters.

12) You don't pass any "lang" argument to Man-1.6d. This causes the message catalogs not to be installed, but the relevant code is still compiled into Man. The result is that a pointless message about NLSPATH is printed in non-English locales. Please pass "+lang none" to disable translation of messages completely and thus avoid this meaningless warning (this is also needed if you plan to support UTF-8 with Man, as Man doesn't correctly reencode translated messages).

13) Vim-7.0 patch about the manual pages. This is necessary in order for "man vim" to display the Russian manual page of Vim in Russian locale. Man simply doesn't search in /usr/share/man/ru.KOI8-R.

----

Получил ответ:

---- On Sun, Jul 30, 2006 at 05:55:09PM +0600, Alexander E. Patrakov wrote:

> > I want to know your opinion on the following patches that are in various > > sorts of LFS but not in DIY Linux. Please verify each one, because there > > may still be a case of bad smoke.

Alex, DIY clearly has different goals to LFS which explains a lot. In particular, DIY has a "minimal patches" policy and (unfortunately) pays no attention to i18n and UTF8. DIY also takes a different view on security patches (albeit not yet documented but on my TODO). I think the LFS mentality of patching every known corner case is absurd. You might as well just run a distro. Your average build-from-source'r just wants a functioning system. Sure, if something doesn't work that matters to *them*, they just go and find the patch and apply it.

> > 1) glibc-2.4 patches in CLFS: > > http://cross-lfs.org/files/patches/1.0.0rc3/glibc-2.4-iconv_fix-1.patch

This is probably valid. I've compiled samba against glibc-2.4 but haven't yet run it. On my TODO.

> > 2) glibc-2.3.6 Linux Types Patch: relevant for compiling Xorg. Without > > the patch, some versions of Xorg (including 6.9) give compilation errors > > in agp-related file.

Simple enough to patch xorg, which is what everyone was doing before I pointed out it was a bug in Glibc.

> > 3) Gawk "invalid free" patch, incorrectly referenced as "segfault" by > > LFS. The bug is triggered by "awk '{}' no_such_file".

Show me a real life example of where this matters. I vaguely recall seeing the segfault in a config.log somewhere but I can't find it now.

Regards Greg ----

По правде, тема "патчим то, что нужно мне лично" vs "патчим все, что справедливо, даже если мне не нужно" vs "как я узнаю, что мне нужен патч?" уже обсуждалась здесь: http://www.linux.org.ru/view-message.jsp?msgid=1361924

Но там это было в другом контексте. Сейчас я хочу узнать Ваше мнение относительно только этого вопроса: абсурдна ли политика LFS, когда они применяют (правильный!) патч на каждый мелкий баг, что может сократить один день поисков? Хотели бы Вы видеть LFS с исправлениями на все случаи жизни, или без UTF-8 и с полурабочим glibc?

Чтобы предупредить возражения: более 50% упомянутых патчей взято из официальных CVS перечисленных программных продуктов и войдут в следующую версию.

★★★★★
Ответ на: комментарий от geek

> по-твоему - им делать нефиг?

1) "им" - это кому?

2) я все еще имею право вносить изменеиия в официальный вариант книги, так что я - части "их". Хотелось бы привести ее в соответствие с пожеланиями пользователей.

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

>1) "им" - это кому?

создателям lfs

>2) я все еще имею право вносить изменеиия в официальный вариант книги, так что я - части "их". Хотелось бы привести ее в соответствие с пожеланиями пользователей.

afaik, lfs строится на релизах, а не на cvs-билдах.

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

> afaik, lfs строится на релизах, а не на cvs-билдах.

Совершенно верно. Однако, релизы иногда содержат ошибки. Например, релиз 3.2.2 пакета module-init-tools содержит ошибку в разборе регулярных выражений, которая, _например_, мешает udev загружать модуль usb-storage при подсоединении определенной флешки (см. http://bugs.debian.org/350915 ). В бета-версии module-init-tools эта ошибка исправлена. У тебя этой флешки нет. Что предлагается?

1) [как и было сделано] выделить конкретно это исправление из бета-версии и применить минимальный патч к module-init-tools 3.2.2, см. http://www.linuxfromscratch.org/patches/lfs/development/module-init-tools-3.2...

2) Игнорировать баг с известным исправлением, и вынуждать пользователей, которых это касается, тратить свое драгоценное время на вопросы "что я делаю неправильно"

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

>У тебя этой флешки нет. Что предлагается?

предлагается патчить в ручную, если тебе это надо, а если хочется все "out of box" - предлагается юзать бинарные дистры и не ипать себе мозг.

lfs - он все-таки не для end-юзверей

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

1 правильнее. все-равно применение патча остается за тем, кто собирает лфс.

hatefu1_dead
()
Ответ на: комментарий от geek

> предлагается патчить в ручную, если тебе это надо

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

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

>Ключевой вопрос: если тебе это надо, как предполагается, что ты узнаешь, что нужен именно патч, и именно этот?

предполагается, что для сборки lfs нужен мозг. Дальше не комментирую :)

geek ★★★
()

> Сейчас я хочу узнать Ваше мнение относительно только этого вопроса: абсурдна ли политика LFS, когда они применяют (правильный!) патч на каждый мелкий баг, что может сократить один день поисков? Хотели бы Вы видеть LFS с исправлениями на все случаи жизни, или без UTF-8 и с полурабочим glibc?

Политика LFS совершенно правильная. Даже если конечному пользователю исправляемая патчем функциональность и не нужна, пара лишних команд не повредит. Ну а если вдруг понадобится, найти, а потом исправить ошибку может потребовать слишком больших затрат времени.

Пользователь LFS, будущий пользователь BLFS :)

Jini ★★
()

насколько помню в книге lfs (да и в blfs помоему) расписано какой зачем патч нужен - если есть мозг, можно воспользовавшись им решить нужен ли патч тебе или нет. и это имхо правильно - больше информации доступной и разной =)

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

> с чего бы вдруг? BLFS --- это же просто и понятно.

Первый шаг в BLFS - автоматизация. Второй - прикручивание пакетного манагера. Третий - забивание на первоисточник и уход в сторону. А это не что иное как слака ;)

Gharik
()
Ответ на: комментарий от Jini

> Вряд ли. LFS мне нравится как результатом, так и идеологией. А Федору я уже пробовал...

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

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

> точное исполнение инструкций - суть зло

Никто не заставляет слепо следовать инструкциям. Хочешь чего-то особенного, чего нет в книге, - к твоим услугам Интернет, /dev/brain и полная свобода действий. Пакетный менеджер, например, я прикрутил ещё перед сборкой самой системы (dpkg) :) Не для того, чтобы ставить бинарные пакеты, нет, я хотел чтобы он вёл учёт файлов, установленных программами, чтобы потом можно было их относительно безболезненно удалять. Бинарники - это уже бонус, которым можно воспользоваться в крайнем случае.

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

Опять же, никто не заставляет патчить. Тебе не надо, а кому-то просто необходимо. Я не вижу минусов в патчинге, не вижу и особых преимуществ, если эта функциональность напрямую меня не касается. Но я не один пользуюсь LFS, и кому-то это может серьёзно понадобиться.

Jini ★★
()

Я хотел бы видеть LFS с исправлениями на все случаи жизни, ведь для тех кому такие исправления не нужны есть DIY Linux.

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