"Ganssauge, Gottfried" <gottfried.ganssa...@haufe-lexware.com> wrote:
> Hello list, > > We recently had to switch the machine which produces UDF images for our > products from Ubuntu-12 LTS to Ubuntu-14 LTS. > Unfortunately suddenly all UDF images produced by the new machine were > rejected by our DVD-ROM manufacturer. Their > pre production verification step spit out the following message: > > PI51_U14 - Fehler: > [e] DVD 1 Volume Descriptor Sequences are not > equivalent > [w] DVD 1 Inconsistency between UDF Main and > Reserve Volume Descriptor Sequence > > I started to investigate and found out that the Volume Set ID is slightly > different between the original and the copy of the primary volume descriptor. > As these problems remained consistently with images written on the new > machine we suspected a connection to mkisofs which we use to create our > images. > On the old machine we used 3.01a24 whereas on the new machine 3.01a28 is used > - in both cases directly from the Ubuntu software archives. > Further investigation showed that the difference is in the Volume Set > Identifier field at Offset 72 in the Primary Volume Descriptor. > > I then went through mkisofs' sources and could locate the problematic code at > line 1990 in mkisofs/udf.c in routine udf_main_seq_write. > That routine is called twice - once to write the main VDS and then again to > write the reserve VDS. > Between calls to that routine some time passes so that the call to clock() > returns a slightly different time when called the second time. > To fix that problem I used the tv_usec field of "tv_begun" which is > initialized directly after "begun" and then left stable. Good catch! > The complete patch looks like this: > > diff --git a/mkisofs/udf.c b/mkisofs/udf.c > index 25feca6..04390e2 100644 > --- a/mkisofs/udf.c > +++ b/mkisofs/udf.c > @@ -98,7 +98,7 @@ static UConst char sccsid[] = > extern int use_sparcboot; > > extern struct directory *root; > -extern struct timeval tv_begun; > +extern time_t begun; > > static unsigned lba_main_seq; > static unsigned lba_main_seq_copy; > @@ -723,7 +723,7 @@ set_primary_vol_desc(buf, lba) > /*pvd->volume_abstract;*/ > /*pvd->volume_copyright_notice;*/ > /*pvd->application_ident;*/ > - set_timestamp_from_time_t(&pvd->recording_date_and_time, > tv_begun.tv_sec); > + set_timestamp_from_time_t(&pvd->recording_date_and_time, begun); > set_impl_ident(&pvd->impl_ident); > set_tag(&pvd->desc_tag, UDF_TAGID_PRIMARY_VOLUME_DESC, lba, 512); It seems that your patch is reversed. I'll see what I can do. Jörg -- EMail:jo...@schily.net (home) Jörg Schilling D-13353 Berlin joerg.schill...@fokus.fraunhofer.de (work) Blog: http://schily.blogspot.com/ URL: http://cdrecord.org/private/ http://sourceforge.net/projects/schilytools/files/' ------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140 _______________________________________________ Cdrtools-developers mailing list Cdrtools-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cdrtools-developers