Сбой сборки PPA из-за неудовлетворенных зависимостей другого пакета в том же PPA

У меня есть 2 пакета swami-2.0.0 и libinstpatch-1.0.0 в моем PPA, где первый зависит от последнего. Управляющий файл swami-2.0.0 содержит libinstpatch-dev (>= 1.0.0), но кажется, что это не выполняется даже после установки этого пакета, с этой ошибкой в ​​buildlog:

После установки следующие исходные зависимости все еще не удовлетворены:
libinstpatch-dev(inst 1.0.0-0~lucid1~ppa1! >= требуемый 1.0.0)
Исходные зависимости не удовлетворены; пропуская свами

Что-то не так с моим именем версии 1.0.0-0 ~ lucid1 ~ ppa1, которое не соответствует 1.0.0?

Вот контрольный файл Swami:

Источник: Свами
Раздел: звук
Приоритет: необязательно
Сопровождающий: Джошуа Элемент Грин 
Домашняя страница: http://swami.sourceforge.net
Стандарты-Версия: 3.8.3
Build-Зависит: debhelper (>= 7),
        Gettext,
        cdbs (>= 0,4.41),
        gnome-pkg-tools (>= 0,7),
        libinstpatch-dev (>= 1.0.0),
        libgtk2.0-dev (>= 2.8.17),
        libgnomecanvas2-dev (>= 2.0),
        librsvg2-dev (>= 2,8),
        libglade2-DEV,
        libfluidsynth-DEV,
        libfftw3-DEV,
        GTK-Doc-инструменты,
        DocBook-XML
Build-Depends-Indep: libglib2.0-doc

Пакет: Свами
Архитектура: любая
Зависит: ${shlibs: Зависит},
        ${Разные: Зависит}
Описание: приложение для редактирования MIDI-инструментов
 Свами (Sampled Waveforms And Musical Instruments) - это приложение
 для редактирования и управления MIDI-инструментами, такими как файлы SoundFont.
 Программный API также предоставляется для интеграции с другими
 Приложения.

Пакет: Свами-Дев
Раздел: libdevel
Архитектура: любая
Зависит от: свами (= ${бинарный: версия}),
         ${Разное: Зависит},
        libinstpatch-dev (>= 1.0.0),
        libgtk2.0-dev (>= 2.8.17),
        libgnomecanvas2-dev (>= 2.0)
Описание: файлы разработки редактора MIDI-инструментов
 Свами (Sampled Waveforms And Musical Instruments) - это приложение
 для редактирования и управления MIDI-инструментами, такими как файлы SoundFont.
 Программный API также предоставляется для интеграции с другими
 Приложения.,
 Этот пакет содержит включаемые файлы и статические библиотеки.

Пакет: Свами-Док
Раздел: док
Архитектура: все
Зависит: ${misc: Зависит}
Предлагает: devhelp
Описание: документация по разработке редактора MIDI-инструментов
 Свами (Sampled Waveforms And Musical Instruments) - это приложение
 для редактирования и управления MIDI-инструментами, такими как файлы SoundFont.
 Программный API также предоставляется для интеграции с другими
 Приложения.,
 Этот пакет содержит документацию по разработке для свами в
 /usr/share/gtk-doc/html/libswami и /usr/share/gtk-doc/html/libswamigui.

А вот и файл управления libinstpatch:

Источник: libinstpatch Раздел: звук Приоритет: необязательный Сопровождающий: Джошуа Элемент Грин Домашняя страница: http://swami.sourceforge.net Версия стандартов: 3.8.3 Сборка-Зависит: debhelper (>= 7),
               libglib2.0-dev (>= 2.14),
               libsndfile1-dev (>= 1.0.17-2),
               gettext,
               cdbs (>= 0.4.41),
               gnome-pkg-tools (>= 0.7),
               gtk-doc-tools,
               docbook-xml
Build-Depends-Indep: libglib2.0-doc Пакет: libinstpatch1 Раздел: libs Архитектура: любая Зависит от: ${misc:Depends},
         ${shlibs:Depends} Описание: библиотека редактирования инструментов MIDI libInstPatch (lib Instrument Patch) - это объектно-ориентированная библиотека для редактирования MIDI-инструментов, таких как файлы SoundFont. Пакет: libinstpatch-dev Раздел: libdevel Архитектура: любая Зависит от: libinstpatch1 (= ${binary:Version}),
         ${misc:Depends},
         libglib2.0-dev (>= 2.14),
         libsndfile1-dev (>= 1.0.17-2) Описание: файлы разработки библиотеки редактирования инструментов MIDI libInstPatch (lib Instrument Patch) - это объектно-ориентированная библиотека для редактирования инструментов MIDI, таких как файлы SoundFont., Этот пакет содержит включаемые файлы и статическую библиотеку. Пакет: libinstpatch-doc Раздел: doc Архитектура: все Зависит от: ${misc: Depends} Предложения: devhelp Описание: документация библиотеки редактирования инструментов MIDI libInstPatch (lib Instrument Patch) - это объектно-ориентированная библиотека для редактирования инструментов MIDI, таких как файлы SoundFont., Этот пакет содержит документацию для libinstpatch1 в /usr/share/gtk-doc/html/libinstpatch. 

2 ответа

Решение

Да, что-то не так с вашим номером версии. Используя ~ Постфикс означает, что ваша версия ниже, чем версия без ~ суффикс.

Итак: A ~ B < A

Вы можете проверить это с помощью командной строки, которую дал вам txwikinger.

Причина по которой ~ Часто используется для PPA, если версия 1.0.0-0 попадает в основные репозитории Ubuntu, вместо версии PPA вы получите официальную версию.

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

Другой (может быть, лучше?) Вариант может зависеть от версии >= 1.0.0~, как A ~ < A ~ B.

Вы можете использовать политику apt-get, чтобы увидеть, какие кандидаты доступны для установки из разных источников.

Во-вторых, вы можете использовать dpkg для проверки условий именования:

dpkg --compare-versions 1.0.0-0~lucid1~ppa1 gt 1.0.0
echo $?

результаты в 1 что означает ошибку как в несоответствии. если вы используете 1.0.0-1~lucid1~ppa1 вместо этого он будет работать (что вы, вероятно, должны использовать в любом случае, если вы изменили пакет).

В любом случае функция сравнения версий позволяет легко проверять вещи. Просто помните, что результат 0 означает, что условие соответствует, 1 оно не соответствует.

Другие вопросы по тегам