Initial loki deb for debian sid

This commit is contained in:
Jason Rhinelander 2019-05-05 01:41:25 -03:00
parent ef01f7d499
commit 0e42269b8b
23 changed files with 570 additions and 0 deletions

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
loki (3.0.5-1) unstable; urgency=medium
* Initial Release.
-- Jason Rhinelander <jason@imaginary.ca> Fri, 03 May 2019 15:52:06 -0300

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
11

78
debian/control vendored Normal file
View File

@ -0,0 +1,78 @@
Source: loki
Section: net
Priority: optional
Maintainer: Jason Rhinelander <jason@imaginary.ca>
Build-Depends: debhelper (>= 11), cmake, g++, libboost-dev (>= 1.58), libboost-filesystem-dev, libboost-thread-dev,
libboost-date-time-dev, libboost-chrono-dev, libboost-regex-dev, libboost-serialization-dev, libboost-program-options-dev,
libboost-locale-dev, libunbound-dev (>= 1.4.16), libminiupnpc-dev (>= 2.1), libunwind8-dev, libssl-dev, libreadline-dev,
libhidapi-dev, libzmq3-dev
Standards-Version: 4.1.3
Homepage: https://loki.network
Package: libloki-core3.0.5
Architecture: any
Depends: libminiupnpc17 (>= 2.1), ${shlibs:Depends}, ${misc:Depends}
Description: Loki shared libraries
This package contains the common Loki library code used by the various loki
binaries.
Package: libloki-core-wallet3.0.5
Architecture: any
Depends: libloki-core3.0.5 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: Loki wallet shared libraries
This package contains the common Loki library code used by the various loki
wallet-related code.
Package: lokid
Architecture: any
Depends: libloki-core3.0.5 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Suggests: loki-blockchain-tools, loki-wallet
Description: Loki network daemon
This package contains the loki network daemon, lokid, for running a loki node
or loki service node.
Package: loki-wallet-cli
Architecture: any
Depends: libloki-core-wallet3.0.5 (= ${binary:Version}), libloki-core3.0.5 (= ${binary:Version}),
${shlibs:Depends}, ${misc:Depends}
Suggests: lokid
Description: Loki command-line wallet and JSON RPC wallet
This package contains binaries for accessing a wallet stored on the Loki
blockchain. Both a command-line interface (loki-wallet-cli) and a JSON RPC
interface (loki-wallet-rpc) are provided.
.
The wallets require a lokid node to work, such as the one provided in the
lokid package, but can also work with a remote Loki node.
Package: loki-wallet-rpc
Architecture: any
Depends: libloki-core-wallet3.0.5 (= ${binary:Version}), libloki-core3.0.5 (= ${binary:Version}),
${shlibs:Depends}, ${misc:Depends}
Suggests: lokid
Description: Loki RPC wallet
This package contains the Loki JSON RPC wallet interface to accessing a wallet
on the Loki blockchain. This wallet interface is typically used by external
software that needs to interact with a wallet.
.
The wallet requires a lokid node to work, such as the one provided in the
lokid package, but can also work with a remote Loki node.
Package: loki-blockchain-tools
Architecture: any
Depends: libloki-core-wallet3.0.5 (= ${binary:Version}), libloki-core3.0.5 (= ${binary:Version}),
${shlibs:Depends}, ${misc:Depends}
Recommends: lokid
Description: Loki blockchain utilities
This contains the loki-blockchain-* binaries for managing and querying the
loki blockchain database. These tools are not typically needed to run an
ordinary node or service node.
Package: libloki-core-dev
Architecture: all
Section: libdevel
Depends: libloki-core-wallet3.0.5 (= ${binary:Version}), libloki-core3.0.5 (= ${binary:Version}),
libboost-dev (>= 1.58), libboost-filesystem-dev,libboost-thread-dev, libboost-date-time-dev, libboost-chrono-dev,
libboost-regex-dev, libboost-serialization-dev, libboost-program-options-dev, libboost-locale-dev, libunbound-dev (>= 1.4.16),
libminiupnpc-dev, libssl-dev, libreadline-dev, libhidapi-dev, libzmq3-dev, ${misc:Depends}
Description: Loki development files
This contains the headers needed to compile code that uses the loki libraries.

78
debian/control.in vendored Normal file
View File

