overlay и заголовок патча

Пробую обновить x11-wm/afterstep.
Ебилд и патч взял здесь (с патчем помимо отмечаемой есть ещё некоторые непонятки, но сие несущественно).

Так как ебилд самодельный, пихать его в основную ветку portage считаю неправильным.
Прописываю в локальную.
Туда же - файлик патча:

--- Makefile.in.orig    2008-08-08 18:59:39.000000000 +0200
+++ Makefile.in 2008-08-08 19:00:51.000000000 +0200
@@ -71,7 +71,8 @@

 module.clean:

-install:  install.alternative install.desktop install.wmprops mkdir
+#install:  install.alternative install.desktop install.wmprops mkdir
+install:  install.desktop install.wmprops mkdir
        @for I in ${subdirs} ; do if [ -d $$I ]; then (cd $$I; ${MAKE} install || exit 1); fi; done

 install.bin: mkdir.bin
@@ -86,11 +87,11 @@
 install.script: mkdir.bin
        @for I in ${subdirs}; do if [ -d $$I ]; then (cd $$I; ${MAKE} install.script || exit 1); fi; done

-install.alternative:
-       @if update-alternatives --version > /dev/null 2>&1 ; then       \
-               update-alternatives --install /etc/alternatives/x-window-manager x-window-manager $(AFTER_BIN_DIR)/afterstep 100; \
-               echo "added AfterStep as an x-window-manager alternative"; \
-       fi
+#install.alternative:
+#      @if update-alternatives --version > /dev/null 2>&1 ; then       \
+#              update-alternatives --install /etc/alternatives/x-window-manager x-window-manager $(AFTER_BIN_DIR)/afterstep 100; \
+#              echo "added AfterStep as an x-window-manager alternative"; \
+#      fi


 install.desktop: AfterStep.desktop.final mkdir.share

При попытке установки - ошибка:

***** no-alternatives-20080808.patch *****

==========================================

PATCH COMMAND:	 patch -p0 -g0 -E --no-backup-if-mismatch < /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch

==========================================
patching file Makefile.in
Hunk #1 FAILED at 71.
Hunk #2 FAILED at 87.
2 out of 2 hunks FAILED -- saving rejects to file Makefile.in.rej
==========================================

PATCH COMMAND:	 patch -p1 -g0 -E --no-backup-if-mismatch < /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch

==========================================
missing header for unified diff at line 3 of patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- Makefile.in.orig    2008-08-08 18:59:39.000000000 +0200
|+++ Makefile.in 2008-08-08 19:00:51.000000000 +0200
--------------------------
No file to patch.  Skipping patch.
2 out of 2 hunks ignored
==========================================

PATCH COMMAND:	 patch -p2 -g0 -E --no-backup-if-mismatch < /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch

==========================================
missing header for unified diff at line 3 of patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- Makefile.in.orig    2008-08-08 18:59:39.000000000 +0200
|+++ Makefile.in 2008-08-08 19:00:51.000000000 +0200
--------------------------
No file to patch.  Skipping patch.
2 out of 2 hunks ignored
==========================================

PATCH COMMAND:	 patch -p3 -g0 -E --no-backup-if-mismatch < /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch

==========================================
missing header for unified diff at line 3 of patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- Makefile.in.orig    2008-08-08 18:59:39.000000000 +0200
|+++ Makefile.in 2008-08-08 19:00:51.000000000 +0200
--------------------------
No file to patch.  Skipping patch.
2 out of 2 hunks ignored
==========================================

PATCH COMMAND:	 patch -p4 -g0 -E --no-backup-if-mismatch < /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch

==========================================
missing header for unified diff at line 3 of patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- Makefile.in.orig    2008-08-08 18:59:39.000000000 +0200
|+++ Makefile.in 2008-08-08 19:00:51.000000000 +0200
--------------------------
No file to patch.  Skipping patch.
2 out of 2 hunks ignored

Заголовок патча совпадает с аналогичным патчем, прописанным в основной ветке portage.
В локальных что, действуют иные договорённости?
В другом, успешно установленном из того же локального оверлея пакете заголовок патча выглядит иначе:

$ head liblinebreak-0.9.6_fPIC.patch 
diff -urN liblinebreak-old/liblinebreak/Makefile liblinebreak/liblinebreak/Makefile
--- liblinebreak-old/liblinebreak/Makefile	2008-03-22 23:25:44.000000000 +0100
+++ liblinebreak/liblinebreak/Makefile	2008-04-05 03:12:41.000000000 +0200
@@ -39,16 +39,16 @@
...

Anarchist

Anarchist написал(а):
==========================================

PATCH COMMAND:	 patch -p0 -g0 -E --no-backup-if-mismatch < /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch

==========================================
patching file Makefile.in
Hunk #1 FAILED at 71.
Hunk #2 FAILED at 87.
2 out of 2 hunks FAILED -- saving rejects to file Makefile.in.rej
==========================================

патч не применился, а дальше идут команды -p1 -p2 -p3 и для них заголовок сгенерированный для -p0 естественно неправильный.

и откуда строка
***** no-alternatives-20080808.patch *****
?
файл с таким именем точно есть?

.

evadim написал(а):
патч не применился

Об этом я уже догадался :)
Осталось понять почему.

evadim написал(а):
а дальше идут команды -p1 -p2 -p3 и для них заголовок сгенерированный для -p0 естественно неправильный.

Оригинальный патч (для 2.2.4) выглядит следующим образом:
no-alternatives.patch:

--- Makefile.in.orig    2006-11-01 12:28:46.000000000 -0500
+++ Makefile.in 2006-11-01 12:29:16.000000000 -0500
@@ -70,7 +70,8 @@

 module.clean:

-install:  install.alternative install.desktop install.wmprops mkdir
+#install:  install.alternative install.desktop install.wmprops mkdir
+install:  install.desktop install.wmprops mkdir
        @for I in ${subdirs} ; do if [ -d $$I ]; then (cd $$I; ${MAKE} install || exit 1); fi; done
 
 install.bin: mkdir.bin
@@ -85,11 +86,11 @@
 install.script: mkdir.bin
        @for I in ${subdirs}; do if [ -d $$I ]; then (cd $$I; ${MAKE} install.script || exit 1); fi; done
 
-install.alternative:
-       @if update-alternatives --version > /dev/null 2>&1 ; then       \
-               update-alternatives --install x-window-manager x-window-manager $(AFTER_BIN_DIR)/afterstep 100; \
-               echo "added AfterStep as an x-window-manager alternative"; \
-       fi
+#install.alternative:
+#      @if update-alternatives --version > /dev/null 2>&1 ; then       \
+#              update-alternatives --install x-window-manager x-window-manager $(AFTER_BIN_DIR)/afterstep 100; \
+#              echo "added AfterStep as an x-window-manager alternative"; \
+#      fi


 install.desktop: AfterStep.desktop.final mkdir.share
evadim написал(а):
и откуда строка
***** no-alternatives-20080808.patch *****

Строка с именем файла патча, наложить который не удалось. ИМХО логично.

evadim написал(а):
файл с таким именем точно есть?

Точно.

# ls -l /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch
-rw-r--r-- 1 root root 1303 Сен  1 11:34 /usr/local/portage-ftn/x11-wm/afterstep/files/no-alternatives-20080808.patch

--
Live free or die

посмотри на

посмотри на строки которые я выделил, это говорит о том что всё что нужно лежит там где нужно, всё находится и патчится но - патч не подходит ошибка во время наложения патча. нужно смотреть и павить руками, а на даты в заголовках всем чихать - важны только имена файлов.

?

evadim написал(а):
посмотри на строки которые я выделил, это говорит о том что всё что нужно лежит там где нужно, всё находится и патчится но - патч не подходит ошибка во время наложения патча.

???
Дык в этой части ебилд не отличается от рабочего 2.2.4, вот что интересно.
Ошибка явно где-то в патче.

evadim написал(а):
нужно смотреть и павить руками, а на даты в заголовках всем чихать - важны только имена файлов.

С циклами?..
Бррр... Грустно.

