From 56f67068949f7d7b5c7a2761d0ff1941e2ea22d9 Mon Sep 17 00:00:00 2001 From: Anton Bolshakov Date: Sat, 21 Jun 2025 17:02:37 +0800 Subject: [PATCH] LTESniffer: WIP --- .../LTESniffer/LTESniffer-2.1.0.ebuild | 44 ++--- .../files/cmake/modules/FindSRSRAN.cmake | 171 +++++++++++++----- net-wireless/srsran2/srsran2-20240929.ebuild | 6 +- 3 files changed, 148 insertions(+), 73 deletions(-) diff --git a/net-wireless/LTESniffer/LTESniffer-2.1.0.ebuild b/net-wireless/LTESniffer/LTESniffer-2.1.0.ebuild index 35d38aca4..f012bad0d 100644 --- a/net-wireless/LTESniffer/LTESniffer-2.1.0.ebuild +++ b/net-wireless/LTESniffer/LTESniffer-2.1.0.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit cmake +inherit cmake flag-o-matic DESCRIPTION="LTE Downlink/Uplink Eavesdropper" HOMEPAGE="https://github.com/SysSec-KAIST/LTESniffer" @@ -11,8 +11,9 @@ SRC_URI="https://github.com/SysSec-KAIST/LTESniffer/archive/refs/tags/LTESniffer LICENSE="GPL-3" SLOT="0" + # WIP -#KEYWORDS="~amd64 ~x86" +#KEYWORDS="amd64 ~x86" S="${WORKDIR}/LTESniffer-LTESniffer-v${PV}" @@ -22,25 +23,26 @@ RDEPEND="net-misc/lksctp-tools net-wireless/srsran2" DEPEND="${RDEPEND}" -#src_prepare() { -# -Werror=maybe-uninitialized -# srsRAN-src/lib/include/srsran/srslog/bundled/fmt/core.h <- #include -# sed '/set(CMAKE_CXX_FLAGS/d' -i CMakeLists.txt +src_prepare() { + cp ${FILESDIR}/cmake/modules/FindSRSRAN.cmake ./cmake/modules + cmake_src_prepare +} -# sed -i "s|WORK_DIR|${WORKDIR}|g" srcRAN-src/lib || die "sed failed" - -# cmake_src_prepare -#} - -#no-maybe-uninitialized src_configure() { -# append-cxxflags $(test-flags-CXX -Wno-uninitialized) -# append-cxxflags $(test-flags-CXX -Wno-uninitialized -Wno-maybe-uninitialized) + + local extraflags=( + "-Wno-maybe-uninitialized" + "-Wno-implicit-int" + "-Wno-implicit-function-declaration" + ) + append-cflags $(test-flags-CC ${extraflags[@]}) + local mycmakeargs=( -# -Wno-dev -Wno-uninitialized -Wno-maybe-uninitialized + -DENABLE_SOAPYSDR=ON -DFORCE_SUBPROJECT_CMNALIB=OFF -DFORCE_SUBPROJECT_SRSRAN=OFF ) + # option(DISABLE_SIMD "disable simd instructions" OFF) # option(FORCE_SUBPROJECT_CMNALIB "Download and build CMNALIB" OFF) # option(FORCE_SUBPROJECT_SRSRAN "Download and build SRSRAN" OFF) @@ -55,13 +57,3 @@ src_configure() { cmake_src_configure } - -#src_install() { -# cmake_src_install -# find "${ED}" -name "*.py[co]" -delete || die -# python_optimize - - #this isn't right, but cmake is broken somehow -# dodir /usr/share/${PN} -# cp -r "${S}/op25/gr-op25_repeater/apps" "${ED}/usr/share/${PN}" || die -#} diff --git a/net-wireless/LTESniffer/files/cmake/modules/FindSRSRAN.cmake b/net-wireless/LTESniffer/files/cmake/modules/FindSRSRAN.cmake index 8d0f95988..222cf6e6e 100644 --- a/net-wireless/LTESniffer/files/cmake/modules/FindSRSRAN.cmake +++ b/net-wireless/LTESniffer/files/cmake/modules/FindSRSRAN.cmake @@ -10,19 +10,26 @@ # SRSRAN_SRCDIR - Directory containing srsran sources # SRSRAN_BUILDDIR - Directory containing srsran build -# /usr/lib64/libasn1_utils.a -# /usr/lib64/libsrsran_mac.a -# /usr/lib64/libnas_5g_msg.a -# /usr/lib64/libsrsran_common.a -# /usr/lib64/librrc_nr_asn1.a -# /usr/lib64/libngap_nr_asn1.a -# /usr/lib64/libs1ap_asn1.a -# /usr/lib64/librrc_asn1.a -# /usr/lib64/libsrsran_rlc.a -# /usr/lib64/libsrsran_phy.a -# /usr/lib64/libsrsran_pdcp.a -# /usr/lib64/libsrsran_gtpu.a -# /usr/lib64/libsrslog.a +# + /usr/lib64/libasn1_utils.a +# /usr/lib64/libnas_5g_msg.a +# /usr/lib64/libngap_nr_asn1.a +# /usr/lib64/librrc_asn1.a +# /usr/lib64/librrc_nr_asn1.a +# /usr/lib64/libs1ap_asn1.a +# + /usr/lib64/libsrslog.a +# /usr/lib64/libsrsran_asn1.a +# + /usr/lib64/libsrsran_common.a +# /usr/lib64/libsrsran_gtpu.a +# + /usr/lib64/libsrsran_mac.a +# + /usr/lib64/libsrsran_pdcp.a +# + /usr/lib64/libsrsran_phy.a +# + /usr/lib64/libsrsran_radio.a +# + /usr/lib64/libsrsran_rf.so +# + /usr/lib64/libsrsran_rf.so.0 +# + /usr/lib64/libsrsran_rf.so.21.10.0 +# + /usr/lib64/libsrsran_rlc.a +# + rf_utils +# + libsupport find_package(PkgConfig) pkg_check_modules(PC_SRSRAN QUIET srsran) @@ -40,7 +47,35 @@ FIND_PATH( ) FIND_LIBRARY( - SRSRAN_LIBRARY + SRSRAN_LIBRARY_ASN1_UTILS + NAMES asn1_utils + HINTS $ENV{SRSRAN_DIR}/lib + ${SRSRAN_BUILDDIR}/srsran/lib + ${PC_SRSRAN_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 +) + +FIND_LIBRARY( + SRSRAN_LIBRARY_SRSLOG + NAMES srslog + HINTS $ENV{SRSRAN_DIR}/lib + ${SRSRAN_BUILDDIR}/srsran/lib + ${PC_SRSRAN_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 +) + +FIND_LIBRARY( + SRSRAN_LIBRARY_COMMON NAMES srsran_common HINTS $ENV{SRSRAN_DIR}/lib ${SRSRAN_BUILDDIR}/srsran/lib @@ -53,6 +88,20 @@ FIND_LIBRARY( /usr/lib64 ) +FIND_LIBRARY( + SRSRAN_LIBRARY_MAC + NAMES srsran_mac + HINTS $ENV{SRSRAN_DIR}/lib + ${SRSRAN_BUILDDIR}/srsran/lib + ${PC_SRSRAN_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 +) + FIND_LIBRARY( SRSRAN_LIBRARY_RADIO NAMES srsran_radio @@ -67,21 +116,6 @@ FIND_LIBRARY( /usr/lib64 ) - -#FIND_LIBRARY( -# SRSRAN_LIBRARY_UPPER -# NAMES srsran_upper -# HINTS $ENV{SRSRAN_DIR}/lib -# ${SRSRAN_BUILDDIR}/srsran/lib -# ${PC_SRSRAN_LIBDIR} -# ${CMAKE_INSTALL_PREFIX}/lib -# ${CMAKE_INSTALL_PREFIX}/lib64 -# PATHS /usr/local/lib -# /usr/local/lib64 -# /usr/lib -# /usr/lib64 -#) - FIND_LIBRARY( SRSRAN_LIBRARY_ASN1 NAMES rrc_asn1 @@ -96,6 +130,20 @@ FIND_LIBRARY( /usr/lib64 ) +FIND_LIBRARY( + SRSRAN_LIBRARY_PDCP + NAMES srsran_pdcp + HINTS $ENV{SRSRAN_DIR}/lib + ${SRSRAN_BUILDDIR}/srsran/lib + ${PC_SRSRAN_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 +) + FIND_LIBRARY( SRSRAN_LIBRARY_PHY NAMES srsran_phy @@ -110,6 +158,20 @@ FIND_LIBRARY( /usr/lib64 ) +FIND_LIBRARY( + SRSRAN_LIBRARY_RLC + NAMES srsran_rlc + HINTS $ENV{SRSRAN_DIR}/lib + ${SRSRAN_BUILDDIR}/srsran/lib + ${PC_SRSRAN_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 +) + FIND_LIBRARY( SRSRAN_LIBRARY_RF NAMES srsran_rf @@ -124,20 +186,33 @@ FIND_LIBRARY( /usr/lib64 ) -#FIND_LIBRARY( -# SRSRAN_LIBRARY_RF_UTILS -# NAMES srsran_rf_utils -# HINTS $ENV{SRSRAN_DIR}/lib -# ${SRSRAN_BUILDDIR}/srsran/lib -# ${PC_SRSRAN_LIBDIR} -# ${CMAKE_INSTALL_PREFIX}/lib -# ${CMAKE_INSTALL_PREFIX}/lib64 -# PATHS /usr/local/lib -# /usr/local/lib64 -# /usr/lib -# /usr/lib64 -#) +FIND_LIBRARY( + SRSRAN_LIBRARY_RF_UTILS + NAMES srsran_rf_utils + HINTS $ENV{SRSRAN_DIR}/lib + ${SRSRAN_BUILDDIR}/srsran/lib + ${PC_SRSRAN_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 +) +FIND_LIBRARY( + SRSRAN_LIBRARY_SUPPORT + NAMES support + HINTS $ENV{SRSRAN_DIR}/lib + ${SRSRAN_BUILDDIR}/srsran/lib + ${PC_SRSRAN_LIBDIR} + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS /usr/local/lib + /usr/local/lib64 + /usr/lib + /usr/lib64 +) IF(DEFINED SRSRAN_SRCDIR) set(SRSRAN_INCLUDE_DIRS ${SRSRAN_SRCDIR}/srsran @@ -149,13 +224,17 @@ IF(DEFINED SRSRAN_SRCDIR) ${SRSRAN_SRCDIR}/asn1) ENDIF(DEFINED SRSRAN_SRCDIR) -# ${SRSRAN_LIBRARY_RF} -# ${SRSRAN_LIBRARY_RADIO} -set(SRSRAN_LIBRARIES ${SRSRAN_LIBRARY} +set(SRSRAN_LIBRARIES + ${SRSRAN_LIBRARY_ASN1_UTILS} + ${SRSRAN_LIBRARY_SRSLOG} + ${SRSRAN_LIBRARY_SUPPORT} + ${SRSRAN_LIBRARY_COMMON} ${SRSRAN_LIBRARY_RF_UTILS} + ${SRSRAN_LIBRARY_PDCP} ${SRSRAN_LIBRARY_PHY} -# ${SRSRAN_LIBRARY_UPPER} ${SRSRAN_LIBRARY_ASN1} + ${SRSRAN_LIBRARY_MAC} + ${SRSRAN_LIBRARY_RLC} ) if(SRSRAN_LIBRARY_RF) diff --git a/net-wireless/srsran2/srsran2-20240929.ebuild b/net-wireless/srsran2/srsran2-20240929.ebuild index 43ca5e9c7..8d8d4e733 100644 --- a/net-wireless/srsran2/srsran2-20240929.ebuild +++ b/net-wireless/srsran2/srsran2-20240929.ebuild @@ -109,7 +109,11 @@ src_install() { for my_include in srsenb srsepc srsue do - insinto "usr/include/srsran/${my_include}" + insinto "usr/include/${my_include}/hdr/" doins -r "${S}/${my_include}/hdr"/* done } + +#FIXME: build /usr/lib64/libsrsran_rf_utils.a (libsrsran_rf_utils.a) +# src/phy/rf/libsrsran_rf_utils.a +# src/support libsupport.a