%global commit 4208db6e27c46f3ccec8b98722af7ec23bc62e73 Name: udp2raw Version: 20251012 Release: 1%{?dist} Summary: Udp2raw tunnel License: MIT URL: https://github.com/wangyu-/udp2raw Source0: https://github.com/wangyu-/udp2raw/archive/%{commit}.tar.gz BuildRequires: clang BuildRequires: cmake BuildRequires: git BuildRequires: systemd %description A Tunnel which turns UDP Traffic into Encrypted FakeTCP/UDP/ICMP Traffic by using Raw Socket. %prep %setup -q -n %{name}-%{commit} sed -i 's|-fsanitize=address,undefined||' CMakeLists.txt sed -i '/set(CMAKE_CXX_STANDARD 11)/a enable_language(ASM)' CMakeLists.txt %ifarch x86_64 sed -i 's|lib/aes_faster_c/aes.cpp|lib/aes_acc/aesacc.c lib/aes_acc/aesni.c|' CMakeLists.txt sed -i 's|lib/aes_faster_c/wrapper.cpp|lib/aes_acc/asm/x64.S|' CMakeLists.txt %endif %ifarch i686 sed -i 's|lib/aes_faster_c/aes.cpp|lib/aes_acc/aesacc.c lib/aes_acc/aesni.c|' CMakeLists.txt sed -i 's|lib/aes_faster_c/wrapper.cpp|lib/aes_acc/asm/x86.S|' CMakeLists.txt %endif %build make git_version %cmake -B %{_vpath_builddir} -DCMAKE_CXX_COMPILER=clang++ %cmake_build %install install -Dm755 %{_vpath_builddir}/%{name} %{buildroot}%{_bindir}/%{name} install -Dm644 example.conf %{buildroot}%{_sysconfdir}/%{name}/example.conf mkdir -p %{buildroot}%{_unitdir} cat > %{buildroot}%{_unitdir}/%{name}@.service << 'EOF' [Unit] Description=Udp2raw tunnel (%i) After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/udp2raw --conf-file /etc/udp2raw/%i.conf Restart=on-failure RestartSec=5 CapabilityBoundingSet=CAP_NET_RAW CAP_NET_BIND_SERVICE AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE [Install] WantedBy=multi-user.target EOF %files %license LICENSE.md %doc README.md doc/*.md %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/example.conf %{_bindir}/%{name} %{_unitdir}/%{name}@.service %changelog