Skip to content

Unreproducible Package: attr.man #434954

@raboof

Description

@raboof

Nixpkgs Revision

fbcf476

Introduction

Building attr.man multiple times does not yield bit-by-bit identical
results, complicating the detection of Continuous Integration (CI) breaches. For
more information on this issue, visit reproducible-builds.org.

Fixing bit-by-bit reproducibility also has additional advantages, such as
avoiding hard-to-reproduce bugs, making content-addressed storage more effective
and reducing rebuilds in such systems.

Steps to reproduce

1. Build the package

This step will build the package. Specific arguments are passed to the command
to keep the build artifacts so we can compare them in case of differences.

Execute the following command:

nix-build '<nixpkgs>' -A attr.man && nix-build '<nixpkgs>' -A attr.man --check --keep-failed

Or using the new command line style:

nix build nixpkgs#PACKAGENAME && nix build nixpkgs#attr^man --rebuild --keep-failed

2. Compare the build artifacts

If the previous command completes successfully, no differences were found and
there's nothing to do, builds are reproducible.
If it terminates with the error message error: derivation '<X>' may not be deterministic: output '<Y>' differs from '<Z>', use diffoscope to investigate
the discrepancies between the two build outputs. You may need to add the
--exclude-directory-metadata recursive option to ignore files and directories
metadata (e.g. timestamp) differences.

nix run nixpkgs#diffoscopeMinimal -- --exclude-directory-metadata recursive <Y> <Z>

3. Examine the build log

To examine the build log, use:

nix-store --read-log $(nix-instantiate '<nixpkgs>' -A attr.man)

Or with the new command line style:

nix log $(nix path-info --derivation nixpkgs#attr^man)

Diffoscope log

--- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man
+++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/
│   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share
├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share
│ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man
│ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man
│ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man1
│ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man1
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man1/attr.1.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man1/attr.1.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "attr.1", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "attr.1", last modified: Mon Jul 14 07:50:28 2025, from Unix
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man1/getfattr.1.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man1/getfattr.1.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "getfattr.1", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "getfattr.1", last modified: Mon Jul 14 07:50:28 2025, from Unix
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man1/setfattr.1.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man1/setfattr.1.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "setfattr.1", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "setfattr.1", last modified: Mon Jul 14 07:50:28 2025, from Unix
│ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man3
│ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man3
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man3/attr_get.3.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man3/attr_get.3.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "attr_get.3", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "attr_get.3", last modified: Mon Jul 14 07:50:28 2025, from Unix
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man3/attr_list.3.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man3/attr_list.3.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "attr_list.3", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "attr_list.3", last modified: Mon Jul 14 07:50:28 2025, from Unix
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man3/attr_multi.3.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man3/attr_multi.3.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "attr_multi.3", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "attr_multi.3", last modified: Mon Jul 14 07:50:28 2025, from Unix
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man3/attr_remove.3.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man3/attr_remove.3.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "attr_remove.3", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "attr_remove.3", last modified: Mon Jul 14 07:50:28 2025, from Unix
│ │ │ │   --- /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man/share/man/man3/attr_set.3.gz
│ │ │ ├── +++ /nix/store/vqmvdqcxwxgnc9cxs8nqc67qhc209m4x-attr-2.5.2-man.check/share/man/man3/attr_set.3.gz
│ │ │ │ ├── filetype from file(1)
│ │ │ │ │ @@ -1 +1 @@
│ │ │ │ │ +gzip compressed data, was "attr_set.3", last modified: Tue Aug 19 10:19:03 2025, from Unix
│ │ │ │ │ -gzip compressed data, was "attr_set.3", last modified: Mon Jul 14 07:50:28 2025, from Unix

Notify maintainers

This package has no maintainers listed. This is an instance of #434930


Note for maintainers: Please tag this issue in your pull request description. (i.e. Resolves #ISSUE.)

I assert that this issue is relevant for Nixpkgs

Is this issue important to you?

Add a 👍 reaction to issues you find important.

Metadata

Metadata

Assignees

Labels

No fields configured for issues without a type.

Projects

Status

Minimal ISO runtime

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions