Compare commits

...

135 Commits
1.1.2 ... 1.1.4

Author SHA1 Message Date
66e455534f Promoted branch to tag 2011-08-08 14:07:40 +00:00
9f8964bddd Documented changes and release timestamp 2011-08-08 07:33:45 +00:00
be867aca18 Requiring libisofs-1.1.4 (because of ACL extraction problem in 1.1.2) 2011-08-08 07:30:33 +00:00
8f1412a348 Improved error reporting with problems when extracting xattr or ACL 2011-08-08 07:20:02 +00:00
b6cce50c8f Documented changes and release timestamp 2011-08-07 13:07:14 +00:00
0ffbf07634 Version leap to libisoburn-1.1.4 2011-08-07 13:04:53 +00:00
c676f48ff4 Branching for libisoburn release 1.1.4 2011-08-07 12:21:24 +00:00
920513356b More work on releng/README 2011-08-07 11:03:22 +00:00
9b21530532 Made existing tests comply to upcomming prescriptions for failure messages 2011-08-05 15:49:07 +00:00
bbfe2e7a6e Made existing tests comply to upcomming prescriptions for failure messages 2011-08-05 15:43:58 +00:00
136c3adf6c Improvements about releng/manual_burn 2011-08-04 20:49:20 +00:00
f04db99750 New test releng/manual_burn 2011-08-04 16:46:12 +00:00
121b69159a Further improvements to releng test template 2011-08-04 11:51:47 +00:00
be0d049ec5 Added option -h to general helptext of releng 2011-08-03 18:19:19 +00:00
de36d9b67f Added more text pieces to releng/README, updated template for new tests 2011-08-03 17:35:48 +00:00
01c193c95b new item, test for wrong cd sizes 2011-08-03 14:06:28 +00:00
91b0a2aa8d Checking -assert_volid in auto_isocontent 2011-08-01 19:23:42 +00:00
9a616c30ac Forgot to upload the header which defines Xorriso__to_upper 2011-08-01 15:29:28 +00:00
37a389c283 a better description 2011-08-01 14:50:14 +00:00
a1615087e9 Updated change log and web page 2011-08-01 13:13:22 +00:00
adc3169e34 New report line "Media blocks :" with option -toc 2011-08-01 13:04:14 +00:00
27c59a8f73 Bug fix: -assert_volid did not work. Regression since version 1.1.0, rev 3767. 2011-07-31 14:59:07 +00:00
7df497747d Allowed lower case severity names with -abort_on, -return_with, -report_about 2011-07-31 09:44:41 +00:00
076d5ad8b0 Bug fix: xorriso native mode on some drives wrote unreadble ISO images to CD 2011-07-31 09:18:56 +00:00
6cdbc1e680 Small correction in xorrisofs man page 2011-07-30 08:11:56 +00:00
c2fdd090cc Using libburn call burn_lookup_device_link() 2011-07-28 19:51:21 +00:00
73f9c94397 Requiring libburn 1.1.1 2011-07-28 19:21:26 +00:00
def75b5f34 Updated change log and web page 2011-07-28 11:37:32 +00:00
bf011207da Prefering dvd over cd with -device_links 2011-07-28 11:18:40 +00:00
d9c18ad08d Switched releng/manual_devices from -devices to -device_links 2011-07-27 21:43:24 +00:00
7cc669396e New option -device_links 2011-07-27 21:14:49 +00:00
baf61c3aee Reduced runtime of auto_printsize and balanced xorriso versus genisoimage 2011-07-27 12:04:07 +00:00
44cdc02804 Issueing a warning messages if BD-R with more than 299 sessions is loaded 2011-07-25 10:38:34 +00:00
2d7ac24525 New -check_media option what=image 2011-07-25 09:59:12 +00:00
076d8d1eb8 Improved -check_media with overwritable media and unknown content 2011-07-24 20:39:38 +00:00
8a67604efc Improved media summary with overwritable media and unknown content 2011-07-24 19:34:52 +00:00
9110f895d2 give hints only if the result is left in place 2011-07-24 14:56:36 +00:00
aac5928b92 don't inspect the log for NOTE|DEBUG|ALL 2011-07-24 14:49:43 +00:00
d335e276a5 move to manual_* namespace since it is somehow demanding, downloads iso, etc 2011-07-24 14:35:11 +00:00
77e6101682 Began to sketch an releng/README file 2011-07-23 19:29:46 +00:00
82a51f6c3f Began to sketch an releng/README file 2011-07-23 19:29:31 +00:00
790850d4b1 activate specific options help along with short overview 2011-07-20 12:23:40 +00:00
7f1f7d16c4 renamed to better reflect intentions 2011-07-19 17:16:21 +00:00
6e6883c840 renamed to reflect user expectations 2011-07-19 17:11:40 +00:00
40b25b150f drop ramaining leftover 2011-07-19 17:09:03 +00:00
434fe78ee7 merge remaining todo entries into TODO file, drop completed 2011-07-19 17:02:09 +00:00
14a1af33f9 postpone creation of self data dir, until compiler is checked first 2011-07-19 16:51:51 +00:00
ada1b1114a handle specific help anywhere 2011-07-18 17:22:59 +00:00
daf7a078bd drop obsoleted item 2011-07-18 14:32:53 +00:00
7a94e202f1 fixed a typo 2011-07-18 12:31:23 +00:00
50bebf476d rename releng_ scripts to auto_ 2011-07-18 12:28:43 +00:00
765e0c88cc rename releng_ scripts to auto_ 2011-07-18 12:26:30 +00:00
8cecbc9aca rename releng_ scripts to auto_ 2011-07-18 12:21:39 +00:00
21e5114e71 new todo item: turn most examples from xorriso(1) into tests 2011-07-18 10:33:11 +00:00
e532dcc7bc Added my copyright to run_all_releng 2011-07-18 09:52:41 +00:00
a9e1a6ffd6 new todo item - cunit tests 2011-07-18 07:43:40 +00:00
1ef2ca5f2b Switched error message away from stderr, only pacifier remains on stderr 2011-07-17 17:23:36 +00:00
d0b0684b47 mention manual_* tests, to be run individually, drop WHO slot as it serves to value 2011-07-17 17:04:31 +00:00
019ca32721 drop -T option passed to grep, as it seems reletively new and not supported by the previous versions still in use 2011-07-17 16:51:22 +00:00
fe1d451fe9 move the space requirements into single place, README.core 2011-07-17 16:20:58 +00:00
ffe287cd1e Using a more elegant way to obtain pipe component exit value 2011-07-17 14:37:54 +00:00
ed181cd4e4 Issueing pacifier messages during tree generation of releng_printsize 2011-07-17 13:40:10 +00:00
92ef566e12 Making run_all_releng recognize exit values again (fixing rev 4185) 2011-07-17 13:38:52 +00:00
886388d919 Issueing pacifier messages in run_all_releng about logged line 2011-07-17 13:08:52 +00:00
ccde6bec7c use colon as nullcommand instead of dummy statement 2011-07-16 13:41:18 +00:00
846eec24d6 check for -x argument 2011-07-15 18:33:10 +00:00
587987d019 fix small typos 2011-07-15 18:26:02 +00:00
2a5daec056 drop KEEP variable, since it is inverted CLEANUP 2011-07-15 18:22:09 +00:00
6bce4510d7 cleanup is now triggered by -c 2011-07-15 18:07:02 +00:00
b418a57f01 on cleanup, do cleanup and exit, only check for KEEP 2011-07-15 18:05:14 +00:00
eefda84832 rework to match latest option handling 2011-07-15 17:57:05 +00:00
54855eb89e Changed general option -k -c -f in releng_getopts.inc 2011-07-15 14:10:05 +00:00
feed351d0e Removed call to print_specific_help from releng_getopts.inc 2011-07-15 13:58:34 +00:00
73cfce131d New function check_for_xorriso in releng_getopts.inc 2011-07-15 11:30:30 +00:00
c394fe3ea2 Removed obsolete input checks from releng_getopts.inc 2011-07-15 10:34:39 +00:00
02a13e140f Removed usage of getopts in releng_getopts.inc 2011-07-15 10:29:33 +00:00
f33d3fedb3 Removed remnant reference to releng_getopts_ts.inc 2011-07-15 10:26:26 +00:00
8426577362 Reacted on warnings of cppcheck about libisoburn/burn_wrap.c 2011-07-15 08:31:22 +00:00
ff17e1e6dd inline to reflect latest developments 2011-07-15 06:12:40 +00:00
392f6ba0a0 merge back enhancements from Thomas 2011-07-15 06:08:29 +00:00
5b87ddb4cb add version 2 or later 2011-07-15 06:05:57 +00:00
ee260ecdee Corrected a misunderstanding about meaning of code piece 2011-07-14 17:03:55 +00:00
30d457a3fe Issueing failure message and non-zero exit value if manual_devices_ts fails 2011-07-14 16:52:01 +00:00
92d0f9440c Prepared test proposal for option -f and for incomplete option -x 2011-07-14 12:24:48 +00:00
09cfd395d0 Proposal for test ./manual_devices and inc/releng_getopts_ts.inc 2011-07-14 12:07:04 +00:00
2f32e55e0f Proposal for test ./manual_devices and inc/releng_getopts_ts.inc 2011-07-14 11:57:50 +00:00
a481f41d1c Proposal for test ./manual_devices 2011-07-13 19:05:06 +00:00
b5a93f2de7 Proposal for test ./manual_devices 2011-07-13 17:43:19 +00:00
9d238f91e4 Proposal for test ./manual_devices 2011-07-13 17:31:39 +00:00
d3e0451631 fix device counting 2011-07-13 11:41:39 +00:00
e30bf90933 check for execution from releng/ 2011-07-13 11:24:32 +00:00
910b3511e5 use regular quotation marks 2011-07-13 10:53:59 +00:00
12a24b169a Improved output of -list_speeds with ROM media and ROM drives. 2011-07-12 13:56:36 +00:00
cbc1a9723a check exit status of all commands 2011-07-12 11:01:39 +00:00
364361e228 Improved output of -list_speeds with CD drives. Empty list now cause SORRY. 2011-07-12 09:21:28 +00:00
00fcf43a47 formatting 2011-07-11 19:01:23 +00:00
19daaa2b77 more meaningful output 2011-07-11 18:58:07 +00:00
594b4a0ce3 Reacted on warnings of cppcheck 2011-07-11 17:56:33 +00:00
d4c85696a8 add copyrights and copying details 2011-07-11 09:44:01 +00:00
2e6f3fb6fe add copyrights and copying details 2011-07-11 09:40:23 +00:00
18fee0eb2a exit on not finished yet branches 2011-07-11 09:26:47 +00:00
08d46db86d check devices, to be run manually, for now 2011-07-11 09:24:57 +00:00
506656f5e9 cleanup remaining logs properly when requested 2011-07-11 08:31:03 +00:00
e1aa125c05 drop completed todo items; cleanups 2011-07-10 20:02:07 +00:00
61c485fc10 Recognizing overwritable media, blanked by cdrskin --grow_overwriteable_iso 2011-07-10 11:26:20 +00:00
ec37bd448c fix formatting 2011-07-10 07:06:30 +00:00
d6ddf8924c more unified output for the term and log 2011-07-10 06:51:34 +00:00
cca8143fb7 more unified output for the term and log 2011-07-10 06:48:56 +00:00
b6ff93b834 boldify Leaving of self-generated data on per-test basis too 2011-07-09 18:49:59 +00:00
93dabe189e more clear summary output 2011-07-09 18:00:05 +00:00
697b3c227d highlight removing of self-generated data 2011-07-09 17:19:42 +00:00
f79f3db3db split off common routines for boldification of FAILs 2011-07-09 16:31:46 +00:00
63ce272077 use tput to highlight some FAILs 2011-07-09 16:27:43 +00:00
4ca37c7255 unification 2011-07-09 15:57:52 +00:00
b0eaa673fa don't hardcore paths to genisoimage and mkisofs 2011-07-09 14:42:18 +00:00
8b95d59332 re-run print size test several times to minimize possible disk cache impact 2011-07-09 10:17:29 +00:00
1d6d36488b drop useless bits 2011-07-09 09:58:57 +00:00
0ad9ebf1a6 version goes into the common section 2011-07-09 09:53:39 +00:00
df87273ceb use common section in the heading of the log file, versioning etc 2011-07-09 09:49:10 +00:00
cbd20b1381 more clear formatting, drop commented cruft 2011-07-09 09:27:12 +00:00
6fc4e161b0 more clear formatting 2011-07-09 09:18:01 +00:00
d926357222 more clear formatting 2011-07-09 09:13:06 +00:00
c4381dad52 more clean formatting 2011-07-09 08:45:38 +00:00
3d68267083 check for libjte support in the tested binary and quit gracefully; drop lots of old commented cruft 2011-07-09 08:23:58 +00:00
bda34a1496 hint about req. free space, formatting cleanup, drop completed todo items 2011-07-09 07:33:33 +00:00
8b9cafefef take extra measures we are in sepf-generated data directory before removing self-generated cruft 2011-07-08 16:01:17 +00:00
96c3c3ddb3 drop template config files as they are not needed anymore 2011-07-08 15:03:21 +00:00
805c43ac76 completed transitioning, docs reflect that too 2011-07-08 14:18:54 +00:00
0ad0433554 Documented changes and release timestamp 2011-07-08 13:31:23 +00:00
7fd0fc3b77 Version leap to libisoburn-1.1.3 2011-07-08 13:28:45 +00:00
0441eee147 Version leap to libisoburn-1.1.3 2011-07-08 13:24:57 +00:00
072ba71c2d unification cont. 2011-07-08 13:05:21 +00:00
7918b6cd24 converted to the unified usage pattern 2011-07-08 12:42:05 +00:00
8cfd6308bb more unification 2011-07-08 12:16:44 +00:00
1466254129 add self-contained and unified option parsing 2011-07-08 10:32:22 +00:00
58 changed files with 2901 additions and 1332 deletions

View File

@ -1,17 +1,23 @@
SVN trunk (to become libisoburn-1.1.2.tar.gz)
libisoburn-1.1.4.tar.gz Sun Aug 7 2011
===============================================================================
* Bug fix: xorriso native mode on some drives wrote unreadble ISO images to CD
* Bug fix: -assert_volid did not work. Regression since version 1.1.0.
* Bug fix: -acl or -xattr worked with -extract only on Linux and FreeBSD
* New option -device_links
libisoburn-1.1.2.tar.gz Fri Jul 8 2011
===============================================================================
* Bug fix: Since 1.0.6: Unreadable image produced by: xorrisofs ... >image.iso
* Bug fix: -update_r scheduled non-existing files for hardlink update
* Enabled extraction of the boot catalog file to disk filesystem
* New option -list_speeds
GNU xorriso-1.1.0.pl01.tar.gz Mon Jun 20
GNU xorriso-1.1.0.pl01.tar.gz Mon Jun 20 2011
===============================================================================
* Bug fix: Due to a bug in libburn-1.1.0, GNU xorriso-1.1.0 compiled only
on GNU/Linux, FreeBSD, and Solaris, but not on other systems.
libisoburn-1.1.0.tar.gz Sat 18 Jun 2011
libisoburn-1.1.0.tar.gz Sat Jun 18 2011
===============================================================================
* Bug fix: -mount_opts shared worked only with -osirrox o_excl_off
* Bug fix: xorriso command -add_plainly "any" did not add all files to the image

14
README
View File

@ -4,7 +4,7 @@
libisoburn and xorriso. By Vreixo Formoso <metalpain2002@yahoo.es>
and Thomas Schmitt <scdbackup@gmx.net>
Integrated sub project of libburnia-project.org.
http://files.libburnia-project.org/releases/libisoburn-1.1.0.tar.gz
http://files.libburnia-project.org/releases/libisoburn-1.1.4.tar.gz
Copyright (C) 2006-2011 Vreixo Formoso, Thomas Schmitt.
Provided under GPL version 2 or later.
------------------------------------------------------------------------------
@ -34,17 +34,17 @@ By using this software you agree to the disclaimer at the end of this text:
Compilation, First Glimpse, Installation
Dynamic library and compile time header requirements for libisoburn-1.1.0 :
- libburn.so.4 , version libburn-1.1.0 or higher
- libisofs.so.6 , version libisofs-1.1.0 or higher
Dynamic library and compile time header requirements for libisoburn-1.1.4 :
- libburn.so.4 , version libburn-1.1.4 or higher
- libisofs.so.6 , version libisofs-1.1.4 or higher
libisoburn and xorriso will not start with libraries which are older than their
include headers seen at compile time.
Obtain libisoburn-1.1.0.tar.gz, take it to a directory of your choice
Obtain libisoburn-1.1.4.tar.gz, take it to a directory of your choice
and do:
tar xzf libisoburn-1.1.0.tar.gz
cd libisoburn-1.1.0
tar xzf libisoburn-1.1.4.tar.gz
cd libisoburn-1.1.4
Within that directory execute:

View File

