Azure / azure-iot-sdk-c

A C99 SDK for connecting devices to Microsoft Azure IoT services
https://azure.github.io/azure-iot-sdk-c
Other
587 stars 739 forks source link

building .deb packages to install on embedded device #521

Closed TonyTheLion closed 6 years ago

TonyTheLion commented 6 years ago

Hi,

My embedded device cannot build this library, so I'm building it on an emulated ARM device with enough memory and resources to build this library.

I would then like to build .deb packages to install on my linux based embedded device.

I am trying to use what you already have to create .deb packages, and when I build the packages from the latest release tag "2018-06-08", it doesn't compile with the following error:

[ 41%] Building C object iothub_client/CMakeFiles/iothub_client_mqtt_transport.dir/src/iothubtransport_mqtt_common.c.o cd /home/tony/azure-iot-sdk-c/obj-arm-linux-gnueabihf/iothub_client && /usr/bin/cc -DARCHITECTURE_ARM=1 -I/home/tony/azure-iot-sdk-c/c-utility/inc -I/home/tony/azure-iot-sdk-c/c-utility/pal/linux -I/home/tony/azure-iot-sdk-c/iothub_client/../deps/parson -I/home/tony/azure-iot-sdk-c/deps/uhttp/deps/c-utility/inc -I/home/tony/azure-iot-sdk-c/iothub_client/inc -I/home/tony/azure-iot-sdk-c/iothub_client/inc/internal -I/home/tony/azure-iot-sdk-c/uamqp/inc -I/home/tony/azure-iot-sdk-c/umqtt/inc -fPIC -g -O2 -fdebug-prefix-map=/home/tony/azure-iot-sdk-c=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Werror -std=gnu99 -o CMakeFiles/iothub_client_mqtt_transport.dir/src/iothubtransport_mqtt_common.c.o -c /home/tony/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c /home/tony/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c: In function ‘extractMqttProperties’: /home/tony/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c:1131:74: error: implicit declaration of function ‘URL_DecodeString’ [-Werror=implicit-function-declaration] if ((propValue_decoded = URL_DecodeString(propValue)) == NULL) ^~~~~~~~~~~~~~~~ /home/tony/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c:1131:72: error: assignment makes pointer from integer without a cast [-Werror=int-conversion] if ((propValue_decoded = URL_DecodeString(propValue)) == NULL) ^ /home/tony/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c:1187:82: error: initialization makes pointer from integer without a cast [-Werror=int-conversion] STRING_HANDLE propName_decoded = URL_DecodeString(propName); ^~~~~~~~~~~~~~~~ /home/tony/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c:1188:83: error: initialization makes pointer from integer without a cast [-Werror=int-conversion] STRING_HANDLE propValue_decoded = URL_DecodeString(propValue); ^~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors iothub_client/CMakeFiles/iothub_client_mqtt_transport.dir/build.make:113: recipe for target 'iothub_client/CMakeFiles/iothub_client_mqtt_transport.dir/src/iothubtransport_mqtt_common.c.o' failed make[3]: *** [iothub_client/CMakeFiles/iothub_client_mqtt_transport.dir/src/iothubtransport_mqtt_common.c.o] Error 1 make[3]: Leaving directory '/home/tony/azure-iot-sdk-c/obj-arm-linux-gnueabihf' CMakeFiles/Makefile2:1374: recipe for target 'iothub_client/CMakeFiles/iothub_client_mqtt_transport.dir/all' failed make[2]: *** [iothub_client/CMakeFiles/iothub_client_mqtt_transport.dir/all] Error 2 make[2]: Leaving directory '/home/tony/azure-iot-sdk-c/obj-arm-linux-gnueabihf' Makefile:141: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/home/tony/azure-iot-sdk-c/obj-arm-linux-gnueabihf' dh_auto_build: make -j1 returned exit code 2 debian/rules:22: recipe for target 'build' failed make: *** [build] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2

I invoked the packages building as follows (though I am not entirely sure this is the correct way):

I had to make a changelog-arm file which I copied and amended from one of the existing changelog-xenial files.

#!/bin/bash

set -e

apt-get install -y debhelper

