Hi Ole,Thanks for the pointers, I think that makes sense to me now. I updated the package to use executable .install files for libvoro++1 and voro++-dev, and to install the library files to /usr/lib/<arch>. However, I now cannot build the package. This is the end of the build log:
make[2]: Leaving directory '/build/voro++-0.4.6+dfsg1/src' install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/bin install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/lib install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/share/man install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/share/man/man1 install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/share/doc/ install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/share/doc/voro++ install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/include install -d -m 0755 /build/voro++-0.4.6+dfsg1/debian/tmp/usr/include/voro++ make[1]: Leaving directory '/build/voro++-0.4.6+dfsg1' debian/rules override_dh_install make[1]: Entering directory '/build/voro++-0.4.6+dfsg1' dh_installCan't exec "/build/voro++-0.4.6+dfsg1/debian/voro++-dev.install": No such file or directory at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 794.
dh_install: cannot run debian/voro++-dev.install: No such file or directory debian/rules:14: recipe for target 'override_dh_install' failed make[1]: *** [override_dh_install] Error 2 make[1]: Leaving directory '/build/voro++-0.4.6+dfsg1' debian/rules:8: recipe for target 'binary' failed make: *** [binary] Error 2dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
The file debian/voro++-dev.install definitely exists, so I don't know why this error message occurs. Any clues here as to what the problem is?
Cheers, Roger On 05/01/17 21:10, Ole Streicher wrote:
Hi Roger, the links are already created when the library is built. The problem is your "Makefile.patch" patch, specifically the lines $(INSTALL) $(IFLAGS) src/libvoro++.so $(DESTDIR)$(PREFIX)/lib $(INSTALL) $(IFLAGS) src/libvoro++.so.1.0.0 $(DESTDIR)$(PREFIX)/lib Specifically the first copies the library itself, and not the link. I would not install them at all specify the target in debian/*.install: src/libvoro++.so usr/lib (for debian/voro++-dev.install) src/libvoro++*.so.* usr/lib (for debian/libvoro++1.install) This also makes it easier to fullfill another goal of Debian: Multi-Arch. That means, that different architectures (f.e. 32 and 64 bit) may be installed together. This requires that the libraries do not go to /usr/lib, but to /usr/lib/<arch>. You may check the wcstools package for this: https://sources.debian.net/src/wcstools/3.9.4-2/debian/libwcstools1.install/ https://sources.debian.net/src/wcstools/3.9.4-2/debian/libwcstools-dev.install/ Important is that the install files in that case should be executable. If you do it this way, you don't need to specify the symlinks at all. Cheers Ole Roger Wesson <rw@nebulousresearch.org> writes:Hi, I have just uploaded new packaging files for voro++ which should address all the comments below. The package builds, but there are lintian warnings and errors that I don't know how to get rid of because I do not know how to properly create the symlink that ldconfig would create. Whatever I try gives lintian errors or warnings. Right now there are binaries-have-file-conflict warnings, which I think is because I'm creating the symlinks at the wrong time, and a non-dev-pkg-with-shlib-symlink, which I am not sure if it matters or not, because if there is no symlink I get an error. So, can someone offer any assistance here and tell me where I'm going wrong? Thanks, Roger On 10/11/16 20:45, Ole Streicher wrote:Roger Wesson <rw@nebulousresearch.org> writes:Great! Then it's all ready to be reviewed.OK, here are my comments: * Change order in d/copyright: first the common entry (*), then the more specialized. * Add VCS entries in d/control * html/jquery.js has no source. Don't just overwrite the lintian tag for this. Since the html subdir is not used anyway, I would recommend removing it from the tarball completely: - "Files-Excluded:" entry in the d/copyright header. - add "opts=dversionmangle=s/\+dfsg\d*//,repacksuffix=+dfsg" to debian/watch - if a doc is useful, create it yourself with doxygen * provide some description to the patches in debian/patches * install the NEWS file as changelog (with dh_installchangelogs) * install the examples (with dh_installexamples) * please clarify with upstream whether a shared library would be useful here, and if yes, povide one. In that case the package should be split into one package for the lib, one for the -dev tools and one for the utility. See Debian Policy 8.3 * Lintian warns about manpage-has-errors-from-man usr/share/man/man1/voro++.1.gz 85: warning: numeric expression expected (got `s') Since you are already patching the manpage, maybe you can fix that? * I added voronoi to the debian-astro blend, however it may be worth to add it to the "mathematics" task of debian science as well. If you want that, you should clone the debian-science blends package ssh://git.debian.org/git/blends/projects/science.git and add your package in tasks/mathematics (resp. mathematics-dev for the debelopment package). Best regards Ole