@ -0,0 +1,78 @@
Source: loki
Section: net
Priority: optional
Maintainer: Jason Rhinelander <jason@imaginary.ca>
Build-Depends: debhelper (>= 11), cmake, g++, libboost-dev (>= 1.58), libboost-filesystem-dev, libboost-thread-dev,
libboost-date-time-dev, libboost-chrono-dev, libboost-regex-dev, libboost-serialization-dev, libboost-program-options-dev,
libboost-locale-dev, libunbound-dev (>= 1.4.16), libminiupnpc-dev (>= 2.1), libunwind8-dev, libssl-dev, libreadline-dev,
libhidapi-dev, libzmq3-dev
Standards-Version: 4.1.3
Homepage: https://loki.network
Package: libloki-core@LIBLOKI_VERSION@
Architecture: any
Depends: libminiupnpc17 (>= 2.1), ${shlibs:Depends}, ${misc:Depends}
Description: Loki shared libraries
This package contains the common Loki library code used by the various loki
binaries.
Package: libloki-core-wallet@LIBLOKI_VERSION@
Architecture: any
Depends: libloki-core@LIBLOKI_VERSION@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: Loki wallet shared libraries
This package contains the common Loki library code used by the various loki
wallet-related code.
Package: lokid
Architecture: any
Depends: libloki-core@LIBLOKI_VERSION@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Suggests: loki-blockchain-tools, loki-wallet
Description: Loki network daemon
This package contains the loki network daemon, lokid, for running a loki node
or loki service node.
Package: loki-wallet-cli
Architecture: any
Depends: libloki-core-wallet@LIBLOKI_VERSION@ (= ${binary:Version}), libloki-core@LIBLOKI_VERSION@ (= ${binary:Version}),
${shlibs:Depends}, ${misc:Depends}
Suggests: lokid
Description: Loki command-line wallet and JSON RPC wallet
This package contains binaries for accessing a wallet stored on the Loki
blockchain. Both a command-line interface (loki-wallet-cli) and a JSON RPC
interface (loki-wallet-rpc) are provided.
.
The wallets require a lokid node to work, such as the one provided in the
lokid package, but can also work with a remote Loki node.
Package: loki-wallet-rpc
Architecture: any
Depends: libloki-core-wallet@LIBLOKI_VERSION@ (= ${binary:Version}), libloki-core@LIBLOKI_VERSION@ (= ${binary:Version}),
${shlibs:Depends}, ${misc:Depends}
Suggests: lokid
Description: Loki RPC wallet
This package contains the Loki JSON RPC wallet interface to accessing a wallet
on the Loki blockchain. This wallet interface is typically used by external
software that needs to interact with a wallet.
.
The wallet requires a lokid node to work, such as the one provided in the
lokid package, but can also work with a remote Loki node.
Package: loki-blockchain-tools
Architecture: any
Depends: libloki-core-wallet@LIBLOKI_VERSION@ (= ${binary:Version}), libloki-core@LIBLOKI_VERSION@ (= ${binary:Version}),
${shlibs:Depends}, ${misc:Depends}
Recommends: lokid
Description: Loki blockchain utilities
This contains the loki-blockchain-* binaries for managing and querying the
loki blockchain database. These tools are not typically needed to run an
ordinary node or service node.
Package: libloki-core-dev
Architecture: all
Section: libdevel
Depends: libloki-core-wallet@LIBLOKI_VERSION@ (= ${binary:Version}), libloki-core@LIBLOKI_VERSION@ (= ${binary:Version}),
libboost-dev (>= 1.58), libboost-filesystem-dev,libboost-thread-dev, libboost-date-time-dev, libboost-chrono-dev,
libboost-regex-dev, libboost-serialization-dev, libboost-program-options-dev, libboost-locale-dev, libunbound-dev (>= 1.4.16),
libminiupnpc-dev, libssl-dev, libreadline-dev, libhidapi-dev, libzmq3-dev, ${misc:Depends}
Description: Loki development files
This contains the headers needed to compile code that uses the loki libraries.

42
debian/copyright vendored Normal file
View File

