Open sjlongland opened 4 years ago
Sorry, for the inconvenience. During the conversion of the build system the target for the static library get dropped.
Unfortunately i'm not that cmake expert and i partly regret the decision. Nevertheless i started my work, but it's still not usable. Maybe you have an idea what's the problem.
We had an issue where the .so file was named liblibmbus.so, I would assume that we removed one "lib" from the name. So it is possible that the file that previously was called libmbus.a now instead is named mbus.a.
I don't know CMake and do not intend to learn it unless I really have to. So I am of little help.
I tried to build a .deb file, but my "employer" wanted the example programs as well, I was not able to solve that without starting to patch the build files, so I went with a normal .tar.gz where I could do things between the build/installation and the final packaging in an archive file,
EDIT: Sorry!, after actually looking, I cannot se any trace of a statically linked file in the .deb build. (Would once again wave the do-it-yourself flag.)
This seems to e the lines that actually do something from our Makefile.
.PHONY: some_target
some_target:
mkdir -p "$(MBUS_BUILD_TAR)"
(cd "$(MBUS_BUILD_TAR)" && \
cmake -DCMAKE_INSTALL_PREFIX="$(MBUS_INSTALL_TAR)/$(MBUS_PREFIX)" -DLIBMBUS_BUILD_EXAMPLES=ON "$(MBUS_SOURCE)" )
(cd "$(MBUS_BUILD_TAR)" && cmake --build . )
mkdir -p "$(MBUS_INSTALL_TAR)"
(cd "$(MBUS_BUILD_TAR)" && cmake --build . --target install)
mkdir -p "$(MBUS_INSTALL_TAR)/$(MBUS_PREFIX)/bin"
(cd "$(MBUS_BUILD_TAR)" && cp bin/mbus-* $(MBUS_INSTALL_TAR)/$(MBUS_PREFIX)/bin/)
If you want both statically and dynamically linked, you might have to generate and build twice (I don't know CMake.)
The lib prefix issue has been fixed recently. But in case we don't have a solution at the end of the week, i think about reverting.
@sjlongland The debian directory is now deprecated. Please take a look at #175 and modify the build.sh to build the debian packages with cmake. I will add the binaries and doc later, after you gave me the okay this is going into the right direction.
I don't think it because of the lib prefix.
@sjlongland The debian directory is now deprecated.
Are you certain. I think the the CMake/cpack could use some files from that directory. (But that is only my belife/assumtion. I don't know cmake, nor deb packages nor cpack
I did build the Dockerfile.deb image. It seems that there is a static library being built, and it is presnt in the in the resulting -dev.deb file.
# ls -l /tmp/build/lib/libmbus.a
-rw-r--r-- 1 root root 325474 Jul 15 19:56 /tmp/build/lib/libmbus.a
# dpkg -c libmbus_0.9.0-dev.deb
...
-rw-r--r-- root/root 325474 2020-07-15 19:56 ./usr/lib/libmbus.a
...
@fredrik-sk Do you mean before or after my changes in #175?
@lategoodbye : After #175
That works, although the build time was unexpectedly short. A bigger issue is the file names don't conform to Debian packaging conventions.
Nominally these would be named libmbus_0.9.0_${ARCH}.deb
and libmbus-dev_0.9.0_${ARCH}.deb
(where ${ARCH}
is the target architecture). Instead, they're named libmbus_0.9.0-lib.deb
and libmbus_0.9.0-dev.deb
. There's also no source Debian package produced via this method which makes re-building on other architectures easier.
Okay, was able to hack around the package naming:
arch=$( dpkg --print-architecture )
for f in *.deb; do
pkgbasename=${f%_*}
suffix=${f#${pkgbasename}_}
version=${suffix%-*}
case "$f" in
*-lib.deb)
mv -v $f ${pkgbasename}_${version}_${arch}.deb
;;
*-dev.deb)
mv -v $f ${pkgbasename}-dev_${version}_${arch}.deb
;;
*)
mv -v $f ${f/.deb/_${arch}.deb}
;;
esac
done
Until we start getting packages with files named *_amd64_amd64.deb
, this will get us by I think. :-)
All those those debuild/debmake/cmake crap, drives me crazy :(
It can be a pain, but try asking your typical end user to do a ./configure && make && make install
.
They just want to press a button and "magic happens", and it doesn't seem to matter whether it's a smartphone user pressing the install
button on their phone's application repository, or whether its an engineer that wants to integrate M-Bus meters.
@sjlongland Can you please retest with build-deb.sh?
root@bc58b76794df:/tmp/work# ./build-deb.sh
Running autotools...
configure.ac:19: warning: LT_INIT was called before AM_PROG_AR
aclocal.m4:10027: AM_PROG_AR is expanded from...
configure.ac:19: the top level
…
libtoolize: and rerunning libtoolize and aclocal.
configure.ac:19: warning: LT_INIT was called before AM_PROG_AR
aclocal.m4:10027: AM_PROG_AR is expanded from...
configure.ac:19: the top level
configure.ac:19: warning: LT_INIT was called before AM_PROG_AR
aclocal.m4:10027: AM_PROG_AR is expanded from...
configure.ac:19: the top level
dpkg-buildpackage -rfakeroot -us -uc -i -b
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: info: source package libmbus
dpkg-buildpackage: info: source version 0.9.0
dpkg-buildpackage: info: source distribution xenial
dpkg-buildpackage: info: source changed by Stefan Wahren <stefan.wahren@i2se.com>
dpkg-source -i --before-build work
dpkg-buildpackage: info: host architecture amd64
fakeroot debian/rules clean
dh --with autoreconf clean
dh: Compatibility levels before 9 are deprecated (level 7 in use)
…
configure: creating ./config.status
config.status: creating Makefile
config.status: creating mbus/Makefile
config.status: creating test/Makefile
config.status: creating bin/Makefile
config.status: creating libmbus.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --disable-maintainer-mode
----------------------------------------------------------
Configuration:
Source location: .
Compile: gcc
Compiler flags: -g -O2
Linker flags: -version-info 0:9:0
Host system type: x86_64-pc-linux-gnu
Install path: /usr
See config.h for further configuration.
----------------------------------------------------------
dh_auto_build
dh_auto_build: Compatibility levels before 9 are deprecated (level 7 in use)
make -j1
make[1]: Entering directory '/tmp/work'
make all-recursive
make[2]: Entering directory '/tmp/work'
Making all in mbus
make[3]: Entering directory '/tmp/work/mbus'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c -o mbus.lo mbus.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus.c -fPIC -DPIC -o .libs/mbus.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus.c -o mbus.o >/dev/null 2>&1
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c -o mbus-protocol.lo mbus-protocol.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-protocol.c -fPIC -DPIC -o .libs/mbus-protocol.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-protocol.c -o mbus-protocol.o >/dev/null 2>&1
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c -o mbus-tcp.lo mbus-tcp.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-tcp.c -fPIC -DPIC -o .libs/mbus-tcp.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-tcp.c -o mbus-tcp.o >/dev/null 2>&1
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c -o mbus-serial.lo mbus-serial.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-serial.c -fPIC -DPIC -o .libs/mbus-serial.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-serial.c -o mbus-serial.o >/dev/null 2>&1
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c -o mbus-protocol-aux.lo mbus-protocol-aux.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-protocol-aux.c -fPIC -DPIC -o .libs/mbus-protocol-aux.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -g -O2 -c mbus-protocol-aux.c -o mbus-protocol-aux.o >/dev/null 2>&1
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -version-info 0:9:0 -o libmbus.la -rpath /usr/lib mbus.lo mbus-protocol.lo mbus-tcp.lo mbus-serial.lo mbus-protocol-aux.lo
libtool: link: gcc -shared -fPIC -DPIC .libs/mbus.o .libs/mbus-protocol.o .libs/mbus-tcp.o .libs/mbus-serial.o .libs/mbus-protocol-aux.o -g -O2 -Wl,-soname -Wl,libmbus.so.0 -o .libs/libmbus.so.0.0.9
libtool: link: (cd ".libs" && rm -f "libmbus.so.0" && ln -s "libmbus.so.0.0.9" "libmbus.so.0")
libtool: link: (cd ".libs" && rm -f "libmbus.so" && ln -s "libmbus.so.0.0.9" "libmbus.so")
libtool: link: ar cru .libs/libmbus.a mbus.o mbus-protocol.o mbus-tcp.o mbus-serial.o mbus-protocol-aux.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libmbus.a
libtool: link: ( cd ".libs" && rm -f "libmbus.la" && ln -s "../libmbus.la" "libmbus.la" )
make[3]: Leaving directory '/tmp/work/mbus'
Making all in bin
make[3]: Entering directory '/tmp/work/bin'
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-tcp-scan.o mbus-tcp-scan.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-tcp-scan mbus-tcp-scan.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-tcp-scan mbus-tcp-scan.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-tcp-request-data.o mbus-tcp-request-data.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-tcp-request-data mbus-tcp-request-data.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-tcp-request-data mbus-tcp-request-data.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-tcp-request-data-multi-reply.o mbus-tcp-request-data-multi-reply.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-tcp-request-data-multi-reply mbus-tcp-request-data-multi-reply.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-tcp-request-data-multi-reply mbus-tcp-request-data-multi-reply.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-tcp-select-secondary.o mbus-tcp-select-secondary.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-tcp-select-secondary mbus-tcp-select-secondary.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-tcp-select-secondary mbus-tcp-select-secondary.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-tcp-scan-secondary.o mbus-tcp-scan-secondary.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-tcp-scan-secondary mbus-tcp-scan-secondary.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-tcp-scan-secondary mbus-tcp-scan-secondary.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-serial-scan.o mbus-serial-scan.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-serial-scan mbus-serial-scan.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-serial-scan mbus-serial-scan.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-serial-request-data.o mbus-serial-request-data.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-serial-request-data mbus-serial-request-data.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-serial-request-data mbus-serial-request-data.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-serial-request-data-multi-reply.o mbus-serial-request-data-multi-reply.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-serial-request-data-multi-reply mbus-serial-request-data-multi-reply.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-serial-request-data-multi-reply mbus-serial-request-data-multi-reply.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-serial-select-secondary.o mbus-serial-select-secondary.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-serial-select-secondary mbus-serial-select-secondary.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-serial-select-secondary mbus-serial-select-secondary.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-serial-scan-secondary.o mbus-serial-scan-secondary.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-serial-scan-secondary mbus-serial-scan-secondary.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-serial-scan-secondary mbus-serial-scan-secondary.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-serial-switch-baudrate.o mbus-serial-switch-baudrate.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-serial-switch-baudrate mbus-serial-switch-baudrate.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-serial-switch-baudrate mbus-serial-switch-baudrate.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-tcp-raw-send.o mbus-tcp-raw-send.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-tcp-raw-send mbus-tcp-raw-send.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-tcp-raw-send mbus-tcp-raw-send.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-tcp-application-reset.o mbus-tcp-application-reset.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-tcp-application-reset mbus-tcp-application-reset.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-tcp-application-reset mbus-tcp-application-reset.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I.. -I../src -g -O2 -c -o mbus-serial-set-address.o mbus-serial-set-address.c
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -L../mbus -version-info 0:9:0 -o mbus-serial-set-address mbus-serial-set-address.o -lmbus -lm
libtool: warning: '-version-info' is ignored for programs
libtool: link: gcc -g -O2 -o .libs/mbus-serial-set-address mbus-serial-set-address.o -L../mbus /tmp/work/mbus/.libs/libmbus.so -lm
pod2man --release=0.9.0 --center=libmbus libmbus.pod \
>.pod2man.tmp.$$ 2>/dev/null && mv -f .pod2man.tmp.$$ libmbus.1 || true
make[3]: Leaving directory '/tmp/work/bin'
make[3]: Entering directory '/tmp/work'
make[3]: Leaving directory '/tmp/work'
make[2]: Leaving directory '/tmp/work'
make[1]: Leaving directory '/tmp/work'
dh_auto_test
dh_auto_test: Compatibility levels before 9 are deprecated (level 7 in use)
make -j1 check VERBOSE=1
make[1]: Entering directory '/tmp/work'
Making check in mbus
make[2]: Entering directory '/tmp/work/mbus'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/tmp/work/mbus'
Making check in bin
make[2]: Entering directory '/tmp/work/bin'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/tmp/work/bin'
make[2]: Entering directory '/tmp/work'
make[2]: Leaving directory '/tmp/work'
make[1]: Leaving directory '/tmp/work'
create-stamp debian/debhelper-build-stamp
fakeroot debian/rules binary
dh --with autoreconf binary
dh: Compatibility levels before 9 are deprecated (level 7 in use)
dh_testroot
dh_prep
dh_installdirs
dh_installdirs: Compatibility levels before 9 are deprecated (level 7 in use)
dh_auto_install
dh_auto_install: Compatibility levels before 9 are deprecated (level 7 in use)
make -j1 install DESTDIR=/tmp/work/debian/tmp AM_UPDATE_INFO_DIR=no
make[1]: Entering directory '/tmp/work'
Making install in mbus
make[2]: Entering directory '/tmp/work/mbus'
make[3]: Entering directory '/tmp/work/mbus'
/bin/mkdir -p '/tmp/work/debian/tmp/usr/lib'
/bin/bash ../libtool --mode=install /usr/bin/install -c libmbus.la '/tmp/work/debian/tmp/usr/lib'
libtool: install: /usr/bin/install -c .libs/libmbus.so.0.0.9 /tmp/work/debian/tmp/usr/lib/libmbus.so.0.0.9
libtool: install: (cd /tmp/work/debian/tmp/usr/lib && { ln -s -f libmbus.so.0.0.9 libmbus.so.0 || { rm -f libmbus.so.0 && ln -s libmbus.so.0.0.9 libmbus.so.0; }; })
libtool: install: (cd /tmp/work/debian/tmp/usr/lib && { ln -s -f libmbus.so.0.0.9 libmbus.so || { rm -f libmbus.so && ln -s libmbus.so.0.0.9 libmbus.so; }; })
libtool: install: /usr/bin/install -c .libs/libmbus.lai /tmp/work/debian/tmp/usr/lib/libmbus.la
libtool: install: /usr/bin/install -c .libs/libmbus.a /tmp/work/debian/tmp/usr/lib/libmbus.a
libtool: install: chmod 644 /tmp/work/debian/tmp/usr/lib/libmbus.a
libtool: install: ranlib /tmp/work/debian/tmp/usr/lib/libmbus.a
libtool: warning: remember to run 'libtool --finish /usr/lib'
/bin/mkdir -p '/tmp/work/debian/tmp/usr/include/mbus'
/usr/bin/install -c -m 644 mbus.h mbus-protocol.h mbus-tcp.h mbus-serial.h mbus-protocol-aux.h '/tmp/work/debian/tmp/usr/include/mbus'
make[3]: Leaving directory '/tmp/work/mbus'
make[2]: Leaving directory '/tmp/work/mbus'
Making install in bin
make[2]: Entering directory '/tmp/work/bin'
make[3]: Entering directory '/tmp/work/bin'
/bin/mkdir -p '/tmp/work/debian/tmp/usr/bin'
/bin/bash ../libtool --mode=install /usr/bin/install -c mbus-tcp-scan mbus-tcp-request-data mbus-tcp-request-data-multi-reply mbus-tcp-select-secondary mbus-tcp-scan-secondary mbus-serial-scan mbus-serial-request-data mbus-serial-request-data-multi-reply mbus-serial-select-secondary mbus-serial-scan-secondary mbus-serial-switch-baudrate mbus-tcp-raw-send mbus-tcp-application-reset mbus-serial-set-address '/tmp/work/debian/tmp/usr/bin'
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-tcp-scan /tmp/work/debian/tmp/usr/bin/mbus-tcp-scan
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-tcp-request-data /tmp/work/debian/tmp/usr/bin/mbus-tcp-request-data
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-tcp-request-data-multi-reply /tmp/work/debian/tmp/usr/bin/mbus-tcp-request-data-multi-reply
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-tcp-select-secondary /tmp/work/debian/tmp/usr/bin/mbus-tcp-select-secondary
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-tcp-scan-secondary /tmp/work/debian/tmp/usr/bin/mbus-tcp-scan-secondary
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-serial-scan /tmp/work/debian/tmp/usr/bin/mbus-serial-scan
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-serial-request-data /tmp/work/debian/tmp/usr/bin/mbus-serial-request-data
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-serial-request-data-multi-reply /tmp/work/debian/tmp/usr/bin/mbus-serial-request-data-multi-reply
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-serial-select-secondary /tmp/work/debian/tmp/usr/bin/mbus-serial-select-secondary
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-serial-scan-secondary /tmp/work/debian/tmp/usr/bin/mbus-serial-scan-secondary
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-serial-switch-baudrate /tmp/work/debian/tmp/usr/bin/mbus-serial-switch-baudrate
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-tcp-raw-send /tmp/work/debian/tmp/usr/bin/mbus-tcp-raw-send
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-tcp-application-reset /tmp/work/debian/tmp/usr/bin/mbus-tcp-application-reset
libtool: warning: '/tmp/work/mbus/libmbus.la' has not been installed in '/usr/lib'
libtool: install: /usr/bin/install -c .libs/mbus-serial-set-address /tmp/work/debian/tmp/usr/bin/mbus-serial-set-address
/bin/mkdir -p '/tmp/work/debian/tmp/usr/share/man/man1'
/usr/bin/install -c -m 644 libmbus.1 mbus-tcp-scan.1 mbus-tcp-request-data.1 mbus-tcp-request-data-multi-reply.1 mbus-tcp-select-secondary.1 mbus-tcp-scan-secondary.1 mbus-tcp-raw-send.1 mbus-serial-scan.1 mbus-serial-request-data.1 mbus-serial-request-data-multi-reply.1 mbus-serial-select-secondary.1 mbus-serial-scan-secondary.1 mbus-serial-switch-baudrate.1 '/tmp/work/debian/tmp/usr/share/man/man1'
make[3]: Leaving directory '/tmp/work/bin'
make[2]: Leaving directory '/tmp/work/bin'
make[2]: Entering directory '/tmp/work'
make[3]: Entering directory '/tmp/work'
make[3]: Nothing to be done for 'install-exec-am'.
/bin/mkdir -p '/tmp/work/debian/tmp/usr/share/doc/libmbus-0.9.0'
/usr/bin/install -c -m 644 README.md COPYING hardware/MBus_USB.pdf hardware/MBus_USB.txt '/tmp/work/debian/tmp/usr/share/doc/libmbus-0.9.0'
/bin/mkdir -p '/tmp/work/debian/tmp/usr/lib/pkgconfig'
/usr/bin/install -c -m 644 libmbus.pc '/tmp/work/debian/tmp/usr/lib/pkgconfig'
make[3]: Leaving directory '/tmp/work'
make[2]: Leaving directory '/tmp/work'
make[1]: Leaving directory '/tmp/work'
dh_install
dh_install: Compatibility levels before 9 are deprecated (level 7 in use)
dh_installdocs
dh_installchangelogs
dh_installman
dh_perl
dh_link
dh_strip_nondeterminism
dh_compress
dh_fixperms
debian/rules override_dh_strip
make[1]: Entering directory '/tmp/work'
dh_strip --dbg-package=libmbus1-dbg
dh_strip: Compatibility levels before 9 are deprecated (level 7 in use)
make[1]: Leaving directory '/tmp/work'
dh_makeshlibs
dh_shlibdeps
dpkg-shlibdeps: warning: symbol pow used by debian/libmbus1/usr/lib/libmbus.so.0.0.9 found in none of the libraries
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/libmbus1/usr/bin/mbus-tcp-application-reset debian/libmbus1/usr/bin/mbus-tcp-request-data debian/libmbus1/usr/bin/mbus-tcp-raw-send debian/libmbus1/usr/bin/mbus-serial-scan debian/libmbus1/usr/bin/mbus-serial-scan-secondary debian/libmbus1/usr/bin/mbus-serial-select-secondary debian/libmbus1/usr/bin/mbus-tcp-scan-secondary debian/libmbus1/usr/bin/mbus-serial-request-data-multi-reply debian/libmbus1/usr/bin/mbus-serial-request-data debian/libmbus1/usr/bin/mbus-tcp-scan debian/libmbus1/usr/bin/mbus-serial-set-address debian/libmbus1/usr/bin/mbus-tcp-request-data-multi-reply debian/libmbus1/usr/bin/mbus-tcp-select-secondary debian/libmbus1/usr/bin/mbus-serial-switch-baudrate were not linked against libm.so.6 (they use none of the library's symbols)
dh_installdeb
dh_installdeb: Compatibility levels before 9 are deprecated (level 7 in use)
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package 'libmbus-dev' in '../libmbus-dev_0.9.0_amd64.deb'.
dpkg-deb: building package 'libmbus1-dbg' in '../libmbus1-dbg_0.9.0_amd64.deb'.
dpkg-deb: building package 'libmbus1' in '../libmbus1_0.9.0_amd64.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../libmbus_0.9.0_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source -i --after-build work
dpkg-buildpackage: info: binary-only upload (no source included)
Now running lintian...
warning: the authors of lintian do not recommend running it with root privileges!
E: libmbus changes: bad-distribution-in-changes-file xenial
W: libmbus1: package-name-doesnt-match-sonames libmbus0
W: libmbus1: extra-license-file usr/share/doc/libmbus-0.9.0/COPYING
W: libmbus1: manpage-has-bad-whatis-entry usr/share/man/man1/libmbus.1.gz
W: libmbus1: binary-without-manpage usr/bin/mbus-serial-set-address
W: libmbus1: binary-without-manpage usr/bin/mbus-tcp-application-reset
Finished running lintian.
root@bc58b76794df:/tmp/work#
Looking good! That was on Debian Stretch (v9) via Docker.
Have a look at https://github.com/rscada/libmbus/pull/178 and see what you think. This adds in source packages, and also allows for signing of packages, should a user require it.
We're trying to build a binary
.deb
package forlibmbus
so we can distribute that instead of statically linking it. It would appear this build references files that no longer exist:Culprit seems to be this line: https://github.com/rscada/libmbus/blob/master/debian/libmbus-dev.install#L2
The build script we use used to work. Is there something we missed when preparing the sources for building as a Debian package?