From d1bcbe63119c7f7eb2e1d821ae709e75d5534529 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 22 Oct 2023 12:00:23 -0400 Subject: [PATCH] Import opendht_3.0.0-4.debian.tar.xz [dgit import tarball opendht 3.0.0-4 opendht_3.0.0-4.debian.tar.xz] --- changelog | 452 ++++++++++++++++++ control | 244 ++++++++++ copyright | 103 ++++ dhtnode-http.conf | 1 + dhtnode.conf | 1 + dhtnode.dirs | 1 + dhtnode.install | 3 + dhtnode.manpages | 1 + dhtnode.postinst | 52 ++ dhtnode.postrm | 44 ++ dhtnode.service | 43 ++ gbp.conf | 14 + libopendht-c-dev.install | 3 + libopendht-c3.install | 1 + libopendht-c3.symbols | 86 ++++ libopendht-dev.install | 4 + libopendht3.install | 1 + opendht-tools.dhtnode-http.service | 43 ++ opendht-tools.install | 6 + patches/1000-cmake-fix-no-atomic-64.patch | 33 ++ .../2000-cmake-python-no-build-install.patch | 36 ++ patches/2010-install-dhtnode-http.patch | 14 + patches/README | 3 + patches/series | 3 + python3-opendht.install | 1 + rules | 57 +++ source/format | 1 + tests/control | 2 + tests/test-compile-cpp | 54 +++ tests/test-run-python | 14 + upstream/metadata | 5 + watch | 6 + 32 files changed, 1332 insertions(+) create mode 100644 changelog create mode 100644 control create mode 100644 copyright create mode 100644 dhtnode-http.conf create mode 100644 dhtnode.conf create mode 100644 dhtnode.dirs create mode 100755 dhtnode.install create mode 100644 dhtnode.manpages create mode 100644 dhtnode.postinst create mode 100644 dhtnode.postrm create mode 100644 dhtnode.service create mode 100644 gbp.conf create mode 100644 libopendht-c-dev.install create mode 100644 libopendht-c3.install create mode 100644 libopendht-c3.symbols create mode 100644 libopendht-dev.install create mode 100644 libopendht3.install create mode 100644 opendht-tools.dhtnode-http.service create mode 100755 opendht-tools.install create mode 100644 patches/1000-cmake-fix-no-atomic-64.patch create mode 100644 patches/2000-cmake-python-no-build-install.patch create mode 100644 patches/2010-install-dhtnode-http.patch create mode 100644 patches/README create mode 100644 patches/series create mode 100644 python3-opendht.install create mode 100755 rules create mode 100644 source/format create mode 100644 tests/control create mode 100755 tests/test-compile-cpp create mode 100755 tests/test-run-python create mode 100644 upstream/metadata create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 0000000..d089b8a --- /dev/null +++ b/changelog @@ -0,0 +1,452 @@ +opendht (3.0.0-4) unstable; urgency=medium + + * Add opendht-tools binary package, providing binaries for the + various OpenDHT tools developed as part of the upstream code-base. + (Closes: #866075, #1054359) + + -- Amin Bandali Sun, 22 Oct 2023 12:00:23 -0400 + +opendht (3.0.0-3) unstable; urgency=medium + + * debian/copyright: Fix Upstream-Name and update Upstream-Contact + * debian/copyright: Add myself to copyright holders for debian/* + * debian/control: Bump debhelper-compat to 13 + * debian/copyright: Update Savoir-faire Linux Inc. copyright years + * debian/dhtnode.conf: Update bootstrap node address + + -- Amin Bandali Sat, 21 Oct 2023 20:25:23 -0400 + +opendht (3.0.0-2) unstable; urgency=medium + + [ Graham Inggs ] + * Mark some symbols optional to avoid FTBFS with LTO enabled + + -- Amin Bandali Sat, 30 Sep 2023 01:04:05 -0400 + +opendht (3.0.0-1) unstable; urgency=medium + + * New upstream release + * Rename libopendht2 to libopendht3 and libopendht-c2 to + libopendht-c3 due to SONAME bump (Closes: #1051972) + - debian/libopendht-c3.install + - debian/libopendht-c3.symbols + - debian/libopendht3.install + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Sun, 24 Sep 2023 20:01:05 -0400 + +opendht (2.6.0.4-1) unstable; urgency=medium + + * New upstream release + * Disable upstream unit tests that require network access + - debian/rules + + -- Amin Bandali Mon, 11 Sep 2023 16:39:37 -0400 + +opendht (2.6.0.1-1) unstable; urgency=medium + + * New upstream release + * Drop upstreamed patch + - debian/patches/1010-man-page-formatting.patch + + -- Amin Bandali Sun, 10 Sep 2023 14:58:23 -0400 + +opendht (2.5.5-1) unstable; urgency=medium + + * New upstream release + * Add new libcppunit-dev Build-Depends to debian/control and drop + removed CMake options from debian/rules + * debian/patches/1010-man-page-formatting.patch: forward upstream. + * debian/patches/2000-cmake-python-no-build-install.patch: mark as + 'Forwarded: not-needed'. + + -- Amin Bandali Wed, 16 Aug 2023 22:31:43 -0400 + +opendht (2.4.12-7) unstable; urgency=medium + + [ Petter Reinholdtsen ] + * Add debian/patches/1010-man-page-formatting.patch by Jakob Haufe + to address lintian + warning: macro 'mF' not defined [usr/share/man/man1/dhtnode.1.gz:1]. + * Sponsor upload to unstable. + + -- Amin Bandali Wed, 22 Feb 2023 15:20:06 -0500 + +opendht (2.4.12-6) experimental; urgency=medium + + [ Petter Reinholdtsen ] + * debian/libopendht-c2.symbols: Exclude symbols on hurd-i386 and sh4 + too. + + [ Amin Bandali ] + * debian/control: Taking over the maintenance of the package; many + thanks, Alexandre! + * debian/libopendht-c2.symbols: Add three symbols on armel. + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Mon, 20 Feb 2023 23:25:50 -0500 + +opendht (2.4.12-5) unstable; urgency=medium + + [ Amin Bandali ] + * debian/libopendht-c2.symbols: Add exclusions for various symbols + across most supported architectures per buildd.debian.org logs. + + [ Petter Reinholdtsen ] + * debian/rules: Use DEB_BUILD_GNU_TYPE for locating build directory. + * Sponsor upload to unstable. + + -- Amin Bandali Tue, 07 Feb 2023 16:42:22 -0500 + +opendht (2.4.12-4) unstable; urgency=medium + + * debian/control: Switch 'python3-all' to 'python3-all-dev:any' to + hopefully fix builds broken with 'fatal error: Python.h: No such + file or directory'. Also tweak a few descriptions. + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Tue, 07 Feb 2023 02:21:56 -0500 + +opendht (2.4.12-3) unstable; urgency=medium + + * Fix build more generally on architectures like ARM EABI (armel) + and little-endian MIPS (mipsel) that don't have native 64-bit + atomic operations by linking against libatomic. (Closes: #1030615) + * Address several lintian warnings: + - Drop usr/include/opendht/opendht_c.h from libopendht-dev; + it already belongs in libopendht-c-dev. (Closes: #1030696) + - debian/control: Add 'Multi-Arch: same' for libopendht2 and + libopendht-c2. + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Tue, 07 Feb 2023 01:27:18 -0500 + +opendht (2.4.12-2) experimental; urgency=medium + + * Switch from static to shared library. Upstream has declared their + API and ABI stable, therefore we now build and provide a shared + library rather than a static one. + * Add python3-opendht providing OpenDHT Python 3 bindings + (Closes: #850051). + * Add simple debian/tests/test-run-python to validate Python 3 + bindings. + * Add OpenDHT C shared library and bindings. + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Sat, 04 Feb 2023 01:07:30 -0500 + +opendht (2.4.12-1.2) unstable; urgency=medium + + * Fix build more generally on architectures like ARM EABI (armel) + and little-endian MIPS (mipsel) that don't have native 64-bit + atomic operations by linking against libatomic. (Closes: #1030615) + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Sun, 05 Feb 2023 13:10:19 -0500 + +opendht (2.4.12-1.1) unstable; urgency=medium + + * Attempt to fix build on armel. + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Sat, 04 Feb 2023 13:02:57 -0500 + +opendht (2.4.12-1) unstable; urgency=medium + + * New upstream version 2.4.12. + * debian/copyright: Remove vestigial 'Files-Excluded: src/argon2/*' + and update copyright years. + * Update package descriptions per upstream. + + * Upload sponsored by Petter Reinholdtsen. + + -- Amin Bandali Sat, 04 Feb 2023 01:05:20 -0500 + +opendht (2.4.10-1) unstable; urgency=medium + + * Collab-maint upload with maintainer approval. + + * New upstream version 2.4.10 (Closes: 1016489). + - Refreshed patches to remove fuzzies. + - Updated package description to relect new C++17 requirement. + - Dropped call to dh_dwz during build as it fail on + debian/dhtnode/usr/bin/dhtnode. + * Added patch header in pkgconfig-extras.patch. + * Switched patches to 0000/1000/2000 naming convention. + * Added build-essential and pkg-config as autopkgtest dependencies. + * Changed dependency for libmsgpack-dev to prefer new libmsgpack-cxx-dev + (Closes: #1019113). + + -- Petter Reinholdtsen Tue, 27 Dec 2022 10:03:41 +0100 + +opendht (2.3.1-3) unstable; urgency=medium + + * Collab-maint upload with maintainer approval. + + * Updated standards version from 4.5.0 to 4.6.2. No changes needed. + * Switched build dependency libncurses5-dev to libncurses-dev. + * Corrected notation for new uploader. + * Added pkgconfig-extras.patch with libraries needed to link + simple C++ client. + * Added simple autopkgtest C++ build test. + + -- Petter Reinholdtsen Mon, 26 Dec 2022 07:55:50 +0100 + +opendht (2.3.1-2) unstable; urgency=medium + + * Collab-maint upload with maintainer approval. + + * Acknowledge NMU (Closes: #1026871). + * Added Amin Bandali as uploader. + + -- Petter Reinholdtsen Sun, 25 Dec 2022 06:42:25 +0100 + +opendht (2.3.1-1.1) unstable; urgency=medium + + * Non-maintainer upload using salsa Debian team git repo. + + [ Amin Bandali ] + * d/watch: Tweak opts to use newly-suggested format in the current + uscan(1) manual for GitHub repositories, helping correctly detect + new releases again (partly fixes #1016489). + + [ Federico Ceratto ] + * Configure service sandbox (Closes: #1007163). + * Bump up Standards-Version from 4.0.0 to 4.5.0. + * Switch to debhelper-compat 12. + + [ Petter Reinholdtsen ] + * Switched build and binary dependency for libargon2-0-dev to libargon2-dev + (Closes: #1005699). + + -- Petter Reinholdtsen Thu, 22 Dec 2022 22:33:19 +0100 + +opendht (2.3.1-1) unstable; urgency=medium + + [ Amin Bandali ] + * d/watch: Update to version=4 and use newly-suggested opts format + in the current uscan(1) manual for GitHub repositories. This is + motivated in part by a change in devscripts-2.21.5 that makes + uscan die when filenamemangle fails. + + [ Alexandre Viau ] + * New upstream version. + + -- Alexandre Viau Sat, 20 Nov 2021 23:59:14 -0500 + +opendht (2.1.10-1) unstable; urgency=medium + + * New upstream version. (Closes: 978562) + + -- Alexandre Viau Fri, 01 Jan 2021 14:02:19 -0500 + +opendht (2.1.9.5-1) unstable; urgency=medium + + [ Alexandre Viau ] + * New upstream version. + + [ Amin Bandali ] + * Bump debhelper compat level up to 10. + + -- Alexandre Viau Tue, 08 Dec 2020 17:56:05 -0500 + +opendht (2.1.6-1) unstable; urgency=medium + + [ Amin Bandali ] + * New upstream version. + * Enable OpenDHT proxy features. + + [ Alexandre Viau ] + * Rules-Requires-Root: no. + + -- Alexandre Viau Sat, 10 Oct 2020 16:35:04 -0400 + +opendht (2.1.4-1) unstable; urgency=medium + + * New upstream version. + * dhtnode.conf: remove -v. (Closes: #959226) + + -- Alexandre Viau Sat, 15 Aug 2020 12:42:20 -0400 + +opendht (2.1.1-1) unstable; urgency=medium + + * New upstream version. + * Depend on librestinio-dev, libasio-dev. + * Refresh patches. + + -- Alexandre Viau Sat, 16 May 2020 13:08:04 -0400 + +opendht (1.8.1-1) unstable; urgency=medium + + * New upstream version. + + -- Alexandre Viau Sat, 05 Jan 2019 21:57:00 -0500 + +opendht (1.8.0-1) unstable; urgency=medium + + * New upstream version. + + -- Alexandre Viau Mon, 10 Dec 2018 20:15:28 -0500 + +opendht (1.7.4-1) unstable; urgency=medium + + * New upstream version. + + -- Alexandre Viau Sat, 18 Aug 2018 15:51:19 -0400 + +opendht (1.7.2-1) unstable; urgency=medium + + * New upstream version. + * Fix maintainer-script-should-not-use-recursive-chown-or-chmod. + + -- Alexandre Viau Tue, 26 Jun 2018 18:08:36 -0400 + +opendht (1.6.0-1) unstable; urgency=medium + + * d/watch: exclude release candidates. + * d/copyright: fix insecure-copyright-format-uri. + + -- Alexandre Viau Tue, 27 Feb 2018 06:11:11 +0000 + +opendht (1.5.0-3) unstable; urgency=medium + + * Build with msgpack-c v2 API. + + -- Alexandre Viau Thu, 01 Feb 2018 17:47:24 +0000 + +opendht (1.5.0-2) unstable; urgency=medium + + * Move to salsa.debian.org. + + -- Alexandre Viau Thu, 28 Dec 2017 17:09:51 -0500 + +opendht (1.5.0-1) unstable; urgency=medium + + * New upstream snapshot. + + -- Alexandre Viau Thu, 23 Nov 2017 19:44:27 -0500 + +opendht (1.4.1-1) unstable; urgency=medium + + * New upstream snapshot. + * Use msgpack v1 API. + + -- Alexandre Viau Wed, 15 Nov 2017 20:54:42 -0500 + +opendht (1.3.6-1) unstable; urgency=medium + + * New upstream snapshot. + + -- Alexandre Viau Fri, 25 Aug 2017 16:44:04 -0400 + +opendht (1.3.5-1) unstable; urgency=medium + + * New upstream snapshot. + + -- Alexandre Viau Wed, 02 Aug 2017 15:41:36 -0400 + +opendht (1.3.4-3) unstable; urgency=medium + + * Remove unneeded multiarch.patch. + + -- Alexandre Viau Sun, 02 Jul 2017 14:35:50 -0400 + +opendht (1.3.4-2) unstable; urgency=medium + + * dhtnode.service: restart on-failure + + -- Alexandre Viau Sat, 01 Jul 2017 15:20:42 -0400 + +opendht (1.3.4-1) unstable; urgency=medium + + * New upstream snapshot. + * dhtnode: include systemd service. + + -- Alexandre Viau Sat, 01 Jul 2017 14:51:02 -0400 + +opendht (1.3.3-2) unstable; urgency=medium + + * Install CMakeFiles. (Closes: #866586) + + -- Alexandre Viau Fri, 30 Jun 2017 16:03:24 -0400 + +opendht (1.3.3-1) unstable; urgency=medium + + * New upstream snapshot. (Closes: #866078) + * Refresh patches. + * Remove use-debian-argon2.patch. + * Remove python bindings mention. + * Bump Standards-Version to 4.0.0. + * Build-Depend on pkg-config. + + -- Alexandre Viau Tue, 27 Jun 2017 18:42:38 -0400 + +opendht (1.2.1~dfsg1-8) unstable; urgency=medium + + * dev package: Add library dependencies (Closes: #849561). + + -- Alexandre Viau Wed, 28 Dec 2016 17:11:11 -0500 + +opendht (1.2.1~dfsg1-7) unstable; urgency=medium + + [ Alexandre Viau ] + * Import Gianfranco's work (Closes: #843788). + + [ Gianfranco Costamagna ] + * Multiarchify the package. + + -- Alexandre Viau Wed, 09 Nov 2016 11:28:54 -0500 + +opendht (1.2.1~dfsg1-6) unstable; urgency=medium + + * libopendht-dev now breaks+replaces libopendht1 (Closes: #843680) + + -- Alexandre Viau Tue, 08 Nov 2016 13:13:44 -0500 + +opendht (1.2.1~dfsg1-5) unstable; urgency=medium + + * Don't ship libopendht1. Debian policy allows for shipping + only static libraries since OpenDHT's API is not stable + enough. + + -- Alexandre Viau Mon, 07 Nov 2016 13:14:31 -0500 + +opendht (1.2.1~dfsg1-4) unstable; urgency=medium + + * Add libopendht.shlibs. + + -- Alexandre Viau Sat, 05 Nov 2016 01:00:46 -0400 + +opendht (1.2.1~dfsg1-3) unstable; urgency=medium + + * Remove pkg-kde-tools dependency. + + -- Alexandre Viau Fri, 04 Nov 2016 16:10:56 -0400 + +opendht (1.2.1~dfsg1-2) unstable; urgency=medium + + * Link against argon2. + + -- Alexandre Viau Fri, 04 Nov 2016 03:29:16 -0400 + +opendht (1.2.1~dfsg1-1) unstable; urgency=medium + + * Remove symbols file. + * Refresh use-debian-argon2.patch. + * Remove build_versioned_shared_library.patch. + * Use manpage from source. + + -- Alexandre Viau Wed, 29 Jun 2016 15:52:22 +0200 + +opendht (0.6.1~dfsg1-1) experimental; urgency=medium + + * Initial release. (Closes: #809362) + + -- Alexandre Viau Mon, 27 Jun 2016 13:09:11 +0200 diff --git a/control b/control new file mode 100644 index 0000000..9029d42 --- /dev/null +++ b/control @@ -0,0 +1,244 @@ +Source: opendht +Section: libs +Priority: optional +Maintainer: Amin Bandali +Build-Depends: debhelper-compat (= 13), + cmake, + dh-exec, + pkg-config, + libcppunit-dev, + libgnutls28-dev, + libmsgpack-cxx-dev | libmsgpack-dev (>= 1.2), + libmsgpack-cxx-dev | libmsgpack-dev (<= 4.0.0), + libreadline6-dev, + libncurses-dev, + libargon2-dev, + librestinio-dev, + libasio-dev, + libjsoncpp-dev, + libhttp-parser-dev, + libssl-dev, + libfmt-dev, + nettle-dev, +# Python 3 bindings + dh-python, + python3-all-dev:any, + python3-setuptools, + cython3 +Standards-Version: 4.6.2 +Homepage: https://github.com/savoirfairelinux/opendht +Vcs-Git: https://salsa.debian.org/debian/opendht.git +Vcs-Browser: https://salsa.debian.org/debian/opendht +Rules-Requires-Root: no + +Package: libopendht-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Depends: ${misc:Depends}, + libopendht3 (=${binary:Version}), + libgnutls28-dev, + libmsgpack-cxx-dev | libmsgpack-dev (>= 1.2), + libmsgpack-cxx-dev | libmsgpack-dev (<= 4.0.0), + libreadline6-dev, + libncurses-dev, + libargon2-dev, + librestinio-dev, + libasio-dev, + libjsoncpp-dev, + libhttp-parser-dev, + libssl-dev, + libfmt-dev, + nettle-dev +Description: Development files for the libopendht library + OpenDHT is a lightweight C++17 Distributed Hash Table implementation. + . + OpenDHT provides an easy to use distributed in-memory data store. + Every node in the network can read and write values to the store. + Values are distributed over the network, with redundancy. + . + Overview of features: + * Lightweight and scalable, designed for large networks and small + devices + * High resilience to network disruption + * Public key cryptography layer providing optional data signature + and encryption (using GnuTLS) + * IPv4 and IPv6 support + * Clean and powerful C++17 map API + * Bindings for C and Python 3 + * REST API with optional HTTP client+server with push notification + support + . + This package contains the C++ library headers and other + development files. + +Package: libopendht3 +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, + ${shlibs:Depends} +Description: Lightweight C++17 distributed hash table implementation + OpenDHT is a lightweight C++17 Distributed Hash Table implementation. + . + OpenDHT provides an easy to use distributed in-memory data store. + Every node in the network can read and write values to the store. + Values are distributed over the network, with redundancy. + . + Overview of features: + * Lightweight and scalable, designed for large networks and small + devices + * High resilience to network disruption + * Public key cryptography layer providing optional data signature + and encryption (using GnuTLS) + * IPv4 and IPv6 support + * Clean and powerful C++17 map API + * Bindings for C and Python 3 + * REST API with optional HTTP client+server with push notification + support + . + This package contains the C++ shared library. + +Package: libopendht-c-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Depends: ${misc:Depends}, + libopendht-c3 (=${binary:Version}), + libopendht-dev, + libgnutls28-dev, + libargon2-dev +Description: Development files for the libopendht-c library + OpenDHT is a lightweight C++17 Distributed Hash Table implementation. + . + OpenDHT provides an easy to use distributed in-memory data store. + Every node in the network can read and write values to the store. + Values are distributed over the network, with redundancy. + . + Overview of features: + * Lightweight and scalable, designed for large networks and small + devices + * High resilience to network disruption + * Public key cryptography layer providing optional data signature + and encryption (using GnuTLS) + * IPv4 and IPv6 support + * Clean and powerful C++17 map API + * Bindings for C and Python 3 + * REST API with optional HTTP client+server with push notification + support + . + This package contains the C bindings library header and other + development files. + +Package: libopendht-c3 +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, + ${shlibs:Depends}, + libopendht3 (=${binary:Version}) +Description: Lightweight C++17 distributed hash table implementation - C wrapper + OpenDHT is a lightweight C++17 Distributed Hash Table implementation. + . + OpenDHT provides an easy to use distributed in-memory data store. + Every node in the network can read and write values to the store. + Values are distributed over the network, with redundancy. + . + Overview of features: + * Lightweight and scalable, designed for large networks and small + devices + * High resilience to network disruption + * Public key cryptography layer providing optional data signature + and encryption (using GnuTLS) + * IPv4 and IPv6 support + * Clean and powerful C++17 map API + * Bindings for C and Python 3 + * REST API with optional HTTP client+server with push notification + support + . + This package contains the C shared library. + +Package: python3-opendht +Architecture: any +Depends: ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends}, + libopendht3 (=${binary:Version}) +Description: Python 3 bindings for libopendht C++ library + OpenDHT is a lightweight C++17 Distributed Hash Table implementation. + . + OpenDHT provides an easy to use distributed in-memory data store. + Every node in the network can read and write values to the store. + Values are distributed over the network, with redundancy. + . + Overview of features: + * Lightweight and scalable, designed for large networks and small + devices + * High resilience to network disruption + * Public key cryptography layer providing optional data signature + and encryption (using GnuTLS) + * IPv4 and IPv6 support + * Clean and powerful C++17 map API + * Bindings for C and Python 3 + * REST API with optional HTTP client+server with push notification + support + . + This package contains the Python 3 bindings. + +Package: dhtnode +Architecture: any +Section: net +Depends: ${misc:Depends}, + ${shlibs:Depends}, + libopendht3 (=${binary:Version}), + adduser +Description: OpenDHT node binary + OpenDHT is a lightweight C++17 Distributed Hash Table implementation. + . + OpenDHT provides an easy to use distributed in-memory data store. + Every node in the network can read and write values to the store. + Values are distributed over the network, with redundancy. + . + Overview of features: + * Lightweight and scalable, designed for large networks and small + devices + * High resilience to network disruption + * Public key cryptography layer providing optional data signature + and encryption (using GnuTLS) + * IPv4 and IPv6 support + * Clean and powerful C++17 map API + * Bindings for C and Python 3 + * REST API with optional HTTP client+server with push notification + support + . + This package contains the dhtnode binary. + +Package: opendht-tools +Architecture: any +Section: net +Depends: ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends}, + dhtnode (=${binary:Version}), + libopendht3 (=${binary:Version}), + python3-opendht (=${binary:Version}), + python3-twisted +Description: Collection of OpenDHT utility tools + OpenDHT is a lightweight C++17 Distributed Hash Table implementation. + . + OpenDHT provides an easy to use distributed in-memory data store. + Every node in the network can read and write values to the store. + Values are distributed over the network, with redundancy. + . + Overview of features: + * Lightweight and scalable, designed for large networks and small + devices + * High resilience to network disruption + * Public key cryptography layer providing optional data signature + and encryption (using GnuTLS) + * IPv4 and IPv6 support + * Clean and powerful C++17 map API + * Bindings for C and Python 3 + * REST API with optional HTTP client+server with push notification + support + . + This package contains the binaries for the various tools developed as + part of the OpenDHT code-base. diff --git a/copyright b/copyright new file mode 100644 index 0000000..8316f2e --- /dev/null +++ b/copyright @@ -0,0 +1,103 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: opendht +Upstream-Contact: https://web.libera.chat/#opendht + Adrien Béraud + Sébastien Blin + Amin Bandali +Source: https://github.com/savoirfairelinux/opendht + +Files: * +Copyright: 2014-2023 Savoir-faire Linux Inc. +License: GPL-3+ +Comment: The 'or later' clause was recently added by upstream + in the README to clarify the status of the licensing. + - https://github.com/savoirfairelinux/opendht/commit/041a9e0e7f3aea399a17e014b6022eb01880a4a9 + It will be available in the README of the next release. Note that + the headers already mention "or later". + +Files: debian/* +Copyright: 2016 Alexandre Viau + 2020-2023 Amin Bandali +License: Expat + +Files: include/opendht/securedht.h +Copyright: 2014-2023 Savoir-faire Linux Inc. +License: GPL-3-with-openssl-exception + 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 3 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. + . + Additional permission under GNU GPL version 3 section 7: + . + If you modify this program, or any covered work, by linking or + combining it with the OpenSSL project's OpenSSL library (or a + modified version of that library), containing parts covered by the + terms of the OpenSSL or SSLeay licenses, Savoir-faire Linux Inc. + grants you additional permission to convey the resulting work. + Corresponding Source for a non-source form of such a combination + shall include the source code for the parts of OpenSSL used as well + as that of the covered work. + +Files: include/opendht/dht.h + src/dht.cpp +Copyright: 2009-2014 Juliusz Chroboczek + 2014-2023 Savoir-faire Linux Inc. +License: Expat + +Files: m4/ax_cxx_compile_stdcxx.m4 +Copyright: 2008 Benjamin Kosnik + 2012 Zack Weinberg + 2013 Roy Stogner + 2014-2015 Google Inc. + 2015 Paul Norman + 2015 Moritz Klammler + 2016-2023 Savoir-faire Linux Inc. +License: GNUAllPermissive + +License: GPL-3+ + 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 3 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. + ․ + The complete text of the GNU General Public License version 3 + can be found in `/usr/share/common-licenses/GPL-3`. + +License: Expat + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License: GNUAllPermissive + Copying and distribution of this file, with or without modification, are + permitted in any medium without royalty provided the copyright notice + and this notice are preserved. This file is offered as-is, without any + warranty. diff --git a/dhtnode-http.conf b/dhtnode-http.conf new file mode 100644 index 0000000..9f7bfea --- /dev/null +++ b/dhtnode-http.conf @@ -0,0 +1 @@ +DHT_HTTP_ARGS=-b bootstrap.jami.net:4222 -p 4222 -hp 8080 diff --git a/dhtnode.conf b/dhtnode.conf new file mode 100644 index 0000000..5136899 --- /dev/null +++ b/dhtnode.conf @@ -0,0 +1 @@ +DHT_ARGS=-b bootstrap.jami.net -p 4222 diff --git a/dhtnode.dirs b/dhtnode.dirs new file mode 100644 index 0000000..2e5ad4c --- /dev/null +++ b/dhtnode.dirs @@ -0,0 +1 @@ +var/lib/opendht diff --git a/dhtnode.install b/dhtnode.install new file mode 100755 index 0000000..036574c --- /dev/null +++ b/dhtnode.install @@ -0,0 +1,3 @@ +#! /usr/bin/dh-exec +usr/bin/dhtnode +debian/dhtnode.conf => etc/default/dhtnode diff --git a/dhtnode.manpages b/dhtnode.manpages new file mode 100644 index 0000000..f2e08c4 --- /dev/null +++ b/dhtnode.manpages @@ -0,0 +1 @@ +doc/dhtnode.1 diff --git a/dhtnode.postinst b/dhtnode.postinst new file mode 100644 index 0000000..bd722b2 --- /dev/null +++ b/dhtnode.postinst @@ -0,0 +1,52 @@ +#!/bin/sh +# postinst script for dhtnode +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + # create an opendht group and user + adduser --system \ + --home /var/lib/opendht \ + --disabled-password \ + --disabled-login \ + --no-create-home \ + --quiet \ + --group opendht + + if [ -d /var/lib/opendht ]; then + chown opendht:opendht /var/lib/opendht + fi + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/dhtnode.postrm b/dhtnode.postrm new file mode 100644 index 0000000..8e103b9 --- /dev/null +++ b/dhtnode.postrm @@ -0,0 +1,44 @@ +#!/bin/sh +# postrm script for dhtnode +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + # Stuff we always do + # ... + + # Only remove /var/lib/opendht on purge + if [ "${1}" = "purge" ] ; then + rm -rf /var/lib/opendht + fi + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/dhtnode.service b/dhtnode.service new file mode 100644 index 0000000..90198f3 --- /dev/null +++ b/dhtnode.service @@ -0,0 +1,43 @@ +[Unit] +Description=OpenDHT standalone node +Documentation=man:dhtnode(1) +After=network.target +ConditionPathExists=/etc/default/dhtnode + +[Service] +Type=simple +User=opendht +Group=opendht +EnvironmentFile=/etc/default/dhtnode +ExecStart=/usr/bin/dhtnode -s $DHT_ARGS +Restart=on-failure +RestartSec=2s +LimitNOFILE=65536 +WorkingDirectory=/tmp + +# Hardening +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +LockPersonality=yes +NoNewPrivileges=yes +PrivateDevices=yes +PrivateTmp=yes +PrivateUsers=yes +ProtectClock=yes +ProtectControlGroups=yes +ProtectHome=yes +ProtectHostname=yes +ProtectKernelLogs=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectSystem=strict +ReadOnlyDirectories=/ +ReadWriteDirectories=-/proc/self +ReadWriteDirectories=-/var/run +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +RestrictNamespaces=yes +RestrictRealtime=yes +SystemCallArchitectures=native +SystemCallFilter=@system-service + +[Install] +WantedBy=multi-user.target diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000..a7a2941 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,14 @@ +[DEFAULT] +pristine-tar = True +debian-branch = debian/latest +upstream-branch = upstream/latest + +[buildpackage] +sign-tags = True + +[dch] +multimaint-merge = True + +[import-orig] +postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit +upstream-vcs-tag = v%(version%~%.)s diff --git a/libopendht-c-dev.install b/libopendht-c-dev.install new file mode 100644 index 0000000..90f4f77 --- /dev/null +++ b/libopendht-c-dev.install @@ -0,0 +1,3 @@ +usr/include/opendht/opendht_c.h +usr/lib/*/libopendht-c.so +usr/lib/*/pkgconfig/opendht-c.pc diff --git a/libopendht-c3.install b/libopendht-c3.install new file mode 100644 index 0000000..05a6b79 --- /dev/null +++ b/libopendht-c3.install @@ -0,0 +1 @@ +usr/lib/*/libopendht-c.so.* diff --git a/libopendht-c3.symbols b/libopendht-c3.symbols new file mode 100644 index 0000000..be2a733 --- /dev/null +++ b/libopendht-c3.symbols @@ -0,0 +1,86 @@ +libopendht-c.so.3 libopendht-c3 #MINVER# + (optional=lto)_ZNSt12_Vector_baseIhSaIhEED1Ev@Base 2.4.12 + (optional=lto)_ZNSt12_Vector_baseIhSaIhEED2Ev@Base 2.4.12 + (optional=lto)_ZNSt14_Function_baseD1Ev@Base 2.4.12 + (optional=lto)_ZNSt14_Function_baseD2Ev@Base 2.4.12 + (arch=armel riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE10_M_releaseEv@Base 2.4.12 + (optional=lto|arch=!armel !riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv@Base 2.4.12 + (optional=lto|arch=!armel !armhf !i386 !mipsel !hppa !m68k !powerpc !riscv64 !sparc64 !x32)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv@Base 2.4.12 + (optional=lto)_ZNSt6vectorIhSaIhEED1Ev@Base 2.5.0 + (optional=lto)_ZNSt6vectorIhSaIhEED2Ev@Base 2.5.0 + (arch=armel riscv64)_ZTIN9__gnu_cxx7__mutexE@Base 2.4.12 + (arch=armel riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 2.4.12 + (arch=!armel !riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 2.4.12 + (arch=armel riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 2.4.12 + (arch=!armel !riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 2.4.12 + (arch=armel armhf)_ZTISt19_Sp_make_shared_tag@Base 2.4.12 + (arch=armel riscv64)_ZTSN9__gnu_cxx7__mutexE@Base 2.4.12 + (arch=armel riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 2.4.12 + (arch=!armel !riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 2.4.12 + (arch=armel riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 2.4.12 + (arch=!armel !riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 2.4.12 + _ZTSSt19_Sp_make_shared_tag@Base 2.4.12 + _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag@Base 2.4.12 + dht_blob_delete@Base 2.4.12 + dht_blob_get_data@Base 2.4.12 + dht_certificate_delete@Base 2.4.12 + dht_certificate_get_id@Base 2.4.12 + dht_certificate_get_long_id@Base 2.4.12 + dht_certificate_get_publickey@Base 2.4.12 + dht_certificate_import@Base 2.4.12 + dht_identity_delete@Base 2.4.12 + dht_identity_generate@Base 2.4.12 + dht_infohash_from_hex@Base 2.4.12 + dht_infohash_from_hex_null@Base 2.4.12 + dht_infohash_get@Base 2.4.12 + dht_infohash_get_from_string@Base 2.4.12 + dht_infohash_is_zero@Base 2.4.12 + dht_infohash_print@Base 2.4.12 + dht_infohash_random@Base 2.4.12 + dht_infohash_zero@Base 2.4.12 + dht_op_token_delete@Base 2.4.12 + dht_pkid_print@Base 2.4.12 + dht_privatekey_decrypt@Base 2.4.12 + dht_privatekey_delete@Base 2.4.12 + dht_privatekey_export@Base 2.4.12 + dht_privatekey_generate@Base 2.4.12 + dht_privatekey_get_publickey@Base 2.4.12 + dht_privatekey_import@Base 2.4.12 + dht_publickey_check_signature@Base 2.4.12 + dht_publickey_delete@Base 2.4.12 + dht_publickey_encrypt@Base 2.4.12 + dht_publickey_export@Base 2.4.12 + dht_publickey_get_id@Base 2.4.12 + dht_publickey_get_long_id@Base 2.4.12 + dht_publickey_import@Base 2.4.12 + dht_runner_bootstrap@Base 2.4.12 + dht_runner_cancel_listen@Base 2.4.12 + dht_runner_cancel_put@Base 2.4.12 + dht_runner_config_default@Base 2.4.12 + dht_runner_delete@Base 2.4.12 + dht_runner_get@Base 2.4.12 + dht_runner_get_bound_port@Base 2.4.12 + dht_runner_get_id@Base 2.4.12 + dht_runner_get_node_id@Base 2.4.12 + dht_runner_get_public_address@Base 2.4.12 + dht_runner_is_running@Base 2.4.12 + dht_runner_listen@Base 2.4.12 + dht_runner_new@Base 2.4.12 + dht_runner_ping@Base 2.4.12 + dht_runner_put@Base 2.4.12 + dht_runner_put_encrypted@Base 2.4.12 + dht_runner_put_signed@Base 2.4.12 + dht_runner_run@Base 2.4.12 + dht_runner_run_config@Base 2.4.12 + dht_runner_shutdown@Base 2.4.12 + dht_value_get_data@Base 2.4.12 + dht_value_get_id@Base 2.4.12 + dht_value_get_owner@Base 2.4.12 + dht_value_get_recipient@Base 2.4.12 + dht_value_get_user_type@Base 2.4.12 + dht_value_new@Base 2.4.12 + dht_value_new_from_string@Base 2.4.12 + dht_value_ref@Base 2.4.12 + dht_value_set_user_type@Base 2.4.12 + dht_value_unref@Base 2.4.12 + dht_version@Base 2.4.12 diff --git a/libopendht-dev.install b/libopendht-dev.install new file mode 100644 index 0000000..e095365 --- /dev/null +++ b/libopendht-dev.install @@ -0,0 +1,4 @@ +usr/include/* +usr/lib/*/libopendht.so +usr/lib/*/pkgconfig/opendht.pc +usr/lib/*/cmake/opendht/* diff --git a/libopendht3.install b/libopendht3.install new file mode 100644 index 0000000..6df2c91 --- /dev/null +++ b/libopendht3.install @@ -0,0 +1 @@ +usr/lib/*/libopendht.so.* diff --git a/opendht-tools.dhtnode-http.service b/opendht-tools.dhtnode-http.service new file mode 100644 index 0000000..604e4e8 --- /dev/null +++ b/opendht-tools.dhtnode-http.service @@ -0,0 +1,43 @@ +[Unit] +Description=OpenDHT standalone node with an HTTP control interface +Conflicts=dhtnode.service +After=network.target dhtnode.service +ConditionPathExists=/etc/default/dhtnode-http + +[Service] +Type=simple +User=opendht +Group=opendht +EnvironmentFile=/etc/default/dhtnode-http +ExecStart=/usr/bin/dhtnode-http $DHT_HTTP_ARGS +Restart=on-failure +RestartSec=2s +LimitNOFILE=65536 +WorkingDirectory=/tmp + +# Hardening +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +LockPersonality=yes +NoNewPrivileges=yes +PrivateDevices=yes +PrivateTmp=yes +PrivateUsers=yes +ProtectClock=yes +ProtectControlGroups=yes +ProtectHome=yes +ProtectHostname=yes +ProtectKernelLogs=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectSystem=strict +ReadOnlyDirectories=/ +ReadWriteDirectories=-/proc/self +ReadWriteDirectories=-/var/run +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +RestrictNamespaces=yes +RestrictRealtime=yes +SystemCallArchitectures=native +SystemCallFilter=@system-service + +[Install] +WantedBy=multi-user.target diff --git a/opendht-tools.install b/opendht-tools.install new file mode 100755 index 0000000..e8b0219 --- /dev/null +++ b/opendht-tools.install @@ -0,0 +1,6 @@ +#! /usr/bin/dh-exec +usr/bin/dhtchat +usr/bin/dhtcluster +usr/bin/dhtscanner +usr/bin/dhtnode-http +debian/dhtnode-http.conf => /etc/default/dhtnode-http diff --git a/patches/1000-cmake-fix-no-atomic-64.patch b/patches/1000-cmake-fix-no-atomic-64.patch new file mode 100644 index 0000000..c5c8b96 --- /dev/null +++ b/patches/1000-cmake-fix-no-atomic-64.patch @@ -0,0 +1,33 @@ +From 9155a8401d79a69a68052e3c8145da1187240d20 Mon Sep 17 00:00:00 2001 +From: Amin Bandali +Date: Sun, 5 Feb 2023 12:56:24 -0500 +Subject: [PATCH] build/cmake: Link libatomic where needed for 64-bit atomic + ops. +Forwarded: https://github.com/savoirfairelinux/opendht/pull/653 +Last-Update: 2023-02-05 + +Link against libatomic also on architectures that need it for 64-bit +atomic operations. ARM EABI (armel) and little-endian MIPS (mipsel) +are two such architectures. +--- + CMakeLists.txt | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6e434bb5..3869af4d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -48,7 +48,9 @@ set (CMAKE_CXX_STANDARD 17) + set (CMAKE_CXX_STANDARD_REQUIRED on) + + # Dependencies +-if (NOT HAVE_CXX_ATOMICS_WITHOUT_LIB) ++if (NOT HAVE_CXX_ATOMICS_WITHOUT_LIB ++ # For ARM EABI (armel), little-endian MIPS (mipsel), etc. ++ OR NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB) + link_libraries (atomic) + endif () + +-- +2.39.1 + diff --git a/patches/2000-cmake-python-no-build-install.patch b/patches/2000-cmake-python-no-build-install.patch new file mode 100644 index 0000000..0328d17 --- /dev/null +++ b/patches/2000-cmake-python-no-build-install.patch @@ -0,0 +1,36 @@ +Description: Disable building and installing Python bindings by upstream + Comment out the build and install bits from python/CMakeLists.txt so + we could do so from debian/rules. +Author: Amin Bandali +Forwarded: not-needed +Last-Update: 2023-08-16 + +diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt +index 595cded..cd74c18 100644 +--- a/python/CMakeLists.txt ++++ b/python/CMakeLists.txt +@@ -5,15 +5,15 @@ set(CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) + configure_file(setup.py.in setup.py) + configure_file(pyproject.toml pyproject.toml COPYONLY) + +-add_custom_target(python ALL +- COMMAND python3 setup.py build +- DEPENDS opendht opendht_cpp.pxd opendht.pyx pyproject.toml) ++# add_custom_target(python ALL ++# COMMAND python3 setup.py build ++# DEPENDS opendht opendht_cpp.pxd opendht.pyx pyproject.toml) + +-add_custom_target(dist +- COMMAND python3 -m build +- DEPENDS opendht opendht_cpp.pxd opendht.pyx pyproject.toml) ++# add_custom_target(dist ++# COMMAND python3 -m build ++# DEPENDS opendht opendht_cpp.pxd opendht.pyx pyproject.toml) + +-install(CODE "execute_process(COMMAND python3 setup.py install --root=\$ENV{DESTDIR}/ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") ++# install(CODE "execute_process(COMMAND python3 setup.py install --root=\$ENV{DESTDIR}/ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") + if (OPENDHT_TOOLS) + install(PROGRAMS tools/dhtcluster.py DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME dhtcluster) +-endif() +\ No newline at end of file ++endif() diff --git a/patches/2010-install-dhtnode-http.patch b/patches/2010-install-dhtnode-http.patch new file mode 100644 index 0000000..05a5192 --- /dev/null +++ b/patches/2010-install-dhtnode-http.patch @@ -0,0 +1,14 @@ +Description: Install the tools/http_server.py tool as dhtnode-http. +Author: Amin Bandali +Last-Update: 2023-10-21 + +diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt +index cd74c18..73751e0 100644 +--- a/python/CMakeLists.txt ++++ b/python/CMakeLists.txt +@@ -16,4 +16,5 @@ configure_file(pyproject.toml pyproject.toml COPYONLY) + # install(CODE "execute_process(COMMAND python3 setup.py install --root=\$ENV{DESTDIR}/ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})") + if (OPENDHT_TOOLS) + install(PROGRAMS tools/dhtcluster.py DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME dhtcluster) ++ install(PROGRAMS tools/http_server.py DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME dhtnode-http) + endif() diff --git a/patches/README b/patches/README new file mode 100644 index 0000000..80c1584 --- /dev/null +++ b/patches/README @@ -0,0 +1,3 @@ +0xxx: Grabbed from upstream development. +1xxx: Possibly relevant for upstream adoption. +2xxx: Only relevant for official Debian release. diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..b001696 --- /dev/null +++ b/patches/series @@ -0,0 +1,3 @@ +1000-cmake-fix-no-atomic-64.patch +2000-cmake-python-no-build-install.patch +2010-install-dhtnode-http.patch diff --git a/python3-opendht.install b/python3-opendht.install new file mode 100644 index 0000000..aef7d79 --- /dev/null +++ b/python3-opendht.install @@ -0,0 +1 @@ +usr/lib/python3*/*-packages/opendht* diff --git a/rules b/rules new file mode 100755 index 0000000..7cc1fb6 --- /dev/null +++ b/rules @@ -0,0 +1,57 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +include /usr/share/dpkg/architecture.mk + +# export DH_VERBOSE = 1 +PYVERS = $(shell py3versions -vs) + +# Hardening +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk + +CONFIGURE_FLAGS += -DCMAKE_POSITION_INDEPENDENT_CODE=ON +CONFIGURE_FLAGS += -DOPENDHT_PROXY_SERVER=ON +CONFIGURE_FLAGS += -DOPENDHT_PROXY_CLIENT=ON +CONFIGURE_FLAGS += -DOPENDHT_PUSH_NOTIFICATIONS=ON +CONFIGURE_FLAGS += -DOPENDHT_PYTHON=ON +CONFIGURE_FLAGS += -DOPENDHT_C=ON +CONFIGURE_FLAGS += -DOPENDHT_TESTS_NETWORK=OFF + +%: + dh $@ --without autoreconf --with python3 + +override_dh_auto_configure: + dh_auto_configure -- ${CONFIGURE_FLAGS} + +clean-python%: + ( [ -d "obj-$(DEB_BUILD_GNU_TYPE)"/python ] && \ + cd "obj-$(DEB_BUILD_GNU_TYPE)"/python && \ + python$* setup.py clean ) || true + +build-python%: + cd "obj-$(DEB_BUILD_GNU_TYPE)"/python && \ + python$* setup.py build + +install-python%: + cd "obj-$(DEB_BUILD_GNU_TYPE)"/python && \ + python$* setup.py install \ + --root=$(CURDIR)/debian/tmp \ + --install-layout=deb + +execute_after_dh_auto_clean: $(PYVERS:%=clean-python%) + $(RM) $(CURDIR)/python/opendht.cpp +execute_after_dh_auto_build: $(PYVERS:%=build-python%) +execute_after_dh_auto_install: $(PYVERS:%=install-python%) + rm -f $(CURDIR)/debian/tmp/usr/share/man/man1/dhtnode.1 +execute_after_dh_install: + rm -f $(CURDIR)/debian/libopendht-dev/usr/include/opendht/opendht_c.h + +override_dh_installsystemd: + dh_installsystemd -popendht-tools --name=dhtnode-http --no-enable --no-start + dh_installsystemd --remaining-packages + +# Skip dh_dwz set as it fail on debian/dhtnode/usr/bin/dhtnode in version 2.4.10 +override_dh_dwz: + #dh_dwz diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/tests/control b/tests/control new file mode 100644 index 0000000..d97dc9c --- /dev/null +++ b/tests/control @@ -0,0 +1,2 @@ +Tests: test-compile-cpp, test-run-python +Depends: @, build-essential, pkg-config diff --git a/tests/test-compile-cpp b/tests/test-compile-cpp new file mode 100755 index 0000000..f2212ca --- /dev/null +++ b/tests/test-compile-cpp @@ -0,0 +1,54 @@ +#!/bin/sh +# +# Compile simple C++ client to validate headers and libraries are +# properly set up. Not running, as network might not be available +# when testing. + +cd $AUTOPKGTEST_TMP + +# Example code fetched from +cat < simpleclient.cpp +#include +#include + +int main() +{ + dht::DhtRunner node; + + // Launch a dht node on a new thread, using a + // generated RSA key pair, and listen on port 4222. + node.run(4222, dht::crypto::generateIdentity(), true); + + // Join the network through any running node, + // here using a known bootstrap node. + node.bootstrap("bootstrap.jami.net", "4222"); + + // put some data on the dht + std::vector some_data(5, 10); + node.put("unique_key", some_data); + + // put some data on the dht, signed with our generated private key + node.putSigned("unique_key_42", some_data); + + // get data from the dht + node.get("other_unique_key", [](const std::vector>& values) { + // Callback called when values are found + for (const auto& value : values) + std::cout << "Found value: " << *value << std::endl; + return true; // return false to stop the search + }); + + // wait for dht threads to end + node.join(); + return 0; +} +EOF +LIBS="$(pkg-config --libs opendht)" +if c++ -o simpleclient simpleclient.cpp $LIBS; then + echo success: building C++ client succeeded +else + echo error: building C++ client failed + exit 1 +fi + +rm -f simpleclient.cpp simpleclient diff --git a/tests/test-run-python b/tests/test-run-python new file mode 100755 index 0000000..a45bae2 --- /dev/null +++ b/tests/test-run-python @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +# +# Run simple Python 3 excerpt to validate the Python 3 bindings. +# Not testing networking, as it might not be available when testing. + +import opendht as dht + +node = dht.DhtRunner() + +node.run() +assert node.isRunning() + +node.join() +assert not node.isRunning() diff --git a/upstream/metadata b/upstream/metadata new file mode 100644 index 0000000..5ffa036 --- /dev/null +++ b/upstream/metadata @@ -0,0 +1,5 @@ +Name: OpenDHT +Bug-Database: https://github.com/savoirfairelinux/opendht/issues +Bug-Submit: https://github.com/savoirfairelinux/opendht/issues/new +Repository: https://github.com/savoirfairelinux/opendht.git +Repository-Browse: https://github.com/savoirfairelinux/opendht diff --git a/watch b/watch new file mode 100644 index 0000000..d056354 --- /dev/null +++ b/watch @@ -0,0 +1,6 @@ +version=4 +opts="searchmode=plain,\ +filenamemangle=s%v?@ANY_VERSION@%@PACKAGE@-$1.tar.xz%,\ +uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|a|b)\d*)$/$1~$2/" \ +https://api.github.com/repos/savoirfairelinux/opendht/tags?per_page=50 \ +https://api.github.com/repos/[^/]+/[^/]+/tarball/refs/tags/v?@ANY_VERSION@ -- 2.30.2