uncommitted - lime

Ready changes

Summary

Import uploads missing from VCS:

Diff

diff --git a/.pc/.quilt_patches b/.pc/.quilt_patches
new file mode 100644
index 0000000..6857a8d
--- /dev/null
+++ b/.pc/.quilt_patches
@@ -0,0 +1 @@
+debian/patches
diff --git a/.pc/.quilt_series b/.pc/.quilt_series
new file mode 100644
index 0000000..c206706
--- /dev/null
+++ b/.pc/.quilt_series
@@ -0,0 +1 @@
+series
diff --git a/.pc/.version b/.pc/.version
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/.pc/.version
@@ -0,0 +1 @@
+2
diff --git a/.pc/0002-Set-proper-installation-location-for-the-Doxygen-doc.patch/CMakeLists.txt b/.pc/0002-Set-proper-installation-location-for-the-Doxygen-doc.patch/CMakeLists.txt
new file mode 100644
index 0000000..fa715e9
--- /dev/null
+++ b/.pc/0002-Set-proper-installation-location-for-the-Doxygen-doc.patch/CMakeLists.txt
@@ -0,0 +1,200 @@
+############################################################################
+# CMakeLists.txt
+# Copyright (C) 2010-2019  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+############################################################################
+include(GNUInstallDirs)
+include(CheckSymbolExists)
+include(CheckLibraryExists)
+include(CMakePushCheckState)
+include(CMakePackageConfigHelpers)
+
+cmake_minimum_required(VERSION 3.1)
+
+option(ENABLE_SHARED "Build shared library." YES)
+option(ENABLE_STATIC "Build static library." YES)
+option(ENABLE_STRICT "Build with strict compile options." YES)
+option(ENABLE_CURVE25519 "Enable support of Curve 25519." YES)
+option(ENABLE_CURVE448 "Enable support of Curve 448(goldilock)." YES)
+option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." YES)
+option(ENABLE_DOC "Enable API documentation generation." NO)
+option(ENABLE_PROFILING "Enable profiling, GCC only" NO)
+option(ENABLE_C_INTERFACE "Enable support of C89 foreign function interface" NO)
+option(ENABLE_JNI "Enable support of Java foreign function interface" NO)
+option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source archive making (CMake >= 3.11)" OFF)
+
+set (LANGUAGES_LIST CXX)
+if (ENABLE_C_INTERFACE)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} C)
+endif()
+if (ENABLE_JNI)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} Java)
+endif()
+
+project(lime VERSION 5.1.0 LANGUAGES ${LANGUAGES_LIST})
+
+set(LIME_SO_VERSION "0")
+set(LIME_VERSION ${PROJECT_VERSION})
+
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+if(NOT CPACK_GENERATOR AND NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
+	set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
+	message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
+endif()
+
+find_package(bctoolbox 0.5.1 REQUIRED OPTIONAL_COMPONENTS tester)
+
+find_package(Soci REQUIRED)
+
+include_directories(
+	include/
+	src/
+	${CMAKE_CURRENT_BINARY_DIR}
+)
+if(MSVC)
+	include_directories(${MSVC_INCLUDE_DIR})
+endif()
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
+
+set(LIME_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
+if(LIME_CPPFLAGS)
+	list(REMOVE_DUPLICATES LIME_CPPFLAGS)
+	add_definitions(${LIME_CPPFLAGS})
+endif()
+add_definitions("-DLIME_EXPORTS")
+
+set(STRICT_OPTIONS_C)
+set(STRICT_OPTIONS_CPP )
+set(STRICT_OPTIONS_CXX )
+set(STRICT_OPTIONS_OBJC )
+
+if(ENABLE_JNI)
+	set(CMAKE_CXX_STANDARD 14)
+else()
+	set(CMAKE_CXX_STANDARD 11)
+endif()
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_C_STANDARD 99)
+
+if(MSVC)
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "/WX")
+	endif()
+	# avoid conflicts with std::min and std::max
+	add_definitions("-DNOMINMAX")
+else()
+	if (ENABLE_PROFILING)
+		list(APPEND STRICT_OPTIONS_CXX "-g -pg")
+	endif()
+        #list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-error=deprecated-declarations") # turn off deprecated-declaration warning to avoid being flooded by soci.h
+	list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-deprecated-declarations" "-Wno-missing-field-initializers")
+
+	if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+		list(APPEND STRICT_OPTIONS_CPP "-Qunused-arguments" "-Wno-array-bounds")
+	endif()
+	if(APPLE)
+		list(APPEND STRICT_OPTIONS_CPP "-Wno-error=unknown-warning-option" "-Qunused-arguments" "-Wno-tautological-compare" "-Wno-unused-function" "-Wno-array-bounds")
+	endif()
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "-Werror" "-Wextra" "-Wno-unused-parameter" "-fno-strict-aliasing")
+	endif()
+endif()
+if(STRICT_OPTIONS_CPP)
+	list(REMOVE_DUPLICATES STRICT_OPTIONS_CPP)
+endif()
+
+set(EXPORT_TARGETS_NAME "lime")
+
+if (ENABLE_CURVE25519)
+	add_definitions("-DEC25519_ENABLED")
+	message(STATUS "Support Curve 25519")
+endif()
+
+if (ENABLE_CURVE448)
+	add_definitions("-DEC448_ENABLED")
+	message(STATUS "Support Curve 448")
+endif()
+
+if(ENABLE_C_INTERFACE)
+	add_definitions("-DFFI_ENABLED")
+	message(STATUS "Provide C89 interface")
+endif()
+
+if(ENABLE_JNI)
+	message(STATUS "Provide JNI interface")
+	if (NOT ANDROID)
+		find_package(JNI REQUIRED)
+
+		if (JNI_FOUND)
+			message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
+			message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
+		endif()
+	endif()
+endif()
+
+add_subdirectory(include)
+add_subdirectory(src)
+if(ENABLE_UNIT_TESTS)
+        enable_testing()
+	add_subdirectory(tester)
+endif()
+
+set(ConfigPackageLocation "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake")
+
+export(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Targets.cmake"
+)
+
+configure_package_config_file(cmake/LimeConfig.cmake.in
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+  	INSTALL_DESTINATION ${ConfigPackageLocation}
+	NO_SET_AND_CHECK_MACRO
+)
+
+install(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE ${EXPORT_TARGETS_NAME}Targets.cmake
+	DESTINATION ${ConfigPackageLocation}
+)
+install(FILES
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+	DESTINATION ${ConfigPackageLocation}
+)
+
+if(ENABLE_DOC)
+	# Doxygen
+	find_package(Doxygen)
+	if (DOXYGEN_FOUND)
+		configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+		add_custom_target(doc ALL
+			${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+			WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+			COMMENT "Generating API documentation with Doxygen" VERBATIM)
+		install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
+			DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/lime-${LIME_VERSION}")
+	endif()
+endif()
+
+if (ENABLE_PACKAGE_SOURCE)
+	add_subdirectory(build)
+endif()
diff --git a/.pc/0003-Install-.cmake-files-in-usr-lib-arch-triplet.patch/CMakeLists.txt b/.pc/0003-Install-.cmake-files-in-usr-lib-arch-triplet.patch/CMakeLists.txt
new file mode 100644
index 0000000..9b273b4
--- /dev/null
+++ b/.pc/0003-Install-.cmake-files-in-usr-lib-arch-triplet.patch/CMakeLists.txt
@@ -0,0 +1,200 @@
+############################################################################
+# CMakeLists.txt
+# Copyright (C) 2010-2019  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+############################################################################
+include(GNUInstallDirs)
+include(CheckSymbolExists)
+include(CheckLibraryExists)
+include(CMakePushCheckState)
+include(CMakePackageConfigHelpers)
+
+cmake_minimum_required(VERSION 3.1)
+
+option(ENABLE_SHARED "Build shared library." YES)
+option(ENABLE_STATIC "Build static library." YES)
+option(ENABLE_STRICT "Build with strict compile options." YES)
+option(ENABLE_CURVE25519 "Enable support of Curve 25519." YES)
+option(ENABLE_CURVE448 "Enable support of Curve 448(goldilock)." YES)
+option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." YES)
+option(ENABLE_DOC "Enable API documentation generation." NO)
+option(ENABLE_PROFILING "Enable profiling, GCC only" NO)
+option(ENABLE_C_INTERFACE "Enable support of C89 foreign function interface" NO)
+option(ENABLE_JNI "Enable support of Java foreign function interface" NO)
+option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source archive making (CMake >= 3.11)" OFF)
+
+set (LANGUAGES_LIST CXX)
+if (ENABLE_C_INTERFACE)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} C)
+endif()
+if (ENABLE_JNI)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} Java)
+endif()
+
+project(lime VERSION 5.1.0 LANGUAGES ${LANGUAGES_LIST})
+
+set(LIME_SO_VERSION "0")
+set(LIME_VERSION ${PROJECT_VERSION})
+
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+if(NOT CPACK_GENERATOR AND NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
+	set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
+	message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
+endif()
+
+find_package(bctoolbox 0.5.1 REQUIRED OPTIONAL_COMPONENTS tester)
+
+find_package(Soci REQUIRED)
+
+include_directories(
+	include/
+	src/
+	${CMAKE_CURRENT_BINARY_DIR}
+)
+if(MSVC)
+	include_directories(${MSVC_INCLUDE_DIR})
+endif()
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
+
+set(LIME_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
+if(LIME_CPPFLAGS)
+	list(REMOVE_DUPLICATES LIME_CPPFLAGS)
+	add_definitions(${LIME_CPPFLAGS})
+endif()
+add_definitions("-DLIME_EXPORTS")
+
+set(STRICT_OPTIONS_C)
+set(STRICT_OPTIONS_CPP )
+set(STRICT_OPTIONS_CXX )
+set(STRICT_OPTIONS_OBJC )
+
+if(ENABLE_JNI)
+	set(CMAKE_CXX_STANDARD 14)
+else()
+	set(CMAKE_CXX_STANDARD 11)
+endif()
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_C_STANDARD 99)
+
+if(MSVC)
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "/WX")
+	endif()
+	# avoid conflicts with std::min and std::max
+	add_definitions("-DNOMINMAX")
+else()
+	if (ENABLE_PROFILING)
+		list(APPEND STRICT_OPTIONS_CXX "-g -pg")
+	endif()
+        #list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-error=deprecated-declarations") # turn off deprecated-declaration warning to avoid being flooded by soci.h
+	list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-deprecated-declarations" "-Wno-missing-field-initializers")
+
+	if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+		list(APPEND STRICT_OPTIONS_CPP "-Qunused-arguments" "-Wno-array-bounds")
+	endif()
+	if(APPLE)
+		list(APPEND STRICT_OPTIONS_CPP "-Wno-error=unknown-warning-option" "-Qunused-arguments" "-Wno-tautological-compare" "-Wno-unused-function" "-Wno-array-bounds")
+	endif()
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "-Werror" "-Wextra" "-Wno-unused-parameter" "-fno-strict-aliasing")
+	endif()
+endif()
+if(STRICT_OPTIONS_CPP)
+	list(REMOVE_DUPLICATES STRICT_OPTIONS_CPP)
+endif()
+
+set(EXPORT_TARGETS_NAME "lime")
+
+if (ENABLE_CURVE25519)
+	add_definitions("-DEC25519_ENABLED")
+	message(STATUS "Support Curve 25519")
+endif()
+
+if (ENABLE_CURVE448)
+	add_definitions("-DEC448_ENABLED")
+	message(STATUS "Support Curve 448")
+endif()
+
+if(ENABLE_C_INTERFACE)
+	add_definitions("-DFFI_ENABLED")
+	message(STATUS "Provide C89 interface")
+endif()
+
+if(ENABLE_JNI)
+	message(STATUS "Provide JNI interface")
+	if (NOT ANDROID)
+		find_package(JNI REQUIRED)
+
+		if (JNI_FOUND)
+			message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
+			message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
+		endif()
+	endif()
+endif()
+
+add_subdirectory(include)
+add_subdirectory(src)
+if(ENABLE_UNIT_TESTS)
+        enable_testing()
+	add_subdirectory(tester)
+endif()
+
+set(ConfigPackageLocation "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake")
+
+export(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Targets.cmake"
+)
+
+configure_package_config_file(cmake/LimeConfig.cmake.in
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+  	INSTALL_DESTINATION ${ConfigPackageLocation}
+	NO_SET_AND_CHECK_MACRO
+)
+
+install(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE ${EXPORT_TARGETS_NAME}Targets.cmake
+	DESTINATION ${ConfigPackageLocation}
+)
+install(FILES
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+	DESTINATION ${ConfigPackageLocation}
+)
+
+if(ENABLE_DOC)
+	# Doxygen
+	find_package(Doxygen)
+	if (DOXYGEN_FOUND)
+		configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+		add_custom_target(doc ALL
+			${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+			WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+			COMMENT "Generating API documentation with Doxygen" VERBATIM)
+		install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
+			DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/lime/html")
+	endif()
+endif()
+
+if (ENABLE_PACKAGE_SOURCE)
+	add_subdirectory(build)
+endif()
diff --git a/.pc/0004-Ensure-lower-case-JAR-file-name.patch/src/java/CMakeLists.txt b/.pc/0004-Ensure-lower-case-JAR-file-name.patch/src/java/CMakeLists.txt
new file mode 100644
index 0000000..92061c5
--- /dev/null
+++ b/.pc/0004-Ensure-lower-case-JAR-file-name.patch/src/java/CMakeLists.txt
@@ -0,0 +1,43 @@
+############################################################################
+# CMakeLists.txt
+# Copyright (C) 2019  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+############################################################################
+find_package(Java REQUIRED)
+include(UseJava)
+
+set (LIME_SOURCE_FILES_JAVA
+	org/linphone/lime/LimeException.java
+	org/linphone/lime/LimeCurveId.java
+	org/linphone/lime/LimeEncryptionPolicy.java
+	org/linphone/lime/LimeOutputBuffer.java
+	org/linphone/lime/LimePeerDeviceStatus.java
+	org/linphone/lime/LimeCallbackReturn.java
+	org/linphone/lime/LimeStatusCallback.java
+	org/linphone/lime/RecipientData.java
+	org/linphone/lime/LimePostToX3DH.java
+	org/linphone/lime/LimeManager.java
+)
+
+add_jar(Lime ${LIME_SOURCE_FILES_JAVA})
+
+get_target_property(Lime_jarFile Lime JAR_FILE)
+
+message(STATUS "Lime Jar file ${Lime_jarFile}")
+
diff --git a/.pc/applied-patches b/.pc/applied-patches
new file mode 100644
index 0000000..f065675
--- /dev/null
+++ b/.pc/applied-patches
@@ -0,0 +1,6 @@
+0002-Set-proper-installation-location-for-the-Doxygen-doc.patch
+0003-Install-.cmake-files-in-usr-lib-arch-triplet.patch
+0004-Ensure-lower-case-JAR-file-name.patch
+honour-build-profiles.patch
+install-pkgconfig-file.patch
+define-project-version.patch
diff --git a/.pc/define-project-version.patch/CMakeLists.txt b/.pc/define-project-version.patch/CMakeLists.txt
new file mode 100644
index 0000000..5b00574
--- /dev/null
+++ b/.pc/define-project-version.patch/CMakeLists.txt
@@ -0,0 +1,230 @@
+############################################################################
+# CMakeLists.txt
+# Copyright (C) 2010-2019  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+############################################################################
+include(GNUInstallDirs)
+include(CheckSymbolExists)
+include(CheckLibraryExists)
+include(CMakePushCheckState)
+include(CMakePackageConfigHelpers)
+
+cmake_minimum_required(VERSION 3.1)
+
+option(ENABLE_SHARED "Build shared library." YES)
+option(ENABLE_STATIC "Build static library." YES)
+option(ENABLE_STRICT "Build with strict compile options." YES)
+option(ENABLE_CURVE25519 "Enable support of Curve 25519." YES)
+option(ENABLE_CURVE448 "Enable support of Curve 448(goldilock)." YES)
+option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." YES)
+option(ENABLE_DOC "Enable API documentation generation." NO)
+option(ENABLE_PROFILING "Enable profiling, GCC only" NO)
+option(ENABLE_C_INTERFACE "Enable support of C89 foreign function interface" NO)
+option(ENABLE_JNI "Enable support of Java foreign function interface" NO)
+option(ENABLE_LIMEJAR "Enable building the Lime JAR file" NO)
+option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source archive making (CMake >= 3.11)" OFF)
+
+if (ENABLE_SHARED OR ENABLE_STATIC)
+  set (ENABLE_LIME 1)
+endif()
+
+set (LANGUAGES_LIST CXX)
+if (ENABLE_C_INTERFACE)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} C)
+endif()
+if (ENABLE_JNI)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} Java)
+endif()
+
+project(lime VERSION 5.1.0 LANGUAGES ${LANGUAGES_LIST})
+
+set(LIME_SO_VERSION "0")
+set(LIME_VERSION ${PROJECT_VERSION})
+
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+if(NOT CPACK_GENERATOR AND NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
+	set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
+	message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
+endif()
+
+if(ENABLE_LIME OR ENABLE_STATIC OR ENABLE_SHARED)
+find_package(bctoolbox 0.5.1 REQUIRED OPTIONAL_COMPONENTS tester)
+
+find_package(Soci REQUIRED)
+endif()
+
+include_directories(
+	include/
+	src/
+	${CMAKE_CURRENT_BINARY_DIR}
+)
+if(MSVC)
+	include_directories(${MSVC_INCLUDE_DIR})
+endif()
+
+if(ENABLE_LIME)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
+endif()
+
+set(LIME_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
+if(LIME_CPPFLAGS)
+	list(REMOVE_DUPLICATES LIME_CPPFLAGS)
+	add_definitions(${LIME_CPPFLAGS})
+endif()
+add_definitions("-DLIME_EXPORTS")
+
+set(STRICT_OPTIONS_C)
+set(STRICT_OPTIONS_CPP )
+set(STRICT_OPTIONS_CXX )
+set(STRICT_OPTIONS_OBJC )
+
+if(ENABLE_JNI)
+	set(CMAKE_CXX_STANDARD 14)
+else()
+	set(CMAKE_CXX_STANDARD 11)
+endif()
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_C_STANDARD 99)
+
+if(MSVC)
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "/WX")
+	endif()
+	# avoid conflicts with std::min and std::max
+	add_definitions("-DNOMINMAX")
+else()
+	if (ENABLE_PROFILING)
+		list(APPEND STRICT_OPTIONS_CXX "-g -pg")
+	endif()
+        #list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-error=deprecated-declarations") # turn off deprecated-declaration warning to avoid being flooded by soci.h
+	list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-deprecated-declarations" "-Wno-missing-field-initializers")
+
+	if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+		list(APPEND STRICT_OPTIONS_CPP "-Qunused-arguments" "-Wno-array-bounds")
+	endif()
+	if(APPLE)
+		list(APPEND STRICT_OPTIONS_CPP "-Wno-error=unknown-warning-option" "-Qunused-arguments" "-Wno-tautological-compare" "-Wno-unused-function" "-Wno-array-bounds")
+	endif()
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "-Werror" "-Wextra" "-Wno-unused-parameter" "-fno-strict-aliasing")
+	endif()
+endif()
+if(STRICT_OPTIONS_CPP)
+	list(REMOVE_DUPLICATES STRICT_OPTIONS_CPP)
+endif()
+
+set(EXPORT_TARGETS_NAME "lime")
+
+if (ENABLE_CURVE25519)
+	add_definitions("-DEC25519_ENABLED")
+	message(STATUS "Support Curve 25519")
+endif()
+
+if (ENABLE_CURVE448)
+	add_definitions("-DEC448_ENABLED")
+	message(STATUS "Support Curve 448")
+endif()
+
+if(ENABLE_C_INTERFACE)
+	add_definitions("-DFFI_ENABLED")
+	message(STATUS "Provide C89 interface")
+endif()
+
+if(ENABLE_JNI)
+	message(STATUS "Provide JNI interface")
+	if (NOT ANDROID)
+		find_package(JNI REQUIRED)
+
+		if (JNI_FOUND)
+			message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
+			message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
+		endif()
+	endif()
+endif()
+
+if(ENABLE_LIMEJAR)
+  add_subdirectory(src/java)
+endif()
+
+if(ENABLE_LIME)
+add_subdirectory(include)
+endif()
+if(ENABLE_LIME)
+add_subdirectory(src)
+endif()
+
+if(ENABLE_UNIT_TESTS)
+        enable_testing()
+	add_subdirectory(tester)
+endif()
+
+set(ConfigPackageLocation "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}")
+
+if(ENABLE_LIME)
+export(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Targets.cmake"
+)
+
+configure_package_config_file(cmake/LimeConfig.cmake.in
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+  	INSTALL_DESTINATION ${ConfigPackageLocation}
+	NO_SET_AND_CHECK_MACRO
+)
+
+install(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE ${EXPORT_TARGETS_NAME}Targets.cmake
+	DESTINATION ${ConfigPackageLocation}
+)
+install(FILES
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+	DESTINATION ${ConfigPackageLocation}
+)
+endif()
+
+if(ENABLE_DOC)
+	# Doxygen
+	find_package(Doxygen)
+	if (DOXYGEN_FOUND)
+		configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+		add_custom_target(doc ALL
+			${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+			WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+			COMMENT "Generating API documentation with Doxygen" VERBATIM)
+		install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
+			DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/lime/html")
+	endif()
+endif()
+
+if (ENABLE_PACKAGE_SOURCE)
+	add_subdirectory(build)
+endif()
+
+
+if(ENABLE_LIME)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lime.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lime.pc)
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/mediastreamer.pc PROPERTIES GENERATED ON)
+install(FILES
+	"${CMAKE_CURRENT_BINARY_DIR}/lime.pc"
+	DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+)
+endif()
diff --git a/.pc/honour-build-profiles.patch/CMakeLists.txt b/.pc/honour-build-profiles.patch/CMakeLists.txt
new file mode 100644
index 0000000..cec37a8
--- /dev/null
+++ b/.pc/honour-build-profiles.patch/CMakeLists.txt
@@ -0,0 +1,200 @@
+############################################################################
+# CMakeLists.txt
+# Copyright (C) 2010-2019  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+############################################################################
+include(GNUInstallDirs)
+include(CheckSymbolExists)
+include(CheckLibraryExists)
+include(CMakePushCheckState)
+include(CMakePackageConfigHelpers)
+
+cmake_minimum_required(VERSION 3.1)
+
+option(ENABLE_SHARED "Build shared library." YES)
+option(ENABLE_STATIC "Build static library." YES)
+option(ENABLE_STRICT "Build with strict compile options." YES)
+option(ENABLE_CURVE25519 "Enable support of Curve 25519." YES)
+option(ENABLE_CURVE448 "Enable support of Curve 448(goldilock)." YES)
+option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." YES)
+option(ENABLE_DOC "Enable API documentation generation." NO)
+option(ENABLE_PROFILING "Enable profiling, GCC only" NO)
+option(ENABLE_C_INTERFACE "Enable support of C89 foreign function interface" NO)
+option(ENABLE_JNI "Enable support of Java foreign function interface" NO)
+option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source archive making (CMake >= 3.11)" OFF)
+
+set (LANGUAGES_LIST CXX)
+if (ENABLE_C_INTERFACE)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} C)
+endif()
+if (ENABLE_JNI)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} Java)
+endif()
+
+project(lime VERSION 5.1.0 LANGUAGES ${LANGUAGES_LIST})
+
+set(LIME_SO_VERSION "0")
+set(LIME_VERSION ${PROJECT_VERSION})
+
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+if(NOT CPACK_GENERATOR AND NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
+	set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
+	message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
+endif()
+
+find_package(bctoolbox 0.5.1 REQUIRED OPTIONAL_COMPONENTS tester)
+
+find_package(Soci REQUIRED)
+
+include_directories(
+	include/
+	src/
+	${CMAKE_CURRENT_BINARY_DIR}
+)
+if(MSVC)
+	include_directories(${MSVC_INCLUDE_DIR})
+endif()
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
+
+set(LIME_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
+if(LIME_CPPFLAGS)
+	list(REMOVE_DUPLICATES LIME_CPPFLAGS)
+	add_definitions(${LIME_CPPFLAGS})
+endif()
+add_definitions("-DLIME_EXPORTS")
+
+set(STRICT_OPTIONS_C)
+set(STRICT_OPTIONS_CPP )
+set(STRICT_OPTIONS_CXX )
+set(STRICT_OPTIONS_OBJC )
+
+if(ENABLE_JNI)
+	set(CMAKE_CXX_STANDARD 14)
+else()
+	set(CMAKE_CXX_STANDARD 11)
+endif()
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_C_STANDARD 99)
+
+if(MSVC)
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "/WX")
+	endif()
+	# avoid conflicts with std::min and std::max
+	add_definitions("-DNOMINMAX")
+else()
+	if (ENABLE_PROFILING)
+		list(APPEND STRICT_OPTIONS_CXX "-g -pg")
+	endif()
+        #list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-error=deprecated-declarations") # turn off deprecated-declaration warning to avoid being flooded by soci.h
+	list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-deprecated-declarations" "-Wno-missing-field-initializers")
+
+	if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+		list(APPEND STRICT_OPTIONS_CPP "-Qunused-arguments" "-Wno-array-bounds")
+	endif()
+	if(APPLE)
+		list(APPEND STRICT_OPTIONS_CPP "-Wno-error=unknown-warning-option" "-Qunused-arguments" "-Wno-tautological-compare" "-Wno-unused-function" "-Wno-array-bounds")
+	endif()
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "-Werror" "-Wextra" "-Wno-unused-parameter" "-fno-strict-aliasing")
+	endif()
+endif()
+if(STRICT_OPTIONS_CPP)
+	list(REMOVE_DUPLICATES STRICT_OPTIONS_CPP)
+endif()
+
+set(EXPORT_TARGETS_NAME "lime")
+
+if (ENABLE_CURVE25519)
+	add_definitions("-DEC25519_ENABLED")
+	message(STATUS "Support Curve 25519")
+endif()
+
+if (ENABLE_CURVE448)
+	add_definitions("-DEC448_ENABLED")
+	message(STATUS "Support Curve 448")
+endif()
+
+if(ENABLE_C_INTERFACE)
+	add_definitions("-DFFI_ENABLED")
+	message(STATUS "Provide C89 interface")
+endif()
+
+if(ENABLE_JNI)
+	message(STATUS "Provide JNI interface")
+	if (NOT ANDROID)
+		find_package(JNI REQUIRED)
+
+		if (JNI_FOUND)
+			message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
+			message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
+		endif()
+	endif()
+endif()
+
+add_subdirectory(include)
+add_subdirectory(src)
+if(ENABLE_UNIT_TESTS)
+        enable_testing()
+	add_subdirectory(tester)
+endif()
+
+set(ConfigPackageLocation "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}")
+
+export(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Targets.cmake"
+)
+
+configure_package_config_file(cmake/LimeConfig.cmake.in
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+  	INSTALL_DESTINATION ${ConfigPackageLocation}
+	NO_SET_AND_CHECK_MACRO
+)
+
+install(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE ${EXPORT_TARGETS_NAME}Targets.cmake
+	DESTINATION ${ConfigPackageLocation}
+)
+install(FILES
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+	DESTINATION ${ConfigPackageLocation}
+)
+
+if(ENABLE_DOC)
+	# Doxygen
+	find_package(Doxygen)
+	if (DOXYGEN_FOUND)
+		configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+		add_custom_target(doc ALL
+			${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+			WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+			COMMENT "Generating API documentation with Doxygen" VERBATIM)
+		install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
+			DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/lime/html")
+	endif()
+endif()
+
+if (ENABLE_PACKAGE_SOURCE)
+	add_subdirectory(build)
+endif()
diff --git a/.pc/honour-build-profiles.patch/src/CMakeLists.txt b/.pc/honour-build-profiles.patch/src/CMakeLists.txt
new file mode 100644
index 0000000..5a834de
--- /dev/null
+++ b/.pc/honour-build-profiles.patch/src/CMakeLists.txt
@@ -0,0 +1,117 @@
+############################################################################
+# CMakeLists.txt
+# Copyright (C) 2017  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+############################################################################
+
+set(LIME_PRIVATE_HEADER_FILES
+	lime_settings.hpp
+	lime_defines.hpp
+	lime_keys.hpp
+	lime_impl.hpp
+	lime_x3dh_protocol.hpp
+	lime_localStorage.hpp
+	lime_double_ratchet.hpp
+	lime_double_ratchet_protocol.hpp
+	lime_lime.hpp
+	lime_crypto_primitives.hpp
+	lime_log.hpp
+)
+set(LIME_SOURCE_FILES_CXX
+	lime.cpp
+	lime_crypto_primitives.cpp
+	lime_x3dh.cpp
+	lime_x3dh_protocol.cpp
+	lime_localStorage.cpp
+	lime_double_ratchet.cpp
+	lime_double_ratchet_protocol.cpp
+	lime_manager.cpp
+)
+
+if (ENABLE_C_INTERFACE)
+	set(LIME_SOURCE_FILES_CXX ${LIME_SOURCE_FILES_CXX} lime_ffi.cpp)
+endif()
+
+if (ENABLE_JNI)
+	set(LIME_SOURCE_FILES_CXX ${LIME_SOURCE_FILES_CXX} lime_jni.cpp)
+	add_subdirectory(java)
+endif()
+
+bc_apply_compile_flags(LIME_SOURCE_FILES_CXX STRICT_OPTIONS_CPP STRICT_OPTIONS_CXX)
+
+if(ENABLE_STATIC)
+	add_library(lime-static STATIC ${LIME_PRIVATE_HEADER_FILES} ${LIME_SOURCE_FILES_CXX})
+	set_target_properties(lime-static PROPERTIES OUTPUT_NAME lime)
+	target_include_directories(lime-static PUBLIC ${SOCI_INCLUDE_DIRS} ${SOCI_INCLUDE_DIRS}/soci ${JNI_INCLUDE_DIRS})
+	target_link_libraries(lime-static INTERFACE bctoolbox ${SOCI_sqlite3_PLUGIN}  ${SOCI_LIBRARIES} ${JNI_LIBRARIES})
+	if(ENABLE_PROFILING)
+		set_target_properties(lime-static PROPERTIES LINK_FLAGS "-pg")
+	endif()
+endif()
+if(ENABLE_SHARED)
+	add_library(lime SHARED ${LIME_PRIVATE_HEADER_FILES} ${LIME_HEADER_FILES} ${LIME_SOURCE_FILES_CXX})
+	set_target_properties(lime PROPERTIES VERSION ${LIME_SO_VERSION})
+	target_include_directories(lime PRIVATE ${SOCI_INCLUDE_DIRS} ${SOCI_INCLUDE_DIRS}/soci ${JNI_INCLUDE_DIRS} INTERFACE
+		$<INSTALL_INTERFACE:include>
+		$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+	)
+	target_link_libraries(lime PRIVATE bctoolbox ${SOCI_LIBRARIES} ${JNI_LIBRARIES})
+	if(APPLE)
+		if(IOS)
+			set(MIN_OS ${LINPHONE_IOS_DEPLOYMENT_TARGET})
+		else()
+			set(MIN_OS ${CMAKE_OSX_DEPLOYMENT_TARGET})
+		endif()
+		set_target_properties(lime PROPERTIES
+			FRAMEWORK TRUE
+			MACOSX_FRAMEWORK_IDENTIFIER com.belledonne-communications.lime
+			MACOSX_FRAMEWORK_INFO_PLIST "${CMAKE_SOURCE_DIR}/build/osx/Info.plist.in"
+			PUBLIC_HEADER "${LIME_HEADER_FILES}"
+		)
+	endif()
+	if(WIN32)
+		set_target_properties(lime PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+	endif()
+	if(MSVC)
+		if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
+			install(FILES $<TARGET_PDB_FILE:lime>
+				DESTINATION ${CMAKE_INSTALL_BINDIR}
+				PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+			)
+		endif()
+	endif()
+endif()
+
+if(ENABLE_STATIC)
+	install(TARGETS lime-static EXPORT ${EXPORT_TARGETS_NAME}Targets
+		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+		PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+	)
+endif()
+if(ENABLE_SHARED)
+	install(TARGETS lime EXPORT ${EXPORT_TARGETS_NAME}Targets
+		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+		FRAMEWORK DESTINATION Frameworks
+		PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+	)
+endif()
diff --git a/.pc/install-pkgconfig-file.patch/CMakeLists.txt b/.pc/install-pkgconfig-file.patch/CMakeLists.txt
new file mode 100644
index 0000000..198af0a
--- /dev/null
+++ b/.pc/install-pkgconfig-file.patch/CMakeLists.txt
@@ -0,0 +1,220 @@
+############################################################################
+# CMakeLists.txt
+# Copyright (C) 2010-2019  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+############################################################################
+include(GNUInstallDirs)
+include(CheckSymbolExists)
+include(CheckLibraryExists)
+include(CMakePushCheckState)
+include(CMakePackageConfigHelpers)
+
+cmake_minimum_required(VERSION 3.1)
+
+option(ENABLE_SHARED "Build shared library." YES)
+option(ENABLE_STATIC "Build static library." YES)
+option(ENABLE_STRICT "Build with strict compile options." YES)
+option(ENABLE_CURVE25519 "Enable support of Curve 25519." YES)
+option(ENABLE_CURVE448 "Enable support of Curve 448(goldilock)." YES)
+option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." YES)
+option(ENABLE_DOC "Enable API documentation generation." NO)
+option(ENABLE_PROFILING "Enable profiling, GCC only" NO)
+option(ENABLE_C_INTERFACE "Enable support of C89 foreign function interface" NO)
+option(ENABLE_JNI "Enable support of Java foreign function interface" NO)
+option(ENABLE_LIMEJAR "Enable building the Lime JAR file" NO)
+option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source archive making (CMake >= 3.11)" OFF)
+
+if (ENABLE_SHARED OR ENABLE_STATIC)
+  set (ENABLE_LIME 1)
+endif()
+
+set (LANGUAGES_LIST CXX)
+if (ENABLE_C_INTERFACE)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} C)
+endif()
+if (ENABLE_JNI)
+	set (LANGUAGES_LIST ${LANGUAGES_LIST} Java)
+endif()
+
+project(lime VERSION 5.1.0 LANGUAGES ${LANGUAGES_LIST})
+
+set(LIME_SO_VERSION "0")
+set(LIME_VERSION ${PROJECT_VERSION})
+
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+if(NOT CPACK_GENERATOR AND NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
+	set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
+	message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
+endif()
+
+if(ENABLE_LIME OR ENABLE_STATIC OR ENABLE_SHARED)
+find_package(bctoolbox 0.5.1 REQUIRED OPTIONAL_COMPONENTS tester)
+
+find_package(Soci REQUIRED)
+endif()
+
+include_directories(
+	include/
+	src/
+	${CMAKE_CURRENT_BINARY_DIR}
+)
+if(MSVC)
+	include_directories(${MSVC_INCLUDE_DIR})
+endif()
+
+if(ENABLE_LIME)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
+endif()
+
+set(LIME_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
+if(LIME_CPPFLAGS)
+	list(REMOVE_DUPLICATES LIME_CPPFLAGS)
+	add_definitions(${LIME_CPPFLAGS})
+endif()
+add_definitions("-DLIME_EXPORTS")
+
+set(STRICT_OPTIONS_C)
+set(STRICT_OPTIONS_CPP )
+set(STRICT_OPTIONS_CXX )
+set(STRICT_OPTIONS_OBJC )
+
+if(ENABLE_JNI)
+	set(CMAKE_CXX_STANDARD 14)
+else()
+	set(CMAKE_CXX_STANDARD 11)
+endif()
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_C_STANDARD 99)
+
+if(MSVC)
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "/WX")
+	endif()
+	# avoid conflicts with std::min and std::max
+	add_definitions("-DNOMINMAX")
+else()
+	if (ENABLE_PROFILING)
+		list(APPEND STRICT_OPTIONS_CXX "-g -pg")
+	endif()
+        #list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-error=deprecated-declarations") # turn off deprecated-declaration warning to avoid being flooded by soci.h
+	list(APPEND STRICT_OPTIONS_CPP "-Wall" "-Wuninitialized" "-Wno-deprecated-declarations" "-Wno-missing-field-initializers")
+
+	if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+		list(APPEND STRICT_OPTIONS_CPP "-Qunused-arguments" "-Wno-array-bounds")
+	endif()
+	if(APPLE)
+		list(APPEND STRICT_OPTIONS_CPP "-Wno-error=unknown-warning-option" "-Qunused-arguments" "-Wno-tautological-compare" "-Wno-unused-function" "-Wno-array-bounds")
+	endif()
+	if(ENABLE_STRICT)
+		list(APPEND STRICT_OPTIONS_CPP "-Werror" "-Wextra" "-Wno-unused-parameter" "-fno-strict-aliasing")
+	endif()
+endif()
+if(STRICT_OPTIONS_CPP)
+	list(REMOVE_DUPLICATES STRICT_OPTIONS_CPP)
+endif()
+
+set(EXPORT_TARGETS_NAME "lime")
+
+if (ENABLE_CURVE25519)
+	add_definitions("-DEC25519_ENABLED")
+	message(STATUS "Support Curve 25519")
+endif()
+
+if (ENABLE_CURVE448)
+	add_definitions("-DEC448_ENABLED")
+	message(STATUS "Support Curve 448")
+endif()
+
+if(ENABLE_C_INTERFACE)
+	add_definitions("-DFFI_ENABLED")
+	message(STATUS "Provide C89 interface")
+endif()
+
+if(ENABLE_JNI)
+	message(STATUS "Provide JNI interface")
+	if (NOT ANDROID)
+		find_package(JNI REQUIRED)
+
+		if (JNI_FOUND)
+			message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
+			message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
+		endif()
+	endif()
+endif()
+
+if(ENABLE_LIMEJAR)
+  add_subdirectory(src/java)
+endif()
+
+if(ENABLE_LIME)
+add_subdirectory(include)
+endif()
+if(ENABLE_LIME)
+add_subdirectory(src)
+endif()
+
+if(ENABLE_UNIT_TESTS)
+        enable_testing()
+	add_subdirectory(tester)
+endif()
+
+set(ConfigPackageLocation "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}")
+
+if(ENABLE_LIME)
+export(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Targets.cmake"
+)
+
+configure_package_config_file(cmake/LimeConfig.cmake.in
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+  	INSTALL_DESTINATION ${ConfigPackageLocation}
+	NO_SET_AND_CHECK_MACRO
+)
+
+install(EXPORT ${EXPORT_TARGETS_NAME}Targets
+	FILE ${EXPORT_TARGETS_NAME}Targets.cmake
+	DESTINATION ${ConfigPackageLocation}
+)
+install(FILES
+	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
+	DESTINATION ${ConfigPackageLocation}
+)
+endif()
+
+if(ENABLE_DOC)
+	# Doxygen
+	find_package(Doxygen)
+	if (DOXYGEN_FOUND)
+		configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+		add_custom_target(doc ALL
+			${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+			WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+			COMMENT "Generating API documentation with Doxygen" VERBATIM)
+		install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
+			DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/lime/html")
+	endif()
+endif()
+
+if (ENABLE_PACKAGE_SOURCE)
+	add_subdirectory(build)
+endif()
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f1672df..712402d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -37,8 +37,13 @@ option(ENABLE_DOC "Enable API documentation generation." NO)
 option(ENABLE_PROFILING "Enable profiling, GCC only" NO)
 option(ENABLE_C_INTERFACE "Enable support of C89 foreign function interface" NO)
 option(ENABLE_JNI "Enable support of Java foreign function interface" NO)
+option(ENABLE_LIMEJAR "Enable building the Lime JAR file" NO)
 option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source archive making (CMake >= 3.11)" OFF)
 
+if (ENABLE_SHARED OR ENABLE_STATIC)
+  set (ENABLE_LIME 1)
+endif()
+
 set (LANGUAGES_LIST CXX)
 if (ENABLE_C_INTERFACE)
 	set (LANGUAGES_LIST ${LANGUAGES_LIST} C)
@@ -47,7 +52,7 @@ if (ENABLE_JNI)
 	set (LANGUAGES_LIST ${LANGUAGES_LIST} Java)
 endif()
 
-project(lime VERSION 5.0.0 LANGUAGES ${LANGUAGES_LIST})
+project(lime VERSION ${DEB_VERSION_UPSTREAM} LANGUAGES ${LANGUAGES_LIST})
 
 set(LIME_SO_VERSION "0")
 set(LIME_VERSION ${PROJECT_VERSION})
@@ -60,9 +65,11 @@ if(NOT CPACK_GENERATOR AND NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX)
 	message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
 endif()
 
+if(ENABLE_LIME OR ENABLE_STATIC OR ENABLE_SHARED)
 find_package(bctoolbox 0.5.1 REQUIRED OPTIONAL_COMPONENTS tester)
 
 find_package(Soci REQUIRED)
+endif()
 
 include_directories(
 	include/
@@ -73,8 +80,10 @@ if(MSVC)
 	include_directories(${MSVC_INCLUDE_DIR})
 endif()
 
+if(ENABLE_LIME)
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES GENERATED ON)
+endif()
 
 set(LIME_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
 if(LIME_CPPFLAGS)
@@ -153,15 +162,25 @@ if(ENABLE_JNI)
 	endif()
 endif()
 
+if(ENABLE_LIMEJAR)
+  add_subdirectory(src/java)
+endif()
+
+if(ENABLE_LIME)
 add_subdirectory(include)
+endif()
+if(ENABLE_LIME)
 add_subdirectory(src)
+endif()
+
 if(ENABLE_UNIT_TESTS)
         enable_testing()
 	add_subdirectory(tester)
 endif()
 
-set(ConfigPackageLocation "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake")
+set(ConfigPackageLocation "${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}")
 
+if(ENABLE_LIME)
 export(EXPORT ${EXPORT_TARGETS_NAME}Targets
 	FILE "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Targets.cmake"
 )
@@ -180,6 +199,7 @@ install(FILES
 	"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
 	DESTINATION ${ConfigPackageLocation}
 )
+endif()
 
 if(ENABLE_DOC)
 	# Doxygen
@@ -191,10 +211,20 @@ if(ENABLE_DOC)
 			WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
 			COMMENT "Generating API documentation with Doxygen" VERBATIM)
 		install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
-			DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/lime-${LIME_VERSION}")
+			DESTINATION "${CMAKE_INSTALL_DATADIR}/doc/lime/html")
 	endif()
 endif()
 
 if (ENABLE_PACKAGE_SOURCE)
 	add_subdirectory(build)
 endif()
