[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fwd: Saga 2.1.1 - debhelper9 - multiarch



On 01/13/2014 10:14 AM, Johan Van de Wauw wrote:
> Is anyone actually reading the pkg-grass-devel mailing list or should
> I rather send my questions here?

The pkg-grass-devel is most used for bug reports, commit logs. While
sometimes feedback is given in response to mails to pkg-grass-devel,
general discussion is better visible here on debian-gis.

> Anyway:
> I've updated saga to the last upstream release (2.1.1), a bugfix release.
> 
> The major change in packaging is that I switched to debhelper9 and
> multiarch. I'd like to hear from someone more knowledgeable whether I
> did the right thing for the saga package itself.

In general your package looks good. I do have some comments.


The libsaga binary package still needs a Pre-Depends on
${misc:Pre-Depends} for debhelpers automatic Multi-Arch related
dependencies, see:

https://wiki.debian.org/Multiarch/Implementation#Recipes_for_converting_packages


The libsaga-dev binary package installs /usr/bin/saga-depends, is that
script really needed? Handling dependencies on the saga libraries should
be done with symbols or shlibs files.

The policy section about shared libraries was rewritten in version
3.9.4, so the packages doesn't really implement the policy version it
claims or explains why it diverges.

http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-depends

Since saga libraries are in C++ their symbols are likely to change
often, you may not want to use symbols file for saga because of this.
But using the pkg-kde symbolshelper it's relatively easy to maintain the
symbols files for C++ libraries.

http://pkg-kde.alioth.debian.org/symbolfiles.html

C++ symbols files remain a bit problematic, so if you opt out of this
please add a lintian override with a comment to explain this.


Not specifically related to your Multi-Arch changes, when you run
lintian with -I --show-overrides --pedantic there are 3 warning, 20 info
and 1 pedantic tags.

You can use a lintian hook for pbuilder/cowbuilder to run lintian after
every build to help keep your package lintian clean. An example is
included in the pbuilder package on disk at:
 /usr/share/doc/pbuilder/examples/B90lintian
or online at:
 http://sources.debian.net/src/pbuilder/0.215/examples/B90lintian

I'd like to walk you through the issues lintian reported after my build
of your package. The lintian tags are pretty well documented, their
extended information usually provides enough information to devise a fix.


W: python-saga: postrm-has-useless-call-to-ldconfig
W: python-saga: postinst-has-useless-call-to-ldconfig

http://lintian.debian.org/tags/postrm-has-useless-call-to-ldconfig.html
http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig

Because the python-saga package contains .so libraries, debhelper adds
the ldconfig call to the post{inst,rm} maintainer scripts even though
they are not in one of the default library directories of the dynamic
linker.

You can override dh_makeshlibs to exclude the python-saga package:

override_dh_makeshlibs:
        dh_makeshlibs -Xpython-saga


W: libsaga: package-name-doesnt-match-sonames libsaga-api-2.1.1
libsaga-gdi-2.1.1
I: libsaga: no-symbols-control-file

http://lintian.debian.org/tags/package-name-doesnt-match-sonames.html
http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime
http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html

You can split the libraries into their own binary package and more
easily maintain symbols for each. If you opt out of the split, please
add a lintian override with a comment to explain this.


I: saga: hardening-no-fortify-functions

http://lintian.debian.org/tags/hardening-no-fortify-functions.html
https://wiki.debian.org/HardeningWalkthrough

Debhelper 9 automatically enables the hardening buildflags, but not all
build systems use CPPFLAGS besides CFLAGS, so you may need to add
CPPFLAGS to CFLAGS in debian/rules:

CFLAGS+=$(CPPFLAGS)

lintian uses hardening-check to verify the hardening flags, and this
check has some false-positives. If that's the case you can add a lintian
override with the comment containing the hardening-check verbose output,
e.g.:

# -D_FORTIFY_SOURCE=2 is used during build, but hardening-check reports:
# Fortify Source functions: yes (some protected functions found)
#        unprotected: memset
#        unprotected: memmove
#        unprotected: wmemcpy
#        unprotected: wcscpy
#        unprotected: memcpy
#        unprotected: fread
#        protected: vfwprintf
#        protected: vwprintf
#        protected: sprintf


I: saga source: duplicate-short-description libsaga libsaga-dev
I: python-saga: capitalization-error-in-description python Python

http://lintian.debian.org/tags/duplicate-short-description.html
http://lintian.debian.org/tags/capitalization-error-in-description.html
http://www.debian.org/doc/debian-policy/ch-binary.html#s-descriptions

The short description for libsaga is easily fixed by using:

Description: SAGA GIS shared libraries

The capitalization error is also easily fixed:

Description: SAGA GIS Python bindings
 This package contains the Python bindings to SAGA.


I: saga: spelling-error-in-binary

http://lintian.debian.org/tags/spelling-error-in-binary.html

Lintian loves spelling errors, add patches to fix the errors and send
them upstream to get rid of them. You can reword the 'Allows to'
sentences using "Allowing' instead of the suggested 'Allows one to' that
usually makes more sense.

Don't blindly sed -i the source files to fix the spellings errors, the
result can be more awkward to read than leaving the typo. Rewriting the
sentence is the way to go then.


I: saga source: vcs-field-not-canonical

http://lintian.debian.org/tags/vcs-field-not-canonical.html

This used to be more relevant when Alioth was split between two machines
with the SCM repos separated from the other hosting. Alioth was recently
moved to a new more powerful machine after catastrophic hardware
failure, so it's all hosted on the same system again.

The proposed Debian GIS Policy documents the URLs to use, as does the
package template:

Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-grass/saga.git
Vcs-Git: git://anonscm.debian.org/pkg-grass/saga.git

http://anonscm.debian.org/gitweb/?p=pkg-grass/package_template.git;a=blob;f=debian/control


I: saga: desktop-entry-lacks-keywords-entry

http://lintian.debian.org/tags/desktop-entry-lacks-keywords-entry.html

Add some keyword to assist searching for programs such as saga, things
that come to mind:

Keywords=gis;analysis;gui;spatial


I hope you're not to overwhelmed by the amount of information, so take
it easy and don't worry about fixing all the issues immediately, the low
severity tags are not displayed by default for a reason :)


Kind Regards,

Bas

-- 
GnuPG: 0xE88D4AF1 (new) / 0x77A975AD (old)


Reply to: