diff --git a/CMakeLists.txt b/CMakeLists.txt index a02aabdf..0939b692 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,6 @@ set (VERSION ${CMAKE_PROJECT_VERSION}) option(DHTNET_PUPNP "Enable UPnP support" ON) option(DHTNET_NATPMP "Enable NAT-PMP support" ON) -option(DHTNET_LLHTTP "Include llhttp in compilation" OFF) option(DHTNET_TESTABLE "Enable API for tests" ON) option(BUILD_TOOLS "Build tools" ON) option(BUILD_BENCHMARKS "Build benchmarks" ON) @@ -162,17 +161,13 @@ if (DNC_SYSTEMD AND BUILD_TOOLS AND NOT MSVC) systemd/dnc.service @ONLY ) - file(READ ${CMAKE_CURRENT_BINARY_DIR}/systemd/dnc.service FILE_CONTENTS) - string(REPLACE "${CMAKE_INSTALL_PREFIX}" "" FILE_CONTENTS "${FILE_CONTENTS}") - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/systemd/dnc.service "${FILE_CONTENTS}") - if (SYSTEMD_UNIT_INSTALL_DIR) string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_UNIT_INSTALL_DIR "${SYSTEMD_UNIT_INSTALL_DIR}") - set (systemdunitdir "${CMAKE_INSTALL_PREFIX}${SYSTEMD_UNIT_INSTALL_DIR}") + set (systemdunitdir "${SYSTEMD_UNIT_INSTALL_DIR}") install (FILES ${CMAKE_CURRENT_BINARY_DIR}/systemd/dnc.service DESTINATION ${systemdunitdir}) string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_PRESET_INSTALL_DIR "${SYSTEMD_PRESET_INSTALL_DIR}") - set (systemdpresetdir "${CMAKE_INSTALL_PREFIX}${SYSTEMD_PRESET_INSTALL_DIR}") + set (systemdpresetdir "${SYSTEMD_PRESET_INSTALL_DIR}") install (FILES tools/dnc/systemd/dhtnet-dnc.preset DESTINATION ${systemdpresetdir}) install (FILES tools/dnc/dnc.yaml DESTINATION ${sysconfdir}/dhtnet/) @@ -288,12 +283,7 @@ target_include_directories(dhtnet PUBLIC ) target_compile_definitions(dhtnet PRIVATE ${dhtnet_PRIVATE_DEFS}) -if (DHTNET_LLHTTP) - target_link_libraries(dhtnet PRIVATE ${dhtnet_PRIVATELIBS} llhttp nettle) -else() - target_link_libraries(dhtnet PRIVATE ${dhtnet_PRIVATELIBS} nettle) -endif() - +target_link_libraries(dhtnet PRIVATE ${dhtnet_PRIVATELIBS}) if (MSVC) target_compile_definitions(dhtnet PRIVATE _CRT_SECURE_NO_WARNINGS @@ -322,9 +312,6 @@ if (BUILD_TESTING AND NOT MSVC) endif() configure_file(dhtnet.pc.in dhtnet.pc @ONLY) -file(READ ${CMAKE_CURRENT_BINARY_DIR}/dhtnet.pc FILE_CONTENTS) -string(REPLACE "${CMAKE_INSTALL_PREFIX}" "" FILE_CONTENTS "${FILE_CONTENTS}") -file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dhtnet.pc "${FILE_CONTENTS}") # Install targets install(TARGETS dhtnet) @@ -337,12 +324,7 @@ if (BUILD_TOOLS AND NOT MSVC) tools/dnc/dnc.cpp tools/common.cpp tools/dhtnet_crtmgr/dhtnet_crtmgr.cpp) - if (DHTNET_LLHTTP) - target_link_libraries(dnc PRIVATE dhtnet fmt::fmt yaml-cpp llhttp nettle) - else() - target_link_libraries(dnc PRIVATE dhtnet fmt::fmt yaml-cpp nettle) - endif() - + target_link_libraries(dnc PRIVATE dhtnet fmt::fmt yaml-cpp) target_include_directories(dnc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tools) install(TARGETS dnc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) @@ -351,13 +333,7 @@ if (BUILD_TOOLS AND NOT MSVC) tools/dsh/dsh.cpp tools/common.cpp tools/dhtnet_crtmgr/dhtnet_crtmgr.cpp) - - if (DHTNET_LLHTTP) - target_link_libraries(dsh PRIVATE dhtnet fmt::fmt yaml-cpp llhttp nettle) - else() - target_link_libraries(dsh PRIVATE dhtnet fmt::fmt yaml-cpp nettle) - endif() - + target_link_libraries(dsh PRIVATE dhtnet fmt::fmt yaml-cpp) target_include_directories(dsh PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tools) install(TARGETS dsh RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) @@ -368,13 +344,7 @@ if (BUILD_TOOLS AND NOT MSVC) tools/dvpn/dvpn.cpp tools/common.cpp tools/dhtnet_crtmgr/dhtnet_crtmgr.cpp) - - if (DHTNET_LLHTTP) - target_link_libraries(dvpn PRIVATE dhtnet fmt::fmt yaml-cpp llhttp nettle) - else() - target_link_libraries(dvpn PRIVATE dhtnet fmt::fmt yaml-cpp nettle) - endif() - + target_link_libraries(dvpn PRIVATE dhtnet fmt::fmt yaml-cpp) target_include_directories(dvpn PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tools) install(TARGETS dvpn RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() @@ -394,25 +364,13 @@ if (BUILD_TOOLS AND NOT MSVC) add_executable(dhtnet-crtmgr tools/dhtnet_crtmgr/main.cpp tools/dhtnet_crtmgr/dhtnet_crtmgr.cpp) - - if (DHTNET_LLHTTP) - target_link_libraries(dhtnet-crtmgr PRIVATE dhtnet fmt::fmt yaml-cpp llhttp nettle) - else() - target_link_libraries(dhtnet-crtmgr PRIVATE dhtnet fmt::fmt yaml-cpp nettle) - endif() - + target_link_libraries(dhtnet-crtmgr PRIVATE dhtnet fmt::fmt) target_include_directories(dhtnet-crtmgr PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tools) install(TARGETS dhtnet-crtmgr RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) add_executable(peerDiscovery tools/peerdiscovery/peerDiscovery.cpp) - - if (DHTNET_LLHTTP) - target_link_libraries(peerDiscovery PRIVATE dhtnet fmt::fmt readline llhttp nettle) - else() - target_link_libraries(peerDiscovery PRIVATE dhtnet fmt::fmt readline nettle) - endif() - + target_link_libraries(peerDiscovery PRIVATE dhtnet fmt::fmt readline) target_include_directories(peerDiscovery PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tools/peerdiscovery) install(TARGETS peerDiscovery RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/extras/packaging/.gitignore b/extras/packaging/.gitignore index cd9ae2be..043509b8 100644 --- a/extras/packaging/.gitignore +++ b/extras/packaging/.gitignore @@ -1,8 +1,9 @@ gnu-linux/debian/dhtnet gnu-linux/debian/.debhelper -**/*.deb -**/*.rpm -**/build-at-* +ubuntu-*/*.deb +ubuntu-*/build-at-* **/build.log +debian-*/*.deb +debian-*/build-at-* *dhtnet-*.tar.gz diff --git a/extras/packaging/Jenkinsfile b/extras/packaging/Jenkinsfile index 48239017..48761c5e 100644 --- a/extras/packaging/Jenkinsfile +++ b/extras/packaging/Jenkinsfile @@ -79,9 +79,6 @@ pipeline { cp -Rf "./gnu-linux/debian" "$FOLDER_NAME/debian" tar -czf "deb-${FOLDER_NAME}.tar.gz" "$FOLDER_NAME" rm -Rf "$FOLDER_NAME/debian" - - # create fedora archive - tar -czf "rpm-${FOLDER_NAME}.tar.gz" "$FOLDER_NAME" """ } } @@ -130,43 +127,14 @@ pipeline { } } } - stage('Fedora 39') { - steps { - dir('extras/packaging') { - sh """ - target="fedora-39" - mkdir -p "\$target" - docker build -t "dhtnet-builder:\$target" -f "gnu-linux/\$target.Dockerfile" --build-arg PKG_NAME="$FOLDER_NAME" . - docker run --rm \ - -v "\$(pwd)/\$target/":/build/artifacts \ - -e PKG_NAME="$FOLDER_NAME" "dhtnet-builder:\$target" - """ - } - } - } - stage('Fedora 40') { - steps { - dir('extras/packaging') { - sh """ - target="fedora-40" - mkdir -p "\$target" - docker build -t "dhtnet-builder:\$target" -f "gnu-linux/\$target.Dockerfile" --build-arg PKG_NAME="$FOLDER_NAME" . - docker run --rm \ - -v "\$(pwd)/\$target/":/build/artifacts \ - -e PKG_NAME="$FOLDER_NAME" "dhtnet-builder:\$target" - """ - } - } - } } } } post { success { dir('extras/packaging') { - archiveArtifacts artifacts: 'ubuntu-*/dhtnet_*.deb, debian-*/dhtnet_*.deb, fedora-*/dhtnet-*.rpm', - caseSensitive: false, - excludes: '**/*debug*' + archiveArtifacts artifacts: 'ubuntu-*/dhtnet_*.deb, debian-*/dhtnet_*.deb', + caseSensitive: false } } } diff --git a/extras/packaging/build_packages.sh b/extras/packaging/build_packages.sh index 93f9a525..38e50f2d 100755 --- a/extras/packaging/build_packages.sh +++ b/extras/packaging/build_packages.sh @@ -27,9 +27,6 @@ build_debian=false build_debian10=false build_debian11=false build_debian12=false -build_fedora=false -build_fedora39=false -build_fedora40=false parse_args() { while [ "$1" != "" ]; do @@ -62,16 +59,6 @@ parse_args() { -d12 | --debian12 ) build_debian12=true build_debian=true ;; - -f | --fedora ) build_fedora=true - build_fedora39=true - build_fedora40=true - ;; - -f40 | --fedora40 ) build_fedora40=true - build_fedora=true - ;; - -f39 | --fedora39 ) build_fedora39=true - build_fedora=true - ;; -a | --all ) build_ubuntu=true # not working: build_ubuntu20=true build_ubuntu22=true @@ -80,9 +67,6 @@ parse_args() { # not working: build_debian10=true # not working: build_debian11=true build_debian12=true - build_fedora=true - build_fedora39=true - build_fedora40=true ;; * ) echo "Argument '$1' is not recognized" ;; @@ -112,14 +96,6 @@ if [ "$build_ubuntu" == true ] || [ "$build_debian" == true ]; then rm -Rf "${FOLDER_NAME}/debian" fi -if [ "$build_fedora" == true ]; then - # copy fedora conf - #cp -Rf "./gnu-linux/fedora" "${FOLDER_NAME}/fedora" - - tar -czf "rpm-${PKG_NAME}-${PKG_VERSION}.tar.gz" "${FOLDER_NAME}" - #rm -Rf "${FOLDER_NAME}/fedora" -fi - rm -Rf "${FOLDER_NAME}" echo "Archives -${PKG_NAME}-${PKG_VERSION}.tar.gz are ready, starting builds... (will take few minutes)" @@ -176,15 +152,6 @@ if [ "$build_debian10" == true ]; then build_target "debian-10" fi -# build Fedora package (rpm-*) -if [ "$build_fedora40" == true ]; then - build_target "fedora-40" -fi - -if [ "$build_fedora39" == true ]; then - build_target "fedora-39" -fi - while [ $remainning_builds -gt 0 ]; do time="$(date +%T)" diff --git a/extras/packaging/gnu-linux/fedora-39.Dockerfile b/extras/packaging/gnu-linux/fedora-39.Dockerfile deleted file mode 100644 index 493cebd0..00000000 --- a/extras/packaging/gnu-linux/fedora-39.Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM fedora:39 - -WORKDIR /build - -RUN mkdir -p /build/artifacts && \ - dnf install -y fedora-packager fedora-review git gcc g++ make cmake wget \ - pkg-config dpkg-dev libtool autoconf automake systemd \ - python3-devel python3-setuptools python3-build python3-virtualenv \ - ncurses-devel readline-devel nettle-devel cppunit-devel \ - gnutls-devel libuv-devel jsoncpp-devel libargon2-devel libunistring-devel \ - openssl-devel fmt-devel asio-devel msgpack-devel yaml-cpp-devel \ - http-parser-devel zlib-devel llhttp-devel \ - libupnp-devel libnatpmp-devel - -COPY gnu-linux/fedora /build/fedora - -ARG PKG_NAME -COPY rpm-${PKG_NAME}.tar.gz /build/fedora/${PKG_NAME}.tar.gz - -CMD cd /build/fedora && \ - fedpkg --release f39 local && \ - (fedpkg --release f39 lint || true) && \ - cp /build/fedora/*.rpm /build/artifacts/ && \ - cp /build/fedora/$(uname -m)/*.rpm /build/artifacts/ diff --git a/extras/packaging/gnu-linux/fedora-40.Dockerfile b/extras/packaging/gnu-linux/fedora-40.Dockerfile deleted file mode 100644 index 6f198bfc..00000000 --- a/extras/packaging/gnu-linux/fedora-40.Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM fedora:40 - -WORKDIR /build - -RUN mkdir -p /build/artifacts && \ - dnf install -y fedora-packager fedora-review git gcc g++ make cmake wget \ - pkg-config dpkg-dev libtool autoconf automake systemd \ - python3-devel python3-setuptools python3-build python3-virtualenv \ - ncurses-devel readline-devel nettle-devel cppunit-devel \ - gnutls-devel libuv-devel jsoncpp-devel libargon2-devel libunistring-devel \ - openssl-devel fmt-devel asio-devel msgpack-devel yaml-cpp-devel \ - http-parser-devel zlib-devel llhttp-devel \ - libupnp-devel libnatpmp-devel - -COPY gnu-linux/fedora /build/fedora - -ARG PKG_NAME -COPY rpm-${PKG_NAME}.tar.gz /build/fedora/${PKG_NAME}.tar.gz - -CMD cd /build/fedora && \ - fedpkg --release f40 local && \ - (fedpkg --release f40 lint || true) && \ - cp /build/fedora/*.rpm /build/artifacts/ && \ - cp /build/fedora/$(uname -m)/*.rpm /build/artifacts/ diff --git a/extras/packaging/gnu-linux/fedora/dhtnet.spec b/extras/packaging/gnu-linux/fedora/dhtnet.spec deleted file mode 100644 index b584d3c2..00000000 --- a/extras/packaging/gnu-linux/fedora/dhtnet.spec +++ /dev/null @@ -1,64 +0,0 @@ -Name: dhtnet -Version: 0.3.0 -Release: %autorelease -Summary: DHTNet, a Lightweight Peer-to-Peer Communication Library -License: GPL-2.0+ AND BSL-1.0 AND GPL-3.0+ AND BSD-3-Clause AND Apache-2.0 AND Expat AND LGPL-2.0+ -URL: https://git.jami.net/savoirfairelinux/dhtnet -Source: ./dhtnet-%{version}.tar.gz -BuildRequires: gcc -BuildRequires: g++ -BuildRequires: make -BuildRequires: cmake -%global __requires_exclude pkgconfig\\((libpjproject|opendht)\\) - -%description -DHTNet, a Lightweight Peer-to-Peer Communication Library, -allows you to connect with a device simply by knowing its public key and -efficiently manages peer discovery and connectivity establishment, including NAT traversal. - -%prep -%autosetup - -%build -mkdir build -cd build -cmake .. -DBUILD_TESTING=OFF \ - -DBUILD_BENCHMARKS=OFF \ - -DBUILD_SHARED_LIBS=ON \ - -DDHTNET_LLHTTP=ON \ - -DDNC_SYSTEMD=ON \ - -DCMAKE_INSTALL_PREFIX=%{buildroot} \ - -DCMAKE_INSTALL_BINDIR=%{buildroot}%{_bindir} \ - -DCMAKE_INSTALL_MANDIR=%{buildroot}%{_mandir} \ - -DCMAKE_INSTALL_DOCDIR=%{buildroot}%{_docdir} \ - -DCMAKE_INSTALL_LIBDIR=%{buildroot}%{_libdir} \ - -DCMAKE_INSTALL_INCLUDEDIR=%{buildroot}%{_includedir} \ - -DCMAKE_INSTALL_SYSCONFDIR=%{buildroot}%{_sysconfdir} \ - -DDNC_SYSTEMD_UNIT_FILE_LOCATION=%{buildroot}/usr/lib/systemd/system \ - -DDNC_SYSTEMD_PRESET_FILE_LOCATION=%{buildroot}/usr/lib/systemd/system-preset - -%install -cd build -make -j -sudo make install - -%files -%{_bindir}/dnc -%{_bindir}/dvpn -%{_bindir}/dsh -%{_bindir}/peerDiscovery -%{_bindir}/upnpctrl -%{_bindir}/dhtnet-crtmgr -%{_mandir}/man1/dnc.1.* -%{_mandir}/man1/dsh.1.* -%{_mandir}/man1/dvpn.1.* -%{_mandir}/man1/dhtnet-crtmgr.1.* -%{_docdir}/* -%{_libdir}/* -%{_includedir}/dhtnet/* -%{_sysconfdir}/dhtnet/* -/usr/lib/systemd/system/dnc.service -/usr/lib/systemd/system-preset/dhtnet-dnc.preset - -%changelog -%autochangelog \ No newline at end of file