Skip to content

MozillaSecurity/fuzzfetch

Repository files navigation

Task Status codecov Matrix PyPI

Fuzzfetch is a python tool for retrieving builds from the Firefox-CI Taskcluster instance.

Overview

Fuzzfetch can be used to retrieve nearly any build type indexed by Firefox-CI. This includes AddressSanitizer, ThreadSanitizer, Valgrind, debug, and Fuzzing builds for both Firefox and Spidermonkey.

Installation

pip install fuzzfetch

Usage

Fuzzfetch supports the following arguments:

usage: fuzzfetch [-h] [--target [TARGET ...]]
                 [--os {Android,Darwin,Linux,Windows}]
                 [--cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}]
                 [--build DATE|REV|NS]
                 [--central | --release | --beta | --esr-stable | --esr-next | --try | --autoland]
                 [-d] [-a] [-t] [--fuzzing] [--fuzzilli] [--coverage]
                 [--valgrind] [--no-opt] [--nyx] [--searchfox] [-n NAME]
                 [-o OUT] [--dry-run] [--nearest-newer | --nearest-older] [-V]

options:
  -h, --help            show this help message and exit
  -V, --version         print version and exit

Target:
  --target [TARGET ...]
                        Specify the build artifacts to download. Valid
                        options: firefox js common gtest mozharness searchfox
                        (default: firefox)
  --os {Android,Darwin,Linux,Windows}
                        Specify the target system. (default: Linux)
  --cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}
                        Specify the target CPU. (default: x86_64)

Build:
  --build DATE|REV|NS   Specify the build to download, (default: latest)
                        Accepts values in format YYYY-MM-DD (2017-01-01)
                        revision (57b37213d81150642f5139764e7044b07b9dccc3) or
                        TaskCluster namespace (gecko.v2....)

Branch:
  --central             Download from mozilla-central (default)
  --release             Download from mozilla-release
  --beta                Download from mozilla-beta
  --esr-stable          Download from esr-stable
  --esr-next            Download from esr-next
  --try                 Download from try
  --autoland            Download from autoland

Build Arguments:
  -d, --debug           Get debug builds w/ symbols (default=optimized).
  -a, --asan            Download AddressSanitizer builds.
  -t, --tsan            Download ThreadSanitizer builds.
  --fuzzing             Download --enable-fuzzing builds.
  --fuzzilli            Download --enable-js-fuzzilli builds.
  --coverage            Download --coverage builds.
  --valgrind            Download Valgrind builds.
  --no-opt              Download non-optimized builds.
  --nyx                 Download Nyx snapshot builds.
  --searchfox           Download searchfox data.

Misc. Arguments:
  -n NAME, --name NAME  Specify a name (default=auto)
  -o OUT, --out OUT     Specify output directory (default=.)
  --dry-run             Search for build and output metadata only, don't
                        download anything.

Near Arguments:
  If the specified build isn't found, iterate over builds in the specified
  direction

  --nearest-newer       Search from specified build in ascending order
  --nearest-older       Search from the specified build in descending order

Simple Build Retrieval

To retrieve the latest build from mozilla-central built with --enable-address-sanitizer and --enable-fuzzing, you can use the following:

fuzzfetch -a --fuzzing

To retrieve the latest build from mozilla-central built with --enable-debug, you can use the following:

fuzzfetch --target js -d

To retrieve a specific revision from mozilla-central, you can use the following:

fuzzfetch --build 08471023c834