+
+
+if(ENABLE_LIME)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lime.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lime.pc)
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/mediastreamer.pc PROPERTIES GENERATED ON)
+install(FILES
+	"${CMAKE_CURRENT_BINARY_DIR}/lime.pc"
+	DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+)
+endif()
diff --git a/debian/changelog b/debian/changelog
index 3a374c4..0ce4129 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,29 @@
+lime (5.1.64+dfsg-2) unstable; urgency=medium
+
+  * Release to unstable.
+
+ -- Bernhard Schmidt <berni@debian.org>  Sun, 27 Nov 2022 17:49:04 +0100
+
+lime (5.1.64+dfsg-1) unstable; urgency=medium
+
+  * New upstream release 5.1.64
+  * Build documentation reproducibly.
+
+ -- Dennis Filder <d.filder@web.de>  Wed, 05 Oct 2022 18:55:07 +0200
+
+lime (5.0.37+dfsg-5) unstable; urgency=medium
+
+  * Rebuild for libsoci ABI bump, see Bug#1021125
+
+ -- Bernhard Schmidt <berni@debian.org>  Sun, 16 Oct 2022 11:38:33 +0200
+
+lime (5.0.37+dfsg-4) unstable; urgency=medium
+
+  * Release to unstable.
+  * d/gbp.conf for debian/unstable branch
+
+ -- Bernhard Schmidt <berni@debian.org>  Mon, 12 Sep 2022 20:27:46 +0200
+
 lime (5.0.37+dfsg-3) experimental; urgency=medium
 
   * Move default-jdk to Build-Depends as well
