From ab8fb84df05a1ac43ce3dfa1f97d911a77905195 Mon Sep 17 00:00:00 2001 From: msmeissn <> Date: Jun 02 2021 20:26:30 +0000 Subject: Update afl to version 3.13c / rev 62 via SR 896671 https://build.opensuse.org/request/show/896671 by user msmeissn + dimstar_suse - updated to 3.13c - Note: plot_data switched to relative time from unix time in 3.10 - frida_mode - new mode that uses frida to fuzz binary-only targets, it currently supports persistent mode and cmplog. thanks to @WorksButNotTested! - create a fuzzing dictionary with the help of CodeQL thanks to @microsvuln! see utils/autodict_ql - afl-fuzz: - added patch by @realmadsci to support @@ as part of command line options, e.g. `afl-fuzz ... -- ./target --infile=@@` - add recording of previous fuzz attempts for persistent mode to allow replay of non-reproducable crashes, see AFL_PERSISTENT_RECORD in config.h and docs/envs.h - fixed a bug when trimming for stdin targets - cmplog -l: default cmplog level is now 2, better efficiency. level --- diff --git a/.files b/.files index 2593bc0..aba310f 100644 Binary files a/.files and b/.files differ diff --git a/.rev b/.rev index a52fd7e..4f09671 100644 --- a/.rev +++ b/.rev @@ -790,4 +790,172 @@ - added NO_SPLICING compile option and makefile define (forwarded request 855999 from msmeissn) 856003 + + 3d07e873b06b3441070e7b6eb6bb5924 + 3.10c + + RBrownSUSE + - update to 3.10c + - Mac OS ARM64 support + - Android support fixed and updated by Joey Jiaojg - thanks! + - New selective instrumentation option with __AFL_COVERAGE_* commands + to be placed in the source code. + Check out instrumentation/README.instrument_list.md + - afl-fuzz + - Making AFL_MAP_SIZE (mostly) obsolete - afl-fuzz now learns on + start the target map size + - upgraded cmplog/redqueen: solving for floating point, solving + transformations (e.g. toupper, tolower, to/from hex, xor, + arithmetics, etc.). This is costly hence new command line option + `-l` that sets the intensity (values 1 to 3). Recommended is 2. + - added `AFL_CMPLOG_ONLY_NEW` to not use cmplog on initial seeds + from `-i` or resumes (these have most likely already been done) + - fix crash for very, very fast targets+systems (thanks to mhlakhani + for reporting) + - on restarts (`-i`)/autoresume (AFL_AUTORESUME) the stats are now + reloaded and used, thanks to Vimal Joseph for this patch! + - changed the meaning of '+' of the '-t' option, it now means to + auto-calculate the timeout with the value given being the max + timeout. The original meaning of skipping timeouts instead of + abort is now inherent to the -t option. + - if deterministic mode is active (`-D`, or `-M` without `-d`) then + we sync after every queue entry as this can take very long time + otherwise + - added minimum SYNC_TIME to include/config.h (30 minutes default) + - better detection if a target needs a large shared map + - fix for `-Z` + - fixed a few crashes + 875949 + + + 7f5a05221f1576acc954841ca903a41a + 3.11c + + RBrownSUSE + - updated to 3.11c + - afl-fuzz: + - better auto detection of map size + - fix sanitizer settings (bug since 3.10c) + - fix an off-by-one overwrite in cmplog + - add non-unicode variants from unicode-looking dictionary entries + - Rust custom mutator API improvements + - Imported crash stats painted yellow on resume (only new ones are red) + - afl-cc: + - added AFL_NOOPT that will just pass everything to the normal + gcc/clang compiler without any changes - to pass weird configure + scripts + - fixed a crash that can occur with ASAN + CMPLOG together plus + better support for unicode (thanks to @stbergmann for reporting!) + - fixed a crash in LAF transform for empty strings + - handle erroneous setups in which multiple afl-compiler-rt are + compiled into the target. This now also supports dlopen() + instrumented libs loaded before the forkserver and even after the + forkserver is started (then with collisions though) + - the compiler rt was added also in object building (-c) which + should have been fixed years ago but somewhere got lost :( + - Renamed CTX to CALLER, added correct/real CTX implementation to + CLASSIC + - qemu_mode: + - added AFL_QEMU_EXCLUDE_RANGES env by @realmadsci, thanks! + - if no new/updated checkout is wanted, build with: + NO_CHECKOUT=1 ./build_qemu_support.sh + - we no longer perform a "git drop" + - afl-cmin: support filenames with spaces +- afl-3.0c-fix-paths.patch: refreshed (forwarded request 879398 from msmeissn) + 879399 + + + 47a25c4dc123fb7ba4ea3d9b657671a2 + 3.12c + + RBrownSUSE + - updated to 3.12c + - afl-fuzz: + - added AFL_TARGET_ENV variable to pass extra env vars to the target + (for things like LD_LIBRARY_PATH) + - fix map detection, AFL_MAP_SIZE not needed anymore for most cases + - fix counting favorites (just a display thing) + - afl-cc: + - fix cmplog rtn (rare crash and not being able to gather ptr data) + - fix our own PCGUARD implementation to compile with llvm 10.0.1 + - link runtime not to shared libs + - ensure shared libraries are properly built and instrumented + - AFL_LLVM_INSTRUMENT_ALLOW/DENY were not implemented for LTO, added + - show correct LLVM PCGUARD NATIVE mode when auto switching to it + and keep fsanitize-coverage-*list=... + Short mnemnonic NATIVE is now also accepted. + - qemu_mode (thanks @realmadsci): + - move AFL_PRELOAD and AFL_USE_QASAN logic inside afl-qemu-trace + - add AFL_QEMU_CUSTOM_BIN + - unicorn_mode + - accidently removed the subfolder from github, re-added + - added DEFAULT_PERMISSION to config.h for all files created, default + to 0600 (forwarded request 881188 from msmeissn) + 881268 + + + adf61607e46eb48a424e9f50d01c5058 + 3.12c + + RBrownSUSE + - Fix packaging on aarch64 and %{arm} (forwarded request 881925 from Guillaume_G) + 881926 + + + 77811a2fda1763331dccd4d94c11b47a + 3.12c + + RBrownSUSE + - install `afl-clang-lto`, recommended by upstream as the best variant + - add dependency on `lld` + - bump llvm-devel up to >= 11.0.0 +- fix /usr/bin/env path in afl.cmin scripts +- prevent stripping of runtime objects (fix bug 1184324) (forwarded request 882850 from haasn) + 882886 + + + 21277fc89eb4614f9ce6cefa7321d83c + 3.12c + + RBrownSUSE + - Fix packaging for aarch64 and %arm (forwarded request 884046 from Guillaume_G) + 884083 + + + c7d20b09976f613e5192b628a3442cc6 + 3.13c + + dimstar_suse + - updated to 3.13c + - Note: plot_data switched to relative time from unix time in 3.10 + - frida_mode - new mode that uses frida to fuzz binary-only targets, + it currently supports persistent mode and cmplog. + thanks to @WorksButNotTested! + - create a fuzzing dictionary with the help of CodeQL thanks to + @microsvuln! see utils/autodict_ql + - afl-fuzz: + - added patch by @realmadsci to support @@ as part of command line + options, e.g. `afl-fuzz ... -- ./target --infile=@@` + - add recording of previous fuzz attempts for persistent mode + to allow replay of non-reproducable crashes, see + AFL_PERSISTENT_RECORD in config.h and docs/envs.h + - fixed a bug when trimming for stdin targets + - cmplog -l: default cmplog level is now 2, better efficiency. + level 3 now performs redqueen on everything. use with care. + - better fuzzing strategy yield display for enabled options + - ensure one fuzzer sync per cycle + - fix afl_custom_queue_new_entry original file name when syncing + from fuzzers + - fixed a crash when more than one custom mutator was used together + with afl_custom_post_process + - on a crashing seed potentially the wrong input was disabled + - added AFL_EXIT_ON_SEED_ISSUES env that will exit if a seed in + -i dir crashes the target or results in a timeout. By default + afl++ ignores these and uses them for splicing instead. + - added AFL_EXIT_ON_TIME env that will make afl-fuzz exit fuzzing + after no new paths have been found for n seconds + - when AFL_FAST_CAL is set a variable path will now be calibrated + 8 times instead of originally 40. Long calibration is now 20. (forwarded request 896670 from msmeissn) + 896671 + diff --git a/3.0c.tar.gz b/3.0c.tar.gz deleted file mode 120000 index f86c241..0000000 --- a/3.0c.tar.gz +++ /dev/null @@ -1 +0,0 @@ -/ipfs/bafybeie6w47dkl5oau4vcxn6jyhtn4mki2z7pka5orrrp7wivos37mau6a \ No newline at end of file diff --git a/3.13c.tar.gz b/3.13c.tar.gz new file mode 120000 index 0000000..3f08597 --- /dev/null +++ b/3.13c.tar.gz @@ -0,0 +1 @@ +/ipfs/bafybeig3olp3awrfstolhx3qczx4g24hpgpwarvdmtdbfow55aic3lke6u \ No newline at end of file diff --git a/afl-3.0c-fix-paths.patch b/afl-3.0c-fix-paths.patch index cf9e809..c3103b8 100644 --- a/afl-3.0c-fix-paths.patch +++ b/afl-3.0c-fix-paths.patch @@ -1,7 +1,7 @@ -Index: AFLplusplus-3.0c/GNUmakefile +Index: AFLplusplus-3.11c/GNUmakefile =================================================================== ---- AFLplusplus-3.0c.orig/GNUmakefile -+++ AFLplusplus-3.0c/GNUmakefile +--- AFLplusplus-3.11c.orig/GNUmakefile ++++ AFLplusplus-3.11c/GNUmakefile @@ -21,8 +21,8 @@ HASH=\# PREFIX ?= /usr/local @@ -11,12 +11,12 @@ Index: AFLplusplus-3.0c/GNUmakefile +HELPER_PATH = $(LIBEXEC_DIR)/afl +DOC_PATH = $(DOC_DIR)/afl MISC_PATH = $(PREFIX)/share/afl - MAN_PATH = $(PREFIX)/man/man8 + MAN_PATH = $(PREFIX)/share/man/man8 -Index: AFLplusplus-3.0c/GNUmakefile.llvm +Index: AFLplusplus-3.11c/GNUmakefile.llvm =================================================================== ---- AFLplusplus-3.0c.orig/GNUmakefile.llvm -+++ AFLplusplus-3.0c/GNUmakefile.llvm +--- AFLplusplus-3.11c.orig/GNUmakefile.llvm ++++ AFLplusplus-3.11c/GNUmakefile.llvm @@ -20,9 +20,9 @@ HASH=\# diff --git a/afl.changes b/afl.changes index 9444faf..6e2edd5 100644 --- a/afl.changes +++ b/afl.changes @@ -1,4 +1,217 @@ ------------------------------------------------------------------- +Tue Jun 1 10:36:06 UTC 2021 - Marcus Meissner + +- updated to 3.13c + - Note: plot_data switched to relative time from unix time in 3.10 + - frida_mode - new mode that uses frida to fuzz binary-only targets, + it currently supports persistent mode and cmplog. + thanks to @WorksButNotTested! + - create a fuzzing dictionary with the help of CodeQL thanks to + @microsvuln! see utils/autodict_ql + - afl-fuzz: + - added patch by @realmadsci to support @@ as part of command line + options, e.g. `afl-fuzz ... -- ./target --infile=@@` + - add recording of previous fuzz attempts for persistent mode + to allow replay of non-reproducable crashes, see + AFL_PERSISTENT_RECORD in config.h and docs/envs.h + - fixed a bug when trimming for stdin targets + - cmplog -l: default cmplog level is now 2, better efficiency. + level 3 now performs redqueen on everything. use with care. + - better fuzzing strategy yield display for enabled options + - ensure one fuzzer sync per cycle + - fix afl_custom_queue_new_entry original file name when syncing + from fuzzers + - fixed a crash when more than one custom mutator was used together + with afl_custom_post_process + - on a crashing seed potentially the wrong input was disabled + - added AFL_EXIT_ON_SEED_ISSUES env that will exit if a seed in + -i dir crashes the target or results in a timeout. By default + afl++ ignores these and uses them for splicing instead. + - added AFL_EXIT_ON_TIME env that will make afl-fuzz exit fuzzing + after no new paths have been found for n seconds + - when AFL_FAST_CAL is set a variable path will now be calibrated + 8 times instead of originally 40. Long calibration is now 20. + - added AFL_TRY_AFFINITY to try to bind to CPUs but don't error if + it fails + - afl-cc: + - We do not support llvm versions prior 6.0 anymore + - added thread safe counters to all modes (`AFL_LLVM_THREADSAFE_INST`), + note that this disables NeverZero counters. + - Fix for -pie compiled binaries with default afl-clang-fast PCGUARD + - Leak Sanitizer (AFL_USE_LSAN) added by Joshua Rogers, thanks! + - Removed InsTrim instrumentation as it is not as good as PCGUARD + - Removed automatic linking with -lc++ for LTO mode + - Fixed a crash in llvm dict2file when a strncmp length was -1 + - added --afl-noopt support + - utils/aflpp_driver: + - aflpp_qemu_driver_hook fixed to work with qemu_mode + - aflpp_driver now compiled with -fPIC + - unicornafl: + - fix MIPS delay slot caching, thanks @JackGrence + - fixed aarch64 exit address + - execution no longer stops at address 0x0 + - updated afl-system-config to support Arch Linux weirdness and increase + MacOS shared memory + - updated the grammar custom mutator to the newest version + - add -d (add dead fuzzer stats) to afl-whatsup + - added AFL_PRINT_FILENAMES to afl-showmap/cmin to print the + current filename + - afl-showmap/cmin will now process queue items in alphabetical order + +------------------------------------------------------------------- +Fri Apr 9 12:25:49 UTC 2021 - Guillaume GARDET + +- Fix packaging for aarch64 and %arm + +------------------------------------------------------------------- +Sat Apr 3 23:31:18 UTC 2021 - Niklas Haas + +- install `afl-clang-lto`, recommended by upstream as the best variant + - add dependency on `lld` + - bump llvm-devel up to >= 11.0.0 +- fix /usr/bin/env path in afl.cmin scripts +- prevent stripping of runtime objects (fix bug 1184324) + +------------------------------------------------------------------- +Mon Mar 29 12:29:54 UTC 2021 - Guillaume GARDET + +- Fix packaging on aarch64 and %{arm} + +------------------------------------------------------------------- +Wed Mar 24 16:30:39 UTC 2021 - Marcus Meissner + +- updated to 3.12c + - afl-fuzz: + - added AFL_TARGET_ENV variable to pass extra env vars to the target + (for things like LD_LIBRARY_PATH) + - fix map detection, AFL_MAP_SIZE not needed anymore for most cases + - fix counting favorites (just a display thing) + - afl-cc: + - fix cmplog rtn (rare crash and not being able to gather ptr data) + - fix our own PCGUARD implementation to compile with llvm 10.0.1 + - link runtime not to shared libs + - ensure shared libraries are properly built and instrumented + - AFL_LLVM_INSTRUMENT_ALLOW/DENY were not implemented for LTO, added + - show correct LLVM PCGUARD NATIVE mode when auto switching to it + and keep fsanitize-coverage-*list=... + Short mnemnonic NATIVE is now also accepted. + - qemu_mode (thanks @realmadsci): + - move AFL_PRELOAD and AFL_USE_QASAN logic inside afl-qemu-trace + - add AFL_QEMU_CUSTOM_BIN + - unicorn_mode + - accidently removed the subfolder from github, re-added + - added DEFAULT_PERMISSION to config.h for all files created, default + to 0600 + +------------------------------------------------------------------- +Tue Mar 16 07:43:01 UTC 2021 - Marcus Meissner + +- updated to 3.11c + - afl-fuzz: + - better auto detection of map size + - fix sanitizer settings (bug since 3.10c) + - fix an off-by-one overwrite in cmplog + - add non-unicode variants from unicode-looking dictionary entries + - Rust custom mutator API improvements + - Imported crash stats painted yellow on resume (only new ones are red) + - afl-cc: + - added AFL_NOOPT that will just pass everything to the normal + gcc/clang compiler without any changes - to pass weird configure + scripts + - fixed a crash that can occur with ASAN + CMPLOG together plus + better support for unicode (thanks to @stbergmann for reporting!) + - fixed a crash in LAF transform for empty strings + - handle erroneous setups in which multiple afl-compiler-rt are + compiled into the target. This now also supports dlopen() + instrumented libs loaded before the forkserver and even after the + forkserver is started (then with collisions though) + - the compiler rt was added also in object building (-c) which + should have been fixed years ago but somewhere got lost :( + - Renamed CTX to CALLER, added correct/real CTX implementation to + CLASSIC + - qemu_mode: + - added AFL_QEMU_EXCLUDE_RANGES env by @realmadsci, thanks! + - if no new/updated checkout is wanted, build with: + NO_CHECKOUT=1 ./build_qemu_support.sh + - we no longer perform a "git drop" + - afl-cmin: support filenames with spaces +- afl-3.0c-fix-paths.patch: refreshed + +------------------------------------------------------------------- +Mon Mar 1 09:43:40 UTC 2021 - Marcus Meissner + +- update to 3.10c + - Mac OS ARM64 support + - Android support fixed and updated by Joey Jiaojg - thanks! + - New selective instrumentation option with __AFL_COVERAGE_* commands + to be placed in the source code. + Check out instrumentation/README.instrument_list.md + - afl-fuzz + - Making AFL_MAP_SIZE (mostly) obsolete - afl-fuzz now learns on + start the target map size + - upgraded cmplog/redqueen: solving for floating point, solving + transformations (e.g. toupper, tolower, to/from hex, xor, + arithmetics, etc.). This is costly hence new command line option + `-l` that sets the intensity (values 1 to 3). Recommended is 2. + - added `AFL_CMPLOG_ONLY_NEW` to not use cmplog on initial seeds + from `-i` or resumes (these have most likely already been done) + - fix crash for very, very fast targets+systems (thanks to mhlakhani + for reporting) + - on restarts (`-i`)/autoresume (AFL_AUTORESUME) the stats are now + reloaded and used, thanks to Vimal Joseph for this patch! + - changed the meaning of '+' of the '-t' option, it now means to + auto-calculate the timeout with the value given being the max + timeout. The original meaning of skipping timeouts instead of + abort is now inherent to the -t option. + - if deterministic mode is active (`-D`, or `-M` without `-d`) then + we sync after every queue entry as this can take very long time + otherwise + - added minimum SYNC_TIME to include/config.h (30 minutes default) + - better detection if a target needs a large shared map + - fix for `-Z` + - fixed a few crashes + - switched to an even faster RNG + - added hghwng's patch for faster trace map analysis + - printing suggestions for mistyped `AFL_` env variables + - added Rust bindings for custom mutators (thanks @julihoh) + - afl-cc + - allow instrumenting LLVMFuzzerTestOneInput + - fixed endless loop for allow/blocklist lines starting with a + comment (thanks to Zherya for reporting) + - cmplog/redqueen now also tracks floating point, _ExtInt() + 128bit + - cmplog/redqueen can now process basic libc++ and libstdc++ + std::string comparisons (no position or length type variants) + - added support for __afl_coverage_interesting() for LTO and our + own PCGUARD (llvm 10.0.1+), read more about this function and + selective coverage in instrumentation/README.instrument_list.md + - added AFL_LLVM_INSTRUMENT option NATIVE for native clang pc-guard + support (less performant than our own), GCC for old afl-gcc and + CLANG for old afl-clang + - fixed a potential crash in the LAF feature + - workaround for llvm bitcast lto bug + - workaround for llvm 13 + - qemuafl + - QASan (address sanitizer for Qemu) ported to qemuafl! + See qemu_mode/libqasan/README.md + - solved some persistent mode bugs (thanks Dil4rd) + - solved an issue when dumping the memory maps (thanks wizche) + - Android support for QASan + - unicornafl + - Substantial speed gains in python bindings for certain use cases + - Improved rust bindings + - Added a new example harness to compare python, c and rust bindings + - afl-cmin and afl-showmap now support the -f option + - afl_plot now also generates a graph on the discovered edges + - changed default: no memory limit for afl-cmin and afl-cmin.bash + - warn on any _AFL and __AFL env vars. + - set AFL_IGNORE_UNKNOWN_ENVS to not warn on unknown AFL_... env vars + - added dummy Makefile to instrumentation/ + - Updated utils/afl_frida to be 5% faster, 7% on x86_x64 + - Added `AFL_KILL_SIGNAL` env variable (thanks @v-p-b) + - @Edznux added a nice documentation on how to use rpc.statsd with + afl++ in docs/rpc_statsd.md, thanks! + +------------------------------------------------------------------- Tue Dec 15 09:18:09 UTC 2020 - Marcus Meissner - updated to 3.0c diff --git a/afl.spec b/afl.spec index 0db8548..1bbeb94 100644 --- a/afl.spec +++ b/afl.spec @@ -1,7 +1,7 @@ # # spec file for package afl # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,16 +17,20 @@ Name: afl -Version: 3.0c +Version: 3.13c Release: 0 Summary: American fuzzy lop is a security-oriented fuzzer License: Apache-2.0 URL: http://lcamtuf.coredump.cx/afl/ -Source: https://github.com/vanhauser-thc/AFLplusplus/archive/%{version}.tar.gz +Source: https://github.com/AFLplusplus/AFLplusplus/archive/%{version}.tar.gz Source1: afl-rpmlintrc Patch1: afl-3.0c-fix-paths.patch +BuildRequires: clang BuildRequires: gcc-c++ +BuildRequires: lld +BuildRequires: llvm-devel >= 11.0.0 BuildRequires: python3-devel +Requires: lld %description American fuzzy lop is a security-oriented fuzzer that employs a novel type @@ -46,14 +50,15 @@ use cases - say, common image parsing or file compression libraries. %prep %setup -q -n AFLplusplus-%version %patch1 -p1 -sed -i 's|#!/usr/bin/env bash|#!/bin/bash|g' afl-cmin +sed -i 's|#!/usr/bin/env sh|#!/bin/sh|g' afl-cmin +sed -i 's|#!/usr/bin/env bash|#!/bin/bash|g' afl-cmin.bash %build -export CFLAGS="$CFLAGS %{optflags}" +export CFLAGS="$CFLAGS %{optflags} -fno-lto" %ifnarch %{ix86} x86_64 export AFL_NO_X86=1 %endif -make %{?_smp_mflags} PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_docdir} +make %{?_smp_mflags} PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_docdir} # make radamsa %install @@ -61,6 +66,7 @@ make %{?_smp_mflags} PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_doc export AFL_NO_X86=1 %endif make %{?_smp_mflags} PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_docdir} MAN_PATH=%{_mandir}/man8 DESTDIR=%{buildroot} install +chmod -x %{buildroot}/%{_libexecdir}/%{name}/*.o %files %license docs/COPYING LICENSE @@ -69,17 +75,25 @@ make %{?_smp_mflags} PREFIX=%{_prefix} LIBEXEC_DIR=%{_libexecdir} DOC_DIR=%{_doc %dir %{_libexecdir}/%{name} %{_libexecdir}/%{name}/%{name}-as %{_libexecdir}/%{name}/as -%ifarch x86_64 ppc64 ppc64le s390x +%ifarch x86_64 aarch64 ppc64 ppc64le s390x %{_libexecdir}/%{name}/afl-compiler-rt-64.o %{_libexecdir}/%{name}/afl-llvm-rt-64.o +%{_libexecdir}/%{name}/afl-llvm-rt-lto-64.o %endif -%ifarch %ix86 +%ifarch %ix86 %{arm} %{_libexecdir}/%{name}/afl-compiler-rt-32.o %{_libexecdir}/%{name}/afl-llvm-rt-32.o %endif +%ifarch %ix86 aarch64 +%{_libexecdir}/%{name}/afl-llvm-rt-lto-32.o +%endif %{_libexecdir}/%{name}/afl-compiler-rt.o %{_libexecdir}/%{name}/afl-llvm-rt.o +%ifnarch %{arm} +%{_libexecdir}/%{name}/afl-llvm-rt-lto.o +%endif %{_libexecdir}/%{name}/dynamic_list.txt +%{_libexecdir}/%{name}/*.so %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/testcases %{_datadir}/%{name}/testcases/*