@ -1,4 +1,4 @@
AC_INIT([libisoburn], [1.1.1], [http://libburnia-project.org])
AC_INIT([libisoburn], [1.1.4], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -24,7 +24,7 @@ dnl
dnl These three are only copies to provide libtool with unused LT_RELEASE
ISOBURN_MAJOR_VERSION=1
ISOBURN_MINOR_VERSION=1
ISOBURN_MICRO_VERSION=1
ISOBURN_MICRO_VERSION=4
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
@ -37,16 +37,16 @@ dnl Libtool versioning
dnl Generate libisoburn.so.1.x.y
dnl SONAME will become LT_CURRENT - LT_AGE
dnl
dnl ts B10618
dnl ### This is the release version 1.1.0 = libisoburn.so.1.67.0
dnl This is the development version after above stable release
dnl ts B10807
dnl This is the release version 1.1.4 = libisoburn.so.1.71.0
dnl ### This is the development version after above stable release
dnl LT_CURRENT++, LT_AGE++ have not happened yet.
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
dnl
dnl SONAME = 68 - 67 = 1 . Library name = libisoburn.so.1.67.0
dnl SONAME = 72 - 71 = 1 . Library name = libisoburn.so.1.71.0
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
LT_CURRENT=68
LT_AGE=67
LT_CURRENT=72
LT_AGE=71
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -303,8 +303,8 @@ AC_CHECK_HEADER(libisofs/libisofs.h)
# ------- Visible mark in configure : Start of library check
dnl Check for proper library versions
LIBBURN_REQUIRED=1.1.0
LIBISOFS_REQUIRED=1.1.1
LIBBURN_REQUIRED=1.1.4
LIBISOFS_REQUIRED=1.1.4
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)

View File

@ -344,7 +344,7 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag)
static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
int flag)
{
int ret, lba, nwa, profile, readonly= 0, role, random_access;
int ret, profile, readonly= 0, role, random_access;
int emulation_started= 0;
struct burn_multi_caps *caps= NULL;
struct isoburn_toc_entry *t;
@ -356,6 +356,10 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
char msg[80];
enum burn_disc_status s;
#ifndef Hardcoded_cd_rW
int lba, nwa;
#endif
s= burn_disc_get_status(d);
profile_name[0]= 0;
ret= burn_disc_get_profile(d, &profile, profile_name);
@ -417,7 +421,13 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
/* >>> recognize unsuitable media (but allow read-only media) */;
if(readonly && s != BURN_DISC_EMPTY) {
/* >>> ts B10712: This maps BURN_DISC_UNSUITABLE to BURN_DISC_FULL
which can hardly be correct in general.
??? What reason does this have ?
*/
(*o)->fabricated_disc_status= BURN_DISC_FULL;
/* This might be overwriteable media in a -ROM drive.
Pitfall:
Multi-session media which bear a xorriso image for overwriteables
@ -774,6 +784,7 @@ int isoburn_disc_track_lba_nwa(struct burn_drive *d,
{
int ret;
struct isoburn *o;
enum burn_disc_status s;
#ifdef Hardcoded_cd_rW
/* <<< A70929 : hardcoded CD-RW with fabricated -msinfo */
@ -793,6 +804,10 @@ int isoburn_disc_track_lba_nwa(struct burn_drive *d,
}
if(burn_drive_get_drive_role(d) != 1)
return(1);
s= isoburn_disc_get_status(d);
if(s == BURN_DISC_BLANK) /* We do not believe in anything but nwa = lba = 0 */
return(1);
return(burn_disc_track_lba_nwa(d, opts, trackno, lba, nwa));
}

View File

@ -564,7 +564,9 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
isoburn_set_start_byte(o, size, 0);
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_APPENDABLE;
} else if (!strncmp((char*)pvm->std_identifier, "CDXX1", 5)) {
} else if (strncmp((char*)pvm->std_identifier, "CDXX1", 5) == 0 ||
(strncmp((char*)pvm->std_identifier, "CDxx1", 5) == 0 &&
pvm->vol_desc_type[0] == 'x')) {
/* empty image */
isoburn_set_start_byte(o, o->zero_nwa * 2048, 0);

View File

@ -242,7 +242,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libisofs_req_major 1
#define isoburn_libisofs_req_minor 1
#define isoburn_libisofs_req_micro 1
#define isoburn_libisofs_req_micro 4
/** The minimum version of libburn to be used with this version of libisoburn
at compile time.
@ -250,7 +250,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libburn_req_major 1
#define isoburn_libburn_req_minor 1
#define isoburn_libburn_req_micro 0
#define isoburn_libburn_req_micro 4
/** The minimum compile time requirements of libisoburn towards libjte are
the same as of a suitable libisofs towards libjte.
@ -305,7 +305,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
*/
#define isoburn_header_version_major 1
#define isoburn_header_version_minor 1
#define isoburn_header_version_micro 1
#define isoburn_header_version_micro 4
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.

View File

@ -1,36 +1,32 @@
Release Engineering Che[at|ck] List
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Automated tests
~~~~~~~~~~~~~~~
TEST: Tests starting with releng_* are runnable by run_all_releng
FILE: libisoburn/releng/releng_*
Release Engineering Check List
==============================
Automated and semi-automated tests
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TEST: all auto_* tests are to be run by ./run_all_auto
FILE: http://people.debian.org/~danchev/libburnia/logs/releng/
WHO: george, thomas
TEST: all manual_* tests are to be run individually and manually.
TEST: cppcheck
FILE: http://people.debian.org/~danchev/libburnia/logs/cppcheck/
WHO: george, thomas
TEST: medistimator (dialog mode, size estimation, processing large trees)
requires some specific knowledge of how the tool works, to interpret
the results and compare them previous runs (see comments in the source).
FILE: http://anonscm.debian.org/gitweb/?p=users/danchev/medistimator.git;a=summary
FILE: http://people.debian.org/~danchev/libburnia/logs/medistimator/
WHO: george, thomas
Non-automated tests
~~~~~~~~~~~~~~~~~~~
TEST: valgrind
FILE:
WHO: george, thomas
TEST: buildd_logs
FILE: http://buildd.debian.org (others are also welcome)
FILE: (err/warn from prev. builds for several h/w architectures and kernels: linux, kfreebsd, hurd)
WHO: george, thomas
TEST: gprof
FILE: CFLAGS=-pg ./configure && make
FILE: run resulting executable; gmon.out to be created in current cirectory
FILE: gprof path/to/xorriso gmon.out > gprof.out
WHO: george, thomas

260
releng/README Normal file
View File

@ -0,0 +1,260 @@
------------------------------------------------------------------------------
http:libburnia-project.org
------------------------------------------------------------------------------
libisoburn/releng. By George Danchev <danchev@spnet.net>
and Thomas Schmitt <scdbackup@gmx.net>
Test suite for xorriso and libburnia libraries.
Copyright (C) 2011 George Danchev, Thomas Schmitt
Provided under GPL version 2 or later.
------------------------------------------------------------------------------
The impatient tester will build libisoburn according to ./README and then do
cd ./releng
./run_all_auto -x ../xorriso/xorriso
More patient testers will first read the following description.
The test suite
+++ introduce the test suite,
Directory ./releng of libisoburn contains a collection of test scripts and
auxiliary data. They exercise some typical use cases of building libisoburn
applications and running the ISO 9660 filesystem manipulation and CD/DVD/BD
burn program xorriso.
+++ inform about resource needs,
It is assumed that libburn and libisofs are installed, so that libisoburn
can be configured and built. It is not mandatory that libisoburn is already
installed. The tests may use an installed xorriso program as well as a
freshly built one.
+++ auto and manual tests
There are two groups of test scripts:
auto_* gets started and watched by script run_all_auto.
These tests have a moderate resource consumption and do
not cause mechanical movements of drive trays.
manual_* get started by the user if desired.
Manual tests may create larger sets of temporary files,
may download test data from the internet, may need
system privileges beyond the reach of a sandbox user,
and operate the mechanics of a CD drive.
+++ tell how to run the tests,
Running automated tests
The test scripts expect to get run while the working directory is
./releng
of a libisoburn source tree. E.g.: libisoburn-1.1.4/releng
They create all their temporary files underneath
./releng/releng_generated_data
Some of these files are persistent between tests.
Nevertheless it is safe to empty ./releng/releng_generated_data after
tests are done. The directory itself must be kept.
To run the unobtrusive automatic tests, build libisoburn and xorriso,
go to directory ./releng, and execute
./run_all_auto -x ../xorriso/xorriso
or if you want to use an installed xorriso program:
./run_all_auto -x $(type -p xorriso)
+++ General options -x , -k, -f, -c, -h, --
+++ + All scripts support -h
There are several options which work with run_all_auto and any single test.
-x absolute or relative path to xorriso binary to be run.
-k keep self-generated data.
-c cleanup temporary data kept from previous run and exit.
-f simulate failure.
-h print this help text
-- end of general options, begin of test specific options.
After option "--", there may be given options which are specific to
particular manually executable test scripts.
Manually executable tests
+++ list of manual tests
Currently there are the following tests which should have the attention of
the user or require sysadmin considerations before they are run:
./manual_isojigdo -x ../xorriso/xorriso
Exercises the production of a bootable Debian GNU/Linux image and its Jigdo
files. This test downloads a Debian daily image for i386 of about 70 MB,
extracts its content and composes a new image.
Thus it needs about 250 MB of disk space in releng/releng_generated_data .
This test will only work with GNU xorriso or if libjte was installed already
when libisofs was built. libjte is part of package jigit, version >= 1.18,
available at:
http://www.einval.com/~steve/software/JTE/
./manual_devices -x ../xorriso/xorriso [-- [--dev device_file_to_use]]
Exercises listing of all accessible optical drives and the examination of
a one of these drives. The user needs the permission to operate the CD
drives. This might involve the need for superuser authority.
The media tray of the examined drive will get loaded if it is not already.
If no option --dev is given, then the user gets asked which of the listed
drives to examine more closely.
./manual_burn -x ../xorriso/xorriso [-- [--dev device_file_to_use]
[--what ...directory...] [--any_media]]
Burns the content of the directory given with --what onto re-usable
media: CD-RW, DVD-RW, DVD-RAM, DVD+RW, BD-RE.
Other media types get refused, unless option --any_media is given.
Data, which are possibly present on the media, get overwritten.
The result gets check read and compared with the state of the input
directory. MD5 mismatch causes a test failure. Differences to the directory
state are reported but still regarded as success.
>>> ./run_all_manual
>>> + Any auto_* script can be run on its own, regardless.
>>> List auto tests
+++ give hints what to do with FAIL results.
The text output of the automatic tests is recorded in file
releng_generated_data/log.run_all_auto
Script ./run_all_auto will detect failure of perticular tests and report
lines from the log file which contain problem indicating key words:
NEVER|ABORT|FATAL|FAILURE|MISHAP|SORRY|WARNING|HINT|FAIL|ERROR|WRONG
If the program messages in log.run_all_auto do not explain the failure,
please contact mailing list libburn-hackers@pykix.org .
----------------------------------------------------------------------------
Creating a new test script
+++ * DELIVERING A NEW TEST SCRIPT
+++ + Start a new test script over the top of template_new_releng
+++ + Each completed script starts with auto_ or manual_ prefix
If you want to provide an own test, manual or auto, then first invent a name
for it
test_name="releng/manual_"...some.name...
or
test_name="releng/auto_"...some.name...
Then copy file releng/template_new to $test_name .
Edit $test_name and process any line that begins by "# === TEMPLATE:".
Do what the line prescribes and then remove it from the script. You are
not done as long as such a line remains.
+++ + Each script' self-generated data are to be stored in
+++ ./releng_generated_data/scriptname/ directory
Your test must not start if no file
./inc/releng_getopts.inc
exists, i.e. if the current working direcoty is not ./releng.
If your test creates own files on disk, then it must do this underneath
directory ./releng_generated_data/$test_name (resp. $GEN_DATA_DIR, see below).
+++ + Throw FAIL string to stdout if any failure is detected
+++ + Return exit code 0 on success, non-zero on failure
+++ + Use different exit codes for any failure (range 0-31)
In case of failure, issue a line to stdout that begins by the word "FAIL",
followed by " : " and the name of the test (e.g. $SELF, see below).
Make sure that the test script finally returns a non-zero exit value.
This value should be between 1 and 28. Each type of failure should have its
own exit value.
Predefined are:
31 = Unknown option or unusable argument with known option
30 = Unexpected state of own directory for self generated files
29 = Not in ./releng directory or missing essential parts of ./releng
When exiting prematurely, make sure to call function cleanup.
General options, variables, and functions
+++ inc/releng_getopts.inc variables, functions, initializations
The code piece inc/releng_getopts.inc should get executed inline at the
start of a test script.
It initializes the following variables and sets some of them according
to the general options of the test suite:
SELF basename $0
GEN_DATA_DIR releng_generated_data/${SELF}
RELENG_XORRISO Path to xorriso binary. "" or "0" means no xorriso.
Default "0". Adjustable by option -x.
SIMULATE_FAILURE 0=normal operation, 1=test script shall simulate a failure.
Default 0. Setable to 1 by option -f.
CLEANUP 0=do not cleanup temporary data, 1=normal operation
Default 1. Setable to 0 by option -k.
SPECIFIC_HELP 0=normal operation, 1=print help text of script and exit 0
Default 0. Setable to 1 by option -h
The code piece inc/releng_getopts.inc defines the follwoing functions
for use by the single tests:
print_help Prints the help text for general options.
check_for_xorriso [-x]
Will exit with value 31 if no path to a xorriso binary
was defined by option -x of ./run_all_auto or a single
test.
Option -x of check_for_xorriso additionally tests whether
the given path leads to an executable program.
cleanup Removes the directory tree GEN_DATA_DIR after making
some safety checks.
boldify Try to set the terminal mode for future output to a more
noticable style of writing.
unboldify Reset terminal mode to normal style of writing.
Specific options
+++ + Keep the newly added script options in sync with other scripts
Options which are specific to the test should begin with a double dash.
They may have further arguments.
Implement them in the prepared interpreter loop which begins after line
next_is=ignore
Specific options shall only be interpreted by tests which get run manually.
If you plan to introduce a specific option, look at the description of
existing tests whether one of them would match your needs. In that case,
please re-use the name of that existing option.
=============================================================================
TODO:
* Delete debian-testing-i386-businesscard.iso with ./run_all_auto -c
* Have a script ./run_all_manual
* derive a GNU xorriso test suite from libisoburn test suite
* auto_ tests should know whether they work underneath run_all_auto
or whether they run standalone

View File

@ -1,29 +0,0 @@
Release Engineering
~~~~~~~~~~~~~~~~~~~
* SOFTWARE TO TEST
Use latest libburnia libraries code base from svn and bzr
(see README for aditional and autodetected library dependencies)
Alternatively, use latest all-in-one development tarball from:
http://www.gnu.org/software/xorriso/
* SETUP THE TEST ENVIRONMENT
+ Not all TESTs are scripts (e.g. cppcheck, valgrind)
+ Copy all SCRIPT.conf.template to $HOME/.libburnia-releng/SCRIPT.conf
+ Read the configuration files and set up accordingly to your needs
* DELIVERING A NEW TEST SCRIPT
+ Start a new test script over the top of template_new_releng
+ All filenames start with releng_ prefix
+ Self generated data are to be stored in
./releng_generated_data/scriptname/ directory
+ Test data generation options -rc [-keep]
+ Test data removal options -cleanup
+ Well documented configuration file SCRIPT.conf.template
+ Throw FAIL string to stdout if any failure is detected
+ Return exit code 0 on success, non-zero on failure
+ Use different exit codes for any failure (range 0-31)
* RUNNING TESTS
+ All tests have to be run from the releng/ directory, within
libisoburn source tree. Ther is a 'master' script called
run_all_releng, which runs all scripts prefixed with releng_*.

28
releng/README.old Normal file
View File

@ -0,0 +1,28 @@
Release Engineering
~~~~~~~~~~~~~~~~~~~
* SOFTWARE TO TEST
+ Use latest libburnia libraries code base from svn and bzr
(see top-level README for aditional library dependencies)
+ Alternatively, use latest all-in-one development tarball from:
http://www.gnu.org/software/xorriso/
* SETUP THE TEST ENVIRONMENT AND RUN THE TEST SUITE
+ All tests have to be run from the releng/ directory, within
libisoburn source tree. Self-generated data are stored in
./releng_generated_data/ directory, and the required space for
these data is about 300 megabytes. There is a 'master' script
called run_all_auto, which runs all scripts prefixed with auto_*.
+ Any auto_* script can be run on its own, regardless.
+ Any manual_* script is to be run on its own, only.
+ All scripts support -h, -help, --help and
print usage help when run without options.
* DELIVERING A NEW TEST SCRIPT
+ Start a new test script over the top of template_new_releng
+ Each completed script starts with auto_ or manual_ prefix
+ Each script' self-generated data are to be stored in
./releng_generated_data/scriptname/ directory
+ Keep the newly added script options in sync with other scripts
+ Throw FAIL string to stdout if any failure is detected
+ Return exit code 0 on success, non-zero on failure
+ Use different exit codes for any failure (range 0-31)

View File

@ -1,36 +1,27 @@
* Invent an interpreter to read options from config files and sets the variables
or use confget ( http://devel.ringlet.net/textproc/confget/ )
OR BETTER YET TRY TO DROP the entire concept of config files and
rely solely on cmdline options.
* Write a common configuration facility.
* Manpage examples turned into tests
Convert most examples from xorriso(1) manpage into tests.
* Expose ldd and --version of tested binary just once.
* Also support 'run_all_releng /path/to/xorriso [-keep]'
i.e. without the need to install config files in place.
* Merge 'merge_into_isocontent' into 'releng_isocontent' (former hardlinks)
* Enhance 'auto_isocontent'
Extend it to use some more demanding directory tree.
MD5s should be checked. ACLs and xattr (if we are on Linux).
All file types as of stat(2) should be tested.
Test various comparisons:
xorriso provides built-in means for comparison:
xorriso -compare_r disk_path iso_rr_path
xorriso -indev my.iso -find / vs. find input_dir
bsdtar -xf my.iso vs. input_dir
* Also check trivial operations like --devices, etc.
* Split off common functionality in common ./lib/ so it can be re-used
by all scripts. This might include cmdline option parsing, some
validation code like releng_isocontent:is_valid_iso9660
* Test for wrong CD sizes would need a new test and probably an
automatic CD changer.
* We need to give a hint about how much storage space will be consumed.
* Burning tests - maybe a new 'manual_burning' test?
Further if we want to have a burn test (with MD5 and checkreading)
then we will need configuration means to enable this. By default
it should not risk to burn one-time media which sit in the drive
by mere accident.
* We could mark all own stderr messages by a prefix like "===".
* Burning tests ideas/thoughts by Thomas:
> There will have to be a warning and user input before we load
> the drive tray. -dev, -indev, -oudev do this loading which can
> cause finger injury, psychical trauma, and chuting computers.
>
> Further if we want to have a burn test (with MD5 and checkreading)
> then we will need configuration means to enable this. By default
> it should not risk to burn one-time media which sit in the drive
> by mere accident.
* Library unit tests - investigate the possibility to write some
cunit-based tests (http://cunit.sourceforge.net) for both
xorriso.h and libisoburn.h API's. The code samples could be put into
codesamples/ directory and run by auto_cxx or a separate auto_ script.

88
releng/auto_cxx Executable file
View File

@ -0,0 +1,88 @@
#!/bin/bash
# Copyright 2011 George Danchev <danchev@spnet.net>
# Licensed under GNU GPL version 2 or later
set -e
not_in_releng_exit() {
printf "\nPlease execute the tests from releng directory.\n\n"
exit 1
}
. inc/releng_getopts.inc || not_in_releng_exit
print_specific_help() {
cat << HLP
Specific options:
none yet.
Overview:
Tests both xorriso/xorriso.h and libisoburn/libisoburn.h
APIs for C++ cleanness.
HLP
}
if test "$SPECIFIC_HELP" = 1; then
print_specific_help
exit 0
fi
# xorriso binary is not needed for that particular test
SAMPLE_CODE_DIR=codesamples
CC=g++
# check compiler
if ! which "${CC}" >/dev/null 2>&1; then
printf "\n${SELF}: Not found: ${CC}. Install ${CC}.\n"
cleanup
exit 5
fi
# check data dir
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -c' to remove.\n"
exit 6
else
mkdir "${GEN_DATA_DIR}"
fi
# process sample code tests
# if test -f "${SAMPLE_CODE_DIR}"/*.cpp; then
for SMPL in `ls "${SAMPLE_CODE_DIR}"/*.cpp`; do
CMD_CPL="${CC} -I../ -L ../libisoburn/.libs/ -lisoburn -o ${SMPL}.obj ${SMPL}"
printf "${SELF}: ${CMD_CPL}\n"
set +e
${CMD_CPL}
RET_CPL="$?"
if [ ${RET_CPL} == 0 -a -f ${SMPL}.obj ]; then
mv ${SMPL}.obj ${GEN_DATA_DIR}
else
printf "\nFAIL : ${SELF}: Compilation of ${SMPL}\n"
cleanup
exit 7
fi
BASE=$(basename ${SMPL}.obj)
printf "${SELF}: Running LD_LIBRARY_PATH=../libisoburn/.libs/:${LD_LIBRARY_PATH} ${GEN_DATA_DIR}/${BASE}"
LD_LIBRARY_PATH=../libisoburn/.libs/:${LD_LIBRARY_PATH} ${GEN_DATA_DIR}/${BASE}
RET_SMPL="$?"
case ${RET_SMPL} in
0)
printf "...ok\n"
;;
*)
printf "exit code: ${RET_SMPL}\n"
cleanup
exit 8
;;
esac
set -e
done
#else
# printf "\n${SELF}: No C++ code samples found in ${SAMPLE_CODE_DIR}\n"
#fi
# clean
cleanup
exit 0

215
releng/auto_isocontent Executable file
View File

@ -0,0 +1,215 @@
#!/bin/bash
# Copyright 2011 Thomas Schmitt <scdbackup@gmx.net>
# Copyright 2011 George Danchev <danchev@spnet.net>
# Licensed under GNU GPL version 2 or later
# Test the correct handling of hardlinks by xorriso options
# -update_r , -hardlinks perform_update , and -extract
not_in_releng_exit() {
printf "\nPlease execute the tests from releng directory.\n\n"
exit 1
}
. inc/releng_getopts.inc || not_in_releng_exit
print_specific_help() {
cat << HLP
Specific options:
none yet.
Overview:
Tests ISO image contents by performing various
image generation, extractions and comparisons.
HLP
}
if test "$SPECIFIC_HELP" = 1; then
print_specific_help
exit 0
fi
if [ ! -x $RELENG_XORRISO ]; then
print_help
printf "\n${SELF}: -x absolute or relative path to binary to be run.\n\n"
exit 31
fi
# check data dir, if any and after checking -x xorriso
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -c' to remove.\n"
exit 8
else
mkdir "${GEN_DATA_DIR}"
fi
export xorriso=${RELENG_XORRISO}
export workdir=${GEN_DATA_DIR}
export image_file="$workdir"/xorriso_hardlinks.iso
export on_disk="$workdir"/xorriso_hardlinks_test_dir
export in_iso=""
export copy_on_disk="$workdir"/xorriso_hardlinks_copy_dir
export failure=0
export simulate_failure=${SIMULATE_FAILURE}
export next_is_xorriso=0
export next_is_rc=0
export bad=0
export report_about="-report_about UPDATE"
test -z "$in_iso" && in_iso="$on_disk"
# mkdir "$workdir" || bad=1
mkdir "$on_disk" || bad=1
if test "$bad" = 1
then
echo -e "\nFAIL : ${SELF} : Test environment error : Cannot make directories"
exit 3
fi
# All must be set at this point
printf "\n${SELF}: Setting up $on_disk with several hardlinks\n" >&2
echo test_content >"$on_disk"/file_1 || exit 1
echo test_content >"$on_disk"/file_2 || exit 1
ln "$on_disk"/file_1 "$on_disk"/file_1_link_a || exit 1
ln "$on_disk"/file_1 "$on_disk"/file_1_link_b || exit 1
ln "$on_disk"/file_2 "$on_disk"/file_2_link_a || exit 1
ls -l "$on_disk"/*
# trivial ISO 9660 image validation routine
is_valid_iso9660() {
ISOfile="$1"
if [ ! -f ${ISOfile} ]; then
failure=1
printf "\nFAIL : ${SELF} : Not found: ${ISOfile}\n"
fi
if file ${ISOfile} | grep -P "ISO\s+9660\s+CD-ROM\s+filesystem\s+data" >/dev/null 2>&1; then
printf "\n${SELF}: Resulting ${ISOfile} OK. Looks like ISO 9660 filesystem.\n"
else
failure=1
printf "\nFAIL : ${SELF} : ${ISOfile} DOES NOT look like ISO 9660 filesystem data.\n"
fi
}
echo -e "\n${SELF}: Producing simple image via -o" >&2
"$xorriso" -as mkisofs "$on_disk" -o "$workdir"/image_minus_o.iso
is_valid_iso9660 "$workdir"/image_minus_o.iso
echo -e "\n${SELF}: Producing simple image via redirect" >&2
"$xorriso" -as mkisofs "$on_disk" > "$workdir"/image_redirected.iso
is_valid_iso9660 "$workdir"/image_redirected.iso
echo -e "\n${SELF}: Producing simple image via pipe" >&2
"$xorriso" -as mkisofs "$on_disk" | cat > "$workdir"/image_piped.iso
is_valid_iso9660 "$workdir"/image_piped.iso
echo -e "\n${SELF}: Producing simple image with for_backup/update_r/hardlinks" >&2
"$xorriso" \
$report_about \
-version \
-for_backup \
-padding 0 \
-outdev "$image_file" \
-volid TEST_AUTO_ISOCONTENT \
-update_r "$on_disk" "$in_iso" \
-hardlinks perform_update
ret=$?
if test "$ret" -gt 0 -a "$ret" -lt 32
then
printf "\n${SELF}: xorriso write run failed\n\n" >&2
cleanup
printf "${SELF}: FAILED\n"
exit 1
fi
is_valid_iso9660 "$image_file"
# It must refuse to load and go on with -assert_volid and non-matching pattern.
msg=$(\
"$xorriso" \
-abort_on FATAL \
-return_with FAILURE 32 \
-assert_volid 'NON_MATCHING*' FATAL \
-indev "$image_file" \
2>&1
)
ret=$?
if test "$ret" -gt 0 -a "$ret" -lt 32
then
printf "\n${SELF}: Ok. -assert_volid snapped.\n"
elif test "$ret" -ne 0
then
failure=1
echo >&2
echo "$msg" >&2
printf "\nFAIL : ${SELF} : -assert_volid test not properly performed\n\n" >&2
else
failure=1
printf "\nFAIL : ${SELF} : -assert_volid did not snap\n\n" >&2
fi
echo -e "\n${SELF}: Copying from image to temporary disk tree" >&2
"$xorriso" \
$report_about \
-for_backup \
-assert_volid 'TEST_AUTO_ISOCONT*' FATAL \
-indev "$image_file" \
-osirrox on \
-find "$in_iso" -exec lsdl -- \
-extract "$in_iso" "$copy_on_disk"
ret=$?
if test "$ret" -gt 0 -a "$ret" -lt 32
then
printf "\n${SELF}: xorriso file extraction run failed\n\n" >&2
cleanup
printf "${SELF}: FAILED\n"
exit 1
fi
if test "$simulate_failure" = 1
then
echo -e "\n${SELF}: SIMULATING FAILURE BY REMOVING AN EXTRACTED FILE" >&2
echo -e "\nFAIL : ${SELF} : Simulated failure caused by option -fail"
rm "$copy_on_disk"/file_1_link_b
fi
printf "\n${SELF}: Comparing original disk tree and temporary one..." >&2
diff -r "$on_disk" "$copy_on_disk"
if test "$?" -ne 0
then
echo -e "\nFAIL : ${SELF} : diff -r $on_disk $copy_on_disk reports differences" >&2
echo -e "\nFAIL : ${SELF} : diff -r reports differences"
failure=1
else
printf "OK" >&2
fi
printf "\n${SELF}: Checking for hardlinks being siblings...\n"
ls -l "$copy_on_disk"/*
x=$(echo $(ls -l "$copy_on_disk"/* | awk '{print $2}'))
expected="3 3 3 2 2"
if test x"$x" = x"$expected"
then
printf "\n${SELF}: Checking for hardlinks being siblings. Done. OK.\n" >&2
else
printf "\nFAIL : ${SELF} : Link count of extracted files is not as expected." >&2
printf "\n${SELF}: Expected: $expected" >&2
printf "\n${SELF}: Got : $x\n" >&2
failure=1
fi
#
cleanup
# Report result
echo
if test "$failure" = 1
then
printf "${SELF}: FAILED"
echo
exit 1
else
printf "${SELF}: Passed"
echo
fi
exit 0

111
releng/auto_printsize Executable file
View File

@ -0,0 +1,111 @@
#!/bin/bash
# Copyright 2011 George Danchev <danchev@spnet.net>
# Licensed under GNU GPL version 2 or later
set -e
not_in_releng_exit() {
printf "\nPlease execute the tests from releng directory.\n\n"
exit 1
}
# Include common bits
. inc/releng_getopts.inc || not_in_releng_exit
print_specific_help() {
cat << HLP
Specific options:
none yet.
Overview:
Test performance of print_size against various input tree.
Optionally compare with genisoimage and mkisofs.
HLP
}
if test "$SPECIFIC_HELP" = 1; then
print_specific_help
exit 0
fi
# Each test should decide whether or not it needs
# a xorriso binary to test, since some do compilations only.
if [ ! -x $RELENG_XORRISO ]; then
print_help
printf "\n${SELF}: -x absolute or relative path to binary to be run.\n\n"
exit 31
fi
# check data dir, if any and after checking -x xorriso
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -c' to remove.\n"
exit 8
else
mkdir "${GEN_DATA_DIR}"
fi
#
DIR_UPPER=32
FILE_UPPER=10
# All must be set at this point
# TODO: work out a smarter way to quickly generate different
# types of trees (long, deep, etc)
printf "\n${SELF}: Generating sample tree in ${GEN_DATA_DIR} :\n"
count=0
date
for ((i1=0; i1 < ${DIR_UPPER}/4; i1++))
do
for ((i2=0; i2 < ${DIR_UPPER}/2; i2++))
do
for ((i3=0; i3 < ${DIR_UPPER}; i3++))
do
mkdir -p ${GEN_DATA_DIR}/DirOne$i1/DirTwo$i2/DirThree$i3
for ((i_file=0; i_file < ${FILE_UPPER}; i_file++))
do
echo -n \
> ${GEN_DATA_DIR}/DirOne$i1/DirTwo$i2/DirThree$i3/File_${i_file}
count=$((count + 1))
done
done
done
echo " ${count} files created ..."
done
printf "done.\n"
date
du -s "${GEN_DATA_DIR}"
printf "\n${SELF}: Performing several print size runs to neutralize possible disk cache impact.\n"
# run xorriso
if [ -x ${RELENG_XORRISO} ]; then
for run in 1 2 3; do
printf "\n${SELF}: Running ${RELENG_XORRISO} -as mkisofs -quiet -print-size ${GEN_DATA_DIR}. Trial: ${run}.\n"
time ${RELENG_XORRISO} -as mkisofs -quiet -print-size ${GEN_DATA_DIR}
done
fi
# try to run genisoimage
if which genisoimage >/dev/null 2>&1; then
RELENG_GENISOIMAGE=`which genisoimage`
for run in 1 2 3; do
printf "\n${SELF}: Running ${RELENG_GENISOIMAGE} -quiet -print-size ${GEN_DATA_DIR}. Trial: ${run}.\n"
time ${RELENG_GENISOIMAGE} -quiet -print-size ${GEN_DATA_DIR}
done
fi
# try to run mkisofs
if which mkisofs >/dev/null 2>&1; then
RELENG_MKISOFS=`which mkisofs`
for run in 1 2 3; do
printf "\n${SELF}: Running ${RELENG_MKISOFS} -quiet -print-size ${GEN_DATA_DIR}. Trial: ${run}.\n"
time ${RELENG_MKISOFS} -quiet -print-size ${GEN_DATA_DIR}
done
fi
#
cleanup
#
exit 0

View File

@ -1,5 +1,9 @@
// Just to ensure we are C++-clean. This should not spit too much noise
/* Copyright 2011 George Danchev <danchev@spnet.net>
* Licensed under GNU GPL version 2
*/
#if __WORDSIZE == 32
#define _LARGEFILE_SOURCE 1
#define _FILE_OFFSET_BITS 64

View File

@ -1,5 +1,9 @@
// Just to ensure we are C++-clean. This should not spit too much noise
/* Copyright 2011 George Danchev <danchev@spnet.net>
* Licensed under GNU GPL version 2
*/
#if __WORDSIZE == 32
#define _LARGEFILE_SOURCE 1
#define _FILE_OFFSET_BITS 64

View File

@ -0,0 +1,167 @@
# Copyright 2011 George Danchev <danchev@spnet.net>
# Copyright 2011 Thomas Schmitt <scdbackup@gmx.net>
# Licensed under GNU GPL version 2 or later
SELF=$(basename $0)
RELENG_XORRISO=0
SIMULATE_FAILURE=0
CLEANUP=1
SPECIFIC_HELP=0
START_DIR_DONT_CHANGE=`pwd`
GEN_DATA_DIR=releng_generated_data/${SELF}
#############################################
print_help() {
cat << EOF
Usage: $SELF -x path/to/xorriso [-k] [-f] [-c] [-h]
[-- ...test specific options...]
General options:
-x absolute or relative path to xorriso binary to be run.
-k keep self-generated data.
-c cleanup self-generated data kept from previous run and exit.
-f simulate failure.
-h print this help text
-- end of general options, begin of test specific options.
EOF
}
boldify() {
if which tput >/dev/null 2>&1; then tput smso; fi
}
unboldify() {
if which tput >/dev/null 2>&1; then tput rmso; fi
}
#############################################
cleanup() {
if [ ${CLEANUP} -eq 1 ]; then
# safety net, just in case -> we want to be in the starting
# directory before removing whatever self-generated stuff
if [ -d "${GEN_DATA_DIR}" ]; then
cd "${START_DIR_DONT_CHANGE}" || exit 2
# Verify once again we are in the releng_generated_data directory
# Check for both returned code of grep and returned matching string
READ_CANON_EXISTS=`readlink -e "${GEN_DATA_DIR}"`
DIR_NAME_GEN_DATA=`dirname "${READ_CANON_EXISTS}"`
set +e
RET_NON_EMPTY_STRING=`echo "${DIR_NAME_GEN_DATA}" | grep -P "\w+\/releng_generated_data$"`
GREP_RET_GEN_DATA="$?"
case "${GREP_RET_GEN_DATA}" in
0)
if [ x"${RET_NON_EMPTY_STRING}" != x"" ]; then
# now call the nastiness
chmod +w -R ${GEN_DATA_DIR}
rm -rf ${GEN_DATA_DIR}
boldify
printf "${SELF}: Removed (self-generated) %s\n" ${GEN_DATA_DIR}
unboldify
else
printf "FAIL : ${SELF} : Safety check for being in releng_generated_data directory.\n"
printf "FAIL : ${SELF} : GREP returned empty string: ${RET_NON_EMPTY_STRING}.\n"
printf "FAIL : ${SELF} : Skipped trying to remove ${GEN_DATA_DIR} directory. Exiting.\n"
fi
;;
*)
printf "FAIL : ${SELF} : Safety check for being in releng_generated_data directory.\n"
printf "FAIL : ${SELF} : GREP returned code: ${GREP_RET_GEN_DATA}.\n"
printf "FAIL : ${SELF} : Skipped trying to remove ${GEN_DATA_DIR} directory. Exiting.\n"
exit 30
;;
esac
else
printf "${SELF}: ${GEN_DATA_DIR} does not exist. Nothing to clean.\n"
fi
else
boldify
printf "${SELF}: Leaving (self-generated) %s\n" ${GEN_DATA_DIR}
unboldify
fi
}
#############################################
check_for_xorriso() {
# $1: if "-x" then check executability
if test -z "$RELENG_XORRISO" -o "$RELENG_XORRISO" = "0"
then
print_help
# print_specific_help
echo
echo "${SELF}: Need -x absolute or relative path to xorriso binary."
echo
exit 31
fi
if [ x"$1" = x"-x" -a ! -x "$RELENG_XORRISO" ]
then
print_help
# print_specific_help
echo
echo "${SELF}: Path given by option -x does not lead to an executable file."
echo "Given is: '$RELENG_XORRISO'"
if test "$RELENG_XORRISO" = "xorriso"
then
xorriso=$(type -p xorriso)
if test -n "xorriso"
then
echo "Hint: Try '$xorriso'"
fi
fi
echo
exit 31
fi
}
#############################################
next_is=
for i in "$@"
do
if test "$next_is" = "ignore"
then :
elif test "$next_is" = "x"
then
RELENG_XORRISO="$i"
next_is=
elif test x"$i" = x"-x"
then
next_is="x"
elif test x"$i" = x"-k"
then
CLEANUP=0
elif test x"$i" = x"-c"
then
CLEANUP=1
cleanup
exit 0
elif test x"$i" = x"-f"
then
SIMULATE_FAILURE=1
elif test x"$i" = x"-h"
then
print_help
SPECIFIC_HELP=1
elif test x"$i" = x"--"
then
# Begin of private arguments for caller
next_is="ignore"
else
echo >&2
echo "Unknown general option: $i" >&2
print_help
exit 31
fi
done
if test "$next_is" = x
then
echo >&2
echo "Option -x expects an argument (the path to the xorriso program)" >&2
print_help
exit 31
fi

