EnglishРусскийУкраїнська
В теме нет новых постов

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


Автор Сообщение
Сообщение создано: 23. 01. 2012 [22:59]
aleax
Alexey Bondarchuk
Создатель темы
Зарегистрирован(а) с: 27.01.2010
Сообщения: 32
Пакет 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
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 1460
"aleax" wrote:

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

Исправлено.

Учиться, учиться и учиться лучше чем работать, работать и работать.



0028