# remove any all generated packaging files existing
rm -f *.changes
rm -f *.dsc
rm -f *.deb
rm -f ../*.deb
rm -f ../*.changes
rm -f ../*.dsc

# Build c-utility deb packages
pushd c-utility
cp -r build_all/packaging/linux/debian .
cp debian/changelog-arm debian/changelog
dpkg-buildpackage -us -uc
popd

# Install c-utility deb packages
sudo dpkg -i azure-c-shared-util-lib*.deb
sudo dpkg -i azure-c-shared-util-dev*.deb

# Build uamqp deb packages
pushd uamqp
cp -r build_all/packaging/linux/debian .
cp debian/changelog-arm debian/changelog
dpkg-buildpackage -us -uc
popd

# Install uamqp deb packages
sudo dpkg -i azure-uamqp-c-lib*.deb
sudo dpkg -i azure-uamqp-c-dev*.deb

# Build umqtt deb packages
pushd umqtt
cp -r build_all/packaging/linux/debian .
cp debian/changelog-arm debian/changelog
dpkg-buildpackage -us -uc
popd

# Install umqtt packages
sudo dpkg -i azure-umqtt-c-lib*.deb
sudo dpkg -i azure-umqtt-c-dev*.deb

# Build azure-c-iot packages
cp -r build_all/packaging/linux/debian .
cp debian/changelog-arm debian/changelog
dpkg-buildpackage -us -uc

# Insatll azure-c-iot packages
sudo dpkg -i ../azure-iot-sdk-c-lib*.deb
sudo dpkg -i ../azure-iot-sdk-c-dev*.deb

Can anyone help me as to why the build breaks when I try to build it this way?

I need to be able to install this framework on my embedded device from a .deb package.

using sudo apt-get install as in the docs doesn't work either. The ppa seems broken.

ewertons commented 6 years ago

@TonyTheLion , this tag you are using is from a release that is not finalized yet. Could you try again using one of the releases already published?

TonyTheLion commented 6 years ago

@ewertons ,

I tried with tag 2018-04-13 which looks like a release to me, but the build gives the same error as above.

Doing git tag I don't see the one you are referencing.

I did a git pull before checking for any tag/releases.

ewertons commented 6 years ago

Ok, thanks for confirming. What is the compiler and toolchain you are using on your cross compilation?

Looks like the triggering error is this one:

error: implicit declaration of function ‘URL_DecodeString’ [-Werror=implicit-function-declaration] if ((propValue_decoded = URL_DecodeString(propValue)) == NULL) ^~~~~~~~~~~~~~~~ /home/tony/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c:1131:72:

So your compilation might not be including all the header file paths needed. That function is declared in c-utility\inc\azure_c_shared_utility\urlencode.h, and I don't see "/home/tony/azure-iot-sdk-c/c-utility/inc/azure_c_shared_utility" in the compilation command in the log you provided.

TonyTheLion commented 6 years ago

What is the compiler and toolchain you are using on your cross compilation?

gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516

cmake version 3.7.2

Its an armv7 device, which is a 32bit architecture.

Funnily enough, it builds just using cmake. It doesn't build when I try to build it with the debian packaging system.

ewertons commented 6 years ago

That's a good piece of info. I believe there is something missing in the configuration then.

Have you used checkinstall?

Take a look on the steps and output below.

user@ubuntu1710:~/azure-iot-sdk-c/cmake$ make -j `nproc`
Scanning dependencies of target parson
[  0%] Building C object CMakeFiles/parson.dir/deps/parson/parson.c.o
[  1%] Linking C static library libparson.a
[  1%] Built target parson
...
[ 99%] Building C object serializer/samples/devicetwin_simplesample/CMakeFiles/devicetwin_simplesample.dir/devicetwin_simplesample.c.o
[100%] Linking C executable devicetwin_simplesample
[100%] Built target devicetwin_simplesample
user@ubuntu1710:~/azure-iot-sdk-c/cmake$
user@ubuntu1710:~/azure-iot-sdk-c/cmake$ sudo checkinstall

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software is released under the GNU GPL.

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]:

Preparing package documentation...OK

*** No known documentation files were found. The new package
*** won't include a documentation directory.

*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values:

0 -  Maintainer: [ root@ubuntu1710 ]
1 -  Summary: [ Azure IoT C SDK v1.2.4 ]
2 -  Name:    [ cmake ]
3 -  Version: [ 20180614 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ cmake ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ cmake ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue: 2
Enter new name:
>> azure-iot-sdk-c

This package will be built according to these values:

0 -  Maintainer: [ root@ubuntu1710 ]
1 -  Summary: [ Azure IoT C SDK v1.2.4 ]
2 -  Name:    [ azure-iot-sdk-c ]
3 -  Version: [ 20180614 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ cmake ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ cmake ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue: 3
Enter new version:
>> 1.2.4

This package will be built according to these values:

0 -  Maintainer: [ root@ubuntu1710 ]
1 -  Summary: [ Azure IoT C SDK v1.2.4 ]
2 -  Name:    [ azure-iot-sdk-c ]
3 -  Version: [ 1.2.4 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ cmake ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ cmake ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue:

Installing with make install...

========================= Installation results ===========================
[  1%] Built target parson
[ 22%] Built target aziotsharedutil
[ 32%] Built target uamqp
[ 34%] Built target umqtt
[ 35%] Built target uhttp
[ 39%] Built target iothub_service_client
[ 39%] Built target iothub_messaging_sample
[ 40%] Built target iothub_messaging_ll_sample
[ 41%] Built target iothub_devicemethod_sample
[ 42%] Built target iothub_devicetwin_sample
[ 43%] Built target iothub_registrymanager_sample
[ 45%] Built target iothub_client_mqtt_ws_transport
[ 47%] Built target iothub_client_http_transport
[ 53%] Built target iothub_client_amqp_transport
[ 55%] Built target iothub_client_mqtt_transport
[ 61%] Built target iothub_client_amqp_ws_transport
[ 66%] Built target iothub_client
[ 67%] Built target iothub_convenience_sample
[ 68%] Built target iothub_ll_c2d_sample
[ 69%] Built target iothub_ll_client_x509_sample
[ 71%] Built target iothub_ll_telemetry_sample
[ 72%] Built target iothub_client_sample_http_shared
[ 73%] Built target iothub_client_sample_upload_to_blob
[ 75%] Built target iothub_client_sample_upload_to_blob_mb
[ 81%] Built target serializer
[ 83%] Built target iothub_client_sample_mqtt_dm
[ 84%] Built target iothub_client_sample_amqp_shared
[ 85%] Built target iothub_ll_client_sample_amqp_shared
[ 86%] Built target iothub_client_sample_amqp_websockets_shared
[ 87%] Built target iothub_client_sample_amqp_shared_ws_methods
[ 89%] Built target iothub_client_sample_device_method
[ 90%] Built target iothub_client_sample_device_twin
[ 91%] Built target remote_monitoring
[ 93%] Built target simplesample_amqp
[ 94%] Built target simplesample_http
[ 95%] Built target temp_sensor_anomaly
[ 97%] Built target simplesample_mqtt
[ 99%] Built target devicemethod_simplesample
[100%] Built target devicetwin_simplesample
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/include/azureiot/parson.h
-- Up-to-date: /usr/local/lib/libparson.a
-- Installing: /usr/local/include/azure_c_shared_utility/agenttime.h
-- Installing: /usr/local/include/azure_c_shared_utility/base32.h
-- Installing: /usr/local/include/azure_c_shared_utility/base64.h
-- Installing: /usr/local/include/azure_c_shared_utility/buffer_.h
-- Installing: /usr/local/include/azure_c_shared_utility/connection_string_parser.h
-- Installing: /usr/local/include/azure_c_shared_utility/crt_abstractions.h
-- Installing: /usr/local/include/azure_c_shared_utility/constmap.h
-- Installing: /usr/local/include/azure_c_shared_utility/condition.h
-- Installing: /usr/local/include/azure_c_shared_utility/const_defines.h
-- Installing: /usr/local/include/azure_c_shared_utility/consolelogger.h
-- Installing: /usr/local/include/azure_c_shared_utility/doublylinkedlist.h
-- Installing: /usr/local/include/azure_c_shared_utility/gballoc.h
-- Installing: /usr/local/include/azure_c_shared_utility/gbnetwork.h
-- Installing: /usr/local/include/azure_c_shared_utility/gb_stdio.h
-- Installing: /usr/local/include/azure_c_shared_utility/gb_time.h
-- Installing: /usr/local/include/azure_c_shared_utility/gb_rand.h
-- Installing: /usr/local/include/azure_c_shared_utility/hmac.h
-- Installing: /usr/local/include/azure_c_shared_utility/hmacsha256.h
-- Installing: /usr/local/include/azure_c_shared_utility/http_proxy_io.h
-- Installing: /usr/local/include/azure_c_shared_utility/singlylinkedlist.h
-- Installing: /usr/local/include/azure_c_shared_utility/lock.h
-- Installing: /usr/local/include/azure_c_shared_utility/macro_utils.h
-- Installing: /usr/local/include/azure_c_shared_utility/map.h
-- Installing: /usr/local/include/azure_c_shared_utility/optimize_size.h
-- Installing: /usr/local/include/azure_c_shared_utility/platform.h
-- Installing: /usr/local/include/azure_c_shared_utility/refcount.h
-- Installing: /usr/local/include/azure_c_shared_utility/sastoken.h
-- Installing: /usr/local/include/azure_c_shared_utility/sha-private.h
-- Installing: /usr/local/include/azure_c_shared_utility/shared_util_options.h
-- Installing: /usr/local/include/azure_c_shared_utility/sha.h
-- Installing: /usr/local/include/azure_c_shared_utility/socketio.h
-- Installing: /usr/local/include/azure_c_shared_utility/stdint_ce6.h
-- Installing: /usr/local/include/azure_c_shared_utility/strings.h
-- Installing: /usr/local/include/azure_c_shared_utility/strings_types.h
-- Installing: /usr/local/include/azure_c_shared_utility/string_tokenizer.h
-- Installing: /usr/local/include/azure_c_shared_utility/string_tokenizer_types.h
-- Installing: /usr/local/include/azure_c_shared_utility/tickcounter.h
-- Installing: /usr/local/include/azure_c_shared_utility/threadapi.h
-- Installing: /usr/local/include/azure_c_shared_utility/xio.h
-- Installing: /usr/local/include/azure_c_shared_utility/umock_c_prod.h
-- Installing: /usr/local/include/azure_c_shared_utility/uniqueid.h
-- Installing: /usr/local/include/azure_c_shared_utility/uuid.h
-- Installing: /usr/local/include/azure_c_shared_utility/urlencode.h
-- Installing: /usr/local/include/azure_c_shared_utility/vector.h
-- Installing: /usr/local/include/azure_c_shared_utility/vector_types.h
-- Installing: /usr/local/include/azure_c_shared_utility/vector_types_internal.h
-- Installing: /usr/local/include/azure_c_shared_utility/xlogging.h
-- Installing: /usr/local/include/azure_c_shared_utility/constbuffer.h
-- Installing: /usr/local/include/azure_c_shared_utility/tlsio.h
-- Installing: /usr/local/include/azure_c_shared_utility/optionhandler.h
-- Installing: /usr/local/include/azure_c_shared_utility/linux_time.h
-- Installing: /usr/local/include/azure_c_shared_utility/wsio.h
-- Installing: /usr/local/include/azure_c_shared_utility/uws_client.h
-- Installing: /usr/local/include/azure_c_shared_utility/uws_frame_encoder.h
-- Installing: /usr/local/include/azure_c_shared_utility/utf8_checker.h
-- Installing: /usr/local/include/azure_c_shared_utility/httpapi.h
-- Installing: /usr/local/include/azure_c_shared_utility/httpapiex.h
-- Installing: /usr/local/include/azure_c_shared_utility/httpapiexsas.h
-- Installing: /usr/local/include/azure_c_shared_utility/httpheaders.h
-- Installing: /usr/local/include/azure_c_shared_utility/tlsio_openssl.h
-- Installing: /usr/local/include/azure_c_shared_utility/x509_openssl.h
-- Installing: /usr/local/include/azure_c_shared_utility/refcount_os.h
-- Installing: /usr/local/lib/libaziotsharedutil.a
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_role.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sender_settle_mode.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_receiver_settle_mode.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_handle.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_seconds.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_milliseconds.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_delivery_tag.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sequence_no.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_delivery_number.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_transfer_number.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_message_format.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_ietf_language_tag.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_fields.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_error.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_amqp_error.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_connection_error.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_session_error.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_link_error.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_open.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_begin.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_attach.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_flow.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_transfer.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_disposition.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_detach.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_end.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_close.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sasl_code.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sasl_mechanisms.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sasl_init.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sasl_challenge.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sasl_response.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_sasl_outcome.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_terminus_durability.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_terminus_expiry_policy.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_node_properties.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_filter_set.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_source.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_target.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_annotations.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_message_id_ulong.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_message_id_uuid.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_message_id_binary.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_message_id_string.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_address_string.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_header.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_delivery_annotations.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_message_annotations.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_application_properties.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_data.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_amqp_sequence.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_amqp_value.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_footer.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_properties.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_received.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_accepted.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_rejected.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_released.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions_modified.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_frame_codec.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_management.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_types.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqpvalue.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqpvalue_to_string.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/async_operation.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/cbs.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/connection.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/frame_codec.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/header_detect_io.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/link.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/message.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/message_receiver.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/message_sender.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/messaging.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_anonymous.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_frame_codec.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_mechanism.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_server_mechanism.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_mssbcbs.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_plain.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/saslclientio.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_server_io.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/server_protocol_io.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/session.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/socket_listener.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/uamqp.h
-- Up-to-date: /usr/local/lib/libuamqp.a
-- Up-to-date: /usr/local/include/azure_umqtt_c/mqtt_client.h
-- Up-to-date: /usr/local/include/azure_umqtt_c/mqtt_codec.h
-- Up-to-date: /usr/local/include/azure_umqtt_c/mqttconst.h
-- Up-to-date: /usr/local/include/azure_umqtt_c/mqtt_message.h
-- Up-to-date: /usr/local/lib/libumqtt.a
-- Up-to-date: /usr/local/include/azure_uhttp_c/uhttp.h
-- Up-to-date: /usr/local/lib/libuhttp.a
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_registrymanager.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_messaging.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_messaging_ll.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_devicetwin.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_devicemethod.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_service_client_auth.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_sc_version.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_message.h
-- Up-to-date: /usr/local/lib/libiothub_service_client.a
-- Up-to-date: /usr/local/include/azureiot/iothub.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_core.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_core_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_core_common.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_diagnostic.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_options.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_private.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_version.h
-- Up-to-date: /usr/local/include/azureiot/iothub_device_client.h
-- Up-to-date: /usr/local/include/azureiot/iothub_device_client_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_transport_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_message.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport.h
-- Up-to-date: /usr/local/include/azureiot/blob.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_ll_uploadtoblob.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_authorization.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_retry_control.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransporthttp.h
-- Up-to-date: /usr/local/include/azureiot/iothub_transport_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_authorization.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_retry_control.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_common.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_device.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_cbs_auth.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_connection.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_telemetry_messenger.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_twin_messenger.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_messenger.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportamqp_methods.h
-- Up-to-date: /usr/local/include/azureiot/message_queue.h
-- Up-to-date: /usr/local/include/azureiot/uamqp_messaging.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportamqp.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportamqp_websockets.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_authorization.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_retry_control.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_mqtt_common.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportmqtt.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_authorization.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_retry_control.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_mqtt_common.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportmqtt_websockets.h
-- Up-to-date: /usr/local/lib/libiothub_client.a
-- Up-to-date: /usr/local/lib/libiothub_client_http_transport.a
-- Up-to-date: /usr/local/lib/libiothub_client_amqp_transport.a
-- Up-to-date: /usr/local/lib/libiothub_client_amqp_ws_transport.a
-- Up-to-date: /usr/local/lib/libiothub_client_mqtt_transport.a
-- Up-to-date: /usr/local/lib/libiothub_client_mqtt_ws_transport.a
-- Up-to-date: /usr/local/include/azureiot/agenttypesystem.h
-- Up-to-date: /usr/local/include/azureiot/codefirst.h
-- Up-to-date: /usr/local/include/azureiot/commanddecoder.h
-- Up-to-date: /usr/local/include/azureiot/datamarshaller.h
-- Up-to-date: /usr/local/include/azureiot/datapublisher.h
-- Up-to-date: /usr/local/include/azureiot/dataserializer.h
-- Up-to-date: /usr/local/include/azureiot/iotdevice.h
-- Up-to-date: /usr/local/include/azureiot/jsondecoder.h
-- Up-to-date: /usr/local/include/azureiot/jsonencoder.h
-- Up-to-date: /usr/local/include/azureiot/multitree.h
-- Up-to-date: /usr/local/include/azureiot/schema.h
-- Up-to-date: /usr/local/include/azureiot/schemalib.h
-- Up-to-date: /usr/local/include/azureiot/schemaserializer.h
-- Up-to-date: /usr/local/include/azureiot/serializer.h
-- Up-to-date: /usr/local/include/azureiot/serializer_devicetwin.h
-- Up-to-date: /usr/local/include/azureiot/methodreturn.h
-- Up-to-date: /usr/local/lib/libserializer.a

======================== Installation successful ==========================

Some of the files created by the installation are inside the home directory: /home

You probably don't want them to be included in the package.
Do you want me to list them?  [n]:
Should I exclude them from the package? (Saying yes is a good idea)  [n]: y

Copying files to the temporary directory...OK

Stripping ELF binaries and libraries...OK

Compressing man pages...OK

Building file list...OK

Building Debian package...OK

Installing Debian package...OK

Erasing temporary files...OK

Writing backup package...OK
OK

Deleting temp dir...OK

**********************************************************************

 Done. The new package has been installed and saved to

 /home/user/azure-iot-sdk-c/cmake/azure-iot-sdk-c_1.2.4-1_amd64.deb

 You can remove it from your system anytime using:

      dpkg -r azure-iot-sdk-c

**********************************************************************

user@ubuntu1710:~/azure-iot-sdk-c/cmake$ ls -l *.deb
-rw-r--r-- 1 root root 482570 Jun 14 15:48 azure-iot-sdk-c_1.2.4-1_amd64.deb
user@ubuntu1710:~/azure-iot-sdk-c/cmake$
user@ubuntu1710:~/azure-iot-sdk-c/cmake$ dpkg -l | grep azure
ii  azure-iot-sdk-c                                             1.2.4-1                                      amd64        Azure IoT C SDK v1.2.4
user@ubuntu1710:~/azure-iot-sdk-c/cmake$
TonyTheLion commented 6 years ago

Hi,

That checkinstall works nicely and build a package, but for some reason it doesn't include the libparson.a that it does build.

I configured it as follows cmake -Dskip_samples=ON -Duse_mqtt=OFF ..

and then build it make -j `nproc

If I include mqtt (which I don't think I need cause I use uamqp) I get that compilation error about URL_Encode.

Not sure if not including uamqp relates to libparson.a not being included in the package, but I thought I'd mention it.

Any ideas as to why libparson.a (which is being built) does not get included in the package?

Note in the output of the checkinstall it doesn't install parson at all, unlike in your output.

========================= Installation results ===========================
[  2%] Built target parson
[ 37%] Built target aziotsharedutil
[ 54%] Built target uamqp
[ 56%] Built target uhttp
[ 62%] Built target iothub_service_client
[ 71%] Built target iothub_client_amqp_ws_transport
[ 81%] Built target iothub_client_amqp_transport
[ 84%] Built target iothub_client_http_transport
[ 90%] Built target iothub_client
[100%] Built target serializer
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/include/azure_c_shared_utility/agenttime.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/base32.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/base64.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/buffer_.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/connection_string_parser.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/crt_abstractions.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/constmap.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/condition.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/const_defines.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/consolelogger.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/doublylinkedlist.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/gballoc.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/gbnetwork.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/gb_stdio.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/gb_time.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/gb_rand.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/hmac.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/hmacsha256.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/http_proxy_io.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/singlylinkedlist.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/lock.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/macro_utils.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/map.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/optimize_size.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/platform.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/refcount.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/sastoken.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/sha-private.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/shared_util_options.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/sha.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/socketio.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/stdint_ce6.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/strings.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/strings_types.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/string_tokenizer.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/string_tokenizer_types.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/tickcounter.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/threadapi.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/xio.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/umock_c_prod.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/uniqueid.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/uuid.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/urlencode.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/vector.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/vector_types.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/vector_types_internal.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/xlogging.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/constbuffer.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/tlsio.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/optionhandler.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/linux_time.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/wsio.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/uws_client.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/uws_frame_encoder.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/utf8_checker.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/httpapi.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/httpapiex.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/httpapiexsas.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/httpheaders.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/tlsio_openssl.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/x509_openssl.h
-- Up-to-date: /usr/local/include/azure_c_shared_utility/refcount_os.h
-- Up-to-date: /usr/local/lib/libaziotsharedutil.a
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_definitions.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_frame_codec.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_management.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqp_types.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqpvalue.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/amqpvalue_to_string.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/async_operation.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/cbs.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/connection.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/frame_codec.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/header_detect_io.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/link.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/message.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/message_receiver.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/message_sender.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/messaging.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_anonymous.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_frame_codec.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_mechanism.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_server_mechanism.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_mssbcbs.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_plain.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/saslclientio.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/sasl_server_io.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/server_protocol_io.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/session.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/socket_listener.h
-- Up-to-date: /usr/local/include/azure_uamqp_c/uamqp.h
-- Up-to-date: /usr/local/lib/libuamqp.a
-- Up-to-date: /usr/local/include/azure_uhttp_c/uhttp.h
-- Up-to-date: /usr/local/lib/libuhttp.a
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_registrymanager.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_messaging.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_messaging_ll.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_devicetwin.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_devicemethod.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_service_client_auth.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_sc_version.h
-- Up-to-date: /usr/local/include/iothub_service_client/iothub_message.h
-- Up-to-date: /usr/local/lib/libiothub_service_client.a
-- Up-to-date: /usr/local/include/azureiot/blob.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_diagnostic.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_options.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_private.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_version.h
-- Up-to-date: /usr/local/include/azureiot/iothub_transport_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_message.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport.h
-- Up-to-date: /usr/local/include/azureiot/blob.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_ll_uploadtoblob.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_authorization.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_retry_control.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransporthttp.h
-- Up-to-date: /usr/local/include/azureiot/iothub_transport_ll.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_authorization.h
-- Up-to-date: /usr/local/include/azureiot/iothub_client_retry_control.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_common.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_device.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_cbs_auth.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_connection.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_telemetry_messenger.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_twin_messenger.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransport_amqp_messenger.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportamqp_methods.h
-- Up-to-date: /usr/local/include/azureiot/message_queue.h
-- Up-to-date: /usr/local/include/azureiot/uamqp_messaging.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportamqp.h
-- Up-to-date: /usr/local/include/azureiot/iothubtransportamqp_websockets.h
-- Up-to-date: /usr/local/lib/libiothub_client.a
-- Up-to-date: /usr/local/lib/libiothub_client_http_transport.a
-- Up-to-date: /usr/local/lib/libiothub_client_amqp_transport.a
-- Up-to-date: /usr/local/lib/libiothub_client_amqp_ws_transport.a
-- Up-to-date: /usr/local/include/azureiot/agenttypesystem.h
-- Up-to-date: /usr/local/include/azureiot/codefirst.h
-- Up-to-date: /usr/local/include/azureiot/commanddecoder.h
-- Up-to-date: /usr/local/include/azureiot/datamarshaller.h
-- Up-to-date: /usr/local/include/azureiot/datapublisher.h
-- Up-to-date: /usr/local/include/azureiot/dataserializer.h
-- Up-to-date: /usr/local/include/azureiot/iotdevice.h
-- Up-to-date: /usr/local/include/azureiot/jsondecoder.h
-- Up-to-date: /usr/local/include/azureiot/jsonencoder.h
-- Up-to-date: /usr/local/include/azureiot/multitree.h
-- Up-to-date: /usr/local/include/azureiot/schema.h
-- Up-to-date: /usr/local/include/azureiot/schemalib.h
-- Up-to-date: /usr/local/include/azureiot/schemaserializer.h
-- Up-to-date: /usr/local/include/azureiot/serializer.h
-- Up-to-date: /usr/local/include/azureiot/serializer_devicetwin.h
-- Up-to-date: /usr/local/include/azureiot/methodreturn.h
-- Up-to-date: /usr/local/lib/libserializer.a

======================== Installation successful ==========================
ewertons commented 6 years ago

libparson is expected to be installed in your system. And I believe we link to it dynamically. Is there a way you can get libparson itself installed in your system beforehand?

ewertons commented 6 years ago

Hi @TonyTheLion , we will close this issue for now, but please feel free to reopen it if you would like to follow up. Thanks for using the Azure IoT SDKs