Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debian build seems to be broken? #174

Open
sjlongland opened this issue Jul 14, 2020 · 15 comments
Open

Debian build seems to be broken? #174

sjlongland opened this issue Jul 14, 2020 · 15 comments

Comments

@sjlongland
Copy link

We're trying to build a binary .deb package for libmbus so we can distribute that instead of statically linking it. It would appear this build references files that no longer exist:

14-Jul-2020 16:07:00 | make[3]: Leaving directory '/mnt/src/obj-x86_64-linux-gnu'
-- | --
14-Jul-2020 16:07:00 | make -f CMakeFiles/libmbus.dir/build.make CMakeFiles/libmbus.dir/build
14-Jul-2020 16:07:00 | make[3]: Entering directory '/mnt/src/obj-x86_64-linux-gnu'
14-Jul-2020 16:07:00 | make[3]: Nothing to be done for 'CMakeFiles/libmbus.dir/build'.
14-Jul-2020 16:07:00 | make[3]: Leaving directory '/mnt/src/obj-x86_64-linux-gnu'
14-Jul-2020 16:07:00 | [100%] Built target libmbus
14-Jul-2020 16:07:00 | make[2]: Leaving directory '/mnt/src/obj-x86_64-linux-gnu'
14-Jul-2020 16:07:00 | /usr/bin/cmake -E cmake_progress_start /mnt/src/obj-x86_64-linux-gnu/CMakeFiles 0
14-Jul-2020 16:07:00 | make -f CMakeFiles/Makefile2 preinstall
14-Jul-2020 16:07:00 | make[2]: Entering directory '/mnt/src/obj-x86_64-linux-gnu'
14-Jul-2020 16:07:00 | make[2]: Nothing to be done for 'preinstall'.
14-Jul-2020 16:07:00 | make[2]: Leaving directory '/mnt/src/obj-x86_64-linux-gnu'
14-Jul-2020 16:07:00 | Install the project...
14-Jul-2020 16:07:00 | /usr/bin/cmake -P cmake_install.cmake
14-Jul-2020 16:07:00 | -- Install configuration: "None"
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/share/pkgconfig/libmbus.pc
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/lib/x86_64-linux-gnu/libmbus.so
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/lib/x86_64-linux-gnu/cmake/libmbus/libmbusTargets.cmake
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/lib/x86_64-linux-gnu/cmake/libmbus/libmbusTargets-none.cmake
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/lib/x86_64-linux-gnu/cmake/libmbus/libmbusConfig.cmake
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/lib/x86_64-linux-gnu/cmake/libmbus/libmbusConfigVersion.cmake
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/include/mbus
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/include/mbus/mbus-protocol-aux.h
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/include/mbus/mbus-protocol.h
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/include/mbus/mbus-serial.h
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/include/mbus/mbus-tcp.h
14-Jul-2020 16:07:00 | -- Installing: /mnt/src/debian/tmp/usr/include/mbus/mbus.h
14-Jul-2020 16:07:00 | make[1]: Leaving directory '/mnt/src/obj-x86_64-linux-gnu'
14-Jul-2020 16:07:00 | dh_install
14-Jul-2020 16:07:00 | dh_install: Compatibility levels before 9 are deprecated (level 7 in use)
14-Jul-2020 16:07:00 | dh_install: Cannot find (any matches for) "usr/lib/lib*.a" (tried in "." and "debian/tmp")
14-Jul-2020 16:07:00 | dh_install: libmbus-dev missing files: usr/lib/lib*.a
14-Jul-2020 16:07:00 | dh_install: Cannot find (any matches for) "usr/lib/lib*.so" (tried in "." and "debian/tmp")
14-Jul-2020 16:07:00 | dh_install: libmbus-dev missing files: usr/lib/lib*.so
14-Jul-2020 16:07:00 | dh_install: Cannot find (any matches for) "usr/lib/*.la" (tried in "." and "debian/tmp")
14-Jul-2020 16:07:00 | dh_install: libmbus-dev missing files: usr/lib/*.la
14-Jul-2020 16:07:00 | dh_install: Cannot find (any matches for) "usr/lib/pkgconfig/libmbus.pc" (tried in "." and "debian/tmp")
14-Jul-2020 16:07:00 | dh_install: libmbus-dev missing files: usr/lib/pkgconfig/libmbus.pc
14-Jul-2020 16:07:00 | dh_install: Cannot find (any matches for) "usr/lib/lib*.so.*" (tried in "." and "debian/tmp")
14-Jul-2020 16:07:00 | dh_install: libmbus1 missing files: usr/lib/lib*.so.*
14-Jul-2020 16:07:00 | dh_install: Cannot find (any matches for) "usr/bin/*" (tried in "." and "debian/tmp")
14-Jul-2020 16:07:00 | dh_install: libmbus1 missing files: usr/bin/*
14-Jul-2020 16:07:00 | dh_install: missing files, aborting
14-Jul-2020 16:07:00 | make: *** [binary] Error 2
14-Jul-2020 16:07:00 | debian/rules:6: recipe for target 'binary' failed
14-Jul-2020 16:07:00 | dpkg-buildpackage: error: debian/rules binary gave error exit status 2

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?

@lategoodbye
Copy link
Collaborator

lategoodbye commented Jul 15, 2020

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.

@fredrik-sk
Copy link
Contributor

fredrik-sk commented Jul 15, 2020

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.)

@lategoodbye
Copy link
Collaborator

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.

lategoodbye added a commit that referenced this issue Jul 15, 2020
With the introduction of CMake there is no need for this. Drop this
to avoid confusion.
lategoodbye added a commit that referenced this issue Jul 15, 2020
lategoodbye added a commit that referenced this issue Jul 15, 2020
@lategoodbye
Copy link
Collaborator

lategoodbye commented Jul 15, 2020

@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.

@fredrik-sk
Copy link
Contributor

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

@fredrik-sk
Copy link
Contributor

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
...

lategoodbye added a commit that referenced this issue Jul 15, 2020
With the introduction of CMake there is no need for those. So drop them
to avoid confusion.
lategoodbye added a commit that referenced this issue Jul 15, 2020
lategoodbye added a commit that referenced this issue Jul 15, 2020
@lategoodbye
Copy link
Collaborator

lategoodbye commented Jul 15, 2020

@fredrik-sk Do you mean before or after my changes in #175?

@fredrik-sk
Copy link
Contributor

@lategoodbye : After #175

@sjlongland
Copy link
Author

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.

@sjlongland
Copy link
Author

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. :-)

lategoodbye added a commit that referenced this issue Jul 16, 2020
lategoodbye added a commit that referenced this issue Jul 16, 2020
@lategoodbye
Copy link
Collaborator

All those those debuild/debmake/cmake crap, drives me crazy :(

@sjlongland
Copy link
Author

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.

lategoodbye added a commit that referenced this issue Jul 19, 2020
As long as cmake doesn't generate suitable deb packages, we need to
switch back :(
lategoodbye added a commit that referenced this issue Jul 19, 2020
As long as cmake doesn't generate suitable deb packages, we need to
switch back :(
lategoodbye added a commit that referenced this issue Jul 19, 2020
As long as cmake doesn't generate suitable deb packages, we need to
switch back :(
@lategoodbye
Copy link
Collaborator

@sjlongland Can you please retest with build-deb.sh?

fredrik-sk pushed a commit to fredrik-sk/libmbus that referenced this issue Jul 19, 2020
fredrik-sk pushed a commit to fredrik-sk/libmbus that referenced this issue Jul 19, 2020
fredrik-sk pushed a commit to fredrik-sk/libmbus that referenced this issue Jul 19, 2020
fredrik-sk pushed a commit to fredrik-sk/libmbus that referenced this issue Jul 19, 2020
fredrik-sk pushed a commit to fredrik-sk/libmbus that referenced this issue Jul 19, 2020
@sjlongland
Copy link
Author

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 <[email protected]>
 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.

@sjlongland
Copy link
Author

Have a look at #178 and see what you think. This adds in source packages, and also allows for signing of packages, should a user require it.

Apollon77 pushed a commit to Apollon77/libmbus that referenced this issue Aug 2, 2020
As long as cmake doesn't generate suitable deb packages, we need to
switch back :(

(cherry picked from commit 107d44b)
Apollon77 pushed a commit to Apollon77/libmbus that referenced this issue Aug 2, 2020
As long as cmake doesn't generate suitable deb packages, we need to
switch back :(
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants