New paragraph "Reproducibility considerations" moved out of ENVIRONMENT

This commit is contained in:
2025-06-10 12:58:41 +02:00
parent bc0c639ec8
commit 83ec7bf9dc
6 changed files with 385 additions and 212 deletions

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISOFS 1 "Version 1.5.7, Apr 24, 2025"
@c man .TH XORRISOFS 1 "Version 1.5.7, Jun 10, 2025"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -280,6 +280,7 @@ See EXAMPLES.
* Charset:: Character sets
* Jigdo:: Jigdo Template Extraction
* Miscellaneous:: Miscellaneous options
* Reproducible:: Reproducibility considerations
@end menu
@c man .PP
@c man .TP
@ -2290,7 +2291,7 @@ The rules for list_of_names are the same as with -checksum_algorithm_iso.
@end table
@c man .TP
@c man .B Miscellaneous options:
@node Miscellaneous, ExSimple, Jigdo, Options
@node Miscellaneous, Reproducible, Jigdo, Options
@section Miscellaneous options
@table @asis
@sp 1
@ -2385,6 +2386,58 @@ Print to standard output a text that begins with
@*
and to standard error the version information of xorriso.
@end table
@c man .TP
@c man .B Reproducibility considerations:
@node Reproducible, Examples, Miscellaneous, Options
@section Reproducibility considerations
@c man .PP
Stable versions of xorriso are prepared to produce in repeated runs from
the same input files with the same file metadata and the same xorrisofs options
the same ISO 9660 filesystem bytes. The only exception are bytes which depend
on the current time of the xorriso run.
@*
These time dependent values can be set to fixed values by the options
@minus{}@minus{}modification-date=, @minus{}@minus{}gpt_disk_guid, and
@minus{}@minus{}set_all_file_dates. Instead of setting each of
them, it is possible to influence them all by the environment variable
SOURCE_DATE_EPOCH.
@*
SOURCE_DATE_EPOCH belongs to the specification of reproducible-builds.org.
It is supposed to be either undefined or to contain a decimal number
which tells the seconds since january 1st 1970. If it contains a number,
then it is used as time value to set the default of
@minus{}@minus{}modification-date=. @minus{}@minus{}gpt_disk_guid defaults
to "modification-date". The default of @minus{}@minus{}set_all_file_dates
is then "set_to_mtime". Further the "now" time for ISO nodes without disk
source is set to the SOURCE_DATE_EPOCH value.
@*
Startup files and xorrisofs options can override the effect of
SOURCE_DATE_EPOCH.
@c man .PP
@sp 1
Different versions of xorriso may or may not produce the same result from
the same input and options. Reproducibility may be prevented by bug fixes
or feature enhancements between versions.
@*
xorriso puts its version information into the Preparer Id field of the
ISO 9660 Primary Volume Descriptor by default. This may be desired in order
to clearly define which xorriso version has to be used for reproduction.
But it may also be undesired because a wider range of xorriso versions shall
not be excluded from an attempt of reproduction.
@*
Use option -p with a text other than "@@xorriso@@" if you want to
override the default at first production time. This option may also be used
to explicitly set the preparer id as found in an ISO 9660 filesystem which
shall be reproduced by a different version of xorriso. The preparer id can be
inquired by xorriso command -pvd_info.
@c man .PP
@sp 1
If reproducibility of xorrisofs results is desired, then the precautions - like
setting SOURCE_DATE_EPOCH - should be done already with the original xorrisofs
run. All input files, the used xorrisofs options in exact sequence, the version
of xorriso, and the possibly set SOURCE_DATE_EPOCH value should then be kept
or recorded for later re-use.
@*
@c man .br
@node Examples, Files, Options, Top
@chapter Examples
@ -2959,31 +3012,8 @@ HOME is used to find xorriso and mkisofs startup files.
@*
MKISOFSRC may be used to point the program to a mkisofs startup file.
@*
@sp 1
@c man .sp 1
SOURCE_DATE_EPOCH belongs to the specs of reproducible-builds.org.
It is supposed to be either undefined or to contain a decimal number
which tells the seconds since january 1st 1970. If it contains a number,
then it is used as time value to set the default of
@minus{}@minus{}modification-date=.
@minus{}@minus{}gpt_disk_guid defaults to "modification-date".
The default of @minus{}@minus{}set_all_file_dates is then "set_to_mtime".
Further the "now" time for ISO nodes without disk source is then set to
the SOURCE_DATE_EPOCH value.
@*
Startup files and program options can override the effect of SOURCE_DATE_EPOCH.
@*
Be aware that by default xorriso puts its version information into the
Preparer Id field of the ISO 9660 Primary Volume Descriptor. This may be
desired in order to clearly define which xorriso version has to be used for
reproduction. But it may also be undesired because a wider range of xorriso
versions shall not be excluded from an attempt of reproduction.
@*
Use option -p with a text other than "@@xorriso@@" if you want to
override the default at first production time. This option may also be used
to explicitly set the preparer id as found in an ISO 9660 filesystem which
shall be reproduced by a different version of xorriso. The id can be inquired
by the generic xorriso command -pvd_info.
See above paragraph "Reproducibility considerations".
@*
@c man .SS
@c man .SH SEE ALSO