diff --git a/CMakeLists.txt b/CMakeLists.txt
index a02aabdf97ab872d2951177e1eb3b375b94f5a6b..0939b6924dd9015980dfae3688073a0214f87578 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 cd9ae2be5d305bdf7e1a8d2195e004ff88e23b79..043509b87de3b644c096807ee78502faf12694e4 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 48239017de0604a72a32c1859e4dc44060e9bf63..48761c5eabaa8ca0cab7398084464baf95d5c229 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 93f9a525d8174743e6bff0eb957fbb4824a7705d..38e50f2dcef6c3e226e1ac4624ff31fb37d2cda8 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 <os>-${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 493cebd0aaf0b8ac0ff162cfd0290673abfb29f9..0000000000000000000000000000000000000000
--- 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 6f198bfc7cd4cba6c3de684b95ce172fc935549d..0000000000000000000000000000000000000000
--- 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 b584d3c2eac828f15a97175fc26a479c5780acb3..0000000000000000000000000000000000000000
--- 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