Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1440

debian packaging: minor-ish policy problems

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.1
    • Component/s: Deployment
    • Labels:

      Description

      A listing of detectable policy problems in the thrift Debian packaging (in contrib/) can be found with a lintian run:

      sudo aptitude install lintian
      cd /my/thrift/dir
      dpkg-buildpackage -us -uc
      lintian -i ../thrift_0.8.0_amd64.changes
      

      I'll note some of them here for posterity.

      thrift source: weak-library-dev-dependency libthrift-dev on libthrift0

      The libthrift-dev package should have a versioned dependency on libthrift0, i.e., in debian/control:

      Depends: ..., libthrift0 (= ${binary:Version}), ...
      

      thrift source: build-depends-on-build-essential build-depends

      You don't need the "build-essential" bit in Build-Depends.

      thrift-compiler: description-contains-invalid-control-statement

      Syntax is a bit off in debian/control for the Description fields; I'll attach a patch.

      thrift-compiler: binary-without-manpage usr/bin/thrift

      You need a man page for /usr/bin/thrift.

      python-thrift-dbg: wrong-section-according-to-package-name python-thrift-dbg => debug

      The python-thrift-dbg package should be in Section: debug.

      python-thrift-dbg: dir-in-usr-local usr/local/lib/

      Debian packages shouldn't be shipping anything in /usr/local; that's supposed to be reserved for the local system admin. There isn't much reason for this anyway; the dirs being shipped by python-thrift-dbg here are empty.

      libthrift-ruby: wrong-section-according-to-package-name libthrift-ruby => ruby

      The libthrift-ruby package should be in Section: ruby. Also, according to http://wiki.debian.org/Teams/Ruby/Packaging , it looks like Ruby packages are undergoing a name change in the current Debian testing suite. libthrift-ruby probably needs to become ruby-thrift and switch to using gem2deb.

      libthrift-ruby: empty-binary-package

      This will probably be addressed under THRIFT-1421.

      libthrift0: package-name-doesnt-match-sonames libthrift-c-glib0

      This is complaining because the package name of a library package should usually reflect the soname of the included library (see chapter 5 of the Debian Library Packaging Guide for more info). Something is fishy here, though. Did you intend to distribute the c-glib library as "libthrift0"? If so, where is the cpp library supposed to go? I don't think I see it after a quick search through the packages.

      php5-thrift: missing-dependency-on-phpapi

      See the lintian explanation for detailed info. Basically, you need some extra Sauce to add a dependency to php5-thrift on a PHP with a compatible API version.

      libthrift-java: wrong-section-according-to-package-name libthrift-java => java

      libthrift-java should be Section: java

      libthrift-cil: wrong-section-according-to-package-name libthrift-cil => cli-mono

      libthrift-cil should be Section: cli-mono

      libthrift-cil: executable-not-elf-or-script ./usr/lib/cli/thrift/Thrift.dll

      Thrift.dll shouldn't have its executable bit set.

      libthrift-perl: non-standard-dir-in-usr usr/usr/

      Yeah, installing into /usr/usr/local/lib is kinda wacko. Ought to be /usr/lib.


      And as a final note, a lot of the packaging here could be pretty greatly simplified and better future-proofed using the Debhelper 7 command sequencer ("dh").

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              thepaul paul cannon

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment