3

I have 2 packages swami-2.0.0 and libinstpatch-1.0.0 in my PPA where the first one depends on the latter. The swami-2.0.0 control file contains libinstpatch-dev (>= 1.0.0) but it seems this is not satisfied even after installing that package, with this error in the buildlog:

After installing, the following source dependencies are still unsatisfied:
libinstpatch-dev(inst 1.0.0-0~lucid1~ppa1 ! >= wanted 1.0.0)
Source-dependencies not satisfied; skipping swami

Is there something wrong with my 1.0.0-0~lucid1~ppa1 version name which causes it to not match 1.0.0?

Here is the Swami control file:

Source: swami
Section: sound
Priority: optional
Maintainer: Joshua Element Green 
Homepage: http://swami.sourceforge.net
Standards-Version: 3.8.3
Build-Depends: 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-tools,
        docbook-xml
Build-Depends-Indep: libglib2.0-doc

Package: swami
Architecture: any
Depends: ${shlibs:Depends},
        ${misc:Depends}
Description: MIDI instrument editor application
 Swami (Sampled Waveforms And Musical Instruments) is an application
 for editing and managing MIDI instruments, such as SoundFont files.
 An programming API is also provided for integration with other
 applications.

Package: swami-dev
Section: libdevel
Architecture: any
Depends: swami (= ${binary:Version}),
         ${misc:Depends},
        libinstpatch-dev (>= 1.0.0),
        libgtk2.0-dev (>= 2.8.17),
        libgnomecanvas2-dev (>= 2.0)
Description: MIDI instrument editor development files
 Swami (Sampled Waveforms And Musical Instruments) is an application
 for editing and managing MIDI instruments, such as SoundFont files.
 An programming API is also provided for integration with other
 applications.
 .
 This package contains the include files and static libraries.

Package: swami-doc
Section: doc
Architecture: all
Depends: ${misc:Depends}
Suggests: devhelp
Description: MIDI instrument editor development documentation
 Swami (Sampled Waveforms And Musical Instruments) is an application
 for editing and managing MIDI instruments, such as SoundFont files.
 An programming API is also provided for integration with other
 applications.
 .
 This package contains development documentation for swami in
 /usr/share/gtk-doc/html/libswami and /usr/share/gtk-doc/html/libswamigui.

And here is the libinstpatch control file:

Source: libinstpatch
Section: sound
Priority: optional
Maintainer: Joshua Element Green 
Homepage: http://swami.sourceforge.net
Standards-Version: 3.8.3
Build-Depends: 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

Package: libinstpatch1
Section: libs
Architecture: any
Depends: ${misc:Depends},
         ${shlibs:Depends}
Description: MIDI instrument editing library
 libInstPatch (lib Instrument Patch) is an object oriented library for editing
 MIDI instruments such as SoundFont files.

Package: libinstpatch-dev
Section: libdevel
Architecture: any
Depends: libinstpatch1 (= ${binary:Version}),
         ${misc:Depends},
         libglib2.0-dev (>= 2.14),
         libsndfile1-dev (>= 1.0.17-2)
Description: MIDI instrument editing library development files
 libInstPatch (lib Instrument Patch) is an object oriented library for editing
 MIDI instruments such as SoundFont files.
 .
 This package contains the include files and static library.

Package: libinstpatch-doc
Section: doc
Architecture: all
Depends: ${misc:Depends}
Suggests: devhelp
Description: MIDI instrument editing library documentation
 libInstPatch (lib Instrument Patch) is an object oriented library for editing
 MIDI instruments such as SoundFont files.
 .
 This package contains the documentation for libinstpatch1 in
 /usr/share/gtk-doc/html/libinstpatch.

2 Answers 2

1

You can use apt-get policy to see which candidates are available from the different sources for installation.

Secondly, you can use dpkg to check on naming conditions:

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

results in 1 which means error as in not matched. if you use 1.0.0-1~lucid1~ppa1 instead it will work (which you probably should use anyway if you have changed the package).

In any case the compare-version feature makes it easy to test things out. Just remember, the result 0 means the condition is matched, 1 it has not matched.

5
  • The reason I made it 1.0.0-0 is because it is a brand new package and I read that -0 should be used if the package is not in Debian. libinstpatch has never been a part of Debian or Ubuntu, because this is the first official release. Should I still make it 1.0.0-1? Oct 27, 2010 at 18:16
  • right. let me think about what the right answer for this is, or ask one of the friendly MOTUs at the #ubuntu-motu IRC channel on freenode.
    – txwikinger
    Oct 27, 2010 at 18:22
  • I would probably go with 1.0.0-0ubuntu1~lucid1~ppa1. It's a bit convoluted, but still ensures that the version is lower than any official Debian or Ubuntu version while still satisfying the dependency. Oct 27, 2010 at 18:23
  • So even though it is not yet officially part of Ubuntu, you suggest to use 1.0.0-0ubuntu1? Oct 27, 2010 at 18:27
  • Yeah, use 1.0.0-0ubuntu1~lucid1~ppa1. This way it gracefully takes 1.0.0-0ubuntu1 if it gets to be official.
    – txwikinger
    Oct 27, 2010 at 23:14
0

Yes, there is something "wrong" with your version number. Using a ~ postfix means that your version is lower than the version without the ~ suffix.

So: A~B < A

You can test that with the command line txwikinger gave you.

The reason why ~ is often used for PPAs is that if the 1.0.0-0 version gets into the main Ubuntu repositories, you will get the official version instead of the PPA version.

One solution for your problem could be to remove the versioned build dependency; considering that there are no older packages there should be no problem with that.

Another (maybe better?) option might be to depend on a version >= 1.0.0~, as A~ < A~B.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .