Пропатчим все от А до Я!

Xakep, номер #045, стр. 045-057-3


cp Makefile Makefile.orig

cp Makefile.alg Makefile.alg.orig

В обоих файлах в строчке KERNEL_INCLUDE_DIR = /usr/src/linux/include

как раз содержится инфа о местонахождении заголовков нашего ядрышка.

Так как она не верна, то нам придется наставить ее на путь истинный :): KERN_VERSION = $(shell /bin/uname -r)

KERNEL_INCLUDE_DIR = /lib/modules/$(KERN_VERSION)/build/include/

Тем самым мы также сделали наше описание KERNEL_INCLUDE_DIR независимым от

версии ядра.

После окончания правки переходим на каталог выше: cd .. и колбасим патч,

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

копилефты и пастерайты первой строчкой:

echo \$BestCrypt v0.8-9: bcrypt.patch v1.0, 21/04/2002 Andrushock andrushock@fromru.com Exp$ > bcrypt.patch

diff -Naur mod-0.8-9/Makefile.orig mod-0.8-9/Makefile >> bcrypt.patch

diff -Naur mod-0.8-9/Makefile.alg.orig mod-0.8-9/Makefile.alg >> bcrypt.patch

Да, и крайне желательно отдельным файлом внести для потомков пояснения и описание к твоему патчу:

touch bcrypt.patch.txt

vi bcrypt.patch.txt

С примерно таким содержанием:

"Данный патч исправляет ошибки при компиляции BestCrypt v0.8.9 для Red Hat based дистрибутивов.

Использование патча:

patch -p0 < bcrypt.patch

Компиляция и инсталляция BestCrypt:

make

make install

Запуск:

/etc/rc.d/init.d/bcrypt start "

Вот и все, осталось только создать архив:

tar cvf bcrypt-patch.tar bcrypt.patch bcrypt.patch.txt

gzip -9v bcrypt-patch.tar

На выходе получим уже известный тебе таргэзе.

Общие рекомендации по уламыванию

Перво-наперво проверяй контрольную сумму скачанных тобой файлов утилитой md5sum; внимательно читай прилагающуюся к проге документацию, особенно разделы про установку и "часто задаваемые вопросы", в народе известные как FAQ; изучи список операционных систем и платформ, на которых она была протестирована; если тузла действительно стоящая, то подпишись на ее список рассылки; не забывай, что новая версия не всегда лучше старой, также, если новая не собирается, попробуй слить версию на ревизию ниже или вообще поискать аналог; не старайся качать файлы, имеющие в названии слова: test, pre, unstable, development_stage - эти версии выпускаются только для тестеров, разработчиков и сорвиголов, желающих раньше всех заценить новые баги и фичи; попробуй поискать уже собранный пакадж для твоего дистриба; не бойся править сырцы, хотя всегда обращай внимание - под какой лицензией распространяется прога :); внимательно просматривай предупреждения и/или ошибки (желательно под рукой иметь справочник с их перечнем и описанием) компилятора, попытайся понять откуда растут грабли; пробуй собрать другим компилером/другой версией твоего компилятора (например, некоторые проги просто не выносят gcc версий 2.7x и редхатовский 2.96, идеальным вариантом будет использование пропатченного gcc 2.95.3); не ленись перед установкой проги набирать ./configure --help | more (если этот скрипт присутствует), "поиграй" с его аргументами и исключай все, что тебе не нужно: компактней прога - меньше багов, меньше вероятности ошибки при компиляции, меньше места, меньше потенциальных проблем (зачем подвергать себя ненужному риску?); если ничего не помогло, и твоих знаний в кодинге не хватает, чтобы залатать ошибки, не стесняйся, пиши отчет либо разработчику (естественно, на английском, форма багрепорта обычно прилагается), либо в список рассылки этой проги (только сначала ознакомься с архивом рассылки, чтобы избежать повторений - вдруг эту тему уже 10 раз обсуждали) и в крайнем случае жди следующего релиза этой несдающейся тулзы.

Назад на стр. 045-057-2  Содержание  Вперед на стр. 045-057-4