12
releng/inc/test_releng_getopt Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
set -e
. releng_getopts.inc
printf "\nRELENG_XORRISO =${RELENG_XORRISO}"
printf "\nCLEANUP =${CLEANUP}"
printf "\nSIMULATE_FAILURE =${SIMULATE_FAILURE}"
printf "\n"
exit 0

214
releng/manual_burn Executable file
View File

@ -0,0 +1,214 @@
#!/bin/bash
# Copyright 2011 George Danchev <danchev@spnet.net>
# Copyright 2011 Thomas Schmitt <scdbackup@gmx.net>
#
# Licensed under GNU GPL version 2 or later
set -e
# set -x
print_specific_help() {
cat << HLP
Specific options:
--dev path use path as drive address. Default: /dev/cdrw
--what path use path as address of the directory which shall
be copied into an ISO 9660 filesystem on media.
--any_media allow non re-usable MMC media, like CD-R or DVD+R.
Allow paths to non-existing files, but disallow paths
to existing regular files.
Overview:
Test burning to re-usable media CD-RW, DVD-RW, DVD-RAM, DVD+RW, BD-RE.
By default, one-time usable media will be rejected deliberately.
HLP
}
getopts_inc=inc/releng_getopts.inc
if test -e "$getopts_inc"
then
. "$getopts_inc"
if test "$SPECIFIC_HELP" = 1
then
print_specific_help
exit 0
fi
else
echo >&2
echo "File not found: $getopts_inc" >&2
echo "Are we in the ./releng directory of a libisoburn SVN checkout ?" >&2
echo "(Please execute the tests from that ./releng directory.)" >&2
echo >&2
exit 29
fi
# Set default values for specific option variables.
dev=/dev/cdrw
what=../xorriso
any_media=0
# Interpret specific options, they begin after the first --.
next_is=ignore
for i in "$@"
do
if test "$next_is" = "ignore"
then
if test "$i" = "--"
then
next_is=""
fi
elif test "$next_is" = "dev"
then
dev="$i"
next_is=""
elif test "$next_is" = "what"
then
what="$i"
next_is=""
elif test "$i" = "--dev"
then
next_is="dev"
elif test "$i" = "--what"
then
next_is="what"
elif test "$i" = "--any_media"
then
any_media=1
else
echo >&2
echo "Unknown test specific option: $i" >&2
print_help
print_specific_help
exit 31
fi
done
check_for_xorriso -x
# check data dir, if any and after checking -x xorriso
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -c' to remove.\n"
exit 30
else
mkdir "${GEN_DATA_DIR}"
fi
#####################################################################
# Inspect drive address
if test -e "$dev"
then
if test "$any_media" = 1 -a -f "$dev"
then
echo "FAIL : ${SELF} : --dev $dev leads to an existing regular file"
echo
cleanup
exit 31
fi
else
if test "$any_media" = "0"
then
echo "FAIL : ${SELF} : --dev $dev does not lead to an existing file"
echo
cleanup
exit 31
fi
fi
# Inspect media
set +e
res=$("$RELENG_XORRISO" -outdev "$dev" 2>&1)
ret=$?
set -e
if test "$ret" -ne 0
then
echo "$res" >&2
echo "FAIL : ${SELF} : Non-zero exit value $ret with: $RELENG_XORRISO -outdev $dev"
echo
cleanup
exit 1
elif echo "$res" | grep '^Media current:' >/dev/null 2>&1
then
media=$(echo "$res" | grep '^Media current:' | \
sed -e 's/^Media current: //')
echo "Detected media: '$media'"
if test "$media" = "CD-RW" -o "$media" = "DVD-RW sequential recording" -o \
"$media" = "DVD-RW restricted overwrite" -o "$media" = "DVD-RAM" -o \
"$media" = "DVD+RW" -o "$media" = "BD-RE"
then
echo "Recognized as re-usable."
elif test "$media" = "is not recognizable"
then
echo "FAIL : ${SELF} : No recognizable media detected in: '$dev'"
echo
cleanup
exit 2
elif test "$any_media" = 1
then
echo "Accepted media only because of option --any_media : '$media'"
else
echo "FAIL : ${SELF} : No re-usable media detected, but: '$media'"
echo
cleanup
exit 2
fi
fi
# Perform burn run
echo "$RELENG_XORRISO" -for_backup -outdev "$dev" -blank as_needed -map "$what" /test
set +e
"$RELENG_XORRISO" \
-for_backup \
-outdev "$dev" \
-blank as_needed \
-map "$what" /test
ret=$?
set -e
if test "$ret" -ne 0
then
echo "FAIL : ${SELF} : Non-zero exit value with burn run: $ret"
echo
cleanup
exit 1
fi
if test "$SIMULATE_FAILURE" = 1
then
echo "FAIL : ${SELF} : Simulated failure caused by option -f"
if test -f "$dev"
then
# Alter image
dd if=/dev/urandom bs=2K count=1 \
of="$dev" conv=notrunc seek=400
else
cleanup
exit 1
fi
fi
# Check read
echo "$RELENG_XORRISO" -for_backup -indev "$dev" \
-check_media event=FATAL -- \ -check_md5_r FATAL / --
set +e
"$RELENG_XORRISO" \
-for_backup \
-indev "$dev" \
-print '---check_media:' -check_media event=FATAL -- \
-print '---check_md5_r:' -check_md5_r FATAL / -- \
-print '---compare_r:' -md5 off -compare_r "$what" /test
ret=$?
set -e
if test "$ret" -ne 0
then
echo "FAIL : ${SELF} : Non-zero exit value with checkread run: $ret"
echo
cleanup
exit 1
fi
echo "Ok. Burn test passed."
echo
cleanup
exit 0

174
releng/manual_devices Executable file
View File

@ -0,0 +1,174 @@
#!/bin/bash
# Copyright 2011 George Danchev <danchev@spnet.net>
# Copyright 2011 Thomas Schmitt <scdbackup@gmx.net>
# Licensed under GNU GPL version 2 or later
# set -e
print_specific_help() {
cat << HLP
Specific options:
--dev path Suppress dialog and use path as drive address.
Overview:
Test device scanning and list of speeds.
HLP
}
# Include common bits and interpret general options
getopts_inc=inc/releng_getopts.inc
if test -e "$getopts_inc"
then
. "$getopts_inc"
if test "$SPECIFIC_HELP" = 1
then
print_specific_help
exit 0
fi
else
echo >&2
echo "File not found: $getopts_inc" >&2
echo "Are we in the ./releng directory of a libisoburn SVN checkout ?" >&2
echo "(Please execute the tests from that ./releng directory.)" >&2
echo >&2
exit 2
fi
# Interpret private options, they begin after the first --.
dev=
next_is=ignore
for i in "$@"
do
if test "$next_is" = "ignore"
then
if test "$i" = "--"
then
next_is=""
fi
elif test "$next_is" = "dev"
then
dev="$i"
next_is=""
elif test "$i" = "--dev"
then
next_is="dev"
else
echo >&2
echo "Unknown test specific option: $i" >&2
print_help
print_specific_help
exit 31
fi
done
# Insist in having a xorriso
check_for_xorriso -x
has_device_links=$("$RELENG_XORRISO" -help 2>/dev/null | fgrep ' -device_links')
if test -n "$has_device_links"
then
devices_opt="-device_links"
else
devices_opt="-devices"
fi
#
get_speeds() {
echo -e "\n${SELF}: Running: ${RELENG_XORRISO} -report_about WARNING -outdev ${1} -toc -list_formats -list_profiles out -list_speeds"
"$RELENG_XORRISO" -report_about WARNING -outdev "$1" \
-print '---toc :' -toc \
-print '---list_formats :' -list_formats \
-print '---list_profiles :' -list_profiles out \
-print '---list_speeds :' -list_speeds
}
cat_var() {
# $1 = variable to put out with line feeds
cat <<+
$1
+
}
get_devices() {
# $1 = if not empty: device lines from xorriso -devices or -device_links
# $2 = if not empty: suppress dialog and use $2 as input
if test -n "$1"
then
DEVICES="$1"
else
DEVICES=$("$RELENG_XORRISO" $devices_opt 2>/dev/null | grep "\-dev")
fi
NUM_DEV=$(cat_var "$DEVICES" | wc -l)
case "${NUM_DEV}" in
0)
echo -e "\n${SELF}: No drives found."
exit 1
;;
1)
echo -e "\n${SELF}: 1 drive found:\n"
;;
*)
echo -e "\n${SELF}: ${NUM_DEV} drives found:\n"
;;
esac
echo =================================================================
echo "$DEVICES"
echo =================================================================
OUTDEV=$( cat_var "$DEVICES" | head -1 | \
sed -e "s/[0-9] *-dev '\//\//" -e "s/'.*$//" )
if test -n "$2"
then
x="$2"
else
echo >&2
echo "WARNING: The following tests might pull in the drive tray." >&2
echo " Best is if you now put in a suitable media and" >&2
echo " load it manually, so nobody gets surprised. :))" >&2
echo >&2
echo "Which drive to examine ? (Empty input = ${OUTDEV})" >&2
read x
fi
if test -n "$x"
then
OUTDEV="$x"
fi
get_speeds "$OUTDEV"
}
# main
"$RELENG_XORRISO" -version
echo -e "\n${SELF}: Running: $RELENG_XORRISO $devices_opt ..."
devices=$("$RELENG_XORRISO" -report_about WARNING $devices_opt | grep "\-dev")
RET="$?"
if test "$SIMULATE_FAILURE" = 1
then
echo "===" >&2
echo "=== SIMULATING FAILURE BY OVERRIDING EXIT VALUE OF XORRISO" >&2
echo "===" >&2
echo "FAIL : ${SELF} : Simulated failure caused by option -f"
RET=1
fi
case ${RET} in
0)
get_devices "$devices" "$dev"
RET="$?"
if test "$RET" = 0
then :
else
echo "FAIL : ${SELF} : Device scan or single drive listing failed"
exit "$RET"
fi
;;
*)
boldify
echo -ne "\n${SELF}: ${RELENG_XORRISO} $devices_opt returned ${RET}."
unboldify
echo -e "\n${SELF}: Already mounted?"
df -kh
esac
exit 0

View File

@ -1,121 +1,62 @@
#!/bin/bash
# Copyright 2011 Thomas Schmitt <scdbackup@gmx.net>
# Copyright 2011 George Danchev <danchev@spnet.net>
# Licensed under GNU GPL version 2 or later
set -e
START_DIR_DONT_CHANGE=`pwd`
SELF=$(basename "$0")
not_in_releng_exit() {
printf "\nPlease execute the tests from releng directory.\n\n"
exit 1
}
. inc/releng_getopts.inc || not_in_releng_exit
print_specific_help() {
cat << HLP
Specific options:
none yet.
Overview:
Match the resulting ISO image representation
against the jigdo representation.
HLP
}
if test "$SPECIFIC_HELP" = 1; then
print_specific_help
exit 0
fi
if [ ! -x $RELENG_XORRISO ]; then
print_help
printf "\n${SELF}: -x absolute or relative path to binary to be run.\n\n"
exit 30
fi
# check data dir, if any and after checking -x xorriso
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -c' to remove.\n"
exit 1
else
mkdir "${GEN_DATA_DIR}"
fi
# required config items
CONFFILE=$HOME/.libburnia-releng/${SELF}.conf
GEN_DATA_DIR=releng_generated_data/${SELF}
TMP_DATA_DIR=releng_generated_data
IMG_EXTRACT_DIR=${GEN_DATA_DIR}/${SELF}_extracted_tree
# to be set by the config file
RELENG_XORRISO=""
RELENG_DIR="${IMG_EXTRACT_DIR}"
RELENG_ISOLINUX_BIN="isolinux/isolinux.bin"
RELENG_BOOT_CAT="isolinux/boot.cat"
RELENG_IMG=t1
KEEP=0
RES=""
REMOTE_URL="http://cdimage.debian.org/cdimage/daily-builds/daily/current/i386/iso-cd"
REMOTE_IMG="debian-testing-i386-businesscard.iso"
#####
print_help() {
cat << HLP
Usage:
${SELF} -help
# using a config file ${CONFFILE}
${SELF} -rc [-keep]
# without using a config file
${SELF} /absolute/or/relative/path/to/xorriso [-keep]
# cleanup test generated data directory and exit
${SELF} -cleanup
HLP
}
#####
cleanup() {
if [ ${KEEP} -eq 0 ]; then
# safety net, just in case -> we want to be in the starting
# directory before removing whatever self-generated stuff
if [ -d "${GEN_DATA_DIR}" ]; then
cd "${START_DIR_DONT_CHANGE}" || exit 15
chmod +w -R ${GEN_DATA_DIR}
rm -rf ${GEN_DATA_DIR}
printf "${SELF}: Removed (self-generated) %s\n" ${GEN_DATA_DIR}
else
printf "${SELF}: ${GEN_DATA_DIR} does not exist. Nothing to clean.\n"
fi
else
printf "${SELF}: Leaving (self-generated) %s\n" ${GEN_DATA_DIR}
fi
}
# cleanup
if [ "${1}" == "-cleanup" ]; then
cleanup
exit 0
fi
# help
if [ ! "${1}" ]; then
print_help && exit 3
# config file
elif [ "${1}" == "-rc" -a "${2}" == "-keep" ]; then
KEEP=1
if [ -e ${CONFFILE} ]; then
. ${CONFFILE}
printf "${SELF}: Using config file %s\n" ${CONFFILE}
else
echo -e "\n${SELF}: Config file ${CONFFILE} not found.\n" && exit 4
fi
elif [ "${1}" == "-rc" -a ! "${2}" ]; then
KEEP=0
if [ -e ${CONFFILE} ]; then
. ${CONFFILE}
printf "${SELF}: Using config file %s\n" ${CONFFILE}
else
echo -e "\n${SELF}: Config file ${CONFFILE} not found.\n" && exit 4
fi
# cmdline option
elif [ -x "${1}" -a "${2}" == "-keep" ]; then
RELENG_XORRISO="${1}"
KEEP=1
elif [ -x "${1}" ]; then
RELENG_XORRISO="${1}"
KEEP=0
# the rest
else
print_help && exit 5
fi
#
# check for required items
if [ "${RELENG_XORRISO}" == "" -o "${RELENG_DIR}" == "" -o "${RELENG_IMG}" == "" ]; then
echo -e "\n${SELF}: xorriso_cmd IN_dir and OUT_image are required\n"
exit 6
fi
if [ ! -x "${RELENG_XORRISO}" ]; then
printf "${SELF}: $RELENG_XORRISO not found or not an executable.\n"
exit 7
fi
# data dir
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -cleanup' to remove.\n"
exit 8
else
mkdir "${GEN_DATA_DIR}"
exit 2
fi
# All must be set at this point
@ -125,16 +66,25 @@ printf "\n\tIN_isolinux=${RELENG_ISOLINUX_BIN}\n\tOUT_bootcat=${RELENG_BOOT_CAT}
RES="${RELENG_IMG}.iso ${RELENG_IMG}.new ${RELENG_IMG}.md5 ${RELENG_IMG}.jigdo ${RELENG_IMG}.template"
# xorriso version details, incl. underlying libraries
"${RELENG_XORRISO}" -version
if ! "${RELENG_XORRISO}" -version | grep libjte >/dev/null 2>&1; then
printf "\n${SELF}: JTE not supported with this xorriso build. Install jigit >=1.18 and rebuild."
printf "\n${SELF}: http://www.einval.com/~steve/software/JTE/\n"
cleanup
exit 9
fi
# "${RELENG_XORRISO}" -version
# remove cruft from previous runs
# rm -f ${RES}
# check whether the binary support JTE
set +e
RETSTR_VER_JTE=`"${RELENG_XORRISO}" --version 2>/dev/null | grep -P "(libjte\s+in\s+use)"`
RETCODE_VER_JTE="$?"
set -e
case ${RETCODE_VER_JTE} in
0)
printf "\n${SELF}: Found JTE support with ${RELENG_XORRISO} : ${RETSTR_VER_JTE}"
;;
*)
printf "\nFAIL : ${SELF} : Not found JTE support in ${RELENG_XORRISO}. Quit."
printf "\n${SELF}: JTE not supported with this xorriso build. Install jigit >=1.18 and rebuild."
printf "\n${SELF}: http://www.einval.com/~steve/software/JTE/\n"
cleanup
exit 4
;;
esac
# grab remote ISO image, to decompose
if [ ! -f "${TMP_DATA_DIR}"/"${REMOTE_IMG}" ]; then
@ -147,9 +97,9 @@ if [ ! -f "${TMP_DATA_DIR}"/"${REMOTE_IMG}" ]; then
echo -e "\n${SELF}: Downloading successfully completed.\n"
;;
*)
echo -e "\n${SELF}: FAIL: wget returned code: $WGET_RET\n"
echo -e "\nFAIL : ${SELF} : wget returned code: $WGET_RET\n"
cleanup
exit 10
exit 5
;;
esac
else
@ -160,7 +110,7 @@ fi
if [ -d "${IMG_EXTRACT_DIR}" ]; then
printf "\n${SELF}: Found ${IMG_EXTRACT_DIR}. Please cleanup.\n"
cleanup
exit 11
exit 6
else
mkdir "${IMG_EXTRACT_DIR}"
fi
@ -191,7 +141,7 @@ else
printf "\n${SELF}: Not found: "${MKFS_MSDOS}". Install dosfstools."
printf "\n${SELF}: http://www.daniel-baumann.ch/software/dosfstools/\n"
cleanup
exit 12
exit 7
fi
# GENERAL section
@ -218,7 +168,7 @@ CMD+="\
else
printf "\n${SELF}: FAIL to compose the boot section.\n"
cleanup
exit 13
exit 8
fi
# JIGDO section
@ -237,7 +187,7 @@ else
printf "\n${SELF}: Not found: jigdo-gen-md5-list. Install jigit >= 1.18."
printf "\n${SELF}: http://www.einval.com/~steve/software/JTE/\n"
cleanup
exit 14
exit 9
fi
CMD+="\
@ -270,7 +220,7 @@ else
printf "\n${SELF}: Not found: jigit-mkimage. Install jigit."
printf "\n${SELF}: http://www.einval.com/~steve/software/JTE/\n"
cleanup
exit 15
exit 10
fi
# trap the exit code of diff and let the Universe explode
@ -281,7 +231,7 @@ case ${DIFF_RET} in
echo -e "${SELF}: Match: diff ${GEN_DATA_DIR}/${RELENG_IMG}.iso ${GEN_DATA_DIR}/${RELENG_IMG}.new"
;;
*)
echo -e "${SELF}: FAIL: diff returned code: $DIFF_RET\n"
echo -e "FAIL : ${SELF} : diff returned code: $DIFF_RET\n"
;;
esac
@ -295,10 +245,12 @@ if [ -f "${TMP_DATA_DIR}"/"${REMOTE_IMG}" ]; then
fi
# last hints
printf "\n${SELF}: HINT: manual checks remained to be done:\n"
printf " * ${GEN_DATA_DIR}/${RELENG_IMG}.iso boots from USB stick and/or optical media.\n"
printf " * appended FAT partition is mountable.\n"
printf " * xorriso -indev ${GEN_DATA_DIR}/${RELENG_IMG}.iso -pvd_info\n"
printf " * fdisk -lu ${GEN_DATA_DIR}/${RELENG_IMG}.iso\n"
if [ -d ${GEN_DATA_DIR} ]; then
printf "\n${SELF}: HINT: manual checks remained to be done:\n"
printf " * ${GEN_DATA_DIR}/${RELENG_IMG}.iso boots from USB stick and/or optical media.\n"
printf " * appended FAT partition is mountable.\n"
printf " * xorriso -indev ${GEN_DATA_DIR}/${RELENG_IMG}.iso -pvd_info\n"
printf " * fdisk -lu ${GEN_DATA_DIR}/${RELENG_IMG}.iso\n"
fi
exit 0