diff --git a/debian/control b/debian/control
index 6c20250..bdfa764 100644
--- a/debian/control
+++ b/debian/control
@@ -7,13 +7,14 @@ Build-Depends: cmake,
  default-jdk (>= 2:1.7) <!nojava>,
  javahelper <!nojava>,
 Build-Depends-Arch:
- libbctoolbox-dev (>= 5.0.37~),
+ libbctoolbox-dev (>= 5.1.64~),
  libsoci-dev,
  libsqlite3-dev,
  libboost1.74-dev,
 Build-Depends-Indep:
  doxygen <!nodoc>,
-Standards-Version: 4.6.0
+ libregexp-assemble-perl <!nodoc>,
+Standards-Version: 4.6.1
 Rules-Requires-Root: no
 Section: libs
 Homepage: http://www.linphone.org/technical-corner/lime
diff --git a/debian/copyright b/debian/copyright
index 7cdc2b5..acc5812 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -54,7 +54,7 @@ Copyright: 2016 Mapbox
 License: ISC
 
 Files: debian/*
-Copyright: 2021 Dennis Filder <d.filder@web.de>
+Copyright: 2021-2022 Dennis Filder <d.filder@web.de>
 License: GPL-3.0+
 
 License: GPL-2+
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..1ed8d7a
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,2 @@
+[DEFAULT]
+debian-branch=debian/unstable
diff --git a/debian/liblime0.shlibs b/debian/liblime0.shlibs
index 07e18d4..157ca03 100644
--- a/debian/liblime0.shlibs
+++ b/debian/liblime0.shlibs
@@ -1 +1 @@
-liblime 0 liblime0 (>= 5.0.37), liblime0 (<< 5.1.0)
+liblime 0 liblime0 (>= 5.1.64), liblime0 (<< 5.2.0)
diff --git a/debian/patches/define-project-version.patch b/debian/patches/define-project-version.patch
index 193624c..6691aaf 100644
--- a/debian/patches/define-project-version.patch
+++ b/debian/patches/define-project-version.patch
@@ -4,7 +4,7 @@
  	set (LANGUAGES_LIST ${LANGUAGES_LIST} Java)
  endif()
  
--project(lime VERSION 5.0.0 LANGUAGES ${LANGUAGES_LIST})
+-project(lime VERSION 5.1.0 LANGUAGES ${LANGUAGES_LIST})
 +project(lime VERSION ${DEB_VERSION_UPSTREAM} LANGUAGES ${LANGUAGES_LIST})
  
  set(LIME_SO_VERSION "0")
diff --git a/debian/rules b/debian/rules
index c9eac84..1191143 100755
--- a/debian/rules
+++ b/debian/rules
@@ -2,6 +2,7 @@
 #export DH_VERBOSE = 1
 
 # see FEATURE AREAS in dpkg-buildflags(1)
+include /usr/share/dpkg/architecture.mk
 include /usr/share/dpkg/pkg-info.mk
 export DEB_VERSION_UPSTREAM
 
@@ -47,9 +48,21 @@ override_dh_auto_configure:
 
 override_dh_auto_build-arch:
 	dh_auto_build -- lime
-	mkdir -p obj-$(DEB_HOST_MULTIARCH)/doc/html
+	mkdir -p obj-$(DEB_HOST_GNU_TYPE)/doc/html
 
+export CURDIR
 override_dh_auto_build-indep:
 	dh_auto_build -- \
 		$(call when-in-build-profile,nojava,,Lime) \
 		$(call when-in-build-profile,nodoc,,doc)
+# Doxygen puts the build path into some files with AFAIK no Off knob.
+# Edit it out manually, but sometimes $CURDIR contains RE-metacharacters,
+# so escape those first.
+
+# from tests.reproducible-builds.org
+#export CURDIR = /build/2/lime-5.0.37+dfsg/2nd
+#all:
+ifeq (x,$(call when-building-package,liblime-doc,x))
+	find obj-$(DEB_HOST_GNU_TYPE)/doc/html -type f -print0 | xargs -0 \
+		sed -z -i -E -e "s@$$(perl -MRegexp::Assemble -e 'print substr(Regexp::Assemble->new->add(quotemeta($$ENV{CURDIR})), 4, -1)')/@@g"
+endif
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 5a834de..ff27775 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -50,10 +50,12 @@ endif()
 
 if (ENABLE_JNI)
 	set(LIME_SOURCE_FILES_CXX ${LIME_SOURCE_FILES_CXX} lime_jni.cpp)
-	add_subdirectory(java)
+#	add_subdirectory(java)
 endif()
 
+if(ENABLE_STATIC OR ENABLE_SHARED)
 bc_apply_compile_flags(LIME_SOURCE_FILES_CXX STRICT_OPTIONS_CPP STRICT_OPTIONS_CXX)
+endif()
 
 if(ENABLE_STATIC)
 	add_library(lime-static STATIC ${LIME_PRIVATE_HEADER_FILES} ${LIME_SOURCE_FILES_CXX})
diff --git a/src/java/CMakeLists.txt b/src/java/CMakeLists.txt
index 92061c5..b141805 100644
--- a/src/java/CMakeLists.txt
+++ b/src/java/CMakeLists.txt
@@ -35,7 +35,7 @@ set (LIME_SOURCE_FILES_JAVA
 	org/linphone/lime/LimeManager.java
 )
 
-add_jar(Lime ${LIME_SOURCE_FILES_JAVA})
+add_jar(Lime ${LIME_SOURCE_FILES_JAVA} OUTPUT_NAME "lime")
 
 get_target_property(Lime_jarFile Lime JAR_FILE)
 
diff --git a/src/lime_localStorage.cpp b/src/lime_localStorage.cpp
index b67f6d2..408221f 100644
--- a/src/lime_localStorage.cpp
+++ b/src/lime_localStorage.cpp
@@ -738,7 +738,8 @@ bool DR<Curve>::session_save(bool commit) { // commit default to true
 				{
 					blob CKs(m_localStorage->sql);
 					CKs.write(0, (char *)(m_CKs.data()), m_CKs.size());
-					m_localStorage->sql<<"UPDATE DR_sessions SET Ns= :Ns, CKs= :CKs, Status = :active_status WHERE sessionId = :sessionId;", use(m_Ns), use(CKs), use((m_active_status==true)?0x01:0x00), use(m_dbSessionId);
+					int status = (m_active_status==true)?0x01:0x00;
+					m_localStorage->sql<<"UPDATE DR_sessions SET Ns= :Ns, CKs= :CKs, Status = :active_status WHERE sessionId = :sessionId;", use(m_Ns), use(CKs), use(status), use(m_dbSessionId);
 				}
 					break;
 				case DRSessionDbStatus::clean: // Session is clean? So why have we been called?

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/debug/.build-id/9e/72407bf26822c9763f9eb8b3f051c9b0bca95c.debug
-rw-r--r--  root/root   /usr/share/java/lime-5.1.64.jar
lrwxrwxrwx  root/root   /usr/share/java/lime.jar -> lime-5.1.64.jar

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/debug/.build-id/0c/f42235bc762589984554d148b48d168f7cb3e5.debug
-rw-r--r--  root/root   /usr/share/java/lime-5.0.37.jar
lrwxrwxrwx  root/root   /usr/share/java/lime.jar -> lime-5.0.37.jar

No differences were encountered between the control files of package liblime-dev

No differences were encountered between the control files of package liblime-doc

No differences were encountered between the control files of package liblime-java

No differences were encountered between the control files of package liblime0

Control files of package liblime0-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 0cf42235bc762589984554d148b48d168f7cb3e5 9e72407bf26822c9763f9eb8b3f051c9b0bca95c

Run locally

More details

Full run details