1------------------------------------------------------------------------------ 2 libisofs 3------------------------------------------------------------------------------ 4 5Released under GNU General Public License version 2 or later. 6See COPYING file for details. 7 8Copyright (C) 2008 - 2018 Vreixo Formoso, 9 Mario Danic, 10 Vladimir Serbinenko, 11 Thomas Schmitt 12 13libisofs is part of the libburnia project (libburnia-project.org) 14------------------------------------------------------------------------------ 15 16 Download, Build and Installation 17 18libisofs code is maintained in a Bazaar repository at Launchpad 19(https://launchpad.net/libisofs/). You can download it with: 20 21$ bzr branch lp:libisofs/for-libisoburn 22 23Our build system is based on autotools. For preparing the build you will need 24autotools of at least version 1.7. If you have download the code from the 25repository, first of all you need to execute 26 27 ./autogen.sh 28 29on toplevel dir to execute autotools. 30 31Alternatively you may unpack a release tarball for which you do not need 32autotools installed. For the most recent release of libisofs see: 33 http://libburnia-project.org/wiki/Releases 34 35To build libisofs it should be sufficient to go into its toplevel directory 36and execute 37 38 ./configure --prefix=/usr 39 make 40 41To make the libraries accessible for running and developing applications 42 make install 43 44On GNU/Linux it will try to run program ldconfig with the library installation 45directory as only argument. Failure to do so will not abort installation. 46One may disable ldconfig by ./configure option --disable-ldconfig-at-install . 47 48By use of a version script, the libisofs.so library exposes no other function 49names but those of the API definitions in <libisofs/libisofs.h>. 50If -Wl,--version-script=... makes problems with the local compiler, then 51disable this encapsulation feature by 52 ./configure --disable-versioned-libs 53 make clean ; make 54 55The ./configure script checks for the availability of supporting libraries. 56If found, they will become mandatory for the emerging libisofs.so and all 57applications which use it. This dependency can be avoided by configure options 58 --disable-libacl avoid use of ACL functions like acl_to_text() 59 --disable-xattr avoid use of xattr functions like listxattr() 60 --disable-zlib avoid use of zlib functions like compress2() 61 --disable-libjte avoid use of libjte functions 62 63See INSTALL file for general options of ./configure. 64 65 66------------------------------------------------------------------------------ 67 68libisofs is a library to create an ISO-9660 filesystem, supports extensions 69like RockRidge or Joliet, and introduces an own extension AAIP. 70It is a full featured ISO-9660 editor which composes and changes the directory 71tree of an ISO image. This tree and its newly imported data file contents get 72then written as independent single-session image or as add-on session for the 73image from where the tree was originally loaded. 74 75Features: 76--------- 77 78- Image creation 79 - Creates ISO-9660 images from local files. 80 - Support for RockRidge and Joliet extensions. 81 - Support for ISO-9660:1999 (version 2). 82 - Support for El-Torito bootable images. Tested are: PC-BIOS and EFI. 83 - Support for multi-extent data files up to 400 GB (level 3). 84 - Full-featured edition of the image files, including: addition of new 85 files, removing of existent files, moving files, renaming files, 86 change file attributes (permissions, timestamps...) 87 - Optional recording per file of non-ISO 9660 features: 88 ACL, xattr, content MD5, hard link relations. 89 They do not hamper image readability by operating systems but can be 90 retrieved only via libisofs. 91 - Optional zisofs compression, gzip compression, external filter 92 processes. 93 - Several options to relax ISO-9660 constraints. 94 - Special options for images intended for distribution (suitable 95 default modes for files, hiding of real timestamps...). 96- Image reading 97 - Image tree and data heap can be verified by stream reading and 98 eventually recorded MD5 tags. 99 - Directory tree and file attributes of ISO 9660 session get loaded 100 into memory for editing or for extraction into local filesystem. 101 - File content can be read by applications. 102 - Automatic zisofs decompression. 103 - Optional application of gzip decompression or external filter 104 processes. 105 - Eventually recorded MD5 of data file can be obtained, MD5 of data 106 stream can be computed and compared. 107 - Helper functions for restoring ACL and/or xattr to the local 108 filesystem. 109- Multisession 110 - Support for growing an existing image on multi-session media. 111 - Support for "emulated multisession" on overwriteable media such as 112 DVD+RW, USB sticks, regular files. 113 - Support for blindly prepared add-on sessions (mkisofs style -M -C) 114 suitable for pipes which lead to an external burn program. 115- Image modification 116 - Creates a completely new image from files out of another image and 117 eventual editing operations. Suitable for any target medium. 118- Others 119 - Handling of different input and output charset. 120 - Good integration with libburn for image burning. 121 - Reliable, good handling of different kind of errors. 122 123Requirements: 124------------- 125 126- iconv() functions for character set conversion must be available. 127 Either implicitely as in Linux or by a separate library like libiconv 128 on FreeBSD. 129 130Know bugs: 131---------- 132 133Multisession and image growing can lead to undesired results in several cases: 134 135a) Images with unsupported features, such as: 136 - UDF. 137 - HSF/HFS+ or other Mac extensions. 138 - ECMA-119 Extended attributes. 139 - ... 140 In all these cases, the resulting new image (or new session) could lack some 141 features of the original image. Nevertheless, the ECMA-119 System Area with 142 an eventual Master Boot Record gets preserved by default. 143 In some cases libisofs will issue warning messages, or even refuse to grow 144 or modify the image. Others remain undetected. Images created with libisofs 145 do not have this problems. 146 147b) Bootable El-Torito images may have problems, that result in a new image that 148 is not bootable, or that boots from an outdated session. In some cases it 149 might be necessary to add boot info again in a new first session. 150 - There is no safe way to modify hidden boot images, as the size of the 151 boot image can't be figured out. 152 153c) Generated images could have different ECMA-119 low level names, due to 154 different way to mangle names, to new files added that force old files to 155 be renamed, to different relaxed contraints... This only affect the 156 ISO-9660 info, not the RR names, so it shouldn't be a problem in most 157 cases. If your app. relies on low level ISO-9660 names, you will need to 158 ensure all node names are valid ISO names (maybe together with some 159 relaxed contraints), otherwise libisofs might arbitrarily change the names. 160 161 162------------------------------------------------------------------------------ 163 164 This program is free software; you can redistribute it and/or modify 165 it under the terms of the GNU General Public License version 2 or later 166 as published by the Free Software Foundation. 167 168 This program is distributed in the hope that it will be useful, 169 but WITHOUT ANY WARRANTY; without even the implied warranty of 170 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 171 GNU General Public License for more details. 172 173 You should have received a copy of the GNU General Public License 174 along with this program; if not, write to the Free Software 175 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 176 177------------------------------------------------------------------------------ 178Clarification in my name and in the name of Mario Danic, upcoming copyright 179holders on toplevel of libburnia. To be fully in effect after the remaining 180other copyrighted code has been replaced by ours and by copyright-free 181contributions of our friends. 182 183Note: 184In the particular case of libisofs there is no foreign copyright involved. 185As of 2010 foreign copyright is only in component libburn. 186------------------------------------------------------------------------------ 187 188We will not raise any legal protest to dynamic linking of our libraries 189with applications that are not under GPL, as long as they fulfill 190the condition of offering the library source code used, whether 191altered or unaltered, under the GPLv2+, along with the application. 192Nevertheless, the safest legal position is not to link libburn with 193non-GPL compatible programs. 194 195We ask you politely to use our work in open source spirit 196and with the due reference to the entire open source community. 197 198If there should really arise the case where above clarification 199does not suffice to fulfill a clear and neat request in open source 200spirit that would otherwise be declined for mere formal reasons, 201only in that case we will duely consider to issue a special license 202covering only that special case. 203It is the open source idea of responsible freedom which will be 204decisive and you will have to prove that you exhausted all own 205means to qualify for GPL. 206 207We are firmly committed to allow GPLv2+ now and with future releases. 208 209Signed: Mario Danic, Thomas Schmitt 210Agreement joined later by: Vreixo Formoso 211 212Public contact: <bug-xorriso@gnu.org> 213 214