LSB SDK

user warning: Got error 28 from storage engine query: SELECT t.*,v.weight AS v_weight_unused FROM term_node r INNER JOIN term_data t ON r.tid = t.tid INNER JOIN vocabulary v ON t.vid = v.vid WHERE r.vid = 126 ORDER BY v.weight, t.weight, t.name in /opt/drupal-6.33/modules/taxonomy/taxonomy.module on line 640.

LSB Software Development Kit (SDK) — инструментарий, основанный на использовании для компиляции и компоновки приложений специальных заголовочных файлов и библиотек. Заголовочные файлы и библиотеки SDK гарантируют отсутствие среди зависимостей получаемой программы непереносимых интерфейсов, которые либо отсутствуют во многих системах, либо имеют в них различную функциональность.

Основной целью LSB SDK является помощь в разработке приложений, отвечающих требованиям стандарта Linux Standard Base. SDK позволяет собирать приложения, отвечающие требованиям любой версии стандарта, начиная с 3.0. Кроме того, инструментарий может быть использован при создании приложений для устаревших дистрибутивов в случаях, когда инструментарий системы, в которой производится сборка, привносит в собираемое приложение зависимости, отсутствующие в более старых системах (например, слишком новые версии символов или новые типы секций ELF-файлов). 

LSB SDK включает три основных компонента:

  • заголовочные файлы;
  • библиотеки-заглушки;
  • обертки для компиляторов C и C++ (lsbcc и lsbc++ соответственно).

Заголовочные файлы LSB SDK содержат декларации только тех функций, которые включены в одну из версий стандарта LSB. Доступность деклараций зависит от значения константы __LSB_VERSION__, содержащей версию LSB, в соответствии с которой производится сборка. Kонстанта определяется lsbcc/lsbc++ на основе соответствующих опций и переменных среды. 
В заголовочных файлах также определяются все необходимые для использования функций типы данных, константы и макроопределения, которые не приводят к появлению зависимостей от нестандартизованных функций.  

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

В процессе своей работы lsbcc и lsbc++ вызывают системный компилятор с опциями, позволяющими создавать бинарные файлы, отвечающие требованиям LSB определенной версии - в частности,  при компиляции и компоновке используются библиотеки и заголовочные файлы из SDK.  

Также инструментарий содержит скрипт makelsbpkg для быстрого создания RPM-пакетов, отвечающих требованиям LSB.

LSB SDK может быть интегрирован в среду разработки Eclipse с помощью соответствующего плагина.

Более подробная информация об инструментарии находится в соответствующем разделе LSB Book.