From bc0c639ec833b00c26831874b8c70591e69b419c Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 24 Apr 2025 11:46:04 +0200 Subject: [PATCH] Updated information about reproducibility and Linux kernel sr lock --- xorriso/xorrecord.1 | 22 +++---- xorriso/xorrecord.info | 103 +++++++++++++++--------------- xorriso/xorrecord.texi | 22 +++---- xorriso/xorriso.1 | 37 +++++++---- xorriso/xorriso.info | 139 ++++++++++++++++++++++------------------- xorriso/xorriso.texi | 39 ++++++++---- xorriso/xorrisofs.1 | 18 +++++- xorriso/xorrisofs.info | 42 ++++++++----- xorriso/xorrisofs.texi | 21 ++++++- 9 files changed, 261 insertions(+), 182 deletions(-) diff --git a/xorriso/xorrecord.1 b/xorriso/xorrecord.1 index 59969f15..ea25838c 100644 --- a/xorriso/xorrecord.1 +++ b/xorriso/xorrecord.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRECORD 1 "Version 1.5.7, Apr 19, 2024" +.TH XORRECORD 1 "Version 1.5.7, Apr 24, 2025" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -544,21 +544,21 @@ while a xorrecord burn run is going on. \fBdrive_scsi_dev_family=sr|scd|sg|default\fR GNU/Linux specific: .br -By default, cdrskin tries to map Linux drive addresses to /dev/sr* before +By default, xorrecord tries to map Linux drive addresses to /dev/sr* before they get opened for operating the drive. This coordinates well with -other use cases of optical drives, like mount(8). But since year 2010 -all /dev/sr* share a global lock which allows only one drive to process -an SCSI command while all others have to wait for its completion. -This yields awful throughput if more than one drive is writing or reading +other use cases of optical drives, like mount(8). But between year 2010 and +2020 all /dev/sr* shared a global lock which allowed only one drive to process +an SCSI command while all others had to wait for its completion. +This yielded awful throughput if more than one drive was writing or reading simultaneously. .br -The global lock is not applied to device files /dev/sg* and also not with -the system calls read(2), write(2). But ioctl(SG_IO) is affected, which is +The global lock was never applied to device files /dev/sg* and also not with +the system calls read(2), write(2). But ioctl(SG_IO) was affected, which is needed to perform the SCSI commands for optical burning. .br -So for simultaneous burn runs on modern GNU/Linux it is advisable to use +So for simultaneous burn runs on GNU/Linux 2.6 to 5.5 it is advisable to use drive_scsi_dev_family="sg". The drive addresses may then well be given as -/dev/sr* but will nevertheless get used as /dev/sg*. +/dev/sr*, but will nevertheless get used as /dev/sg*. .TP \fB--grow_overwriteable_iso\fR Enable emulation of multi\-session writing on overwritable media which @@ -902,7 +902,7 @@ Thomas Schmitt .br for libburnia\-project.org .SH COPYRIGHT -Copyright (c) 2011 \- 2024 Thomas Schmitt +Copyright (c) 2011 \- 2025 Thomas Schmitt .br Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of xorriso. If you make use diff --git a/xorriso/xorrecord.info b/xorriso/xorrecord.info index ce54638c..1c108339 100644 --- a/xorriso/xorrecord.info +++ b/xorriso/xorrecord.info @@ -511,21 +511,22 @@ File: xorrecord.info, Node: NonCdrecord, Next: ExDevices, Prev: Verbose, Up: cause drive activities while a xorrecord burn run is going on. drive_scsi_dev_family=sr|scd|sg|default GNU/Linux specific: - By default, cdrskin tries to map Linux drive addresses to /dev/sr* - before they get opened for operating the drive. This coordinates - well with other use cases of optical drives, like mount(8). But - since year 2010 all /dev/sr* share a global lock which allows only - one drive to process an SCSI command while all others have to wait - for its completion. This yields awful throughput if more than one - drive is writing or reading simultaneously. - The global lock is not applied to device files /dev/sg* and also - not with the system calls read(2), write(2). But ioctl(SG_IO) is + By default, xorrecord tries to map Linux drive addresses to + /dev/sr* before they get opened for operating the drive. This + coordinates well with other use cases of optical drives, like + mount(8). But between year 2010 and 2020 all /dev/sr* shared a + global lock which allowed only one drive to process an SCSI command + while all others had to wait for its completion. This yielded + awful throughput if more than one drive was writing or reading + simultaneously. + The global lock was never applied to device files /dev/sg* and also + not with the system calls read(2), write(2). But ioctl(SG_IO) was affected, which is needed to perform the SCSI commands for optical burning. - So for simultaneous burn runs on modern GNU/Linux it is advisable - to use drive_scsi_dev_family="sg". The drive addresses may then - well be given as /dev/sr* but will nevertheless get used as - /dev/sg*. + So for simultaneous burn runs on GNU/Linux 2.6 to 5.5 it is + advisable to use drive_scsi_dev_family="sg". The drive addresses + may then well be given as /dev/sr*, but will nevertheless get used + as /dev/sg*. --grow_overwriteable_iso Enable emulation of multi-session writing on overwritable media which contain an ISO 9660 filesystem. This emulation is learned @@ -893,7 +894,7 @@ for libburnia-project.org 10.2 Copyright ============== -Copyright (c) 2011 - 2024 Thomas Schmitt +Copyright (c) 2011 - 2025 Thomas Schmitt Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of xorriso. If you make use of the license to derive modified versions of xorriso then you are @@ -919,15 +920,15 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * Menu: * --bdr_obs_exempt write transaction end padding: NonCdrecord. - (line 92) + (line 93) * --devices get list of drives: DriveAddr. (line 8) * --drive_not_exclusive use drive even if busy: NonCdrecord. (line 12) * --grow_overwriteable_iso emulate ISO 9660 multi-session: NonCdrecord. - (line 37) + (line 38) * --multi_if_possible apply -multi if medium is suitable: NonCdrecord. - (line 57) + (line 58) * --no_rc do not execute xorriso startup files: NonCdrecord. (line 8) -* --obs_pad write transaction end padding: NonCdrecord. (line 81) +* --obs_pad write transaction end padding: NonCdrecord. (line 82) * -atip inquire medium state: Inquire. (line 14) * -checkdrive inquire drive CD capabilities: Inquire. (line 11) * -dao explicitly set write type SAO/DAO: SetBurn. (line 172) @@ -939,7 +940,7 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -inq inquire drive identifiers: Inquire. (line 8) * -isosize obtain track size from ISO 9660 superblock: SetBurn. (line 137) -* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 98) +* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 99) * -msinfo retrieve multi-session info: Inquire. (line 43) * -multi keep media appendable after burn run: SetBurn. (line 89) * -nopad disable adding of bytes to end of track: SetBurn. (line 151) @@ -956,18 +957,18 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * dev= address the drive to be used: DriveAddr. (line 21) * drive_scsi_dev_family= Linux device type to be used: NonCdrecord. (line 20) -* dvd_obs= set write transaction payload size: NonCdrecord. (line 74) +* dvd_obs= set write transaction payload size: NonCdrecord. (line 75) * fs= set program fifo size: SetBurn. (line 174) * minbuf= keep drive buffer hungry: SetBurn. (line 205) * padsize= add bytes to end of track: SetBurn. (line 144) * speed= set write speed: SetBurn. (line 189) -* stdio_sync= control stdio buffer: NonCdrecord. (line 150) +* stdio_sync= control stdio buffer: NonCdrecord. (line 151) * stream_recording= try to get full speed on DVD-RAM, BD: NonCdrecord. - (line 64) + (line 65) * tsize= set a fixed track size: SetBurn. (line 126) -* use_immed_bit= control use of Immed bit: NonCdrecord. (line 135) +* use_immed_bit= control use of Immed bit: NonCdrecord. (line 136) * write_start_address= set block address for write start: NonCdrecord. - (line 144) + (line 145)  File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top @@ -979,10 +980,10 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Menu: * Accessing drive, wait for stdin, -waiti: SetBurn. (line 113) -* Blank, format, Immed bit, use_immed_bit=: NonCdrecord. (line 135) +* Blank, format, Immed bit, use_immed_bit=: NonCdrecord. (line 136) * Bugs, reporting: Bugreport. (line 6) * Data track, announce, -data: SetBurn. (line 157) -* Defect management, control, stream_recording=: NonCdrecord. (line 64) +* Defect management, control, stream_recording=: NonCdrecord. (line 65) * Drive, address, dev=: DriveAddr. (line 21) * Drive, get list of, --devices: DriveAddr. (line 8) * Drive, inquire CD capabilities, -checkdrive: Inquire. (line 11) @@ -995,11 +996,11 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Examples: Examples. (line 6) * Fifo, set size, fs=: SetBurn. (line 174) * Full speed, on DVD-RAM and BD, stream_recording=: NonCdrecord. - (line 64) + (line 65) * Media types, _definiton: Standards. (line 23) * Media, blank, blank=: SetBurn. (line 28) * Media, format, blank=: SetBurn. (line 28) -* Media, keep appendable, --multi_if_possible: NonCdrecord. (line 57) +* Media, keep appendable, --multi_if_possible: NonCdrecord. (line 58) * Media, keep appendable, -multi: SetBurn. (line 89) * Media, make re-usable, blank=: SetBurn. (line 28) * medium content, inquire, -toc: Inquire. (line 22) @@ -1007,7 +1008,7 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * MMC, _definiton: Standards. (line 6) * multi-session info, retrieve, -msinfo: Inquire. (line 43) * Multi-session, emulate ISO 9660, --grow_overwriteable_iso: NonCdrecord. - (line 37) + (line 38) * Options, overview, -help: Verbose. (line 30) * Overwritable media, _definiton: Standards. (line 30) * Padding, at end of track, padsize=: SetBurn. (line 144) @@ -1023,23 +1024,23 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Track size, set fixed, tsize=: SetBurn. (line 126) * Track, _definiton: Standards. (line 13) * Transaction end padding, BD-R, -bdr_obs_exempt: NonCdrecord. - (line 92) -* Transaction end padding, enforce, -obs_pad: NonCdrecord. (line 81) -* Transaction size, set, dvd_obs=: NonCdrecord. (line 74) + (line 93) +* Transaction end padding, enforce, -obs_pad: NonCdrecord. (line 82) +* Transaction size, set, dvd_obs=: NonCdrecord. (line 75) * Tray, eject, -eject: SetBurn. (line 214) * Verbosity, increase, -v: Verbose. (line 16) * Verbosity, SCSI commands, -V: Verbose. (line 20) * Version, report, -version: Verbose. (line 8) * Write simulation , control, -dummy: SetBurn. (line 106) * Write start address, set, write_start_address=: NonCdrecord. - (line 144) + (line 145) * Write type, SAO/DAO, -dao: SetBurn. (line 172) * Write type, SAO/DAO, -sao: SetBurn. (line 168) * Write type, TAO, -tao: SetBurn. (line 162) -* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 150) +* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 151) * Write, drive buffer, -immed: SetBurn. (line 208) * Write, drive buffer, minbuf=: SetBurn. (line 205) -* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 98) +* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 99) * xorriso, mkisofs emulation: Xorriso. (line 6) * xorriso, options: Options. (line 6) @@ -1057,21 +1058,21 @@ Node: Inquire7618 Node: SetBurn10487 Node: Verbose21111 Node: NonCdrecord22661 -Node: Examples31496 -Node: ExDevices32157 -Node: ExMedium32375 -Node: ExBlank32638 -Node: ExFormat32859 -Node: ExDeformat33377 -Node: ExIsoSingle33644 -Node: ExIsoMulti33928 -Node: ExIsoFly35672 -Node: ExAfio36864 -Node: Files37862 -Node: Seealso38418 -Node: Bugreport38781 -Node: Legal39372 -Node: CommandIdx40301 -Node: ConceptIdx44073 +Node: Examples31526 +Node: ExDevices32187 +Node: ExMedium32405 +Node: ExBlank32668 +Node: ExFormat32889 +Node: ExDeformat33407 +Node: ExIsoSingle33674 +Node: ExIsoMulti33958 +Node: ExIsoFly35702 +Node: ExAfio36894 +Node: Files37892 +Node: Seealso38448 +Node: Bugreport38811 +Node: Legal39402 +Node: CommandIdx40331 +Node: ConceptIdx44103  End Tag Table diff --git a/xorriso/xorrecord.texi b/xorriso/xorrecord.texi index b45992f9..487fd93d 100644 --- a/xorriso/xorrecord.texi +++ b/xorriso/xorrecord.texi @@ -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 XORRECORD 1 "Version 1.5.7, Apr 19, 2024" +@c man .TH XORRECORD 1 "Version 1.5.7, Apr 24, 2025" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -753,21 +753,21 @@ while a xorrecord burn run is going on. @cindex Drive, Linux device type, drive_scsi_dev_family GNU/Linux specific: @* -By default, cdrskin tries to map Linux drive addresses to /dev/sr* before +By default, xorrecord tries to map Linux drive addresses to /dev/sr* before they get opened for operating the drive. This coordinates well with -other use cases of optical drives, like mount(8). But since year 2010 -all /dev/sr* share a global lock which allows only one drive to process -an SCSI command while all others have to wait for its completion. -This yields awful throughput if more than one drive is writing or reading +other use cases of optical drives, like mount(8). But between year 2010 and +2020 all /dev/sr* shared a global lock which allowed only one drive to process +an SCSI command while all others had to wait for its completion. +This yielded awful throughput if more than one drive was writing or reading simultaneously. @* -The global lock is not applied to device files /dev/sg* and also not with -the system calls read(2), write(2). But ioctl(SG_IO) is affected, which is +The global lock was never applied to device files /dev/sg* and also not with +the system calls read(2), write(2). But ioctl(SG_IO) was affected, which is needed to perform the SCSI commands for optical burning. @* -So for simultaneous burn runs on modern GNU/Linux it is advisable to use +So for simultaneous burn runs on GNU/Linux 2.6 to 5.5 it is advisable to use drive_scsi_dev_family="sg". The drive addresses may then well be given as -/dev/sr* but will nevertheless get used as /dev/sg*. +/dev/sr*, but will nevertheless get used as /dev/sg*. @c man .TP @item @minus{}@minus{}grow_overwriteable_iso @kindex @minus{}@minus{}grow_overwriteable_iso emulate ISO 9660 multi-session @@ -1223,7 +1223,7 @@ Thomas Schmitt for libburnia-project.org @c man .SH COPYRIGHT @section Copyright -Copyright (c) 2011 - 2024 Thomas Schmitt +Copyright (c) 2011 - 2025 Thomas Schmitt @* Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of xorriso. If you make use diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 7e5fd504..abdb9f6d 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "Version 1.5.7, Dec 19, 2024" +.TH XORRISO 1 "Version 1.5.7, Apr 24, 2025" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -315,7 +315,7 @@ the path of their block device or of their generic character device. E.g. By default xorriso will try to map the given address to /dev/hd* and /dev/sr*. The command \-scsi_dev_family can redirect the mapping from sr to scd or sg. The latter does not suffer from the concurrency problems which plagued /dev/sr -of Linux kernels since version 3 up to 5.5. But it does not yield the same +of Linux kernels since version 2.6 up to 5.5. But it does not yield the same addresses which are used by mount(8) or by open(2) for read(2). .br On FreeBSD the device files have names like @@ -789,17 +789,17 @@ GNU/Linux specific: .br By default, xorriso tries to map Linux drive addresses to /dev/sr* before they get opened for operating the drive. This coordinates well with -other use cases of optical drives, like mount(8). But since year 2010 -all /dev/sr* share a global lock which allows only one drive to process -an SCSI command while all others have to wait for its completion. -This yields awful throughput if more than one drive is writing or reading +other use cases of optical drives, like mount(8). But between year 2010 and +2020 all /dev/sr* shared a global lock which allowed only one drive to process +an SCSI command while all others had to wait for its completion. +This yieldied awful throughput if more than one drive was writing or reading simultaneously. -The global lock is not applied to device files /dev/sg* and also not if +The global lock was never applied to device files /dev/sg* and also not if the xorriso drive address is prepended by "stdio:". .br -So for simultaneous burn runs on modern GNU/Linux it is advisable to perform -\-scsi_dev_family "sg" before any \-dev, \-indev, or \-outdev. The drive addresses -may then well be given as /dev/sr* but will nevertheless get used as +So for simultaneous burn runs on GNU/Linux 2.6 to 5.5 it is advisable to +perform \-scsi_dev_family "sg" before any \-dev, \-indev, or \-outdev. The drive +addresses may then well be given as /dev/sr*, but will nevertheless get used as the matching /dev/sg*. .br If you decide so, consider to put the command into a global startup file like @@ -7163,7 +7163,20 @@ then it is used as time value to set the default of "volume_date_uuid", \-volume_date "all_file_dates" to "set_to_mtime", and \-iso_nowtime to "=$SOURCE_DATE_EPOCH". .br -Startup files and program options can override the effect of SOURCE_DATE_EPOCH. +Startup files and program commands can override the effect of +SOURCE_DATE_EPOCH. +.br +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. +.br +Use command \-preparer_id with a text other than "@xorriso@" if you want to +override the default at first production time. This command 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 command \-pvd_info. .br .SS .SH SEE ALSO @@ -7223,7 +7236,7 @@ Thomas Schmitt .br for libburnia\-project.org .SH COPYRIGHT -Copyright (c) 2007 \- 2024 Thomas Schmitt +Copyright (c) 2007 \- 2025 Thomas Schmitt .br Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of \fBxorriso\fR. diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index e027a03f..622da73e 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -4,7 +4,7 @@ xorriso.texi. xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. - Copyright (C) 2007 - 2024 Thomas Schmitt + Copyright (C) 2007 - 2025 Thomas Schmitt Permission is granted to distribute this text freely. INFO-DIR-SECTION Archiving @@ -287,7 +287,7 @@ character device. E.g. By default xorriso will try to map the given address to /dev/hd* and /dev/sr*. The command -scsi_dev_family can redirect the mapping from sr to scd or sg. The latter does not suffer from the concurrency problems -which plagued /dev/sr of Linux kernels since version 3 up to 5.5. But +which plagued /dev/sr of Linux kernels since version 2.6 up to 5.5. But it does not yield the same addresses which are used by mount(8) or by open(2) for read(2). On FreeBSD the device files have names like @@ -727,16 +727,16 @@ acquire the drive. By default, xorriso tries to map Linux drive addresses to /dev/sr* before they get opened for operating the drive. This coordinates well with other use cases of optical drives, like mount(8). But - since year 2010 all /dev/sr* share a global lock which allows only - one drive to process an SCSI command while all others have to wait - for its completion. This yields awful throughput if more than one - drive is writing or reading simultaneously. The global lock is not - applied to device files /dev/sg* and also not if the xorriso drive - address is prepended by "stdio:". - So for simultaneous burn runs on modern GNU/Linux it is advisable - to perform -scsi_dev_family "sg" before any -dev, -indev, or - -outdev. The drive addresses may then well be given as /dev/sr* - but will nevertheless get used as the matching /dev/sg*. + between year 2010 and 2020 all /dev/sr* shared a global lock which + allowed only one drive to process an SCSI command while all others + had to wait for its completion. This yieldied awful throughput if + more than one drive was writing or reading simultaneously. The + global lock was never applied to device files /dev/sg* and also not + if the xorriso drive address is prepended by "stdio:". + So for simultaneous burn runs on GNU/Linux 2.6 to 5.5 it is + advisable to perform -scsi_dev_family "sg" before any -dev, -indev, + or -outdev. The drive addresses may then well be given as + /dev/sr*, but will nevertheless get used as the matching /dev/sg*. If you decide so, consider to put the command into a global startup file like /etc/opt/xorriso/rc. -grow_blindly "off"|predicted_nwa @@ -6055,8 +6055,19 @@ it is used as time value to set the default of -volume date "uuid", sets -boot_image "any" "gpt_disk_guid=" to "volume_date_uuid", -volume_date "all_file_dates" to "set_to_mtime", and -iso_nowtime to "=$SOURCE_DATE_EPOCH". -Startup files and program options can override the effect of +Startup files and program commands 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 command -preparer_id with a text other than "@xorriso@" if you want +to override the default at first production time. This command 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 command -pvd_info.  File: xorriso.info, Node: Seealso, Next: Bugreport, Prev: Environ, Up: Top @@ -6115,7 +6126,7 @@ for libburnia-project.org 15.2 Copyright ============== -Copyright (c) 2007 - 2024 Thomas Schmitt +Copyright (c) 2007 - 2025 Thomas Schmitt Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of 'xorriso'. If you make use of the license to derive modified versions of 'xorriso' then @@ -6768,55 +6779,55 @@ Node: Model3441 Node: Media6344 Node: Methods9265 Node: Drives11851 -Node: Extras15803 -Node: Processing21905 -Node: Dialog25742 -Node: Commands27431 -Node: ArgSort29108 -Node: AqDrive30602 -Node: Loading37759 -Node: Insert68512 -Node: SetInsert80707 -Node: Manip90943 -Node: CmdFind103439 -Node: Filter125299 -Node: Writing129921 -Node: SetWrite142415 -Node: Bootable173847 -Node: Jigdo206581 -Node: Charset211584 -Node: Exception214913 -Node: DialogCtl221102 -Node: Inquiry223704 -Node: Navigate236399 -Node: Verify248452 -Node: Restore259601 -Node: Emulation271808 -Node: Scripting283384 -Node: Frontend291639 -Node: Examples301265 -Node: ExDevices302443 -Node: ExCreate303104 -Node: ExDialog304404 -Node: ExGrowing305675 -Node: ExModifying306484 -Node: ExBootable306994 -Node: ExCharset307549 -Node: ExPseudo308445 -Node: ExCdrecord309372 -Node: ExMkisofs309692 -Node: ExGrowisofs311589 -Node: ExException312742 -Node: ExTime313200 -Node: ExIncBackup313658 -Node: ExRestore317684 -Node: ExRecovery318630 -Node: Files319202 -Node: Environ320536 -Node: Seealso321284 -Node: Bugreport322084 -Node: Legal322675 -Node: CommandIdx323687 -Node: ConceptIdx342993 +Node: Extras15805 +Node: Processing21907 +Node: Dialog25744 +Node: Commands27433 +Node: ArgSort29110 +Node: AqDrive30604 +Node: Loading37784 +Node: Insert68537 +Node: SetInsert80732 +Node: Manip90968 +Node: CmdFind103464 +Node: Filter125324 +Node: Writing129946 +Node: SetWrite142440 +Node: Bootable173872 +Node: Jigdo206606 +Node: Charset211609 +Node: Exception214938 +Node: DialogCtl221127 +Node: Inquiry223729 +Node: Navigate236424 +Node: Verify248477 +Node: Restore259626 +Node: Emulation271833 +Node: Scripting283409 +Node: Frontend291664 +Node: Examples301290 +Node: ExDevices302468 +Node: ExCreate303129 +Node: ExDialog304429 +Node: ExGrowing305700 +Node: ExModifying306509 +Node: ExBootable307019 +Node: ExCharset307574 +Node: ExPseudo308470 +Node: ExCdrecord309397 +Node: ExMkisofs309717 +Node: ExGrowisofs311614 +Node: ExException312767 +Node: ExTime313225 +Node: ExIncBackup313683 +Node: ExRestore317709 +Node: ExRecovery318655 +Node: Files319227 +Node: Environ320561 +Node: Seealso322000 +Node: Bugreport322800 +Node: Legal323391 +Node: CommandIdx324403 +Node: ConceptIdx343709  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index fb24acb2..fdbd8ab5 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -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 XORRISO 1 "Version 1.5.7, Dec 19, 2024" +@c man .TH XORRISO 1 "Version 1.5.7, Apr 24, 2025" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -69,7 +69,7 @@ xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. -Copyright @copyright{} 2007 - 2024 Thomas Schmitt +Copyright @copyright{} 2007 - 2025 Thomas Schmitt @quotation Permission is granted to distribute this text freely. @@ -447,7 +447,7 @@ the path of their block device or of their generic character device. E.g. By default xorriso will try to map the given address to /dev/hd* and /dev/sr*. The command -scsi_dev_family can redirect the mapping from sr to scd or sg. The latter does not suffer from the concurrency problems which plagued /dev/sr -of Linux kernels since version 3 up to 5.5. But it does not yield the same +of Linux kernels since version 2.6 up to 5.5. But it does not yield the same addresses which are used by mount(8) or by open(2) for read(2). @* On FreeBSD the device files have names like @@ -1014,17 +1014,17 @@ GNU/Linux specific: @* By default, xorriso tries to map Linux drive addresses to /dev/sr* before they get opened for operating the drive. This coordinates well with -other use cases of optical drives, like mount(8). But since year 2010 -all /dev/sr* share a global lock which allows only one drive to process -an SCSI command while all others have to wait for its completion. -This yields awful throughput if more than one drive is writing or reading +other use cases of optical drives, like mount(8). But between year 2010 and +2020 all /dev/sr* shared a global lock which allowed only one drive to process +an SCSI command while all others had to wait for its completion. +This yieldied awful throughput if more than one drive was writing or reading simultaneously. -The global lock is not applied to device files /dev/sg* and also not if +The global lock was never applied to device files /dev/sg* and also not if the xorriso drive address is prepended by "stdio:". @* -So for simultaneous burn runs on modern GNU/Linux it is advisable to perform --scsi_dev_family "sg" before any -dev, -indev, or -outdev. The drive addresses -may then well be given as /dev/sr* but will nevertheless get used as +So for simultaneous burn runs on GNU/Linux 2.6 to 5.5 it is advisable to +perform -scsi_dev_family "sg" before any -dev, -indev, or -outdev. The drive +addresses may then well be given as /dev/sr*, but will nevertheless get used as the matching /dev/sg*. @* If you decide so, consider to put the command into a global startup file like @@ -8222,7 +8222,20 @@ then it is used as time value to set the default of "volume_date_uuid", -volume_date "all_file_dates" to "set_to_mtime", and -iso_nowtime to "=$SOURCE_DATE_EPOCH". @* -Startup files and program options can override the effect of SOURCE_DATE_EPOCH. +Startup files and program commands 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 command -preparer_id with a text other than "@@xorriso@@" if you want to +override the default at first production time. This command 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 command -pvd_info. @* @sp 1 @c man .SS @@ -8330,7 +8343,7 @@ Thomas Schmitt for libburnia-project.org @c man .SH COPYRIGHT @section Copyright -Copyright (c) 2007 - 2024 Thomas Schmitt +Copyright (c) 2007 - 2025 Thomas Schmitt @* Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of @command{xorriso}. diff --git a/xorriso/xorrisofs.1 b/xorriso/xorrisofs.1 index d1325ac5..8eb9ed04 100644 --- a/xorriso/xorrisofs.1 +++ b/xorriso/xorrisofs.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISOFS 1 "Version 1.5.7, Dec 20, 2024" +.TH XORRISOFS 1 "Version 1.5.7, Apr 24, 2025" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -2308,6 +2308,7 @@ HOME is used to find xorriso and mkisofs startup files. .br MKISOFSRC may be used to point the program to a mkisofs startup file. .br +.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, @@ -2319,6 +2320,19 @@ Further the "now" time for ISO nodes without disk source is then set to the SOURCE_DATE_EPOCH value. .br Startup files and program options can override the effect of SOURCE_DATE_EPOCH. +.br +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. +.br +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. +.br .SS .SH SEE ALSO .TP @@ -2375,7 +2389,7 @@ Thomas Schmitt .br for libburnia\-project.org .SH COPYRIGHT -Copyright (c) 2011 \- 2024 Thomas Schmitt +Copyright (c) 2011 \- 2025 Thomas Schmitt .br Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of xorriso. If you make use diff --git a/xorriso/xorrisofs.info b/xorriso/xorrisofs.info index 70421593..8f72313f 100644 --- a/xorriso/xorrisofs.info +++ b/xorriso/xorrisofs.info @@ -3,7 +3,7 @@ xorrisofs.texi. xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso - Copyright (C) 2011 - 2024 Thomas Schmitt + Copyright (C) 2011 - 2025 Thomas Schmitt Permission is granted to distribute this text freely. INFO-DIR-SECTION Archiving @@ -2010,16 +2010,28 @@ File: xorrisofs.info, Node: Environ, Next: Seealso, Prev: Files, Up: Top The following environment variables influence the program behavior: HOME is used to find xorriso and mkisofs startup files. MKISOFSRC may be used to point the program to a mkisofs startup file. -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 --modification-date=. ---gpt_disk_guid defaults to "modification-date". The default of ---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. + + 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 +--modification-date=. --gpt_disk_guid defaults to "modification-date". +The default of --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.  File: xorrisofs.info, Node: Seealso, Next: Bugreport, Prev: Environ, Up: Top @@ -2076,7 +2088,7 @@ for libburnia-project.org 11.2 Copyright ============== -Copyright (c) 2011 - 2024 Thomas Schmitt +Copyright (c) 2011 - 2025 Thomas Schmitt Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of xorriso. If you make use of the license to derive modified versions of xorriso then you are @@ -2627,10 +2639,10 @@ Node: ExIncBckAcc87277 Node: ExBootable88982 Node: Files93164 Node: Environ94259 -Node: Seealso95132 -Node: Bugreport95833 -Node: Legal96426 -Node: CommandIdx97323 -Node: ConceptIdx114829 +Node: Seealso95834 +Node: Bugreport96535 +Node: Legal97128 +Node: CommandIdx98025 +Node: ConceptIdx115531  End Tag Table diff --git a/xorriso/xorrisofs.texi b/xorriso/xorrisofs.texi index a30a2dfe..071ca1e3 100644 --- a/xorriso/xorrisofs.texi +++ b/xorriso/xorrisofs.texi @@ -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, Dec 20, 2024" +@c man .TH XORRISOFS 1 "Version 1.5.7, Apr 24, 2025" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -68,7 +68,7 @@ @copying xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso -Copyright @copyright{} 2011 - 2024 Thomas Schmitt +Copyright @copyright{} 2011 - 2025 Thomas Schmitt @quotation Permission is granted to distribute this text freely. @@ -2959,6 +2959,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, @@ -2970,6 +2972,19 @@ 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. +@* @c man .SS @c man .SH SEE ALSO @c man .TP @@ -3072,7 +3087,7 @@ Thomas Schmitt for libburnia-project.org @c man .SH COPYRIGHT @section Copyright -Copyright (c) 2011 - 2024 Thomas Schmitt +Copyright (c) 2011 - 2025 Thomas Schmitt @* Permission is granted to distribute this text freely. It shall only be modified in sync with the technical properties of xorriso. If you make use