diff --git a/security/afl++/Makefile b/security/afl++/Makefile index 2f662451201f..d229a5cf33b8 100644 --- a/security/afl++/Makefile +++ b/security/afl++/Makefile @@ -1,136 +1,80 @@ # Created by: Fabian Keil PORTNAME= afl -PORTVERSION= 2.63c +PORTVERSION= 3.14c CATEGORIES= security -PKGNAMESUFFIX= ++ +PKGNAMESUFFIX= ++-${FLAVOR} -MAINTAINER= ports@FreeBSD.org +MAINTAINER= tobik@FreeBSD.org COMMENT= Fast instrumented fuzzer LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/docs/COPYING ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le ONLY_FOR_ARCHS_REASON= uses x86-only instrumentation or requires complete LLVM support BUILD_DEPENDS= ginstall:sysutils/coreutils -TEST_DEPENDS= bash:shells/bash + +FLAVORS= llvm gcc +FLAVOR?= ${FLAVORS:[1]} + +_LLVM_VER= 13 +llvm_BUILD_DEPENDS= clang${_LLVM_VER}:devel/llvm${_LLVM_VER} +llvm_RUN_DEPENDS= clang${_LLVM_VER}:devel/llvm${_LLVM_VER} USES= gmake tar:tgz +.if ${FLAVOR} == gcc +USE_GCC= yes +.endif USE_GITHUB= yes GH_ACCOUNT= AFLplusplus GH_PROJECT= AFLplusplus MAKEFILE= GNUmakefile -MAKE_ARGS= STRIP_CMD="${STRIP_CMD}" -ALL_TARGET= all libtokencap -INSTALL_TARGET= install-strip -TEST_TARGET= test_build - -CONFLICTS_INSTALL= afl +MAKE_ARGS= ${${ARCH} != amd64 && ${ARCH} != i386:?AFL_NO_X86=1:} \ + PREFIX="${PREFIX}/${PKGBASE}" +.if ${FLAVOR} == llvm +MAKE_ARGS+= CC=clang${_LLVM_VER} \ + CXX=clang++${_LLVM_VER} \ + LLVM_CONFIG=llvm-config${_LLVM_VER} +.endif +ALL_TARGET= distrib +QA_ENV= IGNORE_QA_stripped=1 # unstripped to keep it functional +DOCSDIR= ${PREFIX}/${PKGBASE}/share/doc/afl +MANDIRS= ${PREFIX}/${PKGBASE}/share/man/man8 BINARY_ALIAS= install=ginstall +PORTDOCS= * -OPTIONS_DEFINE= DEBUG DOCS EXAMPLES GCC LIBDISLOCATOR LLVM PYTHON -OPTIONS_DEFAULT= GCC LIBDISLOCATOR LLVM PYTHON - -# On non-x86 architectures LLVM is mandatory -OPTIONS_SLAVE= ${ARCH:Namd64:Ni386:S/${ARCH}/LLVM/} -OPTIONS_SUB= yes - -GCC_DESC= Build GCC plugin and afl-gcc-fast -LIBDISLOCATOR_DESC= Abusive allocator for uncovering heap-related bugs -LLVM_DESC= LLVM-based instrumentation -PYTHON_DESC= Python mutators support - -GCC_BUILD_DEPENDS= gcc${GCC_DEFAULT}>0:lang/gcc${GCC_DEFAULT} -GCC_RUN_DEPENDS= gcc${GCC_DEFAULT}>0:lang/gcc${GCC_DEFAULT} -GCC_MAKE_ARGS= GCC=gcc${GCC_DEFAULT:S/-devel$//} \ - GXX=g++${GCC_DEFAULT:S/-devel$//} -GCC_ALL_TARGET= gcc_plugin -GCC_TEST_TARGET= test_gcc_plugin - -LIBDISLOCATOR_ALL_TARGET= libdislocator - -LLVM_BUILD_DEPENDS= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -LLVM_RUN_DEPENDS= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -LLVM_MAKE_ARGS= _AFL_REAL_LD=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} \ - CC=clang${LLVM_DEFAULT} \ - CXX=clang++${LLVM_DEFAULT} \ - LLVM_CONFIG=llvm-config${LLVM_DEFAULT} -LLVM_ALL_TARGET= llvm_mode -LLVM_TEST_TARGET= test_llvm_mode -LLVM_BINARY_ALIAS= llvm-config=llvm-config${LLVM_DEFAULT} - -PYTHON_USES= gettext-runtime python:3.7 -PYTHON_MAKE_ARGS_OFF= PYTHON_INCLUDE=/nonexistent - -.include - -.if ${ARCH} == "i386" || ${ARCH} == "amd64" -PLIST_SUB+= X86="" -.else -MAKE_ARGS+= AFL_NO_X86=1 -PLIST_SUB+= X86="@comment " -.endif +OPTIONS_DEFINE= DEBUG DOCS PYTHON +OPTIONS_DEFAULT= PYTHON -.if ${ARCH} == "i386" -# Clang i386 emits .cfi_sections which base as(1) doesn't understand -BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils -RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils -.endif +PYTHON_DESC= Python mutators support + +PYTHON_USES= gettext-runtime python +PYTHON_BINARY_ALIAS= python3-config=${PYTHON_CMD}-config \ + python3=${PYTHON_CMD} post-patch: -# Disable the instrumentation tests to make sure building packages in -# jails works by default. afl needs shmget() which usually isn't -# available in jails. - @${REINPLACE_CMD} 's@^\(all.*\) test_build@\1@' \ - ${WRKSRC}/${MAKEFILE} \ - ${WRKSRC}/gcc_plugin/GNUmakefile \ - ${WRKSRC}/llvm_mode/GNUmakefile -.if ${ARCH} == "i386" + @${REINPLACE_CMD} '/alt_cc/ s,"gcc","gcc${GCC_DEFAULT:S/-devel$//}",' \ + ${WRKSRC}/src/afl-cc.c +.if ${FLAVOR} == gcc @${REINPLACE_CMD} 's@\( as_params\[0\] = afl_as ? afl_as : \)\(.*\)@\1(u8*)"${LOCALBASE}/bin/as";@' \ ${WRKSRC}/src/afl-as.c +.elif ${FLAVOR} == llvm + @${ECHO_CMD} "all:" >${WRKSRC}/GNUmakefile.gcc_plugin .endif - @${ECHO_CMD} "include ${FILESDIR}/Makefile.extra" >> ${WRKSRC}/${MAKEFILE} - -post-patch-LLVM-on: - @${REINPLACE_CMD} \ - -e 's|"clang"|"clang${LLVM_DEFAULT}"|g' \ - -e 's|"clang\+\+"|"clang\+\+${LLVM_DEFAULT}"|g' \ - ${WRKSRC}/llvm_mode/afl-clang-fast.c post-install: - @${MKDIR} ${STAGEDIR}${DOCSDIR}/libtokencap - ${INSTALL_MAN} ${WRKSRC}/libtokencap/README.md \ - ${STAGEDIR}${DOCSDIR}/libtokencap - @cd ${STAGEDIR}${PREFIX} && \ - ${FIND} lib/afl -name 'argvfuzz*.so' -or -name 'socketfuzz*.so' \ - >> ${TMPPLIST} - -post-install-EXAMPLES-on: - @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/custom_mutators - @cd ${WRKSRC}/examples && \ - ${COPYTREE_SHARE} custom_mutators ${STAGEDIR}${EXAMPLESDIR} - -post-install-GCC-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR}/gcc_plugin - ${INSTALL_MAN} ${WRKSRC}/gcc_plugin/README.* \ - ${STAGEDIR}${DOCSDIR}/gcc_plugin - -post-install-LIBDISLOCATOR-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR}/libdislocator - ${INSTALL_MAN} ${WRKSRC}/libdislocator/README.md \ - ${STAGEDIR}${DOCSDIR}/libdislocator - -post-install-LLVM-on: - ${MKDIR} ${STAGEDIR}${DOCSDIR}/llvm_mode - ${INSTALL_MAN} ${WRKSRC}/llvm_mode/README.* \ - ${STAGEDIR}${DOCSDIR}/llvm_mode - -post-test: -# libtokencap test might require security.bsd.unprivileged_proc_debug=1 - @cd ${WRKSRC}/test && ${SETENV} AFL_PATH=${WRKSRC} ./test.sh + @${MKDIR} ${STAGEDIR}${PREFIX}/etc/man.d + @${ECHO_CMD} "MANPATH ${PREFIX}/${PKGBASE}/share/man" >${STAGEDIR}${PREFIX}/etc/man.d/${PKGBASE}.conf + @${ECHO_CMD} "etc/man.d/${PKGBASE}.conf" >>${TMPPLIST} + @cd ${STAGEDIR}${PREFIX}; \ + ${FIND} ${PKGBASE} -not -path '${PKGBASE}/share/doc/*' -and \( -type f -or -type l \) | \ + ${SED} -Ee 's,^afl\+\+-${FLAVOR}/share/man/.*,&.gz,' \ + -e 's,^.*/afl-${${FLAVOR} == gcc:?(clang|llvm):(gcc|g\+\+)}.*,@comment &,' | \ + ${SORT} >> ${TMPPLIST} + @${CAT} ${TMPPLIST} .include diff --git a/security/afl++/distinfo b/security/afl++/distinfo index 499db11b6006..a1f2af361248 100644 --- a/security/afl++/distinfo +++ b/security/afl++/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1586436254 -SHA256 (AFLplusplus-AFLplusplus-2.63c_GH0.tar.gz) = 9c314899015620a9e57054f15f3fed29104c0f762098e30707267ef70be1add8 -SIZE (AFLplusplus-AFLplusplus-2.63c_GH0.tar.gz) = 1326005 +TIMESTAMP = 1633793558 +SHA256 (AFLplusplus-AFLplusplus-3.14c_GH0.tar.gz) = 36552e3aac5c390dfec4f75d0dd60dc802c3e97b8baf042aa1edb6529dba0766 +SIZE (AFLplusplus-AFLplusplus-3.14c_GH0.tar.gz) = 2162934 diff --git a/security/afl++/files/Makefile.extra b/security/afl++/files/Makefile.extra deleted file mode 100644 index 2215dc1df5eb..000000000000 --- a/security/afl++/files/Makefile.extra +++ /dev/null @@ -1,26 +0,0 @@ -.PHONY: gcc_plugin install-strip libdislocator libtokencap llvm_mode test_gcc_plugin test_llvm_mode - -install-strip: install - @cd ${DESTDIR}${BIN_PATH} && ${STRIP_CMD} ${PROGS} - @-${STRIP_CMD} ${DESTDIR}${BIN_PATH}/afl-clang-fast - @-${STRIP_CMD} ${DESTDIR}${BIN_PATH}/afl-gcc-fast -# XXX: strip(1) trips up when stripping all things in HELPER_PATH in one go? - @cd ${DESTDIR}${HELPER_PATH} && for f in afl-as afl-ld *.so; do ${STRIP_CMD} $${f}; done - -libdislocator: - $(MAKE) -C libdislocator CFLAGS="-I../include ${CFLAGS}" - -libtokencap: - $(MAKE) -C libtokencap - -llvm_mode: - $(MAKE) -C llvm_mode AFL_REAL_LD="$(_AFL_REAL_LD)" - -test_llvm_mode: - $(MAKE) -C llvm_mode AFL_REAL_LD="$(_AFL_REAL_LD)" test_build - -gcc_plugin: - $(MAKE) -C gcc_plugin CC="${GCC}" CXX="${GXX}" - -test_gcc_plugin: - $(MAKE) -C gcc_plugin CC="${GCC}" CXX="${GXX}" test_build diff --git a/security/afl++/files/patch-include_types.h b/security/afl++/files/patch-include_types.h deleted file mode 100644 index deb9ca8acdb5..000000000000 --- a/security/afl++/files/patch-include_types.h +++ /dev/null @@ -1,14 +0,0 @@ ---- include/types.h.orig 2020-05-30 22:59:57 UTC -+++ include/types.h -@@ -46,11 +46,7 @@ typedef uint32_t u32; - - */ - --#ifdef __x86_64__ - typedef unsigned long long u64; --#else --typedef uint64_t u64; --#endif /* ^__x86_64__ */ - - typedef int8_t s8; - typedef int16_t s16; diff --git a/security/afl++/files/patch-src_afl-cc.c b/security/afl++/files/patch-src_afl-cc.c new file mode 100644 index 000000000000..58c9e8e9403f --- /dev/null +++ b/security/afl++/files/patch-src_afl-cc.c @@ -0,0 +1,11 @@ +--- src/afl-cc.c.orig 2021-10-09 18:30:48 UTC ++++ src/afl-cc.c +@@ -395,7 +395,7 @@ static void edit_params(u32 argc, char **argv, char ** + snprintf(llvm_fullpath, sizeof(llvm_fullpath), "%s/clang", + LLVM_BINDIR); + else +- snprintf(llvm_fullpath, sizeof(llvm_fullpath), CLANGPP_BIN); ++ snprintf(llvm_fullpath, sizeof(llvm_fullpath), CLANG_BIN); + alt_cc = llvm_fullpath; + + } diff --git a/security/afl++/files/patch-test_test.sh b/security/afl++/files/patch-test_test.sh deleted file mode 100644 index d116a8a6aaff..000000000000 --- a/security/afl++/files/patch-test_test.sh +++ /dev/null @@ -1,70 +0,0 @@ -Chicken and egg: Make tests runnable without afl++ already installed. - -[!] LTO llvm_mode failed -clang-9: error: invalid linker name in argument '-fuse-ld=/usr/local/lib/afl/afl-ld' -[!] llvm_mode LTO persistent mode feature compilation failed - -Setting AFL_CC is not necessary since all programs should be compiled -with the right settings already. - ---- test/test.sh.orig 2020-04-09 08:23:37 UTC -+++ test/test.sh -@@ -220,14 +220,6 @@ test "$SYS" = "i686" -o "$SYS" = "x86_64" -o "$SYS" = - - $ECHO "$BLUE[*] Testing: llvm_mode, afl-showmap, afl-fuzz, afl-cmin and afl-tmin" - test -e ../afl-clang-fast -a -e ../split-switches-pass.so && { -- # on FreeBSD need to set AFL_CC -- test `uname -s` = 'FreeBSD' && { -- if type clang >/dev/null; then -- export AFL_CC=`command -v clang` -- else -- export AFL_CC=`$LLVM_CONFIG --bindir`/clang -- fi -- } - ../afl-clang-fast -o test-instr.plain ../test-instr.c > /dev/null 2>&1 - AFL_HARDEN=1 ../afl-clang-fast -o test-compcov.harden test-compcov.c > /dev/null 2>&1 - test -e test-instr.plain && { -@@ -398,16 +390,7 @@ test -e ../afl-clang-fast -a -e ../split-switches-pass - - $ECHO "$BLUE[*] Testing: LTO llvm_mode" - test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrumentation.so && { -- # on FreeBSD need to set AFL_CC -- test `uname -s` = 'FreeBSD' && { -- if type clang >/dev/null; then -- export AFL_CC=`command -v clang` -- else -- export AFL_CC=`$LLVM_CONFIG --bindir`/clang -- fi -- } -- -- ../afl-clang-lto -o test-instr.plain ../test-instr.c > /dev/null 2>&1 -+ ../afl-clang-lto -fuse-ld="$(realpath ../afl-ld)" -o test-instr.plain ../test-instr.c > /dev/null 2>&1 - test -e test-instr.plain && { - $ECHO "$GREEN[+] llvm_mode LTO compilation succeeded" - echo 0 | ../afl-showmap -m ${MEM_LIMIT} -o test-instr.plain.0 -r -- ./test-instr.plain > /dev/null 2>&1 -@@ -452,7 +435,7 @@ test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrum - # CODE=1 - # } - # rm -f test-compcov test.out whitelist.txt -- ../afl-clang-lto -o test-persistent ../examples/persistent_demo/persistent_demo.c > /dev/null 2>&1 -+ ../afl-clang-lto -fuse-ld="$(realpath ../afl-ld)" -o test-persistent ../examples/persistent_demo/persistent_demo.c > /dev/null 2>&1 - test -e test-persistent && { - echo foo | ../afl-showmap -o /dev/null -q -r ./test-persistent && { - $ECHO "$GREEN[+] llvm_mode LTO persistent mode feature works correctly" -@@ -472,8 +455,6 @@ test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrum - - $ECHO "$BLUE[*] Testing: gcc_plugin" - test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && { -- SAVE_AFL_CC=${AFL_CC} -- export AFL_CC=`command -v gcc` - ../afl-gcc-fast -o test-instr.plain.gccpi ../test-instr.c > /dev/null 2>&1 - AFL_HARDEN=1 ../afl-gcc-fast -o test-compcov.harden.gccpi test-compcov.c > /dev/null 2>&1 - test -e test-instr.plain.gccpi && { -@@ -575,7 +556,6 @@ test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && { - CODE=1 - } - rm -f test-persistent -- export AFL_CC=${SAVE_AFL_CC} - } || { - $ECHO "$YELLOW[-] gcc_plugin not compiled, cannot test" - INCOMPLETE=1 diff --git a/security/afl++/pkg-plist b/security/afl++/pkg-plist deleted file mode 100644 index bbea3ea09152..000000000000 --- a/security/afl++/pkg-plist +++ /dev/null @@ -1,163 +0,0 @@ -bin/afl-analyze -%%X86%%bin/afl-clang -%%X86%%bin/afl-clang++ -%%LLVM%%bin/afl-clang-fast -%%LLVM%%bin/afl-clang-fast++ -%%LLVM%%bin/afl-clang-lto -%%LLVM%%bin/afl-clang-lto++ -%%GCC%%bin/afl-g++-fast -%%GCC%%bin/afl-gcc-fast -bin/afl-cmin -bin/afl-cmin.bash -bin/afl-fuzz -%%X86%%bin/afl-g++ -%%X86%%bin/afl-gcc -bin/afl-gotcpu -bin/afl-plot -bin/afl-showmap -bin/afl-system-config -bin/afl-tmin -bin/afl-whatsup -%%X86%%lib/afl/afl-as -%%GCC%%lib/afl/afl-gcc-pass.so -%%GCC%%lib/afl/afl-gcc-rt.o -%%LLVM%%lib/afl/afl-ld -%%LLVM%%lib/afl/afl-llvm-lto-instrumentation.so -%%LLVM%%lib/afl/afl-llvm-lto-whitelist.so -%%LLVM%%lib/afl/afl-llvm-pass.so -%%X86%%%%LLVM%%lib/afl/afl-llvm-rt-32.o -%%LLVM%%lib/afl/afl-llvm-rt-64.o -%%LLVM%%lib/afl/afl-llvm-rt.o -%%X86%%lib/afl/as -%%LLVM%%lib/afl/cmplog-instructions-pass.so -%%LLVM%%lib/afl/cmplog-routines-pass.so -%%LLVM%%lib/afl/compare-transform-pass.so -%%LLVM%%lib/afl/ld -%%LIBDISLOCATOR%%lib/afl/libdislocator.so -lib/afl/libtokencap.so -%%LLVM%%lib/afl/libLLVMInsTrim.so -%%LLVM%%lib/afl/split-compares-pass.so -%%LLVM%%lib/afl/split-switches-pass.so -man/man8/afl-analyze.8.gz -man/man8/afl-as.8.gz -%%LLVM%%man/man8/afl-clang-fast.8.gz -%%LLVM%%man/man8/afl-clang-fast++.8.gz -%%LLVM%%man/man8/afl-clang-lto.8.gz -%%LLVM%%man/man8/afl-clang-lto++.8.gz -man/man8/afl-cmin.8.gz -man/man8/afl-cmin.bash.8.gz -man/man8/afl-fuzz.8.gz -%%GCC%%man/man8/afl-g++-fast.8.gz -%%GCC%%man/man8/afl-gcc-fast.8.gz -man/man8/afl-gcc.8.gz -man/man8/afl-gotcpu.8.gz -man/man8/afl-plot.8.gz -man/man8/afl-showmap.8.gz -man/man8/afl-system-config.8.gz -man/man8/afl-tmin.8.gz -man/man8/afl-whatsup.8.gz -%%DATADIR%%/README.md -%%DATADIR%%/archives/common/ar/small_archive.a -%%DATADIR%%/archives/common/bzip2/small_archive.bz2 -%%DATADIR%%/archives/common/cab/small_archive.cab -%%DATADIR%%/archives/common/compress/small_archive.Z -%%DATADIR%%/archives/common/cpio/small_archive.cpio -%%DATADIR%%/archives/common/gzip/small_archive.gz -%%DATADIR%%/archives/common/lzo/small_archive.lzo -%%DATADIR%%/archives/common/rar/small_archive.rar -%%DATADIR%%/archives/common/tar/small_archive.tar -%%DATADIR%%/archives/common/xz/small_archive.xz -%%DATADIR%%/archives/common/zip/small_archive.zip -%%DATADIR%%/archives/exotic/arj/small_archive.arj -%%DATADIR%%/archives/exotic/lha/small_archive.lha -%%DATADIR%%/archives/exotic/lrzip/small_archive.lrz -%%DATADIR%%/archives/exotic/lzip/small_archive.lz -%%DATADIR%%/archives/exotic/lzma/small_archive.lzma -%%DATADIR%%/archives/exotic/rzip/small_archive.rz -%%DATADIR%%/archives/exotic/zoo/small_archive.zoo -%%DATADIR%%/gif.dict -%%DATADIR%%/html_tags.dict -%%DATADIR%%/images/bmp/not_kitty.bmp -%%DATADIR%%/images/gif/not_kitty.gif -%%DATADIR%%/images/ico/not_kitty.ico -%%DATADIR%%/images/jp2/not_kitty.jp2 -%%DATADIR%%/images/jpeg/not_kitty.jpg -%%DATADIR%%/images/jxr/not_kitty.jxr -%%DATADIR%%/images/png/not_kitty.png -%%DATADIR%%/images/png/not_kitty_alpha.png -%%DATADIR%%/images/png/not_kitty_gamma.png -%%DATADIR%%/images/png/not_kitty_icc.png -%%DATADIR%%/images/tiff/not_kitty.tiff -%%DATADIR%%/images/webp/not_kitty.webp -%%DATADIR%%/jpeg.dict -%%DATADIR%%/js.dict -%%DATADIR%%/json.dict -%%DATADIR%%/multimedia/h264/small_movie.mp4 -%%DATADIR%%/others/elf/small_exec.elf -%%DATADIR%%/others/js/small_script.js -%%DATADIR%%/others/pcap/small_capture.pcap -%%DATADIR%%/others/pdf/small.pdf -%%DATADIR%%/others/rtf/small_document.rtf -%%DATADIR%%/others/sql/simple_queries.sql -%%DATADIR%%/others/text/hello_world.txt -%%DATADIR%%/others/xml/small_document.xml -%%DATADIR%%/pdf.dict -%%DATADIR%%/png.dict -%%DATADIR%%/regexp.dict -%%DATADIR%%/sql.dict -%%DATADIR%%/tiff.dict -%%DATADIR%%/webp.dict -%%DATADIR%%/xml.dict -%%PORTDOCS%%%%DOCSDIR%%/Changelog.md -%%PORTDOCS%%%%DOCSDIR%%/INSTALL.md -%%PORTDOCS%%%%DOCSDIR%%/PATCHES.md -%%PORTDOCS%%%%DOCSDIR%%/QuickStartGuide.md -%%PORTDOCS%%%%DOCSDIR%%/README.MOpt.md -%%PORTDOCS%%%%DOCSDIR%%/README.cmplog.md -%%PORTDOCS%%%%DOCSDIR%%/README.ctx.md -%%PORTDOCS%%%%DOCSDIR%%/README.instrim.md -%%PORTDOCS%%%%DOCSDIR%%/README.laf-intel.md -%%PORTDOCS%%%%DOCSDIR%%/README.llvm_mode.md -%%PORTDOCS%%%%DOCSDIR%%/README.lto.md -%%PORTDOCS%%%%DOCSDIR%%/README.md -%%PORTDOCS%%%%DOCSDIR%%/README.neverzero.md -%%PORTDOCS%%%%DOCSDIR%%/README.ngram.md -%%PORTDOCS%%%%DOCSDIR%%/README.radamsa.md -%%PORTDOCS%%%%DOCSDIR%%/README.snapshot.md -%%PORTDOCS%%%%DOCSDIR%%/README.whitelist.md -%%PORTDOCS%%%%DOCSDIR%%/binaryonly_fuzzing.md -%%PORTDOCS%%%%DOCSDIR%%/custom_mutators.md -%%PORTDOCS%%%%DOCSDIR%%/env_variables.md -%%GCC%%%%PORTDOCS%%%%DOCSDIR%%/gcc_plugin/README.md -%%GCC%%%%PORTDOCS%%%%DOCSDIR%%/gcc_plugin/README.whitelist.md -%%PORTDOCS%%%%DOCSDIR%%/historical_notes.md -%%PORTDOCS%%%%DOCSDIR%%/ideas.md -%%LIBDISLOCATOR%%%%PORTDOCS%%%%DOCSDIR%%/libdislocator/README.md -%%PORTDOCS%%%%DOCSDIR%%/libtokencap/README.md -%%PORTDOCS%%%%DOCSDIR%%/life_pro_tips.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.cmplog.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.ctx.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.instrim.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.laf-intel.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.lto.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.neverzero.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.ngram.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.snapshot.md -%%LLVM%%%%PORTDOCS%%%%DOCSDIR%%/llvm_mode/README.whitelist.md -%%PORTDOCS%%%%DOCSDIR%%/notes_for_asan.md -%%PORTDOCS%%%%DOCSDIR%%/parallel_fuzzing.md -%%PORTDOCS%%%%DOCSDIR%%/perf_tips.md -%%PORTDOCS%%%%DOCSDIR%%/power_schedules.md -%%PORTDOCS%%%%DOCSDIR%%/sister_projects.md -%%PORTDOCS%%%%DOCSDIR%%/status_screen.md -%%PORTDOCS%%%%DOCSDIR%%/technical_details.md -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/README.md -%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/XmlMutatorMin.py -%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/common.py -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/custom_mutator_helpers.h -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/example.c -%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/example.py -%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/simple-chunk-replace.py -%%PYTHON%%%%PORTEXAMPLES%%%%EXAMPLESDIR%%/custom_mutators/wrapper_afl_min.py diff --git a/security/afl/Makefile b/security/afl/Makefile index c018882ece89..822ecccce0b0 100644 --- a/security/afl/Makefile +++ b/security/afl/Makefile @@ -1,91 +1,89 @@ # Created by: Fabian Keil PORTNAME= afl PORTVERSION= 2.52 DISTVERSIONSUFFIX= b PORTREVISION= 4 CATEGORIES= security MASTER_SITES= http://lcamtuf.coredump.cx/afl/releases/ MAINTAINER= ports@FreeBSD.org COMMENT= Fast instrumented fuzzer LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/docs/COPYING # In theory afl supports other architectures with the LLVM plugin. # It has to be compiled with AFL_NO_X86=1 in that case. ONLY_FOR_ARCHS= amd64 i386 ONLY_FOR_ARCHS_REASON= Uses binary instrumentation USES= gmake tar:tgz ALL_TARGET= all libdislocator TEST_TARGET= test_build -CONFLICTS_INSTALL= afl++ - OPTIONS_DEFINE= DEBUG DOCS LLVM OPTIONS_DEFAULT= LLVM OPTIONS_SUB= yes LLVM_DESC= LLVM-based instrumentation LLVM_BUILD_DEPENDS= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} LLVM_RUN_DEPENDS= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} LLVM_MAKE_ARGS= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} LLVM_ALL_TARGET= llvm_mode LLVM_TEST_TARGET= test_llvm_mode LLVM_VARS= CC=clang${LLVM_DEFAULT} \ CXX=clang++${LLVM_DEFAULT} .include .if ${LLVM_DEFAULT:C/[1-5]./&0/:S,-devel,990,} >= 90 LLVM_DEFAULT= 80 .endif .if ${ARCH} == "i386" # Clang i386 emits .cfi_sections which base as(1) doesn't understand BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils .endif post-patch: # Disable the instrumentation tests to make sure building packages in # jails works by default. afl needs shmget() which usually isn't # available in jails. @${REINPLACE_CMD} 's@^\(all.*\) test_build@\1@' \ ${WRKSRC}/Makefile ${WRKSRC}/llvm_mode/Makefile .if ${ARCH} == "i386" @${REINPLACE_CMD} 's@\( as_params\[0\] = afl_as ? afl_as : \)\(.*\)@\1(u8*)"${LOCALBASE}/bin/as";@' \ ${WRKSRC}/afl-as.c .endif @${CAT} ${FILESDIR}/Makefile.extra >> ${WRKSRC}/Makefile post-patch-LLVM-on: @${REINPLACE_CMD} \ -e 's|"clang"|"clang${LLVM_DEFAULT}"|g' \ -e 's|"clang\+\+"|"clang\+\+${LLVM_DEFAULT}"|g' \ ${WRKSRC}/llvm_mode/afl-clang-fast.c post-install: .for script in afl-cmin afl-plot afl-whatsup ${INSTALL_SCRIPT} ${WRKSRC}/${script} ${STAGEDIR}${PREFIX}/bin .endfor @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/afl/afl-as .for prog in afl-analyze afl-fuzz afl-gcc afl-gotcpu afl-showmap afl-tmin @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${prog} .endfor ${INSTALL_LIB} ${WRKSRC}/libdislocator/libdislocator.so \ ${STAGEDIR}${PREFIX}/lib/afl ${INSTALL_DATA} ${WRKSRC}/libdislocator/README.dislocator \ ${STAGEDIR}${DOCSDIR} post-install-LLVM-on: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/afl/afl-llvm-pass.so @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/afl-clang-fast ${INSTALL_DATA} ${WRKSRC}/llvm_mode/README.llvm \ ${STAGEDIR}${DOCSDIR} .include