Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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.
share|improve this question
add comment

2 Answers

up vote 0 down vote accepted

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.

share|improve this answer
    
I ended up just removing the version dependency, because as you suggest there are now prior packages. Thanks! –  Element Green Oct 27 '10 at 19:07
add comment

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.

share|improve this answer
    
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? –  Element Green Oct 27 '10 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 '10 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. –  andrewsomething Oct 27 '10 at 18:23
    
So even though it is not yet officially part of Ubuntu, you suggest to use 1.0.0-0ubuntu1? –  Element Green Oct 27 '10 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 '10 at 23:14
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.