View File

@ -1,109 +0,0 @@
#!/bin/bash
set -e
START_DIR_DONT_CHANGE=`pwd`
SELF=$(basename "$0")
# required config items
RELENG_XORRISO=""
RELENG_DIR=""
RELENG_IMG=""
CONFFILE=$HOME/.libburnia-releng/${SELF}.conf
KEEP=0
GEN_DATA_DIR=releng_generated_data/${SELF}
printf "\n$0: FAIL: SCRIPT NOT COMPLETED YET\n"
exit 31
print_help() {
cat << HLP
Usage:
${SELF} -help
# using a config file ${CONFFILE}
${SELF} -rc [-keep]
# without using a config file
${SELF} xorriso_cmd IN_dir OUT_image [-keep]
# cleanup test generated data directory and exit
${SELF} -cleanup
HLP
}
# Thomas:
# xorriso provides built-in means for comparison:
# -compare_r disk_path iso_rr_path
# Possibly i will have to enhance it so that it is suitable for automatic
# testing. (I used it mainly for testing -update_r.)
# xorriso could use
# -osirrox on -extract iso_rr_path disk_path
# to pull a tree out of the image without mounting it.
# One could mount the image -o loop. (Needs superuser authority.)
# There is a program test/compare_file which acts on a mounted image
# or on extracted trees i.e. completely independent of xorriso code.
# See libisoburn/README paragraph "Testing".
# With extracted trees one will want to use option -no_ctime.
# One may use command diff -r to compare directory trees of a mounted image
# or extracted trees.
# George:
# xorriso -indev my.iso -find / vs. find input_dir
# bsdtar -xf my.iso vs. input_dir
Sketched by Thomas:
------------------------------------------------------------------------------
image_file=/tmp/...
on_disk=...
in_iso="$on_disk"
copy_on_disk=/tmp/...
if test -e "$image_file"
then
echo "TEST ENVIRONMENT ERROR: Existing image_file target:" >&2
ls -ld "$image_file" >&2
exit 1
fi
if test -e "$copy_on_disk"
then
echo "TEST ENVIRONMENT ERROR: Existing copy_on_disk target:" >&2
ls -ld "$copy_on_disk" >&2
exit 1
fi
# Produce simple image
xorriso \
-for_backup \
-outdev "$image_file" \
-map "$on_disk" "$in_iso"
# Copy from image to temporary disk tree
xorriso \
-for_backup \
-indev "$image_file" \
-osirrox on \
-extract "$in_iso" "$copy_on_disk"
# Compare original disk tree and temporary one
diff -r "$on_disk" "$copy_on_disk"
if test "$?" -ne 0
then
echo 'FAIL: Original disk tree and temporary tree differ'
else
echo "Success."
fi
# Clean up
rm -r "$copy_on_disk" "$image_file"
------------------------------------------------------------------------------
exit 0

View File

@ -1,117 +0,0 @@
#!/bin/bash
set -e
START_DIR_DONT_CHANGE=`pwd`
SELF=$(basename "$0")
GEN_DATA_DIR=releng_generated_data/${SELF}
KEEP=0
SAMPLE_CODE_DIR=codesamples
CC=g++
#####################################################################
print_help() {
cat << HLP
Usage:
$0 -help
#
$0 -rc [-keep]
# cleanup test generated data directory and exit
$0 -cleanup
HLP
}
#####################################################################
cleanup() {
if [ ${KEEP} -eq 0 ]; then
# safety net, just in case -> we want to be in the starting
# directory before removing whatever self-generated stuff
if [ -d "${GEN_DATA_DIR}" ]; then
cd "${START_DIR_DONT_CHANGE}" || exit 2
rm -rf ${GEN_DATA_DIR}
printf "${SELF}: Removed (self-generated) %s\n" ${GEN_DATA_DIR}
else
printf "${SELF}: ${GEN_DATA_DIR} does not exist. Nothing to clean.\n"
fi
else
printf "${SELF}: Leaving (self-generated) %s\n" ${GEN_DATA_DIR}
fi
}
#####################################################################
# help
if [ ! "${1}" ]; then
print_help && exit 3
#
elif [ "${1}" == "-cleanup" ]; then
cleanup
exit 0
#
elif [ "${1}" == "-rc" -a "${2}" == "-keep" ]; then
KEEP=1
elif [ "${1}" == "-rc" -a ! "${2}" ]; then
KEEP=0
# the rest
else
print_help && exit 4
fi
#####################################################################
# check data dir
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -cleanup' to remove.\n"
exit 5
else
mkdir "${GEN_DATA_DIR}"
fi
# check compiler
if ! which "${CC}" >/dev/null 2>&1; then
printf "\n${SELF}: Not found: ${CC}. Install ${CC}.\n"
cleanup
exit 6
fi
# process sample code tests
# if test -f "${SAMPLE_CODE_DIR}"/*.cpp; then
for SMPL in `ls "${SAMPLE_CODE_DIR}"/*.cpp`; do
CMD_CPL="${CC} -I../ -L ../libisoburn/.libs/ -lisoburn -o ${SMPL}.obj ${SMPL}"
printf "${SELF}: ${CMD_CPL}\n"
set +e
${CMD_CPL}
RET_CPL="$?"
if [ ${RET_CPL} == 0 -a -f ${SMPL}.obj ]; then
mv ${SMPL}.obj ${GEN_DATA_DIR}
else
printf "\n${SELF}: FAIL Compilation of ${SMPL}\n"
cleanup
exit 7
fi
BASE=$(basename ${SMPL}.obj)
printf "${SELF}: Running LD_LIBRARY_PATH=../libisoburn/.libs/:${LD_LIBRARY_PATH} ${GEN_DATA_DIR}/${BASE}"
LD_LIBRARY_PATH=../libisoburn/.libs/:${LD_LIBRARY_PATH} ${GEN_DATA_DIR}/${BASE}
RET_SMPL="$?"
case ${RET_SMPL} in
0)
printf "...ok\n"
;;
*)
printf "exit code: ${RET_SMPL}\n"
cleanup
exit 8
;;
esac
set -e
done
#else
# printf "\n${SELF}: No C++ code samples found in ${SAMPLE_CODE_DIR}\n"
#fi
# clean
cleanup
exit 0

View File

