Пропатчим все от А до Я!
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 раз обсуждали) и в крайнем случае жди следующего релиза этой несдающейся тулзы. |