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.

As many of you know by now, I'm building a package :)

I am so close to getting it finished so I can upload it to my PPA, but there is still one slight problem: the shared library (.so file) doesn't want to go into the package.

Okay, here is what I have in my control file:

Source: jsoncpp
Priority: extra
Maintainer: ****** 
Build-Depends: debhelper (>= 7)
Standards-Version: 3.8.3
Section: libs
Homepage: http://jsoncpp.sf.net

Package: jsoncpp-dev
Section: libdevel
Architecture: any
Depends: jsoncpp0 (= ${binary:Version})
Description: JSON parsing library for C++
 jsoncpp is a C++ library that makes it easy to
 read / write JSON data.
 .
 This package contains the development tools necessary
 to create applications that use jsoncpp.

Package: jsoncpp0
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: JSON parsing library for C++
 jsoncpp is a C++ library that makes it easy to
 read / write JSON data.

Now, jsoncpp-dev builds fine and the development files show up in the package but the shared library does not show up in its package.

Here is what jsoncpp0.dirs looks like:

usr/lib

...and jsoncpp-dev.dirs:

usr/lib
usr/include

My updated Makefile is here.

Please let me know if you need further information.

share|improve this question
add comment

2 Answers

You really want to be using the build system (scons) that jsoncpp uses, since it's probably well-tailored for the package. Firstly, the package names that you are using should be prefixed with lib, such as libjsoncpp0 (assuming that the resulting file is /usr/lib/libjsoncpp.so.0) To install the files, you need to have these files listed in the .install files, eg debian/libjsoncpp0.install would have /usr/lib/lib*.so.* to install the right file. libjsoncpp-dev would have the files in /usr/include/* and /usr/lib/lib*.so

The library packaging guide at http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html can be complex, but it has some important information about the right way to package libraries so that they integrate well in Debian & Ubuntu.

Also, there are often people available on #ubuntu-motu or #ubuntu-packaging on irc.ubuntu.com to help with questions you may have.

share|improve this answer
    
Ah thank you for the IRC link and pointing me to the packaging guide for libraries. It's actually unfortunate, 'cuz I just uploaded it :( Anyway, I need to fix a few things anyway, so I'll work on that. –  Nathan Osman Aug 4 '10 at 6:12
    
Also, how would I go about getting the package to build with scons? I had a hard enough time building it myself - hence the conversion to a Makefile. –  Nathan Osman Aug 4 '10 at 6:16
    
Don't forget the #debian-mentors IRC channel. It's primarily for helping packaging beginners. –  Evan Kroske Aug 4 '10 at 14:19
add comment
up vote 0 down vote accepted

This was the result of a rather bad mistake on my part. Somehow jsoncpp0.install got renamed to jsoncpp0install (without the period).

Anyway, it works now.

share|improve this answer
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.