@ -1,264 +0,0 @@
#!/bin/bash
# ts 2011.06.27
# Test the correct handling of hardlinks by xorriso options
# -update_r , -hardlinks perform_update , and -extract
export prog=$(basename "$0")
export xorriso=xorriso
export workdir=./releng_generated_data/"$prog"
export image_file="$workdir"/xorriso_hardlinks.iso
export on_disk="$workdir"/xorriso_hardlinks_test_dir
export in_iso=""
export copy_on_disk="$workdir"/xorriso_hardlinks_copy_dir
export keep=0
export failure=0
export simulate_failure=0
export next_is_xorriso=0
export next_is_rc=0
export bad=0
export report_about="-report_about UPDATE"
config_by_var() {
# This is called once before option interpretation, and once for each
# option -rc.
# Variables get set to empty content to keep them from being applied
# more than once and thus overriding settings of higher precedence.
test -n "$RELENG_XORRISO" && xorriso="$RELENG_XORRISO" && RELENG_XORRISO=
test -n "$RELENG_WORKIMAGE" && image_file="$RELENG_WORKIMAGE" \
&& RELENG_WORKIMAGE=
test -n "$RELENG_WORKDIR" && on_disk="$RELENG_WORKDIR" && RELENG_WORKDIR=
test -n "$RELENG_ISODIR" && in_iso="$RELENG_ISODIR" && RELENG_ISODIR=
test -n "$RELENG_WORKCOPYDIR" && copy_on_disk="$RELENG_WORKCOPYDIR" \
&& RELENG_WORKCOPYDIR=
}
clean_up() {
if test "$keep" = 1
then
echo "=== Kept test area because of option -keep" >&2
echo "$on_disk" "$copy_on_disk" "$image_file" "$workdir" >&2
else
echo "=== Removing test area" >&2
rm -r "$on_disk" "$copy_on_disk" "$image_file"
rm -r "$workdir"
fi
}
# Setup
# Interpret a default configuration file here, if the test has one.
# This one has none.
# >>> Best would be if the configuration file would not override env variables.
# Process env variables and default configfile variables together
config_by_var
# Now interpret program arguments and possibly given config files
for i in "$@"
do
if test "$next_is_xorriso" = 1
then
xorriso="$i"
next_is_xorriso=0
elif test "$next_is_rc" = 1
then
# >>> This looks darn dangerous. We need a trustworthy config interpreter.
# >>> http://www.netjeff.com/humor/item.cgi?file=ShootInFoot-OS
. "$i"
config_by_var
next_is_rc=0
elif test x"$i" = x"-rc"
then
next_is_rc=1
elif test x"$i" = x"-keep"
then
keep=1
elif test x"$i" = x"-cleanup"
then
keep=0
clean_up
exit 0
elif test x"$i" = x"-xorriso"
then
next_is_xorriso=1
elif test x"$i" = x"-v"
then
report_about="-report_about ALL"
elif test x"$i" = x"-fail"
then
simulate_failure=1
else
echo "Usage: $0 [-rc FILE] [-keep] [-cleanup] [-fail] [-xorriso PATH] [-v]" >&2
exit 2
fi
done
test -z "$in_iso" && in_iso="$on_disk"
if test -d ./releng_generated_data
then
dummy=dummy
else
echo "=== TEST ENVIRONMENT ERROR: $prog : No ./releng_generated_data directory existing" >&2
echo "=== Is the current working directory really ./releng of libisoburn ?" >&2
echo "FAIL : $prog : Test environment error : No ./releng_generated_data directory"
exit 3
fi
if test -e "$workdir"
then
echo "=== TEST ENVIRONMENT ERROR: $prog : Existing work directory:" >&2
ls -ld "$workdir" >&2
bad=1
fi
if test -e "$image_file"
then
echo "=== TEST ENVIRONMENT ERROR: $prog : Existing image_file target:" >&2
ls -ld "$image_file" >&2
bad=1
fi
if test -e "$on_disk"
then
echo "=== TEST ENVIRONMENT ERROR: $prog : Existing on_disk target:" >&2
ls -ld "$on_disk" >&2
bad=1
fi
if test -e "$copy_on_disk"
then
echo "=== TEST ENVIRONMENT ERROR: $prog : Existing copy_on_disk target:" >&2
ls -ld "$copy_on_disk" >&2
bad=1
fi
if test "$bad" = 1
then
echo "FAIL : $prog : Test environment error : Existing work files"
exit 3
fi
bad=0
mkdir "$workdir" || bad=1
mkdir "$on_disk" || bad=1
if test "$bad" = 1
then
echo "FAIL : $prog : Test environment error : Cannot make directories"
exit 3
fi
echo "=== Setting up $on_disk with several hardlinks" >&2
echo test_content >"$on_disk"/file_1 || exit 1
echo test_content >"$on_disk"/file_2 || exit 1
ln "$on_disk"/file_1 "$on_disk"/file_1_link_a || exit 1
ln "$on_disk"/file_1 "$on_disk"/file_1_link_b || exit 1
ln "$on_disk"/file_2 "$on_disk"/file_2_link_a || exit 1
ls -l "$on_disk"/*
is_valid_iso9660() {
ISOfile="$1"
if [ ! -f ${ISOfile} ]; then
failure=1
printf "${prog}: FAIL: Not found: ${ISOfile}\n"
fi
if file ${ISOfile} | grep -P "ISO\s+9660\s+CD-ROM\s+filesystem\s+data" >/dev/null 2>&1; then
printf "=== ${ISOfile} OK\n"
else
failure=1
printf "${prog}: FAIL: ${ISOfile} does not look like ISO 9660 filesystem data\n"
fi
}
echo "=== Producing simple images via -o, redirect, and pipe" >&2
"$xorriso" -as mkisofs "$on_disk" -o "$workdir"/image_minus_o.iso
is_valid_iso9660 "$workdir"/image_minus_o.iso
"$xorriso" -as mkisofs "$on_disk" > "$workdir"/image_redirected.iso
is_valid_iso9660 "$workdir"/image_redirected.iso
"$xorriso" -as mkisofs "$on_disk" | cat > "$workdir"/image_piped.iso
is_valid_iso9660 "$workdir"/image_piped.iso
echo "=== Producing simple image" >&2
"$xorriso" \
$report_about \
-version \
-for_backup \
-padding 0 \
-outdev "$image_file" \
-update_r "$on_disk" "$in_iso" \
-hardlinks perform_update
echo "=== Copying from image to temporary disk tree" >&2
"$xorriso" \
$report_about \
-for_backup \
-indev "$image_file" \
-osirrox on \
-find "$in_iso" -exec lsdl -- \
-extract "$in_iso" "$copy_on_disk"
if test "$simulate_failure" = 1
then
echo "===" >&2
echo "=== SIMULATING FAILURE BY REMOVING AN EXTRACTED FILE" >&2
echo "===" >&2
echo "FAIL : $prog : Simulated failure caused by option -fail"
rm "$copy_on_disk"/file_1_link_b
fi
echo "=== Comparing original disk tree and temporary one" >&2
diff -r "$on_disk" "$copy_on_disk"
if test "$?" -ne 0
then
echo "=== WRONG: diff -r $on_disk $copy_on_disk reports differences" >&2
echo "FAIL : $prog : diff -r reports differences"
failure=1
else
echo "=== OK" >&2
fi
echo "=== Checking for hardlinks being siblings" >&2
ls -l "$copy_on_disk"/*
x=$(echo $(ls -l "$copy_on_disk"/* | awk '{print $2}'))
expected="3 3 3 2 2"
if test x"$x" = x"$expected"
then
echo "=== OK" >&2
else
echo "=== WRONG: Link count of extracted files is not as expected." >&2
echo "=== Expected: $expected" >&2
echo "=== Got : $x" >&2
echo "FAIL : $prog : Link count of extracted files is not as expected."
failure=1
fi
clean_up
# Report result
echo
if test "$failure" = 1
then
echo "======== $prog :" 'FAILED'
echo
exit 1
else
echo "======== $prog :" "Passed"
echo
fi
exit 0

View File

@ -1,6 +0,0 @@
# *** Set your paths, see below
# *** Expected location is $HOME/.libburnia-releng/releng_isojigdo.conf
# *** Then a run of 'releng_isojigdo -rc' will pick it up
# xorriso executable to be tested
RELENG_XORRISO=/path/to/xorriso

View File

@ -1,136 +0,0 @@
#!/bin/bash
set -e
START_DIR_DONT_CHANGE=`pwd`
SELF=$(basename "$0")
# required config items
RELENG_XORRISO=""
RELENG_GENISOIMAGE=/usr/bin/genisoimage
RELENG_MKISOFS=/usr/bin/mkisofs
# config file
CONFFILE=${HOME}/.libburnia-releng/${SELF}.conf
GEN_DATA_DIR=releng_generated_data/${SELF}
UPPER=40
KEEP=0
#####################################################################
print_help() {
cat << HLP
Usage:
$0 -help
# using a config file ${CONFFILE}
$0 -rc [-keep]
# without using a config file
$0 xorriso_cmd
# cleanup test generated data directory and exit
$0 -cleanup
HLP
}
#####################################################################
# cleanup
if [ "${1}" == "-cleanup" ]; then
cd "${START_DIR_DONT_CHANGE}" || exit 2
if [ -d "${GEN_DATA_DIR}" ]; then
rm -rf ${GEN_DATA_DIR}
printf "${SELF}: removed %s\n" ${GEN_DATA_DIR}
else
printf "${SELF}: ${GEN_DATA_DIR} does not exist.\n"
fi
exit 0
fi
# help
if [ ! "${1}" ]; then print_help && exit 3; fi
# config file
if [ "${1}" == "-rc" ]; then
if [ -e ${CONFFILE} ]; then
. ${CONFFILE}
printf "${SELF}: Using config file %s\n" ${CONFFILE}
else
echo -e "\n${SELF}: Config file ${CONFFILE} not found.\n" && exit 4
fi
if [ "${2}" == "-keep" ]; then KEEP=1; fi
# command line args
elif [ "${1}" ]; then
RELENG_XORRISO="${1}"
if [ "${2}" == "-keep" ]; then KEEP=1; fi
# the rest
else
print_help && exit 5
fi
# data dir
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -cleanup' to remove.\n"
exit 6
else
mkdir "${GEN_DATA_DIR}"
fi
if [ "${RELENG_XORRISO}" == "" ]; then
echo -e "\n${SELF}: xorriso_cmd is required\n"
exit 7
fi
if [ ! -x "${RELENG_XORRISO}" ]; then
printf "${SELF}: Not found or not an executable: $RELENG_XORRISO\n"
exit 8
fi
# all must be set at this point
printf "${SELF}: Config items:"
printf "\n\txorriso_cmd=${RELENG_XORRISO}\n"
# xorriso version details, incl. underlying libraries
"${RELENG_XORRISO}" -version
if ! "${RELENG_XORRISO}" -version | grep libjte >/dev/null 2>&1; then
printf "\n${SELF}: JTE not supported with this xorriso build. Install jigit and rebuild."
printf "\n${SELF}: See http://www.einval.com/~steve/software/JTE/\n"
exit 9
fi
################################################
printf "${SELF}: Generating sample tree..."
for ((i1=0; i1 < ${UPPER}/4; i1++))
do
for ((i2=0; i2 < ${UPPER}/2; i2++))
do
for ((i3=0; i3 < ${UPPER}; i3++))
do
mkdir -p ${GEN_DATA_DIR}/DirOne$i1/DirTwo$i2/DirThree$i3
touch ${GEN_DATA_DIR}/DirOne$i1/DirTwo$i2/DirThree$i3/FileOne
done
done
done
printf "done.\n"
# Disk cache might play dirty games, so re-run these several times?
if [ -x ${RELENG_XORRISO} ]; then
printf "\n${SELF}: Running ${RELENG_XORRISO} -as mkisofs -quiet -print-size ${GEN_DATA_DIR}\n"
time ${RELENG_XORRISO} -as mkisofs -quiet -print-size ${GEN_DATA_DIR}
fi
if [ -x ${RELENG_GENISOIMAGE} ]; then
printf "\n${SELF}: Running ${RELENG_GENISOIMAGE} -quiet -print-size ${GEN_DATA_DIR}\n"
time ${RELENG_GENISOIMAGE} -quiet -print-size ${GEN_DATA_DIR}
fi
if [ -x ${RELENG_MKISOFS} ]; then
printf "\n${SELF}: Running ${RELENG_MKISOFS} -quiet -print-size ${GEN_DATA_DIR}\n"
time ${RELENG_MKISOFS} -quiet -print-size ${GEN_DATA_DIR}
fi
if [ ${KEEP} -eq 0 ]; then
cd ${START_DIR_DONT_CHANGE} || exit 10
rm -rf ${GEN_DATA_DIR}
fi
exit 0

View File

@ -1,6 +0,0 @@
# *** Set your paths, see below
# *** Expected location is $HOME/.libburnia-releng/releng_printsize.conf
# *** Then a run of 'releng_printsize -rc' will pick it up
# xorriso executable to be tested
RELENG_XORRISO=/path/to/xorriso

226
releng/run_all_auto Executable file
View File

@ -0,0 +1,226 @@
#!/bin/bash
# Copyright 2011 George Danchev <danchev@spnet.net>
# Copyright 2011 Thomas Schmitt <scdbackup@gmx.net>
# Licensed under GNU GPL version 2 or later
set -e
SELF=$(basename "$0")
GEN_DATA_DIR=releng_generated_data
CLOG=${GEN_DATA_DIR}/log.${SELF}
PASSED_OPTIONS="$@"
RELENG_XORRISO=
CLEANUP_LOG=0
not_in_releng_exit() {
printf "\nPlease execute the tests from releng directory.\n\n"
exit 1
}
# To catch the exit value of a command in a pipe
return_value_file="$GEN_DATA_DIR"/run_all_"$$"_return_value
return_wrapper()
{
cmd="$1"
shift 1
"$cmd" "$@"
RET="$?"
echo "$RET" >"$return_value_file"
return "$RET"
}
# Using only bash builtin commands.
# On 4 year old amd64 x2 3000 MHz, xterm local,it counts 22471 lines per second
# On 2 year old amd64 x4 2600 MHz, ssh remote, it counts 35348 lines per second
count_lines()
{
# $1 if not empty: start count
line=
if test -n "$1"
then
count="$1"
else
count=0
fi
while read line
do
count=$(($count + 1))
printf "\r %4d lines logged ... " "$count" >&2
printf "%s\n" "$line"
done
return 0
}
# It is not a good idea to include inc/releng_getopts.inc with the
# master script as it calls the subordinate scripts and they include
# this file too, and we want to avoid sharing variable with subshells
if [ ! -f inc/releng_getopts.inc ]; then
not_in_releng_exit
fi
#############################################
next_is=
for i in "$@"
do
if test "$next_is" = "ignore"
then :
elif test "$next_is" = "x"
then
RELENG_XORRISO="$i"
next_is=
elif test x"$i" = x"-x"
then
next_is="x"
elif test x"$i" = x"-c"
then
CLEANUP_LOG=1
fi
done
#############################################
if test "$next_is" = x
then
echo
echo "Option -x expects an argument (the path to the xorriso program)"
exit 31
fi
if [ ! "${1}" ]; then
cat << HLP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
${SELF} runs executables from CWD starting
with auto_*, passing them its own options.
stdout/stderr output stored in:
${CLOG}
examples:
# run xorriso and keep the self-generated data
$ ./${SELF} -x path/to/xorriso [-k]
# clean up self-generated data from previous run
$ ./${SELF} -c
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HLP
exit 31
fi
########################################################
if [ -f "${CLOG}" ]; then
mv "${CLOG}" "${CLOG}".prev
fi
> ${CLOG}
if [ -x "${RELENG_XORRISO}" ]; then
echo -e "_OVERVIEW_______________________________________________________________" >> ${CLOG}
date --utc >> ${CLOG}
${RELENG_XORRISO} --version >> ${CLOG}
echo -e "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> ${CLOG}
fi
DSTART=`date --utc`
echo -ne "${SELF}: Started at ${DSTART}" | tee -a ${CLOG}
E1=`date '+%s'`
# require ^auto_, avoid running (your)self explicitly
for s in `ls | grep ^auto_ | grep -v ${SELF} | sort -n`; do
if [ -x ${s} -a ! -d ${s} ]; then
echo -ne "\n\n_STARTING_TEST_________________________________________________________" >> ${CLOG}
echo -ne "\n${SELF}: Running ./${s} ${PASSED_OPTIONS} :\n" \
| tee -a ${CLOG}
T1=`date '+%s'`
set +e
if test -n "$PIPESTATUS"
then
# PIPESTATUS[0] should be available in bash
./${s} ${PASSED_OPTIONS} 2>&1 | count_lines >> ${CLOG}
RET="${PIPESTATUS[0]}"
else
# a more portable method which uses a temporary file to record exit value
return_wrapper ./${s} ${PASSED_OPTIONS} 2>&1 | count_lines >> ${CLOG}
RET=$(cat "$return_value_file")
rm "$return_value_file"
fi
# echo "RET='$RET'" >/dev/tty
T2=`date '+%s'`
let TS="${T2} - ${T1}"
case ${RET} in
0)
printf "done in ${TS} sec. ok."
;;
*)
printf "done in ${TS} sec. "
which tput >/dev/null 2>&1 && tput smso
printf "FAIL -> EXIT CODE $RET"
which tput >/dev/null 2>&1 && tput rmso
;;
esac
set -e
fi
done
DEND=`date --utc`
echo -ne "\n${SELF}: Stopped at ${DEND}." | tee -a ${CLOG}
if [ "${CLEANUP_LOG}" -eq 1 ]; then
if [ -f "${CLOG}" ]; then
rm -f "${CLOG}"
echo -ne "\n${SELF}: Removed my own log ${CLOG}." # | tee -a ${CLOG}
fi
if [ -f "${CLOG}".prev ]; then
rm -f "${CLOG}".prev
echo -e "\n${SELF}: Removed my own log ${CLOG}.prev." # | tee -a ${CLOG}
fi
else
E2=`date '+%s'`
if [ ${E2} -eq ${E1} ]; then
echo -e " Total elapsed 0 sec." | tee -a ${CLOG}
else
let ES="${E2} - ${E1}"
echo -e " Total elapsed ${ES} sec." | tee -a ${CLOG}
fi
#####
echo -e "\n_SUMMARY________________________________________________________________" >> ${CLOG}
echo -e "${SELF}: Trivial log examination: ${CLOG}" | tee -a ${CLOG}
echo -e "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" | tee -a ${CLOG}
# severity classes of libdax_msgs.h in libburn and libisofs
# List of boring keywords:
# 'UPDATE|NOTE|DEBUG|ALL' - not considered interesting for lazy log inspection.
# List of interesting keywords:
# thrown by xorriso and underlying libraries
LIST_KWD="(NEVER|ABORT|FATAL|FAILURE|MISHAP|SORRY|WARNING|HINT"
# thrown by others
LIST_KWD+="|FAIL|ERROR|WRONG)"
if [ -f "${CLOG}" ]; then
set +e
# lines, perl regex, leading tabs
grep -n -P "${LIST_KWD}" "${CLOG}"
RET_GREP="$?"
case ${RET_GREP} in
0) # found
;;
1) # not found
echo -e "${SELF}: Log file looks clear." # | tee -a ${CLOG}
;;
*) #
echo -e "${SELF}: grep returned EXIT CODE: ${RET_GREP}." # | tee -a ${CLOG}
;;
esac
set -e
fi
echo -e "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" | tee -a ${CLOG}
##### TODO: work out a less noisy diff'ing technique!
if [ -f "${CLOG}".prev -a -f "${CLOG}" ]; then
echo -e "${SELF}: See diff against previous log file (might be long):" | tee -a ${CLOG}
echo -e "diff -Naur ${CLOG}.prev ${CLOG} | less" | tee -a ${CLOG}
fi
fi
#
which tput >/dev/null 2>&1 && tput smso
echo -e "\n${SELF}: Leaving the following cruft in ${GEN_DATA_DIR}:" # | tee -a ${CLOG}
which tput >/dev/null 2>&1 && tput rmso
ls -lth "${GEN_DATA_DIR}" # | tee -a ${CLOG}
# Fin
exit 0

View File

@ -1,115 +0,0 @@
#!/bin/bash
set -e
SELF=$(basename "$0")
GEN_DATA_DIR=releng_generated_data
CLOG=${GEN_DATA_DIR}/log.${SELF}
PASSED_OPTIONS=""
if [ "${1}" == "-cleanup" ]; then
PASSED_OPTIONS="-cleanup"
elif [ "${1}" == "-rc" -a "${2}" == "-keep" ]; then
PASSED_OPTIONS="-rc -keep"
elif [ "${1}" == "-rc" ]; then
PASSED_OPTIONS="-rc"
else
cat << HLP
${SELF} runs executables from CWD starting with releng_*.
stdout/stderr output stored in ${CLOG}
${SELF} -rc [-keep]
${SELF} -cleanup
HLP
exit 101
fi
########################################################
if [ -f "${CLOG}" ]; then
mv "${CLOG}" "${CLOG}".prev
fi
> ${CLOG}
DSTART=`date --utc`
printf "\n${SELF}: Started at ${DSTART}"
E1=`date '+%s'`
# require ^releng_, avoid running (your)self explicitly
for s in `ls | grep ^releng_ | grep -v ${SELF} | sort -n`; do
if [ -x ${s} -a ! -d ${s} ]; then
# tee(1) does trailing \n, which is unwanted in that case
printf "\n${SELF}: Running ./${s} ${PASSED_OPTIONS}..."
echo -e "\n${SELF}: Running ./${s} ${PASSED_OPTIONS}..." >> ${CLOG}
echo -e "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> ${CLOG}
T1=`date '+%s'`
set +e
./${s} ${PASSED_OPTIONS} &>> ${CLOG}
RET=$?
T2=`date '+%s'`
let TS="${T2} - ${T1}"
case ${RET} in
0)
printf "done in ${TS} sec. ok."
;;
*)
printf "done in ${TS} sec. FAIL. EXIT CODE: $RET;"
;;
esac
set -e
fi
done
DEND=`date --utc`
printf "\n${SELF}: Stopped at ${DEND}."
if [ "${1}" == "-cleanup" ]; then
if [ -f "${CLOG}" ]; then rm -f "${CLOG}"; fi
if [ -f "${CLOG}".prev ]; then rm -f "${CLOG}".prev; fi
else
E2=`date '+%s'`
let ES="${E2} - ${E1}"
printf " Total elapsed ${ES} sec."
#####
printf "\n${SELF}: Std(out|err) logged in ${CLOG}."
printf "\n${SELF}: Trivial log file examination:"
printf "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
# severity classes of libdax_msgs.h in libburn and libisofs
# List of boring keywords:
# 'UPDATE' A pacifier message during long running operations.
# List of interesting keywords:
# thrown by xorriso and underlying libraries
LIST_KWD="(NEVER|ABORT|FATAL|FAILURE|MISHAP|SORRY|WARNING|HINT|NOTE|DEBUG|ALL"
# thrown by others
LIST_KWD+="|FAIL|ERROR|WRONG)"
if [ -f "${CLOG}" ]; then
set +e
# lines, perl regex, leading tabs
grep -n -PT "${LIST_KWD}" "${CLOG}"
RET_GREP="$?"
case ${RET_GREP} in
0) # found
;;
1) # not found
printf "\n${SELF}: Log file looks clear.\n"
;;
*) #
printf "\n${SELF}: grep returned EXIT CODE: ${RET_GREP}.\n"
;;
esac
set -e
fi
printf "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
##### TODO: work out a less noisy diff'ing technique!
if [ -f "${CLOG}".prev -a -f "${CLOG}" ]; then
printf "${SELF}: See diff against previous log file (might be long):\n"
printf "diff -Naur ${CLOG}.prev ${CLOG} | less"
fi
fi
printf "\n"
exit 0

135
releng/template_new Executable file
View File

@ -0,0 +1,135 @@
#!/bin/bash
# Copyright 2011 George Danchev <danchev@spnet.net>
# Copyright 2011 Thomas Schmitt <scdbackup@gmx.net>
# === TEMPLATE: Add your own copyright here
#
# Licensed under GNU GPL version 2 or later
# === TEMPLATE: Remove this remark before releasing this script.
#
# This is a template for creating a new libisoburn/releng test.
# It is supposed that you have read releng/README before you begin to work
# here.
#
# Step 1: Invent a name for your test
# test_name="manual_"...some.name...
# or
# test_name="auto_"...some.name...
#
# Step 2: Copy releng/template_new to $test_name
#
# Step 3: Edit $test_name and process any line that begins by
# "# === TEMPLATE:". Do what the line prescribes and then remove it
# from the script. You are not done as long as such a line remains.
#
# === TEMPLATE: End of remark to remove
set -e
# === TEMPLATE: Describe your own specific options (if any) and the test
print_specific_help() {
cat << HLP
Specific options:
--option Explanation of specific option
Overview:
Short explanation of test purpose and activities.
HLP
}
getopts_inc=inc/releng_getopts.inc
if test -e "$getopts_inc"
then
. "$getopts_inc"
if test "$SPECIFIC_HELP" = 1
then
print_specific_help
exit 0
fi
else
echo >&2
echo "File not found: $getopts_inc" >&2
echo "Are we in the ./releng directory of a libisoburn SVN checkout ?" >&2
echo "(Please execute the tests from that ./releng directory.)" >&2
echo >&2
exit 29
fi
# === TEMPLATE: Decide whether the test will have own options,
# === TEMPLATE: apart from those interpreted by inc/releng_getopts.inc
# === TEMPLATE: If not, then remove this interpreter code.
# Set default values for specific option variables. E.g.:
# dev=
# Interpret specific options, they begin after the first --.
next_is=ignore
for i in "$@"
do
if test "$next_is" = "ignore"
then
if test "$i" = "--"
then
next_is=""
fi
# === TEMPLATE: Implement interpretation of specific options. Like:
# elif test "$next_is" = "dev"
# then
# dev="$i"
# next_is=""
# elif test "$i" = "--dev"
# then
# next_is="dev"
else
echo >&2
echo "Unknown test specific option: $i" >&2
print_help
print_specific_help
exit 31
fi
done
# === TEMPLATE: End of own option interpreter code.
# Each test should decide whether or not it needs
# a xorriso binary to test, since some do compilations only.
# === TEMPLATE: Decide whether you need a xorriso program.
# === TEMPLATE: If not, then remove this function call
check_for_xorriso -x
# check data dir, if any and after checking -x xorriso
# === TEMPLATE: Decide whether your test will possibly create own files.
# === TEMPLATE: If yes, then make sure to remove this directory if not
# ===
# === TEMPLATE: If not, then remove this if ... fi statement.
if [ -d "${GEN_DATA_DIR}" ]; then
printf "\n${SELF}: directory %s exists!" ${GEN_DATA_DIR}
printf "\n${SELF}: use '${SELF} -c' to remove.\n"
exit 30
else
mkdir "${GEN_DATA_DIR}"
fi
#####################################################################
# === TEMPLATE: Perform your test activities here.
# === TEMPLATE: In case of failure, issue a line to stdout that begins by
# === TEMPLATE: the word "FAIL", and make sure that the test script finally
# === TEMPLATE: returns a non-zero exit value.
# === TEMPLATE: 31 = Unknown option or unusable argument with known option
# === TEMPLATE: 30 = Unexpected state of own directory for self generated files
# === TEMPLATE: 29 = Not in ./releng directory or missing essential parts
# === TEMPLATE: 1 to 28 = test specific exit values
# === TEMPLATE: When exiting prematurely, make sure to call cleanup.
cleanup
exit 0

View File

@ -1,47 +0,0 @@
#!/bin/bash
set -e
START_DIR_DONT_CHANGE=`pwd`
SELF=$(basename "$0")
# required config items
# RELENG_XORRISO=""
# optional config items
# config file
CONFFILE=${HOME}/.libburnia-releng/${SELF}.conf
GEN_DATA_DIR=releng_generated_data/${SELF}
KEEP=0
printf "\n$0: FAIL: === TEPLATE === RENAME ME TO releng_<title>\n"
exit 31
#####################################################################
print_help() {
cat << HLP
Usage:
$0 -help
# using a config file ${CONFFILE}
$0 -rc [-keep]
# without using a config file
$0 your_own_options_here
# cleanup test generated data directory and exit
$0 -cleanup
HLP
}
#####################################################################
print_help
#if [ ! -x "${XOR}" ]; then
# printf "$0: Not found or not an executable: $XOR\n"
# exit 50
#fi
# xorriso version details, incl. underlying libraries
# "${XOR}" -version
exit 0

View File

@ -4,7 +4,7 @@
GNU xorriso. By Thomas Schmitt <scdbackup@gmx.net>
Derived from and supported by libburnia-project.org, published via:
http://www.gnu.org/software/xorriso/xorriso_eng.html
http://www.gnu.org/software/xorriso/xorriso-1.1.1.tar.gz
http://www.gnu.org/software/xorriso/xorriso-1.1.4.tar.gz
Provided under GPL version 3 or later. No warranty.
------------------------------------------------------------------------------
@ -46,10 +46,10 @@ Optional at compile time are:
If they were present at compile time, then the optional libraries have to
be present at runtime, too.
Obtain xorriso-1.1.1.tar.gz, take it to a directory of your choice and do:
Obtain xorriso-1.1.4.tar.gz, take it to a directory of your choice and do:
tar xzf xorriso-1.1.1.tar.gz
cd xorriso-1.1.1
tar xzf xorriso-1.1.4.tar.gz
cd xorriso-1.1.4
Within that directory execute:
@ -289,9 +289,9 @@ and a matching dynamically linked xorriso binary.
This binary is very lean but depends on properly installed libraries of
suitable revision.
Dynamic library and compile time header requirements for libisoburn-1.1.0 :
- libburn.so.4 , version libburn-1.1.0 or higher
- libisofs.so.6 , version libisofs-1.1.0 or higher
Dynamic library and compile time header requirements for libisoburn-1.1.4 :
- libburn.so.4 , version libburn-1.1.4 or higher
- libisofs.so.6 , version libisofs-1.1.4 or higher
libisoburn and xorriso will not start with libraries which are older than their
headers seen at compile time. So compile in the oldest possible installation
setup unless you have reason to enforce a newer bug fix level.

View File

@ -308,7 +308,7 @@ int Dirseq_new(struct DirseQ **o, char *adr, int flag)
m->buffer_rpt= 0;
m->next= NULL;
if(Sfile_str(m->adr, adr, 0)<=0)
{ret= 0; goto failed;}
{ret= -1; goto failed;}
m->buffer= TSOB_FELD(char *,Dirseq_buffer_sizE);
if(m->buffer==NULL)
{ret= -1; goto failed;}

View File

@ -10965,34 +10965,586 @@ xorriso/xorrisofs.1
xorriso/xorrisofs.info
Version leap to libisoburn-1.1.1
18 Jun 2011 [3880]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
18 Jun 2011 [3881]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.1.0
http://svn.libburnia-project.org/libisoburn/tags/1.1.0
------------------------------------ cycle - xorriso-1.1.1 - 2011.06.18.173208
------------------------------------ cycle - xorriso-1.1.1 - 2011.06.19.210656
* Bug fix: GNU xorriso-1.1.0 compiled only on Linux, FreeBSD, and Solaris
------------------------------ release - xorriso-1.1.0.pl01 - 2011.06.20.110001
* Bug fix: GNU xorriso-1.1.0 compiled only on Linux, FreeBSD, and Solaris
22 Jun 2011 [3887]
releng/releng_build_jigdo
releng/README.releng
Beginning to create a test suite for libisoburn and xorriso
27 Jun 2011 [3943]
+ releng/test_hardlinks
New test test_hardlinks
27 Jun 2011 [3944]
releng/TODO
Added rules to releng/TODO, new options -keep, -clean_up, deprecated -clean
27 Jun 2011 [3945] [3948] [3952] [3957]
releng/test_hardlinks
Polished hardlink test
2011.06.27.160728 [3956]
xorriso/opts_p_z.c
Bug fix: -update_r scheduled non-existing files for hardlink update
2011.06.27.172423 [3958]
xorriso/parse_exec.c
Reporting commands and their arguments as DEBUG messages before execution
28 Jun 2011 [3964]
releng/test_hardlinks
+ tmp
Adapted test_hardlinks to newly defined general test rules
28 Jun 2011 [3965]
releng/test_hardlinks
Adjusted names of config variables in test_hardlinks
28 Jun 2011 [3968]
releng/test_hardlinks
- tmp
+ releng/tmp
Option -fail for test_hardlinks to simulate failure, moved tmp to releng/tmp
28 Jun 2011 [3969]
releng/test_hardlinks
Removed suffix .result from tmp/test_hardlinks
2011.06.28.084751 [3970]
A test with non-added file releng/tmp/test
28 Jun 2011 [3973]
+ releng/releng_generated_data
- releng/tmp
Renamed releng/tmp to releng/releng_generated_data
28 Jun 2011 [3974]
releng/test_hardlinks
Adapted test_hardlinks to newest agreements with George
28 Jun 2011 [3975]
+ releng/releng_hardlinks
- releng/test_hardlinks
Renamed test_hardlinks to releng_hardlinks
2011.07.02.153320 [3991]
libisoburn/burn_wrap.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.085629 [4003]
xorriso/aux_objects.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.091220 [4006]
xorriso/misc_funct.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.091706 [4007]
xorriso/misc_funct.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.092353 [4008]
xorriso/disk_ops.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.093500 [4010]
xorriso/parse_exec.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.093500 [4015]
xorriso/sfile.c
Reacted on warnings of -Wtype-limits
2011.07.03.181840 [4020]
configure.ac
libisoburn/libisoburn.h
Requiring libsofs-1.1.1 now
2011.07.03.193627 [4029]
xorriso/iso_tree.c
xorriso/read_run.c
Enabled extraction of the boot catalog file to disk filesystem
2011.07.03.194138 [4030]
xorriso/opts_a_c.c
xorriso/opts_i_o.c
xorriso/opts_p_z.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.194723 [4031]
xorriso/drive_mgt.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.03.203013 [4033]
xorriso/opts_i_o.c
Removed a premature reference to upcomming function
2011.07.04.092828 [4034]
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/opts_i_o.c
xorriso/drive_mgt.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
libisoburn/libisoburn.ver
New option -list_speeds
4 Jul 2011 [4035]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.1 - 2011.07.04.092828
* Bug fix: -update_r scheduled non-existing files for hardlink update
* New option -list_speeds
* Enabled extraction of the boot catalog file to disk filesystem
2011.07.04.105800 [4036]
xorriso/iso_manip.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.04.105854 [4037]
xorriso/write_run.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.04.121342 [4038]
xorriso/read_run.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.04.121501 [4039]
xorriso/filters.c
Reacted on warnings of -Wunused-but-set-variable
2011.07.05.145103 [4062]
libisoburn/libisoburn.h
Made libisoburn.h ready for use with C++ without importing namespace "burn"
2011.07.06.190111 [4078]
libisoburn/isofs_wrap.c
Hopefully fixed Debian bug 632865: blank ISO images with drive role 5
2011.07.07.113930 [4082]
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
libisoburn/burn_wrap.c
Bug fix: Since 1.0.6: Unreadable image produced by: xorrisofs ... >image.iso
------------------------------------ cycle - xorriso-1.1.1 - 2011.07.07.113930
* Bug fix: Since 1.0.6: Unreadable image produced by: xorrisofs ... >image.iso
7 Jul 2011 [4086]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
8 Jul 2011 [4092]
svn copy -m Branching for libisoburn release 1.1.2
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.1.2
2011.07.08.100001 [4094]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
xorriso/xorrisofs.texi
xorriso/xorrisofs.1
xorriso/xorrisofs.info
Version leap to libisoburn-1.1.2
8 Jul 2011 [4095]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.1.2 - 2011.07.08.100001
* Bug fix: -update_r scheduled non-existing files for hardlink update
* New option -list_speeds
* Enabled extraction of the boot catalog file to disk filesystem
* Bug fix: Since 1.0.6: Unreadable image produced by: xorrisofs ... >image.iso
2011.07.08.131032 [4099] [4100]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
xorriso/xorrisofs.texi
xorriso/xorrisofs.1
xorriso/xorrisofs.info
Version leap to libisoburn-1.1.3
8 Jul 2011 [4101]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
8 Jul 2011 [4102]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.1.2
http://svn.libburnia-project.org/libisoburn/tags/1.1.2
------------------------------------ cycle - xorriso-1.1.3 - 2011.07.08.131032
2011.07.10.112539 [4126]
libisoburn/isofs_wrap.c
Recognizing overwritable media, blanked by cdrskin --grow_overwriteable_iso
2011.07.11.175609 [4134]
xorriso/drive_mgt.c
Reacted on warnings of cppcheck
2011.07.12.092010 [4137]
xorriso/drive_mgt.c
Improved output of -list_speeds with CD drives. Empty list now cause SORRY.
2011.07.12.135452 [4146]
xorriso/drive_mgt.c
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
Improved output of -list_speeds with ROM media and ROM drives.
13 Jul 2011 [4158] [4159] [4160]
+ releng/manual_devices_ts
Proposal for test ./manual_devices
14 Jul 2011 [4161] [4162]
releng/manual_devices_ts
+ releng/inc/releng_getopts_ts.inc
Proposal for test ./manual_devices and inc/releng_getopts_ts.inc
14 Jul 2011 [4163]
releng/manual_devices_ts
releng/inc/releng_getopts_ts.inc
Prepared test proposal for option -f and for incomplete option -x
14 Jul 2011 [4165]
releng/manual_devices_ts
Issueing failure message and non-zero exit value if manual_devices_ts fails
14 Jul 2011 [4166]
releng/inc/releng_getopts_ts.inc
Corrected a misunderstanding about meaning of code piece
2011.07.15.083052 [4171]
libisoburn/burn_wrap.c
Reacted on warnings of cppcheck about libisoburn/burn_wrap.c
15 Jul 2011 [4172]
releng/manual_devices
Removed remnant reference to releng_getopts_ts.inc
15 Jul 2011 [4173]
releng/inc/releng_getopts.inc
Removed usage of getopts in releng_getopts.inc
15 Jul 2011 [4174]
releng/inc/releng_getopts.inc
Removed obsolete input checks from releng_getopts.inc
15 Jul 2011 [4175]
releng/inc/releng_getopts.inc
releng/manual_devices
New function check_for_xorriso in releng_getopts.inc
15 Jul 2011 [4176]
releng/inc/releng_getopts.inc
Removed call to print_specific_help from releng_getopts.inc
15 Jul 2011 [4177]
releng/inc/releng_getopts.inc
Changed general option -k -c -f in releng_getopts.inc
17 Jul 2011 [4185]
releng/run_all_releng
Issueing pacifier messages in run_all_releng about logged line
17 Jul 2011 [4186]
releng/run_all_releng
Making run_all_releng recognize exit values again (fixing rev 4185)
17 Jul 2011 [4187]
releng_printsize
Issueing pacifier messages during tree generation of releng_printsize
17 Jul 2011 [4186]
releng/run_all_releng
Using a more elegant way to obtain pipe component exit value
17 Jul 2011 [4192]
releng/run_all_releng
Switched error message away from stderr, only pacifier remains on stderr
17 Jul 2011 [4194]
releng/run_all_releng
Added my copyright to run_all_releng
23 Jul 2011 [4208] [4209]
svn mv releng/README releng/README.old
releng/README
Began to sketch an releng/README file
2011.07.24.193433 [4213]
xorriso/drive_mgt.c
Improved media summary with overwritable media and unknown content
2011.07.24.203919 [4214]
xorriso/drive_mgt.c
Improved -check_media with overwritable media and unknown content
2011.07.25.095843 [4215]
xorriso/check_media.h
xorriso/check_media.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -check_media option what=image
2011.07.25.103809 [4216]
xorriso/drive_mgt.c
Issueing a warning messages if BD-R with more than 299 sessions is loaded
27 Jul 2011 [4217]
releng/auto_printsize
Reduced runtime of auto_printsize and balanced xorriso versus genisoimage
2011.07.27.211423 [4218]
xorriso/xorriso.h
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/opts_i_o.c
xorriso/drive_mgt.c
xorriso/aux_objects.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New option -device_links
27 Jul 2011 [4219]
releng/manual_devices
Switched releng/manual_devices from -devices to -device_links
2011.07.28.111814 [4220]
xorriso/drive_mgt.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Prefering dvd over cd with -device_links
28 Jul 2011 [4221]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.3 - 2011.07.28.111814
* New option -device_links
2011.07.28.192110 [4224]
configure.ac
libisoburn/libisoburn.h
Requiring libburn 1.1.1
2011.07.28.195103 [4225]
xorriso/drive_mgt.c
Using libburn call burn_lookup_device_link()
30 Jul 2011 [4226]
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Small correction in xorrisofs man page
2011.07.31.091836 [4229]
libisoburn/burn_wrap.c
Bug fix: xorriso native mode on some drives wrote unreadble ISO images to CD
2011.07.31.094422 [4230]
xorriso/xorrisoburn.h
xorriso/opts_a_c.c
xorriso/opts_p_z.c
Allowed lower case severity names with -abort_on, -return_with, -report_about
2011.07.31.145832 [4231]
xorriso/misc_funct.c
Bug fix: -assert_volid did not work. Regression since version 1.1.0, rev 3767.
2011.08.01.130400 [4233]
xorriso/drive_mgt.c
xorriso/misc_funct.c
New report line "Media blocks :" with option -toc
1 Aug 2011 [4234]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.3 - 2011.08.01.130400
* Bug fix: xorriso native mode on some drives wrote unreadble ISO images to CD
* Bug fix: -assert_volid did not work. Regression since version 1.1.0.
2011.08.01.152915 [4236]
xorriso/misc_funct.h
Forgot to upload the header which defines Xorriso__to_upper
1 Aug 2011 [4238]
releng/auto_isocontent
Checking -assert_volid in auto_isocontent
3 Aug 2011 [4240]
releng/README
releng/template_new
Added more text pieces to releng/README, updated template for new tests
3 Aug 2011 [4241]
releng/inc/releng_getopts.inc
Added option -h to general helptext of releng
4 Aug 2011 [4242]
releng/template_new
Further improvements to releng test template
4 Aug 2011 [4243]
+ releng/manual_burn
New test releng/manual_burn
4 Aug 2011 [4244]
releng/README
releng/manual_burn
Improvements about releng/manual_burn
5 Aug 2011 [4245]
releng/auto_cxx
releng/auto_isocontent
releng/manual_burn
releng/manual_isojigdo
Made existing tests comply to upcomming prescriptions for failure messages
5 Aug 2011 [4246]
releng/inc/releng_getopts.inc
Made existing tests comply to upcomming prescriptions for failure messages
7 Aug 2011 [4248]
releng/README
More work on releng/README
07 Aug 2011 [4252]
svn copy -m Branching for libisoburn release 1.1.4
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.1.4
2011.08.07.120001 [4253]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/xorriso.h
xorriso/xorrisoburn.h
xorriso/xorriso_main.c
xorriso/xorriso_eng.html
xorriso/make_xorriso_standalone.sh
xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
xorriso/xorrisofs.texi
xorriso/xorrisofs.1
xorriso/xorrisofs.info
Version leap to libisoburn-1.1.4
07 Aug 2011 [4254]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
2011.08.08.071649 [4256]
xorriso/read_run.c
Improved error reporting with problems when extracting xattr or ACL
2011.08.08.070301 [4257]
configure.ac
README
libisoburn/libisoburn.h
xorriso/README_gnu_xorriso
xorriso/configure_ac.txt
xorriso/xorriso_eng.html
xorriso/xorriso_timestamp.h
Requiring libisofs-1.1.4 (because of ACL extraction problem in 1.1.2)
[]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.1.4 - 2011.08.08.070301
* New option -device_links
* Bug fix: xorriso native mode on some drives wrote unreadble ISO images to CD
* Bug fix: -assert_volid did not work. Regression since version 1.1.0.
* Bug fix: -acl or -xattr worked with -extract only on Linux and FreeBSD
[]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.1.0
http://svn.libburnia-project.org/libisoburn/tags/1.1.0
------------------------------------ cycle - xorriso-1.1.1 -
xorriso/read_run.c
Improved error reporting with problems when extracting xattr or ACL
(>>> schon kopiert)
[]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.1 -
------------------------------------ cycle - xorriso-1.1.5 -
[]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.1 -
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.9 -
------------------------------------ cycle - xorriso-1.1.5 -
**********************************************************************
@ -11004,6 +11556,19 @@ Important: When adding a public API function then add its name to file
TODO
===============================================================================
- -for_backup -extract :
- enable new code in libisofs/aaip-os-linux.c
Libisofs_aaip_linux_set_attr_list_neW
- FAILURE due to not enable ACL does not abort tree extraction
although -abort_on FAILURE is set
- in libisofs/aaip-os-freebsd.c : flag bit0 is not checked
- update_home got stuck when interrupted during -update_r
-------------------------------------------------------------------------
- Problem words in man xorriso
@ -11037,11 +11602,6 @@ terminology in xorriso. I shall make a tree model.
- Get rid of ((size_t) -1) in libisofs/util.c
- Improve handling of read errors while libisofs loads the image
(Somehow the problem with /dev/sr4 looks rather like a mad drive.
It reads faulty ISO trees but sees no SCSI error. Next attempt: all is
well again.)
- Make Debian test machine ready for cppcheck and add it to release procedure
- ? Allow to adjust maximum path length
@ -11109,9 +11669,6 @@ terminology in xorriso. I shall make a tree model.
------------------------------------------------- bugs
- An ISO image as first file of a stdout stream might start at LBA 32
and thus look like a session. It has not the proper offset, though.
- xorriso_eng.html on www.gnu.org it should rather be xorriso.html
- DVD-ROM drives report CD tracks with size up to the next track start.

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -805,8 +805,10 @@ int Xorriso_check_media_setup_job(struct XorrisO *xorriso,
} else if(strncmp(argv[i], "what=", 5) == 0) {
if(strcmp(argv[i]+5, "tracks") == 0)
job->mode= 0;
else if(strcmp(argv[i]+5, "disc")== 0)
else if(strcmp(argv[i]+5, "image")== 0)
job->mode= 1;
else if(strcmp(argv[i]+5, "disc")== 0)
job->mode= 2;
else {
unknown_value:;
sprintf(xorriso->info_text,

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -102,7 +102,7 @@ struct CheckmediajoB {
*/
int mode; /* 0= track by track
1= single sweep over libisoburn media capacity
>>> 2= single sweep over libburn media capacity
2= single sweep over libburn media capacity
*/
time_t start_time;
int time_limit; /* Number of seconds after which to abort */