@ -0,0 +1,42 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: loki
Source: <url://example.com>
Files: *
Copyright: <years> <put author's name and email here>
<years> <likewise for another author>
License: BSD-3-Clause
Files: debian/*
Copyright: 2019 Jason Rhinelander <jason@imaginary.ca>
License: BSD-3-Clause
License: BSD-3-Clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.
# Please avoid picking licenses with terms that are more restrictive than the
# packaged work, as it may make Debian's contributions unacceptable upstream.

11
debian/gbp.conf vendored Normal file
View File

@ -0,0 +1,11 @@
[DEFAULT]
upstream-branch = master
debian-branch = debian/sid
upstream-tag = v%(version)s
[buildpackage]
ignore-new = true
pbuilder = true
dist = sid
arch = amd64
submodules = true

17
debian/gen-libloki-install.sh vendored Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
set -e
UPSTREAM_VER="$1"
LIBLOKI_VER="${UPSTREAM_VER/[^0-9.]*/}"
if ! grep -q "^Package: libloki-core$LIBLOKI_VER\$" debian/control; then
echo -e "\nError: debian/control doesn't contain the correct libloki-core$LIBLOKI_VER version; you should run:\n\n ./debian/update-libloki-ver.sh\n"
exit 1
fi
for sublib in "" "-wallet"; do
if ! [ -f debian/libloki-core$sublib$LIBLOKI_VER ]; then
rm -f debian/libloki-core$sublib[0-9]*.install
sed -e "s/@LIBLOKI_VER@/$LIBLOKI_VER/" debian/libloki-core$sublib.install.in >debian/libloki-core$sublib$LIBLOKI_VER.install
fi
done

1
debian/libloki-core-dev.install vendored Normal file
View File

@ -0,0 +1 @@
/usr/include/loki-core

1
debian/libloki-core-wallet.install.in vendored Normal file
View File

@ -0,0 +1 @@
/usr/lib/*/loki-core/libwallet.so.@LIBLOKI_VER@

View File

@ -0,0 +1 @@
/usr/lib/*/loki-core/libwallet.so.3.0.5

1
debian/libloki-core.install.in vendored Normal file
View File

@ -0,0 +1 @@
/usr/lib/*/loki-core/lib[a-vx-z]*.so.@LIBLOKI_VER@

1
debian/libloki-core3.0.5.install vendored Normal file
View File

@ -0,0 +1 @@
/usr/lib/*/loki-core/lib[a-vx-z]*.so.3.0.5

1
debian/loki-blockchain-tools.install vendored Normal file
View File

@ -0,0 +1 @@
/usr/bin/loki-blockchain-*

1
debian/loki-wallet-cli.install vendored Normal file
View File

@ -0,0 +1 @@
/usr/bin/loki-wallet-cli

1
debian/loki-wallet-rpc.install vendored Normal file
View File

@ -0,0 +1 @@
/usr/bin/loki-wallet-rpc

1
debian/lokid.install vendored Normal file
View File

@ -0,0 +1 @@
/usr/bin/lokid

View File

@ -0,0 +1,33 @@
From: Jason Rhinelander <jason@imaginary.ca>
Date: Sun, 5 May 2019 01:30:56 -0300
Subject: Use system libminiupnpc
---
external/CMakeLists.txt | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index b907c1b..f7f38ad 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -37,19 +37,7 @@
find_package(Miniupnpc REQUIRED)
-message(STATUS "Using in-tree miniupnpc")
-add_subdirectory(miniupnp/miniupnpc)
-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
-if(MSVC)
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
-elseif(NOT MSVC)
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
-endif()
-if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE")
-endif()
-
-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
+set(UPNP_LIBRARIES "miniupnpc" PARENT_SCOPE)
find_package(Unbound)

2
debian/patches/series vendored Normal file
View File

@ -0,0 +1,2 @@
shared-lib-fixes
0002-Use-system-libminiupnpc.patch

253
debian/patches/shared-lib-fixes vendored Normal file
View File

