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

Re: RFS: presage



Paul Wise wrote:
On Sun, Jun 13, 2010 at 5:40 PM, Matteo Vescovi
<matteo.vescovi@yahoo.co.uk> wrote:
Paul Wise wrote:
On Fri, Jun 4, 2010 at 5:51 AM, Matteo Vescovi
<matteo.vescovi@yahoo.co.uk> wrote:
...
Right, I modified presage build system to use the system libtinyxml rather
than the embedded copy.

It would be good to get that removed upstream too. Until that happens,
please remove it in debian/rules so that the Debian package never
builds against the embedded version.

I haven't completely removed tinyxml from upstream presage because upstream tinyxml doesn't ship with a build system capable of building a shared libtinyxml library. In order for upstream presage to support those platforms that don't provide a shared libtinyxml library, upstream presage needs to embed tinyxml.

The current presage Debian package never builds against the embedded version, as it build-depends on libtinyxml-dev and ./configure will detect that a shared libtinyxml library is available and use it. The embedded copy of tinyxml will not be built nor used in this case. Isn't this sufficient? I can of course remove tinyxml before starting the build, but it seems an unnecessary step. Advice?

As for Scintilla, an embedded copy is used because scintilla is currently
not packaged for Debian.

I assume you regularly update to a new copy of scintilla?

Yes. upstream presage always embeds the latest scintilla release. presage-0.8.3 is using latest scintilla 2.1.2 release.

The -Wstrict-prototypes flag comes from Python distutils module, which is
used to build presage python extension module. Not sure how to remove the
warning. It is harmless though, as the flag is ignored.

Please check if there is a bug about this and file one if not.

Done. http://bugs.python.org/issue9031

Mmm.. I'm not sure how to resolve those warnings... Can you please point me
in the right direction? Is it a matter of passing LDFLAGS="-Wl,--as-needed"
to the configure line?

The upstream build system should be fixed to not link against stuff
that isn't used. Sometimes this is a bug in other packages, other
times all the binaries are linked against all libraries needed by the
source package instead of just the libraries used by each binary.

Ok, thanks. All the unneeded extra libraries (but one) were coming from the links flags provided by GTK+ pkg-config.

I added "-Wl,--as-needed" to LDFLAGS (as recommend in section 9.1 of libpkg-guide) and this has resolved those warnings.

dpkg-gencontrol warning:

dpkg-gencontrol: warning: package python-presage: unused substitution
variable ${python:Versions}
I'm not sure how to resolve this... Any suggestions?

You'd have to ask Debian python folks, I'm not sure about that. It
might related to this message:

 fakeroot debian/rules binary
pyversions: missing XS-Python-Version in control file, fall back to
debian/pyversions
pyversions: missing debian/pyversions file, fall back to supported versions

lintian complaints:
...
Fixed copyright-refers-to-symlink-license lintian complaints and
ancient-standards-version.

Remaining lintian complaints:

I: presage-doc: extended-description-is-probably-too-short
I: libpresage-data: extended-description-is-probably-too-short
I: presage: hyphen-used-as-minus-sign usr/share/man/man1/text2ngram.1.gz:7
I: libpresage1: extended-description-is-probably-too-short
I: libpresage1: spelling-error-in-binary ./usr/lib/libpresage.so.1.1.1
Commiting Committing
X: libpresage1: shlib-calls-exit usr/lib/libpresage.so.1.1.1
I: libpresage1: no-symbols-control-file usr/lib/libpresage.so.1.1.1
I: libpresage-dev: extended-description-is-probably-too-short
I: python-presage: extended-description-is-probably-too-short

Fixed all warnings except for the following two informational tags:
I: presage: hyphen-used-as-minus-sign usr/share/man/man1/text2ngram.1.gz:7
I: libpresage1: no-symbols-control-file usr/lib/libpresage.so.1.1.1

Do I need to provide a symbols file for libpresage.so.1.1.1?

The package FBTFS when building twice in a row:

 dpkg-source -b presage-0.8.3
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building presage using existing ./presage_0.8.3.orig.tar.gz
dpkg-source: warning: executable mode 0755 of
'build/scripts-2.5/presage_python_demo' will not be represented in
diff
dpkg-source: warning: executable mode 0755 of
'build/scripts-2.5/pyprompter' will not be represented in diff
dpkg-source: warning: executable mode 0755 of
'build/scripts-2.5/pypresagemate' will not be represented in diff
dpkg-source: error: cannot represent change to
presage-0.8.3/build/temp.linux-x86_64-2.5/bindings/python/presage_wrap.o:
binary file contents changed
dpkg-source: error: add
build/temp.linux-x86_64-2.5/bindings/python/presage_wrap.o in
debian/source/include-binaries if you want to store the modified
binary in the debian tarball
dpkg-source: error: cannot represent change to
presage-0.8.3/build/lib.linux-x86_64-2.6/_presage.so: binary file
contents changed
dpkg-source: error: add build/lib.linux-x86_64-2.6/_presage.so in
debian/source/include-binaries if you want to store the modified
binary in the debian tarball
dpkg-source: warning: executable mode 0755 of
'build/scripts-2.6/presage_python_demo' will not be represented in
diff
dpkg-source: warning: executable mode 0755 of
'build/scripts-2.6/pyprompter' will not be represented in diff
dpkg-source: warning: executable mode 0755 of
'build/scripts-2.6/pypresagemate' will not be represented in diff
dpkg-source: error: cannot represent change to
presage-0.8.3/build/temp.linux-x86_64-2.6/bindings/python/presage_wrap.o:
binary file contents changed
dpkg-source: error: add
build/temp.linux-x86_64-2.6/bindings/python/presage_wrap.o in
debian/source/include-binaries if you want to store the modified
binary in the debian tarball
dpkg-source: error: cannot represent change to
presage-0.8.3/build/lib.linux-x86_64-2.5/_presage.so: binary file
contents changed
dpkg-source: error: add build/lib.linux-x86_64-2.5/_presage.so in
debian/source/include-binaries if you want to store the modified
binary in the debian tarball
dpkg-source: warning: ignoring deletion of file apps/python/pyprompter
dpkg-source: warning: ignoring deletion of file apps/python/pypresagemate
dpkg-source: warning: ignoring deletion of file
bindings/python/presage_python_demo
dpkg-source: error: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b presage-0.8.3 gave error exit status 2

Fixed.

The issue here was caused by the fact that CDBS cleans out autotools before cleaning out distutils. This results in make distclean running before python setup.py clean --all. Because setup.py is generated by configure, it will be removed by make distclean before python setup.py clean gets a chance to run. Hence, the python build/ directory is left over. To fix this, I added a clean target here to remove it explicitly. I wonder if there is a way to get CDBS to get the python-distutils class to clean before the autotools class?


I uploaded the new version of presage package incorporating the fixes above here:
- URL: http://mentors.debian.net/debian/pool/main/p/presage
- Source repository: deb-src http://mentors.debian.net/debian unstable main contrib non-free - dget http://mentors.debian.net/debian/pool/main/p/presage/presage_0.8.3-2.dsc


Cheers,
- Matteo


Reply to: