3

Я распаковал исходный код efivar-0.23.tar.gz и пытаюсь применить следующий патч: http://patchwork.openembedded.org/patch/117073/, чтобы иметь возможность его скомпилировать.

Я вошел в распакованный каталог и выдал следующую команду: patch -Np1 ../efivar.patch , но ничего не происходит. Он просто ждет (как будто он что-то делает, но ничего не происходит).

Как можно применить этот патч? Я просматривал различные статьи в сети, но результат, кажется, тот же самый ..

2 ответа2

6

Команда patch ожидает патч в stdin . Так что либо направьте патч в команду:

patch -Np1 < ../efivar.patch

или укажите входной файл с аргументом -i .

patch -Np1 -i ../efivar.patch

Как видите, первый файл diff находится в файле a/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch . Давайте предположим, что фактический путь к релятивному файлу - efivar/0001-efivar-fix-for-cross-compile.patch из вашего текущего рабочего каталога. Затем вы должны указать patch чтобы игнорировать первые 4 уровня каталогов, чтобы он мог найти файлы для исправления. Вы делаете это, говоря p4 вместо p1 .

0

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

curl patchwork.openembedded.org/patch/117073/mbox/ | git am

Или же:

curl patchwork.openembedded.org/patch/117073/raw/ | git apply

Как работают патчи в Git?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .