УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

[BugFixed] Неверерный путь инклуда в файлах пакета openscada-dev под Debian


Автор Повідомлення
Повідомлення створено: 23. 01. 2012 [22:59]
aleax
Alexey Bondarchuk
Автор теми
Зареєстрован(а) с: 27.01.2010
Повідомлення: 73
Пакет openscada-dev под Debian устанавливает в /usr/include/openscada/ заголовочные файлы, простым копированием:
JAVASCRIPT
~/work/build/openscada/svn/trunk $ cat debian/openscada-dev.install
debian/tmp/usr/lib/*.so
debian/tmp/usr/lib/*.*a
*.h /usr/include/openscada/
src/*.h /usr/include/openscada/


Таким образом получается что в некоторых файлах (tsys.h и xml.h) получается запись
«#include "../config.h"» которая не коректна относительно пути установки заголовочных файлов /usr/include/openscada/ .
Что приводит ошибке при сборке [своего] модуля вне каталога модулей дерева исходных кодов openscada, с зависимостью от пакета openscada-dev.

Как вариант решения предлагаю добавить postinst скрипт для пакета openscada-dev:
JAVASCRIPT
~/work/build/openscada/patches/debian-build $ cat openscada-dev-config-h.patch
Index: debian/openscada-dev.postinst
===================================================================
--- debian/openscada-dev.postinst       (revision 0)
+++ debian/openscada-dev.postinst       (revision 0)
@@ -0,0 +1,12 @@
+#!/bin/sh -e
+
+action=""
+oldversion=""
+
+if [ "$action" != configure ]; then
+  exit 0
+fi
+
+sed -i 's/^#include \"\.\.\/config\.h\"/#include \"config\.h\"/g' /usr/include/openscada/*.h
+
+


P.S.: правда не знаю насколько корректно такое решение, с точки зрения правил использования postinst скриптов в пакетах Debian :)
Повідомлення створено: 24. 01. 2012 [22:08]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"aleax" wrote:

Таким образом получается что в некоторых файлах (tsys.h и xml.h) получается запись
«#include "../config.h"» которая не коректна относительно пути установки заголовочных файлов /usr/include/openscada/ .
Что приводит ошибке при сборке [своего] модуля вне каталога модулей дерева исходных кодов openscada, с зависимостью от пакета openscada-dev.

Исправлено.

Learn, learn and learn better than work, work and work.



11672