From: Victor Julien Date: Tue, 19 Feb 2019 08:44:14 +0000 (+0100) Subject: windows: msys/mingw based appveyor support X-Git-Tag: suricata-5.0.0-beta1~206 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F3669%2Fhead;p=thirdparty%2Fsuricata.git windows: msys/mingw based appveyor support Add rust but have it disabled as it is broken. Add windivert, winpcap and npcap builds. Run unittests on one of the builds. Use reasonably strict CFLAGS. --- diff --git a/appveyor.yml b/appveyor.yml index 3419d1c98e..54709ccfd7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,61 +1,71 @@ -# Based on https://github.com/redis/hiredis/blob/master/appveyor.yml -# and https://github.com/dokan-dev/dokany/pull/336/files -# Appveyor configuration file for CI build of hiredis on Windows (under Cygwin) environment: - matrix: -# - CYG_ROOT: C:\cygwin64 -# CYG_SETUP: setup-x86_64.exe -# CYG_MIRROR: http://cygwin.mirror.constant.com -# CYG_CACHE: C:\cygwin64\var\cache\setup -# CYG_BASH: C:\cygwin64\bin\bash -# CC: gcc - - CYG_ROOT: C:\cygwin - CYG_SETUP: setup-x86.exe - CYG_MIRROR: http://cygwin.mirror.constant.com - CYG_CACHE: C:\cygwin\var\cache\setup - CYG_BASH: C:\cygwin\bin\bash - CC: gcc - CFLAGS: -Wall -Wextra -Werror -Wshadow -Wno-unused-parameter -Wno-unused-function + matrix: + - COMPILER: mingw-w64 + PCAP_URL: https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip + PCAP_FILE: WpdPack_4_1_2.zip + PCAP_EXTRACT: c:\ + PCAP_PATH: "c:\\WpdPack\\Lib\\x64;c:\\WinDivert-1.4.3-A\\x86_64" + CONFIGURE: "--with-libpcap-libraries=/c/WpdPack/Lib/x64 --with-libpcap-includes=/c/WpdPack/Include --enable-windivert --with-windivert-include=/c/WinDivert-1.4.3-A/include --with-windivert-libraries=/c/WinDivert-1.4.3-A/x86_64 --enable-unittests" + MINGW_DIR: c:\msys64\mingw64 + MINGW_ARCH: x86_64 + RUST: disable + WINDIVERT: enable + UNITTESTS: enable + CFLAGS: -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-function -# Cache Cygwin files to speed up build -cache: - - '%CYG_CACHE%' -clone_depth: 1 + - COMPILER: mingw + PCAP_URL: https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip + PCAP_FILE: WpdPack_4_1_2.zip + PCAP_EXTRACT: c:\ + PCAP_PATH: "c:\\WpdPack\\Lib" + CONFIGURE: "--with-libpcap-libraries=/c/WpdPack/Lib --with-libpcap-includes=/c/WpdPack/Include" + MINGW_DIR: c:\msys64\mingw32 + MINGW_ARCH: i686 + RUST: disable + WINDIVERT: disable + UNITTESTS: disable + CFLAGS: -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-function -# Attempt to ensure we don't try to convert line endings to Win32 CRLF as this will cause build to fail -init: - - git config --global core.autocrlf input -# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) + - COMPILER: mingw-w64 + PCAP_URL: https://nmap.org/npcap/dist/npcap-sdk-1.01.zip + PCAP_FILE: npcap-sdk-1.01.zip + PCAP_EXTRACT: c:\npcap\ + PCAP_PATH: "c:\\npcap\\Lib\\x64" + CONFIGURE: "--with-libpcap-libraries=/c/npcap/Lib/x64 --with-libpcap-includes=/c/npcap/Include" + MINGW_DIR: c:\msys64\mingw64 + MINGW_ARCH: x86_64 + RUST: disable + WINDIVERT: disable + UNITTESTS: disable + CFLAGS: -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-function + +before_build: + - set Path=%MINGW_DIR%\bin;%Path% + - c:\msys64\usr\bin\pacman -Su --noconfirm libyaml-devel pcre-devel jansson-devel + - c:\msys64\usr\bin\pacman -Su --noconfirm mingw-w64-"%MINGW_ARCH%"-libyaml + - c:\msys64\usr\bin\pacman -Su --noconfirm mingw-w64-"%MINGW_ARCH%"-pcre + - c:\msys64\usr\bin\pacman -Su --noconfirm mingw-w64-"%MINGW_ARCH%"-rust + - c:\msys64\usr\bin\pacman -Su --noconfirm mingw-w64-"%MINGW_ARCH%"-jansson -# Install needed build dependencies. First update cygwin to avoid weird dll issues. install: - - ps: 'Start-FileDownload "http://cygwin.com/$env:CYG_SETUP" -FileName "$env:CYG_SETUP"' - - '%CYG_SETUP% -gqnNdO --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" > NUL 2>&1' - - '%CYG_SETUP% --quiet-mode --no-shortcuts --only-site --root "%CYG_ROOT%" --site "%CYG_MIRROR%" --local-package-dir "%CYG_CACHE%" --packages automake,bison,gcc-core,libtool,make,gettext-devel,gettext,intltool,pkg-config,clang,llvm,libpcre-devel,file-devel,wget,zlib-devel,libnss-devel,libnspr-devel,libGeoIP-devel,libyaml-devel,luajit-devel,unzip,libiconv,libiconv-devel > NUL 2>&1' - - '%CYG_BASH% -lc "cygcheck -dc cygwin"' - - '%CYG_BASH% -lc "wget https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip && ls && unzip WpdPack_4_1_2.zip"' - - '%CYG_BASH% -lc "cp WpdPack/Lib/libpacket.a /usr/lib/"' - - '%CYG_BASH% -lc "cp WpdPack/Lib/libwpcap.a /usr/lib/libpcap.a"' # so -lpcap works -# - '%CYG_BASH% -lc "cp WpdPack/Lib/libwpcap.a /usr/lib/libwpcap.a"' - - '%CYG_BASH% -lc "cp WpdPack/Lib/Packet.lib /usr/lib/"' - - '%CYG_BASH% -lc "cp WpdPack/Lib/wpcap.lib /usr/lib/"' - - '%CYG_BASH% -lc "mkdir -p /usr/include/pcap"' - - '%CYG_BASH% -lc "cp -r WpdPack/Include/* /usr/include/"' - - choco install winpcap # userspace + - choco install winpcap # winpcap userspace + - if not exist "%PCAP_FILE%" appveyor DownloadFile "%PCAP_URL%" -FileName "%PCAP_FILE%" + - 7z x -y -o%PCAP_EXTRACT% "%PCAP_FILE%" + - if "%WINDIVERT%"=="enable" appveyor DownloadFile https://reqrypt.org/download/WinDivert-1.4.3-A.zip -FileName windivert.zip + - if "%WINDIVERT%"=="enable" 7z x -y -oc:\ windivert.zip build_script: - - 'echo building...' - - '%CYG_BASH% -lc "cd $APPVEYOR_BUILD_FOLDER; bash ./qa/travis-libhtp.sh"' - - '%CYG_BASH% -lc "cd $APPVEYOR_BUILD_FOLDER; ./autogen.sh"' - - '%CYG_BASH% -lc "cd $APPVEYOR_BUILD_FOLDER; ./configure --enable-unittests --disable-shared --disable-gccmarch-native --enable-luajit --enable-geoip"' - - '%CYG_BASH% -lc "cd $APPVEYOR_BUILD_FOLDER; exec 0