Hello community, here is the log from the commit of package libburn for openSUSE:Factory checked in at 2016-08-03 11:42:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libburn (Old) and /work/SRC/openSUSE:Factory/.libburn.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libburn" Changes: -------- --- /work/SRC/openSUSE:Factory/libburn/libburn.changes 2016-07-27 16:28:55.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libburn.new/libburn.changes 2016-08-03 11:42:12.000000000 +0200 @@ -1,0 +2,14 @@ +Wed Jul 27 21:34:55 UTC 2016 - [email protected] + +- Update to 1.4.4: + * Bug fix: Option drive_scsi_dev_family=sg did not convert + /dev/sr* to /dev/sg* + * Bug fix: burn_make_input_sheet_v07t() falsly recognized double + byte encoding. Affected cdrskin option: cdtext_to_v07t= + * Bug fix: Double free at end of run if + burn_write_opts_set_leadin_text() is used. Affected cdrskin + option: textfile= + * Bug fix: DVD book type of DVD+RW DL and DVD+R DL was reported + wrong. + +------------------------------------------------------------------- Old: ---- libburn-1.4.2.pl01.tar.gz New: ---- libburn-1.4.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libburn.spec ++++++ --- /var/tmp/diff_new_pack.PTGrm6/_old 2016-08-03 11:42:12.000000000 +0200 +++ /var/tmp/diff_new_pack.PTGrm6/_new 2016-08-03 11:42:12.000000000 +0200 @@ -18,7 +18,7 @@ %define so_ver 4 Name: libburn -Version: 1.4.2.pl01 +Version: 1.4.4 Release: 0 Summary: Library for Writing Preformatted Data onto Optical Media License: GPL-2.0+ @@ -61,7 +61,7 @@ its drives without using the normal block device I/O. %prep -%setup -q -n %{name}-1.4.2 +%setup -q %build %configure --disable-static ++++++ libburn-1.4.2.pl01.tar.gz -> libburn-1.4.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/ChangeLog new/libburn-1.4.4/ChangeLog --- old/libburn-1.4.2/ChangeLog 2016-01-29 12:26:19.000000000 +0100 +++ new/libburn-1.4.4/ChangeLog 2016-07-01 14:14:40.000000000 +0200 @@ -1,7 +1,17 @@ +libburn-1.4.4.tar.gz Fri Jul 01 2016 +=============================================================================== +* Bug fix: Option drive_scsi_dev_family=sg did not convert /dev/sr* to /dev/sg* +* Bug fix: burn_make_input_sheet_v07t() falsly recognized double byte encoding. + Affected cdrskin option: cdtext_to_v07t= +* Bug fix: Double free at end of run if burn_write_opts_set_leadin_text() is + used. Affected cdrskin option: textfile= +* Bug fix: DVD book type of DVD+RW DL and DVD+R DL was reported wrong. + Thanks to Etienne Bergeron. + libburn-1.4.2.pl01.tar.gz Fri Jan 29 2016 =============================================================================== -* Bug fix: cdrskin "failed to attach fifo" when burning from stdin. +* Bug fix: cdrskin "failed to attach fifo" when burning from stdin. Regression of 1.4.2, rev 5522. libburn-1.4.2.tar.gz Sat Nov 28 2015 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/Makefile.am new/libburn-1.4.4/Makefile.am --- old/libburn-1.4.2/Makefile.am 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/Makefile.am 2016-07-01 14:04:16.000000000 +0200 @@ -12,7 +12,7 @@ # Build libraries libburn_libburn_la_LDFLAGS = \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) $(LIBLDFLAGS) # This causes undesired .o names # configure.ac appends -D options to variable CFLAG ### libburn_libburn_la_CFLAGS = $(LIBBURN_DVD_OBS_64K) @@ -114,9 +114,9 @@ test_poll_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS) test_poll_SOURCES = test/poll.c -## cdrskin construction site - ts A60816 - B51128 +## cdrskin construction site - ts A60816 - B60701 cdrskin_cdrskin_CPPFLAGS = -Ilibburn -cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_1_4_2 +cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_1_4_4 # cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS) # ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/Makefile.in new/libburn-1.4.4/Makefile.in --- old/libburn-1.4.2/Makefile.in 2016-01-29 12:42:58.000000000 +0100 +++ new/libburn-1.4.4/Makefile.in 2016-07-01 14:22:00.000000000 +0200 @@ -328,6 +328,7 @@ LIBBURN_ARCH_LIBS = @LIBBURN_ARCH_LIBS@ LIBCDIO_CFLAGS = @LIBCDIO_CFLAGS@ LIBCDIO_LIBS = @LIBCDIO_LIBS@ +LIBLDFLAGS = @LIBLDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ @@ -434,7 +435,7 @@ # Build libraries libburn_libburn_la_LDFLAGS = \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) $(LIBLDFLAGS) # This causes undesired .o names # configure.ac appends -D options to variable CFLAG @@ -517,7 +518,7 @@ test_poll_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS) test_poll_SOURCES = test/poll.c cdrskin_cdrskin_CPPFLAGS = -Ilibburn -cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_1_4_2 +cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_1_4_4 # cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(LIBBURN_EXTRALIBS) # ts A80123, change proposed by Simon Huggins to cause dynamic libburn linking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/README new/libburn-1.4.4/README --- old/libburn-1.4.2/README 2016-01-29 12:22:12.000000000 +0100 +++ new/libburn-1.4.4/README 2016-07-01 14:06:53.000000000 +0200 @@ -11,7 +11,7 @@ and Ben Jansens <[email protected]> Copyright (C) 2002-2006 Derek Foreman and Ben Jansens - http://files.libburnia-project.org/releases/libburn-1.4.2.pl01.tar.gz + http://files.libburnia-project.org/releases/libburn-1.4.4.tar.gz ------------------------------------------------------------------------------ @@ -19,10 +19,10 @@ From tarball -Obtain libburn-1.4.2.pl01.tar.gz, take it to a directory of your choice and do: +Obtain libburn-1.4.4.tar.gz, take it to a directory of your choice and do: - tar xzf libburn-1.4.2.pl01.tar.gz - cd libburn-1.4.2 + tar xzf libburn-1.4.4.tar.gz + cd libburn-1.4.4 ./configure --prefix=/usr make @@ -723,24 +723,24 @@ xorriso now by default puts EL Torito boot images to low block addresses. It can report and set read speeds. Several rarely occuring bugs were fixed. -- Tue Mar 04 2014 release 1.3.6 +- Tue Mar 04 2014 release 1.3.6: libburn learned to operate optical drives and media on NetBSD. libisofs got a bug fix about HFS+ and enhancements about character set conversion. Minor bugs were fixed in libisoburn. xorriso can now find files with names which cannot be represented unchanged in ECMA-119, Joliet, or HFS+. -- Sat Jun 28 2014 release 1.3.8 +- Sat Jun 28 2014 release 1.3.8: libburn got several bugs fixed. libisofs offers new API calls for inspection of boot sectors in ISO 9660 filesystems. xorriso improved its support for NetBSD, offers new features with command -find, and a command to extract ISO 9660 file content onto standard output or into filter processes. -- Sun May 17 2015 release 1.4.0 +- Sun May 17 2015 release 1.4.0: This release is mainly about bug fixes and a new feature of xorriso to propose commands or as_mkisofs options which can reproduce the boot equipment of the loaded ISO filesystem. -- Sat Nov 28 2015 release 1.4.2 +- Sat Nov 28 2015 release 1.4.2: libburn got some bugs fixed and learned to inquire the drive serial number. libisofs now sorts data file content by ECMA-119 file names for better reproducability of ISO content. Rock Ridge filenames may be restricted to @@ -755,6 +755,14 @@ cdrskin did not work with "-" (stdin) as input. Regression introduced by version 1.4.2. +- Fri Jul 01 2016 release 1.4.4: + The capability to use Linux /dev/sg was revived in order to circumvent the + sr_mutex lock which hampers concurrent use of optical drives via SG_IO. + libisofs now can use appended partitions by El Torito, avoiding the need + for duplicate EFI System Partition images. + Several bugs have been fixed. + + ------------------------------------------------------------------------------ This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/acinclude.m4 new/libburn-1.4.4/acinclude.m4 --- old/libburn-1.4.2/acinclude.m4 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/acinclude.m4 2016-07-01 13:25:22.000000000 +0200 @@ -56,12 +56,14 @@ LDFLAGS="$LDFLAGS -Wl,--version-script=libburn/libburn.ver" AC_TRY_LINK([#include <stdio.h>], [printf("Hello\n");], [vers_libs_test="yes"], [vers_libs_test="no"]) - if test x$vers_libs_test = xno + if test x$vers_libs_test = xyes then - LDFLAGS="$libburnia_save_LDFLAGS" + LIBLDFLAGS="-Wl,--version-script=libburn/libburn.ver" fi + LDFLAGS="$libburnia_save_LDFLAGS" + AC_SUBST(LIBLDFLAGS) ]) - + dnl LIBBURNIA_SET_PKGCONFIG determines the install directory for the *.pc file. dnl Important: Must be performed _after_ TARGET_SHIZZLE @@ -113,3 +115,37 @@ ]) +dnl LIBBURNIA_CHECK_ARCH_LIBS is by Thomas Schmitt, libburnia project +dnl It tests whether the OS dependent libraries are available. +dnl With libisoburn they are needed only for the case that indirect linking +dnl does not work. So it is worth a try to omit them. +dnl $1 = "mandatory" or "optional" define the action if test linking fails. +AC_DEFUN([LIBBURNIA_CHECK_ARCH_LIBS], +[ + libburnia_save_LIBS="$LIBS" + if test "x$LIBBURN_ARCH_LIBS" = x + then + dummy=dummy + else + LIBS="$LIBS $LIBBURN_ARCH_LIBS" + AC_TRY_LINK([#include <stdio.h>], [printf("Hello\n");], + [archlibs_test="yes"], [archlibs_test="no"]) + LIBS="$libburnia_save_LIBS" + if test x$archlibs_test = xno + then + if test x"$1" = xmandatory + then + echo >&2 + echo "FATAL: Test linking with mandatory library options failed: $LIBBURN_ARCH_LIBS" >&2 + echo >&2 + (exit 1); exit 1; + else + echo "disabled linking with $LIBBURN_ARCH_LIBS (because not found)" + LIBBURN_ARCH_LIBS="" + fi + else + echo "enabled linking with $LIBBURN_ARCH_LIBS" + fi + fi +]) + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/cdrskin/README new/libburn-1.4.4/cdrskin/README --- old/libburn-1.4.2/cdrskin/README 2016-01-29 12:26:02.000000000 +0100 +++ new/libburn-1.4.4/cdrskin/README 2016-07-01 14:08:24.000000000 +0200 @@ -4,7 +4,7 @@ cdrskin. By Thomas Schmitt <[email protected]> Integrated sub project of libburnia-project.org but also published via: http://scdbackup.sourceforge.net/cdrskin_eng.html -http://scdbackup.sourceforge.net/cdrskin-1.4.2.pl01.tar.gz +http://scdbackup.sourceforge.net/cdrskin-1.4.4.tar.gz Copyright (C) 2006-2016 Thomas Schmitt, provided under GPL version 2 or later. ------------------------------------------------------------------------------ @@ -26,10 +26,10 @@ Compilation, First Glimpse, Installation -Obtain cdrskin-1.4.2.pl01.tar.gz, take it to a directory of your choice and do: +Obtain cdrskin-1.4.4.tar.gz, take it to a directory of your choice and do: - tar xzf cdrskin-1.4.2.pl01.tar.gz - cd cdrskin-1.4.2 + tar xzf cdrskin-1.4.4.tar.gz + cd cdrskin-1.4.4 Within that directory execute: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/cdrskin/cdrskin.1 new/libburn-1.4.4/cdrskin/cdrskin.1 --- old/libburn-1.4.2/cdrskin/cdrskin.1 2016-01-29 12:10:11.000000000 +0100 +++ new/libburn-1.4.4/cdrskin/cdrskin.1 2016-07-01 14:07:47.000000000 +0200 @@ -2,7 +2,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 CDRSKIN 1 "Version 1.4.2, Nov 28, 2015" +.TH CDRSKIN 1 "Version 1.4.4, Jul 01, 2016" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/cdrskin/cdrskin.c new/libburn-1.4.4/cdrskin/cdrskin.c --- old/libburn-1.4.2/cdrskin/cdrskin.c 2016-01-29 12:30:33.000000000 +0100 +++ new/libburn-1.4.4/cdrskin/cdrskin.c 2016-07-01 14:07:39.000000000 +0200 @@ -87,7 +87,7 @@ /** The official program version */ #ifndef Cdrskin_prog_versioN -#define Cdrskin_prog_versioN "1.4.2" +#define Cdrskin_prog_versioN "1.4.4" #endif /** The official libburn interface revision to use. @@ -100,7 +100,7 @@ #define Cdrskin_libburn_minoR 4 #endif #ifndef Cdrskin_libburn_micrO -#define Cdrskin_libburn_micrO 2 +#define Cdrskin_libburn_micrO 4 #endif @@ -120,34 +120,34 @@ #undef Cdrskin_libburn_versioN #endif -#ifdef Cdrskin_libburn_1_4_2 -#define Cdrskin_libburn_versioN "1.4.2" +#ifdef Cdrskin_libburn_1_4_4 +#define Cdrskin_libburn_versioN "1.4.4" #endif -#ifdef Cdrskin_libburn_1_4_3 -#define Cdrskin_libburn_versioN "1.4.3" +#ifdef Cdrskin_libburn_1_4_5 +#define Cdrskin_libburn_versioN "1.4.5" #endif #ifndef Cdrskin_libburn_versioN -#define Cdrskin_libburn_1_4_2 -#define Cdrskin_libburn_versioN "1.4.2" +#define Cdrskin_libburn_1_4_4 +#define Cdrskin_libburn_versioN "1.4.4" #endif -#ifdef Cdrskin_libburn_1_4_2 +#ifdef Cdrskin_libburn_1_4_4 #undef Cdrskin_libburn_majoR #undef Cdrskin_libburn_minoR #undef Cdrskin_libburn_micrO #define Cdrskin_libburn_majoR 1 #define Cdrskin_libburn_minoR 4 -#define Cdrskin_libburn_micrO 2 +#define Cdrskin_libburn_micrO 4 #endif -#ifdef Cdrskin_libburn_1_4_3 +#ifdef Cdrskin_libburn_1_4_5 #undef Cdrskin_libburn_majoR #undef Cdrskin_libburn_minoR #undef Cdrskin_libburn_micrO #define Cdrskin_libburn_majoR 1 #define Cdrskin_libburn_minoR 4 -#define Cdrskin_libburn_micrO 3 +#define Cdrskin_libburn_micrO 5 #endif @@ -5096,7 +5096,7 @@ printf("CD-Text len: %d\n", num_packs * 18 + 4); } else { - fprintf(stderr, "cdrskin: FATAL : Program error : Unknow format %d with Cdrskin_cdtext_to_file.\n", fmt); + fprintf(stderr, "cdrskin: FATAL : Program error : Unknown format %d with Cdrskin_cdtext_to_file.\n", fmt); {ret= -1; goto ex;} } ret= 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/cdrskin/cdrskin_eng.html new/libburn-1.4.4/cdrskin/cdrskin_eng.html --- old/libburn-1.4.2/cdrskin/cdrskin_eng.html 2016-01-29 12:27:55.000000000 +0100 +++ new/libburn-1.4.4/cdrskin/cdrskin_eng.html 2016-07-01 14:11:48.000000000 +0200 @@ -67,7 +67,7 @@ GPL software included:<BR> </H2> <DL> -<DT>libburn-1.4.2</DT> +<DT>libburn-1.4.4</DT> <DD>(founded by Derek Foreman and Ben Jansens, developed and maintained since August 2006 by Thomas Schmitt from team of libburnia-project.org) @@ -202,13 +202,13 @@ <P> <DL> <DT>Download as source code (see README):</DT> -<DD><A HREF="cdrskin-1.4.2.pl01.tar.gz">cdrskin-1.4.2.pl01.tar.gz</A> +<DD><A HREF="cdrskin-1.4.4.tar.gz">cdrskin-1.4.4.tar.gz</A> (1050 KB). </DD> -<DD><A HREF="cdrskin-1.4.2.pl01.tar.gz.sig">cdrskin-1.4.2.pl01.tar.gz.sig</A></DD> +<DD><A HREF="cdrskin-1.4.4.tar.gz.sig">cdrskin-1.4.4.tar.gz.sig</A></DD> <DD> (detached GPG signature for verification by -<KBD>gpg --verify cdrskin-1.4.2.pl01.tar.gz.sig cdrskin-1.4.2.pl01.tar.gz</KBD> +<KBD>gpg --verify cdrskin-1.4.4.tar.gz.sig cdrskin-1.4.4.tar.gz</KBD> <BR> after <KBD>gpg --keyserver keys.gnupg.net --recv-keys ABC0A854</KBD>). </DD> @@ -247,7 +247,7 @@ </DL> <DL><DT>Contact:</DT> <DD>Thomas Schmitt, <A HREF="mailto:[email protected]">[email protected]</A></DD> -<DD>GNU xorriso mailing list where cdrskin and libburn are on topic, too: +<DD>GNU xorriso mailing list, where cdrskin and libburn are on topic, too: <A HREF="mailto:[email protected]">[email protected]</A></DD> </DL> <DL><DT>License:</DT> @@ -259,18 +259,22 @@ <HR> <P> -Enhancements towards previous stable version cdrskin-1.4.0: +Enhancements towards previous stable version cdrskin-1.4.2: <UL> -<LI>New -toc line "Drive id" tells the drive's individual serial number</LI> +<LI>none</LI> <!-- <LI>none</LI> --> </UL> -Bug fixes towards cdrskin-1.4.0: +Bug fixes towards cdrskin-1.4.2.pl01: <UL> -<LI>Media summary session count of blank and closed media was short by 1</LI> -<LI>Endless loop if transport error occured while waiting for drive ready</LI> +<LI>Option drive_scsi_dev_family=sg did not convert /dev/sr* to /dev/sg*</LI> +<LI>Option cdtext_to_v07t= falsly recognized double byte encoding.</LI> +<LI> +Option textfile= caused a double free at end of the cdrskin run. +</LI> +<LI>DVD book type of DVD+RW DL and DVD+R DL was reported wrong. Thanks to Etienne Bergeron.</LI> <!-- <LI>none</LI> --> @@ -285,8 +289,8 @@ <P> <DL> -<DT><H3>Development snapshot, version 1.4.3 :</H3></DT> -<DD>Enhancements towards current stable version 1.4.2.pl01: +<DT><H3>Development snapshot, version 1.4.5 :</H3></DT> +<DD>Enhancements towards current stable version 1.4.4: <UL> <LI>none yet</LI> <!-- @@ -295,7 +299,7 @@ </UL> </DD> -<DD>Bug fixes towards cdrskin-1.4.2.pl01: +<DD>Bug fixes towards cdrskin-1.4.4: <UL> <LI>none yet</LI> <!-- @@ -305,10 +309,10 @@ </DD> <DD> </DD> -<DD><A HREF="README_cdrskin_devel">README 1.4.3</A> -<DD><A HREF="cdrskin__help_devel">cdrskin-1.4.3 --help</A></DD> -<DD><A HREF="cdrskin_help_devel">cdrskin-1.4.3 -help</A></DD> -<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 1.4.3)</A></DD> +<DD><A HREF="README_cdrskin_devel">README 1.4.5</A> +<DD><A HREF="cdrskin__help_devel">cdrskin-1.4.5 --help</A></DD> +<DD><A HREF="cdrskin_help_devel">cdrskin-1.4.5 -help</A></DD> +<DD><A HREF="man_1_cdrskin_devel.html">man cdrskin (as of 1.4.5)</A></DD> <DD> </DD> <DT>Maintainers of cdrskin unstable packages please use SVN of <A HREF="http://libburnia-project.org"> libburnia-project.org</A></DT> @@ -328,7 +332,7 @@ <A HREF="README_cdrskin_devel">upcoming README</A> ): </DD> <DD> -<A HREF="cdrskin-1.4.3.tar.gz">cdrskin-1.4.3.tar.gz</A> +<A HREF="cdrskin-1.4.5.tar.gz">cdrskin-1.4.5.tar.gz</A> (1050 KB). </DD> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/cdrskin/cdrskin_timestamp.h new/libburn-1.4.4/cdrskin/cdrskin_timestamp.h --- old/libburn-1.4.2/cdrskin/cdrskin_timestamp.h 2016-01-29 12:28:10.000000000 +0100 +++ new/libburn-1.4.4/cdrskin/cdrskin_timestamp.h 2016-07-01 14:08:55.000000000 +0200 @@ -1 +1 @@ -#define Cdrskin_timestamP "2016.01.29.100001" +#define Cdrskin_timestamP "2016.07.01.110001" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/cdrskin/changelog.txt new/libburn-1.4.4/cdrskin/changelog.txt --- old/libburn-1.4.2/cdrskin/changelog.txt 2016-01-29 12:26:56.000000000 +0100 +++ new/libburn-1.4.4/cdrskin/changelog.txt 2016-07-01 14:15:01.000000000 +0200 @@ -13189,7 +13189,7 @@ + cdrskin/add_ts_changes_to_libburn_1_4_3 Updated cdrskin tarball generator -28 Nov 2015 [] +28 Nov 2015 [5617] ChangeLog cdrskin/changelog.txt Updated change log @@ -13204,22 +13204,215 @@ * Result of a Coverity audit: 40+ code changes, but no easy-to-trigger bugs +2015.11.28.210034 [5621] +Makefile.am +configure.ac +README +libburn/libburn.h +cdrskin/cdrskin.c +cdrskin/cdrskin.1 +cdrskin/README +cdrskin/compile_cdrskin.sh +cdrskin/cdrskin_timestamp.h +cdrskin/cdrskin_eng.html +Made number transition to 1.4.3 + +28 Nov 2015 [5622] +- cdrskin/add_ts_changes_to_libburn_1_4_0 +- cdrskin/add_ts_changes_to_libburn_1_4_1 ++ cdrskin/add_ts_changes_to_libburn_1_4_2 ++ cdrskin/add_ts_changes_to_libburn_1_4_3 +Updated cdrskin tarball generator + +28 Nov 2015 [5623] +ChangeLog +cdrskin/changelog.txt +Updated change log + +------------------------------------ cycle - cdrskin-1.4.3 - 2015.11.28.211845 + +28 Nov 2015 [5624] +svn move -m libburn release 1.4.2 is ready +http://svn.libburnia-project.org/libburn/branches/1.4.2 +http://svn.libburnia-project.org/libburn/tags/1.4.2 + +10 Dec 2015 [5634] +configure.ac +acinclude.m4 +Checking for availability of LIBBURN_ARCH_LIBS + 2016.01.27.174553 [5653] cdrskin/cdrskin.c Bug fix: "failed to attach fifo" when burning from stdin. Regression of 1.4.2, rev 5522. +28 Jan 2016 [5564] +ChangeLog +cdrskin/cdrskin_eng.html +cdrskin/changelog.txt +Updated change log + +------------------------------------ cycle - cdrskin-1.4.3 - 2016.01.28.101456 +* Bug fix: cdrskin "failed to attach fifo" when burning from stdin. + Regression of 1.4.2, rev 5522. + + +29 Jan 2016 [5655] +svn copy -m Branching for libburn bugfix release 1.4.2.pl01 +http://svn.libburnia-project.org/libburn/tags/1.4.2 +http://svn.libburnia-project.org/libburn/branches/1.4.2.pl01 + + +2016.01.29.100001 [5656] +cdrskin/cdrskin_timestamp.h +cdrskin/cdrskin.c +Bug fix: cdrskin "failed to attach fifo" when burning from stdin. + Regression of 1.4.2, rev 5522. + +29 Jan 2016 [5657] +README +cdrskin/README +ChangeLog +cdrskin/changelog.txt +cdrskin/cdrskin_eng.html +Mentioned bug fix and pl01 + +29 Jan 2016 [5658] +svn move -m libburn bugfix release 1.4.2.pl01 is ready +http://svn.libburnia-project.org/libburn/branches/1.4.2.pl01 +http://svn.libburnia-project.org/libburn/tags/1.4.2.pl01 + +29 Jan 2016 [5659] +README +ChangeLog +cdrskin/cdrskin_eng.html +cdrskin/changelog.txt +Updated README and change log + ------------------------------ release - cdrskin-1.4.2.pl01 - 2016.01.29.100001 -* Bug fix: "failed to attach fifo" when burning from stdin. +* Bug fix: cdrskin "failed to attach fifo" when burning from stdin. Regression of 1.4.2, rev 5522. +2016.02.05.130154 [5663] +libburn/structure.c +Fixed a typo found by lintian + +2016.02.05.130456 [5664] +cdrskin/cdrskin.c +Fixed a typo found by lintian + +2016.02.18.114857 [5667] +libburn/transport.h +Changed type of length counters of serial numbers from char to int. Warning of gcc on Ubuntu powerpc. + +2016.03.08.073402 [5672] +libburn/libburn.h +libburn/transport.h +libburn/drive.c +libburn/structure.c +libburn/mmc.c +Trying to find out whether READ CAPACITY on CD media includes 2 TAO end blocks + +2016.03.10.195636 [5675] +libburn/libdax_msgs.c +libburn/mmc.c +libburn/write.c +Replaced unused timezone parameter of gettimeofday() by NULL + +2016.03.17.203356 [5680] +libburn/sg-linux.c +Bug fix: Linux /proc/sys/dev/cdrom/info overrode SCSI dev family conversion + +18 Mar 2016 [i5682] +ChangeLog +cdrskin/cdrskin_eng.html +cdrskin/changelog.txt +Updated change log + +------------------------------------ cycle - cdrskin-1.4.3 - 2016.03.18.130253 +* Bug fix: Option drive_scsi_dev_family=sg did not convert /dev/sr* to /dev/sg* + + +2016.03.30.113137 [5686] +libburn/cdtext.c +Bug fix: burn_make_input_sheet_v07t() falsly recognized double byte encoding + +2016.03.30.185545 [5687] +libburn/options.c +Bug fix: Double free at end of run if burn_write_opts_set_leadin_text() is used + +30 Mar 2016 [5688] +ChangeLog +cdrskin/cdrskin_eng.html +cdrskin/changelog.txt +Updated change log + +------------------------------------ cycle - cdrskin-1.4.3 - 2016.03.30.191115 +* Bug fix: burn_make_input_sheet_v07t() falsly recognized double byte encoding +* Bug fix: Double free at end of run if burn_write_opts_set_leadin_text() is used + + +2016.03.30.200445 [5689] +libburn/mmc.c +Bug fix: DVD book type of DVD+RW DL and DVD+R DL was reported wrong. Thanks to Etienne Bergeron. + +2016.03.31.124348 [5690] +libburn/cdtext.c +Bug fix: burn_make_input_sheet_v07t() used character code of block 0 for all blocks + +19 Apr 2016 [5693] +acinclude.m4 +Makefile.am +Prevented option --version-script with linker runs of binaries. By Matthias Klose. + +27 Apr 2016 [5697] +configure.ac +Removed option --silent from libtool runs + +01 Jul 2016 [5700] +svn copy -m Branching for libburn release 1.4.4 +http://svn.libburnia-project.org/libburn/trunk +http://svn.libburnia-project.org/libburn/branches/1.4.4 + +2016.07.01.110001 [5701] +Makefile.am +configure.ac +README +libburn/libburn.h +cdrskin/cdrskin.c +cdrskin/cdrskin.1 +cdrskin/README +cdrskin/compile_cdrskin.sh +cdrskin/cdrskin_timestamp.h +cdrskin/cdrskin_eng.html +Made number transition to 1.4.4 + +01 Jul 2016 [5702] +- cdrskin/add_ts_changes_to_libburn_1_4_2 +- cdrskin/add_ts_changes_to_libburn_1_4_3 ++ cdrskin/add_ts_changes_to_libburn_1_4_4 ++ cdrskin/add_ts_changes_to_libburn_1_4_5 +Updated cdrskin tarball generator + +01 Jul 2016 [] +ChangeLog +cdrskin/changelog.txt +Updated change log + +----------------------------------- release - cdrskin-1.4.4 - 2016.07.01.110001 +* Bug fix: Option drive_scsi_dev_family=sg did not convert /dev/sr* to /dev/sg* +* Bug fix: burn_make_input_sheet_v07t() falsly recognized double byte encoding +* Bug fix: Double free at end of run if burn_write_opts_set_leadin_text() is used +* Bug fix: DVD book type of DVD+RW DL and DVD+R DL was reported wrong. + Thanks to Etienne Bergeron. + [] ChangeLog cdrskin/cdrskin_eng.html cdrskin/changelog.txt Updated change log ------------------------------------- cycle - cdrskin-1.4.3 - +------------------------------------ cycle - cdrskin-1.4.5 - [] ChangeLog @@ -13227,7 +13420,7 @@ cdrskin/changelog.txt Updated change log ------------------------------------- cycle - cdrskin-1.4.3 - +------------------------------------ cycle - cdrskin-1.4.5 - ********************************************************************** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/cdrskin/compile_cdrskin.sh new/libburn-1.4.4/cdrskin/compile_cdrskin.sh --- old/libburn-1.4.2/cdrskin/compile_cdrskin.sh 2016-01-29 12:10:11.000000000 +0100 +++ new/libburn-1.4.4/cdrskin/compile_cdrskin.sh 2016-07-01 14:08:46.000000000 +0200 @@ -1,14 +1,14 @@ #!/bin/sh # compile_cdrskin.sh -# Copyright 2005 - 2015 Thomas Schmitt, [email protected], GPL v2 or later +# Copyright 2005 - 2016 Thomas Schmitt, [email protected], GPL v2 or later # to be executed within ./libburn-* or./cdrskin-* debug_opts="-O2" def_opts= largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1" fifo_opts="" -libvers="-DCdrskin_libburn_1_4_2" +libvers="-DCdrskin_libburn_1_4_4" # To be used if Makefile.am uses libburn_libburn_la_CFLAGS # burn="libburn/libburn_libburn_la-" @@ -41,15 +41,15 @@ elif test "$i" = "-compile_dewav" then compile_dewav=1 - elif test "$i" = "-libburn_1_4_2" + elif test "$i" = "-libburn_1_4_4" then - libvers="-DCdrskin_libburn_1_4_2" + libvers="-DCdrskin_libburn_1_4_4" libdax_audioxtr_o="$burn"libdax_audioxtr.o libdax_msgs_o="$burn"libdax_msgs.o cleanup_src_or_obj="$burn"cleanup.o elif test "$i" = "-libburn_svn" then - libvers="-DCdrskin_libburn_1_4_3" + libvers="-DCdrskin_libburn_1_4_5" libdax_audioxtr_o="$burn"libdax_audioxtr.o libdax_msgs_o="$burn"libdax_msgs.o cleanup_src_or_obj="$burn"cleanup.o @@ -99,7 +99,7 @@ echo "Options:" echo " -compile_cdrfifo compile program cdrskin/cdrfifo." echo " -compile_dewav compile program test/dewav without libburn." - echo " -libburn_1_4_2 set macro to match libburn-1.4.2" + echo " -libburn_1_4_4 set macro to match libburn-1.4.4" echo " -libburn_svn set macro to match current libburn-SVN." echo " -dvd_obs_64k 64 KB default size for DVD/BD writing." echo " -use_libcdio link with -lcdio because libburn uses it." diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/configure new/libburn-1.4.4/configure --- old/libburn-1.4.2/configure 2016-01-29 12:42:57.000000000 +0100 +++ new/libburn-1.4.4/configure 2016-07-01 14:22:00.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libburn 1.4.2. +# Generated by GNU Autoconf 2.69 for libburn 1.4.4. # # Report bugs to <http://libburnia-project.org>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libburn' PACKAGE_TARNAME='libburn' -PACKAGE_VERSION='1.4.2' -PACKAGE_STRING='libburn 1.4.2' +PACKAGE_VERSION='1.4.4' +PACKAGE_STRING='libburn 1.4.4' PACKAGE_BUGREPORT='http://libburnia-project.org' PACKAGE_URL='' @@ -637,6 +637,7 @@ LTLIBOBJS LIBOBJS LIBBURNIA_LDCONFIG_CMD +LIBLDFLAGS LIBCDIO_LIBS LIBCDIO_CFLAGS PKG_CONFIG_LIBDIR @@ -1356,7 +1357,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libburn 1.4.2 to adapt to many kinds of systems. +\`configure' configures libburn 1.4.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1427,7 +1428,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libburn 1.4.2:";; + short | recursive ) echo "Configuration of libburn 1.4.4:";; esac cat <<\_ACEOF @@ -1555,7 +1556,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libburn configure 1.4.2 +libburn configure 1.4.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1924,7 +1925,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libburn $as_me 1.4.2, which was +It was created by libburn $as_me 1.4.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2909,7 +2910,7 @@ # Define the identity of the package. PACKAGE='libburn' - VERSION='1.4.2' + VERSION='1.4.4' cat >>confdefs.h <<_ACEOF @@ -3006,7 +3007,7 @@ BURN_MAJOR_VERSION=1 BURN_MINOR_VERSION=4 -BURN_MICRO_VERSION=2 +BURN_MICRO_VERSION=4 BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION @@ -3015,8 +3016,8 @@ LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION -LT_CURRENT=99 -LT_AGE=95 +LT_CURRENT=101 +LT_AGE=97 LT_REVISION=0 LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` @@ -12247,7 +12248,6 @@ -LIBTOOL="$LIBTOOL --silent" @@ -12721,10 +12721,12 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - if test x$vers_libs_test = xno + if test x$vers_libs_test = xyes then - LDFLAGS="$libburnia_save_LDFLAGS" + LIBLDFLAGS="-Wl,--version-script=libburn/libburn.ver" fi + LDFLAGS="$libburnia_save_LDFLAGS" + if test x$vers_libs_test = xno then @@ -12736,6 +12738,51 @@ echo "disabled strict symbol encapsulation" fi +# Check for system dependent mandatory libraries (LIBBURN_ARCH_LIBS) + + libburnia_save_LIBS="$LIBS" + if test "x$LIBBURN_ARCH_LIBS" = x + then + dummy=dummy + else + LIBS="$LIBS $LIBBURN_ARCH_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdio.h> +int +main () +{ +printf("Hello\n"); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + archlibs_test="yes" +else + archlibs_test="no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$libburnia_save_LIBS" + if test x$archlibs_test = xno + then + if test x"mandatory" = xmandatory + then + echo >&2 + echo "FATAL: Test linking with mandatory library options failed: $LIBBURN_ARCH_LIBS" >&2 + echo >&2 + (exit 1); exit 1; + else + echo "disabled linking with $LIBBURN_ARCH_LIBS (because not found)" + LIBBURN_ARCH_LIBS="" + fi + else + echo "enabled linking with $LIBBURN_ARCH_LIBS" + fi + fi + + # Check whether --enable-ldconfig-at-install was given. if test "${enable_ldconfig_at_install+set}" = set; then : enableval=$enable_ldconfig_at_install; @@ -13405,7 +13452,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libburn $as_me 1.4.2, which was +This file was extended by libburn $as_me 1.4.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13462,7 +13509,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libburn config.status 1.4.2 +libburn config.status 1.4.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/configure.ac new/libburn-1.4.4/configure.ac --- old/libburn-1.4.2/configure.ac 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/configure.ac 2016-07-01 14:05:51.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([libburn], [1.4.2], [http://libburnia-project.org]) +AC_INIT([libburn], [1.4.4], [http://libburnia-project.org]) AC_PREREQ([2.50]) dnl AC_CONFIG_HEADER([config.h]) @@ -107,6 +107,7 @@ dnl 1.3.8 = libburn.so.4.91.0 dnl 1.4.0 = libburn.so.4.93.0 dnl 1.4.2 = libburn.so.4.95.0 +dnl 1.4.4 = libburn.so.4.97.0 dnl dnl So LT_CURRENT, LT_REVISION and LT_AGE get set directly here. dnl SONAME of the emerging library is LT_CURRENT - LT_AGE. @@ -132,7 +133,7 @@ dnl As said: Only copies. Original in libburn/libburn.h : burn_header_version_* BURN_MAJOR_VERSION=1 BURN_MINOR_VERSION=4 -BURN_MICRO_VERSION=2 +BURN_MICRO_VERSION=4 BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION AC_SUBST(BURN_MAJOR_VERSION) @@ -143,14 +144,14 @@ dnl Libtool versioning LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION dnl -dnl This is the release version libburn-1.4.2 +dnl This is the release version libburn-1.4.4 dnl ### This is the development version after above release version dnl LT_CURRENT++, LT_AGE++ has not yet happened. dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile. dnl -dnl SONAME = 99 - 95 = 4 . Linux library name = libburn.so.4.95.0 -LT_CURRENT=99 -LT_AGE=95 +dnl SONAME = 101 - 97 = 4 . Linux library name = libburn.so.4.97.0 +LT_CURRENT=101 +LT_AGE=97 LT_REVISION=0 LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` @@ -186,7 +187,7 @@ AC_PROG_LIBTOOL AC_SUBST(LIBTOOL_DEPS) -LIBTOOL="$LIBTOOL --silent" +dnl LIBTOOL="$LIBTOOL --silent" AC_PROG_INSTALL @@ -317,6 +318,9 @@ echo "disabled strict symbol encapsulation" fi +# Check for system dependent mandatory libraries (LIBBURN_ARCH_LIBS) +LIBBURNIA_CHECK_ARCH_LIBS(mandatory) + AC_ARG_ENABLE(ldconfig-at-install, [ --enable-ldconfig-at-install On GNU/Linux run ldconfig, default=yes], , ldconfig_at_install=yes) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/cdtext.c new/libburn-1.4.4/libburn/cdtext.c --- old/libburn-1.4.2/libburn/cdtext.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/cdtext.c 2016-07-01 13:25:22.000000000 +0200 @@ -1,5 +1,5 @@ -/* Copyright (c) 2011 Thomas Schmitt <[email protected]> +/* Copyright (c) 2011 - 2016 Thomas Schmitt <[email protected]> Provided under GPL version 2 or later. */ @@ -1259,7 +1259,7 @@ break; memcpy(*payload + *payload_count, pack + 4, 12); *payload_count += 12; - if (pack[4] & 128) + if (pack[3] & 128) double_byte = 1; } (*payload)[*payload_count] = 0; @@ -1620,7 +1620,7 @@ return 0; } - /* Obtain first_tno and last_tno from type 0x88 if present. */ + /* Obtain first_tno and last_tno from type 0x8f if present. */ if (first_tno <= 0) { if (pack[5] > 0 && pack[5] + pack[6] < 100 && pack[5] <= pack[6]) { @@ -1647,6 +1647,21 @@ /* Report content */ result_size = 0; for (block = 0; block < 8; block++) { + /* Obtain character code, reject unknown ones */ + ret = search_pack(text_packs, num_packs, 0, 0x8f, block, + &pack, &pack_no, 0); + if (ret > 0) + *char_code = pack[4]; + if (*char_code != 0x00 && *char_code != 0x01 && + *char_code != 0x80) { + sprintf(msg, + "CD-TEXT block %d with unknown character code %2.2x", + block, (unsigned int) *char_code); + libdax_msgs_submit(libdax_messenger, -1, 0x0002019f, + LIBDAX_MSGS_SEV_FAILURE, + LIBDAX_MSGS_PRIO_HIGH, msg, 0, 0); + return 0; + } ret = report_block(text_packs, num_packs, block, first_tno, last_tno, *char_code, result, result_size, flag & 1); @@ -1656,16 +1671,7 @@ continue; result_size = ret; } - -#ifdef NIX - if (flag & 1) - return result_size; - return (int) strlen((char *) result); -#else /* NIX */ - return result_size; - -#endif /* ! NIX */ } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/drive.c new/libburn-1.4.4/libburn/drive.c --- old/libburn-1.4.2/libburn/drive.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/drive.c 2016-07-01 13:25:22.000000000 +0200 @@ -419,6 +419,7 @@ /* despite its name : last valid address, not size */ d->media_read_capacity = read_size / 2048 - !(read_size % 2048); + d->mr_capacity_trusted = 1; if ((stat_ret == -1 || is_rdwr) && d->devname[0]) { ret = burn_os_stdio_capacity(d->devname, 0, &size); if (ret > 0) @@ -1782,10 +1783,12 @@ strcpy(d->current_profile_text,"stdio file"); d->current_is_cd_profile = 0; d->current_is_supported_profile = 1; - if (read_size >= 0) + if (read_size >= 0) { /* despite its name : last valid address, not size */ d->media_read_capacity = read_size / 2048 - !(read_size % 2048); + d->mr_capacity_trusted = 1; + } burn_drive_set_media_capacity_remaining(d, size); } else d->current_profile = 0; /* Drives return this if empty */ @@ -3322,7 +3325,8 @@ /* ts A81215 : API */ int burn_get_read_capacity(struct burn_drive *d, int *capacity, int flag) { - *capacity = d->media_read_capacity + 1; + *capacity = d->media_read_capacity + + (d->media_read_capacity != 0x7fffffff); return (d->media_read_capacity != 0x7fffffff); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/libburn.h new/libburn-1.4.4/libburn/libburn.h --- old/libburn-1.4.2/libburn/libburn.h 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/libburn.h 2016-07-01 14:07:05.000000000 +0200 @@ -1,7 +1,7 @@ /* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */ /* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens - Copyright (c) 2006 - 2015 Thomas Schmitt <[email protected]> + Copyright (c) 2006 - 2016 Thomas Schmitt <[email protected]> Provided under GPL version 2 or later. This is the official API definition of libburn. @@ -3644,7 +3644,7 @@ */ #define burn_header_version_major 1 #define burn_header_version_minor 4 -#define burn_header_version_micro 2 +#define burn_header_version_micro 4 /** Note: Above version numbers are also recorded in configure.ac because libtool wants them as parameters at build time. @@ -3935,7 +3935,7 @@ /* ts A81215 */ /** Inquire the maximum amount of readable data. - It is supposed that all LBAs in the range from 0 to media_read_acpacity-1 + It is supposed that all LBAs in the range from 0 to capacity - 1 can be read via burn_read_data() although some of them may never have been recorded. If tracks are recognizable then it is better to only read LBAs which are part of some track. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/libdax_msgs.c new/libburn-1.4.4/libburn/libdax_msgs.c --- old/libburn-1.4.2/libburn/libdax_msgs.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/libdax_msgs.c 2016-07-01 13:25:22.000000000 +0200 @@ -1,7 +1,7 @@ /* libdax_msgs Message handling facility of libdax. - Copyright (C) 2006 - 2010 Thomas Schmitt <[email protected]>, + Copyright (C) 2006 - 2016 Thomas Schmitt <[email protected]>, provided under GPL version 2 or later. */ @@ -34,14 +34,13 @@ int ret; struct libdax_msgs_item *o; struct timeval tv; - struct timezone tz; (*item)= o= (struct libdax_msgs_item *) calloc(1, sizeof(struct libdax_msgs_item)); if(o==NULL) return(-1); o->timestamp= 0.0; - ret= gettimeofday(&tv,&tz); + ret= gettimeofday(&tv, NULL); if(ret==0) o->timestamp= tv.tv_sec+0.000001*tv.tv_usec; o->process_id= getpid(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/mmc.c new/libburn-1.4.4/libburn/mmc.c --- old/libburn-1.4.2/libburn/mmc.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/mmc.c 2016-07-01 13:25:22.000000000 +0200 @@ -1,7 +1,7 @@ /* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */ /* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens - Copyright (c) 2006 - 2015 Thomas Schmitt <[email protected]> + Copyright (c) 2006 - 2016 Thomas Schmitt <[email protected]> Provided under GPL version 2 or later. */ @@ -744,7 +744,6 @@ { int usec= 0, need, reported_3s = 0, first_wait = 1; struct timeval t0,tnow; - struct timezone dummy_tz; double max_fac, min_fac, waiting; /* Enable to get reported waiting activities and total time. @@ -781,7 +780,7 @@ /* There is need to inquire the buffer fill */ d->pessimistic_writes++; min_fac = ((double) d->wfb_min_percent) / 100.0; - gettimeofday(&t0, &dummy_tz); + gettimeofday(&t0, NULL); #ifdef Libburn_mmc_wfb_debuG sleeplist[0]= 0; sprintf(sleeplist,"(%d%s %d)", @@ -802,7 +801,7 @@ (d->pbf_altered ? "? -" : " -"), (int) ((1.0 - min_fac) * d->progress.buffer_capacity)); #endif - gettimeofday(&tnow,&dummy_tz); + gettimeofday(&tnow, NULL); waiting = (tnow.tv_sec - t0.tv_sec) + ((double) (tnow.tv_usec - t0.tv_usec)) / 1.0e6; if (d->pessimistic_buffer_free - buf->bytes >= @@ -905,10 +904,9 @@ { static struct timeval prev = {0, 0}; struct timeval now; - struct timezone tz; int ret, diff; - ret = gettimeofday(&now, &tz); + ret = gettimeofday(&now, NULL); if (ret == -1) return 0; if (now.tv_sec - prev.tv_sec < Libburn_scsi_write_timeouT) { @@ -1485,6 +1483,20 @@ } +static int mmc_register_leadout(struct burn_drive *d, int *highest_leadout, + int toc_idx) +{ + int lba; + + lba = burn_msf_to_lba(d->toc_entry[toc_idx].pmin, + d->toc_entry[toc_idx].psec, + d->toc_entry[toc_idx].pframe); + if (lba > *highest_leadout) + *highest_leadout = lba; + return 1; +} + + static int mmc_read_toc_al(struct burn_drive *d, int *alloc_len) { /* read full toc, all sessions, in m/s/f form, 4k buffer */ @@ -1494,7 +1506,7 @@ struct buffer *buf = NULL; struct command *c = NULL; int dlen; - int i, old_alloc_len, t_idx, ret; + int i, old_alloc_len, t_idx, ret, highest_leadout = -1; unsigned char *tdata; char *msg = NULL; @@ -1652,9 +1664,12 @@ d->disc->session[tdata[0] - 1]->firsttrack = tdata[8]; if (tdata[3] == 0xA1) d->disc->session[tdata[0] - 1]->lasttrack = tdata[8]; - if (tdata[3] == 0xA2) + if (tdata[3] == 0xA2) { d->disc->session[tdata[0] - 1]->leadout_entry = &d->toc_entry[i]; + /* ts B60305 */ + mmc_register_leadout(d, &highest_leadout, i); + } } /* ts A70131 : was (d->status != BURN_DISC_BLANK) */ @@ -1701,6 +1716,23 @@ /* A80808 */ burn_disc_cd_toc_extensions(d, 0); + /* ts B60304 + Most drives report READ CAPACITY of TAO CD too high by 2 blocks. + TOC format 2 always reports 2 blocks more than are readable. + So here it is possible to check and mark as trusted. + */ + if (highest_leadout > 0 && d->media_read_capacity != 0x7fffffff && + !d->mr_capacity_trusted) { + if (highest_leadout - 3 == d->media_read_capacity) { + d->mr_capacity_trusted = 1; + libdax_msgs_submit(libdax_messenger, d->global_index, + 0x00000002, LIBDAX_MSGS_SEV_DEBUG, + LIBDAX_MSGS_PRIO_ZERO, + "Trusting READ CAPACITY by 2 extra blocks in TOC. Assuming TAO.", + 0, 0); + } + } + ret = 1; ex:; BURN_FREE_MEM(msg); @@ -1909,6 +1941,7 @@ /* ts A81210 */ d->media_read_capacity = 0x7fffffff; + d->mr_capacity_trusted = -1; /* ts A61202 */ d->toc_entries = 0; @@ -4836,6 +4869,7 @@ BURN_ALLOC_MEM(buf, struct buffer, 1); BURN_ALLOC_MEM(c, struct command, 1); d->media_read_capacity = 0x7fffffff; + d->mr_capacity_trusted = -1; mmc_start_if_needed(d, 1); if (mmc_function_spy(d, "mmc_read_capacity") <= 0) {ret = 0; goto ex;} @@ -4853,6 +4887,10 @@ d->media_read_capacity = 0x7fffffff; {ret = 0; goto ex;} } + if (d->current_profile >= 0x08 && d->current_profile <= 0x0A) + d->mr_capacity_trusted = 0; + else + d->mr_capacity_trusted = 1; ret = 1; ex:; BURN_FREE_MEM(c); @@ -5053,7 +5091,7 @@ "DVD-ROM", "DVD-RAM", "DVD-R", "DVD-RW", "HD DVD-ROM", "HD DVD-RAM", "HD DVD-R", "unknown", "unknown", "DVD+RW", "DVD+R", "unknown", - "unknown", "DVD+RW DL" "DVD+R DL", "unknown"}; + "unknown", "DVD+RW DL", "DVD+R DL", "unknown"}; *product_id = *media_code1 = *media_code2 = *book_type = NULL; prf = d->current_profile; @@ -5367,6 +5405,7 @@ d->media_capacity_remaining = 0; d->media_lba_limit = 0; d->media_read_capacity = 0x7fffffff; + d->mr_capacity_trusted = 0; d->pessimistic_buffer_free = 0; d->pbf_altered = 0; d->wait_for_buffer_free = Libburn_wait_for_buffer_freE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/options.c new/libburn-1.4.4/libburn/options.c --- old/libburn-1.4.2/libburn/options.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/options.c 2016-07-01 13:25:22.000000000 +0200 @@ -89,12 +89,22 @@ return 1; *to = calloc(1, sizeof(struct burn_write_opts)); if (*to == NULL) { +out_of_mem:; libdax_msgs_submit(libdax_messenger, -1, 0x00000003, LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH, "Out of virtual memory", 0, 0); return -1; } memcpy(*to, from, sizeof(struct burn_write_opts)); + (*to)->text_packs = NULL; + (*to)->num_text_packs = 0; + if (from->text_packs != NULL && from->num_text_packs > 0) { + (*to)->text_packs = calloc(1, from->num_text_packs * 18); + if ((*to)->text_packs == NULL) + goto out_of_mem; + memcpy((*to)->text_packs, from->text_packs, + from->num_text_packs * 18); + } (*to)->refcount= 1; return 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/sg-linux.c new/libburn-1.4.4/libburn/sg-linux.c --- old/libburn-1.4.2/libburn/sg-linux.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/sg-linux.c 2016-07-01 13:25:22.000000000 +0200 @@ -1620,6 +1620,8 @@ next_proc_info:; baseno += ata_limit; + if (burn_sg_use_family != 0) /* Only with default enumeration */ + return 0; for (i = 0; i < idx->info_count; i++) { if ((idx->info_list)[i][0] == 0) continue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/structure.c new/libburn-1.4.4/libburn/structure.c --- old/libburn-1.4.2/libburn/structure.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/structure.c 2016-07-01 13:25:22.000000000 +0200 @@ -749,10 +749,23 @@ } +static void burn_track_info_high_read(unsigned char *data, + int *higest_readable) +{ + int ret; + + ret = mmc_four_char_to_int(data + 8) + + mmc_four_char_to_int(data + 24); + if (ret - 1> *higest_readable) + *higest_readable = ret - 1; +} + + /* ts A80808 : Enhance CD toc to DVD toc */ int burn_disc_cd_toc_extensions(struct burn_drive *drive, int flag) { int sidx= 0, tidx= 0, ret, track_offset, alloc_len = 34; + int higest_readable = -1; struct burn_toc_entry *entry, *prev_entry= NULL; struct burn_disc *d; /* ts A81126 : ticket 146 : There was a SIGSEGV in here */ @@ -835,6 +848,9 @@ ((!drive->current_is_cd_profile) || ret < prev_entry->track_blocks - 2)) prev_entry->track_blocks = ret; + if (!drive->mr_capacity_trusted) + burn_track_info_high_read( + buf->data, &higest_readable); } prev_entry->extensions_valid |= 1; } @@ -847,6 +863,19 @@ prev_entry = entry; } } + + if (!drive->mr_capacity_trusted) { + if (higest_readable == drive->media_read_capacity - 2) { + drive->media_read_capacity = higest_readable; + drive->mr_capacity_trusted = 1; + libdax_msgs_submit(libdax_messenger, + drive->global_index, 0x00000002, + LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_ZERO, + "Corrected READ CAPACITY by READ TRACK INFORMATION. Assuming TAO.", + 0, 0); + } + } + {ret = 1; goto ex;} failure: libdax_msgs_submit(libdax_messenger, -1, 0x0002015f, @@ -1647,7 +1676,7 @@ if (crs->file_source != NULL) { libdax_msgs_submit(libdax_messenger, -1, 0x00020192, LIBDAX_MSGS_SEV_FAILURE, LIBDAX_MSGS_PRIO_HIGH, - "In cue sheet file: Multiple occurences of FILE", + "In cue sheet file: Multiple occurrences of FILE", 0, 0); ret = 0; goto ex; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/transport.h new/libburn-1.4.4/libburn/transport.h --- old/libburn-1.4.2/libburn/transport.h 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/transport.h 2016-07-01 13:25:22.000000000 +0200 @@ -1,7 +1,7 @@ /* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */ /* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens - Copyright (c) 2006 - 2015 Thomas Schmitt <[email protected]> + Copyright (c) 2006 - 2016 Thomas Schmitt <[email protected]> Provided under GPL version 2 or later. */ @@ -256,12 +256,12 @@ /* ts B51016 : Result from feature 108h : Drive Serial Number */ char *drive_serial_number; - char drive_serial_number_len; + int drive_serial_number_len; /* ts B51016 : Result from command AB READ MEDIA SERIAL NUMBER */ char *media_serial_number; - char media_serial_number_len; + int media_serial_number_len; /* ts B10524 : whether the damage bit was set for the future track. bit0= damage bit , bit1= nwa valid bit @@ -369,6 +369,11 @@ 0x7ffffff0 = 32 bit overflow, or unknown stdio size */ int media_read_capacity; + /* ts B60305 : Whether READ CAPACITY of CD is credible: + -1= no READ CAPACITY yet , 0= untrusted READ CAPACITY + 1= READ CAPACITY confirmed or corrected by other commands + */ + int mr_capacity_trusted; /* ts B10314 : Next Writeable Adress for drive_role == 5 */ int role_5_nwa; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libburn-1.4.2/libburn/write.c new/libburn-1.4.4/libburn/write.c --- old/libburn-1.4.2/libburn/write.c 2016-01-29 12:10:12.000000000 +0100 +++ new/libburn-1.4.4/libburn/write.c 2016-07-01 13:25:22.000000000 +0200 @@ -1,7 +1,7 @@ /* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */ /* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens - Copyright (c) 2006 - 2012 Thomas Schmitt <[email protected]> + Copyright (c) 2006 - 2016 Thomas Schmitt <[email protected]> Provided under GPL version 2 or later. */ @@ -2748,16 +2748,15 @@ int amount, int flag) { struct timeval tnow; - struct timezone dummy_tz; double to_wait; if (flag & 1) { - gettimeofday(prev_time, &dummy_tz); + gettimeofday(prev_time, NULL); return 1; } if(d->nominal_write_speed <= 0) return 2; - gettimeofday(&tnow, &dummy_tz); + gettimeofday(&tnow, NULL); to_wait = ( ((double) amount) / (double) d->nominal_write_speed ) - (double) ( tnow.tv_sec - prev_time->tv_sec ) - (double) ( tnow.tv_usec - prev_time->tv_usec ) / 1.0e6 @@ -2765,7 +2764,7 @@ if (to_wait >= 0.0001) { usleep((int) (to_wait * 1000000.0)); } - gettimeofday(prev_time, &dummy_tz); + gettimeofday(prev_time, NULL); return 1; }