View File

@ -3,7 +3,7 @@
# Copyright (c) 2007 - 2011 Thomas Schmitt <scdbackup@gmx.net>
# Provided under GPL version 2 or later.
AC_INIT([xorriso], [1.1.1], [http://libburnia-project.org])
AC_INIT([xorriso], [1.1.4], [http://libburnia-project.org])
AC_PREREQ([2.50])
AC_CANONICAL_HOST
@ -23,14 +23,14 @@ AC_DEFINE([Xorriso_standalonE], [])
BURN_MAJOR_VERSION=1
BURN_MINOR_VERSION=1
BURN_MICRO_VERSION=1
BURN_MICRO_VERSION=4
AC_SUBST(BURN_MAJOR_VERSION)
AC_SUBST(BURN_MINOR_VERSION)
AC_SUBST(BURN_MICRO_VERSION)
LIBISOFS_MAJOR_VERSION=1
LIBISOFS_MINOR_VERSION=1
LIBISOFS_MICRO_VERSION=1
LIBISOFS_MICRO_VERSION=4
AC_SUBST(LIBISOFS_MAJOR_VERSION)
AC_SUBST(LIBISOFS_MINOR_VERSION)
AC_SUBST(LIBISOFS_MICRO_VERSION)

View File

@ -800,7 +800,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
int track_count= 0, session_no, track_no, profile_no= -1, track_size;
int last_track_start= 0, last_track_size= -1, num_data= 0, is_data= 0;
int is_inout_drive= 0, drive_role, status, num_formats, emul_lba;
int num_payload= 0, not_reconizable= 0;
int not_recognizable= 0, start_lba, end_lba;
char profile_name[80],*respt,*devadr, *typetext= "";
struct burn_toc_entry toc_entry;
struct burn_drive_info *dinfo;
@ -816,6 +816,11 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
int image_blocks= 0;
char volume_id[33];
struct burn_toc_entry next_toc_entry;
int disk_category, part_version, num_layers, num_blocks;
char *book_name;
/*
int num_payload= 0, num_wasted= 0, num_nondata= 0;
*/
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
"on attempt to print Table Of Content",
@ -839,7 +844,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
{ret= 1; goto ex;}
sprintf(respt, "Drive type : vendor '%s' product '%s' revision '%s'\n",
dinfo[0].vendor, dinfo[0].product, dinfo[0].revision);
if((flag & 32) | !(flag & 1))
if((flag & 32) || !(flag & 1))
Xorriso_toc_line(xorriso, flag & 8);
if(flag & 32)
{ret= 1; goto ex;}
@ -866,7 +871,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
strcat(respt, "\n");
} else {
sprintf(respt+strlen(respt), "is not recognizable\n");
not_reconizable= 1;
not_recognizable= 1;
}
Xorriso_toc_line(xorriso, flag & 8);
@ -878,7 +883,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
sprintf(respt, "Media status : ");
if (s == BURN_DISC_FULL) {
if(not_reconizable)
if(not_recognizable)
sprintf(respt+strlen(respt), "is not recognizable\n");
else
sprintf(respt+strlen(respt), "is written , is closed");
@ -909,6 +914,59 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
strcat(respt, "\n");
Xorriso_toc_line(xorriso, flag & 8);
if((s == BURN_DISC_FULL || s == BURN_DISC_APPENDABLE ||
s == BURN_DISC_BLANK) && !(flag & 1)) {
ret= burn_get_read_capacity(drive, &num_data, 0);
if(ret != 1 || s == BURN_DISC_BLANK)
num_data= 0;
num_free= isoburn_disc_available_space(drive, NULL) / 2048;
nwa= -1;
if (s == BURN_DISC_APPENDABLE) {
ret= isoburn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
if(ret <= 0)
nwa= -1;
} else if(s == BURN_DISC_BLANK) {
ret= isoburn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
if(ret == 1) {
num_free+= nwa;
nwa= 0;
}
}
lba= num_data + num_free;
if(nwa >= 0) {
lba= nwa + num_free;
if(nwa < num_data)
num_data= nwa;
}
/* If closed CD-RW : obtain ATIP lead out address */
if(profile_no == 0x0a) {
ret= burn_disc_read_atip(drive);
if(ret < 0)
goto ex;
ret= burn_drive_get_start_end_lba(drive, &start_lba, &end_lba, 0);
if(s == BURN_DISC_FULL && ret == 1) {
lba= end_lba - 2;
} else {
if(ret == 1 && end_lba - 2 > lba) {
sprintf(xorriso->info_text,
"ATIP end_lba %d > overall %d", end_lba, lba);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
}
}
} else if(profile_no == 0x14) {
ret= burn_disc_get_phys_format_info(drive, &disk_category,
&book_name, &part_version,
&num_layers, &num_blocks, 0);
if(ret == 1 && num_blocks > lba)
lba= num_blocks;
}
sprintf(respt, "Media blocks : %d readable , %d writable , %d overall\n",
num_data, (int) num_free, lba);
Xorriso_toc_line(xorriso, flag & 8);
}
if(s == BURN_DISC_BLANK) {
sprintf(respt, "Media summary: 0 sessions, 0 data blocks, 0 data");
num_free= isoburn_disc_available_space(drive, NULL);
@ -938,15 +996,15 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
Xorriso_process_msg_queues(xorriso,0);
if(drive_role == 5 && s == BURN_DISC_APPENDABLE) {
ret= burn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
if(ret == 1)
num_data= nwa;
if(ret != 1)
lba= 0;
} else {
ret= isoburn_get_min_start_byte(drive, &start_byte, 0);
nwa= start_byte / 2048;
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
if(flag&1)
{ret= 0; goto ex;}
{ret= 1; goto ex;}
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
{ret= 0; goto ex;}
@ -965,20 +1023,29 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
1, 0, image_blocks, volume_id);
nwa= image_blocks;
} else {
nwa= num_data;
ret= burn_disc_get_formats(drive, &status, &size, &dummy,
&num_formats);
if(ret>0 && status==BURN_FORMAT_IS_FORMATTED)
nwa= size/2048;
if(ret <= 0 || status != BURN_FORMAT_IS_FORMATTED)
size= 0;
if(size <= 0) {
ret= burn_get_read_capacity(drive, &num_data, 0);
if(ret == 1)
size= ((off_t) num_data) * (off_t) 2048;
}
nwa= lba + size / 2048;
num_data= nwa - lba;
sprintf(respt, "%13s: %3d , %9d , %9ds , \n",
typetext, 1, num_data, nwa);
typetext, 1, lba, num_data);
}
if(!(flag&1))
Xorriso_toc_line(xorriso, flag & 8);
last_track_start= lba;
/*
num_payload= num_data= last_track_size= nwa;
*/
num_sessions= 1;
} else {
num_data= 0;
sessions= isoburn_toc_disc_get_sessions(disc, &num_sessions);
for (session_no= 0; session_no<num_sessions && !(xorriso->request_to_abort);
session_no++) {
@ -1043,8 +1110,10 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
}
if(!(flag&1))
Xorriso_toc_line(xorriso, flag & 8);
/*
if(track_no>0)
num_payload+= lba - last_track_start;
*/
last_track_start= lba;
if((toc_entry.control&7)>=4) /* data track */
is_data= 1;
@ -1058,7 +1127,9 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
lba= burn_msf_to_lba(toc_entry.pmin, toc_entry.psec, toc_entry.pframe);
}
last_track_size= lba - last_track_start;
/*
num_payload+= last_track_size;
*/
if(is_data)
num_data+= last_track_size;
}
@ -1066,8 +1137,6 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
if(xorriso->request_to_abort)
{ret= 1; goto ex;}
/*
int num_wasted= 0, num_nondata= 0;
num_wasted= lba - num_payload;
num_nondata= lba - num_data;
*/
@ -1090,6 +1159,12 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
Xorriso_toc_line(xorriso, flag & 8);
}
}
if(profile_no == 0x41 && num_sessions >= 300) {
sprintf(xorriso->info_text,
"Sequential BD-R media now contains %d sessions. It is likely to soon fail writing.",
num_sessions);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
}
if (disc!=NULL)
isoburn_toc_disc_free(disc);
@ -1100,9 +1175,11 @@ ex:;
}
/* @param flag bit0= try to find 'meaningful' links for enumerated devices
*/
int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
{
char *adr= NULL;
char *adr= NULL, *link_adr= NULL, *adrpt;
int i, j, max_dev_len= 1, pad, ret;
struct burn_drive_info *drive_list= NULL;
unsigned int drive_count;
@ -1110,6 +1187,7 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
struct stat stbuf;
Xorriso_alloc_meM(adr, char, BURN_DRIVE_ADR_LEN);
Xorriso_alloc_meM(link_adr, char, BURN_DRIVE_ADR_LEN);
sprintf(xorriso->info_text, "Beginning to scan for devices ...\n");
Xorriso_info(xorriso,0);
@ -1139,8 +1217,16 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
if(burn_drive_get_adr(&(drive_list[i]), adr)<=0)
strcpy(adr, "-get_adr_failed-");
Xorriso_process_msg_queues(xorriso,0);
if((int) strlen(adr) > max_dev_len)
max_dev_len= strlen(adr);
adrpt= adr;
if(flag & 1) {
ret= burn_lookup_device_link(adr, link_adr, "/dev", NULL, 0, 0);
if(ret < 0)
goto ex;
if(ret == 1)
adrpt= link_adr;
}
if((int) strlen(adrpt) > max_dev_len)
max_dev_len= strlen(adrpt);
}
for(i= 0; i < (int) drive_count && !(xorriso->request_to_abort); i++) {
if(burn_drive_get_adr(&(drive_list[i]), adr)<=0)
@ -1157,8 +1243,16 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
if(stbuf.st_mode&S_IROTH) perms[4]= 'r';
if(stbuf.st_mode&S_IWOTH) perms[5]= 'w';
}
sprintf(respt, "%d -dev '%s' ", i, adr);
pad= max_dev_len-strlen(adr);
adrpt= adr;
if(flag & 1) {
ret= burn_lookup_device_link(adr, link_adr, "/dev", NULL, 0, 0);
if(ret < 0)
goto ex;
if(ret == 1)
adrpt= link_adr;
}
sprintf(respt, "%d -dev '%s' ", i, adrpt);
pad= max_dev_len-strlen(adrpt);
if(pad>0)
for(j= 0; j<pad; j++)
strcat(respt, " ");
@ -1170,10 +1264,11 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
Xorriso_info(xorriso,0);
burn_drive_info_free(drive_list);
Xorriso_process_msg_queues(xorriso,0);
ret= 1;
ex:;
Xorriso_process_msg_queues(xorriso,0);
Xorriso_free_meM(adr);
Xorriso_free_meM(link_adr);
return(ret);
}
@ -1284,11 +1379,55 @@ ex:;
}
int Xorriso_choose_speed_factor(struct XorrisO *xorriso,
int speed, int profile,
double *speed_factor, char **speed_unit,
int flag)
{
double cd_factor = 75.0 * 2352;
double cd_speed_tolerance= 1.5, cd_speed_add;
int int_cd_speed, i;
static int cd_speed_list[]= {8, 10, 12, 16, 24, 32, 40, 48, 52, 0};
*speed_unit= "D";
*speed_factor= 1385000.0;
/* Does this look like an integer CD speed ? */
int_cd_speed= ((double) speed) * 1000.0 / cd_factor;
cd_speed_add= cd_speed_tolerance * (double) int_cd_speed;
int_cd_speed= (((double) speed) + cd_speed_add)
* 1000.0 / cd_factor;
if(abs((int) ((double) int_cd_speed) * cd_factor / 1000.0 -
((double) speed)) > 2 * cd_speed_add ||
int_cd_speed > 64)
int_cd_speed= 0;
if(int_cd_speed > 7) {
for(i= 0; cd_speed_list[i]; i++)
if(int_cd_speed == cd_speed_list[i])
break;
if(cd_speed_list[i] == 0)
int_cd_speed= 0;
}
if(((profile < 0x08 || profile >= 0x100 || profile == 0x10 || profile == 0x40)
&& int_cd_speed) ||
(profile >= 0x08 && profile <= 0x0a)) {
*speed_unit= "C";
*speed_factor= cd_factor;
} else if(profile >= 0x40 && profile <= 0x43) {
*speed_unit= "B";
*speed_factor= 4495625.0;
}
return(1);
}
/* @return <=0 error, 1 success
*/
int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
{
int ret, high= -1, low= 0x7fffffff, int_cd_speed, is_cd= 0;
int ret, high= -1, low= 0x7fffffff, is_cd= 0, i;
int recent_profile= 0;
char *respt, *speed_unit= "D";
double speed_factor= 1385000.0, cd_factor= 75.0 * 2352;
struct burn_drive_info *dinfo;
@ -1304,18 +1443,29 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
if(ret == 2)
goto ex;
ret= burn_drive_get_speedlist(drive, &speed_list);
if(ret <= 0) {
if(ret < 0) {
sprintf(xorriso->info_text, "Cannot obtain speed list info");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= 0; goto ex;
}
ret= Xorriso_toc(xorriso, 3);
if(ret<=0)
goto ex;
if(ret<=0) {
sprintf(xorriso->info_text,
"Cannot obtain overview of drive and media content");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= 0; goto ex;
}
for (item= speed_list; item != NULL; item= item->next) {
sprintf(xorriso->info_text, "speed= %5dk , source= %d",
item->write_speed, item->source);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
if(item->profile_loaded >= 0x08 && item->profile_loaded <= 0x0a)
is_cd= 1;
is_cd= item->profile_loaded;
if(item->profile_loaded > 0)
recent_profile= item->profile_loaded;
if(item->source == 1) {
/* CD mode page 2Ah : report only if not same speed by GET PERFORMANCE */
for(other= speed_list; other != NULL; other= other->next)
@ -1324,25 +1474,9 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
if(other != NULL)
continue;
}
speed_unit= "D";
speed_factor= 1385000.0;
/* Does this look like an integer CD speed ? */
int_cd_speed= ((double) item->write_speed) * 1000.0 / cd_factor;
if(abs((int) ((double) int_cd_speed) * cd_factor / 1000.0 -
((double) item->write_speed)) > 5 ||
int_cd_speed > 64)
int_cd_speed= 0;
if(((item->profile_loaded < 0x08 || item->profile_loaded >= 0x100) &&
int_cd_speed) ||
(item->profile_loaded >= 0x08 && item->profile_loaded <= 0x0a)) {
speed_unit= "C";
speed_factor= 75.0 * 2352.0;
} else if(item->profile_loaded >= 0x41 && item->profile_loaded <= 0x43) {
speed_unit= "B";
speed_factor= 4495625.0;
}
Xorriso_choose_speed_factor(xorriso, item->write_speed,
item->profile_loaded,
&speed_factor, &speed_unit, 0);
sprintf(respt, "Write speed : ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
item->write_speed,
@ -1361,41 +1495,48 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
if(ret < 0)
goto ex;
if(ret > 0) {
ret= burn_drive_get_min_write_speed(drive);
if(ret > 0) {
if(ret > low) {
sprintf(respt, "Write speed l: ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
ret, ((double) ret) * 1000.0 / cd_factor, "C");
Xorriso_result(xorriso,0);
}
if(ret > high)
high= ret;
low= ret;
}
ret= burn_drive_get_write_speed(drive);
if(ret > 0) {
if(ret < high) {
sprintf(respt, "Write speed h: ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
ret, ((double) ret) * 1000.0 / cd_factor, "C");
Xorriso_result(xorriso,0);
}
high= ret;
if(ret < low)
low= ret;
}
for(i= 0; i < 2; i++) {
if(i == 0)
ret= burn_drive_get_min_write_speed(drive);
else
ret= burn_drive_get_write_speed(drive);
if(ret > 0) {
if(ret < low || (i == 0 && ret != low)) {
sprintf(respt, "Write speed l: ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
ret, ((double) ret) * 1000.0 / cd_factor, "C");
Xorriso_result(xorriso,0);
low= ret;
}
if(ret > high || (i == 1 && ret != high)) {
sprintf(respt, "Write speed h: ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
ret, ((double) ret) * 1000.0 / cd_factor, "C");
Xorriso_result(xorriso,0);
high= ret;
}
}
}
}
}
if(high > -1) {
Xorriso_choose_speed_factor(xorriso, low, recent_profile,
&speed_factor, &speed_unit, 0);
sprintf(respt, "Write speed L: ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
low, ((double) low) * 1000.0 / speed_factor, speed_unit);
Xorriso_result(xorriso,0);
Xorriso_choose_speed_factor(xorriso, low, recent_profile,
&speed_factor, &speed_unit, 0);
sprintf(respt, "Write speed H: ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
high, ((double) high) * 1000.0 / speed_factor, speed_unit);
Xorriso_result(xorriso,0);
} else {
sprintf(xorriso->info_text,
"Could not get any write speed information from drive");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= 0; goto ex;
}
ret= 1;
ex:;
@ -2290,7 +2431,7 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
} else if(mode == 0) { /* track by track */
isoburn_disc= isoburn_toc_drive_get_disc(drive);
if(isoburn_disc == NULL)
goto no_content_visible;
goto libburn_whole_disc;
isoburn_sessions=
isoburn_toc_disc_get_sessions(isoburn_disc, &num_sessions);
for(i= 0; i < num_sessions; i++) {
@ -2361,27 +2502,33 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
} else if(mode == 1) { /* isoburn disc capacity */
isoburn_disc= isoburn_toc_drive_get_disc(drive);
if(isoburn_disc == NULL) {
no_content_visible:;
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text, "No content detected on media");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
{ret= 0; goto ex;}
}
if(isoburn_disc == NULL)
goto libburn_whole_disc;
blocks= media_blocks= isoburn_toc_disc_get_sectors(isoburn_disc);
if(start_lba >= 0)
blocks-= start_lba;
if(media_blocks <= 0)
goto no_content_visible;
goto libburn_whole_disc;
xorriso->pacifier_total= blocks;
ret= Xorriso_check_interval(xorriso, *spotlist, job, start_lba, blocks,
read_chunk, 0, 0);
if(ret <= 0)
goto ex;
} else if(mode == 2) {
/* >>> single sweep over libburn media capacity */;
libburn_whole_disc:;
/* single sweep over libburn media capacity */
ret= burn_get_read_capacity(drive, &blocks, 0);
if(ret <= 0) {
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text, "No content detected on media");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
{ret= 0; goto ex;}
}
xorriso->pacifier_total= blocks;
ret= Xorriso_check_interval(xorriso, *spotlist, job, 0, blocks,
read_chunk, 0, 0);
if(ret <= 0)
goto ex;
}
Xorriso_pacifier_callback(xorriso, "sectors examined",

View File

@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
current_dir=$(pwd)
lone_dir="$current_dir"/"xorriso-standalone"
xorriso_rev=1.1.1
xorriso_rev=1.1.4
# For unstable uploads and patch level 0 of stable releases:
xorriso_pl=""
# For higher patch levels of stable releases:

View File

@ -997,7 +997,7 @@ int Sregex_match(char *pattern, char *text, int flag)
ret= regexec(&re, text, 1, match, 0);
regfree(&re);
if(ret != 0)
goto ex;
{ret= 0; goto ex;}
ret= 1;
ex:;
if(re_text != NULL)
@ -1218,3 +1218,19 @@ char *Xorriso__hide_mode_text(int hide_mode, int flag)
return "invalid";
}
/* @return 0=truncated, 1=ok
*/
int Xorriso__to_upper(char *in, char *out, int out_size, int flag)
{
int i;
for(i= 0; i < out_size - 1 && in[i] != 0; i++)
if(isalpha(in[i]))
out[i]= toupper(in[i]);
else
out[i]= in[i];
out[i]= 0;
return(in[i] == 0);
}

View File

@ -89,6 +89,9 @@ int Xorriso__hide_mode(char *mode, int flag);
char *Xorriso__hide_mode_text(int hide_mode, int flag);
/* @return 0=truncated, 1=ok
*/
int Xorriso__to_upper(char *in, char *out, int out_size, int flag);
#endif /* ! Xorriso_pvt_misc_includeD */

View File

@ -36,18 +36,24 @@
/* Option -abort_on */
int Xorriso_option_abort_on(struct XorrisO *xorriso, char *severity, int flag)
int Xorriso_option_abort_on(struct XorrisO *xorriso, char *in_severity,
int flag)
{
int ret, sev;
char severity[20], *official;
Xorriso__to_upper(in_severity, severity, (int) sizeof(severity), 0);
ret= Xorriso__text_to_sev(severity, &sev, 0);
if(ret<=0) {
sprintf(xorriso->info_text, "-abort_on: Not a known severity name : ");
Text_shellsafe(severity, xorriso->info_text, 1);
Text_shellsafe(in_severity, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(ret);
}
if(Sfile_str(xorriso->abort_on_text,severity,0)<=0)
ret= Xorriso__sev_to_text(sev, &official, 0);
if(ret <= 0)
official= severity;
if(Sfile_str(xorriso->abort_on_text, official, 0) <= 0)
return(-1);
xorriso->abort_on_severity= sev;
xorriso->abort_on_is_default= 0;

View File

@ -101,8 +101,9 @@ int Xorriso_option_dev(struct XorrisO *xorriso, char *in_adr, int flag)
}
/* Option -devices */
/* @return <=0 error , 1 success, 2 revoked by -reassure
/* Option -devices , -device_links */
/* @param flag bit0= perform -device_links rather than -devices
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_devices(struct XorrisO *xorriso, int flag)
{
@ -138,7 +139,7 @@ int Xorriso_option_devices(struct XorrisO *xorriso, int flag)
}
Xorriso_give_up_drive(xorriso, 3);
}
ret= Xorriso_show_devices(xorriso, 0);
ret= Xorriso_show_devices(xorriso, flag & 1);
return(ret);
}
@ -1510,6 +1511,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -gid gid Group id for the same purpose.",
"",
" -devices Show list of available optical drives and their addresses.",
" -device_links Like devices, but showing link paths which are hopefully",
" persistent over reboot on modern Linux systems.",
"",
" -toc Show media specific table of content (sessions).",
"",

View File

@ -1157,6 +1157,9 @@ return:
ret= Xorriso_afile_fopen(xorriso, adr, "rb", &fp, 0);
if(ret <= 0)
return(0);
sprintf(xorriso->info_text, "Command file: ");
Text_shellsafe(adr, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
while(1) {
ret= Xorriso_read_lines(xorriso, fp, &linecount, &linec, &linev, 1 | 8);
if(ret <= 0)
@ -1211,6 +1214,9 @@ ex:;
strcat(xorriso->info_text, "\n");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 1);
}
sprintf(xorriso->info_text, "Command file end: ");
Text_shellsafe(adr, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
if(ret!=1)
return(ret);
return(!was_failure);

View File

@ -452,19 +452,24 @@ int Xorriso_option_unregister_filter(struct XorrisO *xorriso, char *name,
/* Option -report_about */
int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
int Xorriso_option_report_about(struct XorrisO *xorriso, char *in_severity,
int flag)
{
int ret, sev;
char severity[20], *official;
Xorriso__to_upper(in_severity, severity, (int) sizeof(severity), 0);
ret= Xorriso__text_to_sev(severity, &sev, 0);
if(ret<=0) {
sprintf(xorriso->info_text, "-report_about: Not a known severity name : ");
Text_shellsafe(severity, xorriso->info_text, 1);
Text_shellsafe(in_severity, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
return(ret);
}
if(Sfile_str(xorriso->report_about_text,severity,0)<=0)
ret= Xorriso__sev_to_text(sev, &official, 0);
if(ret <= 0)
official= severity;
if(Sfile_str(xorriso->report_about_text, official, 0) <= 0)
return(-1);
xorriso->report_about_severity= sev;
return(1);
@ -472,26 +477,31 @@ int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
/* Option -return_with */
int Xorriso_option_return_with(struct XorrisO *xorriso, char *severity,
int Xorriso_option_return_with(struct XorrisO *xorriso, char *in_severity,
int exit_value, int flag)
{
int ret, sev;
char severity[20], *official;
Xorriso__to_upper(in_severity, severity, (int) sizeof(severity), 0);
ret= Xorriso__text_to_sev(severity, &sev, 0);
if(ret<=0) {
sprintf(xorriso->info_text,
"-return_with: Not a known severity name : ");
Text_shellsafe(severity, xorriso->info_text, 1);
Text_shellsafe(in_severity, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(ret);
}
ret= Xorriso__sev_to_text(sev, &official, 0);
if(ret <= 0)
official= severity;
if(exit_value && (exit_value < 32 || exit_value > 63)) {
sprintf(xorriso->info_text,
"-return_with: Not an allowed exit_value. Use 0, or 32 to 63.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(Sfile_str(xorriso->return_with_text,severity,0)<=0)
if(Sfile_str(xorriso->return_with_text, official, 0) <= 0)
return(-1);
xorriso->return_with_severity= sev;
xorriso->return_with_value= exit_value;

View File

@ -447,7 +447,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
int ret, was_dashed= 0, i, cmd_data_size= 2 * SfileadrL;
char *cmd, *cmd_data= NULL;
static char arg0_commands[][40]= {
"ban_stdio_write","close_filter_list","commit","devices","end",
"ban_stdio_write","close_filter_list","commit",
"device_links","devices","end",
"for_backup", "help",
"list_formats","list_speeds",
"no_rc","print_size","pvd_info","pwd","pwdi","pwdx",
@ -844,6 +845,9 @@ next_command:;
(*idx)++;
ret= Xorriso_option_dev(xorriso, arg1, 3);
} else if(strcmp(cmd,"device_links")==0) {
ret= Xorriso_option_devices(xorriso, 1);
} else if(strcmp(cmd,"devices")==0) {
ret= Xorriso_option_devices(xorriso, 0);

View File

@ -249,7 +249,7 @@ int Xorriso_restore_is_identical(struct XorrisO *xorriso, void *in_node,
int Xorriso_restore_properties(struct XorrisO *xorriso, char *disk_path,
IsoNode *node, int flag)
{
int ret, is_dir= 0;
int ret, is_dir= 0, errno_copy= 0;
mode_t mode;
uid_t uid;
gid_t gid;
@ -285,10 +285,17 @@ int Xorriso_restore_properties(struct XorrisO *xorriso, char *disk_path,
ret= iso_local_set_attrs(disk_path, num_attrs, names, value_lengths,
values, 0);
if(ret < 0) {
errno_copy= errno;
if(ret != (int) ISO_AAIP_NO_SET_LOCAL)
errno_copy= 0;
Xorriso_report_iso_error(xorriso, "", ret,
"Error on iso_local_set_attrs",
0, "FAILURE", 1 | ((ret == -1)<<2) );
sprintf(xorriso->info_text,
"Cannot change ACL or xattr of disk file ");
Text_shellsafe(disk_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno_copy,
"FAILURE",0);
{ret= 0; goto ex;}
}
}

View File

@ -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.1.1, Jul 03, 2011"
.TH XORRISO 1 "Version 1.1.4, Aug 7, 2011"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -305,7 +305,7 @@ On OpenSolaris:
.br
Get a list of accessible drives by command
.br
\-devices
\-device_links
.br
It might be necessary to do this as
\fBsuperuser\fR
@ -2057,16 +2057,20 @@ MMC format codes are manifold. Most important are:
Smaller format size with DVD\-RAM, BD\-RE, or BD\-R means more reserve space.
.TP
\fB\-list_speeds\fR
Put out a list of speed values as reported by the output drive for
the loaded media. At the end of the list, "Write speed L" and "Write speed H"
are the best guesses for lower and upper speed limit.
.br
"Write speed l" and "Write speed h" may appear only with CD
and eventually override the list of other speed offers.
Put out a list of speed values as reported by the output drive with
the loaded media. This does not necessarily mean that the media is writable
or that these speeds are actually achievable. Especially the
lists reported with empty drive or with ROM media obviously advertise
speeds for other media.
.br
It is not mandatory to use speed values out of the listed range.
The drive is supposed to choose a safe speed that is as near to the desired
speed as possible.
.br
At the end of the list, "Write speed L" and "Write speed H"
are the best guesses for lower and upper speed limit.
"Write speed l" and "Write speed h" may appear only with CD
and eventually override the list of other speed offers.
.TP
\fB\-close_damaged\fR "as_needed"|"force"
Try to close the upcomming track and session if the drive reported the media
@ -3063,6 +3067,17 @@ who is able to see all drives.
.br
Drives which are occupied by other processes get not shown.
.TP
\fB\-device_links\fR
Like \-devices, but presenting the drives with addresses of symbolic links
which point to the actual device files.
.br
Modern GNU/Linux systems may shuffle drive addresses from boot to boot.
The udev daemon is supposed to create links which always point to the
same drive, regardless of its system address.
The command \-device_links shows the addresses of such links if they begin
by "/dev/dvd" or "/dev/cd".
Precedence is: "dvdrw", "cdrw", "dvd", "cdrom", "cd".
.TP
\fB\-toc\fR
.br
Show media specific table of content. This is the media session history,
@ -3425,6 +3440,10 @@ sector_map= and processes this virtual outcome.
\fBwhat="disc"\fR
scans the payload range of a media without respecting track gaps.
.br
\fBwhat="image"\fR
similar to "disc", but restricts scanning to the range of the ISO 9660 image,
if present.
.br
\fBmin_lba=limit\fR
omits all blocks with addresses lower than limit.
.br
@ -4122,13 +4141,13 @@ which shall be able to use the drives with \fBxorriso\fR.
On Solaris use pfexec. Consider to restrict privileges of \fBxorriso\fR to
"base,sys_devices" and to give r\-permission to user or group.
.br
$ xorriso \-devices
$ xorriso \-device_links
.br
0 \-dev '/dev/sr0' rwrw\-\- : '_NEC ' 'DVD_RW ND\-4570A'
1 \-dev '/dev/cdrom1' rwrw\-\- : 'TSSTcorp' 'DVD\-ROM SH\-D162C
.br
1 \-dev '/dev/sr1' rwrw\-\- : 'HL\-DT\-ST' 'DVDRAM GSA\-4082B'
1 \-dev '/dev/cdrw' rwrw\-\- : 'TSSTcorp' 'CDDVDW SH\-S223B'
.br
2 \-dev '/dev/sr2' rwrw\-\- : 'PHILIPS ' 'SPD3300L'
2 \-dev '/dev/cdrw3' rwrw\-\- : 'HL\-DT\-ST' 'BDDVDRW_GGC\-H20L'
.SS
.B Blank media and compose a new ISO image as batch run
Aquire drive /dev/sr2, make media ready for writing a new image,

View File

@ -61,7 +61,7 @@ struct XorrisO;
*/
#define Xorriso_header_version_majoR 1
#define Xorriso_header_version_minoR 1
#define Xorriso_header_version_micrO 1
#define Xorriso_header_version_micrO 4
/** Eventually something like ".pl01" to indicate a bug fix. Normally empty.
@ -790,7 +790,8 @@ int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
int Xorriso_option_dev(struct XorrisO *xorriso, char *adr, int flag);
/* Option -devices */
/* @return <=0 error , 1 success, 2 revoked by -reassure
/* @param flag bit0= perform -device_links rather than -devices
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_devices(struct XorrisO *xorriso, int flag);

View File

@ -8,14 +8,14 @@ END-INFO-DIR-ENTRY
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
images with Rock Ridge extensions.
Copyright (C) 2007 - 2010 Thomas Schmitt
Copyright (C) 2007 - 2011 Thomas Schmitt
Permission is granted to distrubute this text freely.

File: xorriso.info, Node: Top, Next: Overview, Up: (dir)
GNU xorriso 1.1.1
GNU xorriso 1.1.4
*****************
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
@ -274,7 +274,7 @@ On FreeBSD the device files have names like
On OpenSolaris:
-dev /dev/rdsk/c4t0d0s2
Get a list of accessible drives by command
-devices
-device_links
It might be necessary to do this as *superuser* in order to see all
drives and to then allow rw-access for the intended users. Consider to
bundle the authorized users in a group like old "floppy".
@ -1832,15 +1832,18 @@ File: xorriso.info, Node: Writing, Next: SetWrite, Prev: Filter, Up: Options
reserve space.
-list_speeds
Put out a list of speed values as reported by the output drive for
the loaded media. At the end of the list, "Write speed L" and
"Write speed H" are the best guesses for lower and upper speed
limit.
"Write speed l" and "Write speed h" may appear only with CD and
eventually override the list of other speed offers.
Put out a list of speed values as reported by the output drive with
the loaded media. This does not necessarily mean that the media is
writable or that these speeds are actually achievable. Especially
the lists reported with empty drive or with ROM media obviously
advertise speeds for other media.
It is not mandatory to use speed values out of the listed range.
The drive is supposed to choose a safe speed that is as near to
the desired speed as possible.
At the end of the list, "Write speed L" and "Write speed H" are
the best guesses for lower and upper speed limit. "Write speed l"
and "Write speed h" may appear only with CD and eventually
override the list of other speed offers.
-close_damaged "as_needed"|"force"
Try to close the upcomming track and session if the drive reported
@ -2687,6 +2690,16 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Opti
*superuser* who is able to see all drives.
Drives which are occupied by other processes get not shown.
-device_links
Like -devices, but presenting the drives with addresses of
symbolic links which point to the actual device files.
Modern GNU/Linux systems may shuffle drive addresses from boot to
boot. The udev daemon is supposed to create links which always
point to the same drive, regardless of its system address. The
command -device_links shows the addresses of such links if they
begin by "/dev/dvd" or "/dev/cd". Precedence is: "dvdrw", "cdrw",
"dvd", "cdrom", "cd".
-toc
Show media specific table of content. This is the media session
history, not the ISO image directory tree.
@ -3008,6 +3021,9 @@ transmission errors.
what="disc"
scans the payload range of a media without respecting track
gaps.
what="image"
similar to "disc", but restricts scanning to the range of the
ISO 9660 image, if present.
min_lba=limit
omits all blocks with addresses lower than limit.
max_lba=limit
@ -3621,10 +3637,10 @@ groups which shall be able to use the drives with `xorriso'. On
Solaris use pfexec. Consider to restrict privileges of `xorriso' to
"base,sys_devices" and to give r-permission to user or group.
$ xorriso -devices
0 -dev '/dev/sr0' rwrw-- : '_NEC ' 'DVD_RW ND-4570A'
1 -dev '/dev/sr1' rwrw-- : 'HL-DT-ST' 'DVDRAM GSA-4082B'
2 -dev '/dev/sr2' rwrw-- : 'PHILIPS ' 'SPD3300L'
$ xorriso -device_links
1 -dev '/dev/cdrom1' rwrw-- : 'TSSTcorp' 'DVD-ROM SH-D162C
1 -dev '/dev/cdrw' rwrw-- : 'TSSTcorp' 'CDDVDW SH-S223B'
2 -dev '/dev/cdrw3' rwrw-- : 'HL-DT-ST' 'BDDVDRW_GGC-H20L'

File: xorriso.info, Node: ExCreate, Next: ExDialog, Prev: ExDevices, Up: Examples
@ -4201,8 +4217,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 16)
* -charset sets input/output character set: Charset. (line 43)
* -check_md5 verifies file checksum: Verify. (line 144)
* -check_md5_r verifies file tree checksums: Verify. (line 160)
* -check_md5 verifies file checksum: Verify. (line 147)
* -check_md5_r verifies file tree checksums: Verify. (line 163)
* -check_media reads media block by block: Verify. (line 21)
* -check_media_defaults sets -check_media options: Verify. (line 40)
* -chgrp sets group in ISO image: Manip. (line 50)
@ -4213,7 +4229,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 171)
* -close controls media closing: SetWrite. (line 262)
* -close_damaged closes damaged track and session: Writing. (line 133)
* -close_damaged closes damaged track and session: Writing. (line 136)
* -close_filter_list bans filter registration: Filter. (line 52)
* -commit writes pending ISO image: Writing. (line 13)
* -commit_eject writes and ejects: Writing. (line 40)
@ -4229,6 +4245,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -cpx copies files to disk: Restore. (line 88)
* -cut_out inserts piece of data file: Insert. (line 126)
* -dev aquires one drive for input and output: AqDrive. (line 12)
* -device_links gets list of drives: Inquiry. (line 18)
* -devices gets list of drives: Inquiry. (line 7)
* -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 189)
@ -4277,7 +4294,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -joliet enables production of Joliet tree: SetWrite. (line 10)
* -list_delimiter replaces '--': Scripting. (line 42)
* -list_formats lists available formats: Writing. (line 110)
* -list_profiles lists supported media: Writing. (line 147)
* -list_profiles lists supported media: Writing. (line 150)
* -list_speeds lists available write speeds: Writing. (line 122)
* -load addresses a particular session as input: Loading. (line 11)
* -local_charset sets terminal character set: Charset. (line 47)
@ -4297,8 +4314,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -md5 controls handling of MD5 sums: Loading. (line 155)
* -mkdir creates ISO directory: Insert. (line 166)
* -mount issues mount command for ISO session: Restore. (line 122)
* -mount_cmd composes mount command line: Inquiry. (line 31)
* -mount_cmd controls mount command: Inquiry. (line 47)
* -mount_cmd composes mount command line: Inquiry. (line 41)
* -mount_cmd controls mount command: Inquiry. (line 57)
* -mv renames file in ISO image: Manip. (line 35)
* -no_rc disables startup files: Scripting. (line 7)
* -not_leaf sets exclusion pattern: SetInsert. (line 62)
@ -4321,12 +4338,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -print prints result text line: Scripting. (line 81)
* -print_info prints message text line: Scripting. (line 84)
* -print_mark prints synchronizing text line: Scripting. (line 87)
* -print_size predicts image size: Inquiry. (line 69)
* -print_size predicts image size: Inquiry. (line 79)
* -prog sets program name: Frontend. (line 30)
* -prog_help prints help text: Frontend. (line 33)
* -prompt prompts for enter key: Scripting. (line 92)
* -publisher sets publisher id: SetWrite. (line 113)
* -pvd_info shows image id strings: Inquiry. (line 82)
* -pvd_info shows image id strings: Inquiry. (line 92)
* -pwd tells working directory in ISO: Navigate. (line 20)
* -pwdx tells working directory on disk: Navigate. (line 23)
* -quoted_not_list sets exclusions: SetInsert. (line 72)
@ -4345,7 +4362,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 168)
* -scsi_log reports SCSI commands: Scripting. (line 125)
* -session_log logs written sessions: Scripting. (line 116)
* -session_string composes session info line: Inquiry. (line 56)
* -session_string composes session info line: Inquiry. (line 66)
* -set_filter applies filter to file: Filter. (line 60)
* -set_filter_r applies filter to file tree: Filter. (line 85)
* -setfacl sets ACL in ISO image: Manip. (line 73)
@ -4365,9 +4382,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -stdio_sync controls stdio buffer: SetWrite. (line 245)
* -stream_recording controls defect management: SetWrite. (line 226)
* -system_id sets system id: SetWrite. (line 128)
* -tell_media_space reports free space: Inquiry. (line 78)
* -tell_media_space reports free space: Inquiry. (line 88)
* -temp_mem_limit curbs memory consumption: Scripting. (line 74)
* -toc shows list of sessions: Inquiry. (line 18)
* -toc shows list of sessions: Inquiry. (line 28)
* -uid sets global ownership: SetWrite. (line 191)
* -update inserts path if different: Insert. (line 99)
* -update_l inserts paths if different: Insert. (line 121)
@ -4419,7 +4436,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Create, new ISO image, _definiton: Methods. (line 6)
* Cylinder alignment, _definiton: Bootable. (line 167)
* Cylinder size, _definiton: Bootable. (line 156)
* Damaged track and session, close, -close_damaged: Writing. (line 133)
* Damaged track and session, close, -close_damaged: Writing. (line 136)
* Delete, from ISO image, -rm: Manip. (line 21)
* Delete, from ISO image, -rm_r: Manip. (line 28)
* Delete, ISO directory, -rmdir: Manip. (line 32)
@ -4441,8 +4458,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, for input and output, -dev: AqDrive. (line 12)
* Drive, for input, -indev: AqDrive. (line 24)
* Drive, for output, -outdev: AqDrive. (line 31)
* Drive, get drive list, -device_links: Inquiry. (line 18)
* Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, list supported media, -list_profiles: Writing. (line 147)
* Drive, list supported media, -list_profiles: Writing. (line 150)
* Drive, reduce activity, -calm_drive: Loading. (line 235)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 125)
* Drive, write and eject, -commit_eject: Writing. (line 40)
@ -4481,7 +4499,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, set volume id, -volid: SetWrite. (line 89)
* Image, set volume set id, -volset_id: SetWrite. (line 108)
* Image, set volume timestamp, -volume_date: SetWrite. (line 135)
* Image, show id strings, -pvd_info: Inquiry. (line 82)
* Image, show id strings, -pvd_info: Inquiry. (line 92)
* Insert, enable overwriting, -overwrite: SetInsert. (line 127)
* Insert, file exclusion absolute, -not_paths: SetInsert. (line 55)
* Insert, file exclusion from file, -not_list: SetInsert. (line 67)
@ -4592,17 +4610,17 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Rock Ridge, _definiton: Extras. (line 6)
* Session, _definition: Model. (line 6)
* Session, altered start address, -displacement: Loading. (line 35)
* Session, info string, -session_string: Inquiry. (line 56)
* Session, info string, -session_string: Inquiry. (line 66)
* Session, issue mount command, -mount: Restore. (line 122)
* Session, log when written, -session_log: Scripting. (line 116)
* Session, mount command line, -mount_cmd: Inquiry. (line 31)
* Session, mount parameters, -mount_opts: Inquiry. (line 47)
* Session, mount command line, -mount_cmd: Inquiry. (line 41)
* Session, mount parameters, -mount_opts: Inquiry. (line 57)
* Session, select as input, -load: Loading. (line 11)
* SUN Disk Label, production: Bootable. (line 187)
* SUN SPARC boot images, activation: Bootable. (line 220)
* System area, _definiton: Bootable. (line 121)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 210)
* Table-of-content, show, -toc: Inquiry. (line 18)
* Table-of-content, show, -toc: Inquiry. (line 28)
* Timestamps, set in ISO image, -alter_date: Manip. (line 147)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 167)
* Tree, disk, traverse, -findx: Navigate. (line 106)
@ -4611,8 +4629,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, compare ISO and disk file, -compare: Navigate. (line 140)
* Verify, compare ISO and disk tree, -compare_r: Navigate. (line 153)
* Verify, compare ISO and disk, -compare_l: Navigate. (line 158)
* Verify, file checksum, -check_md5: Verify. (line 144)
* Verify, file tree checksums, -check_md5_r: Verify. (line 160)
* Verify, file checksum, -check_md5: Verify. (line 147)
* Verify, file tree checksums, -check_md5_r: Verify. (line 163)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size, -dvd_obs: SetWrite. (line 238)
* Write, bootability, -boot_image: Bootable. (line 26)
@ -4622,12 +4640,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Write, defect management, -stream_recording: SetWrite. (line 226)
* Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 255)
* Write, free space, -tell_media_space: Inquiry. (line 78)
* Write, free space, -tell_media_space: Inquiry. (line 88)
* Write, log problematic disk files, -errfile_log: Scripting. (line 96)
* Write, log written sessions, -session_log: Scripting. (line 116)
* Write, padding image, -padding: SetWrite. (line 268)
* Write, pending ISO image, -commit: Writing. (line 13)
* Write, predict image size, -print_size: Inquiry. (line 69)
* Write, predict image size, -print_size: Inquiry. (line 79)
* Write, set speed, -speed: SetWrite. (line 211)
* Write, simulation, -dummy: SetWrite. (line 251)
* xattr, _definiton: Extras. (line 52)
@ -4647,53 +4665,53 @@ Node: Model3264
Node: Media6148
Node: Methods8814
Node: Drives11363
Node: Extras14671
Node: Processing18136
Node: Dialog21606
Node: Options23269
Node: AqDrive24877
Node: Loading27914
Node: Insert42181
Node: SetInsert51886
Node: Manip60454
Node: CmdFind69181
Node: Filter80443
Node: Writing84781
Node: SetWrite92544
Node: Bootable106590
Node: Jigdo119808
Node: Charset124054
Node: Exception126813
Node: DialogCtl132926
Node: Inquiry135513
Node: Navigate139841
Node: Verify147809
Node: Restore156347
Node: Emulation163007
Node: Scripting172810
Node: Frontend178938
Node: Examples180237
Node: ExDevices181408
Node: ExCreate182046
Node: ExDialog183320
Node: ExGrowing184582
Node: ExModifying185384
Node: ExBootable185885
Node: ExCharset186434
Node: ExPseudo187254
Node: ExCdrecord188152
Node: ExMkisofs188467
Node: ExGrowisofs189805
Node: ExException190940
Node: ExTime191394
Node: ExIncBackup191853
Node: ExRestore195777
Node: ExRecovery196735
Node: Files197303
Node: Seealso198601
Node: Bugreport199189
Node: Legal199770
Node: CommandIdx200700
Node: ConceptIdx215514
Node: Extras14676
Node: Processing18141
Node: Dialog21611
Node: Options23274
Node: AqDrive24882
Node: Loading27919
Node: Insert42186
Node: SetInsert51891
Node: Manip60459
Node: CmdFind69186
Node: Filter80448
Node: Writing84786
Node: SetWrite92779
Node: Bootable106825
Node: Jigdo120043
Node: Charset124289
Node: Exception127048
Node: DialogCtl133161
Node: Inquiry135748
Node: Navigate140592
Node: Verify148560
Node: Restore157225
Node: Emulation163885
Node: Scripting173688
Node: Frontend179816
Node: Examples181115
Node: ExDevices182286
Node: ExCreate182945
Node: ExDialog184219
Node: ExGrowing185481
Node: ExModifying186283
Node: ExBootable186784
Node: ExCharset187333
Node: ExPseudo188153
Node: ExCdrecord189051
Node: ExMkisofs189366
Node: ExGrowisofs190704
Node: ExException191839
Node: ExTime192293
Node: ExIncBackup192752
Node: ExRestore196676
Node: ExRecovery197634
Node: Files198202
Node: Seealso199500
Node: Bugreport200088
Node: Legal200669
Node: CommandIdx201599
Node: ConceptIdx216486

End Tag Table

View File

@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename xorriso.info
@settitle GNU xorriso 1.1.1
@settitle GNU xorriso 1.1.4
@c %**end of header
@c
@c man-ignore-lines begin
@ -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.1.1, Jul 03, 2011"
@c man .TH XORRISO 1 "Version 1.1.4, Aug 7, 2011"
@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 - 2010 Thomas Schmitt
Copyright @copyright{} 2007 - 2011 Thomas Schmitt
@quotation
Permission is granted to distrubute this text freely.
@ -77,7 +77,7 @@ Permission is granted to distrubute this text freely.
@end copying
@c man-ignore-lines end
@titlepage
@title Manual of GNU xorriso 1.1.1
@title Manual of GNU xorriso 1.1.4
@author Thomas Schmitt
@page
@vskip 0pt plus 1filll
@ -86,7 +86,7 @@ Permission is granted to distrubute this text freely.
@contents
@ifnottex
@node Top
@top GNU xorriso 1.1.1
@top GNU xorriso 1.1.4
@c man-ignore-lines 1
@c man .SH NAME
@ -431,7 +431,7 @@ On OpenSolaris:
@*
Get a list of accessible drives by command
@*
-devices
-device_links
@*
It might be necessary to do this as
@strong{superuser}
@ -2469,16 +2469,20 @@ Smaller format size with DVD-RAM, BD-RE, or BD-R means more reserve space.
@item -list_speeds
@kindex -list_speeds lists available write speeds
@cindex Media, list write speeds, -list_speeds
Put out a list of speed values as reported by the output drive for
the loaded media. At the end of the list, "Write speed L" and "Write speed H"
are the best guesses for lower and upper speed limit.
@*
"Write speed l" and "Write speed h" may appear only with CD
and eventually override the list of other speed offers.
Put out a list of speed values as reported by the output drive with
the loaded media. This does not necessarily mean that the media is writable
or that these speeds are actually achievable. Especially the
lists reported with empty drive or with ROM media obviously advertise
speeds for other media.
@*
It is not mandatory to use speed values out of the listed range.
The drive is supposed to choose a safe speed that is as near to the desired
speed as possible.
@*
At the end of the list, "Write speed L" and "Write speed H"
are the best guesses for lower and upper speed limit.
"Write speed l" and "Write speed h" may appear only with CD
and eventually override the list of other speed offers.
@c man .TP
@item -close_damaged "as_needed"|"force"
@kindex -close_damaged closes damaged track and session
@ -3608,6 +3612,19 @@ who is able to see all drives.
@*
Drives which are occupied by other processes get not shown.
@c man .TP
@item -device_links
@kindex -device_links gets list of drives
@cindex Drive, get drive list, -device_links
Like -devices, but presenting the drives with addresses of symbolic links
which point to the actual device files.
@*
Modern GNU/Linux systems may shuffle drive addresses from boot to boot.
The udev daemon is supposed to create links which always point to the
same drive, regardless of its system address.
The command -device_links shows the addresses of such links if they begin
by "/dev/dvd" or "/dev/cd".
Precedence is: "dvdrw", "cdrw", "dvd", "cdrom", "cd".
@c man .TP
@item -toc
@*
@kindex -toc shows list of sessions
@ -4055,6 +4072,10 @@ sector_map= and processes this virtual outcome.
@item what="disc"
scans the payload range of a media without respecting track gaps.
@*
@item what="image"
similar to "disc", but restricts scanning to the range of the ISO 9660 image,
if present.
@*
@item min_lba=limit
omits all blocks with addresses lower than limit.
@*
@ -4890,13 +4911,13 @@ On Solaris use pfexec. Consider to restrict privileges of @command{xorriso} to
"base,sys_devices" and to give r-permission to user or group.
@*
@sp 1
$ xorriso -devices
$ xorriso -device_links
@*
0 -dev '/dev/sr0' rwrw@minus{}@minus{} : '_NEC ' 'DVD_RW ND-4570A'
1 -dev '/dev/cdrom1' rwrw@minus{}@minus{} : 'TSSTcorp' 'DVD-ROM SH-D162C
@*
1 -dev '/dev/sr1' rwrw@minus{}@minus{} : 'HL-DT-ST' 'DVDRAM GSA-4082B'
1 -dev '/dev/cdrw' rwrw@minus{}@minus{} : 'TSSTcorp' 'CDDVDW SH-S223B'
@*
2 -dev '/dev/sr2' rwrw@minus{}@minus{} : 'PHILIPS ' 'SPD3300L'
2 -dev '/dev/cdrw3' rwrw@minus{}@minus{} : 'HL-DT-ST' 'BDDVDRW_GGC-H20L'
@c man .SS
@c man .B Blank media and compose a new ISO image as batch run
@node ExCreate, ExDialog, ExDevices, Examples

View File

@ -446,21 +446,21 @@ This can bring effective read performance near to the raw media reading speed.
<P>
<DL>
<DT><H3>Download as source code (see README):</H3></DT>
<DD><A HREF="xorriso-1.1.0.pl01.tar.gz">xorriso-1.1.0.pl01.tar.gz</A>
(1920 KB).
<DD><A HREF="xorriso-1.1.4.tar.gz">xorriso-1.1.4.tar.gz</A>
(1930 KB).
</DD>
<DD>(Released 20 Jun 2011)</DD>
<DD><A HREF="xorriso-1.1.0.pl01.tar.gz.sig">xorriso-1.1.0.pl01.tar.gz.sig</A></DD>
<DD>(Released 7 Aug 2011)</DD>
<DD><A HREF="xorriso-1.1.4.tar.gz.sig">xorriso-1.1.4.tar.gz.sig</A></DD>
<DD>
(detached GPG signature for verification by
<KBD>gpg --verify xorriso-1.1.0.pl01.tar.gz.sig xorriso-1.1.0.pl01.tar.gz</KBD>
<KBD>gpg --verify xorriso-1.1.4.tar.gz.sig xorriso-1.1.4.tar.gz</KBD>
<BR>
after <KBD>gpg --keyserver keys.gnupg.net --recv-keys ABC0A854</KBD>).
</DD>
<DD>
Also on <A HREF="http://www.gnu.org/prep/ftp.html">
mirrors of ftp://ftp.gnu.org/gnu/ </A>
as xorriso/xorriso-1.1.0.pl01.tar.gz
as xorriso/xorriso-1.1.4.tar.gz
</DD>
</DL>
</DD>
@ -495,50 +495,34 @@ describes the mkisofs emulation</DD>
<HR>
<P>
Bug fixes towards xorriso-1.0.8:
Bug fixes towards xorriso-1.1.2:
<UL>
<LI>
-mount_opts shared worked only with -osirrox o_excl_off
</LI>
<LI>
Production of MIPS bootable images caused SIGSEGV
</LI>
<LI>
xorriso command -add_plainly "any" did not add all files to the image
</LI>
<LI>
The attempt to blank already blanked DVD-RW was not gracefully blocked
</LI>
<LI>
-as mkisofs -isohybrid-mbr without -no-pad was not cylinder aligned
</LI>
<LI>
-format as_needed for DVD-RW could fail on Pioneer drives
</LI>
<LI>xorriso native mode on some drives wrote unreadble ISO images to CD</LI>
<LI>-assert_volid did not work. Regression since version 1.1.0.</LI>
<LI>-acl or -xattr worked with -extract only on Linux and FreeBSD</LI>
<!--
<LI>- none -</LI>
-->
</UL>
</P>
<!--
<P>
Bug fixes in xorriso-1.1.0.pl01 towards xorriso-1.1.0:
<UL>
<LI>
Due to a bug in libburn-1.1.0,
GNU xorriso-1.1.0 compiled only on GNU/Linux, FreeBSD, and Solaris,
but not on other systems
</LI>
</UL>
</P>
<!--
-->
<P>
Enhancements towards previous stable version xorriso-1.0.8:
Enhancements towards previous stable version xorriso-1.1.2:
<UL>
<LI>New option -signal_handling</LI>
<LI>New option -close_damaged</LI>
<LI>
New option -device_links
</LI>
<!--
<LI>- none -</LI>
-->
@ -561,16 +545,16 @@ libburnia project and the legal intentions of
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
</DT>
<DD>&nbsp;</DD>
<DT>libburn-1.1.0</DT>
<DT>libburn-1.1.4</DT>
<DD>reads and writes data from and to CD, DVD, BD.</DD>
<DD>(founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)</DD>
<DT>libisofs-1.1.0</DT>
<DT>libisofs-1.1.4</DT>
<DD>operates on ISO 9660 filesystem images.</DD>
<DD>(By Vreixo Formoso, Mario Danic and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DT>libisoburn-1.1.0</DT>
<DT>libisoburn-1.1.4</DT>
<DD>coordinates libburn and libisofs, emulates multi-session where needed,
and hosts the original source code of program xorriso.</DD>
<DD>It provides the complete functionality of xorriso via
@ -591,28 +575,18 @@ cdrecord and mkisofs.</DT>
<P>
<DL>
<DT><H3>Development snapshot, version 1.1.1 :</H3></DT>
<DD>Bug fixes towards xorriso-1.1.0:
<DT><H3>Development snapshot, version 1.1.5 :</H3></DT>
<DD>Bug fixes towards xorriso-1.1.4:
<UL>
<LI>-update_r scheduled non-existing files for hardlink update</LI>
<LI>
Since 1.0.6: Unreadable image produced by: xorrisofs ... >image.iso
<BR>
(not by -o image.iso, or by pipe to consumer process)
</LI>
<!--
<LI>- none yet -</LI>
<!--
-->
</UL>
</DD>
<DD>Enhancements towards stable version 1.1.0:
<DD>Enhancements towards stable version 1.1.4:
<UL>
<LI>New option -list_speeds</LI>
<LI>
Enabled extraction of the boot catalog file to disk filesystem
</LI>
<!--
<LI>- none yet -</LI>
<!--
-->
</UL>
@ -620,12 +594,12 @@ Enabled extraction of the boot catalog file to disk filesystem
<DD>&nbsp;</DD>
<DD><A HREF="README_xorriso_devel">README 1.1.1</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.1.1 -help</A></DD>
<DD><A HREF="xorrisofs_help_devel">xorriso-1.1.1 -as mkisofs -help</A></DD>
<DD><A HREF="xorrecord_help_devel">xorriso-1.1.1 -as cdrecord -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.1.1)</A></DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs (as of 1.1.1)</A></DD>
<DD><A HREF="README_xorriso_devel">README 1.1.5</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.1.5 -help</A></DD>
<DD><A HREF="xorrisofs_help_devel">xorriso-1.1.5 -as mkisofs -help</A></DD>
<DD><A HREF="xorrecord_help_devel">xorriso-1.1.5 -as cdrecord -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.1.5)</A></DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs (as of 1.1.5)</A></DD>
<DD>&nbsp;</DD>
<DT>If you want to distribute development versions of xorriso, then use
this tarball which produces static linking between xorriso and the
@ -635,8 +609,8 @@ libburnia libraries.
installation see README)
</DD>
<DD>
<A HREF="xorriso-1.1.1.tar.gz">xorriso-1.1.1.tar.gz</A>
(1920 KB).
<A HREF="xorriso-1.1.5.tar.gz">xorriso-1.1.5.tar.gz</A>
(1930 KB).
</DD>
<DT>A dynamically linked development version of xorriso can be obtained
from repositories of

View File

@ -111,7 +111,7 @@
*/
#define Xorriso_req_majoR 1
#define Xorriso_req_minoR 1
#define Xorriso_req_micrO 1
#define Xorriso_req_micrO 4
static void yell_xorriso()

View File

@ -1 +1 @@
#define Xorriso_timestamP "2011.07.07.113930"
#define Xorriso_timestamP "2011.08.08.070301"

View File

@ -19,7 +19,7 @@
*/
#define xorriso_libisoburn_req_major 1
#define xorriso_libisoburn_req_minor 1
#define xorriso_libisoburn_req_micro 1
#define xorriso_libisoburn_req_micro 4
struct SpotlisT; /* List of intervals with different read qualities */
@ -55,6 +55,8 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
int Xorriso__text_to_sev(char *severity_name, int *severity_number,int flag);
int Xorriso__sev_to_text(int severity, char **severity_name, int flag);
/* @param flag bit0=report about output drive
bit1=short report form
bit2=do not try to read ISO heads

View File

@ -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.1.1, Jun 18, 2011"
.TH XORRISOFS 1 "Version 1.1.4, Aug 7, 2011"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -427,6 +427,7 @@ This all violates ISO 9660 specs.
.TP
\fB\-untranslated-filenames\fR
Alias of \-U.
.TP
\fB\-untranslated_name_len\fR number
Allow ISO file names up to the given number of characters
without any character conversion. The maximum number is 96.

View File

@ -14,7 +14,7 @@ END-INFO-DIR-ENTRY

File: xorrisofs.info, Node: Top, Next: Overview, Up: (dir)
xorrisofs 1.1.1
xorrisofs 1.1.4
***************
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso

View File

@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename xorrisofs.info
@settitle GNU xorrisofs 1.1.1
@settitle GNU xorrisofs 1.1.4
@c %**end of header
@c
@c man-ignore-lines begin
@ -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.1.1, Jun 18, 2011"
@c man .TH XORRISOFS 1 "Version 1.1.4, Aug 7, 2011"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -76,7 +76,7 @@ Permission is granted to distrubute this text freely.
@end copying
@c man-ignore-lines end
@titlepage
@title Manual of GNU xorriso personality xorrisofs 1.1.1
@title Manual of GNU xorriso personality xorrisofs 1.1.4
@author Thomas Schmitt
@page
@vskip 0pt plus 1filll
@ -85,7 +85,7 @@ Permission is granted to distrubute this text freely.
@contents
@ifnottex
@node Top
@top xorrisofs 1.1.1
@top xorrisofs 1.1.4
@c man-ignore-lines 1
@c man .SH NAME
@ -633,6 +633,7 @@ This all violates ISO 9660 specs.
@item -untranslated-filenames
@kindex -untranslated-filenames very relaxed filename rules
Alias of -U.
@c man .TP
@item -untranslated_name_len number
@kindex -untranslated_name_len untranslated file names
@cindex ISO file names, untranslated, -untranslated_name_len