🍺 BREW Explorer

← all formulae

add-determinism

brew install add-determinism v0.7.3 GPL-3.0-or-later

Build postprocessor to reset metadata fields for build reproducibility

43
30-day installs · #5013
57
90-day · #6941
189
365-day · #7504
152
★ GitHub stars · updated 2mo ago

Build dependencies

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "pkgconf",
    "rust"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Build postprocessor to reset metadata fields for build reproducibility",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:35:17+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "add-determinism",
  "github_default_branch": "main",
  "github_last_commit_at": "2026-06-03T14:45:45Z",
  "github_readme_excerpt": "# Build postprocessors to reset metadata fields and hardlink files for build reproducibility\n\n\u003ca href=\"https://repology.org/project/add-determinism/versions\"\u003e\n    \u003cimg src=\"https://repology.org/badge/vertical-allrepos/add-determinism.svg\" alt=\"Packaging status\" align=\"right\"\u003e\n\u003c/a\u003e\n\nThis crate provides two related programs for package build postprocessing.\n\n## `add-det`\n\n`add-det` takes one or more paths as arguments,\nand will recursively process normal files in those paths,\nattempting to run a set of type-specific handlers on any files with extensions that match.\n(Each argument can be either a single file or a directory to be processed recursively.)\n\nFor each processed file, a temporary file is opened,\nthe contents are rewritten,\nthe modification timestamp is copied from the original file to the temporary copy,\nand the copy is renamed over the original.\n\nIf processing fails, a warning is emitted,\nbut no modifications are made and the program returns success.\n\nThe purpose of this tool is to eliminate common sources of non-determinism in builds,\nmaking it easier to create reproducible (package) builds.\n\n### Usage\n\n#### Standalone usage\n\n```console\n$ add-det /path/to/file /path/to/directory\n```\nNote that the program works in-place, replacing input files with the rewritten versions (if any modifications are made).\n\nSome useful options:\n\n* `-v` \u2014 enable debug output\n* `-j [N]` \u2014 use `N` workers (or as many as CPUs, if `N` is not given)\n* `--handler list|HANDLER|-HANDLER` \u2014 constrain the list of handlers. Takes a comma-separated list of names, either a list of \"positive\" names, in which case only listed handlers will be used, or a list of \"negative\" names, each prefixed by minus, in which case the listed handlers will not be used. By default, handlers that cannot be initialized are skipped with a warning. If a \"positive\" list is given, failure to initialize a handler will cause an error. The special value `list` can be used to list known handlers.\n* `--brp` \u2014 enable \"buil",
  "github_repo": "keszybz/add-determinism",
  "github_stars": 152,
  "github_topics": [],
  "homepage": "https://github.com/keszybz/add-determinism",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 43,
  "installs_365d": 189,
  "installs_90d": 57,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "GPL-3.0-or-later",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "add-determinism",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 5013,
  "rank_365d": 7504,
  "rank_90d": 6941,
  "raw_hash": "95e3f6f1c228be8e",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/a/add-determinism.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [
    {
      "llvm": "build"
    }
  ],
  "version_head": null,
  "version_stable": "0.7.3",
  "versioned_formulae": [],
  "why_use_this": null
}