@ -0,0 +1,253 @@
From: Jason Rhinelander <jason@imaginary.ca>
Date: Sun, 5 May 2019 01:27:17 -0300
Subject: Make loki build and install shared libs
Patch the loki cmake files to properly build and install shared libs.
---
cmake/Version.cmake | 9 +++++++++
contrib/epee/CMakeLists.txt | 5 +++++
contrib/epee/src/CMakeLists.txt | 14 ++++++++++++--
external/CMakeLists.txt | 6 ++++++
external/db_drivers/liblmdb/CMakeLists.txt | 12 ++++++++++--
external/easylogging++/CMakeLists.txt | 10 ++++++++--
src/CMakeLists.txt | 22 ++++++++++++++--------
src/blockchain_db/CMakeLists.txt | 2 +-
src/common/CMakeLists.txt | 2 +-
src/wallet/api/CMakeLists.txt | 11 +++++++----
10 files changed, 73 insertions(+), 20 deletions(-)
diff --git a/cmake/Version.cmake b/cmake/Version.cmake
index 3677e80..5c61005 100644
--- a/cmake/Version.cmake
+++ b/cmake/Version.cmake
@@ -50,3 +50,12 @@ else()
endif ()
add_custom_target(genversion ALL
DEPENDS "${CMAKE_BINARY_DIR}/version.cpp")
+
+
+file(STRINGS "${CMAKE_SOURCE_DIR}/src/version.cpp.in" loki_version_defines
+ REGEX "#define DEF_LOKI_VERSION_(MAJOR|MINOR|PATCH) ")
+foreach(ver ${loki_version_defines})
+ if(ver MATCHES "#define DEF_LOKI_VERSION_(MAJOR|MINOR|PATCH) +([0-9]+)$")
+ set(LOKI_VERSION_${CMAKE_MATCH_1} "${CMAKE_MATCH_2}" CACHE INTERNAL "")
+ endif()
+endforeach()
diff --git a/contrib/epee/CMakeLists.txt b/contrib/epee/CMakeLists.txt
index 035b24b..357984d 100644
--- a/contrib/epee/CMakeLists.txt
+++ b/contrib/epee/CMakeLists.txt
@@ -28,3 +28,8 @@
add_subdirectory(src)
+install(
+ DIRECTORY include/
+ DESTINATION include${LOKI_INSTALL_INCLUDEDIR_SUFFIX}
+ COMPONENT development
+ FILES_MATCHING PATTERN "*.h" PATTERN "*.inl")
diff --git a/contrib/epee/src/CMakeLists.txt b/contrib/epee/src/CMakeLists.txt
index cea50c9..fc80654 100644
--- a/contrib/epee/src/CMakeLists.txt
+++ b/contrib/epee/src/CMakeLists.txt
@@ -26,10 +26,20 @@
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-add_library(epee STATIC hex.cpp http_auth.cpp mlog.cpp net_utils_base.cpp string_tools.cpp wipeable_string.cpp memwipe.c
+add_library(epee hex.cpp http_auth.cpp mlog.cpp net_utils_base.cpp string_tools.cpp wipeable_string.cpp memwipe.c
connection_basic.cpp network_throttle.cpp network_throttle-detail.cpp mlocker.cpp buffer.cpp)
+install(TARGETS epee
+ ARCHIVE DESTINATION lib${LOKI_INSTALL_LIBDIR_SUFFIX}
+ LIBRARY DESTINATION lib${LOKI_INSTALL_LIBDIR_SUFFIX})
+set_target_properties(epee PROPERTIES
+ VERSION "${LOKI_VERSION_MAJOR}.${LOKI_VERSION_MINOR}.${LOKI_VERSION_PATCH}")
if (USE_READLINE AND GNU_READLINE_FOUND)
- add_library(epee_readline STATIC readline_buffer.cpp)
+ add_library(epee_readline readline_buffer.cpp)
+ install(TARGETS epee_readline
+ ARCHIVE DESTINATION lib${LOKI_INSTALL_LIBDIR_SUFFIX}
+ LIBRARY DESTINATION lib${LOKI_INSTALL_LIBDIR_SUFFIX})
+ set_target_properties(epee_readline PROPERTIES
+ VERSION "${LOKI_VERSION_MAJOR}.${LOKI_VERSION_MINOR}.${LOKI_VERSION_PATCH}")
endif()
if(HAVE_C11)
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index 7553f87..b907c1b 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -80,3 +80,9 @@ endif()
add_subdirectory(db_drivers)
add_subdirectory(easylogging++)
+
+install(
+ DIRECTORY boost
+ DESTINATION include${LOKI_INSTALL_INCLUDEDIR_SUFFIX}
+ COMPONENT development
+ FILES_MATCHING PATTERN "*.hpp")
diff --git a/external/db_drivers/liblmdb/CMakeLists.txt b/external/db_drivers/liblmdb/CMakeLists.txt
index 2e8822f..0f5b01c 100644
--- a/external/db_drivers/liblmdb/CMakeLists.txt
+++ b/external/db_drivers/liblmdb/CMakeLists.txt
@@ -52,14 +52,22 @@ if(${ARCH_WIDTH} EQUAL 32)
endif()
# GUI/libwallet install target
-if (BUILD_GUI_DEPS)
+if (BUILD_GUI_DEPS OR BUILD_SHARED_LIBS)
if(IOS)
set(lib_folder lib-${ARCH})
else()
- set(lib_folder lib)
+ set(lib_folder lib${LOKI_INSTALL_LIBDIR_SUFFIX})
endif()
install(TARGETS lmdb
ARCHIVE DESTINATION ${lib_folder}
LIBRARY DESTINATION ${lib_folder})
endif()
set_property(TARGET lmdb APPEND PROPERTY COMPILE_FLAGS "-fPIC")
+
+set_target_properties(lmdb PROPERTIES
+ VERSION "${LOKI_VERSION_MAJOR}.${LOKI_VERSION_MINOR}.${LOKI_VERSION_PATCH}")
+install(
+ DIRECTORY .
+ DESTINATION include${LOKI_INSTALL_INCLUDEDIR_SUFFIX}/liblmdb
+ COMPONENT development
+ FILES_MATCHING PATTERN "*.h")
diff --git a/external/easylogging++/CMakeLists.txt b/external/easylogging++/CMakeLists.txt
index 78795d5..4b3781b 100644
--- a/external/easylogging++/CMakeLists.txt
+++ b/external/easylogging++/CMakeLists.txt
@@ -44,11 +44,11 @@ target_link_libraries(easylogging
${CMAKE_THREAD_LIBS_INIT})
# GUI/libwallet install target
-if (BUILD_GUI_DEPS)
+if (BUILD_GUI_DEPS OR BUILD_SHARED_LIBS)
if(IOS)
set(lib_folder lib-${ARCH})
else()
- set(lib_folder lib)
+ set(lib_folder lib${LOKI_INSTALL_LIBDIR_SUFFIX})
endif()
install(TARGETS easylogging
ARCHIVE DESTINATION ${lib_folder}
@@ -56,3 +56,9 @@ if (BUILD_GUI_DEPS)
endif()
set_property(TARGET easylogging APPEND PROPERTY COMPILE_FLAGS "-fPIC")
+set_target_properties(easylogging PROPERTIES
+ VERSION "${LOKI_VERSION_MAJOR}.${LOKI_VERSION_MINOR}.${LOKI_VERSION_PATCH}")
+install(
+ FILES easylogging++.h ea_config.h
+ DESTINATION include${LOKI_INSTALL_INCLUDEDIR_SUFFIX}
+ COMPONENT development)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ada901e..4f1c821 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -41,13 +41,6 @@ function (loki_private_headers group)
${ARGN})
endfunction ()
-function (loki_install_headers subdir)
- install(
- FILES ${ARGN}
- DESTINATION "include/${subdir}"
- COMPONENT development)
-endfunction ()
-
function (enable_stack_trace target)
if(STACK_TRACE)
set_property(TARGET ${target}
@@ -83,7 +76,7 @@ function (loki_add_library name)
endfunction()
function (loki_add_library_with_deps)
- cmake_parse_arguments(LOKI_ADD_LIBRARY "" "NAME" "DEPENDS;SOURCES" ${ARGN})
+ cmake_parse_arguments(LOKI_ADD_LIBRARY "NO_INSTALL" "NAME" "DEPENDS;SOURCES" ${ARGN})
source_group("${LOKI_ADD_LIBRARY_NAME}" FILES ${LOKI_ADD_LIBRARY_SOURCES})
# Define a ("virtual") object library and an actual library that links those
@@ -99,6 +92,14 @@ function (loki_add_library_with_deps)
set_property(TARGET "${LOKI_ADD_LIBRARY_NAME}" PROPERTY FOLDER "libs")
target_compile_definitions(${objlib}
PRIVATE $<TARGET_PROPERTY:${LOKI_ADD_LIBRARY_NAME},INTERFACE_COMPILE_DEFINITIONS>)
+
+ set_target_properties("${LOKI_ADD_LIBRARY_NAME}" PROPERTIES
+ VERSION "${LOKI_VERSION_MAJOR}.${LOKI_VERSION_MINOR}.${LOKI_VERSION_PATCH}")
+ if(NOT LOKI_ADD_LIBRARY_NO_INSTALL)
+ install(TARGETS "${LOKI_ADD_LIBRARY_NAME}"
+ ARCHIVE DESTINATION lib${LOKI_INSTALL_LIBDIR_SUFFIX}
+ LIBRARY DESTINATION lib${LOKI_INSTALL_LIBDIR_SUFFIX})
+ endif()
endfunction ()
include(Version)
@@ -141,3 +142,8 @@ endif()
add_subdirectory(device)
add_subdirectory(device_trezor)
+
+install(
+ DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ DESTINATION "include${LOKI_INSTALL_INCLUDEDIR_SUFFIX}"
+ FILES_MATCHING PATTERN "*.h" PATTERN "*.inl")
diff --git a/src/blockchain_db/CMakeLists.txt b/src/blockchain_db/CMakeLists.txt
index 8663b63..ff1266d 100644
--- a/src/blockchain_db/CMakeLists.txt
+++ b/src/blockchain_db/CMakeLists.txt
@@ -55,7 +55,7 @@ if (BERKELEY_DB)
endif()
loki_private_headers(blockchain_db
- ${crypto_private_headers})
+ ${blockchain_db_private_headers})
loki_add_library(blockchain_db
${blockchain_db_sources}
${blockchain_db_headers}
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 5b14872..35c7d44 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -111,9 +111,9 @@ target_link_libraries(common
${Boost_THREAD_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_CHRONO_LIBRARY}
- PRIVATE
${OPENSSL_LIBRARIES}
${EPEE_READLINE}
+ PRIVATE
${EXTRA_LIBRARIES})
#monero_install_headers(common
diff --git a/src/wallet/api/CMakeLists.txt b/src/wallet/api/CMakeLists.txt
index 419c0f4..338819d 100644
--- a/src/wallet/api/CMakeLists.txt
+++ b/src/wallet/api/CMakeLists.txt
@@ -63,7 +63,8 @@ loki_private_headers(wallet_api
loki_add_library(wallet_api
${wallet_api_sources}
${wallet_api_headers}
- ${wallet_api_private_headers})
+ ${wallet_api_private_headers}
+ NO_INSTALL)
target_link_libraries(wallet_api
PUBLIC
wallet
@@ -86,8 +87,10 @@ set_property(TARGET obj_wallet_api PROPERTY EXCLUDE_FROM_ALL TRUE)
if(IOS)
set(lib_folder lib-${ARCH})
else()
- set(lib_folder lib)
+ set(lib_folder lib${LOKI_INSTALL_LIBDIR_SUFFIX})
endif()
-install(FILES ${wallet_api_headers}
- DESTINATION include/wallet/api)
+install(TARGETS wallet_api
+ ARCHIVE DESTINATION ${lib_folder}
+ LIBRARY DESTINATION ${lib_folder}
+ EXCLUDE_FROM_ALL)

23
debian/rules vendored Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1
include /usr/share/dpkg/pkg-info.mk
%:
dh $@ --buildsystem=cmake
override_dh_auto_configure:
debian/gen-libloki-install.sh $(DEB_VERSION_UPSTREAM)
dh_auto_configure -- -DCMAKE_BUILD_TYPE=Release -DSTATIC=OFF -DUSE_LTO=ON -DBUILD_SHARED_LIBS=ON \
-DENABLE_SYSLOG=ON -DARCH=westmere -DCMAKE_CXX_FLAGS="-mtune=haswell" -DCMAKE_C_FLAGS="-mtune=haswell" \
-DLOKI_INSTALL_LIBDIR_SUFFIX=/$(DEB_HOST_MULTIARCH)/loki-core -DLOKI_INSTALL_INCLUDEDIR_SUFFIX=/loki-core \
-DCMAKE_INSTALL_RPATH=/usr/lib/$(DEB_HOST_MULTIARCH)/loki-core
override_dh_shlibdeps:
dh_shlibdeps -l/usr/lib/$(DEB_HOST_MULTIARCH)/loki-core
override_dh_strip:
dh_strip --no-ddebs

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

1
debian/source/options vendored Normal file
View File

@ -0,0 +1 @@
diff-ignore=^build|(^|/)\.git

16
debian/update-libloki-ver.sh vendored Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
set -e
if ! [ -f debian/changelog ] || ! [ -f debian/control.in ]; then
if [ -f changelog ] && [ -f control.in ]; then
cd ..
else
echo "Error: must run from loki or loki/debian directory" >&2
exit 1
fi
fi
LOKI_VERSION=$(head -1 debian/changelog | sed -e 's/.*(//; s/[^0-9.].*//')
sed -e "s/@LIBLOKI_VERSION@/$LOKI_VERSION/g" debian/control.in >debian/control