Товарищи из багзиллы прислали исправленную версию. Поставил.
Ебилд немного, насколько хватало моих знаний, поправил (не все могут представить себе X-сервер без xterm'а, поэтому в зависимостях явно упоминаемый в опциях сборки терминал отсутствует). Файлы залью в багзиллу.

На досуге поанализирую ошибку и отпишу здесь.
--
Live free or die

А если руками

А если руками патч на исходник попробовать наложить?
Зы в портаже как ты написал 2.2.4 а у тебя в оверлее что?

___________________________________________
Gentoo GNU/Linux 2.6.26 GCC 4.3.1
Working on Gentoo for iPAQ hx4700 :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

.

alexxy написал(а):
А если руками патч на исходник попробовать наложить?

Пробовал (в смысле сначала править функцию распаковки исходников, а потом - накладывать патч.
Ошибку навскидку не приведу, но не получилось.

alexxy написал(а):
Зы в портаже как ты написал 2.2.4 а у тебя в оверлее что?

2.2.8
Каюсь, посыпаю голову пеплом и ухожу на багзиллу заливать файлы.

--
Live free or die

ура товариши!

Anarchist написал(а):
Ошибка явно где-то в патче.

именно!

Anarchist написал(а):
alexxy написал(а):
А если руками патч на исходник попробовать наложить?

Пробовал (в смысле сначала править функцию распаковки исходников, а потом - накладывать патч.
Ошибку навскидку не приведу, но не получилось.

хоть и не прямой дорогой, но мысль что сам патч кривой таки достигла адресата. и portage тут непричём.

Что "ура"?

evadim написал(а):
хоть и не прямой дорогой, но мысль что сам патч кривой таки достигла адресата. и portage тут непричём.

Дык это было понятно сразу.

Вопросы был: в чём кривизна патча. Впрочем, сейчас этот вопрос перешёл в общетеоретическую область.

--
Live free or die

а кто тогда

а кто тогда обсуждал заголовки и то как портаж патчит? там сразу было видно что всё находтся и патчится - просто сам патч кривой, несовпадает нифига.

Туда же - это куда???

> Прописываю в локальную.
> Туда же - файлик патча:

Патч должен лежать в поддиректории files/ вашего локального репа.
Судя по листингу, портеж его там не находит.

?

klark73 написал(а):
> Прописываю в локальную.
> Туда же - файлик патча:

Патч должен лежать в поддиректории files/ вашего локального репа.
Судя по листингу, портеж его там не находит.

Репозитория или в подкаталоге files/ рядом с устанавлиаемым ебилдом?
Если первое, то почему его (подкаталога files/ нет в основном репозитории?
Если рядом с ебилдом, то он там есть:

# pwd
/usr/local/portage-ftn/x11-wm/afterstep
# ls -1
afterstep-2.2.8.ebuild
files/
Manifest
# ls files/
no-alternatives-20080808.patch

--
Live free or die

Кажется, понял.

http://bugs.gentoo.org/show_bug.cgi?id=180765#c8

No file to patch. Skipping patch.

Патч пытается найти Makefile.in.orig, а его нету в исходной директории.

?

klark73 написал(а):
http://bugs.gentoo.org/show_bug.cgi?id=180765#c8

No file to patch. Skipping patch.

Патч пытается найти Makefile.in.orig, а его нету в исходной директории.

ИМХО скорее во времени создания этого самого файла.
Потому как для 2.2.4 практически такой же патч срабатывает на ура.

Но в обновлённом патче прописано:

--- Makefile.in.orig    2008-08-08 18:59:39.000000000 +0200

А

# ls -l /var/tmp/portage/x11-wm/afterstep-2.2.8/work/AfterStep-2.2.8/Makefile.in 
-rw-r--r-- 1 root root 6450 Мар  6 05:53 /var/tmp/portage/x11-wm/afterstep-2.2.8/work/AfterStep-2.2.8/Makefile.in

Вопрос: в каком формате там идёт дата: YYYY-MM-DD или YYYY-DD-MM?

UPDATE: Не слишком-то коррелирует с нормально отрабатываемым ебилдом 2.2.4.
Грабли где-то в другом :(
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".