Не могу применить патч
Я распаковал исходный код efivar-0.23.tar.gz и пытаюсь применить следующий патч: http://patchwork.openembedded.org/patch/117073/ чтобы иметь возможность его скомпилировать.
Я вошел в распакованный каталог и выдал следующую команду: patch -Np1 ../efivar.patch
, но ничего не происходит. Он просто ждет (как будто он что-то делает, но ничего не происходит).
Как можно применить этот патч? Я просматривал различные статьи в сети, но результат, кажется, тот же самый..
2 ответа
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
,
Кроме того, поскольку данный патч был создан с помощью Git, вы можете использовать Git для его применения:
curl patchwork.openembedded.org/patch/117073/mbox/ | git am
Или же:
curl patchwork.openembedded.org/patch/117073/raw/ | git apply