Skip to content

pcapplusplus 25.05 #223405

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed

pcapplusplus 25.05 #223405

wants to merge 1 commit into from

Conversation

BrewTestBot
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

release notes
May 2025 release of PcapPlusPlus (v25.05)

Binaries included in this release

  • Binaries compiled for Ubuntu 24.04 LTS, 22.04 LTS, 20.04 LTS
    • For Ubuntu 24.04 both x86_64 and ARM packages are available
  • Binaries compiled for RHEL 9.4
  • Binaries compiled for Fedora 42
  • Binaries compiled for Alpine 3.20.3
  • Binaries compiled for macOS Intel and Apple Silicon with Xcode 15 and 16
  • Binaries compiled for Android with all 4 ABIs: arm64-v8a, armeabi-v7a, x86, x86_64
  • Binaries compiled for FreeBSD 14.1 and 13.4
  • Binaries compiled for Windows using MinGW-w64 15.1.0 (32bit + 64bit)
  • Binaries compiled for Windows using Microsoft Visual Studio 2022, 2019 (32bit + 64bit, Debug + Release configurations)
  • Full documentation (both PcapPlusPlus website and API doxygen documentation) is available here: https://pcapplusplus.github.io/docs/quickstart

What's changed (changes from v24.09)

  • New protocol support:
    • WireGuard (thanks @nadongjun !)
    • Add gratuitous ARP requests (thanks @Dimi1010 !)
    • GTPv2
    • Cisco HDLC
  • Added the option to build only Common++ and Packet++ libraries without Pcap++, removing the dependency on third-party libraries like libpcap or WinPcap/Npcap (thanks @Dimi1010 !)
  • Updated the CMake files to support using pcapplusplus/ as the include prefix (thanks @clementperon !)
  • Added support for DPDK 23.11 and 24.11
  • Introduced nanosecond precision for timestamps in TCP reassembly
  • Added support for timestamp-related libpcap options (thanks @vcomito-apexai !)
  • Added multi-language README support (Traditional Chinese, Korean) (thanks @tigercosmos, @nadongjun !)
  • Updated OS/platform support running in CI: Ubuntu ARM64, Alpine 3.20, Fedora 42, FreeBSD 13.4/14.1, newer macOS runners (thanks @clementperon !)
  • Migrated Android build to use the new version of ToyVPN
  • Introduced a new benchmark system using Google Benchmark (thanks @egecetin !)
  • Enhanced Python testing and linting infrastructure with ruff (thanks @tigercosmos !)
  • Code refactoring:
    • Replaced the inclusion of the LightPcapNg source code in the repository with a forked version of LightPcapNg
    • Overhauled the logging infrastructure for better performance and flexibility (thanks @Dimi1010 !)
    • Reformatted CMakeLists files using gersemi (thanks @egecetin !)
    • Updated the internal implementation of PcapLiveDevice to store IP information as IPAddress (thanks @Dimi1010!)
    • Streamlined packet parsing using templated next-layer sub-construction (thanks @Dimi1010 !)
    • Refactored device list classes (PcapLiveDeviceList, DpdkDeviceList, etc.) to use smart pointers internally for memory management and consolidated common behavior under a base class (thanks @Dimi1010 !)
    • Improved the internal implementation of MacAddress, IPAddress and IPNetwork classes (thanks @Dimi1010 !)
    • Enhanced and modernized the internal implementation of PfRingDevice (thanks @Dimi1010 !)
    • Removed usage of VLAs (Variable Length Arrays) for C++ standard compliance (thanks @Dimi1010 !)
    • Numerous C++11 modernization efforts (thanks @Dimi1010, @egecetin, @lumiZGorlic, @kiwixz, @ol-imorozko !)
  • Improved documentation using triple-slash Doxygen formatting (thanks @Dimi1010, @tigercosmos !)
  • Tons of bug fixes, security fixes and small improvements (thanks @Dimi1010, @clementperon, @rndx21033, @prudens, @Doekin, @egecetin, @ol-imorozko, @1ndahous3, @fxlb, @jj683, @oss-patch, @enomis101, @Shivam7-1, @orgads, @Alexis-Lapierre, @s-genereux, @fasonju !)

Breaking changes

  • Logger::LogLevel has been deprecated and moved to LogLevel. LogLevel is now an enum class, so arithmetic operations on it will fail to compile
  • The Logger copy constructor and copy assignment operator are marked as deleted
  • The return type of Packet::getRawPacketReadOnly() has been changed from RawPacket* to RawPacket const*
  • SSLv2 support has been removed (it was non-functional in previous versions) (thanks to @droe!)
  • LightPcapNg is no longer included in the repository and is instead fetched at CMake configuration time

Deprecation list

  • PcapLiveDevice::getAddresses(), which was previously deprecated, has now been removed
  • libpcap versions < 0.9 are no longer supported. As a result, the following CMake options have been removed: PCAPPP_ENABLE_PCAP_IMMEDIATE_MODE and PCAPPP_ENABLE_PCAP_SET_DIRECTION
  • The following methods are now deprecated and will be removed in future versions:
    • Logger::Error, Logger::Info, and Logger::Debug are deprecated. Please use LogLevel::XXX instead
    • PcapLiveDeviceList::getPcapLiveDeviceBy*** methods have been deprecated in favor of PcapLiveDeviceList::getDeviceBy***
    • ArpLayer(ArpOpcode opCode, const MacAddress &senderMacAddr, const MacAddress &targetMacAddr, const IPv4Address &senderIpAddr, const IPv4Address &targetIpAddr) constructor has been deprecated in favor of more explicit overloads

Collaborators

  • @tigercosmos
  • @Dimi1010
  • @egecetin
  • @clementperon
  • @seladb

Full Changelog: seladb/PcapPlusPlus@v24.09...v25.05


Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
@github-actions github-actions bot added the bump-formula-pr PR was created using `brew bump-formula-pr` label May 14, 2025
@chenrui333
Copy link
Member

   CMake Error at /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cmake/trap_fetchcontent_provider.cmake:12 (message):
    Refusing to populate dependency 'LightPcapNg' with FetchContent while
    building in Homebrew, please use a formula dependency or add a resource to
    the formula.
  Call Stack (most recent call first):
    /home/linuxbrew/.linuxbrew/opt/cmake/share/cmake/Modules/FetchContent.cmake:2468:EVAL:1 (trap_fetchcontent_provider)
    /home/linuxbrew/.linuxbrew/opt/cmake/share/cmake/Modules/FetchContent.cmake:2468 (cmake_language)
    /home/linuxbrew/.linuxbrew/opt/cmake/share/cmake/Modules/FetchContent.cmake:2314 (__FetchContent_MakeAvailable_eval_code)
    3rdParty/CMakeLists.txt:13 (FetchContent_MakeAvailable)

@clementperon
Copy link
Contributor

@chenrui333 due to other package complaining with FetchContent, this has been reverted and the repo has been retagged...

New sha1 is a49a79e0b67b402ad75ffa96c1795def36df75c8 is it possible to close this MR and rebump to the new sha1?

@clementperon
Copy link
Contributor

I have open another MR: #223617

@chenrui333
Copy link
Member

Sounds good 👍

@chenrui333 chenrui333 closed this May 15, 2025
@chenrui333 chenrui333 added the superseded PR was replaced by another PR label May 15, 2025
@github-actions github-actions bot deleted the bump-pcapplusplus-25.05 branch May 15, 2025 22:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bump-formula-pr PR was created using `brew bump-formula-pr` superseded PR was replaced by another PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants