Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jun 2016 17:42:01 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 210330] "ar -s" not deterministic by default
Message-ID:  <bug-210330-8@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210330

            Bug ID: 210330
           Summary: "ar -s" not deterministic by default
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: emaste@freebsd.org

ar(1) produces deterministic output by default for the -q/-r options
(append/replace), as described in the -D option:

     -D      When used in combination with the -r or -q option, insert 0's
             instead of the real mtime, uid and gid values and 0644 instead of
             file mode from the members named by arguments file ....  This
             ensures that checksums on the resulting archives are reproducible
             when member contents are identical.  This option is enabled by
             default.  If multiple -D and -U options are specified on the com‐
             mand line, the final one takes precedence.

It is not documented here, but this is also the case when ar is invoked as
ranlib(1).

However, 'ar -s <file>' is supposed to be equivalent to ranlib:

     -s      Add an archive symbol table (see ar(5)) to the archive specified
             by argument archive.  Invoking ar with the -s option alone is
             equivalent to invoking ranlib.

but ar -s does not produce deterministic output by default.

In addition to -q/-r, ar -s (AR_S in ar.c) will write an archive symbol table
if no mode is specified (-s with no other args), or in combination with
-p/-t/-x (which are really read-options).

-- 
You are receiving this mail because:
You are the assignee for the bug.

help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-210330-8>